O modalitate de a face schimb de date cu UV se schimbă în modul de acces direct la memorie (DMA). În acest mod, schimbul de date între UV și memoria principală a microcomputerelor are loc fără participarea procesorului. Schimbul în modul DMA este controlat nu de programul executat de procesor, ci de circuitele electronice externe procesorului. În mod obișnuit, schemele care controlează schimbul în modul DMA sunt plasate într-un controler special, care se numește controler de acces direct la memorie.
Schimbul de date în modul DMA permite utilizarea de dispozitive de stocare de mare viteză microcomputer externe, cum ar fi hard disk-uri, disc magnetic, deoarece PDP poate oferi un timp de partajare cu un octet de date între memorie și HEV ciclu de acces de memorie egal.
Există două tipuri de acces la memorie directă cu "captură de buclă". Cea mai simplă modalitate de a organiza un DMA este de a folosi acele cicluri de CPU pentru schimbul în care nu schimbă date cu memorie. În astfel de cicluri, controlerul DMA poate schimba datele cu memoria, fără a interfera cu funcționarea procesorului. Cu toate acestea, este necesar să se izoleze astfel de cicluri, astfel încât să nu existe o suprapunere temporară în schimbul PDR cu operațiunile de schimb inițiate de către procesor. La unele procesoare, se generează un semnal special de control, indicând ciclurile în care procesorul nu accesează interfața sistemului. Atunci când se utilizează alte procesoare pentru a izola astfel de cicluri, este necesar să se utilizeze circuite selective speciale în controlerele PDP, ceea ce le complică designul. Aplicarea metodei considerate de organizare a PDP nu reduce performanța microcalculatorului, dar în acest caz, schimbul în modul DMA este posibil numai în momente aleatorii prin octeți sau cuvinte.
Mai frecvent este RAP cu "ciclul de captură" și deconectarea forțată a procesorului de la magistrala de interfață a sistemului. Pentru a pune în aplicare un astfel de regim DMA sistem de interfață microcalculator este completată de două linii pentru transmiterea semnalelor de control „cerință pentru accesul direct la memorie“ (TPDP) și „Furnizarea de acces direct la memorie“ (CNDO).
Semnalul de comandă al TPR este format din controlerul de acces direct al memoriei. Procesorul primeste acest semnal, suspendă executarea instrucțiunii următoare, fără a aștepta finalizarea acesteia, furnizează semnalul de control al interfeței sistemului CNDO și deconectat de la magistrala de interfață de sistem. Din acest punct, toate autobuzele interfeței sistemului sunt controlate de controlerul PDP. controler DMA folosind magistrala de interfață de sistem, comunică cu un octet de date sau cuvânt din memoria microcalculator și apoi, eliminarea revenirea semnalului TPDP al procesorului de control de interfață de sistem. După ce controlerul DMA este gata să facă schimb de următorul octet, acesta din nou „surprinde“ ciclul CPU, și așa mai departe. D. în intervalele dintre procesor semnale TPDP continuă să execute instrucțiunile de program. Astfel, executarea programului încetinește, dar într-o măsură mai mică decât atunci când se schimbă în modul de întrerupere.
O schemă bloc a unui simplu controler PDP care asigură introducerea datelor în memoria unui microcalculator la inițiativa UM în modul "Ciclu de captare" este prezentată în Fig. 3.17.
Fig. 3.17. Controlerul DMA pentru introducerea datelor din UV în modul "ciclu de captare" și deconectarea procesorului de la magistrala de interfață a sistemului
Folosind exemplul unui controler DMA simplu, am considerat doar procesul de pregătire a controlerului și transferul direct al datelor în modul DMA. În practică, orice sesiune de schimb de date cu UV în modul DAP este întotdeauna inițiată de programul executat de procesor și include următorii doi pași.
1. În pregătirea pentru următoarea sesiune UV modul procesor de schimb, schimb controlat de programul interoghează starea TDM (verifică disponibilitatea sa de a împărtăși), și trimite o echipa de UW instruirea la schimbul de sclavi. O astfel de formare poate fi limitată, de exemplu, să se mute capetele la piesa dorită în unitatea de disc. Apoi, registrele controlerului DMA sunt încărcate. În acest preparat pentru schimbul de în modul DMA este completat și CPU pentru a efectua un alt program.
2. Schimbul de date în modul RAP începe după finalizarea operațiunilor pregătitoare în UV, la inițiativa fie a UV, după cum sa discutat mai sus, fie a procesorului. În acest caz, controlerul PDP trebuie completat cu un registru de stare și de control, al cărui conținut determină modul de operare al controlerului PDP. Unul dintre biții din acest registru va iniția schimbul de date cu UV. Încărcarea informațiilor în registrul stării și controlului controlerului PDP se face programabil.
Cel mai frecvent este schimbul în modul de acces direct la memorie cu blocarea procesorului. Aceasta diferă de DAP cu "captură de buclă" prin aceea că controlul interfeței de sistem este transferat la controlerul DMA nu pentru timpul de schimb cu un octet, ci pentru timpul de schimb de blocuri de date. Un astfel de mod DMA este utilizat în cazurile în care timpul de schimb al unui octet de la UV este comparabil cu ciclul busului de sistem.
Microcomputer poate fi folosit de mai multe UV funcționează în modul DMA. Furnizarea unei astfel de interfețe pentru magistrala de autobuz pentru schimbul de date se realizează pe o bază prioritară. Prioritățile slave puse în aplicare în același mod ca și în schimbul de date în modul de întrerupere, dar în loc de semnale de control „întrerupere cerință“ și „furnizarea de întrerupere“ (Fig. 18 Organizarea de întreruperi în microcalculatorului) semnalele sunt folosite pentru a „cerință de acces direct“ și „Furnizarea de acces direct“ , respectiv.