Doğrudan Bellek Erişimi

Kısaca: Doğrudan belleğe erişim (Direct memory access; DMA), modern bilgisayarlarda bulunan, merkezi işlem biriminden bağımsız olarak okuma ve/veya yazmak için, belirli donanım alt sistemleri içinde sistem belleğine erişim sağlayan bir özelliktir. ...devamı ☟

Doğrudan belleğe erişim (Direct memory access; DMA), modern bilgisayarlarda bulunan, merkezi işlem biriminden bağımsız olarak okuma ve/veya yazmak için, belirli donanım alt sistemleri içinde sistem belleğine erişim sağlayan bir özelliktir. DMA, disk sürücü kontrol birimleri, grafik kartları, ağ kartları ve ses kartları dahil bir çok donanım sistemi tarafından kullanılmaktadır. DMA kanalı olan bilgisayarlar, DMA kanalı olmayan bilgisayarlara nazaran, cihazlardan ya da cihazlara çok daha hızlı bir şekilde veri transferi yapabilmektedir. Bu, gerçek zamanlı uygulamalar için çok yararlıdır. İşleyiş ilkesi DMA, bütün modern bilgisayarların önemli bir özelliğidir, zira cihazların, CPU'yu ağır ek yüklere maruz bırakmadan veri transferi yapmalarına olanak sağlamaktadır. Aksi takdirde, CPU, her veri parçasını kaynaktan hedefe kopyalamak zorunda kalırdı. Bu tipik olarak, normal bellek bloklarının kopyalanmasından çok daha yavaştır, çünkü bir çevre veri yolu aracılığıyla I/O cihazlarına erişim,genel olarak normal sistem RAM'ından daha yavaştır. Bu zaman içinde CPU, CPU veri yolunu ilgilendiren diğer görevleri gerçekleştiremez, ama veri yolu erişimini gerektirmeyen diğer işleri yapmaya devam edebilir. Bir DMA transferi esas olarak, bir bellek bloğunu bir cihazdan diğerine kopyalar. Her ne kadar transferi CPU başlatsa da, o gerçekleştirmez. Sözde "üçüncü şahıs" DMA için, ISA veri yolu ile normal olarak kullanıldığı şekilde, transfer, tipik olarak ana kart yonga kümesinin parçası olan bir DMA kontrol birimi tarafından gerçekleştirilmektedir. PCI gibi daha gelişmiş veri yolu tasarımları tipik olarak, cihazın veri yolunun kontrolünü ele geçirdiği ve transferi kendisinin gerçekleştirdiği veri yolu idaresi (bus mastering) DMA'sı kullanmaktadır. DMA'nın tipik bir kullanımı, sistem RAM'ından bir bellek blokunun, cihazdaki arabellekten veya arabelleğe kopyalamasıdır. Böyle bir işlem işlemciyi geciktirmez, o da, bunun sonucunda, başka görevleri yapmak üzere planlanabilir. DMA transferleri, yüksek performanslı tümleşik sistemler için çok önemlidir. Ayrıca, çevre cihaz sürücülerinin sıfır-kopya denilen uygulamalarının yanı sıra, ağ paketi yol ataması, ses yeniden oynatımı ve duraksız video işlemi gibi işlevsellikleri sağlaması açısından da çok önemlidir. DMA motorları DMA, donanım etkileşimine ilave olarak, CPU'dan belirli bir DMA motoruna büyük kopyalar veya saçılım-toplama işlemleri gibi, pahalı bellek işlemlerinin başka yere yönlendirmek amacıyla da kullanılabilir. Bugünün masa üstü bilgisayarları için bellek kopyalamaları başka bir yere yönlendirilmeye değmeyecek kadar küçük işlemler olsa da, daha sınırlı kaynaklar nedeniyle, tümleşik cihazlarda daha sık kullanılmaktadır. Örnekler ISA ( Sanayi Standardı Mimari ) Örneğin, bir bilgisayarın ISA DMA kontrol biriminin 16 DMA kanalı olup, bunların 7 adedi, bilgisayarın CPU'su tarafından kullanılmak içindir. Her DMA kanalıyla ilintili olarak, 16-bit'lik bir adres kaydı ve 16-bit'lik sayma kaydı bulunmaktadır. Bir veri transferi başlatmak içini cihaz sürücüsü DMA kanalının adresi ve sayma kaydedicisi ile birlikte, transferin yönünü ayarlar, okuma veya yazma; sonra, DMA donanımına transferi başlatması komutunu verir. Transfer tamamlanınca, cihaz CPU'yu keser. "Saçılım-toplama" DMA, tek bir DMA hareketi ile birden fazla bellek alanına ve alanından veri transferine izin verir. Birden fazla basit DMA talebinin birbirine zincirlenmesine eşdeğerdir. Yine, amaç çoklu giriş/çıkış kesintilerini ve veri kopyalama görevlerini CPU'dan başka yerlere aktarmaktır. DRQ, DMA talebi anlamına, DACK, DMA kabulü/alındısı anlamına gelmektedir. Bu semboller genelde, DMA işlevi bulunan bilgisayar sistemlerinin donanım şematiğinde görülmektedir. CPU ile DMA kontrol birimi arasındaki elektronik sinyal hatlarını simgelemektedir. Kaynakça * DMA * mmap() and DMA * Memory Mapping and DMA * DMA and Interrupt Handling * DMA Modes & Bus Mastering

Kaynaklar

Vikipedi

Bu konuda henüz görüş yok.
Görüş/mesaj gerekli.
Markdown kullanılabilir.