Sunteți pe pagina 1din 34

Proiectarea Microsistemelor Digitale

Curs 11

Proiectarea Microsistemelor Digitale

6. Accesul direct la memorie (DMA)


6.1. Posibiliti de conectare a porturilor la UC:

Intrare/ ieire programabil (PIO): transferul se desfoar prin


intermediul UC; folosete intensiv timpul UC;
ntreruperi: procesorul este ntrerupt la transferul fiecrui cuvnt
(octet); multe ntreruperi care nu ntotdeauna pot fi acceptate; rat
de transfer limitat
Accesul direct la memorie (DMA): transfer direct memorie periferic
sau periferic periferic sau memorie memorie (neutilizat pentru c
este mai rapid prin UC); nu implic UC dar cere hardware
suplimentar conectat pe magistrale;

Controler DMA: 8237A

Proiectarea Microsistemelor Digitale

Exemple de periferice care utilizeaz transferul DMA n cadrul PCului: controlere de disc, plci grafice, plci de reea, plci de sunet.
Transferul prin DMA se desfoar n cadrul unui canal DMA
accesibil prin intermediul unor adrese de port;
Exist 8 canale DMA n cadrul PC-ului, cuprinse n 2 circuite 8237A:

Canalul 0: folosit iniial pentru remprosptarea memoriei dinamice;


acum disponibil,
Canalul 1: disponibil,
Canalul 2: pentru controlerele de hard i floppy disc,
Canalul 3: disponibil,
Canalul 4: pentru conectarea n cascad a altui circuit DMA,
Canalul 5: pentru controlerul de hard disk, doar la varianta PS/2 i
disponibil la celelalte variante,
Canalul 6: disponibil,
Canalul 7: disponibil.

Proiectarea Microsistemelor Digitale

Dezavantaj al DMA: afecteaz coerena memoriei cache.

Fie structura:

UC

Memorie cache

Memorie operativ
DMA
Periferie

Dac procesorul acceseaz locaia X din memoria operativ, valoarea


acesteia se va nscrie i n memoria cache i orice acces urmtor la
locaia X va actualiza valoarea din cache dar nu i pe cea din memoria
operativ; dac un periferic acceseaz locaia X, va primi valoarea
veche dac memoria cache nu a fost descrcat n cea operativ.
Similar, dac un periferic scrie n locaia X din memoria operativ,
procesorul va avea valoarea veche n memoria cache; n acest caz
locaia din cache trebuie invalidat.
4

Proiectarea Microsistemelor Digitale

Configuraii DMA:

Magistral comun, controler DMA separat,


Magistral comun, controler DMA integrat,
Magistral de intrare/ ieire distinct.

Magistral comun, controler DMA separat:

Procesor

DMA

Porturi

Fiecare transfer folosete magistrala de 2 ori:

Memorie

Port cu DMA,
DMA cu memoria

UC este oprit de 2 ori/ transfer.

Proiectarea Microsistemelor Digitale

Magistral comun, controler DMA integrat:

Procesor

DMA

Port

...

Memorie

Port

Controlerul DMA este conectat la mai multe porturi.


Fiecare transfer folosete magistrala o singur dat: DMA cu
memoria.
UC este oprit o singur dat/ transfer.
6

Proiectarea Microsistemelor Digitale

Magistral de intrare/ ieire distinct:

Procesor

DMA

Memorie
Magistral de intrare/ ieire

Port

Port

Port

Fiecare transfer folosete magistrala comun o singur dat: DMA


cu memoria.
UC este oprit o singur dat/ transfer.

Proiectarea Microsistemelor Digitale

Comunicarea UC controler DMA:

UC iniiaz transferul;
Transmite controlerului DMA (prin programare):

Operaia (citire sau scriere),


Adresa dispozitivului periferic (portului),
Adresa de nceput a blocului de memorie implicat (poate fi i un singur octet
sau cuvnt),
Dimensiunea blocului de transferat.

UC execut alte operaii (instruciuni) care nu necesit datele care se


transfer;
Controlerul DMA se ocup de transferul memorie port sau port
memorie; folosete magistralele comune ca urmare procesorul este oprit
la fiecare transfer DMA;
Controlerul DMA anun ncheierea transferului prin generarea unei
cereri de ntrerupere ctre UC;
Controlerul DMA i UC folosesc complementar magistralele.

Proiectarea Microsistemelor Digitale

Comunicarea UC DMA periferic:

Perifericul cere transfer de tip DMA activnd intrarea DREQ (DMA Request) a
controlerului DMA;
Controlerul DMA activeaz ieirea sa HRQ spre intrarea HOLD a procesorului
anuntndu-l c are nevoie de magistrale;
Procesorul ncheie ciclul main nceput, i trece magistralele i semnalele de
comand n a 3 a stare, respectiv n starea inactiv, i activeaz ieirea
HLDA anunnd controlerul DMA c a cedat magistralele; cererea de pe
intrarea HOLD trebuie s ramn activ pe toat durata transferului DMA;
Controlerul DMA activeaz ieirea sa DACK comunicnd perifericului c
cererea sa DREQ a fost acceptat i va ncepe transferul;
Controlerul DMA execut transferurile:

Memorie port: pune adresa primului octet (cuvnt) pe magistrala de adrese,


actveaz semnalul de comand MEMR i apoi IOW,
Port memorie: activeaz semnalul de comand IOR, pune adresa primului octet
(cuvnt) pe magistrala de adrese i apoi MEMW;

Dup ncheierea transferurilor controlerul DMA dezactiveaz ieirea HRQ


anunnd procesorul c nu mai are nevoie de magistrale.
9

Proiectarea Microsistemelor Digitale


6.2. Controlerul DMA 82C37A (o variant mai modern a clasicului
8237A)

Dispune de 4 canale independente,


Poate fi cascadat pentru a obine oricte canale,
Control individual (activare/ dezactivare i polaritate) asupra fiecrei
cereri DREQ i fiecrui rspuns DACK,
Permite transfer memorie memorie,
Rat de transfer ridicat:

Pn la 4 MO/ sec. cu tact de 8 MHz i


Pn la 6.25 MO/ sec. cu tact de 12.5 MHz,

Asigur incrementarea sau decrementarea adresei,


Se folosete cu un registru extern pentru jumtatea mai semnificativ a
adresei,
Poate lucra n mai multe moduri,
Compatibil TTL/ CMOS.

10

Proiectarea Microsistemelor Digitale

Configuraia terminalelor:

11

Proiectarea Microsistemelor Digitale

Schema bloc intern:

12

Proiectarea Microsistemelor Digitale

3 blocuri importante:

Timing and Control: se ocup de caracteristicile de timp ale semnalelor


interne i externe,
Program Command Control: decodific diversele comenzi generate de
procesor nainte de tratarea unei cereri DMA; de asemenea decodific
cuvntul Mode Control care selecteaz tipul de transfer DMA,
Priority Encoder: rezolv problemele de prioritate n cazul mai multor cereri
DMA simultane.

Tipuri de transfer:
Tip transfer

5 MHz

8 MHz

12.5 MHz

Unitate de msur

Comprimat

2.5

4.0

6.25

MO/ sec.

Normal I/ E

1.67

2.67

4.17

MO/ sec.

Memorie - memorie

0.63

1.0

1.56

MO/ sec.

Registrele: 2 tipuri:

Pentru fiecare canal,


Comune tuturor canalelor.
13

Proiectarea Microsistemelor Digitale

Registrele:

14

Proiectarea Microsistemelor Digitale

Controlerul DMA este conectat la magistrale i la semnalele de


comand; ieirile sunt n a 3-a stare cnd controlerul este inactiv;
Este necesar un registru pentru liniile A8 A15;
Un transfer este declanat de o cerere pe o linie DREQ;
n prealabil canalul a fost programat prin intermediul registrelor
Command, Mode, Address i Word; de ex. pentru un transfer DMA
port:

Adresa de nceput este ncrcat n Base i Current Address Registers,


ale canalului implicat,
Lungimea blocului este ncrcat n Word Count register corespunztor,
Mode Register corespunztor este programat pentru un transfer
memorie port,
Opiuni sunt selectate prin Command Register i Mode Register,
Bitul de mascare a canalului este pus la 0 pentru a valida o cerere
DREQ; aceasta poate fi un semnal sau o comand software.

Transferul are loc prin activarea semnalelor /MEMR i /IOW cu


actualizarea numrtorului de cuvinte (octei);
Transferul se ncheie cnd Word Count Register ajunge la 0 sau
cnd se activeaz un semnal /EOP.
15

Proiectarea Microsistemelor Digitale

Controlerul poate executa 2 tipuri de cicluri:

Idle cycle: cnd nu exist cerere DREQ,


Active cycle: intr atunci cnd n Idle cycle apare o cerere DREQ
validat; poate lucra n 4 moduri:

Single transfer mode,


Block transfer mode,
Demand transfer mode,
Cascade mode,

Single transfer mode:

Se execut un singur transfer;


Numrtorul de cuvinte va fi decrementat iar cel de adrese va fi
incrementat sau decrementat;
Cnd numrtorul de cuvinte trece de la 0000 la FFFFH, se seteaz
bitul TC (Terminal count) n registrul de stare, se genereaz un impuls
/EOP i canalul se autoiniializeaz,dac s-a cerut aceast opiune; dac
nu, se seteaz bitul de mascare mpreun cu TC i /EOP;
Cererea DREQ trebuie s rmn activ pn cnd rspunsul DACK se
activeaz.
16

Proiectarea Microsistemelor Digitale

Block transfer mode:

Se transfer un bloc cu dimensiunea dat de coninutul numrtorului de


cuvinte;
Transferul este nceput de activarea lui DREQ i continu pn la
trecerea numrtorului de la 0000 la FFFFH sau pn cnd se activeaz
semnalul extern /EOP;
Cererea DREQ trebuie s rmn activ pn cnd se activeaz
rspunsul DACK;
Canalul se autoiniializeaz dac s-a prevzut aceast opiune.

Demand transfer mode:

Se tranfer date continuu pn cnd:

TC este setat sau


/EOP este activat sau
Cererea DREQ devine inactiv.

Mod util atunci cnd un periferic dorete s-i goleasc tamponul de


date, indiferent de capacitatea acestuia.

17

Proiectarea Microsistemelor Digitale

Cascade mode:

Permite extinderea numrului de canale prin legarea n cascad a mai


multor circuite 82C37A;
Figura urmtoare arat o cascadare pe 2 nivele:

Pot fi ataate noi nivele la intrrile DREQ libere ale circuitelor de pe


nivelul 2;
Programarea ncepe cu circuitul cel mai aproape de procesor.

18

Proiectarea Microsistemelor Digitale

Transfer memorie memorie:

Setarea bitului 0 din registrul de comand;


Sunt implicate canalele 0 (sursa) i 1 (destinaia);
Transferul ncepe prin activarea lui DREQ prin hardware sau software;
Data este memorat n registrul temporar intern al controlerului;
Sunt necesare 4 stri pentru tranferul memorie controler i nc 4 stri
pentru transferul controler memorie;
Numrtorul de cuvinte al canalului 1 stabilete numrul de transferuri;
ncheierea transferului are loc atunci cnd numrtorul trece de la 0000
la FFFFH i se activeaz TC i ieirea /EOP; are loc autoiniializarea
canalelor dac s-a prevzut aceast opiune;
Este posibil ca n canalul 0 s se foloseasc aceeai adres pentru toate
transferurile ceea ce nseamn o operaie de umplere a unei zone de
memorie cu aceeai valoare;

19

Proiectarea Microsistemelor Digitale

Prioritatea: 2 tipuri selectabile prin software:

Prioritatea fix:

Fix,
Rotativ.
Dup numrul de ordine, 0 prioritate maxim, 3 prioritate minim;
Dup acceptarea unei cereri de la orice canal, celelalte eventuale cereri
vor trebui s atepte terminarea tratrii cerrii acceptate.

Prioritatea rotativ:

Prioritatea este rotit dup fiecare cedare a magistralelor procesorului;


Previne monopolizarea sistemului de ctre un acelai canal;
Ultimul canal tratat primete prioritate minim, conform figurii:

20

Proiectarea Microsistemelor Digitale

Transferul cu compresie:

Reduce un ciclu de la 4 la 2 stri;


Nu este permis la transferul memorie memorie.

Generarea adreselor:

Jumtatea superioar a magistralei de adrese este multiplexat cu liniile


de date; apare pe linii n timpul strii S1;
Este necesar demutiplexarea cu un registru;
ncrcarea informaiei n registru se face de ctre un semnal generat de
controler (ADSTB);
Activarea ieirilor registrului este realizat de semnalul Address Enable
(AEN), generat de controler;
n cazul transferurilor lungi (Block i Demand Transfer), S1 i ADSTB nu
apar la fiecare transfer ntruct adresele sunt secveniale; S1 i ADSTB
vor apare doar atunci cnd se modific jumtatea superioara a adresei
adic la fiecare 256 transferuri; se ctig timp.

21

Proiectarea Microsistemelor Digitale

Programarea circuitului 82C37A

naintea programrii este necesar dezactivarea circuitului (prin setarea


rangului 2 din registrul de comand) sau mascarea canalului care va fi
programat;
Dup programare se reactiveaz circuitul sau se anuleaz mascarea
canalului;
Dup alimentare se recomand ncrcarea tuturor registrelor cu valori
cunoscute chiar daca unele canale nu se folosesc; pentru depanare.

Descrierea registrelor

Current Address Register:

Cte unul pentru fiecare canal; 16 bii;


Memoreaz adresa utilizat n transferul DMA curent;
Adresa este automat incrementat sau decrementat dup fiecare transfer;
Este scris de procesor n 2 transferuri pe 8 bii;
Se poate autoiniializa, dup un /EOP;
n transferurile memorie memorie incrementarea sau decrementarea pot fi
blocate prin setarea unui bit n Command Register
22

Proiectarea Microsistemelor Digitale

Current Word Count Register:

Cte unul pentru fiecare canal; 16 bii;


Nr. transferurilor = coninut registru + 1;
Este decrementat dup fiecare transfer;
La trecerea din 0000 n FFFFH se va activa TC;
Poate fi scris sau citit de procesor n transferuri pe 8 bii;
Se poate autoiniializa; are loc doar dac se activeaz /EOP;
Dac nu se autoiniializeaz va avea valoarea FFFFH dup TC.

Base Address i Base Word Count Registers:

Cte unul pentru fiecare canal; 16 bii;


Conin valorile iniiale;
Scrise de procesor n transferuri pe 8 bii simultan cu registrele
corespunztoare pentru valorile curente;
Nu pot fi citite de procesor;

23

Proiectarea Microsistemelor Digitale

Command Register:

Controleaz circuitul 82C37A; 8 bii;


Programat de procesor i anulat de RESET sau de o comand Master
Clear;
Structura sa:

24

Proiectarea Microsistemelor Digitale

Mode Register:

Cte unul pentru fiecare canal; 6 bii;


La scriere, n faza de programare, biii 0 i 1 determin canalul care va fi
selectat;
La citire, biii 0 i 1 sunt 1;
Structura sa:

25

Proiectarea Microsistemelor Digitale

Request Register:

Unic; 4 bii;
Asigur cerere DREQ prin software;
Fiecare bit este programabil independent, ntregul registru poate fi ters prin
RESET sau comanda Master Clear;
Biii sunt nemascabili i se supun prioritizrii;
La transferurile memorie memorie, bitul pentru canalul 0 trebuie setat;
Structura sa:

26

Proiectarea Microsistemelor Digitale

Mask Register:

Unic; 4 bii;
Fiecrui canal i este asociat un bit de mascare a cererilor DREQ;
Bitul este setat dac numrtorul de cuvinte ajunge la FFFFH i nu este
programat autoiniializarea;
Fiecare bit poate fi setat sau resetat individual sau n comun;
RESET sau comanda Master Clear seteaz toi biii mascnd astfel orice
cerere;
Comanda Clear Mask Register anuleaz toi biii;
Structura sa:

27

Proiectarea Microsistemelor Digitale

Status Register:

Poate fi citit de procesor;


Arat care canal a ajuns la sfrit i care are cerere DREQ n ateptare;
Dac biii de mascare sunt setai, programul poate afla care canal are cerere
n ateptare i s reseteze selectiv biii de mascare influennd astfel
prioritatea;
Structura sa:

28

Proiectarea Microsistemelor Digitale

Comenzile software:

Comenzi software speciale:

Clear First/ Last Flip Flop,


Set First/ Last Flip Flop,
Master Clear,
Clear Mask Register,
Clear Mode Register Counter.

29

Proiectarea Microsistemelor Digitale

Comenzile referitoare la registrele de cuvnt i de adrese:

30

Proiectarea Microsistemelor Digitale

Sistem cu microprocesor pe 16 bii, cu DMA:

31

Proiectarea Microsistemelor Digitale

Aplicaie: s se scrie programul pentru transferul a 512 cuvinte de la


un port n memorie, ncepnd cu adresa 11000H. Se va folosi
canalul 0 al unui controler DMA.

Se presupune c intrarea /CS a circuitului 82C37A este comandat de


ieirea unui decodificator, corespunztoare combinaiei: A7 = 0, A6 = 1,
A5 = 0, A4 = 0;
Cei 4 bii mai semnificativi ai adresei vor fi furnizai de un Page Register
independent de controler;
Programul va conine secvena de iniializare a canalului 0 i apoi
ateptarea ncheierii transferului;
Programul ncepe cu o scriere la Command Register pentru a dezactiva
circuitul, apoi ncrcarea registrelor de cuvnt i adrese ale canalului 0,
apoi o scriere la Mode Register, la Mask Register i la Command
Register. Dup aceste operaii transferul va ncepe i se va citi continuu
Status Register pentru a afla cnd s-a activat TC corespunztor
canalului 0.

32

Proiectarea Microsistemelor Digitale

Programul:
MOV AL,0A4H
OUT 48H,AL ; write command register pentru dezactivarea circuitului
MOV AX,1000H
OUT 40H,AL
MOV AL,AH
OUT 40H,AL ; scriere adres
MOV AX,01FFH
OUT 41H,AL
MOV AL,AH
OUT 41H,AL ; scriere dat
MOV AL,84H
OUT 4BH,AL ; scriere mode register
MOV AL,00H
OUT 4AH,AL ; scriere mask register (doar pentru canalul 0)

33

Proiectarea Microsistemelor Digitale


MOV AL,0A0H
OUT 48H,AL ; write command register
; transferul ncepe
VER: IN
AL,48H ; citire status register
AND AL,01H
JZ VER
; transferul s-a ncheiat.

34

S-ar putea să vă placă și

  • PMD
    PMD
    Document34 pagini
    PMD
    Pasan Petru
    Încă nu există evaluări
  • Curs 4
    Curs 4
    Document37 pagini
    Curs 4
    Pasan Petru
    Încă nu există evaluări
  • Curs 14
    Curs 14
    Document30 pagini
    Curs 14
    Pasan Petru
    Încă nu există evaluări
  • Curs 10
    Curs 10
    Document23 pagini
    Curs 10
    Pasan Petru
    Încă nu există evaluări
  • Curs 9
    Curs 9
    Document29 pagini
    Curs 9
    Pasan Petru
    Încă nu există evaluări
  • Curs 12
    Curs 12
    Document35 pagini
    Curs 12
    Pasan Petru
    Încă nu există evaluări
  • Curs 13
    Curs 13
    Document25 pagini
    Curs 13
    Pasan Petru
    Încă nu există evaluări
  • Curs 7
    Curs 7
    Document34 pagini
    Curs 7
    Pasan Petru
    Încă nu există evaluări
  • Curs 8
    Curs 8
    Document21 pagini
    Curs 8
    Pasan Petru
    Încă nu există evaluări
  • Curs 6
    Curs 6
    Document26 pagini
    Curs 6
    Pasan Petru
    Încă nu există evaluări
  • Curs 5
    Curs 5
    Document26 pagini
    Curs 5
    Pasan Petru
    Încă nu există evaluări
  • Curs 3
    Curs 3
    Document24 pagini
    Curs 3
    Pasan Petru
    Încă nu există evaluări
  • Curs Flash 1
    Curs Flash 1
    Document35 pagini
    Curs Flash 1
    Alex Alex
    Încă nu există evaluări
  • Curs 2
    Curs 2
    Document39 pagini
    Curs 2
    Pasan Petru
    Încă nu există evaluări
  • LabAC 1
    LabAC 1
    Document5 pagini
    LabAC 1
    cornel_punga1504
    Încă nu există evaluări