Vous êtes sur la page 1sur 70

3.

STRUCTURA UNUI CALCULATOR


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.

Vous aimerez peut-être aussi