Sunteți pe pagina 1din 17

Agenda

DMA si DMA Controlled-I/O


Memoria cache on-board (rest)

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

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?

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

Transfer DMA DIRECT MEMORY ACCESS


Transferul DMA este utilizat pentru scopuri diverse: citirea i
scrierea n memoria secundar, retea locala sau alt fel de
comunicatii.
Tehnica DMA ofer acces direct la sistemul de memorie, pe
parcursul unui ciclu DMA microprocesorul fiind disable.
ntr-un ciclu DMA sunt implicate dou semnale de magistral:
HOLD i HLDA.

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

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.

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

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.

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

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.

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

Circuitul 8237

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

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

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

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

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

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

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

10

Conectarea la microprocesor

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

11

Moduri de Transfer posibile

Single Transfer Mode controlerul este programat pentru realizarea unui


singur transfer. Dup realizarea transferului registrul CWCR va ajunge la 0 i
se va emite un semnal Terminal Count (TC). La terminarea ciclului de transfer
al datelor, HRQ devine inactiva si microprocesorul preia controlul magistralei.
Block Transfer Mode transferul este initiat prin semnal pe una din liniile
DREQ si se desfasoara pana la terminarea intregului bloc de date;
Dezactivarea liniei DREQ nu afecteaza transferul blocului de date.
Demand Transfer Mode odata initiat ciclul DMA, datele sunt transferate
continuu cat timp DREQ este activ si valoarea din registrul intern CWC este
autoincrementata de la 0000H la FFFFH.
Cascade Mode controlerul este nseriat in sistem cu alte controlerele 8237.

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

12

ncascadarea a trei circuite 8237

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

13

8237 Registre interne

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

14

8237 Registre interne


CAR Current Address Register stocheaz adresa pe 16 bii
necesar transferului DMA. Specific fiecrui canal n parte. Permite
(in/de)crementarea automat. (cte unul pentru fiecare canal)
CWCR Current Word Count Register indic dimensiunea
blocului transferat (-1) (cte unul pentru fiecare canal)
BA BWC Base Address Base Word Count utilizai pentru
auto-iniializare pentru regitrii precedeni. (cte unul pentru fiecare
canal)
TAR Temporary Adress Register permite transferul a 2 octei
(16 bii) n cazul memory-to-memory.
TWCR Temporary Word Count Register indic dimensiunea
blocului transferat n cazul unui transfer memory-to-memory.

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

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.

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

16

Transfer Memory to Memory


Programarea registrului CR (bitul 0) pentru selectarea canalelor 0,
1;
Se va programa apoi registrul de Request software pentru a se
genera software DREQ;
Dup eliberarea controlului magistralei de ctre CPU ncepe
transferul n modul Block Transfer;
Se citesc date de la adresa sursa pe canal 0 si sunt depuse n
registrul tampon intern (TR 8 bii) dup care este initiat un ciclu
de scriere la adresa destinatie iar datele sunt transmise pe al
doilea canal (canal 1);
Transferul se termin cu generarea unui semnal TC.
La terminarea ciclului DMA registrul TR ramane cu ultimul octet
transferat.
Liliana Dobrica, Sisteme cu Microprocesoare
2013-2014

17

8237 CR Posibile configurri


Compressed Timing Un transfer se realizeaz n 5
ciclii de ceas. n cazul unor dispozitive I/O sau
memorii mai rapide se poate configura un transfer n 2
ciclii de ceas.
Fixed Priority prioritatea cererilor de transferuri
DREQ pe baza indexului liniei 0-3.
Rotating priority cel care a avut cea prioritate are
apoi cea mai mic prioritate.

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

18

8237 Registre interne


MR Mode Register seteaz modul de operare (cte unul pentru fiecare
canal).

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

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

19

8237 MR Posibile configurri


Autoinitialize Prin configurarea bitului de
Autoiniializare, valorile originale scrise n Base Adress i
Base Word Count se vor copia n regitrii CAR i CWCR
dup semnalul de TC.

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

20

10

8237 MR Posibile configurri


Trei tipuri de transfer posibile: Read, Write, Verify
Write transfer date de la un device I/O (activnd IOR\) la memorie
activnd MEMW\
Read - transfer date de la o memorie la un device I/O activnd MEMR\
i IOW\
Verify pseudo transferuri (se comport ca i n cazul Read sau Write,
dar las liniile MEMW\, IOR\, MEMR\ i IOW\ inactive)

Ex. Specificati octetul de mod pentru canalul 2 DMA ca sa transfere date


de la un periferic in memorie incepand cu adresa A000H si pana la
AFFFH. Microprocesorul nu ramane complet blocat pe toata durata
ciclului DMA. La sfrasitul ciclului DMA se reinitializeaza.

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

21

8237 Registre interne


RR Request register este utilizat pentru a solicita un transfer
DMA din program util pentru transferuri de tip memory-tomemory.
Cand bitul de cerere este setat incepe ciclul DMA, iar cand este
resetat ciclul DMA se opreste.
Canalul DMA trebuie programat in modul block transfer.

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

22

11

8237 Registre interne


MRSR Mask Register Set/Reset Intrarea DREQ a canalului
corespunzator este dezactivata daca bitul din masca este setat.
MSR Mask Register permite setarea concomitent pentru toate cele
patru canale

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

23

8237 Registre interne


SR Status Register permite verificarea strii celor patru canale.
Pentru fiecare canal specifica daca a ajuns la numarul final TC
(terminal count) si daca sunt cereri in asteptare pentru fiecare canal.

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

24

12

Accesarea registrelor

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

25

Exemplu interfaare

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

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

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

27

Funcionarea memoriei cache on-board


Descriere

Magistrala de adrese
Microprocesor

Control

Memorie
Cache
Loop

Memorie
principala

Control

Loop
Loop
Magi strala de Date

Rutina este copiata in cache

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

28

14

Funcionarea memoriei cache on-board


Definitii si proiectare
Definitie: Un ciclu de memorie este considerat cache hit, daca informatia de accesat
se gaseste in memoria principala si memoria cache. In acest caz se acceseaza copia
informatiei din cache si nu se mai initiaza un ciclu de memorie principala.
Definitie. Cache miss este conditia indeplinita atunci cand informatia din cache nu
este aceeasi cu cea din memoria principala adresata. In acest caz, microprocesorul
citeste codul sau datele din memoria principala si le scrie in locatia corespunzatoare
din cache.
Definitie. Hit rate masoara cat de eficient opereaza subsistemul de memorie
Hit rate = (numarul de hits/ numarul total de cicluri magistrala) x 100%
Proiectarea memoriei cache. Prin proiectare se poate imbunatati marimea factorului
hit rate.
Elementele de interes sunt: marimea cache, organizarea si metoda de update a
memoriei cache.
Marimea. Cu cat este mai mare memoria cache, cu atat este mai mare factorul
hit rate. Sansa ca informatia cautata sa se afle in cache este mai mare intr-o
memorie cache mai mare. Totusi cu cat este mai mare memoria cache cu atat
creste si costul acesteia.
Organizare. 2 forme: direct-mapped cache si two-way set associative.

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

29

Funcionarea memoriei cache on-board


Direct-mapped cache
Memoria cache este un array
organizat intr-un singur banc
de memorie de 64kB.
Memoria principala este
vazuta ca o serie de 64 kB
pagini.
X(0), X(1), , X(N) sunt
locatii de date din memorie la
acelasi offset X in toate
paginile din memoria
principala, care se mapeaza
pe singura locatie X din
memoria cache.

Cache

64KB

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

x(n)
x()
x(2)
x(1)
x(0)
Pag e
Page 2
Pag ina 1
Pag ina 0

Page n

Memoria pri ncipala

30

15

Funcionarea memoriei cache on-board


2-way set associative
Cache memory este organizata
in 2 bancuri de cate 32kB
fiecare, Bank A si Bank B.
Paginile din memoria principala
au aceeasi marime ca a unui
banc din cache.
Sunt de doua ori mai multe
pagini decat la organizarea direct
mapped.
O locatie de memorie la un
anumit offset din fiecare pagina
se poate mapa intr-o locatie de
memorie cache fie in A fie in B.
De exemplu, X(2) poate fi in
cache fie in X(A) ori X(B), cu un
factor hit rate mai mare.

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

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

Page n

31

Funcionarea memoriei cache on-board


2wo-way set associative
Metoda de update. Se refera la algoritmul de inlocuire a informatiilor si la politica de
scriere.
Metodele de inlocuire se bazeaza pe faptul ca cea mai recent utilizata informatie are o
sansa mai mare de a fi reutilizata. Pentru associative mapping un algoritm de inlocuire
stabileste care block va fi inlocuit. Pentru 2-way set associative se utilizeaza algoritmul
LRU least recently used (LRU). LRU inlocuieste blocul din cache la care nu s-a facut
referire de cea mai lunga perioada de timp. Astfel, subsistemul hardware urmareste
daca info X(A) din Bank A ori X(B) din Bank B este cea mai recent utilizata.
Examplu: X(0) din pagina 0 tocmai a fost incarcata la X(A) din Bank A; X(B) din Bank
B este din pagina 1 si nu a mai fost accesata de o lunga perioada de timp. O noua info
X(3) din pagina 3 este accesata si trebuie sa inlocuiasca o valoare din X(A) ori X(B).
Pe baza LRU se selecteaza X(B) din Bank B.
LRU pastreaza in cache cea mai recent folosita informatie. Rezulta un factor hit rate
mai mare, deci sistem mai performant.

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

32

16

Funcionarea memoriei cache on-board


2-way set associative
Politica de scriere trebuie sa rezolve problema cum sa se mentina consistent
continutul memoriei principale cu continutul memoriei cache fara a pierde prea mult din
performanta?
write through toate operatiile de scriere au loc si in memoria principala. Daca
locatia adresata este in cache, memoria cache este actualizata sa fie coerenta cu
memoria principala. Pentru scriere, procesorul intotdeauna va avea o viteza mai
mica cu memoria principala. Deoarece procentul de scrieri este mic (ca. 15%),
aceasta schema nu conduce la o reducere prea mare a performantei.
write through with buffered write - este similar cu write-through, dar in locul
scrierii in memoria principala, adresa de scriere si datele sunt stocate intr-un
buffer de viteza mare. Buferul de scriere transfera datele in memoria principala in
timp ce procesorul isi continua activitatea. Ofera o viteza mai mare, dar necesita
un hardware mai complex.
write back se face update doar in memoria cache, care nu mai se pastreaza
coerenta cu memoria principala. Cand blocul este inlocuit din cache, continutul
sau trebuie sa fie copiat inapoi in memoria principala. Ofera o performanta mai
buna, dar este necesar un hardware mai complex.

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

33

17

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