Izravni pristup memoriji (DMA) u arhitekturi računala

Isprobajte Naš Instrument Za Uklanjanje Problema





Za izvršavanje računalnog programa potreban je sinkroni rad više od jedne komponente računala. Na primjer, Procesori - pružanje potrebnih kontrolnih informacija, adresa ... itd., Sabirnica - za prijenos informacija i podataka u i iz memorije na I / O uređaje ... itd. Zanimljiv čimbenik sustava bio bi način na koji rukuje prijenosom podataka između procesora, memorije i I / O uređaja. Obično procesori kontroliraju sav postupak prijenosa podataka, odmah od pokretanja prijenosa do pohrane podataka na odredištu. To dodaje opterećenje procesoru i većinu vremena ostaje u idealnom stanju, čime se smanjuje učinkovitost sustava. Da bi se ubrzao prijenos podataka između I / O uređaja i memorije, DMA kontroler djeluje kao glavni upravljač stanice. DMA kontroler prenosi podatke uz minimalne intervencije procesora.

Što je DMA kontroler?

Pojam DMA znači izravni pristup memoriji. Hardverski uređaj koji se koristi za izravan pristup memoriji naziva se DMA kontroler. DMA kontroler je upravljačka jedinica , dio I / O uređaja sklop sučelja , koji može prenositi blokove podataka između I / O uređaja i glavne memorije uz minimalne intervencije procesora.




DMA dijagram kontrolera u arhitekturi računala

DMA kontroler pruža sučelje između sabirnice i ulazno-izlaznih uređaja. Iako prenosi podatke bez intervencije procesora, njima upravlja procesor. Procesor pokreće DMA kontroler slanjem početne adrese, broja riječi u podatkovnom bloku i smjera prijenosa podataka, tj. s U / I uređaja u memoriju ili s glavne memorije na U / I uređaje. Na DMA kontroler može se povezati više vanjskih uređaja.

DMA u arhitekturi računala

DMA u arhitekturi računala



DMA kontroler sadrži adresnu jedinicu za generiranje adresa i odabir I / O uređaja za prijenos. Sadrži i upravljačku jedinicu i broj podataka za vođenje brojeva broja prenesenih blokova i naznaku smjera prijenosa podataka. Kada je prijenos završen, DMA obavještava procesor podizanjem prekida. Tipični blok dijagram DMA kontrolera prikazan je na donjoj slici.

Tipični blok dijagram DMA kontrolera

Tipični blok dijagram DMA kontrolera

Rad DMA kontrolera

DMA kontroler mora dijeliti sabirnicu s procesorom kako bi izvršio prijenos podataka. Uređaj koji u određenom trenutku drži sabirnicu naziva se magistrala sabirnice. Kada se mora izvršiti prijenos s I / O uređaja u memoriju ili obratno, procesor zaustavlja izvršavanje trenutnog programa, povećavajući Program brojač, premješta podatke preko hrpe, a zatim šalje signal odabira DMA DMA kontroleru preko sabirnice adresa.

Ako je DMA kontroler besplatan, on zahtijeva kontrolu sabirnice od procesora podizanjem signala zahtjeva sabirnice. Procesor dodjeljuje sabirnicu kontroleru podizanjem signala saobraćanja sabirnice, sada je DMA kontroler glavni sabirnica. Procesor pokreće DMA kontroler slanjem memorijskih adresa, broja blokova podataka koji se prenose i smjera prijenosa podataka. Nakon što dodijeli zadatak prijenosa podataka DMA kontroleru, umjesto da idealno čeka do završetka prijenosa podataka, procesor nastavlja izvršavanje programa nakon što preuzme upute iz stoga.


Prijenos podataka DMA-om u računalu DMA-om

Prijenos podataka u računalu pomoću DMA kontrolera

DMA kontroler sada ima potpunu kontrolu sabirnica i može izravno komunicirati s memorijom i I / O uređajima neovisno o CPU-u. Omogućuje prijenos podataka prema kontrolnim uputama koje je primio procesor. Nakon završetka prijenosa podataka, onemogućuje signal zahtjeva sabirnice, a CPU onemogućava signal odobrenja sabirnice, premještajući tako kontrolu sabirnica na CPU.

Kada I / O uređaj želi pokrenuti prijenos, tada šalje DMA signal zahtjeva DMA kontroleru, za koji kontroler potvrđuje je li slobodan. Tada kontroler traži procesor za sabirnicu, podižući signal zahtjeva sabirnice. Nakon primanja signala odobrenja sabirnice prenosi podatke s uređaja. Za n kanalizirani DMA kontroler može se povezati n broj vanjskih uređaja.

DMA prenosi podatke u tri načina koji uključuju sljedeće.

do) Način praska : U ovom načinu rada DMA predaje sabirnice na CPU tek nakon završetka cijelog prijenosa podataka. U međuvremenu, ako CPU zahtijeva sabirnicu, mora ostati idealan i čekati prijenos podataka.

b) Način krađe ciklusa : U ovom načinu rada DMA daje kontrolu nad sabirnicama na CPU nakon prijenosa svakog bajta. Kontinuirano izdaje zahtjev za kontrolu sabirnice, vrši prijenos jednog bajta i vraća sabirnicu. Po ovom CPU ne mora dugo čekati treba li sabirnicu za zadatak većeg prioriteta.

c) Prozirni način rada: Ovdje DMA prenosi podatke samo kada CPU izvršava uputu koja ne zahtijeva upotrebu sabirnica.

8237 DMA kontroler

  • 8237 ima 4 I / O kanala, uz fleksibilnost povećanja broja kanala.
  • Svaki se kanal može programirati pojedinačno i ima 64k adresu i mogućnost podataka.
  • Blok upravljanja vremenom, upravljački blok naredbe programa, blok prioritetnog kodera, tri su glavna bloka 8237A.
  • Unutarnji vremenski i vanjski upravljački signali pokreću se upravljačkim blokom vremena.
  • Razne naredbe koje mikroprocesor daje DMA-u dekodiraju se upravljačkim blokom programske naredbe.
  • Prioritet odlučuje kojem kanalu treba dati najveći prioritet blok kodera .
    8237A ima 27 internih registara.

8237A djeluje u dva ciklusa - idealni ciklus i aktivni ciklus, gdje svaki ciklus sadrži 7 zasebnih stanja koja se sastoje od po jednog takta.

S0 - Prvo stanje, u kojem je regulator zatražio sabirnicu i čeka potvrdu od procesora.

S1, S2, S3, S4 nazivaju se radnim stanjima 8237A u kojima se odvija stvarni prijenos podataka. Ako je potrebno više vremena za prijenos stanja čekanja, SW se dodaju između tih stanja.

Za prijenos memorije u memoriju moraju se izvršiti prijenosi čitanja iz memorije i upisivanja u memoriju. Za pojedinačni transfer potrebno je osam država. Prva četiri stanja s pretplatama S11, S12, S13, S14 vrše prijenos čitanja iz memorije, a sljedeća četiri S21, S22, S23, S24 namijenjena su za upisivanje u memoriju.

DMA prelazi u idealno stanje kada niti jedan kanal ne traži uslugu i izvršava SI stanje. SI je neaktivno stanje u kojem je DMA neaktivan sve dok ne primi zahtjev. U ovom je stanju DMA u programskom stanju u kojem procesor može programirati DMA.

Kad je DMA u idealnom stanju i ne prima daljnje zahtjeve za kanalom, on šalje procesor HRQ signal i ulazi u aktivno stanje gdje može započeti prijenos podataka bilo u načinu brze reprodukcije, u načinu krađe ciklusa ili u prozirnom načinu.

8237 PinDiagram

8237 Dijagram pinova

8257 DMA kontroler

Kada se upari s jednim Intel 8212 ulazno / izlaznim uređajem, 8257 DMA kontroler tvori kompletna 4 kanala DMA kontroler . Po primitku zahtjeva za prijenos 8257 kontroler-

  • Preuzima procesor nad sistemskom sabirnicom.
  • Priznaje se periferna oprema spojena na kanal najvišeg prioriteta.
  • Najmanje značajni bitovi memorijske adrese premještaju se preko adresnih linija A0-A7 sistemske sabirnice.
  • Najznačajniji 8 bita memorijske adrese preusmjereni su na I / O priključak 8212 putem podatkovnih linija.
  • Generira odgovarajuće upravljačke signale za prijenos podataka između perifernih uređaja i adresiranih memorijskih mjesta.
  • Kad se prenese navedeni broj bajtova, kontroler obavještava kraj prijenosa CPU-a aktiviranjem izlaza brojača terminala (TC).

Za svaki kanal 8257 sadrži dva 16-bitni registri - 1) DMA registar adresa i 2) Registar brojeva terminala, koji treba pokrenuti prije nego što se omogući kanal. Adresa prvog mjesta memorije kojoj treba pristupiti učitava se u DMA registar adresa. 14 bitova nižeg reda vrijednosti učitane u registar brojeva terminala označava broj DMA ciklusa minus jedan prije aktivacije izlaza broja terminala. Vrsta operacije za kanal označena su s najznačajnija dva bita registra brojača terminala.

8257 Shema pinova

8257 Shema pinova

Prednosti i nedostaci DMA kontrolera

Prednosti i nedostaci DMA kontrolera uključuju sljedeće.

Prednosti

  • DMA ubrzava memorijske operacije zaobilazeći uključenost CPU-a.
  • Preopterećenje rada na CPU se smanjuje.
  • Za svaki prijenos potreban je samo nekoliko brojeva ciklusa takta

Mane

  • Problem koherencije predmemorije može se vidjeti kada se DMA koristi za prijenos podataka.
  • Povećava cijenu sustava.

DMA ( Izravni pristup memoriji ) kontroler se koristi u grafičkim karticama, mrežnim karticama, zvučnim karticama itd ... DMA se također koristi za prijenos unutar čipa u višejezgrenim procesorima. Radeći u jednom od svoja tri načina rada, DMA može znatno smanjiti opterećenje procesora. U kojem ste od načina DMA-a surađivali? Koji od načina koji smatrate učinkovitijim?