Sunteți pe pagina 1din 40

Analiza tipurilor de memorie SRAM i DRAM

1. Obiectivul lucrrii
Lucrarea de fa i propune prezentarea comparativ a modulelor de memorie RAM statice (SRAM) i dinamice (DRAM) din punct de vedere al construciei, funcionrii, parametrilor i performanelor.

2. Introducere teoretic
Subsistemul de memorie al unui calculator reprezint ansamblul unitilor de memorie, mpreun cu algoritmii necesari pentru controlul transferurilor i memorarea informaiilor, algoritmi care pot fi implementai hardware sau software. Subsistemul de memorie include att locaiile de memorie propriu -zise, ct i circuitele necesare pentru adresarea locaiilor i controlul operaiilor de citire i scriere. O parte din aceste circuite se gsesc n unitatea de memorie respectiv, altele sunt externe, fiind de obicei integrate n controlerul unitii de memorie.
Obiectivul principal n proiectarea oricrui subsistem de memorie este realizarea unei capaciti de memorare adecvat sistemului de calcul, cu un nivel acceptabil de performane, la un cost rezonabil. Trebuie subliniat faptul c nu ntotdeauna obiectivul este acela de a obine o capacitate de memorare ct mai mare. 2.1. Caracteristicile unitilor de memorie Capacitatea de memorare reprezint numrul locaiilor (celulelor) de memorie coninute de o unitate de memorie. Aceasta depinde de tehnologia de fabricaie i se exprim n cuvinte de informaie memorat (cuv), dimensiunea cuvntului fiind diferit de la un calculator la altul. Timpul de acces la o unitate de memorie (tA) este timpul necesar localizrii unei celule de memorie, pentru transferul de informaii la/de la locaia de memorie respectiv. Acesta reprezint intervalul de timp calculat din momentul n care o unitate master lanseaz o comand ctre o unitate de memorie i pn n momentul n care informaia este transferat n sensul dorit. Rata de acces (rA) este inversa timpului de acces, fiind exprimat n cuvinte pe secund:

rA =

[cuv/s].

(1)

Timpul de ciclu la o unitate de memorie (tC) este timpul minim ntre dou accese succesive i reprezint timpul din momentul n care o unitate master lanseaz o comand (COM 1) spre unitatea de memorie i pn cnd poate lansa o nou comand (COM 2) la aceeai unitate de memorie. tC > tA, diferena lor numindu-se timp de revenire (tR = tC tA). Acesta reprezint timpul minim necesar pentru inactivarea primei comenzi, pn la activarea celei de-a doua.

Rata de transfer (rT) este inversa timpului de ciclu i reprezint cantitatea maxim de informaie (exprimat n cuvinte pe secund), care poate fi transferat la/de la memorie ntr-o secund: rT = [cuv/s]. (2)

Costul total al unitii de memorie (CT) include, pe lng costul celulelor de memorie propriu-zise, i costul circuitelor de acces la aceste celule. Pentru compararea diverselor uniti de memorie ntre ele, se utilizeaz costul unitar (CU), care reprezint costul de memorare a unui cuvnt de informaie. Costul unitar se determin prin raportarea costului total (CT) la capacitatea de memorare (CM):

CU =

[cost/cuv].

(3)

Cu ct memoria este mai rapid, cu att costul unitar este mai mare. Modul de acces la locaiile unitii de memorie arat ordinea n care informaia memorat poate fi accesat. Acesta poate fi serial sau paralel. Dac locaiile de memorie pot fi accesate n orice ordine, iar timpul de acces este independent de locaia accesat, atunci accesul este aleator, iar unitatea de memorie se numete memorie cu acces aleator. n general, memoriile semiconductoare sunt memorii cu acces aleator. Prin ierarhizarea unitilor de memorie, blocurile de informaii cu probabilitatea cea mai mare de accesare sunt aduse pe niveluri superioare, mai aproape de unitatea central (localitate spaial). Dintre acestea, informaiile cele mai recent accesate sunt pstrate n apropierea procesorului (localitate temporal). Elementele subsistemului ierarhizat de memorie, ilustrate n figura 1, sunt: registrele procesorului (RP); memoria cache (MC); memoria primar sau principal (MP); memoria intermediar (MI); memoria secundar (MS); memoria teriar (MT).

Fig. 1. Elementele subsistemului ierarhizat de memorie.

Registrele procesorului (RP) sunt cele mai rapide elemente de memorare, dar i cele mai scumpe. Acestea sunt accesate la viteza intern a procesorului gazd, vitez limitat de logica de control a transferurilor dintre registre. Datorit tehnologiei actuale, timpii de acces sunt foarte mici (zecimi de ns). Registrele au o capacitate de memorare mic (sute de octei KB) i pstreaz informaia primar (instruciuni i date), necesar procesorului n momentul prelucrrii. Memoria primar sau principal (MP) (primary memory, main memory) reprezint memoria de lucru a sistemului de calcul, fiind realizat cu circuite integrate de memorie DRAM i avnd o capacitate de memorare relativ mare (sute de MB). MP pstreaz informaiile active, care vor fi apelate de ctre procesor, dar care nu sunt imediat necesare acestuia. Informaiile devin active prin transferarea lor din MS n MP, fiind memorate sub form de blocuri de informaii, n zone de memorie, proprii fiecrui program. Viteza de lucru a MP este mult mai mic dect cea a registrelor procesorului (cu 23 ordine de mrime), avnd timpi de acces aleator de zeci pn la sute de ns. Memoria cache (MC), numit i memorie imediat, este o memorie de dimensiuni relativ mici (zeci sute de KB), mai rapid dect memoria primar, care se interpune ntre procesor i MP, n scopul reducerii discrepanelor mari dintre performanele acestora. Aceasta are rol de memorie tampon ntre procesor i MP, pstrnd informaiile cele mai recent folosite de procesor, duplicri ale celor din MP . MC este o memorie rapid, realizat cu circuite integrate de memorie SRAM. Are timpul de acces de 210 ori mai mic (ns) dect cel al memoriei primare, fiind ns i de cteva ori mai scump. La realizarea ei, se dorete ca procesorul s lucreze ct mai mult timp cu MC, i nu cu MP. Pentru o memorie cache bine implementat, procesorul lucreaz cu aceasta circa 7090 % din timpul total de lucru cu memoria. Memoria secundar (MS) este o memorie nevolatil i reprezint o extensie ieftin a MP, la fel cum MP este o extensie ieftin a registrelor procesorului. n general, MS este realizat cu uniti de memorie pe suport magnetic (disc magnetic, band magnetic) i are capaciti de memorare foarte mari (zeci sute de GB). Viteza de operare este mult mai mic dect cea a MP, avnd un timp de acces cu 56 ordine de mrime mai mare dect cel al MP. Fiind foarte lent, MS este plasat n subsistemul de intrare/ieire i este accesat prin intermediul controlerelor. Principalul avantaj este costul unitar de memorare foarte mic. Memoria intermediar (MI), numit i memorie cache pentru supori externi sau memorie cache de disc (Disk-Cached Memory), este plasat ntre MP i MS, acionnd ntr-o manier similar celei a MC. Are rol de memorie tampon, care pstreaz blocurile de informaii cel mai recent accesate de un program, duplicri ale celor din MS. Memoria teriar (MT), sau memoria de arhivare, este o memorie nevolatil de dimensiuni foarte mari, dar i cu timpi de acces foarte mari (zeci de secunde). Pstreaz informaii pasive, stocate doar n scop de arhivare, accesul la acestea fcndu-se foarte rar. MT este realizat cu uniti de memorare pe suport detaabil, optic (CD-ROM) sau magnetic (band sau caset magnetic). Trebuie subliniat faptul c MT reprezint colecia de casete sau CD -uri existente, i nu unitile de memorie propriu-zise. 2.2. Clasificarea memoriilor semiconductoare Circuitele integrate de memorie (CIM) sunt memorii semiconductoare, realizate n diverse tehnologii de fabricaie (bipolare sau MOS). Acestea sunt de mai multe tipuri, cu diferite

raporturi performane/cost, avnd domenii specifice de utilizare. Dintre acestea, doar memoriile cu acces aleator (RAM) vor fi studiate n continuare. O memorie cu acces aleator (RAM = Random Access Memory) este acea memorie la care locaiile de memorie pot fi accesate n orice ordine, iar timpul de acces nu depinde de locaia accesat. Memoriile RAM pot fi de dou tipuri: memorii SRAM (Static RAM), care memoreaz informaia n mod static; memorii DRAM (Dynamic RAM), la care informaia este memorat n mod dinamic. 2.2.1. Memoria SRAM Memoria SRAM (Static RAM) este o memorie n care informaia se memoreaz ntr-un mod stabil, pe ambele niveluri logice, att timp ct memoria este alimentat. Este realizat n tehnologii rapide (bipolare sau CHMOS = Complementary High-density MOS), cu timpi de acces foarte mici (cteva ns). Fiind o memorie care poate fi i citit i scris, SRAM va avea magistrala bidirecional de date i dou cicluri diferite de memorie: ciclul de citire i ciclul de scriere, identificate de semnalul figura 2. , activ pe 0L. Simbolul memoriei SRAM este ilustrat n

Fig. 2. Simbolul memoriei SRAM

Memoria SRAM poate fi de dou tipuri: Memoria SRAM asincron nu necesit semnal de ceas pentru sincronizarea cu unitatea master. Memoriile asincrone sunt mai lente dect cele sincrone, dar sunt mai ieftine i au un consum de energie mic. Aceste memorii sunt realizate ntr-o gam foarte divers de performane, cu timpi de acces ce variaz de la 5070 ns, pn la 1015 ns. Memoria SRAM sincron necesit un semnal de ceas pentru validarea semnalelor de control. Ceasul primit din exterior permite operarea memoriei, sincron cu unitatea master. Memoriile sincrone sunt foarte rapide, cu timp de acces sub 10 ns, pot funciona la tensiuni de alimentare mici, dar sunt scumpe. Ele pot fi de mai multe tipuri: PBS (Pipelined Burst Synchronous), FTS (Flow Through Synchronous), ZBT (Zero Bus Turnaround) SRAM. n general, sistemele de calcul simple au memoria RAM de lucru format doar din circuite de memorie SRAM asincron, cu capaciti mici, de zeci-sute de KB, i care memoreaz cuvinte de 8 bii. Sistemele performante, care necesit viteze i capaciti de memorare mari, folosesc memorii SRAM rapide pentru implementarea memoriei cache.

Din punct de vedere constructiv, cele dou tipuri de memorii SRAM sunt similare. Ele difer doar prin algoritmul de transfer al datelor i implicit prin performane. De aceea, n cele ce urmeaz vor fi analizate elementele comune, definitorii pentru SRAM, iar exemplificrile vor fi realizate pentru memoria asincron. Schema bloc a memoriei SRAM este ilustrat n figura 3.

Fig. 3. Schema bloc a memoriei SRAM.

2.2.2. Memoria DRAM Memoria DRAM (Dynamic RAM) este o memorie volatil cu acces aleator, care memoreaz informaia n mod dinamic. Este realizat n tehnologie CMOS (Complementary MOS), cu consum de energie foarte mic. Datorit particularitilor constructive ale celulelor de memorie, informaia 0L este memorat stabil, dar informaia 1L se pierde n timp i necesit mprosptarea periodic a memoriei, de unde i denumirea acesteia. Indiferent de modul de realizare, memoria DRAM este mult mai lent dect memoria SRAM, din cauza mecanismului specific de memorare a informaiilor. Timpul de acces la DRAM este de 210 ori mai mare dect la SRAM, i variaz n funcie de tipul accesului la memorie. Astfel, n acces aleator, timpul de acces este mare (zeci de ns), ns scade foarte mult (n funcie de tipul memoriei DRAM), dac se restricioneaz accesul n mod pagin, putnd ajunge doar de dou ori mai mare dect al memoriei SRAM. Celula de memorie este mult mai mic dect la memoria SRAM, ceea ce permite realizarea unor densiti mari de integrare. Circuitele de memorie DRAM au, prin urmare, capaciti de memorare mari, i implicit un numr mare de linii de adres. Simbolul memoriei DRAM este ilustrat n figura 4.

Fig. 4. Simbolul memoriei DRAM.

Memorarea informaiilor se bazeaz pe stocarea i transferul de sarcini electrice, i nu pe mecanisme de comutare, ca n cazul memoriilor SRAM. Fiecare bit de informaie este memorat prin ncrcarea sau descrcarea unui condensator. Cnd condensatorul este ncrcat, se spune c se memoreaz valoarea 1L, iar cnd acesta este descrcat, valoarea memorat este 0L. Fa de celula SRAM, mecanismul de memorare nu presupune consum de curent de la sursa de alimentare. Schema bloc de baz a memoriei DRAM este trasat n figura 5.

Fig. 5. Schema bloc de baz a memoriei DRAM.

Celulele de memorie sunt dispuse ntr-o arie ptrat sau dreptunghiular de locaii de memorie, fiecare locaie memornd un cuvnt de m bii, Semnalele de comand acioneaz prin intermediul logicii de control. Eventual, memoria DRAM poate avea circuit intern de mprosptare, care presupune un numrtor de adrese de rnd i un ceas de timp real. n funcie de tipul memoriei DRAM, ciclurile de mprosptare pot fi realizate n trei moduri: ROR (RAS Only Refresh) este o metod de mprosptare din exterior, prin care se transmit memoriei adresa de rnd (AR) i semnalul , fr a se activa semnalul . Unitatea master extern este anunat periodic s fac refresh de ctre un ceas de timp real, care este programat software de ctre sistemul de operare.

CBR (CAS Before RAS) este tot o metod de mprosptare din exterior, prin care se transmit semnalele i , activate n aceast ordine. n acest caz, memoria dispune de un numrtor de adrese intern, pentru indicarea liniei care trebuie mprosptat, fr a fi nevoie de transmiterea adresei din exterior. De asemenea, perioada de repetiie a ciclurilor de refresh este determinat de un ceas de timp real extern. Auto-mprosptare cu ajutorul circuitelor interne memoriei DRAM. n interior, memoria conine un numrtor de adrese de rnd, un ceas de timp real i o logic de

control pentru generarea semnalelor i , conform metodei CBR. Memoria DRAM poate fi de dou tipuri: asincron i sincron. Memoria DRAM asincron nu necesit semnal de ceas pentru sincronizarea cu unitatea master apelant. Ca i la SRAM, memoriile DRAM asincrone sunt mai lente dect cele sincrone, dar sunt mai ieftine i au un consum de energie mai mic. Dintre memoriile DRAM asincrone, se pot enumera: FPM (Fast Page Mode), EDO (Extended Data Out) i BEDO (Burst EDO) DRAM. La toate memoriile, accesul aleator este lent. n acces aleator, timpul de acces fa de RAS (tRAC) este de 5070 ns, iar timpul de ciclu (tC) este de 90120 ns. O alt categorie de memorii DRAM este cea care utilizeaz o interfa sincron. Prin implementarea unei interfee sincrone, s-au eliminat perioadele de ateptare de ctre procesor, obinndu-se de asemenea unele avantaje suplimentare. n cazul funcionrii sincrone, se memoreaz anumite informaii de la procesor n circuitele latch ale memoriei DRAM sub controlul ceasului sistem. Aceste circuite pstreaz adresele, datele i semnalele de control, ceea ce permite procesorului s execute alte operaii. Dup un numr specific de cicluri de ceas, datele devin disponibile i procesorul le poate citi de pe liniile de ieire. Un alt avantaj al unei interfee sincrone este c ceasul sistemului este singurul semnal de sincronizare care trebuie furnizat memoriei DRAM. Aceasta elimin necesitatea propagrii semnalelor multiple de sincronizare. Intrrile sunt de asemenea simplificate, deoarece semnalele de control, adresele i datele pot fi memorate fr temporizrile de setare i meninere monitorizate de procesor. Avantaje similare se obin i pentru operaiile de ieire. O alt categorie este reprezentat de memoriile DRAM bazate pe protocoale. Categoriile precedente de memorii au linii separate de adrese, date i control, care limiteaz viteza la care poate funciona circuitul cu tehnologia curent. Pentru eliminarea acestui dezavantaj, au fost proiectate memorii DRAM bazate pe protocoale, care implementeaz toate aceste semnale pe aceeai magistral. Cele mai cunoscute memorii din aceast categorie sunt DRDRAM (Direct Rambus) i SLDRAM (SyncLink) DRAM. Memoria DRAM sincron necesit un semnal de ceas pentru validarea semnalelor de control. Ceasul primit din exterior permite operarea memoriei, sincron cu unitatea master. Dei accesul aleator este comparativ cu cel al memoriilor asincrone, accesul n mod pagin este mult mai rapid. Memoriile sincrone pot fi de mai multe tipuri: SDRAM (Synchronous DRAM), DDR SDRAM (Double Data Rate SDRAM), RDRAM (Rambus DRAM), DRDRAM (Direct Rambus DRAM) etc. Accesul aleator este de asemenea lent, fiind puin mai rapid dect la memoriile asincrone, datorit tehnologiei (memoriile sincrone au aprut ulterior). n acces aleator, tRAC este de 4060 ns, iar tC este de 80110 ns.

Accesul n mod pagin este mult mai rapid dect la memoriile asincrone i depinde de frecvena semnalului de ceas de sincronizare. 2.3. Accesul la locaiile de memorie n sistemele bazate pe microprocesoare, modulele de memorie se conecteaz pe magistrala sistemului. Accesul la locaiile de memorie se realizeaz prin cicluri de transfer (cicluri main), folosindu-se semnalele magistralei (semnale de adres, de date i de comenzi). Modul de desfurare a diferitelor tipuri de cicluri de transfer se reprezint prin diagrame de timp; diagrama prezentnd evoluia n timp a semnalelor de pe magistral implicate n transfer. Parametri de timp ai unui ciclu de transfer depind de tipul procesorului, de regulile de comunicaie pe magistrala i de tipul de circuite de memorie utilizate. n figura 6 s-au reprezentat diagramele de transfer pentru un ciclu de citire din memorie i un ciclu de scriere n memorie.

Fig. 6. Diagrame de citire/scriere memorie.

La proiectarea unui modul de memorie trebuie s se in cont de urmtorii parametri de timp:


timpul de acces la citire (tAR) intervalul de timp ntre momentul apariiei adresei valide i momentul n care data citit este prezent pe liniile de date; uneori timpul de acces se msoar n raport cu momentul de apariie al semnalului de comand MEMR\; dac timpul de acces al circuitului de memorie folosit este mai mare dect timpul permis pe magistral, atunci interfaa modulului de memorie trebuie s prelungeasc ciclul de transfer prin dezactivarea pe un timp limitat a semnalului READY ctre procesor. timpul de meninere a semnalului de comand MEMR\ activ (tMEMR).

durata unui ciclu complet de citire sau scriere (tC). timpul de acces la scriere (tAW) intervalul de timp ntre momentul n care adresa este valid i momentul de generare a comenzii de scriere; n acelai mod ca la citire, dac circuitul de memorie folosit are un timp de acces mai mare, atunci interfaa modulului trebuie s dezactiveze temporar semnalul READY pentru prelungirea ciclului de transfer; momentul activrii semnalului de scriere se msoar i n raport cu momentul n care data este prezent pe magistral. timpul de meninere a semnalului de scriere (tMEMW), de obicei < tMEMR.

Observaii:
1. la citire, data este generat dup apariia semnalelor de adres i de comand i se menine un timp scurt dup dezactivarea acestora; 2. la scriere, data trebuie s apar pe magistral naintea semnalului de scriere i s fie valid pe toat durata de activare a semnalului de comand; 3. timpul de acces acoper ntrzierile care apar ntr-un modul de memorie datorit circuitelor de decodificare a adresei i de selecie a amplificatoarelor de intrare sau de ieire 4. proiectantul trebuie s aleag circuite de memorie cu parametri de timp acoperitori pentru restriciile impuse pe magistral; trebuie s se ia n calcul i ntrzierile produse de circuitele de amplificare din interfa i de pe magistral. 2.4. Metodologia de proiectare a memoriilor statice Proiectarea unui modul de memorie se face pe baza unor parametrilor de proiectare impui: capacitatea memoriei; modul de organizare (unitatea elementar de acces la memorie: octet, cuvnt, cuvnt dublu); tipul de magistral pe care se conecteaz (numrul semnalelor de date i de adrese, tipurile semnalelor de comand, parametrii de timp pentru ciclurile de transfer); amplasarea modulului de memorie n spaiul de adresare al procesorului, exprimat prin adresa sa de nceput (trebuie s fie un multiplu al capacitii modulului); tipul de circuit de memorie disponibil (poate fi un parametru impus sau unul ales de proiectant); alte cerine speciale (de exemplu: accesul dual de pe dou magistrale, remprosptarea controlat centralizat, implementarea unor mecanisme de detecie a erorilor etc.) 2.5. Metodologia de proiectare a memoriilor dinamice Proiectarea memoriilor dinamice este n principiu similar proiectrii memoriilor statice, cu urmtoarele amendamente: trebuie s se adauge un mecanism de remprosptare periodic a memoriei (refresh); adresele trebuie multiplexate (generarea secvenial pe aceleai semnale a adresei de linie i a adresei de coloan);

trebuie s se genereze semnalul de validare a adresei de linie (RAS Row Address Select) i semnalul de validare a adresei de coloan (CAS Column Address Select); selecia circuitelor se face cu semnalele RAS i CAS (excepie fac circuitele de tip EDO-DRAM, care au semnal separat pentru selecia circuitului). Pentru circuitele RAM dinamice, multiplexarea n timp a adreselor a fost necesar pentru a reduce numrul de pini ai circuitului de memorie i, implicit, dimensiunea acestuia. De notat c circuitele dinamice au o capacitate relativ mare, ceea ce impune un numr mare de linii de adres pentru selecie. Organizarea intern a unei memorii dinamice este sub forma unei matrice, cu linii i coloane; selecia unei locaii se face prin specificarea adresei sale de linie i de coloan. Remprosptarea periodic a memoriei este necesar deoarece informaia este pstrat un timp limitat dup ultima operaie de citire sau scriere (condensatorul care stocheaz informaia se descarc n timp). Controlul procesului de remprosptare poate s se fac la nivelul modulului de memorie sau centralizat la nivelul ntregului sistem. Indiferent de metoda aleas, proiectantul trebuie s se asigure c ciclurile de remprosptare nu se suprapun peste ciclurile obinuite de citire sau scriere. Remprosptarea se face simultan la nivelul unei linii ntregi din matricea de memorie. n figurile 7, 8 i 9 s-au reprezentat diagramele de timp pentru ciclurile de citire din memorie, scriere n memorie i, respectiv, remprosptare a memoriei.

Fig. 7. Ciclu de citire din memorie.

Fig. 8. Ciclu de scriere n memorie.

Fig. 9. Ciclu de remprosptare a memoriei.

3. Descrierea aplicaiei
Aplicaia SRAMvsDRAM este format din 6 ferestre.
3.1. Meniul principal Fereastra meniului principal (vezi figura 10) conine dou butoane de comand (Memoria SRAM i Memoria DRAM), iar prin apsarea acestora se deschide dialogul corespunztor opiunii fcute. Fereastra deschis prin apsarea oricrui buton declaneaz un eveniment i astfel este permis deschiderea mai multor submeniuri n acelai timp. Revenirea la meniul principal se poate face dup nchiderea submeniului apelat sau prin deplasarea focusului pe fereastra principal.

Fig. 10. Meniul principal al aplicaiei.

Din punctul de vedere al utilizatorului, parcurgerea meniului este foarte simpl: el trebuie s selecteze una dintre cele dou opiuni disponibile n cadrul meniului. 3.2. Memoria RAM static Apsarea butonului Memoria RAM static din meniul principal va deschide o nou fereastr (vezi figura 11), n care utilizatorul poate opta pentru: butonul Operaii de citire/scriere ale memoriei SRAM; un exerciiu de dimensionare hardware, n care utilizatorul poate calcula numrul de tranzistori necesar unei anumite capaciti de memorare. S-au folosit dou combobox-uri i dou grupuri a cte dou butoane radio, prin care utilizatorul poate selecta capacitatea memoriei, cu valori cuprinse ntre 16 i 2048, multiplul valorii capacitii, care poate avea dou valori: K (Kilo) i M (Mega), unitatea de mrime, de asemenea cu dou valori posibile: b (bit) sau B (Byte sau octet), precum i numrul de tranzistori pe celul de memorie, cu valori cuprinse ntre 3 i 10. Fereastra mai cuprinde un textbox n care se face afiarea numrului de tranzistori, dup apsarea butonului calculeaz. 3.3. Operaii de citire/scriere ale memoriei SRAM Aceast fereastr este format din dou combobox-uri care folosesc la alegerea timpilor de acces la memorie i de ciclu, ambii parametrii avnd gamele de valori prestabilite.

Fig. 11. Memoria RAM static.

Fig. 12. Operaii de citire/scriere ale memoriei SRAM.

Fereastra mai cuprinde un textbox care atenioneaz utilizatorul n cazul n care acesta a acionat unul dintre cele trei butoane existente fr s fi selectat n prealabil valori pentru aceti timpi. Pe baza celor dou valori alese, prin apsarea butoanelor existente n fereastr, se vor construi diagramele de timp pentru (vezi figura 12): ciclul de citire din memoria SRAM asincron; ciclul de scriere n memoria SRAM asincron; ciclul de scriere n memoria SRAM fr semnalul . Diagramele rezultate sunt formate din semnale de adres i semnale de comand (de validare a circuitului de memorie , a ieirilor memoriei i de validare a ciclului de scriere ). Locaiile de memorie sunt accesate prin intermediul adreselor trimise pe magistrala de adrese (ADR). La memoriile asincrone, o nou operaie poate ncepe dup ncheierea timpului de ciclu. n acest caz, se observ c magistrala de date este ocupat mai mult timp dect n cazul anterior. De asemenea, semnalul nu trebuie activat dup semnalul de ieire din SRAM n timpul scrierii. 3.4. Memoria RAM dinamic , deoarece s-ar activa circuitul

Aceast fereastr cuprinde urmtoarele butoane, care conduc la deschiderea altor dou ferestre (vezi figura 13):

Fig. 13. Memoria RAM dinamic.

Operaii de citire/scriere/mprosptare ale memoriei DRAM, pentru trecerea la fereastra diagramelor de semnale; nainte, pentru trecerea la fereastra dedicat parametrilor memoriei DRAM. n fereastra Memoria RAM dinamic se pot calcula urmtorii parametri: perioada de repetiie a ciclurilor de refresh (n s), n funcie de timpul de remprosptare (n ms) i numrul de linii al unei arii dreptunghiulare de memorie; gradul de ocupare a memoriei cu mprosptarea (n %), care se po ate calcula n funcie de durata ciclurilor de mprosptare (n ms) i perioada de repetiie a ciclurilor de mprosptare (n s); rata de transfer a memoriei DRAM (n MB/s), n funcie de limea magistralei de date i frecvena semnalului de ceas (n MHz). Pentru alegerea parametrilor s-au folosit combobox-uri cu valori prestabilite, iar pentru afiarea rezultatelor s-au folosit textbox-uri validate prin apsarea butoanelor calculeaz.

n cadrul procedurii de ncrcare a ferestrei, se iniializeaz variabilele din fiecare segment n parte. Astfel, din punctul de vedere al utilizatorului, apsarea unui buton de comand declaneaz procesul de calcul i returneaz un rezultat ntr -o anumit unitate de msur, n funcie de segment.
3.5. Operaii de citire/scriere/mprosptare ale memoriei DRAM

Aceast fereastr prezint diagramele de timp ale ciclurilor de citire, scriere i mprosptare (vezi figura 14).

Fig. 14. Operaii de citire/scriere/mprosptare ale memoriei DRAM.

Acestea se construiesc pe baza variabilelor de intrare: timpii de acces la memorie i de ciclu, ambii parametri avnd gamele de valori prestabilite. Diagramele de timp trasate sunt descrise de semnalele de comand i de coninutul magistralelor de adrese i de date.
Pentru ca memorarea adreselor s fie corect, adresele de rnd i de coloan trebuie s fie stabile un interval de timp nainte i dup momentul activrii semnalelor de comand corespunztoare, i . Dup activare, semnalele de comand i trebuie s rmn active pn la sfritul ciclului, deoarece, prin logica de control, acestea au rolul de validare a circuitului de memorie i a ieirilor. Funcia de trasare a diagramelor de timp se declaneaz prin apsarea butoanelor corespunztoare.

3.6. Parametrii memoriei DRAM

Ultima fereastr a aplicaiei ofer utilizatorului posibilitatea de calculare a urmtorilor parametri (vezi figura 15): timpul total de ocupare al memoriei (n ns); timpul total de transfer (n ns); rata maxim de transfer pentru diferite tipuri de memorii (n Mb/s/pin sau GB/s/canal).

Fig. 15. Parametrii memoriei DRAM.

Calculul se face pe baza variabilelor de intrare, selectate prin combobox-uri i butoane radio din seturi de valori predefinite. Aceste variabile de intrare sunt:

timpul de acces fa de RAS tRAC , timpul de ciclu tC (ambii n ns), numrul de cuvinte transferate n mod pagin pentru calculul timpului total de ocupare; timpul de acces fa de RAS tRAC, timpul de ciclu n pagin (ambele n ns) i numrul de cuvinte din pagin pentru calculul timpului total de transfer;

frecvena de ceas (n MHz) i tipul de memorie pentru calculul ratei maxime de transfer. Fereastra mai cuprinde i 4 textbox-uri, n care se face afiarea parametrilor, dup apsarea butoanelor calculeaz.

4. Desfurarea lucrrii
1. Se studiaz partea teoretic a lucrrii. 2. Se lanseaz aplicaia SRAMvsDRAM.exe. 3. Se selecteaz opiunea Memoria RAM static. 3.1. Se presupune c se dorete realizarea unei memorii cache de nivel 2, integrat n microprocesor, cu capacitatea de memorare de 512 KB. Dac celulele de memorie au cte 6 tranzistori, atunci s se determine numrul total de tranzistori necesari pentru MC. 3.2. Se reiau determinrile pentru alte seturi de date de intrare i se noteaz rezultatele obinute. 4. Se selecteaz opiunea Operaii de citire/scriere ale memoriei SRAM. 4.1. Se alege un set de valori pentru timpul de ciclu i timpul de acces. 4.2. Se vizualizeaz i se deseneaz diagramele de timp pentru ciclurile de citire i scriere. 4.3. Se reiau reprezentrile pentru alte seturi de date de intrare i se rein rezultatele obinute. 5. Se selecteaz butonul Memoria RAM dinamic i se studiaz cazurile urmtoare din cadrul meniului i submeniurilor ferestrei: 5.1. Un circuit de memorie DRAM are capacitatea de memorare de 64 Kb. Celulele de memorie trebuie mprosptate dup un timp de maximum 2 ns i sunt organizate ntr-o arie dreptunghiular, cu 128 linii i 512 coloane. S se calculeze perioada de repetiie a ciclurilor de refresh. Se reiau determinrile pentru alte seturi de date de intrare i se noteaz rezultatele obinute. 5.2. Cunoscnd durata ciclurilor de mprosptare i perioada de repetiie a acestora, se va determina gradul de ocupare a memoriei cu mprosptarea, ca procent din timpul total de lucru al memoriei. De exemplu, pentru memoria DRAM din exemplul anterior, se cunoate durata ciclurilor de mprosptare (250 ns). S se calculeze gradul de ocupare a memoriei cu mprosptarea. Se reiau determinrile pentru alte seturi de date de intrare i se noteaz rezultatele obinute. 5.3. S se calculeze banda maxim susinut de transfer pentru o memorie DDRSDRAM, la frecvena semnalului de ceas de 400 MHz / 600 MHz. 5.4. Se vizualizeaz i se deseneaz diagramele de timp pentru ciclurile de citire, scriere i remprosptare n cazul mai multor seturi de valori ale timpului de acces i timpului de ciclu. 5.5. Se repet calculul anterior pentru o memorie RDRAM. Se noteaz rezultatele obinute. 5.6. Se presupune c cele trei tipuri de memorii DRAM asincrone (FPM, EDO RAM i BEDO DRAM) au timpul de acces fa de RAS tRAC = 70 ni timpul de ciclu tC = 120 ns. Dac memoriile sunt accesate aleator, transferndu-se cte un

singur cuvnt, atunci accesul dureaz 70 ns, dar urmtorul acces nu poate fi nceput dect dup timpul de ciclu de 120 ns. De aceea, la citirea mai mult or cuvinte (de exemplu, 4 cuvinte), primul cuvnt este citit dup 70 ns, dar urmtoarele citiri dureaz cte 120 ns. S se calculeze timpul total de ocupare i timpul total de transfer. 5.7. Se consider aceleai memorii DRAM, cu tRAC = 70 ns i tC = 120 ns. Dac se iniiaz un acces n mod pagin, de exemplu pentru citirea a 4 cuvinte din pagin, atunci primul acces dureaz tRAC = 70 ns, ns urmtoarele 3 cuvinte sunt accesate cu timpul de ciclu de pagin (tPC), mai rapid, n funcie de tipul memoriei. S se calculeze timpul total de transfer pentru FPM, BEDO RAM i EDO DRAM. Se noteaz rezultatele obinute. 5.8. S se calculeze rata maxim de transfer a unei memorii de tip PC600/800, pentru o frecven de ceas de 300, respectiv, 400 MHz.

5. ntrebri
1. Definii i caracterizai memoria SRAM. 2. Discutai, comparativ, cele dou tipuri de memorii SRAM. Care sunt domeniile lor de aplicabilitate? 3. Explicai semnificaia semnalelor de comand ale memoriei SRAM. 4. Utiliznd schema bloc a memoriei SRAM, s se descrie modul de selectare a unei celule de memorie. 5. Descriei funcionarea logicii de comand a circuitului I/O al memoriei SRAM. 6. Cum se modific logica de comand la memoriile fr semnalul OE? 7. Explicai modul de execuie al ciclului de citire din memoria SRAM. 8. Discutai, comparativ, cele dou diagrame ale ciclului de scriere, corespunztoare memoriilor SRAM, cu i fr semnalul OE. 9. Explicai care sunt modurile de realizare a mprosptrii coninutului memoriilor DRAM. 1. Analizai comparativ memoriile DRAM sincrone i asincrone. 2. Cum acioneaz semnalele RAS i CAS pentru mprosptarea memoriei? 3. S de defineasc parametrii de timp de care trebuie s se in seama la proiectarea unei memorii i s se explice relaiile de condiionare ntre aceste valori. 4. Comparai metodologiile de proiectare pentru memoriile statice i dinamice. 5. tiind c microprocesorul Pentium III are 9 milioane de tranzistori, s se explice cum poate fi integrat n microprocesor o memorie cache de nivelul 2, care necesit 25 milioane de tranzistori. 6. Caracterizai memoria DRAM i explicai diferenele fa de memoria SRAM care apar la conectarea cu exteriorul. 7. Cum intervine semnalul de comand WE n modul de transfer al memoriilor dinamice, comparativ cu cele statice? 8. Ordonai tipurile de memorii descrise n lucrare dup criteriul vitezei de lucru.

Studiul memoriei cache


1. Obiectivul lucrrii

Lucrarea de fa i propune s prezinte o serie de aspecte teoretice i practice referitoare la modul de funcionare al memoriei cache. Aplicaia const dintr-un program de simulare realizat n mediul de dezvoltare .NET.

2. Introducere teoretic

Datorit vitezei foarte mari cu care lucreaz microprocesoarele, implicit i fluxul de date i informaii cerute de acestea va fi foarte intens. Dar, deoarece unele componente din lanul de transmisie a datelor sunt mai lente, n spe memoria de lucru RAM (prin necesitatea de a fi remprosptat) i magistralele calculatorului (lente din principiu), acest flux de date cerut de procesor este mai puin rapid dect ar fi necesar (de exemplu, memoria RAM asigur un timp de acces de 60120 ns, ceea ce este foarte mult fa de nivelul de cteva nanosecunde, timp cu care lucreaz de obicei procesoarele pentru un anumit proces). Ca atare, ntre posibilitile de prelucrare a datelor de ctre microprocesor i capacitatea RAM-ului i a magistralelor de a pune la dispoziia microprocesorului aceste date a aprut un decalaj foarte mare. Aceasta a dus n procesul de lucru al unui microprocesor la introducerea strilor de pauz (wait states), astfel nct, prin execuia a unuia, a dou sau chiar a patru cicluri de ateptare, datele solicitate s aib timp s ajung la procesor. Practic, se ntmpl urmtorul lucru: microprocesorul lucreaz fie cu datele necesare calculelor, fie cu comenzi. Cum datele i informaiile necesare sunt cuprinse n memoria de lucru, microprocesorul citete memoria RAM, prelund anumite date, i realizeaz calculele i procesele cerute. Cum memoria este mult mai lent n livrarea datelor fa de viteza cu care le poate prelucra microprocesorul, n funcionarea procesorului se introduc ciclurile de ateptare despre care s-a vorbit anterior; ct timp aceste cicluri se execut, se

permite datelor solicitate de procesor s fie localizate i extrase din RAM, depuse pe magistrala de date i transportate ctre microprocesor. n final, dac se va nmuli timpul ct dureaz un ciclu de ateptare cu milioanele de operaii pe secund ale unui microprocesor, va rezulta o pierdere de timp substanial. Deci era nevoie de o memorie de lucru ceva mai aproape de microprocesor i mult mai rapid (ideal fr s necesite operaii de remprosptare). De aceea, ntre microprocesor i memoria de lucru a mai fost introdus o component i anume memoria cache, realizat din celule de tip SRAM rapide, cu rol de memorie tampon. Memoriile rapide sunt realizabile din punct de vedere tehnologic, dar costul lor este ridicat. Sunt cunoscute ns tehnici pentru combinarea unei memorii rapide de dimensiuni mici cu o memorie mai lent de dimensiuni mai mari, pentru a se obine aproximativ viteza memoriei rapide i capacitatea memoriei lente, la un pre moderat. Dimensiunea memoriei cache trebuie s fie suficient de mic, astfel nct costul mediu pe bit al ntregului sistem de memorie s fie apropiat de cel al memoriei principale, i suficient de mare, astfel nct timpul mediu de acces al ntregului sistem de memorie s fie apropiat de cel al memoriei cache. O dimensiune relativ redus, ntre 64 KB i 512 KB, satisface de obicei aceste cerine. Principiul de funcionare al memoriei cache este sintetizat n figura 1.

Fig. 1. Principiul memoriei cache.

2.1. Partiionarea adresei de memorie pe bii i ncrcarea blocurilor Figura 2 prezint schema logic a algoritmului de citire a memoriei cache.

Fig. 2. Operaia de citire a memoriei cache.

O caracteristic de baz a memoriei cache este funcia de mapare (de translatare), care atribuie locaii din memoria cache blocurilor din memoria principal. Se pot utiliza trei tehnici: direct; asociativ; asociativ pe seturi. Se consider o memorie cache de 1024 (1 K) octei. Datele se transfer ntre memoria principal i memoria cache n blocuri de cte 8 octei. nseamn c memoria cache are 128 de linii de cte 8 octei fiecare. Memoria principal const din 64 Koctei, fiecare octet fiind direct adresabil printr-o adres de 16 bii. Se poate considera c memoria principal const din 8 Kblocuri de cte 8 octei fiecare. Deoarece exist un numr mai mic de linii ale memoriei cache fa de numrul blocurilor memoriei principale, este necesar un algoritm pentru plasarea blocurilor memoriei principale n liniile memoriei cache. n plus, este necesar un mijloc de a

determina care bloc al memoriei principale ocup la un moment dat o linie a memoriei cache. 2.1.1. Memoria cache cu mapare direct n cazul tehnicii celei mai simple, numit mapare direct, fiecare bloc al memoriei principale poate ocupa o singur linie posibil a memoriei cache, aa cum este reprezentat n figura 3.

Fig. 3. Memorie cache cu mapare direct.

Maparea este: C = A mod L, (1)

unde: C = numrul liniei din memoria cache; A = adresa din memoria principal; L = numrul de linii din memoria cache. Pentru exemplul considerat, L = 128 i C = A mod128. Funcia de mapare poate fi implementat simplu, utiliznd adresa de 16 bii. Cei 3 bii mai puin semnificativi (offset) identific un cuvnt (octet) unic n cadrul unui bloc al memoriei p rincipale. Restul de 13 bii specific unul din cele 213 = 8 Kblocuri ale memoriei principale.

Cmpul de 7 bii, numit linie (index), indic numrul blocului, modulo128. Astfel, blocurile 0, 128, 256, , 8064 vor fi amplasate n linia 0; blocurile 1, 129, , 8065 vor fi amplasate n linia 1, i aa mai departe, pn la blocurile 127, 255, , 8191, care vor fi amplasate n linia 127. Cmpul de 6 bii, numit marcaj sau etichet (tag), are rolul de a identifica n mod unic blocul din linie. Astfel, blocurile 0, 128, 256, , 8064 au numerele de marcaje 0, 1, 2, , respectiv 63. Considernd din nou figura 2, o operaie de citire are loc astfel. Memoriei cache i se prezint o adres de 16 bii. Numrul liniei de 7 bii este utilizat ca un index n memoria cache pentru accesul la o anumit linie. Dac marcajul de 6 bii este egal cu marcajul liniei respective, atunci numrul de 3 bii al cuvntului este utilizat pentru a selecta unul din cei 8 octei ai liniei respective. n caz contrar, marcajul i numrul liniei (n total 13 bii) se utilizeaz pentru a ncrca un bloc din memoria principal. 2.1.2. Memoria cache cu mapare asociativ Maparea direct este o tehnic care se poate implementa simplu. Principalul dezavantaj al acesteia este c exist o locaie fix n memoria cache pentru oricare bloc dat. Deci, dac un program face referire n mod repetat la cuvinte din dou blocuri diferite care se mapeaz n aceeai linie, blocurile vor fi interschimbate n mod continuu n memoria cache i rata de succes va fi redus. O metod care elimin dezavantajul maprii directe este maparea asociativ, reprezentat n figura 4.

Fig. 4. Memorie cache cu mapare asociativ.

n acest caz, adresa memoriei principale const dintr-un marcaj de 13 bii i un numr al cuvntului de 3 bii. Un bloc din memoria principal se poate ncrca n oricare linie, iar marcajul su de 13 bii se memoreaz mpreun cu blocul. Pentru a determina dac un bloc se afl n memoria cache, sunt necesare circuite pentru a compara simultan marcajul su cu marcajele fiecrei linii. n cazul maprii asociative, exist o flexibilitate n privina nlocuirii unui bloc atunci cnd un nou bloc este ncrcat n memoria cache. Algoritmii de nlocuire a

blocurilor din memoria cache, prezentai n continuare, au rolul de a crete eficiena. Principalul dezavantaj al acestei metode l reprezint circuitele complexe necesare pentru a examina marcajele tuturor liniilor din memoria cache. 2.1.3. Memoria cache cu mapare asociativ pe seturi Maparea asociativ pe seturi reprezint un compromis care reine avantajele maprii directe i a celei asociative. n acest caz, memoria cache este mprit n I seturi, iar fiecare din acestea conine J linii, aa cum rezult din figura 5. Rezult: L = I J, K = A mod I, (2) (3)

unde K este numrul setului. Cu aceast metod, blocul coninnd adresa A poate fi mapat n oricare din liniile setului I. De observat c n cazul extrem n care I = L, J = 1, maparea asociativ pe seturi se reduce la maparea direct, iar atunci cnd I = 1, J = L, se obine maparea asociativ.

Fig. 5. Memorie cache cu mapare asociativ pe seturi.

Utilizarea a dou linii pe set este cea mai utilizat organizare asociativ pe seturi, care mbuntete semnificativ rata de succes fa de maparea direct. 2.2. Rennoirea coninutului memoriilor cache n ceea ce privete rennoirea coninutului memoriilor cache, pentru tergerea datelor curente i aducerea altora noi se aplic o politic de nlocuire (replacement policy) a blocurilor din memoria cache, care are numeroase variante: politica aleatoare (random), politica circular (round robin), politica celui mai rar folosit (least frequently used), politica primul intrat primul ieit (first in, first out), politica celui mai demult folosit (least recently used), politica setului de lucru (working set), politica optim (optimal), politica ceasului, politica celei de-a doua anse (second chance) etc. n practic, sunt aplicate cu preponderen patru metode: metoda RW (Random Write) sau de rescriere aleatorie: datele coninute sunt rescrise aleator, fr a folosi un anumit criteriu sau algoritm care s determine care bloc de date va fi rescris; metoda FIFO (First In First Out): primul intrat primul ieit, adic primele blocuri de date scrise n memorie sunt rescrise primele; metoda LRU (Least Recently Used): datele folosite cel mai puin recent; blocurile de date care, static, au fost folosite cel mai rar sunt rescrise primele, cele folosite recent fiind pstrate; metoda LFU (Least Frequently Used): se nlocuiete blocul care a fost utilizat cel mai puin , adic cel mai rar din punct de vedere statistic. Metoda cea mai folosit este LRU. Cipul de memorie cache numit TAG RAM va juca rol de contor static al frecvenei de apelare a datelor din memoria cache, determinndu-se datele care vor fi rescrise. Modul de lucru general al microprocesoarelor cu memoria cache este urmtorul: programul va cuta datele, prin intermediul controlerului de cache, n cache-ul intern (L1). Dac datele solicitate nu se afl la acest nivel (cache miss), va merge mai departe cu cutarea n cache-ul extern (L2) i apoi, n cazul negsirii acestora nici aici, n memoria principal RAM. Probabilitatea ca procesorul s gseasc datele necesare ntr-unul din cele dou niveluri cache (cache hit) este ns destul de mare. Totodat, magistrala

memoriei care, n lipsa memoriei cache, ar fi fost solicitat pentru operaii cu RAMul, este disponibilizat pentru alte procese. 2.3. Conectarea memoriei cache la microprocesor Memoria cache este conectat cu microprocesorul i RAM-ul n sistem serial sau paralel. 1. Conectarea serial (look through), reprezentat n figura 6, presupune ca dialogul microprocesorRAM s se desfoare prin intermediul memoriei cache. Acest sistem are dezavantajul c cererile procesorului sunt ntrziate de intermediarul cache, dar are avantajul c magistrala memoriei nu este ocupat la fiecare cerere a procesorului. Dac datele solicitate se afl n cache (cache hit), interogarea RAM-ului nu se mai efectueaz, iar magistrala memoriei rmne liber. 2. Conectarea paralel (look aside), reprezentat n figura 7, presupune ca microprocesorul s se adreseze, n paralel, att memoriei cache ct i memoriei RAM. n cazul n care ecoul din partea memoriei cache este pozitiv, adresarea ctre RAM este abandonat. De aici rezult, fa de metoda anterioar, avantajul vitezei, evitndu-se cutarea secvenial: nti n cache, apoi n RAM. Dezavantajul apare prin faptul c magistrala memoriei este tot timpul folosit i astfel nu mai este disponibil n momentele de scanare a memoriei altor accesri din partea perifericelor. Mai ales n modulmultitasking, acest lucru se reflect n ntrzieri semnificative ale vitezei de execuie a diferitelor task-uri.

Fig. 6. Organigrama conectrii seriale (look through).

Fig. 7. Organigrama conectrii paralele (look aside).

2.4. Depunerea n memorie a rezultatelor n ce privete modul n care microprocesorul va depune n memorie rezultatele operaiilor sale, se folosesc trei metode. 1. Metoda Write Through, reprezentat n figura 8, este cea n care se utilizeaz traseul invers al citirii datelor, acestea fiind depuse mai nti n memoria cache intern, apoi n memoria cache extern i, n final, n memoria RAM.

Fig. 8. Schema metodei Write Through.

Nu este nevoie de salvarea paginii de memorie cache, iar translatarea blocurilor se efectueaz numai pentru accese de citire. La scriere, chiar i pentru o pagin negsit (page fault), se scrie n memoria cache i n memoria principal sau numai n memoria principal). Pentru simplitatea i claritatea codului, dar mai ales pentru eficiena implementrii, se alege ca tehnic de mapare maparea asociativ. Exist o tabel asociativ TA (bazat pe o memorie cu cutare asociativ, dup coninut), asociat memoriei cache, care pstreaz pentru fiecare bloc de memorie cache o etichet reprezentnd adresa blocului din memoria principal (ABLP) stocat n blocul de memorie cache.

Astfel, la fiecare acces la memorie, se va cuta n TA adresa cerut i, dac exist o etichet cu valoarea ABLP, se va furniza adresa blocului de memorie cache care rezult din poziia etichetei respective n TA. Dac nu exist, atunci se va nlocui un bloc din memoria cache, conform unui algoritm de nlocu ire. n cazul de fa este vorba de algoritmul LRU (Least Recently Used). Cutarea unui bloc n TA se poate face eficient n hardware, avnd n vedere c se pot realiza n paralel comparrile care sunt independente. 2. Metoda Write Back, reprezentat n figura 9, este cea n care scrierea se face n memoria cache n cazul n care adresa de memorie la care se face scrierea exist i ea n cache (de fapt, dac blocul de date de la acea adres se afl ncrcat n cache). n cazul n care blocul de date localizat de acea adres nu mai exist n cache, scrierea se face direct n memoria RAM.

Fig. 9. Schema metodei Write Back.

Se scrie i se citete doar n/din memoria cache, iar n caz de pagin negsit (page fault) se realizeaz salvarea paginii de memorie cache care se nlocuiete n memoria principal (de unde a fost adus), apoi pagina de memorie principal cerut de procesor va fi scris n locul paginii de memorie cache salvate. Dac nu se cunoate faptul c pagina de memorie cache care se nlocuiete cu noua pagin a fost sau nu modificat, atunci se salveaz ntotdeauna pagina de memorie cache. Dac se folosete un bit de modificare (dirty), care este setat la prima scriere a paginii de memorie cache, atunci se testeaz acest bit i pagina de memorie cache este salvat n memoria principal numai dac pagina a fost modificat. Transferarea blocurilor de memorie se realizeaz ori de cate ori apare un nou acces de pagin de memorie cache negasit (cache fault page). 3. Metoda Posted Write este cea prin care din memoria cache este rezervat o anumit poriune care va juca un rol de buffer, n care vor fi memorate blocuri de date pn cnd magistrala memoriei devine disponibil, moment n care buffer-ul i transfer coninutul n RAM.
2.5. Eficiena i localizarea datelor n memoria cache

O memorie cache este util numai dac anumite informaii sunt folosite frecvent i mult timp. Atunci acele informaii merit s fie pstrate n memoria cache. Din fericire, s-a constatat experimental c acest lucru este foarte adesea adevrat. Aceast observaie poate fi formulat n mai multe moduri, unul dintre acestea fiind principiul localizrii (locality principle). Exist dou feluri de localizare: localizare spaial: dac este nevoie de unele date, n curnd va fi nevoie probabil de date aflate n apropierea lor n memorie. localizare temporal: cnd s-au gsit anumite date, foarte adesea acestea vor fi folosite de mai multe ori. Acestea sunt doar observaii, dar se potrivesc destul de bine programelor de calculator, aa cum funcioneaz acestea n calculatoarele actuale. Validitatea observaiilor permite folosirea de memorii cache.Acesta nu nseamn c nu exist programe care folosesc prost memoriile cache; dimpotriv, se poate scrie destul de uor un astfel de program (este o metod eficient de a ncetini calculatorul). Programele obinuite ns nu se comport astfel. Eficiena unei memorii cache se msoar n procentajul de gsiri ale datelor, H (hit rate): din 100 de accese, cte date sunt gsite n memoria cache? Opusul acestei valori este miss rate, M (procentajul de ratri). Procentajele acestea se msoar rulnd numeroase programe i fcnd media. Relaia n ele este: H = 1 M. (4)

Dac timpul de citire din memoria cache este TH (hit time), iar timpul pierdut pn se rateaz esteTM (miss time), atunci se poate msura timpul mediu de acces la memoria cache cu urmtoarea formul: T = TH H + TM M. (5)

Se observ c timpul unei ratri (TM) nu este neaprat egal cu timpul de citire din memoria lent,Tl, deoarece, n cazul unei ratri, nti trebuie constatat dac datele sunt n memoria cache, iar, dac nu sunt, se acceseaz memoria lent. Memoria cache va fi eficient dac T < Tl. Parametrul H depinde de mrimea memoriei cache: pentru o memorie cache de mrimea memoriei lente (caz limit), toate datele pot fi inute n memoria rapid i se va obine H = 1. Pentru o memorie cache de mrime 0, H = 0, pentru c niciodat datele nu se gsesc n aceast memorie. Relaia ntre mrimea memoriei cache, a memoriei lente i parametrul H nu este o dreapt, ci crete rapid la nceput, aa cum se observ n figura 10. Din cauza aceasta, o memorie cache relativ redus ca mrime are o importan mare ca eficien.

Fig. 10. Performana memoriei cache.

Eficiena depinde i de raportul dintre TH i TM. n anumite cazuri, TM este de ordinul a 10.000 TH, deci chiar un parametru H de valoare redus poate s nsemne mult.

3. Descrierea aplicaiei
Aplicaia realizat n mediul de dezvoltare .NET, prin implementarea unor algoritmi, a fost realizat n scopul simulrii memoriei cache. Utilizatorul poate introduce anumite valori pe baza crora aplicaia genereaz anumite rezultate. Fiecare modul al aplicaiei studiaz un anumit aspect al memoriei cache. Simularea memoriei cache nseamn, de fapt, nelegerea funcionrii sale prin exemple. Aceste exemple sunt realizate de utilizator prin condiionarea parametrilor de intrare. Aplicaia ncepe cu meniul principal, n care se pot observa 5 componente de tip explorer bar, pentru fiecare din acestea existnd cte dou componente de tip link label. Acestea au rolul de a trimite utilizatorul acolo unde dorete, la partea de noiuni teoretice sau la partea practic (aplicaie), n cadrul creia poate urmri evoluia i funcionarea memoriei cache. n funcie de modulul aplicaiei pe care dorete s l aprofundeze, utilizatorului i va fi ncrcat fereastra corespunztoare modulului respectiv. 1. Partiionarea adresei de memorie pe bii (figura 11). Utilizatorul alege ca parametrii de intrare dimensiunea memoriei RAM (ntre 256 KB i 32 MB), dimensiunea memoriei cache (ntre 64 KB i 512 KB), dimensiunea blocului de

date (ntre 2 B i 32 B) i tipul de mapare: direct sau asociativ pe seturi (cu dimensiunea setului ntre dou blocuri i 8 blocuri). Programul afieaz ca rezultate numrul blocurilor din memoria cache, numrul de bii n tag, precum i diagrama repartizrii biilor (tag, index ioffset) n adresa memoriei cache.

Fig. 11. Partiionarea adresei pe bii.

2. ncrcarea blocurilor memoriei cache (figura 12). Utilizatorul alege ca parametrii de intrare dimensiunea memoriei cache (ntre 128 B i 1 KB), dimensiunea blocului de date (ntre 2 B i 32 B), tipul de mapare: direct sau asociativ pe seturi (ntre dou ci i 8 ci) i valoarea n binar a adresei ( 16 digii). Programul afieaz ca rezultate modul de repartizare al biilor tag, index i offset, valoarea indexului n zecimal, precum i tabelul repartizrii irurilor pe blocuri n memoria cache.

Fig. 12. ncrcarea blocurilor memoriei cache.

3. Rennoirea blocurilor memoriei cache (figura 13). Utilizatorul alege ca parametrii de intrare dimensiunea memorie cache (ntre 1 KB i 256 KB), numrul de seturi (ntre 1 i 128), algoritmul de nlocuire (LRU, FIFO sau RANDOM) i secvena de test (valori numerice succesive, separate prin Enter). Programul afieaz ca rezultate modul de repartizare al blocurilor pe seturi la fiecare pas, evideniind cu verde succesele, cu albastru ratrile impuse sau inerente (compulsory misses) care apar la umplerea memoriei cache (blocuri plasate pentru prima oar), iar cu galben ratrile de limitare sau de conflict (capacity misses) provocate de depirea capacitii memoriei. Paii pot fi parcuri iterativ n ambele sensuri, n ordinea direct sau invers a introducerii valorilor numerice. Sunt afiate procentele de hit ratei miss rate, obinute prin raportul numrului de succese sau de ratri la numrul total de teste. 4. Analiza n timp a memoriei cache (figura 14). Utilizatorul alege ca parametrii de intrare dimensiunea memorie cache (ntre 1 KB i 256 KB), numrul de seturi asociative (ntre 1 i 8), dimensiunea blocului de date (ntre 16 bii i 128 bii), decalajul de ratare, intervalul de succes, scrierea n memorie (toate n numr de cicluri), metoda de scriere (Write Back sau Write Through, cu variantele No-Write

Allocate blocul este modificat n memoria principal, dar nu este ncrcat n cache, sau Allocate on Miss blocul este actualizat n memoria principal i ncrcat n cache), procentajul de scrieri i procentajul de utilizare pentru dirty data. Programul afieaz ca date de ieire numrul cuvintelor pe bloc de date i valorile pentru hit rate i miss rate. Rezultatele calculate sunt intervalele de succes i ratare pentru citiri i scrieri, precum i timpul mediu de acces la memoria cache, exprimat n numr de cicluri de acces. Programul deseneaz analiza n timp a funcionrii memoriei cache, reprezentnd intervalele de succes i ratare pentru citiri i scrieri.

Fig. 13. Rennoirea blocurilor memoriei cache.

Fig. 14. Analiza n timp a memoriei cache.

5. Conectarea memoriei cache la microprocesor (figura 15). Utilizatorul alege ca parametrii de intrare tipul de conectare (serial sau paralel) i dac exist data solicitat n memoria cache (DA sau NU). Programul afieaz ca rezultate organigramele conectrii seriale i/sau paralele.

Fig. 15. Conectarea memoriei cache la microprocesor.

4. Desfurarea lucrrii

1. Se lanseaz aplicaia Memoria Cache.exe. 2. Se parcurg noiunile introductive ale fiecrei opiuni din meniu. 3. Se execut pe rnd prile aplicative ale celor 5 opiuni din meniu. 3.1. Partiionarea adresei pe bii. Se studiaz cazul maprii directe, apoi cel al maprii asociative pe seturi. Se selecteaz diverse valori pentru dimensiunea memoriei principale, a memoriei cache i a blocului de date, dup care se apas butonul de afiare a rezultatelor. Se repet alegerea valorilor de intrare, att pentru maparea direct, ct i pentru cea asociativ pe seturi. Se noteaz rezultatele obinute, se vizualizeaz i se deseneaz diagrama repartizrii biilor. 3.2. ncrcarea blocurilor. Se aleg dimensiunea memoriei cache i a blocului de date, apoi se introduce o valoare binar. Se apas butonul

de afiare a rezultatelor i se observ blocul n care a fost ncrcat informaia introdus. Se noteaz valorile pentru biii tag, index ioffset. Se introduc alte date binare i se observ evoluia repartizrii irurilor pe blocuri. Se repet alegerea valorilor de intrare. 3.3. Rennoirea blocurilor. Se selecteaz dimensiunea memoriei cache, numrul de seturi asociative i una din metodele de nlocuire a blocurilor din lista prezentat. Se introduc date de la tastatur, iar dup fiecare se apas tasta Enter, pentru ca acestea s fie adugate irului datelor care urmeaz a fi scrise n memoria cache. Dac se dorete revenirea la pasul anterior, se apas butonul care arat sgeata spre napoi, acelai lucru fiind valabil i pentru trecerea la pasul urmtor, care se realizeaz cu sgeata spre nainte. Se vizualizeaz i se deseneaz o configuraie de repartizare a blocurilor pe seturi dup un numr convenabil de pai, astfel nct, pe lng succese, s existe exemple de ratri impuse i ratri de limitare. Se deseneaz graficul asociat al procentajelor de hit rate imiss rate. Se repet determinrile pentru alte configuraii i alte de date de intrare. 3.4. Analiza n timp. Se selecteaz o configuraie a parametrilor numerici de intrare, precum i metoda de scriere Write Back din lista prezentat (n ambele variante). Se analizeaz datele de ieire i rezultatele obinute. Se vizualizeaz i se deseneaz analiza funcionrii n timp a memoriei cache. Se selecteaz metoda de scriere Write Through din lista prezentat (n ambele variante). Se analizeaz din nou rezultatele obinute. Se urmrete modul de variaie al rezultatelor, n funcie de procentul alocat pentru scrieri i dirty data. Se repet determinrile anterioare pentru alte seturi ale parametrilor numerici de intrare. Se face o comparaie ntre rezultatele obinute. 3.5. Conectarea la procesor. Se vizualizeaz i se deseneaz organigramele conectrii seriale i paralele, marcnd traseul urmat n cazul n care datele solicitate se gsesc sau nu se gsesc n memoria cache. Se face o comparaie a celor dou metode de conectare dup criteriul numrului de accese i al timpului de recuperare a datelor.

5. ntrebri

1. Care sunt caracteristicile memoriei cache? 2. Explicai principiul de funcionare al memoriei cache. 3. Cum se alege dimensiunea (mrimea) memoriei cache? Cum variaz performanele unui sistem odat cu creterea dimensiunii memoriei cache? 4. Cum se realizeaz operaia de citire a memoriei cache? 5. Definii biii tag, index i offset, care ajut la formarea adresei de memorie n cazul maprii directe. 6. Cum se interpreteaz parametrii I, J, K i L, n cazul memoriei cache cu mapare asociativ pe seturi? 7. Care sunt cazurile particulare n care maparea asociativ pe seturi se reduce la maparea direct, respectiv, la maparea asociativ? 8. Care dintre metodele de mapare (direct, asociativ, asociativ pe seturi) este mai eficient? Argumentai. 9. Cum se calculeaz numrul de seturi aflat n memoria cache? 10. Care sunt componentele principiului localizrii i n ce situaii se aplic? 11. De ce este important s existe o rat mare de succese (hit rate)? 12. Cum se definete noiunea de dirty data i n ce context se folosete? 13. Care dintre metodele de nlocuire a blocurilor n memoria cache este mai eficient? Argumentai. 14. Care metod de scriere (depunere n memorie a rezultatelor) modific informaiile din ambele memorii (cache i RAM)?

15. Prezentai avantajele i dezavantajele fiecrei metode de depunere n memorie a rezultatelor. 16. Cum se folosete tabela asociativ, TA, n cazul metodei Write Through? 17. Care este semnificaia unei ratri impuse? Dar a unei ratri de limitare? 18. Cum se calculeaz timpul mediu de acces la memoria cache?

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