Professional Documents
Culture Documents
DMA Kontroler
DMA Kontroler
Контролер директног
приступа меморији (DMA)
Контролери директног приступа меморији (Direct Memory
Access – DMA Controler) настали су као посебни уређаји који су
смештени између контролера периферије и магистрале података
(слика 3.1). Када се бит спремности контролера периферије постави
периферија сигналом PerSyn јавља да је спремна за размену
података са ДМА Контролером. ДМА контролер сигналом DMASyn
обавештава периферију да је размена података преко Data линија
обављена.
Слика 3.1: ДМА контролер се налази између контролера периферије и
магистрале, а посебним сигналима повезан је са процесором
Паралелно са овом активношћу ДМА контролер поставља захтев
процесору за добијање меморијског циклуса (DMA Req), када има
податак или слободан регистар података за размену са меморијом. Када
процесор има могућност, он посебним сигналом (DMA Ack) одобри
коришћење магистрале. Онда контролер директног приступа меморији
(ДМА контролер) преузима магистралу – поставља адресне и контролне
линије и, ако се ради о упису у меморију, линије података. Овакве ДМА
контролере називаћемо ДМА контролерима у ужем смислу.
Потребно је уочити да ДМА контролер поставља захтев за
преузимање магистрале, а процесор му тај захтев одобрава чим
ослободи магистралу. Ако у току извршавања једне машинске
инструкције стигне захтев за преузимање магистрале, он ће бити
одобрен чим магистрала буде слободна. Нема чекања да се инструкција
заврши као код механизма прекида.
На слици 3.2 приказан је временски дијаграм заузећа магистрале
(када у току извршења нема ДМА захтева) током извршавања једне
хипотетичне инструкције која захтева два обраћања меморији. Затим је
приказан захтев за преузимање магистрале (DMA Req). Захтев ће бити
одобрен одмах по ослобађању магистрале (DMA Ack), а захтев укинут
по завршетку меморијског циклуса. Тек по завршетку директног
приступа меморији процесор преузима магистралу, са закашњењем ∆t.
Извршење инструкције продужено је за интервал ∆t, који је нешто
краћи од меморијског циклуса, а знатно краћи од машинског циклуса
(време потребно за извршење једне машинске инструкције). Код
програмираног улаза/излаза за пренос једног знака било је потребно
извршити неколико инструкција, а са ДМА контролером један
меморијски циклус.
Слика 3.2: Преузимање магистрале код директног приступа меморији -
ДМА
Савремени контролери периферија са ДМА приступом интегрисани
су у јединствену целину, па су контролни, статусни и регистар података
заједнички за контролер периферије и контролер директног приступа
меморији. На слици 3.3 приказана је структура контролера периферије
са ДМА приступом. Треба обратити пажњу да су најважнији битови
контролног (Start и IE) и статусног (бит спремности - Ready) регистра
исти код контролера периферије, ДМА контролера и контролера
периферије са ДМА приступом.
Код ДМА контролера могућа су два режима рада и код неких ДМА
контролера у контролном регистру постоји бит којим се бира један од
њих.
Слика 3.3: Структура Контролера периферије са ДМА
приступом
За рад са споријим периферијама користи се пренос података у
режиму реч по реч (cycle stealing) - ДМА контролер, по размени
једне речи са меморијом (један меморијски циклус) ослобађа
магистралу и за следећи пренос поново захтева магистралу.
У burst режиму рада, по добијању магистрале ДМА контролер
пренесе цео блок података и тек онда ослободи магистралу. Овај
режим рада користи се код веома брзих периферија. Већина ДМА
контролера користи само један режим, мада поједини контролери
имају и оба режима рада и онда треба изабрати режим рада.
У контролном регистру ДМА контролера постоје и битови
којима се одрећује смер преноса (периферија - меморија, меморија -
периферија или меморија - меморија).
ДМА контролер сем поменутих регистара има и адресни регистар
и бројач података.
Адресни регистар ДМА контролера (AR DMA) садржи адресу
меморијске локације са којом треба разменити следећи податак. У
фази иницијализације задатка (у/и активности) у адресни регистар се
уписује почетна адреса блока података у меморији који треба
разменити са периферијом. Током рада овај податак аутоматски
ажурира сам ДМА контролер. Поједини контролери директног
приступа меморији имају могућност директног преноса података из
меморије у меморију и онда имају два адресна регистра: изворни
адресни регистар директног приступа меморији (Source Address
Register DMA – SAR DMA) и одредишни адресни регистар ДМА
(Destination Address Register DMA – DAR DMA).
Бројач података ДМА контролера (DC DMA) садржи број
података које треба разменити између меморије и периферије. У фази
иницијализације задатка (у/и активности) у бројач података се уписује
величина блока података за размену изражена у јединицама преноса
(бајт, 16-битна, 32-битна или 64-битна реч). Током рада овај податак
аутоматски ажурира сам ДМА контролер.
Бит спремности статус регистра ДМА контролера означава крај
задатка (као код контролера периферије). Важно је уочити да је сада
крај задатка (пренос блока података) када цео блок података буде
пренет. Тек онда је ДМА контролер спреман за нови задатак (пренос
блока података).
Сходно биту спремности понаша се и прекид, када је дозвољен.
ДМА контролер ће захтев за прекид упутити када задатак (пренос
блока података) буде завршен.
У/ И са ДМА контролером