Организация на директен достъп до паметта

Един от начините за обмен на данни с PU е обменът в режим на директен достъп до паметта (DMA). В този режим обменът на данни между PU и основната памет на микрокомпютъра се извършва без участието на процесора. Обменът в режим DMA се управлява не от програмата, изпълнявана от процесора, а от външни за процесора електронни схеми. Обикновено тези вериги се намират в специален контролер, нареченDMA контролер.

Режимът DMA обикновено се използва по време на първоначалното зареждане на програми в основната памет на микрокомпютър от входни устройства и за организиране на обмен на данни с високоскоростни външни устройства за съхранение (дискови устройства).

PMA контролерът е свързан към основната памет чрез системния интерфейс. Това повдига проблема за споделяне на системните интерфейсни шини между процесора и DMA контролера. Има два основни начина за решаване на този проблем:

1. Осъществяване на обмена в режим DMA с улавяне на цикъл.

2. Осъществяване на обмена в режим PDP с блокиране на процесора.

Най-простият начин за организиране на DMA сулавяне на цикъле да се използва DMA контролерът за онези машинни цикли на процесора, когато процесорът не обменя данни с паметта. По време на такива цикли DMA контролерът може да комуникира с паметта, без да пречи на процесора и без да намалява неговата производителност. Въпреки това, когато се използва този метод за организиране на RAP, обменът е възможен само в произволни моменти и с единични байтове, което не винаги е удобно.

Ето защо на практика по-често се използва DMA режим с улавяне на цикъл и принудително изключване на процесора от системните интерфейсни шини. За реализиране на този режим системният интерфейс е допълнен с две линии за предаване на управляващи сигнали:„Искане за директен достъп до паметта“ (DRMA) и „Потвърждаване на директен достъп до паметта“ (APMA).

Контролният сигнал на RPAP се генерира от PAP контролера. Процесорът, след като получи този сигнал, спира изпълнението на следващата команда, без да чака нейното завършване, издава управляващ сигнал PPMA към системния интерфейс и прекъсва връзката с шините на системния интерфейс. От този момент нататък управлението на системните интерфейсни шини се прехвърля към PMA контролера. Контролерът, чрез системните интерфейсни шини, обменя един байт или дума данни с паметта на микрокомпютъра и след това, след премахване на PDAP сигнала, връща управлението на системния интерфейс на процесора.

Веднага след като DMA контролерът е готов да обмени следващия байт, той отново улавя цикъла на процесора. Тази процедура ще продължи, докато всички данни бъдат прехвърлени. В интервалите между сигналите на SPDP процесорът продължава да изпълнява програмните инструкции. Така изпълнението на програмата на процесора се забавя, но в по-малка степен, отколкото при обмен в режим на прекъсване.

DMA сзаключване на процесорасе различава от DMA с улавяне на цикъл по това, че управлението на системния интерфейс се прехвърля към DMA контролера за цялата продължителност на обмена на блок данни. Такъв режим DMA е необходим в случаите, когато процесорът няма време да изпълни поне една инструкция между последователни операции на обмен в режим DMA и следователно режимът на улавяне на цикъла няма смисъл. Тази ситуация възниква, когато времето за обмен на един байт между PU и паметта е сравнимо с цикъла на процесора поради ниската производителност на последния.

Към един PDP контролер могат да се свържат няколко PU, които получават право да обменят данни с памет в съответствие с техните приоритети.

PMA контролерите обикновено се изпълняват като единичен чип, за дакоито са свързани няколко PU.