Директан приступ меморији (DMA)

При програмски управљаном улазу–излазу ефикасност коришћења процесора се драстично смањује када треба вршити пренос блокова података између већег броја локација главне меморије и периферних уређаја. Овај се недостатак отклања увођењем паралелизма у раду процесора, с једне стране, и контролера (адаптера) периферног уређаја, с друге стране. То се постиже тако што више периферних уређаја имају могућност приступа главној меморији помоћу посебног система који се назива директни приступ меморији, или DMA пренос (од енгл. Direct Memory Access – директни приступ меморији).

Путеви реализације преноса при програмираном улазу–излазу приказани су на слици а), а општи начин спрезања при директном приступу меморији приказан је на слици б).

Путеви програмираног и DMA преноса

Путеви програмираног и DMA преноса

Директан приступ меморији је начин рада система који омогућава да брзи улазно–излазни уређаји директно комуницирају са главном меморијом не ометајући нормалан рад централног процесора. Њиме се постиже највећа могућа брзина улазно–излазног преноса. За реализацију директног приступа меморији мора постојати ван процесора посебан контролер, тзв. DMA контролер (нека врста специјализованог процесора), реализован хардверски као посебно коло високог степена интеграције због потребне брзине рада.

За реализацију директног приступа меморији потребно је да предност у коришћењу магистрале има DMA контролер. На тај начин се омогућава директно повезивање главне меморије и DMA контролера, а за то време се одлаже извршење програма. Комуникација између главне меморије и неког DMA контролера врши се по методу “крађа“ циклуса од централног процесора ради преноса једне машинске речи. Увек када истовремено и DMA контролер и процесор треба да приступе меморији приоритет има DMA контролер. Фактички се због спорости периферија процесору само повремено спречава приступ меморији тако да то не утиче битно на ефикасност рада самог процесора.

"крађа циклуса"

„крађа циклуса“

DMA контролер је потчињен централном процесору који иницира и завршава пренос, одређује посао који треба обавити, као и шта треба урадити у неким непредвиђеним ситуацијама активности контролера.

DMA укључује додатни модул на системску магистралу. DMA контролер преузима управљање системом од процесора. Када процесор жели да прочита или упише блок података он издаје команду DMA контролеру задајући следеће информације:

– да ли се захтева читање или упис
– адресу у/и уређаја
– почетну локацију у меморији за упис или читање
– број речи које треба прочитати или уписати

Процесор затим наставља неки други посао. DMA контролер преноси цео блок података реч по реч директно у или из меморије без проласка кроз процесор. Када је пренос завршен DMA контролер шаље сигнал прекида процесору. Процесор је укључен у пренос података само на почетку и на крају преноса.

DMA контролер садржи одређени додатни хардвер.

компоненте DMA контролера

компоненте DMA контролера

Пре свега, мора имати адресни регистар којим се адресира главна меморија при улазно-излазном преносу. Како је често потребно пренети блок сукцесивних меморијских локација, адресни регистар треба да буде бројачког типа. Осим тога, хардвер у DMA контролеру треба да дефинише крај директног приступа меморији. У ту сврху се уводи посебан регистар – регистар дужине блока. На почетку преноса у овај се регистар поставља број локација меморијског блока и тај се садржај смањује при сваком приступу меморији.

DMA контролер треба да преузме управљање магистралом у циљу преноса података до и од меморије. Због тога DMA контролер мора натерати процесор да привремено суспендује рад. Процесор се суспендује пре него што му треба магистрала. DMA контролер затим преноси једну реч и враћа управљање процесору. Ово није прекид, зато што процесор само паузира током једног тактног интервала. Иако се чини да процесор ради спорије за пренос великих блокова података DMA је много ефикаснији од прекидног или програмираног у/и.

Директни приступ меморији служи за брзи пренос података. Типичне примере коришћења представљају преноси са диск јединицама, екранима, брзим претварачима, а такође, и пренос између два процесора.

За повезивање хард дискова РС рачунари врло често користе PIO (енгл. programed input/output) уместо DMA преноса. Иако супериоран по перформансама, у тренутку када се формирао стандардни интерфејс (IDE/EIDE) за РС рачунаре, DMA је био спорији јер је везан за брзину магистрале (ISA) кoja је у то време заиста представљала велико ограничење.

Advertisements

Оставите одговор

Попуните детаље испод или притисните на иконицу да бисте се пријавили:

WordPress.com лого

Коментаришет користећи свој WordPress.com налог. Одјавите се / Промени )

Слика на Твитеру

Коментаришет користећи свој Twitter налог. Одјавите се / Промени )

Фејсбукова фотографија

Коментаришет користећи свој Facebook налог. Одјавите се / Промени )

Google+ photo

Коментаришет користећи свој Google+ налог. Одјавите се / Промени )

Повезивање са %s