next up previous
Következő: Időzítők | Tartalomjegyzék | Előző: Az interrupt vezérlő

DMA (Direct Memory Access)

Ha nagyobb adatmennyiségeket kivánunk a memória egyes részei között mozgatni, vagy egy perifériális eszközről a memóriába beolvasni, akkor ehhez igénybe vehetjük a processzor utasításait. A folyamat óhatatlanul lassú lesz, mert mind az olvasási, mind az írási művelet legalább egy-egy buszciklust igényel; nem is említve még címek számolgatásához szükséges időket. Ezért már régen feltalálták, hogy e műveletek céljaira egy önálló, "cél-processzort" kell használni, amelyik az írási és olvasási címeket automatikusan és igen gyorsan egyesével növeli, és a beolvasott adatot késlekedés nélkül írja a cél-helyre. Természetesen ezen folyamat alatt az "igazi" processzornak hallgatnia kell, nehogy a cím- vagy adatbuszon helyrehozhatatlan keveredés álljon elő. Az IBM-PC -ben is van ilyen ún. DMA vezérlő, mely különösen a mérési eredményekként létrejövő adattömbök mozgatásában jeleskedik. Ezen túlmenően van még egy igen fontos feladata: a DMA vezérlő végzi a dinamikus RAM memória felfrissítését. Az időzítő 1. csatornája kb. 15 microsec.-ként jelzést kült a DMA vezérlőnek. Ez ezt továbbítja a DMA RQ (DMA REQEST) vezetéken e processzornak. A processzor ekkor befejezi az elkezdett processzorciklust, majd visszaüzen a DMA vezérlőnek, hogy az átveheti a buszok vezérlését. A DMA 5 processzorciklus idejéig kezeli a vonalakat. (Érdemes felfigyelni rá: ezen szakasz alatt a processzor számára "nem telik az idő"...). A DMA egység által végrehajtott látszólagos adatblokk-mozgások a memória egy-egy részének felfrissítésével járnak. 512 ilyen felfrissítő ciklus az egész memóriát "felújítja", a teljes memória tehát mintegy milisecundumonként felfrissítésre kerül. Ez bőven elegendő a megbizható, hibamentes működéshez.
next up previous
Következő: Időzítők | Tartalomjegyzék | Előző: Az interrupt vezérlő

1999-09-23