CursMS12_2014_prezentat

17
•1 Liliana Dobrica, Sisteme cu Microprocesoare 2013-2014 1 Agenda Agenda DMA si DMA Controlled-I/O Memoria cache on-board (rest) Liliana Dobrica, Sisteme cu Microprocesoare 2013-2014 2 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?

Transcript of CursMS12_2014_prezentat

Page 1: CursMS12_2014_prezentat

•1

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 1

AgendaAgenda

• DMA si DMA Controlled-I/O• Memoria cache on-board (rest)

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 2

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?

Page 2: CursMS12_2014_prezentat

•2

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 3

Transfer DMA Transfer DMA –– DIRECT MEMORY ACCESSDIRECT 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 4

Ciclul DMA

• Semnalul HOLD solicită accesul DMA. Microprocesorul răspunde la o astfel de solicitare suspendând programul curent și trecând liniile de magistrală într-o stare de impendanță ridicata.

• Semnalul HOLD are prioritate mai mare decât INTR și NMI, doar pinul de RESET are prioritate mai mare.

Page 3: CursMS12_2014_prezentat

•3

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 5

Ciclul DMA

• Semnalul de HOLD întrerupe execuția instrucțiunii curente.• Semnalul de HLDA indică faptul că microprocesorul a efectuat

toate operațiile necesare eliberării magistralei sistem.• Logica și semnalele necesare desfășurării ciclului DMA sunt

asigurate de un controler DMA – în cazul circuitelor 8086/8088 – circuitul suport 8237, în cazul microprocesoarelor mai noi funcționalitatea a fost preluată de chipset-ul plăcii de bază – de exemplu 82357 Integrated Peripheral Controller ce include 2 circuite 8237 plus două circuite 8259A.

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 6

Circuitul 8237

• Circuit cu patru canale DMA compatibil cu microprocesoarele 8086/8088.

• Permite transferuri de până la 1.6MB/s.• Fiecare canal permite adresarea unui bloc

de date de 64K.

Page 4: CursMS12_2014_prezentat

•4

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 7

Circuitul 8237

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 8

8237 - pini

• CS\ – (I) permite programarea circuitului; • HRQ – Hold request – (O) semnalul prin care se

solicită ciclul DMA către microprocesor• HLDA – (I) semnalul prin care se confirma controlul

magistralei• EOP\ – End Of Process – (IO) permite semnalizarea

terminării procesului de transfer• DREQ3-0 – DMA Request – (I) câte o linie de solicitare

ciclu DMA pentru fiecare din cele patru canale• DACK3-0 – (O) DMA channel Acknowledge

Page 5: CursMS12_2014_prezentat

•5

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 9

8237 - pini

• READY – (I) folosit introducerea unor stari de asteptare in cazul conectarii la periferice lente

• DB0 - DB7 – linii bidirecţionale de date cu trei stăriutilizate pentru programarea circuitului

• A0 - A3 – linii bidirecţionale de adresă cu trei stări folosite pentru selectarea registrelor interne in cazul programarii sau pentru a forma adresa de transfer in timpul operatiei DMA.

• A4 - A7 – linii de ieşire de adresă cu trei stări ce formeaza adresa de transfer in timpul operatiei DMA

• /IOR, /IOW – linii bidirecţionale de scriere/citire registre interne şi control periferice

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 10

8237 - pini

• AEN – adress enable - folosit pentru un latch extern pe 8 biţi sau pentru oprirea accesului altor device-uridin sistem la magistrală

• ADSTB – adress strobe – folosit pentru strobarea (memorarea) adresei prin latch

• /MEMR, /MEMW – permite controlul ciclurilor de citire scriere în cazul memoriilor

Page 6: CursMS12_2014_prezentat

•6

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 11

Conectarea la microprocesor

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 12

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.

Page 7: CursMS12_2014_prezentat

•7

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 13

Încascadarea a trei circuite 8237

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 14

8237 – Registre interne

Page 8: CursMS12_2014_prezentat

•8

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 15

8237 – Registre interne

• CAR – Current Address Register – stochează adresa pe 16 biți necesară transferului DMA. Specific fiecărui canal în parte. Permite (in/de)crementarea automată. (câte unul pentru fiecare canal)

• CWCR – Current Word Count Register – indică dimensiunea blocului transferat (-1) (câte unul pentru fiecare canal)

• BA – BWC – Base Address – Base Word Count – utilizați pentru auto-inițializare pentru regiștrii precedenți. (câte unul pentru fiecare canal)

• TAR – Temporary Adress Register – permite transferul a 2 octeţi(16 biţi) î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 16

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-to-mem

• Bit 1 = 0 - ..

• Etc.

Page 9: CursMS12_2014_prezentat

•9

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 17

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 către 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 biţi) 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 18

8237 CR – Posibile configurări

• 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.

Page 10: CursMS12_2014_prezentat

•10

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 19

8237 – Registre interne

• MR – Mode Register – setează modul de operare (câte 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 20

8237 MR – Posibile configurări

• Autoinitialize – Prin configurarea bitului de Autoiniţializare, valorile originale scrise în Base Adress şi Base Word Count se vor copia în regiştrii CAR şi CWCR după semnalul de TC.

Page 11: CursMS12_2014_prezentat

•11

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 21

8237 MR – Posibile configurări

Trei tipuri de transfer posibile: Read, Write, Verify• Write – transferă date de la un device I/O (activând IOR\) la memorie

activând MEMW\• Read - transferă date de la o memorie la un device I/O activând 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 22

8237 – Registre interne

• RR – Request register – este utilizat pentru a solicita un transfer DMA din program – util pentru transferuri de tip memory-to-memory.

• 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.

Page 12: CursMS12_2014_prezentat

•12

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 23

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 24

8237 – Registre interne

• SR – Status Register – permite verificarea stării 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.

Page 13: CursMS12_2014_prezentat

•13

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 25

Accesarea registrelor

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 26

Exemplu – interfațare

Page 14: CursMS12_2014_prezentat

•14

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 27

Niveluri de memorie

Microprocesor

UCP

Regis trii On-chip cache

On-board Cache

(SRAM)

Memorie principala (DRAM)

Memorie secundara (Hard-disk)

Memorie de masa (Banda

magnetica)

Timp (ns): 1s 10s 100s 10000000s 10000000000s 10s ms 10 sec Cap(byte): 100s Ks Ms Gs Ts

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 28

Funcționarea memoriei cache on-board

• Descriere

Control Control

Magistrala de Date

Microprocesor

Memorie principala

Loop

Memorie Cache

Magistrala de adrese

Rutina este copiata in cache

Loop

Loop

Page 15: CursMS12_2014_prezentat

•15

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 29

Funcționarea 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 copiainformatiei 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, microprocesorulciteste codul sau datele din memoria principala si le scrie in locatia corespunzatoaredin 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 factoruluihit 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 factorulhit 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 atatcreste si costul acesteia.

• Organizare. 2 forme: direct-mapped cache si two-way set associative.

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 30

Funcționarea 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.

x(n)

Page n

x(…)

Page

x(2)

Page 2

x(1)

Pagina 1

x

Cache

64KB x(0)

Pagina 0 Memoria principala

Page 16: CursMS12_2014_prezentat

•16

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 31

Funcționarea memoriei cache on-board

2-way set associative• Cache memory este organizata

in 2 bancuri de cate 32kBfiecare, Bank A si Bank B.

• Paginile din memoria principalaau aceeasi marime ca a unuibanc din cache.

• Sunt de doua ori mai multepagini decat la organizarea directmapped.

• O locatie de memorie la unanumit offset din fiecare paginase poate mapa intr-o locatie dememorie cache fie in A fie in B.

• De exemplu, X(2) poate fi incache fie in X(A) ori X(B), cu unfactor hit rate mai mare.

x(n)

Page n

x(…)

Page

x(2)

Page 2

x(1)

Page 1

x(B)

Bank B

32KB x(0)

Page 0 Memoria Principala

x(A)

Bank A

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 32

Funcționarea 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 inlocuirestabileste care block va fi inlocuit. Pentru 2-way set associative se utilizeaza algoritmulLRU least recently used (LRU). LRU inlocuieste blocul din cache la care nu s-a facutreferire de cea mai lunga perioada de timp. Astfel, subsistemul hardware urmarestedaca 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.

Page 17: CursMS12_2014_prezentat

•17

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 33

Funcționarea 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.