Analiza tipurilor de memorie SRAM şi DRAM

 

1. Obiectivul lucrării

 

Lucrarea de faţă îşi propune prezentarea comparativă a modulelor de memorie RAM statice (SRAM) şi dinamice (DRAM) din punct de vedere al construcţiei, funcţionării, parametrilor şi performanţelor.

 

2. Introducere teoretică

 

Subsistemul de memorie al unui calculator reprezintă ansamblul unităţilor de memorie, împreună cu algoritmii necesari pentru controlul transferurilor şi memorarea informaţiilor, algoritmi care pot fi implementaţi hardware sau software. Subsistemul de memorie include atât locaţiile de memorie propriu-zise, cât şi circuitele necesare pentru adresarea locaţiilor şi controlul operaţiilor de citire şi scriere. O parte din aceste circuite se găsesc în unitatea de memorie respectivă, altele sunt externe, fiind de obicei integrate în controlerul unităţii de memorie.

Obiectivul principal în proiectarea oricărui subsistem de memorie este realizarea unei capacităţi de memorare adecvată sistemului de calcul, cu un nivel acceptabil de performanţe, la un cost rezonabil. Trebuie subliniat faptul că nu întotdeauna obiectivul este acela de a obţine o capacitate de memorare cât mai mare.

 

2.1. Caracteristicile unităţilor de memorie

 

Capacitatea de memorare reprezintă numărul locaţiilor (celulelor) de memorie conţinute de o unitate de memorie. Aceasta depinde de tehnologia de fabricaţie şi se exprimă în cuvinte de informaţie memorată (cuv), dimensiunea cuvântului fiind diferită de la un calculator la altul.

Timpul de acces la o unitate de memorie (tA) este timpul necesar localizării unei celule de memorie, pentru transferul de informaţii la/de la locaţia de memorie respectivă. Acesta reprezintă intervalul de timp calculat din momentul în care o unitate master lansează o comandă către o unitate de memorie şi până în momentul în care informaţia 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 până când poate lansa o nouă comandă (COM 2) la aceeaşi unitate de memorie. tC > tA, diferenţa lor numindu-se timp de revenire (tR = tCtA). Acesta reprezintă timpul minim necesar pentru inactivarea primei comenzi, până la activarea celei de-a doua.

Rata de transfer (rT) este inversa timpului de ciclu şi reprezintă cantitatea maximă de informaţie (exprimată în cuvinte pe secundă), care poate fi transferată la/de la memorie într-o secundă:

rT =  [cuv/s].                                                                                    (2)

 

Costul total al unităţii de memorie (CT) include, pe lângă costul celulelor de memorie propriu-zise, şi costul circuitelor de acces la aceste celule. Pentru compararea diverselor unităţi de memorie între ele, se utilizează costul unitar (CU), care reprezintă costul de memorare a unui cuvânt de informaţie. Costul unitar se determină prin raportarea costului total (CT) la capacitatea de memorare (CM):

 

CU =  [cost/cuv].                                                                         (3)

 

Cu cât memoria este mai rapidă, cu atât costul unitar este mai mare.

Modul de acces la locaţiile unităţii de memorie arată ordinea în care informaţia memorată poate fi accesată. Acesta poate fi serial sau paralel.

Dacă locaţiile de memorie pot fi accesate în orice ordine, iar timpul de acces este independent de locaţia accesată, atunci accesul este aleator, iar unitatea de memorie se numeşte memorie cu acces aleator. În general, memoriile semiconductoare sunt memorii cu acces aleator.

Prin ierarhizarea unităţilor de memorie, blocurile de informaţii cu probabilitatea cea mai mare de accesare sunt aduse pe niveluri superioare, mai aproape de unitatea centrală (localitate spaţială). Dintre acestea, informaţiile cele mai recent accesate sunt păstrate î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 terţiară (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 octeţi – KB) şi păstrează informaţia primară (instrucţiuni şi date), necesară procesorului în momentul prelucrării.

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 având o capacitate de memorare relativ mare (sute de MB). MP păstrează informaţiile active, care vor fi apelate de către procesor, dar care nu sunt imediat necesare acestuia. Informaţiile devin active prin transferarea lor din MS în MP, fiind memorate sub formă de blocuri de informaţii, în zone de memorie, proprii fiecărui program. Viteza de lucru a MP este mult mai mică decât cea a registrelor procesorului (cu 2–3 ordine de mărime), având timpi de acces aleator de zeci până la sute de ns.

Memoria cache (MC), numită şi memorie imediată, este o memorie de dimensiuni relativ mici (zeci – sute de KB), mai rapidă decât memoria primară, care se interpune între procesor şi MP, în scopul reducerii discrepanţelor mari dintre performanţele acestora. Aceasta are rol de memorie tampon între procesor şi MP, păstrând informaţiile cele mai recent folosite de procesor, duplicări ale celor din MP . MC este o memorie rapidă, realizată cu circuite integrate de memorie SRAM. Are timpul de acces de 2–10 ori mai mic (ns) decât cel al memoriei primare, fiind însă şi de câteva ori mai scumpă. La realizarea ei, se doreşte ca procesorul să lucreze cât mai mult timp cu MC, şi nu cu MP. Pentru o memorie cache bine implementată, procesorul lucrează cu aceasta circa 70–90 % 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 unităţi de memorie pe suport magnetic (disc magnetic, bandă magnetică) şi are capacităţi de memorare foarte mari (zeci – sute de GB). Viteza de operare este mult mai mică decât cea a MP, având un timp de acces cu 5–6 ordine de mărime mai mare decât cel al MP. Fiind foarte lentă, MS este plasată în subsistemul de intrare/ieşire şi este accesată prin intermediul controlerelor. Principalul avantaj este costul unitar de memorare foarte mic.

Memoria intermediară (MI), numită şi memorie cache pentru suporţi externi sau memorie cache de disc (Disk-Cached Memory), este plasată între MP şi MS, acţionând într-o manieră similară celei a MC. Are rol de memorie tampon, care păstrează blocurile de informaţii cel mai recent accesate de un program, duplicări ale celor din MS.

Memoria terţiară (MT), sau memoria de arhivare, este o memorie nevolatilă de dimensiuni foarte mari, dar şi cu timpi de acces foarte mari (zeci de secunde). Păstrează informaţii pasive, stocate doar în scop de arhivare, accesul la acestea făcându-se foarte rar. MT este realizată cu unităţi de memorare pe suport detaşabil, optic (CD-ROM) sau magnetic (bandă sau casetă magnetică). Trebuie subliniat faptul că MT reprezintă colecţia de casete sau CD-uri existente, şi nu unităţile de memorie propriu-zise.

 

2.2. Clasificarea memoriilor semiconductoare

 

Circuitele integrate de memorie (CIM) sunt memorii semiconductoare, realizate în diverse tehnologii de fabricaţie (bipolare sau MOS). Acestea sunt de mai multe tipuri, cu diferite raporturi performanţe/cost, având 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 locaţiile de memorie pot fi accesate în orice ordine, iar timpul de acces nu depinde de locaţia accesată.

Memoriile RAM pot fi de două tipuri:

·      memorii SRAM (Static RAM), care memorează informaţia în mod static;

·      memorii DRAM (Dynamic RAM), la care informaţia este memorată în mod dinamic.

 

2.2.1. Memoria SRAM

 

Memoria SRAM (Static RAM) este o memorie în care informaţia se memorează într-un mod stabil, pe ambele niveluri logice, atât timp cât memoria este alimentată. Este realizată în tehnologii rapide (bipolare sau CHMOS = Complementary High-density MOS), cu timpi de acces foarte mici (câteva ns). Fiind o memorie care poate fi şi citită şi scrisă, SRAM va avea magistrala bidirecţională de date şi două cicluri diferite de memorie: ciclul de citire şi ciclul de scriere, identificate de semnalul , activ pe 0L. Simbolul memoriei SRAM este ilustrat în figura 2.

 

 

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 decât cele sincrone, dar sunt mai ieftine şi au un consum de energie mic. Aceste memorii sunt realizate într-o gamă foarte diversă de performanţe, cu timpi de acces ce variază de la 50–70 ns, până la 10–15 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 funcţiona 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 capacităţi mici, de zeci-sute de KB, şi care memorează cuvinte de 8 biţi. Sistemele performante, care necesită viteze şi capacităţi 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 performanţe. De aceea, în cele ce urmează vor fi analizate elementele comune, definitorii pentru SRAM, iar exemplificările 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ă informaţia în mod dinamic. Este realizată în tehnologie CMOS (Complementary MOS), cu consum de energie foarte mic. Datorită particularităţilor constructive ale celulelor de memorie, informaţia 0L este memorată stabil, dar informaţia 1L se pierde în timp şi necesită împrospătarea periodică a memoriei, de unde şi denumirea acesteia.

Indiferent de modul de realizare, memoria DRAM este mult mai lentă decât memoria SRAM, din cauza mecanismului specific de memorare a informaţiilor. Timpul de acces la DRAM este de 2–10 ori mai mare decât la SRAM, şi variază în funcţie de tipul accesului la memorie.

Astfel, în acces aleator, timpul de acces este mare (zeci de ns), însă scade foarte mult (în funcţie de tipul memoriei DRAM), dacă se restricţionează accesul în mod pagină, putând ajunge doar de două ori mai mare decât al memoriei SRAM.

Celula de memorie este mult mai mică decât la memoria SRAM, ceea ce permite realizarea unor densităţi mari de integrare. Circuitele de memorie DRAM au, prin urmare, capacităţi de memorare mari, şi implicit un număr mare de linii de adresă. Simbolul memoriei DRAM este ilustrat în figura 4.

 

 

Fig. 4. Simbolul memoriei DRAM.

 

Memorarea informaţiilor se bazează pe stocarea şi transferul de sarcini electrice, şi nu pe mecanisme de comutare, ca în cazul memoriilor SRAM. Fiecare bit de informaţie este memorat prin încărcarea sau descărcarea unui condensator. Când condensatorul este încărcat, se spune că se memorează valoarea 1L, iar când acesta este descărcat, 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 pătrată sau dreptunghiulară de locaţii de memorie, fiecare locaţie memorând un cuvânt de m biţi, Semnalele de comandă acţionează prin intermediul logicii de control. Eventual, memoria DRAM poate avea circuit intern de împrospătare, care presupune un numărător de adrese de rând şi un ceas de timp real. În funcţie de tipul memoriei DRAM, ciclurile de împrospătare pot fi realizate în trei moduri:

·        ROR (RAS Only Refresh) este o metodă de împrospătare din exterior, prin care se transmit memoriei adresa de rând (AR) şi semnalul, fără a se activa semnalul. Unitatea master externă este anunţată periodic să facă refresh de către un ceas de timp real, care este programat software de către sistemul de operare.

·        CBR (CAS Before RAS) este tot o metodă de împrospătare din exterior, prin care se transmit semnalele  şi , activate în această ordine. În acest caz, memoria dispune de un numărător de adrese intern, pentru indicarea liniei care trebuie împrospătată, fără a fi nevoie de transmiterea adresei din exterior. De asemenea, perioada de repetiţie a ciclurilor de refresh este determinată de un ceas de timp real extern.

·        Auto-împrospătare cu ajutorul circuitelor interne memoriei DRAM. În interior, memoria conţine un numărător de adrese de rând, 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 decât 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 50–70 ns, iar timpul de ciclu (tC) este de 90–120 ns.

O altă categorie de memorii DRAM este cea care utilizează o interfaţă sincronă. Prin implementarea unei interfeţe sincrone, s-au eliminat perioadele de aşteptare de către procesor, obţinându-se de asemenea unele avan­taje suplimentare. În cazul funcţionării sin­crone, se memorează anumite informaţii de la procesor în circuitele latch ale memoriei DRAM sub controlul ceasului sistem. Aceste circuite păstrează adresele, datele şi semnalele de control, ceea ce permite procesorului să execute alte operaţii. După un număr specific de cicluri de ceas, datele devin disponibile şi procesorul le poate citi de pe liniile de ieşire.

Un alt avantaj al unei interfeţe sincrone este că ceasul sistemului este singurul semnal de sincronizare care trebuie furnizat memoriei DRAM. Aceasta elimină necesitatea propagării semnalelor multiple de sincronizare. In­trările sunt de asemenea simplificate, deoarece semnalele de control, adresele şi datele pot fi memorate fără temporizările de setare şi menţinere monitorizate de procesor. Avantaje similare se obţin şi pentru operaţiile de ieşire.

O altă categorie este reprezentată de me­moriile DRAM bazate pe protocoale. Catego­riile precedente de memorii au linii separate de adrese, date şi control, care limitează viteza la care poate funcţiona circuitul cu tehnologia curentă. Pentru eliminarea acestui dezavantaj, au fost proiectate memorii DRAM bazate pe protocoale, care implementează toate aceste semnale pe aceeaşi 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. Deşi 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 puţin mai rapid decât la memoriile asincrone, datorită tehnologiei (memoriile sincrone au apărut ulterior). În acces aleator, tRAC este de 40–60 ns, iar tC este de 80–110 ns.

Accesul în mod pagină este mult mai rapid decât la memoriile asincrone şi depinde de frecvenţa semnalului de ceas de sincronizare.

 

2.3. Accesul la locaţiile de memorie

           

În sistemele bazate pe microprocesoare, modulele de memorie se conectează pe magistrala sistemului. Accesul la locaţiile de memorie se realizează prin cicluri de transfer (cicluri maşină), folosindu-se semnalele magistralei (semnale de adresă, de date şi de comenzi). Modul de desfăşurare a diferitelor tipuri de cicluri de transfer se reprezintă prin diagrame de timp; diagrama prezentând evoluţia î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 comunicaţie 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 următorii parametri de timp:

·        timpul de acces la citire (tAR) – intervalul de timp între momentul apariţiei adresei valide şi momentul în care data citită este prezentă pe liniile de date; uneori timpul de acces se măsoară în raport cu momentul de apariţie al semnalului de comandă MEMR\; dacă timpul de acces al circuitului de memorie folosit este mai mare decât timpul permis pe magistrală, atunci interfaţa modulului de memorie trebuie să prelungească ciclul de transfer prin dezactivarea pe un timp limitat a semnalului READY către procesor.

·        timpul de menţinere 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 acelaşi mod ca la citire, dacă circuitul de memorie folosit are un timp de acces mai mare, atunci interfaţa modulului trebuie să dezactiveze temporar semnalul READY pentru prelungirea ciclului de transfer; momentul activării semnalului de scriere se măsoară şi în raport cu momentul în care data este prezentă pe magistrală.

·        timpul de menţinere a semnalului de scriere (tMEMW), de obicei < tMEMR.

 

Observaţii:

1.    la citire, data este generată după apariţia semnalelor de adresă şi de comandă şi se menţine 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ă întârzierile care apar într-un modul de memorie datorită circuitelor de decodificare a adresei şi de selecţie a amplificatoarelor de intrare sau de ieşire

4.    proiectantul trebuie să aleagă circuite de memorie cu parametri de timp acoperitori pentru restricţiile impuse pe magistrală; trebuie să se ia în calcul şi întârzierile 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 impuşi:

·        capacitatea memoriei;

·        modul de organizare (unitatea elementară de acces la memorie: octet, cuvânt, cuvânt dublu);

·        tipul de magistrală pe care se conectează (numărul semnalelor de date şi de adrese, tipurile semnalelor de comandă, parametrii de timp pentru ciclurile de transfer);

·        amplasarea modulului de memorie în spaţiul de adresare al procesorului, exprimată prin adresa sa de început (trebuie să fie un multiplu al capacităţii modulului);

·        tipul de circuit de memorie disponibil (poate fi un parametru impus sau unul ales de proiectant);

·        alte cerinţe speciale (de exemplu: accesul dual de pe două magistrale, reîmprospătarea controlată centralizat, implementarea unor mecanisme de detecţie a erorilor etc.)

 

2.5. Metodologia de proiectare a memoriilor dinamice

           

Proiectarea memoriilor dinamice este în principiu similară proiectării memoriilor statice, cu următoarele amendamente:

·        trebuie să se adauge un mecanism de reîmprospătare periodică a memoriei (refresh);

·        adresele trebuie multiplexate (generarea secvenţială pe aceleaşi 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);

·        selecţia circuitelor se face cu semnalele RAS şi CAS (excepţie fac circuitele de tip EDO-DRAM, care au semnal separat pentru selecţia circuitului).

            Pentru circuitele RAM dinamice, multiplexarea în timp a adreselor a fost necesară pentru a reduce numărul de pini ai circuitului de memorie şi, implicit, dimensiunea acestuia. De notat că circuitele dinamice au o capacitate relativ mare, ceea ce impune un număr mare de linii de adresă pentru selecţie. Organizarea internă a unei memorii dinamice este sub forma unei matrice, cu linii şi coloane; selecţia unei locaţii se face prin specificarea adresei sale de linie şi de coloană.

            Reîmprospătarea periodică a memoriei este necesară deoarece informaţia este păstrată un timp limitat după ultima operaţie de citire sau scriere (condensatorul care stochează informaţia se descarcă în timp).

Controlul procesului de reîmprospătare 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 reîmprospătare nu se suprapun peste ciclurile obişnuite de citire sau scriere. Reîmprospătarea 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, reîmprospătare a memoriei.

 

 

Fig. 7. Ciclu de citire din memorie.

 

 

Fig. 8. Ciclu de scriere în memorie.

 

 

Fig. 9. Ciclu de reîmprospătare a memoriei.

3. Descrierea aplicaţiei

 

            Aplicaţia SRAMvsDRAM este formată din 6 ferestre.

 

            3.1. Meniul principal

 

            Fereastra meniului principal (vezi figura 10) conţine două butoane de comandă (Memoria SRAM şi Memoria DRAM), iar prin apăsarea acestora se deschide dialogul corespunzător opţiunii făcute. Fereastra deschisă prin apăsarea oricărui buton declanşează un eveniment şi astfel este permisă deschiderea mai multor submeniuri în acelaşi timp. Revenirea la meniul principal se poate face după închiderea submeniului apelat sau prin deplasarea focusului pe fereastra principală.

 

 

Fig. 10. Meniul principal al aplicaţiei.

 

            Din punctul de vedere al utilizatorului, parcurgerea meniului este foarte simplă: el trebuie să selecteze una dintre cele două opţiuni disponibile în cadrul meniului.

 

            3.2. Memoria RAM statică

 

            Apăsarea butonului Memoria RAM statică din meniul principal va deschide o nouă fereastră (vezi figura 11), în care utilizatorul poate opta pentru:

·        butonul Operaţii de citire/scriere ale memoriei SRAM;

·        un exerciţiu de dimensionare hardware, în care utilizatorul poate calcula numărul de tranzistori necesar unei anumite capacităţi de memorare.

S-au folosit două combobox-uri şi două grupuri a câte două butoane radio, prin care utilizatorul poate selecta capacitatea memoriei, cu valori cuprinse între 16 şi 2048, multiplul valorii capacităţii, care poate avea două valori: K (Kilo) şi M (Mega), unitatea de mărime, de asemenea cu două valori posibile: b (bit) sau B (Byte sau octet), precum şi numărul de tranzistori pe celulă de memorie, cu valori cuprinse între 3 şi 10. Fereastra mai cuprinde un textbox în care se face afişarea numărului de tranzistori, după apăsarea butonului calculează.

 

            3.3. Operaţii 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 având gamele de valori prestabilite.

 

 

Fig. 11. Memoria RAM statică.

 

 

Fig. 12. Operaţii de citire/scriere ale memoriei SRAM.

 

Fereastra mai cuprinde un textbox care atenţionează utilizatorul în cazul în care acesta a acţionat unul dintre cele trei butoane existente fără să fi selectat în prealabil valori pentru aceşti timpi.

Pe baza celor două valori alese, prin apăsarea 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 fără semnalul .

Diagramele rezultate sunt formate din semnale de adresă şi semnale de comandă (de validare a circuitului de memorie , a ieşirilor memoriei şi de validare a ciclului de scriere ). Locaţiile de memorie sunt accesate prin intermediul adreselor trimise pe magistrala de adrese (ADR).

            La memoriile asincrone, o nouă operaţie poate începe după încheierea timpului de ciclu. În acest caz, se observă că magistrala de date este ocupată mai mult timp decât în cazul anterior. De asemenea, semnalul  nu trebuie activat după semnalul , deoarece s-ar activa circuitul de ieşire din SRAM în timpul scrierii.

 

            3.4. Memoria RAM dinamică

 

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

 

 

Fig. 13. Memoria RAM dinamică.

 

·        Operaţii de citire/scriere/împrospătare 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 următorii parametri:

·        perioada de repetiţie a ciclurilor de refresh (în μs), în funcţie de timpul de reîmprospătare (în ms) şi numărul de linii al unei arii dreptunghiulare de memorie;

·        gradul de ocupare a memoriei cu împrospătarea (în %), care se poate calcula în funcţie de durata ciclurilor de împrospătare (în ms) şi perioada de repetiţie a ciclurilor de împrospătare (în μs);

·        rata de transfer a memoriei DRAM (în MB/s), în funcţie de lăţimea magistralei de date şi frecvenţa semnalului de ceas (în MHz).

            Pentru alegerea parametrilor s-au folosit combobox-uri cu valori prestabilite, iar pentru afişarea rezultatelor s-au folosit textbox-uri validate prin apăsarea butoanelor calculează.

            În cadrul procedurii de încărcare a ferestrei, se iniţializează variabilele din fiecare segment în parte. Astfel, din punctul de vedere al utilizatorului, apăsarea unui buton de comandă declanşează procesul de calcul şi returnează un rezultat într-o anumită unitate de măsură, în funcţie de segment.

 

            3.5. Operaţii de citire/scriere/împrospătare ale memoriei DRAM

 

            Această fereastră prezintă diagramele de timp ale ciclurilor de citire, scriere şi împrospătare (vezi figura 14).

 

 

Fig. 14. Operaţii de citire/scriere/împrospătare ale memoriei DRAM.

 

Acestea se construiesc pe baza variabilelor de intrare: timpii de acces la memorie şi de ciclu, ambii parametri având gamele de valori prestabilite. Diagramele de timp trasate sunt descrise de semnalele de comandă şi de conţinutul magistralelor de adrese şi de date.

Pentru ca memorarea adreselor să fie corectă, adresele de rând şi de coloană trebuie să fie stabile un interval de timp înainte şi după momentul activării semnalelor de comandă corespunzătoare,  şi . După activare, semnalele de comandă  şi  trebuie să rămână active până la sfârşitul ciclului, deoarece, prin logica de control, acestea au rolul de validare a circuitului de memorie şi a ieşirilor. Funcţia de trasare a diagramelor de timp se declanşează prin apăsarea butoanelor corespunzătoare.

 

3.6. Parametrii memoriei DRAM

 

Ultima fereastră a aplicaţiei oferă utilizatorului posibilitatea de calculare a următorilor 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), numărul 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 numărul de cuvinte din pagină – pentru calculul timpului total de transfer;

·        frecvenţa 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 afişarea parametrilor, după apăsarea butoanelor calculează.

 

4. Desfăşurarea lucrării

 

1.      Se studiază partea teoretică a lucrării.

2.      Se lansează aplicaţia SRAMvsDRAM.exe.

3.      Se selectează opţiunea Memoria RAM statică.

3.1.    Se presupune că se doreşte realizarea unei memorii cache de nivel 2, integrată în microprocesor, cu capacitatea de memorare de 512 KB. Dacă celulele de memorie au câte 6 tranzistori, atunci să se determine numărul total de tranzistori necesari pentru MC.

3.2.    Se reiau determinările pentru alte seturi de date de intrare şi se notează rezultatele obţinute.

4.      Se selectează opţiunea Operaţii 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 reprezentările pentru alte seturi de date de intrare şi se reţin rezultatele obţinute.

5.         Se selectează butonul Memoria RAM dinamică şi se studiază cazurile următoare din cadrul meniului şi submeniurilor ferestrei:

5.1. Un circuit de memorie DRAM are capacitatea de memorare de 64 Kb. Celulele de memorie trebuie împrospătate 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 repetiţie a ciclurilor de refresh. Se reiau determinările pentru alte seturi de date de intrare şi se notează rezultatele obţinute. Se notează rezultatele obţinute.

5.2. Cunoscând durata ciclurilor de împrospătare şi perioada de repetiţie a acestora, se va determina gradul de ocupare a memoriei cu împrospătarea, ca procent din timpul total de lucru al memoriei. De exemplu, pentru memoria DRAM din exemplul anterior, se cunoaşte durata ciclurilor de împrospătare (250 ns). Să se calculeze gradul de ocupare a memoriei cu împrospătarea. Se reiau determinările pentru alte seturi de date de intrare şi se notează rezultatele obţinute.

5.3. Să se calculeze banda maximă susţinută de transfer pentru o memorie DDR-SDRAM, la frecvenţa semnalului de ceas de 400 MHz (folosind aplicaţia) şi 600 MHz (exerciţiu de calcul). Se notează rezultatele obţinute.

5.4. Se vizualizează şi se desenează diagramele de timp pentru ciclurile de citire, scriere şi reîmprospătare în cazul mai multor seturi de valori ale timpului de acces şi timpului de ciclu.

5.5. Se repetă calculul de la punctul 5.3 pentru o memorie RDRAM. Se notează rezultatele obţinute.

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 ns şi timpul de ciclu tC = 120 ns. Dacă memoriile sunt accesate aleator, transferându-se câte un singur cuvânt, atunci accesul durează 70 ns, dar următorul acces nu poate fi început decât după timpul de ciclu de 120 ns. De aceea, la citirea mai multor cuvinte (de exemplu, la citirea a 4 cuvinte), primul cuvânt este citit după 70 ns, dar următoarele citiri durează câte 120 ns, deci, timpul total se calculează astfel: tRAC + (n–1)tC, unde n este numărul de cuvinte citite. Să se calculeze timpul total de ocupare şi timpul total de transfer. Se notează rezultatele obţinute.

5.7. Se consideră aceleaşi memorii DRAM, cu tRAC = 70 ns şi tC = 120 ns. Dacă se iniţiază un acces în mod pagină, de exemplu pentru citirea a 4 cuvinte din pagină, atunci primul acces durează tRAC = 70 ns, însă următoarele 3 cuvinte sunt accesate cu timpul de ciclu de pagină (tPC), mai rapid, în funcţie de tipul memoriei, conform expresiei modificate: tRAC + (n–1)tPC, unde n este numărul de cuvinte citite. Să se calculeze timpul total de transfer pentru FPM, BEDO RAM şi EDO DRAM. Se notează rezultatele obţinute.

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. Se notează rezultatele obţinute.

 

5. Întrebări

 

1.         Definiţi şi caracterizaţi memoria SRAM.

2.         Discutaţi, comparativ, cele două tipuri de memorii SRAM. Care sunt domeniile lor de aplicabilitate?

3.         Explicaţi semnificaţia semnalelor de comandă ale memoriei SRAM.

4.         Utilizând schema bloc a memoriei SRAM, să se descrie modul de selectare a unei celule de memorie.

5.         Descrieţi funcţionarea logicii de comandă a circuitului I/O al memoriei SRAM.

6.         Cum se modifică logica de comandă la memoriile fără semnalul OE?

7.         Explicaţi modul de execuţie al ciclului de citire din memoria SRAM.

8.         Discutaţi, comparativ, cele două diagrame ale ciclului de scriere, corespunzătoare memoriilor SRAM, cu şi fără semnalul OE.

9.         Explicaţi care sunt modurile de realizare a împrospătării conţinutului memoriilor DRAM.

10.     Analizaţi comparativ memoriile DRAM sincrone şi asincrone.

11.     Cum acţionează semnalele RAS şi CAS pentru împrospătarea memoriei?

12.     Să de definească parametrii de timp de care trebuie să se ţină seama la proiectarea unei memorii şi să se explice relaţiile de condiţionare între aceste valori.

13.     Comparaţi metodologiile de proiectare pentru memoriile statice şi dinamice.

14.     Ş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.

15.     Caracterizaţi memoria DRAM şi explicaţi diferenţele faţă de memoria SRAM care apar la conectarea cu exteriorul.

16.     Cum intervine semnalul de comandă WE în modul de transfer al memoriilor dinamice, comparativ cu cele statice?

17.     Ordonaţi tipurile de memorii descrise în lucrare după criteriul vitezei de lucru.