Doğrudan bellek erişimi - Direct memory access

Doğrudan bellek erişimi ( DMA ), belirli donanım alt sistemlerinin merkezi işlem biriminden (CPU) bağımsız olarak ana sistem belleğine ( rastgele erişimli bellek ) erişmesine izin veren bilgisayar sistemlerinin bir özelliğidir .

DMA olmadan, CPU programlanmış giriş/çıkış kullanırken , tipik olarak okuma veya yazma işleminin tamamı boyunca tamamen meşgul olur ve bu nedenle başka bir iş yapmak için kullanılamaz. DMA ile CPU önce aktarımı başlatır, ardından aktarım devam ederken diğer işlemleri yapar ve son olarak işlem yapıldığında DMA denetleyicisinden (DMAC) bir kesme alır . Bu özellik, CPU'nun veri aktarım hızına ayak uyduramadığı herhangi bir zamanda veya CPU'nun nispeten yavaş bir G/Ç veri aktarımını beklerken iş yapması gerektiğinde kullanışlıdır. Disk sürücüsü denetleyicileri, grafik kartları , ağ kartları ve ses kartları dahil olmak üzere birçok donanım sistemi DMA kullanır . DMA, çok çekirdekli işlemcilerde çip içi veri aktarımı için de kullanılır . DMA kanallarına sahip bilgisayarlar, DMA kanalları olmayan bilgisayarlardan çok daha az CPU ek yükü olan cihazlara ve cihazlardan veri aktarabilir. Benzer şekilde, çok çekirdekli bir işlemcinin içindeki bir işlem öğesi , işlemci zamanını işgal etmeden yerel belleğine ve yerel belleğinden veri aktarabilir, bu da hesaplama ve veri aktarımının paralel olarak ilerlemesine izin verir.

DMA aynı zamanda "bellekten belleğe" verilerin kopyalanması veya bellek içinde taşınması için de kullanılabilir. DMA, büyük kopyalar veya dağılım toplama işlemleri gibi pahalı bellek işlemlerini CPU'dan özel bir DMA motoruna aktarabilir . Bir uygulama örneği, G/Ç Hızlandırma Teknolojisidir . DMA, çip üzerinde ağ ve bellek içi bilgi işlem mimarileriyle ilgilenmektedir .

Prensipler

Üçüncü parti

Bir NeXTcube bilgisayarın anakartı (1990). Görüntünün ortasının altındaki iki büyük entegre devre , DMA denetleyicisi (l.) ve - olağandışı - ilk seride sabit disk sürücüsü yerine kullanılan manyeto-optik disk için ekstra özel bir DMA denetleyicisidir (r.) . bu bilgisayar modeli.

Üçüncü taraf DMA olarak da adlandırılan standart DMA, bir DMA denetleyicisi kullanır. Bir DMA denetleyicisi, bellek adresleri oluşturabilir ve bellek okuma veya yazma döngülerini başlatabilir. CPU tarafından yazılabilen ve okunabilen birkaç donanım kaydı içerir . Bunlar, bir bellek adres kaydı, bir bayt sayım kaydı ve bir veya daha fazla kontrol kaydı içerir. DMA kontrolörünün sağladığı özelliklere bağlı olarak, bu kontrol kayıtları kaynak, hedef, aktarım yönü (G/Ç cihazından okuma veya G/Ç cihazına yazma), boyutun bazı kombinasyonlarını belirtebilir. aktarım birimi ve/veya bir patlamada aktarılacak bayt sayısı.

Bir giriş, çıkış veya bellekten belleğe işlemi gerçekleştirmek için ana bilgisayar işlemcisi , aktarılacak sözcük sayısı ve kullanılacak bellek adresi ile DMA denetleyicisini başlatır . CPU daha sonra çevresel aygıta bir veri aktarımı başlatması için komut verir. DMA denetleyicisi daha sonra sistem belleğine adresler ve okuma/yazma kontrol satırları sağlar. Çevresel cihaz ve bellek arasında bir bayt veri aktarımına her hazır olduğunda, DMA denetleyicisi, tam veri bloğu aktarılana kadar dahili adres kaydını artırır.

Otobüs mastering

Birinci taraf DMA sistemi olarak da bilinen bir bus mastering sisteminde, CPU ve çevre birimlerinin her birine bellek veri yolunun kontrolü verilebilir. Bir çevre biriminin bus yöneticisi olabileceği durumlarda, CPU'nun katılımı olmadan doğrudan sistem belleğine yazabilir ve gerektiğinde bellek adresi ve kontrol sinyalleri sağlayabilir. Veri yolu çekişmesinin oluşmaması için işlemciyi bekleme durumuna almak için bazı önlemler sağlanmalıdır.

Operasyon modları

Seri çekim modu

Olarak patlama modunda , veri bütün blok bir bitişik dizi aktarılır. DMA denetleyicisine CPU tarafından sistem veriyoluna erişim izni verildikten sonra, sistem veri yollarının kontrolünü CPU'ya geri bırakmadan önce veri bloğundaki tüm bayt veriyi aktarır, ancak CPU'yu nispeten uzun süreler boyunca devre dışı bırakır. Mod ayrıca "Blok Transfer Modu" olarak da adlandırılır.

Döngü çalma modu

Döngüsü çalmak modu işlemci patlama transfer modları için gereken zaman uzunluğu için devre dışı olmamalıdır ki burada sistemlerinde kullanılır. Döngü çalma modunda, DMA denetleyicisi , CPU ile ara yüzü kontrol eden iki sinyal olan BR ( Bus Request ) ve BG ( Bus Grant ) sinyallerini kullanarak, çoğuşma modunda olduğu gibi sistem veri yoluna erişim elde eder . DMA denetleyicisi. Bununla birlikte, çevrim çalma modunda, bir bayt veri aktarımından sonra, sistem veriyolunun kontrolü BG aracılığıyla CPU'ya devre dışı bırakılır. Ardından, tüm veri bloğu aktarılana kadar istek başına bir bayt veri aktarılarak BR aracılığıyla sürekli olarak tekrar istenir. DMA kontrolörü, sistem veriyolunun kontrolünü sürekli olarak elde edip serbest bırakarak, esasen talimat ve veri transferlerini araya sokar. CPU bir talimatı işler, ardından DMA denetleyicisi bir veri değerini aktarır ve bu böyle devam eder. Veriler o kadar hızlı aktarılmaz, ancak CPU çoğuşma modunda olduğu sürece boşta kalmaz. Döngü çalma modu, verileri gerçek zamanlı olarak izleyen kontrolörler için kullanışlıdır.

Şeffaf mod

Şeffaf mod, bir veri bloğunu aktarmak için en fazla zaman alır, ancak aynı zamanda genel sistem performansı açısından en verimli moddur. Saydam modda, DMA denetleyicisi verileri yalnızca CPU, sistem veriyollarını kullanmayan işlemler gerçekleştirirken aktarır. Saydam modun birincil avantajı, CPU'nun programlarını yürütmeyi asla durdurmaması ve DMA aktarımının zaman açısından ücretsiz olması, dezavantajı ise donanımın CPU'nun ne zaman sistem veriyollarını kullanmadığını belirlemesi gerekmesidir ki bu karmaşık olabilir. . Buna " Gizli DMA veri aktarım modu " da denir .

Önbellek tutarlılığı

DMA nedeniyle önbellek tutarsızlığı

DMA, önbellek tutarlılığı sorunlarına yol açabilir . DMA kullanan cihazlar tarafından doğrudan erişilebilen bir önbellek ve bir harici bellek ile donatılmış bir CPU düşünün. CPU bellekteki X konumuna eriştiğinde, mevcut değer önbellekte saklanacaktır. X üzerinde sonraki işlemler, bir geri yazma önbelleği olduğu varsayıldığında, X'in önbelleğe alınmış kopyasını günceller, ancak X'in harici bellek sürümünü güncellemez . Bir cihaz X'e bir sonraki erişmeye çalıştığında önbellek belleğe boşaltılmazsa, cihaz eski bir X değeri alır.

Benzer şekilde, bir aygıt belleğe yeni bir değer yazdığında X'in önbelleğe alınmış kopyası geçersiz kılınmazsa, CPU eski bir X değerinde çalışır.

Bu sorun, sistem tasarımında iki yoldan biriyle çözülebilir: Önbellek uyumlu sistemler, donanımda veri yolu gözetleme adı verilen bir yöntem uygular; bu yöntemde , harici yazmalar önbellek denetleyicisine bildirilir ve bu yöntem daha sonra DMA yazmaları için bir önbellek geçersiz kılma veya bunun için önbellek temizleme işlemini gerçekleştirir. DMA okur. Tutarlı olmayan sistemler bunu yazılıma bırakır, burada işletim sistemi daha sonra giden bir DMA aktarımı başlatılmadan önce önbellek satırlarının temizlenmesini ve gelen bir DMA aktarımından etkilenen bir bellek aralığına erişilmeden önce geçersiz kılınmasını sağlamalıdır. İşletim sistemi, bu arada bellek aralığına çalışan herhangi bir iş parçacığı tarafından erişilmediğinden emin olmalıdır. İkinci yaklaşım, çoğu donanımın her bir önbellek satırını ayrı ayrı geçersiz kılmak için bir döngü gerektirdiğinden, DMA işlemine bir miktar ek yük getirir.

L1 önbelleği (tipik olarak CPU üzerinde) yazılım tarafından yönetilirken ikincil L2 önbelleğinin tutarlı olduğu melezler de mevcuttur.

Örnekler

ISA

Orijinal IBM PC'de (ve takip eden PC/XT'de ), dört DMA kanalı (0–3 numaralı) sağlayabilen yalnızca bir Intel 8237 DMA denetleyicisi vardı. Bu DMA kanalları 8 bit aktarımlar gerçekleştirdi (8237, ideal olarak bilgisayarın i8088 CPU/veri yolu mimarisiyle eşleşen 8 bitlik bir cihaz olduğundan ), yalnızca ilk ( i8086 /8088 standardı) megabayt RAM'i ele alabilirdi ve sınırlıydı. bu alan içindeki tek 64 kB segmentleri adreslemek için  (kaynak ve hedef kanallar farklı segmentleri adresleyebilmesine rağmen). Ek olarak, 8237 yalnızca PC'de kanal 0 (& XT ) dinamik bellek yenilemeye ayrılmıştı . Bu, genel amaçlı bir " Blitter " olarak kullanılmasını engelledi ve sonuç olarak PC'deki CPU'nun genel PIO hızı ile sınırlı olan blok bellek hareketleri çok yavaştı.

İle IBM PC / AT , gelişmiş AT Bus (daha bilindik olarak retronymed ISA üç ek sağlamak üzere ikinci bir 8237 DMA kontrolörü eklenmiş veya "Endüstri Standart Mimarisi") ve üzerinde XT ek genişleme ile kaynak çatışmalarla vurgulanan orijinal PC, çok ihtiyaç duyulan kanallar (5-7; kanal 4, ilk 8237'ye kademeli olarak kullanılır). Sayfa kaydı da 80286 CPU'nun tam 16 MB bellek adres alanını adreslemek için yeniden bağlandı. Bu ikinci kontrolör ayrıca, veri kaynağı ve/veya hedef olarak bir G/Ç cihazı kullanıldığında (aslında yalnızca bellekten belleğe aktarımlar için verileri işlediğinden, aksi takdirde basitçe 16-bit sistemin diğer bölümleri arasındaki veri akışını kontrol ederek, kendi veri yolu genişliğini nispeten önemsiz hale getirerek, üst üç kanal kullanıldığında veri çıkışını ikiye katlar. Uyumluluk için, alttaki dört DMA kanalı hala yalnızca 8 bitlik aktarımlarla sınırlıydı ve bellekten belleğe aktarımlar artık teknik olarak mümkünken, kanal 0'ın DRAM yenilemesini işlemek zorunda kalmaması nedeniyle pratik bir bakış açısıyla bunlar teknik olarak mümkündü. CPU'nun şimdi elde edebileceğiyle karşılaştırıldığında denetleyicinin sonuç olarak düşük verimi nedeniyle sınırlı değerdeydi (yani, minimum 6 MHz'de çalışan 16-bit, daha optimize edilmiş 80286 , 4.77 MHz'de kilitlenmiş 8-bit denetleyiciye karşı). Her iki durumda da, 64 kB segment sınır sorunu kaldı, bireysel transferler 16 bit modunda bile segmentleri geçemedi (bunun yerine aynı segmentin başlangıcına "sarmalama"), ancak bu pratikte daha çok bir programlama sorunuydu. Veri yolunu yaklaşık olarak her 15 μs'de bir tekelleştirmek için DRAM yenilemesine (ancak işlenir) devam eden ihtiyaç , büyük (ve hızlı, ancak kesintisiz) blok aktarımlarının kullanılmasını engellediğinden performanstan karmaşıklık  .

Gecikme performansları nedeniyle ( 5 MHz'de 1,6  MB /sn maksimum 8 bit aktarım kapasitesi, ancak PC/XT'de 0,9 MB/sn'den fazla değil ve ISA veriyolu nedeniyle AT'de 16 bit aktarımlar için 1,6 MB/sn'den fazla değil genel giderler ve bellek yenileme kesintileri gibi diğer parazitler) ve orijinal PC'nin standart 4.77 MHz saatinden daha yüksek hızlarda çalışan doğrudan değiştirmelerin kurulumuna izin verecek herhangi bir hız derecesinin bulunmaması, bu cihazlar 1980'lerin sonlarından beri etkin bir şekilde kullanılmamaktadır. Özellikle, 1985 yılında 80386 işlemcinin ortaya çıkışı ve 32-bit aktarım kapasitesi ( 80186'dan sonra Intel CPU'larında adres hesaplama ve blok bellek hareketlerindeki büyük gelişmelere rağmen , PIO aktarımlarının 16-bit veri yolu ile bile yapıldığı anlamına gelse de) 286 ve 386SX , kendi çok daha yüksek performanslı DMA alt sistemleriyle ( EISA ) veya "ISA" veri yolunun ( MCA , VLB ve PCI ) için daha fazla evrimin geliştirilmesinin yanı sıra (en fazla 8237) hala kolayca geride kalabilir . EISA için maksimum 33 MB/sn, 40 MB/sn MCA, tipik olarak 133 MB/sn VLB/PCI) orijinal DMA kontrolörlerini bir güçlendiriciden çok bir performans değirmen taşı gibi gösterdi. Daha sonraki makinelerde yerleşik eski PC donanımını desteklemeleri gerektiği ölçüde desteklendiler. 32-bit genişleme veriyolları yaygınlaştıktan sonra ISA DMA'yı kullanmaya devam eden eski donanım parçaları , Sound Blaster standardıyla tam donanım uyumluluğunu sürdürmesi gereken Sound Blaster kartlarıydı; ve genellikle yerleşik bir disket denetleyicisini, FIR (hızlı kızılötesi) modu seçildiğinde bir IrDA kızılötesi denetleyicisini ve ECP modu seçildiğinde bir IEEE 1284 paralel bağlantı noktası denetleyicisini entegre eden anakartlardaki Süper I/O aygıtları . Orijinal 8237'lerin veya doğrudan uyumluların hala kullanıldığı durumlarda, bu cihazlara veya bu cihazlardan aktarım , sistemin gerçek adres alanı veya kurulu bellek miktarından bağımsız olarak ilk 16 MB ana RAM ile sınırlı olabilir .

Her DMA kanalının 16 bitlik bir adres kaydı ve onunla ilişkili 16 bitlik bir sayım kaydı vardır. Bir veri aktarımı başlatmak için aygıt sürücüsü, DMA kanalının adresini ve veri aktarımı, okuma veya yazma yönü ile birlikte sayma kayıtlarını ayarlar. Ardından DMA donanımına aktarıma başlaması talimatını verir. Aktarım tamamlandığında, cihaz CPU'yu keser .

Dağılımlı veya vektörlü G/Ç DMA, tek bir DMA işleminde birden çok bellek alanına ve bu alanlardan veri aktarımına izin verir. Birden çok basit DMA isteğinin birlikte zincirlenmesine eşdeğerdir. Motivasyon, çoklu giriş/çıkış kesintilerini ve veri kopyalama görevlerini CPU'dan kaldırmaktır.

DRQ, Veri talebi anlamına gelir ; Veri onayı için DACK . DMA işlevselliğine sahip bilgisayar sistemlerinin donanım şemalarında görülen bu semboller, CPU ve DMA kontrolörü arasındaki elektronik sinyal hatlarını temsil eder. Her DMA kanalının bir İstek ve bir Onay satırı vardır. DMA kullanan bir cihaz, atanan DMA kanalının her iki hattını da kullanacak şekilde yapılandırılmalıdır.

16-bit ISA veri yolu yönetimine izin verdi.

Standart ISA DMA atamaları:

  1. DRAM Yenileme (eski),
  2. Kullanıcı donanımı, genellikle ses kartı 8-bit DMA
  3. Disket denetleyicisi,
  4. Sabit disk ( PIO modları tarafından kullanılmayan ve UDMA modları ile değiştirilen ), Paralel Bağlantı Noktası (ECP özellikli bağlantı noktası), OPTi 928 gibi belirli SoundBlaster Klonları.
  5. PC/XT DMA denetleyicisine kademeli,
  6. Sabit Disk ( yalnızca PS/2 ), diğerleri için kullanıcı donanımı, genellikle ses kartı 16-bit DMA
  7. Kullanıcı donanımı.
  8. Kullanıcı donanımı.

PCI

Bir PCI mimarisinde, ISA'nın aksine merkezi bir DMA denetleyicisi yoktur. Bunun yerine, herhangi bir PCI aygıtı veri yolunun kontrolünü talep edebilir (" ana veri yolu ol ") ve sistem belleğinden okuma ve yazma talebinde bulunabilir. Daha doğrusu, bir PCI bileşeni, aynı anda yalnızca bir veri yolu yöneticisi olabileceğinden, birden fazla aygıtın aynı anda veri yolu sahipliğini talep etmesi durumunda arabuluculuk yapacak olan PCI veri yolu denetleyicisinden (genellikle PCI ana bilgisayar köprüsü ve PCI - PCI köprüsü) veri yolu sahipliğini talep eder. Bileşene sahiplik verildiğinde, PCI veri yolu denetleyicisi tarafından talep edilecek olan PCI veri yolunda normal okuma ve yazma komutları verir.

Örnek olarak, AMD Soket AM2 tabanlı bir bilgisayarda, güney köprüsü, işlemleri HyperTransport kullanarak bellek denetleyicisine (CPU kalıbına entegre edilmiştir) iletecek ve bu da onları DDR2 işlemlerine dönüştürecek ve dışarı gönderecektir. DDR2 bellek veriyolu. Sonuç olarak, bir PCI DMA aktarımında yer alan oldukça fazla adım vardır; ancak, PCI aygıtının veya PCI veri yolunun kendisi, bileşenlerin geri kalanından çok daha yavaş olduğu için bu çok az sorun teşkil eder ( cihaz bant genişlikleri listesine bakın ).

Modern bir x86 CPU, Fiziksel Adres Uzantısı (PAE), 36 bit adresleme modu veya x86-64 CPU'ların yerel 64 bit modu kullanılarak 4 GB'den fazla bellek kullanabilir . Böyle bir durumda, 32 bit adres veriyolu ile DMA kullanan bir cihaz, 4 GB hattının üzerindeki belleği adresleyemez. Yeni Çift Adres Döngüsü (DAC) mekanizması, hem PCI veriyolunda hem de aygıtın kendisinde uygulanırsa, 64 bit DMA adreslemesini etkinleştirir. Aksi takdirde, işletim sisteminin ya geri dönme arabellekleri ( FreeBSD /Linux) olarak da bilinen maliyetli çift ​​arabellekler (DOS/Windows terminolojisi) kullanarak sorunu çözmesi gerekir ya da varsa, adres çeviri hizmetleri sağlamak için bir IOMMU kullanabilir. .

I/OAT

Genel amaçlı bir CPU'ya dahil edilmiş bir DMA motoru örneği olarak, bazı Intel Xeon yonga setleri , ana CPU'dan bellek kopyalamayı boşaltabilen ve onu başka işler yapmak için serbest bırakabilen G/Ç Hızlandırma Teknolojisi (I/OAT) adlı bir DMA motoru içerir. . 2006'da, Intel'in Linux çekirdek geliştiricisi Andrew Grover, ağ trafiği kopyalarını boşaltmak için I/OAT kullanarak karşılaştırmalar yaptı ve iş yüklerini alırken CPU kullanımında %10'dan fazla gelişme bulamadı.

DDIO

DMA mekanizmasında daha fazla performans odaklı geliştirmeler, Intel Xeon E5 işlemcilerinde Data Direct I/O ( DDIO ) özelliğiyle tanıtıldı ve DMA "pencerelerinin" sistem RAM'i yerine CPU önbelleklerinde bulunmasına izin verdi . Sonuç olarak, CPU önbellekleri G/Ç için birincil kaynak ve hedef olarak kullanılır ve ağ arabirim denetleyicilerinin (NIC'ler) doğrudan yerel CPU'ların Son düzey önbelleğine (L3 önbellek) DMA yapmasına izin verir ve G/Ç'nin maliyetli getirilmesini önler sistem RAM'inden gelen veriler. Sonuç olarak, DDIO genel G/Ç işleme gecikmesini azaltır, G/Ç'nin işlenmesinin tamamen önbellek içinde gerçekleştirilmesine olanak tanır, kullanılabilir RAM bant genişliği/gecikmesinin bir performans darboğazı haline gelmesini önler ve izin vererek güç tüketimini azaltabilir. RAM, düşük güçlü durumda daha uzun süre kalacak.

AHB

In sistemlerin-on-a-chip ve gömülü sistemler , tipik sistem veriyolu altyapı olarak böyle karmaşık yonga otobüsü AMBA Yüksek performanslı Bus . AMBA iki tür AHB bileşeni tanımlar: master ve slave. Köle arabirimi, yazılımın (gömülü CPU üzerinde çalışan, örneğin ARM üzerinde çalışan ) G/Ç kayıtlarını veya (daha az yaygın olarak) cihazın içindeki yerel bellek bloklarını yazabildiği/okuyabildiği programlanmış G/Ç'ye benzer . Cihaz tarafından, CPU'ya aşırı yüklenmeden sistem belleğine/sistem belleğinden DMA işlemleri gerçekleştirmek için bir ana arabirim kullanılabilir.

Bu nedenle, sistem belleğine/bellekten büyük miktarda veri aktarması gereken ağ denetleyicileri gibi yüksek bant genişliğine sahip aygıtlar, AHB'ye iki arabirim adaptörüne sahip olacaktır: bir ana ve bir bağımlı arabirim. Bunun nedeni, AHB gibi çip üstü veri yollarının veri yolunun üç kez belirtilmesini veya veri yolu üzerindeki herhangi bir hattın yönünün değiştirilmesini desteklememesidir . PCI gibi, DMA veri yolu yöneticisi olduğundan merkezi DMA denetleyicisine gerek yoktur, ancak sistemde birden fazla yönetici bulunması durumunda bir hakem gereklidir.

Dahili olarak, çok kanallı bir DMA motoru, yazılım tarafından programlandığı gibi birden çok eşzamanlı dağıtma-toplama işlemini gerçekleştirmek için genellikle cihazda bulunur .

Hücre

Çip üzerinde çok işlemcili bir sistemde DMA'nın örnek kullanımına örnek olarak , IBM/Sony/Toshiba'nın Hücre işlemcisi , bir Güç işlemci öğesi (PPE) ve sekiz sinerjik işlemci öğesi (SPE'ler) dahil olmak üzere 9 işleme öğesinin her biri için bir DMA motoru içerir. . SPE'nin yükleme/depolama talimatları yalnızca kendi yerel belleğini okuyabildiğinden/yazabildiğinden, bir SPE, ana bellekten ve diğer SPE'lerin yerel belleklerinden veri aktarmak için tamamen DMA'lara bağlıdır. Bu nedenle, DMA, bu iç çekirdek arasında veri aktarımı birincil aracı olarak işlev görür CPU (örneğin, Intel iptal edilmiş önbellek tutarlı CMP mimarileri aksine , genel amaçlı GPU , Larrabee'ye ).

DMA in Cell tamamen önbellek uyumludur (ancak DMA tarafından işletilen SPE'lerin yerel depolarının standart anlamda küresel olarak tutarlı önbellek olarak hareket etmediğini unutmayın ). Hem okuma ("get") hem de yazma ("koy") işlemlerinde, bir DMA komutu, 16 KB'ye kadar tek bir blok alanını veya 2 ila 2048 bu tür blokların bir listesini aktarabilir. DMA komutu, bir yerel adres ve bir uzak adres çifti belirterek verilir: örneğin, bir SPE programı bir put DMA komutu verdiğinde, kaynak olarak kendi yerel belleğinin bir adresini ve bir sanal bellek adresini belirtir (işaret ederek). ya ana bellek ya da başka bir SPE'nin yerel belleği) bir blok boyutuyla birlikte hedef olarak. Bir deneye göre, Hücredeki DMA'nın (3 GHz, tek tip trafik altında) etkili bir tepe performansı saniyede 200 GB'a ulaşır.

boru hattı

Sahip işlemciler karalama bellek (örneğin ve DMA dijital sinyal işlemci ve hücre işlemci) ile, işleme DMA bellek işlemleri örtüşen yazılım yararlanabilir çift arabelleğe ya da multibuffering. Örneğin, çip üzerindeki bellek iki arabelleğe bölünmüştür; DMA motoru diğerinde veri yüklerken ve depolarken işlemci birindeki veriler üzerinde çalışıyor olabilir. Bu, sistemin , tahmin edilebilir bir bellek erişim modeline ihtiyaç duyma pahasına, bellek gecikmesinden kaçınmasına ve patlama aktarımlarından yararlanmasına olanak tanır .

Ayrıca bakınız

Notlar

Referanslar

Dış bağlantılar