Čo je priamy prístup do pamäte (DMA) a ako to funguje? [MiniTool Wiki]
What Is Direct Memory Access
Rýchla navigácia:
Môžete si adoptovať RDMA technológia umožňujúca počítačom v sieti vymieňať si údaje v hlavnej pamäti bez zapojenia procesora, vyrovnávacej pamäte alebo operačného systému jedného z počítačov. Môžete však tiež použiť funkciu DMA na priame zasielanie údajov z pripojeného zariadenia do pamäte na základnej doske počítača. Tento príspevok od MiniTool hovorí hlavne o DMA.
Definícia priameho prístupu do pamäte
Po prvé, čo je to priamy prístup do pamäte? Priamy prístup do pamäte možno skrátiť na DMA, čo je vlastnosť počítačových systémov. Umožňuje vstupno-výstupným (I / O) zariadeniam prístup do hlavnej systémovej pamäte ( Náhodný vstup do pamäťe ), nezávislý od centrálnej procesorovej jednotky (CPU), ktorá urýchľuje operácie s pamäťou.
Tip: Tento príspevok by vás mohol zaujímať - 8 užitočných riešení na 100% opravu procesora v systéme Windows 10 .
Bez priameho prístupu do pamäte, keď procesor používa naprogramované vstupy / výstupy, je zvyčajne úplne obsadený počas celej operácie čítania alebo zápisu, takže nemôže vykonávať ďalšie úlohy. Pri DMA procesor najskôr inicializuje prenos, potom počas prenosu vykoná ďalšie operácie a po dokončení operácie nakoniec prijme prerušenie od radiča DMA (DMAC).
Priamy prístup do pamäte je užitočný vždy, keď procesor nedokáže držať krok s rýchlosťou dátového prenosu, alebo keď CPU potrebuje vykonať prácu pri čakaní na relatívne pomalé I / O dátové prenosy.
Priamy prístup do pamäte využíva viac hardvérových systémov, napríklad radiče diskových jednotiek, grafické karty, sieťové karty a zvukové karty. DMA sa tiež používa na prenos údajov na čipe vo viacjadrových procesoroch. V porovnaní s počítačmi bez kanálov priameho prístupu do pamäte môžu počítače s kanálmi DMA prenášať údaje medzi zariadeniami s oveľa menšou réžiou procesora.
Priamy prístup do pamäte možno použiť aj na „pamäť do pamäte“ na kopírovanie alebo presun údajov v pamäti. Môže prenášať drahé pamäťové operácie (napríklad veľké kópie alebo operácie rozptýlenia) z CPU na vyhradený procesor DMA. DMA je dôležité v architektúrach výpočtov typu network-on-chip a memory.
Ako funguje priamy prístup do pamäte?
Ako potom funguje priamy prístup do pamäte? Štandardný priamy prístup do pamäte (nazývaný tiež DMA tretích strán) využíva radič DMA. Radič DMA môže vytvárať adresy pamäte a spúšťať cykly čítania alebo zápisu do pamäte. Pokrýva viac hardvérových registrov, ktoré môže čítať a zapisovať procesor.
Tieto registre pozostávajú z registra adresy pamäte, registra počtu bytov a jedného alebo viacerých riadiacich registrov. V závislosti na funkciách poskytovaných radičom Direct Memory Access môžu tieto riadiace registre určovať určitú kombináciu zdroja, cieľa, smeru prenosu (čítanie z I / O zariadenia alebo zápisu na toto I / O zariadenie), veľkosti prenosovej jednotky a / alebo počtu bajtov na prenos v jednej dávke.
Ak chcete vykonať operácie vstupu, výstupu alebo pamäte typu pamäť do pamäte, hostiteľský procesor inicializuje radič DMA počtom slov, ktoré sa majú preniesť, a adresou pamäte, ktorá sa má použiť. Potom procesor CPU prikáže periférnemu zariadeniu, aby začalo s prenosom dát.
Potom radič priameho prístupu do pamäte ponúka adresy a riadiace riadky na čítanie a zápis do systémovej pamäte. Zakaždým, keď je bajt dát pripravený na prenos medzi periférnym zariadením a pamäťou, DMA radič zvyšuje svoj interný register adries, kým sa neprenesie celý dátový blok.
Prevádzkové režimy
Priamy prístup do pamäte funguje rôzne v rôznych prevádzkových režimoch.
Režim série
V sériovom režime sa celý dátový blok prenáša v nepretržitom slede. Akonáhle CPU umožní radiču DMA prístup na systémovú zbernicu, radič DMA prenesie všetky bajty dát v dátovom bloku pred uvoľnením riadenia systémových zberníc späť do CPU, čo však spôsobí neaktivitu CPU pre dosť dlho. Tento režim sa nazýva aj „Režim prenosu bloku“.
Cyklus kradnutia
Režim kradnutia cyklu sa používa v systéme, kde CPU nie je možné deaktivovať po dobu požadovanú pre režim sériového prenosu. V režime ukradnutia cyklu získa ovládač DMA prístup k systémovej zbernici pomocou signálov BR (Bus Request) a BG (Bus Grant), ktoré sú rovnaké ako režim zhluku. Tieto dva signály riadia rozhranie medzi CPU a DMA radičom.
Na jednej strane v režime krádeže cyklu nie je prenosová rýchlosť dátového bloku taká vysoká ako v režime série, ale na druhej strane doba nečinnosti CPU nie je taká dlhá ako v režime série.
Transparentný režim
Transparentný režim trvá prenos dátových blokov najdlhšie, ale je to tiež najefektívnejší režim z hľadiska celkového výkonu systému. V transparentnom režime radič priameho prístupu do pamäte prenáša údaje iba vtedy, keď procesor vykonáva operácie, ktoré nepoužívajú systémové zbernice.
Hlavnou výhodou transparentného režimu je, že CPU nikdy neprestane vykonávať svoje programy a prenosy s priamym prístupom do pamäte sú z časového hľadiska bezplatné, zatiaľ čo nevýhodou je, že hardvér musí určiť, kedy CPU nepoužíva systémové zbernice, čo môže byť komplikovaný. Toto sa nazýva aj „skrytý režim prenosu údajov DMA“.