Sunteți pe pagina 1din 11

8.

UNITATEA DE MEMORIE

Memoria este partea sistemelor de calcul care se utilizeaz pentru pstrarea i regsirea ulterioar a datelor i instruciunilor. Operaiile principale n care este implicat memoria sunt urmtoarele: Preluarea datelor de intrare n memorie; Pstrarea datelor pn la prelucrarea lor de ctre UCP; Pstrarea datelor de ieire pn cnd ele vor putea fi preluate de echipamentele de ieire; Transmiterea datelor din memorie la ieire. Sistemele de memorie influeneaz n mod critic performanele calculatoarelor. Deoarece n memorie sunt pstrate att datele, ct i instruciunile, sistemul de memorie trebuie s satisfac cererile simultane pentru prelucrarea datelor, execuia instruciunilor i transferul ntre memorie i exterior. ntr-un calculator de tip von Neumann, restricia principal impus de sistemul de memorie este urmtoarea: Un singur modul de memorie cu structur convenional nu poate face acces la mai mult de un cuvnt n timpul fiecrui ciclu de memorie. Exist o mare varietate de tipuri, tehnologii, organizri, performane i costuri ale memoriilor utilizate n sistemele de calcul. Nici una din acestea nu este optim pentru satisfacerea tuturor cerinelor. Ca o consecin, sistemele de calcul sunt echipate cu o ierarhie de subsisteme de memorie, unele interne sistemului (accesibile direct de UCP), iar altele externe (accesibile prin UCP printr-un modul de I/E).

8.1. Caracteristicile sistemelor de memorie


Cele mai importante caracteristici sunt urmtoarele: 1) Amplasarea: n cadrul UCP; Memorii interne; Memorii externe.

8. Unitatea de memorie 2) Capacitatea: Dimensiunea cuvntului; Numrul de cuvinte. 3) Unitatea de transfer: Cuvntul; Blocul. 4) Metoda de acces: Acces secvenial; Acces direct; Acces aleator; Acces asociativ.

233

5) Performanele: Timpul de acces; Durata ciclului; Rata de transfer. 6) Tipul memoriei: Memorii semiconductoare; Memorii magnetice. 7) Caracteristicile fizice: Volatile / nevolatile; Cu / fr posibilitatea tergerii. 8) Organizarea. Amplasarea. Sistemele de calcul dispun de memorii interne i externe. Memoria intern este considerat de cele mai multe ori ca memorie principal. Exist ns i alte forme de memorie intern. UCP necesit o memorie local proprie, sub forma registrelor. Unitatea de comand i control din cadrul UCP poate necesita de asemenea o memorie proprie, n cazul unitilor de comand microprogramate. Memoria extern const din dispozitivele periferice, ca discuri sau benzi magnetice, care sunt accesibile de ctre UCP prin controlere (module) de I/E. Capacitatea. Se exprim prin dimensiunea cuvntului de memorie (8, 16, 32, 64 sau 128 de bii) i numrul de cuvinte (KB, MB, GB). Unitatea de transfer. Pentru memoria intern, unitatea de transfer este egal cu numrul liniilor de date la i de la modulul de memorie, deci cu numrul de bii transferai simultan. Unitatea de memorie nu trebuie s fie egal neaprat cu un cuvnt. Pentru memoria extern, datele sunt transferate de multe ori n uniti mai mari dect un cuvnt, numite blocuri. Metoda de acces. Exist urmtoarele tipuri de acces la unitile de date:

234

Arhitectura calculatoarelor Acces secvenial. Memoria este organizat n uniti de date, numite nregistrri. Accesul trebuie realizat ntr-o secven liniar. Se utilizeaz informaii de adresare memorate pentru separarea nregistrrilor i pentru a permite regsirea informaiilor. Timpul de acces la o anumit nregistrare arbitrar este variabil. Unitile de band sunt echipamente cu acces secvenial. Acces direct. Blocurile sau nregistrrile individuale au o adres unic pe baza amplasrii fizice a acestora. Timpul de acces este de asemenea variabil. Unitile de disc sunt echipamente cu acces direct. Acces aleator. Fiecare locaie adresabil a memoriei are un mecanism de adresare ncorporat. Timpul de acces a unei locaii date este independent de secvenele accesurilor anterioare i este constant. Deci, fiecare locaie poate fi selectat aleator, i poate fi adresat i accesat direct. Memoria principal este cu acces aleator. Acces asociativ. Memoria asociativ este un tip de memorie cu acces aleator, care permite compararea unor bii dintr-un cuvnt cu o anumit valoare specificat, i efectuarea acestei comparri n mod simultan pentru toate cuvintele. Deci, un cuvnt este regsit pe baza unei pri a coninutului acestuia i nu pe baza adresei (memorie adresabil prin coninut). Fiecare locaie are propriul mecanism de adresare, iar timpul de regsire este constant, independent de locaie sau de secvenele accesurilor anterioare. Memoriile cache pot utiliza un acces asociativ. Performanele. Se utilizeaz trei parametri de performan: Timpul de acces. Pentru memoria cu acces aleator, acesta este timpul necesar pentru execuia unei operaii de citire sau scriere, deci timpul de la setarea adresei de memorie pn cnd datele sunt disponibile pentru utilizare. Pentru alte tipuri de memorii (cu acces non-aleator), timpul de acces este timpul necesar poziionrii corespunztoare a capului de citire/scriere. Durata ciclului de memorie. Acest parametru este utilizat mai ales pentru memoria cu acces aleator i const din timpul de acces plus timpul suplimentar necesar pn cnd poate ncepe un nou acces. Acest timp suplimentar poate fi necesar pentru stabilizarea liniilor de semnal sau pentru a regenera datele dac citirea acestora este distructiv. Rata de transfer. Este rata cu care datele pot fi transferate la sau de la unitatea de memorie. Pentru memoria cu acces aleator, rata de transfer este egal cu 1/(Durata ciclului). Pentru memoriile cu acces non-aleator, exist urmtoarea relaie: TN = TA + N R (8.1)

unde: TN = Timpul mediu pentru citirea sau scrierea a N bii;

8. Unitatea de memorie TA = Timpul mediu de acces; N = Numrul de bii; R = Rata de transfer, n bii/s (bps).

235

Tipul memoriei. Cele mai utilizate tipuri de memorii sunt memoriile semiconductoare i memoriile magnetice. Caracteristicile fizice. n cazul memoriilor volatile, informaiile se pierd la ntreruperea tensiunii de alimentare. La memoriile nevolatile, informaiile rmn nemodificate dup nregistrarea lor, pn la modificarea deliberat a acestora. Memoriile magnetice sunt nevolatile. Memoriile semiconductoare pot fi volatile sau nevolatile. Memoriile semiconductoare care nu pot fi terse se numesc memorii de tip ROM (Read Only Memory). O asemenea memorie este de asemenea i nevolatil. Organizarea. Prin organizarea memoriilor cu acces aleator se nelege aranjarea fizic a biilor pentru formarea cuvintelor.

8.2. Ierarhia de memorii


Principalele caracteristici de care trebuie s se in cont la realizarea unui sistem de memorie sunt capacitatea i performanele memoriei, n special timpul de acces. Pe lng acestea, trebuie s se ia n considerare i costul memoriei. Aceste caracteristici sunt contradictorii. De exemplu, exist n general urmtoarele relaii ntre capacitatea, timpul de acces i costul pe bit al diferitelor tehnologii utilizate pentru implementarea sistemelor de memorie: O capacitate mai mare implic un timp de acces mai mare; O capacitate mai mare implic un cost pe bit mai mic; Un timp de acces mai mic implic un cost pe bit mai mare. Pe de o parte, trebuie utilizate tehnologii de memorie care asigur o capacitate ridicat, pentru c o asemenea capacitate este necesar, i deoarece costul pe bit al acestor tehnologii este mai redus. Pe de alt parte, pentru a satisface cerinele de performan, trebuie utilizate memorii cu un timp de acces redus, care au un cost ridicat i o capacitate relativ redus. Aceste cerine contradictorii se pot asigura dac se utilizeaz n cadrul unui sistem de calcul mai multe componente i tehnologii de memorie, care formeaz o ierarhie de memorii. O ierarhie tipic este ilustrat n Figura 8.1. Memoria intern principal a calculatorului este cea la care fac referire cele mai multe instruciuni i date. Pentru operaiile interne ale UCP i cele aritmetice i logice, se utilizeaz registrele. Memoria principal este extins uneori cu o memorie mai rapid, de dimensiuni mai mici, numit memorie cache sau memorie tampon rapid. Memoria principal i extensiile sale sunt, n general, volatile. Datele sunt pstrate pe termen lung n memorii externe de mas, dintre care cele mai utilizate sunt discurile i benzile magnetice. Acestea se utilizeaz pentru memorarea fiierelor de programe i de date. Discurile se utilizeaz de asemenea pentru a asigura o extensie a memoriei principale, numit memorie virtual.

236

Arhitectura calculatoarelor

Figura 8.1. Ierarhie tipic a memoriilor.

Pe msura deplasrii din partea superioar a ierarhiei spre cea inferioar, se constat urmtoarele: (a) Scade costul pe bit; (b) Crete capacitatea; (c) Crete timpul de acces; (d) Scade frecvena de acces la memorie de ctre UCP. Rezult deci c memoriile rapide, cu un cost mai ridicat, sunt extinse prin memorii de dimensiuni mai mari, mai lente, dar mai ieftine. Dac memoria poate fi organizat conform punctelor (a) - (c), i dac datele i instruciunile pot fi distribuite n cadrul acestei memorii conform condiiei (d), aceast organizare va reduce costurile globale, meninnd n acelai timp un anumit nivel al performanelor. Baza pentru validitatea condiiei (d) o reprezint principiul cunoscut sub numele de localitate a referinelor. Referinele la memorie efectuate de UCP, att pentru date, ct i pentru instruciuni, tind s se grupeze n anumite zone. Programele conin de obicei un numr de bucle repetitive i subrutine. Dup intrarea ntr-o asemenea bucl sau subrutin, vor exista referine repetate la un numr redus de instruciuni. n mod similar, operaiile cu tablouri de date implic accesul la un set grupat de cuvinte de date. ntr-o perioad mai lung de timp, zonele de memorie accesate se schim, dar ntr-o perioad scurt de timp, UCP lucreaz mai ales cu referine de memorie grupate. n mod corespunztor, este posibil organizarea datelor n cadrul ierarhiei astfel nct procentul de accesuri la nivelul imediat inferior este cu mult mai redus dect cel

8. Unitatea de memorie

237

la nivelul imediat superior. Considerm, de exemplu, c memoria este organizat pe dou nivele, nivelul 1 fiind nivelul superior. Nivelul 2 conine toate instruciunile i datele programului. O parte a instruciunilor i datelor pot fi plasate temporar n nivelul 1. Periodic, anumite zone din nivelul 1 sunt mutate n memoria de nivel 2, elibernd spaiu pentru alte zone din nivelul 2. n medie ns, majoritatea referinelor se vor efectua la instruciunile i datele aflate n memoria de nivel 1.

8.3. Memorii semiconductoare


8.3.1. Tipuri de memorii semiconductoare
Tabelul 8.1 prezint principalele tipuri de memorii semiconductoare.
Tabelul 8.1. Tipuri de memorii semiconductoare.
Tipul memoriei RAM (Random-Access Memory) ROM (Read-Only Memory) PROM (Programmable ROM) EPROM (Erasable PROM) EEPROM (Electrically Erasable PROM) tergere Electric Nu este posibil Lumin UV Electric Scriere Electric Prin mti Electric Electric Electric Volatilitate Volatil Nevolatil Nevolatil Nevolatil Nevolatil

Memoriile RAM sunt numite i memorii cu acces aleator. Aceast denumire este improprie, deoarece toate categoriile de memorii din tabel sunt cu acces aleator, deci cuvintele individuale ale memoriilor pot fi accesate n mod direct. Caracteristica principal a memoriilor RAM este c ele pot fi att citite, ct i nscrise n mod simplu, prin semnale electrice. O alt caracteristic a acestora este volatilitatea, coninutul memoriilor fiind pierdut la ntreruperea tensiunii de alimentare. Memoriile RAM pot fi utilizate deci doar ca memorii temporare. Exist dou tehnologii de memorii RAM: dinamice i statice. Memoriile dinamice sunt realizate din celule care memoreaz datele ca sarcini capacitive, utiliznd condensatoare. Prezena sarcinii unui condensator este interpretat ca valoarea binar 1, iar absena acesteia ca valoarea binar 0. Deoarece condensatoarele au tendina de a se descrca n timp, memoriile RAM dinamice necesit remprosptarea periodic a sarcinilor capacitive pentru a-i pstra coninutul. Se utilizeaz circuite speciale de remprosptare. n cazul memoriilor statice, valorile binare sunt memorate utiliznd bistabile realizate din pori logice. Aceste memorii i pstreaz coninutul att timp ct se pstreaz tensiunea de alimentare, fr a fi necesar remprosptarea lor. O celul de memorie dinamic este mai simpl i deci de dimensiuni mai mici dect o celul de memorie static. De aceea o memorie RAM dinamic are o densitate mai mare i un cost mai redus dect o memorie RAM static echivalent. Pe de alt par-

238

Arhitectura calculatoarelor

te, o memorie RAM dinamic necesit un circuit de remprosptare. Pentru memorii de dimensiuni mari, costul fix al circuitului de remprosptare este compensat de costul variabil mai redus al celulelor RAM dinamice. De aceea, memoriile RAM dinamice sunt mai avantajoase atunci cnd cerinele de memorie sunt mari. Memoriile RAM statice sunt n general n oarecare msur mai rapide dect cele dinamice. Memoriile ROM pot fi doar citite, coninutul acestora fiind fixat n timpul procesului de fabricaie. Ca aplicaii ale acestor memorii se amintesc pstrarea microprogramelor la unitile de comand microprogramate, pstrarea programelor de sistem, a unor subrutine utilizate mai frecvent, a unor tabele de funcii. Avantajul acestor memorii este c ele sunt nevolatile, programele i datele sunt n permanen n memoria principal, i nu este necesar ncrcarea lor de pe un suport extern. Dezavantajul este c operaia de nscriere a coninutului n timpul fabricaiei implic costuri fixe mari, care nu se justific la serii mici de producie. Memoriile PROM sunt similare cu memoriile ROM: ele sunt nevolatile i pot fi nscrise (programate) o singur dat. n acest caz ns procesul de nscriere este electric, i poate fi realizat de un furnizor sau utilizator n funcie de necesiti, dup ncheierea procesului de fabricaie. Pentru nscriere este necesar un echipament special. Avantajul acestor memorii este flexibilitatea utilizrii lor, i costurile mai reduse atunci cnd este necesar un numr mai redus de memorii cu un anumit coninut. Memoriile EPROM sunt citite i nscrise prin metode electrice, ca i memoriile PROM. Spre deosebire de acestea, memoriile EPROM pot fi nscrise de mai multe ori, dac este necesar modificarea coninutului acestora. naintea unei operaii de scriere, celulele de memorie trebuie terse prin expunerea circuitului la o lumin ultraviolet. Aceste memorii sunt de asemenea nevolatile. Memoriile EEPROM reprezint cea mai avantajoas form de memorie nevolatil. Modificarea coninutului se poate realiza n orice moment, fr a fi necesar tergerea vechiului coninut. Operaia de scriere necesit un timp considerabil mai lung dect cea de citire. Aceste memorii combin avantajul de a fi nevolatile cu posibilitatea modificrii coninutului lor, fr a fi necesar un echipament specializat, utilizndu-se semnalele de adrese, date i control ale magistralei calculatorului. Preul acestor memorii este ceva mai ridicat.

8.5. Memoria cache


8.5.1. Principiul memoriei cache
Viteza UCP este superioar vitezei memoriilor, astfel c dup iniierea unui ciclu de acces la memorie, UCP trebuie s rmn inactiv un timp, ateptnd rspunsul acesteia. 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 mare a memoriei lente, la un pre moderat.

8. Unitatea de memorie

239

Memoria rapid de dimensiune mic se numete memorie cache (din limba francez: cacher - a ascunde).

Figura 8.10. Principiul memoriei cache.

Principiul memoriei cache este ilustrat n Figura 8.10. Exist o memorie principal de dimensiuni relativ mari, dar mai lent, i o memorie cache mai redus, dar mai rapid. Memoria cache conine o copie a unor pri din memoria principal. Atunci cnd UCP ncearc citirea unui cuvnt din memorie, se testeaz dac respectivul cuvnt se afl n memoria cache. n caz afirmativ, cuvntul este furnizat unitii centrale. n caz contrar, se ncarc n memoria cache un bloc al memoriei principale, constnd dintr-un numr fix de cuvinte, iar apoi cuvntul este returnat unitii centrale. Se cunoate c programele nu fac acces la memorie n mod complet aleator. Dac se face o referire la o anumit adres, este probabil c urmtoarea referire la memorie va fi n vecintatea acestei adrese. n spaiul adreselor de memorie, cteva regiuni au o probabilitate ridicat de a fi accesate, cteva au o probabilitate moderat, iar celelalte au o probabilitate foarte mic de a fi accesate n viitorul apropiat. O regiune care are o probabilitate nalt este cea corespunztoare contorului de program actual, deoarece este probabil s se execute urmtoarea instruciune din secvena de instruciuni. Alte regiuni care au o probabilitate mare de a fi accesate sunt cele care conin datele active, procedurile i punctul de ntoarcere dintr-o procedur. Dac programul este scris ntr-un limbaj structurat pe blocuri, ca de exemplu Pascal, zona de stiv pentru variabile locale i parametri este o alt zon cu probabilitate ridicat de acces. Observaia c referinele la memorie efectuate ntr-un interval scurt de timp utilizeaz o mic poriune a memoriei reprezint principiul localitii, i formeaz baza sistemelor de memorie cache. Atunci cnd este adresat un cuvnt, acesta este transferat din memoria lent n memoria cache, astfel nct la urmtoarea utilizare va putea fi accesat n mod rapid.

240

Arhitectura calculatoarelor

n Figura 8.11 se prezint structura unui sistem de memorie format din memoria principal i o memorie cache.

Figura 8.11. Structura unui sistem de memorie.

Memoria principal const din 2n cuvinte adresabile, fiecare cuvnt avnd o adres unic de n bii. Se consider c aceast memorie este format dintr-un numr de blocuri de lungime fix de K cuvinte fiecare. Exist deci 2n/K blocuri. Memoria cache const din blocuri de cte K cuvinte fiecare, un asemenea bloc fiind numit linie. Exist L linii n memoria cache, numrul de linii fiind mult mai mic dect numrul blocurilor din memoria principal (L << K). n orice moment, o anumit parte a blocurilor de memorie se afl n liniile memoriei cache. Dac se citete un cuvnt al unui bloc din memoria principal, blocul respectiv este transferat ntr-una din liniile memoriei cache. Deoarece exist mai multe blocuri dect linii, o anumit linie nu poate fi dedicat n mod unic i permanent unui anumit bloc. De aceea, fiecare linie conine un marcaj care identific blocul pe care l conine linia respectiv. Marcajul este de obicei o parte a adresei din memoria principal. n Figura 8.12 se ilustreaz operaia de citire. UCP genereaz adresa unui cuvnt care trebuie citit (A). Dac acest cuvnt se afl n memoria cache, este transferat unitii centrale. n caz contrar, blocul care conine acest cuvnt este ncrcat ntr-o linie a memoriei cache, iar cuvntul este transferat unitii centrale.

8. Unitatea de memorie

241

Figura 8.12. Operaia de citire a memoriei cache.

Considerm parametrii principali ai memoriei cache. Costul mediu pe bit CS al sistemului de memorie format din memoria principal i memoria cache este dat de: CS = unde: CC = costul mediu pe bit al memoriei cache; CM = costul mediu pe bit al memoriei principale; DC = dimensiunea memoriei cache; DM = dimensiunea memoriei principale. Este de dorit ca pentru memoria cache costul CC s fie aproximativ egal cu CM. Deoarece CC >> CM, aceasta necesit ca DC << DM. Timpul de acces al sistemului de memorie nu depinde numai de viteza memoriei cache i a memoriei principale, ci i de probabilitatea ca un anumit cuvnt adresat de UCP s fie gsit n memoria cache. Aceast probabilitate este numit rat de succes. Avem: unde: TS = PS TC + (1 PS) TM (8.3) CC DC + C M DM DC + DM (8.2)

242

Arhitectura calculatoarelor TS = timpul mediu de acces al sistemului de memorie; TC = timpul de acces al memoriei cache; TM = timpul de acces al memoriei principale; PS = rata de succes.

Este de dorit ca TS TC. Deoarece TC << TM, este necesar o rat de succes apropiat de 1. Studiile au artat c o dimensiune relativ redus a memoriei cache, de 64 KB sau 128 KB, este n general adecvat, obinndu-se o rat de succes de peste 0,75, indiferent de dimensiunea memoriei principale.