3.1. Unitatea central (procesorul) Unitatea central (UC) este creierul calculatorului. Rolul UC este de executie a programelor stocate n memoria principal, executie realizat n trei etape: extragerea instructiunilor; decodificarea instructiunilor; executia lor propriu-zis. Fig. 3.1. Schema bloc a unui calculator. Unitatea de comand si control urmreste ordinea de executie a instructiunilor unui program si controleaz ntreaga activitate a unittii centrale, astfel: interpreteaz instructiunile programului din memoria intern si comand circuitele s execute instructiunile; comand si controleaz transferul de date dintre memoria intern si dispozitivele periferice. Unitatea aritmetic si logic (ALU) implementeaz functiile logice, si execut operatiile aritmetice elementare: adunare, scdere, nmultire, mprtire. Registrele interne pot fi: de uz general; cu destinatie specific. Structura unui calculator 67 Registrele de uz general stocheaz valorile intermediare ale calculelor. Registrele cu destinatie specific contorul de program (program counter, PC) indic adresa noii instructiuni care urmeaz a fi executat precum si adresa instructiunii curente care se execut. 3.1.1. Execuia unei instruciuni Timpul necesar executiei unei instructiuni se numeste ciclu instruciune. Etapele n executia unei instructiuni sunt: 1. ncrcarea instructiunii din memorie n registrul de instructiuni (fetch); 2. actualizarea PC pentru a indica urmtoarea instructiune care va fi executat; 3. decodificarea instructiunii din registrul de instructiuni; 4. localizarea n memorie a eventualelor date utilizate de instructiune; 5. ncrcarea datelor (dac este necesar) n registrele interne ale UC; 6. executia efectiv a instructiunii; 7. stocarea rezultatelor la destinatia corespunztoare; 8. ntoarcerea la etapa nr. 1 pentru a executa urmtoarea instructiune. 3.1.2. Tipuri de uniti centrale Criteriul dup care se clasific unittile centrale este cel al setului de instructiuni: procesoare CISC (Complex Instruction Set Computer); procesoare RISC (Reduced Instruction Set Computer). n ultimul timp, s-a produs migrarea de la CISC la RISC. 3.1.2.1. Performana unitii centrale Performanta UC se refer ntotdeauna la o aplicatie dat, existnd mai multe moduri de evaluare a performantei: mips (mega instructions per second): milioane de instructiuni pe secund; flops (floating point operations per second): operatii n virgul mobil executate pe secund (exprimat uzual n Mflops sau Gflops); timpul n care un anumit procesor poate s rezolve o anumit secvent de program (o sarcin particular). Performanta este produsul a trei factori: numrul de instructiuni executate n cazul unei aplicatii date (N i ); numrul mediu de perioade de ceas necesare pentru executia unei instructiuni (N p ); durata unei perioade de ceas (T c ). Valoarea N p se exprim n cicluri de ceas/instructiune, iar T c se exprim n timp/ciclu de ceas. ARHITECTURA SISTEMELOR DE CALCUL 68 Rezult c: P(t) = N i N p T c (sec). (3.1) Reducerea numrului de instructiuni N i se face optimiznd compilatorul si utiliznd o arhitectur adecvat acestui compilator. N p se reduce fie optimiznd compilatorul, aceasta nsemnnd utilizarea unor instructiuni de durat mai scurt, fie utiliznd o arhitectur paralel, deci utilizarea mai multor instructiuni simultan. La optimizarea N p , apar limitri tehnologice legate de implementarea procesorului. Durata T c tine exclusiv de o tehnologie avansat. 3.1.2.2. Indici de performan Pn n 1992, se utiliza urmtoarea pereche de mrimi: Whetstones si Dhrystones, care artau practic viteza UC. ncepnd din 1992, s-a trecut la alti indici de msurare a performantei, si anume indicii SPEC, cu care s-a nlocuit perechea anterioar. Standard Performance Evaluation Corporation (SPEC) este o organizatie non-profit care a luat nastere n 1988 si are ca scop asigurarea testelor corecte si utile pentru a face diferent ntre sistemele de pe piat. Testele SPEC sunt larg folosite actualmente n evaluarea performantei calculatoarelor, rezultatele fiind afisate pe site-ul SPEC. Acestea poart denumirea de note SPEC (SPECmarks). Testele sunt concepute pentru a realiza situatii din viata real. De exemplu, SPECweb2005, realizeaz un test al performantei serverului de web prin mai multe tipuri de cereri paralele HTTP. Performanta microprocesorului este testat prin rularea ctorva programe (de exemplu, compilatoare gcc) sau printr-un joc de sah. Diverse cerinte sunt atribuite n functie de importanta perceput, pentru a rezulta un singur rezultat final. Testele SPEC au fost actualizate n repetate rnduri. Aceste teste sunt scrise pe o platform de limbaj de programare neutr (de obicei, C sau Fortran), iar prtile interesate pot compila codul folosind metoda dorit, dar fr a schimba codul. Productorii au lucrat la mbunttirea compilatoarelor pentru a realiza o ct mai bun acuratete a diferitelor teste SPEC. Teste SPEC actuale sunt: SPEC CPU2006 combin performantele microprocesorului, memoriei si compilatorului; CINT2006 sau SPECint testeaz aritmetica numerelor ntregi, folosind compilatoare, interpretoare, procesoare de text, programe de sah; CFP2006 sau SPECfp, testeaz performanta n virgul mobil, cu simulri fizice, grafic 3D, procesare de imagine, chimie computational; SPECjms2007 testeaz performanta serviciului de mesaje Java; SPECweb2005 testeaz performanta n PHP/JSP; SPECviewperf testeaz performanta unui sistem 3D OpenGL, cu ajutorul diferitelor sarcini de randare din aplicatii reale; SPECapc testeaz performanta aplicatiilor 3D cunoscute unui sistem dat; Structura unui calculator 69 SPEC OMP2001 V3.2 evalueaz performantelor sistemului paralel, folosind aplicatii OpenMP; SPEC MPI2007 evalueaz performantele sistemelor paralele, folosind aplicatii MPI (Message Passing Interface); SPECjvm98 evalueaz performanta unui sistem client, care ruleaz o masin virtual Java; SPECjAppServer2004 evalueaz performanta aplicatiilor bazate pe Java 2 Enterprise Editition (J2EE); SPEC jbb2005 evalueaz performanta serverului Java, prin emularea unui sistem client-server; SPEC MAIL 2001 evalueaz performanta unui server de mail, cu testarea protocoalelor POP si SMTP; SPECimap2003 evalueaz performanta unui server de mail la nivel de ntreprindere, testnd protocoalele IMAP4 si SMTP; SPECpower_ssj2008 testeaz eficienta energetic a sistemelor server; SPEC SFS97_R1 evalueaz viteza de transfer a serverului de fisiere NFS si timpul de rspuns; SPECappPlatform evalueaz performanta platformelor web (Java EE si NET). Nota obtinut de sistemul testat se obtine n modul urmtor. Pentru SPECint, se ruleaz 6 programe care folosesc numere ntregi si se obtin astfel 6 note, din care nota final rezult prin mediere geometric. Pentru SPECfp, se ruleaz 12 programe care folosesc virgul mobil (12 programe n Fortran si dou programe n C), din care se obtin 14 note. Nota final se obtine tot prin media geometric. 3.1.3. Organizarea unitii centrale Datele care trebuie prelucrate sunt aduse din registrele interne n registrele de intrare ale ALU, unde acestea rmn n timpul n care ALU face operatiunea de calcul aritmetic si logic. Rezultatul calculului preluat de registrele de iesire ale ALU este stocat ntr-unul din registrele de uz general. Exist trei tipuri de instructiuni (vezi figura 3.2): instruciuni registre-memorie: se ncarc date din memorie n registre si viceversa. Datele pot fi folosite mai departe de alte instructiuni sau chiar de instructiunile respective. n acest ultim caz, rezultatul este depus n registre; instruciuni registre-registre: mut operanzii din registrul de la intrarea ALU, execut asupra lor o anumit operatie si depun din nou operanzii n registru; instruciuni memorie-memorie: preiau operanzii din memorie, i plaseaz n registrul de intrare ALU, se execut o anumit operatie si se stocheaz rezultatul n memorie. ARHITECTURA SISTEMELOR DE CALCUL 70 Fig. 3.2. Schema unittii centrale. 3.2. Memoria Memoria reprezint acea parte a calculatorului n care sunt stocate programele si datele. Practic, de aici procesorul preia datele de care are nevoie si tot aici scrie rezultatul. Unitatea de memorie este o cifr binar care poate lua numai dou valori: 0 sau 1. Microprocesorul are capacitatea de a memora att datele care urmeaz a fi prelucrate, ct si rezultatele intermediare. Se observ c rolul su principal este de a prelucra si transmite datele. Capacitatea de memorare este mic, neputnd stoca, de exemplu, programe. Sistemul de memorie al unui calculator reprezint ansamblul unittilor de memorie, mpreun cu algoritmii necesari pentru controlul transferurilor si memorarea datelor, algoritmi care pot fi implementati hardware sau software. Sistemul de memorie include att locatiile de memorie propriu-zise, ct si circuitele necesare pentru adresarea locatiilor si controlul operatiilor de citire si scriere. O parte din aceste circuite se gsesc n unitatea de memorie respectiv, altele sunt externe, fiind de obicei integrate n controlerul unittii de memorie. Obiectivul principal n proiectarea oricrui sistem de memorie este realizarea unei capacitti de memorare adecvate sistemului de calcul, cu un nivel acceptabil de performante, la un cost rezonabil. Trebuie subliniat faptul c nu ntotdeauna obiectivul este acela de a obtine o capacitate de memorare ct mai mare. Structura unui calculator 71 3.2.1. Caracteristicile unitilor de memorie Capacitatea de memorare reprezint numrul locatiilor (celulelor) de memorie continute de o unitate de memorie. Aceasta depinde de tehnologia de fabricatie si se exprim n numr de cuvinte de informatie memorat (cuv), dimensiunea cuvntului fiind diferit de la un calculator la altul. Timpul de acces la o unitate de memorie (t A ) este timpul necesar localizrii unei celule de memorie pentru transferul de date la/de la locatia de memorie respectiv. Acesta reprezint intervalul de timp calculat din momentul n care o unitate master lanseaz o comand ctre o unitate de memorie si pn n momentul n care informatia este transferat n sensul dorit. Rata de acces (r A ) este inversa timpului de acces, fiind exprimat n cuvinte pe secund: r A = A t 1 [cuv/s]. (3.2) Timpul de ciclu la o unitate de memorie (t C ) este timpul minim ntre dou accese succesive si reprezint timpul din momentul n care o unitate master lanseaz o comand spre unitatea de memorie si pn cnd poate lansa o nou comand la aceeasi unitate de memorie. Uzual, t C > t A , diferenta lor numindu-se timp de revenire (t R = t C t A ). Acesta reprezint timpul minim necesar pentru inactivarea primei comenzi, pn la activarea celei de-a doua. Rata de transfer (r T ) este inversa timpului de ciclu si reprezint cantitatea maxim de informatie (exprimat n cuvinte pe secund) care poate fi transferat la/de la memorie ntr-o secund: r T = C t 1 [cuv/s]. (3.3) Costul total al unitii de memorie (C T ) include, pe lng costul celulelor de memorie propriu-zise, costul circuitelor de acces la aceste celule. Pentru compararea diverselor unitti de memorie ntre ele, se utilizeaz costul unitar (C U ), care reprezint costul de memorare a unui cuvnt de informatie. Costul unitar se determin prin raportarea costului total (C T ) la capacitatea de memorare (CM): C U = CM C T [cost/cuv]. (3.4) 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 informatia memorat poate fi accesat. Acesta poate fi serial sau paralel. ARHITECTURA SISTEMELOR DE CALCUL 72 Dac locatiile de memorie pot fi accesate n orice ordine, iar timpul de acces este independent de locatia accesat, atunci accesul este aleator, iar unitatea de memorie se numeste memorie cu acces aleator (Random Access Memory, RAM). n general, memoriile semiconductoare sunt memorii cu acces aleator. Prin ierarhizarea unittilor de memorie, blocurile de date cu probabilitatea cea mai mare de accesare sunt aduse pe niveluri superioare, mai aproape de unitatea central (localizare spatial). Dintre acestea, datele cele mai recent accesate sunt pstrate n apropierea procesorului (localizare temporal). 3.2.2. Ierarhizarea memoriei Pornind de la functiile realizate de fiecare tip de memorie, de la rolul si locul ocupat n sistemul de calcul, se pot distinge mai multe categorii de memorii, ilustrate n figura 3.3. Fig. 3.3. Ierarhizarea memoriei. 3.2.2.1. Registrele de memorie Reprezint dispozitivele de memorie cele mai rapide, dar si cele mai scumpe. Sunt utilizate de procesor, fiind de dou feluri: cu destinatie specific si de uz general. Registrele cu destinaie specific au un rol precis si memoreaz numai anumite tipuri de informatie (de exemplu, contorul de program). Din acest motiv, pentru ca procesorul s realizeze o anumit operatie, este accesat un anumit registru, si anume, acela care memoreaz tipul de informatie dorit. n acest fel, nu este necesar ca registrul s fie accesat prin adres, fapt care mreste viteza de acces la informatia memorat n registre. Registrele de uz general sunt registre nespecializate, care pot fi utilizate explicit prin instructiuni-program. Capacitatea registrului depinde de tipul procesorului si nu depseste de obicei lungimea cuvntului de memorie. Numrul de registre de memorie este mic, utilizndu-se de regul 1620 registre. 3.2.2.2. Memoria intern Contine programele si datele pentru toate procesele n curs de executie n sistemul de calcul. Ct timp functioneaz procesorul, el citeste si scrie date din/n Structura unui calculator 73 aceasta memorie. Memoria intern este o memorie read-write cu acces direct (RAM). Ea trebuie s aib un timp de acces redus, pentru a nu ntrzia activitatea procesorului. Tipurile de memorie din aceast categorie sunt: Memoriile DRAM (Dynamic Random Access Memory) sunt memorii RAM dinamice, n care, pentru a se pstra informatia, trebuie restabilit periodic sarcina electric cu care a fost ncrcat condensatorul circuitului de memorie. Pentru aceasta, este necesar un circuit de remprosptare a memoriei (refresh). Memoriile SRAM (Static Random Access Memory) sunt memorii RAM statice, realizate cu circuite basculante bistabile de memorie, care pstreaz informatia att timp ct sistemul este sub tensiune. La calculatoarele PC, cipurile de memorie sunt asamblate pe plci de memorie organizate n bancuri de memorie. Aceste bancuri se instaleaz n placa de baz a PC-ului, n soclurile rezervate memoriei interne. Acest mecanism permite modificarea dimensiunii memoriei interne a PC-ului, prin adugarea de noi bancuri de memorie n locurile disponibile sau prin schimbarea bancurilor cu altele de capacitate mai mare. Memoria principal sau memoria primar reprezint memoria de lucru a sistemului de calcul, fiind realizat cu circuite integrate de memorie DRAM si avnd o capacitate de memorare relativ mare (sute de MB). Memoria principal pstreaz datele active, care vor fi apelate de ctre procesor, dar care nu sunt imediat necesare acestuia. Datele devin active prin transferarea lor din memoria secundar n memoria principal, fiind memorate sub form de blocuri de date, n zone de memorie, proprii fiecrui program. Viteza de lucru a memoriei principale 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 nevolatil cu acces aleatoriu (NVRAM) este cea care stocheaz date atunci cnd calculatorul este nchis sau nu mai are energie. Memoria NVRAM este utilizat pentru a mentine informatiile privind configuratia calculatorului, cum ar fi data, ora si alte optiuni de pornire care pot fi setate de utilizator. Memoria cache este o memorie specializat, utilizat n scopul scderii timpului de acces la datele din memoria intern. Are capacitate mic si vitez mare, fiind inserat logic ntre procesor si memoria principal. Constructiv, este o memorie mai rapid dect memoria principal, construit, de regul, din circuite SRAM. Memoria cache are timpul de acces de 210 ori mai mic (ns) dect cel al memoriei primare, fiind ns si de cteva ori mai scump. Se urmreste ca procesorul s lucreze ct mai mult timp cu memoria cache, si nu cu memoria principal. Pentru o memorie cache bine implementat, procesorul lucreaz cu aceasta circa 7090 % din timpul total de lucru cu memoria. Si acest tip de memorie poate fi extins prin adugarea de cipuri suplimentare. Utilizarea memoriei cache se bazeaz pe dou caracteristici ale executiei programelor n sistemele de calcul clasice: 1. programele tind s utilizeze date si instructiuni situate unele lng altele sau n zone apropiate (principiul vecinttii); 2. programele folosesc n mod repetat adresarea acelorasi blocuri de memorie. ARHITECTURA SISTEMELOR DE CALCUL 74 Plecnd de la aceste constatri, memoria cache contine la un moment dat cpii ale unor date din memoria principal. nainte de orice acces la memoria principal, se verific dac nu cumva informatia cutat se gseste n memoria cache. Dac aceasta exist, se preia de acolo cu o vitez superioar. Memoria intermediar, numit si memorie cache pentru suporti externi sau memorie cache de disc (Disk-Cached Memory), este plasat ntre memoria principal si memoria secundar, actionnd ntr-o manier similar memoriei cache. Are rol de memorie tampon, care pstreaz blocurile de date cel mai recent accesate de un program, duplicri ale celor din memoria secundar. 3.2.2.3. Memoria extern Pentru a utiliza datele memorate n memoria extern, acestea trebuie aduse mai nti n memoria principal. Prin comparatie cu memoria intern, memoria extern se caracterizeaz prin vitez de acces mai sczut, cost mai redus, capacitate mai mare, avnd rolul de a mri spatiul de memorare al unui sistem de calcul. n memoria extern sunt stocate si programele cu ajutorul crora se realizeaz prelucrarea datelor. Accesul la memoria extern nu se face direct, ci prin intermediul memoriei interne. n comparatie cu memoria intern, memoria extern este: nevolatil, cu acces pozitional si timp de acces mai mare, cu vitez de transfer mai mic, cu cost mai redus, cu capacitate mult mai mare, de tip read-write, cu densitate de memorare variabil de la un echipament la altul si de la un suport la altul (magnetic, optic, semiconductor). Memoria secundar este organizat pe un suport extern de memorie, de regul disc magnetic, si are rolul de a realiza o extindere a memoriei principale, conform conceptului de memorie virtual, care se refer la capacitatea procesorului de a utiliza un spatiu de memorie extern pentru a simula o capacitate mai mare a memoriei interne disponibile. Altfel spus, este vorba de capacitatea procesorului de a accesa un spatiu de adrese care depseste spatiul de adrese al memoriei principale. Acest concept a aprut nc din anul 1960, iar la PC este disponibil ncepnd cu seria 286. Memoria suplimentar poate fi de mai multe tipuri: memorie expandat, memorie extins si memorie de arhivare sau tertiar. Memoria expandat este o memorie suplimentar la calculatoarele de tipul PC, pe care utilizatorul o acceseaz prin intermediul mecanismului EMS (Extended Memory Specification). Este alctuit din bancuri de memorie de 64 KB RAM si este gestionat de un program-sistem specializat. numit EMM386.EXE (n sistemul de operare MS-DOS). Memoria extins este memoria suplimentar accesibil utilizatorului prin mecanismul XMS (eXtended Memory Specification), care poate fi implementat pe procesoare avnd cuvinte de adres de 32 biti. Programele trebuie scrise ca utiliznd special aceste mecanisme. Programul-sistem care gestioneaz acest tip de memorie n sistemul de operare MS-DOS este HIMEM.SYS. Structura unui calculator 75 Memoria de arhivare este acea parte a memoriei externe care asigur stocarea datelor preluate din mediul extern pe o perioad de timp nedeterminat si n volume semnificative. Memoria de arhivare sau memoria teriar este o memorie nevolatil de dimensiuni foarte mari, dar si cu timpi de acces foarte mari (zeci de secunde). Pstreaz date pasive, stocate doar n scop de arhivare, pe o perioad de timp nedeterminat si n volume semnificative. Accesul la aceste date se face foarte rar. Memoria tertiar este realizat cu unitti de memorare pe suport detasabil, optic (CD-ROM, DVD-ROM), magnetic (band sau caset magnetic) sau semiconductor (stick-uri si card-uri de memorie). Trebuie subliniat faptul c memoria tertiar reprezint colectia de discuri si casete existente, si nu unittile de memorie propriu-zise. 3.2.3. Memoria RAM Circuitele integrate de memorie sunt memorii semiconductoare, realizate n diverse tehnologii de fabricatie (bipolare sau MOS). Acestea sunt de mai multe tipuri, cu diferite raporturi performante/cost, avnd domenii specifice de utilizare: memoriile cu acces aleator (RAM) si memoriile cu acces pentru citire (ROM). O memorie cu acces aleator (RAM = Random Access Memory) este acea memorie la care locatiile de memorie pot fi accesate n orice ordine, iar timpul de acces nu depinde de locatia accesat. Memoriile RAM pot fi de dou tipuri: SRAM (Static RAM) si DRAM (Dynamic RAM). 3.2.3.1. Memoria SRAM Memoria SRAM (Static RAM) este o memorie n care informatia 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 (ns). Fiind o memorie care poate fi si citit si scris, SRAM are magistrala bidirectional de date si dou cicluri diferite de memorie: ciclul de citire si ciclul de scriere, identificate de semnalul WE , activ pe 0L. Simbolul memoriei SRAM este ilustrat n figura 3.4. Fig. 3.4. Simbolul memoriei SRAM ARHITECTURA SISTEMELOR DE CALCUL 76 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 si au un consum de energie mic. Aceste memorii sunt realizate ntr-o gam foarte divers de performante, cu timpi de acces care 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 functiona la tensiuni de alimentare mici, dar sunt scumpe. Ele pot fi de mai multe tipuri: PBS (Pipelined Burst Synchronous), FTS (Flow Through Synchronous) sau 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 capacitti mici, de zeci-sute de KB, si care memoreaz cuvinte de 8 biti. Sistemele performante, care necesit viteze si capacitti 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 si, implicit, prin performante. 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.5. Fig. 3.5. Schema bloc a memoriei SRAM. Structura unui calculator 77 3.2.3.2. Memoria DRAM Memoria DRAM (Dynamic RAM) este o memorie volatil cu acces aleator, care memoreaz informatia n mod dinamic. Este realizat n tehnologie CMOS (Complementary MOS), cu consum de energie foarte mic. Datorit particularittilor constructive ale celulelor de memorie, informatia 0L este memorat stabil, dar informatia 1L se pierde n timp si necesit mprosptarea periodic a memoriei, de unde si denumirea acesteia. Indiferent de modul de realizare, memoria DRAM este mult mai lent dect memoria SRAM, din cauza mecanismului specific de memorare a datelor. Timpul de acces la DRAM este de 210 ori mai mare dect la SRAM, si variaz n functie de tipul accesului la memorie. Astfel, n acces aleator, timpul de acces este mare (zeci de ns), ns scade foarte mult (n functie de tipul memoriei DRAM), dac se restrictioneaz accesul n modul pagin (vezi paragraful 3.2.9 FPM), putnd ajunge la doar de dou ori mai mare dect cel al memoriei SRAM. Celula de memorie este mult mai mic dect la memoria SRAM, ceea ce permite realizarea unor densitti mari de integrare. Circuitele de memorie DRAM au, prin urmare, capacitti de memorare mari, si, implicit, un numr mare de linii de adres. Simbolul memoriei DRAM este ilustrat n figura 3.6. Fig. 3.6. Simbolul memoriei DRAM. Memorarea datelor se bazeaz pe stocarea si transferul de sarcini electrice, si nu pe mecanisme de comutare, ca n cazul memoriilor SRAM. Fiecare bit de informatie 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. Fat 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 3.7. Celulele de memorie sunt dispuse ntr-o arie ptrat sau dreptunghiular de locatii de memorie, fiecare locatie memornd un cuvnt de m biti, Semnalele de comand actioneaz prin intermediul logicii de control. Eventual, memoria DRAM poate avea circuit intern de mprosptare, care presupune un numrtor de adrese de rnd si un ceas de timp real. n functie de tipul memoriei DRAM, ciclurile de mprosptare pot fi realizate n trei moduri: ARHITECTURA SISTEMELOR DE CALCUL 78 Fig. 3.7. Schema bloc de baz a memoriei DRAM. ROR (RAS Only Refresh) este o metod de mprosptare din exterior, prin care se transmit memoriei adresa de rnd (AR) si semnalul RAS , Ir a se activa semnalul CAS. Unitatea master extern este anuntat 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 CAS si RAS , 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 repetitie a ciclurilor de refresh este determinat de un ceas de timp real extern. Auto-mprosptare cu ajutorul circuitelor interne memoriei DRAM. n interior, memoria contine un numrtor de adrese de rnd, un ceas de timp real si o logic de control pentru generarea semnalelor CAS si RAS , conform metodei CBR. Memoria DRAM poate fi de dou tipuri: asincron si sincron. Memoria DRAM asincron nu necesit semnal de ceas pentru sincronizarea cu unitatea master apelant. Ca si la SRAM, memoriile DRAM asincrone sunt mai lente dect cele sincrone, dar sunt mai ieftine si au un consum de energie mai mic. Dintre memoriile DRAM asincrone, se pot enumera: FPM (Fast Page Mode), EDO (Extended Data Out) si BEDO (Burst EDO) DRAM. La toate memoriile, accesul aleator este lent. n acces aleator, timpul de acces fat de RAS (t RAC ) este de 5070 ns, iar timpul de ciclu (t C ) este de 90120 ns. Structura unui calculator 79 O alt categorie de memorii DRAM este cea care utilizeaz o interfa sincron. Prin implementarea unei interfete sincrone, s-au eliminat perioadele de asteptare de ctre procesor, obtinndu-se, de asemenea, unele avantaje suplimentare. n cazul functionrii sincrone, se memoreaz anumite date de la procesor n circuitele latch ale memoriei DRAM, sub controlul ceasului de sistem. Aceste circuite pstreaz adresele, datele si semnalele de control, ceea ce permite procesorului s execute alte operatii. Dup un numr specific de cicluri de ceas, datele devin disponibile si procesorul le poate citi de pe liniile de iesire. Un alt avantaj al unei interfete 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 si datele pot fi memorate fr temporizrile de setare si mentinere monitorizate de procesor. Avantaje similare se obtin si pentru operatiile de iesire. O alt categorie este reprezentat de memoriile DRAM bazate pe protocoale. Categoriile precedente de memorii au linii separate de adrese, date si control, ceea ce limiteaz viteza la care poate functiona circuitul cu tehnologia curent. Pentru eliminarea acestui dezavantaj, au fost proiectate memorii DRAM bazate pe protocoale, care implementeaz toate aceste semnale pe aceeasi magistral. Cele mai cunoscute memorii din aceast categorie sunt DRDRAM (Direct Rambus) si 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. Desi 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 putin mai rapid dect la memoriile asincrone, datorit tehnologiei (memoriile sincrone au aprut ulterior). n acces aleator, t RAC este de 4060 ns, iar t C este de 80110 ns. Accesul n mod pagin este mult mai rapid dect la memoriile asincrone si depinde de frecventa semnalului de ceas de sincronizare. 3.2.4. Accesul la locaiile de memorie n sistemele cu microprocesoare, modulele de memorie se conecteaz pe magistrala sistemului. Accesul la locatiile de memorie se realizeaz prin cicluri de transfer (cicluri masin), folosindu-se semnalele magistralei (de adres, date si comenzi). Modul de desfsurare a diferitelor tipuri de cicluri de transfer se reprezint prin diagrame de timp (evolutia n timp a semnalelor de pe magistral implicate n transfer). Parametrii de timp ai unui ciclu de transfer depind de tipul procesorului, de regulile de comunicatie pe magistral si de tipul circuitelor de memorie utilizate. ARHITECTURA SISTEMELOR DE CALCUL 80 Ciclu de citire din memorie Semnale de adres Adresa valid S. de c-d MEMR\ (citire memorie) (nalt impedant) Semnale de date Date valide (citite) t AR t MEMR t C Ciclu de scriere n memorie Semnale de adres Adresa valid S. de c-d MEMW\ (scriere memorie) (nalt impedant) Semnale de date Date valide (scrise) t AW t MEMW t C Fig. 3.8. Diagrame de citire/scriere memorie. n figura 3.8, s-au reprezentat diagramele de transfer pentru un ciclu de citire din memorie si un ciclu de scriere n memorie. La proiectarea unui modul de memorie, trebuie s se tin cont de urmtorii parametri de timp: timpul de acces la citire (t AR ) intervalul de timp ntre momentul aparitiei adresei valide si momentul n care data citit este prezent pe liniile de date. Uneori, timpul de acces se msoar n raport cu momentul aparitiei semnalului de comand MEMR\. Dac timpul de acces al circuitului de memorie folosit este mai mare dect timpul permis pe magistral, atunci interfata modulului de memorie trebuie s prelungeasc ciclul de transfer, prin dezactivarea pe un timp limitat a semnalului READY ctre procesor. timpul de mentinere a semnalului de comand MEMR\ activ (t MEMR ). durata unui ciclu complet de citire sau scriere (t C ). timpul de acces la scriere (t AW ) intervalul de timp ntre momentul n care adresa este valid si momentul de generare a comenzii de scriere; n acelasi mod ca la citire, dac circuitul de memorie folosit are un timp de acces mai mare, atunci interfata modulului trebuie s dezactiveze temporar semnalul READY pentru prelungirea ciclului de transfer. Momentul activrii semnalului de scriere se msoar si n raport cu momentul n care data este prezent pe magistral. timpul de mentinere a semnalului de scriere (t MEMW ), de obicei < t MEMR . Structura unui calculator 81 Observaii: 1. la citire, data este generat dup aparitia semnalelor de adres si de comand si se mentine un timp scurt dup dezactivarea acestora; 2. la scriere, data trebuie s apar pe magistral naintea semnalului de scriere si 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 si de selectie a amplificatoarelor de intrare sau de iesire; 4. proiectantul trebuie s aleag circuite de memorie cu parametri de timp acoperitori pentru restrictiile impuse pe magistral si s ia n calcul ntrzierile produse de circuitele de amplificare din interfat si de pe magistral. Exist dou moduri de organizare a octetilor n memorie, si anume: a) Big Endian; b) Little Endian. Exemplu. Se consider c se lucreaz pe cuvinte de 32 biti. Cele dou moduri de organizare a octetilor sunt reprezentate n figura 3.9. Fig. 3.9. Modurile de organizare a memoriei de tip Big Endian (a) si Little Endian (b). Microprocesoarele PowerPC, Motorola 6800 si HP, folosesc o organizare a octetilor n memorie de tip Big Endian, iar microprocesoarele DEC si Intel folosesc modul Little Endian. ARHITECTURA SISTEMELOR DE CALCUL 82 3.2.5. Metodologia de proiectare a memoriilor statice Proiectarea unui modul de memorie se face pe baza unor parametrilor de proiectare impusi: 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 si de adres, tipurile semnalelor de comand, parametrii de timp pentru ciclurile de transfer); amplasarea modulului de memorie n spatiul de adresare al procesorului, exprimat prin adresa sa de nceput (trebuie s fie un multiplu al capacittii modulului); tipul de circuit de memorie disponibil (poate fi un parametru impus sau unul ales de proiectant); alte cerinte speciale (de exemplu: accesul dual de pe dou magistrale, remprosptarea controlat centralizat, implementarea unor mecanisme de detectie a erorilor etc.) 3.2.6. 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 secvential pe aceleasi semnale a adresei de linie si a adresei de coloan); trebuie s se genereze semnalul de validare a adresei de linie (RAS Row Address Select) si semnalul de validare a adresei de coloan (CAS Column Address Select); selectia circuitelor se face cu semnalele RAS si CAS (exceptie fac circuitele tip EDO-DRAM, cu semnal separat pentru selectia circuitului). Pentru circuitele RAM dinamice, multiplexarea n timp a adreselor a fost necesar pentru a reduce numrul de pini ai circuitului de memorie si, implicit, dimensiunea acestuia. De notat c circuitele dinamice au o capacitate relativ mare, ceea ce impune un numr mare de linii de adres pentru selectie. Organizarea intern a unei memorii dinamice este sub forma unei matrice, cu linii si coloane, iar selectia unei locatii se face prin specificarea adresei sale de linie si de coloan. Remprosptarea periodic a memoriei este necesar deoarece informatia este pstrat un timp limitat dup ultima operatie de citire sau scriere (condensatorul care stocheaz informatia se descarc n timp). n figurile 3.10, 3.11, 3.12 s-au reprezentat diagramele de timp pentru ciclurile de citire din memorie, scriere n memorie si, respectiv, remprosptare a memoriei. Structura unui calculator 83 Adrese Adres linie Adres coloan RAS\ CAS\ WR\ Date Date citite t RASCAS t CAS t acces t ciclu Fig. 3.10. Ciclu de citire din memorie. Adrese Adres linie Adres coloan RAS\ CAS\ WR\ Date Date de scris t RASCAS t CAS t acces t ciclu Fig. 3.11. Ciclu de scriere n memorie. Adrese Adres linie RAS\ CAS\ WR\ Fig. 3.12. Ciclu de remprosptare a memoriei. ARHITECTURA SISTEMELOR DE CALCUL 84 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 obisnuite de citire sau scriere. Remprosptarea se face simultan la nivelul unei linii ntregi din matricea de memorie. 3.2.7. Modulele de memorie Modulele de memorie sunt plcute cu circuite integrate care includ conectori externi, pentru a fi introduse n soclurile disponibile pe placa de baz. Modulele de memorie sunt prevzute cu conectori CELP (Card Edge Low Profile), avnd 3083 contacte pe fiecare parte a modulului. Conectorii aflati la baza modulelor de memorie permit adugarea sau scoaterea lor de pe placa de baz fr instrumente speciale. n ceea ce priveste necesarul de memorie ntr-un sistem de calcul, este demn de retinut c prin cresterea dimensiunii acesteia sistemul devine mai rapid, deoarece microprocesorul citeste datele din RAM foarte repede, neasteptnd citirea de pe hard disk-ul mult mai lent, fr a mai lua n consideratie drumul pe care l-ar avea de parcurs datele pe magistralele la fel de lente. Acest aspect nu are ns un caracter imperativ, deoarece s-a demonstrat c, ncepnd de la 1632 MB instalati, performantele sistemului rmn aproape constante. Totusi exist anumite aplicatii care cer resurse deosebite si ndeosebi RAM. Este cazul profesionistilor care lucreaz mai ales n domeniul graficii (att static proiectare CAD, fotografie, design, ct si dinamic animatii, spoturi publicitare, filme, aplicatii stiintifice, simulri etc.), fiind necesari peste 256 MB de RAM. Un alt caz deosebit este al serverelor de retea, unde necesarul de RAM este urias si poate atinge valori peste 512 MB. Privitor la modul n care microprocesorul opereaz fizic cu memoria instalat, aceasta se plaseaz pe placa de baz n dou sau mai multe segmente fizice numite bancuri de memorie. Acestea sunt segmentele minime de memorie care pot fi accesate de microprocesor, numerotate ncepnd cu 0, fiecare banc avnd unul sau mai multe sloturi pentru plcutele de memorie. Toate aceste bancuri sunt vzute ca niste porti spre memoria fizic instalat si au dimensiuni date de ltimea magistralei microprocesorului (inclusiv bitii de paritate), de exemplu, de 72 de biti pentru Pentium. n sloturile aceluiasi banc, se introduc ntotdeauna memorii de acelasi tip (avnd n special timpi de acces identici) si aceeasi dimensiune, pentru a nu provoca accesri gresite de memorie sau chiar blocarea sistemului de calcul. Exemplu. Pentru un banc cu dou sloturi: 2 plci 1 MB sau 2 plci 2 MB. n bancuri diferite, se pot monta (teoretic) memorii diferite (ex.: 2 1 MB n bancul 0 si 2 4 MB n bancul 1), dar, practic, este bine s se utilizeze valori pare. Exemplu. n loc de 2 4 MB + o plcut de 1 MB ar trebui montate 2 4 MB + o plcut de 2 MB), pentru a evita unele neplceri. n figura 3.13 este prezentat dispunerea bancurilor pe placa de baz. Structura unui calculator 85 Fig. 3.13. Dispunerea bancurilor pe placa de baz. Arhitectura dual-channel Motivul care a dus la dezvoltarea acestei arhitecturi a fost aparitia unui bottleneck ntre procesor si memorie. Arhitectura dual-channel presupune o tehnologie prin care se poate dubla transferul dintre RAM si controlerul de memorie. Controlerele de memorie care suport dual-channel utilizeaz pentru transfer dou canale de date de 64 biti, rezultnd o ltime a cii de date de 128 biti. Pentru a putea beneficia de avantajele arhitecturii dual-channel, este nevoie de dou sau mai multe module de memorie instalate n bancurile corespunztoare. De obicei, aceste bancuri sunt colorate diferit pe placa de baz. Cele dou canale permit accesul fiecrui modul de memorie la controler, crescnd astfel lrgimea de band. Teoretic, nu este absolut necesar ca cele dou module de memorie s fie identice, dar acest lucru este recomandat pentru a evita eventualele probleme de compatibilitate. De asemenea, se pot folosi un modul single-sided si unul double-sided, dar cstigul de performant si fiabilitate depind foarte mult de controlerul de memorie. n cazul n care pe o plac de baz exist dou perechi de socket-uri DIMM din bancuri diferite (n general, culoarea socket-ului identific bancul cruia acesta apartine), se poate instala o pereche de dou module n bancul 0 si o pereche de alt capacitate n bancul 1, att timp ct acestea functioneaz la aceeasi vitez. n acest mod, sistemul va folosi arhitectura dual-channel. Chiar si module care functioneaz la frecvente diferite pot fi folosite n modul dual-channel, dar, n acest caz, toate modulele vor rula la frecventa celui mai lent modul. Desi arhitectura permite cel putin teoretic toate aceste combinatii, foarte multe plci de baz au probleme cu anumite module de memorie dac urmeaz s le foloseasc n mod dual-channel. Tocmai din acest motiv este recomandat s se utilizeze perechi identice de module. Merit retinut faptul c arhitectura dual-channel este o tehnologie care tine de plcile de baz, si nu de memorii. Cu alte cuvinte, orice dou module de memorii compatibile vor suporta att operatii single-channel, ct si dual-channel. ARHITECTURA SISTEMELOR DE CALCUL 86 3.2.8. Formatele fizice de memorie Plcute cu cipuri de memorie exist sub urmtoarele tipuri de ncapsulri: DI P (Dual I n-line Package) Este varianta clasic de ncapsulare, n care cipul este prevzut cu un numr de pini pe partea sa inferioar (de ambele prti), pini care vor fi introdusi n socluri speciale (vezi figura 3.14). Dezavantajul este c, din cauza rezistentei reduse pinii, se pot rupe destul de usor. Acest tip de ncapsulare este prezent pe sisteme (i80286) si plci video vechi. Fig. 3.14. Modul de memorie DIP. SOJ (Small Outline J Lead) Este o metod de ncapsulare mai modern, regsit la modulele SIMM si cipurile BIOS (uneori). Se aseamn cu DIP-ul, cu diferenta c, n loc de pini, sunt folosite niste terminale n form de J, care se prind prin ndoire (vezi figura 3.15). Fig. 3.15. Modul de memorie SOJ. TSOP (Thin Small Outline Package) Este o ncapsulare de tip SMD (Surface Mounted Devices), dar care necesit o suprafat foarte redus si, de aceea, este folosit pe plci PCMCIA, notebook-uri si unele plci video (vezi figura 3.16). Fig. 3.16. Modul de memorie TSOP. Structura unui calculator 87 BGA (Ball Grid Array) Este o metod mai nou de ncapsulare, n care cipurile sunt atasate cu ajutorul unor bilute din cositor, plasate sub cip. Acestea sunt destul de ieftine si prezint proprietti bune de conductivitate electric si termic (permit o mai bun disipare a cldurii, n special n versiunea cu suport ceramic). Exist mai multe variante ale ncapsulrii BGA (Fine BGA si Tiny BGA), folosite n majoritatea modulelor de memorie de azi, inclusiv memoriile Rambus (vezi figura 3.17). Fig. 3.17. Modul de memorie BGA. SI MM (Single I n-line Memory Module) Este o plcut de memorie care se introduce n sloturi pe placa de baz. Elimin problemele de compatibilitate, datorit standardizrii ei de ctre productorii plcilor de baz. Memoriile SIMM folosesc o magistral de memorie pe 32 de biti si exist n dou variante (vezi figurile 3.18 si 3.19): cu 30 de pini pentru cantitti mici de memorie (< 8 MB); cu 72 de pini pentru cantitti mai mari de memorie (> 8 MB). Memoriile SIMM pot fi att single sided (cu cipuri de memorie pe o singur parte), ct si double sided (cipurile sunt dispuse pe ambele fete). SIMM-urile double sided sunt realizate din dou SIMM-uri single sided, conectate mpreun pe acelasi modul din fibr de sticl. Fig. 3.18. Modul de memorie SIMM cu 30 de pini. Fig. 3.19. Modul de memorie SIMM cu 72 de pini. ARHITECTURA SISTEMELOR DE CALCUL 88 SODI MM (Small Outline Dual I n-line Memory Module) SIMM-urile de 72 de pini sunt convenabile pentru calculatoare desktop, dar sunt prea mari pentru laptop-uri. n consecint, productorii de calculatoare miniaturizate au transformat SIMM-urile cu 72 de pini, astfel nct, n locul conectrii la un loc a pinilor de pe cele dou prti ale modulului, au introdus niste spatii pe fiecare parte, pentru a avea dou semnale separate. Astfel, lungimea modulului s-a redus la jumtate, rezultatul fiind Small Outline Dual In-line Memory Module, numit astfel datorit dimensiunilor reduse ale modulului si a celor dou linii de conectori independenti de pe fiecare parte a modulului (vezi figura 3.20). Un SODIMM cu 72 de pini are lungimea jumtate fat de SIMM-ul cu 72 de pini (2,35 inci), fiind echivalent unui SIMM 72 cu conectorii pe ambele prti ale modulului. Fig. 3.20. Modul de memorie SODIMM. SI PP (Single I n-line Pin Package) Desi SIPP-urile sunt identice cu SIMM-urile de 30 de pini din punct de vedere electric, din punct de vedere fizic sunt mai mici (vezi figura 3.21). Dimensiunile standard sunt de 3,23 inci lungime si 1 inci nltime. Desi din punct de vedere functional SIMM-urile si SIPP-urile pot avea aceleasi cipuri de memorie, aceeasi tehnologie si aceeasi capacitate, ntre ele exist diferente care le fac incompatibile. Dac se doreste instalarea unei noi extensii de memorie sau nlocuirea uneia existente, trebuie specificat tipul de memorie folosit: SIMM sau SIPP. Fig. 3.21. Modul de memorie SIPP. Structura unui calculator 89 DI MM (Double I n-line Memory Modules) Sunt module de memorie cu ltimea magistralei de 64 de biti, folosite la implementarea memoriilor SDRAM si DDR SDRAM (vezi figura 3.22). DIMM- urile SDRAM folosesc 168 de pini, pe cnd cele DDR SDRAM au 184 de pini. Ele mai difer si prin numrul fantelor de pe partea inferioar, cele SDRAM avnd dou, iar cele DDR, numai una. Din punct de vedere al designului si al tensiunii de alimentare, exist 4 variante de DIMM-uri: de 3,3V sau 5V si cu buffer (buffered) sau fr buffer (unbuffered). Cele mai des ntlnite sunt de tipul 3,3V, fr buffer. Fig. 3.22. Modul de memorie DIMM. RI MM (Rambus I n-line Memory Modules) Este tipul de ncapsulare folosit la memorii Rambus (vezi figura 3.23). Este foarte asemntor DIMM-ului, dar foloseste setri diferite ale pinilor. Se remarc prin prezenta de radiatoare pe ambele fete ale modulului de memorie, pentru a preveni nclzirea excesiv a acestuia. Se prezint si n varianta XDIMM (vezi paragraful 3.2.9 XDR DRAM) Fig. 3.23. Modul RIMM Rambus. 3.2.9. Formatele logice de memorie ncrcarea cipurilor de memorie prin adresarea liniilor si coloanelor consum timp de ordinul nanosecundelor, ceea ce provoac ntrzieri la rspunsurile furnizate microprocesoarelor. Dac se adaug si timpul necesar remprosptrii, se obtin limitele performantei cipului de memorie. Pentru a mri performantele memoriei, proiectantii au dezvoltat o serie de tehnologii care s depseasc aceste limite, orientndu-se asupra modului n care sunt procesate datele intern moduri care constituie formatele logice ale memoriilor interne: s-a ncercat memoria de tip coloan static, apoi s-a trecut la FPM, care s-a dovedit a fi mai performant prin anul 1995, ulterior tehnologia EDO prelund suprematia. Toate formatele logice, au acelasi mod de adresare a celulelor si aceeasi tehnologie la baz, diferind prin anumite semnale si cuante de timp alocate. ARHITECTURA SISTEMELOR DE CALCUL 90 SCRAM (Static Column RAM) Primele memorii au folosit tehnologia Static Column RAM, care efectua citirea unei coloane de memorie si scrierea adresei pe linia de adres a cipului, transmitnd apoi semnalul CAS. Odat ce coloana a fost nregistrat, se poate trimite un nou set de adrese, prin care se va indica o linie, activnd RAS. n tot acest timp, semnalul CAS este mentinut deschis, pentru a indica faptul c acea coloan a rmas constant. FPM (Fast Page Mode) Tehnologiile FPM folosesc tot o variant a acestei strategii. Controlerul de memorie transmite mai nti o linie de adrese, apoi activeaz semnalul RAS. Ct timp semnalul RAS este activ, se transmite o adres a semnalului CAS, pentru a indica o anumit celul. Dac semnalul RAS este mentinut activ, controlerul poate trimite una sau mai multe adrese, urmate de un impuls al semnalului CAS, pentru a indica celule din cadrul aceleiasi linii. n terminologia de adresare a memoriei, linia este numit pagin, iar tipurile de cipuri care permit aceste operatii sunt numite mod pagin (page mode RAM). Calculatorul poate astfel accesa mai rapid mai multe celule dintr-o pagin de memorie, asigurnd un timp de acces de 2530 ns. Pentru a accesa mai multe pagini, va trebui s se schimbe ambele adrese ale liniei si coloanei, ceea ce va genera ntrzieri. EDO (Extended Data Out) O alt tehnologie utilizat este numit EDO (Extended Data Out) si este destul de rapid pentru calculatoarele actuale. Memoria EDO lucreaz cel mai bine n combinatie cu o memorie cache. n esent, EDO este o variant a memorie Fast Page Mode (care permite accesul repetat la bitii din cadrul unei pagini de memorie, Ir a genera ntrzieri). n timp ce memoria conventional se descarc dup fiecare operatie de citire si necesit timp de rencrcare nainte de a fi citit din nou, EDO pstreaz datele pn cnd primeste un alt semnal. Memoria EDO modific cuanta de timp alocat pentru semnalul CAS. Linia de date mai rmne activ un interval scurt de timp, dup ce linia CAS este dezactivat. Se elimin, astfel, timpul de asteptare necesar pentru un ciclu separat de citire/scriere, deci, se pot citi sau scrie date la viteza cu care cipul poate s selecteze adresele. La cele mai multe cipuri, este cerut n mod normal o asteptare de 10 ns ntre emiterea adreselor de coloan. Modelul EDO elimin aceast ntrziere, permitnd memoriei s furnizeze mai repede datele solicitate. Teoretic, EDO poate s creasc performantele cu 5060%, dar, la modelele mai recente de calculatoare, cele mai bune implementri au condus la o crestere a performantelor cu 1020%. Fizic, cipurile EDO si SIMM par identice, dar, pentru a implementa EDO, este necesar un sistem complet diferit de gestiune (management) a memoriei, care s se potriveasc cu tehnologia memoriei (BIOS-ul, n special). Astfel, se pot instala SIMM-uri EDO n majoritatea calculatoarelor, dar vor functiona ca memorie obisnuit, si nu vor contribui la o crestere a performantei. Structura unui calculator 91 n aplicatiile multimedia, diferenta ntre memoria cache si EDO nu este notabil, astfel c EDO poate fi considerat ca o alternativ la memoria cache secundar. La sfrsitul anului 1995, nlocuirea memoriei FPM cu EDO devenise cea mai comun form de reducere a timpului de acces la memorie. Diferenta dintre cele dou memorii este mic, astfel nct multe calculatoare create pentru memoria FPM accept si memoria EDO, desi nu cstig n performant. Cu toate c FPM nu poate imita EDO, calculatoarele actuale pot determina ce fel de memorie s-a instalat, lucrnd cu ea n mod adecvat. Pentru o rat de transfer dat, memoria EDO va fi cu 30% mai rapid dect memoria FPM. Exemplu. Acolo unde un cip page mode de 70 ns are starea de asteptare zero la o frecvent a magistralei de 25 MHz, un cip EDO poate opera la stare de asteptare zero pentru o frecvent a magistralei de 33 MHz. BEDO DRAM (Burst Extended Data Out DRAM) Pentru a cstiga mai mult vitez cu EDO, Micron Technology a adugat circuite cipului, pentru a-l face compatibil cu modul burst folosit de microprocesoarele Intel, ncepnd cu 486. Noul cip, numit Burst EDO DRAM, realizeaz toate operatiile de citire si scriere n serii de cte patru cicluri, numite burst. Aceeasi tehnologie este regsit sub numele generic de pipeline nibble mode DRAM, pentru c transferul datelor se realizeaz n serii de cte patru cicluri pe pipeline. Cipul functioneaz ca un EDO sau ca un page mode DRAM atunci cnd linia CAS devine activ, dar, n loc s transfere un octet de date, un numrtor binar transmite un semnal de patru ori n interiorul cipului, fiecare semnal transfernd un octet de date. BEDO este relativ usor de fabricat, pentru c necesit un minim de schimbri fat de memoria EDO sau page mode DRAM. Cipul de siliciu contine un fuzibil care determin dac cipul functioneaz ca EDO sau BEDO. Cipul si poate schimba starea n mod ireversibil, prin arderea fuzibilului. Tehnologia BEDO este capabil s opereze la o vitez a magistralei de 66 MHz cu stri de asteptare zero, la un timp de transfer de 52 ns. SDRAM (Sychronous DRAM) Datorit multiplexrii, cipurile de memorie nu pot opera simultan cu microprocesoarele. Adresarea normal cere cicluri alternante, dar, prin reproiectarea interfetei de baz, cipurile de memorie pot accesa date la fiecare ciclu de ceas. Modificrile cipurilor de interfat au fcut ca cipurile de memorie s poat opera sincron cu microprocesoarele: acestea se numesc DRAM sincron. Desi schimbarea interfetei cipului poate evita blocrile sistemului, ea nu are nicio contributie la cresterea vitezei. Ca si microprocesoarele superscalare, cipurile SDRAM sunt realizate cu stagii de operare multiple si independente, astfel nct cipul poate s acceseze o a doua adres nainte de a ncheia procesarea primei adrese. Extinderea pipeline se refer doar la adresarea coloanelor unei anumite pagini. Cipurile SDRAM au rata de transfer foarte ridicat. Interfata si pipeline-ul determin timpi de transfer de ordinul nanosecundelor, ceea ce le permite utilizarea ARHITECTURA SISTEMELOR DE CALCUL 92 pentru magistrale de memorie de 100 MHz. Cipurile actuale au anumite limite, care reduc viteza la aproape 66 MHz. SDRAM-urile nu pot opera la viteze mai mari de 100 MHz, pentru c sloturile SIMM-urilor devin nesigure la frecvente mai mari. Memoriile SDRAM sunt adaptate noului standard de magistral sincron introdus de microprocesoarele familiei Intel P6 (Pentium Pro, Pentium II si III). n figura 3.24 este prezentat structura unei memorii organizate pe 4 blocuri, care sunt accesibile n mod concurent. Fig. 3.24. Structura intern a unei memorii SDRAM de 8 MB. Structura favorizeaz operatiile n regim burst. Se poate programa numrul de locatii dintr-un burst la valorile de 1, 2, 4, 8 octeti sau o pagin de memorie. Accesul ncepe la o adres specificat si continu cu adresele succesive, pn la numrul de locatii programate. Circuitul de memorie accept mai multe tipuri de comenzi, fiecare fiind specificat printr-o combinatie a semnalelor de intrare. Ratele de transfer cerute de diverse tehnologii de memorie pentru starea de asteptare zero la o vitez de transfer dat pe magistral sunt prezentate n tabelul 3.1. Structura unui calculator 93 Tabelul 3.1 Ratele de transfer la o vitez dat a magistralei locale Viteza magistralei de memorie FPM EDO BEDO SDRAM 25 MHz 70 ns 70 ns 70 ns 12 ns 33 MHz 52 ns 70 ns 70 ns 15 ns 50 MHz N/A 52 ns 70 ns 12 ns 66 MHz N/A N/A 52 ns 10 ns Dintre versiunile rapide de SDRAM dezvoltate n ultimii ani, se pot aminti: PC 100 RAM timp de acces 8 ns, rat de transfer 500-800 MB/s; PC 133 RAM timp de acces 7,5 ns, rat de transfer 800 MB/s; PC 2100/2700/3200 la frecventele de 266/333/400 MHz. EDRAM (Enhanced DRAM) Memoriile de tip EDRAM sunt mai rapide si se obtin din DRAM-urile obisnuite prin adugarea unor blocuri mici de memorie cache static pe fiecare cip. Cache-ul opereaz la vitez nalt (n mod obisnuit, 1 ns), astfel nct pot s acopere cererile de date ale microprocesorului fr a aduga strile de asteptare generate de operatia de remprosptare. Productorul tehnologiei EDRAM (Ramtron) descrie patru avantaje ale acestui tip de memorie: legarea cache-ului SRAM cu DRAM-ul pe acelasi cip presupune folosirea unei magistrale de ltime mare pentru conectare (Ramtron foloseste o magistral de 16.384 biti), care poate determina o rat de umplere a memoriei cache de aproximativ 60 Gb/s, comparativ cu 110 Mb/s la cache page mode DRAM. Timpul de umplere este de aproape sapte ori mai mic (35 ns) la EDRAM fat de cache page mode DRAM (250 ns); modelul Ramtron foloseste o structur de control diferit fat de DRAM- ul conventional, ceea ce permite ca memoria s fie prencrcat n timp ce sistemul realizeaz transferul n mod burst din cache, prencrcarea determinnd reducerea timpului de acces; desi cache-ul EDRAM foloseste proiectarea write through (vezi paragraful 3.2.12), scrierea n memoria principal poate fi fcut cu timp de asteptare zero. Prima operatie de scriere necesit 7 ns, iar ciclul de scriere pentru o pagin normal este de 15 ns; proiectarea EDRAM permite accesul separat la bancurile de cache, ceea ce reduce timpul de acces la sistemele care lucreaz n multitasking. CDRAM (Cached DRAM) Memoria CDRAM, realizat de Mitsubishi, adaug o memorie cache pe fiecare cip, utiliznd un model de tip asociat. Cipul initial de 4 MB are ncorporat o memorie cache de 2 KB, folosind dou buffer-e de cte un cuvnt (16 biti) pentru transferul dintre cache si circuitele externe. ARHITECTURA SISTEMELOR DE CALCUL 94 Spre deosebire de EDRAM, prtile CDRAM asociaz att cache-ului, ct si DRAM-ului principal, aceeasi adres, astfel nct acestea opereaz independent una fat de cealalt, putnd fi adresate separat. Memoria cache este suficient de rapid pentru a transfera date n mod burst, la o frecvent de 100 MHz. Cipul permite celor dou buffer-e s functioneze independent, deci, pot lucra n flux continuu. MDRAM (Multibanc DRAM) Principiul de lucru este urmtorul: n locul unui bloc de celule, fiecare celul este adresat prin numrul liniei si al coloanei. Memoria DRAM produs de MoSys Inc. desparte informatia stocat ntr-un numr de bancuri de memorie separate. n modelul MDRAM initial de 4 MB, fiecare din cele 16 bancuri de memorie pstreaz 256 KB, ele fiind legate printr-o magistral central de date, care acceseaz fiecare banc individual. Acest model permite unui banc de memorie s trimit sau s primeasc o serie de date printr-un singur ciclu de ceas si s comute la un alt banc pentru un alt transfer. Deoarece fiecare banc de memorie dispune de o interfat de 32 biti care lucreaz la fel ca SDRAM, cipurile MDRAM opereaz la viteze de transfer de pn la 1 GB/s. RDRAM (Rambus DRAM) Modelul Rambus foloseste un cache RAM static de 2.048 octeti, care se leag la memoria dinamic printr-o magistral de ltime foarte mare, permitnd transferul unei pagini de memorie n cache ntr-un singur ciclu. Cache-ul este destul de rapid, furniznd date la un timp de acces de 15 ns. Memoria Rambus nu este implementat pe calculator ca o memorie standard. Ea foloseste o magistral special de nalt vitez. Indiferent de legtura cu microprocesorul, ltimea magistralei dintre controlerul de memorie si cipul Rambus este de 1 octet. Rambus opereaz la frecvente ntre 250 si 800 MHz, modelul permitnd transferul a doi octeti la fiecare ciclu de ceas: unul pe frontul cresctor, iar al doilea pe frontul descresctor al impulsului de ceas. Accesul la memorie se face n mod inteligent, incluznd functia de pre- ncrcare a datelor, iar citirea acestora se face n pachete mici, la viteze ridicate ale semnalului de ceas. Viteza Rambus este izolat de microprocesor si rmne constant indiferent de viteza microprocesorului. Rata de transfer maxim poate atinge 1,6 GB/s. Viteza ridicat a Rambus-ului impune limite n proiectarea unui sistem de memorie: magistrala trebuie s fie scurt si poate suporta doar 32 de cipuri sau 10 module de memorie Rambus, un modul continnd 32 de cipuri Rambus. O vitez de peste 500 MB/s a magistralei poate s induc interferente; pentru a le minimiza, Rambus functioneaz la 2 V, cu oscilatii de 300 mV. Rambus opereaz ca o mic retea, trimitnd date n pachete cu o lungime de pn la 256 octeti. Modelul este schimbat radical si cere o modificare important a tipului de calculator pe care se instaleaz, fiind deocamdat util pentru sisteme care includ integrare video. O colaborare ntre Intel si Rambus s-a materializat n 1999 printr-un DRAM care opereaz la 100 MHz, pe calculatoare de 64 de biti. n figura 3.25 este prezentat arhitectura unui cip de memorie RDRAM cu capacitatea de 32 MB. Structura unui calculator 95 Fig. 3.25. Cip de memorie RDRAM de 32 MB. Asa cum se observ din figur, unul din atu-urile memoriei RDRAM este c fiecare cip de memorie poate contine pn la 32 de bancuri de memorie. Aceste bancuri sunt individuale si apartin riguros aceluiasi cip, spre deosebire de bancurile SDRAM, care sunt mprstiate printre mai multe cipuri de memorie. Revenind la diagram, fiecare banc de memorie are dimensiunea de 1 MB, ceea ce face ca ntregul cip s aib o capacitate de 32 MB. Fiecare banc reprezint o matrice DRAM organizat n 512 linii a cte 128 dualocti (dualoctul este cea mai mic unitate de memorie adresabil de ctre RDRAM). Fiecare dualoct contine 16 octeti si, deci, dimensiunea total a liniilor matricei este de 2 KB. n mod ideal, se poate pstra activ cte o linie din fiecare din cele 32 de bancuri, pentru a maximiza sansele de a primi datele dintr-o linie activ. n realitate, ns, pot exista numai 16 bancuri deschise simultan sau, mai precis, doar jumtate din bancurile existente pe cip. Figura 3.26 prezint dou operatii: una de citire si cealalt de scriere din/n memorie, pentru a ilustra lucrul simultan cu doar jumtate din bancurile disponibile. Modul de functionare este urmtorul. Atunci cnd procesorul citeste un dualoct de 16 octeti dintr-un banc, datele respective prsesc bancul si ptrund n amplificatoarele de semnal (numerotate), care sunt plasate de o parte si de alta a bancurilor de memorie. Data A si Data B reprezint dou jumtti ale unui dualoct (cu 8 octeti fiecare), care prsesc bancul de memorie pe ci separate, asa cum se observ n figura 3.26. Cele dou magistrale care ncadreaz bancurile de memorie au fiecare o ltime de 8 octeti, deci jumtatea dualoctului reprezentat de Data A se va transfera pe magistrala din dreapta, iar cea reprezentat de Data B pe magistrala din stnga. Desi pe diagram pare c fiecare banc este conectat la 4 amplificatoare de semnal, de fapt, fiecare pereche de csute cu aceeasi etichet (0/1, 1/2 etc.) plasat la stnga si la dreapta unui banc constituie un singur amplificator de semnal. ARHITECTURA SISTEMELOR DE CALCUL 96 Fig. 3.26. O operatie de citire si o operatie de scriere din/n memoria RDRAM. Deoarece un numr prea mare de amplificatoare ar mri considerabil suprafata pastilei de memorie, fiecare banc de memorie mparte cele dou amplificatoare adiacente cu bancurile vecine lui. De exemplu, amplificatoarele 0/1 si 1/2 sunt conectate la bancurile 0, 1 si 2. n acest fel, se micsoreaz suprafata cipului, ceea ce duce la o reducere a costului. Exist si exceptii, iar acestea sunt bancurile 0, 15, 16 si 31, care sunt conectate fiecare la cte un singur amplificator dedicat si, ca atare, trebuie s astepte ca un singur banc vecin s si termine activitatea pentru a deveni active. Faptul c dou bancuri de memorie ajung s mpart un singur amplificator de semnal (sense amp) reprezint motivul pentru care numai jumtate din bancurile unui cip pot fi active simultan. Chiar si asa, numrul bancurilor de memorie active ale unui modul RDRAM este mult mai mare fat de cel al unui modul SDRAM. De exemplu, pentru un singur modul RIMM cu 4 cipuri, exist 32 de bancuri pe cip si, deci, 128 de bancuri, dintre care 64 active simultan pentru ntregul modul. Acest numr ridicat de bancuri de memorie reprezint explicatia pentru lrgimea de band si frecventele foarte mari (400 MHz, 533 MHz) cu care opereaz memoriile SDRAM. Referitor la ultima diagram prezentat, mai trebuie fcute dou precizri: fiecare amplificator de semnal are si o capacitate proprie de stocare de 1024 de octeti, el fiind un buffer ntre bancul de memorie si magistrala sistemului; cele dou magistrale de 8 octeti amintite anterior sunt divizate numai conceptual, n realitate formnd o singur magistral cu ltimea de 16 octeti. Schema din figura 3.27 ilustreaz diferentele dintre un sistem de memorie bazat pe RDRAM si unul bazat pe SDRAM. Se observ c la RDRAM cipurile sunt atasate unor module de memorie RIMM, asa cum memoria SDRAM este organizat n module DIMM. Structura unui calculator 97 Fig. 3.27. Diferentele dintre sistemele de memorie RDRAM si SDRAM. Diferenta const n faptul c RIMM-urile sunt atasate plcii de baz n mod serial, neputnd exista sloturi de memorie goale. Dac nu exist suficiente module de memorie RIMM propriu-zise, sloturile de memorie de pe placa de baz rmase libere vor trebui completate cu module de continuitate, pentru a permite canalului Rambus s-si ating rezistenta de sarcin (terminatia). Din punct de vedere teoretic, pot exista oricte canale Rambus independente ntr-un sistem, fiecare cu o lrgime de band de 1,6 GB/s, dar, n practic, numrul canalelor este limitat din considerente de design al plcilor de baz. Un alt factor care complic designul unui subsistem de memorie Rambus este dat de faptul c semnalului de ceas provenit de la controlerul de memorie i este necesar un timp att de ridicat pentru a ajunge la cel mai deprtat modul RIMM din sistem, nct poate fi defazat de mai multe ori, fat de semnalul ajuns la primul modul RIMM. Din acest motiv, canalul Rambus suport pn la cinci domenii pentru semnalul de ceas, doar pentru a putea pstra o sincronizare ntre transferurile pe magistrala de memorie. Aceste schimbri ale domeniilor de tact complic ns si mai mult arhitectura sistemului de memorie Rambus, prezentat n figura 3.28. ARHITECTURA SISTEMELOR DE CALCUL 98 Fig. 3.28. Elementele de baz ale unui sistem de memorie RDRAM. DDR SDRAM (Double Data Rate Synchronous DRAM) Acest tip de memorie transfer date pe ambele fronturi (cresctor si descresctor) al semnalului de ceas. n felul acesta, viteza rezultat n transferul datelor este dubl (Double Data Rate) fat de o memorie SDRAM. DDR SDRAM se monteaz pe acelasi tip de socluri, dar are nevoie de un nou cip-set. Fat de RDRAM, DDR SDRAM prezint urmtorul dezavantaj: dac datele solicitate nu exist n cache, continutul curent al acestuia este vrsat n DRAM-ul integrat pe cip, este accesat o alt pagin si abia apoi are loc citirea din memorie. Avantajele DDR SDRAM fat de RDRAM sunt pretul si faptul c rata de transfer RDRAM este aproximativ 6070% din rata DDR SDRAM (datorit faptului c lucreaz pe 16 biti, fat de DDR SDRAM, care lucreaz pe 64 de biti). Deoarece memoria DDR SDRAM este o variant evoluat a SDRAM-ului, felul n care interactioneaz cu magistrala de memorie este foarte asemntor celui al predecesoarei sale, cu exceptia faptului c la DDR SDRAM se transfer dou cuvinte de date ntr-o perioad de ceas. Figura 3.29 prezint functionarea unui sistem de memorie format din 3 DIMM-uri, fiecare cu 4 bancuri de memorie pe 64 de biti. n figur sunt marcate blocurile de date de 64 de biti (alctuite din 4 pachete de cte 16 biti), blocuri trimise de bancurile de memorie ctre procesor n timpul unei operatii de citire. Sgetile indic sensul parcurs de date pe magistrala de memorie la care sunt conectate DIMM-urile. n cazul unei operatii de scriere, sensul ar fi, evident, invers (CPUmemorie). Evaluarea modulelor DDR SDRAM se face ntr-un mod diferit de SDRAM, principalul criteriu nemaifiind frecventa, ci lrgimea de band maxim oferit teoretic si care se exprim n MB/s. Standardele uzuale actuale sunt PC1600, PC2100 si PC2400. Primul are o frecvent de 2100 MHz (datorit transmisiei datelor pe ambele fronturi ale semnalului). Lrgimea de band de 1600 MB/s se obtine nmultind ltimea cii de date (64 de biti) cu frecventa memoriei (200 MHz) si mprtind la numrul de biti dintr-un octet (8). Similar, pentru PC2100 frecventa este 2133MHz, adic, 266 MHz, iar pentru PC2700, frecventa este de 333 MHz. Structura unui calculator 99 Fig. 3.29. Sistem de memorie DDR SDRAM cu 3 DIMM-uri a cte 4 bancuri pe 64 de biti. DDR2 SDRAM (Double Data Rate Two Synchronous DRAM) Memoriile DDR2 fac parte din familia memoriilor SDRAM, reprezentnd o mbunttire a memoriilor DDR SDRAM. Unul dintre principalele avantaje ale DDR2-ului este abilitatea acestuia de a opera cu magistrala de date extern de dou ori mai repede dect DDR. Acest lucru este obtinut prin mbunttirea semnalizrii magistralei si prin operarea celulelor de memorie la jumtate din frecventa de ceas (un sfert din rata de transfer a datelor). Dac memoria DDR2 ar opera la aceeasi frecvent de ceas ca DDR, ar asigura aceeasi lrgime de band, dar ar avea o ntrziere semnificativ mai mare. Ca si n cazul DDR, datele din memoriile DDR2 sunt transferate att pe frontul cresctor, ct si pe frontul descresctor al ceasului. Diferenta principal dintre DDR si DDR2 este aceea c n cazul DDR2 magistrala este sincronizat la de dou ori frecventa la care lucreaz celulele de memorie, astfel nct pot fi transferati 4 biti de date ntr-un ciclu al celulei de memorie, conform diagramei de timp din figura 3.30. Frecventa magistralei DDR2 este crescut prin unele mbunttiri la interfata electric, folosirea tehnologiei on-die termination sau folosirea unor buffer-e de prencrcare. Buffer-ul de prencrcare n cazul DDR2 are o adncime de 4 biti, spre deosebire de doi biti n cazul DDR. Din pcate, implementarea tuturor acestor tehnologii au dus la o crestere a ntrzierilor. Dac n cazul DDR apare o ntrziere ntre dou si trei cicluri ale magistralei de date, DDR2 poate avea ntrzieri de 4 pn la 6 cicluri. Acesta este motivul care a fcut necesar ca magistrala s lucreze la o frecvent de dou ori mai mare. ARHITECTURA SISTEMELOR DE CALCUL 100 Fig. 3.30. Citirea n rafale la DDR2 SDRAM. Un alt cost cauzat de cresterea vitezei este necesitatea ncapsulrii cipurilor n capsule mai scumpe si mai dificil de asamblat, cum ar fi BGA (Ball Grid Array). Schimbarea capsulelor a fost necesar pentru a mentine integritatea semnalului la viteze mai mari. Din punct de vedere al consumului de energie, DDR2 a mai fcut un pas nainte, necesitnd numai 1,8 V fat de 2,5 V, ct era necesar pentru DDR. Consumul de energie poate fi redus chiar si mai mult, prin reducerea frecventei n situatiile n care nu este necesar o rat de transfer foarte mare. Tensiunea maxim recomandat este 1,9 V, fiind chiar interzis depsirea acesteia n situatiile n care stabilitatea memoriei este un factor cheie. Totusi, modulele de memorie ar trebui s reziste pn la 2,3 V, nainte ca memoria s fie complet distrus. Pentru folosirea n calculatoarele personale, memoriile DDR2 vin sub forma unor module DIMM cu 240 de pini, identificate, de obicei, dup rata maxim de transfer. Cele sase standarde pentru modulele DDR2 sunt prezentate n tabelul 3.2. Tabelul 3.2 Standardele pentru modulele de memorie DDR2 Numele standardului Frecvena memoriei (MHz) Perioada ceasului (ns) Frecvena magistralei I/O (MHz) Transferuri de date pe sec. (mil.) Numele modu- lului Rata max. de transfer (MB/s) DDR-400 100 10 200 400 PC-3200 3200 DDR-533 133 7,5 266 533 PC-4200 4266 DDR-667 166 6 333 667 PC-5300 5333 DDR-800 200 5 400 800 PC-6400 6400 DDR-1066 266 3,75 533 1066 PC-8500 853 DDR-1300 325 3,1 650 1300 PC-10400 10400 Structura unui calculator 101 DIMM-urile DDR2 nu au fost proiectate s fie compatibile cu modulele DDR. Cheia de sigurant la DDR2 se afl n alt pozitie, iar densitatea pinilor (240 pentru desktop, 200 pentru notebook) este usor mai mare dect n cazul DDR (184). Modulele DDR2 mai rapide sunt compatibile cu modulele DDR2 mai lente, ns magistrala va functiona la viteza celui mai lent modul. DDR3 SDRAM (Double Data Rate Three Synchronous DRAM) Memoriile DDR3 sunt o mbunttire a modelului precedent de memorii, DDR2. Principala diferent ntre cele dou const n faptul c magistrala I/O DDR3 functioneaz la o frecvent de patru ori mai mare dect celulele de memorie. n plus, DDR3 permite cipuri de capacitate de la 512 Mb pn la 8 Gb, ceea ce duce la posibilitatea obtinerii de module de pn la 16 GB. Memoriile DDR3 promit o reducere a consumului de energie cu 17%, tehnologia de 90 nm folosit n fabricarea cipurilor DDR3 avnd nevoie de o tensiune de 1,5 V (fat de 1,8V pentru DDR2 sau 2,5 V pentru DDR). Unii productori propun utilizarea tranzistorilor dual-gate, tehnologie care ar permite reducerea si mai mare a scurgerilor de curent. Tensiunea maxim recomandat pentru DDR3 este 1,575 V. n mod normal, memoriile ar trebui s reziste pn la 1,975 V, fr a suferi o distrugere total, desi, cel mai probabil, nu vor functiona corect la acest nivel. Principalul avantaj al memoriilor DDR3 este dat de lrgimea de band. Cresterea acesteia a fost posibil si datorit buffer-ului de prencrcare, a crui adncime a fost mrit de la 4 biti, ct era n cazul DDR2, la 8 biti. Aceast dublare a dimensiunii buffer-ului este spectaculoas, n comparatie cu celelalte mici incrementri ale dimensiunii care au avut loc anterior. Redimensionarea buffer-ului are un cuvnt greu de spus n ceea ce priveste ntrzierea semnalului CAS. Teoretic, modulele DDR3 pot transfera date la o frecvent de 8001600 MHz, folosind ambele fronturi ale tactului I/O, cu frecventa de 400800MHz. DIMM-urile DDR3 au acelasi numr de pini ca modulele DDR2 (240), avnd si aceleasi dimensiuni, dar, cu toate acestea, sunt incompatibile din punct de vedere electric, iar cheia de securitate este situat n alt pozitie. Cele patru standarde pentru modulele DDR3 sunt prezentate n tabelul 3.3. Tabelul 3.3 Standardele pentru modulele de memorie DDR3 Numele standardului Frecvena memoriei (MHz) Perioada ceasului (ns) Frecvena magistralei I/O (MHz) Transferuri de date pe sec. (mil.) Numele modu- lului Rata max. de transfer (MB/s) DDR3-800 100 10 400 800 PC-6400 6400 DDR3-1066 133 7,5 533 1066 PC-8500 8533 DDR3-1333 166 6 667 1333 PC-10600 10667 DDR3-1600 200 5 800 1600 PC-12800 12800 ARHITECTURA SISTEMELOR DE CALCUL 102 O tehnologie complet nou, folosit pentru prima dat n cazul DDR3, este topologia Fly-By. Generatiile anterioare de SDRAM, inclusiv DDR2, utilizau o topologie stea pentru a mprti datele spre mai multe ci de semnal. Topologia Fly- By utilizeaz o singur legtur direct ctre toate componentele DRAM, ceea ce permite un rspuns mult mai rapid din partea sistemului. Motivul pentru care DDR2 nu s-a putut dezvolta mai mult dect a fcut-o nu se datoreaz att procesului de fabricatie, care ar fi trebuit rafinat mai mult, ct unor limitri mecanice. n esent, DDR2 nu este pregtit s ating viteze mai mari. Teoretic, acest lucru ar fi posibil, dar, practic, tehnologia mecanic dezvoltat pn azi nu permite acest lucru. La frecvente mai mari, DIMM-ul ncepe s ntmpine probleme n ceea ce priveste integritatea semnalului. n cazul topologiei stea folosite de DDR2, aceast problem s-ar rezolva dac s-ar reusi echilibrarea tuturor ramurilor. Din pcate, efortul necesar pentru a face acest lucru este peste limitele fizice din ziua de azi. Pentru DDR3, integritatea semnalului este rezolvat la nivelul fiecrui modul DRAM, n locul ncercrii unei echilibrri la nivelul ntregii platforme de memorie. Acum, att adresele, ct si semnalele de control, sunt transmise pe aceeasi cale. Practic, topologia Fly-By elimin limitrile cauzate de echilibrarea mecanic folosit n DDR2, nlocuind-o cu un semnal automat de ntrziere, generat de ctre controlerul de memorie. O alt inovatie prezent la DDR3 const n aparitia unui pin de reset. Acest pin permite resetarea unui modul de memorie fr resetarea ntregului sistem, ceea ce duce la o scdere a timpului si a energiei pierdute. De remarcat este si prezenta unui senzor de temperatur, pentru prima dat la memoriile DDR, senzor care detecteaz momentul n care modulul se apropie de un anumit prag de temperatur si, n consecint, poate scurta intervalele de refresh. Acest sistem de sigurant permite si el o reducere a consumului de energie. Un alt element caracteristic DDR3 este sistemul XMP (eXtended Memory Profile). Acest sistem, implementat pe placa de baz, permite utilizatorului unei configuratii alctuite dintr-un procesor Intel si o memorie DDR3 s realizeze un overclocking foarte simplu. Doar prin selectarea unei anumite optiuni, sistemul va decide singur factorii de multiplicare, tensiunile si frecventele pn la care poate fi fortat ceasul pentru a cstiga un plus de performant. XDR DRAM (eXtreme Data Rate DRAM) Memoriile XDR-RAM sunt considerate ca fiind succesorul memoriilor Rambus (RDRAM), fiind n concurent direct cu DDR2, SDRAM si GDDR4 (memoriile grafice pentru plcile grafice din familia GeForce FX). XDR-ul a fost proiectat n special pentru sisteme mici, care necesit o lrgime de band ridicat, si pentru sisteme GPU (Graphical Processing Unit) de top. Aceast tehnologie elimin problemele cauzate de ntrzierile ridicate, prezente la primele modele RDRAM. De asemenea, XDR DRAM permite o lrgime de band per pin mult mai mare, ceea ce duce la scderea costurilor de productie a plcilor de circuite integrate. Scderea costurilor este posibil datorit faptului c sunt necesare mai putine ci de transmisie a datelor pentru aceeasi lrgime de band. Structura unui calculator 103 Dispozitivele XDR DRAM folosesc un nucleu DRAM cu 8 bancuri, implementate n tehnologie CMOS, avnd momentan o densitate de 512 Mb. Spre deosebire de alte dispozitive DRAM, dispozitivele 16 XDR DRAM implementeaz o lrgime programabil si suport magistrale de 8, 4 sau chiar 2 biti. Elementele cheie ale arhitecturii XDR care permit performante ridicate sunt: XDR DRAM este un circuit integrat de memorie de mare vitez, cu o interfat care lucreaz la 4 GHz, asigurnd o lrgime de band de pn la 8GB/s; Controlerul I/O, numit XIO n cazul XDR DRAM, asigur aceeasi vitez ridicat ca la DRAM, aducnd si unele mbunttiri (tehnologia FlexPhase); Controlerul de memorie XMS este optimizat pentru a profita de inovatiile aduse de XDR, cum ar fi tehnologia Dynamic Point-to-Point, care permite o extindere a capacittii, pstrnd n acelasi timp si integritatea ridicat a semnalului, caracteristic modelului Point-to-Point; Generatorul de tact, XCG, asigur patru iesiri programabile, care garanteaz semnalele de tact pentru XIO si alte dispozitive XDR DRAM. Celula XIO este un controler I/O performant cu ntrzieri reduse, care foloseste un sistem de semnalizare pe 8 biti, la o frecvent de pn la 4 GHz, permitnd o lrgime de band de pn la 8 GB/s de la un singur dispozitiv XDR DRAM. XIO poate fi configurat s suporte mai multe dispozitive, asigurnd astfel lrgimea de band necesar aplicatiilor grafice sau altor aplicatii. XIO este compus din unul pn la 12 blocuri de cerere a magistralei (RQ ReQuest bus block), un bloc de control (CTL) si un numr variabil de blocuri de date de 8 sau 9 biti n cazul memoriilor cu cod corector de erori (DQ). Blocul RQ asigur subsistemelor memoriei informatiile referitoare la adrese si control. Blocul CTL asigur accesul la registre, initializarea, ntretinerea si testarea functiilor sistemului. Un bloc DQ este capabil s primeasc si s transmit date cu o frecvent de pn la 4 GHz. Memoriile XDR DRAM vin sub forma unor module XDIMM, specifice Rambus (vezi figura 3.31). Acestea ofer flexibilitate n ceea ce priveste upgrade- ul, o capacitate ridicat si performant ridicat, esential n cazul serverelor, de exemplu. Datorit tehnologiei Dynamic Point-to-Point, XDIMM-urile pot fi instalate att n configuratie single-channel, ct si n configuratie dual-channel, pstrnd ntreag lrgimea de band a sistemului si conservnd integritatea semnalului, caracteristic topologiei Point-to-Point. O alt inovatie tehnologic adus de XDR este tehnologia DRSL (Differential Rambus Signaling Level). Aceast tehnologie presupune un standard de semnalizare de joas tensiune, joas putere, diferential, care permite o magistral scalabil, multi-GHz, bidirectional, de tip Point-to-Point, care conecteaz celula XIO la dispozitivele XDR DRAM. XDR foloseste si standardul RSL (Rambus Signaling Level), dezvoltat initial pentru RDRAM, standard care permite conectarea a pn la 36 de dispozitive ntr-un mod sincron, adresate prin intermediul unei magistrale si comandate prin niste semnale. Sistemul de memorie Rambus XDR satisface nevoile computationale din numeroase domenii, cum ar fi computere grafice, servere, retelistic sau electronic de larg consum. ARHITECTURA SISTEMELOR DE CALCUL 104 Fig. 3.31. Modul de memorie XDIMM. eDRAM (embedded DRAM) eDRAM reprezint o memorie dinamic cu acces aleator, capacitiv, integrat n mod uzual n acelasi pachet cu procesorul, spre deosebire de modulele DRAM externe si SRAM-urile utilizate tipic pentru memorii cache. mpachetarea permite folosirea de magistrale mult mai mari si o vitez sporit a operatiilor. Datorit unei densitti mult crescute pentru DRAM n comparatie cu SRAM, pot fi utilizate cantitti mai mari de memorie. Diferenta n procesul de fabricatie determin dificultatea integrrii pe aria cipului procesorului, astfel nct mai multe circuite integrate de pe arie trebuie mpachetate ntr-un chip, ridicnd costul. Cele mai recente dezvoltri surmonteaz aceast limitare, utiliznd procesarea CMOS standard pentru a fabrica eDRAM, ca n formatul de memorie 1T-SRAM (vezi paragraful urmtor). Memoria eDRAM este folosit ntr-o larg varietate de console de jocuri. Att celula microprocesoare utilizat n PlayStation 3, ct si cea pentru IBM Power, folosesc eDRAM la cache-ul L2, n nodul de procesare de 45 nm al IBM. 1T-SRAM (1 Transistor Static RAM) Tehnologia de fabricare a memoriilor 1T-SRAM, introdus de ctre MoSys, ofer o alternativ la memoriile SRAM traditionale, permitnd o capacitate mai mare. Principala utilizare a memoriilor 1T-SRAM este n cazul sistemelor embedded (sisteme dedicate). MoSys a implementat o celul de memorare cu un singur tranzistor, ca n cazul DRAM, dar aceast celul este sustinut de o retea de circuite care fac functionarea memoriei s fie echivalent celei a memoriilor SRAM (controlerul ascunde toate operatiile specifice memoriilor DRAM, cum ar fi prencrcarea sau reactualizarea). n consecint, memoriile 1T-SRAM au o interfat standard SRAM de un ciclu si sunt percepute de restul logicii sistemului exact ca orice alt memorie SRAM. Datorit celulei de memorare cu un tranzistor, varianta 1T-SRAM este mai mic dect SRAM-ul clasic, bazat pe celule de 6 tranzistori, fiind mai apropiat de eDRAM (embedded DRAM) n ceea ce priveste dimensiunea si densitatea (vezi figura 3.32). n acelasi timp, 1T-SRAM ofer performante comparabile cu SRAM, consum mai putin dect eDRAM si este realizat n tehnologie CMOS, ca SRAM-ul clasic. Structura unui calculator 105 Fig. 3.32. Comparatie ntre celula 1T-SRAM si celula SRAM cu 6 tranzistori. MoSys prezint 1T-SRAM ca fiind solutia ideal pentru aplicatiile bazate pe SOC-uri (System-On-a-Chip se ncearc integrarea tuturor componentelor unui computer sau a unui sistem electronic ntr-un singur circuit integrat), cum ar fi microcontrolere, DSP-uri, blocuri de memorie, timer-e, regulatoare de tensiune etc. Memoriile 1T-SRAM sunt organizate sub forma unei matrice de mici bancuri de memorie (n general, 128 linii a cte 256 de biti fiecare, rezultnd un total de 32 Kb) conectate la o memorie cache de dimensiunea unui banc si la un controler de memorie. Chiar dac, n comparatie cu DRAM, 1T-SRAM este ineficient n ceea ce priveste spatiul, lungimea mai mic a cuvintelor permite atingerea unor viteze mult mai mari, reusindu-se astfel realizarea unui ciclu RAS la fiecare acces. Fiecare acces se face la cte un banc, permitnd astfel bancurilor nefolosite s fie reactualizate n acelasi timp. n plus, fiecare linie citit este copiat si n memoria cache. n eventualitatea unor accesri repetate la acelasi banc, exist dou variante: fie sunt accesate linii diferite, caz n care toate liniile vor fi reactualizate automat, fie aceeasi linie este accesat de mai multe ori. n cazul celei de-a doua variante, urmtoarele citiri se vor face din memoria cache, acordndu-se astfel timpul necesar pentru realizarea remprosptrii. Pn n prezent (mai 2008), au fost lansate patru generatii de memorii SRAM cu un tranzistor: 1. 1T-SRAM original, care are o dimensiune de dou ori mai mic dect 6T-SRAM si consum mai putin de 50% fat de acesta. 2. 1T-SRAM-M, care este o variant cu un consum mult mai mic n modul stand-by, fiind proiectat pentru uzul n sisteme portabile, de genul telefoanelor mobile. ARHITECTURA SISTEMELOR DE CALCUL 106 3. 1T-SRAM-R, care ncorporeaz un sistem de corectie a erorilor (ECC). Celulele de memorie sunt mai mici, ceea ce duce automat la o rat mai mare de aparitie a erorilor. Totusi, sistemul ECC rezolv aceast problem. 4. 1T-SRAM-Q, care este o versiune quad-density, folosind un proces nestandard de fabricare a condensatoarelor, care permite njumttirea dimensiunilor memoriei nc o dat fat de 1T-SRAM-R. Memoriile 1T-SRAM functioneaz la viteze comparabile cu 6T-SRAM si sunt semnificativ mai rapide dect eDRAM, modelul quad-density fiind cu doar 1015% mai mare. n majoritatea proceselor de fabricare a memoriei eDRAM este necesar parcurgerea unor pasi suplimentari si costisitori, depsind astfel destul de mult costul de productie al memoriei 1T-SRAM. Memoriile 1T-SRAM sunt disponibile si sub form de circuite integrate. Nintendo GameCube a fost prima platform care a folosit 1T-SRAM ca sistem principal de stocare a datelor. De asemenea, memoria 1T-SRAM a fost folosit n urmasul lui GameCube, consola Nintendos Wii. QDR I I SRAM (Quad Data Rate I I Static Random Access Memory) QDR este o memorie SRAM echipat cu un pin pentru intrarea datelor si un pin separat pentru iesirea datelor, spre deosebire de SRAM standard, n care cei doi pini sunt comuni. QDR permite introducerea si extragerea datelor pe ambele fronturi (DDR Double Data Rate), ducnd astfel la obtinerea unor viteze foarte mari pentru operatiile de scriere si de citire, care se pot desfsura simultan. n felul acesta, se poate realiza un transfer de pn la patru cuvinte la fiecare ciclu de ceas, cu o latent foarte mic. Acest tip de memorie este ideal pentru sistemele de comunicatii si retelistic, cum ar fi router-e sau switch-uri. Pentru a veni n ntmpinarea tendintelor din acest domeniu, QDRII SRAM utilizeaz porturi I/O la o vitez foarte ridicat prin tehnologia HSTL (High Speed Transceiver Logic), suportat de toate sistemele de networking de nou generatie (vezi figura 3.33). Din punct de vedere al consumului de energie, memoriile QDR se situeaz foarte bine, necesitnd doar 1,8 V pentru nucleul memoriei si 1,4 V pentru pinii de intrare/iesire. Acest aspect este extrem de important n domeniul pentru care sunt concepute s functioneze aceste memorii. Fig. 3.33. Arhitectura QDR II SRAM. Structura unui calculator 107 Memoriile QDR II sunt prevzute cu dou generatoare de semnale de ceas, unul pentru intrare, cellalt pentru iesire. Astfel, intrarea si iesirea pot fi foarte usor defazate. Memoriile QDR II vin sub forma unor FPGA-uri de 13 15 1 mm. O memorie QDR II hotrste dac va efectua o operatie de scriere sau de citire, n functie de starea n care se afl pinii de citire (R#) si de scriere (W#) la momentul n care ceasul se afl pe front cresctor. Pentru a da o comand de citire, R# trebuie s fie la nivelul 0 (vezi figura 3.34), iar pentru a da o comand de scriere, R# trebuie s fie la nivelul 1 si W# la nivelul 0 (vezi figura 3.35). Fig. 3.34. Operatia de citire la QDR II. Fig. 3.35. Operatia de scriere la QDR II. SGRAM (Synchronous Graphics RAM) Functionarea memoriei SGRAM este asemntoare celei de la memoria SDRAM. Functia principal a memoriei SGRAM este aceea de a stoca si citi date simultan n zona de memorie. Deoarece este o memorie de tip DRAM, trebuie s dispun de o remprosptare periodic, pentru a citi si a scrie date eficient si rapid. Astfel, au fost introduse functii speciale, care specific adresele grafice necesare aplicatiilor. Aceste functii sunt selectate prin folosirea unor registre speciale, dar si prin folosirea unor pini speciali. ARHITECTURA SISTEMELOR DE CALCUL 108 Fig. 3.36. Formatul ciclic al diagramei de timp pentru memoria SGRAM. La fel ca n cazul memoriei SDRAM, toate semnalele de intrare sunt nregistrate pe frontul cresctor al semnalului de ceas (vezi figura 3.36). Formatul SGRAM conceput de IBM poate citi sau scrie un numr de locatii dintr-un burst de 1, 2, 4, 8 octeti sau chiar o pagin de memorie. Odat ce un rnd este activ, mai este necesar doar adresa coloanei. Exist un contor n structura sa intern, care numr fiecare locatie de memorie, dup ce au fost introduse datele. Dac parametrii de citire si scriere sunt nregistrati, memoria continu s introduc date pn cnd toate spatiile sunt completate sau pn cnd apar secvente de ntrerupere. Pentru a face trecerea pe un nou rnd, acesta trebuie s fie pregtit si astfel va deveni activ. VRAM (Video RAM) Problemele de acces la memorie apar cu precdere n sistemele video la care memoria este folosit ca un buffer de cadru pentru imaginea de pe ecran, aceasta fiind nmagazinat sub form digital si alocat pentru fiecare element al imaginii. ntregul continut al buffer-ului este citit de la 44 la 75 de ori pe secund. ntre timp, calculatorul poate ncerca s scrie o nou informatie n buffer, pentru ca aceasta s apar pe ecran. Cu memorii DRAM obisnuite, aceste operatii de citire si scriere nu pot aprea simultan, una trebuie s o astepte pe cealalt, timpul de asteptare afectnd n mod negativ performantele video, viteza sistemului si rbdarea utilizatorului. Asteptarea poate fi evitat prin introducerea unui cip special de memorie, care s aib dou ci (dual ported) pentru accesul fiecrei locatii. O astfel de memorie permite scrierea si citirea simultan. Cipurile de memorie video VRAM permit citirea si scrierea aleatorie la un port, n timp ce la cellalt port se permite doar citirea secvential, care corespunde nevoilor de scanare a unei imagini video. Dezavantajul principal al tehnologiei VRAM este c aceasta este mai scump. Folosind ns memorii VRAM, se poate mri viteza sistemului video cu aproximativ 40%. Structura unui calculator 109 Pentru a trimite siruri de date ctre monitor cu o vitez ridicat, memoria VRAM include o serie de registre numite SAM (Serial Access Memory), legate la un port serial. Acest port este conectat la un controler D/A de vitez foarte mare. Memoria VRAM are o interfat DRAM complet separat de portul serial. n timp ce unele date sunt citite cu ajutorul portului serial, altele sunt citite sau stocate din aria DRAM printr-un port DRAM. Formatul VRAM prezint cteva caracteristici realizate special pentru a creste flexibilitatea n aplicatiile grafice. WRAM (Windows RAM) Un model VRAM cu dou porturi este WRAM (elaborat de Samsung), util n sistemele video proiectate s asiste o interfat grafic gen Windows. Cipul de baz WRAM pstreaz 1 MB aranjat n plane de 32 de biti, fiecare fiind compus din 512 512 celule. Trei cipuri asigur memoria necesar pentru a afisa o rezolutie de 1024 768, 1024 1024 si pentru operare n True Color pe 24 biti. Intern, o magistral de date de 256 de biti leag fiecare plan de biti cu controlerul logic intern al cipului care multiplexeaz datele pe 32 de biti, compatibile cu circuitele din calculator. Pentru a furniza date n scopul scanrii video, cipul contine dou registre serie. Cipul ncarc unul din registre, iar din cellalt extrage datele, comutnd ntre ele n momentul n care registrul al doilea se goleste. Cipul contine patru registre de 32 de biti, dou pentru nmagazinare si pentru culorile de fundal, iar celelalte dou pentru control si msti. Cu o rat de transfer de pn la 640 MB/s, modelul WRAM poate mri viteza sistemului cu 50 % n comparatie cu VRAM. Observaie. Formatul Windows RAM nu are legtur cu Microsoft Windows. 3.2.10. Verificarea prin controlul paritii Revenind la caracteristicile generale ale memoriei, pe majoritatea plcutelor de memorie se afl instalate 9 cipuri (pentru memoriile paritare), primele opt avnd rol de memorie efectiv de lucru (8 biti de la 0 la 7), iar cel de-al 9-lea fiind numit cip de paritate (parity cip), cu rol de testare a strii de functionare a celorlalte 8 cipuri, prin verificarea parittii memoriei. Paritatea memoriei este de dou tipuri: par si impar. Exemplu. Fie cazul unei memorii impare. Un rnd de biti contine un numr impar de 1 (numr retinut n cmpul 9). Datele sunt cuprinse pe 8 biti (1 bit/cip). Cnd o dat este impar, bitul de paritate este 1. La pornirea sistemului, cnd se ajunge la etapa de verificare a memoriei, se verific si paritatea rndurilor de biti (parity check). Memoria fiind, conform exemplului, impar, trebuie s existe un numr impar de biti, n caz contrar sistemul semnalnd o eroare de paritate (parity error) si deci un cip (sau mai multe) este (sunt) defect(e). n cazul memoriei pare, procesul este identic cu cel anterior, doar c un rnd de biti contine un numr par de 1. ARHITECTURA SISTEMELOR DE CALCUL 110 Memoriile SIMM se prezint constructiv cu 8 sau 9 cipuri pe plcut, dup cum sunt cipuri paritare sau nu. Nu toate plcile SIMM folosesc verificarea parittii, dar toate plcile DIMM sunt prevzute cu aceasta facilitate. Exemplu. SIMM-urile paritare pe 8 biti folosesc un bit de paritate (module pe 9 biti), iar cele pe 32 de biti folosesc 4 biti de paritate (module pe 36 biti, 8 4 = 32 biti + 4 1 = 4 biti de paritate). Exist si module de memorie care folosesc cipuri compuse, pe o plcut fiind prezente doar 2 sau 4 circuite integrate. n acest caz, n aceeasi capsul sunt prezente patru sau dou cipuri de memorie. n cazul n care se folosesc module de memorie neparitare, va trebui dezactivat din CMOS optiunea de verificare a parittii memoriei, n caz contrar aprnd erori. n nici un caz nu se pot folosi combinatii de module paritare cu module neparitare. n timpul functionrii sistemului, la detectarea unei erori de paritate este emis o cerere de ntrerupere (de ctre cipul specializat), care va avea ca rezultat final oprirea procesului aflat n executie si reluarea unei rutine BIOS care va afisa un mesaj specific. Unele variante de microprocesoare au integrat un modul special de evaluare si verificare a parittii memoriei. Anumiti productori ai cipurilor de RAM au abandonat verificarea parittii, deoarece crestea pretul memoriei cu 1015 %, la aceasta adugndu-se si posibilitatea unei compactri a cipurilor util la calculatoare de tip notebook. Exist ns si calculatoare care au implementat o paritate fals (fake parity), care emite un semnal ce atest paritatea fr s realizeze o verificare efectiv. Datorit faptului c cipurile care genereaz paritate fals sunt mai ieftine, acestea sunt utile la calculatoarele care au implementat mecanismul de detectare a parittii. n general, modulele de memorie cu paritate fals apar identice modulelor cu paritate. Singurul mod de a le identifica este folosind un tester pentru module de memorie. Deoarece modulele cu paritate fals lucreaz la nivel hard, programele obisnuite de testare nu pot s le detecteze (conform cu Kingston Tehnologies, cipurile cu paritate fals sunt marcate cu una din urmtoarele inscriptii: BP, GSM, MPEC sau VT). Exist ns procedee care pot efectua att detectia, ct si corectia unor erori. Un exemplu l constituie procedeul ECC (Error Correction Code), care necesit biti suplimentari pentru fiecare octet memorat. Procedeul poate s localizeze bitul care este eronat, iar eroarea poate fi remediat (se mai numeste tehnologie Error Detection And Correction EDAC). Firma IBM foloseste tehnologia ECC pe calculatoarele proiectate pentru a functiona ca servere. Acest cod poate corecta automat orice eroare de 1 bit care apare ntr-un cuvnt de 64 de biti. n acest scop, memoria foloseste cuvinte de cod de 72 de biti (64 biti de date + 8 biti de control). Aceast schem are aceeasi eficient cu cea paritar (8/9 = 64/72), dar ofer corectie cu o robustete mai mic, pentru c poate corecta o eroare la 64 de biti, spre deosebire de cealalt schem, care poate detecta o eroare la 8 biti. Structura unui calculator 111 Procedeul ECC nu este mai costisitor de implementat, datorit cresterii dimensiunilor magistralelor; astfel, pentru microprocesoarele Pentium si post- Pentium, care au magistrala de date de 64 biti, costul unei memorii cu verificare a parittii si corectie este acelasi. La fiecare acces la memorie, hardware-ul verific dac cuvntul de cod este corect; dac nu, calculeaz automat cel mai apropiat cuvnt de cod, pe care apoi l decodific. Aceste operatii sunt destul de complicate, astfel nct un sistem cu memorii ECC merge cu aproximativ 5% mai lent dect unul cu memorii paritare. 3.2.11. Metodele de acces la memorie Un alt aspect care trebuie luat n considerare este timpul de acces al memoriei RAM folosite. Dup cum s-a mai spus, acesta sunt de ordinul zecilor de nanosecunde (cu exceptia memoriilor SDRAM, care pot ajunge pn la cteva nanosecunde), timp destul de mare, avnd n vedere vitezele de tact la care lucreaz azi diversele procesoare. Pentru a scdea timpul de acces al memoriei RAM, se folosesc diverse metode de acces la memorie prin paginarea acesteia sau ntretesere (Paging Mode sau Interleaving). Paginarea asigur o citire mai rapid, datorit faptului c n cazul unei cereri de date din partea microprocesorului, acesta transmite cipului de memorie nu adresa datei cerute, ci adresa unei pagini care contine informatia dorit si, n cadrul paginii, adresa datei solicitate (vezi capitolul 6). Automat, spatiul de cutare a informatiei este micsorat prin paginarea memoriei, iar timpul n care este accesat o informatie scade. ntreeserea presupune c procesorul desfsoar o activitate paralel de accesare pentru dou bancuri de memorie (memoria este mprtit, dup cum s-a mai spus, n cel putin dou bancuri, bancul 0 si bancul 1, care nu sunt accesate simultan). Timpul de citire din bancul 0 este folosit de memoria instalat n bancul 1 pentru operatia de remprosptare, apoi timpul n care procesorul citeste din bancul 1 este folosit de bancul 0 pentru aceeasi operatie de remprosptare. Acest lucru este posibil datorit faptului c microprocesorul acceseaz date, n general, de la adrese apropiate sau nvecinate cu adresa citit anterior. Cum citirea este un proces secvential, dup citirea de la adresa k din bancul 0 urmeaz citirea de la adresa k+1 din bancul 1, citire care se efectueaz foarte rapid (practic, instantaneu), deoarece operatia de refresh a bancului 1 a fost deja realizat. Se asigur astfel citirii o fluent aproape perfect. Aceast metod are un dezavantaj: n cazul citirii din locatii succesive, doar pare sau doar impare (la citiri succesive din acelasi banc datele sunt scrise cele pare n primul banc, cele impare n cel de-al doilea banc), nu mai este timp de refresh ntre dou citiri consecutive si se vor introduce una sau dou stri de teptare ale procesorului (wait states), ceea ce determin ncetinirea general a vitezei sistemului. Plasarea plcilor de memorie n bancuri separate este foarte util si uneori obligatorie, existnd modele de plac de baz care nici nu functioneaz cu o singur plcut de memorie. ARHITECTURA SISTEMELOR DE CALCUL 112 3.2.12. Memoria cache Datorit vitezei foarte mari cu care lucreaz microprocesoarele, implicit si fluxul de date si informatii cerute de acestea va fi foarte intens. Dar, deoarece unele componente din lantul de transmisie a datelor sunt mai lente, n spet memoria de lucru RAM (prin necesitatea de a fi remprosptat) si magistralele calculatorului (lente din principiu), acest flux de date cerut de procesor este mai putin rapid dect ar fi necesar (de exemplu, memoria RAM asigur un timp de acces de 60120 ns, ceea ce este foarte mult fat de nivelul de cteva nanosecunde, timp cu care lucreaz de obicei procesoarele pentru un anumit proces). Ca atare, ntre posibilittile de prelucrare a datelor de ctre microprocesor si capacitatea RAM-ului si magistralelor de a pune la dispozitia microprocesorului aceste date a aprut un decalaj foarte mare, ceea ce a dus n procesul de lucru al unui microprocesor la introducerea strilor de pauz (wait states), astfel nct, prin executia a unuia, a dou sau chiar a patru cicluri de asteptare, 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 si informatiile necesare sunt cuprinse n memoria de lucru, microprocesorul citeste memoria RAM, prelund anumite date, si realizeaz calculele si procesele cerute. Cum memoria este mult mai lent n livrarea datelor fat de viteza cu care le poate prelucra microprocesorul, n functionarea procesorului se introduc ciclurile de asteptare despre care s-a vorbit anterior; ct timp aceste cicluri se execut, se permite datelor solicitate de procesor s fie localizate si extrase din RAM, depuse pe magistrala de date si transportate ctre microprocesor. n final, dac se va nmulti timpul ct dureaz un ciclu de asteptare cu milioanele de operatii pe secund ale unui microprocesor, va rezulta o pierdere de timp substantial. Deci, era nevoie de o memorie de lucru ceva mai aproape de microprocesor si mult mai rapid (ideal fr s necesite operatii de remprosptare). De aceea, ntre microprocesor si memoria de lucru a mai fost introdus o component si anume memoria cache, realizat din celule de tip SRAM, cu rol de memorie tampon. La rndul su, memoria cache a fost divizat fizic n dou niveluri si anume (vezi figura 3.37): memoria cache primar sau intern (primary level cache, L1) memoria cache secundar sau extern (secundary level cache, L2 / L3). Memoria cache intern este plasat chiar n capsula microproceso-rului, dar este de dimensiuni foarte mici, n general de la 8 KB (Pentium) pn la 1 MB (Xeon). Memoria cache secundar este exterioar microprocesorului si se monteaz pe placa de baz a sistemului. Este sub form de cipuri (DIP) care se introduc n soclurile aferente, existnd si aici, ca si la memoria RAM, 8 socluri pentru memoria cache de lucru si un al 9-lea soclu pentru cipul de control al memoriei cache. Tipurile mai noi de cache sunt oferite sub form de plachete asemenea SIMM-urilor. Plcile de baz actuale au uzual cel mult 2 MB de memorie cache. Memoria cache este subordonat n activitatea ei unui controler de memorie cache (de exemplu, controlerul i82385) care va realiza gestiunea adreselor si controlul operatiilor de citire/scriere. Structura unui calculator 113 Fig. 3.37. Schema unei memorii cache ntr-un sistem Pentium: 1. microprocesor; 2. cache intern (un bloc de 8 KB); 3. cache intern (al doilea bloc de 8 KB); 4. cache extern; 5. cip de marcare a zonelor de memorie cache (TAG RAM); 6. memorie RAM. Memoria cache intern Primul nivel de memorie cache (L1) se afl integrat n microprocesor si are o portiune destinat datelor si instructiunilor (codului) si o alta destinat comenzilor. Cele dou module de cte sunt complet separate si lucreaz independent. Dimensiunea memoriei cache interne creste la procesoarele moderne. Acest tip de memorie mbuntteste mult performantele, deoarece fiind n interiorul procesorului transmisia de date este foarte rapid, nefolosindu-se n acest caz magistralele externe, foarte lente. n plus, fiind o memorie de tip SRAM, nu necesit remprosptare si dispune de un timp de acces extrem de scurt. Mai mult, la unele microprocesoare, cache-ul de date este mprtit n blocuri, iar controlerul de cache va gsi foarte rapid datele necesare, folosind o tabel index, alegnd exact blocul de memorie care le contine. Memoria cache extern Datorit dimensiunilor mici ale memoriei cache interne (limitele fiind impuse din considerente tehnice de constructie a microprocesoarelor) si pentru a mri si mai mult performantele sistemelor de calcul, mai ales pentru a creste sansele ca procesorul s gseasc datele necesare n cache (cache hit) si nu n RAM sau, mai ru, pe hard disk (cache miss), a fost introdus nc un nivel de memorie cache (L2 sau L3), de data aceasta n exteriorul microprocesorului, memorie care este ca dimensiuni cu mult mai mare dect memoria cache intern (de ordinul megaoctetilor). Memoria cache extern este implementat pe placa de baz a sistemului. Este format din cipuri de memorie de tip SRAM, foarte rapide, cu timpi de acces extrem de mici (415 ns). Exemplu. Pentru un procesor cu frecventa intern de 166 MHz, va fi nevoie de o memorie cache cache cu timp de acces de 100/166 = 6,02 ns. Principiul de functionare al unei memorii cache este sintetizat n figura 3.38. ARHITECTURA SISTEMELOR DE CALCUL 114 Fig. 3.38. Principiul memoriei cache. 3.2.12.1. Maparea memoriei cache Figura 3.39 prezint schema logic a algoritmului de citire a memoriei cache. Fig. 3.39. Operatia de citire a memoriei cache. Structura unui calculator 115 O caracteristic de baz a memoriei cache este funcia de mapare (de translatare), care atribuie locatii din memoria cache blocurilor din memoria principal. Se pot utiliza patru tehnici: maparea direct; maparea asociativ; maparea asociativ pe seturi; maparea pseudo-asociativ. Cu ajutorul politicilor de nlocuire se afl care locatie din memorie poate fi depozitat n cache si n care locatie anume. Dac politicile de nlocuire au libertatea de a alege orice locatie din cache pentru a pstra copia, cache-ul se numeste (complet) asociativ. La extrema cealalt, dac fiecare portiune din memoria principal poate merge ntr-o singur locatie din cache, procedeul se numeste mapare direct. Cele mai multe memorii cache implementeaz un compromis ntre cele dou, numit mapare asociativ pe seturi. Exemplu. Se consider o memorie cache de 1024 B (1 KB). Datele se transfer ntre memoria principal si cache n blocuri de cte 8 octeti. nseamn c memoria cache are 128 de linii a cte 8 octeti fiecare. Memoria principal const din 64 KB, fiecare octet fiind direct adresabil printr-o adres de 16 biti. Se poate considera c memoria principal const din 8 Kblocuri de cte 8 octeti fiecare. Deoarece exist un numr mai mic de linii ale memoriei cache fat 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. 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, asa cum este reprezentat n figura 3.40. Maparea este: C = A mod L, (3.5) unde: C = numrul liniei din memoria cache; A = adresa din memoria principal; L = numrul de linii din memoria cache. Pentru exemplul considerat, L = 128 si C = A mod128. Functia de mapare poate fi implementat simplu, utiliznd adresa de 16 biti. Cei 3 biti mai putin semnificativi, cmpul cuvnt (offset), identific un cuvnt (octet) unic n cadrul unui bloc al memoriei principale. Restul de 13 biti specific unul din cele 2 13 = 8 Kblocuri ale memoriei principale. Cmpul de 7 biti, numit linie sau index (slot), 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, si asa mai departe, pn la blocurile 127, 255, , 8191, care vor fi amplasate n linia 127. ARHITECTURA SISTEMELOR DE CALCUL 116 Fig. 3.40. Memorie cache cu mapare direct. Cmpul de 6 biti, 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 marcaj 0, 1, 2, , respectiv 63. Considernd din nou figura 3.40, o operatie de citire are loc astfel. Memoriei cache i se prezint o adres de 16 biti. Numrul liniei de 7 biti este utilizat ca un index n memoria cache pentru accesul la o anumit linie. Dac marcajul de 6 biti este egal cu marcajul liniei respective, atunci numrul de 3 biti al cuvntului este utilizat pentru a selecta unul din cei 8 octeti ai liniei respective. n caz contrar, marcajul si numrul liniei (n total 13 biti) se utilizeaz pentru a ncrca un bloc din memoria principal. Memoria cache cu mapare asociativ Maparea direct este o tehnic care se poate implementa simplu. Principalul dezavantaj al acesteia este c exist o locatie 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 aceeasi linie, blocurile vor fi interschimbate n mod continuu n memoria cache si rata de succes va fi redus. O metod care elimin dezavantajul maprii directe este maparea asociativ, reprezentat n figura 3.41. n acest caz, adresa memoriei principale const dintr-un marcaj de 13 biti si un numr al cuvntului de 3 biti. Un bloc din memoria principal se poate ncrca n oricare linie, iar marcajul su de 13 biti 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. Structura unui calculator 117 Fig. 3.41. Memorie cache cu mapare asociativ. n cazul maprii asociative, exist o flexibilitate n privinta nlocuirii unui bloc atunci cnd un nou bloc este ncrcat n memoria cache. Algoritmii de nlocuire a blocurilor din memoria cache, prezentati n continuare, au rolul de a creste eficienta. Principalul dezavantaj al acestei metode l reprezint circuitele complexe necesare pentru a examina marcajele tuturor liniilor din memoria cache. Memoria cache cu mapare asociativ pe seturi Maparea asociativ pe seturi reprezint un compromis care retine avantajele maprii directe si ale celei asociative. n acest caz, memoria cache este mprtit n I seturi, iar fiecare din acestea contine J linii, asa cum rezult din figura 3.42. Rezult: L = I J, (3.6) K = A mod I, (3.7) unde K este numrul setului. Cu aceast metod, blocul continnd adresa A poate fi mapat n oricare din liniile setului I. Observaie. n cazul extrem, n care I = L si J = 1, maparea asociativ pe seturi se reduce la maparea direct, iar dac I = 1 si J = L, se obtine maparea asociativ. Utilizarea a dou linii pe set (J = 2) este cea mai utilizat organizare asociativ pe seturi, care mbuntteste semnificativ rata de succes fat de maparea direct. Exemplu. Cache-ul de nivel 1 din AMD Athlon este asociativ pe dou seturi, adic orice locatie din memoria principal poate fi depozitat n 2 locatii din L1. ARHITECTURA SISTEMELOR DE CALCUL 118 Fig. 3.42. Memorie cache cu mapare asociativ pe seturi. Memoria cache cu mapare pseudo-asociativ Memoria cache asociativ pe seturi testeaz simultan toate cile posibile, folosind un mecanism asemntor continutului adresabil al memoriei. Memoria cache pseudo-asociativ testeaz fiecare cale posibil o singur dat. n cele mai multe cazuri, cnd gseste un bloc din prima testare (succes), memoria cache pseudo- asociativ este la fel de rapid ca n cazul maprii directe, dar are o rat de esec mai sczut dect n cazul maprii directe si mai aproape de cea a maprii asociative. Analize i comparaii Asociativitatea poate fi privit ca un fel de schimb. Dac sunt zece unitti, politica de nlocuire le trateaz ca o singur intrare, dar va trebui s caute n toate pentru un cache hit. A verifica mai multe locatii consum mai mult putere, spatiu si timp. Pe de alt parte, depozitarea folosind asociativitatea are cteva minusuri, de aceea viteza procesorului scade. Regula ,,degetului mare are rolul de a dubla asociativitatea de la maparea direct la cea asociativ pe dou ci si de la cea asociativ pe dou ci la cea pe patru ci etc., avnd acelasi efect ca n cazul unui cache hit. Mrirea asociativittii la peste patru ci are un efect mai slab dect n cazul unui cache hit si este realizat, n general, pentru alte motive. Dac fiecare locatie din memoria principal poate fi depozitat n alte dou locatii din memoria cache, se pune ntrebarea care din cele dou va fi folosit. Cea mai simpl si cea mai folosit schem utilizeaz LSB-ul cmpului linie (index) al locatiei de memorie ca index pentru memoria cache si are dou intrri pentru fiecare linie. Avantajul acestei scheme este c etichetele stocate n cache nu trebuie Structura unui calculator 119 s includ acea parte a adreselor din memoria principal care sunt implicate n cmpul linie (index) al memoriei cache. Att timp ct etichetele cache reprezint doar ctiva biti, ocup spatiu putin, putnd fi citite si comparate rapid. Unul dintre avantajele maprii directe este acela c las loc speculatiilor rapide si simple. Atunci cnd o adres a fost calculat, i s-a atasat index cache unic, care ar putea contine datele. Noua intrare n cache poate fi citit, iar procesorul si continu lucrul cu acele date pe care le avea nainte de a termina procesul de verificare, dac adresa cerut se potriveste cu eticheta actual. Ideea ca procesorul s foloseasc date depozitate n cache nainte ca eticheta s se potriveasc complet poate fi aplicat si la cache-ul asociativ. O parte din etichet, numit cheie (hint), poate fi folosit pentru a alege una din adresele cerute, aflate posibil n harta cache. Aceste date pot fi folosite n paralel cu verificarea ntregii etichete. Tehnica hint lucreaz excelent cnd este folosit n contextul translatrii adreselor. Alte tehnici propun un cache oblic (skewed cache), unde indexul cii 0 este direct, dar indexul cii 1 este format cu o functie hash. O functie hash de calitate are proprietatea c adresele care intr n conflict cu maparea direct tind s nu mai aib conflicte cnd sunt mapate cu functia hash si este mai neplcut ca un program s sufere din cauza unui numr neasteptat de mare de conflicte. Pe de alt parte, exist latent n implementarea functiei hash. n plus, cnd trebuie ncrcat o nou linie si exclus una veche, ar putea deveni dificil s se determine care dintre liniile existente a fost ultima folosit, deoarece noua linie intr n conflict cu datele de la diferiti indecsi ai fiecrei ci. Metoda LRU (vezi paragraful 3.2.12.3) urmreste principiul vecinttii (cache nears) ntr-un cache non-oblic (non-skewed), mprtindu-l pe seturi. Asadar, asociativitatea complet are un avantaj major fat de asociativitatea pe seturi. 3.2.12.2. Eficiena i localizarea datelor n memoria cache O memorie cache este util numai dac anumite informatii sunt folosite frecvent si mult timp. Atunci, acele informatii merit s fie pstrate n memoria cache. Din fericire, s-a constatat experimental c acest lucru este adesea adevrat. Aceast observatie 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 observatii, dar se potrivesc destul de bine programelor, asa cum functioneaz acestea n calculatoarele actuale. Validitatea observatiilor permite folosirea de memorii cache. Acesta nu nseamn c nu exist programe care folosesc prost memoriile cache; dimpotriv, se poate scrie destul de usor un astfel de program (este o metod eficient de a ncetini calculatorul). Programele obisnuite ns nu se comport astfel. ARHITECTURA SISTEMELOR DE CALCUL 120 Eficiena unei memorii cache se msoar n procentajul de gsiri ale datelor, numit rat de succes, H (hit rate). Opusul acestei valori este procentajul de ratri, numit rat de esec, M (miss rate). Procentajele acestea se msoar rulnd numeroase programe si fcnd media. Relatia n aceste dou valori este: H = 1 M. (3.8) Dac timpul de citire din memoria cache este T H (hit time), iar timpul pierdut pn se rateaz este T M (miss time), atunci se poate msura timpul mediu de acces la memoria cache cu urmtoarea formul: T = T H H + T M M. (3.9) Se observ c timpul unei ratri (T M ) nu este neaprat egal cu timpul de citire din memoria lent, T l , 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 < T l . Parametrul H depinde de mrimea memoriei cache: pentru o memorie cache de dimensiunea memoriei lente (caz limit), toate datele pot fi tinute n memoria rapid si se va obtine H = 1. Pentru o memorie cache de dimensiune 0, H = 0, pentru c niciodat datele nu se gsesc n aceast memorie. Relatia ntre mrimea memoriei cache, a memoriei lente si parametrul H nu este o linie dreapt, ci creste rapid la nceput, asa cum se observ n figura 3.43. Din cauza aceasta, o memorie cache relativ redus ca mrime are o important mare ca eficient. Fig. 3.43. Performanta memoriei cache. Eficienta depinde si de raportul dintre T H si T M . n anumite cazuri, T M este de ordinul a 10 4 T H , deci chiar un parametru H de valoare redus poate nsemna mult. Exemplu. Procesorul Intel Xeon la frecventa de 3,06 GHz are o memorie cache L3 de 1 MB, cu magistrala de sistem la 533 MHz, si contribuie la cresterea nivelului de performant cu peste 15%. Structura unui calculator 121 3.2.12.3. Rennoirea coninutului memoriilor cache n ceea ce priveste rennoirea continutului memoriilor cache, pentru stergerea datelor curente si aducerea altora noi, sunt folosite mai multe metode: metoda RW (Random Write) sau de rescriere aleatorie: datele continute 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 iesit, adic, primele blocuri de date scrise n memorie sunt rescrise primele; metoda LRU (Least Recently Used): datele folosite cel mai putin recent; blocurile de date care, temporal, nu au fost folosite timp de cel mai lung interval sunt rescrise primele, cele accesate de curnd fiind pstrate; metoda LFU (Least Frequently Used): datele folosite cel mai putin frecvent; blocurile de date care, statistic, au fost folosite cel mai rar sunt rescrise primele, cele folosite mai des fiind pstrate. Alte metode sunt: politica circular (round robin), politica setului de lucru (working set), politica optim (optimal), politica ceasului (clock), politica celei de-a doua sanse (second chance) etc. Metoda cea mai folosit este LRU; de aceea, cel de-al 9-lea cip de memorie cache (TAG RAM) va juca si rol de contor al frecventei de apelare a datelor din 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. Dac datele solicitate nu se afl la acest nivel (cache miss), va merge mai departe cu cutarea n cache-ul extern si 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 este ns destul de mare. Totodat, magistrala memoriei care, n lipsa cache-ului, ar fi fost solicitat pentru operatii cu RAM-ul, este disponibilizat pentru alte procese. 3.2.12.4. Conectarea memoriei cache la microprocesor Memoria cache este conectat cu microprocesorul si memoria RAM n sistem serial sau paralel. Conectarea serial (look through) vezi figura 3.44 presupune ca dialogul microprocesorRAM s se desfsoare prin intermediul cache-ului. 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 memoriei RAM nu se mai efectueaz, iar magistrala memoriei rmne liber. Conectarea paralel (look aside) vezi figura 3.45 presupune ca microprocesorul s se adreseze, n paralel, att memoriei cache ct si memoriei RAM. n cazul n care ecoul din partea cache-ului este pozitiv, adresarea ctre RAM este abandonat. De aici rezult, fat de metoda anterioar, avantajul vitezei, evitndu-se cutarea secvential: nti n cache, apoi n RAM. Dezavantajul apare prin faptul c magistrala memoriei este tot timpul folosit si, astfel, nu mai este disponibil n momentele de scanare a memoriei altor accesri din partea perifericelor. Mai ales n modul multitasking, acest lucru se reflect n ntrzieri semnificative ale vitezei de executie a diferitelor sarcini. ARHITECTURA SISTEMELOR DE CALCUL 122 Fig. 3.44. Organigrama conectrii seriale (look through). Fig. 3.45. Organigrama conectrii paralele (look aside). 3.2.12.5. Depunerea n memorie a rezultatelor Indiferent de tipul functiei de mapare, fiecrui bloc din memoria cache i sunt asociatii doi biti de comand, numiti V si D. Bitul V este un bit de validare a blocului, V = 1 fiind o conditie necesar a obtinerii unui cache hit. Bitul V este util ndeosebi n sistemele multiprocesor, n vederea mentinerii coerentei memoriilor cache locale, datorit redundantei informationale. Mai precis, aici apare necesitatea citirii din cache-ul propriu a ultimei cpii modificate a datei respective. Cnd un procesor modific o copie local a unei date, toate blocurile care contin acea dat din cadrul celorlalte procesoare trebuie invalidate prin resetarea V = 0. Necesitatea invalidrii blocurilor (V = 0) apare chiar si n sistemele uniprocesor. Imediat dup resetarea sistemului, uzual, procesorul execut un program ncrctor rezident n memoria EPROM. Cum imediat dup initializarea sistemului continutul cache-ului este, practic, aleator, pentru a evita falsele situatii de cache hit, la citirea programului ncrctor din EPROM, se initializeaz bitii V cu zero. La prima ncrcare a unei date (instructiuni) n cache, bitul V aferent se va seta pe 1, validnd astfel situatia de cache hit. Structura unui calculator 123 Bitul D (dirty data) este pus pe 0 la ncrcarea initial a blocului n cache. La prima scriere a acelui bloc, bitul se pune pe 1. Evacuarea propriu-zis a blocului se face doar dac bitul D = 1. Practic, prin acest bit se minimizeaz evacurile de blocuri n memoria principal, pe baza principiului c un bloc trebuie evacuat numai dac a fost scris n cache. n acest sens, din punct de vedere al accesrilor de scriere de ctre procesor (depunerea n memorie a rezultatelor), exist trei posibilitti: metoda Write Through vezi figura 3.46, n care se utilizeaz traseul invers al citirii datelor, blocurile fiind depuse mai nti n memoria cache intern, apoi n cache-ul extern si n final n memoria RAM; Fig. 3.46. Schema metodei Write Through. metoda Write Back figura 3.47, n care scrierea se face n cache, n cazul n care adresa de memorie la care se face scrierea exist si 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 RAM; Fig. 3.47. Schema metodei Write Back. metoda Posted Write, prin care din memoria cache este rezervat o anumit portiune care va juca un rol de buffer si n care vor fi memorate blocuri de date pn cnd magistrala memoriei devine disponibil, moment n care buffer-ul si transfer continutul n RAM. n vederea mentinerii coerentei memoriilor cache, cu precdere n sistemele multiprocesor, exist dou posibilitti, n functie de procesul de scriere: Write I nvalidate, prin care CPU care scrie determin ca toate copiile din celelalte memorii cache s fie invalidate nainte ca ea s-si modifice blocul din cache-ul propriu; Write broadcast, prin care CPU care scrie pune data de scris pe magistrala comun, spre a fi actualizate toate copiile din celelalte cache-uri. Ambele strategii de mentinere a coerentei pot fi asociate cu oricare dintre metodele de scriere, dar de cele mai multe ori se prefer Write Back cu invalidare. ARHITECTURA SISTEMELOR DE CALCUL 124 3.2.12.6. Cache hiti cache miss ntr-o memorie cache, apar posibile patru procese distincte, ca n tabelul 3.4. Tabelul 3.4 Tipuri de acces n memoria cache tip acces situaie n cache aciune n cache citire miss evacuarea blocului si ncrcarea unui bloc nou citire hit compararea marcajelor/etichetelor (tag) scriere miss evacuarea blocului, ncrcarea unui bloc nou si scrierea datei n bloc scriere hit scrierea datei n blocul din cache (Write Back) Asadar, memoriile cache mbunttesc performanta, ndeosebi pe citirile cu cache hit, iar, n cazul utilizrii scrierii tip Write Back, si pe scrierile cu cache hit. mbunttirea accesului la memorie pe citirile CPU este normal, avnd n vedere c acestea sunt mult mai frecvente dect scrierile (orice instructiune implic cel putin o citire din memorie pentru ncrcarea sa; statistic, cca. 75 % din accesrile la memorie sunt citiri, unii autori sustinnd c raportul real citiri/scrieri este de 9/1). Cache miss se refer la ncercarea nereusit de a citi sau scrie o parte din date n memoria cache, ceea ce rezult n scrierea/citirea n memoria principal cu latente mai mari. Explicatiile pentru cauzele situatiilor de cache miss, conform literaturii de specialitate, sunt de trei tipuri: la citirea instructiunilor; la citirea datelor; la scrierea datelor. Un cache miss la citirea instructiunilor cauzeaz, n general, ntrzieri, deoarece procesorul sau ultimul fir de executie trebuie s astepte pn cnd instructiunile sunt aduse din memorie. Un cache miss la citirea datelor cauzeaz ntrzieri mai mici, deoarece instructiunile nu depind de citirea cache-ului, putnd fi evitate, pn cnd datele sunt preluate din memoria principal si instructiunile care depind de acestea si continu executia. Un cache miss la scrierea datelor cauzeaz ntrzieri mici, deoarece scrierea poate fi pus ntr-o coad de asteptare si sunt cteva limitri n executia instructiunilor. Procesul poate continua pn cnd coada este plin. Secvente de referinte din memorie trecute prin benchmark-uri sunt salvate ca urme de adrese. Ulterior, analizele simulate au artat posibile diferente ntre lungimile urmelor de adrese, n functie de designul memoriei cache. Cercettorul Mark Hill a separat situatiile de cache miss n trei categorii: Structura unui calculator 125 Ratri obligatorii (compulsory misses) sunt acele pierderi cauzate de primele referiri la date. Mrimea si asociativitatea memoriei cache nu fac nicio diferent ntre numrul de ratri obligatorii. Aducerea timpurile a operanzilor din memorie nu este util n acest caz. Ratri de capacitate (capacity misses) sunt acele pierderi care privesc asociativitatea sau mrimea blocurilor, fcute numai de blocurile finite din cache. Curba ratei pentru ratrile de capacitate n functie de capacitatea memoriei cache d msura localizrii temporale a unui sir temporar de referinte. Informatiile care indic dac memoria cache este plin, goal sau aproape plin nu sunt utile n acest caz. Observaie. Cache-ul procesorului are aproape mereu fiecare linie umplut cu o copie a unei linii din memoria principal si de fiecare dat alocarea unei noi linii necesit stergerea uneia vechi. Ratrile de conflict (conflict misses) sunt acele pierderi care ar putea fi evitate dac cache-ul n-ar elimina o intrare mai trziu. Ratrile de conflict pot fi puse ntr-o hart de ratri (miss map), care este inevitabil si care ofer un detaliu particular asociativittii si politicii de nlocuire. Fig. 3.48. Rata de pierderi (miss rate) n functie de capacitatea memoriei cache. Graficul din figura 3.48 ilustreaz performantele memoriei cache, obtinute pe un benchmark pentru ntregi din SPEC2000. Aceste benchmark-uri reprezint gradul de ncrcare al unei statii de lucru. Rata de pierderi n cazul asociativittii este sensibil superioar celei pentru mapare direct. Diferentele obtinute se explic prin utilizarea algoritmului de nlocuire LRU. Se observ, de asemenea, c pentru memorii cache de dimansiune foarte mare, decalajele devin nesemnificative. 3.2.12.7. Tipuri de celule cache n functie de modul de citire a cuvintelor, celulele memoriei cache pot fi: asincrone, la care operatia de citire a unui cuvnt se face n dou etape: se depune adresa, apoi se transfer datele, pentru fiecare cuvnt fiind necesar acelasi ritual. Aceste cipuri se livreaz sub form DIP. ARHITECTURA SISTEMELOR DE CALCUL 126 sincrone, pentru care accesul se face n mod burst (se depune o singur adres, iar transferul se face pentru patru cuvinte simultan, primul cuvnt cu adresa indicat de controlerul de cache si urmtoarele trei). Timpul de acces scade destul de mult, ajungnd pn la 9 ns. Cipurile sincrone sunt implementate direct prin lipire pe placa de baz a sistemului. pipe-line burst cache, care este prevzut la iesire cu registre speciale, n care datele citite sunt stocate temporar. Astfel, este posibil o nou adresare, practic, n acelasi timp cu preluarea datelor de ctre microprocesor din registrele de stocare (latch). Timpul de acces scade foarte mult (chiar la 4 ns), fapt care duce la performante deosebite pentru sistemele dotate cu astfel de celule de memorie cache. 3.2.12.8. Memorii cache specializate Accesul la memoriile din procesor cu tehnica pipeline, cu stagii multiple ale pipeline-ului, presupune: aducerea instructiunilor din memorie (instruction fetch); translatarea adresei virtuale n adres fizic (Translation Look-aside Buffer); aducerea datelor din memorie (data fetch) Designul natural tinde s utilizeze diferite adrese fizice din cache pentru fiecare dintre aceste stagii, astfel nct nicio resurs fizic nu trebuie programat s serveasc simultan dou stagii diferite din pipeline. Astfel de pipeline-uri se termin cu cel putin trei memorii cache separate (pentru instructiuni, TLB si date), fiecare fiind specializat pe un anumit rol. Dac pipeline-urile au instructiunile si datele separate n memoria cache, se poate spune c este emulat o arhitectur de tip Harvard. Initial, aceast faz s-a regsit la masinile cu instructiuni si date separate n memorie. Dar cele mai multe dintre calculatoarele moderne sunt concepute n arhitectur von Neumann. Cache victim (victim cache) Cache-ul victim este o memorie cache folosit pentru a retine blocurile sterse din cache-ul procesorului, datorate unui conflict sau unei ratri. Cache-ul victim se afl ntre cache-ul principal si zona de reumplere, detinnd numai blocuri care au fost eliminate din cauza unui cache miss. Aceast tehnic este utilizat pentru a reduce penalizrile suportate de memoria cache la o ratare. Exemple. Cache-ul victim original de pe HP PA 7200 a fost mic si complet asociativ. Mai trziu, procesoare precum AMD K7 si K8 au folosit mult memorie cache secundar pe post de cache victim, pentru a evita duplicatele de stocare. Cache de urmrire (trace cache) Unul dintre exemplele cele mai extreme de specializare a memoriei cache este cache-ul de urmrire, gsit n microprocesoarele Intel Pentium 4. Trace cache este un mecanism destinat cresterii gradului de aducere din memorie a instructiunilor (instruction fetch) si lrgimii de band, precum si reducerii consumului de putere (n cazul lui P4), prin stocarea urmelor (traces) instructiunilor care au fost aduse din memorie si decodate. Structura unui calculator 127 Un trace cache stocheaz instructiuni chiar si dup ce acestea au fost depozitate sau retrase. n general, instructiunile sunt adugate n trace cache n grupuri care reprezint blocuri individuale de baz sau urme dinamice (dynamic traces). Un bloc de baz const dintr-un grup de instructiuni neramificate, terminate cu ramificatii. O urm dinamic include numai instructiuni ale cror rezultate sunt utilizate efectiv si elimin urmtoarele instructiuni luate ca ramificatii (att timp ct acestea nu sunt executate), o urm dinamic putnd fi o concatenare de mai multe blocuri de baz. Acesta permite unittii de fetch a unui procesor s aduc din memorie cteva blocuri de baz fr s se preocupe de ramificatiile aflate n executie. Liniile de urmrire sunt stocate n cache pe baza unui numrtor de program aflat n prima instructiune a urmei. Aceasta permite depozitarea pentru diferite ci a urmelor care ncep de la aceeasi adres, fiecare reprezentnd rezultate diferite ale ramificatiei. n etapa de aducere din memorie (fetch) a unui pipeline, numrtorul de program curent, mpreun cu un set de predictii ale instructiunilor ramificate (branch prediction), este pus n memoria cache, mai exact, n trace cache, pentru o situatie de cache hit. Dac apare un cache miss, ncepe constructia unei noi urme. Cache-ul victim este folosit n procesorul P4, pentru a stoca micro-operatii deja decodate sau translatii ale instructiunilor de pe sisteme 86, astfel nct, atunci cnd va fi necesar o instructiune, aceasta nu va mai trebui decodat din nou. Cache multinivel (multilevel cache) O alt problem este schimbul ntre latenta memoriei cache si rata de succes (cache hit). Memoriile cache mari au o rat de succes mai bun, dar latente mari. Pentru a rezolva aceast problem, n majoritatea calculatoarelor se folosesc mai multe nivele de cache, cu blocuri de cache mai mici si rapide, grupate ntr-unul mai mare si lent. Un cache multinivel opereaz cutnd prima dat n nivelul cel mai de jos (L1) si, n cazul unui cache hit, viteza de procesare creste. Dac apare cache miss n module cache mici, atunci se caut n cache-ul cel mare (L2) si, mai departe, n memoria principal. Diferenta de latent ntre memoria principal si memoria cache a devenit mai important. Unele memorii cache au nceput s utilizeze mai mult de 3 nivele pe un chip. Exemplu. n 2003, procesorul Itanium 2 a nceput s fie livrat cu 6 MB de cache L3 pe cip. Sistemele IBM Power 4 aveau 256 MB de cache L3 pe cip, partajat ntre mai multe procesoare. Procesorul AMD Phenom foloseste 2 MB de cache L2 n schimbul celui L3. Scratch Pad Folosirea eficient a spatiului de memorie integrat n cipul procesorului (on- chip) este extrem de important n aplicatiile moderne ale sistemelor dedicate (embedded systems), bazate pe nucleele procesoarelor. n completarea memoriei cache de date, care realizeaz interfata cu memoria mai lent din afara cipului procesorului (off-chip), n diverse aplicatii se foloseste adesea o memorie SRAM rapid, de tip on-chip, numit memorie scratch pad (vezi schema din figura 2.29) ARHITECTURA SISTEMELOR DE CALCUL 128 Cache integrat i cache divizat Memoria cache multinivel introduce un nou design al deciziilor. Exemple. n unele procesoare, toate datele din cache-ul L1 trebuie s se gseasc undeva n cache-ul L2. Aceste memorii sunt numite cache strict inclusiv. Alte procesoare (cum ar fi AMD Athlon) au un cache exclusiv: datele sunt garantate a fi n cel mult unul dintre nivelele L1 sau L2, nu n amndou. Totodat, alte procesoare, precum Intel PII, PIII si P4, nu solicit ca datele din cache-ul L1 s se gseasc si n L2, desi ar putea face acest lucru. Nu sunt acceptate nume universale pentru aceast politic intermediar, desi termenul inclusiv a fost deja folosit. Avantajul cache-ului exclusiv este acela c depoziteaz mai multe date. Acest avantaj este cu att mai mare, cu ct cache-ul L1 exclusiv este compatibil cu L2, caz n care se diminueaz memoria L2, aceasta fiind mai mare dect L1. Cnd apare o situatie de cache miss n L1 si cache hit n L2 la un acces, linia din cache-ul L2 pe care se afl blocul cu hit este schimbat cu o linie din L1. Acest schimb implic ceva mai mult munc dect copierea liniei din L2 n L1, ceea ce o face doar cache-ul inclusiv. Un avantaj al cache-ului strict inclusiv este c atunci cnd dispozitivele externe sau alte procesoare ntr-un sistem multiprocesor doresc s stearg o linie cache, nu au dect s caute n L2. n memoria cache, ierarhiile care nu au pus n aplicare mecanismele includerii trebuie s verifice si cache-ul L1. n schimb, exist o corelatie ntre asociativitatea cache-ului L1 si cea a cache-ului L2: dac cache-ul L2 nu are cel putin attea ci ca L1, asociativitatea cache-ului L1 este restrictionat. Cache-ul strict inclusiv foloseste linii de dimensiuni mari n cache, ceea ce reduce mrimea etichetelor din cache-ul secundar (cache-ul exclusiv necesit ca ambele cache-uri s aib linii de aceeasi dimensiune, pentru a le putea schimba cnd n L1 apare cache miss si n L2, cache hit). Dac cache-ul secundar este cu un ordin de mrime mai mare si datele sunt tot cu un ordin de mrime mai mari dect etichetele, aceast zon poate fi etichetat ca zon de salvare si poate fi incrementat comparabil pn la dimensiunile zonei de care au nevoie L1 si L2 s depoziteze date. Dup cum s-a mai spus, calculatoarele puternice au un alt cache ntre L2 si memoria principal, numit cache de nivel trei (L3). Acest cache poate fi implementat pe un chip separat de procesor si, ncepnd din 2004, poate varia ca mrime de la 2 la 250 MB. Beneficiile unui chip L3 depind de cererea de acces a aplicatiilor. Statiile de lucru high-end si serverele au memoria de tip L3 implementat n procesor, ceea ce duce la mrirea vitezei si reducerea costurilor. Exemplu. Intel Xeon MP, produs numit Tulsa, are un cache L3 ncorporat de 16 MB, partajat ntre cele dou nuclee ale procesorului. n cele din urm, la cellalt capt al ierarhiei (n cazul statiilor de lucru low- end), registrul de fisiere al procesorului poate fi considerat drept cel mai mic si cel mai rapid cache din sistem, cu caracteristica de a fi programat software de un compilator, ca si cum ar aloca registre pentru a pstra valori primite din memoria principal. Structura unui calculator 129 Studiu de caz: memoria cache la procesorul AMD Athlon 64 (K8) Pentru a exemplifica specializrile cache-ului multinivel, integrat si divizat, se foloseste ierarhia din nucleul K8 al procesorului AMD Athlon 64 (vezi figura 3.49). Fig. 3.49. Structura nucleului K8 al procesorului AMD Athlon 64. Nucleul K8 are patru memorii cache: una pentru instructiuni, una pentru blocul TLB, una pentru datele TLB-ului si una pentru date. Fiecare dintre aceste cache-uri este specializat: 1. Cache-ul pentru instructiuni pstreaz cpii ale celor 64 de linii ale memoriei si aduce din memorie 16 B la fiecare ciclu. Fiecare octet din acest cache este depozitat n 10 biti n loc de 8, cu un marcaj suplimentar de bit al limitelor instructiunilor (acesta este un exemplu de precodare). Cache-ul are doar protectie de paritate, mai degrab dect ECC, deoarece informatia de paritate ocup spatiu mai putin, iar datele avariate pot fi nlocuite de date proaspete aduse din memorie. 2. Instructiunile blocului TLB pstreaz cpii ale intrrilor din tabelul paginilor (PTE). Fiecare ciclu de instructiuni adus din memorie are propria sa adres virtual, translatat cu ajutorul TLB-ului ntr-o adres fizic. Fiecare intrare are 4 sau 8 octeti n memorie, iar fiecare TLB este mprtit n dou sectiuni: una pentru a pstra PTE-urile care ocup 4 KB din hart si alta pentru a pstra PTE- urile care ocup 2 sau 4 MB din hart. mprtirea permite o potrivire a circuitului n fiecare sectiune n mod complet asociativ. Sistemul de operare mapeaz sectiuni diferite ale spatiului de adrese virtuale cu diferite mrimi ale PTE-urilor. 3. Datele TLB-ului au dou cpii, care contin intrri identice. Cele dou cpii permit accesul la dou date per ciclu, pentru a translata adresele virtuale n adrese fizice. Ca si instructiunile TLB-ului, si aceasta este mprtit n dou tipuri de intrri. 4. Datele cache-ului pstreaz cpii ale celor 64 de linii ale memoriei. Este mprtit n 8 bancuri (fiecare depozitnd cte 8 KB de date) si poate aduce din memorie doi octeti de date pe ciclu. ARHITECTURA SISTEMELOR DE CALCUL 130 Nucleul K8 are, de asemenea, un cache multinivel. Exist instructiuni de nivel 2 si date ale TLB-ului care depoziteaz numai PTE-uri mapate pe 4 KB. Ambele cache-uri, de instructiuni si de date, pot fi umplute din cache-ul L2. Acest cache este exclusiv, att pentru instructiunile ct si pentru datele din L1, ceea ce nseamn c orice linie de 1 octet se poate gsi numai ntr-o singur instructiune dat cache-ului L1 sau n cache-ul L2. Cu toate acestea, este posibil ca o linie de date n cache s aib un PTE care este ntr-unul din TLB-uri sistemul de operare este responsabil cu pstrarea TLB-ului coerent. 3.2.12.9. Concluzii Se poate spune c introducerea n practic a conceptului de memorie cache ca memorie tampon a adus o serie de mbunttiri sistemelor de calcul, mrind foarte mult viteza de procesare, desigur n functie si de dimensiunea memoriei cache instalate n sistem. Totusi, se poate pune si aici o ntrebare: pn unde poate merge memoria cache ca dimensiune si ct de folositoare este mrimea acesteia? n ultimul timp se construiesc sisteme care pot avea pe placa de baz pn la ctiva megaocteti de cache extern. Dar o supradimensionare a memoriei cache externe fr a se tine seama de scopul n care va fi folosit calculatorul nu va duce dect la ncrcarea notei de plat (memoria cache, fiind o memorie static, este cu mult mai scump dect RAM-ul), deoarece avantajele obtinute vor fi insesizabile. Datorit faptului c procesorul execut programele pe segmente, bucle de program de maximum 64 KB, un astfel de segment poate fi cuprins n primii 64 KB ai memoriei cache. Deci, un spor de vitez de circa 9095% (din totalul sporului adus de o memorie cache montat) se va obtine folosind doar 64 KB de memorie cache. Ridicnd dimensiunea cache-ului la 256 KB se va obtine o crestere doar de 23 %. Se consider c o memorie cache de 256 KB este suficient pentru un procesor Pentium, n timp ce pentru Pentium Pro este nevoie de 512 KB cache n conditii de lucru deosebite, iar pentru procesoarele actuale valorile de ordinul MB au devenit deja comune. Problema care se pune este atunci cnd se lucreaz n mod multitasking sau n retea, si unde cei 64 KB cache de date ai unei sarcini sunt nlocuiti de cei 64 KB ai altei sarcini, la viteze foarte mari. n acest caz, este evident c procesorul va avea nevoie de mai multe depozite de 64 KB, pentru fiecare sarcin cel putin dou, astfel nct s creasc probabilitatea ca procesorul s-si gseasc datele necesare ntr-unul din aceste depozite cache, fr s fie nevoit s mai acceseze RAM-ul. De aceea, n cazul n care calculatorul va juca rol de file server sau va fi folosit n activitti multitasking, este necesar mult mai mult memorie cache. 3.2.4. Memoria ROM Un alt tip de memorie folosit n constructia calculatoarelor si a unor echipamente periferice este memoria ROM (Read Only Memory). Spre deosebire de memoria RAM, aceast memorie, odat scris prin procedee industriale, nu mai poate fi stears prin metode aflate la ndemna utilizatorului; n plus, la decuplarea de sub tensiune a calculatorului, informatiile din ROM rmn intacte. Structura unui calculator 131 Stergerea anumitor memorii ROM, de constructie special (PROM, EPROM, EEPROM) se poate face prin lansarea unui spot de radiatii ultraviolete asupra ferestrei de cuart cu care este prevzut cipul de memorie. Scrierea memoriilor ROM presupune un atac distructiv si ireversibil asupra diodelor si tranzistoarelor, prin arderea jonctiunilor interne. Rezultatul acestei actiuni de ardere se observ prin modificarea continutului informatiei binare. n prezent, exist plci de baz dotate cu astfel de circuite care permit revitalizarea rutinelor BIOS prin copierea n ROM, cu ajutorul unui soft specializat, a unor versiuni mai noi si mai performante. Deci, ca o concluzie de baz, datele scrise n memoria ROM au un caracter permanent si au o important vital n initializarea si functionarea oricrui sistem de calcul. Memoria ROM are aspectul unui circuit integrat cu dou rnduri de pini (DIP) si este montat de placa de baz a calculatorului prin intermediul unui soclu. Intern, memoriile de acest tip sunt realizate din retele rectangulare de microtranzistoare sau microdiode. Accesarea memoriei ROM se face la fel ca la RAM. O celul de memorie este alctuit dintr-un circuit basculant bistabil (CBB). Pentru a realiza mai multe celule, se aranjeaz CBB-urile sub forma unui tablou cu un numr de coloane si rnduri. n general numrul rndurilor este egal cu cel al coloanelor. Fiecare celul se afl la intersectia unei anumite linii X si a unei anumite coloane Y (vezi figura 3.50). Fig. 3.50. Organizarea memoriei RAM. Organizarea memoriei sub form de matrice permite reducerea numrului intrrilor de adrese la un numr mai mic dect numrul liniilor si al coloanelor aferente informatiei stocate. Numrul terminalelor de adresare poate fi micsorat prin adresarea n cod binar si utilizarea decodificatoarele binar-zecimale. Acest mod de adresare n cod binar este utilizat si n cazul memoriei RAM. Exemplu. Fie o memorie ROM care contine 8 cuvinte de cte 4 biti (vezi figura 3.51.a). O combinatie binar care se aplic pe cele 3 intrri de adres (A 2 , A 1 , A 0 ) selecteaz unul din cele 8 cuvinte, iar cei 4 biti de date ai cuvntului selectat sunt disponibili la iesiri (O 0 , O 1 , O 2 , O 3 ), cu conditia ca semnalul de validare a iesirii, OE (Output Enable) s fie activ (activarea se face pe 0 logic). ARHITECTURA SISTEMELOR DE CALCUL 132 Dac OE = 1, iesirile memoriei sunt n starea de impedant nalt (high Z). Tabelul de adevr din figura 3.51.b este un exemplu care arat o posibilitate de implementare a 4 functii binare de cte 3 variabile. Fig. 3.51.a. Memorie ROM cu 8 cuvinte de 4 biti; b. Tabelul de adevr asociat. Structura intern a unui cip de memorie ROM organizat pe 1024 cuvinte a cte 8 biti, adic 1 K 8, este prezentat n figura 3.52. Matricea de memorie se construieste sub o form ct mai apropiat de cea a unui ptrat. Liniile matricei sunt selectate cu ajutorul decodificatorului cu 7 intrri de selectie, iar coloanele, cu ajutorul celor 8 multiplexoare a cte 3 intrri de selectie. Intrarea suplimentar, CS (Chip Select), activ pe 0 logic, pregteste cipul de memorie n vederea unei operatii de citire a datelor. Prin dezactivare, actioneaz asupra circuitelor din structur n scopul reducerii consumului. Schema contine si aspectul unui element din matricea de memorie, dac aceasta este realizat n tehnologia MOS. Fig. 3.52. Structura intern a unui cip de memorie ROM cu 1024 cuvinte de 8 biti. Pentru realizarea memoriei ROM, sunt utilizate tehnologii bipolare (TTL, TTL-Schottky, ECL), tehnologii metal-oxid-semiconductor (MOS) cu canal N (N- MOS), cu canal P (P-MOS), cu simetrie complementar (CMOS), cu canal negativ (NMOS) sau tehnologii cu logic integrat de injectie (I 2 L). Structura unui calculator 133 Ca urmare, performantele poart amprenta caracteristicilor tehnologice: bipolar vitez de procesare mare, putere disipat ridicat, densitate de integrare sczut; MOS densitate de integrare ridicat, vitez de procesare mai sczut dect la bipolar, putere disipat relativ sczut; CMOS putere disipat foarte sczut si vitez de procesare mare. n alegerea unui circuit integrat de memorie, trebuie s se aib n vedere: tensiunea de alimentare; capacitatea; modul de organizare (lungimea cuvntului, semnalele de control si adres); puterea disipat (n regim de functionare sau n regim de rezerv stand-by); timpul de acces; timpul de ciclu memorie; disponibilitatea; pretul de cost. Orice sistem de calcul foloseste o memorie ROM care contine urmtoarele sisteme software: 1. Sistemul cu program starter sau ROM-ul de start, adic microcodul cu rol de asistare si control al pornirii sistemului. Aici se afl nscrise mici rutine care realizeaz urmtoarele actiuni: execut testele de functionalitate ale tuturor componentelor atasate hardware; initializeaz toate componentele atasate calculatorului; initializeaz tabela vectorilor de ntrerupere; verific alte extensii sau periferice atasate sistemului de calcul; ncarc n memorie, de pe disc, sistemul de operare. Testele de verificare, care formeaz asa-numitul POST (Power On Self Test), dureaz foarte putin pentru verificarea plcii de baz, a controlerului de disc, a plcii video, a unittilor de disc, si ceva mai mult pentru memoria RAM, care este verificat kilooctet cu kilooctet. Automat, n cazul n care se detecteaz anumite erori si disfunctii pentru oricare din componentele hardware, se va lansa un mesaj de avertizare. Sistemul de operare, odat ncrcat n RAM, va prelua conducerea si gestiunea sistemului de calcul. 2. ROM-BIOS (Basic Input Output System) este o parte a memoriei ROM care va asigura toate procesele si serviciile necesare activittii calculatorului, precum si gestiunea perifericelor, prin intermediul rutinelor continute. BIOS-ul continut de ROM este elementul de legtur sau interfata direct ntre partea hardware si cea software, prin care se realizeaz hard cererile soft ale programelor, folosind ntreruperile cu serviciile aferente. Practic, orice program acceseaz partea hardware prin intermediul BIOS. Rutinele continute vor activa canalele de comunicatie dintre componentele sistemului si un sistem de operare sub care lucreaz acesta. 3. ROM-Basic este un program optional, care contine nucleul limbajului Basic. 4. Extensiile ROM reprezint un sistem care contine anumite rutine necesare gestiunii dispozitivelor atasate. ARHITECTURA SISTEMELOR DE CALCUL 134 ntreaga memorie ROM este activ pe tot parcursul lucrului cu calculatorul. nc de la pornirea si initializarea calculatorului (la ncrcarea sistemului de operare), n situatiile apsrii tastei Delete, BIOS-ul va furniza o interfat de dialog cu utilizatorul, prin care va oferi o serie de informatii privind starea functional si structura sistemului de calcul. Prin intermediul unor meniuri, se poate modifica o serie de parametri pentru a se obtine un mod de lucru optim si rapid. Fig. 3.53. Modul de organizare al memoriei. Structura unui calculator 135 Ultimii 128 KB rezervati din zona de memorie superioar (vezi figura 3.53) sunt utilizati de componenta BIOS de pe placa de baz. Componenta BIOS este, de obicei, memorat n cipuri de memorie ROM. Programele din componenta ROM BIOS controleaz sistemul pe durata pornirii (pn la preluarea controlului de ctre sistemul de operare) si rmn ca driver-e pentru subsistemele hard pe durata functionrii normale a sistemului. Deoarece aceste programe trebuie s fie disponibile imediat, la pornirea sistemului ele nu pot fi ncrcate de pe discuri (sau alte dispozitive de memorare). Principalele funcii ale programelor de pe placa de baz sunt: autotestarea la punerea sub tensiune (POST); rutina de ncrcare a sistemului de operare (bootstrap loader) initiaz cutarea sistemului de operare pe discurile disponibile; sistemul de baz pentru operatii de intrare-iesire (BIOS) este interfata soft sau programul principal de control pentru toate componentele hard ale sistemului. Acest sistem contine un prim meniu Standard CMOS Setup , unde se stabilesc tipul si parametrii unittilor de disc, tastaturii sau plcii video, ora si data curent a sistemului. Un al doilea meniu Advanced CMOS Setup cuprinde o serie de parametri reglabili pentru a obtine maximul de performant. n acest meniu, se pot activa sau dezactiva memoria cache intern si extern, se poate stabili o parol de intrare n sistem, ordinea de cutare a sistemului de operare pe disc etc. Al treilea meniu Advanced Chip-set Setup contine reglaje foarte fine de optimizare, cum ar fi configurarea magistralelor sau a strilor de asteptare ale microprocesorului. Datorit usurintei cu care se poate accesa BIOS-ul, parametrii care definesc functionarea general a calculatorului pot fi modificati foarte simplu, dar configurarea arbitrar a parametrilor BIOS poate produce dereglri ale sistemului. Tot aici se poate mentiona unitatea special MMU (Memory Management Unit), care se ocup cu transferul continutului memoriei ROM (cel de pe placa de baz: ROM-ul de sistem, ROM-ul video, segmentele ROM ale unor adaptoare sau extensii) n memoria de lucru RAM. Este un dispozitiv integrat n microprocesor. Aceast posibilitate de transfer a rutinelor si datelor ROM n RAM ridic foarte mult performantele sistemului, deoarece timpul de acces al memoriei ROM este foarte mare (150200 ns) si operatiile care implic folosirea continutului ROM se desfsoar lent. Activarea optiunilor de transfer (shadowing) se face din meniul BIOS Features Setup din CMOS, prin activarea punctelor de Shadow definite de adrese specificate (System Shadow, Video Shadow etc.). MMU va dezactiva automat toate cartusele ROM al cror continut a fost citit si scris apoi n RAM, iar n continuare va marca aceste zone de memorie RAM n care s-a transferat continutul ROM, protejndu-le. Legtura memoriei ROM cu exteriorul se face prin magistrala de adrese, corespunztoare pinilor notati cu A 0 A m (pentru detectarea locatiei care contine informatia cerut) si magistrala de date, pentru transferul datelor, prin pinii notati cu D 0 A n , n functie de numrul de pini al cipului respectiv.