Директни приступ меморији (ДМА) у архитектури рачунара

Испробајте Наш Инструмент За Елиминисање Проблема





За извршавање рачунарског програма потребан је синхрони рад више од једне компоненте рачунара. На пример, Процесори - пружање потребних контролних информација, адреса ... итд., Сабирница - за пренос информација и података у и из меморије на И / О уређаје ... итд. Интересантан фактор система био би начин на који управља преносом података између процесора, меморије и И / О уређаја. Обично процесори контролишу сав процес преноса података, све од покретања преноса до складиштења података на одредишту. То додаје оптерећење процесору и већину времена остаје у идеалном стању, чиме се смањује ефикасност система. Да би се убрзао пренос података између И / О уређаја и меморије, ДМА контролер делује као мастер станице. ДМА контролер преноси податке уз минималну интервенцију процесора.

Шта је ДМА контролер?

Термин ДМА означава директни приступ меморији. Хардверски уређај који се користи за директан приступ меморији назива се ДМА контролер. ДМА контролер је управљачка јединица , део И / О уређаја коло интерфејса , који може преносити блокове података између И / О уређаја и главне меморије уз минималну интервенцију процесора.




ДМА дијаграм контролера у архитектури рачунара

ДМА контролер пружа интерфејс између магистрале и улазно-излазних уређаја. Иако преноси податке без интервенције процесора, њима управља процесор. Процесор покреће ДМА контролер слањем почетне адресе, броја речи у блоку података и смера преноса података, тј. са У / И уређаја у меморију или из главне меморије на У / И уређаје. На ДМА контролер може се повезати више спољних уређаја.

ДМА у архитектури рачунара

ДМА у архитектури рачунара



ДМА контролер садржи јединицу адресе, за генерисање адреса и одабир И / О уређаја за пренос. Такође садржи контролну јединицу и број података за вођење бројања броја пренетих блокова и указивање на смер преноса података. Када се пренос заврши, ДМА обавештава процесор подизањем прекида. Типични блок дијаграм ДМА контролера приказан је на доњој слици.

Типични блок дијаграм ДМА контролера

Типични блок дијаграм ДМА контролера

Рад ДМА контролера

ДМА контролер мора да дели магистралу са процесором да би извршио пренос података. Уређај који у одређеном тренутку држи магистралу назива се магистрала магистрале. Када треба извршити пренос са И / О уређаја у меморију или обрнути стих, процесор зауставља извршавање тренутног програма, увећавајући Програм бројач, премешта податке преко стека, а затим шаље сигнал одабира ДМА ДМА контролеру преко магистрале адреса.

Ако је ДМА контролер бесплатан, он захтева контролу сабирнице од процесора подизањем сигнала сабирнице. Процесор додељује магистралу контролеру подизањем сигнала дозволе магистрале, сада је ДМА контролер главни магистрала. Процесор покреће ДМА контролер слањем меморијских адреса, броја блокова података који се преносе и смера преноса података. Након додељивања задатка преноса података ДМА контролеру, уместо да идеално чека до завршетка преноса података, процесор наставља извршавање програма након преузимања упутстава из стека.


Пренос података ДМА-ом у рачунару ДМА-ом

Пренос података у рачунару помоћу ДМА контролера

ДМА контролер сада има потпуну контролу сабирница и може директно да комуницира са меморијом и И / О уређајима независно од ЦПУ-а. Омогућава пренос података у складу са контролним упутствима која прима процесор. Након завршетка преноса података, онемогућава сигнал захтева сабирнице, а ЦПУ онемогућава сигнал одобрења сабирнице, премештајући тако контролу сабирница на ЦПУ.

Када И / О уређај жели да покрене пренос, тада шаље сигнал ДМА захтева ДМА контролеру, за који контролер потврђује да ли је слободан. Тада контролер захтева процесор за сабирницу, подижући сигнал захтева сабирнице. Након пријема сигнала са одобрења сабирнице преноси податке са уређаја. За н каналисани ДМА контролер може се повезати н број спољних уређаја.

ДМА преноси податке у три начина која укључују следеће.

до) Рафални режим : У овом режиму ДМА предаје магистрале ЦПУ-у тек након завршетка целокупног преноса података. У међувремену, ако ЦПУ захтева сабирницу, мора остати идеалан и сачекати пренос података.

б) Режим крађе циклуса : У овом режиму, ДМА даје контролу над сабирницама на ЦПУ након преноса сваког бајта. Непрекидно издаје захтев за контролу магистрале, врши пренос једног бајта и враћа магистралу. По овом ЦПУ не мора дуго да чека ако му треба магистрала за задатак са већим приоритетом.

ц) Транспарентни режим: Овде ДМА преноси податке само када ЦПУ извршава упутства која не захтевају употребу сабирница.

8237 ДМА контролер

  • 8237 има 4 И / О канала, заједно са флексибилношћу повећања броја канала.
  • Сваки канал се може програмирати појединачно и има 64к адресу и могућност података.
  • Блок за управљање временом, блок за управљање наредбама програма, блок приоритетног кодера су три главна блока 8237А.
  • Интерни временски и спољашњи управљачки сигнали покрећу се управљачким блоком за управљање временом.
  • Разне наредбе које микропроцесор даје ДМА декодирају управљачки блок команде програма.
  • Приоритет одлучује којем каналу треба дати највећи приоритет блок кодера .
    8237А има 27 интерних регистара.

8237А делује у два циклуса - Идеални циклус и активни циклус, где сваки циклус садржи 7 одвојених стања састављених од по једног такта.

С0- Прво стање, у којем је контролер затражио магистралу и чека потврду од процесора.

С1, С2, С3, С4 називају се радним стањима 8237А у којима се одвија стварни пренос података. Ако је потребно више времена за пренос стања чекања, СВ се додају између ових стања.

За пренос меморије у меморију морају се извршити преноси читања из меморије и уписивања у меморију. За појединачни трансфер потребно је осам држава. Прва четири стања са претплатницима С11, С12, С13, С14 врше пренос читања из меморије, а следећа четири С21, С22, С23, С24 намењена су за уписивање у меморију.

ДМА прелази у идеално стање када ниједан канал не захтева услугу и врши СИ стање. СИ је неактивно стање у којем је ДМА неактиван док не прими захтев. У овом стању, ДМА је у програмском стању где процесор може програмирати ДМА.

Када је ДМА у идеалном стању и не прима даље захтеве за каналом, он шаље процесор ХРК сигнал и улази у активно стање где може започети пренос података било у режиму брзе репродукције, у режиму крађе циклуса или у транспарентном режиму.

8237 ПинДиаграм

8237 Шема пин-а

8257 ДМА контролер

Када се упари са једним Интел 8212 И / О уређајем порта, 8257 ДМА контролер формира комплетна 4 канала ДМА контролер . По пријему захтева за пренос 8257 контролер-

  • Контролу над системском магистралом стиче од процесора.
  • Признаје се периферна опрема повезана са каналом највишег приоритета.
  • Најмање значајни битови меморијске адресе премештају се преко адресних линија А0-А7 системске магистрале.
  • Најзначајнији 8 бит меморијске адресе се пребацују на 8212 И / О порта кроз линије података.
  • Генерише одговарајуће контролне сигнале за пренос података између периферних уређаја и адресираних меморијских локација.
  • Када се пренесе наведени број бајтова, контролер обавештава крај преноса ЦПУ-а активирањем излаза бројача терминала (ТЦ).

За сваки канал 8257 садржи два 16-битни регистри - 1) ДМА регистар адреса и 2) Регистар броја терминала, који треба покренути пре него што се канал омогући. Адреса прве меморијске локације којој треба приступити учитава се у ДМА регистар адреса. 14 битова доњег реда вредности учитане у регистар бројева терминала указује на број ДМА циклуса минус један пре активације излаза броја терминала. Тип операције за канал означен је са најзначајнија два бита регистра бројача терминала.

8257 Шема пин

8257 Шема пин

Предности и недостаци ДМА контролера

Предности и недостаци ДМА контролера укључују следеће.

Предности

  • ДМА убрзава меморијске операције заобилазећи укључивање ЦПУ-а.
  • Преоптерећење рада на ЦПУ се смањује.
  • За сваки пренос потребно је само неколико бројева циклуса такта

Мане

  • Проблем кохеренције кеш меморије може се уочити када се ДМА користи за пренос података.
  • Повећава цену система.

ДМА ( Директан приступ меморији ) контролер се користи у графичким картицама, мрежним картицама, звучним картицама итд ... ДМА се такође користи за пренос чипова у вишејезгарним процесорима. Радећи у једном од своја три режима, ДМА може знатно смањити оптерећење процесора. У ком сте режиму ДМА-а радили? Који од начина који сматрате ефикаснијим?