Documente Academic
Documente Profesional
Documente Cultură
Curs 11
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:
Fie structura:
UC
Memorie cache
Memorie operativ
DMA
Periferie
Configuraii DMA:
Procesor
DMA
Porturi
Memorie
Port cu DMA,
DMA cu memoria
Procesor
DMA
Port
...
Memorie
Port
Procesor
DMA
Memorie
Magistral de intrare/ ieire
Port
Port
Port
UC iniiaz transferul;
Transmite controlerului DMA (prin programare):
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:
10
Configuraia terminalelor:
11
12
3 blocuri importante:
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:
Registrele:
14
17
Cascade mode:
18
19
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:
20
Transferul cu compresie:
Generarea adreselor:
21
Descrierea registrelor
23
Command Register:
24
Mode Register:
25
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
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
Status Register:
28
Comenzile software:
29
30
31
32
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
34