Co je přímý přístup do paměti (DMA) a jak to funguje? [MiniTool Wiki]
What Is Direct Memory Access
Rychlá navigace:
Můžete přijmout RDMA technologie umožňující počítačům v síti vyměňovat si data v hlavní paměti bez zapojení procesoru, mezipaměti nebo operačního systému obou počítačů. Můžete však také použít funkci DMA k přímému odesílání dat z připojeného zařízení do paměti na základní desce počítače. Tento příspěvek od MiniTool mluví hlavně o DMA.
Definice přímého přístupu do paměti
Za prvé, co je to přímý přístup do paměti? Přímý přístup do paměti lze zkrátit na DMA, což je vlastnost počítačových systémů. Umožňuje vstupním / výstupním (I / O) zařízením přistupovat k hlavní systémové paměti ( paměť s náhodným přístupem ), nezávisle na centrální procesorové jednotce (CPU), která zrychluje operace s pamětí.
Spropitné: Tento příspěvek by vás mohl zajímat - 8 Užitečná řešení pro 100% opravu CPU v systému Windows 10 .
Bez přímého přístupu do paměti, když CPU používá naprogramované vstupy / výstupy, je obvykle plně obsazeno během celé operace čtení nebo zápisu, takže nemůže provádět další úkoly. U DMA CPU nejprve zahájí přenos, poté provede další operace, zatímco probíhá přenos, a nakonec obdrží přerušení od řadiče DMA (DMAC), když je operace dokončena.
Přímý přístup do paměti je užitečný, kdykoli CPU nemůže držet krok s rychlostí přenosu dat, nebo když CPU potřebuje provést práci, zatímco čeká na relativně pomalé I / O datové přenosy.
Přímý přístup do paměti využívá více hardwarových systémů, například řadiče diskových jednotek, grafické karty, síťové karty a zvukové karty. DMA se také používá pro přenos dat na čipu ve vícejádrových procesorech. Ve srovnání s počítači bez kanálů s přímým přístupem do paměti mohou počítače s kanály DMA přenášet data mezi zařízeními s mnohem menší režií CPU.
Přímý přístup do paměti lze také použít pro „paměť do paměti“ ke kopírování nebo přesouvání dat v paměti. Může přenášet drahé operace paměti (například velké kopie nebo operace scatter-collect) z CPU do vyhrazeného DMA enginu. DMA je důležitá v architektuře výpočetních systémů typu síť na čipu a paměti.
Jak funguje přímý přístup do paměti?
Jak potom funguje přímý přístup do paměti? Standardní přímý přístup do paměti (nazývaný také DMA jiného výrobce) využívá řadič DMA. Řadič DMA může vytvářet adresy paměti a spouštět cykly čtení nebo zápisu do paměti. Pokrývá několik hardwarových registrů, které lze číst a zapisovat do CPU.
Tyto registry se skládají z registru adres paměti, registru počtu bytů a jednoho nebo více řídicích registrů. V závislosti na funkcích poskytovaných řadičem Direct Memory Access mohou tyto řídicí registry určovat určitou kombinaci zdroje, cíle, směru přenosu (čtení ze zařízení I / O nebo zápisu do něj), velikosti přenosové jednotky a / nebo počtu bajtů k přenosu v jedné dávce.
Chcete-li provádět operace vstupu, výstupu nebo paměti z paměti, hostitelský procesor inicializuje řadič DMA počtem slov k přenosu a adresou paměti, která se má použít. Poté CPU přikáže perifernímu zařízení zahájit přenos dat.
Řadič Direct Memory Access pak nabízí adresy a čtecí / zapisovací řídicí linky do systémové paměti. Pokaždé, když je bajt dat připraven k přenosu mezi periferním zařízením a pamětí, řadič DMA zvyšuje svůj interní registr adres, dokud není přenesen kompletní datový blok.
Provozní režimy
Přímý přístup do paměti funguje v různých provozních režimech odlišně.
Burst režim
V režimu série se celý datový blok vysílá v nepřetržitém sledu. Jakmile CPU umožní řadiči DMA přístup na systémovou sběrnici, ovladač DMA přenese všechny bajty dat v datovém bloku před uvolněním řízení systémových sběrnic zpět do CPU, ale způsobí to neaktivitu CPU pro značně dlouho. Tento režim se také nazývá „Režim přenosu bloku“.
Režim krádeže cyklu
Režim krádeže cyklu se používá v systému, kde nelze CPU deaktivovat po dobu požadovanou pro režim sériového přenosu. V režimu krádeže cyklu získává řadič DMA přístup k systémové sběrnici pomocí signálů BR (Bus Request) a BG (Bus Grant), které jsou stejné jako režim shluku. Tyto dva signály řídí rozhraní mezi CPU a řadičem DMA.
Na jedné straně v režimu krádeže cyklu není rychlost přenosu datového bloku tak vysoká jako v režimu série, ale na druhé straně doba nečinnosti CPU není tak dlouhá jako v režimu série.
Transparentní režim
Transparentní režim trvá přenos datových bloků nejdelší dobu, ale je to také nejúčinnější režim z hlediska celkového výkonu systému. V transparentním režimu přenáší řadič Direct Memory Access data pouze tehdy, když CPU provádí operace, které nepoužívají systémové sběrnice.
Hlavní výhodou transparentního režimu je, že CPU nikdy nepřestává vykonávat své programy a přenosy Direct Memory Access jsou z hlediska času zdarma, zatímco nevýhodou je, že hardware musí určit, kdy CPU nepoužívá systémové sběrnice, což může být komplikovaný. Toto se také nazývá „režim skrytého přenosu dat DMA“.