Documente Academic
Documente Profesional
Documente Cultură
Problema
Cum se pot transmite blocuri sau pachete de date de la memorie la un
dispozitiv I/O sau la o alt memorie?
!!! Datele nu necesita procesare.
Ce rol are procesorul n transmiterea datelor?
Ciclul DMA
Semnalul HOLD solicit accesul DMA. Microprocesorul rspunde la o
astfel de solicitare suspendnd programul curent i trecnd liniile de
magistral ntr-o stare de impendan ridicata.
Semnalul HOLD are prioritate mai mare dect INTR i NMI, doar pinul
de RESET are prioritate mai mare.
Ciclul DMA
Semnalul de HOLD ntrerupe execuia instruciunii curente.
Semnalul de HLDA indic faptul c microprocesorul a efectuat
toate operaiile necesare eliberrii magistralei sistem.
Logica i semnalele necesare desfurrii ciclului DMA sunt
asigurate de un controler DMA n cazul circuitelor 8086/8088
circuitul suport 8237, n cazul microprocesoarelor mai noi
funcionalitatea a fost preluat de chipset-ul plcii de baz de
exemplu 82357 Integrated Peripheral Controller ce include 2
circuite 8237 plus dou circuite 8259A.
Circuitul 8237
Circuit cu patru canale DMA compatibil cu
microprocesoarele 8086/8088.
Permite transferuri de pn la 1.6MB/s.
Fiecare canal permite adresarea unui bloc
de date de 64K.
Circuitul 8237
8237 - pini
CS\ (I) permite programarea circuitului;
HRQ Hold request (O) semnalul prin care se
solicit ciclul DMA ctre microprocesor
HLDA (I) semnalul prin care se confirma controlul
magistralei
EOP\ End Of Process (IO) permite semnalizarea
terminrii procesului de transfer
DREQ3-0 DMA Request (I) cte o linie de solicitare
ciclu DMA pentru fiecare din cele patru canale
DACK3-0 (O) DMA channel Acknowledge
8237 - pini
READY (I) folosit introducerea unor stari de
asteptare in cazul conectarii la periferice lente
DB0 - DB7 linii bidirecionale de date cu trei stri
utilizate pentru programarea circuitului
A0 - A3 linii bidirecionale de adres cu trei stri
folosite pentru selectarea registrelor interne in cazul
programarii sau pentru a forma adresa de transfer in
timpul operatiei DMA.
A4 - A7 linii de ieire de adres cu trei stri ce
formeaza adresa de transfer in timpul operatiei DMA
/IOR, /IOW linii bidirecionale de scriere/citire
registre interne i control periferice
8237 - pini
AEN adress enable - folosit pentru un latch extern
pe 8 bii sau pentru oprirea accesului altor device-uri
din sistem la magistral
ADSTB adress strobe folosit pentru strobarea
(memorarea) adresei prin latch
/MEMR, /MEMW permite controlul ciclurilor de citire
scriere n cazul memoriilor
10
Conectarea la microprocesor
11
12
13
14
15
8237 Registrul CR
CR Command Register
permite programarea efectiv
a controlerului.
Ex. Daca se se incarca 01H
in registrul de comanda cum
va opera controllerul?
Bit 0 =1 transfer mem-tomem
Bit 1 = 0 - ..
Etc.
16
17
18
01 ciclu de scriere:
transfer DMA de la un
device IO in memorie
Cum se actualizeaza
valorile din registrele
curente la terminarea
unui ciclul DMA sau
transfer de date
19
20
10
21
22
11
23
24
12
Accesarea registrelor
25
Exemplu interfaare
26
13
Niveluri de memorie
Microproces or
UCP
On-chip
cache
Regis trii
Timp (ns): 1s
10s
Cap(byte): 100s
Ks
On-board
Cache
(SRAM)
100s
Memorie
principala
(DRAM)
10000000s
10s ms
Ms
Memorie
de masa
(B anda
magnetica)
Memorie
secundara
(Hard-dis k)
Gs
10000000000s
10 sec
Ts
27
Magistrala de adrese
Microprocesor
Control
Memorie
Cache
Loop
Memorie
principala
Control
Loop
Loop
Magi strala de Date
28
14
29
Cache
64KB
x(n)
x()
x(2)
x(1)
x(0)
Pag e
Page 2
Pag ina 1
Pag ina 0
Page n
30
15
Bank A
Bank B
x(n)
x()
x(2)
x(1)
32KB
x(A)
x(B)
x(0)
Page 1
Pag e
Page 2
Memoria Principala
Pag e 0
Page n
31
32
16
33
17