Neposreden dostop do pomnilnika (DMA) v računalniški arhitekturi

Preizkusite Naš Instrument Za Odpravo Težav





Za izvajanje računalniškega programa zahteva sinhrono delovanje več kot ene komponente računalnika. Na primer Procesorji - zagotavljanje potrebnih nadzornih informacij, naslovov ... itd., Vodili - za prenos informacij in podatkov v in iz pomnilnika na V / I naprave ... itd. Zanimiv dejavnik sistema bi bil način obdelave prenosa informacij med procesorjem, pomnilnikom in V / I napravami. Običajno obdelovalci nadzorujejo ves postopek prenosa podatkov, vse od začetka prenosa do shranjevanja podatkov na cilju. To doda obremenitev procesorja in večino časa ostane v idealnem stanju, s čimer se zmanjša učinkovitost sistema. Da bi pospešil prenos podatkov med V / I napravami in pomnilnikom, krmilnik DMA deluje kot vodja postaje. DMA krmilnik prenaša podatke z minimalnim posredovanjem procesorja.

Kaj je krmilnik DMA?

Izraz DMA pomeni neposreden dostop do pomnilnika. Strojna naprava, ki se uporablja za neposreden dostop do pomnilnika, se imenuje DMA krmilnik. DMA krmilnik je krmilna enota , del V / I naprave vmesniško vezje , ki lahko z minimalnim posredovanjem procesorja prenaša bloke podatkov med V / I napravami in glavnim pomnilnikom.




Diagram krmilnika DMA v računalniški arhitekturi

DMA krmilnik nudi vmesnik med vodilom in vhodno-izhodnimi napravami. Čeprav podatke prenaša brez posredovanja procesorja, jih nadzoruje procesor. Procesor sproži krmilnik DMA s pošiljanjem začetnega naslova, števila besed v podatkovnem bloku in smeri prenosa podatkov, tj. iz V / I naprav v pomnilnik ali iz glavnega pomnilnika v V / I naprave. Na krmilnik DMA je mogoče povezati več zunanjih naprav.

DMA v računalniški arhitekturi

DMA v računalniški arhitekturi



DMA krmilnik vsebuje naslovno enoto za generiranje naslovov in izbiro V / I naprave za prenos. Vsebuje tudi nadzorno enoto in števec podatkov za vodenje števila števila prenesenih blokov in prikaz smeri prenosa podatkov. Ko je prenos končan, DMA obvesti procesorja tako, da sproži prekinitev. Tipični blokovni diagram krmilnika DMA je prikazan na spodnji sliki.

Tipični blok diagram krmilnika DMA

Tipični blok diagram krmilnika DMA

Delovanje krmilnika DMA

Za prenos podatkov mora krmilnik DMA deliti vodilo s procesorjem. Naprava, ki v določenem času zadrži vodilo, se imenuje vodilo vodila. Ko je treba opraviti prenos iz V / I naprave v pomnilnik ali obratno, procesor ustavi izvajanje trenutnega programa, postopoma Program števec, premakne podatke prek sklada in nato pošlje signal za izbiro DMA krmilniku DMA prek naslovnega vodila.

Če je krmilnik DMA prost, zahteva od procesorja nadzor nad vodilom tako, da dvigne signal zahteve za vodilo. Procesor podeli vodilo krmilniku z dvigom signala za odobritev vodila, zdaj je DMA krmilnik glavni vodilo vodila. Procesor sproži krmilnik DMA s pošiljanjem pomnilniških naslovov, števila blokov podatkov, ki jih je treba prenesti, in smeri prenosa podatkov. Po dodelitvi naloge prenosa podatkov krmilniku DMA, namesto da idealno počaka do zaključka prenosa podatkov, procesor nadaljuje izvajanje programa po pridobivanju navodil iz sklada.


Prenos podatkov z DMA v računalniku z DMA

Prenos podatkov v računalnik s krmilnikom DMA

DMA krmilnik ima zdaj popoln nadzor nad vodili in lahko neposredno komunicira s pomnilnikom in V / I napravami, neodvisno od CPU-ja. Omogoča prenos podatkov v skladu z nadzornimi navodili, ki jih prejme procesor. Po zaključku prenosa podatkov onemogoči signal zahteve za vodilo in CPU onemogoči signal za odobritev vodila, s čimer se nadzor nad vodili premakne na CPU.

Ko želi V / I naprava sprožiti prenos, pošlje signal zahteve DMA krmilniku DMA, za katerega krmilnik potrdi, da je prosta. Nato krmilnik zahteva procesor za vodilo in dvigne signal zahteve za vodilo. Po prejemu signala za odobritev vodila prenese podatke iz naprave. Za n kanalizirani krmilnik DMA je mogoče povezati n število zunanjih naprav.

DMA podatke prenaša v treh načinih, ki vključujejo naslednje.

do) Rafalni način : V tem načinu DMA preda vodila na CPU šele po zaključku celotnega prenosa podatkov. Če pa CPU potrebuje vodilo, mora ostati idealen in počakati na prenos podatkov.

b) Način kraje cikla : V tem načinu DMA daje nadzor nad vodili CPU po prenosu vsakega bajta. Nenehno izdaja zahtevo za nadzor nad vodilom, opravi prenos enega bajta in vrne vodilo. S tem CPU ni treba dolgo čakati, če potrebuje vodilo za nalogo z večjo prioriteto.

c) Prozorni način: Tu DMA prenaša podatke samo, kadar CPU izvaja navodilo, ki ne zahteva uporabe vodilov.

8237 DMA krmilnik

  • 8237 ima 4 V / I kanale, skupaj s prilagodljivostjo povečevanja števila kanalov.
  • Vsak kanal je mogoče programirati posebej in ima 64k naslov in podatke.
  • Blok krmiljenja časa, nadzorni blok ukaza programa, blok prednostnega dajalnika so trije glavni bloki 8237A.
  • Notranji časovni in zunanji krmilni signal poganja blok za krmiljenje časa.
  • Različni ukazi, ki jih mikroprocesor dodeli DMA, dešifrira nadzorni blok programskega ukaza.
  • Kateremu kanalu je treba dati največjo prednost, odloča prioriteta blok kodirnika .
    8237A ima 27 notranjih registrov.

8237A deluje v dveh ciklih - Idealni cikel in aktivni cikel, kjer vsak cikel vsebuje 7 ločenih stanj, sestavljenih iz vsakega časovnega obdobja.

S0- Prvo stanje, ko je krmilnik zahteval vodilo in čakal na potrditev s strani procesorja.

S1, S2, S3, S4 se imenujejo delovna stanja 8237A, kjer se dejansko prenašajo podatki. Če je za prenos čakalnih stanj potreben več časa, se med temi državami doda SW.

Za prenos med pomnilnikom in pomnilnikom je treba opraviti prenose iz pomnilnika in zapise v pomnilnik. Za en prenos je potrebnih osem držav. Prva štiri stanja z indeksi S11, S12, S13, S14 opravijo prenos branja iz pomnilnika, naslednja štiri S21, S22, S23, S24 pa za prenos v pomnilnik.

DMA preide v idealno stanje, ko noben kanal ne zahteva storitve in izvede stanje SI. SI je neaktivno stanje, kjer je DMA neaktiven, dokler ne prejme zahteve. V tem stanju je DMA v programskem stanju, kjer lahko procesor DMA programira.

Ko je DMA v idealnem stanju in ne prejme nadaljnjih zahtev po kanalih, odda HRQ signal procesorju in vstopi v aktivno stanje, kjer lahko začne prenos podatkov bodisi v zaporednem načinu, v načinu kraje cikla ali v prozornem načinu.

8237 PinDiagram

8237 Pin-diagram

8257 DMA krmilnik

Ko je združen z eno vhodno / izhodno napravo Intel 8212, krmilnik 8257 DMA tvori popoln 4-kanalni kanal DMA krmilnik . Po prejemu zahteve za prenos 8257 krmilnik-

  • Od procesorja pridobi nadzor nad sistemsko vodilo.
  • Priznana je zunanja naprava, priključena na kanal z najvišjo prioriteto.
  • Najmanj pomembni bitji pomnilniškega naslova se premaknejo nad naslovnimi črtami A0-A7 sistemskega vodila.
  • Najpomembnejši 8 bitov pomnilniškega naslova se prek podatkovnih vrstic pripeljejo do vhoda / izhoda 8212.
  • Ustvari ustrezne krmilne signale za prenos podatkov med zunanjimi napravami in naslovljenimi pomnilniškimi lokacijami.
  • Ko se prenese določeno število bajtov, krmilnik obvesti CPU konec prenosa z aktiviranjem izhoda števca terminalov (TC).

Za vsak kanal 8257 vsebuje dva 16-bitni registri - 1) DMA naslovni register in 2) Terminalni števec, ki ga je treba inicializirati, preden je kanal omogočen. Naslov prve lokacije pomnilnika, do katere je treba dostopati, se naloži v DMA naslovni register. Spodnji 14 bitov vrednosti, naložene v registru števila terminalov, kaže število ciklov DMA minus eno pred aktiviranjem izhoda štetja terminalov. Vrsta operacije za kanal je označena z najpomembnejšima dvema bitoma registra števila terminalov.

8257 Diagram pinov

8257 Diagram pinov

Prednosti in slabosti krmilnika DMA

Prednosti in slabosti krmilnika DMA vključujejo naslednje.

Prednosti

  • DMA pospeši delovanje pomnilnika z izogibanjem vpletenosti CPU-ja.
  • Preobremenitev dela na CPU se zmanjša.
  • Za vsak prenos je potrebno le nekaj števila urnih ciklov

Slabosti

  • Težava s skladnostjo predpomnilnika je vidna, ko se za prenos podatkov uporablja DMA.
  • Poveča ceno sistema.

DMA ( Neposreden dostop do pomnilnika ) krmilnik se uporablja v grafičnih karticah, omrežnih karticah, zvočnih karticah itd ... DMA se uporablja tudi za prenos znotraj čipov v večjedrnih procesorjih. Če deluje v enem od treh načinov, lahko DMA znatno zmanjša obremenitev procesorja. V katerem od načinov DMA ste že sodelovali? Kateri način je po vašem mnenju učinkovitejši?