Doğrudan Bellek Erişimi (DMA) Nedir ve Nasıl Çalışır? [MiniTool Wiki]
What Is Direct Memory Access
Hızlı navigasyon :
Kabul edebilirsin RDMA bir ağdaki bilgisayarların her iki bilgisayarın işlemcisini, önbelleğini veya işletim sistemini dahil etmeden ana bellekte veri alışverişi yapmasını sağlayan teknoloji Ancak, verileri bağlı bir aygıttan bilgisayarın ana kartındaki belleğe doğrudan göndermek için DMA özelliğini de kullanabilirsiniz. Bu gönderiden Mini Araç temelde DMA'dan bahsediyor.
Doğrudan Bellek Erişiminin Tanımı
Her şeyden önce, Doğrudan Bellek Erişimi nedir? Doğrudan Bellek Erişimi, bilgisayar sistemlerinin bir özelliği olan DMA olarak kısaltılabilir. Giriş / çıkış (G / Ç) cihazlarının ana sistem belleğine ( rasgele erişim belleği ), bellek işlemlerini hızlandıran merkezi işlem biriminden (CPU) bağımsızdır.
İpucu: Bu yazı ilginizi çekebilir - Windows 10'da CPU'nuzu% 100 Düzeltmek için 8 Faydalı Çözümler .
Doğrudan Bellek Erişimi olmadan, CPU programlanmış giriş / çıkışları kullandığında, genellikle tüm okuma veya yazma işlemi sırasında tamamen meşgul olduğundan diğer görevleri yerine getiremez. DMA ile, CPU önce aktarımı başlatır, ardından aktarım devam ederken diğer işlemleri gerçekleştirir ve son olarak işlem tamamlandığında DMA denetleyicisinden (DMAC) bir kesinti alır.
Doğrudan Bellek Erişimi, CPU veri aktarım hızına ayak uyduramadığında veya CPU'nun nispeten yavaş G / Ç veri aktarımlarını beklerken çalışması gerektiğinde kullanışlıdır.
Birden çok donanım sistemi, disk sürücüsü denetleyicileri, grafik kartları, ağ kartları ve ses kartları gibi Doğrudan Bellek Erişimini benimser. DMA, çok çekirdekli işlemcilerde yonga üzerinde veri aktarımı için de kullanılır. Doğrudan Bellek Erişimi kanalları olmayan bilgisayarlarla karşılaştırıldığında, DMA kanallarına sahip bilgisayarlar, çok daha az CPU ek yükü olan cihazlar arasında veri aktarabilir.
Doğrudan Bellek Erişimi, bellekteki verileri kopyalamak veya taşımak için “bellekten belleğe” için de kullanılabilir. Pahalı bellek işlemlerini (büyük kopyalar veya dağıtma-toplama işlemleri gibi) CPU'dan özel bir DMA motoruna aktarabilir. DMA, yonga üzerinde ağ ve bellek bilgi işlem mimarilerinde önemlidir.
Doğrudan Bellek Erişimi Nasıl Çalışır?
O halde Doğrudan Bellek Erişimi nasıl çalışır? Standart Doğrudan Bellek Erişimi (üçüncü taraf DMA olarak da adlandırılır) bir DMA denetleyicisi kullanır. DMA denetleyicisi bellek adresleri üretebilir ve bellek okuma veya yazma döngülerini başlatabilir. CPU tarafından okunabilen ve yazılabilen birden fazla donanım kaydını kapsar.
Bu yazmaçlar bir bellek adres yazmacından, bir bayt sayım kaydından ve bir veya daha fazla kontrol yazmacından oluşur. Doğrudan Bellek Erişimi denetleyicisi tarafından sağlanan özelliklere bağlı olarak, bu denetim kayıtları, kaynak, hedef, aktarım yönü (G / Ç aygıtından okuma veya G / Ç aygıtına yazma), aktarım biriminin boyutu ve / veya sayı kombinasyonunu atayabilir. bir patlamada transfer edilecek bayt.
Giriş, çıkış veya bellekten belleğe işlemleri gerçekleştirmek için, ana işlemci, aktarılacak sözcük sayısı ve kullanılacak bellek adresiyle DMA denetleyicisini başlatır. Ardından CPU, çevre aygıtına veri aktarımına başlaması için komut verir.
Ardından Doğrudan Bellek Erişimi denetleyicisi, sistem belleğine adresler ve okuma / yazma denetim satırları sunar. Çevresel aygıt ile bellek arasında aktarılmak üzere bir bayt veri her hazırlandığında, DMA kontrolörü, tam bir veri bloğu aktarılıncaya kadar dahili adres kaydını arttırır.
Operasyon modları
Doğrudan Bellek Erişimi, farklı çalışma modlarında farklı çalışır.
Seri Çekim Modu
Patlama modunda, tüm veri bloğu sürekli bir sırayla iletilir. CPU, DMA denetleyicisinin sistem veriyoluna erişmesine izin verdiğinde, DMA denetleyicisi, sistem veri yollarının denetimini CPU'ya geri bırakmadan önce veri bloğundaki tüm veri baytlarını aktaracaktır, ancak bu, CPU'nun bir süre için devre dışı kalmasına neden olacaktır. oldukça uzun bir süre. Bu mod aynı zamanda “Blok Transfer Modu” olarak da adlandırılır.
Döngü Çalma Modu
Döngü çalma modu, CPU'nun burst transfer modu için gereken süre boyunca devre dışı bırakılamadığı bir sistemde kullanılır. Döngü çalma modunda, DMA denetleyicisi, patlama modu ile aynı olan BR (Bus Request) ve BG (Bus Grant) sinyallerini kullanarak sistem veriyoluna erişim sağlar. Bu iki sinyal, CPU ile DMA kontrolörü arasındaki arayüzü kontrol eder.
Bir yandan, çevrim çalma modunda, veri bloğu aktarım hızı, patlama modundaki kadar hızlı değildir, ancak diğer yandan, CPU boşta kalma süresi, patlama modundaki kadar uzun değildir.
Şeffaf Mod
Şeffaf mod, veri bloklarını aktarmak için en uzun süreyi alır, ancak aynı zamanda genel sistem performansı açısından en verimli moddur. Şeffaf modda, Doğrudan Bellek Erişimi denetleyicisi verileri yalnızca CPU sistem veri yollarını kullanmayan işlemler gerçekleştirdiğinde aktarır.
Şeffaf modun ana avantajı, CPU'nun programlarını yürütmeyi asla bırakmaması ve Doğrudan Bellek Erişimi aktarımlarının zaman açısından ücretsiz olmasıdır; bununla birlikte dezavantajı, donanımın CPU'nun sistem veri yollarını ne zaman kullanmadığını belirlemesi gerektiğidir. karmaşık ol. Buna 'gizli DMA veri aktarım modu' da denir.