Činnost procesoru je řízena strojovými instrukcemi, které procesor sám načítá z operační paměti. I kdyby byl procesor vybaven strojovou instrukcí, která přenáší data z paměti rovnou do vstupně-výstupních registrů (V/V bran, portů) periferních zařízení, resp. naopak, musel by ji procesor vždy nejprve sám načíst z paměti - na přenesení každého bytu "užitečných dat" by tak ve skutečnosti bylo nutné přenést hned několik bytů (tvořících strojovou instrukci) z paměti do procesoru
Je zde však ještě jeden zajímavý moment: žádná strojová instrukce nikdy nemůže přenést byte (slovo, dvojslovo) ze zadaného vstupně-výstupního registru na zadanou adresu do paměti přímo - vždy to musí být "nadvakrát": nejprve z V/V registru do procesoru (do některého jeho pomocného registru, který je jinak pro uživatele neviditelný) a odsud, ještě v rámci téže instrukce, do paměti (analogicky pro obrácený směr).
Otázkou ovšem je, zda by tuto maximální rychlost nedokázal využít někdo jiný než procesor a jak.
Jedinou možností, jak "obejít" procesor a zajistit přenos dat po adresové sběrnici z paměti přímo do V/V registru resp. naopak, je využít adresovou sběrnici pro adresování jednoho účastníka přenosu (nejspíše paměti), a druhého adresovat jiným způsobem. Teprve pak je možné implementovat techniku, které se příznačně říká Direct Memory Access (zkratkou DMA), česky: přímý přístup do paměti.
U mikroprocesorových systémů má realizaci této techniky na starosti specializovaný obvod, tzv. řadič přímého přístupu do paměti (DMA-řadič). Jeho úkolem je tedy zajišťovat přenos dat po datové sběrnici přímo mezi vstupně-výstupními zařízeními a pamětí, bez dočasného ukládání těchto dat kdekoli v pomocných registrech a bez účasti a bez zprostředkování procesorem.
Má-li ovšem DMA řadič zajistit takovýto přímý přístup do paměti, musí umět ovládat operační paměť - posílat jí adresy po adresové sběrnici a generovat nezbytné řídicí signály, jež jsou předávanz po řídicí sběrnici. Kromě toho se DMA-řadič musí umět také dohodnout s procesorem, protože v daném okamžiku může i procesor chtít pracovat s pamětí. Nejčastější řešení je takové, že o využití paměti rozhoduje procesor a DMA-řadič v okamžiku skutečné potřeby žádá procesor o přidělení sběrnic a s nimi o právo přístupu k paměti. Jakmile procesor této žádosti vyhoví, stává se DMA-řadič výlučným pánem paměti a všech sběrnic a může zprostředkovat přímý přenos dat mezi V/V zařízením a pamětí. Po jeho skončení pak zase vrací sběrnice (a s nimi i paměť) zpět procesoru.
V praxi jsou DMA-řadiče tvořeny několika samostatnými kanály, z nichž každý je pevně vyhrazen určitému zařízení - proto, aby jej mohl adresovat již dříve naznačeným "jiným způsobem". Ten spočívá v tom, že mezi zařízením a jemu vyhrazeným kanálem DMA-řadiče vedou dva signály: jedním zařízení signalizuje svou připravenost a žádá o zprostředkování přenosu dat z pamětia do ní a druhým kanál DMA-řadiče odpovídá na tuto výzvu.
DMA řadič přitom může pracovat v různých režimech - může zajišťovat jednotlivé přenosy, tedy po každém jednotlivém přístupu do paměti zase sběrnice vrátit procesoru, nebo si je může ponechat tak dlouho, dokud je co přenášet. Tímto způsobem pak dokáže skutečně využít maximální možnou rychlost přenosu dat po datové sběrnici. DMA řadič není řízen programem, resp. strojovými instrukcemi, a nemá tudíž režii, která by připadala na načítání z paměti



2012 ©