Sunteți pe pagina 1din 262

1.

INTRODUCERE

Lucrarea de fa trateaz aspecte func ionale, constructive i rela ionale ale


blocurilor unui sistem de calcul numeric. Aplica iile derulate pe calculatoare sunt:
prelucr rile de date;
prelucr rile de informa ii;
prelucr rile de cuno tin e;
prelucr rile inteligente (inteligen a artificial ).

Fig. 1.1. Structura piramidal a tipurilor de prelucr ri.

Spa iul datelor. Materialul prelucrat la baza piramidei este considerat un spa iu
de date din care fac parte numere reprezentate n diverse formate. Datele prelucrate
sunt considerate mutual independente n spa iul lor. Spa iul datelor este cel mai mare
spa iu al obiectelor prelucrate cu sistemul de calcul, incluznd caractere, simboluri
i/sau reprezent ri multidimensionale ale acestora, numere n diverse formate.
Spa iul informa iilor. Termenul de informa ie reprezint o colec ie de date
legate ntre ele printr-o anumit rela ie sau structur sintactic . El se prezint ca un
subspa iu al spa iului de date. Prin sintax se n elege un set de reguli care
guverneaz alc tuirea propozi iilor dintr-un limbaj.
Spa iul cuno tin elor. Formeaz un subspa iu n cadrul spa iului informa iilor.
Informa iile sunt legate ntre ele printr-o structur semantic . Semantica reprezint
un set de reguli care extrag n elesul propozi iilor dintr-un limbaj.
Spa iul prelucr rilor de tip inteligen artificial . Lucreaz cu baze de
cuno tin e, reguli de inferen (ra ionament) sau cu alte mijloace specifice
domeniului de inteligen artificial . Calculatoarele de ast zi au devenit suficient
de rapide. Cu toate acestea, nici un calculator actual nu este un sistem inteligent
care gnde te independent.

10

ARHITECTURA SISTEMELOR DE CALCUL

Un calculator este o ma in capabil de a rezolva probleme aplicnd


instruc iuni definite n prealabil. Circuitele electronice ale fiec rui calculator nu pot
recunoa te i executa direct dect un num r limitat de instruc iuni. Ansamblul de
instruc iuni executate direct de un calculator formeaz un limbaj care permite
oamenilor s comunice cu calculatorul. Este ceea ce se nume te limbajul ma in .
Problema care se pune n acest caz este c limbajele ma in sunt att de primitive
nct este extrem de greoi a le utiliza. Sunt dou lucruri de rezolvat n privin a
acestei probleme, ambele viznd construirea unui nou set de instruc iuni mai
practic de utilizat dect limbajul ma in . n ansamblu, aceste noi instruc iuni
formeaz un nou limbaj care va fi numit L2, n timp ce ansamblul instruc iunilor
corespunz toare limbajului ma in formeaz nivelul L1.
Prima sarcin de executat a unui program scris n limbajul L2 este de a
nlocui fiecare instruc iune a programului cu instruc iunile corespunz toare
limbajului L1 care i sunt echivalente. Calculatorul va executa deci noul program n
limbajul L1 i nu vechiul program care a fost scris n limbajul L2. Se poate spune
are loc o conversie de limbaj, aceast tehnic numindu-se traducere.
Al doilea lucru este de a scrie un program n limbajul L1 capabil, dup
examinarea fiec rei instruc iuni a programului din L2, s execute direct secven a de
instruc iuni n limbajul L1 echivalent. Aceast tehnic , cu ajutorul c reia nu mai
este nevoie s se genereze un program echivalent n L1 care va examina i executa
fiecare instruc iune din L2, poart denumirea de interpretare.
Traducerea i interpretarea se aseam
mult. n fiecare caz, toate
instruc iunile n L2 sunt convertite n final ntr-o suit echivalent de instruc iuni
corespunz toare lui L1. Dar trebuie notat c n fiecare caz al traducerii, programul
scris n L2 este mai nti convertit ntr-un program scris n L1; apoi programul n
L2 dispare i programul n L1 va fi cel executat. n replic , interpretarea const n
analizarea i apoi executarea imediat a fiec rei instruc iuni din limbajul L2.
Aceste dou metode sunt foarte utilizate n propor ii aproximativ identice.
Pentru a simplifica lucrurile, este mai u or de imaginat existen a unui
calculator virtual, al c rui limbaj ma in este L2. Dac se poate construi aceast
ma in la un pre rezonabil nu va mai fi nevoie de limbajul L1 i nici de o ma in
capabil s execute acest limbaj. Utilizatorii vor scrie tot mai simplu programele
lor n limbajul L2 i calculatorul va executa direct aceste programe.

1.1. Limbaje i ma ini virtuale


Limbajul i ma ina virtual sunt ntr-o rela ie foarte limitat . Orice ma in prin
limbajul s u formeaz un ansamblu de instruc iuni de baz pe care le poate executa. Se
poate spune deci c o ma in define te un limbaj. Reciproc, un limbaj define te o
ma in i, mai precis, un limbaj define te o ma in care poate executa toate programele
scrise n acel limbaj. Binen eles, ma ina definit printr-un limbaj oarecare poate fi
extraordinar de complex i cu un cost prohibitiv. Dar, cu toate acestea, ea poate exista.

Introducere

11

Un calculator alc tuit din n nivele poate fi v zut ca n ma ini virtuale distincte,
fiecare ma in virtual avnd propriul s u limbaj. Programele scrise n limbajele L2,
L3, , Ln trebuie s fie interpretate de un interpretor avnd un nivel mai mic sau s
fie traduse ntr-un limbaj inferior. Programatorul care are programele scrise pentru o
ma in virtual de nivelul n nu este interesat de compilatoare i nici de
interpretoarele aflate la un nivel inferior. Pentru acesta nu este interesant de tiut n
acest caz dac programele sunt traduse ntr-un limbaj cunoscut de calculator sau dac
ele sunt executate direct de c tre circuitele aflate la nivelul fizic. n ambele cazuri se
va ajunge la acela i rezultat: programele sunt executate, indiferent de metod .

1.2. Calculatoarele actuale calculatoare multinivel


Cea mai mare parte a calculatoarelor actuale au mai mult de dou nivele.
Predomin foarte mult calculatoarele care au curent 6 nivele. La primul nivel
nivelul 0 se afl logica cablat .

Fig. 1.2. Prezentarea nivelelor unui calculator.

12

ARHITECTURA SISTEMELOR DE CALCUL

Nivelul 0, primul nivel care intr n alc tuirea unui calculator, poart
denumirea de nivel fizic. Obiectele utilizate la acest nivel sunt por i, care prin
defini ie pot fi privite ca ni te componente logice interconectate ntre ele. Fiecare
poart dispune de una sau mai multe intr ri logice i ntoarce ca rezultat o func ie
simpl ob inut conform semnifica iei de la intrare (de exemplu I, SAU, NU). O
poart este realizat cu ajutorul tranzistorilor. Acest nivel execut instruc iunile
limbajului microprogramat (urm torul nivel ierarhic), care ac ioneaz asupra
nivelului 0 ca ni te comenzi. De re inut este faptul c nivelul 0 poate s nu fie
nivelul cel mai sc zut, sub el putnd exista un alt nivel care poart denumirea de
nivel component , i care de regul nu apare n schema nivelurilor unui calculator.
Nivelul urm tor este nivelul 1 sau nivelul microprogramat. El este nivelul
limbajului intern al ma inii. Aici exist un microprogram care interpreteaz
instruc iunile de nivel 2 i care este realizat cu un set restrns de instruc iuni simple
(n medie cam 20 de instruc iuni), de transfer i teste simple ale unor condi ii. Este
scris ntr-o memorie ROM intern , la ea avnd acces numai produc torul.
Deasupra nivelului 1 se afl nivelul 2 sau nivelul ma inii tradi ionale.
Fiecare procesor define te n mod implicit un limbaj de nivel 2 i o ma in virtual
al c rei limbaj ma in este interpretat de un microprogram. Denumirea de nivel al
ma inii tradi ionale este dat deoarece componentele au caracteristici comune.
Aceea i structur fizic poate corespunde la dou sau mai multe ma ini dac
microprogramul de pe nivelul 1 este scris n mod adecvat i aceea i ma in
tradi ional se poate implementa prin diverse structuri fizice. Exist i excep ii:
unele calculatoare nu dispun de nivelul microprogramat (nivelul 1), n acest caz
instruc iunile de pe nivelul 2 fiind tratate direct de nivelul 0.
Al treilea nivel este un nivel hibrid, n sensul c cea mai mare parte a
instruc iunilor care definesc limbajul 3 sunt de tip ma in . Se g sesc aici sarcini
specifice privind gestionarea memoriei i capacitatea de executare a mai multor
programe n paralel. Acest nivel poart denumirea de nivelul sistemului de operare.
De remarcat c nivelele 1 i 2 nu sunt accesibile programatorului mediu. Ele
sunt necesare pentru interpretarea nivelului inferior i sunt scrise de c tre speciali ti.
Limbajele de nivel 1, 2 i 3 sunt orientate c tre modul numeric, iar ncepnd cu
nivelul 4 apar limbaje formate din simboluri i cuvinte, care au o sintax .
Nivelul 4 este nivelul limbajului de asamblare. Este un nivel care nu poate s
lipseasc . Aici compilatorul genereaz cod direct pentru nivelul 3. Exist o
caracteristic specific acestui nivel: nivelurile inferioare (nivelul 2, nivelul 3) sunt
ntotdeauna interpretate, iar nivelurile superioare au asociate programe traduc toare.
Programele realizate n limbaj de asamblare sunt mai nti traduse n limbaje pentru
nivelurile 1, 2 i 3 i apoi interpretate de ma inile reale sau virtuale corespondente.
Urm torul nivel ierarhic este nivelul 5, numit nivelul limbajului de aplica ie.
Aici se afl limbaje concepute pentru a fi utilizate de c tre programatorii de
aplica ii. Ele mai sunt adesea denumite i limbaje de nivel nalt i sunt extrem de
numeroase. Printre cele mai cunoscute pot fi amintite: Basic, C, Cobol, Pascal,
Fortran etc. Programele scrise n unul din aceste limbaje sunt adesea traduse pentru
nivelele 3 sau 4 de c tre programe traduc toare specializate numite compilatoare.

Introducere

13

Nivelul 6, care este i cel mai de sus nivel, este reprezentat de un ansamblu
de programe. Ele con in numeroase date pentru aplica ii care pot ine de domenii
diferite de lucru.
n concluzie, se poate spune c un calculator poate fi v zut ca o suit de
nivele, fiecare nivel nglobnd toate nivelele precedente. Un nivel reprezint un
grad oarecare de abstractizare i con ine diverse obiecte i opera ii cu aceste
obiecte. n sens ascendent cre te complexitatea prelucr rii, iar n sens descendent
cre te volumul materialului prelucrat.
Ansamblul tipurilor de date, opera iilor i caracteristicilor fiec rui nivel
poart denumirea de arhitectura nivelului. n particular, arhitectura calculatoarelor
i structura lor semnific aproape acela i lucru.

1.3. Etapele evolu iei arhitecturii calculatoarelor


Cea mai mare parte a vechilor calculatoare utilizate au ie it ast zi din uz,
ajungnd piese de muzeu. Cu toate acestea, au existat cteva ma ini care au avut un
rol important n evolu ia calculatoarelor. Pentru acestea se vor analiza n continuare
cteva din principalele caracteristici.

1.3.1. Genera ia 0: calculatoarele mecanice (1642-1945)


Meritul de a fi realizat prima ma in de calcul i revine lui Blaise Pascal. n
onoarea sa a fost denumit i primul limbaj de programare care a fost inventat.
Acest prim calculator a fost n ntregime un calculator mecanic, bazat pe angrenajul
unor ro i din ate ac ionate manual, principalele opera ii care puteau fi efectuate
fiind adun ri i sc deri. Treizeci de ani mai trziu acestei ma ini de calcul i-au fost
ad ugate de c tre Leibnitz alte dou noi opera ii: nmul irea i mp irea.
Au urmat apoi alte asemenea ma ini, dintre care poate fi amintit prima
ma in analitic . Aceasta cuprindea patru p i: memoria (magazia), unitatea de
calcul, intrarea (cititorul de cartele perforate) i ie irea. Memoria dispunea de 1000
de cuvinte de 50 de cifre zecimale care puteau fi utilizate pentru stocarea
variabilelor i rezultatelor. Unitatea de calcul prelua operanzii proveni i din
memorie, f cea diverse opera ii asupra lor (adunare, sc dere, nmul ire, mp ire)
i ntorcea rezultatul tot n memorie. Toate aceste blocuri erau n ntregime
mecanice. Marea noutate a acestei ma ini consta n faptul c putea citi instruc iuni
de pe cartelele perforate i apoi le putea trata. Unele instruc iuni puteau comanda
ma inii s preia doi operanzi din memorie, s efectueze o opera ie asupra lor i s
trimit rezultatul n memorie. Procesul continu pn n anul 1944 cnd a fost
construit prima ma in , Mark I, care avea 72 cuvinte a 23 cifre i un ciclu ma in
de 6 secunde. A urmat ndeaproape succesoarea sa Mark II. Se poate afirma c ,
practic, era electronicii ncepuse.

14

ARHITECTURA SISTEMELOR DE CALCUL

1.3.2. Prima genera ie: tuburile cu vid (1945-1955)


Se poate spune c al doilea r zboi mondial a gr bit apari ia apari iei primelor
calculatoare echipate cu componente electronice, chiar dac acestea aveau s fie
tuburile cu vid. Primul calculator construit i folosit a fost ENIGMA, folosit pentru
criptarea mesajelor care urmau a fi trimise de c tre armata german prin radio
submarinelor. Nici armata britanic nu a stat cu minile n sn, ea reu ind s pun
la punct un calculator numit COLOSSUS, folosit pentru decodarea mesajelor,
deoarece erau foarte multe calcule de f cut. P rintele lui COLOSSUS a fost omul
de tiin englez Alan Turing. Urmeaz apoi un nou model numit ENIAC. Acest
a zis calculator cuprindea 18000 tuburi cu vid i 1500 de relee; cnt rea peste 30
de tone i consuma 150 kW. Din punct de vedere al unit ii de calcul dispunea de
20 registre a 10 cifre zecimale. La foarte pu in timp dup aceasta i face apari ia
un nou calculator, al c rui realizator, John von Neumann, va intra n istorie, putnd
fi considerat pe drept cuvnt p rintele calculatoarelor actuale. Schema unei ma ini
von Neumann este redat n figura 1.3.

Fig. 1.3. Schema unei ma ini von Neumann.

Ma ina von Neumann era alc tuit din 5 p i: memoria, unitatea aritmetic
i logic , unitatea de control, dispozitivele de intrare i cele de ie ire. Memoria
dispunea de 4096 cuvinte, fiecare cuvnt avnd 40 de bi i (0 sau1). Instruc iunile
cuprindeau dou cmpuri: 8 bi i pentru tipul instruc iunii i 12 bi i pentru adres .
Unitatea aritmetic i logic con inea un registru intern special numit acumulator.
Ma ina nu dispunea de capacitate de calcul n virgul mobil .
cnd un salt peste timp se ajunge la modelul IBM 704 care avea aceea i
structur cu 4 K de memorie, instruc iuni de 36 de bi i i dispozitive speciale de
calcul n virgul mobil .

1.3.3. A doua genera ie: tranzistorii (1955-1965)


Primul calculator echipat cu tranzistori a fost realizat n laboratoarele
Lincoln, fiind denumit TX 0 (Transistorized eXperimental Computer 0). n 1961
apare PDP-1, o ma in de 4 K cuvinte de 18 bi i, avnd ciclul ma in de 5 ms. n
compara ie cu IBM 7090, care avea un pre exorbitant, calculatorul PDP-1 costa

Introducere

15

120.000 de dolari, fapt care a determinat vnzarea sa de c tre firma DEC i deci
participarea la na terea unei industrii mini-informatice.
n 1964 apare pe pia modelul 6600 al firmei CDC, o ma in aproape de 10
ori mai rapid dect b trnul IBM 7094. Impactul asupra publicului a fost unul
foarte puternic, numeroase firme exprimndu- i dorin a de a cump ra un astfel de
calculator. Diferen a fa de modelul IBM: o arhitectur paralel . n concluzie,
dispunea de mai multe unit i func ionale capabile s execute simultan diverse
opera ii. Acest model putea executa 10 instruc iuni n acela i timp.

1.3.4. A treia genera ie: circuitele integrate (1965-1980)


Inventarea circuitului integrat a permis plasarea de numeroase tranzistoare
ntr-o singur capsul de siliciu, cea ce a condus la calculatoare mai mici, mai
rapide i mai ieftine.
n anul 1965, firma IBM, num rul unu n domeniul informaticii, scoate pe
pia modelul IBM 360, acesta fiind primul calculator capabil de a simula un alt
calculator. Apari ia circuitelor integrate a dus la dezvoltarea industriei
microinformaticii, prin apari ia unor noi modele, dintre care pot fi amintite
calculatorul PDP-11 realizat de firma DEC. El este asem tor cu modelul 360 al
firmei IBM, dar cu un raport performan /cost mult mai bun.

1.3.5. A patra genera ie: circuitele VLSI (1980-1990)


Aceast etap este cea n care ncep s apar primele calculatoare personale,
acest lucru fiind posibil datorit unor factori decisivi:
perfec ionarea tehnologiei de fabrica ie;
dezvoltarea re elelor de calculatoare;
diversitatea mare de modele de arhitecturi;
apari ia conceptelor de multimedia i de programare orientat pe obiecte.
Un pas important n aceast etap a fost reprezentat de apari ia primelor
calculatoare personale realizate de firma IBM n colaborare cu Intel. Au rezultat
cteva modele care au avut o mare priz la public, dintre care IBM PS1, PS2. Un
alt mare consor iu format din Apple i Motorola scoate pe pia modelele
MacIntosh 68000, 68040. Trebuie remarcat faptul c toate aceste modele erau
calculatoare personale, deci accesibile ca pre persoanelor fizice.

1.3.6. A cincia genera ie: prelucrarea masiv paralel (dup 1990)


nceputul genera iei a cincia este marcat de dezvoltarea calculatoarelor cu
prelucrare masiv paralel , de exemplu CM 2 i CM 5 de la Thinking Machines Co.

16

ARHITECTURA SISTEMELOR DE CALCUL

Un alt element esen ial este apari ia i dezvoltarea serviciului www (World
Wide Web) ini iat de Laboratorul CERN din Geneva n colaborare cu mai multe
universit i americane.
n 1993, firma Intel construie te microprocesorul cu structur superscalar
Pentium. Apar sistemele masiv paralele cu memorie partajat
i distribuit
(Cray/MPP). Interactivitatea serviciului www este asigurat prin introducerea
tehnologiei Java.
Evolu ia procesoarelor a luat apoi un avnt puternic, frecven ele de lucru
crescnd n numai opt ani de la 100 MHz la peste 3 GHz, nregistrndu-se n
acela i timp i o mbun ire a arhitecturii microprocesoarelor prin specializare,
memorie cache, paralelism (pipe-line), optimizarea algoritmilor
Este prezentat n continuare un scurt istoric al dezvolt rii domeniului.
AN

NUME

SUBIECT

1642
1834

Blaise Pascal
C. Babbage

1904
1906
1936
1943

J.A. Flemming
L. De Forest
K. Zuse
Guvernul britanic,
cu concursul lui A. Turing
H. Aiken

Prima ma in de calculat mecanic


Ma ina analitic de la Cambridge cu instruc iuni
pe cartel perforat
Dioda
Trioda
Primul calculator cu relee Berlin
Primul calculator electronic cu tuburi cu vid
Colossus
Primul calculator american Mark 1 (72 cuvinte a
23 cifre, ciclu ma in de 6 sec.); nceputul erei
electronicii
Debutul genera iei I de calculatoare Eniac, Univ.
Pennsylvania (18.000 tuburi electronice, 1.500
relee, 600 comutatoare, 30 tone, 150 KW)
Tranzistorul

1944

1946

J. Mauchly i J.P. Eckert

1948

J. Bardeen, W. Shockley,
W. Brattain
N. Wiener
M. Wilkes, cu arhitectur
propus de J. von Neumann
MIT
J. Mauchly i J.P. Eckert
J. von Neumann

1948
1949
1951
1951
1952
1955
1956
1960
1960-61

Laboratoarele Lincoln
Firma IBM

1961
1962

Firma IBM
Firma IBM

Firma DEC

Cibernetica
Primul calculator cu program nregistrat, EDSAC
Primul calculator n timp real, Whirlwind
Primul calculator comercializat Univac 1
Calculatorul IAS (Princeton) r spnde te
arhitectura de baz von Neumann
Primul calculator echipat cu tranzistoare TX 0
Calculatorul IBM 704
Circuite integrate
Primul minicalculator, PDP-1, practic nceputul
genera iei a doua de calculatoare (tranzistorizate)
i a miniinformaticii
Ma ina de gestiune 1401
Primul calculator tiin ific puternic
(pe 36 de bi i) IBM 7094

Introducere
1963

Firma Borroughs

1964

Firma IBM

1964
1965

Firma CDC
Firma DEC

1970

Firma DEC

1970
1971
1972
1974
1974

Firma Intel
Firma Intel
Firma Cray
Firma Intel

1978
1978
1979
1980

Firma Intel
Firma DEC
Firma Motorola
Firma IBM

1982
1983

Firma Intel
S.U.A.

1984
1985
1987

Firma Motorola
Firma Intel
Firma Motorola

1989

Firma Intel

1990 1991
1992

Thinking Machines Co.


CM 2 i CM 5
Laboratorul CERN, Geneva

1993

Firma Intel

1993

Firma Cray Research

1995

Firma Sun Microsystems

1996

Firma Cyrix

1997
1998
1998
1999
1999
2000

Firma AMD
Firma AMD
Firma Intel
Firma Intel
Firma AMD
Firma AMD

17

Calculatorul B 5000 primul calculator dedicat


unui limbaj de programare: Algol 60
Prima familie de calculatoare, IBM 360; firma
IBM preia suprema ia n informatic ;
multiprogramare; nceputul genera iei a treia
(cu circuite integrate)
Primul calculator paralel 6600
Primul calculator cu produc ie de mas
(pe 12 bi i), PDP-8
Minicalculatorul PDP-11, firma DEC
preia suprema ia n miniinformatic
Circuite integrate pe scar larg
Primul microprocesor de 4 bi i 4004
Primul microprocesor de 8 bi i 8008
Primul supercalculator: Cray-1
Microprocesorul 8080:
prima unitate central pe un cip
Primul microprocesor de 16 bi i 8086
Primul superminicalculator de 32 bi i VAX
Primul procesor al familiei 680x0 68000
nceputul genera iei a patra de calculatoare (cu
circuite VLSI); era calculatoarelor personale, PC
Microprocesorul de 16 bi i 80286
Tehnologia LAN (Local Area Network) este
folosit pe scar larg
Primul microprocesor de 32 bi i 68020
Microprocesorul de 32 bi i 80386
Microprocesorul de 32 bi i cu unitate de gestiune a
memoriei 68030
Microprocesorul de 32 bi i cu coprocesor i
memorie cache 80486
nceputul genera iei a cincia de calculatoare
(prelucrare masiv paralel )
Serviciul de informa ii www
(World Wide Web) oferit pe Internet
Microprocesorul cu structur superscalar
Pentium
Cray/MPP Sistem masiv paralel
Cu memorie partajat distribuit
Tehnologia JAVA asigur interactivitatea
serviciului www
Microprocesorul n arhitectur superpipe-line
686 P200+
Microprocesoarele RISC K5, K6
Microprocesorul K6-2 3D
Microprocesorul Mendocino/333 MHz
Microprocesorul Pentium III/600 MHz
Microprocesorul Athlon/K7
Microprocesorul Sharptooth /K6-3

18
2002
2002
2003
2005
2005
2006
2007
2007
2007
2008

ARHITECTURA SISTEMELOR DE CALCUL


Firma Intel
Firma AMD
Firma AMD
Firma AMD
Firma Intel
Firma Intel
Firma AMD
Firma Intel
Firma Intel
... ... ...

Microprocesorul Pentium 4 (> 3 GHz)


Microprocesorul AMD Athlon XP 2600+
Microprocesorul AMD Opteron (64 bi i)
Microprocesorul AMD Opteron (2)
Microprocesorul Intel Pentium D
Microprocesorul Intel Core (1, 2)
Microprocesorul AMD Phenom (2, 3, 4)
Microprocesorul Intel Dual Core
Microprocesorul Intel Core 2 (1, 2, 4)
... ... ...

2. TIPURI DE ARHITECTURI

2.1. Clasificarea arhitecturii sistemelor de calcul


2.1.1. Clasificarea Flynn
Clasificarea Flynn se face dup gradul de multiplicitate al irurilor formate
din secven e de instruc iuni i secven e de date care pot fi tratate simultan din punct
de vedere hardware. Prin secven de date se n elege un ir de date de intrare,
rezultate par iale sau rezultate temporare care sunt apelate de c tre o secven de
instruc iuni.
Conform acestei clasific ri exist patru tipuri de arhitecturi:
SISD (Single Instruction Stream Single Data Stream);
SIMD (Single Instruction Stream Multiple Data Stream);
MISD (Multiple Instruction Stream Single Data Stream);
MIMD (Multiple Instruction Stream Multiple Data Stream).
Pentru aceste arhitecturi exist trei tipuri de componente de sistem: UC
(unitatea central ), UP (unitatea de prelucrare) i MM (modulul de memorie).
De i sunt diferite ntre ele, toate schemele urm toare respect succesiunea
evenimentelor din arhitectura Von Neumann: instruc iunile i datele sunt extrase
din memorie, instruc iunile sunt decodate de UC care trimite secven a de
instruc iuni c tre UP pentru execu ie, datele circul ntre memorie i procesor pe o
cale bidirec ional .
n continuare se va nota irul de date cu SD i cel de instruc iuni cu SI.
2.1.1.1. Arhitectura SISD

Fig. 2.1. Structura arhitecturii SISD.

Caracteristici:
instruc iunile sunt executate serial, ns pot exista suprapuneri n
execu ie (pipeline). Majoritatea structurilor SISD r mase ast zi n uz
folosesc structuri pipeline.

ARHITECTURA SISTEMELOR DE CALCUL

20

un calculator cu structur SISD poate avea mai multe elemente de


prelucrare (func ii definite), toate g sindu-se sub supervizarea aceleia i
unice UC.
Exemple: IBM 7090, VAX 11/780, CDC 6600, IBM 360/91, CRAY.
Limit rile arhitecturii SISD
La acest tip de arhitecturi, viteza calculatorului este determinat de perioada
ceasului. Dac perioada ceasului scade, calculatorul devine n consecin mai rapid.
Pentru a ob ine un ceas mai rapid exist dou posibilit i:
calea de semnal s fie mai scurt ;
tranzistorii folosi i s fie mai rapizi.
Din nefericire, se pare c ambele au atins o anumit limitare din punct de
vedere tehnologic.
Scurtarea c ii de semnal ar costa foarte mult. Cre terea num rului de
tranzistori pe unitatea de arie ar duce la cre terea dramatic a c ldurii disipate n
exterior. Sistemele suplimentare de r cire ar costa i ele foarte mult.
Se lucreaz n prezent la fabricarea unor cipuri de joas putere (Low Power
Chips) care ar duce la sc derea c ldurii generate. Aceasta se poate realiza prin
men inerea constant a densit ii de energie n timp ce num rul de tranzistori pe
unitatea de arie a cipurilor ar cre te.
Realizarea de tranzistori mai rapizi este, de asemenea, foarte costisitoare. n
acest scop se lucreaz la sc derea rezisten ei firelor prin care trece curentul.
Aluminiul este elementul folosit n 1998, dar recent s-a reu it construc ia unui cip
cu fire din cupru. Concomitent cu sc derea rezisten ei firelor se lucreaz i la
mbun irea izola iei dintre fire.
Este evident c perioada ceasului nu poate fi f cut egal cu 0. n consecin ,
modul secven ial de tratare a opera iilor impus de arhitectura von Neumann
distruge orice speran ntr-o viitoare cre tere a vitezei calculatoarelor. Aceast
situa ie este cunoscut sub denumirea de gtul sticlei lui Neumann (Neumann
Bottleneck). Pentru a sparge aceast limitare, trebuie introdus o arhitectur de tip
neserial. Alternativa este reprezentat de arhitecturile de calcul paralele.
2.1.1.2. Arhitectura SIMD
Caracteristici:
exist mai multe UP datorit irului de date multiplu, preluat din memoria
partajat (memoria mp it n mai multe memorii);
corespunde matricelor de microprocesoare: UP identice i supervizate de
o singur UC;
toate UP primesc instruc iunile (setul unic de instruc iuni) care ac ioneaz
asupra unor seturi de date diferite, provenite din iruri diferite de date
SD1, ..., SDn;
ma inile SIMD pot efectua dou tipuri de prelucr ri: pe cuvnt (wordslice) i pe bit (bit-slice).

Tipuri de arhitecturi

21

Fig. 2.2. Structura arhitecturii SIMD.

Aceste tipuri de ma ini lucreaz foarte bine pe seturi de date formate de


matrice de dimensiuni foarte mari atunci cnd este necesar s se execute asupra lor
aceea i opera ie. Ma inile SIMD sunt eficiente i n cazul proces rii re elelor neurale.
Exemplu: CM (Connection Machine) fabricat de Thinking Machines
Company din Cambridge (Massachusetts).
Limit rile arhitecturii SIMD
Aceste tipuri de ma ini sunt destul de scumpe n ceea ce prive te costurile de
produc ie, deoarece bancurile de procesoare nu sunt componente standard. Chiar
dac num rul celor care au nevoie de astfel de ma ini este n continu cre tere,
ace tia nu sunt destul de numero i pentru a justifica existen a unor fabrici dedicate
exclusiv produc iei de SIMD-uri. n consecin , aceste ma ini sunt n general
cute la comand i cost foarte mult.
1.4.1.3. Arhitectura MISD
De i aceast ma in este posibil de realizat din punct de vedere teoretic, nu a
fost niciodat fabricat n scop comercial. A fost construit n laboratoare de
cercetare, dar nu au existat clien i dornici s investeasc ntr-o astfel de arhitectur ,
deoarece nu se adreseaz nici uneia dintre aplica iile de baz .

Fig. 2.3. Structura arhitecturii MISD.

Caracteristici:
fiecare UC lucreaz cu irul de instruc iuni propriu SI1, ..., SIn;
fiecare UP lucreaz cu acela i ir de date, care suport mai multe prelucr ri;
partajare pe orizontal (un singur ir de date, mai multe iruri de instruc iuni);

22

ARHITECTURA SISTEMELOR DE CALCUL

ie irea de la UP1 devine intrare pentru UP2 .a.m.d.


Structura se nume te macro-pipeline (are doar o valoare teoretic ).
2.1.1.3. Arhitectura MIMD
Aceste tipuri de calculatoare sunt cunoscute sub denumirea de
multiprocesoare, chiar dac
i ma inile SIMD sunt tot multiprocesor. n
calculatoarele MIMD paralelismul este realizat prin lansarea n execu ie a mai
multor instruc iuni n acela i timp pe diferite seturi de date. Este evident c sunt
necesare elemente adi ionale de control pentru a trimite instruc iunea corect i
data care trebuie la procesorul ales, toate n acela i timp. Cele mai multe sisteme
multiprocesor intr n aceast clas .

Fig. 2.4. Structura arhitecturii MIMD.

Avantajele arhitecturii MIMD sunt:


vitez mare de prelucrare, dac prelucrarea poate fi descompus n fire
paralele, toate procesoarele prelucrnd simultan;
ntruct procesoarele i blocurile de memorie sunt resurse de tip general,
defectarea unei unit i se poate compensa prin alocarea sarcinii de
prelucrare altei unit i (grad ridicat de toleran la defect ri);
se poate utiliza reconfigurarea dinamic pentru a face fa gradelor
variabile de nc rcare a procesoarelor.
Exemple de sisteme MIMD: C.mmp, Cm* (Carnegie Mellon University),
Ultracomputer (New York University), Cedar (University of Illinois), BBN
Butterfly, Alliant FX, CM-5 (Thinking Machine Corporation), seria Intel iPSc etc.
Sistemele MIMD se mai numesc intrinseci (propriu-zise) dac au UP
interactive: toate irurile de date provin din acela i spa iu de memorie adresat de
cele n procesoare (dac nu se ntmpl acest lucru spa ii disjuncte ale memoriei
se spune c exist un set de n sisteme SISD independente).
Cele dou tipuri de sisteme prezentate mai sus se mai numesc shared
memory (memoria este accesat de toate procesoarele) i shared nothing (fiecare
procesor are propria memorie, propriul disc i propriul sistem de comunica ii).
Dac la un sistem MIMD intrinsec interac iunea ntre microprocesoare este
puternic , sistemul se nume te cu cuplaj strns. Leg tura procesor memorie se
face prin intermediul unor magistrale de interconectare. Comunica ia i sincronizarea
ntre procesoare se realizeaz prin zone comune de memorie. Avantaj: comoditate
de programare oferit de spa iul comun de adrese (shared address space).

Tipuri de arhitecturi

23

n caz contrar, sistemul se nume te cu cuplaj slab. Leg tura procesor


memorie se face prin conexiuni seriale punct-la-punct (de tip re ea). Comunica ia
ntre procesoare se face prin mesaje (message passing). Fiecare procesor dispune
de memorie proprie (private memory). Avantaj: scalabilitate (posibilitate comod
de expandare). Cele mai multe sisteme comerciale sunt cu cuplaj slab.
Exemple: IBM 370/168 cuplaj slab, CRAY 2 cuplaj strns.
2.1.1.4. Sisteme cu memorie partajat (shared memory)
n cazul ma inilor cu memorie partajat , ma ina original von Neumann a
fost extins prin includerea a ceea ce se nume te memorie cache. Aceasta este o
memorie local ata at fiec rui procesor n parte, care i permite procesorului s
aib acces rapid la propriile seturi de instruc iuni i date, dar s poat accesa n
continuare memoria principal prin magistrala de memorie. Acest tip de ma in se
mai nume te arhitectur cu multiprocesare simetric i este prezentat n figura 2.5.

Fig. 2.5. Arhitectura sistemelor shared memory.

Dintre sistemele mai vechi, n aceast categorie se nscrie seria IBM


RS/6000: J40, J50, R40 i R50. Modelul J40 are dou nivele de cache n loc de
unul singur. n loc s foloseasc o magistral pentru a lega diferitele procesoare cu
memoria principal , IBM a dezvoltat un a a-numit crossbar care, spre deosebire de
magistrala conven ional , permite pn la patru transferuri simultane cu memoria.
Limit rile arhitecturilor MIMD cu memorie partajat

Fig. 2.6. Limit rile calculatoarelor cu memorie partajat .

24

ARHITECTURA SISTEMELOR DE CALCUL

La aceste arhitecturi, gtul sticlei (bottleneck) l reprezint magistrala de


memorie. Toate instruc iunile i datele fiec rui procesor trebuie s treac prin
aceast magistral . Cnd procesoarele care folosesc aceea i memorie sunt pu ine,
performan ele depind liniar de num rul procesoarelor. Pe m sur ce acesta cre te,
rirea performan elor este din ce n ce mai slab , a a cum rezult din figura 2.6.
Exist dou tipuri de sisteme MIMD cu memorie partajat :
cu resurse globale (Global Shared Memory):
o arhitectura UMA (Uniform Memory Access);
o arhitectura UMA cu memorii cache locale;
cu resurse distribuite (Distributed Shared Memory):
o arhitectura NUMA (Non-Uniform Memory Access);
o arhitectura COMA (Cache-Only Memory Access);
o arhitectura CC-NUMA (Cache Coherent Non-Uniform Memory Access).
A. Arhitecturile GSM (Global Shared Memory)
Calculatoarele MIMD cu spa iu unic de memorie au un cost relativ sc zut i din
acest motiv se bucur de o popularitate ridicat . Acestea sunt considerate a fi sisteme
cu cuplaj strns, datorit gradului ridicat de partajare a resurselor. Func ionarea
ntregului sistem paralel este coordonat de c tre un singur sistem de operare, care
se ocup de planificarea n execu ie a proceselor pe procesoarele disponibile n
sistem, n condi iile n care se dore te o nc rcare ct mai echilibrat a acestora.
Arhitectura UMA (Uniform Memory Access)
Memoria fizic a calculatoarelor de tip UMA este compus din mai multe
blocuri care formeaz un spa iu unic de adresare. Procesoarele acceseaz blocurile
de memorie prin intermediul re elei de interconectare (vezi figura 2.7), care poate fi
static (format din conexiuni fixe, punct-la-punct, ntre nodurile re elei) sau
dinamic (format din conexiuni variabile n timp, de tip crossbar).

Fig. 2.7. Arhitectura UMA.

Principala caracteristic a calculatoarelor UMA este c toate procesoarele au


timp de acces egal la memoria partajat . ns , tocmai de aceea, num rul
procesoarelor utilizate n cadrul sistemului paralel nu poate fi foarte mare, deoarece
cre terea num rului de procesoare din sistem atrage dup sine o probabilitate mai
mare de conflict n ceea ce prive te accesarea concurent a aceleia i zone de
memorie. ntr-un astfel de caz, se vor nregistra timpi de a teptare care vor conduce
la o utilizare ineficient a procesoarelor i la o nc rcare neechilibrat a acestora.

Tipuri de arhitecturi

25

n plus, pentru ob inerea unor performan e deosebite, re eaua de comunica ie


va trebui s ofere o l rgime de band suficient de mare, deoarece fiecare procesor
poate necesita accesul la memoria partajat , ceea ce presupune transportul datelor
solicitate din memoria comun c tre procesorul care a formulat cererea.
Arhitectura UMA cu memorii cache locale
O mbun ire adus modelului UMA o reprezint utilizarea memoriilor
cache la nivelul elementelor de procesare (vezi figura 2.8). Fiecare procesor va
avea asociat o astfel de memorie. Atunci cnd un procesor solicit date, mai nti
se verific dac aceste date se g sesc deja n memoria cache local . n caz
afirmativ, acestea se transfer foarte rapid procesorului, f
a accesa memoria
partajat . Astfel, problema conflictelor de acces concurent la spa iul unic de
memorie se rezolv , cel pu in, par ial. Mult mai pu ine cereri vor ajunge s
acceseze memoria partajat i, din acest motiv, probabilitatea de apari ie a
conflictelor devine mult mai mic .

Fig. 2.8. Arhitectura UMA cu memorii cache locale.

Utilizarea memoriilor cache presupune ns


i asigurarea consisten ei
acestora. n momentul n care anumite date stocate n memoria global se modific ,
aceste modific ri trebuie s fie semnalate tuturor memoriilor cache care stocheaz
cpii ale datelor respective. Mai mult chiar, atunci cnd se schimb con inutul
datelor de la nivelul unei memorii cache este nevoie ca modific rile s fie efectuate
n toate memoriile cache care con in cpii ale datelor actualizate. Men inerea
coeren ei memoriei cache se poate realiza att prin mecanisme software, ct i prin
mecanisme hardware. Modelele cu acces neuniform la memorie ncearc s evite
dezavantajele ntlnite la calculatoarele de tip UMA.
B. Arhitecturile DSM (Distributed Shared Memory)
Reprezint sisteme cu memorie partajat , dar care este distribuit din punct
de vedere fizic. Astfel, procesoarele au asociate memorii locale care formeaz
mpreun o memorie global care poate fi accesat direct de c tre toate elementele
de procesare. Timpul de acces la loca iile de memorie nu mai este uniform, el
depinznd de localizarea fizic a datelor care se doresc a fi transferate.

26

ARHITECTURA SISTEMELOR DE CALCUL

Arhitectura NUMA (Non-Uniform Memory Access)


n cazul acestui model, memoria partajat este distribuit fizic procesoarelor
din sistem (vezi figura 2.9). Astfel, fiecare element de procesare are asociat o
memorie local . Toate aceste memorii locale formeaz un spa iu unic de adres .
Din acest motiv, timpul de acces la memorie este neuniform, deoarece accesul la
datele aflate n memoria local este foarte rapid n timp ce accesul la datele aflate
n memoria local a altor elemente de procesare va fi mult mai lent, datorit
faptului c datele respective vor fi transportate prin re eaua de comunica ie.

Fig. 2.9. Arhitectura NUMA.

Observa ie. Sistemele NUMA sunt foarte asem toare sistemelor distribuite,
din moment ce fiecare procesor dispune de o memorie local , iar toate aceste
module locale formeaz un spa iu unic de adresare.
O caracteristic important pentru ma inile NUMA este factorul NUMA.
Acest factor arat diferen ele de laten pentru accesarea datelor din memoria
local comparativ cu accesarea dintr-o zon care nu este local . n func ie de
conexiunile sistemului, factorul NUMA poate diferi pentru diverse p i ale
ma inii: accesarea datelor dintr-un nod vecin este mai rapid dect accesarea
datelor dintr-un nod mai ndep rtat pentru care este necesar traversarea unui
num r mai mare de etaje crossbar. A adar, atunci cnd este men ionat, factorul
NUMA se refer de obicei la cele mai ndep rtate dou procesoare ale unei re ele.
Arhitectura COMA (Cache-Only Memory Access)
n cazul modelului COMA, spa iul global de adrese este format din memorii
cache locale fiec rui procesor. Atunci cnd un procesor are nevoie de anumite date,
acestea sunt mai nti aduse n memoria cache de c tre controlerul de memorie,
dup care acestea vor fi accesate foarte rapid (vezi figura 2.10).

Fig. 2.10. Arhitectura COMA.

Tipuri de arhitecturi

27

Observa ie. Dispare conceptul de memorie global , controlerul de memorie


avnd responsabilitatea de a nc rca n memoriile cache locale datele ce urmeaz a
fi accesate de c tre procesoare. nc rcarea datelor presupune localizarea i
transportul acestora prin intermediul re elei de interconectare. Prin folosirea
memoriilor cache locale, probabilitatea ca un procesor s acceseze majoritar date
numai din memoria local creste foarte mult.
Totu i, folosirea memoriilor cache pe post de memorii locale atrage dup
sine i o serie de probleme. Atunci cnd se ncearc aducerea unui bloc de date
ntr-o memorie cache integral ocupat , apare necesitatea mut rii unui alt bloc de
date pentru a se crea spa iul necesar memor rii noului bloc care va fi accesat de
tre procesor. ns , datorit faptului c nu mai exist o memorie global n care s
se scrie acest bloc, va fi nevoie ca datele con inute s fie mutate n memoria cache
a unui alt procesor. Aceste date ns nu vor fi niciodat accesate de c tre procesorul
care folose te memoria respectiv , ceea ce conduce la o sc dere a eficien ei de
utilizare a sistemului.
n plus, opera ia de transfer a blocului de date dintr-o memorie cache n alta
este i ea consumatoare de timpi de procesare, din moment ce datele trebuie s
circule prin re eaua de interconectare. Ace ti timpi mor i atrag dup sine o utilizare
ineficient i o nc rcare neechilibrat a procesoarelor.
O alt problem o reprezint asigurarea coeren ei memoriilor cache, n
contextul n care opera iile de mutare a blocurilor devin din ce n ce mai
complicate, atunci cnd num rul de procesoare din sistem este din ce n ce mai
mare. Controlerul de memorie trebuie s asigure gestiunea nu numai a datelor care
vor fi aduse n memoriile cache, ci i a blocurilor care au fost mutate dintr-o memorie
local n alta. Din aceste motive, arhitectura COMA este tot mai rar folosit .
Arhitectura CC-NUMA (Coherent Cache NUMA)
Modelul CC-NUMA combin modul n care este construit spa iul unic de
adres la calculatoarele de tip NUMA i la cele de tip COMA. Fiecare element de
procesare al unui calculator de tip CC-NUMA dispune att de o memorie local .
ct i de o memorie cache asociat (vezi figura 2.11).

Fig. 2.11. Arhitectura CC-NUMA.

28

ARHITECTURA SISTEMELOR DE CALCUL

Ca i n cazul modelului NUMA, accesul la datele stocate n memoria local


proprie este foarte rapid. Accesarea unor date aflate n memoria local a unui alt
procesor implic aducerea acestora n memoria local proprie. Transferul de date
folosind re eaua de comunica ie atrage dup sine ntrzieri, deoarece nu este la fel
de rapid precum accesarea memoriilor locale.
Existen a memoriilor cache are ca efect reducerea traficului prin re eaua de
comunica ie. Datele solicitate de c tre un procesor sunt mai nti c utate n
memoriile locale, dup care sunt aduse n memoria cache, n cazul n care acestea
se g sesc n memoria local a unui alt procesor. La acces rile ulterioare, se va
folosi copia datelor respective stocat n memoria cache, deci nu va mai fi nevoie
ca datele s fie din nou transferate prin re eaua de interconectare.
Utilizarea memoriile cache implic necesitatea implement rii unor
mecanisme software sau hardware care s asigure consisten a memoriilor cache. La
modificarea unor date aflate n memoria local a unui procesor, este nevoie s se
actualizeze toate copiile acestor date aflate n memoriile cache. Aceste mecanisme
care asigur coeren a memoriilor cache contribuie la cre terea traficului efectuat n
cadrul re elei de interconectare.
Arhitectura CC-NUMA este utilizat de o serie de supercalculatoare foarte
cunoscute: Bull NovaScale, HP Superdome i SGI Altix.
Dezavantajele arhitecturilor DSM
Principalul dezavantaj al arhitecturilor MIMD cu memorie distribuit i cu
spa iu individual de adresare (NUMA, COMA, CC-NUMA) l reprezint
ntrzierile care pot s apar atunci cnd un procesor dore te s acceseze date aflate
n memoria local a unui alt element de procesare. Aceste ntrzieri se datoreaz
faptului c procesorul respectiv va a tepta ca datele solicitate s fie transportate n
memoria sa local . Pentru minimizarea timpilor de inactivitate, procesorul n cauz
poate efectua o comutare de procese, atunci cnd procesul activ este blocat n
teptarea datelor solicitate. n general comutarea proceselor este o opera iune
complex , implicnd costuri importante, ce pot influen a performan ele sistemului.
Eficien a opera iei de comutare poate fi substan ial mbun it prin
utilizarea firelor de execu ie (thread-uri). Un proces poate fi mp it n mai multe
fire de execu ie, care comunic ntre ele prin accesul la spa iul de adres alocat
procesului, pe care l partajeaz . Din acest motiv, firele de execu ie reprezint un
mecanism eficient de exploatare a concuren ei programelor.
Un fir de execu ie reprezint cea mai mic entitate de planificare n sistemele
bazate pe thread-uri. Comutarea ntre dou fire de execu ie care apar in aceluia i
proces este o opera ie foarte rapid , care nu atrage dup sine costuri suplimentare
semnificative. Astfel, procesul activ este suspendat pn n momentul n care datele
solicitate au fost aduse n memoria local . n acest timp, este executat un alt fir de
execu ie al aceluia i proces. Aceast comutare ntre fire de execu ie apar innd
aceluia i proces conduce la sc derea timpilor de inactivitate i, implicit, la cre terea
eficien ei cu care este utilizat sistemul paralel.
Calculatoarele MIMD cu memorie distribuit se numesc multicalculatoare i
reprezint sisteme cu cuplaj slab, datorit gradului redus de partajare a resurselor.

Tipuri de arhitecturi

29

Principalul avantaj al acestor sisteme l reprezint scalabilitatea, adic ,


posibilitatea extinderii prin conectarea unor noi procesoare. Cre terea num rului de
procesoare nu atrage dup sine probleme legate de accesul concurent la memorie,
deoarece majoritatea apelurilor sunt c tre memoria local . ns transferul de mesaje
presupune schimburi de date care pot aglomera re eaua. Transferul de date ntre
dou procesoare este o opera ie mare consumatoare de timp. Din acest motiv,
performan ele re elei de interconectare pot influen a n mod hot rtor eficien a cu
care este utilizat sistemul paralel. n plus, este foarte greu ca sarcina de calcul
distribuit procesoarelor s fie echilibrat . Sistemul de operare ruleaz n fiecare
nod i, din acest motiv, ntregul sistem poate fi v zut ca fiind format din sta ii de
lucru care comunic prin transfer de mesaje. Complexitatea acestor sisteme este
foarte mare, datorit faptului c ntr-un nod de procesare individual se poate g si
un simplu procesor sau un ntreg sistem de tip UMA.
Exemple de arhitecturi MIMD cu memorie partajat
Din perspectiv istoric , ma inile paralele cu memorie partajat sunt de trei
categorii: bazate pe magistral (Pentium SMP, nodul IBM SP), bazate pe directoare
de tip CC-NUMA (Origin 2000) i cu spa iu de adresare global (Cray T3D, T3E).
Ma inile multiprocesor din anii '60 ai secolului trecut aveau structura din
figura 2.12.a. Capacitatea de memorare sau posibilitatea de comunicare I/O se
puteau ameliora prin ad ugarea de module de memorie i de dispozitive I/O.

Fig. 2.12. a. Arhitectura sistemelor multiprocesor. b. Arhitectura re elei crossbar (multistage).

Cre terea capacit ii de procesare se putea realiza prin ad ugarea de


procesoare. Ap rea deja necesitatea unei interconect ri a modulelor de memorie, a
procesoarelor i a leg turilor cu canalele I/O. Se foloseau re ele multietajate de tip
crossbar sau multistage (vezi figura 2.12.b). Memoriile cache, marea lovitur a
anilor '70, au fost de natur a influen a puternic structurile de memorare. Sistemele
de memorie scalate prin ad ugarea de module suplimentare aveau nevoie de
capacitate, dar i de vitez ridicat . Memoria era o surs de strangul ri (bottleneck).
Introducerea memoriilor cache a schimbat aproape radical datele problemei.
2.1.1.5. Sisteme f
memorie partajat (shared nothing)
n acest caz, fiecare procesor are propria lui memorie. Aceste ma ini sunt
practic calculatoare independente legate ntr-o re ea. Fiecare calculator se mai
nume te i nod (al re elei). Arhitectura shared nothing se mai nume te cu
multiprocesare asimetric i este prezentat n figura 2.13.

30

ARHITECTURA SISTEMELOR DE CALCUL

Fig. 2.13. Arhitectura sistemelor shared nothing.

Pentru ca aceste calculatoare s lucreze bine trebuie s existe un protocol


bun de transmitere a mesajelor ntre ele. Acest protocol trebuie s fie foarte rapid i
erori. IBM folose te n acest scop protocolul Message Passing Interface (MPI)
i mai multe c i redundante care formeaz un switch de mare vitez .
Aceste noduri sunt conectate i printr-o re ea conven ional Ethernet din
motive de management al sistemului.

2.1.2. Clasificarea Wang


Criteriul de clasificare este n acest caz gradul de paralelism n procesarea
cuvintelor, respectiv bi ilor de date. Datele pot fi configurate ntr-o matrice (vezi
figura 2.14).
Se noteaz cu n lungimea unui cuvnt i cu m num rul de cuvinte procesate
la un moment dat.

Fig. 2.14. Organizarea datelor ntr-o matrice.

Conform acestei clasific ri, exist patru tipuri de arhitecturi:


WSBS (Word Serial Bit Serial). Se lucreaz pe un singur cuvnt,
fiecare cuvnt fiind prelucrat bit cu bit: n = 1, m = 1;
WSBP (Word Serial Bit Parallel): n > 1, m = 1;
WPBS (Word Parallel Bit Serial): n = 1, m > 1;
WPBP (Word Parallel Bit Parallel): n > 1, m > 1.
n cazul tipului WPBP, structura paralel este complet , corespunz toare
prelucr rii pe matrice m n.
n cazul tipului WSBP, prelucrarea este pe orizontal , iar n cazul tipului
WPBS, prelucrarea este pe vertical .

Tipuri de arhitecturi

31

2.2. Structura fizic a unui calculator secven ial


Calculatorul numeric sistem fizic, care prelucreaz automat informa ia
codificat sub form de valori discrete, conform unui program, ce indic o
succesiune determinat de opera ii aritmetice i logice. Sistemul de calcul este
compus din dou subsisteme principale:
subsistemul hardware (echipamente fizice componente);
subsistemul software (programele i structurile de date).
Structura de baz a calculatorului secven ial, cu program memorat, stabilit
de von Neumann n 1945, este reprezentat n figura 2.15 i cuprinde cinci unit i
func ionale: unitatea de intrare (UI), unitatea de memorare (M), unitatea de ie ire
(UE), unitatea aritmetico-logic (UAL) i unitatea de comand (UCd).

Fig. 2.15. Ma ina von Neumann.

Linia continu reprezint fluxul de date i instruc iuni, iar linia ntrerupt ,
fluxul de comenzi i st ri.
Unitatea de comand (UCda) controleaz activitatea tuturor componentelor
din sistem pe baza unei secven e de instruc iuni, reprezentnd programul memorat.
Caracterul secven ial al calculatorului rezult din modul de execu ie al
programului. Sunt necesare urm toarele etape majore (vezi figura 2.16):
nc rcarea instruc iunii IF (instruction fetch);
decodificarea instruc iunii ID (instruction decoding);
nc rcarea (din memorie) a operanzilor OF (operand fetch);
execu ia opera iilor impuse de instruc iune EX (execution).
Dup terminarea unei instruc iuni, se trece la urm toarea instruc iune. Astfel,
programul este executat secven ial, instruc iune cu instruc iune.

32

ARHITECTURA SISTEMELOR DE CALCUL

Fig. 2.16. Etapele execu iei secven iale a unei instruc iuni.

Unitatea aritmetico-logic (ALU) realizeaz prelucrarea informa iei preluate


din memorie, iar rezultatele se depun din nou n memorie sau sunt furnizate n
exterior. ALU realizeaz dou categorii de opera ii:
aritmetice: adunare, sc dere, nmul ire, mp ire;
logice: I, SAU, SAU-EXCLUSIV, NEGA IE.
Unitatea de comand , i cea aritmetico-logic , mpreun cu memoria,
formeaz unitatea central (UC sau CPU) a calculatorului.
Datele i programele sunt introduse n calculator prin intermediul unit ii de
intrare, fiind apoi depuse n memorie.

2.2.1. Structuri de calculatoare paralele


Calculatoarele paralele se clasific n trei configura ii arhitecturale:
calculatoare pipeline (CPL);
calculatoare (procesoare) matriceale (CM);
calculatoare (sisteme) multiprocesor (CMP).
Un calculator pipeline utilizeaz paralelismul temporar. Procesoarele
matriceale se bazeaz pe mai multe unit i ALU sincronizate pentru a atinge
paralelismul spa ial. Un sistem multiprocesor este caracterizat de paralelism
asincron, n sensul c setul de procesoare din structura sa interac ioneaz i i
mpart resursele (memorii, baze de date). n acela i timp, procesoarele matriceale
apeleaz la paralelism sincron (blocuri comandate printr-un unic semnal de ceas).
Cele patru tipuri de paralelism enun ate nu se exclud reciproc. Cele mai
multe dintre procesoarele actuale au structura intern bazat pe tehnologia pipeline
i multe dintre acestea pot fi organizate n sisteme matriceale sau multiprocesor.
Diferen a de baz dintre un procesor matriceal i un sistem multiprocesor este
aceea c unit ile func ionale din procesorul matriceal opereaz sincron, n timp ce
procesoarele sistemului multiprocesor func ioneaz asincron. Tendin ele indic
utilizarea calculatoarelor controlate prin flux de date cu procesoare algoritmice
VLSI. Aceste tipuri de calculatoare sunt caracterizate printr-o cre tere masiv a
hardware-ului pentru a atinge paralelismul.

Tipuri de arhitecturi

33

2.2.1.1. Calculatoare pipeline


Execu ia unei instruc iuni presupune patru faze majore: nc rcarea
instruc iunii IF, decodarea instruc iunii ID, nc rcarea operanzilor OF i
execu ia efectiv EX. n procesoarele non-pipeline, aceste faze se desf oar
secven ial, iar n procesoarele pipeline se desf oar cu paralelism temporal.
Pentru procesoare complexe, faza de execu ie a instruc iunii poate fi
partajat n subopera ii organizate dup principiul pipeline. Problemele care apar n
calculatoarele pipeline sunt datorate conflictelor de acces la memorie, salturilor i
ntreruperilor.
Datorit suprapunerii opera iilor, calculatoarele pipeline (CPL) sunt
optimizate pentru a efectua opera ii de acela i tip. Ori de cte ori se modific tipul
opera iei (instruc iunii), registrele pipeline trebuie terse i renc rcate i, ca
urmare, se consum timp suplimentar. Proiectarea CPL include: secven ializarea
sarcinilor (task-urilor), prevenirea conflictelor de acces (coliziunilor), controlul
congestiei i controlul salturilor n program.
O schem func ional a unui CPL este ilustrat n figura 2.17.

Fig. 2.17. Structura func ional a unui calculator pipeline.

n schema de mai sus, exist dou structuri pipeline: una pentru date scalare
i una pentru date vectoriale. Faza de nc rcare a opera iilor este mp it n dou
subfaze independente, corespunz toare oper rii cu scalari sau cu vectori. Faza de
execu ie se desf oar n dou procesoare distincte, asociate scalarilor sau
vectorilor.

34

ARHITECTURA SISTEMELOR DE CALCUL

Tehnica pipeline
Execu ia unei instruc iuni este privit ca fiind alc tuit din mai multe faze
(sau stagii), care se succed una dup alta i care pot fi tratate de unit i specializate,
ntr-un mod asem tor func ion rii unei linii de asamblare (de ex.: de automobile).
Exemplu. Fie un ir de procese care are loc la execu ia unei instruc iuni.

P1 1
P2
P3
P4
P5

2
1

3
2
1

4
3
2
1

5
4
3
2
1

6
5
4
3
2

7
6
5
4
3
t

Fig. 2.18. Exemplu de ir de procese la execu ia unei instruc iuni i desf urarea lor n timp.

Se presupune c de fiecare din aceste procese se ocup o unitate specializat .


Cnd se atinge al cincilea impuls de ceas, la toate cele cinci procese se lucreaz n
paralel; astfel se m re te de cinci ori viteza de execu ie. n faza ncadrat ,
instruc iunea 5 este n faza de nc rcare, instruc iunea 4 n faza de decodare etc.
Problema este c n faza P5 poate s apar fenomenul de strangulare, pentru
una sau mai multe instruc iuni aflate ntre P1 i P5 pot s nu fie instruc iuni utile
(de ex.: salt). De i exist un paralelism n execu ia instruc iunilor, aceasta este o
ma in pipeline de tip SISD.
2.2.1.2. Calculatoare matriceale
Un procesor matriceal tipic este prezentat n figura 2.19. Exist dou unit i
func ionale distincte: o unitate de control i sincronizare a elementelor de procesare
(care are ca sarcin suplimentar efectuarea opera iilor cu scalari) i o unitate de
prelucrare matriceal . Fiecare element de prelucrare (EP) reprezint un element
pasiv, adic , f posibilitatea de a decodifica instruc iuni.
nc rcarea instruc iunilor i decodarea lor (fazele IF i ID) pentru unitatea de
prelucrare matriceal este efectuat de c tre unitatea de control, prin intermediul
unei re ele de interconectare ntre EP. Fiecare element de prelucrare este alc tuit
dintr-o unitate ALU, registre i memorie local , iar conexiunea dintre elemente este
realizat ntr-o arhitectur de tip NUMA.
Pentru o sesiune de lucru specific , unitatea de control stabile te func ia
ALU pentru fiecare EP, dup care transfer operanzi din exterior c tre memoriile
locale ale EP i rezultatele de la un EP spre alt EP (utiliznd re eaua de
interconectare). Programarea CM este mult mai dificil dect programarea CPL.

Tipuri de arhitecturi

Fig. 2.19. Structura func ional a unui calculator matriceal.

2.2.1.3. Calculatoare multiprocesor


Structur de baz a unui CMP este prezentat n figura 2.20.

Fig. 2.20. Calculator multiprocesor.

35

36

ARHITECTURA SISTEMELOR DE CALCUL

Nota iile din figura 2.20 sunt urm toarele:


P1 Pn procesoare;
ML1 MLn memorii locale.
Sistemul este alc tuit din mai multe procesoare care mpart resurse comune
(memorie), dar posed i resurse proprii (private), ntr-o arhitectur de tip UMA cu
memorii (cache) locale. Procesoarele func ioneaz independent (asincron), dar
trebuie s comunice ntre ele.
Structura de interconectare ntre procesoare i ntre procesoare i resursele
comune determin organizarea sistemului multiprocesor. Exist trei mari categorii
de interconect ri:
1. partajarea unei magistrale comune (bus);
2. utilizarea unei re ele de interconectare total (crossbar);
3. utilizarea unei memorii multiport (ca memorie comun , dual ).
CMP pot fi centralizate sau distribuite. Sistemele centralizate con in toate
procesoarele n acela i sistem de calcul, spre deosebire de sistemele distribuite, n
care procesoarele pot fi fizic plasate n subsisteme diferite. Pentru sistemele
distribuite este necesar o re ea de comunica ie rapid , flexibil (adaptabil ) i
fiabil .

2.2.2. Mecanisme de prelucrare paralel


Aceste solu ii de implementare a prelucr rii paralele sunt corelate cu
arhitecturile clasific rii Flynn n privin a solu iilor hardware, solu iile software
fiind specifice sistemelor de operare care gestioneaz intervalele de timp alocate
diferitelor aplica ii i speculnd, astfel, posibilitatea prelucr rilor paralele.
2.2.2.1. Solu ii hardware de prelucrare paralel
Multiplicarea i specializarea unit ilor aritmetico-logice (ALU)
Procesoarele clasice aveau o singur unitate de tip ALU. n acest fel, nu se
efectua dect o singur opera ie la un moment dat. Prin multiplicarea ALU,
majoritatea func iilor pot fi distribuite ntre unit ile specializate pe o anumit
func ie aritmetic sau logic i pot func iona n paralel. n unele procesoare exist
dou ALU care pot lucra n paralel (o unitate pentru aritmetica n virgul fix i
alta pentru aritmetica n virgul mobil ). Ideea specializ rii func ionale i a
distribuirii i multiplic rii ALU (numite i unit i func ionale) poate fi extins att
la sistemele multiprocesor, ct i la cele matriceale. Acest mecanism constituie, de
fapt, implementarea paralelismului la sistemele SISD.
n figura 2.21 se prezint un exemplu de schem pentru figurarea acestei
solu ii. Unitatea central con ine 5 unit i ALU specializate pe diferite opera ii,
care pot lucra n paralel.
n timp ce o instruc iune este executat de o anumit unitate ALU, unitatea
de comand ncarc i decodific o alt instruc iune pe care o ncredin eaz unei
alte unit i ALU .a.m.d.

Tipuri de arhitecturi

37

Fig. 2.21. Multiplicarea ALU prin specializarea pe opera ii.

Sistemul este eficient dac timpul de execu ie de c tre ALU a unei opera ii
este mult mai mare dect timpul de nc rcare i decodificare a unei instruc iuni.
Aceast condi ie este, n general, ndeplinit .
Exprimarea algebric a condi iei de eficien pentru multiplicarea i
specializarea ALU este:
tEX(ALU) >> tIF + tID.
Paralelism i structur pipeline n CPU
Primele genera ii de microprocesoare utilizau ALU (n special, sumatoare)
care operau cu flux de bi i (serial).
Introducerea unui ALU care opereaz n paralel, pe flux de 8, 16, 32 sau 64
bi i simultan (cu sumatoare, cu transport anticipat sau multiplicatoare matriceale)
duce la cre terea vitezei de prelucrare.
Arhitectura superscalar
n arhitectura superscalar , iruri de instruc iuni diferite (de obicei dou ,
eventual mai multe), utilizeaz resurse diferite n acelea i stadii de execu ie a
instruc iunilor de pe fiecare ir.
Un exemplu particular de arhitectur superscalar este prezentat n figura 2.22.

38

ARHITECTURA SISTEMELOR DE CALCUL

Fig. 2.22. Arhitectura superscalar .

Structura superscalar cu tehnic de burst (citire n rafale) este folosit


ncepnd cu microprocesorul 80486 i este corelat cu momentul introducerii n
capsula procesorului a memoriei cache de nivel 1.
Tehnica burst folose te aceast memorie pentru a citi blocuri de instruc iuni
din memoria cache, instruc iuni care au fost nc rcate acolo din memoria principal
(MP) n mod secven ial (vezi figura 2.23). n acest mod, se citesc dintr-o dat fie
dou , fie patru cuvinte, n func ie de dimensiunea instruc iunii (pe 32 sau 16 bi i).
S-a folosit ini ial o magistral intern ntre cache i decodificatorul de instruc iuni
de 64 bi i, ajungndu-se n prezent la 128 de bi i.

Fig. 2.23. Arhitectura superscalar cu tehnic de burst (citire n rafale).

Tipuri de arhitecturi

39

Exemplu. Schema din figura 2.24 reprezint o arhitectur superscalar cu


trei iruri de instruc iuni diferite. Se execut n acela i timp o opera ie cu numere
reale i dou opera ii cu numere ntregi. Fiecare unitate este de tip pipeline i poate
executa cteva opera ii n diferite stagii pipeline.

Fig. 2.24. Exemplu de arhitectur superscalar cu trei unit i pipeline n paralel.

Arhitectura superpipeline
Se bazeaz pe divizarea stagiului pipeline n substagii i, deci, pe cre terea
num rul de instruc iuni care sunt procesate de pipeline la un moment dat. Diviznd
fiecare stagiu n dou substagii, perioada ciclului de ceas va fi redus la jum tate:
/2.
La capacitate maxim , structura pipeline produce un rezultat la fiecare /2
secunde. Pentru o arhitectur dat i setul de instruc iuni aferent ei, exist un num r
optim de stagii pipeline. Dac num rul de stagii pipeline cre te peste aceast limit ,
se va reduce performan a global . O solu ie pentru a cre te viteza f
a face
compromisuri este arhitectura superscalar , prezentat anterior.
n figura 2.25, este prezentat un exemplu de execu ie pipeline (a),
superpipeline (b) i superscalar (c) a unei instruc iuni.
Suprapunerea opera iilor CPU cu opera iile I/O
Utilizarea unor controlere I/O separate permite efectuarea n paralel a
opera iilor interne ale CPU cu opera ii de transfer de date pe canalele I/O.
Exemple de controlere I/O:
controlere DMA (Direct Memory Access), care permit transferul direct de
date: memorie memorie sau memorie canale I/O, bazat pe principiul
cererii de magistral (aceasta reprezint una dintre tehnicile evoluate de
transfer de date, vezi paragraful 3.4.4.2);
procesoare specializate I/O, care lucreaz pe canale I/O cu sarcini specifice.

40

ARHITECTURA SISTEMELOR DE CALCUL

c
Fig. 2.25. Modul de operare al tehnicilor pipeline (a), superpipeline (b) i superscalar (c).

Unitate ALU vectorial

Fig. 2.26. Arhitectur SIMD cu unitate ALU vectorial .

Este o solu ie de paralelism pentru sistemele SIMD, prezentat n figura 2.26.

Tipuri de arhitecturi

41

Utilizarea unui sistem ierarhizat de memorie


Memoria unui sistem de calcul trebuie s satisfac mai multe cerin e, adesea
contradictorii: capacitate mare, timp de acces mic, cost rezonabil i dimensiuni
reduse. Aceste cerin e nu pot fi ndeplinite simultan de un singur tip de memorie.
Cu tehnologia actual se pot realiza memorii de mare vitez , dar de capacitate mic
(RAM static), memorii de capacitate mare, dar de vitez medie (variante de
memorii DRAM) sau memorii de capacitate foarte mare, dar cu timp de acces
ridicat (memorii externe pe suport magnetic sau optic).
n sistemele de calcul performante, spa iul de memorare este ierarhizat pe
mai multe nivele, cu scopul de a beneficia de avantajele oferite de diverse tipuri de
memorii. Un sistem de calcul cu memorie organizat ierarhizat poate echilibra
diferen ele de vitez ntre componentele sistemului (CPU, memorie, discuri) .
ntr-o astfel de arhitectur , memoria este organizat pe patru niveluri:
registrele CPU;
memoria cache (MC);
memoria principal sau operativ (MP);
memoria virtual (MV).
Registrele CPU sunt direct adresabile de c tre ALU.
Memoria cache (rapid ) este cea mai apropiat de CPU, ceea ce impune ca
timpul de acces s fie mic, capacitatea fiind limitat . Aici sunt p strate instruc iunile
i datele cu probabilitatea cea mai mare de a fi utilizate ntr-o proximitate de timp.
Memoria cache reprezint un tampon ntre memoria principal i CPU.
Memoria principal sau operativ p streaz programele i datele aferente
n curs de execu ie. Ea poate fi adresat n mod aleatoriu de un program utilizator.
Are o capacitate medie-mare i un timp de acces mediu. Este un tampon ntre
memoria virtual i CPU.
Memoria virtual este un concept arhitectural prin care memoria operativ
este extins peste spa iul de adresare al memoriei externe (hard disk, band
magnetic ). Prin tehnicile de implementare, numite segmentare i paginare (vezi
capitolul 6), se urm resc dou aspecte esen iale:
cre terea resurselor de memorare disponibile pentru programele utilizator;
protejarea zonelor de memorie alocate modulelor de program.
Memoria virtual este util n cazul sistemelor de operare multitasking i
multiuser (Windows, Unix).
n general, tehnicile de implementare a MC i a MV sunt transparente pentru
programele utilizator. Aparent, programele de aplica ie lucreaz numai cu memoria
principal . Transferul de informa ii ntre diferitele nivele de memorie se realizeaz
n mod automat, fie de c tre componente hardware specializate (unitatea de gestiune
a memoriei, MMU), fie de c tre sistemul de operare. Procesoarele recente ofer
suport hardware pentru implementarea memoriei cache i a memoriei virtuale.
Eficien a utiliz rii unei arhitecturi ierarhizate de memorie se bazeaz pe
cteva principii legate de modul de utilizare a informa iilor con inute n memorie.
Astfel, conform principiului localiz rii referin ei, adresarea loca iilor de
memorie se realizeaz ntr-o secven repetitiv . Exist o probabilitate mare ca o

42

ARHITECTURA SISTEMELOR DE CALCUL

loca ie adresat de curnd s fie adresat i ntr-un timp imediat localizare


temporar i, similar, este previzibil ca i loca iile adiacente s fie accesate n
curnd localizare spa ial . Principiile localiz rii temporale i spa iale sunt o
consecin a modului uzual de execu ie a secven elor de program.
Exemple:
un program con ine bucle care presupun execu ia repetitiv a aceleia i
secven e de instruc iuni;
execu ia instruc iunilor este, n majoritatea cazurilor, secven ial
(succesiunea n execu ie), excep ie f cnd instruc iunile de salt;
secven a de program (procedura) utilizeaz repetitiv aceea i variabil sau
adreseaz repetat elemente ale unei structuri de date (tablouri, nregistr ri).
Concluzie. Statistic s-a constatat c pentru majoritatea programelor este
valabil urm toarea regul : 90% din timpul afectat unui program este utilizat
pentru execu ia a numai 10% din codul acestuia. Pe baza acestor observa ii,
informa iile pot fi amplasate n mod dinamic pe diferite niveluri ierarhice ale
memoriei, n func ie de probabilitatea de a fi utilizate.
2.2.2.2. Solu ii software de prelucrare paralel
Prelucrarea pe loturi
Prelucrarea pe loturi (batch processing) presupune formarea unui fi ier cu
extensia .bat i lansarea lui. Procesele au loc succesiv, iar CPU (care execut
opera iile de calcul) nu este folosit n mod eficient.

Fig. 2.19. a. Prelucrarea pe loturi. b. Multiprogramarea.

Tipuri de arhitecturi

43

Exemplu. Fie trei procese paralele, P1, P2 i P3, fiecare fiind v zut n timp
ca o succesiune de trei etape: intrare (i), calcul (c), ie ire (o) (vezi figura 2.27.a).
Multiprogramarea
n acela i interval de timp pot exista mai multe programe (procese) active n
sistemul de calcul, concurnd pentru memorie, I/O i CPU. Totu i, unele programe
sunt orientate c tre calcule (utiliznd intens CPU), n timp ce altele sunt orientate
tre citirea/scrierea dispozitivelor I/O. Se pot astfel organiza (intercala) cele dou
clase de programe pentru a ob ine un timp de prelucrare global ct mai bun. n
figura 2.27.b, c tigul de timp este notat cu .
Intercalarea programelor permite utilizarea mai eficient a resurselor
calculatorului prin suprapunerea opera iilor I/O cu opera iile CPU. Acest mod de
organizare este gestionat de sistemul de operare (programul de supervizare). Astfel,
multiprogramarea se poate defini ca intercalarea opera iilor CPU cu opera ii I/O
pentru mai multe programe.
Observa ii.
1. P1, P2 i P3 pot apar ine aceluia i program sau unor programe diferite.
2. n cadrul multiprogram rii, se poate ntmpla ca un proces cu prioritate
mare s ocupe CPU un timp ndelungat i n acest fel se mpiedic
execu ia altor procese. Neajunsul se poate nl tura folosind un sistem de
operare cu divizare n timp.
Diviziunea n timp (time sharing)
Diviziunea n timp reprezint mp irea timpului de execu ie al CPU ntre
toate procesele (task-urile) active din sistemul de calcul. Cuantele de timp alocate
fiec rui proces pot fi inegale de la un proces la altul. Viteza de prelucrare poate
cre te astfel mai mult dect n cazul multiprogram rii (vezi cazul particular din
figura 2.28).

Fig. 2.28. Repartizarea n timp a desf ur rii proceselor (time sharing).

44

ARHITECTURA SISTEMELOR DE CALCUL

Procesul de calcul se mparte n mai multe etape. n func ie de divizarea n


intervale de timp, se poate face ca procesele s se termine aproximativ n acela i
interval de timp (nu exist un proces dominant).
Diviziunea n timp constituie o atribu ie a sistemului de operare (numit, n
acest caz, sistem de operare cu diviziune n timp). Utilizarea diviziunii n timp a
programelor (sau a proceselor) n sistemele uniprocesor creeaz conceptul de
procesor virtual.
Exemplu: sisteme de calcul cu un singur procesor i mai multe terminale.
Pentru subiectul uman, r spunsul unicului procesor este suficient de rapid astfel
nct s se considere c fiecare terminal opereaz independent, ca i cum ar poseda
el nsu i procesor (utilizatorul are impresia c lucreaz singur pe calculator).
Conceptul de diviziune n timp poate fi extins n mod similar la sistemele
multiprocesor.
Observa ii.
1. n cazul multiprogram rii, procesele i termin faza de calcul (n CPU),
ap rnd suprapunere doar ntre opera ii CPU i opera ii I/O.
2. n cazul diviziunii n timp, procesele nu i termin faza de calcul nainte
de a se executa alt proces; procesele pot fi intercalate, astfel nct s se
c tige timp de execu ie n raport cu multiprogramarea (suprapuneri ntre
opera ii CPU i opera ii I/O, respectiv ntre diferite opera ii I/O).
No iunea de multithreading
Termenul de multithreading reprezint un aspect important al proiect rii
software, care necesit aten ie special n construc ia sistemelor mari i, n deosebi,
atunci cnd se pune problema eficien ei (exprimate n termeni de vitez a
sistemului) i a performan ei (exprimate n termeni de corectitudine n func ionare
a sistemului). Folosind adecvat instruc iunile de multithreading, se pot realiza
aplica ii optimizate.
Fiecare aplica ie sau program care ruleaz pe sistemul de operare este un
proces alc tuit din unul sau mai multe fire (thread-uri). Un thread este un set de
instruc iuni sau o parte anume a aplica iei, care se execut independent n cadrul
programului sau sistemului. Thread-urile sunt entit i responsabile cu multitaskingul n cadrul unei singure aplica ii. De obicei, sistemul de operare (SO) se ocup cu
programarea i executarea thread-urilor.
Multithreading-ul presupune execu ia n paralel a mai multor procese, pentru
a mbun i eficien a sistemului. Thread-urile sunt implementate n situa iile n
care trebuie ndeplinite mai multe sarcini simultan.
Avantajele threading-ului sunt urm toarele:
sarcinile care cer mai mult timp de execu ie pot fi rulate n background;
interfa a aplica iei poate fi realizat mai atr tor i mai simplu de
utilizat (de ex.: dup ap sarea unui buton se afi eaz o bar de progres);
viteza aplica iei poate cre te;
thread-urile pot fi folositoare n situa iile n care exist decalaje ntre
anumite evenimente, putndu-se astfel elibera anumite resurse care nu
sunt necesare la un moment dat.

Tipuri de arhitecturi

45

Modelele de threading suportate de sistemele win32 sunt:


1. Modelul thread-ului unic (Single Thread Model). Acest tip de thread
presupune rularea unui singur thread la un moment dat. Restul thread-urilor trebuie
a tepte. Principalul dezavantaj al acestui tip de thread l reprezint timpii lungi
de execu ie pentru sarcini mici. Corespunde din punct de vedere conceptual
prelucr rii pe loturi (batch processing).
2. Modelul Apartment Thread (Single Thread Apartment Model STA). n
acest model, pot exista mai multe thread-uri care se execut n cadrul aplica iei. n
STA, fiecare thread este izolat ntr-un apartament separat n cadrul procesului.
Fiecare proces poate avea mai multe apartamente, care pot partaja date ntre ele. n
acest caz, aplica ia este r spunz toare pentru stabilirea duratei fiec rui thread din
cadrul fiec rui apartament. Toate cererile sunt ordonate folosind Windows Message
Queue, astfel nct un singur apartament poate fi accesat la un moment dat.
Avantajul acestui model fat de modelul thread-ului unic este c se pot procesa
simultan mai multe cereri ale utilizatorului. Totu i, nu este atins nc eficien a
maxim , deoarece sarcinile se vor executa una dup alta. Corespunde din punct de
vedere conceptual multiprogram rii.
3. Modelul Multithread Apartment (Free Thread Apartment Model FTA).
Modelul Multithread Apartment presupune existen a unui singur apartament. Nu
este nevoie de ordonare, deoarece toate thread-urile apar in aceluia i apartament i
pot partaje resursele. Aceste aplica ii se execut mai rapid dect cele care
implementeaz modelul unic sau STA, deoarece sistemul este mai pu in solicitat i
poate fi optimizat s elimine timpii mor i. Corespunde din punct de vedere
conceptual diviziunii n timp (time sharing).Aceste tipuri de aplica ii sunt foarte
complexe, deoarece trebuie s se asigure c thread-urile nu acceseaz simultan
acelea i resurse (principiul pipeline). Este, astfel, absolut necesar s se furnizeze un
sistem de blocare a resurselor. Acesta trebuie implementat cu aten ie, deoarece
poate conduce la blocarea total a sistemului.
Prin natura i arhitectura sa, mediul de programare Microsoft .NET
Framework este un mediu de tip multithreading.
Evaluarea performan elor. Utiliznd de n ori mai multe resurse n paralel,
un algoritm nu va rula de n ori mai repede, datorit fenomenului de timp
suplimentar (overhead), indus prin aplicarea paralelismului. Acest timp
suplimentar apare din urm toarele cauze:
interac iunea ntre procese (transmiterea rezultatelor intermediare sau
par iale) i sincronizarea proceselor;
inactivitatea temporar (idling), care nseamn c exist procese inactive
pe anumite perioade de timp, datorit nc rc rii inegale i a a tept rii
sincroniz rii;
calculele suplimentare, care nu apar n formularea serial a algoritmului.
Parametrii de intrare care contribuie la calculul performan elor sunt:
timpul de execu ie secven ial sau serial, TS (timpul m surat de la
nceputul i pn la sfr itul execu iei algoritmului pe un calculator
secven ial);

ARHITECTURA SISTEMELOR DE CALCUL

46

timpul de execu ie paralel, TP (timpul m surat de la nceputul execu iei


i pn la terminarea ultimului subtask paralel);
num rul de procesoare, p.
Cu ajutorul acestora, se pot calcula urm torii parametri de ie ire:
suprasarcina, TO (Total Parallel Overhead) = diferen a dintre timpul
total de lucru nsumat al tuturor procesoarelor i timpul necesar celui mai
rapid algoritm secven ial;
accelerarea, S (Speedup) = raportul dintre timpul necesar rezolv rii unei
probleme pe un procesor i timpul necesar rezolv rii aceleia i probleme
n paralel pe p procesoare identice;
eficien a utiliz rii calculatorului paralel, E = S / p;
costul, C = TP p, care reflect timpul total de lucru nsumat al
procesoarelor.

2.3. Categorii de calculatoare


Calculatoarele pot fi grupate n 5 categorii, n func ie de structur ,
dimensiuni, vitez , putere de calcul i destina ie:
microcalculatoare (ex.: computerele Apple i toate modelele de PC);
minicalculatoare (ex.: serverele IBM, SGI, Sun Microsystems etc.);
superminicalculatoare (ex.: Norsk Data Nord, Interdata, DEC VAX etc.);
mainframe-uri;
supercalculatoare.

2.3.1. Mainframe-uri
Un mainframe este un computer mare, folosit de institu ii guvernamentale i
companii pentru procesarea datelor importante n statistic , recens minte, cercetare
i dezvoltare, proiectare, prognoz , planificarea produc iei, tranzac ii financiare etc.
Ca aspect exterior, primele mainframe-uri ar tau ca ni te dulapuri uria e de metal.
Cu trecerea anilor, tehnologiile de fabrica ie s-au dezvoltat, m rimea fizic a
mainframe-urilor a sc zut, iar viteza lor de calcul a crescut foarte mult.
La nivelul anului 2008, prin mainframe se n elege un calculator compatibil
cu modelele de tip IBM System/360 (1965). Actualmente, cel mai modern model
de la IBM este System z10. Sunt considerate mainframe-uri calculatoarele actuale
de tip: Nova (Fujitsu-Siemens), DPS (Groupe Bull), NonStop (Hewlett-Packard),
ClearPath (Unisys) i cele compatibile IBM System z9 (Hitachi, Platform Solutions).
Un mainframe poate rula sau g zdui mai multe sisteme de operare simultan,
func ionnd ca mai multe ma ini virtuale. Un mainframe poate nlocui astfel chiar
i cteva sute de servere de dimensiuni mici (de exemplu, n aplica ii web),
reducnd costurile de ntre inere, dar men innd un nivel ridicat de siguran .

Tipuri de arhitecturi

47

2.3.2. Supercalculatoare
Un supercalculator este un calculator complex cu destina ie special , compus
din mai multe procesoare care acceseaz aceea i memorie central i care
func ioneaz concomitent i coordonat, n cooperare strns , astfel nct
supercalculatorul poate atinge o performan total de calcul foarte ridicat . Modul
de operare al supercalculatoarelor este calculul paralel. Num rul de procesoare
interconectate ale unui supercalculator dep
te la anumite modele chiar i
100.000.
Pentru a men ine costul unui asemenea supercalculator la un nivel rezonabil,
exist arhitecturi care fac uz de procesoare mai ieftine i mai lente, dar foarte
numeroase, grupate n a a-numite cluster-e.
Printre primele firme care au produs supercalculatoare pentru pia s-a
num rat firma Cray (modelul Cray-1 din 1976 a atins viteza de calcul de 130
Mflops). n acest domeniu, exist o list (actualizat de dou ori de an) a celor mai
rapide 500 de supercalculatoare din lume (Top 500), care se bazeaz pe testul
standardizat numit Linpack. Pe lng supercalculatoarele comerciale, exist i linia
supercalculatoarelor militare.
Exemplu: arhitectura supercalculatorului bazat pe IBM BlueGene/L.
Modelele IBM BlueGene de in momentan (2008) primele dou locuri n Top
500. Calculatorul se bazeaz pe un nou concept, care renun la cre terea frecven ei
de ceas n favoarea mic or rii componentelor, cre terii densit ii acestora i
reducerii consumului de putere. Reducerea frecven ei de ceas este compensat prin
rirea gradului de paralelism, folosind un num r mai ridicat de procesoare.
Procesorul de baz este un PowerPC 440 la 700 MHz. Dou astfel de
procesoare sunt amplasate pe un cip mpreun cu o memorie cache L3 de 4 MB
partajat i 2 KB memorie cache L2 pentru fiecare procesor. Fiecare procesor are
dou porturi de nc rcare i unul de stocare c tre memoriile cache L2, func ionnd
cu 8 bi i/ciclu. Aceasta este jum tate din banda necesar celor dou unit i de
virgul mobil (FPU). Procesoarele au o memorie cache L1 de 32 KB pentru
instruc iuni i date, n situa ii favorabile atingnd performan e de 2,8 Gflops/2. Se
observ c memoria cache L1 este mai mare dect L2, un lucru neobi nuit, care
permite ns atingerea unor viteze de procesare mai mari.
Arhitectura modelului IBM BlueGene/L este reprezentat n figura 2.29.
Sistemul este alc tuit astfel: sunt introduse dou cipuri pe o plac cu o
memorie de 512 MB, aisprezece asemenea pl ci sunt plasate pe o alt plac nod,
iar 32 de pl ci nod sunt introduse ntr-un a a-numit cabinet. A adar, un cabinet
con ine 1024 cipuri (2048 CPU). Pentru configura ia maxim , se folosesc 64 de
cabinete cuplate, care formeaz un sistem cu 65.356 cipuri i 130.712 CPU.
n modul normal de operare, o unitate de procesare a unui cip este folosit
pentru calcule, iar cealalt , pentru sarcinile de comunicare. n acest fel,
performan a de vrf teoretic a sistemului este de 183,5 Tflops. Dac necesit ile
de comunicare sunt mici, se pot folosi ambele procesoare pentru calcule, dublnd
viteza de vrf, ajungnd la 360 Tflops.

48

ARHITECTURA SISTEMELOR DE CALCUL

Fig. 2.29. Arhitectura IBM BlueGene/L.

Din punct de vedere al interconect rii, BlueGene/L posed mai multe re ele:
dou re ele pentru conectarea procesoarelor, o re ea inel 3D i o re ea arbore.
Re eaua inel este folosit pentru comunica ii generale, iar cea arbore pentru
comunica ii colective: broadcast, opera ii de reducere etc. L rgimea de band a
re elei arbore este de dou ori mai mare dect a re elei inel, ajungnd la 350 MB/s
(fa de 175 MB/s).
Performan ele sistemului ajung la 280,6 Tflops pentru testul Linpack. n
urma testului, s-a efectuat rezolvarea unui sistem liniar de N = 1.769.471 ecua ii.
Eficien a rezultat a fost de 76%.
Supercalculatoarele care au la baz
modelul IBM BlueGene/L
implementeaz arhitectura masiv paralel .
Aceasta const ntr-un num r de procesoare (de obicei, foarte mare de
ordinul miilor) interconectate i controlate de un singur computer central. Fiecare
CPU are memoria sa i spa iul de date propriu, care con ine i o copie a sistemului
de operare. Toate blocurile CPU comunic ntre ele cu ajutorul unor interconect ri
de foarte mare vitez .

Tipuri de arhitecturi

49

2.4. Exemple de arhitecturi


2.4.1. Arhitecturi uniprocesor
Se bazeaz pe cele trei componente majore: UCP, memoria, subsistemul I/O.
VAX 11/780 (superminicalculator)
Sistemul a fost produs de firma DEC. Schema de arhitectur general este
prezentat n figura 2.30. Aceasta con ine:
CPU unitatea central de prelucrare, care include:
o R0, ..., R15 = 16 registre generale a cte 32 bi i fiecare;
o PC = contorul de program (program counter);
o ALU = unitatea aritmetic i logic ;
o ML = memoria local ;
MD = memorie de diagnoz ;
CVM = coprocesor de virgul mobil ;
MP = memoria principal (maxim 232 cuvinte);
C = consol ;
F = floppy disk;
SBI = interfa a cu magistrala sincron (Synchronous Bus Interface);
AU = adaptor unibus, cu (U) = magistral unibus;
AMB = adaptor masterbus, cu (M) = magistral masterbus.
CPU mai con ine un registru de stare, care indic starea curent a
microprocesorului, a programului care se execut i a memoriei cache.

Fig. 2.30. Schema arhitecturii generale pentru VAX 11/780.

50

ARHITECTURA SISTEMELOR DE CALCUL

IBM 370/168

Fig. 2.31. Schema arhitecturii generale pentru IBM 370/168.

Schema de principiu (vezi figura 2.31) con ine:


MP = memoria principal ;
LSU = local storage unit (unitate de memorie local );
CM = controller memory (leg tur multiport CPU memorie);
SS I/O = subsisteme de intrare-ie ire (mai multe canale asincrone).
IBM RS/6000 model 250
Arhitectura simplificat este prezentat n figura 2.32.

Fig. 2.32. Schema arhitecturii generale pentru IBM RS/6000-250.

Schema de principiu con ine:


PPC = PowerPC Processor Optimized With Enhanced RISC
Performance Chip;
SIMM = Small In-line Memory Modules (module de memorie);
CTRL = controler;
MCA = magistral de control i adres ;
Ethernet = controler de re ea.

Tipuri de arhitecturi

51

2.4.2. Arhitecturi multiprocesor


Arhitecturile multiprocesor sunt cel mai bun exemplu al tentativei de a
paraleliza un sistem de calcul. Acestea sunt de dou tipuri: cele care folosesc
procesoare multiple, discrete, pe o plac de baz sau sisteme hardware speciale i
cele care folosesc mai multe nuclee n interiorul unui singur procesor fizic.
2.4.2.1. Arhitecturi cu procesoare multiple
Arhitecturile cu procesoare multiple pot fi de dou feluri:
cu multiprocesare simetric ;
cu multiprocesare asimetric .
Multiprocesarea simetric utilizeaz mai multe procesoare fizice legate
printr-o magistral de memorie partajat i suportul magnetic aferent (vezi
paragrafele 2.1.1.4 i 2.2.1.3, referitoare la sisteme cu memorie partajat shared
memory i calculatoare multiprocesor).
n cazul sistemelor cu arhitecturi de multiprocesare asimetric , fiecare
procesor are alt task. Exemple: cipseturile 3D din pl cile grafice moderne i
cluster-ele de calculatoare personale (Beowulf), n care fiecare procesor are acces
numai la memoria calculatorului din care face parte (vezi paragraful 2.1.1.5,
referitor la sisteme f
memorie partajat shared nothing).
IBM RS/6000 model F50
Sistemul cuprinde ntre 1 i 4 procesoare Power PC cu cache extern i are o
magistral de 64 de bi i. Memoria cache se nume te 8-way (cu 8 c i) pentru c datele
sunt grupate n seturi de cte 8 64 bi i. Memoria folose te date de 72 bi i: 64 pentru
date i 8 pentru codul corector de erori (ECC = Erorr Correction Code). Procesorul
are o arhitectur de tip superscalar i poate executa pn la 4 instruc iuni pe ciclu.
Caracteristici (vezi figura 2.33):
frecven a de tact: 166332 MHz, 87 MHz pentru magistrala de memorie;
32 KB cache de date, 32 KB cache de instruc iuni;
magistral de date de 64 de bi i i magistral de adrese de 32 de bi i;
memorie de pn la 4 GB i memorie virtual de pn la 4 PB (1P = 252).
Arhitectura Intel multiprocesor
Arhitectura multiprocesor propus de firma Intel este reprezentat prin
schema din figura 2.34.
Nota iile din schem au urm toarele semnifica ii: BSP = Bootstrap Processor,
AP = Application Processor, APIC = Advanced Programmable Integrated Circuit,
ICC Bus = Interrupt Controller Communications Bus.
2.4.2.2. Arhitecturi biprocesor
Un sistem care suport dou procesoare trebuie s aib o plac de baz
adaptat pentru a servi dou CPU. n acest scop, placa de baz este dotat cu o
magistral special , a c rei construc ii depinde de la produc tor la produc tor, dar
care se conformeaz unor reguli generale.

52

ARHITECTURA SISTEMELOR DE CALCUL

Fig. 2.33. Schema arhitecturii generale pentru IBM RS/6000-F50.

Fig. 2.34. Schema arhitecturii Intel multiprocesor.

Astfel, cele dou CPU sunt servite de dou interfe e paralele cu magistrala
principal a sistemului, iar arbitrarea traficului pe aceasta este efectuat de un
controler specializat. Accesul la magistral este multiplexat, astfel c la un anumit
moment de timp i pentru o durat bine stabilit (fix sau adaptat sarcinii curente)
accesul la magistral l are doar un singur procesor. Aceste tipuri de scheme pot
cuprinde zone de memorie cache comune (integral sau par ial), iar magistrala poate
fi cu l ime variabil sau cu adaptare dinamic la cereri.

Tipuri de arhitecturi

53

Pentium II biprocesor

Fig. 2.34. Arhitectura unui sistem biprocesor cu Pentium II.

AMD Athlon biprocesor


Este un exemplu de arhitectur biprocesor construit pe baza cipsetului 760 al
firmei AMD (vezi figura 2.35).

Fig. 2.35. Arhitectura unui sistem biprocesor cu AMD Athlon.

54

ARHITECTURA SISTEMELOR DE CALCUL

Cre terea performan elor este realizat prin utilizarea magistralei punct-lapunct (Point-to-Point) i a modului snoop. Modul snoop permite citirea datelor de
tre un procesor din cel lalt procesor (prin intermediul Northbridge-ului),
nemaifiind necesar accesarea memoriei. Acest mod elimin tehnica prin care
datele necesare unuia din cele dou procesoare erau nscrise n memorie de c tre
primul procesor i apoi citite de c tre al doilea.
AMD K7 biprocesor
Microprocesorul AMD K7 lucreaz pe magistrala ultrarapid EV6 la
frecven a de 200 MHz. Astfel, K7 poate folosi memorii foarte rapide i cu l rgime
de band mare, cum este Rambus DRAM. Datorit suportului multiprocesor al
protocolului de magistral EV6, sistemele AMD pot fi folosite n domeniul sta iilor
de lucru i al serverelor. Arhitectura EV6 permite o flexibilitate ridicat , cu
facilit i de tipul topologiei punct-la-punct i clock-forwarding. Magistralele de
date i de adrese sunt decuplate, procesorul putnd s emit cereri n timp ce
prime te date i comenzi de la logica de sistem. Tot aici sunt gestionate
transferurile cu sistemul, c tre memorie sau c tre magistralele AGP i PCI.
Schema bloc a acestei arhitecturi este prezentat n figura 2.36.

Fig. 2.36. Arhitectura unui sistem biprocesor cu AMD K7 pe magistrala EV6.

Sun SPARC IV biprocesor


Arhitectura biprocesor Sun SPARC IV este prezentat n figura 2.37.
Nota iile din schem au urm toarele semnifica ii: ECC = Error Checking/Correction
Code (cod de verificare/corec ie de erori), DCSS = Dual Chip Data Switch (bloc de
alegere a cipului), SIU = System Interface Unit (unitatea de interfa cu sistemul),
MCU = Memory Control Unit (unitate de comand a memoriei).

Tipuri de arhitecturi

55

Fig. 2.37. Arhitectura Sun SPARC IV biprocesor.

Se observ c cele dou procesoare au att memorie cache comun , ct i


individual . Accesul la memoria comun se realizeaz prin intermediul unui
multiplexor, care nu permite lucrul simultan celor dou CPU cu aceasta, pentru a
preveni blocajele i erorile ce pot ap rea n urma unor acces ri simultane. Schema
este capabil s ruleze dou fire de execu ie (thread-uri) cu laten e foarte mici de
scriere a cache-ului. De asemenea, accesul la magistrala principal este multiplexat,
pentru a preveni congestiile i erorile de transmisie. Strategia de gestiune a
memoriei cache este de tipul LRU (Least Recently Used cel mai pu in recent
utilizat), ceea ce duce la mai multe anse de a g si n cache informa ia necesar la
urm toarea procesare (cache hit). Memoria acestui sistem este de tipul SDRAM.
Exist scheme care aduc mbun iri suplimentare legate de administrarea
eficient a magistralei (prin repartizarea dinamic a duratelor de acces bazat pe
predic ii i pe comport ri anterioare ale proceselor care se repet la fiecare CPU etc.).
Intel Xeon biprocesor
Sistemul este echipat cu dou procesoare Intel Xeon instalate pe o plac de
baz de tipul Supermicro P4DC6+. Aceast plac de baz este dotat cu cipsetul
i860, constituit din trei componente principale: Intel 82806AA PCI 64 Hub (Intel
P64H din figura 2.38), Intel 82860 Memory Controller Hub (MCH din figura 2.38)
i Intel 82801BA I/O Controller Hub (ICH2 din figura 2.38). Aceste blocuri
asigur un transfer foarte rapid de date att ntre procesoare, ct i ntre acestea i
memorie sau dispozitive periferice.

56

ARHITECTURA SISTEMELOR DE CALCUL

Fig. 2.38. Arhitectura sistemului Xeon biprocesor.

Pentru aceasta, arhitectura pune la dispozi ie componentelor sistemului


(controlerul SCSI, sloturile PCI pe 32 sau 64 de bi i) magistrale distincte, care
asigur separarea fluxurilor de date. Acest lucru este vital ntr-un server n care
schimbul de date dintre componente este realizat n flux continuu. Tot pentru o
sporire a vitezei de lucru, s-a recurs la utilizarea memoriei de tip RDRAM.
AMD Opteron biprocesor
Sistemul cu dou procesoare AMD Opteron 250 la 2,4 GHz folose te o plac
de baz dotat cu cipsetul NVIDIA nForce Professional 2200. Noutatea acestei
configura ii este c procesoarele nu mpart aceea i magistral pentru a accesa
memoria, ca la sistemele tradi ionale. n acel caz, magistrala reprezenta gtul
sticlei (bottleneck) sistemului, fiind un obstacol n calea proces rii la poten ialul
maxim al CPU-urilor. Pentru a evita aceast limitare, AMD a recurs la o arhitectur
cu memorie cache neuniform , de tip ccNUMA (vezi figura 2.39).
Fiecare procesor dispune de un controler de memorie, care poate accesa o
por iune de memorie rezervat doar lui. Sunt evitate astfel suprapunerile de date i
alterarea reciproc a datelor provenite de la procesoare diferite. n plus, cele dou
CPU sunt interconectate printr-o magistral de mare vitez , de tipul HyperTransport
(tehnologie patentat de AMD), care nu are leg tur direct cu memoria (spre
deosebire de un sistem clasic) i care asigur un dialog eficient ntre componente.
Cele dou procesoare pot accesa memoriile proprii cu laten e foarte mici (mult
mai mici dect la sisteme tradi ionale), precum i memoria care nu le apar ine direct,
dar cu laten e mari. Aceasta nu constituie un dezavantaj, deoarece un CPU lucreaz
n mod normal doar n zona de memorie care i este repartizat . Totu i aceast
tehnologie are i un punct slab: organizarea corect a memoriei este crucial . Astfel,
arhitectura NUMA trebuie suportat att de sistemul de operare, ct i de aplica ii.

Tipuri de arhitecturi

57

Fig. 2.39. Arhitectura sistemului AMD Opteron biprocesor.

Sistemele de operare Windows XP i Windows server 2003 suport n


ntregime aceast tehnologie, op iunea activndu-se automat la detectarea unui
sistem de acest tip.
Calculatoarele biprocesor se preteaz pentru diverse aplica ii complexe, care
necesit putere de calcul. Aici intr aplica iile grafice de modelare 3D, aplica iile
de re ea (mai ales dac sistemul este unul de tip nod coordonator de trafic sau
server pentru subre ele de diverse dimensiuni) i aplica iile specifice de prelucrare
a semnalelor n timp real. Tot ce au acestea n comun este faptul c sunt create
astfel nct s lucreze cu mai multe fire de execu ie simultan, conform principiilor
de calcul paralel. Aceste tipuri de algoritmi sunt create pentru a minimiza timpul de
execu ie foarte mare pe care l implic acele aplica ii n situa ii normale.
n ultima vreme, c tig popularitate un nou tip de aplica ii care pot folosi
arhitectura biprcocesor, anume sistemele embedded. n esen , este vorba despre
conectarea n paralel, pe aceea i plac , a dou (sau mai multe) procesoare
specializate, cu un scop bine definit, spre deosebire de calculatoarele personale,
care au scopuri multiple. De exemplu: prelucrarea unui semnal audio (codare i
decodare) i, eventual, transmiterea lui mai departe. Din aceast clas fac parte
procesoarele DSP de la firma Texas Instruments. Premisa acestor aplica ii este c
procesorul este adaptat s realizeze un num r restrns de opera ii cu scopuri bine
determinate. n plus, DSP-ul este capabil s ruleze aplica ii de sine st toare, care
ofere interfa cu utilizatorul i suport pentru memorare i transmitere c tre alte
componente conectate la acesta. De exemplu: un subsistem care, conectat la un PC,
codeze/decodeze fi iere audio n format mp3.

58

ARHITECTURA SISTEMELOR DE CALCUL

2.4.2.3. Arhitecturi multinucleu


Un procesor multinucleu combin dou sau mai multe nuclee ntr-un singur
cip fizic, care con ine fie un circuit integrat cu toate nucleele, fie mai multe circuite
integrate interconectate. Un procesor cu mai multe nuclee implementeaz o
arhitectur de multiprocesare ntr-un singur pachet fizic. Un procesor cu toate
nucleele pe acela i circuit integrat se nume te procesor multinucleu monolitic.
Nucleele pot partaja un singur cache de nivel nalt (de ex.: cache-ul L2
pentru procesoarele Core 2 de la Intel) sau pot avea cte un cache separat pentru
fiecare nucleu (de ex.: linia de procesoare dual-core de la AMD). Fiecare nucleu
implementeaz separat optimiz ri hardware, cum sunt: sisteme pipeline, execu ie
superscalar , extensii SSE, multithreading etc.
Un sistem cu n nuclee este eficient atunci cnd pe acesta se ruleaz n procese
(sau fire de execu ie) concurente i independente. Cele mai cunoscute procesoare
multinucleu sunt cele de pe pia a calculatoarelor personale (Intel i AMD), precum
i cele folosite n consolele de jocuri pe televizor (de ex.: procesorul Cell folosit la
PlayStation 3 are 8 nuclee, iar Xenon folosit la Xbox360 are 3 nuclee).
Avantajele sistemelor cu procesoare multinucleu sunt:
Nucleele sunt apropiate fizic, ceea ce nseamn c semnalele trebuie s
parcurg o distan
mai mic . Acestea permit procesoarelor s
interac ioneze cu o frecven mai mare dect dac ele ar fi fost separate
(dou procesoare pe o placa de baz ).
Procesoarele multinucleu ofer designerilor posibilitatea de a face pl cile
de baz mai mici dect pentru dou sau mai multe procesoare.
Un procesor cu dou nuclee consum mai pu in dect dou procesoare
cu cte un singur nucleu, deoarece acestea necesit mai mult putere s
transmit acelea i semnale n afara cipului,
Pre ul produsului este mai redus, pachetul fizic fiind de un singur
procesor n loc de mai multe.
Dezavantajele sistemelor cu procesoare multinucleu sunt:
De i, teoretic, dou procesoare pot dubla viteza de calcul, software-ul
trebuie optimizat pentru a beneficia de acest lucru, n func ie de
posibilitatea aplica iilor i a sistemului de operare de a crea fire de
execu ie (thread-uri) paralele i independente.
Integrarea a nc unui nucleu n acela i circuit integrat pune probleme
deosebite din punct de vedere termic, deoarece, practic, acela i pachet
fizic trebuie s disipeze de dou ori mai mult putere. Intel a rezolvat
aceast problem prin integrarea a dou nuclee dual-core i a unui cache
unificat n locul unui nucleu quad-core cu memorii cache separate. Astfel,
se for eaz lucrul numai al unuia dintre cele dou nuclee, n loc de toate
patru deodat , mic ornd puterea instantanee disipat de ntregul procesor.
Din punct de vedere al arhitecturii, procesoarele cu un singur nucleu
folosesc mai eficient resursele de tranzistori de pe cip. Astfel, o
companie care produce procesoare trebuie tot timpul s aib o linie de
procesoare cu un singur nucleu n paralel cu cele multinucleu.

Tipuri de arhitecturi

59

Exist mai mul i factori care limiteaz performan a real a unui sistem
multinucleu. n primul rnd, magistralele de sistem i de memorie sunt
partajate, astfel nct devin gtuiri (bottlenecks) care limiteaz fluxul
de date c tre nucleele multiple ale procesoarelor, n acela i mod n care o
osea cu prea pu ine benzi de circula ie produce uneori blocaje.

Intel Core 2
Procesoarele Intel Core 2 Duo sunt produse folosind tehnologia de fabricare
Intel pe 65 nm. Versiunea pentru desktop-uri a procesoarelor furnizeaz o cre tere
de 40% a performan ei i este cu peste 40% mai eficient din punct de vedere al
consumului de energie, n compara ie cu cel mai bun procesor Intel anterior.
Potrivit anali tilor independen i, procesoarele c tig 9 din cele 10 teste majore de
performan pentru desktop-uri, servere i calculatoare destinate jocurilor.
Familia de procesoare Intel Core 2 Duo este format din 5 procesoare pentru
platforme desktop destinate afacerilor, utiliz rii individuale i entuzia tilor pentru
tehnologie, precum i din 5 procesoare pentru notebook-uri.
Familia de procesoare Intel Core 2 Duo este bazat pe micro-arhitectura Intel
Core. Prin intermediul celor dou nuclee de execu ie, procesoarele pot executa cu
vitez un num r mai mare de instruc iuni. De asemenea, procesoarele pot opera
mai rapid la lansarea simultan n execu ie a mai multor aplica ii, de exemplu,
scrierea unui e-mail n acela i timp cu desc rcarea de muzic i scanarea antivirus.
Procesoarele Dual-core contribuie la mbun irea execu iei programelor, de
exemplu, n cazul vizion rii unor clipuri high-definition sau al protej rii PC-ului n
timpul tranzac iilor financiare pe Internet, crescnd, de asemenea, autonomia
bateriei n cazul notebook-urilor, care pot deveni astfel mai sub iri i mai u oare.
Inova iile aduse de Intel prin introducerea arhitecturii Intel Core 2 (Duo i
Exteme) sunt urm toarele:
Intel Wide Dynamic Execution mbun
te performan a i eficien a,
ntruct fiecare nucleu de execu ie poate realiza pn la 4 instruc iuni simultan,
folosind un pipeline eficient n 14 stagii.
Intel Smart Memory Access mbun
te performan a sistemului,
diminund laten a cipurilor de memorie i optimiznd astfel utilizarea l rgimii de
band disponibile pentru furnizarea datelor c tre procesor cnd i unde este nevoie.
Intel Advanced Smart Cache include o memorie cache L2 comun ,
proiectat pentru a reduce consumul de energie prin mic orarea traficului de
memorie, i m re te performan a, permi nd unui nucleu de execu ie s utilizeze
ntreg cahe-ul atunci cnd cel lalt nucleu nu este folosit. Aceast func ie este
asigurat pentru toate segmentele de pia : server, desktop i notebook.
Intel Advanced Digital Media Boost dubleaz efectiv viteza de execu ie a
instruc iunilor folosite cu prec dere n aplica iile grafice i multimedia.
Intel 64 Technology aceast mbun ire adus arhitecturii Intel pe 32 de
bi i ofer suport pentru procesarea pe 64 de bi i i permite procesorului s acceseze
o cantitate mai mare de memorie.
Nucleul de execu ie al procesorului Intel Core este reprezentat n figura 2.40.
Caracteristicile func ionale ale acestei arhitecturi sunt expuse n cele ce urmeaz .

60

ARHITECTURA SISTEMELOR DE CALCUL

Fig. 2.40. Nucleul de execu ie al procesorului Intel Core.

Unit ile de execu ie cu numere ntregi


Intel Core are trei asemenea unit i pe 64 bi i, fiecare dintre ele putnd
realiza opera ii pe 64 bi i ntr-un singur ciclu. Exist i o unitate pe 64 bi i de
numere complexe (CIU Complex Integer Unit), care realizeaz n mare parte
aceea i munc precum cea din P6, i dou unit i simple de numere ntregi (SIU
Simple Integer Unit), pentru opera iile uzuale, cum ar fi adunarea. Una din unit ile
SIU mparte portul 2 cu BEU (Branch Execution Unit), pe care Intel o nume te
unitatea de salt n execu ie). Pe acest port, SIU este capabil s lucreze n tandem cu
BEU pentru a executa instruc iuni macro (compara ii sau teste +jcc).
Posibilitatea de a realiza calcule pe 64 bi i ntr-un singur ciclu este o
premier n arhitectura Intel 86 i aceasta l pune naintea IBM, cu al s u Power
PC970, care are o laten de dou cicluri pentru opera ii cu numere ntregi. n plus,
datorit unit ilor ALU pe 64 bi i care sunt pe porturi separate, Intel Core poate
men ine un total de trei opera ii pe 64 bi i per ciclu.
Unit ile de execu ie n virgul mobil
Intel Core are dou unit i de execu ie n virgul mobil , care se ocup de
ambele tipuri de opera ii aritmetice: scalare i vectoriale.
Unitatea de execu ie de pe portul 1 se ocup cu adun ri sau cu alte opera ii
simple n virgul mobil , dup cum urmeaz :
scalar: simpl precizie (32 bi i) i dubl precizie (64 bi i);
vector: simpl precizie (4) i dubl precizie (2).

Tipuri de arhitecturi

61

Unitatea de execu ie n virgul mobil de pe portul 2 se ocup cu nmul iri i


mp iri cu vectori i scalari n formatele listate mai sus.
Procesarea vectorial real pe 128 bi i
Arhitectura Intel Core asigur laten a de un ciclu pentru opera iile vectoriale
pe 128 bi i. Intel realizeaz acest lucru f cnd magistrala pentru virgul mobil i
cea intern de date cu l imea de 128 bi i, facilitate care nseamn c este necesar
doar o singur micro-opera ie (care trebuie generat , trimis , programat i
realizat ) pentru fiecare opera ie vectorial pe 128 bi i. De aceea, noul design nu
numai c elimin dezavantajul generat de laten , dar n acela i timp mbun
te
decodarea i programarea l rgimii de band , pentru c jum tate din micro-opera ii
sunt generate pentru instruc iuni vectoriale de 128 bi i (vezi figura 2.41).

Fig. 2.41. Configura ia de procesare vectorial real pe 128 bi i.

Pipeline-ul
Intel Core are un pipeline realizat n 14 stagii, la fel de lung ca la Power PC
970, aproximativ jum tate din cel de la Pentium 4 Prescott (~ 30 etape) i pu in mai
lung dect cel de la P6 (12 etape). Aceasta nseamn c Intel Core este proiectat
pentru o cre tere lent a vitezei de ceas i nu scaleaz la fel de rapid ca Pentium 4.
Fereastra de instruc iuni
Deoarece partea din spate este mult mai lat dect a predecesorilor, buffer-ul
de reorganizare (Reorder Buffer, ROB) a crescut la 96 de intr ri, de la 40 ct avea
Pentium M, iar sta ia de rezervare (Reservation Station, RS) a fost m rit .
Fereastra de instruc iuni din Intel Core a fost m rit nu numai fizic (ROB +
RS), ci i virtual. Macro-fuziunea i micro-opera iile (descrise anterior), permit lui
Intel Core s re in mai multe instruc iuni cu un num r mai mic de resurse
hardware.

62

ARHITECTURA SISTEMELOR DE CALCUL

Deoarece l imea execu iei a fost m rit considerabil, vechiul hardware de


decodare al lui P6 ar fi fost inadecvat pentru a ine restul procesorului ocupat cu
micro-opera ii. Intel a trebuit s m reasc rata de decodare, n a a fel nct mai multe
micro-opera ii/ciclu s ajung la final. Primul lucru pe care l-a f cut a fost s adauge
nc un decodor simplu i rapid, ceea ce nseamn c decodorul hardware poate
trimite pn la 7 instruc iuni pe ciclu n coada de a teptare ROB (vezi figura 2.42).

Fig. 2.42. Structura hardware pentru decodarea instruc iunilor din arhitectura Intel Core.

AMD Opteron Dual-core


n figura 2.43 este reprezentat
Opteron Dual-core.

arhitectura simplificat

Fig. 2.43. Arhitectura AMD Opteron Dual-core.

a procesorului

Tipuri de arhitecturi

63

Tehnologic vorbind, AMD nu a realizat doar o simpl alipire a unei perechi


de nuclee K8 pe o bucat de siliciu, ci a efectuat o integrare la nivelul de baz ,
astfel nct cele dou nuclee s poat ac iona mpreun mai eficient. Fiecare dintre
nucleele K8 are propriul s u cache L2, independent, ncorporat, dar cele dou
nuclee mpart o coad comun a cererilor de sistem, un controler de memorie DDR
de tip dual-channel i un set de leg turi HyperTransport cu mediul exterior.
Accesul la resursele I/O este adjudecat printr-o re ea crossbar sau printr-un
switch, astfel nct fiecare CPU poate comunica direct i eficient cu memoria sau
cu dispozitivele I/O. n unele privin e, Opteron Dual-core se comport foarte
asem tor unui sistem cu multiprocesare simetric on-chip, transfernd date intern
ntre cele dou nuclee. Cu toate acestea, pentru restul infrastructurii I/O a
sistemului, Opteron Dual-core pare asemenea versiunii mononucleu.
Arhitectura de sistem pentru Opteron este foarte diferit de cea a
competitorului s u principal, Intel Xeon. Arhitectura AMD Direct Connect a fost
supra-dimensionat pentru procesorul Opteron mononucleu, anticipnd viitorul
dual-core. Fiecare procesor (mono- sau binucleu) are propriul s u controler de
memorie DDR local de tip dual-channel, iar procesoarele comunic ntre ele i cu
cipurile I/O prin leg turi HyperTransport punct-la-punct, la frecven a de 1 GHz.
rgimea total de band posibil prin cei 940 de pini ai procesorului Opteron 875
este de 30,4 GB/s. Cu o leg tur HyperTransport mai pu in, procesorul Opteron
275 poate atinge, teoretic, viteza de 22,4 GB/s.
Prin contrast, procesoarele Xeon actuale au o magistral front-side (FSB)
partajat , pe care lucreaz cipul Northbridge (cu controler de memorie) i ambele
procesoare. La frecven a de 800 MHz, l rgimea total de band este de 6,4 GB/s,
ceea ce poate fi un bottleneck n anumite situa ii.
AMD Phenom Triple-core
AMD are n produc ie un procesor cu trei motoare de procesare, proiectul
numindu-se AMD Phenom 3 chip (vezi figura 2.44).

Fig. 2.44. Arhitectura AMD Phenom Triple-core.

64

ARHITECTURA SISTEMELOR DE CALCUL

Noul microprocesor triple-core prezint propriul design i nu este un cip


quad-core cu un core dezactivat. Totu i, cipurile includ 2 MB de cache L3 partajat
i beneficiaz de caracteristicile micro-arhitecturii K10, cum sunt setul de
instruc iuni SSE4A i unit ile de prelucrare n virgul mobil (FPU) de 128 bi i.
Evident, cipurile dispun de posibilit i avansate de gestiune a puterii.
Potrivit unor estim ri ale laboratoarelor X-bit, fiecare motor al procesoarelor
quad-core AMD Opteron/Phenom ocup aproximativ 13% din aria fizic a
capsulei. Date fiind ntreaga dimensiune de 285 mm i num rul de aproximativ
218 cipuri candidate ob inute din fiecare bucat de 300 mm, este neobi nuit faptul
AMD a decis dezvoltarea unui design triple-core cu aria fizic de 247 mm i
250 de cipuri candidate ob inute de pe o bucat de 300 mm. Tehnic, AMD poate
realiza u or microprocesoare cu un num r impar de motoare de procesare datorit
arhitecturii sale Direct Connect. Cu versiunile sale Phenom i Athlon 64 2, AMD
are de comb tut procesoarele Intel Core 2 (dual-core i quad-core).
Intel i AMD Quad-core
Ca replic la lansarea CPU-urilor quad-core de la Intel, AMD a lansat
propria platform , Quad FX. Aceast platform este un sistem de multiprocesare
simetric , utiliznd dou CPU-uri Athlon 64 FX dual-core. De aceea, un calculator
personal Quad FX are dou procesoare fizice dual-core care lucreaz n paralel,
avnd n total, n sistem, patru nuclee CPU. Aceste dou CPU-uri sunt
interconectate printr-o magistral coerent dedicat tehnologiei HyperTransport.
n CPU-urile quad-core de la Intel, nucleele sunt organizate n perechi.
Nucleele fiec rei perechi pot interschimba informa ii direct (la fel se ntmpl la
AMD dual-core i la Intel Core 2 Duo), dar pentru a schimba informa ii cu unul
dintre nucleele localizate n cealalt pereche trebuie s acceseze magistrala extern
a CPU, ceea ce se ntmpl pe platforma Quad FX, unde CPU-urile comunic ntre
ele folosind magistrala extern coerent HyperTransport.
Diferen a dintre platforma Quad FX i arhitectura utilizat de c tre
procesoarele Intel quad-core se poate remarca n figurile 2.45 i 2.46.
Comparnd cele dou arhitecturi, se poate observa c platforma Quad FX
de ine un avantaj n ceea ce prive te accesul la memorie. Magistrala extern a
CPU-ului Intel quad-core (Front Side Bus, FSB) este utilizat pentru a accesa
memoria RAM i alte dispozitive prezente pe PC, precum i pentru comunicarea
ntre perechile de nuclee, cu viteze de pn la 8 GB/s.
Pe platforma Quad FX, CPU-urile folosesc un canal de comunica ie dedicat
(magistrala coerent HyperTransport), care transfer date cu pn la 4 GB/s n
fiecare direc ie. Magistrala HyperTransport ofer dou canale de comunica ie, cte
unul pentru fiecare direc ie. n procesoarele AMD, controlerul de memorie este
ncorporat n CPU i, ca urmare, memoria este accesat utiliznd o magistral
dedicat , separat de canalul folosit de c tre CPU pentru a accesa restul PC-ului.
Datorit faptului c platforma Quad FX folose te o arhitectur de
multiprocesare simetric , fiecare CPU i acceseaz propria memorie RAM.
Procesoarele utilizate pe platforma Quad FX pot accesa, de asemenea, memoria
controlat de un alt CPU.

Tipuri de arhitecturi

65

Fig. 2.45. Arhitectura Intel quad-core

Fig. 2.46. Arhitectura AMD Quad FX.

n ultima vreme, c tig popularitate sistemele de tip embedded. Este vorba


despre conectarea n paralel a mai multor procesoare specializate, pe aceea i plac ,
cu un scop bine definit. De exemplu, prelucrarea unui semnal audio (codare i
decodare) n format mp3. Procesorul este adaptat s realizeze un num r restrns de
opera ii specifice, iar DSP-urile sunt capabile s ruleze aplica ii de sine st toare,
care s ofere interfa cu utilizatorul, suport pentru memorare i transmitere.

3. STRUCTURA UNUI CALCULATOR

3.1. Unitatea central (procesorul)


Unitatea central (UC) este creierul calculatorului. Rolul UC este de execu ie
a programelor stocate n memoria principal , execu ie realizat n trei etape:
extragerea instruc iunilor;
decodificarea instruc iunilor;
execu ia lor propriu-zis .

Fig. 3.1. Schema bloc a unui calculator.

Unitatea de comand i control urm re te ordinea de execu ie a instruc iunilor


unui program i controleaz ntreaga activitate a unit ii centrale, astfel:
interpreteaz instruc iunile programului din memoria intern i comand
circuitele s execute instruc iunile;
comand i controleaz transferul de date dintre memoria intern i
dispozitivele periferice.
Unitatea aritmetic i logic (ALU) implementeaz func iile logice, i
execut opera iile aritmetice elementare: adunare, sc dere, nmul ire, mp ire.
Registrele interne pot fi:
de uz general;
cu destina ie specific .

Structura unui calculator

67

Registrele de uz general stocheaz valorile intermediare ale calculelor.


Registrele cu destina ie specific contorul de program (program counter, PC)
indic adresa noii instruc iuni care urmeaz a fi executat precum i adresa
instruc iunii curente care se execut .

3.1.1. Execu ia unei instruc iuni


Timpul necesar execu iei unei instruc iuni se nume te ciclu instruc iune.
Etapele n execu ia unei instruc iuni sunt:
1. nc rcarea instruc iunii din memorie n registrul de instruc iuni (fetch);
2. actualizarea PC pentru a indica urm toarea instruc iune care va fi executat ;
3. decodificarea instruc iunii din registrul de instruc iuni;
4. localizarea n memorie a eventualelor date utilizate de instruc iune;
5. nc rcarea datelor (dac este necesar) n registrele interne ale UC;
6. execu ia efectiv a instruc iunii;
7. stocarea rezultatelor la destina ia corespunz toare;
8. ntoarcerea la etapa nr. 1 pentru a executa urm toarea instruc iune.

3.1.2. Tipuri de unit i centrale


Criteriul dup care se clasific unit ile centrale este cel al setului de
instruc iuni:
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. Performan a unit ii centrale
Performan a UC se refer ntotdeauna la o aplica ie dat , existnd mai multe
moduri de evaluare a performan ei:
mips (mega instructions per second): milioane de instruc iuni pe secund ;
flops (floating point operations per second): opera ii n virgul mobil
executate pe secund (exprimat uzual n Mflops sau Gflops);
timpul n care un anumit procesor poate s rezolve o anumit secven
de program (o sarcin particular ).
Performan a este produsul a trei factori:
num rul de instruc iuni executate n cazul unei aplica ii date (Ni);
num rul mediu de perioade de ceas necesare pentru execu ia unei
instruc iuni (Np);
durata unei perioade de ceas (Tc).
Valoarea Np se exprim n cicluri de ceas/instruc iune, iar Tc se exprim n
timp/ciclu de ceas.

ARHITECTURA SISTEMELOR DE CALCUL

68
Rezult c :

P(t) = Ni Np Tc (sec).

(3.1)

Reducerea num rului de instruc iuni Ni se face optimiznd compilatorul i


utiliznd o arhitectur adecvat acestui compilator.
Np se reduce fie optimiznd compilatorul, aceasta nsemnnd utilizarea unor
instruc iuni de durat mai scurt , fie utiliznd o arhitectur paralel , deci utilizarea
mai multor instruc iuni simultan. La optimizarea Np, apar limit ri tehnologice legate
de implementarea procesorului.
Durata Tc ine exclusiv de o tehnologie avansat .
3.1.2.2. Indici de performan
Pn n 1992, se utiliza urm toarea pereche de m rimi: Whetstones i
Dhrystones, care ar tau practic viteza UC. ncepnd din 1992, s-a trecut la al i
indici de m surare a performan ei, i anume indicii SPEC, cu care s-a nlocuit
perechea anterioar .
Standard Performance Evaluation Corporation (SPEC) este o organiza ie
non-profit care a luat na tere n 1988 i are ca scop asigurarea testelor corecte i
utile pentru a face diferen ntre sistemele de pe pia . Testele SPEC sunt larg
folosite actualmente n evaluarea performan ei calculatoarelor, rezultatele fiind
afi ate pe site-ul SPEC. Acestea poart denumirea de note SPEC (SPECmarks).
Testele sunt concepute pentru a realiza situa ii din via a real . De exemplu,
SPECweb2005, realizeaz un test al performan ei serverului de web prin mai multe
tipuri de cereri paralele HTTP. Performan a microprocesorului este testat prin
rularea ctorva programe (de exemplu, compilatoare gcc) sau printr-un joc de ah.
Diverse cerin e sunt atribuite n func ie de importan a 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 p ile interesate pot compila codul folosind metoda
dorit , dar f
a schimba codul. Produc torii au lucrat la mbun irea
compilatoarelor pentru a realiza o ct mai bun acurate e a diferitelor teste SPEC.
Teste SPEC actuale sunt:
SPEC CPU2006 combin performan ele microprocesorului, memoriei
i compilatorului;
CINT2006 sau SPECint testeaz aritmetica numerelor ntregi, folosind
compilatoare, interpretoare, procesoare de text, programe de ah;
CFP2006 sau SPECfp, testeaz performan a n virgul mobil , cu
simul ri fizice, grafic 3D, procesare de imagine, chimie computa ional ;
SPECjms2007 testeaz performan a serviciului de mesaje Java;
SPECweb2005 testeaz performan a n PHP/JSP;
SPECviewperf testeaz performan a unui sistem 3D OpenGL, cu
ajutorul diferitelor sarcini de randare din aplica ii reale;
SPECapc testeaz performan a aplica iilor 3D cunoscute unui sistem dat;

Structura unui calculator

69

SPEC OMP2001 V3.2 evalueaz performan elor sistemului paralel,


folosind aplica ii OpenMP;
SPEC MPI2007 evalueaz performan ele sistemelor paralele, folosind
aplica ii MPI (Message Passing Interface);
SPECjvm98 evalueaz performan a unui sistem client, care ruleaz o
ma in virtual Java;
SPECjAppServer2004 evalueaz performan a aplica iilor bazate pe
Java 2 Enterprise Editition (J2EE);
SPEC jbb2005 evalueaz performan a serverului Java, prin emularea
unui sistem client-server;
SPEC MAIL 2001 evalueaz performan a unui server de mail, cu
testarea protocoalelor POP i SMTP;
SPECimap2003 evalueaz performan a unui server de mail la nivel de
ntreprindere, testnd protocoalele IMAP4 i SMTP;
SPECpower_ssj2008 testeaz eficien a energetic a sistemelor server;
SPEC SFS97_R1 evalueaz viteza de transfer a serverului de fi iere
NFS i timpul de r spuns;
SPECappPlatform evalueaz performan a platformelor web (Java EE
i NET).
Nota ob inut de sistemul testat se ob ine n modul urm tor.
Pentru SPECint, se ruleaz 6 programe care folosesc numere ntregi i se
ob in 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 i dou programe n C), din care se ob in 14 note. Nota final
se ob ine tot prin media geometric .
3.1.3. Organizarea unit ii centrale
Datele care trebuie prelucrate sunt aduse din registrele interne n registrele de
intrare ale ALU, unde acestea r mn n timpul n care ALU face opera iunea de
calcul aritmetic i logic. Rezultatul calculului preluat de registrele de ie ire ale ALU
este stocat ntr-unul din registrele de uz general.
Exist trei tipuri de instruc iuni (vezi figura 3.2):
instruc iuni registre-memorie: se ncarc date din memorie n registre
i viceversa. Datele pot fi folosite mai departe de alte instruc iuni sau
chiar de instruc iunile respective. n acest ultim caz, rezultatul este depus
n registre;
instruc iuni registre-registre: mut operanzii din registrul de la intrarea
ALU, execut asupra lor o anumit opera ie i depun din nou operanzii
n registru;
instruc iuni memorie-memorie: preiau operanzii din memorie, i
plaseaz n registrul de intrare ALU, se execut o anumit opera ie i se
stocheaz rezultatul n memorie.

70

ARHITECTURA SISTEMELOR DE CALCUL

Fig. 3.2. Schema unit ii centrale.

3.2. Memoria
Memoria reprezint acea parte a calculatorului n care sunt stocate
programele i datele. Practic, de aici procesorul preia datele de care are nevoie i
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 i rezultatele intermediare. Se observ c rolul s u principal este de a
prelucra i transmite datele. Capacitatea de memorare este mic , neputnd stoca, de
exemplu, programe.
Sistemul de memorie al unui calculator reprezint ansamblul unit ilor de
memorie, mpreun cu algoritmii necesari pentru controlul transferurilor i
memorarea datelor, algoritmi care pot fi implementa i hardware sau software.
Sistemul de memorie include att loca iile de memorie propriu-zise, ct i circuitele
necesare pentru adresarea loca iilor i controlul opera iilor de citire i scriere. O
parte din aceste circuite se g sesc n unitatea de memorie respectiv , altele sunt
externe, fiind de obicei integrate n controlerul unit ii de memorie.
Obiectivul principal n proiectarea oric rui sistem de memorie este realizarea
unei capacit i de memorare adecvate sistemului de calcul, cu un nivel acceptabil
de performan e, la un cost rezonabil. Trebuie subliniat faptul c nu ntotdeauna
obiectivul este acela de a ob ine o capacitate de memorare ct mai mare.

Structura unui calculator

71

3.2.1. Caracteristicile unit ilor de memorie


Capacitatea de memorare reprezint num rul loca iilor (celulelor) de
memorie con inute de o unitate de memorie. Aceasta depinde de tehnologia de
fabrica ie i se exprim n num r de cuvinte de informa ie memorat (cuv),
dimensiunea cuvntului fiind diferit de la un calculator la altul.
Timpul de acces la o unitate de memorie (tA) este timpul necesar localiz rii
unei celule de memorie pentru transferul de date la/de la loca ia de memorie
respectiv . Acesta reprezint intervalul de timp calculat din momentul n care o
unitate master lanseaz o comand c tre o unitate de memorie i pn n momentul
n care informa ia este transferat n sensul dorit.
Rata de acces (rA) este inversa timpului de acces, fiind exprimat n cuvinte
pe secund :
rA =

1
[cuv/s].
tA

(3.2)

Timpul de ciclu la o unitate de memorie (tC) este timpul minim ntre dou
accese succesive i reprezint timpul din momentul n care o unitate master
lanseaz o comand spre unitatea de memorie i pn cnd poate lansa o nou
comand la aceea i unitate de memorie. Uzual, tC > tA, diferen a lor numindu-se
timp de revenire (tR = tC tA). Acesta reprezint timpul minim necesar pentru
inactivarea primei comenzi, pn la activarea celei de-a doua.
Rata de transfer (rT) este inversa timpului de ciclu i reprezint cantitatea
maxim de informa ie (exprimat n cuvinte pe secund ) care poate fi transferat
la/de la memorie ntr-o secund :
rT =

1
[cuv/s].
tC

(3.3)

Costul total al unit ii de memorie (CT) include, pe lng costul celulelor


de memorie propriu-zise, costul circuitelor de acces la aceste celule. Pentru
compararea diverselor unit i de memorie ntre ele, se utilizeaz costul unitar
(CU), care reprezint costul de memorare a unui cuvnt de informa ie. Costul unitar
se determin prin raportarea costului total (CT) la capacitatea de memorare (CM):
CU =

CT
[cost/cuv].
CM

(3.4)

Cu ct memoria este mai rapid , cu att costul unitar este mai mare.
Modul de acces la loca iile unit ii de memorie arat ordinea n care
informa ia memorat poate fi accesat . Acesta poate fi serial sau paralel.

72

ARHITECTURA SISTEMELOR DE CALCUL

Dac loca iile de memorie pot fi accesate n orice ordine, iar timpul de acces
este independent de loca ia accesat , atunci accesul este aleator, iar unitatea de
memorie se nume te memorie cu acces aleator (Random Access Memory, RAM).
n general, memoriile semiconductoare sunt memorii cu acces aleator.
Prin ierarhizarea unit ilor de memorie, blocurile de date cu probabilitatea
cea mai mare de accesare sunt aduse pe niveluri superioare, mai aproape de
unitatea central (localizare spa ial ). Dintre acestea, datele cele mai recent
accesate sunt p strate n apropierea procesorului (localizare temporal ).

3.2.2. Ierarhizarea memoriei


Pornind de la func iile realizate de fiecare tip de memorie, de la rolul i 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 i cele mai scumpe.
Sunt utilizate de procesor, fiind de dou feluri: cu destina ie specific i de uz
general.
Registrele cu destina ie specific au un rol precis i memoreaz numai
anumite tipuri de informa ie (de exemplu, contorul de program). Din acest motiv,
pentru ca procesorul s realizeze o anumit opera ie, este accesat un anumit
registru, i anume, acela care memoreaz tipul de informa ie dorit. n acest fel, nu
este necesar ca registrul s fie accesat prin adres , fapt care m re te viteza de acces
la informa ia memorat n registre.
Registrele de uz general sunt registre nespecializate, care pot fi utilizate
explicit prin instruc iuni-program. Capacitatea registrului depinde de tipul
procesorului i nu dep
te de obicei lungimea cuvntului de memorie. Num rul
de registre de memorie este mic, utilizndu-se de regul 1620 registre.
3.2.2.2. Memoria intern
Con ine programele i datele pentru toate procesele n curs de execu ie n
sistemul de calcul. Ct timp func ioneaz procesorul, el cite te i 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 p stra informa ia, trebuie restabilit
periodic sarcina electric cu care a fost nc rcat condensatorul circuitului
de memorie. Pentru aceasta, este necesar un circuit de remprosp tare a
memoriei (refresh).
Memoriile SRAM (Static Random Access Memory) sunt memorii RAM
statice, realizate cu circuite basculante bistabile de memorie, care
streaz informa ia att timp ct sistemul este sub tensiune.
La calculatoarele PC, cipurile de memorie sunt asamblate pe pl ci 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 ad ugarea 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 i
avnd o capacitate de memorare relativ mare (sute de MB). Memoria principal
streaz datele active, care vor fi apelate de c tre 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 fiec rui program. Viteza de lucru a memoriei principale
este mult mai mic dect cea a registrelor procesorului (cu 23 ordine de m rime),
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 men ine informa iile privind configura ia calculatorului, cum
ar fi data, ora i alte op iuni de pornire care pot fi setate de utilizator.
Memoria cache este o memorie specializat , utilizat n scopul sc derii
timpului de acces la datele din memoria intern . Are capacitate mic i vitez mare,
fiind inserat logic ntre procesor i 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 i de cteva ori mai scump . Se urm re te ca procesorul
lucreze ct mai mult timp cu memoria cache, i nu cu memoria principal .
Pentru o memorie cache bine implementat , procesorul lucreaz cu aceasta circa
7090 % din timpul total de lucru cu memoria. i acest tip de memorie poate fi
extins prin ad ugarea de cipuri suplimentare. Utilizarea memoriei cache se bazeaz
pe dou caracteristici ale execu iei programelor n sistemele de calcul clasice:
1. programele tind s utilizeze date i instruc iuni situate unele lng altele
sau n zone apropiate (principiul vecin ii);
2. programele folosesc n mod repetat adresarea acelora i blocuri de memorie.

74

ARHITECTURA SISTEMELOR DE CALCUL

Plecnd de la aceste constat ri, memoria cache con ine la un moment dat
cpii ale unor date din memoria principal . nainte de orice acces la memoria
principal , se verific dac nu cumva informa ia c utat se g se te n memoria
cache. Dac aceasta exist , se preia de acolo cu o vitez superioar .
Memoria intermediar , numit i memorie cache pentru supor i externi sau
memorie cache de disc (Disk-Cached Memory), este plasat ntre memoria
principal i memoria secundar , ac ionnd ntr-o manier similar memoriei
cache. Are rol de memorie tampon, care p streaz blocurile de date cel mai recent
accesate de un program, duplic ri 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 compara ie cu memoria intern , memoria
extern se caracterizeaz prin vitez de acces mai sc zut , cost mai redus,
capacitate mai mare, avnd rolul de a m ri spa iul de memorare al unui sistem de
calcul. n memoria extern sunt stocate i programele cu ajutorul c rora se realizeaz
prelucrarea datelor. Accesul la memoria extern nu se face direct, ci prin intermediul
memoriei interne. n compara ie cu memoria intern , memoria extern este:
nevolatil ,
cu acces pozi ional i 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 i de la
un suport la altul (magnetic, optic, semiconductor).
Memoria secundar este organizat pe un suport extern de memorie, de
regul disc magnetic, i 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 spa iu 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 spa iu de adrese care dep
te spa iul de adrese al memoriei principale.
Acest concept a ap rut 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 i memorie de arhivare sau ter iar .
Memoria expandat este o memorie suplimentar la calculatoarele de tipul
PC, pe care utilizatorul o acceseaz prin intermediul mecanismului EMS (Extended
Memory Specification). Este alc tuit din bancuri de memorie de 64 KB RAM i
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 bi i. 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 i
n volume semnificative.
Memoria de arhivare sau memoria ter iar este o memorie nevolatil de
dimensiuni foarte mari, dar i cu timpi de acces foarte mari (zeci de secunde).
streaz date pasive, stocate doar n scop de arhivare, pe o perioad de timp
nedeterminat i n volume semnificative. Accesul la aceste date se face foarte rar.
Memoria ter iar este realizat cu unit i de memorare pe suport deta abil, optic
(CD-ROM, DVD-ROM), magnetic (band
sau caset
magnetic ) sau
semiconductor (stick-uri i card-uri de memorie). Trebuie subliniat faptul c
memoria ter iar reprezint colec ia de discuri i casete existente, i nu unit ile de
memorie propriu-zise.

3.2.3. Memoria RAM


Circuitele integrate de memorie sunt memorii semiconductoare, realizate n
diverse tehnologii de fabrica ie (bipolare sau MOS). Acestea sunt de mai multe
tipuri, cu diferite raporturi performan e/cost, avnd domenii specifice de utilizare:
memoriile cu acces aleator (RAM) i memoriile cu acces pentru citire (ROM).
O memorie cu acces aleator (RAM = Random Access Memory) este acea
memorie la care loca iile de memorie pot fi accesate n orice ordine, iar timpul de
acces nu depinde de loca ia accesat . Memoriile RAM pot fi de dou tipuri: SRAM
(Static RAM) i DRAM (Dynamic RAM).
3.2.3.1. Memoria SRAM
Memoria SRAM (Static RAM) este o memorie n care informa ia 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 i citit i scris , SRAM are magistrala bidirec ional de date
i dou cicluri diferite de memorie: ciclul de citire i 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

76

ARHITECTURA SISTEMELOR DE CALCUL

Memoria SRAM poate fi de dou tipuri:


Memoria SRAM asincron nu necesit semnal de ceas pentru
sincronizarea cu unitatea master. Memoriile asincrone sunt mai lente
dect cele sincrone, dar sunt mai ieftine i au un consum de energie mic.
Aceste memorii sunt realizate ntr-o gam foarte divers de performan e,
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 func iona la tensiuni de
alimentare mici, dar sunt scumpe. Ele pot fi de mai multe tipuri: PBS
(Pipelined Burst Synchronous), FTS (Flow Through Synchronous) 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 capacit i mici, de zeci-sute de
KB, i care memoreaz cuvinte de 8 bi i. Sistemele performante, care necesit
viteze i capacit i de memorare mari, folosesc memorii SRAM rapide pentru
implementarea memoriei cache.
Din punct de vedere constructiv, cele dou tipuri de memorii SRAM sunt
similare. Ele difer doar prin algoritmul de transfer al datelor i, implicit, prin
performan e. De aceea, n cele ce urmeaz vor fi analizate elementele comune,
definitorii pentru SRAM, iar exemplific rile vor fi realizate pentru memoria
asincron .
Schema bloc a memoriei SRAM este ilustrat n figura 3.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 informa ia n mod dinamic. Este realizat n tehnologie CMOS
(Complementary MOS), cu consum de energie foarte mic. Datorit
particularit ilor constructive ale celulelor de memorie, informa ia 0L este
memorat stabil, dar informa ia 1L se pierde n timp i necesit mprosp tarea
periodic a memoriei, de unde i denumirea acesteia.
Indiferent de modul de realizare, memoria DRAM este mult mai lent 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, i variaz n func ie
de tipul accesului la memorie.
Astfel, n acces aleator, timpul de acces este mare (zeci de ns), ns scade
foarte mult (n func ie de tipul memoriei DRAM), dac se restric ioneaz accesul n
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 densit i mari de integrare. Circuitele de memorie DRAM
au, prin urmare, capacit i de memorare mari, i, implicit, un num r mare de linii
de adres . Simbolul memoriei DRAM este ilustrat n figura 3.6.

Fig. 3.6. Simbolul memoriei DRAM.

Memorarea datelor se bazeaz pe stocarea i transferul de sarcini electrice, i


nu pe mecanisme de comutare, ca n cazul memoriilor SRAM. Fiecare bit de
informa ie este memorat prin nc rcarea sau desc rcarea unui condensator. Cnd
condensatorul este nc rcat, se spune c se memoreaz valoarea 1L, iar cnd acesta
este desc rcat, valoarea memorat este 0L. Fa de celula SRAM, mecanismul de
memorare nu presupune consum de curent de la sursa de alimentare.
Schema bloc de baz a memoriei DRAM este trasat n figura 3.7.
Celulele de memorie sunt dispuse ntr-o arie p trat sau dreptunghiular de
loca ii de memorie, fiecare loca ie memornd un cuvnt de m bi i, Semnalele de
comand ac ioneaz prin intermediul logicii de control. Eventual, memoria DRAM
poate avea circuit intern de mprosp tare, care presupune un num tor de adrese
de rnd i un ceas de timp real. n func ie de tipul memoriei DRAM, ciclurile de
mprosp tare 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 mprosp tare din exterior,
prin care se transmit memoriei adresa de rnd (AR) i semnalul RAS ,

a se activa semnalul CAS . Unitatea master extern este anun at


periodic s fac refresh de c tre un ceas de timp real, care este
programat software de c tre sistemul de operare.
CBR (CAS Before RAS) este tot o metod de mprosp tare din exterior,
prin care se transmit semnalele CAS i RAS , activate n aceast
ordine. n acest caz, memoria dispune de un num tor de adrese intern,
pentru indicarea liniei care trebuie mprosp tat , f
a fi nevoie de
transmiterea adresei din exterior. De asemenea, perioada de repeti ie a
ciclurilor de refresh este determinat de un ceas de timp real extern.
Auto-mprosp tare cu ajutorul circuitelor interne memoriei DRAM. n
interior, memoria con ine un num tor de adrese de rnd, un ceas de
timp real i o logic de control pentru generarea semnalelor CAS i

RAS , conform metodei CBR.


Memoria DRAM poate fi de dou tipuri: asincron i sincron .
Memoria DRAM asincron nu necesit semnal de ceas pentru
sincronizarea cu unitatea master apelant . Ca i la SRAM, memoriile DRAM
asincrone sunt mai lente dect cele sincrone, dar sunt mai ieftine i au un consum
de energie mai mic. Dintre memoriile DRAM asincrone, se pot enumera: FPM
(Fast Page Mode), EDO (Extended Data Out) i BEDO (Burst EDO) DRAM. La
toate memoriile, accesul aleator este lent. n acces aleator, timpul de acces fa de
RAS (tRAC) este de 5070 ns, iar timpul de ciclu (tC) este de 90120 ns.

Structura unui calculator

79

O alt categorie de memorii DRAM este cea care utilizeaz o interfa


sincron . Prin implementarea unei interfe e sincrone, s-au eliminat perioadele de
teptare de c tre procesor, ob inndu-se, de asemenea, unele avantaje
suplimentare. n cazul func ion rii sincrone, se memoreaz anumite date de la
procesor n circuitele latch ale memoriei DRAM, sub controlul ceasului de sistem.
Aceste circuite p streaz adresele, datele i semnalele de control, ceea ce permite
procesorului s execute alte opera ii. Dup un num r specific de cicluri de ceas,
datele devin disponibile i procesorul le poate citi de pe liniile de ie ire.
Un alt avantaj al unei interfe e sincrone este c ceasul sistemului este
singurul semnal de sincronizare care trebuie furnizat memoriei DRAM. Aceasta
elimin necesitatea propag rii semnalelor multiple de sincronizare. Intr rile sunt de
asemenea simplificate, deoarece semnalele de control, adresele i datele pot fi
memorate f
temporiz rile de setare i men inere monitorizate de procesor.
Avantaje similare se ob in i pentru opera iile de ie ire.
O alt categorie este reprezentat de memoriile DRAM bazate pe
protocoale. Categoriile precedente de memorii au linii separate de adrese, date i
control, ceea ce limiteaz viteza la care poate func iona circuitul cu tehnologia
curent . Pentru eliminarea acestui dezavantaj, au fost proiectate memorii DRAM
bazate pe protocoale, care implementeaz toate aceste semnale pe aceea i
magistral . Cele mai cunoscute memorii din aceast categorie sunt DRDRAM
(Direct Rambus) i SLDRAM (SyncLink) DRAM.
Memoria DRAM sincron necesit un semnal de ceas pentru validarea
semnalelor de control. Ceasul primit din exterior permite operarea memoriei
sincron cu unitatea master. De i accesul aleator este comparativ cu cel al
memoriilor asincrone, accesul n mod pagin este mult mai rapid.
Memoriile sincrone pot fi de mai multe tipuri: SDRAM (Synchronous
DRAM), DDR SDRAM (Double Data Rate SDRAM), RDRAM (Rambus
DRAM), DRDRAM (Direct Rambus DRAM) etc. Accesul aleator este, de
asemenea, lent, fiind pu in mai rapid dect la memoriile asincrone, datorit
tehnologiei (memoriile sincrone au ap rut ulterior). n acces aleator, tRAC este de
4060 ns, iar tC este de 80110 ns. Accesul n mod pagin este mult mai rapid dect
la memoriile asincrone i depinde de frecven a semnalului de ceas de sincronizare.

3.2.4. Accesul la loca iile de memorie


n sistemele cu microprocesoare, modulele de memorie se conecteaz pe
magistrala sistemului. Accesul la loca iile de memorie se realizeaz prin cicluri de
transfer (cicluri ma in ), folosindu-se semnalele magistralei (de adres , date i
comenzi). Modul de desf urare a diferitelor tipuri de cicluri de transfer se
reprezint prin diagrame de timp (evolu ia 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 comunica ie pe magistral i de tipul circuitelor de
memorie utilizate.

ARHITECTURA SISTEMELOR DE CALCUL

80

Ciclu de citire din memorie


Semnale de adres
S. de c-d MEMR\
(citire memorie)
Semnale de date

Adresa valid

(nalt impedan )
Date valide (citite)
tAR
tMEMR
tC

Ciclu de scriere n memorie


Adresa valid

Semnale de adres
S. de c-d MEMW\
(scriere memorie)
Semnale de date

(nalt impedan )
Date valide (scrise)
tAW

tMEMW
tC

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 i un ciclu de scriere n memorie.
La proiectarea unui modul de memorie, trebuie s se in cont de urm torii
parametri de timp:
timpul de acces la citire (tAR) intervalul de timp ntre momentul apari iei
adresei valide i momentul n care data citit este prezent pe liniile de
date. Uneori, timpul de acces se m soar n raport cu momentul apari iei
semnalului de comand MEMR\. Dac timpul de acces al circuitului de
memorie folosit este mai mare dect timpul permis pe magistral , atunci
interfa a modulului de memorie trebuie s prelungeasc ciclul de transfer,
prin dezactivarea pe un timp limitat a semnalului READY c tre procesor.
timpul de men inere a semnalului de comand MEMR\ activ (tMEMR).
durata unui ciclu complet de citire sau scriere (tC).
timpul de acces la scriere (tAW) intervalul de timp ntre momentul n care
adresa este valid i momentul de generare a comenzii de scriere; n
acela i mod ca la citire, dac circuitul de memorie folosit are un timp de
acces mai mare, atunci interfa a modulului trebuie s dezactiveze temporar
semnalul READY pentru prelungirea ciclului de transfer. Momentul
activ rii semnalului de scriere se m soar i n raport cu momentul n care
data este prezent pe magistral .
timpul de men inere a semnalului de scriere (tMEMW), de obicei < tMEMR.

Structura unui calculator

81

Observa ii:
1. la citire, data este generat dup apari ia semnalelor de adres i de
comand i se men ine un timp scurt dup dezactivarea acestora;
2. la scriere, data trebuie s apar pe magistral naintea semnalului de scriere
i s fie valid pe toat durata de activare a semnalului de comand ;
3. timpul de acces acoper ntrzierile care apar ntr-un modul de memorie
datorit circuitelor de decodificare a adresei i de selec ie a
amplificatoarelor de intrare sau de ie ire;
4. proiectantul trebuie s aleag circuite de memorie cu parametri de timp
acoperitori pentru restric iile impuse pe magistral i s ia n calcul
ntrzierile produse de circuitele de amplificare din interfa
i de pe
magistral .
Exist dou moduri de organizare a octe ilor n memorie, i anume:
a) Big Endian;
b) Little Endian.
Exemplu. Se consider c se lucreaz pe cuvinte de 32 bi i. Cele dou
moduri de organizare a octe ilor sunt reprezentate n figura 3.9.

Fig. 3.9. Modurile de organizare a memoriei de tip Big Endian (a) i Little Endian (b).

Microprocesoarele PowerPC, Motorola 6800 i HP, folosesc o organizare a


octe ilor n memorie de tip Big Endian, iar microprocesoarele DEC i Intel folosesc
modul Little Endian.

82

ARHITECTURA SISTEMELOR DE CALCUL

3.2.5. Metodologia de proiectare a memoriilor statice


Proiectarea unui modul de memorie se face pe baza unor parametrilor de
proiectare impu i:
capacitatea memoriei;
modul de organizare (unitatea elementar de acces la memorie: octet,
cuvnt, cuvnt dublu);
tipul de magistral pe care se conecteaz (num rul semnalelor de date i
de adres , tipurile semnalelor de comand , parametrii de timp pentru
ciclurile de transfer);
amplasarea modulului de memorie n spa iul de adresare al procesorului,
exprimat prin adresa sa de nceput (trebuie s fie un multiplu al
capacit ii modulului);
tipul de circuit de memorie disponibil (poate fi un parametru impus sau
unul ales de proiectant);
alte cerin e speciale (de exemplu: accesul dual de pe dou magistrale,
remprosp tarea controlat centralizat, implementarea unor mecanisme
de detec ie a erorilor etc.)

3.2.6. Metodologia de proiectare a memoriilor dinamice


Proiectarea memoriilor dinamice este, n principiu, similar proiect rii
memoriilor statice, cu urm toarele amendamente:
trebuie s se adauge un mecanism de remprosp tare periodic a
memoriei (refresh);
adresele trebuie multiplexate (generarea secven ial pe acelea i semnale
a adresei de linie i a adresei de coloan );
trebuie s se genereze semnalul de validare a adresei de linie (RAS
Row Address Select) i semnalul de validare a adresei de coloan (CAS
Column Address Select);
selec ia circuitelor se face cu semnalele RAS i CAS (excep ie fac
circuitele tip EDO-DRAM, cu semnal separat pentru selec ia circuitului).
Pentru circuitele RAM dinamice, multiplexarea n timp a adreselor a fost
necesar pentru a reduce num rul de pini ai circuitului de memorie i, implicit,
dimensiunea acestuia. De notat c circuitele dinamice au o capacitate relativ mare,
ceea ce impune un num r mare de linii de adres pentru selec ie. Organizarea
intern a unei memorii dinamice este sub forma unei matrice, cu linii i coloane, iar
selec ia unei loca ii se face prin specificarea adresei sale de linie i de coloan .
Remprosp tarea periodic a memoriei este necesar deoarece informa ia
este p strat un timp limitat dup ultima opera ie de citire sau scriere
(condensatorul care stocheaz informa ia se descarc n timp).
n figurile 3.10, 3.11, 3.12 s-au reprezentat diagramele de timp pentru ciclurile
de citire din memorie, scriere n memorie i, respectiv, remprosp tare a memoriei.

Structura unui calculator


Adrese

Adres linie

Adres coloan

RAS\
CAS\
WR\
Date
tRAS

Date citite
tCAS

CAS

tacces
tciclu
Fig. 3.10. Ciclu de citire din memorie.
Adrese

Adres linie

Adres coloan

RAS\
CAS\
WR\

Date
tRAS

Date de scris
tCAS

CAS

tacces
tciclu
Fig. 3.11. Ciclu de scriere n memorie.
Adrese

Adres linie

RAS\
CAS\
WR\
Fig. 3.12. Ciclu de remprosp tare a memoriei.

83

84

ARHITECTURA SISTEMELOR DE CALCUL

Controlul procesului de remprosp tare poate s se fac la nivelul modulului


de memorie sau centralizat la nivelul ntregului sistem. Indiferent de metoda aleas ,
proiectantul trebuie s se asigure c ciclurile de remprosp tare nu se suprapun
peste ciclurile obi nuite de citire sau scriere. Remprosp tarea se face simultan la
nivelul unei linii ntregi din matricea de memorie.

3.2.7. Modulele de memorie


Modulele de memorie sunt pl cu e cu circuite integrate care includ conectori
externi, pentru a fi introduse n soclurile disponibile pe placa de baz . Modulele de
memorie sunt prev zute cu conectori CELP (Card Edge Low Profile), avnd 3083
contacte pe fiecare parte a modulului. Conectorii afla i la baza modulelor de memorie
permit ad ugarea sau scoaterea lor de pe placa de baz f instrumente speciale.
n ceea ce prive te necesarul de memorie ntr-un sistem de calcul, este demn
de re inut c prin cre terea dimensiunii acesteia sistemul devine mai rapid,
deoarece microprocesorul cite te datele din RAM foarte repede, nea teptnd citirea
de pe hard disk-ul mult mai lent, f
a mai lua n considera ie 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 instala i,
performan ele sistemului r mn aproape constante.
Totu i exist anumite aplica ii care cer resurse deosebite i ndeosebi RAM.
Este cazul profesioni tilor care lucreaz mai ales n domeniul graficii (att static
proiectare CAD, fotografie, design, ct i dinamic anima ii, spoturi publicitare,
filme, aplica ii tiin ifice, simul ri etc.), fiind necesari peste 256 MB de RAM. Un
alt caz deosebit este al serverelor de re ea, unde necesarul de RAM este uria i
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 pl cu ele de memorie. Toate aceste bancuri
sunt v zute ca ni te por i spre memoria fizic instalat i au dimensiuni date de
imea magistralei microprocesorului (inclusiv bi ii de paritate), de exemplu, de 72
de bi i pentru Pentium.
n sloturile aceluia i banc, se introduc ntotdeauna memorii de acela i tip
(avnd n special timpi de acces identici) i aceea i dimensiune, pentru a nu
provoca acces ri gre ite de memorie sau chiar blocarea sistemului de calcul.
Exemplu. Pentru un banc cu dou sloturi: 2 pl ci 1 MB sau 2 pl ci 2 MB.
n bancuri diferite, se pot monta (teoretic) memorii diferite (ex.: 2 1 MB n
bancul 0 i 2 4 MB n bancul 1), dar, practic, este bine s se utilizeze valori pare.
Exemplu. n loc de 2 4 MB + o pl cu de 1 MB ar trebui montate 2 4
MB + o pl cu de 2 MB), pentru a evita unele nepl ceri.
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 apari ia unui
bottleneck ntre procesor i memorie. Arhitectura dual-channel presupune o
tehnologie prin care se poate dubla transferul dintre RAM i controlerul de
memorie. Controlerele de memorie care suport dual-channel utilizeaz pentru
transfer dou canale de date de 64 bi i, rezultnd o l ime a c ii de date de 128 bi i.
Pentru a putea beneficia de avantajele arhitecturii dual-channel, este nevoie de
dou sau mai multe module de memorie instalate n bancurile corespunz toare. De
obicei, aceste bancuri sunt colorate diferit pe placa de baz . Cele dou canale permit
accesul fiec rui modul de memorie la controler, crescnd astfel l rgimea 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 i unul double-sided, dar c tigul
de performan i 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 c ruia acesta
apar ine), se poate instala o pereche de dou module n bancul 0 i o pereche de
alt capacitate n bancul 1, att timp ct acestea func ioneaz la aceea i vitez . n
acest mod, sistemul va folosi arhitectura dual-channel.
Chiar i module care func ioneaz la frecven e diferite pot fi folosite n
modul dual-channel, dar, n acest caz, toate modulele vor rula la frecven a celui
mai lent modul. De i arhitectura permite cel pu in teoretic toate aceste
combina ii, foarte multe pl ci 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 re inut faptul c arhitectura dual-channel este o tehnologie care ine
de pl cile de baz , i nu de memorii. Cu alte cuvinte, orice dou module de
memorii compatibile vor suporta att opera ii single-channel, ct i dual-channel.

86

ARHITECTURA SISTEMELOR DE CALCUL

3.2.8. Formatele fizice de memorie


Pl cu e cu cipuri de memorie exist sub urm toarele tipuri de ncapsul ri:
DIP (Dual In-line Package)
Este varianta clasic de ncapsulare, n care cipul este prev zut cu un num r
de pini pe partea sa inferioar (de ambele p i), pini care vor fi introdu i n socluri
speciale (vezi figura 3.14). Dezavantajul este c , din cauza rezisten ei reduse pinii,
se pot rupe destul de u or. Acest tip de ncapsulare este prezent pe sisteme (i80286)
i pl ci video vechi.

Fig. 3.14. Modul de memorie DIP.

SOJ (Small Outline J Lead)


Este o metod de ncapsulare mai modern , reg sit la modulele SIMM i
cipurile BIOS (uneori). Se aseam
cu DIP-ul, cu diferen a c , n loc de pini, sunt
folosite ni te 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 suprafa foarte redus i, de aceea, este folosit pe pl ci PCMCIA, notebook-uri
i unele pl ci 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 ata ate cu
ajutorul unor bilu e din cositor, plasate sub cip. Acestea sunt destul de ieftine i
prezint propriet i bune de conductivitate electric i termic (permit o mai bun
disipare a c ldurii, n special n versiunea cu suport ceramic). Exist mai multe
variante ale ncapsul rii BGA (Fine BGA i Tiny BGA), folosite n majoritatea
modulelor de memorie de azi, inclusiv memoriile Rambus (vezi figura 3.17).

Fig. 3.17. Modul de memorie BGA.

SIMM (Single In-line Memory Module)


Este o pl cu de memorie care se introduce n sloturi pe placa de baz .
Elimin problemele de compatibilitate, datorit standardiz rii ei de c tre
produc torii pl cilor de baz . Memoriile SIMM folosesc o magistral de memorie
pe 32 de bi i i exist n dou variante (vezi figurile 3.18 i 3.19):
cu 30 de pini pentru cantit i mici de memorie (< 8 MB);
cu 72 de pini pentru cantit i mai mari de memorie (> 8 MB).
Memoriile SIMM pot fi att single sided (cu cipuri de memorie pe o singur
parte), ct i double sided (cipurile sunt dispuse pe ambele fe e). SIMM-urile
double sided sunt realizate din dou SIMM-uri single sided, conectate mpreun pe
acela i 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.

88

ARHITECTURA SISTEMELOR DE CALCUL

SODIMM (Small Outline Dual In-line Memory Module)


SIMM-urile de 72 de pini sunt convenabile pentru calculatoare desktop, dar
sunt prea mari pentru laptop-uri. n consecin , produc torii de calculatoare
miniaturizate au transformat SIMM-urile cu 72 de pini, astfel nct, n locul
conect rii la un loc a pinilor de pe cele dou p i ale modulului, au introdus ni te
spa ii pe fiecare parte, pentru a avea dou semnale separate. Astfel, lungimea
modulului s-a redus la jum tate, rezultatul fiind Small Outline Dual In-line
Memory Module, numit astfel datorit dimensiunilor reduse ale modulului i a celor
dou linii de conectori independen i de pe fiecare parte a modulului (vezi figura
3.20). Un SODIMM cu 72 de pini are lungimea jum tate fa de SIMM-ul cu 72 de
pini (2,35 inci), fiind echivalent unui SIMM 72 cu conectorii pe ambele p i ale
modulului.

Fig. 3.20. Modul de memorie SODIMM.

SIPP (Single In-line Pin Package)


De i 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 i 1 inci n ime. De i din punct
de vedere func ional SIMM-urile i SIPP-urile pot avea acelea i cipuri de memorie,
aceea i tehnologie i aceea i capacitate, ntre ele exist diferen e care le fac
incompatibile. Dac se dore te 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

DIMM (Double In-line Memory Modules)


Sunt module de memorie cu l imea magistralei de 64 de bi i, folosite la
implementarea memoriilor SDRAM i DDR SDRAM (vezi figura 3.22). DIMMurile SDRAM folosesc 168 de pini, pe cnd cele DDR SDRAM au 184 de pini. Ele
mai difer i prin num rul fantelor de pe partea inferioar , cele SDRAM avnd dou ,
iar cele DDR, numai una. Din punct de vedere al designului i al tensiunii de
alimentare, exist 4 variante de DIMM-uri: de 3,3V sau 5V i cu buffer (buffered)
sau f buffer (unbuffered). Cele mai des ntlnite sunt de tipul 3,3V, f buffer.

Fig. 3.22. Modul de memorie DIMM.

RIMM (Rambus In-line Memory Modules)


Este tipul de ncapsulare folosit la memorii Rambus (vezi figura 3.23). Este
foarte asem tor DIMM-ului, dar folose te set ri diferite ale pinilor. Se remarc
prin prezen a de radiatoare pe ambele fe e ale modulului de memorie, pentru a
preveni nc lzirea excesiv a acestuia. Se prezint i n varianta XDIMM (vezi
paragraful 3.2.9 XDR DRAM)

Fig. 3.23. Modul RIMM Rambus.

3.2.9. Formatele logice de memorie


nc rcarea cipurilor de memorie prin adresarea liniilor i coloanelor consum
timp de ordinul nanosecundelor, ceea ce provoac ntrzieri la r spunsurile
furnizate microprocesoarelor. Dac se adaug i timpul necesar remprosp rii, se
ob in limitele performan ei cipului de memorie. Pentru a m ri performan ele
memoriei, proiectan ii au dezvoltat o serie de tehnologii care s dep easc 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 suprema ia. Toate formatele logice,
au acela i mod de adresare a celulelor i aceea i tehnologie la baz , diferind prin
anumite semnale i cuante de timp alocate.

90

ARHITECTURA SISTEMELOR DE CALCUL

SCRAM (Static Column RAM)


Primele memorii au folosit tehnologia Static Column RAM, care efectua
citirea unei coloane de memorie i scrierea adresei pe linia de adres a cipului,
transmi nd 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 men inut deschis, pentru a indica faptul c acea
coloan a r mas 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 men inut activ, controlerul poate
trimite una sau mai multe adrese, urmate de un impuls al semnalului CAS, pentru a
indica celule din cadrul aceleia i linii.
n terminologia de adresare a memoriei, linia este numit pagin , iar tipurile de
cipuri care permit aceste opera ii 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 i coloanei, ceea ce va genera ntrzieri.
EDO (Extended Data Out)
O alt tehnologie utilizat este numit EDO (Extended Data Out) i este
destul de rapid pentru calculatoarele actuale. Memoria EDO lucreaz cel mai bine
n combina ie cu o memorie cache. n esen , EDO este o variant a memorie Fast
Page Mode (care permite accesul repetat la bi ii din cadrul unei pagini de memorie,
a genera ntrzieri).
n timp ce memoria conven ional se descarc dup fiecare opera ie de citire
i necesit timp de renc rcare nainte de a fi citit din nou, EDO p streaz datele
pn cnd prime te un alt semnal. Memoria EDO modific cuanta de timp alocat
pentru semnalul CAS. Linia de date mai r mne activ un interval scurt de timp,
dup ce linia CAS este dezactivat . Se elimin , astfel, timpul de a teptare 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 a teptare de 10 ns ntre
emiterea adreselor de coloan . Modelul EDO elimin aceast ntrziere, permi nd
memoriei s furnizeze mai repede datele solicitate. Teoretic, EDO poate s creasc
performan ele cu 5060%, dar, la modelele mai recente de calculatoare, cele mai
bune implement ri au condus la o cre tere a performan elor cu 1020%.
Fizic, cipurile EDO i SIMM par identice, dar, pentru a implementa EDO,
este necesar un sistem complet diferit de gestiune (management) a memoriei, care
se potriveasc cu tehnologia memoriei (BIOS-ul, n special). Astfel, se pot
instala SIMM-uri EDO n majoritatea calculatoarelor, dar vor func iona ca
memorie obi nuit , i nu vor contribui la o cre tere a performan ei.

Structura unui calculator

91

n aplica iile multimedia, diferen a ntre memoria cache i EDO nu este


notabil , astfel c EDO poate fi considerat ca o alternativ la memoria cache
secundar . La sfr itul anului 1995, nlocuirea memoriei FPM cu EDO devenise
cea mai comun form de reducere a timpului de acces la memorie. Diferen a
dintre cele dou memorii este mic , astfel nct multe calculatoare create pentru
memoria FPM accept i memoria EDO, de i nu c tig n performan . Cu toate
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 a teptare zero
la o frecven a magistralei de 25 MHz, un cip EDO poate opera la stare de
teptare zero pentru o frecven a magistralei de 33 MHz.
BEDO DRAM (Burst Extended Data Out DRAM)
Pentru a c tiga mai mult vitez cu EDO, Micron Technology a ad ugat
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 opera iile de citire i scriere n serii de cte patru cicluri, numite burst.
Aceea i tehnologie este reg sit sub numele generic de pipeline nibble mode DRAM,
pentru c transferul datelor se realizeaz n serii de cte patru cicluri pe pipeline.
Cipul func ioneaz 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 num tor
binar transmite un semnal de patru ori n interiorul cipului, fiecare semnal
transfernd un octet de date.
BEDO este relativ u or de fabricat, pentru c necesit un minim de
schimb ri fa de memoria EDO sau page mode DRAM. Cipul de siliciu con ine un
fuzibil care determin dac cipul func ioneaz ca EDO sau BEDO. Cipul i poate
schimba starea n mod ireversibil, prin arderea fuzibilului. Tehnologia BEDO este
capabil s opereze la o vitez a magistralei de 66 MHz cu st ri de a teptare zero,
la un timp de transfer de 52 ns.
SDRAM (Sychronous DRAM)
Datorit multiplex rii, cipurile de memorie nu pot opera simultan cu
microprocesoarele. Adresarea normal cere cicluri alternante, dar, prin
reproiectarea interfe ei de baz , cipurile de memorie pot accesa date la fiecare ciclu
de ceas. Modific rile cipurilor de interfa au f cut ca cipurile de memorie s poat
opera sincron cu microprocesoarele: acestea se numesc DRAM sincron.
De i schimbarea interfe ei cipului poate evita bloc rile sistemului, ea nu are
nicio contribu ie la cre terea vitezei. Ca i microprocesoarele superscalare, cipurile
SDRAM sunt realizate cu stagii de operare multiple i 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 . Interfa a i pipeline-ul
determin timpi de transfer de ordinul nanosecundelor, ceea ce le permite utilizarea

92

ARHITECTURA SISTEMELOR DE CALCUL

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 frecven e mai mari.

Memoriile SDRAM sunt adaptate noului standard de magistral


sincron introdus de microprocesoarele familiei Intel P6 (Pentium Pro,
Pentium II i 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 opera iile n regim burst. Se poate programa num rul
de loca ii dintr-un burst la valorile de 1, 2, 4, 8 octe i sau o pagin de memorie.
Accesul ncepe la o adres specificat i continu cu adresele succesive, pn la
num rul de loca ii programate. Circuitul de memorie accept mai multe tipuri de
comenzi, fiecare fiind specificat printr-o combina ie a semnalelor de intrare.
Ratele de transfer cerute de diverse tehnologii de memorie pentru starea de
teptare 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 frecven ele de 266/333/400 MHz.
EDRAM (Enhanced DRAM)
Memoriile de tip EDRAM sunt mai rapide i se ob in din DRAM-urile
obi nuite prin ad ugarea unor blocuri mici de memorie cache static pe fiecare cip.
Cache-ul opereaz la vitez nalt (n mod obi nuit, 1 ns), astfel nct pot s
acopere cererile de date ale microprocesorului f
a ad uga st rile de a teptare
generate de opera ia de remprosp tare. Produc torul tehnologiei EDRAM
(Ramtron) descrie patru avantaje ale acestui tip de memorie:
legarea cache-ului SRAM cu DRAM-ul pe acela i cip presupune folosirea
unei magistrale de l ime mare pentru conectare (Ramtron folose te o
magistral de 16.384 bi i), 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 apte ori
mai mic (35 ns) la EDRAM fa de cache page mode DRAM (250 ns);
modelul Ramtron folose te o structur de control diferit fa de DRAMul conven ional, ceea ce permite ca memoria s fie prenc rcat n timp
ce sistemul realizeaz transferul n mod burst din cache, prenc rcarea
determinnd reducerea timpului de acces;
de i cache-ul EDRAM folose te proiectarea write through (vezi
paragraful 3.2.12), scrierea n memoria principal poate fi f cut cu timp
de a teptare zero. Prima opera ie 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 ini ial de 4 MB are ncorporat
o memorie cache de 2 KB, folosind dou buffer-e de cte un cuvnt (16 bi i) pentru
transferul dintre cache i circuitele externe.

94

ARHITECTURA SISTEMELOR DE CALCUL

Spre deosebire de EDRAM, p ile CDRAM asociaz att cache-ului, ct i


DRAM-ului principal, aceea i adres , astfel nct acestea opereaz independent una
fa de cealalt , putnd fi adresate separat.
Memoria cache este suficient de rapid pentru a transfera date n mod burst,
la o frecven de 100 MHz. Cipul permite celor dou buffer-e s func ioneze
independent, deci, pot lucra n flux continuu.
MDRAM (Multibanc DRAM)
Principiul de lucru este urm torul: n locul unui bloc de celule, fiecare celul
este adresat prin num rul liniei i al coloanei. Memoria DRAM produs de MoSys
Inc. desparte informa ia stocat ntr-un num r de bancuri de memorie separate.
n modelul MDRAM ini ial de 4 MB, fiecare din cele 16 bancuri de memorie
streaz 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 i s comute
la un alt banc pentru un alt transfer. Deoarece fiecare banc de memorie dispune de
o interfa de 32 bi i care lucreaz la fel ca SDRAM, cipurile MDRAM opereaz la
viteze de transfer de pn la 1 GB/s.
RDRAM (Rambus DRAM)
Modelul Rambus folose te un cache RAM static de 2.048 octe i, care se
leag la memoria dinamic printr-o magistral de l ime foarte mare, permi nd
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 folose te o magistral special de nalt vitez . Indiferent de leg tura cu
microprocesorul, l imea magistralei dintre controlerul de memorie i cipul
Rambus este de 1 octet. Rambus opereaz la frecven e ntre 250 i 800 MHz,
modelul permi nd transferul a doi octe i la fiecare ciclu de ceas: unul pe frontul
cresc tor, iar al doilea pe frontul descresc tor al impulsului de ceas.
Accesul la memorie se face n mod inteligent, incluznd func ia de prenc rcare a datelor, iar citirea acestora se face n pachete mici, la viteze ridicate ale
semnalului de ceas. Viteza Rambus este izolat de microprocesor i r mne
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 i poate suporta doar 32 de
cipuri sau 10 module de memorie Rambus, un modul con innd 32 de cipuri
Rambus. O vitez de peste 500 MB/s a magistralei poate s induc interferen e;
pentru a le minimiza, Rambus func ioneaz la 2 V, cu oscila ii de 300 mV.
Rambus opereaz ca o mic re ea, trimi nd date n pachete cu o lungime de
pn la 256 octe i. Modelul este schimbat radical i 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 i Rambus s-a materializat n 1999
printr-un DRAM care opereaz la 100 MHz, pe calculatoare de 64 de bi i.
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.

a cum se observ din figur , unul din atu-urile memoriei RDRAM este c
fiecare cip de memorie poate con ine pn la 32 de bancuri de memorie. Aceste
bancuri sunt individuale i apar in riguros aceluia i cip, spre deosebire de bancurile
SDRAM, care sunt mpr tiate 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 dualoc i (dualoctul este cea mai mic unitate de memorie adresabil de c tre
RDRAM). Fiecare dualoct con ine 16 octe i i, deci, dimensiunea total a liniilor
matricei este de 2 KB. n mod ideal, se poate p stra activ cte o linie din fiecare
din cele 32 de bancuri, pentru a maximiza ansele de a primi datele dintr-o linie
activ . n realitate, ns , pot exista numai 16 bancuri deschise simultan sau, mai
precis, doar jum tate din bancurile existente pe cip.
Figura 3.26 prezint dou opera ii: una de citire i cealalt de scriere din/n
memorie, pentru a ilustra lucrul simultan cu doar jum tate din bancurile disponibile.
Modul de func ionare este urm torul. Atunci cnd procesorul cite te un dualoct
de 16 octe i dintr-un banc, datele respective p sesc bancul i p trund n
amplificatoarele de semnal (numerotate), care sunt plasate de o parte i de alta a
bancurilor de memorie. Data A i Data B reprezint dou jum i ale unui dualoct (cu
8 octe i fiecare), care p sesc bancul de memorie pe c i separate, a a cum se observ
n figura 3.26. Cele dou magistrale care ncadreaz bancurile de memorie au fiecare o
ime de 8 octe i, deci jum tatea dualoctului reprezentat de Data A se va transfera pe
magistrala din dreapta, iar cea reprezentat de Data B pe magistrala din stnga.
De i pe diagram pare c fiecare banc este conectat la 4 amplificatoare de
semnal, de fapt, fiecare pereche de c su e cu aceea i etichet (0/1, 1/2 etc.) plasat
la stnga i la dreapta unui banc constituie un singur amplificator de semnal.

96

ARHITECTURA SISTEMELOR DE CALCUL

Fig. 3.26. O opera ie de citire i o opera ie de scriere din/n memoria RDRAM.

Deoarece un num r prea mare de amplificatoare ar m ri considerabil


suprafa a pastilei de memorie, fiecare banc de memorie mparte cele dou
amplificatoare adiacente cu bancurile vecine lui. De exemplu, amplificatoarele 0/1
i 1/2 sunt conectate la bancurile 0, 1 i 2. n acest fel, se mic oreaz suprafa a
cipului, ceea ce duce la o reducere a costului.
Exist i excep ii, iar acestea sunt bancurile 0, 15, 16 i 31, care sunt conectate
fiecare la cte un singur amplificator dedicat i, ca atare, trebuie s a tepte ca un
singur banc vecin s i 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 jum tate din bancurile unui cip pot fi active
simultan. Chiar i a a, num rul bancurilor de memorie active ale unui modul
RDRAM este mult mai mare fa de cel al unui modul SDRAM. De exemplu, pentru
un singur modul RIMM cu 4 cipuri, exist 32 de bancuri pe cip i, deci, 128 de
bancuri, dintre care 64 active simultan pentru ntregul modul. Acest num r ridicat de
bancuri de memorie reprezint explica ia pentru l rgimea de band i frecven ele
foarte mari (400 MHz, 533 MHz) cu care opereaz memoriile SDRAM.
Referitor la ultima diagram prezentat , mai trebuie f cute dou preciz ri:
fiecare amplificator de semnal are i o capacitate proprie de stocare de
1024 de octe i, el fiind un buffer ntre bancul de memorie i magistrala
sistemului;
cele dou magistrale de 8 octe i amintite anterior sunt divizate numai
conceptual, n realitate formnd o singur magistral cu l imea de 16 octe i.
Schema din figura 3.27 ilustreaz diferen ele dintre un sistem de memorie
bazat pe RDRAM i unul bazat pe SDRAM. Se observ c la RDRAM cipurile
sunt ata ate unor module de memorie RIMM, a a cum memoria SDRAM este
organizat n module DIMM.

Structura unui calculator

97

Fig. 3.27. Diferen ele dintre sistemele de memorie RDRAM i SDRAM.

Diferen a const n faptul c RIMM-urile sunt ata ate pl cii 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 r mase
libere vor trebui completate cu module de continuitate, pentru a permite canalului
Rambus s i ating rezisten a de sarcin (termina ia). Din punct de vedere teoretic,
pot exista oricte canale Rambus independente ntr-un sistem, fiecare cu o l rgime
de band de 1,6 GB/s, dar, n practic , num rul canalelor este limitat din
considerente de design al pl cilor 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 dep rtat modul
RIMM din sistem, nct poate fi defazat de mai multe ori, fa 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 p stra o sincronizare ntre transferurile pe
magistrala de memorie. Aceste schimb ri ale domeniilor de tact complic ns i
mai mult arhitectura sistemului de memorie Rambus, prezentat n figura 3.28.

98

ARHITECTURA SISTEMELOR DE CALCUL

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 (cresc tor i
descresc tor) al semnalului de ceas. n felul acesta, viteza rezultat n transferul
datelor este dubl (Double Data Rate) fa de o memorie SDRAM. DDR SDRAM
se monteaz pe acela i tip de socluri, dar are nevoie de un nou cip-set.
Fa de RDRAM, DDR SDRAM prezint urm torul dezavantaj: dac datele
solicitate nu exist n cache, con inutul curent al acestuia este v rsat n DRAM-ul
integrat pe cip, este accesat o alt pagin i abia apoi are loc citirea din memorie.
Avantajele DDR SDRAM fa de RDRAM sunt pre ul i faptul c rata de
transfer RDRAM este aproximativ 6070% din rata DDR SDRAM (datorit
faptului c lucreaz pe 16 bi i, fa de DDR SDRAM, care lucreaz pe 64 de bi i).
Deoarece memoria DDR SDRAM este o variant evoluat a SDRAM-ului,
felul n care interac ioneaz cu magistrala de memorie este foarte asem tor celui
al predecesoarei sale, cu excep ia faptului c la DDR SDRAM se transfer dou
cuvinte de date ntr-o perioad de ceas.
Figura 3.29 prezint func ionarea unui sistem de memorie format din 3
DIMM-uri, fiecare cu 4 bancuri de memorie pe 64 de bi i.
n figur sunt marcate blocurile de date de 64 de bi i (alc tuite din 4 pachete
de cte 16 bi i), blocuri trimise de bancurile de memorie c tre procesor n timpul
unei opera ii de citire. S ge ile indic sensul parcurs de date pe magistrala de
memorie la care sunt conectate DIMM-urile. n cazul unei opera ii de scriere,
sensul ar fi, evident, invers (CPUmemorie).
Evaluarea modulelor DDR SDRAM se face ntr-un mod diferit de SDRAM,
principalul criteriu nemaifiind frecven a, ci l rgimea de band maxim oferit
teoretic i care se exprim n MB/s.
Standardele uzuale actuale sunt PC1600, PC2100 i PC2400. Primul are o
frecven de 2100 MHz (datorit transmisiei datelor pe ambele fronturi ale
semnalului). L rgimea de band de 1600 MB/s se ob ine nmul ind l imea c ii de
date (64 de bi i) cu frecven a memoriei (200 MHz) i mp ind la num rul de bi i
dintr-un octet (8).
Similar, pentru PC2100 frecven a este 2133MHz, adic , 266 MHz, iar
pentru PC2700, frecven a 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 bi i.

DDR2 SDRAM (Double Data Rate Two Synchronous DRAM)


Memoriile DDR2 fac parte din familia memoriilor SDRAM, reprezentnd o
mbun ire 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 ob inut prin mbun irea semnaliz rii
magistralei i prin operarea celulelor de memorie la jum tate din frecven a de ceas
(un sfert din rata de transfer a datelor).
Dac memoria DDR2 ar opera la aceea i frecven de ceas ca DDR, ar
asigura aceea i l rgime de band , dar ar avea o ntrziere semnificativ mai mare.
Ca i n cazul DDR, datele din memoriile DDR2 sunt transferate att pe frontul
cresc tor, ct i pe frontul descresc tor al ceasului. Diferen a principal dintre DDR
i DDR2 este aceea c n cazul DDR2 magistrala este sincronizat la de dou ori
frecven a la care lucreaz celulele de memorie, astfel nct pot fi transfera i 4 bi i de
date ntr-un ciclu al celulei de memorie, conform diagramei de timp din figura 3.30.
Frecven a magistralei DDR2 este crescut prin unele mbun iri la
interfa a electric , folosirea tehnologiei on-die termination sau folosirea unor
buffer-e de prenc rcare. Buffer-ul de prenc rcare n cazul DDR2 are o adncime
de 4 bi i, spre deosebire de doi bi i n cazul DDR. Din p cate, implementarea
tuturor acestor tehnologii au dus la o cre tere a ntrzierilor. Dac n cazul DDR
apare o ntrziere ntre dou i trei cicluri ale magistralei de date, DDR2 poate avea
ntrzieri de 4 pn la 6 cicluri. Acesta este motivul care a f cut necesar ca
magistrala s lucreze la o frecven de dou ori mai mare.

100

ARHITECTURA SISTEMELOR DE CALCUL

Fig. 3.30. Citirea n rafale la DDR2 SDRAM.

Un alt cost cauzat de cre terea vitezei este necesitatea ncapsul rii cipurilor
n capsule mai scumpe i mai dificil de asamblat, cum ar fi BGA (Ball Grid Array).
Schimbarea capsulelor a fost necesar pentru a men ine integritatea semnalului la
viteze mai mari.
Din punct de vedere al consumului de energie, DDR2 a mai f cut un pas
nainte, necesitnd numai 1,8 V fa de 2,5 V, ct era necesar pentru DDR.
Consumul de energie poate fi redus chiar i mai mult, prin reducerea frecven ei n
situa iile n care nu este necesar o rat de transfer foarte mare. Tensiunea maxim
recomandat este 1,9 V, fiind chiar interzis dep irea acesteia n situa iile n care
stabilitatea memoriei este un factor cheie. Totu i, 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 ase standarde pentru modulele DDR2 sunt prezentate n tabelul 3.2.
Tabelul 3.2
Standardele pentru modulele de memorie DDR2
Numele
standardului

Frecven a
memoriei
(MHz)

Perioada
ceasului
(ns)

Frecven a
magistralei
I/O (MHz)

Transferuri
de date pe
sec. (mil.)

Numele
modulului

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

333

667

PC-5300

5333

DDR-800

200

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 siguran la DDR2 se afl n alt pozi ie, iar densitatea pinilor (240
pentru desktop, 200 pentru notebook) este u or mai mare dect n cazul DDR
(184). Modulele DDR2 mai rapide sunt compatibile cu modulele DDR2 mai lente,
ns magistrala va func iona la viteza celui mai lent modul.
DDR3 SDRAM (Double Data Rate Three Synchronous DRAM)
Memoriile DDR3 sunt o mbun ire a modelului precedent de memorii,
DDR2. Principala diferen ntre cele dou const n faptul c magistrala I/O
DDR3 func ioneaz la o frecven 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 ob inerii 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 (fa de 1,8V
pentru DDR2 sau 2,5 V pentru DDR). Unii produc tori propun utilizarea
tranzistorilor dual-gate, tehnologie care ar permite reducerea i 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, f
a suferi o
distrugere total , de i, cel mai probabil, nu vor func iona corect la acest nivel.
Principalul avantaj al memoriilor DDR3 este dat de l rgimea de band .
Cre terea acesteia a fost posibil i datorit buffer-ului de prenc rcare, a c rui
adncime a fost m rit de la 4 bi i, ct era n cazul DDR2, la 8 bi i. Aceast dublare
a dimensiunii buffer-ului este spectaculoas , n compara ie cu celelalte mici
increment ri ale dimensiunii care au avut loc anterior. Redimensionarea buffer-ului
are un cuvnt greu de spus n ceea ce prive te ntrzierea semnalului CAS.
Teoretic, modulele DDR3 pot transfera date la o frecven de 8001600 MHz,
folosind ambele fronturi ale tactului I/O, cu frecven a de 400800MHz.
DIMM-urile DDR3 au acela i num r de pini ca modulele DDR2 (240),
avnd i acelea i dimensiuni, dar, cu toate acestea, sunt incompatibile din punct de
vedere electric, iar cheia de securitate este situat n alt pozi ie.
Cele patru standarde pentru modulele DDR3 sunt prezentate n tabelul 3.3.
Tabelul 3.3
Standardele pentru modulele de memorie DDR3
Numele
standardului

Frecven a
memoriei
(MHz)

Perioada
ceasului
(ns)

Frecven a
magistralei
I/O (MHz)

Transferuri
de date pe
sec. (mil.)

Numele
modulului

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

667

1333

PC-10600

10667

DDR3-1600

200

800

1600

PC-12800

12800

102

ARHITECTURA SISTEMELOR DE CALCUL

O tehnologie complet nou , folosit pentru prima dat n cazul DDR3, este
topologia Fly-By. Genera iile anterioare de SDRAM, inclusiv DDR2, utilizau o
topologie stea pentru a mp i datele spre mai multe c i de semnal. Topologia FlyBy utilizeaz o singur leg tur direct c tre toate componentele DRAM, ceea ce
permite un r spuns mult mai rapid din partea sistemului.
Motivul pentru care DDR2 nu s-a putut dezvolta mai mult dect a f cut-o nu
se datoreaz att procesului de fabrica ie, care ar fi trebuit rafinat mai mult, ct
unor limit ri mecanice. n esen , DDR2 nu este preg tit s ating viteze mai mari.
Teoretic, acest lucru ar fi posibil, dar, practic, tehnologia mecanic dezvoltat pn
azi nu permite acest lucru. La frecven e mai mari, DIMM-ul ncepe s ntmpine
probleme n ceea ce prive te integritatea semnalului. n cazul topologiei stea
folosite de DDR2, aceast problem s-ar rezolva dac s-ar reu i echilibrarea tuturor
ramurilor. Din p cate, efortul necesar pentru a face acest lucru este peste limitele
fizice din ziua de azi.
Pentru DDR3, integritatea semnalului este rezolvat la nivelul fiec rui modul
DRAM, n locul ncerc rii unei echilibr ri la nivelul ntregii platforme de memorie.
Acum, att adresele, ct i semnalele de control, sunt transmise pe aceea i cale.
Practic, topologia Fly-By elimin limit rile cauzate de echilibrarea mecanic
folosit n DDR2, nlocuind-o cu un semnal automat de ntrziere, generat de c tre
controlerul de memorie. O alt inova ie prezent la DDR3 const n apari ia unui
pin de reset. Acest pin permite resetarea unui modul de memorie f
resetarea
ntregului sistem, ceea ce duce la o sc dere a timpului i a energiei pierdute.
De remarcat este i prezen a 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 i, n consecin , poate scurta intervalele de refresh.
Acest sistem de siguran permite i 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
configura ii alc tuite dintr-un procesor Intel i o memorie DDR3 s realizeze un
overclocking foarte simplu. Doar prin selectarea unei anumite op iuni, sistemul va
decide singur factorii de multiplicare, tensiunile i frecven ele pn la care poate fi
for at ceasul pentru a c tiga un plus de performan .
XDR DRAM (eXtreme Data Rate DRAM)
Memoriile XDR-RAM sunt considerate ca fiind succesorul memoriilor
Rambus (RDRAM), fiind n concuren direct cu DDR2, SDRAM i GDDR4
(memoriile grafice pentru pl cile grafice din familia GeForce FX). XDR-ul a fost
proiectat n special pentru sisteme mici, care necesit o l rgime de band ridicat ,
i 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 l rgime de band per pin mult mai
mare, ceea ce duce la sc derea costurilor de produc ie a pl cilor de circuite
integrate. Sc derea costurilor este posibil datorit faptului c sunt necesare mai
pu ine c i de transmisie a datelor pentru aceea i l rgime 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 l rgime programabil i suport magistrale de 8, 4 sau chiar 2 bi i.
Elementele cheie ale arhitecturii XDR care permit performan e ridicate sunt:
XDR DRAM este un circuit integrat de memorie de mare vitez , cu o interfa
care lucreaz la 4 GHz, asigurnd o l rgime de band de pn la 8GB/s;
Controlerul I/O, numit XIO n cazul XDR DRAM, asigur aceea i vitez
ridicat ca la DRAM, aducnd i unele mbun iri (tehnologia FlexPhase);
Controlerul de memorie XMS este optimizat pentru a profita de inova iile
aduse de XDR, cum ar fi tehnologia Dynamic Point-to-Point, care
permite o extindere a capacit ii, p strnd n acela i timp i integritatea
ridicat a semnalului, caracteristic modelului Point-to-Point;
Generatorul de tact, XCG, asigur patru ie iri programabile, care
garanteaz semnalele de tact pentru XIO i alte dispozitive XDR DRAM.
Celula XIO este un controler I/O performant cu ntrzieri reduse, care
folose te un sistem de semnalizare pe 8 bi i, la o frecven de pn la 4 GHz,
permi nd o l rgime 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
rgimea de band necesar aplica iilor grafice sau altor aplica ii.
XIO este compus din unul pn la 12 blocuri de cerere a magistralei (RQ
ReQuest bus block), un bloc de control (CTL) i un num r variabil de blocuri de date
de 8 sau 9 bi i n cazul memoriilor cu cod corector de erori (DQ). Blocul RQ asigur
subsistemelor memoriei informa iile referitoare la adrese i control. Blocul CTL
asigur accesul la registre, ini ializarea, ntre inerea i testarea func iilor sistemului. Un
bloc DQ este capabil s primeasc i s transmit date cu o frecven 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 prive te upgradeul, o capacitate ridicat i performan ridicat , esen ial n cazul serverelor, de
exemplu. Datorit tehnologiei Dynamic Point-to-Point, XDIMM-urile pot fi
instalate att n configura ie single-channel, ct i n configura ie dual-channel,
strnd ntreag l rgimea de band a sistemului i conservnd integritatea
semnalului, caracteristic topologiei Point-to-Point.
O alt inova ie tehnologic adus de XDR este tehnologia DRSL
(Differential Rambus Signaling Level). Aceast tehnologie presupune un standard
de semnalizare de joas tensiune, joas putere, diferen ial, care permite o
magistral scalabil , multi-GHz, bidirec ional , de tip Point-to-Point, care
conecteaz celula XIO la dispozitivele XDR DRAM.
XDR folose te i standardul RSL (Rambus Signaling Level), dezvoltat
ini ial pentru RDRAM, standard care permite conectarea a pn la 36 de
dispozitive ntr-un mod sincron, adresate prin intermediul unei magistrale i
comandate prin ni te semnale. Sistemul de memorie Rambus XDR satisface
nevoile computa ionale din numeroase domenii, cum ar fi computere grafice,
servere, re elistic sau electronic de larg consum.

104

ARHITECTURA SISTEMELOR DE CALCUL

Fig. 3.31. Modul de memorie XDIMM.

eDRAM (embedded DRAM)


eDRAM reprezint o memorie dinamic cu acces aleator, capacitiv ,
integrat n mod uzual n acela i pachet cu procesorul, spre deosebire de modulele
DRAM externe i SRAM-urile utilizate tipic pentru memorii cache.
mpachetarea permite folosirea de magistrale mult mai mari i o vitez
sporit a opera iilor. Datorit unei densit i mult crescute pentru DRAM n
compara ie cu SRAM, pot fi utilizate cantit i mai mari de memorie. Diferen a n
procesul de fabrica ie determin dificultatea integr rii pe aria cipului procesorului,
astfel nct mai multe circuite integrate de pe arie trebuie mpachetate ntr-un chip,
ridicnd costul. Cele mai recente dezvolt ri surmonteaz aceast limitare, utiliznd
procesarea CMOS standard pentru a fabrica eDRAM, ca n formatul de memorie
1T-SRAM (vezi paragraful urm tor).
Memoria eDRAM este folosit ntr-o larg varietate de console de jocuri.
Att celula microprocesoare utilizat n PlayStation 3, ct i 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 c tre MoSys,
ofer o alternativ la memoriile SRAM tradi ionale, permi nd 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 sus inut de o re ea de
circuite care fac func ionarea memoriei s fie echivalent celei a memoriilor
SRAM (controlerul ascunde toate opera iile specifice memoriilor DRAM, cum ar fi
prenc rcarea sau reactualizarea). n consecin , memoriile 1T-SRAM au o
interfa standard SRAM de un ciclu i 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 prive te dimensiunea i densitatea (vezi
figura 3.32).
n acela i timp, 1T-SRAM ofer performan e comparabile cu SRAM, consum
mai pu in dect eDRAM i este realizat n tehnologie CMOS, ca SRAM-ul clasic.

Structura unui calculator

105

Fig. 3.32. Compara ie ntre celula 1T-SRAM i celula SRAM cu 6 tranzistori.

MoSys prezint 1T-SRAM ca fiind solu ia ideal pentru aplica iile 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 bi i fiecare, rezultnd un
total de 32 Kb) conectate la o memorie cache de dimensiunea unui banc i la un
controler de memorie.
Chiar dac , n compara ie cu DRAM, 1T-SRAM este ineficient n ceea ce
prive te spa iul, lungimea mai mic a cuvintelor permite atingerea unor viteze mult
mai mari, reu indu-se astfel realizarea unui ciclu RAS la fiecare acces. Fiecare
acces se face la cte un banc, permi nd astfel bancurilor nefolosite s fie
reactualizate n acela i timp. n plus, fiecare linie citit este copiat i n memoria
cache. n eventualitatea unor acces ri repetate la acela i banc, exist dou variante:
fie sunt accesate linii diferite, caz n care toate liniile vor fi reactualizate automat,
fie aceea i linie este accesat de mai multe ori. n cazul celei de-a doua variante,
urm toarele citiri se vor face din memoria cache, acordndu-se astfel timpul
necesar pentru realizarea remprosp rii.
Pn n prezent (mai 2008), au fost lansate patru genera ii de memorii
SRAM cu un tranzistor:
1. 1T-SRAM original, care are o dimensiune de dou ori mai mic dect
6T-SRAM i consum mai pu in de 50% fa 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.

106

ARHITECTURA SISTEMELOR DE CALCUL

3. 1T-SRAM-R, care ncorporeaz un sistem de corec ie a erorilor (ECC).


Celulele de memorie sunt mai mici, ceea ce duce automat la o rat mai
mare de apari ie a erorilor. Totu i, 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 njum irea
dimensiunilor memoriei nc o dat fa de 1T-SRAM-R.
Memoriile 1T-SRAM func ioneaz la viteze comparabile cu 6T-SRAM i
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 pa i suplimentari i costisitori, dep ind astfel destul de
mult costul de produc ie al memoriei 1T-SRAM.
Memoriile 1T-SRAM sunt disponibile i 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
urma ul lui GameCube, consola Nintendos Wii.
QDR II SRAM (Quad Data Rate II Static Random Access Memory)
QDR este o memorie SRAM echipat cu un pin pentru intrarea datelor i un
pin separat pentru ie irea datelor, spre deosebire de SRAM standard, n care cei doi
pini sunt comuni. QDR permite introducerea i extragerea datelor pe ambele
fronturi (DDR Double Data Rate), ducnd astfel la ob inerea unor viteze foarte
mari pentru opera iile de scriere i de citire, care se pot desf ura simultan. n felul
acesta, se poate realiza un transfer de pn la patru cuvinte la fiecare ciclu de ceas,
cu o laten foarte mic . Acest tip de memorie este ideal pentru sistemele de
comunica ii i re elistic , cum ar fi router-e sau switch-uri. Pentru a veni n
ntmpinarea tendin elor 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 genera ie (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 i 1,4 V pentru pinii de
intrare/ie ire. Acest aspect este extrem de important n domeniul pentru care sunt
concepute s func ioneze aceste memorii.

Fig. 3.33. Arhitectura QDR II SRAM.

Structura unui calculator

107

Memoriile QDR II sunt prev zute cu dou generatoare de semnale de ceas,


unul pentru intrare, cel lalt pentru ie ire. Astfel, intrarea i ie irea pot fi foarte u or
defazate. Memoriile QDR II vin sub forma unor FPGA-uri de 13 15 1 mm.
O memorie QDR II hot
te dac va efectua o opera ie de scriere sau de
citire, n func ie de starea n care se afl pinii de citire (R#) i de scriere (W#) la
momentul n care ceasul se afl pe front cresc tor. 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 i W# la nivelul 0 (vezi figura 3.35).

Fig. 3.34. Opera ia de citire la QDR II.

Fig. 3.35. Opera ia de scriere la QDR II.

SGRAM (Synchronous Graphics RAM)


Func ionarea memoriei SGRAM este asem toare celei de la memoria
SDRAM. Func ia principal a memoriei SGRAM este aceea de a stoca i citi date
simultan n zona de memorie. Deoarece este o memorie de tip DRAM, trebuie s
dispun de o remprosp tare periodic , pentru a citi i a scrie date eficient i rapid.
Astfel, au fost introduse func ii speciale, care specific adresele grafice necesare
aplica iilor. Aceste func ii sunt selectate prin folosirea unor registre speciale, dar i
prin folosirea unor pini speciali.

108

ARHITECTURA SISTEMELOR DE CALCUL

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 cresc tor al semnalului de ceas (vezi figura 3.36). Formatul
SGRAM conceput de IBM poate citi sau scrie un num r de loca ii dintr-un burst de
1, 2, 4, 8 octe i 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 num
fiecare loca ie de
memorie, dup ce au fost introduse datele. Dac parametrii de citire i scriere sunt
nregistra i, memoria continu s introduc date pn cnd toate spa iile sunt
completate sau pn cnd apar secven e de ntrerupere. Pentru a face trecerea pe un
nou rnd, acesta trebuie s fie preg tit i astfel va deveni activ.
VRAM (Video RAM)
Problemele de acces la memorie apar cu prec dere n sistemele video la care
memoria este folosit ca un buffer de cadru pentru imaginea de pe ecran, aceasta
fiind nmagazinat sub form digital i alocat pentru fiecare element al imaginii.
ntregul con inut al buffer-ului este citit de la 44 la 75 de ori pe secund . ntre timp,
calculatorul poate ncerca s scrie o nou informa ie n buffer, pentru ca aceasta s
apar pe ecran.
Cu memorii DRAM obi nuite, aceste opera ii de citire i scriere nu pot
ap rea simultan, una trebuie s o a tepte pe cealalt , timpul de a teptare afectnd n
mod negativ performan ele video, viteza sistemului i r bdarea utilizatorului.
teptarea poate fi evitat prin introducerea unui cip special de memorie,
care s aib dou c i (dual ported) pentru accesul fiec rei loca ii. O astfel de
memorie permite scrierea i citirea simultan . Cipurile de memorie video VRAM
permit citirea i scrierea aleatorie la un port, n timp ce la cel lalt port se permite
doar citirea secven ial , 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 m ri viteza sistemului video cu
aproximativ 40%.

Structura unui calculator

109

Pentru a trimite iruri de date c tre 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 interfa 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 cre te flexibilitatea n aplica iile grafice.
WRAM (Windows RAM)
Un model VRAM cu dou porturi este WRAM (elaborat de Samsung), util
n sistemele video proiectate s asiste o interfa grafic gen Windows.
Cipul de baz WRAM p streaz 1 MB aranjat n plane de 32 de bi i, fiecare
fiind compus din 512 512 celule. Trei cipuri asigur memoria necesar pentru a
afi a o rezolu ie de 1024 768, 1024 1024 i pentru operare n True Color pe 24
bi i. Intern, o magistral de date de 256 de bi i leag fiecare plan de bi i cu
controlerul logic intern al cipului care multiplexeaz datele pe 32 de bi i,
compatibile cu circuitele din calculator. Pentru a furniza date n scopul scan rii
video, cipul con ine dou registre serie. Cipul ncarc unul din registre, iar din
cel lalt extrage datele, comutnd ntre ele n momentul n care registrul al doilea se
gole te. Cipul con ine patru registre de 32 de bi i, dou pentru nmagazinare i
pentru culorile de fundal, iar celelalte dou pentru control i m ti.
Cu o rat de transfer de pn la 640 MB/s, modelul WRAM poate m ri
viteza sistemului cu 50 % n compara ie cu VRAM.
Observa ie. Formatul Windows RAM nu are leg tur cu Microsoft Windows.

3.2.10. Verificarea prin controlul parit ii


Revenind la caracteristicile generale ale memoriei, pe majoritatea pl cu elor
de memorie se afl instalate 9 cipuri (pentru memoriile paritare), primele opt avnd
rol de memorie efectiv de lucru (8 bi i de la 0 la 7), iar cel de-al 9-lea fiind
numit cip de paritate (parity cip), cu rol de testare a st rii de func ionare a
celorlalte 8 cipuri, prin verificarea parit ii memoriei.
Paritatea memoriei este de dou tipuri: par i impar .
Exemplu. Fie cazul unei memorii impare. Un rnd de bi i con ine un num r
impar de 1 (num r re inut n cmpul 9). Datele sunt cuprinse pe 8 bi i (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 i paritatea rndurilor de bi i (parity check). Memoria fiind, conform
exemplului, impar , trebuie s existe un num r impar de bi i, n caz contrar
sistemul semnalnd o eroare de paritate (parity error) i 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 bi i con ine un num r par de 1.

110

ARHITECTURA SISTEMELOR DE CALCUL

Memoriile SIMM se prezint constructiv cu 8 sau 9 cipuri pe pl cu , dup


cum sunt cipuri paritare sau nu. Nu toate pl cile SIMM folosesc verificarea
parit ii, dar toate pl cile DIMM sunt prev zute cu aceasta facilitate.
Exemplu. SIMM-urile paritare pe 8 bi i folosesc un bit de paritate (module
pe 9 bi i), iar cele pe 32 de bi i folosesc 4 bi i de paritate (module pe 36 bi i, 8 4
= 32 bi i + 4 1 = 4 bi i de paritate).
Exist i module de memorie care folosesc cipuri compuse, pe o pl cu
fiind prezente doar 2 sau 4 circuite integrate. n acest caz, n aceea i capsul sunt
prezente patru sau dou cipuri de memorie. n cazul n care se folosesc module de
memorie neparitare, va trebui dezactivat din CMOS op iunea de verificare a
parit ii memoriei, n caz contrar ap rnd erori. n nici un caz nu se pot folosi
combina ii de module paritare cu module neparitare.
n timpul func ion rii sistemului, la detectarea unei erori de paritate este
emis o cerere de ntrerupere (de c tre cipul specializat), care va avea ca rezultat
final oprirea procesului aflat n execu ie i reluarea unei rutine BIOS care va afi a
un mesaj specific. Unele variante de microprocesoare au integrat un modul special
de evaluare i verificare a parit ii memoriei.
Anumi i produc tori ai cipurilor de RAM au abandonat verificarea parit ii,
deoarece cre tea pre ul memoriei cu 1015 %, la aceasta ad ugndu-se i
posibilitatea unei compact ri a cipurilor util la calculatoare de tip notebook.
Exist ns i calculatoare care au implementat o paritate fals (fake
parity), care emite un semnal ce atest paritatea f
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
parit ii. 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
obi nuite de testare nu pot s le detecteze (conform cu Kingston Tehnologies,
cipurile cu paritate fals sunt marcate cu una din urm toarele inscrip ii: BP, GSM,
MPEC sau VT).
Exist ns procedee care pot efectua att detec ia, ct i corec ia unor erori.
Un exemplu l constituie procedeul ECC (Error Correction Code), care necesit
bi i suplimentari pentru fiecare octet memorat. Procedeul poate s localizeze bitul
care este eronat, iar eroarea poate fi remediat (se mai nume te tehnologie Error
Detection And Correction EDAC). Firma IBM folose te tehnologia ECC pe
calculatoarele proiectate pentru a func iona ca servere.
Acest cod poate corecta automat orice eroare de 1 bit care apare ntr-un
cuvnt de 64 de bi i. n acest scop, memoria folose te cuvinte de cod de 72 de bi i
(64 bi i de date + 8 bi i de control). Aceast schem are aceea i eficien cu cea
paritar (8/9 = 64/72), dar ofer corec ie cu o robuste e mai mic , pentru c poate
corecta o eroare la 64 de bi i, spre deosebire de cealalt schem , care poate detecta
o eroare la 8 bi i.

Structura unui calculator

111

Procedeul ECC nu este mai costisitor de implementat, datorit cre terii


dimensiunilor magistralelor; astfel, pentru microprocesoarele Pentium i postPentium, care au magistrala de date de 64 bi i, costul unei memorii cu verificare a
parit ii i corec ie este acela i.
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 opera ii 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 excep ia 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 sc dea timpul de acces al memoriei RAM, se
folosesc diverse metode de acces la memorie prin paginarea acesteia sau ntre esere
(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 con ine informa ia dorit i, n cadrul paginii,
adresa datei solicitate (vezi capitolul 6). Automat, spa iul de c utare a informa iei este
mic orat prin paginarea memoriei, iar timpul n care este accesat o informa ie scade.
ntre eserea presupune c procesorul desf oar o activitate paralel de
accesare pentru dou bancuri de memorie (memoria este mp it , dup cum s-a
mai spus, n cel pu in dou bancuri, bancul 0 i bancul 1, care nu sunt accesate
simultan). Timpul de citire din bancul 0 este folosit de memoria instalat n bancul
1 pentru opera ia de remprosp tare, apoi timpul n care procesorul cite te din
bancul 1 este folosit de bancul 0 pentru aceea i opera ie de remprosp tare.
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 secven ial, 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 opera ia de refresh a bancului 1 a fost deja realizat . Se
asigur astfel citirii o fluen aproape perfect .
Aceast metod are un dezavantaj: n cazul citirii din loca ii succesive, doar
pare sau doar impare (la citiri succesive din acela i 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 i se vor introduce una sau dou st ri de
teptare ale procesorului (wait states), ceea ce determin ncetinirea general a
vitezei sistemului. Plasarea pl cilor de memorie n bancuri separate este foarte util
i uneori obligatorie, existnd modele de plac de baz care nici nu func ioneaz cu
o singur pl cu de memorie.

112

ARHITECTURA SISTEMELOR DE CALCUL

3.2.12. Memoria cache


Datorit vitezei foarte mari cu care lucreaz microprocesoarele, implicit i
fluxul de date i informa ii cerute de acestea va fi foarte intens. Dar, deoarece unele
componente din lan ul de transmisie a datelor sunt mai lente, n spe memoria de
lucru RAM (prin necesitatea de a fi remprosp tat ) i magistralele calculatorului
(lente din principiu), acest flux de date cerut de procesor este mai pu in rapid dect
ar fi necesar (de exemplu, memoria RAM asigur un timp de acces de 60120 ns,
ceea ce este foarte mult fa de nivelul de cteva nanosecunde, timp cu care
lucreaz de obicei procesoarele pentru un anumit proces).
Ca atare, ntre posibilit ile de prelucrare a datelor de c tre microprocesor i
capacitatea RAM-ului i magistralelor de a pune la dispozi ia microprocesorului
aceste date a ap rut un decalaj foarte mare, ceea ce a dus n procesul de lucru al
unui microprocesor la introducerea st rilor de pauz (wait states), astfel nct, prin
execu ia a unuia, a dou sau chiar a patru cicluri de a teptare, datele solicitate s
aib timp s ajung la procesor. Practic, se ntmpl urm torul lucru: microprocesorul
lucreaz fie cu datele necesare calculelor, fie cu comenzi. Cum datele i informa iile
necesare sunt cuprinse n memoria de lucru, microprocesorul cite te memoria RAM,
prelund anumite date, i realizeaz calculele i procesele cerute.
Cum memoria este mult mai lent n livrarea datelor fa de viteza cu care le
poate prelucra microprocesorul, n func ionarea procesorului se introduc ciclurile
de a teptare despre care s-a vorbit anterior; ct timp aceste cicluri se execut , se
permite datelor solicitate de procesor s fie localizate i extrase din RAM,
depuse pe magistrala de date i transportate c tre microprocesor. n final, dac se
va nmul i timpul ct dureaz un ciclu de a teptare cu milioanele de opera ii pe
secund ale unui microprocesor, va rezulta o pierdere de timp substan ial .
Deci, era nevoie de o memorie de lucru ceva mai aproape de
microprocesor i mult mai rapid (ideal f
s necesite opera ii de
remprosp tare). De aceea, ntre microprocesor i memoria de lucru a mai fost
introdus o component i anume memoria cache, realizat din celule de tip
SRAM, cu rol de memorie tampon. La rndul s u, memoria cache a fost divizat
fizic n dou niveluri i 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 i se monteaz
pe placa de baz a sistemului. Este sub form de cipuri (DIP) care se introduc n
soclurile aferente, existnd i aici, ca i la memoria RAM, 8 socluri pentru
memoria cache de lucru i 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. Pl cile 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 i
controlul opera iilor 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 i are o
por iune destinat datelor i instruc iunilor (codului) i o alta destinat comenzilor.
Cele dou module de cte sunt complet separate i lucreaz independent.
Dimensiunea memoriei cache interne cre te la procesoarele moderne.
Acest tip de memorie mbun
te mult performan ele, 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 remprosp tare i dispune de un timp de acces extrem de scurt. Mai
mult, la unele microprocesoare, cache-ul de date este mp it n blocuri, iar
controlerul de cache va g si foarte rapid datele necesare, folosind o tabel index,
alegnd exact blocul de memorie care le con ine.
Memoria cache extern
Datorit dimensiunilor mici ale memoriei cache interne (limitele fiind
impuse din considerente tehnice de construc ie a microprocesoarelor) i pentru a
ri i mai mult performan ele sistemelor de calcul, mai ales pentru a cre te
ansele ca procesorul s g seasc datele necesare n cache (cache hit) i nu n RAM
sau, mai r u, 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
megaocte ilor).
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 frecven a intern de 166 MHz, va fi nevoie
de o memorie cache cache cu timp de acces de 100/166 = 6,02 ns.
Principiul de func ionare al unei memorii cache este sintetizat n figura 3.38.

114

ARHITECTURA SISTEMELOR DE CALCUL

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. Opera ia de citire a memoriei cache.

Structura unui calculator

115

O caracteristic de baz a memoriei cache este func ia de mapare (de


translatare), care atribuie loca ii 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 loca ie din memorie poate fi
depozitat n cache i n care loca ie anume. Dac politicile de nlocuire au libertatea
de a alege orice loca ie din cache pentru a p stra copia, cache-ul se nume te
(complet) asociativ. La extrema cealalt , dac fiecare por iune din memoria
principal poate merge ntr-o singur loca ie din cache, procedeul se nume te 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 i cache n blocuri de cte 8 octe i. nseamn c memoria
cache are 128 de linii a cte 8 octe i fiecare. Memoria principal const din 64 KB,
fiecare octet fiind direct adresabil printr-o adres de 16 bi i. Se poate considera c
memoria principal const din 8 Kblocuri de cte 8 octe i fiecare. Deoarece exist un
num r mai mic de linii ale memoriei cache fa de num rul 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, a a
cum este reprezentat n figura 3.40.
Maparea este:
C = A mod L,

(3.5)

unde:
C = num rul liniei din memoria cache;
A = adresa din memoria principal ;
L = num rul de linii din memoria cache.
Pentru exemplul considerat, L = 128 i C = A mod128. Func ia de mapare
poate fi implementat simplu, utiliznd adresa de 16 bi i. Cei 3 bi i mai pu in
semnificativi, cmpul cuvnt (offset), identific un cuvnt (octet) unic n cadrul
unui bloc al memoriei principale. Restul de 13 bi i specific unul din cele 213 = 8
Kblocuri ale memoriei principale.
Cmpul de 7 bi i, numit linie sau index (slot), indic num rul blocului,
modulo128. Astfel, blocurile 0, 128, 256, , 8064 vor fi amplasate n linia 0;
blocurile 1, 129, , 8065 vor fi amplasate n linia 1, i a a mai departe, pn la
blocurile 127, 255, , 8191, care vor fi amplasate n linia 127.

116

ARHITECTURA SISTEMELOR DE CALCUL

Fig. 3.40. Memorie cache cu mapare direct .

Cmpul de 6 bi i, 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 opera ie de citire are loc astfel. Memoriei
cache i se prezint o adres de 16 bi i. Num rul liniei de 7 bi i este utilizat ca un
index n memoria cache pentru accesul la o anumit linie. Dac marcajul de 6 bi i
este egal cu marcajul liniei respective, atunci num rul de 3 bi i al cuvntului este
utilizat pentru a selecta unul din cei 8 octe i ai liniei respective. n caz contrar,
marcajul i num rul liniei (n total 13 bi i) se utilizeaz pentru a nc rca 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 loca ie 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 aceea i linie, blocurile vor fi interschimbate n
mod continuu n memoria cache i rata de succes va fi redus .
O metod care elimin dezavantajul map rii directe este maparea asociativ ,
reprezentat n figura 3.41. n acest caz, adresa memoriei principale const dintr-un
marcaj de 13 bi i i un num r al cuvntului de 3 bi i. Un bloc din memoria principal
se poate nc rca n oricare linie, iar marcajul s u de 13 bi i se memoreaz mpreun
cu blocul. Pentru a determina dac un bloc se afl n memoria cache, sunt necesare
circuite pentru a compara simultan marcajul s u cu marcajele fiec rei linii.

Structura unui calculator

117

Fig. 3.41. Memorie cache cu mapare asociativ .

n cazul map rii asociative, exist o flexibilitate n privin a nlocuirii unui


bloc atunci cnd un nou bloc este nc rcat n memoria cache. Algoritmii de
nlocuire a blocurilor din memoria cache, prezenta i n continuare, au rolul de a
cre te eficien a. 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 re ine avantajele
map rii directe i ale celei asociative. n acest caz, memoria cache este mp it n
I seturi, iar fiecare din acestea con ine J linii, a a cum rezult din figura 3.42.
Rezult :
L = I J,

(3.6)

K = A mod I,

(3.7)

unde K este num rul setului.


Cu aceast metod , blocul con innd adresa A poate fi mapat n oricare din
liniile setului I.
Observa ie. n cazul extrem, n care I = L i J = 1, maparea asociativ pe seturi
se reduce la maparea direct , iar dac I = 1 i J = L, se ob ine maparea asociativ .
Utilizarea a dou linii pe set (J = 2) este cea mai utilizat organizare asociativ
pe seturi, care mbun
te semnificativ rata de succes fa de maparea direct .
Exemplu. Cache-ul de nivel 1 din AMD Athlon este asociativ pe dou seturi,
adic orice loca ie din memoria principal poate fi depozitat n 2 loca ii din L1.

118

ARHITECTURA SISTEMELOR DE CALCUL

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

Memoria cache cu mapare pseudo-asociativ


Memoria cache asociativ pe seturi testeaz simultan toate c ile posibile,
folosind un mecanism asem tor con inutului adresabil al memoriei. Memoria
cache pseudo-asociativ testeaz fiecare cale posibil o singur dat . n cele mai
multe cazuri, cnd g se te un bloc din prima testare (succes), memoria cache pseudoasociativ este la fel de rapid ca n cazul map rii directe, dar are o rat de e ec mai
sc zut dect n cazul map rii directe i mai aproape de cea a map rii asociative.
Analize i compara ii
Asociativitatea poate fi privit ca un fel de schimb. Dac sunt zece unit i,
politica de nlocuire le trateaz ca o singur intrare, dar va trebui s caute n toate
pentru un cache hit. A verifica mai multe loca ii consum mai mult putere, spa iu
i 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 c i i de la cea
asociativ pe dou c i la cea pe patru c i etc., avnd acela i efect ca n cazul unui
cache hit. M rirea asociativit ii la peste patru c i are un efect mai slab dect n
cazul unui cache hit i este realizat , n general, pentru alte motive.
Dac fiecare loca ie din memoria principal poate fi depozitat n alte dou
loca ii din memoria cache, se pune ntrebarea care din cele dou va fi folosit . Cea
mai simpl i cea mai folosit schem utilizeaz LSB-ul cmpului linie (index) al
loca iei de memorie ca index pentru memoria cache i are dou intr ri pentru
fiecare linie. Avantajul acestei scheme este c etichetele stocate n cache nu trebuie

Structura unui calculator

119

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 c iva bi i, ocup spa iu pu in,
putnd fi citite i comparate rapid. Unul dintre avantajele map rii directe este acela
las loc specula iilor rapide i simple. Atunci cnd o adres a fost calculat , i s-a
ata at index cache unic, care ar putea con ine datele. Noua intrare n cache poate fi
citit , iar procesorul i continu lucrul cu acele date pe care le avea nainte de a
termina procesul de verificare, dac adresa cerut se potrive te cu eticheta actual .
Ideea ca procesorul s foloseasc date depozitate n cache nainte ca eticheta
se potriveasc complet poate fi aplicat i 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 translat rii adreselor.
Alte tehnici propun un cache oblic (skewed cache), unde indexul c ii 0
este direct, dar indexul c ii 1 este format cu o func ie hash. O func ie hash de
calitate are proprietatea c adresele care intr n conflict cu maparea direct tind s
nu mai aib conflicte cnd sunt mapate cu func ia hash i este mai nepl cut ca un
program s sufere din cauza unui num r nea teptat de mare de conflicte. Pe de alt
parte, exist laten n implementarea func iei hash. n plus, cnd trebuie nc rcat
o nou linie i 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 diferi i indec i ai fiec rei c i. Metoda LRU (vezi paragraful 3.2.12.3)
urm re te principiul vecin ii (cache nears) ntr-un cache non-oblic (non-skewed),
mp indu-l pe seturi. A adar, asociativitatea complet are un avantaj major fa
de asociativitatea pe seturi.
3.2.12.2. Eficien a i localizarea datelor n memoria cache
O memorie cache este util numai dac anumite informa ii sunt folosite
frecvent i mult timp. Atunci, acele informa ii merit s fie p strate n memoria
cache. Din fericire, s-a constatat experimental c acest lucru este adesea adev rat.
Aceast observa ie poate fi formulat n mai multe moduri, unul dintre acestea
fiind principiul localiz rii (locality principle). Exist dou feluri de localizare:
localizare spa ial 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 g sit anumite date, foarte adesea
acestea vor fi folosite de mai multe ori.
Acestea sunt doar observa ii, dar se potrivesc destul de bine programelor, a a
cum func ioneaz acestea n calculatoarele actuale. Validitatea observa iilor
permite folosirea de memorii cache. Acesta nu nseamn c nu exist programe
care folosesc prost memoriile cache; dimpotriv , se poate scrie destul de u or un
astfel de program (este o metod eficient de a ncetini calculatorul). Programele
obi nuite ns nu se comport astfel.

ARHITECTURA SISTEMELOR DE CALCUL

120

Eficien a unei memorii cache se m soar n procentajul de g siri ale datelor,


numit rat de succes, H (hit rate). Opusul acestei valori este procentajul de rat ri,
numit rat de e ec, M (miss rate). Procentajele acestea se m soar rulnd
numeroase programe i f cnd media.
Rela ia n aceste dou valori este:
H = 1 M.

(3.8)

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

(3.9)

Se observ c timpul unei rat ri (TM) nu este neap rat egal cu timpul de citire
din memoria lent , Tl, deoarece, n cazul unei rat ri, nti trebuie constatat dac
datele sunt n memoria cache, iar, dac nu sunt, se acceseaz memoria lent .
Memoria cache va fi eficient dac T < Tl. Parametrul H depinde de m rimea
memoriei cache: pentru o memorie cache de dimensiunea memoriei lente (caz
limit ), toate datele pot fi inute n memoria rapid i se va ob ine H = 1. Pentru o
memorie cache de dimensiune 0, H = 0, pentru c niciodat datele nu se g sesc n
aceast memorie.
Rela ia ntre m rimea memoriei cache, a memoriei lente i parametrul H nu
este o linie dreapt , ci cre te rapid la nceput, a a cum se observ n figura 3.43.
Din cauza aceasta, o memorie cache relativ redus ca m rime are o importan
mare ca eficien .

Fig. 3.43. Performan a memoriei cache.

Eficien a depinde i de raportul dintre TH i TM. n anumite cazuri, TM este de


ordinul a 104TH, deci chiar un parametru H de valoare redus poate nsemna mult.
Exemplu. Procesorul Intel Xeon la frecven a de 3,06 GHz are o memorie cache
L3 de 1 MB, cu magistrala de sistem la 533 MHz, i contribuie la cre terea nivelului de
performan cu peste 15%.

Structura unui calculator

121

3.2.12.3. Rennoirea con inutului memoriilor cache


n ceea ce prive te rennoirea con inutului memoriilor cache, pentru
tergerea datelor curente i aducerea altora noi, sunt folosite mai multe metode:
metoda RW (Random Write) sau de rescriere aleatorie: datele con inute
sunt rescrise aleator, f
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 ie it, adic ,
primele blocuri de date scrise n memorie sunt rescrise primele;
metoda LRU (Least Recently Used): datele folosite cel mai pu in recent;
blocurile de date care, temporal, nu au fost folosite timp de cel mai lung
interval sunt rescrise primele, cele accesate de curnd fiind p strate;
metoda LFU (Least Frequently Used): datele folosite cel mai pu in
frecvent; blocurile de date care, statistic, au fost folosite cel mai rar sunt
rescrise primele, cele folosite mai des fiind p strate.
Alte metode sunt: politica circular (round robin), politica setului de lucru
(working set), politica optim (optimal), politica ceasului (clock), politica celei de-a
doua anse (second chance) etc. Metoda cea mai folosit este LRU; de aceea, cel
de-al 9-lea cip de memorie cache (TAG RAM) va juca i rol de contor al frecven ei
de apelare a datelor din cache, determinndu-se datele care vor fi rescrise.
Modul de lucru general al microprocesoarelor cu memoria cache este
urm torul: programul va c uta 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 c utarea n cache-ul extern i apoi, n cazul neg sirii acestora
nici aici, n memoria principal RAM. Probabilitatea ca procesorul s g seasc
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
opera ii cu RAM-ul, este disponibilizat pentru alte procese.
3.2.12.4. Conectarea memoriei cache la microprocesor
Memoria cache este conectat cu microprocesorul i memoria RAM n
sistem serial sau paralel.
Conectarea serial (look through) vezi figura 3.44 presupune ca
dialogul microprocesorRAM s se desf oare 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 r mne liber .
Conectarea paralel (look aside) vezi figura 3.45 presupune ca
microprocesorul s se adreseze, n paralel, att memoriei cache ct i memoriei
RAM. n cazul n care ecoul din partea cache-ului este pozitiv, adresarea c tre
RAM este abandonat . De aici rezult , fa de metoda anterioar , avantajul vitezei,
evitndu-se c utarea secven ial : nti n cache, apoi n RAM. Dezavantajul apare
prin faptul c magistrala memoriei este tot timpul folosit i, astfel, nu mai este
disponibil n momentele de scanare a memoriei altor acces ri din partea
perifericelor. Mai ales n modul multitasking, acest lucru se reflect n ntrzieri
semnificative ale vitezei de execu ie a diferitelor sarcini.

122

ARHITECTURA SISTEMELOR DE CALCUL

Fig. 3.44. Organigrama conect rii seriale (look through).

Fig. 3.45. Organigrama conect rii paralele (look aside).

3.2.12.5. Depunerea n memorie a rezultatelor


Indiferent de tipul func iei de mapare, fiec rui bloc din memoria cache i
sunt asocia ii doi bi i de comand , numi i V i D.
Bitul V este un bit de validare a blocului, V = 1 fiind o condi ie necesar a
ob inerii unui cache hit. Bitul V este util ndeosebi n sistemele multiprocesor, n
vederea men inerii coeren ei memoriilor cache locale, datorit redundan ei
informa ionale. 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 con in acea dat din cadrul celorlalte
procesoare trebuie invalidate prin resetarea V = 0.
Necesitatea invalid rii blocurilor (V = 0) apare chiar i n sistemele
uniprocesor. Imediat dup resetarea sistemului, uzual, procesorul execut un
program nc rc tor rezident n memoria EPROM. Cum imediat dup ini ializarea
sistemului con inutul cache-ului este, practic, aleator, pentru a evita falsele situa ii
de cache hit, la citirea programului nc rc tor din EPROM, se ini ializeaz bi ii V
cu zero. La prima nc rcare a unei date (instruc iuni) n cache, bitul V aferent se va
seta pe 1, validnd astfel situa ia de cache hit.

Structura unui calculator

123

Bitul D (dirty data) este pus pe 0 la nc rcarea ini ial 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 evacu rile 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 acces rilor de
scriere de c tre procesor (depunerea n memorie a rezultatelor), exist trei posibilit i:
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 i 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 i ea n
cache (de fapt, dac blocul de date de la acea adres se afl nc rcat 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 por iune care va juca un rol de buffer i n care vor fi memorate
blocuri de date pn cnd magistrala memoriei devine disponibil ,
moment n care buffer-ul i transfer con inutul n RAM.
n vederea men inerii coeren ei memoriilor cache, cu prec dere n sistemele
multiprocesor, exist dou posibilit i, n func ie de procesul de scriere:
Write Invalidate, prin care CPU care scrie determin ca toate copiile din
celelalte memorii cache s fie invalidate nainte ca ea s i 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 men inere a coeren ei 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 hit i 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

situa ie n cache

ac iune n cache

citire

miss

evacuarea blocului i nc rcarea unui


bloc nou

citire

hit

compararea marcajelor/etichetelor
(tag)

scriere

miss

evacuarea blocului, nc rcarea unui


bloc nou i scrierea datei n bloc

scriere

hit

scrierea datei n blocul din cache


(Write Back)

adar, memoriile cache mbun esc performan a, ndeosebi pe citirile cu


cache hit, iar, n cazul utiliz rii scrierii tip Write Back, i pe scrierile cu cache hit.
mbun irea accesului la memorie pe citirile CPU este normal , avnd n vedere
acestea sunt mult mai frecvente dect scrierile (orice instruc iune implic cel
pu in o citire din memorie pentru nc rcarea sa; statistic, cca. 75 % din acces rile la
memorie sunt citiri, unii autori sus innd c raportul real citiri/scrieri este de 9/1).
Cache miss se refer la ncercarea nereu it de a citi sau scrie o parte din
date n memoria cache, ceea ce rezult n scrierea/citirea n memoria principal cu
laten e mai mari. Explica iile pentru cauzele situa iilor de cache miss, conform
literaturii de specialitate, sunt de trei tipuri:
la citirea instruc iunilor;
la citirea datelor;
la scrierea datelor.
Un cache miss la citirea instruc iunilor cauzeaz , n general, ntrzieri,
deoarece procesorul sau ultimul fir de execu ie trebuie s a tepte pn cnd
instruc iunile sunt aduse din memorie.
Un cache miss la citirea datelor cauzeaz ntrzieri mai mici, deoarece
instruc iunile nu depind de citirea cache-ului, putnd fi evitate, pn cnd datele
sunt preluate din memoria principal i instruc iunile care depind de acestea i
continu execu ia.
Un cache miss la scrierea datelor cauzeaz ntrzieri mici, deoarece scrierea
poate fi pus ntr-o coad de a teptare i sunt cteva limit ri n execu ia
instruc iunilor. Procesul poate continua pn cnd coada este plin .
Secven e de referin e din memorie trecute prin benchmark-uri sunt salvate ca
urme de adrese. Ulterior, analizele simulate au ar tat posibile diferen e ntre
lungimile urmelor de adrese, n func ie de designul memoriei cache. Cercet torul
Mark Hill a separat situa iile de cache miss n trei categorii:

Structura unui calculator

125

Rat ri obligatorii (compulsory misses) sunt acele pierderi cauzate de


primele referiri la date. M rimea i asociativitatea memoriei cache nu fac
nicio diferen ntre num rul de rat ri obligatorii. Aducerea timpurile a
operanzilor din memorie nu este util n acest caz.
Rat ri de capacitate (capacity misses) sunt acele pierderi care privesc
asociativitatea sau m rimea blocurilor, f cute numai de blocurile finite
din cache. Curba ratei pentru rat rile de capacitate n func ie de
capacitatea memoriei cache d m sura localiz rii temporale a unui ir
temporar de referin e. Informa iile care indic dac memoria cache este
plin , goal sau aproape plin nu sunt utile n acest caz.
Observa ie. Cache-ul procesorului are aproape mereu fiecare linie
umplut cu o copie a unei linii din memoria principal i de fiecare dat
alocarea unei noi linii necesit tergerea uneia vechi.
Rat rile de conflict (conflict misses) sunt acele pierderi care ar putea
fi evitate dac cache-ul n-ar elimina o intrare mai trziu. Rat rile de
conflict pot fi puse ntr-o hart de rat ri (miss map), care este inevitabil
i care ofer un detaliu particular asociativit ii i politicii de nlocuire.

Fig. 3.48. Rata de pierderi (miss rate) n func ie de capacitatea memoriei cache.

Graficul din figura 3.48 ilustreaz performan ele memoriei cache, ob inute
pe un benchmark pentru ntregi din SPEC2000. Aceste benchmark-uri reprezint
gradul de nc rcare al unei sta ii de lucru. Rata de pierderi n cazul asociativit ii
este sensibil superioar celei pentru mapare direct . Diferen ele ob inute 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 func ie de modul de citire a cuvintelor, celulele memoriei cache pot fi:
asincrone, la care opera ia de citire a unui cuvnt se face n dou etape:
se depune adresa, apoi se transfer datele, pentru fiecare cuvnt fiind
necesar acela i 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 i urm toarele 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 prev zut la ie ire cu registre speciale, n
care datele citite sunt stocate temporar. Astfel, este posibil o nou
adresare, practic, n acela i timp cu preluarea datelor de c tre
microprocesor din registrele de stocare (latch). Timpul de acces scade
foarte mult (chiar la 4 ns), fapt care duce la performan e 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 instruc iunilor 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 pu in trei memorii cache separate
(pentru instruc iuni, TLB i date), fiecare fiind specializat pe un anumit rol. Dac
pipeline-urile au instruc iunile i datele separate n memoria cache, se poate spune
este emulat o arhitectur de tip Harvard. Ini ial, aceast faz s-a reg sit la
ma inile cu instruc iuni i 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 re ine blocurile
terse din cache-ul procesorului, datorate unui conflict sau unei rat ri. Cache-ul
victim se afl ntre cache-ul principal i zona de reumplere, de innd numai
blocuri care au fost eliminate din cauza unui cache miss. Aceast tehnic este
utilizat pentru a reduce penaliz rile suportate de memoria cache la o ratare.
Exemple. Cache-ul victim original de pe HP PA 7200 a fost mic i complet
asociativ. Mai trziu, procesoare precum AMD K7 i K8 au folosit mult memorie
cache secundar pe post de cache victim , pentru a evita duplicatele de stocare.
Cache de urm rire (trace cache)
Unul dintre exemplele cele mai extreme de specializare a memoriei cache
este cache-ul de urm rire, g sit n microprocesoarele Intel Pentium 4. Trace cache
este un mecanism destinat cre terii gradului de aducere din memorie a
instruc iunilor (instruction fetch) i l rgimii de band , precum i reducerii
consumului de putere (n cazul lui P4), prin stocarea urmelor (traces)
instruc iunilor care au fost aduse din memorie i decodate.

Structura unui calculator

127

Un trace cache stocheaz instruc iuni chiar i dup ce acestea au fost


depozitate sau retrase. n general, instruc iunile sunt ad ugate 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 instruc iuni neramificate,
terminate cu ramifica ii. O urm dinamic include numai instruc iuni ale c ror
rezultate sunt utilizate efectiv i elimin urm toarele instruc iuni luate ca
ramifica ii (att timp ct acestea nu sunt executate), o urm dinamic putnd fi o
concatenare de mai multe blocuri de baz . Acesta permite unit ii de fetch a unui
procesor s aduc din memorie cteva blocuri de baz f
s se preocupe de
ramifica iile aflate n execu ie.
Liniile de urm rire sunt stocate n cache pe baza unui num tor de program
aflat n prima instruc iune a urmei. Aceasta permite depozitarea pentru diferite c i a
urmelor care ncep de la aceea i adres , fiecare reprezentnd rezultate diferite ale
ramifica iei. n etapa de aducere din memorie (fetch) a unui pipeline, num torul
de program curent, mpreun cu un set de predic ii ale instruc iunilor ramificate
(branch prediction), este pus n memoria cache, mai exact, n trace cache, pentru o
situa ie de cache hit. Dac apare un cache miss, ncepe construc ia unei noi urme.
Cache-ul victim este folosit n procesorul P4, pentru a stoca micro-opera ii
deja decodate sau transla ii ale instruc iunilor de pe sisteme 86, astfel nct, atunci
cnd va fi necesar o instruc iune, aceasta nu va mai trebui decodat din nou.
Cache multinivel (multilevel cache)
O alt problem este schimbul ntre laten a memoriei cache i rata de succes
(cache hit). Memoriile cache mari au o rat de succes mai bun , dar laten e mari.
Pentru a rezolva aceast problem , n majoritatea calculatoarelor se folosesc mai
multe nivele de cache, cu blocuri de cache mai mici i rapide, grupate ntr-unul mai
mare i lent.
Un cache multinivel opereaz c utnd prima dat n nivelul cel mai de jos
(L1) i, n cazul unui cache hit, viteza de procesare cre te. Dac apare cache miss
n module cache mici, atunci se caut n cache-ul cel mare (L2) i, mai departe, n
memoria principal . Diferen a de laten ntre memoria principal i 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 folose te 2 MB de
cache L2 n schimbul celui L3.
Scratch Pad
Folosirea eficient a spa iului de memorie integrat n cipul procesorului (onchip) este extrem de important n aplica iile moderne ale sistemelor dedicate
(embedded systems), bazate pe nucleele procesoarelor. n completarea memoriei
cache de date, care realizeaz interfa a cu memoria mai lent din afara cipului
procesorului (off-chip), n diverse aplica ii se folose te adesea o memorie SRAM
rapid , de tip on-chip, numit memorie scratch pad (vezi schema din figura 2.29)

128

ARHITECTURA SISTEMELOR DE CALCUL

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
seasc 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 i P4, nu solicit ca datele din cache-ul L1 s
se g seasc i n L2, de i ar putea face acest lucru.
Nu sunt acceptate nume universale pentru aceast politic intermediar , de i
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 situa ie de cache miss n L1 i 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 tearg 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 i cache-ul L1. n schimb, exist
o corela ie ntre asociativitatea cache-ului L1 i cea a cache-ului L2: dac cache-ul
L2 nu are cel pu in attea c i ca L1, asociativitatea cache-ului L1 este
restric ionat .
Cache-ul strict inclusiv folose te linii de dimensiuni mari n cache, ceea ce
reduce m rimea etichetelor din cache-ul secundar (cache-ul exclusiv necesit ca
ambele cache-uri s aib linii de aceea i dimensiune, pentru a le putea schimba
cnd n L1 apare cache miss i n L2, cache hit). Dac cache-ul secundar este cu un
ordin de m rime mai mare i datele sunt tot cu un ordin de m rime mai mari dect
etichetele, aceast zon poate fi etichetat ca zon de salvare i poate fi
incrementat comparabil pn la dimensiunile zonei de care au nevoie L1 i L2 s
depoziteze date.
Dup cum s-a mai spus, calculatoarele puternice au un alt cache ntre L2 i
memoria principal , numit cache de nivel trei (L3). Acest cache poate fi
implementat pe un chip separat de procesor i, ncepnd din 2004, poate varia ca
rime de la 2 la 250 MB. Beneficiile unui chip L3 depind de cererea de acces a
aplica iilor. Sta iile de lucru high-end i serverele au memoria de tip L3
implementat n procesor, ceea ce duce la m rirea vitezei i 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 cel lalt cap t al ierarhiei (n cazul sta iilor de lucru lowend), registrul de fi iere al procesorului poate fi considerat drept cel mai mic i cel
mai rapid cache din sistem, cu caracteristica de a fi programat software de un
compilator, ca i cum ar aloca registre pentru a p stra valori primite din memoria
principal .

Structura unui calculator

129

Studiu de caz: memoria cache la procesorul AMD Athlon 64 (K8)


Pentru a exemplifica specializ rile cache-ului multinivel, integrat i divizat, se
folose te 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 instruc iuni, una pentru
blocul TLB, una pentru datele TLB-ului i una pentru date. Fiecare dintre aceste
cache-uri este specializat:
1. Cache-ul pentru instruc iuni p streaz cpii ale celor 64 de linii ale
memoriei i aduce din memorie 16 B la fiecare ciclu. Fiecare octet din acest cache
este depozitat n 10 bi i n loc de 8, cu un marcaj suplimentar de bit al limitelor
instruc iunilor (acesta este un exemplu de precodare). Cache-ul are doar protec ie
de paritate, mai degrab dect ECC, deoarece informa ia de paritate ocup spa iu
mai pu in, iar datele avariate pot fi nlocuite de date proaspete aduse din memorie.
2. Instruc iunile blocului TLB p streaz cpii ale intr rilor din tabelul
paginilor (PTE). Fiecare ciclu de instruc iuni adus din memorie are propria sa
adres virtual , translatat cu ajutorul TLB-ului ntr-o adres fizic . Fiecare intrare
are 4 sau 8 octe i n memorie, iar fiecare TLB este mp it n dou sec iuni: una
pentru a p stra PTE-urile care ocup 4 KB din hart i alta pentru a p stra PTEurile care ocup 2 sau 4 MB din hart . mp irea permite o potrivire a circuitului
n fiecare sec iune n mod complet asociativ. Sistemul de operare mapeaz sec iuni
diferite ale spa iului de adrese virtuale cu diferite m rimi ale PTE-urilor.
3. Datele TLB-ului au dou cpii, care con in intr ri identice. Cele dou cpii
permit accesul la dou date per ciclu, pentru a translata adresele virtuale n adrese
fizice. Ca i instruc iunile TLB-ului, i aceasta este mp it n dou tipuri de intr ri.
4. Datele cache-ului p streaz cpii ale celor 64 de linii ale memoriei. Este
mp it n 8 bancuri (fiecare depozitnd cte 8 KB de date) i poate aduce din
memorie doi octe i de date pe ciclu.

130

ARHITECTURA SISTEMELOR DE CALCUL

Nucleul K8 are, de asemenea, un cache multinivel. Exist instruc iuni de


nivel 2 i date ale TLB-ului care depoziteaz numai PTE-uri mapate pe 4 KB.
Ambele cache-uri, de instruc iuni i de date, pot fi umplute din cache-ul L2. Acest
cache este exclusiv, att pentru instruc iunile ct i pentru datele din L1, ceea ce
nseamn c orice linie de 1 octet se poate g si numai ntr-o singur instruc iune
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 p strarea 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 mbun iri sistemelor de calcul, m rind
foarte mult viteza de procesare, desigur n func ie i de dimensiunea memoriei
cache instalate n sistem. Totu i, se poate pune i aici o ntrebare: pn unde poate
merge memoria cache ca dimensiune i ct de folositoare este m rimea acesteia?
n ultimul timp se construiesc sisteme care pot avea pe placa de baz pn la
c iva megaocte i de cache extern. Dar o supradimensionare a memoriei cache
externe f
a se ine seama de scopul n care va fi folosit calculatorul nu va duce
dect la nc rcarea notei de plat (memoria cache, fiind o memorie static , este cu
mult mai scump dect RAM-ul), deoarece avantajele ob inute 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 ob ine folosind doar 64 KB de memorie cache.
Ridicnd dimensiunea cache-ului la 256 KB se va ob ine o cre tere 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 condi ii 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 re ea, i unde cei 64 KB cache de date ai unei sarcini sunt nlocui i 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 pu in
dou , astfel nct s creasc probabilitatea ca procesorul s i g seasc datele
necesare ntr-unul din aceste depozite cache, f
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 activit i multitasking, este necesar mult mai mult memorie cache.

3.2.4. Memoria ROM


Un alt tip de memorie folosit n construc ia calculatoarelor i 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 tears prin metode aflate la ndemna utilizatorului; n plus, la decuplarea
de sub tensiune a calculatorului, informa iile din ROM r mn intacte.

Structura unui calculator

131

tergerea anumitor memorii ROM, de construc ie special (PROM,


EPROM, EEPROM) se poate face prin lansarea unui spot de radia ii ultraviolete
asupra ferestrei de cuar cu care este prev zut cipul de memorie. Scrierea
memoriilor ROM presupune un atac distructiv i ireversibil asupra diodelor i
tranzistoarelor, prin arderea jonc iunilor interne. Rezultatul acestei ac iuni de
ardere se observ prin modificarea con inutului informa iei binare.
n prezent, exist pl ci 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 i mai performante. Deci, ca o concluzie de
baz , datele scrise n memoria ROM au un caracter permanent i au o importan
vital n ini ializarea i func ionarea oric rui sistem de calcul.
Memoria ROM are aspectul unui circuit integrat cu dou rnduri de pini (DIP)
i este montat de placa de baz a calculatorului prin intermediul unui soclu. Intern,
memoriile de acest tip sunt realizate din re ele rectangulare de microtranzistoare
sau microdiode. Accesarea memoriei ROM se face la fel ca la RAM.
O celul de memorie este alc tuit dintr-un circuit basculant bistabil (CBB).
Pentru a realiza mai multe celule, se aranjeaz CBB-urile sub forma unui tablou cu
un num r de coloane i rnduri. n general num rul rndurilor este egal cu cel al
coloanelor. Fiecare celul se afl la intersec ia unei anumite linii X i a unei
anumite coloane Y (vezi figura 3.50).

Fig. 3.50. Organizarea memoriei RAM.

Organizarea memoriei sub form de matrice permite reducerea num rului


intr rilor de adrese la un num r mai mic dect num rul liniilor i al coloanelor
aferente informa iei stocate. Num rul terminalelor de adresare poate fi mic orat
prin adresarea n cod binar i utilizarea decodificatoarele binar-zecimale. Acest
mod de adresare n cod binar este utilizat i n cazul memoriei RAM.
Exemplu. Fie o memorie ROM care con ine 8 cuvinte de cte 4 bi i (vezi
figura 3.51.a). O combina ie binar care se aplic pe cele 3 intr ri de adres (A2,
A1, A0) selecteaz unul din cele 8 cuvinte, iar cei 4 bi i de date ai cuvntului
selectat sunt disponibili la ie iri (O0, O1, O2, O3), cu condi ia ca semnalul de
validare a ie irii, OE (Output Enable) s fie activ (activarea se face pe 0 logic).

132

ARHITECTURA SISTEMELOR DE CALCUL

Dac OE = 1, ie irile memoriei sunt n starea de impedan nalt (high Z). Tabelul
de adev r din figura 3.51.b este un exemplu care arat o posibilitate de implementare
a 4 func ii binare de cte 3 variabile.

Fig. 3.51.a. Memorie ROM cu 8 cuvinte de 4 bi i; b. Tabelul de adev r asociat.

Structura intern a unui cip de memorie ROM organizat pe 1024 cuvinte a


cte 8 bi i, adic 1 K 8, este prezentat n figura 3.52. Matricea de memorie se
construie te sub o form ct mai apropiat de cea a unui p trat. Liniile matricei
sunt selectate cu ajutorul decodificatorului cu 7 intr ri de selec ie, iar coloanele, cu
ajutorul celor 8 multiplexoare a cte 3 intr ri de selec ie. Intrarea suplimentar , CS
(Chip Select), activ pe 0 logic, preg te te cipul de memorie n vederea unei
opera ii de citire a datelor. Prin dezactivare, ac ioneaz asupra circuitelor din
structur n scopul reducerii consumului. Schema con ine i 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 bi i.

Pentru realizarea memoriei ROM, sunt utilizate tehnologii bipolare (TTL,


TTL-Schottky, ECL), tehnologii metal-oxid-semiconductor (MOS) cu canal N (NMOS), cu canal P (P-MOS), cu simetrie complementar (CMOS), cu canal negativ
(NMOS) sau tehnologii cu logic integrat de injec ie (I2L).

Structura unui calculator

133

Ca urmare, performan ele poart amprenta caracteristicilor tehnologice:


bipolar vitez de procesare mare, putere disipat ridicat , densitate de
integrare sc zut ;
MOS densitate de integrare ridicat , vitez de procesare mai sc zut
dect la bipolar , putere disipat relativ sc zut ;
CMOS putere disipat foarte sc zut i 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 i adres );
puterea disipat (n regim de func ionare sau n regim de rezerv stand-by);
timpul de acces;
timpul de ciclu memorie;
disponibilitatea;
pre ul de cost.
Orice sistem de calcul folose te o memorie ROM care con ine urm toarele
sisteme software:
1. Sistemul cu program starter sau ROM-ul de start, adic microcodul cu
rol de asistare i control al pornirii sistemului. Aici se afl nscrise mici rutine care
realizeaz urm toarele ac iuni:
execut testele de func ionalitate ale tuturor componentelor ata ate hardware;
ini ializeaz toate componentele ata ate calculatorului;
ini ializeaz tabela vectorilor de ntrerupere;
verific alte extensii sau periferice ata ate sistemului de calcul;
ncarc n memorie, de pe disc, sistemul de operare.
Testele de verificare, care formeaz a a-numitul POST (Power On Self
Test), dureaz foarte pu in pentru verificarea pl cii de baz , a controlerului de disc,
a pl cii video, a unit ilor de disc, i ceva mai mult pentru memoria RAM, care este
verificat kilooctet cu kilooctet. Automat, n cazul n care se detecteaz anumite
erori i disfunc ii pentru oricare din componentele hardware, se va lansa un mesaj
de avertizare. Sistemul de operare, odat nc rcat n RAM, va prelua conducerea i
gestiunea sistemului de calcul.
2. ROM-BIOS (Basic Input Output System) este o parte a memoriei ROM
care va asigura toate procesele i serviciile necesare activit ii calculatorului, precum
i gestiunea perifericelor, prin intermediul rutinelor con inute. BIOS-ul con inut de
ROM este elementul de leg tur sau interfa a direct ntre partea hardware i 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 con inute vor activa canalele de comunica ie dintre
componentele sistemului i un sistem de operare sub care lucreaz acesta.
3. ROM-Basic este un program op ional, care con ine nucleul limbajului Basic.
4. Extensiile ROM reprezint un sistem care con ine anumite rutine
necesare gestiunii dispozitivelor ata ate.

134

ARHITECTURA SISTEMELOR DE CALCUL

ntreaga memorie ROM este activ pe tot parcursul lucrului cu calculatorul.


nc de la pornirea i ini ializarea calculatorului (la nc rcarea sistemului de
operare), n situa iile ap rii tastei Delete, BIOS-ul va furniza o interfa de dialog
cu utilizatorul, prin care va oferi o serie de informa ii privind starea func ional i
structura sistemului de calcul. Prin intermediul unor meniuri, se poate modifica o
serie de parametri pentru a se ob ine un mod de lucru optim i rapid.

Fig. 3.53. Modul de organizare al memoriei.

Structura unui calculator

135

Ultimii 128 KB rezerva i din zona de memorie superioar (vezi figura 3.53)
sunt utiliza i 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 c tre
sistemul de operare) i r mn ca driver-e pentru subsistemele hard pe durata
func ion rii normale a sistemului. Deoarece aceste programe trebuie s fie
disponibile imediat, la pornirea sistemului ele nu pot fi nc rcate de pe discuri (sau
alte dispozitive de memorare).
Principalele func ii ale programelor de pe placa de baz sunt:
autotestarea la punerea sub tensiune (POST);
rutina de nc rcare a sistemului de operare (bootstrap loader) ini iaz
utarea sistemului de operare pe discurile disponibile;
sistemul de baz pentru opera ii de intrare-ie ire (BIOS) este interfa a
soft sau programul principal de control pentru toate componentele hard
ale sistemului.
Acest sistem con ine un prim meniu Standard CMOS Setup , unde se
stabilesc tipul i parametrii unit ilor de disc, tastaturii sau pl cii video, ora i data
curent a sistemului.
Un al doilea meniu Advanced CMOS Setup cuprinde o serie de parametri
reglabili pentru a ob ine maximul de performan . n acest meniu, se pot activa sau
dezactiva memoria cache intern i extern , se poate stabili o parol de intrare n
sistem, ordinea de c utare a sistemului de operare pe disc etc.
Al treilea meniu Advanced Chip-set Setup con ine reglaje foarte fine de
optimizare, cum ar fi configurarea magistralelor sau a st rilor de a teptare ale
microprocesorului.
Datorit u urin ei cu care se poate accesa BIOS-ul, parametrii care definesc
func ionarea general a calculatorului pot fi modifica i foarte simplu, dar
configurarea arbitrar a parametrilor BIOS poate produce deregl ri ale sistemului.
Tot aici se poate men iona unitatea special MMU (Memory Management
Unit), care se ocup cu transferul con inutului 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 i datelor ROM n RAM ridic
foarte mult performan ele sistemului, deoarece timpul de acces al memoriei ROM
este foarte mare (150200 ns) i opera iile care implic folosirea con inutului ROM
se desf oar lent. Activarea op iunilor 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 cartu ele ROM al c ror con inut a fost citit i scris apoi n RAM, iar
n continuare va marca aceste zone de memorie RAM n care s-a transferat
con inutul ROM, protejndu-le.
Leg tura memoriei ROM cu exteriorul se face prin magistrala de adrese,
corespunz toare pinilor nota i cu A0Am (pentru detectarea loca iei care con ine
informa ia cerut ) i magistrala de date, pentru transferul datelor, prin pinii nota i
cu D0An, n func ie de num rul de pini al cipului respectiv.

3.3. Organizarea dispozitivelor de intrare-ie ire (I/O)


Arhitectura calculatoarelor moderne presupune dou moduri de organizare a
dispozitivelor I/O:
pentru arhitectura calculatoarelor mari;
pentru arhitectura microcalculatoarelor.

3.3.1. Organizarea dispozitivelor I/O la calculatoare mari


n figura 2.31 se prezint organizarea dispozitivelor I/O la calculatoarele mari.

Fig. 3.54. Organizarea dispozitivelor I/O la calculatoarele mari.

Semnifica ia nota iilor din figur este urm toarea:


MP memoria principal ;
UC unitatea central ;
Proc. I/O procesoare I/O sau de canal;
CT controler terminale;
T terminale;
Impr. imprimant ;
UD unit i de disc (D).
Magistrale:

Structura unui calculator

137

MM magistrala memoriei;
MD magistrala de date;
MI/O magistrala de I/O.
Cnd microprocesorul central trebuie s efectueze o opera ie I/O cu un
anumit periferic, el cedeaz aceast opera ie procesorului asociat perifericului;
microprocesorul central transmite canalului informa ia necesar pentru realizarea
opera iei de I/O i i cere acestuia s o execute.
Canalul realizeaz opera ia I/O n mod complet i autonom: procesorul I/O
execut un program de transfer al datelor cu parametrii primi i de la
microprocesorul central; cnd transferul ntre periferic i memorie a fost ncheiat,
procesorul I/O anun microprocesorul central despre efectuarea transferului. Acest
mod de lucru degreveaz microprocesorul central de opera iile I/O, care, de regul ,
sunt mult mai lente dect viteza de lucru a microprocesorului central. n timpul
acestui transfer, microprocesorul central execut alte instruc iuni. Exist
posibilitatea execut rii mai multor transferuri I/O n acela i timp, astfel rezultnd
cre terea performan elor sistemului.
Observa ie. Prezen a celor trei magistrale este specific calculatoarelor
mari. MM permite canalelor I/O s citeasc sau s scrie date direct din sau n
memorie, MI/O asigur comunica ia ntre microprocesorul central i canalele I/O,
iar MD permite microprocesorului central s schimbe informa ii cu memoria
(citirea/scrierea datelor, execu ia programelor etc.).

3.3.2. Organizarea dispozitivelor I/O la microcalculatoare


Microcalculatoarele sunt construite dintr-o plac de baz pe care se afl
microprocesorul, circuitele de memorie i circuitele de I/O (vezi figura 3.55).

Fig. 3.55. Organizarea dispozitivelor I/O la microcalculatoare.

Semnifica ia nota iilor din figur este urm toarea:


UC unitate central ;
M memorie;
MON. monitor;
KBD tastatur ;
UDM/O unitate disc magnetic / optic.

138

ARHITECTURA SISTEMELOR DE CALCUL

Cu ajutorul conectorilor, la aceast plac de baz se pot lega circuite


suplimentare (pl ci adi ionale), de exemplu pl ci de comunica ie. Conectorii
reprezint ie iri ale magistralei unice a sistemului.
Fiecare unitate periferic are urm toarele p i:
circuite electronice de control a unit ii (controler dispozitiv hard care
realizeaz interfa a calculator-periferic, guvernat de un program special,
numit driver);
unitate periferic propriu-zis (unit i de disc, tastatur , mouse, joystick,
tablet digitizoare, imprimant , camer digital , scanner, modem etc.).
Controlerul de periferic se prezint sub forma unei pl ci adi ionale conectate
la magistrala sistemului prin conectorii de magistral . Exist ns i unele excep ii,
aceasta nefiind o regul general .
Exemplu. Controlerul de tastatur se afl pe placa de baz .
Rolul controlerului de periferic este de a transmite perifericului instruc iunea i
informa ia necesar i de a superviza accesul perifericului la magistrala sistemului.
Exemplu. Dac un program necesit informa ie de pe disc, microprocesorul
transmite o comand controlerului de disc; controlerul va trimite unit ii de disc un
ansamblu de comenzi necesare g sirii i transferului informa iei respective. Dup
sirea informa iei, aceasta ajunge la controler sub form binar (bi i). Controlerul
de disc formeaz din acest ir de bi i cuvinte, pe care le scrie succesiv n memorie.
Un controler poate scrie sau citi n/din memorie f
interven ia
microprocesorului (acesta realizeaz o opera ie DMA Direct Memory Access).
Mai exist arbitrul de magistral (bus arbitrer), necesar n situa ia n care
apar procese concurente. Astfel, cnd microprocesorul cere acces la magistral
simultan cu alte cereri de magistral , apare o problem : pe magistral se poate
transmite un singur cuvnt la un moment dat. Arbitrul de magistral analizeaz
cererile i acord accesul doar unui singur dispozitiv (stabile te priorit ile). n
general, accesul la magistral se acord mai nti perifericelor, i nu
microprocesorului (microprocesorul are o flexibilitate mai mare dect perifericele).
Exemplu. Nu se opre te hard disk-ul n timpul rota iei pentru a servi
microprocesorul; se trateaz mai nti cererea hard disk-ului.

3.4. Conectarea perifericelor la sistem


Dup cum s-a v zut, majoritatea calculatoarelor de tip PC compatibile IBM
con in o plac de baz dotat cu sloturi (puncte de conectare la magistralele
sistemului) prin care se cupleaz pl cile de extensie, respectiv, porturile seriale sau
paralele, pentru conectarea altor dispozitive (memorii secundare sau ter iare,
echipamente de intrare-ie ire, de achizi ie, de afi are, de comunica ie etc.). n
general, n categoria perifericelor cu cuplare intern n sloturi intr placa video sau
acceleratorul grafic, controlerul de disc, placa de sunet, placa de re ea, plachetele de
memorie RAM, pl cile pentru digitizarea imaginilor i afi area acestora pe ecran etc.

Structura unui calculator

139

Leg tura dintre toate aceste componente se asigur prin intermediul


transmisiunilor de semnale (instruc iuni, comenzi, date), pe baza unor protocoale i
seturi de reguli standardizate.
Sistemele de calcul sunt ma ini care lucreaz numai n sistem de numera ie
binar, acesta fiind sistemul de numera ie optim folosit la o ma in de calcul ideal ,
deoarece se folosesc numai dou cifre (0 i 1) pentru reprezentarea oric rei
informa ii, de orice natur i form . Aceste numere au coresponden n dou
niveluri de tensiune, n general, de valori 0 Vcc (low level) i 5 Vcc (high level) n
logica pozitiv sau niveluri inverse pentru logica negativ .
Dup cum se tie, entitatea elementar purt toare de informa ie este digitul
binar, care poate lua dou valori logice: 0L sau 1L. Dac aceste valori sunt
echiprobabile, cantitatea de informa ie purtat de un digit binar este de 1 bit. De
aceea, printr-un abuz de limbaj, se confund uneori no iunile de bit (ca m sur a
informa iei) i digit binar (ca semnal purt tor de informa ie).
Un grup de 8 bi i succesivi formeaz o structur numit octet sau byte. Sunt
folosi i, de asemenea, multiplii acestuia: kiloocte ii, megaocte ii, gigaocte ii i
teraocte ii (KB, MB, GB, TB).
Din punct de vedere fizic, leg tura ntre sistemul de calcul i periferice este
realizat prin interfa a de intrare-ie ire (I/O).
Dispozitivele de intrare-ie ire sau echipamentele periferice (EP) au, n
general, o structur proprie, independent de structura calculatorului la care se
conecteaz (de exemplu: disc magnetic sau optic, imprimant , plotter etc.)
Cuplarea acestor echipamente la un sistem de calcul presupune adaptarea
semnalelor specifice fiec rui echipament la semnalele de pe magistral i reglarea
fluxului de date ntre calculator i periferic.
Rolul interfe elor I/O este de adapta particularit ile unui dispozitiv I/O la
cerin ele unui anumit sistem de calcul. Sub acest aspect, o interfa I/O este
structurat pe dou niveluri:
un nivel adaptat semnalelor i modului de func ionare al magistralei;
un nivel adaptat particularit ilor func ionale ale dispozitivului I/O.
Primul nivel con ine registre I/O (porturi) pentru date, comenzi i stare,
direct adresabile de CPU.
Al doilea nivel este responsabil cu generarea semnalelor de comand i cu
achizi ia semnalelor de stare specifice unui anumit tip de dispozitiv periferic.
Structura acestui nivel difer mult de la un dispozitiv I/O la altul, n func ie de tipul
perifericului.
O interfa I/O con ine urm toarele blocuri componente:
registre de date (de intrare i/sau de ie ire);
registre de comenzi;
registre de stare;
bloc de selec ie a registrelor (decodificator);
dispozitiv de comand .
Interfa a I/O este prezentat n figura 3.56.

140

ARHITECTURA SISTEMELOR DE CALCUL

Registrele de date
O interfa poate asigura transferul de date ntr-un singur sens sau n ambele.
Pot exista mai multe canale de intrare, de ie ire sau bidirec ionale. Pentru fiecare
canal i pentru fiecare sens, se aloc un port (registru) de date, care ocup o
anumit adres n spa iul de adrese I/O al CPU.
Registrele de comenzi
Au rolul de a genera semnalele specifice unui anumit echipament (de
exemplu, pentru hard disk se face selec ia capului de citire, selec ia unit ii de
activare a scrierii etc.). Prin registrele de comand pot fi selectate modurile de lucru
ale interfe ei sau se pot fixa parametrii de transfer (transfer pe octet sau pe bloc,
frecven a de transmisie, formatul datelor transmise etc.).
Registrele de stare
Ofer informa ii despre starea echipamentului i a interfe ei (de exemplu,
dispozitiv ocupat/defect, dat recep ionat , registru de ie ire gol etc.). Aceste
informa ii sunt testate n timpul programului, pentru detectarea eventualelor erori
de transfer sau a defectelor i pentru reglarea vitezei de transfer.

Fig. 3.56. Schema de principiu a unei interfe e I/O.

Blocul de selec ie
Genereaz semnalele de validare a porturilor pentru opera iile de scriere i
citire. La selec ie, se utilizeaz semnalele de comand pentru citire/scriere de la/la
periferic (de exemplu, semnalele IOR/ IOW/ n sistemele Intel).

Structura unui calculator

141

Dispozitivul de comand
Este un circuit secven ial sau combina ional, utilizat n cazul unor interfe e mai
complexe, care controleaz func ionarea celorlalte componente ale interfe ei. Pentru
anumite tipuri de interfe e exist circuite specializate de control, numite controlere.
Exemple:
controler de disc flexibil i8272;
controler DMA i8237-5;
controler video MC6845.
Interfa a poate s con in i o memorie ROM sau RAM.
Memoria ROM p streaz driver-ul de interfa , care este identificat la
ini ializarea sistemului i este inclus n rutinele sistemului de operare.
Memoria RAM este utilizat ca buffer ntre memoria principal i periferic.
Necesitatea acesteia apare n cazul fluxurilor mari de date, situa ie n care
sincronizarea perifericului cu frecven a de transfer de pe magistral devine dificil
(de exemplu, interfa a de disc sau interfa a video).
Toate transferurile de informa ii i date, ntre diverse componente ale
sistemului de calcul sau ntre dou sau mai multe sisteme legate ntr-o re ea,
transferuri care se realizeaz de-a lungul i cu ajutorul magistralelor, se desf oar
la nivel de bit, octet, cuvnt sau bloc de octe i. Aceste transferuri de bi i se pot
efectua n dou moduri:
prin transmisie paralel ;
prin transmisie serial .

3.4.1. Transmisia paralel


Transmisia paralel este mai eficient , prin faptul c se desf oar simultan
pentru 8 bi i, pe 8 c i diferite (vezi figura 3.57).

Fig. 3.57. Realizarea unei transmisii paralele.

142

ARHITECTURA SISTEMELOR DE CALCUL

Transferul unui grup de octe i are loc cu o vitez considerabil , dar are
dezavantajul costului ridicat al instala iei fizice, care presupune existen a a 8 fire i
a unei interfe e paralele aparte. De aceea, aceast transmisie se folose te la
echipamentele care vehiculeaz volume mari de date ntr-un interval de timp foarte scurt.
Porturile paralele sunt folosite, n general, la comunica ia unidirec ional
(dar nu n sens strict) i dispun de 25 de pini (vezi figura 3.58).

Fig. 3.58. Dispunerea pinilor pentru transmisia paralel .

3.4.1.1. Configura ia porturilor paralele


Configura ia porturilor paralele nu este tot att de complicat ca aceea a
porturilor seriale. Chiar i calculatorul original IBM PC are suport BIOS pentru trei
porturi LPT, iar sistemul DOS l-a avut, de asemenea, ntotdeauna. Deoarece BIOS
i DOS au definit de la nceput trei porturi paralele, problemele cu sistemele mai
vechi sunt pu in frecvente. Acestea pot totu i s apar din lipsa disponibilit ii unor
porturi comandate prin ntreruperi la sistemele cu magistral ISA.
Tabelul 3.5
Semnifica ia pinilor portului paralel
Nr. pin

Semnifica ie

strobe

2...9

bit0...bit7

10

confirmare (ACK)

11

busy

12

lips hrtie (paper feed)

13

selec ie

14

line feed (LF) automat dup CR

15

eroare

16

ini ializare display

17

selec ie intrare

18...25

mas

n mod normal, un port comandat prin ntreruperi nu este absolut necesar


pentru opera iile de imprimare; de fapt, multe programe nu folosesc posibilitatea de
comand prin ntreruperi. ntreruperea este totu i folosit de multe aplica ii, cum
sunt programele de tip rire din re ea i alte tipuri de tip rire n paralel sau de tip

Structura unui calculator

143

spooler (din fi iere de tip rire). De asemenea, orice program utilitar pentru o
imprimant laser rapid ar folosi des posibilitatea de ntrerupere pentru a permite
imprimarea. Dac se folose te acest tip de aplica ii n cazul unui port care nu este
comandat prin ntreruperi, imprimarea se va face foarte lent sau se va opri.
Singura solu ie este s se foloseasc un port comandat prin ntreruperi.
Datorit faptului c sistemele PS/2 cu magistral MCA pot folosi n comun
ntreruperile, ele nu au aceste probleme i toate porturile paralele din aceste sisteme
sunt comandate prin ntreruperi pe IRQ7.
Pentru a configura porturile paralele n sistemele cu magistral ISA, trebuie
se pozi ioneze cteva jumper-e i comutatoare. Deoarece fiecare plac de pe
pia este diferit , trebuie s se consulte manualul pentru a ti cum trebuie
configurat . IBM include aceste informa ii n documenta ia fiec rei pl ci i ofer
manuale tehnice pentru op iuni i adaptoare, ca i manuale de service i ntre inere
hard, care descriu n detaliu pozi iile jumper-elor i comutatoarelor pl cilor
adaptoare IBM. Al i produc tori ofer pur i simplu pe lng plac un manual care
descrie placa i include informa iile de configurare. Sistemele cu magistral MCA
sau PCI i toate sistemele actuale au configurarea automat (plug play) sau
comandat soft.

3.4.2. Transmisia serial


Transmisia serial este mult mai simpl (vezi figura 3.59), deoarece nu
necesit dect o cale de transmisie, un octet transmi ndu-se bit cu bit (de aceea
este folosit la comunica iile ntre diverse sisteme de calcul obi nuite). n plus,
costurile echipamentelor sunt foarte mici.

Fig. 3.59. Realizarea unei transmisii seriale.

ARHITECTURA SISTEMELOR DE CALCUL

144

Dezavantajul rezid n viteza de transmisie, practic de zece ori mai mic fa


de cea paralel . Este totu i transmisia folosit cel mai des, fiind fiabil , ieftin i
simplu de ntre inut.
Porturile seriale sunt folosite la transmisia bidirec ional i dispun de 9 pini.
Dispunerea pinilor este prezentat n figura 3.60, iar semnifica ia lor, n tabelul 3.6.
Pentru ambele tipuri de transmisiuni, aceea i m rime fizic caracterizeaz
num rul de unit i binare transmise n unitatea de timp, i anume, viteza de
transmisie sau debitul de informa ie.

Fig. 3.60. Dispunerea pinilor pentru transmisia serial .

Unit ile de m sur folosite sunt:


la transmisiunea paralel : B/s (octe i pe secund );
la transmisiunea serial : b/s (bi i pe secund ) i baud (num rul de
semnale electrice pe secund sau num rul de schimb ri ale tensiunii ntro secund transmisia cifrelor 0 i 1 nseamn , de fapt, transmisia unor
trenuri de semnale electrice cu dou niveluri extreme, corespunz toare
celor dou simboluri binare).
Tabelul 3.6
Semnifica ia pinilor la portul serial
Nr. pin

Semnifica ie

Denumire

intrare detec ie de und purt toare

DCD

intrare recep ie date

RD

ie ire transmisie date

TD

ie ire stare ready la dispozitivul cuplat

DTR

mas de protec ie

GND

intrare stare ready la transmisie

DSR

ie ire cerere de transmisie

RTS

intrare confirmare transmisie la dispozitivul cuplat

CTS

intrare indicator de apel

RI

3.4.2.1. Configura ia porturilor seriale


De fiecare dat cnd un port serial prime te un caracter, el trebuie s
aten ioneze calculatorul activnd o linie de ntrerupere (IRQ). Sistemele cu
magistral ISA pe 8 bi i au 8 asemenea linii, iar cele cu magistral ISA pe 16 bi i

Structura unui calculator

145

au 16 linii. Controlerul i8259A manipuleaz de regul aceste cereri de aten ionare.


ntr-o configura ie standard, COM1 folose te IRQ4, iar COM2 utilizeaz IRQ3.
Atunci cnd elementul ROMBIOS conecteaz aceste porturi, este posibil s
apar o problem . Dac autotestul POST nu g se te portul serial 3F8, dar
detecteaz n schimb 2F8, el este atribuit eronat portului serial COM1. Linia IRQ
rezervat pentru COM1 este IRQ4, dar acest port serial folose te adresa portului
COM2, adic folose te linia IRQ3 n locul liniei IRQ4.
O alt problem este aceea c IBM nu a introdus suportul BIOS pentru
COM3 n sistemele sale originale cu magistral ISA. Prin urmare, comanda DOS
MODE nu poate lucra cu porturile seriale aflate dincolo de COM2, deoarece DOS
prime te datele de intrare-ie ire de la BIOS, care, n timpul rul rii autotestului
POST, detecteaz ce este instalat n sistem i unde.
Pentru a evita aceast problem , cele mai multe programe de comunica ii i
unele periferice seriale (ca mouse-ul) accept porturile COM cu num r de ordine
mai mare, adresndu-le direct i nu apelnd func ii DOS. Porturile suplimentare
trebuie s utilizeze ntreruperi separate. Dac se folosesc simultan dou porturi
COM, acestea trebuie s aib ntreruperi opuse. Iat care sunt posibilit ile de
operare simultan n configura ia standard de porturi i ntreruperi:
COM1 (IRQ4) i COM2 (IRQ3)
COM1 (IRQ4) i COM4 (IRQ3)
COM3 (IRQ4) i COM2 (IRQ3)
COM3 (IRQ4) i COM4 (IRQ3).
3.4.2.2. Standarde pentru transmisii seriale
Pentru a conecta ntre ele prin intermediul porturilor seriale dou sau mai
multe calculatoare aflate la distan e destul de mari, nu mai este indicat s se
foloseasc un cablu de re ea, deoarece ar rezulta un pre destul de mare i ar ap rea
probleme de transmisie a semnalelor. Conectarea se poate realiza totu i cu ajutorul
liniilor telefonice sau a cablului optic. n cazul primei solu ii, este nevoie de un
dispozitiv care s realizeze adaptarea la linia de telefon, i anume, de un modem.
Laboratoarele Bell i CCITT au stabilit standardele pentru protocoalele
modemurilor. Un protocol este o metod prin care dou entit i diferite se n eleg
comunice. Standardele modemurilor se pot mp i n urm toarele trei grupuri,
n func ie de facilitatea oferit :
standarde de modula ie: Bell 103, 212A, CCITT V.21, 22bis, 29, 32, 32bis etc.;
standarde de corec ie a erorilor: CCITT V.42 etc.;
standarde de compresie a datelor: CCITT V.42bis, MNP etc.
Standarde de modula ie
Modula ia este metoda electronic de semnalare folosit de modemuri.
Acestea trebuie s utilizeze aceea i metod de modula ie pentru a se n elege ntre
ele. Cele mai r spndite metode de modula ie digital sunt (vezi figura 3.61):
modula ia n amplitudine (MA) Amplitude Shift Keying (ASK);
modula ia n frecven (MF) Frequency Shift Keying (FSK);

ARHITECTURA SISTEMELOR DE CALCUL

146

modula ia n faz (MP) Phase Shift Keying (PSK);


modula ia binar Binary Phase/BiPhase Shift Keying (BPSK);
modula ia n cuadratur (MQ) Quadrature Phase Shift Keying (QPSK);
MA n cuadratur Quadrature Amplitude Modulation (QAM);
modula ia impusurilor n cod (MIC) Pulse Code Modulation (PCM).

Fig. 3.61. Tipuri comune de modula ie digital (de impulsuri): ASK, FSK, PSK, BPSK.

Fig. 3.62. Modula ia QPSK f

zgomot (stnga) i cu zgomot (dreapta).

Fig. 3.63. Constela iile pentru modula iile QAM-16 (stnga) i QAM-128 (dreapta).

Structura unui calculator

147

La QPSK, zgomotul prezent pe canal poate fi mare, f


s influen eze prea
mult prin apari ia erorilor (vezi figura 3.62). Nu se poate spune acela i lucru i despre
QAM-16 sau QAM-128, care sunt mult mai susceptibile la zgomot pe canal, unde
chiar i un nivel de zgomot redus poate duce la erori multiple (vezi figura 3.63).
Pentru a reduce rata erorilor, se introduce posibilitatea corect rii erorilor prin
ad ugarea de bi i suplimentari fiec rui e antion. Astfel de modul ri sunt cunoscute
sub numele de TCM (Trellis Coding Modulation modula ie prin codificare
matriceal ), iar reprezent rile lor se numesc constela ii.
Standarde de corec ie a erorilor
Corec ia erorilor se refer la posibilitatea pe care o au unele modemuri
evoluate de a identifica erori n timpul transmisiei (EDC Error Detection Codes)
i de a retransmite automat datele care par a se fi deteriorat n tranzit (tehnici ARQ
Automatic Repetition reQuest). Ca opera ia de corec ie s func ioneze, ambele
modemuri trebuie s adere la acela i protocol de corec ie a erorilor (ECC Error
Correction Codes).
Standardele de compresie a datelor
Compresia datelor se refer la o posibilitate intrinsec a unor modemuri
moderne de a comprima datele pe care le transmit, f cnd astfel economie de timp,
spa iu de stocare i costuri pentru utilizatorii de modemuri afla i la distan e mari.
Algoritmii de compresie utiliza i fac parte din familia metodelor f
pierderi
(lossless data compression).

3.4.3. Tipuri de transmisii


Dup modul de folosire a liniei de comunica ie, transmisiile se clasific n:
transmisii simplex, la care partenerii de comunica ie au rolurile fixe de
emi tor i receptor (de exemplu: transmisia radio, transmisia TV);
transmisii semiduplex, care se efectueaz pe aceea i linie de leg tur
ntre dou componente, n ambele direc ii, dar nu concomitent (de
exemplu: transmisia prin walkie-talkie);
transmisie duplex, la care partenerii de pe aceea i linie de transmisie pot
folosi simultan linia la propriile transmisii, n ambele direc ii, solu ie
mult mai eficient dect cea anterioar (de exemplu: linia telefonic ).
Diferen ele ntre modurile semiduplex i duplex sunt vizibile: transmisia
duplex este mai rapid , deoarece dou mesaje pot folosi linia simultan, nefiind
nevoie de st ri de a teptare pentru eliberarea liniei.
Avnd n vedere c pe o linie este necesar transmisia unor grupuri de bi i
(evident, octe i) i nu a unor trenuri de bi i succesivi, trebuie introdus un mecanism
de separare logic a octe ilor transporta i. De aceea, n construc ia interfe elor se
folose te o alt clasificare a transmisiilor i anume:
transmisia sincron (vezi figura 3.64), n care grupurile de 8 bi i se
transmit f
folosirea unor bi i fanion sau a unor pauze de transmisie
interoctet, fiind cel mai rapid i eficient mod de transmisie;

ARHITECTURA SISTEMELOR DE CALCUL

148

Fig. 3.64. Realizarea unei transmisii sincrone.

transmisia asincron (vezi figura 3.65), un mod mai simplu, deoarece


ntre octe ii transmi i sunt intercalate pauze sau se folosesc bi i fanion
(unul sau doi), care indic nceputul unui octet (bi i de start) i sfr itul
acestuia (bi i de stop). La recep ie, semnalul este cur at de ace ti bi i
fanion, r mnnd doar bi ii care semnific informa ia propriu-zis .
Comunica ia asincron nu este gestionat printr-o secven de tact sau un
semnal adiacent de sincronizare a transmisiei.

Fig. 3.65. Realizarea unei transmisii asincrone.

La fel ca la memorii, i aici se folose te no iunea de paritate pentru


determinarea corectitudinii transmisiei de date (paritate par num rul total de bi i
1 transmi i este par i paritate impar num rul total de bi i 1 transmi i este
impar). Importan a i eficien a folosirii acestei tehnici de securizare a transmisiilor
este deosebit , prin faptul c n orice moment poate fi semnalat o eventual eroare
de transmisie, recurgndu-se la corec ii hard i soft. Toate modemurile moderne
dispun de astfel de metode de corec ie. Dup ce microprocesorul proceseaz datele,
acestea pot fi transmise c tre un dispozitiv periferic, ntr-un anumit format digital,
fiind necesar o interfa care s converteasc semnalul transmis de surs n semnal
care poate fi interpretat de dispozitivul periferic destina ie, adic , un format digital
interpretabil de c tre dispozitivul periferic destina ie.

Structura unui calculator

149

Sistemele de calcul nu pot exista f


comunica ia cu mediul nconjur tor,
comunica ie care presupune primire de la mediu (returnare c tre mediu) de date sau
informa ii. Cum acest mediu este alc tuit la rndul s u din sisteme interdependente
care comunic la rndul lor, este nevoie de un sistem de comunica ie, de un limbaj
universal, care, chiar dac nu folose te acelea i no iuni, utilizeaz m car acelea i
semne. Toate aceste semne alc tuiesc un limbaj de tip analogic, recunoscut de orice
fiin vie (lumina, sunetul, impulsurile electrice neuronale, radia iile calorice etc.).
n concluzie, este necesar un mecanism care s integreze lumea digital a
sistemelor de calcul n acest univers analogic.
a cum n contextul analogic componentele comunic ntre ele prin semnale
integral analogice, n acela i mod exist comunica ie la nivel intern, n contextul
digital, ntre sisteme de calcul sau, n cadrul aceluia i sistem, ntre subsistemele
care l alc tuiesc (vezi figura 3.66). Comunica ia se realizeaz n format binar.

Fig. 3.66. Tipuri de interfe e-translator.

Privind aceast problem de comunica ie intersisteme, se constat c sunt


necesare trei tipuri de interfe e-translator care pot asigura comunica ia ntre dou
lumi diferite (cea analogic i cea digital ) sau n cadrul aceleia i lumi.
Aceste interfe e traduc semnalele astfel:
analog-digital. Este interfa a clasic , utilizat ca poart de intrare a
informa iilor din mediul nconjur tor n mediul digital. Ca exemple
imediate, se specific toat gama echipamentelor de intrare care
comunic cu un sistem de calcul: tastatura, mouse-ul, ecranul senzitiv,
scanerul, tableta digitizoare, camera video, modemul etc.
digital-analog. Este complementar interfe ei analog-digitale, venind n
completarea sistemului de comunica ie i asigurnd bidirec ionalitatea
schimbului de informa ii cu mediul. Aceast interfa reprezint poarta de
ie ire din lumea digital c tre cea analogic . Ca exemple, se pot men iona
DAC-ul sau monitorul digital, imprimanta, modemul, placa de sunet etc.

ARHITECTURA SISTEMELOR DE CALCUL

150

digital-digital. Interfe ele standard utilizate n cadrul unui sistem de calcul


sau ntre sisteme sunt de tip digital-digital. Ele primesc/transmit acela i tip
de semnal, digital, i au ca scop sincronizarea dispozitivelor care comunic ,
prin transformarea semnalului transmis ntr-un semnal corect interpretabil
de c tre dispozitivul receptor. Aceast adaptare este efectuat din punctul de
vedere al frecven elor de tact, al nivelurilor de tensiune pentru semnalele
emise/recep ionate, al formatelor de date etc. Spre deosebire de primele
dou tipuri de interfe e, care pur i simplu translateaz semnalul digital
n semnal analogic i invers, interfa a digital-digital nu face dect s
aduc la aceia i parametri comunica ia ntre dou componente digitale.

3.4.4. Standarde de interfe e


3.4.4.1. Interfe e seriale
RS-232
Una dintre cele mai uzuale interfe e seriale asincrone folosite este RS-232
(Reference Standard 232). Activitatea esen ial a acesteia este adaptarea semnalului
transportat la cerin ele receptorului, activitate denumit comunica ie asincron .
n interfa a RS-232, datele sunt trimise sub form de iruri de bi i, fiind
suportat att modul sincron ct i cel asincron. Pe lng circuitele de date,
standardul define te un num r de circuite de control care supervizeaz conexiunea
dintre DTE (Data Terminal Equipment, dispozitivul de la cap tul ndep rtat al
conexiunii, de obicei, un calculator sau un terminal) i DCE (Data Circuitterminating Equipment, dispozitivul cel mai apropiat de conexiune, de obicei, un
modem), conform reprezent rii din figura 3.67.

Fig. 3.67. Conexiunile interfe ei seriale RS-232 C.

Fiecare circuit de date sau control func ioneaz doar ntr-o singur direc ie.
Pentru c datele transmise i datele recep ionate folosesc fiecare cte un circuit
separat, interfa a poate func iona n mod duplex. n cadrul standardului, nu sunt
definite formatul caracterelor din irul de date sau tipul de codare a lor.
Standardele RS-232 utilizeaz pentru niveluri de semnal (0 i 1), n afara
intervalului +3Vcc 3Vcc (semnalele cuprinse n acest interval sunt ignorate),

Structura unui calculator

151

urm toarele conven ii: orice tensiune peste +3Vcc este considerat corespunz toare
unui bit de 0, iar sub 3Vcc este considerat corespunz toare unui bit de 1.
Standardul prevede un conector DB25 de tip tat (sau fi ) pentru DTE i un
conector DB25 de tip mam (sau priz ) pentru DCE. Din cei 25 de pini ai
conectorilor, doar 22 sunt folosi i pentru semnale i mas . Deoarece majoritatea
dispozitivelor folosesc doar 9 semnale, sunt folosi i adesea conectori mai mici.
Protocolul RS-232 se bazeaz pe tehnica acordului confirmat (handshake),
iar semnifica ia celor mai uzuale semnale, relativ la DTE, este (vezi tabelul 3.6):
Transmitted Data (TD) transmisia datelor de la DTE la DCE;
Received Data (RD) recep ia datelor de la DCE;
Request To Send (RTS) setat pe 0 de c tre DTE, preg te te DCE-ul
pentru recep ionarea datelor;
Ready To Receive (RTR) setat pe 0 de c tre DTE, indic DCE-ului
faptul c DTE-ul este preg tit s recep ioneze date;
Clear To Send (CTS) setat pe 0 de c tre DCE ca r spuns la RTS,
permite DTE-ului s transmit date;
Data Terminal Ready (DTR) setat pe 0 de c tre DTE, indic faptul c
acesta este gata s fie conectat (dac DCE-ul este un modem, atunci
aceast comand l activeaz );
Data Set Ready (DSR) setat pe 0 de c tre DCE, indic faptul c acesta
este pornit i preg tit s recep ioneze comenzi sau date de la DTE (n
cazul unui modem, DSR-ul este setat pe 0 de ndat ce acesta este gata s
primeasc comenzi);
Data Carrier Detect (DCD) setat pe 0 de c tre DCE, indic faptul c sa stabilit o conexiune cu echipamentul partener;
Ring Indicator (RI) setat pe 0 de c tre DCE, arat c s-a detectat
semnalul corespunz tor apelului (soneriei) telefonice.
Standardele mai noi (RS-422, RS-485 etc.) dezvolt RS-232, urm rind
optimizarea acestuia.
UART
Circuitele integrate folosite ca interfa asincron pentru transmisia serial
sunt denumite UART (Universal Asynchronous Receiver Transmitter). n
componen a lor intr registre de deplasare (shift, vezi figura 3.68), prin intermediul
rora datele n format serial/paralel pot fi convertite n format invers
(paralel/serial).
Un UART tipic are trei sec iuni:
un modul receptor, care prime te de la periferic un semnal serial i l
converte te paralel, dup care l depune pe magistrala de date;
un modul emi tor, care prime te semnal paralel de pe magistrala de
date i l converte te n semnal serial pentru periferic;
un controler de interfa , care gestioneaz activitatea modulelor
receptor i emi tor (vezi figura 3.69). Se folosesc cipurile UART 8251,
16450 (mai vechi) sau UART 16550 i 16550A, mult mai rapide.

152

ARHITECTURA SISTEMELOR DE CALCUL

Fig. 3.68. Intrare serial ie ire paralel (A); intrare paralel ie ire serial (B).

Fig. 3.69. Al treilea modul UART: controlerul de interfa .

ACIA
Un model similar de interfa universal asincron este ACIA (Asynchronous
Communication Interface Adapter), instalat n blocul de mapare a memoriei i care
recep ioneaz 4 linii de adrese, 3 selec ii de cip i o selec ie de registru. Cipul standard
folosit este MC 6850, cu 24 de pini. Comanda ACIA se realizeaz prin dou perechi
de registre, prima fiind de stare, iar cel de-a doua, de control (vezi figura 3.70).

Structura unui calculator

153

Fig. 3.70. Registrul de stare i registrul de control pentru comanda ACIA.

Func ionarea ACIA are la baz dou registre de deplasare (unul de tip readonly i cel lalt, write-only) pentru convertirea semnalelor paralel/serial i
serial/paralel. Comunica ia cu magistrala de date se face prin intermediul unui
buffer de date, cuplat direct la aceasta. Un exemplu tipic de interfa ACIA este
modemul (vezi figura 3.71).

Fig. 3.71. Modemul ca exemplu de interfa ACIA.

154

ARHITECTURA SISTEMELOR DE CALCUL

USB
Interfa a USB (Universal Serial Bus) a nlocuit interfe ele RS-232 i paralel
n multe situa ii. Astfel, USB este acum cea mai folosit interfa n conectarea
imprimantei, mouse-ului sau scanerului la calculator. USB a fost proiectat pentru
a permite conectarea dispozitivelor periferice printr-un conector standardizat, care
nlocuiasc multitudinea de conectori ai unui calculator, i s mbun easc
func ionalitatea plug play, permi nd dispozitivelor s fie conectate i
deconectate f
a fi necesar repornirea calculatorului. De asemenea, dispozitivele
care consum pu in pot fi alimentate direct prin interfa a USB.
Versiunile standardului USB sunt urm toarele:
USB 1.0, lansat n 1996, define te dou viteze de transfer: 1,5 Mb/s
(Low Speed) i 12 Mb/s (Full Speed);
USB 1.1 , lansat n 1998, define te acelea i viteze de transfer i are dou
tipuri de conectori: seria A i seria B;
USB 2.0, lansat n 2000, define te o a treia vitez : 480 Mb/s (High Speed);
USB 3.0, anun at pentru 2008, va defini viteze de pn la 10 ori mai
mari fa de versiunea anterioar , ajungnd la aproximativ 4,8 Gbit/s.
De i toate calculatoarele actuale sunt echipate cu porturi USB, acestea nu au
nlocuit complet conectorii standard existen i. Monitorul, tastatura, porturile
paralele i cele seriale utilizeaz , n continuare, conectori separa i. Un motiv ar
putea fi arhitectura mai complex a magistralei USB, care trebuie s permit
conectarea unor tipuri variate de periferice. Un alt motiv ar fi c perifericele care
trebuie s con in un distribuitor, cum este monitorul sau tastatura, devin mai
complexe i mai costisitoare.
USB conecteaz mai multe dispozitive la un HCI (Host Controller Interface),
prin intermediul unor hub-uri. USB este complet controlat de HCI. Nu poate exista
dect un singur host pe o magistral la un moment de timp. Un adaos la standardul
USB introduce un protocol (Host Negociation Protocol) care permite negocierea de
host ntre dou dispozitive USB.

Fig. 3.72. Arhitectura interfe ei USB.

Structura unui calculator

155

Orice topologie necesit cel pu in un hub, numit root-hub, ata at direct la HCI.
Un host comunic cu dispozitivele prin intermediul unor canale logice (pipes), care
au ni te terminale logice pe dispozitive numite endpoints (vezi figura 3.72). Uneori
este folosit termenul endpoint pentru a identifica i canalul logic respectiv.
Exist 16 endpoint-uri [0-15] i pipe-uri corespunz toare n fiecare direc ie
(in/out, referindu-se la host), deci un periferic poate avea 32 de pipe-uri active
simultan. Fiecare endpoint poate transfera date ntr-o singur direc ie, deci, fiecare
pipe este unidirec ional. Endpoint-urile 0 pentru in i out sunt ntotdeauna active,
fiind folosite pentru management.
Comunica iile ntre periferice i host se execut prin conexiuni dispozitivhost i host-dispozitiv. Conexiunea de la host la dispozitiv se nume te
downstream, iar conexiunea de la dispozitiv la host se nume te upstream.
Conectorii USB sunt diferi i pentru upstream i downstream i nu pot fi
interschimba i. O comunica ie (transfer de date) nu se poate efectua dect ntre
porturi diferite de upstream i downstream.
Exist dou tipuri de conectori principali: tip A i tip B. Conectorii de tipul A
se folosesc pentru host-uri sau hub-uri i se reg sesc cel mai des pe pl cile de baz
ale PC-urilor. Conectorii de tipul B se g sesc numai la dispozitivele periferice. Nu
pot exista leg turi de cabluri dect de la tipul A de conector la tipul B, dar se pot
si i cabluri care nu respecte aceste specifica ii, numite cabluri directe.
Alte tipuri de conectori sunt mini-USB de tip A i B (mai frecvent utiliza i)
sau AB i micro-USB, folosi i n special pentru dispozitive de dimensiune mai
mic , fiind mai u or de integrat.
Conectorii USB de diferite tipuri sunt reprezenta i n figura 3.73.

Fig. 3.73. Configura ia pinilor conectorilor USB de tip A, B, mini-A, B i micro-A, B.

Cablul USB folose te 4 fire (vezi figura 3.74): dou pentru putere: (tensiunea
VBUS i masa) i dou pentru semnalele de date (pinii D+ i D). Alimentarea VBUS
este, n general, de 5V (cu o toleran prestabilit ), iar modul de transmisie a
datelor este diferen ial. Modul de codare al datelor este NRZI (Non Return to Zero
Inverted), folosit pentru a trimite date sincronizate i pentru a sincroniza host-ul cu
semnalul de ceas. D+ i D sunt semnale transmise mpreun . n cazul micro-USB,
exist 5 pini (apare n plus un pin de identificare, ID).

Fig. 3.74. Cablul USB.

156

ARHITECTURA SISTEMELOR DE CALCUL

Semnifica ia pinilor conectorilor USB cu 4 pini este prezentat n tabelul 3.7.


Tabelul 3.7
Semnifica ia pinilor conectorilor USB
Pin

Descriere

VBUS (4,355,25 V)

D+

GND (0 V)

Exist trei tipuri de alimentare posibile, n func ie de diversele dispozitive


ata ate:
de putere mic (low power) pot lua un curent de 100 mA de la sursa de
alimentare (pinul VBUS);
de putere mare (high power) pot lua un curent ntre 100 mA i 500 mA
de la VBUS;
cu auto-alimentare (self power) pot lua un curent de 100 mA de pe
magistral i se mai pot alimenta de la o surs extern .
IEEE 1394 (FireWire)
FireWire este numele nregistrat de Apple pentru standardul IEEE1394, fiind
o specifica ie de magistral serial , care asigur comunica ii de mare vitez i
servicii de date n timp real.
S-a impus mai ales n domeniul conexiunilor externe, datorit costurilor mici
de fabrica ie i a unui sistem simplu de cablare. De asemenea, a devenit interfa a
standard pentru conectarea componentelor de comunica ii i control n domeniul
audio-vizual. FireWire este disponibil i n versiunile wireless, fibr optic i
cablu coaxial, folosind protocoale simultane.
Interfa a FireWire suport conectarea simultan a 63 de periferice. FireWire
este bazat pe comunica ia punct-la-punct, ceea ce permite, de exemplu, ca o
imprimant i un scaner s comunice ntre ele f a nc rca suplimentar procesorul
i magistrala sistemului. De asemenea, la fel ca interfa a USB, FireWire suport
tehnologia plug'n'play i conectarea dispozitivelor la magistral f
a fi necesar
repornirea calculatorului. Interfa a FireWire poate alimenta cu energie dispozitive
care au un consum mai mic de 45 W i o tensiune mai mic de 30 V.
Standardul fizic de conectare se prezint n dou forme o muf de 6 pini i
una de 4 pini (vezi figura 3.75). Singura diferen ntre acestea este faptul c doar
mufa de 6 pini poate alimenta dispozitive externe, mufei de 4 pini lipsindu-i
conexiunile necesare pentru aceasta.

Structura unui calculator

157

Cablul FireWire con ine 6 fire de cupru (vezi figura 3.76): dou transport
energie, iar celelalte patru sunt grupate n cte dou perechi. Fiecare pereche este
ecranat , ca i ntregul cablu.

Fig. 3.75. Conectorii interfe ei FireWire.

Fig. 3.76. Cablul FireWire.

Cablurile de alimentare transport tensiuni ntre 8 i 40 V c.c. i amperaje


pn la 1,5 A i sunt folosite pentru men inerea continuit ii stratului fizic al unui
echipament, cnd apar c deri de tensiune sau defec iuni, i pentru alimentarea
echipamentelor conectate la magistral . Deci, cablul FireWire transport att date,
ct i energie, ceea ce constituie un mare avantaj pentru utilizator.
Standardul FireWire se prezint n dou versiuni: FireWire 400 i FireWire 800.
FireWire 400 suport rate de transfer de 100, 200 i 400 Mbit/s. Lungimea maxim a
unui cablu este de 4,5 metri, ns aceste cabluri pot fi legate ntre ele folosindu-se
repetoare sau hub-uri pn la o lungime maxim de 72 m sau echivalentul a 16 cabluri
interconectate. FireWire 800 (2003) i S800T (2007) suport o rat maxim de transfer
de 800 Mb/s i o lungime mai mare a cablurilor (100 m), fiind compatibil la nivel
logic cu FireWire 400 ns la nivel fizic conectorii nu sunt compatibili, fiind necesar un
convertor. Viitoarele versiuni de FireWire inten ioneaz s aduc o cre tere de vitez
de pn la 6,4 Gb/s i conectori suplimentari, cum sunt interfe ele multimedia mici.

Fig. 3.77. Conectorul RJ45 al interfe ei Ethernet.

3.4.4.2. Interfe e paralele


Cel de-al doilea tip de interfa , indiscutabil mai rapid , este interfa a
paralel . Din p cate, este utilizabil pentru transmisii la distan e foarte mici, n
compara ie cu cei 30 m la care se poate comunica prin interfe e seriale, motivul
fiind nivelurile energetice foarte sc zute la care se lucreaz . Este cunoscut i ca
port imprimant sau port Centronics.

158

ARHITECTURA SISTEMELOR DE CALCUL

IEEE 1284
n 1994, mai vechile interfe ele Bitronics i Centronics au dat na tere
standardului IEEE 1284. Interfa a paralel nu a fost folosit doar pentru
imprimante, ci i pentru alte dispozitive (chei dongle pentru protec ia la copiere,
unit i ZIP, scanere, modemuri externe, pl ci de sunet i camere web externe,
gamepad-uri, joystick-uri, hard disk-uri i CD-ROM-uri externe, programatoare
EPROM sau controlere hardware etc.). Azi, interfa a paralel a fost nlocuit de
interfa a USB i chiar de cea Ethernet, n unele cazuri (vezi figura 3.77).
Mul i produc tori de calculatoare personale i laptopuri nici nu mai includ un
port paralel, considerndu-l nvechit, dar i pentru c exist convertoare USBparalel, care pot fi folosite n cazul imprimantelor care au numai port paralel.
Standardul IEEE 1284 define te o comunica ie paralel bidirec ional ntre
calculatoare sau alte dispozitive, oferind o band maxim teoretic de 4 Mb/s, i
poate func iona n cinci moduri:
Compatibility Mode (Centronics) foarte asem tor modului
unidirec ional original Centronics;
Nibble Mode folose te liniile de stare pentru a recep iona date de la
imprimant (pentru transferul extins de stare al imprimantei);
Byte Mode se transmit 8 bi i concomitent, folosind liniile de date;
Enhanced Parallel Port (EPP) este o arhitectur semiduplex
bidirec ional , care permite dispozitivelor s transmit cantit i mari de
date (pentru scanere sau dispozitive de stocare);
Extended Capability Port (ECP) similar EPP-ului, poate oferi o band
de pn la 2,5 Mb/s (pentru a m ri viteza, folose te RLE Run Length
Encoding , o compresie simpl a secven elor lungi care con in acela i
caracter repetitiv, folosind un cod de doar doi octe i).
Calculatoarele recente cu port paralel l pot folosi n modurile EPP, ECP sau
n mod mixt.
PIA
Cel mai uzual model de interfa utilizat este PIA (Peripheral Interface
Adapter). Cipul standard folosit este 6821 PIA cu 40 de pini. Interfa a folose te
dou registre, unul pentru datele transmise de la periferic la microprocesor i
cel lalt pentru sensul opus. Cnd perifericul transmite un octet de date de-a lungul
celor opt linii c tre sistem, datele sunt depuse ntr-un registru PIA unde vor a tepta
pn cnd microprocesorul este preg tit pentru preluarea lor. Dup efectuarea citirii
acestui octet stocat, procesul se repet pentru urm torul octet.
Pentru transmisii n sens invers, procesorul va transmite un octet de-a lungul
magistralei de date c tre cipul I/O, care le va depozita ntr-unul din aceste registre.
Cnd perifericul este n stare ready, va transmite un semnal c tre PIA, care i va
pune la dispozi ie datele, apoi procesul se reia.
n plus fa de aceste registre, este disponibil un registru de stare ai c rui bi i,
folosi i ca fanioane, indic microprocesorului care coordoneaz activit ile I/O
starea registrelor amintite, validitatea octetului de date transferat sau, n general,

Structura unui calculator

159

starea interfe ei paralele PIA. Toate aceste registre programabile sunt cuplate la
magistrala de date a sistemului, prin aceasta fiind adresate direct de c tre procesor.
Faptul c , prin intermediul registrelor interne, aceste cipuri-interfe e sunt
programabile le face deosebit de practice, deoarece fiecare port al unei linii de
transmisie (din cele opt existente) poate fi programat i controlat individual n
privin a direc iei de transfer a datelor. Astfel, anumite linii pot fi programate pentru
transmisie ntr-un sens, n timp ce celelalte ac ioneaz n sens opus. Un exemplu
clasic de folosire a comunica iilor paralele este imprimanta.
n figura 3.78 este reprezentat o implementare fizic a interfe ei PIA, prin
cipul W65C21S, compatibil cu microprocesoarele din familia Motorola 68.
Interfa a prezint dou porturi I/O bidirec ionale (A i B) pe cte 8 bi i, cu comand
individual a sensului datelor. Transferul datelor se face folosind un protocol
automat de tip handshake. Interfa a este prev zut cu dou ie iri de ntrerupere
comandate software. Portul A, prin ie irea CA2, asigur transferuri de mare vitez ,
pentru opera ii statice sau cu o frecven de pn la 14 MHz.

Fig. 3.78. Conexiunile interfe ei PIA pentru microprocesoarele din familia Motorola 68.

3.4.4.3. Interfe e wireless


Bluetooth
Tehnologia Bluetooth reprezint un set de specifica ii bazate pe undele radio,
pentru o re ea wireless personal , PAN (Personal Area Network).
Documenta ia acestui standard a fost creat n anul 1994 de c tre Jaap
Haartsen i Sven Mattisso, angaja i ai diviziei Mobile Platforms din cadrul
companiei Ericsson.
Astfel, standardul dezvoltat de ace tia se baza pe tehnologia de transmisie cu
salt n frecven
i spectru distribuit, FHSS (Frequency-Hopping Spread
Spectrum).
Specifica iile platformei Bluetooth au fost formalizate de c tre Bluetooth
Special Interest Group (SIG). Aceasta organiza ie a fost fondat n data de 20 mai
1998 de c tre Ericsson, IBM, Intel, Toshiba, Sony Ericsson i Nokia, urmnd ca
de-a lungul timpului peste 7.000 de companii s adere la acest grup.

160

ARHITECTURA SISTEMELOR DE CALCUL

Tehnologia Bluetooth creeaz o cale prin care se poate face schimb de


informa ii ntre aparate precum telefoane mobile, laptopuri, calculatoare personale,
imprimante, camere digitale i console video, printr-o frecven radio sigur i de
raz mic . Aparatele Bluetooth comunic ntre ele atunci cnd acestea se afl n
aceea i raz de ac iune. Ele folosesc un sistem de comunica ii radio, astfel nct nu
este nevoie s fie aliniate fa n fa pentru a transmite, putnd fi plasate chiar n
camere diferite dac transmisia este suficient de puternic .
Clasele de emisie definite prin tehnologia Bluetooth sunt prezentate n
tabelul 3.8.
Tabelul 3.8
Clasele de emisie Bluetooth
Clasa

Puterea maxim permis


(mW)

Puterea maxim permis


(dBm)

Raza aproximativ
(m)

Clasa 1

100

20

~ 100

Clasa 2

2,5

~ 10

Clasa 3

~1

Protocolul Bluetooth func ioneaz n banda de frecven 2,42,4835 GHz.


Pentru a preveni interferen ele cu alte dispozitive care opereaz n banda de 2,45
GHz, protocolul Bluetooth mparte banda n 79 de canale (fiecare cu o l ime de
band de 1 MHz) i schimb permanent canalele de 1.600 de ori pe secund .
Implement rile Bluetooth din versiunile 1.1 i 1.2 func ioneaz la viteza de
723,1 kb/s, iar versiunea 2.0 folose te modul EDR (Enhanced Data Rate), pentru a
atinge o vitez de 2,1 Mb/s. Din punct de vedere tehnic, versiunea 2.0 are un
consum de energie mai ridicat, ns la o vitez de transfer de peste 3 ori mai mare.
Astfel, n mod practic este redus consumul de energie fa de variantele anterioare
cu peste 50%.
Standarde Bluetooth sunt:
a) Bluetooth 1.0 i 1.0B. Versiunile 1.0 i 1.0B au avut multe probleme,
care au f cut produc torii s ntmpine dificult i n a face produsele func ionale.
b) Bluetooth 1.1. Multe din erorile manifestate la versiunea 1.0B au fost
reparate n versiunea 1.1. De asemenea, aceasta versiune oferea suport pentru
canale necriptate i avea ad ugat un indicator al puterii semnalului de transmisie.
c) Bluetooth 1.2. Aceast versiune este compatibil cu 1.1. Principalele
sale mbun iri sunt:
vitez mai mare de descoperire i de conectare la alte dispozitive;
vitez practic de transfer mbun it (de i maximul teoretic r mne 721 kb/s);
mbun irea rezisten ei la interferen cu alte dispozitive radio, prin
implementarea mecanismului AFHSS (Adaptive Frequency-Hopping
Spread Spectrum).

Structura unui calculator

161

d) Bluetooth 2.0. Este compatibil la nivel de comunica ie cu versiunile 1..


Principala mbun ire este introducerea modului EDR (Enhanced Data Rate), care
permite o vitez de 3 Mb/s. Trecerea la versiunea 2.0 a vizat urm toarele optimiz ri:
vitez de transmisie de 3 ori mai mare;
consum de energie mai mic;
rat a erorilor de transmisie, BER (Bit Error Ratio), mai mic .
Un dispozitiv Bluetooth de tip master poate comunica simultan cu alte
maximum 7 dispozitive. Acest grup de 8 dispozitive se nume te re ea de tip
piconet. Astfel, piconetul poate fi definit ca o re ea de tip ad-hoc, care folose te
protocoalele Bluetooth pentru a permite unui dispozitiv master s se interconecteze
cu alte 7 dispozitive Bluetooth active. Pe lng acestea, pot exista pn la un num r
de maximum 255 de dispozitive inactive, pe care dispozitivul master le poate
activa n orice moment.
La un moment dat, prin intermediul protocolului Bluetooth, dispozitivul
master nu poate comunica dect cu un singur alt echipament. Pentru a combate
acest aspect negativ, dispozitivele i pot schimba rolul n cadrul piconetului n
orice moment i astfel orice dispozitiv slave poate deveni master i viceversa. Mai
mult dect att, specifica iile standardului Bluetooth permit interconectarea a dou
sau mai multe piconeturi pentru a forma un scatternet. Astfel, unele echipamente vor
avea rolul de master ntr-un piconet i de slave n alt piconet. Acest lucru este util,
deoarece se permite interconectarea a mai mult de 8 dispozitive active simultan.
Orice dispozitiv Bluetooth va transmite la cerere altui dispozitiv urm toarele
seturi de informa ii: numele i clasa dispozitivului, lista de servicii i specifica iile
tehnice (capabilit ile dispozitivului, fabricantul etc.). De asemenea, orice dispozitiv
Bluetooth poate executa o c utare pentru a vedea ce alte echipamente compatibile
exist n proximitate i, de asemenea, orice dispozitiv poate fi configurat s
spund la c utarea executat de alt echipament. Totu i, dac dispozitivul care
dore te s se conecteze la alt echipament cunoa te adresa exact a acestuia, se va
putea conecta la el indiferent de set rile de vizibilitate ale echipamentului accesat.
Fiecare dispozitiv Bluetooth are o adres unic pe 48 de bi i. Aceste adrese nu
sunt totu i folosite n mod direct de c tre utilizatori, optndu-se pentru utilizarea unor
nume care pot fi definite. Aceste nume sunt afi ate atunci cnd un dispozitiv
Bluetooth le scaneaz pe cele din proximitatea sa. Dispozitivele Bluetooth se
conecteaz prin intermediul unui proces numit pairing. Astfel, se stabile te o leg tur
ntre dispozitive pe baza unei parole (passkey). De asemenea, datele transferate ntre
dispozitivele Bluetooth pot fi criptate, pentru a preveni mai eficient interceptarea lor.
Arhitectura Bluetooth, care eviden iaz protocoalele legate de modelul OSI, inclusiv
de setul comenzilor AT (vezi paragraful 2.7) este reprezentat n figura 3.79.
Wi-Fi
O re ea wireless WLAN (Wireless Local Area Networks) este o re ea f fir,
local , extins pe arii limitate, n func ie de echipamentele folosite i de puterea
acestora, prin care se poate face transfer de date i internet folosind undele radio.
Raza de acoperire poate fi de la cteva zeci de metri pn la 20 km, prin folosirea
solu iilor iDirect, care au implementat interfa a de administrare pentru 200 de utilizatori.

162

ARHITECTURA SISTEMELOR DE CALCUL

Fig. 3.79. Arhitectura Bluetoooth.

Wi-Fi, prescurtarea de la Wireless Fidelity, reprezint o categorie de


produse compatibile cu standardele WLAN, bazate pe protocoale IEEE 802.11.
Noile standarde, bazate pe specifica iile 802.11 (cum este 802.16 WiMAX), fac
parte din re elele actuale i ofer multe mbun iri, de la arii mari de acoperire
pn la viteze mari de transfer.
Diferen ele ntre o re ea terestr i o re ea wireless radio sunt multiple i
reprezint beneficii n favoarea re elelor wireless:
Spre deosebire de alte sisteme radio, Wi-Fi folose te un spectru de
frecven e radio care nu are nevoie de licen , deci, nu necesit aprobare
pentru utilizare.
Se permite dezvoltarea variat a unei re ele locale WLAN f
utilizarea cablurilor, reducnd costurile necesare dezvolt rii re elei i
evitnd diferite obstacole n implementarea re elei (locuri inaccesibile,
care nu pot fi cablate).
Multe re ele Wi-Fi suport roaming, permi nd unui client s se mute
dintr-un punct de acces n altul n aceea i cl dire sau zon geografic .
Wi-Fi este un standard global, clien ii Wi-Fi putnd lucra n diferite
ri de pe glob.
Exist posibilit i variate de conectare a utilizatorului final, prin
intermediul pl cilor Wi-Fi PCMCIA, PCI, USB sau a sistemelor Wi-Fi
802.11b sau 802.11g integrate n majoritatea notebook-urilor moderne.
Exist posibilit i alternative sau combinate de antene Wi-Fi
unidirec ionale
sau
bidirec ionale,
sectoriale,
direc ionale,
omnidirec ionale, punct la punct, punct la multi-punct, sisteme de
bridge (interconectarea a dou re ele wireless), puncte de acces de
diferite puteri, cu diferite c tiguri etc.
Arhitectura unui sistem de comunica ie care folose te tehnologia Wi-Fi
este prezentat n figura 3.80.

Structura unui calculator

163

Fig. 3.80. Arhitectura unui sistem de comunica ie Wi-Fi.

3.4.5. Gestionarea tranzac iilor I/O


n ceea ce prive te conectarea pl cilor de extensie-periferice ntr-unul din
sloturile libere de pe placa de baz , simpla cuplare fizic a acestora este suficient
din punct de vedere hardware, dac dispozitivele sunt de tipul plug'n'play.
Exist i o integrare de tip software, pe baza driver-elor care nso esc, de
obicei, pl cile de extensie i, de asemenea, este posibil par ial configurarea pe baza
set rilor din CMOS, solu ii care ns nu rezolv integral problema interconect rii.
Pentru a integra complet un dispozitiv periferic ntr-un sistem de calcul,
indiferent de rolul acestuia, este nevoie de a defini i a asigura comunica ia
general , prin care se va semaforiza i controla, la comanda microprocesorului,
activitatea total a dispozitivului n cauz , respectiv, de a-l cupla n sistemul
general al transferurilor de date.
Este vorba, pe de-o parte, de a stabili i rezerva un canal de comunica ie
DMA (Direct Memory Access), iar, pe de alt parte, de a stabili i rezerva anumite
canale de ntrerupere IRQ (Interrupt Request) i, n final, de a seta adresele de
intrare-ie ire (adrese I/O), la nivelul c rora se efectueaz transmiterea datelor,
comenzilor i parametrilor necesari proceselor executate de periferic.
3.4.5.1. Transferurile DMA (Direct Memory Access)
Folosirea DMA duce la cre terea vitezei sistemului prin degrevarea
microprocesorului de controlul transferurilor de date, accesul la memorie fiind
efectuat de c tre placa de extensie respectiv , f supraveghere continu .
n esen , cnd este vorba despre DMA, se face practic referire la
transferurile de date ( i la controlul acestora) ntre memorie i porturile I/O (care
pot fi definite i ca puncte de cuplare a extensiilor periferice la sistem).

164

ARHITECTURA SISTEMELOR DE CALCUL

Dar dac procesorul nu mai este interogat asupra acelor activit i, atunci de
controlul i securitatea lor se ocup un dispozitiv numit controler DMA (n general
de tipul i8237), care suport , n cazul PC-XT, patru canale (DMA0DMA3), putnd
gestiona pn la patru procese simultane de transfer de date. Calculatoarele dotate cu
procesoare de la 80386 n sus dispun de nc patru canale DMA pe 16 bi i (numite
HDMA), gestionate de un al doilea controler de tipul i8237A-5 (vezi figura 3.81).

Fig. 3.81. Conectarea controlerului DMA n sistem.

Un transfer DMA const din urm toarele faze:


1. ini ializarea transferului;
2. transferul efectiv de date;
3. verificarea termin rii i a corectitudinii transferului.
n faza de ini ializare, CPU nscrie n registrele interne ale controlerului
DMA adresa de nceput a blocului de memorie implicat n transfer i num rul de
octe i transfera i, preciznd sensul de transfer (citire din memorie i scriere la
periferic sau citire de la periferic i scriere n memorie).
La lansarea unui transfer DMA de c tre o interfa de intrare-ie ire,
succesiunea evenimentelor din faza de ini ializare este urm toarea:
interfa a genereaz un semnal de cerere, DRQ (DMA ReQuest), c tre
controlerul DMA;
controlerul DMA solicit prin linia HOLD accesul la magistral ;
dup terminarea ultimului ciclu n execu ie, CPU suspend temporar
activitatea pe magistral prin dezactivarea amplificatoarelor de date,
adrese i comenzi (magistrala trece n starea de impedan nalt );

Structura unui calculator

165

CPU r spunde controlerului DMA prin generarea unui semnal, HLDA


(HoLD Acknowledge), prin care anun acceptarea cererii de cedare a
magistralei;
controlerul DMA preia controlul magistralei prin generarea semnalelor
de comand
i a celor de adrese pentru efectuarea transferului,
spunznd interfe ei I/O prin semnalul DACK (DMA ACKnowledge)
n momentul n care transferul poate ncepe.
n faza de transfer al datelor au loc mai multe cicluri de transfer sub
supervizarea controlerului DMA. n cadrul unui ciclu se transfer un cuvnt de date.
n faza de verificare se realizeaz un control de paritate sau CRC.
Pentru a realiza func iile prezentate, un controler DMA trebuie s con in
urm toarele componente:
registre pentru generarea adreselor de memorie;
num toare pentru contorizarea cuvintelor de date transferate pe fiecare canal;
un registru de stare pentru marcarea configura iei curente;
registre de comand pentru programarea modului de transfer;
un circuit de arbitrare pentru solu ionarea cererilor multiple de acces;
circuite pentru controlul magistralei (amplificatoare de adrese, date, comenzi);
un dispozitiv de comand secven ial pentru derularea ciclurilor DMA
i pentru preluarea/cedarea magistralei.
Situa iile n care este necesar acest dispozitiv de comand secven ial sunt
cele n care viteza de transfer impus de echipamentul periferic este relativ mare i
CPU nu reu te s execute instruc iunile con inute n ciclul de transfer n perioada
dintre dou solicit ri succesive.
n cazul PC-urilor, transferul DMA se utilizeaz pentru interfa a de floppy
disk i pentru transferul serial pe bloc. Un canal DMA (canalul 0) este utilizat
pentru opera ia de remprosp tare (refresh) a memoriei dinamice. Sunt simulate
periodic cicluri de citire a memoriei.
Referitor la primele patru canale DMA, dintre acestea canalele 0, 2 i 3
sunt rezervate pentru activitatea intern a sistemului de calcul (0 RAM refresh, 2
opera ii cu floppy disk-ul i 3 opera ii cu hard disk-ul). R mne disponibil
canalul 1 pentru dispozitive periferice. Sunt disponibile nc 3 canale HDMA: 5, 6,
7, n general, canalul 4 fiind folosit pentru func ionarea controlerului HDMA,
cuplat n cascad cu primul controler.
Utiliz rile tipice ale canalelor DMA se pot observa n tabelul 3.9.
n momentul n care o setare DMA a fost f cut gre it (de exemplu, mai
multe dispozitive folosesc acela i canal DMA), placa nou montat nu va mai
func iona sau sistemul se va bloca. Concluzia este c nu trebuie folosite, practic,
acelea i canale DMA pentru dou dispozitive periferice diferite.
3.4.5.2. Canalele IRQ (Interrupt Request)
n ceea ce prive te cel de-al doilea parametru, canalul IRQ, i acesta poate
cauza, la set ri defectuoase, func ion ri gre ite i bloc ri de sistem.

ARHITECTURA SISTEMELOR DE CALCUL

166

Tabelul 3.9
Utiliz rile tipice ale canalelor DMA
DMA

magistral

utilizare tipic

alte utiliz ri uzuale

RAM refresh

8/16 bi i

Plac de sunet
(low DMA)

Adaptoare SCSI, porturi paralele, pl ci de re ea,


modemuri de voce

8/16 bi i

Controler
floppy disk

8/16 bi i

Liber

Adaptoare SCSI, porturi paralele, pl ci de sunet


(low DMA), de re ea, voice modem, controler HD

Redirectat pentru
nivelele DMA 03

16 bi i

Plac de sunet
(high DMA)

Adaptoare SCSI, pl ci de re ea

16 bi i

Liber

Plac de sunet (high DMA), pl ci de re ea

16 bi i

Liber

Plac de sunet (high DMA), pl ci de re ea

ntreruperile hardware sunt gestionate de un cip de genul i8259. Logica


procesului de cerere de ntrerupere (Interrupt Request) const din conectarea
func ional la sistem a unei extensii (cu rolul i scopul s u bine definit) i
optimizarea transferurilor de date i informa ii c tre/de la microprocesor
dinspre/spre acele extensii. n acest mod, se elibereaz microprocesorul de sarcina
cronofag de a urm ri activitatea perifericului n cauz .
Un canal IRQ este sistemul de transmisiune folosit de componentele
sistemului pentru a semnala o cerere de intrare n ac iune.
Exemplu. O plac de sunet nu va func iona oricum, ci va avea nevoie de o
comand din partea microprocesorului pentru a ndeplini sarcina trasat la un
moment dat de o cerin soft. n func ie de nivelul de ntrerupere (gradul de
prioritate) alocat, controlerul de ntrerupere va stabili oportunitatea interven iei
pl cii de sunet n func ie de celelalte cereri de ntrerupere primite de la alte
periferice. Dac nivelul de prioritate este superior celorlalte cereri existente, placa
i va ndeplini activitatea pe baza acceptului primit de la microprocesor.
Alocarea nivelurilor de ntrerupere este prezentat n tabelul 3.10.
Func ionarea unui canal IRQ este urm toarea:
placa periferic instalat lanseaz c tre microprocesor un semnal
Interrupt Request (o cerere de ntrerupere, desemnat de un anumit
num r-cod);
imediat, microprocesorul abandoneaz temporar ac iunea pe care o
ntreprinde la acel moment i transmite perifericului un mesaj de recep ie,
denumit Interrupt Acknowledge, n cazul n care nivelul de prioritate al
procesului solicitant este superior celui n curs de desf urare;

Structura unui calculator

167

Tabelul 3.10
Nivelurile IRQ i asignarea corespunz toare fiec rui dispozitiv
nivel ntrerupere

utilizare

IRQ0

Ceas de sistem (nu se poate defini de c tre utilizator)

IRQ1

Tastatur

IRQ2

Al doilea controler IRQ

IRQ3

Liber (standard pentru COM2/COM4)

IRQ4

Liber (standard pentru COM1/COM3 conectarea mouse-ului serial)

IRQ5

Liber (standard pentru placa de sunet); placa de re ea i LPT2 sunt


deseori setate la IRQ5, dac nu este alocat pl cii de sunet

IRQ6

Floppy disk (nu se poate defini de c tre utilizator)

IRQ7

LPT1 (dac nu se folose te un port paralel, atunci IRQ7 poate fi asignat


unui alt dispozitiv)

IRQ8

Ceas de timp real (nu se poate defini de c tre utilizator)

IRQ9

Redirectat de IRQ2 (de obicei, folosit pentru placa grafic )

IRQ10

Liber (dac placa de sunet folose te IRQ5, atunci IRQ10 poate fi folosit
pentru placa de re ea)

IRQ11

Liber (de obicei, folosit pentru controlerul SCSI)

IRQ12

Liber (de obicei, folosit pentru PS2)

IRQ13

Coprocesor matematic (nu se poate defini de c tre utilizator)

IRQ14

Controlerul IDE1 (Hard disk, CD-ROM); al doilea dispozitiv IDE de pe


acela i cablu folose te acela i IRQ

IRQ15

Controlerul IDE2

sistemul de operare execut o rutin special , care are ca sarcin salvarea


st rii microprocesorului (salvarea con inutului registrelor curente);
se cite te din tabela vectorilor de ntrerupere (TVI) o adres la care
se afl num rul canalului de ntrerupere cerut;
prin citirea adresei din TVI, se poate da controlul rutinei-driver aflate
la adresa citit , rutin care r spunde de activitatea dispozitivului care a
emis semnalul IRQ;
rolul final al rutinei sistemului de operare este s refac starea
microprocesorului, nc rcnd registrele salvate anterior, moment din
care sistemul revine la starea i procesul desf urate anterior
semnalului IRQ.
Cum ntr-un sistem de calcul exist mai multe componente care pot cere
simultan permisiunea microprocesorului de a intra n ac iune, este foarte probabil

168

ARHITECTURA SISTEMELOR DE CALCUL

ca cel pu in dou cereri de ntrerupere s fie lansate c tre microprocesor n acela i


timp. De aceea, magistrala IRQ (traseul urmat de semnalele de ntrerupere la/de la
microprocesor) a fost dotat cu dou controlere de ntrerupere nseriate, fiecare
avnd opt intr ri i o ie ire, cel de-al doilea avnd intrarea 2 conectat la ie irea
primului, m rindu-se astfel num rul nivelurilor de ntrerupere care pot fi utilizate.
Pl cilor de extensie (perifericelor) le vor fi asignate anumite numere de
ordine (coduri), prin care vor fi recunoscute de controlerul de ntrerupere i, mai
departe, de microprocesor. Corespunz tor celor 28 intr ri, vor rezulta 16 niveluri
(canale) de ntrerupere, multe dintre acestea fiind rezervate unor periferice
instalate, f de care sistemul nu ar putea func iona (placa grafic canalul 9, hard
disk-ul canalul 14, tastatura canalul 1, ceasul de timp real canalul 8 etc.,
conform tabelului 3.10).
Cel mai important nivel IRQ este IRQ0, apoi urmeaz IRQ1, IRQ2/9,
IRQ10IRQ15 i IRQ3IRQ8.
Similar alegerii canalelor DMA, i pentru nivelurile de ntrerupere folosite
este valabil acela i principiu: este necesar alocarea nivelurilor de ntrerupere
diferite pentru pl ci de extensie diferite, pentru a nu intra n conflict diversele cereri
simultane ale extensiilor, adresate aceluia i nivel de ntrerupere.
Cipul 8210A asigur un nivel de priorit i pentru cererile simultane de
ntrerupere, n scopul elimin rii conflictelor. Pentru sistemele de tip XT exist opt
niveluri de priorit i (IRQ0IRQ7), iar pentru sistemele AT, 16 niveluri. Se pot
folosi i diversele canale de ntrerupere prealocate (de exemplu, IRQ5 pentru
LPT2, dac placa de sunet nu exist ).
3.4.5.3. Adresa de intrare-ie ire
Cel de-al treilea parametru care trebuie avut n vedere la instalarea unui
dispozitiv periferic este adresa de intrare-ie ire. Microprocesoarele din seria 86 au
disponibil un spa iu de memorie special pentru stocarea adreselor de intrare-ie ire,
respectiv, pentru instruc iunile de transfer al informa iei dintre microprocesor i
pl cile de extensie conectate. Aceast memorie este nesegmentat i poate depozita
n total 64 KB (pentru porturi de 8 bi i) sau 32 KB (pentru porturi de 16 bi i) de date.
Cum sec iunea de memorie pus la dispozi ia unei pl ci de extensie pentru
transferul de date la/de la microprocesor este de dimensiune relativ mic (16 octe i),
va fi nevoie de alocarea mai multor spa ii de memorie pentru ca o extensie s poat
fi cuplat n sistemul de comunica ie. Practic, aceste spa ii de memorie reprezint
mici por i de memorie folosite ca pun i de comunica ie, acelea i por i fiind
folosite ntotdeauna de aceea i plac de extensie.
Toate aceste adrese (date n sistem hexazecimal) sunt indicate n c ile
tehnice care nso esc pl cile de extensie i trebuie setate cu mare grij pentru a nu
se suprapune cu alte adrese, alocate altor dispozitive.
n acest scop, se analizeaz adresele I/O pentru toate celelalte dispozitive i
abia dup aceea se seteaz cele noi. n caz contrar, func ionarea sistemului va fi
obstruc ionat de conflictele de comunica ie care apar la suprapunerea adreselor de

Structura unui calculator

169

intrare-ie ire. Orice port este definit de o asemenea adres , care va accesa o zon de
memorie din partea inferioar a memoriei de lucru.
Referitor la dificult ile generate de setarea acestor parametri, se
men ioneaz ca solu ie deosebit de avantajoas i rapid folosirea arhitecturii PCI,
care, prin intermediul setului de cipuri inteligente, permite sistemului s se
autoconfigureze, instalarea noii pl ci decurgnd f probleme (plug'n'play).
Practic, dup cuplarea fizic , n slotul PCI liber urmeaz instalarea driver-ului
pl cii respective (o ac iune software), cu aceasta ncheindu-se dotarea sistemului.
Sistemul va recunoa te automat la pornire placa nou instalat , configurnd totodat
i canalele DMA, IRQ i adresele I/O necesare.

3.4.6. Proiectarea unui sistem I/O


Arta proiect rii unui sistem I/O const n a g si solu ia care s
ndeplineasc obiectivele de cost, dependen e i varietate ale dispozitivelor, i, n
acela i timp, s se evite sc derea performan ei I/O. Pentru a evita sc derea
performan ei, componentele trebuie s fie echilibrate ntre memoria principal i
dispozitivele I/O.
Arhitectul trebuie s pl nuiasc o extindere, att n ceea ce prive te
num rul, ct i tipurile dispozitivelor I/O, astfel nct clien ii s poat proiecta
re eaua I/O conform necesit ilor aplica iilor lor, a a cum rezult din figura 3.82.
De exemplu, discurile de stocare trebuie s fie dependente de limit rile care se pot
impune proiectului.

Fig. 3.82. Exemplu de organizare a unui sistem I/O.

170

ARHITECTURA SISTEMELOR DE CALCUL

n continuare, sunt prezenta i pa ii care trebuie urma i pentru proiectarea


unui sistem I/O. Solu iile pentru fiecare pas n parte sunt dictate de cerin ele
pie ei, cost, performan sau de posibilitatea ndeplinirii obiectivelor.
1. enumerarea diferitelor tipuri de dispozitive I/O care se vor conecta la
sistem sau enumerarea magistralelor standard pe care le suport
sistemul;
2. enumerarea cerin elor fizice pentru fiecare dispozitiv I/O, cerin ele
incluznd dimensiunea, puterea, conectorii, sloturile disponibile pe
magistral etc.;
3. luarea n calcul a costului fiec rui dispozitiv I/O, incluznd costul
controlerului necesar pentru dispozitivul respectiv;
4. luarea n calcul a fiabilit ii fiec rui dispozitiv I/O, precum i a
cerin elor de memorie i de ocupare a magistralei I/O de c tre fiecare
dispozitiv I/O n parte;
Observa ie: i atunci cnd CPU nu folose te memoria, dimensiunea
memoriei principale i a magistralei I/O este limitat ;
5. estimarea performan ei i a disponibilit ii diferitelor modalit i de
organizare a dispozitivelor I/O, pentru ca n final s se aleag cea mai
bun organizare;
6. nregistrarea cererii de acces a fiec rui dispozitiv I/O la resursele CPU:
num rul necesar de cicluri de ceas pentru instruc iunile de
ini ializare a dispozitivului I/O;
suportarea opera iilor unui dispozitiv I/O (de exemplu, ntreruperile);
evitarea bloc rii CPU cauzate de a teptarea eliber rii memoriei,
magistralei sau memoriei cache, care sunt folosite de dispozitivele I/O.

4. NIVELUL FIZIC

La baza structurii ierarhice a oric rui calculator se afl nivelul fizic. El


constituie fundamentul calculatorului i are ca suport circuitele i por ile logice.
Deoarece por ile utilizeaz numere binare, func ionarea calculatoarelor se bazeaz
pe algebra boolean . Func ionarea circuitelor logice se conduce dup principiul
unui tranzistor care se comport ca un ntrerup tor electronic foarte rapid.
Por ile logice sunt realizate n diferite tehnologii: tehnologie bipolar i
tehnologie unipolar sau MOS (Metal Oxide Semiconductor). n cadrul tehnologiei
bipolare se poate remarca familia TTL (Transistor-Transistor Logic) foarte
utilizat i ECL (Emitter Coupled Logic) folosit n aplica ii care necesit o
mare rapiditate de execu ie.
Por ile realizate n tehnologie MOS sunt de 10 ori mai lente dect cele n
tehnologie TTL i de 100 de ori mai lente dect cele din tehnologia ECL. n cadrul
tehnologiei MOS se disting cteva familii clasice: PMOS, NMOS i CMOS. A a
cum s-a mai spus, func ionarea por ilor logice se bazeaz pe algebra boolean . O
func ie boolean este asociat uneia sau mai multor variabile i furnizeaz un
rezultat care depinde n mod unic de valorile variabilelor binare aplicate la intrare.
Exemplu. O func ie f a unei variabile oarecare A poate fi definit ca fiind
f(A) = 1 dac A = 0 i f(A) = 0 dac A = 1. Aceasta este func ia NON.
O func ie boolean de n variabile prezint 2n st ri posibile. A descrie
complet aceste st ri sub forma unui tabel care con ine 2n linii nseamn a construi
tabela de adev r a func iei respective. Fiecare linie a acestui tabel indic valoarea
func iei pentru configura ia binar de n variabile.
Prin combinarea unor por i logice i ncapsularea lor ntr-un circuit sau
capsul au rezultat circuitele integrate logice. Ele sunt realizate cu diverse densit i
de integrare (num rul de por i sau de tranzistoare interne pentru circuit sau pe
milimetru p trat). Exist mai multe categorii de integrare:
SSI (Small Scale Integration) circuite cu integrare redus (sub 64
por i/circuit);
MSI (Medium Scale Integration) circuite cu densitate medie de
integrare (sub 1024 por i/circuit);
LSI (Large Scale Integration) circuite cu nalt densitate de integrare
(sub 65.000 por i/circuit);
VLSI (Very Large Scale Integration) circuite cu nalt densitate de
integrare (peste 65.000 por i/circuit);
SVLSI (Super Very Large Scale Integration) circuite cu foarte nalt
densitate de integrare (peste 500.000 por i/circuit).

172

ARHITECTURA SISTEMELOR DE CALCUL

Limita de integrare a ajuns la cteva milioane de tranzistoare pentru circuitele


modeste sau chiar la cteva zeci de milioane n cazul procesoarelor puternice.
Exemplu. Din cadrul tehnologiei SSI fac parte circuitele logice simple,
dintre care cele mai cunoscute sunt cele din familia 74xx dezvoltate ini ial de Texas
Instruments i distribuite ast zi de numero i fabrican i de circuite logice. Din cadrul
tehnologiei MSI fac parte circuitele logice combina ionale, dintre care se pot aminti:
multiplexorul, demultiplexorul, comparatorul, registrele logice programabile.
Exist unele circuite logice cu memorie. Pentru un calculator, memoria este
un dispozitiv esen ial. Ea este utilizat pentru stocarea instruc iunilor i a datelor
programului n curs de execu ie. Pentru a ob ine memorarea unui bit, este necesar
se utilizeze un dispozitiv care se substituie valorii pe care a nregistrat-o. Un astfel
de circuit poate fi realizat simplu cu por i logice, de exemplu cu por i logice I-NU.

4.1. Microprocesorul
Microprocesorul reprezint inima unui sistem de calcul. Privit din punct de
vedere fizic, el este un circuit care prezint cteva zeci sau chiar sute de terminale.
Semnalele de comunica ie asociate acestora i permit microprocesorului s fac
schimb de informa ii cu mediul extern, n principal cu circuite de memorie sau cu
circuite de intrare-ie ire. O analiz detaliat a acestor semnale determin diversele
moduri de func ionare logic i electric a procesorului i posibilit ile sale de
interfa . Exist trei categorii de semnalele electrice externe ale microprocesorului:
de adres ;
de date;
de comand .
Fiec rui tip de semnal i sunt asociate linii de comunicare care formeaz o
magistral . De cele mai multe ori, n limbajul de specialitate se vor ntlni cteva
no iuni specifice precum: magistrala de adrese, care reprezint totalitatea liniilor pe
care circul adresele, magistrala de date, corespunz toare liniilor de date i
magistrala de comenzi, specific liniilor de comenzi.

Fig. 4.1. Schema unui microprocesor tipic.

Structura unui calculator

173

Pentru ob inerea unei instruc iuni a programului care este executat,


microprocesorul ncepe prin plasarea adresei acestei instruc iuni pe magistrala de
adrese. Se activeaz un semnal pe magistrala de comand pentru specificarea unei
ac iuni de citire din memorie. Ca r spuns la aceast cerere, memoria plaseaz
instruc iunea pe magistrala de date, trimite un semnal c tre microprocesor prin care
acesta este aten ionat c opera iunea este terminat i activeaz un semnal specific
de validare a magistralei de comenzi. n timp ce microprocesorul prime te
semnalul de validare de memorie, el cite te informa ia (instruc iunea) prezent pe
magistrala de date i o plaseaz ntr-unul din registrele interne.
Exist doi parametri principali asocia i performan elor unui microprocesor:
num rul de linii ale magistralei de adrese i num rul de linii ale magistralei de date.
Observa ie. Ambii parametri se refer la imea magistralelor i se m soar
n num r de linii (sau de bi i). A nu se confunda cu rgimea (de band ) a
magistralelor, care se exprim n termenii vitezei de transfer (multipli de
octe i/secund .)
Un microprocesor care are m linii de adres poate adresa pn la 2m cuvinte
de memorie. Valorile curente pentru m sunt: 16, 20, 24, 32 sau 64. De asemenea,
dac dispune de n linii de date poate scrie/citi un cuvnt de memorie de n bi i ntr-o
singur opera ie. Valorile curente pentru n sunt: 8, 16, 32 sau 64.
Exemplu. Un microprocesor care dispune de opt linii de adres necesit
patru opera ii de citire pentru citirea unui cuvnt de 32 de bi i. Dac
microprocesorul ar avea 32 de linii de adres , citirea aceluia i cuvnt s-ar face ntrun singur tact, de unde rezult c un procesor este cu att mai rapid cu ct are mai
mare num rul de linii de date.
n afara liniilor de adres i de date, microprocesorul dispune de linii de
comand . Acestea permit asigurarea sincroniz rii, regl rii i comand rii
schimburilor pe magistral ntre microprocesor i mediul extern.
Semnalele de ntrerupere sunt semnale de intrare pentru un microprocesor.
Ele provin n principal de la circuitele de intrare-ie ire.
Exemplu. Un microprocesor cere unui circuit de intrare-ie ire (de fapt
perifericului c ruia i este asociat) s efectueze o anumit sarcin , dup care i
continu activitatea. n acest timp, perifericul realizeaz opera ia cerut la viteza sa
proprie de execu ie. Dup ce sarcina este ndeplinit , perifericul previne circuitul
de I/O (intrare-ie ire) care activeaz un semnal de ntrerupere prin care i se cere
microprocesorului o cerere de comunicare. O astfel de cerere de ntrerupere poate fi
activat , de exemplu, la terminarea unei sarcini sau la apari ia unei erori. Urmeaz
apoi o secven de tratare a acestei cereri de ntrerupere.
Semnalele care gestioneaz accesul la magistral servesc la fluidizarea
traficului pe magistral prin evitarea unor bloc ri care pot rezulta din utilizarea
simultan de c tre dou circuite a magistralei.
Unele procesoare au linii speciale de comunicare cu alte procesoare sau cu
procesorul secundar (coprocesorul), atunci cnd situa ia o cere. Acest lucru se
poate ntmpla, de exemplu, atunci cnd este nevoie de un calcul matematic, prin
cedarea controlului coprocesorului matematic.

174

ARHITECTURA SISTEMELOR DE CALCUL

4.2. ntreruperile
ntreruperile sunt schimburi n fluxul de control, care nu sunt cauzate de
programul care se execut , ci de alte cauze, aflate de obicei n leg tur cu opera iile I/O.
Exemplu. Un program poate comanda discului s porneasc transferul
informa iei i i cere acestuia s furnizeze o ntrerupere imediat ce transferul s-a
terminat. Microprocesorul ntrerupe programul ce se execut i transfer controlul
unei proceduri de tratare a ntreruperii, care execut cteva ac iuni corespunz toare.
Cnd se termin , rutina de tratare a ntreruperilor ntoarce controlul c tre
programul ntrerupt. Microprocesorul trebuie s reporneasc procesul ntrerupt
exact din aceea i stare n care era cnd a ap rut ntreruperea, ceea ce nseamn
refacerea tuturor registrelor interne n starea de dinainte de ntrerupere.
Un concept cheie al ntreruperilor este transparen a. Cnd apare o
ntrerupere, se execut cteva ac iuni i un fragment de cod anumit, dar cnd
servirea ntreruperii s-a terminat, calculatorul trebuie s se ntoarc n aceea i stare
pe care a avut-o nainte de ntrerupere. O procedur de tratare a ntreruperii cu
aceast proprietate se spune c este transparent .
Dac un calculator are mai multe dispozitive de I/O care pot lucra n paralel,
exist o probabilitate diferit de zero s apar simultan dou cereri de ntrerupere
sau s apar o astfel de cerere atunci cnd se execut deja una. Pentru a se putea
face o departajare ntre toate aceste ntreruperi, acestea vor avea ata at cte un nivel
de prioritate. Cnd un dispozitiv cu prioritatea n genereaz o ntrerupere, rutina de
tratare a ntreruperii trebuie, de asemenea, s fie executat cu prioritatea n.
n timp ce se execut o procedur de tratare a ntreruperii cu prioritatea n,
orice ncercare de a cauza o ntrerupere de c tre un dispozitiv cu o prioritate mai
mic este ignorat pn cnd rutina ntreruperii se termin i UCP se ntoarce la
programul utilizatorului. Pe de alt parte, tratarea ntreruperilor de la un dispozitiv
cu o prioritate mai mare trebuie validat f nici o ntrziere.

4.2.1. Gestionarea ntreruperilor


Dac unitatea central (UC) a cerut unui circuit de I/O efectuarea unei
opera ii, aceasta anun sfr itul opera iei printr-o ntrerupere. De asemenea, un
dispozitiv care dore te s foloseasc resursele procesorului semnalizeaz acest
lucru c tre procesor printr-o cerere de ntrerupere. O ntrerupere implic n
majoritatea cazurilor o cerere de magistral .
ntr-un sistem real, mai multe dispozitive pot cere simultan ntreruperi. Este
deci necesar un sistem de gestionare a cererilor de ntrerupere (apare aceea i
problem ca n cazul accesului la magistral , i anume care dintre dispozitivele ce au
emis cererea urmeaz s fie servit). O modalitate curent de solu ionare a cererilor
simultane de ntrerupere este de a asigna niveluri de prioritate diferite pentru
diversele dispozitive i de a utiliza un circuit arbitru pentru gestionarea acestor cereri.

Structura unui calculator

175

Exemplu. Un astfel de circuit este Intel 8259A (controler de ntreruperi


utilizat n calculatoarele IBM PC/AT i PS/2).

UC

INT
INTA
RD
WR
A0
CS
D0-D7

8259A
controler
de
ntreruperi

IR 0
IR 1
IR 2
IR 3
IR 4
IR 5
IR 6
IR 7

Ceas de sistem
Tastatur
Controler IRQ2
COM2/COM4
Mouse serial
Placa de sunet
Floppy disc
Imprimant

Fig. 4.2. Schema controlerului de ntreruperi 8259A.

O cerere de ntrerupere se traduce prin activarea intr rii asociate


perifericului. Cnd una sau mai multe ntreruperi ajung la controlerul de
ntreruperi, acesta anun UC prin linia special INT (Interrupt), care este legat la
intrarea de ntrerupere a UC. Aceasta r spunde de obicei printr-un semnal de
validare a ntreruperii (de exemplu, INTA = Interrupt Acknowledge). Ca urmare,
controlerul de ntreruperi informeaz UC pe magistrala de date despre dispozitivul
care a cerut ntreruperea. Unitatea central utilizeaz acest num r pentru a ob ine
dintr-o tabel de pointer-i indexat adresa rutinei de ntrerupere corespunz toare.
Controlerul de ntreruperi con ine un num r de registre interne care pot fi
citite sau scrise de c tre UC cu ajutorul semnalelor RD (Read), WR (Write), CS
(Chip Select) i A0 (linia 0 de adres ). Toate aceste semnale, la fel ca INT i INTA,
sunt active pe zero. Prin intermediul registrelor, UC comunic controlerului de
ntreruperi disponibilitatea de a trata o nou cerere de ntrerupere sau poate
programa controlerul s func ioneze ntr-un mod particular, de exemplu s
mascheze ntreruperile pe o anumit intrare. Dac se dispune de mai multe
controlere de ntrerupere, acestea se pot conecta n cascad . Rezult un avantaj:
dac sunt necesare mai mult de opt linii de ntrerupere, atunci se poate crea o
structur pe dou niveluri, care con ine un 8259A la ale c rui intr ri sunt legate
ie irile de ntreruperi ale altor opt circuite 8259A. Se creeaz astfel posibilitatea
trat rii a 64 de linii de ntrerupere.

4.3. Magistrala
4.3.1. Conceptul de magistral
n modelul ma inii von Neumann, comunica ia dintre componentele
sistemului se realizeaz prin leg turi dedicate ntre perechi de componente. Aceast

176

ARHITECTURA SISTEMELOR DE CALCUL

abordare este relativ rigid , limitnd drastic scalabilitatea (posibilitatea de


extindere) a sistemului.
Ad ugarea de noi componente este dificil i implic modificarea celor deja
existente. Proiectarea unei noi componente implic cunoa terea n detaliu a
func ion rii celorlalte elemente deja prezente. Solu ionarea acestei probleme a
venit din partea firmei Digital Equipment Corporation (DEC), care la sfr itul
anilor '60 a lansat pe pia primul calculator (PDP 11), construit n jurul unei
magistrale magistrala UniBus.
Conceptual, magistrala este un mediu comun de comunica ie ntre
componentele unui sistem de calcul; fizic este alc tuit dintr-un set de linii de
semnal care faciliteaz transferul de date i realizeaz sincronizarea ntre
componentele sistemului.
Introducerea conceptului de magistral a revolu ionat modul de concepere i
proiectare a noilor sisteme de calcul. Modelul de calculator bazat pe magistral a
fost preluat mai ales de familiile de calculatoare mini i micro. Prin standardizarea
magistralelor, sistemele de calcul au devenit deschise, n sensul c un num r mai
mare de produc tori au avut posibilitatea s realizeze componente pentru o anumit
structur de calculator (module de memorie, interfe e I/O, echipamente periferice),
bazndu-se numai pe specifica iile magistralei.
n decursul timpului au fost dezvoltate diferite standarde de magistral , care
au urm rit evolu ia procesoarelor (a unit ilor centrale) i a necesit ilor de
comunica ie ale acestora (vitez , mod de transfer, necesit i de sincronizare i
control etc.). S-au dezvoltat, de asemenea, magistrale specializate pentru anumite
tipuri de echipamente periferice (SCSI i EIDE pentru unit i de disc, console
grafice, interfe e de m sur i control). Din acest punct de vedere, n momentul
actual se pot distinge dou clase de magistrale:
magistrale de sistem dezvoltate mai ales pentru conectarea unit ii
centrale la celelalte componente de baz ale sistemului (de exemplu:
MultiBus, ISA, EISA, PCI);
magistrale specializate care ncearc s optimizeze transferul de date
cu un anumit tip de echipamente periferice (VESA, AGP, SCSI, GPIB).
Apari ia i evolu ia ulterioar a microprocesoarelor a consacrat modelul de
calculator bazat pe magistral . Configura ia semnalelor unui microprocesor este
astfel conceput nct s permit conectarea u oar la o magistral de sistem. n
general, fiecare familie de microprocesoare (Intel 8086, Z80, MC 68000) a impus o
anumit structur i un anumit standard de magistral . Exist ns anumite
caracteristici comune acestor magistrale (principii de transfer, tipuri de semnale),
astfel nct modulele proiectate pentru un tip de magistral s poat fi, prin
modific ri minime, conectabile altor magistrale.
S-au introdus noi principii de transfer care compenseaz ntr-o oarecare
sur limit rile de vitez impuse de legile fizicii de transmitere a semnalelor
electrice. Cele mai reprezentative dintre acestea sunt transferul concurent prin
tranzac ii i prelucrarea pipe-line a cererilor de transfer.

Structura unui calculator

177

4.3.2. Elemente definitorii ale magistralei


O magistral se compune dintr-un set de semnale i un set de reguli
constituite ntr-un protocol, care guverneaz transferul de informa ii i accesul la
mediul de comunica ie. Informa iile transferate pot fi: date, instruc iuni i
informa ii de control i sincronizare.
Protocolul se refer la:
caracteristicile mecanice: tip de conectori, num r de conectori aloca i pentru
un slot, formatul modulelor de extensie ata abile, sertar i fund de sertar
(rack i cablajul din spatele acestuia aceast structur fiind specific
magistralelor industriale);
caracteristicile electrice ale componentelor conectate pe magistral : niveluri
de tensiune, curen i, nc rcare, frecven de lucru, rat de transfer;
secven a de generare a semnalelor necesare pentru efectuarea unui transfer;
timpii limit pentru diferitele faze ale unui transfer i timpii de men inere a
unui anumit semnal;
intercondi ion rile func ionale i temporale ntre diferitele tipuri de semnale.
n accep iunea clasic , o magistral se compune din urm toarele tipuri de
semnale.
Semnale de date sunt semnale bidirec ionale utilizate pentru transferul de
date i instruc iuni. La un moment dat doar un singur dispozitiv poate s emit pe
liniile de date; num rul liniilor de date (8, 16, 32, 64) determin dimensiunea
maxim a cuvntului de date care poate fi transferat la un moment dat i, implicit,
viteza medie de transfer a magistralei.
Semnale de adres sunt utilizate pentru specificarea adresei modulului
destina ie sau surs de date, num rul de linii de adres determinnd spa iul maxim
de adresare permis de magistral (de exemplu, 24 linii de adres determin un
spa iu de adresare de 224 =16 Mloca ii).
Semnale de comand sunt semnale unidirec ionale generate de CPU (sau
de c tre alt dispozitiv master), utilizate pentru specificarea direc iei de transfer (de
exemplu, semnale de citire sau scriere pentru CPU) i a tipului de modul adresat
(de memorie sau modul I/O, de memorie program, controler de ntrerupere etc.).
Semnale de control sunt semnale de utilizate pentru reglarea condi iilor de
transfer al datelor (temporizarea deschiderii i nchiderii amplificatoarelor de
magistral pentru semnalele vehiculate pe aceasta).
Semnale de ntrerupere sunt generate de un controler dedicat, permit
semnalizarea unor evenimente interne sau externe i implicit determin
ntreruperea execu iei programului curent.
Semnale de tact (de ceas) sunt generate de un oscilator cu cuar , fiind
folosite pentru sincronizare i pentru generarea unor semnale de frecven
programabil .
Linii de alimentare sun generate de sursa de tensiune a sistemului, fiind
folosite pentru alimentarea modulelor sistemului.

178

ARHITECTURA SISTEMELOR DE CALCUL

Semnale de control al accesului sunt utilizate pentru arbitrajul i


controlul accesului pe magistral (n cazul magistralelor multimaster), fiind
generate de un circuit specializat (arbitru de magistral ).
Num rul i semnifica ia particular a semnalelor depind de tipul i destina ia
magistralei. Anumite grupe de semnale din cele prezentate pot s lipseasc (de
exemplu, semnalele de control) sau altele noi pot fi ad ugate (semnalele de eroare,
semnalele de control al l imii datelor transferate pe 8 sau pe 16 bi i etc.).
Magistralele pot fi clasificate n func ie de mai multe criterii.
I. modul de lucru (n raport cu semnalul de tact):
magistrale sincrone la care ciclurile de transfer sunt direct corelate cu
semnalul de tact. Viteza de transfer este mai mare, ns rata de transfer a
magistralei este limitat de frecven a tactului. Datorit vitezei limitate de
propagare a semnalului electric, cre terea ratei ar duce la diferen e de
faz la capetele magistralei.
magistrale asincrone la care nu exist o leg tur direct ntre evolu ia
n timp a unui ciclu de transfer i tactul sistemului. Majoritatea
magistralelor actuale lucreaz pe acest principiu (de exemplu, ISA,
EISA, MultiBus etc.).
II. num rul de module master conectate pe magistral :
magistrale unimaster exist un singur modul master pe magistral .
Nu necesit mecanisme de arbitraj al magistralei (un modul master poate
ini ia un ciclu de transfer, pe cnd un modul slave poate fi comandat n
timpul unui ciclu de transfer, neavnd elementele necesare pentru a
prelua controlul magistralei).
magistrale multimaster permit conectarea mai multor module master
pe acela i tronson de magistral . Magistrala trebuie s con in semnale
de arbitraj i un protocol de transfer al controlului pe magistral (de
exemplu, MultiBus, VME).
III. modul de realizare al transferului de date:
magistrale cu transfer prin cicluri (magistrale secven iale) regula
de baz : ciclurile de transfer se desf oar secven ial, la un moment dat
cel mult un ciclu de transfer fiind n curs de desf urare. Majoritatea
magistralelor folosesc acest principiu de transfer. n func ie de direc ia
de transfer se disting ase cicluri semnificative:

cicluri de citire (respectiv scriere) din/n memorie;

cicluri de citire (respectiv scriere) de la/la un port intrare-ie ire;

cicluri de acces direct la memorie (citire/scriere);


magistrale tranzac ionale transferul de date se efectueaz prin
tranzac ii. O tranzac ie este divizat n mai multe faze. Mai multe
tranzac ii se pot desf ura simultan, cu condi ia ca tranzac iile s fie n
faze diferite; aceast restric ie provine din faptul c fiecare faz a unei
tranzac ii folose te un subset din mul imea semnalelor magistralei.
Teoretic, la aceste magistrale factorul de cre tere a vitezei (n compara ie

Structura unui calculator

179

cu o magistral secven ial ) este egal cu num rul de faze n care se


divide o tranzac ie (de exemplu, magistrala procesoarelor post-Pentium).
IV. num rul semnalelor utilizate n transferul de date:
magistrale seriale se utilizeaz ca mijloc de comunica ie ntre
componentele de baz ale unui calculator (CPU, memorie, interfe e de
I/O etc.). Se folosesc, de asemenea, n anumite sisteme dedicate bazate
pe microcontrolere, la care costul i dimensiunea redus sunt parametri
definitorii. Cu toate c viteza de lucru este mai mic dect la
magistralele paralele, n ultimul timp sunt tot mai utilizate (de exemplu,
magistralele USB, SATA, SAS, PCIExpress etc.).
magistrale paralele sunt folosite datorit vitezei de lucru ridicate,
transferurile de date realizndu-se la nivel de octet i nu de bit.
4.3.3. Tipuri, familii i standarde de magistral

Tipurile uzuale de magistrale sunt:


I. Magistrale procesor-memorie:
ntre procesor i memorie;
specializate;
scurte;
rapide.
II. Magistrale I/O:
pot avea multe dispozitive I/O conectate (direct sau prin canale I/O
supervizate de procesoare specializate);
universale;
lungi;
mai lente dect magistralele procesor-memorie;
nu sunt legate direct la memorie, ci prin magistrale procesor-memorie
ori magistrale de fundal (backplane)
III. Magistrale backplane (originar folosite la placa de baz ):
permit acces simultan la procesor, memorie, dispozitive I/O;
sunt reutilizabile (bune pentru diverse configura ii);
Magistralele I/O necesit o interfa simpl , pe cnd cele backplane
necesit o logic suplimentar la interfa . n schimb, avantajul magistralelor
backplane este c acestea con in singure toate conexiunile. Se pot crea conexiuni
complexe, ca n figura 4.3 (n cazul folosirii unor tipuri multiple de magistrale,
trebuie utilizate adaptoare de magistrale pentru interconectare). Figura 4.3 con ine
configura ii cu magistrale pentru comunicarea procesor-memorie i trafic I/O:
(a) o singur magistral backplane: folosit la PC-urile vechi;
(b) o magistral procesor-memorie de tip PCI (bus backplane), care are
conexiuni SCSI cu magistrale I/O: folosit la PC-urile noi;
(c) ca la (b), plus o magistral separat pentru traficul procesor-memorie:
folosit la sistemele multiprocesor SiliconGraphics.

180

ARHITECTURA SISTEMELOR DE CALCUL

Fig. 4.3. Configura ii cu magistrale pentru comunicarea procesor-memorie i trafic I/O:


a. doar magistrala backplane; b. magistrala de tip procesor-memorie + magistrale I/O; c. toate tipurile.

Caracteristicile constructive ale unei magistrale sunt influen ate de cerin ele i
particularit ile func ionale ale procesorului pentru care a fost conceput . Acest fapt
vine n contradic ie cu ideea de sistem deschis, conform c reia mediul de
comunica ie ntre componentele unui sistem trebuie s fie independent de produc tor.
Firmele dominante n domeniul construc iei de calculatoare i-au dezvoltat propriile
standarde de magistral adaptate familiilor de procesoare pe care le produc.
Exemple. DEC UniBus, Intel MultiBus, IBM PC Bus HP GPIB etc.
Unele din aceste magistrale sunt deschise, n sensul c standardul este
accesibil i utilizabil liber de orice produc tor; altele au fost patentate i au
restric ii de utilizare, de exemplu magistrala MicroChannel (MCA) a firmei IBM,
folosit n construc ia calculatoarelor PS/2. Exist i standarde dezvoltate de
grupuri de produc tori cu interese apropiate. Astfel au ap rut standardele Camac,
FastBus, FutureBus, NuBus, Can etc.
n cazul acestor magistrale se pune problema asigur rii interoperabilit ii i
compatibilit ii ntre module realizate de diver i produc tori. Metoda de eliminare
a unor astfel de probleme este supunerea componentelor la teste de conforman .
Cele mai cunoscute foruri interna ionale de standardizare care au activitate n
domeniul magistralelor sunt IEEE, ANSI i IEC.
Cteva din cele mai cunoscute tipuri de magistrale sunt prezentate n tabelul 4.1.

Structura unui calculator

181
Tabelul 4.1

Tipuri de magistrale
Standard
IEEE

Nume
uzual

Domenii
de utilizare

488

GPIB

Instrumente de laborator

583, 596, 683

Camac

Achizi ie de date i instrumenta ie

696

S 100

Microsisteme de dimensiune medie

796, P1296

MultiBus I, II

Microsisteme de dimensiune medie

P896

FutureBus

Sisteme multiprocesor

P996

PC Bus

Calculatoare personale

P1014

VME Bus

Sisteme microprocesor performante


(cu Motorola 68000)

P1196

NuBus

Sisteme multiprocesor

UniBus

Minicalculatoare PDP 11

QBus

Minicalculatoare VAX

SCSI

Periferice (HD, band , CD-ROM)

n cadrul unui sistem de calcul pot s coexiste mai multe tipuri de standarde,
specializate pe transferul de date ntre anumite tipuri de componente de sistem.
Astfel, se poate utiliza o magistral de mare vitez pentru transferul ntre procesor
i memorie, o magistral cu acces multiplu (multimaster) pentru unele periferice de
mare vitez (disc, interfa video) i o magistral de mic vitez pentru perifericele
lente. n aplica iile de control se mai poate ad uga i o magistral de
instrumenta ie, adaptat pentru culegerea datelor de proces.
Pentru a satisface o gam larg de cerin e, s-au dezvoltat familii de
magistrale care cuprind mai multe variante ale unei magistrale de baz i sunt
compatibile ntre ele ntr-o oarecare m sur (interfe ele dezvoltate pentru aceste
variante necesit modific ri minore pentru compatibilizare).
n prezent exist mai multe astfel de familii de magistrale:
magistrale dezvoltate pentru calculatoare DEC UniBus, QBus i VAXBI;
magistrale dezvoltate pentru procesoarele Intel MultiBus I, MultiBus II
i extensii ale acestora;
magistrale inspirate de structura seriei de procesoare Motorola
magistralele VME;
magistrale de instrumenta ie familia GPIB (dezvoltat de Hewlett
Packard), IEEE488 i Camac.

182

ARHITECTURA SISTEMELOR DE CALCUL

n domeniul PC-urilor, s-au dezvoltat mai multe magistrale care au devenit


standarde de facto nainte ca acestea s fie propuse pentru standardizare formal :
ISA, EISA, VESA, PCI, SCSI, AGP etc.
Dup cum s-a ar tat, o magistral (bus) este o structur de interconectare (un
ansamblu de linii de comunica ii) ntre mai multe circuite sau unit i ale unui
calculator. Un PC are diferite tipuri de magistrale, ntre care se afl urm toarele:
magistrala procesorului, magistrala de adrese, magistrala memoriei, magistrala I/O.
Exemple. Camac (fizic nuclear ), FastBus (fizica energetic ), OmniBus
(PDP-8), UniBus (PDP-11), MassBus (VAX i PDP-11), MegaBus (Moneywell),
MicroChannel (PS/2), NuBus (MacIntosh 2), VersaBus (Motorola), VME
(Motorola 680x0), MultiBus 1 (INTEL 8086), MultiBus 2 (INTEL 80386), ISA sau
ATBus (INTEL 80286), EISA (INTEL 80386), MCA (IBM, 80386), VLBus
(VESA, 80486), PCI (Pentium), FireWire (IEEE 1394) etc.

4.3.4. Magistrala procesorului


Magistrala procesorului este calea de comunica ie ntre CPU i cipurile cu
care lucreaz direct. Aceast magistral este folosit pentru a transfera date, de
exemplu ntre CPU i memoria cache extern . Cele mai multe sisteme au un cache
extern pentru CPU; aceste memorii cache sunt n general folosite n toate sistemele
care utilizeaz cipuri 486, Pentium, Pentium Pro sau ulterioare.
Deoarece scopul magistralei procesorului este transmiterea i primirea
datelor de la CPU cu cea mai mare vitez posibil , aceast magistral lucreaz la o
vitez mult mai mare dect orice alt magistral din sistem: aici nu exist
strangul ri. Magistrala este compus din linii de semnal utilizate pentru date,
pentru adrese i pentru comenzi.
Exemple.
1. ntr-un sistem 486, magistrala procesorului este compus din 32 de linii
de adrese, 32 de linii de date i cteva linii de comand .
2. Magistrala procesorului dintr-un sistem Pentium are 64 de linii de date,
32 de linii de adrese i linii de comand asociate.
3. Sistemul Pentium Pro are 36 de linii de adrese, iar n rest are o magistral
similar cu cea a sistemului Pentium.
Magistrala procesorului lucreaz la aceea i frecven cu cea a ceasului de
baz ca CPU n exterior. Acest lucru poate conduce la concluzii gre ite deoarece
cele mai multe procesoare actuale utilizeaz o frecven de lucru intern mult mai
mare dect a oric rei magistrale din sistem.
Exemplu. Un sistem Pentium 100 are un procesor Pentium care lucreaz
intern la 100 MHz, dar n exterior lucreaz la numai 66,6 MHz. Aceea i frecven
extern de lucru (66,6 MHz) o au i procesoarele Pentium 133, Pentium 166 i
chiar Pentium Pro 200. n cele mai multe dintre noile sisteme, frecven a real de
lucru a procesorului este un multiplu (de 1,5 ori, de 2 ori, de 2,5 ori, de 3 ori etc.) al
frecven ei magistralei procesorului.

Structura unui calculator

183

Magistrala procesorului este legat la pinii procesorului i poate transfera un


bit de date pe o linie de date la fiecare perioad sau la dou perioade ale ceasului.
Astfel, un sistem 486 poate transfera 32 bi i de date simultan, n timp ce un sistem
Pentium sau Pentium II poate transfera 64 bi i de date la un moment dat.
Pentru a determina viteza de transfer pe magistrala procesorului se
multiplic l imea datelor (32 de bi i pentru 486 sau 64 de bi i pentru Pentium i
Pentium II) cu frecven a ceasului magistralei (aceea i cu frecven a ceasului de baz
al procesorului).
Exemplu. Un cip Pentium de 66/100/133/166/200 MHz care ruleaz la 66
MHz poate transfera un lot de date la fiecare perioad de ceas pe fiecare linie de
date. Se ob ine astfel o vitez maxim instantanee de transfer de 528 MB pe
secund . Acest rezultat deriv din urm toarea formul :
66 MHz 64 bi i = 4.224 megabi i/secund ;
4.224 megabi i/secund : 8 = 528 MB/secund .
Aceast vitez de transfer, adesea numit
rgime de band a magistralei,
reprezint o valoare maxim . Ca toate valorile maxime, aceast vitez nu reprezint
rgimea de band n func ionarea normal ; va rezulta o valoare medie mai sc zut
a vitezei transferului de date. Al i factori de limitare, cum ar fi proiectarea setului
de cipuri, viteza memoriei i altele, contribuie la sc derea l rgimii de band
efective.
ntre unit ile sau circuitele conectate la magistral se disting unit i de tip
master, care au ini iativa comunic rii pe magistral , i unit i de tip slave, care
spund la ini iativa de comunicare a masterului.
Exemple. Perechi master-slave: UC memorie (acces la instruc iuni i la
date); UC port I/O (transfer de date); UC coprocesor (tratarea instruc iunilor n
virgul mobil ); dispozitive I/O memorie (accesul la operanzi) etc.
n cazul procesoarelor moderne, comunica ia cu cipurile externe procesorului
a introdus no iunile de magistrale FSB, BSB i PSB
a) n cazul procesoarelor cu memorie cache L2 (L3, n cazul procesoarelor K62+ i K6-3) care nu se afl n interiorul procesorului (exemple tipice fiind
procesoarele pe socket 7, slot 1 i slot A), leg tura dintre acesta i northbridge poart
denumirea de magistral FSB (Front Side Bus), iar frecven a de baz a acesteia
nmul it cu multiplicatorul d frecven a de lucru a procesorului. ntre procesor i
memoria cache L2 conexiunea se face prin magistrala BSB (Back Side Bus), o
magistral de memorie care func ioneaz fie la frecven a FSB (la procesoarele pe
socket 7), fie la jum tate din frecven a procesorului (la procesoarele Intel pe slot 1),
fie ntre 1/3 i 1/2 din frecven a procesorului (la procesoarele AMD pe slot A).
Exemplu. Un FSB pe 32 de bi i, opernd la o frecven de 100 MHz i care
realizeaz 4 transferuri pe ciclu, are o l rgime de band de 1.600 MB/s.
Produc torii specific viteza FSB-ului n MT/s (Mega Transfers per second). Dac
o plac de baz are un FSB cu frecven a de tact de 266 MHz i realizeaz 4
transferuri pe ciclu de ceas, FSB-ul certificat este de 1.066 MT/s.

184

ARHITECTURA SISTEMELOR DE CALCUL

b) n cazul procesoarelor cu cache L2 integrat n procesor (Intel P3 i


Celeron pe socket 370 i P4 toate variantele, respectiv, AMD Athlon pe socket A,
754, 939, 940), BSB-ul a disp rut, nemaifiind necesar.
Combinnd a) i b), rezult c nu este corect s se foloseasc termenul de
FSB n cazul procesoarelor actuale, termenul mai potrivit fiind Processor Side Bus
(PSB) sau System Side Bus (SSB), iar n cazul procesoarelor Opteron/Athlon64
nici m car termenul PSB nu este corect, leg tura dintre procesor i northbridge
fiind de tip punct-la-punct (point-to-point).
4.3.4.1. Conectarea la magistral
Majoritatea circuitelor logice nu dispun la ie ire de amplificatoare capabile s
furnizeze puterea necesar transmiterii unui semnal binar pe liniile magistralei
(datorit capacit ii magistralei, pe de o parte, i a nc rc rii intr rii cu alte sarcini).
Pentru transmitere se utilizeaz circuitele amplificatoare de putere numite driver-e.
La recep ie este necesar utilizarea unui receptor de tip Trigger-Schmidt care
reface semnalul degradat din cauza capacit ii limitate a liniei de transmisiune sau
a eventualelor zgomote. De multe ori, un circuit poate s transmit i n acela i
timp s fie receptor, rezultnd c pentru interfa area cu magistrala sistemului
trebuie utilizate circuite mixte numite transceiver-e (transmitter + receiver).
Din punctul de vedere al st rilor logice, circuitele de conectare la magistral
sunt circuite cu trei st ri, n care a treia stare (stare flotant ) permite acestora s fie
deconectate logic cnd se afl n repaus. Un alt tip de circuit de conectare este
circuitul cu colectorul n gol (realizeaz func ia SAU-cablat).
4.3.4.2. Magistralele sincrone
Din punctul de vedere al caden ei schimbului de date care are loc pe
magistral exist arhitecturi sincrone i asincrone.
Magistrala sincron dispune de o linie de ceas comandat de un oscilator cu
cuar . Toate opera iile de pe o magistral sincron sunt efectuate ntr-un num r
ntreg de perioade de ceas.
Exemplu. n figura 4.4 este prezentat modul de lucru al magistralei sincrone
n cazul opera iei de citire a unui cuvnt din memorie.
Nota ii folosite:
semnal de ceas real (un ciclu de ceas TC = 250 ns);
MREQ cerere acces memorie (Memory Request);
RD citire (Read);
TML timp de stabilire a adreselor nainte de MREQ (> 60 ns; la o frecven de ceas
4 MHz se accept un timp de cre tere de 10 ns);
TM activarea semnalului MREQ fa de frontul descresc tor n ciclul T1 (< 85 ns);
TRL activarea semnalului RD fa de frontul descresc tor n ciclul T1 (< 85 ns);
TDS date disponibile nainte de frontul descresc tor n ciclul T3 (> 50 ns);
TMH tranzi ia semnalului MREQ dup frontul descresc tor n ciclul T3 (< 85 ns);
TRH tranzi ia semnalului RD fa de frontul descresc tor n ciclul T3 (< 85ns);
TDH men inerea datelor dup ridicarea semnalului de date (dup comutarea lui RD, > 0).

Structura unui calculator

T1

185

T2

T3

ADDR

ADRES CUVNT

DATE

DATE
TM

MREQ

TDS

TML
TMH

RD
TRL

TRH
TDH

Fig. 4.4. Schema accesului la magistrala sincron .

nceputul ciclului T1 este marcat de frontul cresc tor al semnalului . n


prima parte a ciclului T1 procesorul plaseaz pe magistrala de adrese adresa care se
dore te a fi citit din memorie. Pozi ionarea adresei pe magistral corespunde
activ rii mai multor semnale binare care formeaz adresa. Dup stabilirea adresei
pe magistral , devin active semnalele MREQ i RD. MREQ indic prin activarea
sa c se efectueaz un acces la memorie i nu un acces la dispozitivele I/O. RD
define te prin activarea sa o opera ie de citire din memorie.
n timpul ciclului T2 nu are loc nici o modificare pe magistral pentru a
permite memoriei decodificarea adresei de pe magistrala de adrese i pozi ionarea
informa iei cerute pe magistrala de date.
n timpul ciclului T3, pe frontul descresc tor al semnalului de ceas,
microprocesorul capteaz i nregistreaz ntr-un registru intern informa ia prezent
pe magistral . Odat terminat aceast opera iune, procesorul pune n repaus
semnalele MREQ i RD (le ridic n 1).
Dac este nevoie mai departe de o alt opera ie de citire sau scriere, aceasta
poate ncepe pe frontul cresc tor al urm torului ciclu de ceas. Dac memoria nu
este capabil s plaseze datele pe magistral n timpul cerut (s fie respectat TDS),
atunci memoria activeaz un semnal de wait, prin care cere prelungirea timpului de

ARHITECTURA SISTEMELOR DE CALCUL

186

citire. St rile de wait, care sunt generate de surplusul de vitez a procesorului n


compara ie cu viteza memoriei, ncetinesc viteza calculatorului.
Avantaj: func ionare relativ simpl .
Dezavantaje:
1. orice opera ie pe magistral corespunde unui num r ntreg de perioade
de ceas, ceea ce conduce la o func ionare suboptimal din punct de
vedere al vitezei de lucru, datorat faptului c o opera ie care dureaz 3,1
perioade de ceas va fi realizat n 4 perioade de ceas, chiar dac
memoria poate s r spund mai repede;
2. magistrala sincron evolueaz dificil odat cu procesul tehnologic de
realizare a componentelor, datorit faptului c prin utilizarea unor
memorii de vitez mai mare nu se poate reduce durata unei opera ii de
citire-scriere pn cnd nu este modificat frecven a ceasului care
guverneaz magistrala.
Concluzie. Pentru a conecta n mod optim un ansamblu de circuite la
magistral , este preferat arhitectura asincron .
4.3.4.3. Magistralele asincrone
n acest caz, nu este necesar existen a unui semnal de ceas care s
supervizeze transferul. Deci, durata unei opera iuni pe magistral este variabil , n
func ie de performan ele circuitelor utilizate.
Exemplu. n figura 4.5 este prezentat modul de lucru al magistralei
asincrone n cazul opera iei de citire a unui cuvnt din memorie.

ADDR

ADRES CUVNT

MREQ
RD
MSYN

DATE

DATE

SSYN
Fig. 4.5. Schema accesului la magistrala asincron .

Structura unui calculator

187

MSYN (Master Synchronisation) i SSYN (Slave Synchronisation) sunt


semnalele de sincronizare care asigur respectarea ordinii diverselor momente din
opera iunea de citire. De obicei, master este UC i slave este memoria.
Dup ce adresa cuvntului este depus pe magistrala de adrese de c tre UC i
dup ce semnalele MREQ i RD devin active, UC activeaz semnalul MSYN care
comunic memoriei nceperea opera iei de citire.
Memoria efectueaz citirea la vitez proprie, iar dup depunerea pe
magistral a informa iei cerute activeaz semnalul SSYN. Acest semnal informeaz
procesorul c datele cerute sunt valide pe magistral . Procesorul ncarc datele n
registrele interne, dup care dezactiveaz semnalele MREQ, RD i MSYN.
Dezactivarea lui MSYN este sesizat de memorie, care pune n repaus SSYN i
elibereaz magistrala de date. Astfel s-a ajuns din nou la starea ini ial i rezult c
poate ncepe o alt opera ie pe magistral .
Ansamblul semnalelor de mai sus, cu ajutorul c rora se efectueaz transferul
datelor, corespunde tehnici full handshake (tehnica acordului confirmat), care
include urm toarele opera ii:
activarea lui MSYN;
activarea lui SSYN ca r spuns la MSYN;
dezactivarea lui MSYN ca r spuns la SSYN;
dezactivarea lui SSYN ca r spuns la MSYN.
Observa ie. Aceast tehnic este total independent de timp. Fiecare
eveniment din succesiune este cauzat de evenimentul precedent. De aceea
dispozitivele conectate la o magistral asincron pot fi u or nlocuite cu altele mai
performante, pe m sur ce tehnologia avanseaz . n consecin , avantajul folosirii
magistralei asincrone apare evident n compara ie cu magistrala sincron .
Pe o magistral sincron UC i pozi ioneaz semnalele, iar memoria sau
circuitele I/O nu fac altceva dect s r spund solicit rilor UC f
a fi necesar o
sincronizare cu aceasta. Astfel, simplitatea magistralei sincrone const n lipsa
semnalelor MSYN i SSYN.
4.3.4.4. Transferul datelor pe magistrala local a procesorului (PLB)
Tranzac iile pe magistrala local a procesorului, PLB (Processor Local Bus),
constau n mai multe faze de adresare i date. n func ie de nivelul de activitate a
magistralei i capacitatea slave PLB, acestea pot dura unul sau mai multe cicluri de
magistral PLB. De asemenea, pipeline-ul de adresare i livrarea datelor i
adreselor separate sunt mbun ite prin modul n care aceste faze sunt gestionate.
Tranzac ia de adresare con ine 3 faze: cerere, transfer i confirmare de adresare. O
tranzac ie PLB ncepe cnd un master adun adresele sale i transfer semnalele n
vedere ob inerii dreptului asupra magistralei n timpul fazei de cerere. Odat ce
arbitrul PLB ofer dreptul asupra magistralei, adresa masterului este prezentat la
dispozitivele slave n timpul fazei de transfer. Ciclul de adresare se termin cnd un
slave ncheie adresa masterului i transfer datele n timpul fazei de confirmare a
adresei.

188

ARHITECTURA SISTEMELOR DE CALCUL

Figura 4.6 ilustreaz dou pipeline-uri de adresare de citire i scriere, mpreun


cu fazele de citire i scriere a datelor. Master A i B reprezint starea fiec rei adrese
master. PLB arbitreaz ntre aceste cereri i trimite cererea masterului selectat la
magistrala de adrese a PLB slave. Urma cu eticheta faza de adresare arat starea
magistralei de adrese a slave-ului PLB de-a lungul fiec rui tact PLB.

Fig. 4.6. Exemplu de protocol de transfer PLB.

a cum se arat n figura 4.6, specifica iile PLB accept implement rile n
care aceste trei faze pot solicita numai un singur ciclu de ceas PLB. Acest lucru se
ntmpl atunci cnd masterului solicitant i este acordat imediat accesul la
magistrala slave i unitatea slave confirm adresa de-a lungul aceluia i ciclu. Dac
un master trimite o cerere care nu poate fi imediat trimis la magistrala slave, faza
de cerere poate dura unul sau mai multe cicluri.
Procesorul de magistral local de 128 de bi i a ap rut n mai 2007.
PLB ofer o interfa standard ntre nucleele procesorului i controlerele
integrate ale magistralei. Cu PLB, poate fi dezvoltat o bibliotec a nucleelor
procesorului i controlerelor magistralei pentru utilizare i aplicare n nucleu, sub
form de circuite integrate specifice (numite Core + ASIC) i modele system-on-achip (SOC).
n plus, PLB este o magistral de mare performan on-chip care este folosit
n sistemele integrate Core + ASIC. PLB sprijin citirea i scrierea, transferuri de
date ntre dispozitivele master i slave care sunt dotate cu o interfa de magistral
PLB i sunt conectate prin semnale ale PLB.
Fiecare master PLB este anexat prin magistrale de adresare diferite,
magistrale de citire de date, magistrale de scriere de date i semnale de transfer.
Slave-urile PLB sunt ata ate la PLB prin magistrale de adrese puse n comun, dar
decuplate, magistrale de citire, magistrale de scriere, control al transferului i starea
semnalelor pentru fiecare magistral de date.
PLB este o magistral complet sincron . O singur surs de ceas prevede
timing-ul pentru toate semnalele de PLB. Toate unit ile master i slave care sunt
anexa i la PLB folosesc acest ceas ca surs .
PLB se diferen iaz prin urm toarele caracteristici de performan :

Structura unui calculator

189

transferurile de citire i scriere se suprapun pentru a permite dou


transferuri de date per ciclu pentru maximizarea folosirii magistralei;
magistrale decuplate pentru adresare i date sus in capacitatea de
divizare a tranzac iilor pentru o l ime de band mai bun ;
protocolul de suprapunere a cererii de magistralei i protocolul de oferire
a dreptului magistralei reduc ntrzierile cauzate de arbitraj;
PLB este o magistral complet sincron .

4.3.4.5. Arbitrajul magistralei


Pn acum s-a considerat c exist un singur master pe magistral . n
realitate, n cele mai multe cazuri exist mai multe dispozitive I/O care pot cere
simultan accesul la memorie, ceea ce conduce la necesitatea introducerii unor
reguli de arbitraj.
Arbitrajul magistralei se poate realiza n dou variante:
structura centralizat , n care exist fizic un arbitru;
structura descentralizat , n care fizic nu exist un arbitru de magistral ,
dar care implementeaz func iile acestuia.
Structura centralizat
Algoritmul cu priorit i statice (daisy chain). Se presupune existen a a
cinci dispozitive de I/O care cer simultan accesul la magistral prin linia de BUS
REQUEST, iar arbitrul le r spunde prin linia de acordare a magistralei (BUS
GRANT).
Circuitele I/O care pot deveni master sunt legate printr-un SAU cablat la
linia de cerere de magistral BUS REQUEST. Cnd cel pu in unul dintre circuite
cere accesul la magistral , arbitrul este sesizat, iar cnd este posibil (cnd
magistrala este liber ) acesta acord accesul la magistral printr-o linie de acordare
a magistralei (BUS GRANT), astfel nct arbitrul nu vede dect o singur cerere,
chiar dac mai multe circuite cer accesul (vezi figura 4.7).
BUS REQUEST
arbitru

BUS GRANT

Dispozitive I/O

Fig. 4.7. Algoritmul cu priorit i statice (daisy chain).

ARHITECTURA SISTEMELOR DE CALCUL

190

Linia de acordare a magistralei traverseaz n serie cele cinci circuite de I/O


(pe aceast linie dispozitivele I/O sunt a ezate n cascad ). Cnd primul circuit I/O
recep ioneaz acordarea magistralei, el cunoa te dac are sau nu nevoie de
magistral , adic dac a formulat cererea de acces sau nu. Dac are nevoie, el accept
magistrala i preia controlul ei, iar dac nu, permite propagarea semnalului de
acordare mai departe, c tre circuitul urm tor. Prioritatea scade de la stnga spre
dreapta (prioritatea este direct propor ional cu apropierea de arbitru).
n cele ce urmeaz se va prezenta o variant care permite existen a mai
multor niveluri de prioritate. Aceasta va cuprinde dou niveluri de ierarhizare:
primul cuprinde circuitele 1 i 2, iar cel de-al doilea cuprinde circuitele 3, 4 i 5.
Astfel, rezult dou linii de acordare a magistralei.
Pentru fiecare nivel de prioritate exist o linie de cerere de magistral i o
linie de acordare de magistral . Dispozitivele I/O pot fi repartizate n diferite
moduri pe nivelurile de prioritate (fig. 4.8).
BUS REQUEST 1
BUS REQUEST 2

arbitru

BUS GRANT 1
BUS GRANT 2
Fig. 4.8. Repartizarea dispozitivelor I/O pe nivele de prioritate.

O alt variant ar fi urm toarea: n unele scheme de arbitraj poate fi folosit o


linie care specific starea BUS BUSY (ocuparea magistralei), activat de unitatea ce
preia controlul magistralei. Odat ce linia de ocupare a magistralei a fost activat , se
dezactiveaz cererea de acces la magistral , aceasta permi nd altor unit i s cear
accesul n timpul transferului de date pe magistral i, mai mult chiar, permi nd
arbitrului de magistral s fac o preselec ie a unit ii care are prioritate. Astfel, odat
ce transferul de date pe magistral a luat sfr it, magistrala este eliberat i unitatea
preselectat preia controlul magistralei (aceast tehnic este mai eficient ). De obicei,
aceast variant cu preselec ie i BUS BUSY este folosit la magistralele Motorola.
Algoritmul cu cereri independente. Acest algoritm reprezint cel mai
general caz de arbitraj al magistralei, dar din punct de vedere hardware este greu de
implementat. Fiecare dispozitiv emite o cerere de bus independent c tre arbitru.
Acesta r spunde pe linii separate dispozitivelor. Dispozitivul care prime te r spuns
afirmativ poate folosi magistrala. Logica de acordare a magistralei este
implementat n arbitru.
Figura 4.9. prezint un exemplu de schem de arbitraj cu cereri independente.

Structura unui calculator

191

BG 1
BR 1
BG 2

arbitru

BR 2

BG m
BR m

ACK

BUS

Fig. 4.9. Algoritmul cu cereri independente.

Nota iile folosite:


BR = linia de cerere de magistral (BUS REQUEST);
BG = linia de acordare a magistralei (BUS GRANT);
ACK = linia de confirmare (ACKnowledge)
BUS = magistrala.
Algoritmul cu interogare ciclic (polling). Exist log2m linii de interogare
pentru cele m dispozitive. Dispozitivele sunt prev zute cu cte un decodor pentru a
recupera codul de interogare. Dispozitivul care i recunoa te codul de interogare
activeaz semnalul de confirmare ACK (acknowledge) i preia controlul
magistralei.
Arbitrul ntrerupe ciclul de interogare pn cnd dispozitivul c ruia i s-a
acordat magistrala i ncheie opera iile pe magistral (vezi figura 4.10). Prioritatea
fiec rui dispozitiv este setat n codul de interogare.
n majoritatea sistemelor de calcul, unitatea central trebuie s negocieze
accesul la magistral n acela i mod cu celelalte unit i. n general, unitatea
central are prioritatea cea mai sc zut ; ea utilizeaz magistrala doar cnd nici un
alt circuit nu are nevoie de ea. Aceasta permite circuitelor I/O s realizeze transferul
de date atunci cnd este necesar, f s apar pericolul de pierdere a datelor.
Pentru fiecare nivel de prioritate exist o linie de cerere de magistral i o
linie de acordare de magistral .

ARHITECTURA SISTEMELOR DE CALCUL

192

m
log2m linii
de interogare
confirmare
ACK

arbitru

BUS REQUEST

BUS
Fig. 4.10. Algoritmul cu interogare ciclic (polling).

n majoritatea sistemelor de calcul, unitatea central trebuie s negocieze


accesul la magistral n acela i mod cu celelalte unit i. n general, unitatea central
are prioritatea cea mai sc zut ; ea utilizeaz magistrala doar cnd nici un alt circuit
nu are nevoie de ea. Aceasta permite circuitelor I/O s realizeze transferul de date
atunci cnd este necesar, f s apar pericolul de pierdere a datelor.
Structura descentralizat
n aceast structur nu exist un arbitru veritabil de magistral (circuit fizic),
ci fiecare unitate i gestioneaz singur accesul la magistral realiznd o parte din
func iile arbitrului.
Exemplu. La sistemele VAX, exist 16 niveluri de prioritate i fiec ruia i
este asociat o linie de cerere de magistral (sistemul poate accepta maximum 16
unit i, poten iali master de magistral ).
Cnd o unitate dore te s utilizeze magistrala, ea activeaz propria linie de
cerere de magistral ; la finele transferului de date curent de pe magistral , fiecare
unitate examineaz cererile de acordare a magistralei. Circuitele logice de pe fiecare
unitate permit accesul la magistral doar unit ii cu cea mai mare prioritate, iar pentru
celelalte unit i accesul nu este permis.
Avantajul este c permite o implementare simpl , iar dezavantajul, c
necesit mai multe linii, deoarece fiecare unitate recep ioneaz cele 16 linii.
Exemplu. Pentru sistemele Intel se folose te schema de arbitraj din figura 4.11.
Pentru gestiunea magistralei sunt utilizate:
linia de cerere de magistral BUS REQUEST (SAU cablat);
linia care semnific ocuparea magistralei BUS BUSY, activat de
circuitele ce ocup magistrala (de masterul magistralei);
linia de arbitraj ARBITRATION LINE, pe care unit ile sunt a ezate n
cascad (conform structurii centralizate);

Structura unui calculator

193

BUS REQUEST

BUS BUSY
ARBITRATION LINE

+ 5V
1

Fig. 4.11. Structura descentralizat de arbitraj al magistralei.

conexiunea la +5V (1 logic). Acest +5V nseamn nivelul activ al liniei:


dac nici un circuit nu cere accesul pe magistral , poten ialul de +5V se
propag pe toat linia de arbitraj (toate unit ile n repaus pleac de la o
prioritate egal ).
Pentru a ob ine accesul la magistral , o unitate trebuie s verifice:
1. dac magistrala este liber ;
2. dac semnalul BUS BUSY este dezactivat;
3. dac linia de arbitraj prezent la intrarea sa este liber .
Dac aceste trei condi ii sunt ndeplinite, unitatea pune n 0 ie irea sa, ceea
ce are ca efect propagarea st rii de 0 pe linia de arbitraj pentru toate unit ile care
urmeaz .
n acest moment exist o singur unitate care are intrarea activ (n +5V) i
ie irea inactiv (n 0), ceea ce face ca aceast unitate s devin masterul
magistralei; ea activeaz linia de BUS BUSY i este liber s efectueze transferul
pe magistral .
Lan ul de priorit i la structura descentralizat este, deci, urm torul: o unitate
ob ine accesul la magistral naintea unit ii de la dreapta sa, dar dup cele de la
stnga.
Avantajele schemei fa de structura cu arbitru sunt simplitatea (arbitrul de
magistral lipse te i sunt trei teste de efectuat pentru unit i) i rapiditatea.
Algoritmul cu priorit i dinamice (rotating daisy chain). Acest algoritm
reprezint varianta descentralizat a algoritmului cu priorit i statice (daisy chain).
Pentru algoritmul cu priorit i dinamice nu mai exist arbitru de magistral . Acest
bloc este divizat n subblocuri descentralizate (vezi figura 4.12).
Semnalul de acordare de magistral este conectat n bucl nchis ntre
subblocurile de control ale magistralei.
Subblocul conectat cu dispozitivul care a preluat controlul magistralei devine
master, modificnd astfel distan a dintre dispozitive i subblocul de arbitraj.
Dispozitivul care a preluat controlul magistralei va avea la urm toarea cerere de
magistral prioritatea minim .
Subblocurile de arbitraj comunic ntre ele pentru a arbitra cererea de
magistral prin semnalele BUS REQUEST i ACK. De asemenea, exist leg turi
electrice pentru dialog ntre fiecare subbloc de control al magistralei i dispozitivul
asociat.

ARHITECTURA SISTEMELOR DE CALCUL

194

BUS
GRANT
ACK
BUS
REQUEST
BUS
Fig. 4.12. Algoritmul cu priorit i dinamice (rotating daisy chain).

4.3.4.6. Magistrala VME


Magistrala VME (Versa Module Eurocard) este un exemplu de magistral
asincron , de nalt performan , proiectat pentru utilizarea intensiv n mediul
industrial; ea con ine 32 de linii de adrese i 32 de linii de date. Pe lng aplica iile
industriale, este utilizat i n minicalculatoare.
Magistrala VME a fost dezvoltat din magistrala Versa Bus a firmei
Motorola, iar specifica iile pentru magistrala VME sunt con inute n norma IEEE
P1014. Spre deosebire de magistrala IBM PC, magistrala VME a fost proiectat
urm rind trei scopuri: interoperabilitatea, performan a i fiabilitatea.
Magistrala VME se prezint sub trei forme: VSB, VMS i VME. Aceste
magistrale specifice sunt bine adaptate la realizarea unor sisteme de calcul variate,
de la scheme de dezvoltare i pn la sisteme multiprocesor.
Fiecare procesor dispune de o memorie local , legat prin VSB, care este o
magistral local proprie magistralei VME. n memoria local se afl toate
programele i datele asociate unui procesor. Instruc iunile referitoare la memoria
global sunt singurele care necesit utilizarea magistralei VME, celelalte
instruc iuni merg pe magistrala VSB.
n consecin , performan a global a sistemului este superioar limitei de
40MB/s impuse de tehnologia VME.
Exemplu. La sistemele cu 16 procesoare care fac acces la cuvinte de 32 de
bi i, cu un ciclu de magistral de 200 ns, l rgimea de band calculat este de 320
MB/s. Dac se face presupunerea c 90% din accesele la memorie sunt efectuate n
memoriile locale (ipotez realist ), rezult c magistrala VME va fi nc rcat doar la
valoarea de 32MB/s (adic restul de 10%), ceea ce este mai pu in de 40MB/s
(valoare impus de tehnologia VME).

Structura unui calculator

195

Familia VME cuprinde o magistral serie pe care comunica iile se realizeaz


prin transmisiuni seriale (VMS). Magistrala VMS este independent de celelalte
dou i ofer o l rgime de band de 30Mb/s (la transmisia serial banda se exprim
n megabi i pe secund , nu n megaocte i pe secund ). Ea corespunde necesit ilor
de comunica ie cu debit sc zut sau transferului informa iilor de sincronizare ntre
procesoare. Magistrala VMS este asem toare unei re ele locale, ea fiind bazat
pe un cablu coaxial.
Exemplul 1: sistem cu trei pl ci VME: procesor, memorie, controler I/O.
UC

I/O

Magistral VME
Fig. 4.13. Exemplu simplu de magistral VME.

Exemplul 2: sistem multiprocesor.


ML

ML

ML
VSB BUS

UC

UC

UC

MP
VME BUS

VMS BUS

ML = memorie local

MP = memorie partajat

Fig. 4.14. Exemplu complex de magistral VME.

Magistralele VME, VSB i VMS sunt magistrale pe care comunica iile au


loc independent i simultan, nefiind sincronizate.
Magistralele VME cuprind patru grupe de linii: liniile de date, liniile de
arbitraj al magistralei, liniile de ntreruperi i liniile de comand .
n ceea ce prive te unit ile implicate n transferul de pe liniile de date,
exist , pe lng modulele master i slave, nc dou tipuri de unit i func ionale
care particip la schimbul de date pe magistral : monitorul de urm rire i
supervizorul de magistral .

196

ARHITECTURA SISTEMELOR DE CALCUL

Monitorul de urm rire analizeaz traficul de pe magistral i genereaz o


ntrerupere atunci cnd detecteaz o ac iune sau o adres anormal (are rolul de a
semnaliza o ac iune nepermis ).
Exemplu. O tentativ de scriere n memorie ntr-o zon protejat este
recunoscut de monitorul de urm rire i oprit prin cererea de ntrerupere a
procesorului).
Monitorul de urm rire nregistreaz n memorie ntr-un spa iu cu n pozi ii
semnalele care tranziteaz magistrala. Aceasta nseamn c este posibil
vizualizarea ultimelor cicluri de magistral care au precedat cererea de ntrerupere,
de unde rezult c utilizatorul poate detecta eventualele anomalii de pe magistral .
Supervizorul de magistral ndepline te func ia de urm rire temporal a
semnalelor de pe magistral .
Exemplu. Dac un ciclu de magistral este prea lung, rezult o eroare de
adresare, recunoscut prin faptul c nu exist nici un element care s r spund
acestei adres ri. Rolul supervizorului de magistral este important datorit faptului
f
interven ia acestuia exist posibilitatea ca ciclul de magistral s se
prelungeasc un timp nedefinit, ceea ce ar duce la blocarea magistralei.
Pe liniile de arbitraj, magistrala VME suport mai multe scheme de lucru,
dintre care, n general, sunt recomandate trei: arbitrajul simplu, arbitrajul cu
priorit i fixe i arbitrajul cu priorit i circulare.
Arbitrajul simplu presupune existen a unui lan de unit i pe un singur nivel.
Arbitrajul cu priorit i fixe permite existen a mai multor niveluri de
prioritate, ntre care se stabile te o anumit ordine.
Arbitrajul cu priorit i circulare implic nl uirea ciclic a unit ilor,
existnd astfel posibilitatea unui transfer continuu al priorit ilor. El presupune
existen a unor linii de cerere de magistral cu aceea i prioritate; la magistrala VME
exist patru astfel de linii de cerere de magistral . Acestea func ioneaz astfel: la
primul ciclu de magistral este servit cererea sosit pe linia 0, la ciclul urm tor
cererea sosit pe linia 1 .a.m.d. Dac nu exist nici o cerere pe linia considerat ,
atunci se analizeaz linia urm toare. Unit ile care pot deveni master sunt legate n
lan la cele patru linii.
Oricare ar fi schema de arbitraj utilizat , o unitate master care dore te
accesul la magistral transmite o cerere n acest sens c tre arbitru pe o linie
corespunz toare; cnd cererea este satisf cut i se ob ine magistrala, acea unitate
master transmite arbitrului un semnal de ocupare a magistralei i anuleaz cererea
sa. n acest mod, devine posibil alocarea anticipat a magistralei unei alte unit i
care o solicit . Noua unitate master care a adresat cererea de magistral ocup
magistrala imediat dup eliberarea acesteia. Aceast facilitate de alocare anticipat ,
care provine din modul de lucru al procesoarelor Motorola, permite o mbun ire
net a performan elor magistralei.
n plus, la magistrala VME arbitrului de magistral i este permis
suspendarea activit ii unui master de prioritate sc zut angajat ntr-o secven
lung pe magistral (de exemplu, ntr-un transfer de blocuri de date). Acest lucru se
ntmpl atunci cnd un master cu prioritate mare face o cerere de magistral .

Structura unui calculator

197

4.3.5. Magistrala memoriei


Magistrala memoriei este utilizat pentru transferul informa iilor ntre CPU
i memoria principal memoria RAM a sistemului. Aceast magistral este o
parte din magistrala procesorului sau, de cele mai multe ori, este implementat
separat cu un set special de cipuri care este responsabil de transferul informa iilor
ntre magistrala procesorului i memorie.
Sistemele cu frecven mare a pl cii de baz lucreaz la viteze care dep esc
uneori posibilit ile cipurilor DRAM standard. n astfel de sisteme este utilizat un set
de cipuri, controlerul memoriei, care realizeaz interfa a ntre magistrala rapid a
procesorului i memoria principal , mai lent (vezi figura 4.15). Acest set de cipuri
este n general acela i cu setul de cipuri responsabil cu gestionarea magistralei I/O.
CPU

Cache extern

Magistrala procesorului

Cipurile
controlerului
de memorie
Magistrala principal a
sistemului

Magistrala principal a
sistemului

Magistrala memoriei
RAM

Fig. 4.15. Schema de interconectare a magistralelor unui calculator.

Informa ia care circul prin magistrala memoriei este transferat la o vitez


mult mai mic dect viteza de transfer a informa iei pe magistrala procesorului.
imea magistralei de memorie este ntotdeauna egal cu cea a magistralei
procesorului. Dac procesorul are 32/64 bi i, magistrala memoriei are tot 32/64 bi i.
Procesoarele mai noi aduc o nou arhitectur a pl cii de baz , cu dou cipseturi:
northbridge i southbridge, ntre care sarcinile sunt mp ite (vezi figura 4.16 i 4.17).
Chipul northbridge, cunoscut ca Memory Controller Hub (MCH), se ocup de
comunica iile ntre CPU, memorie, grafic , interfe e i southbridge. Unele northbridgeuri con in controlere video integrate, numite Graphics and Memory Controller Hub
(GMCH). Deoarece diversele procesoare i RAM-ul necesit semnale diferite, un
northbridge va func iona doar cu una sau dou clase de CPU i cu un singur tip de RAM.

198

ARHITECTURA SISTEMELOR DE CALCUL

Fig. 4.16. Arhitectura northbridge-southbridge.

Fig. 4.17. Arhitectura northbridge-southbridge la procesoare dual-core n sisteme server.

n forma sa cea mai simpl , southbridge integreaz controlere I/O, furnizeaz


interfa a cu perifericele i magistralele i transfer date din/n northbridge, fie prin
magistrala PCI la modelele mai vechi (care creeaz efectul de gtuire bottleneck),
fie prin interconexiunea proprie (o interfa de nalt performan ), la cipurile mai
recente. Southbridge este cunoscut ca I/O Controller Hub (ICH). Spre deosebire de
northbridge, southbridge nu este conectat direct la CPU, avnd n responsabilitate
dispozitivele mai lente. Un anumit southbridge va func iona cu mai multe tipuri de
northbridge, dar aceste cipuri trebuie proiectate s lucreze mpreun .

Structura unui calculator

199

4.3.6. Magistrala de adrese


Magistrala de adrese este o parte a magistralei procesorului i a celei de
memorie. Magistrala unui sistem Pentium are 64 de linii de date, 32 linii de adrese
i cteva linii de comand . Aceste linii de adrese constituie magistrala de adrese; n
multe scheme bloc este inclus n magistrala procesorului i n cea a memoriei.
Magistrala de adrese este folosit pentru a indica adresa de memorie sau
adresa de pe magistrala sistemului care va fi utilizat n cadrul opera iei de transfer
al datelor. Magistrala de adrese indic precis locul n care va avea loc urm torul
transfer n memorie sau pe magistral . Dimensiunea magistralei de memorie
determin m rimea memoriei pe care unitatea central o poate adresa direct.

4.3.7. Magistrala I/O


Magistrala I/O permite procesorului s comunice cu dispozitivele periferice.
Magistrala i sloturile sale de extensie asociate sunt necesare pentru c nu este
posibil ca sistemele de baz s satisfac toate necesit ile tuturor celor care le
achizi ioneaz . Magistrala I/O permite ad ugarea de dispozitive calculatorului
pentru a-i extinde posibilit ile. Componentele de baz ale calculatorului, cum ar fi
controlerele de hard disk i pl cile adaptoare video, pot fi ata ate sistemului prin
intermediul sloturilor de extensie; de asemenea, se pot ata a dispozitive mai
specializate, cum ar fi adaptoarele de re ea etc.
De la apari ia primului PC, s-au introdus mai multe tipuri de magistrale I/O
(ISA, MCA, EISA etc.). mbun irea performan elor vizeaz trei domenii principale:
procesoare mai rapide;
cerin e software sporite;
cerin e video mai mari.
Fiecare dintre aceste trei cerin e impune ca magistrala I/O s fie ct mai
rapid posibil. Aproape toate sistemele PC livrate n prezent folosesc nc aceea i
arhitectur de magistral ca la modelul IBM PC/AT din 1984. Dar, cele mai multe
dintre aceste sisteme con in acum i o magistral local de mare vitez , cum este
VLBus sau PCI, care ofer un nivel de performan mai ridicat pentru adaptoarele
care solicit a a ceva. Standardizarea este una dintre caracteristicile care au
determinat succesul sistemelor PC.
Aceste tipuri de magistrale se deosebesc prin volumul datelor transferate
simultan i prin viteza cu care se realizeaz acest transfer. Arhitectura magistralei
este realizat cu un set de cipuri care este conectat la magistrala procesorului. n
general, aceste cipuri controleaz i magistrala memoriei.
4.3.7.1. Serial ATA
SATA (Serial Advanced Technology Attachment) este o magistral construit
n mod special pentru transferul de date ntre calculator i echipamente de stocare, cum
ar fi hard disk-ul sau unit ile optice. Principalele avantaje fa de vechile interfe e

200

ARHITECTURA SISTEMELOR DE CALCUL

Parallel ATA sunt transferurile de date mai rapide, abilitatea de a deconecta sau
instala echipamente n timp ce calculatorul este func ional (hot swapping), cabluri
mai sub iri care permit sistemului de r cire cu aer s func ioneze mai eficient i
opera ii mai sigure cu verific ri de integritate ale datelor mai riguroase.
Interfa a standard pentru controlerele SATA este AHCI (Advanced Host
Controller Interface), care permite s fie folosite specifica iile avansate ale SATA
cum ar fi hot plug sau NCQ (Native Command Queuing). Dac interfa a AHCI nu
este implementat pe placa de baz , controlerele SATA ruleaz ntr-un mod care
emuleaz interfa a IDE, dar n acest mod nu se pot beneficia de nici una din
caracteristicile SATA enumerate mai sus. Driver-ele native din sistemul de operare
Windows XP nu suport interfa a AHCI, n timp ce sistemul de operare Windows
Vista i versiunile curente din Mac OS ofer acest suport.
Valorile ratei de transfer a genera iilor interfe ei SATA sunt de 1,5 Gb/s i
3,0 Gb/s. Exist planuri de viitor pentru un standard de 6 Gb/s, care ar fi n
momentul de fa folositor n tandem cu multiplicatori de porturi, pentru a permite
mai multor discuri s fie conectate la un singur port SATA, mp ind l rgimea de
band a portului ntre respectivele discuri.
SATA este o arhitectur de tip punct-la-punct (point-to-point), iar
conexiunea ntre controler (H host) i echipamentele de stocare (D device,
maximum 8 porturi) este una direct (vezi figura 4.18).

Fig. 4.18. Topologia SATA.

n PC-urile actuale, controlerul SATA este de cele mai multe ori plasat pe
placa de baz sau instalat pe un slot PCI. Unele controlere SATA au mai multe
porturi SATA i pot fi astfel conectate la mai multe echipamente, acestea avnd un
identificator unic pe 64 de bi i. Exist , de asemenea, i porturi de expansiune (M)
care permit conectarea prin cabluri (C, lungime 2 m) a mai multor echipamente
(maximum 16) la un singur controler de port SATA.
Protocoalele de transmisie de mare vitez folosesc o codare de tip 8b/10b, iar
semnalul este trimis folosind algoritmul NRZ (Non Return to Zero), cu semnale de
voltaj mic, diferen iale (LVDS). n codarea de tip 8b/10b, semnalul de sincronizare
este inclus n secven a de date. Aceast tehnic este numit clock data recovery
(recuperarea ceasului cu ajutorul datelor), deoarece nu folose te un semnal de
sincronizare separat. n schimb, are nevoie de o tranzi ie de la 0 la 1 n irul de date
serial pentru a face sincronizarea.
Varianta extern la magistralei SATA se nume te eSATA (introdus n 2004).

Structura unui calculator

201

4.3.7.2. Magistrala SCSI


Small Computer System Interface (SCSI) este un standard al industriei
calculatoarelor ce are rolul de a conecta computerele cu dispozitivele periferice ca:
hard disk-uri, driverele CD-ROM, imprimante, scanere i orice alt dispozitiv care
trebuie s transfere cantit i mari de date ntr-un timp foarte scurt.
Standardul SCSI specific interfa a hardware i software la un nivel care
minimizeaz subordonarea fa de orice alt implementare hardware. Specifica ia
permite conectarea unei mari variet i de periferice la multe tipuri de calculatoare.
O magistral SCSI este un tip de magistral care se conformeaz cerin elor
fizice i electrice ale standardului SCSI standard. Un dispozitiv SCSI ( int ) se
supune oric rei unit i conectate la magistrala SCSI, fie c este vorba despre un
echipament periferic sau un calculator. Fiec rui dispozitiv SCSI i este atribuit un
ID SCSI (o valoare ntreag , care identific unic dispozitivul n timpul opera iilor).
Fazele magistralei SCSI sunt intervale de timp de-a lungul c rora, prin
conven ie, anumite semnale de control sunt permise, iar altele nu sunt. Magistrala
SCSI nu poate fi n mai mult de o faz la un anumit moment de timp.
Pentru fiecare dintre fazele magistralei, exist un set de faze permise care o
pot urma. De exemplu, faza de magistral liber poate fi urmat numai de faza de
arbitraj sau de orice alt faz de magistral liber . O faz de date poate fi urmat de
o comand , o stare, un mesaj sau de o faz de magistral liber . Semnalele de
control direc ioneaz tranzi ia de la o faz la alta. De exemplu, semnalul de resetare
invoc faza de magistral liber , n timp ce semnalul de aten ie invoc faza de mesaj.
Standardul SCSI specific opt faze distincte pentru magistrala SCSI :
1. Magistrala liber : aceast faz indic faptul c nici un dispozitiv SCSI
nu folose te magistrala i c magistrala este liber pentru orice alt opera ie SCSI.
2. Arbitrajul: aceast faz este precedat de faza de magistral liber i
permite unui dispozitiv SCSI s c tige control asupra magistralei. n timpul
acestei faze, toate dispozitivele care doresc s foloseasc magistrala i pun ID-ul
pe magistral (folosind semnalele de date). Semnalul cu cel mai mare ID c tig .
3. Selec ia: aceast faz urmeaz fazei de arbitraj. Dispozitivul care a
c tigat faza anterioar folose te aceast etap pentru a selecta un alt dispozitiv cu
care s comunice.
4. Reselec ia: aceast faz , op ional , este folosit de sisteme care permit
echipamentelor periferice s se deconecteze i s se reconecteze (de) la magistral
n timpul opera iilor ndelungate.
5. Comanda: de-a lungul acestei faze, inta cere o comand de la ini iator.
6. Datele: faza de date are loc cnd inta cere un transfer de date (de) la ini iator.
7. Starea: aceast faz are loc cnd inta cere ca informa ia de stare s fie
trimis la ini iator.
8. Mesajul: faza de mesaj are loc cnd inta cere transferul unui mesaj.
Mesajele sunt mici blocuri de date care transport informa ia sau cererea ntre
ini iator i int . n aceast faz , pot fi trimise mesaje multiple.
mpreun , ultimele patru faze (comand , date, stare, mesaj) sunt cunoscute
ca fazele de transfer al informa iei.

202

ARHITECTURA SISTEMELOR DE CALCUL

Fig. 4.19. Fazele magistralei SCSI i tranzac iile permise.

Figura 4.19 arat leg tura dintre fazele magistralei SCSI.


Varianta serial a magistralei SCSI se nume te Serial Attached SCSI (SAS),
care este un protocol de tip punct-la-punct (cu vitez de transfer de 6 Gb/s n 2009).

4.3.8. Magistrala local


Magistralele I/O prezentate au o latur comun : viteza relativ sc zut . n
timp ce viteza magistralei procesorului a crescut, magistrala I/O a cunoscut doar
ajust ri ale vitezei nominale, n principal prin cre terea l imii de band .
Solu iile bazate pe magistrala local nu nlocuiesc standardele existente, ci
sunt proiectate pentru a le mbun i. De aceea, un sistem uzual este bazat pe
standardele I/O i, n acela i timp, este dotat cu unul sau mai mul i conectori Local
Bus. Un exemplu de magistral local la Intel 80486 este VLBus (VESA Local Bus).
4.3.8.1. Magistrala PCI
Magistrala PCI (Peripheral Component Interconnect) este numit adesea i
magistral mezanin, oarece ea adaug un alt nivel configura iei de magistral .
PCI ocole te magistrala standard I/O, folosind magistrala sistemului (pentru a
cre te viteza ceasului) i toate avantajele c ilor de date (vezi figura 4.20).
La magistrala PCI standard, informa iile se transfer la 33 MHz, utiliznd
toat l imea cuvntului. L rgimea de band este de 132 MB/s. Cnd magistrala
este folosit cu o unitate CPU pe 64 bi i, l rgimea de band se dubleaz , aceasta
nsemnnd c datele se pot transfera la viteze de pn la 264 MB/s. n realitate,
vitezele de transfer ale datelor vor fi n mod necesar mai mici, dar ele r mn n
continuare mult mai mari dect la orice alt variant anterioar .
Una dintre cauzele acestui transfer mai rapid este faptul c magistrala PCI
lucreaz n paralel cu magistrala procesorului, f
s o nlocuiasc . Unitatea CPU
poate procesa date n memoria cache extern , n timp ce magistrala PCI este
ocupat cu transferarea informa iilor ntre alte elemente ale sistemului, ceea ce
constituie un avantaj major al magistralei PCI.

Structura unui calculator

203

Fig. 4.20. Schema de principiu a magistralei PCI.

Activitatea magistralei se manifest sub forma unor transferuri ntre un


ini iator (master) i o int (slave). Dup ce un master a ob inut controlul
magistralei, determin tipul transferului care va urma. n timpul fazei de adresare
liniile C/BE informeaz despre tipul ciclului de magistral .
Ciclurile de magistral sunt:
1. Acceptare ntrerupere. Este un ciclu de citire conceput pentru dispozitivele
care func ioneaz cu rol de controler de ntreruperi PCI. Liniile de adres nu sunt
folosite n faza de adresare, iar n faza de date este indicat vectorul de ntrerupere.
2. Ciclu special. Este folosit de ini iator pentru a emite mesaje c tre una sau
mai multe inte.
3. Citire I/O. Este un ciclu de transfer de date ntre ini iator i un dispozitiv
I/O. Fiecare dispozitiv I/ O are alocat un spa iu propriu de adresare.
4. Scriere I/O.
5. Citire din memorie. Citirile din memorie se pot executa n salv , pe
blocuri, func ie de modul n care controlerul de memorie gestioneaz transferurile
ntre memorie i cache. Se cite te o jum tate de linie de cache sau mai pu in, n
salv fiind unul sau dou cicluri de citire.
6. Citire o linie din memorie. Se cite te mai mult de o jum tate de linie de
cache, dar mai pu in de trei linii, n salv fiind ntre 3 i 12 cicluri de citire.
7. Citire multipl din memorie. Se citesc mai mult de 3 linii de cache, n
salv fiind mai mult de 12 cicluri de citire.
8. Scriere n memorie

204

ARHITECTURA SISTEMELOR DE CALCUL

9. Scriere n memorie i invalidare. Scrierea se poate face, de asemenea, n


salv . Se respect modul Write Back pentru scrierea din cache n memorie.
10. Citire configura ie. Fiecare dispozitiv PCI include un set de 256 de
registre interne, care se folosesc n faza de configurare. n acest tip de ciclu,
dispozitivul master poate citi registrele de configurare.
11. Scriere configura ie. n acest tip de ciclu, dispozitivul master poate
modifica registrele de configurare.
12. Ciclu de adresare dual. Este folosit de ini iator pentru a ar ta c apare o
adresare pe 64 de bi i.
Orice transfer de date pe magistrala PCI const ntr-o faz de adresare i una
sau mai multe faze de date. n figura 4.21 este reprezentat un transfer de citire.

Fig. 4.21. Fazele unui transfer de citire pe magistrala PCI.

Linii implicate n acest transfer sunt:


CLK tactul de magistral PCI, 33MHz-133MHz;
AD liniile multiplexate pentru adrese i date;
C/BE liniile multiplexate pentru comenzi de magistral sau Byte Enable. n
timpul fazei de date, arat care din cei 4 octe i de date poart date semnificative;
FRAME semnalul generat de ini iatorul curent, pentru a indica startul unui
transfer. Este dezactivat cnd ini iatorul ncepe faza final de date.
IRDY ini iator preg tit, generat de masterul curent. La citire, indic faptul c
masterul este gata s accepte date, iar, la scriere, c pe AD sunt prezente date valide.
TRDY int preg tit , generat de modulul selectat ( int ). La citire, pe AD
sunt prezente date valide, iar la scriere indic faptul c inta este gata s accepte date.
DEVSEL semnalul activat de int cnd i recunoa te adresa.
Func ionarea este urm toarea:

Structura unui calculator

205

1. De ndat ce masterul are controlul magistralei, poate ncepe transferul


activnd FRAME. Linia r mne activ pn ini iatorul termin ultima faz de date.
Ini iatorul pune adresa pe AD i comanda de citire pe liniile C/BE.
2.
inta i recunoa te adresa pe liniile AD.
3. Ini iatorul cedeaz magistrala intei (ncepnd cu tactul 3). Ini iatorul
schimb informa ia pe liniile C/BE, pentru a indica pe care dintre liniile AD se vor
transmite datele de la int (1 pn la 4 octe i).
4.
inta selectat activeaz DEVSEL, pentru a semnaliza c a recunoscut
adresa, apoi pune datele pe liniile AD (primul octet) i activeaz TRDY.
5.
inta are nevoie de timp pentru a preg ti urm torul octet de date.
6.
inta dezactiveaz TRDY, pentru a informa ini iatorul c pe urm torul
tact nu vor exista date valide. Ca urmare, ini iatorul nu va citi datele la nceputul
tactului 5, ci la nceputul tactului 6. S-a inserat astfel o stare de WAIT.
7. Dup tactul 6, inta pune pe magistral al treilea octet de date. Se
presupune de data aceasta c ini iatorul nu este gata s preia datele (are, de
exemplu, buffer-ul plin). Ini iatorul dezactiveaz IRDY, ceea ce are ca efect
men inerea datelor de c tre int un tact suplimentar (datele nu se citesc la
nceputul tactului 7, ci la nceputul tactului 8).
8. Ini iatorul dezactiveaz semnalul FRAME i activeaz semnalul IRDY,
pentru a semnala c este gata s finalizeze transferul.
9. Ini iatorul dezactiveaz IRDY, permi nd magistralei s treac n starea ini ial .
inta a detectat dezactivarea semnalului FRAME i dezactiveaz TRDY i DEVSEL.
4.3.8.2. Magistrala AGP
AGP (Accelerated Graphics Port) este o magistral dedicat comunic rii cu
display-ul, accesibil prin intermediul unui slot special, aflat pe placa de baz , n care
se monteaz placa grafic . AGP a fost introdus pentru a degreva magistrala PCI de
comunica ia cu display-ul i pentru a m ri banda transferurilor de date c tre acesta.
AGP a fost ap rut n 1997, odat cu procesorul Pentium II i cipsetul
62440LX. Acest cipset, primul care a implementat controlul comunica iei pe AGP,
intermedia transferul de date ntre procesorul Pentium II, aflat mpreun cu
memoria cache L2 n modulul SECC (Single Edge Contact Cartridge), memoria
principal , magistrala PCI i placa grafic montat n slotul AGP (vezi figura 4.22).
AGP d pl cii grafice posibilitatea de a accesa direct memoria principal ,
printr-o procedur numit DIME (Direct Memory Execute). Cu DIME, adresarea
memoriei se face n pipeline, mod care const n a lansa mai multe cereri pe durata
unui acces la memorie (spre deosebire de PCI, care lanseaz o nou cerere numai
cnd cea anterioar a fost satisf cut ). Cererile formeaz o coad de a teptare,
printr-un proces denumit SBA (Sideband Addressing).
Magistrala AGP are la baz standardul PCI versiunea 2.1. AGP are 32 de linii
i lucreaz la 66 MHz, spre deosebire de PCI, a c rei frecven este de 33 MHz.
Banda primei magistrale AGP era de 264 MB/s (dubl fa de PCI). Ulterior, au
ap rut pl ci grafice care suportau transferul de date pe ambele fronturi ale semnalului
de ceas (2-mode transfer) i banda s-a dublat ajungnd la 528 MB/s (AGP 2).

206

ARHITECTURA SISTEMELOR DE CALCUL

Fig. 4.22. Configura ia magistralelor la PC-urile cu procesor Pentium II.

Versiunea AGP 2.0, cunoscut i ca AGP 4, define te un nou mod de


transfer 4x-mode transfer constnd n patru transferuri de date pe o perioad de
ceas, banda fiind de 1,066 GB/s. O nou versiune, lansat n 2001, AGP 8,
dubleaz nc o dat banda de transfer, care dep
te, astfel, valoarea de 2 GB/s.
4.3.9. Magistrala serial
4.3.9.1. Magistrala USB
Acest tip de magistral a ap rut n toamna anului 1995. La crearea lui au
contribuit mai multe firme de renume, cum ar fi DEC, Compaq, IBM, NEC,
Northern Telecom. Odat cu apari ia USB, dispare multitudinea de cabluri i
conectori necesar conect rii diverselor periferice: tastatur , mouse, imprimant ,
joystick, scaner sau modem extern. n partea din spate a calculatorului exist un
singur conector de la care pornesc datele spre tastatur , periferice i monitor.
Aceste aparate func ioneaz ca distribuitori (hub) pentru alte aparate. De asemenea,
calculatorul preia rolul de gazd (host), gestionnd diversele comunica ii.
Magistrala USB este dirijat exclusiv de calculatorul gazd .
Practic, la aceast magistral poate fi conectat orice periferic echipat cu un
controler USB, dar, datorit ratei de transfer de 12 Mb/s, sunt vizate n primul rnd
echipamentele audio-video, telefonia digital , modemurile, tastaturile, tabletele
digitizoare, unit ile CD i DVD, unit ile HDD externe etc.
Dup cum s-a ar tat n paragraful 3.4.4.1, un host USB comunic cu
dispozitivele conectate prin intermediul unor canale logice (pipes), care au ni te
terminale logice pe dispozitive numite endpoints.

Structura unui calculator

207

Pipe-urile se mpart n patru categorii, dup tipurile de transfer folosite:


modul control folosit, de obicei, pentru comenzi simple c tre
dispozitive, primind ca r spuns starea dispozitivului periferic la un
moment dat (de exemplu, pipe-urile de management 0);
modul izocron garanteaz o vitez (nu neap rat cea maxim ), dar cu
posibilit i de a pierde date (de exemplu, aplica ii audio-video n timp real);
modul ntrerupere pentru periferice care au nevoie de r spuns rapid
(cu laten e limitate) (de exemplu, mouse, tastatur etc.);
modul bulk transferuri mari i lungi de date, folosind toat banda
liber , f a garanta banda (de exemplu, transferuri de fi iere).
Cnd un dispozitiv periferic este activ, ata at host-ului, acesta prime te o
adres de 7 bi i de la host. Host-ul interogheaz dispozitivele pentru trafic, astfel
nct nici un dispozitiv nu poate transfera date pe magistral f
a face o cerere
tre host. ntreruperile efectuate asupra endpoint-urilor corespunz toare nu ntrerup
practic traficul de date, ci sunt programate doar pentru a fi interogate mai des de
tre host, primind o prioritate mai mare.
Accesarea unui endpoint se face printr-o configura ie ierarhic . Un dispozitiv
conectat la magistral are un descriptor de dispozitiv (device descriptor), care, la
rndul s u, are mai mul i descriptori de configura ie (configuration descriptors).
Configura iile corespund, de obicei, cu starea la un moment dat (de exemplu, activ
sau n mod putere sc zut low power). Fiecare descriptor de configura ie are, la
rndul s u, un descriptor de interfa (interface descriptor), care descrie diferite
func ionalit i ale dispozitivului, n func ie de tipul acestuia (de exemplu, o camer
video poate avea descriptor de interfa video i descriptor de interfa audio).
Structura ierarhic este prezentat n figura 4.23.

Fig. 4.23. Structura ierarhic a descriptorilor USB.

208

ARHITECTURA SISTEMELOR DE CALCUL

Fiecare descriptor de interfa are ni te set ri implicite i este posibil s aib


set ri alternative de interfa (alternate interface settings), care, la rndul lor, au
descriptori de enpoint-uri (endpoint descriptors). Un endpoint poate fi totu i folosit
pentru mai multe interfe e sau set ri alternative de interfe e.
Hub-urile sunt elemente cheie n arhitectura plugnplay a USB, u urnd
conectivitatea din punct de vedere al utilizatorului i asigurnd o robuste e mai
mare. Punctele de conexiune ale hub-urilor se numesc porturi. Un hub are un port
upstream i mai multe porturi downstream (vezi figura 4.24). Portul upstream
conecteaz hub-ul cu gazda (host) sau cu un hub mai apropiat de gazd . Portul
downstream conecteaz hub-ul cu alt hub sau cu un dispozitiv func ional. Hub-ul
poate detecta conectarea i deconectarea dispozitivelor la fiecare port downstream
i permite alimentarea cu energie a dispozitivelor din aval.

Fig. 4.24. Structura unui hub USB.

Un hub USB 2. 0 se compune din trei por iuni:


controlerul hub-ului: este un comutator controlat de protocol ntre portul
upstream i porturile downstream, care are suport hardware pentru reset
i semnalizare suspend/resume;
repetorul hub;
translatorul de tranzac ii: asigur mecanismul de vitez medie/mic n
aval de hub, n timp ce n amonte transmisia se face la vitez mare.
Calculatorul (host) i aparatul (hub) sunt mp ite n niveluri (layer)
distincte. S ge ile verticale indic starea actual de comunica ie la gazd . Interfa a
corespunz toare a aparatului are o implementare specific . Toate comunica iile
dintre gazd i aparat au loc prin cablul fizic USB. Exist interfe e gazd -aparat la
fiecare nivel orizontal. Comunica ia ntre clientul de in tor al software-ului i
func iile provenite de la aparat sunt reglementate de un contract bazat pe nevoia
aplica iei curente de a folosi aparatul i posibilit ile oferite. Aceast interac iune
client-func ie creeaz cereri pentru toate nivelurile i interfe ele lor.
Nivelul gazdei pune la dispozi ie urm toarele posibilit i:
detectarea ata rii sau deconect rii unui aparat USB;
managementul fluxului standard de control ntre gazd i aparat;
managementul fluxului de date ntre gazd i aparat;
colectarea informa iei statistice de stare a activit ii;
controlul electric al interfe elor ntre controlerul gazd i aparatul USB.

Structura unui calculator

209

Fig. 4.25. Arhitectura stratificat a comunica iei USB.

Fluxul de date de baz i rela iile dintre modulele USB sunt prezentate n
figura 4.25, iar comunica ia ntre calculator (host) i aparate (hub) se face pe baza
unui protocol descris n figura 4.26.
Cmp de
sincronizare
(8 bi i)

Identificator al
pachetului
(8 bi i)

Date
(0 1032 octe i)

Control
erori CRC
(16 bi i)

Fig. 4.26. Structura pachetului de date.

Controlul erorilor este realizat cu ajutorul unui cod redundant ciclic, CRC
(Cyclic Redundancy Code), care asigur transmisia corect a informa iei.
Mecanismul CRC asigur o rat de eroare a transmisiei de un bit eronat la 10
miliarde. Dup terminarea transferului de date, are loc confirmarea transmisiei
datelor i verificarea corectitudinii transmisiei lor (handshake).
Datorit modulelor soft plugnplay, la conectarea fizic a unui periferic la
computer, acesta este autodetectat, iar datorit unor registre interne ale perifericului
(care furnizeaz sistemului de operare informa ia necesar ) sunt nc rcate exact
driver-ele necesare func ion rii acestuia, care poate fi i dezinstalat cnd se
hot
te ndep rtarea perifericului respectiv din configura ie.
Dup instalarea driver-ului aferent, acesta face o cerere de alocare de band .
Banda se aloc n mod dinamic, n func ie de necesit ile fiec rui periferic.
Informa iile se transfer sincron sau asincron pe magistral , n format de pachete.

210

ARHITECTURA SISTEMELOR DE CALCUL

4.3.9.2. Magistrala FireWire (standardul IEEE 1394)


Aceast magistral a fost creat n 1986 de c tre firma Apple i a fost
adoptat ca standard n 1994. n prezent ea este sprijinit de numeroase firme cum
ar fi Adaptec, AMD, Cirrus Logic, Compaq, HP, Hitachi, Matsushita, IBM,
Maxtor, Microsoft, NEC, Philips, Sun, Sony, Texas Instruments.
Magistrala FireWire este de fapt o interfa serial de mare vitez : ea permite
rate de transfer de 400 Mb/s 1 Gb/s. Este v zut ca magistrala viitorului, pentru
conectarea tuturor echipamentelor electrocasnice: TV, DVD, scanner, camer web, PC.
Acest tip de magistral a ap rut datorit cerin elor tot mai mari n ceea ce
prive te calitatea transmisiei audio-video, dar i din necesitatea interconect rii
tuturor echipamentelor electrocasnice. Cu ajutorul unui suport software adecvat se
poate crea un nou tip de aplica ii multimedia: conferin e de calitate full-motion,
jocuri i multimedia de calitate cinematografic , video-mail, editare video etc.
Toate transmisiile de date FireWire sunt de tip pachet i pot fi clasificate n
dou categorii: asincrone i isocrone, magistrala fiind de tip tranzac ional.
Transmisiile asincrone sunt garantate la recep ie i au nevoie de un semnal
de confirmare de la receptor. Ele sunt transmisiuni unipunctuale (unicast).
Transmisiile isocrone sunt garantate n timp, cu o l rgime de band specific ,
rezervat pentru ele n magistrala serial . Pn la 80% din banda magistralei poate fi
alocat pentru transmisiile isocrone. L rgimea de band este alocat n intervale de
125s, numite cicluri. Transmisiile isocrone au o natur multipunctual (multicast),
fiind adresate unuia sau mai multor noduri, pe baza unui num r de canal. FireWire
suport i un alt tip de transmisii, numite fluxuri asincrone (asyncronous streaming).
Acestea pot fi unipunctuale sau multipunctuale. Pachetele de date FireWire au
dimensiune variabil . Dimensiunea maxim a nc rc turii de date depinde de tipul
de transmisiune i l rgimea de band a magistralei FireWire (1001000 Mb/s).
Figurile 4.27 i 4.28 reprezint formate de pachete FireWire isocrone i,
respectiv, asincrone. Fluxurile asincrone i pachetele isocrone au acela i format.

Fig. 4.27. Formatul pachetelor isocrone i a fluxurilor asincrone FireWire.

Structura unui calculator

211

Semnifica ia nota iilor din figura 4.27 este urm toarea:


tag formatul datelor (specific protocolului);
channel adresa de canal;
tcode codul tranzac iei (asincron, isocron, pachet de date, de control etc.);
sy codul de sincronizare (specific aplica iei).

Fig. 4.28. Formatul pachetelor asincrone FireWire.

Semnifica ia nota iilor din figura 4.28 este urm toarea:


destination id include 6 bi i pentru ID-ul nodului (63 de noduri) i 10 bi i
pentru ID-ul magistralei (1024 magistrale);
tcode tipul tranzac iei;
pri prioritate (cmp neutilizat);
destination offset loca ia de adres din interiorul nodului int (target);
celelalte cmpuri depind de tipul protocolului.
Arhitectura FireWire este constituit ca o stiv cu un protocol de patru
nivele. Nivelul fizic determin arbitrajul magistralei, define te semnalele electrice
pentru transmisia de date i interfa a mecanic pentru cabluri i conectori. Nivelul
de conexiuni asigur adresa i decodificarea num rului de canal, precum i
generarea CRC-ului i verificarea pachetelor de date transmise i recep ionate.
Nivelul de tranzac ii asigur servicii de interogare-r spuns pentru transmisiile
asincrone. Transmisiile isocrone opereaz independent fa a de acest nivel. Nivelul
de gestiune a magistralei asigur suportul pentru diferite activit i de gestiune i
configurare a magistralei.

212

ARHITECTURA SISTEMELOR DE CALCUL

FireWire necesit trei noduri primare pentru gestionarea magistralei la o


operare normal . Acestea sunt: cycle master, IRM (Isochonous Resource Manager)
i BM (Bus Manager), conform figurii 4.29.

Fig. 4.29. Structura stratificat a protocolului FireWire.

Cycle master genereaz i transmite pachete de ini ializare ciclice la fiecare


125 s. Un pachet de ini ializare ciclic reprezint nceputul intervalului periodic de
125 s. Nodul r cin joac rolul de cycle master.
IRM gestioneaz l rgimea de band a magistralei de date seriale isocrone i
aloc numerele de canale generate multinodal.
BM gestioneaz distribu ia de putere pe cabluri i afi eaz harta topologic
i diagrama de vitez pentru magistrala serial . Diagrama de vitez este necesar
deoarece FireWire poate suporta noduri/cabluri de l rgimi de band diferite ntr-o
singur re ea. n general, toate nodurile sunt capabile s efectueze activit ile de
gestionare a magistralei. Totu i, nodurile opera ionale de gestionare a magistralei
sunt cele alese n etapa configur rii magistralei.
FireWire utilizeaz un mecanism de arbitraj cerere/acceptare pentru
controlul accesului n re eaua shared-medium. O schem de arbitraj simpl
func ioneaz dup cum urmeaz :
nodurile care doresc s transmit un pachet cer permisiunea de la
managerul de magistral ;
managerul selecteaz cererea optim , bazat pe anumite criterii, i emite
un semnal de acceptare pentru nodul corespunz tor;
numai nodul acceptat i transmite pachetul de date, celelalte noduri
continund s cear permisiunea pn cnd o primesc de la manager.

Structura unui calculator

213

4.3.9.3. Magistrala I2C


Magistrala I2C (Inter-Integrated Circuits) a fost dezvoltat de firma Philips
pentru comunica ia ntre diferite microcontrolere i controlere I/O. Este o
magistral bidirec ional simpl , care utilizeaz dou fire, unul pentru datele
seriale, SDA (Serial Data), i unul pentru ceasul serial, SCL (Serial Clock), dup
cum arat n figura 4.30. Exist un mare num r de circuite integrate compatibile cu
magistrala I2C, care a devenit un standard industrial pentru magistralele de control.

Fig. 4.30. Circuite conectate printr-o magistral I2C.

Fiecare dispozitiv conectat la magistral este recunoscut printr-o adres


unic i poate func iona fie ca receptor (de exemplu, un afi aj cu cristale lichide),
fie ca transmi tor i receptor (de exemplu, o memorie). Transmi toarele i
receptoarele pot func iona n modul master sau n modul slave, dup cum acestea
pot ini ia un transfer de date sau sunt doar adresate. Un dispozitiv master poate
transmite/recep iona semnale la sau de la un dispozitiv slave sau poate controla
transferurile ntre dou dispozitive slave, dintre care unul este transmi tor, iar
cel lalt este receptor. Pot exista mai multe dispozitive master pe magistral . n
cazul n care mai multe dispozitive master ncearc simultan s controleze
magistrala, o procedur de arbitraj decide care din dispozitive este prioritar.
n sistemele cu mai multe dispozitive master, n cazul n care mai multe
asemenea dispozitive doresc accesul la magistral , are loc o procedur de arbitraj.
Dac un dispozitiv master transmite un semnal 1 logic pe linia de date, iar un alt
dispozitiv master transmite un semnal 0 logic, acesta din urm va prelua
magistrala, iar primul dispozitiv master va elibera magistrala. Acest arbitraj poate
continua pe durata mai multor bi i. Pentru arbitraj, se utilizeaz bi ii de adres i cei
de date.
Mai recent, n versiunea 2.1 a specifica iilor magistralei, a fost inclus
facilitatea de deplasare a nivelelor de tensiune (level shifting), care permite
conectarea la magistral a dispozitivelor care func ioneaz cu tensiuni de
alimentare diferite, de exemplu, la 5 V i 3,3 V. De asemenea, specifica iile au fost
extinse pentru dispozitivele care func ioneaz la tensiuni de sub 2,7 V. A fost
ad ugat un mod de transfer de vitez ridicat (high speed), care asigur rate de
transfer de pn la 3,4 Mbit/s i permite conectarea unor memorii EEPROM. Cu
ajutorul unei pun i (bridge), se asigur comunica ia bidirec ional cu dispozitivele
care utilizeaz modul de transfer rapid sau cel standard.

214

ARHITECTURA SISTEMELOR DE CALCUL

4.3.9.4. Magistrala Fibre Channel


Cre terea performan elor sta iilor de lucru, a procesoarelor i a perifericelor,
ca i cre terea ponderii arhitecturilor distribuite de tip client/server, au ridicat
cerin ele pentru aplica iile cu rate de transfer ridicate. Interconexiunile dintre aceste
sisteme i dispozitivele I/O necesit un nou nivel al performan elor n ceea ce
prive te fiabilitatea, viteza i distan a. Fibre Channel reprezint o tehnologie de
interconectare cu fiabilitate ridicat , care permite comunica ii concurente ntre sta ii de
lucru, servere, sisteme de stocare a datelor i alte periferice care utilizeaz protocoale
ca SCSI, IP, HPPI-FP sau audio-video. Aceast tehnologie asigur interconectarea
pentru topologii multiple cu o rat de transfer total scalabil pn la 1 Tbit/s.
Fibre Channel reprezint un standard pentru un canal de comunica ie care
dispune de facilit i de re ea i asigur astfel conectivitatea i distan a necesar ,
permi nd utilizarea diferitelor protocoale de comunica ie. De asemenea, Fibre
Channel are caracteristicile unui canal de comunica ie tradi ional, cu avantajele
simplit ii, a performan elor repetabile i a furniz rii garantate a datelor.
n termenii arhitecturii Fibre Channel, comutatorul care leag dispozitivele este
o re ea de tip fabric. Leg tura este reprezentat de dou fibre unidirec ionale
transmi nd n sensuri opuse fa de emi torul i receptorul asociate acestora. Fiecare
fibr este ata at unui emi tor al unui port la unul dintre terminale i unui receptor al
altui port la cel lalt terminal. Dac re eaua de tip fabric este prezent n configura ie,
fibra poate fi ata at unui port al unui nod (N_Port) i unui port al re elei (F_Port).
Deoarece sistemul de canale se bazeaz pe porturi comunicnd ntre ele i cu
re eaua de tip fabric, nu este esen ial dac re eaua este un comutator de circuit, un
hub activ sau o bucl . Topologia poate fi selectat n func ie de cerin ele de
performan ale sistemului sau de op iunile de pachete. Topologiile posibile ale
magistralei Fibre Channel (vezi figura 4.31) sunt cele de tip punct-la-punct (jos),
crosspoint cu comutare (stnga) sau bucl arbitrat (dreapta).

Fig. 4.31. Topologii Fibre Channel.

Structura unui calculator

215

Arhitectura Fibre Channel reprezint , a adar, integrarea unei re ele cu o


interconexiune inteligent ntre dispozitive. Magistrala Fibre Channel opereaz la o
mare varietate de viteze (133 Mbit/s, 266 Mbit/s, 530 Mbit/s, 1 Gbit/s) i pe trei
tipuri de medii electrice i optice. Distan ele de transmisiune variaz n func ie de
combina iile ntre vitez i mediu. Mediul optic de fibre unimodale utiliznd surse
de lumin laser cu lungime de und mare ofer cea mai nalt performan (distan a
maxim de 10 km la 1 Gbit/s).
4.3.9.5. Magistrala InfiniBand
Arhitectura InfiniBand rezolv limit rile de l rgime de band i suprasarcin
ale magistralei PCI prin trecerea de la tradi ionala arhitectur partajat a magistralei
la o arhitectur cu comutare de re ea de tip fabric (switched fabric architecture).
Figura 4.32 ilustreaz cea mai simpl configura ie a unui sistem InfiniBand, n care
dou sau mai multe noduri sunt conectate prin re eaua InfiniBand Fabric. Un nod
reprezint fie un dispozitiv gazd (server), fie un dispozitiv I/O (subsistem RAID).
Re eaua InfiniBand Fabric poate consta dintr-un singur comutator (n cel mai
simplu caz) sau dintr-un set de comutatoare interconectate i router-e.

Fig. 4.32. Arhitectura InfiniBand Fabric.

Fiecare conexiune dintre noduri, comutatoare i router-e este o leg tur


serial , punct-la-punct. Aceast deosebire esen ial aduce anumite beneficii:
1. Fiind o conexiune serial , necesit doar patru leg turi, fa de
conexiunea deosebit de complex a magistralei PCI.
2. Natura punct-la-punct a conexiunii ofer capacitatea maxim a leg turii
ntre dou puncte, fiind dedicat celor dou puncte finale. Astfel, se elimin
concuren a la magistral , precum i ntrzierea rezultat n condi iile unei
suprasarcini n arhitectura magistralei partajate.
3. Canalul InfiniBand este proiectat pentru conexiuni ntre gazde i
dispozitive I/O n cadrul unui centru de date (Data Centre). Datorit lungimii bine
definite i relativ scurte a conexiunilor, poate fi atins o l rgime de band mult mai
mare dect n cazurile n care este nevoie de lungimi mult mai mari.
Specifica iile InfiniBand definesc l rgimea de band brut a conexiunii de
baz 1 la 2,5 Gb/s i specific dou l rgimi de band adi ionale, referite ca 4 i
12, ca multipli ai ratei pentru leg tura de baz .

216

ARHITECTURA SISTEMELOR DE CALCUL

4.3.9.6. Magistrala PCI Express


Necesitatea schimb rii magistralei a ap rut ca o cerin fireasc , avnd n
vedere c vechiul PCI, cu limita sa de vitez de transfer de 133 MB/s, nu mai putea
face fa necesit ilor actuale ale calculatoarelor. Chiar i portul AGP 8, cu viteza
sa teoretic maxim de 2 GB/s nu face fa noilor cipuri video ap rute. n aceste
condi ii, o grupare a liderilor n domeniu, numit PCI-SIG (Intel, NVidia, Dell etc.)
au lucrat la dezvoltarea magistralei PCI Express, cu scopul de a nlocui PCI i AGP.
Tehnologia din n spatele magistralei PCI Express nu este complet nou .
Cunoscut sub numele Arapahoe sau 3GIO, a fost ratificat ca standard n aprilie
2002. Aceast magistral a fost gndit pentru a prelua munca pentru urm torii 10 ani,
deci nu este vorba despre un standard de tranzi ie. Din punct de vedere tehnic, PCI
Express este o magistral serial bidirec ional (cu versiunile 1.0, 2.0 i 3.0), care
transfer informa iile sub form de pachete, aproape la fel cu o conexiune Ethernet.
Arhitectura PCI Express
Fiecare dintre cele dou conexiuni unidirec ionale n parte poate transporta
2,5 Gbit/s. Un semnal de tact poate fi integrat n transferuri, pentru a regla viteza de
transfer. Arhitectura acestei genera ii de magistral se bazeaz pe straturi (layer),
ca i cele utilizate de protocolului TCP/IP (vezi figura 4.33).

Fig. 4.33. Arhitectura PCI Express.

Nivelul fizic define te specifica ii electrice, mecanice, procedurale i


func ionale pentru activarea, men inerea i dezactivarea leg turilor fizice ntre
sisteme i este alc tuit dintr-o interfa serial de mare vitez , numit Low-Voltage
Differential Signaling (LVDS), pentru a transfera 2,5 GHz. Cuprinde componentele
fizice necesare pentru a configura i men ine conexiunile. Include mecanisme
pentru preg tirea conexiunii, citirea semnalelor, codarea 8b/10b, crearea de frame-uri
& pachete i transmiterea datelor pe conexiune.

Structura unui calculator

217

Nivelul leg turilor de date este responsabil cu transmiterea corect a


datelor printr-o leg tur fizic existent , ntre dou puncte conectate direct prin
aceast leg tur fizic . Nivelul fizic nu poate realiza acest lucru, deoarece aici nu
se opereaz cu de date, ci numai cu bi i i, mai exact, cu reprezentarea fizic a
acestora (niveluri de tensiune, intensitate a luminii etc.). Nivelul leg turilor de date
se ocup cu adresarea fizic , topologia re elei, accesul la re ea, detec ia &
anun area erorilor (CRC pe 32 de bi i) i controlul fluxului fizic (flow control);
Nivelul transport este responsabil cu crearea pachetelor care vor fi
expediate i cu citirea pachetelor primite. Se ocup cu controlul fluxului de date i
cu managementul puterii consumate. Acest nivel ofer un serviciu de transport de
date izoleaz nivelurile superioare de orice specificit i legate de modul n care este
executat transportul datelor. Are un caracter redundant, realizat de ECRC (End-toend Cycling Redundancy Check), mecanism pe 32 bi i cu rolul de a asigura
transportul ntre dou sta ii separate de una sau mai multe entit i. De i toate
tranzac iile PCI Express sunt separate, unele nu necesit r spuns (avantaj).
Nivelul software (aplica ie) este situat cel mai aproape de utilizator, oferind
servicii de re ea aplica iilor utilizator. Nivelul aplica ie stabile te disponibilitatea
unui calculator cu care se dore te ini ierea unei conexiuni, stabile te procedurile
care vor fi urmate n cazul unor erori i verific integritatea datelor.
PCI Express vs PCI
rgimea de band disponibil ntre dou puncte nu este partajat , astfel
nct, att la un singur periferic PCI Express ct i la trei, fiecare are la dispozi ie
aceea i l rgime de band . La nivelul cipsetului, magistrala PCI Express este
gestionat de un switch care gestioneaz conexiunile punct-la-punct, nainte de a
interac iona cu restul sistemului (vezi figura 4.34).

Fig. 4.34. Topologia de magistral partajat la PCI i topologia punct la punct la PCI Express.

Observa ie. n cazul PCI Express, fiecare dispozitiv are o cale direct i
exclusiv c tre switch. Switch-ul analizeaz datele n func ie de prioritatea aplica iilor.
rgimea mare de band reprezint o alt noutate adus de PCI Express. O
singur cale este capabil s transmit 250 MB/s n fiecare direc ie simultan (500
MB/s pentru ambele direc ii). PCI Express este alc tuit din dou c i, a adar, poate
transmite 500 Mb/s pentru o singura direc ie i 1000 MB/s pentru ambele direc ii.
PCI Express n variantele 4, 8, 16 nu se fabric pentru calculatoarele desktop,
ci pentru servere, iar PCI Express 16 este creat pentru a nlocui slotul VGA 8x.

218

ARHITECTURA SISTEMELOR DE CALCUL

Din punct de vedere al compatibilit ii, produc torii au gndit PCI Express
pentru a r mne compatibil din punct de vedere software cu toate sistemele de
operare i programele actuale. Cu alte cuvinte, nu este nevoie de un update
software pentru a putea beneficia de avantajele aduse de PCI Express. Un alt lucru
important este c PCI Express r mne compatibil cu pl cile PCI actuale nu ofer
suport simultan pentru AGP i PCI Express, din cauza constrngerilor. Deci,
adoptnd o platform cu PCI Express, trebuie nlocuit vechea plac video.
n plus, PCI Express diminueaz consumul de energie cnd slotul nu este activ,
ofer suport pentru traficul n timp real, ncorporeaz func iile hot plug i hot swap,
furnizeaz performan e scalabile i caracteristici avansate, QoS (Quality of Service).
Comparativ cu PCI, PCI Express are semnale de leg tur minime, iar ceasul
i adresarea informa iei sunt incluse n date. Figura 4.35 compar l rgimea de
band per pin la PCI, PCI-X, AGP8 i PCI Express.

Fig. 4.35. Compara ie a l rgimilor de band .

Exemple de arhitecturi PCI Express


Nenum ra i factori duc la alegerea cardurilor PCI Express n func ie de
necesit ile clientului, serverului sau a platformei portabile:
carduri standard i cu profil mic: desktop, sta ii de lucru i servere;
minicarduri: calculatoare portabile;
ExpressCard: calculatoare portabile i desktop;
Server I/O Module (SIOM).
Figura 4.36 exemplific implementarea PCI Express ntr-un sistem client. Ini ial,
conexiunea PCI Express 16 nlocuie te slotul AGP dintre subsistemele grafice i
northbridge. O variant de PCI Express poate nlocui conexiunea dintre northbridge i
southbridge, rezolvnd incompatibilit ile dintre componente i nothbridge.
Figura 4.37 exemplific structura unui sistem portabil. La fel ca la sistemele
desktop, PCI Express nlocuie te placa AGP, fiind o alternativ la conexiunea
dintre nothbridge i southbridge. Magistrala PCI dintre northbridge i sta ia de
lucru poate migra, de asemenea, spre PCI Express. Un slot ExpressCard 1 care
folose te o conexiune USB 2.0 poate nlocui cardul PC.
Figura 4.38 exemplific modul n care poate fi implementat PCI Express
ntr-o arhitectur de server dual-core. PCI Express face leg tura dintre componente
i sloturi plasate direct pe northbridge.

Structura unui calculator

219

Fig. 4.36. Exemplu de arhitectur desktop PCI Express.

Fig. 4.37. Exemplu de arhitectur de sistem portabil PCI Express.

Aceast abordare are urm toarele avantaje:


vitez mult mai mare pentru genera iile viitoare (10-Gps Ethernet);
costuri mai mici mai multe sloturi i componente se pot conecta la
cipul sistemului;
laten mic laten a transmisiei dintre componente, CPU i memorie
poate fi redus , eliminnd puntea PCI-X.

220

ARHITECTURA SISTEMELOR DE CALCUL

Fig. 4.38. Exemplu de arhitectur server PCI Express.

4.3.10. Compara ii ntre magistrale


Figura 4.39 este o sintez de tip roadmap i arat evolu ia n timp a vitezei
magistralelor, exprimat prin valoarea ratei de transfer (benzii), iar tabelul 4.2
prezint comparativ caracteristicile, parametrii i performan ele ctorva dintre cele
mai r spndite standarde de magistrale seriale din ultimii ani.

Fig. 4.39. Evolu ia ratei de transfer a magistralelor.

Structura unui calculator

221
Tabelul 4.2

Compara ie ntre magistrale

Nume

rgime
de band
efectiv
(Mb/s)

Vitez
de
transfer
(MB/s)

Lungime
maxim
de cablu
(m)

Putere/
tensiune
necesare
(W/V)

Num r
de echipamente
per canal

SAS

3.000

375

eSATA

3.000

300

1 (15 cu multiplicator de port)

SATA 300

3.000

300

1 (15 cu multiplicator de port)

SATA 150

1.500

150

PATA 133

1.064

133

0,46

FireWire
3200

3.144

393

100

15/1225

63 (cu hub)

FireWire 800

786

98,25

100

15/1225

63 (cu hub)

FireWire 400

393

49,13

4,5

15/1225

63 (cu hub)

USB 2.0

480

60

2,5/5

127 (cu hub)

UltraSCSI 320

2.560

320

12

16

Fiber Channel
cablu cupru

4.000

400

12

126 (16.777.216 cu switch-uri)

Fiber Channel
fibr optic

10.520

2.000

250.000

126 (16.777.216 cu switch-uri)

Infiniband
12 Quad-rate

120.000

12.000

1 (punct-la-punct)

5. NIVELUL MICROPROGRAMAT

Sistemele de calcul sunt implementate folosind diferite concepte care le


apropie de gndirea uman . Se disting astfel mai multe niveluri de programare
ale unui calculator. n acest capitol se va studia nivelul microprogramat.
Func ionarea microprocesorului i a oric rui bloc dintr-un sistem cu
microprocesor necesit date i semnale de comand i control. Succesiunea
dorit a evenimentelor din sistem (care conduce la executarea unei sarcini
utile) se produce prin ac ionarea corect , secven ial , a semnalelor de
control, acestea conducnd la transferul corect de date, prelucrarea acestora
i luarea de decizii. n general, ns , datorit multitudinii acestor semnale i
a leg turii lor intime cu structura intern a fiec rui bloc nu se lucreaz direct
cu semnale simple ci cu grupuri ale lor care au un efect mai u or de sesizat
din exterior. Astfel de grupuri de semnale sunt numite instruc iuni i ele
sunt caracteristice logicii programate.
Din cele men ionate rezult c executarea unei instruc iuni
presupune efectuarea ntr-o anumit ordine a unor pa i elementari care se
numesc microopera ii i microinstruc iuni. Primele procesoare executau
codul direct la nivel hardware. Execu ia era destul de rapid (se accesa
direct nivelul 0 din nivelul 2), dar conceptul era lipsit de flexibilitate.
Aceasta se datora imposibilit ii ad ug rii de instruc iuni noi.

Fig. 5.1. Structur par ial a nivelurilor unui calculator.

223

Practic s-a constatat c pentru execu ia oric rei instruc iuni din setul
microprocesorului se execut o succesiune bine definit de pa i.
Microprogramarea este un concept care formeaz de fapt interfa a ntre
limbajul de asamblare i structurile fizice ale procesorului. Microinstruc iunile
sunt practic semnalele de comand adresate de unitatea de control c tre unitatea
de execu ie a procesorului. Apari ia nivelului microprogramat presupune
asocierea fiec rei instruc iuni cu o succesiune de microinstruc iuni.

5.1. Exemplu de ma in microprogramat


n figura 5.2 se prezint structura unei ma ini microprogramate.

Fig. 5.2. Structura unei ma ini microprogramate de tip A (mA).

224

Nota iile folosite n figura 5.2:


R1 R16: 16 registre generale de tip latch, fiecare de 16 bi i, care
au func ii diferite, registre inaccesibile utilizatorului; ele sunt
utilizate doar de ma ina microprogramat . Fiecare registru poate
depune date pe magistralele A, B i poate fi nc rcat de pe
magistrala C.
ALU: circuit logic combina ional care realizeaz patru opera ii
aritmetice i logice selectate de F0 i F1. Cele patru opera ii sunt
A+B, AB, A, nonA. La ie ire mai sunt disponibili doi bi i nota i cu
N i Z. Semnifica ia lor este:
rezultatul din ALU este negativ N = 1;
rezultatul ALU este zero Z = 1.
registrul shift: este un circuit de deplasare a c rui intrare este
legat la ie irea ALU i care poate executa urm toarele opera ii:
deplasare cu un bit la stnga/dreapta;
livrare direct
la ie ire a cuvntului aflat la intrare (stare
inactiv ).
Aceste opera ii sunt selectate de liniile de comand S0 i S1.
magistralele A i B sunt legate la ALU prin registrele tampon de
tip latch RTA i RTB (ALU este un circuit logic combina ional, iar
intr rile lui trebuie inute constante pe timpul unei opera ii).
Registrele tampon sunt nc rcate prin liniile de comand L0 i L1.
Observa ii:
Registrele tampon permit modificarea magistralelor A
i B n
timpul unei opera ii executate de c tre ALU. Rezult c pot avea
loc opera ii ntre registre de tipul R1 R1 + R2, R2 R1 + R2
etc.;
Dac registrele R1 R16 ar fi de tip flip-flop, atunci nu ar mai
fi nevoie de registrele tampon.
RDA, RAD: registre care realizeaz conexiunea cu magistrala de
date, respectiv de adrese. RAD este nc rcat cu date de pe
magistrala B n acela i timp cu efectuarea unei opera ii de c tre
ALU. RDA este nc rcat de pe magistrala C atunci cnd se
activeaz semnalul M1. Semnalele M2 i M3 comand pozi ionarea
con inutului lui RDA pe magistrala de date (scriere n memorie) i
respectiv nregistrarea datelor de pe magistral n RDA (citire din
memorie). Datele nc rcate n RDA pot fi utilizate la o intrare a
unit ii ALU prin semnalul de comand A0 care se aplic
multiplexorului.

225

5.2. Microinstruc iunile


n exemplul prezentat anterior, microinstruc iunile reprezint setul
de semnale care sunt primite de componentele unit ii de execu ie a ma inii
microprogramate. n total sunt 61 de linii de comand , dispuse n nou
grupe func ionale, care execut comanda i controlul c ii de date a ma inii.
Aceste grupe sunt:
16 semnale pentru transferul de date din registrele R1 R16 pe
magistrala A, la un moment dat putnd fi selectat un singur registru
(n figura 5.2 nu au fost reprezentate aceste semnale);
16 semnale pentru transferul de date din registrele R1 R16 pe
magistrala B cu men iunile anterioare;
16 semnale pentru transferul de date de pe magistrala C ntr-unul
din registrele R1 R16 (nici aceste semnale nu au fost
reprezentate pe schem din motive de spa iu);
dou semnale de comand a nc rc rii registrelor tampon RTA i
RTB, notate n figur cu L0 i L1;
dou semnale care selecteaz opera iile executate de ALU (F0 i
F1);
dou semnale de comand a registrului shift (S0 i S1);
patru semnale de comand a registrelor RDA i RAD (M0, M1, M2
i M3);
dou semnale care indic opera iile de scriere/citire n/din memoria
principal ;
un semnal de comand pentru AMUX (A0).
Ma ina func ioneaz secven ial, fiind necesar un registru de
comand de 61 bi i. Acest num r al semnalelor de comand este prea mare.
S-a ncercat reducerea lui prin selectarea registrelor R1 R16 cu ajutorul
unei linii de comand de 4 bi i pentru fiecare magistral . Semnalele se ob in
apoi prin trei decodoare 4/16 care genereaz cele trei grupe de 16 semnale.
n felul acesta se economisesc 3 12 = 36 bi i.
Procednd astfel, la fiecare pas trebuie nc rcat un registru. Situa ia
nu este mereu avantajoas . De exemplu, este posibil executarea unei
opera ii ALU doar pentru setarea semnalelor N i Z. De aceea se utilizeaz
un semnal suplimentar de validare a nc rc rii, VALC. Acesta ia valoarea 1
cnd valideaz nc rcarea i 0 cnd o interzice. VALC este legat de intrarea
de CS (Chip Select) a decodorului. Semnalele M2 i M3 pot informa n
exterior tipul opera iei (citire/scriere din/n memorie). n acest fel se
economisesc nc 2 bi i.

226

Semnalele L0 i L1 sunt identice i sunt generate de ceasul intern al


sistemului. n fiecare perioad , L0 i L1 permit stocarea datelor pe
magistralele A i B. n concluzie, nu este necesar specificarea lor n
instruc iuni. R mn 61 36 2 2 + 1 = 22 bi i suficien i pentru comanda
ii de date a microma inii. n structura microinstruc iunii vor intra astfel 22
bi i de comand plus al i bi i descri i n continuare.
5.2.1. Structura unei microinstruc iuni

DEPL

RDA

RAD

RD

WR

VALC

8
ADDR*

ALU

AMUX

COND*

O microinstruc iune cuprinde mai multe p i, numite cmpuri,


fiecare cmp definind o func ie proprie. Reprezentarea din figura 5.3 arat
structura unei microinstruc iuni.

Fig. 5.3. Structura unei microinstruc iuni (cmpuri i num r de bi i alocat); * neprezentat.

Rezult un total de 22 + 2 + 8 = 32 bi i. Semnifica ia acestor bi i este:


AMUX (1 bit)
0 intrare din RTA;
1 intrare din RDA.
ALU (2 bi i)
0 A+B;
1 AB;
2 A;
3 nonA.
DEPL (2 bi i)
0 f deplasare;
1 deplasare la dreapta;
2 deplasare la stnga;
3 neutilizat.
RDA (1 bit) indic nc rcarea RDA cu cuvntul de pe magistrala C;
RAD (1 bit) indic nc rcarea RAD cu cuvntul din RTB;
RD (1 bit) indic citirea din memoria central ;
WR (1 bit) indic scrierea n memoria central ;
VALC (1bit) autorizeaz nc rcarea registrelor generale:
0 interdic ie;
1 validare.
nc rcare/depunere de pe magistrala C/pe magistrala A sau B
(semnal pe 3 4 bi i).

227

5.2.2. Execu ia unei microinstruc iuni


O instruc iune cuprinde patru subcicluri de execu ie (este folosit un
ceas cu patru faze):
1. nc rcarea microinstruc iunii care trebuie executat ntr-un registru
particular denumit registru microinstruc iune RMI;
2. transferul con inutului registrelor selec ionate pe magistralele A, B
i nc rcarea datelor n RTA i RTB;
3. realizarea opera iilor ALU i ale registrului shift; dac este necesar,
RAD este nc rcat de la ie irea registrului tampon B;
4. nc rcarea datelor de la ie irea registrului shift n registrul
selec ionat i/sau n registrul RDA.
Pn acum s-a prezentat calea de date a ma inii. n cele ce urmeaz
se va analiza blocul care genereaz
semnalele de comand
(microinstruc iunile) pentru calea de date.
Schema ceasului i fazele semnalului de ceas sunt reprezentate n
figura 5.4.

Fig. 5.4. Fazele semnalului de ceas.

228

5.2.3. Unitatea de comand


Schema bloc a sistemului microprogramat este prezentat n figura
5.5. Unitatea de comand preia codul n limbaj de asamblare i comand calea
de date prezentat anterior. Componentele sale sunt descrise n continuare.
Memoria de microprogram se mai nume te memorie de comand
(exist ns diferen e ntre memoria de program i cea de microprogram).
Memoria de microprogram este o memorie foarte rapid care con ine
instruc iuni microprogramate. Pentru majoritatea microma inilor, memoria
de microprogram este de tip read-only; exist i posibilitatea utiliz rii
memoriei de tip read-write, ceea ce confer posibilitatea modific rii
dinamice a programului.
Adres microprogram

Secven iator de
microprogram

Memorie de
microprogram

Control adres urm toare


Stare

Control
Calea de date

Fig. 5.5. Schema bloc a unit ii de comand .

n exemplul anterior. microinstruc iunile sunt de 32 de bi i. Exist


256 de microinstruc iuni, ceea ce necesit 8 bi i de adres (a a se explic
cmpul ADDR de 8 bi i n structura cmpurilor microinstruc iunii). Cele
256 de microinstruc iuni cer o memorie de 8192 bi i (256 instruc iuni 32
bi i). Fiecare microinstruc iune execut dou func ii:
controleaz func ionarea c ii de date;
genereaz adresa pentru microinstruc iunea urm toare.
A a cum s-a ar tat, formatul microinstruc iunilor con ine cmpuri de
control pentru fiecare resurs hardware a ma inii.
Secven iatorul de microprogram prime te de pe calea de date
starea curent a acesteia prin bi ii de stare (starea este dat de semnalele N i
Z). Secven iatorul de microprogram are rolul de a adresa urm toarea

229

microinstruc iune, n func ie de starea c ii de date i de bi ii de control ai


adresei urm toare, care sunt da i la rndul lor de cmpurile COND i ADDR
din microinstruc iune. Prin linia de adres a microprogramului se selecteaz
instruc iunea care este depus pe intrarea de control a c ii de date.
Astfel, semnifica ia cmpului COND este urm toarea:
COND (2 bi i) 0 se execut urm toarea microinstruc iune;
1 salt la adresa specificat de ADDR dac N = 1;
2 salt la adresa specificat de ADDR dac Z = 1;
3 salt necondi ionat la ADDR.
Schema general a microma inii este dat n figura 5.6. Nota iile
folosite sunt urm toarele:
MCO = microcontor (registru de adresare a memoriei de
microprogram);
INCR
= circuit de incrementare (INCR = MCO + 1);
MMUX
= multiplexor care lucreaz n concordan cu decizia
provenit de la microsecven iator; el va alege pentru
microinstruc iunea urm toare fie adresa MCO + 1, fie
adresa specificat n ADDR.

Fig. 5.6. Schema bloc a unei microma ini (schema modificat pentru mA).

230

nc rcarea datelor de pe magistrala C ntr-unul din cele 16 registre


generale nu este posibil dect atunci cnd se ndeplinesc urm toarele condi ii:
1. VALC = 1;
2. subciclul curent de ceas este 4 ( 4 activ);
3. registrul este indicat de cmpul C al microinstruc iunii.
5.2.4. Modul de lucru al microsecven iatorului
Ecua ia logic a microsecven iatorului este:
O(s) = DN + SZ + SD,
unde:
O s) = ie irea microsecven iatorului;
D
= bitul dreapta al cmpului COND;
S
= bitul stnga al cmpului COND;
N, Z = semnale de stare generate de ALU (negativ i zero).
Cnd O s) = 1 are loc schimbarea adresei microinstruc iunii
urm toare cu adresa dat de cmpul ADDR din instruc iunea curent .

5.3. Microprogramarea orizontal

i vertical

Diferen a major ntre aceste dou tehnici de microprogramare este


dat de modul de codare a microinstruc iunii.
Se presupune c pentru comanda ma inii mA sunt necesare n
semnale. Cnd microinstruc iunile con in n bi i, cte un bit pentru fiecare
microcomand , ele sunt denumite microinstruc iuni n format orizontal.
Exemplu. n cazul microma inii mA s-ar fi putut renun a la
utilizarea decodoarelor pentru magistralele A, B sau C. De asemenea, ALU
ar fi putut s nu con in un decodor intern pentru cele patru opera ii
executate. n acest caz, pentru fiecare nc rcare de pe/pe magistral ar fi fost
nevoie de 16 bi i n loc de 4, iar la ALU ar fi fost nevoie de 4 bi i n loc de 2
(vezi cmpul ALU n formatul de microinstruc iune prezentat).
Deci la una din extremit ile formatului microinstruc iunilor se afl
formatul orizontal, n care fiecare bit semnific o microcomand . n
consecin , microinstruc iunea con ine mul i bi i.
La cealalt extremitate se afl formatul vertical, n care
microinstruc iunile con in un num r mic de bi i (<< n), ns cmpurile
microinstruc iunii sunt puternic codate. Dac n microprogramarea orizontal

231

un microprogram necesit pu ine instruc iuni cu mul i bi i, n programarea


vertical acela i microprogram necesit multe instruc iuni cu pu ini bi i.
n practic se ntlnesc formate mixte, cum este cel prezentat n
exemplul microma inii mA, situat ntre cele dou extremit i. Astfel, la
formatul prezentat se ntlnesc cmpuri asociate direct microcomenzilor (de
exemplu, RAD, RDA, AMUX, RD, WR), care au un efect imediat asupra
circuitelor microma inii. ns se ntlnesc, de asemenea, i cmpuri de bi i
codate (de exemplu, ALU, A, B, C), care necesit utilizarea unui decodor
nainte de aplicarea pe circuitele corespunz toare.
5.3.1. Microma ina cu format vertical
Microinstruc iunea vertical tipic con ine un cmp numit codul
opera iei (care poate fi v zut ca o generalizare a cmpului ALU) i mai
multe cmpuri de operanzi, de exemplu: A, B, C. Pentru a clarifica distinc ia
ntre microprogramul orizontal i cel vertical, se va revizui microma ina
mA, utiliznd de aceast dat microinstruc iuni verticale. Fiecare nou
microinstruc iune va cuprinde trei cmpuri de 4 bi i, deci un total de 12 bi i
fa de 32 de bi i la versiunea precedent .
Primul cmp este codul opera iei (COP) care arat ce trebuie s fac
microinstruc iunea. Celelalte cmpuri sunt registrele R1 i R2.
Microinstruc iunile de salt regrupeaz registrele R1 i R2 pentru a forma un
cmp de 8 bi i (fie acesta R).
n tabelul 5.1 este prezentat codul opera iei (fiecare tip de
microinstruc iune).
Se observ c fiecare microinstruc iune nu realizeaz dect o singur
opera ie i c cei 12 bi i ai microinstruc iunii sunt suficien i pentru a
specifica o opera ie la un moment dat. Corespunz tor, ma ina se modific i
rezult microma ina mB, n conformitate cu schema din figura 5.7.
Se constat c la cele dou scheme c ile de date sunt identice. n
schimb, la microma ina cu format vertical nu sunt utilizate dect dou
decodoare 4 la 16 pentru R1 i R2 n locul celor trei decodoare A, B, C din
schema anterioar . De asemenea, n schem apar trei elemente noi: blocul
I, blocul NZ i decodorul COP.
Blocul I con ine 16 por i I care permit cmpului R1, dup
traversarea decodorului R1, s comande golirea unui registru pe magistrala
A i nc rcarea sa pe magistrala C. Desigur c aceste opera ii nu pot fi
simultane. De aici necesitatea por ilor I care determin n timpul
subciclului 4 nc rcarea unui registru cnd aceast opera ie este validat de
decodorul COP.

232
Tabelul 5.1
Codul opera iei pentru microinstruc iunile n format vertical
Binar

Simbol

Descriere

Opera ie

0000

ADD

adunare

R1 = R1 + R2

0001

AND

I logic

R1 = R1 R2

0010

MOVE

deplasare

R1 = R2

0011

COMPL

complement

R1 = inv(R2)

0100

SHIFTL

deplasare stnga

R1 = shiftleft(R2)

0101

SHIFTR

deplasare dreapta

R1 = shiftright(R2)

0110

GETRDA

nc rcare R1 cu RDA

R1 = RDA

0111

TEST

test registru

if R2 < 0 then N = true


if R2 = 0 then Z = true

1000

BEGRD

nceput RD

RAD = R1; RD

1001

BEGWR

nceput WR

RAD = R1; RDA = r2; WR

1010

CONRD

continuare RD

RD

1011

CONWR

continuare WR

WR

1100

LIBER

1101

NJUMP

salt dac N = 1

if N then go to R

1110

ZJUMP

salt dac Z = 1

if Z then go to R

1111

UJUMP

salt necondi ionat

go to R

Observa ie: R = l6R1 + R2.

Blocul NZ este un registru de 2 bi i care nregistreaz semnalele N i


Z la ie irea ALU, cnd aceast nregistrare este ordonat de decodor. Acest
artificiu este utilizat deoarece pe microma ina B nu este realizat dect o
singur opera ie n timpul unei microinstruc iuni. Astfel, testarea i
utilizarea bi ilor N i Z se face doar n microinstruc iunea urm toare, deci
este necesar o p strare a lor n registru.
Decodorul COP reprezint elementul central al microma inii.
Acesta analizeaz codul opera iei i precizeaz ac iunile care se vor
ntreprinde. Decodorul COP distribuie 13 microcomenzi distincte c tre
blocul I, microsecven iator, registrul NZ, AMUX, ALU, circuitul shift,
RAD i RDA. Pentru fiecare din cele 16 coduri de opera ii posibile trebuie
determinat care dintre cele 13 microcomenzi sunt active (1) i care sunt n
repaus (0).

233

Fig. 5.7. Structura microma inii cu format vertical (mB).

Rezult astfel un tablou 16 13, prezentat n tabelul 5.2.


Dac se numeroteaz cei patru bi i care codeaz microinstruc iunea
cu A, B, C i D, atunci se pot ob ine, dup minimizare, urm toarele func ii
logice (ideal pentru implementare este un PLA cu 4 intr ri i 13 ie iri):
ALUA = ABCD + ABCD + ABCD+ ABCD + ABCD + ABCD +
+ ABCD + ABCD +ABCD + ABCD + ABCD =
= C + AB + AB + AD
ALUB = ABCD + ABCD = ABD
SHIFTA = ABCD
SHIFT B = ABCD
NZ = ABCD + ABCD + ABCD + ABCD + ABCD + ABCD +
+ ABCD + ABCD = A

234

AMUX = ABCD
I = ABCD + ABCD + ABCD + ABCD + ABCD + ABCD +
+ ABCD = AB + AC + AD
RAD = ABCD + ABCD = ABC
RDA = ABCD
RD = ABCD + ABCD = ABD
WR = ABCD + ABCD = ABD
MSA = ABCD + ABCD = ABC
MSB = ABCD + ABCD = ABD
Tabelul 5.2

MOVE

COMPL

SHIFTL

SHIFTR

GETRDA

TEST

BEGRD

BEGWR

10

CONRD

11

CONWR

12

LIBER

13

NJUMP

14

ZJUMP

15

UJUMP

MSB

MSA

AND

WR

RD

ADD

RDA

RAD

AMUX

NZ

SHIFTB

SHIFTA

ALUB

ALUA

instruciuni

comenzi

Coresponden a microinstruc iuni-microcomenzi la microma ina cu format vertical

+
+

+
+
+

235

5.3.2. Compara ie ntre cele dou microprograme


Microma ina mA are un format mixt, con innd att cmpuri
verticale ct i cmpuri orizontale, pe cnd microma ina mB are un format
vertical.
Exemplu. n cazul n care microprogramul ar fi utilizat pentru
interpretarea unui num r de 23 de tipuri de macroinstruc iuni, atunci
microprogramul microma inii mA ar trebui s aib 79 microinstruc iuni a
cte 32 bi i, rezultnd 2528 de bi i n memoria de microprogram. n schimb,
microprogramul microma inii mB con ine 160 microinstruc iuni a 12 bi i,
rezultnd n total 1920 de bi i. Se ob ine astfel un c tig de 24% n
capacitate de memorie, deci o diminuare a costului de implementare pentru
al doilea caz (microma ina mB cu structur vertical ).
Inconvenientul major al formatului vertical este dat de num rul
important de microinstruc iuni care trebuie executate pentru interpretarea
unei macroinstruc iuni. Aceasta se traduce ntr-o diminuare net a vitezei
microma inii. Din acest motiv, calculatoarele mari i rapide utilizeaz
microprogramarea orizontal . n schimb, ma inile mai modeste utilizeaz
microprogramarea vertical pentru simplitate i pre de cost mai mic.
ntr-adev r, microprogramarea vertical permite scrierea u oar a
microprogramului, deoarece fiecare linie de microprogram reprezint o
singur opera ie. Microprogramul este mult mai lizibil dect la
microprogramarea orizontal , unde o microinstruc iune reprezint opera ii
multiple.
n ultimul timp, cnd competi ia dintre arhitecturile RISC i CISC a
fost eliminat , se poate spune acela i lucru i despre formatele vertical i
orizontal pentru microinstruc iuni.
5.3.3. Analiza comparativ a sistemelor microprogramate
Microcod vs VLIW (Very Long Instruction Word) i RISC
Procesoarele proiectate propice, microcodate puternic cu instruc iuni
complexe au luat na tere la nceputul anilor 1960 i au continuat pn la
mijlocul anilor 1980. La acel punct, filozofia proiect rii RISC-ului a nceput
devin mai proeminent . Aceasta a inclus punctele:
Analiz arat c instruc iunile complexe sunt folosite rar, ntruct
resursele ma inilor necesare lor sunt risipite foarte mult.
Programarea s-a ndep rtat foarte mult de nivelul de asamblare, deci
nu se mai merit s furnizezi instruc iuni complexe din motive de
productivitate.

236

Resursele ma inilor necesare pentru instruc iunile complexe, rar


folosite, sunt utilizate mai bine pentru accelerarea performan ei
instruc iunilor simple (folosite n mod obi nuit).
Instruc iunile complexe microcodate, care necesit multe i diverse
cicluri ceas, sunt dificil de actualizat pentru cre terea performan ei.
Seturile de instruc iuni simple permit execu ii directe ale hardwareului, evitnd penalizarea performan ei a execu iei microcodate.
Ar trebui men ionat c exist la fel de bine i puncte-contor:
Instruc iunile complexe din implement rile dificil microcodate pot
nu ia multe extra-resurse ale ma inilor (cu excep ia spa iului
microcodului); de exemplu, aceea i ALU este utilizat des pentru a
calcula adrese efective precum i s calculeze rezultatele operanzilor
actuali.
Instruc iunile non-RISC, care implic operanzi direc i de memorie,
sunt folosite frecvent de c tre compilatorii moderni, chiar i stivele
de opera ii aritmetice (ex. rezultatul memoriei) sunt de obicei
ntrebuin ate. De i asemenea opera ii de memorie, de multe ori cu
decod ri cu lungimi variate, sunt mai greu de actualizat, este pe
deplin fezabil, exemplificndu-se n mod limpede prin Intel 486,
Cyrix 6x86 etc.
Instruc iunile non-RISC ndeplinesc, n mod firesc, mai mult munc
pe instruc iune (n medie) i de asemenea de obicei sunt extrem de
codate; a a c permit dimensiuni exterioare mai mici ale aceluia i
program, iar astfel o utilizare mai bun a memoriilor cache limitate.
Implement rile CISC (Complex Instruction Set Computer) moderne
cel mai remarcabil x86 ndeplinesc cele mai multe instruc iuni i
toate modurile de adresare n hardware; microcodul este nc
folosit, pentru cteva instruc iuni extrem de complexe sau foarte
speciale (precum CPUID CPU Identification) precum i pentru
housekeeping intern.

Multe procesoare RISC i VLIW sunt proiectate s execute fiecare


instruc iune (ct timp este n cache) ntr-un singur ciclu. Acesta este foarte
similar modului n care CPU-urile cu microcod execut o microinstruc iune
pe ciclu. Procesoarele VLIW au instruc iuni care se comport similar
microcodului orizontal, cu toate c nu au un asemenea control
microgranular asupra hardware-ului precum asigur
microcodul.
Instruc iunile RISC sunt uneori similare limitatului microcod vertical.

237

5.4. Nanoprogramarea
Pn acum, discutnd despre microprograme, s-a presupus existen a
unei memorii principale (care con ine instruc iunile nivelului 2) i a unei
memorii de comand (care con ine microprogramul).
O a treia memorie, denumit nanomemoria, permite n unele cazuri
o asociere optim ntre microprogramul orizontal i cel vertical Astfel,
nanoprogramarea corespunde unei optimiz ri statistice a microprogramului,
n cazul n care un set de instruc iuni este mai des solicitat. n figura 5.8 este
reprezentat (prin compara ie cu microprogramarea) conceptul de
nanoprogramare.
n cazul a), microprogramul con ine n microinstruc iuni a cte w bi i,
rezultnd capacitatea unei memorii de comand de nw bi i. Se presupune c
o analiz detaliat a microprogramului arat c dintre cele 2w posibilit i de
reprezentare sunt utilizate doar m << n instruc iuni.
n cazul b) s-a construit o nanomemorie de m cuvinte a cte w bi i
care con ine cele m microinstruc iuni mai des utilizate. Atunci fiecare
microinstruc iune a microprogramului original poate fi nlocuit n memoria
de comand prin adresa cuvntului din nanomemorie care con ine
nanoinstruc iunea corespunz toare, rezultnd l imea cuvntului n memoria
de comand de log2m bi i.
w

n
microprogram

log2m

microprogram

nanoprogram

a)

b)

Fig. 5.8. a) Microprogramare conven ional ; b) microprogramare i nanoprogramare.

Exemplu. Fie un microprogram de nw = 4096 100 bi i cu m = 128


de instruc iuni diferite folosite mai frecvent. Rezult o nanomemorie avnd

238

mw = 128 100 bi i i o memorie de comand de n log2m = 4096 7 bi i.


C tigul fa de microprogramarea conven ional este de:
(4096 100) (4096 7) (128 100) = 368 128 bi i.
Economia de memorie este realizat n contextul unei reduceri
sensibile de vitez . Datorit faptului c un ciclu de extragere a
microinstruc iunii necesit dou accese la memorie (memoria de comand i
nanomemorie), ma ina nanoprogramat este mai lent dect ma ina
microprogramat . Din acest considerent, n ultimul timp s-a folosit din ce n
ce mai rar conceptul de nanoprogramare.

5.5. Exemplu de sistem microprogramat AMD


5.5.1. Unit i de execu ie integrate
Unitatile de executie se prezinta sub forma unor circuite integrate pe scara
medie/larga. De regula ele sunt structurate transe de biti astfel incat, prin
concatenare si prin utilizarea unor circuite aditionale, se pot construi sisteme de
prelucrare pentru date organizate pe 4, 8, 16, 24, 32, 48 sau 64 de biti. Unit ile de
execu ie integrate s-au comercializat n asocia ie cu unit ile de comand
corespunz toare i cu o serie de circuite adi ionale, formnd ceea ce se cheam
microprocesoare pe tran e de bi i, microprocesoare bit-slice, microprocesoare
multi-chip etc.
Printre cele mai r spndite familii de microprocesoare bit-slice s-au aflat i
cele produse de compania Advanced Micro Devices, sub numele de AMD 2900.
Unitatea de execu ie AMD 2901 este organizat pe tran e de 4 bi i/circuit i este
prev zut cu elementele necesare cupl rii n cascad . Semnalele de comand se
aplic sub forma unor vectori binari la terminalele circuitului, fiind, de regul ,
preluate sub controlul unui circuit micro-secven iator integrat (AMD 2909, 2911)
de la o memorie cu con inut permanent.
In cele ce urmeaza va fi prezentata unitatea de executie AMD 2901 sub
aspect structural i functional.
5.5.2. Unitatea de execu ie AMD 2901
Unitatea de executie AMD 2901 este organizata pe transe de 4 biti/circuit
si este prevazuta cu elementele necesare cuplarii in cascada.
Semnalele de comanda se aplica sub forma unor vectori binari la
terminalele circuitului, fiind, de regula, preluate sub controlul unui circuit microsecventiator integrat (AMD 2909, 2911) de la o memorie cu continut permanent.

239

Aceasta solutie se foloseste in cazul unitatilor de comanda microprogramate.


Uneori, pentru a mari viteza de operare, in locul unitatii de comanda
microprogramate se utilizeaza automate conventionale cu porti, bistabile si registre.
Unitatea de executie AMD 2901 dispune de urmatoarele resurse:
- un ansamblu de 16 registre generale de cite 4 biti, organizate sub forma unei memorii
RAM biport, cu doua intrari de adrese, o intrare de date si doua iesiri de date;
- o unitate aritmetica-logica, cu transport anticipat, capabila sa efectueze 3 operatii
aritmetice binare si 5 operatii logice si sa genereze, atit indicatorii de conditii:
depasire, zero, semn, transport (Cn+4), cat si conditiile de propagare (P) si
generare(G) ale transportului, la nivelul intregului circuit;
- un selector de date pentru cele doua intrari ale unitatii aritmeticelogice, care pot
reprezenta combinatii intre iesirile memoriei biport (A,B), o intrare externa de date
(D), constanta "zero" si iesirea unui registru su plimentar-extensie (Q);
- un selector de iesire din circuit, care furnizeaza prin intermediul unor tampoane
TS fie datele de la iesirea A, a memoriei biport, fie datele de la iesirea UAL;
- un registru auxiliar-extensie (Q), care poate fi incarcat fie cu datele de la iesirea
UAL, fie cu propriul sau continut deplasat stanga/dreapta prin intermediul unei
retele logice de deplasare-multiplexor QSHIFT;
- o retea de deplasare-multiplexor RAMSHIFT, plasata pe intrarea B a memoriei
RAM biport.
Indicatorii de conditii trebuie stocati intr-un registru dupa fiecare operatie
efectuata de UAL.
Intrarile R si S ale UAL sunt preluate de la iesirile unui circuit selector
(Selector sursa UAL), care sub controlul semnalelor I0:2, din intrarile D (Date
externe), A, B, 0 si Q, poate furniza combinatiile AB;AD; AQ; A0; DQ; D0; Q0;
BD; BQ; B0. In tabelul 5.3 se prezinta selectia surselor de operanzi pentru UAL.
Tabelul 5.3. Selectia surselor de operanzi pentru UAL

Mnemonica
AQ
AB
ZQ
ZB
ZA
DA
DQ
DZ

Microcod
I2 I1 I0
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1

Codul
octal
0
1
2
3
4
5
6
7

Sursa
R S
A Q
A B
0 Q
0 B
0 A
D A
D Q
D Z

Figura 5.9 prezinta schema bloc a circuitului AMD 2901. Unitatea


aritmetica-logica poate efectua sub controlul semnalelor I3:5 trei operatii aritmetice
binare si cinci operatii logice asupra operanzilor aplicati la intrarile R si S.

240

Fig. 5.9. Schema bloc a circuitului AMD 2901.

Intrarea directa D este folosita pentru a introduce date in circuit, in RAM si


in registrul Q. Registrul Q este utilizatin operatiilede inmultire si impartire, ca
extensie sau ca acumulator/registru in unele aplicatii.
9 biti

I8:6
Destinatie UAL
8
7
6

I5:3
Functie UAL
5
4
3

I2:0
Sursa UAL
2
1
0

Fig. 5.10. Structura vectorului de comanda (Microcodul I8:0).

241

Campul "Destinatie UAL" din vectorul de comanda are o semnificatie


complexa prin faptul ca specifica:
- operarea RAM (deplasare/incarcare/inactiv);
- operarea registrului Q (deplasare/incarcare/inactiv);
- conexiunile la RAMSHIFT (RAM0 si RAM3);
- conexiunile la QSHIFT (Q0 si Q3);
- iesirea Y.
Cuvantul (microinstructiunea) de comanda al unitatii de executie va avea
structura din figura 5.11.
23
M
U
X
1

22 21 20
I8 I7 I6
Selectie
destinatie

19
M
U
X
2

18 17 16
I2 I1 I0
Selectie
sursa

15
Cn

14 13 12
I5 I4 I3

11 10 9 8
A3A2A1A0

7654
B3B2B1B0

3210
C3C2C1C0

Operatie
UAL

Adresa
A

Adresa
B

Adresa
C

Fig. 5.11. Cuvntul de comand al unit ii de execu ie.

Se poate observa ca microinstructiunea care controleaza unitatea de


executie poseda 24 de biti. Bitii 0,..,3 au aparut ca urmare a inglobarii datei in
microinstructiune (microinstructiune cu operand imediat). Campul D se va extinde
in incrementi de 4 biti odata cu extinderea lungimii cuvantului prelucrat de catre
unitatea de executie. Campul Cn este asociat cu transportul in rangul cel mai putin
semnificativ al unitatii de executie, fiind la latitudinea celui care scrie
microprogramul.
5.5.3. Unitatea de comanda integrata. Secventiatorul de microprogram
AMD 2909
Secventiatorul de microprogram AMD 2909 face parte din familia de
circuite AMD2900 si constituie elementul de baza in jurul caruia este organmizata
unitatea de comanda microprogramata.
Dupa cum s-a aratat in paragraful anterior, atat unitatea de executie AMD
2901, cat si circuitele asociate acesteia sunt controlate cu ajutorul unui vector de
comanda constituit din campuri de biti, cu functii bie precizate. Un asemenea
vector controleaza operatii aritmetice elementare, care se pot efectua pe durata unei
perioade de ceas. Vectorul semnalelor de comanda poate fi generat cu ajutorul unui
circuit secvential, in cazul unitatilor de comanda conventionale, sau extras dintr-o
memorie cu continut permanent, in cazul unitatilor de comanda microprogramate.
Operatiile cu caracter complex, printre care se numara si instructiunile
calculatoarelor conventionale, se implementeaza sub forma unor secvente de
vectori de comanda. In sistemele microprogramate aceste secvente sunt stocate
intr-o memorie de control sau memorie de microprograme.

242

Un cuvant al memoriei de control reprezinta un vector de comanda sau o


microinstructiune. Secventiatorul de microprogram, structurat pe transe de cate 4
biti, este destinat generarii adreselor de microinstructiuni si asigurarii inlantuirii
acestora. Secventiatorul, prezentat mai jos, are ca resurse hardware:
- Contorul de MicroProgram (CMP);
- Registrul de Ramificare (RR);
- Indicatorul de Stiva (IS);
- STiVa (STV) cu capacitate de 4 cuvinte x 4 biti;
- INCrementatorul (INC);
- MultipleXorul (MUX) 4 x (4 : 1);

Fig. 5.12. Unitatea de comanda (schema bloc)

Schema bloc a unitatii de comanda va contine, pe langa microsecventiator,


si elementele necesare realizarii unei unitati de comanda:
- Memoria de Microprogram (MM);
- Registrul MicroInstrucriunii (RMI);
- un Comutator de Adrese (CA);
- o memorie de tip PROM.

243

Secventierea microinstructiunilor este realizata prin controlul circuitului


2909 cu ajutorul semnalelor preluate din campurile de control ale
microinstructiunii si de la conditiile externe.

Fig. 5.13. Schema bloc AMD 2909.

Se poate observa, in schema bloc din figura 5.13, faptul ca intrarea R a


microsecventiatorului este preluata direct de la iesirea memoriei de comanda, fara a
mai fi stocat in prealabil in registrul microinstructiunii RMI.

6. NIVELUL SISTEMULUI DE OPERARE

Acest nivel are un caracter hibrid, cea mai mare parte a instruc iunilor care
definesc limbajul fiind de tip ma in . Exist i instruc iuni specifice, care necesit
interpretare pentru a fi trecute pe nivelul 2.
Nivelul sistemului de exploatare are sarcini particulare n ceea ce prive te
gestionarea memoriei (lucrul cu memoria virtual prin conceptele de paginare i
segmentare) i organizarea execu iei n paralel a mai multor programe. Att nivelul
microprogramat ct i nivelul sistemului de operare (exploatare) sunt necesare
pentru interpretarea nivelurilor inferioare. Acestea sunt scrise de speciali ti i sunt
orientate c tre numeric. ncepnd cu nivelul imediat superior (limbajul de
asamblare) apare orientarea c tre simboluri, cuvinte, toate acestea avnd o anumit
sintax .

6.1. Conceptul de paginare


Paginarea este procedeul de realizare n memorie a unor blocuri fixe
numite pagini, care pot fi utilizate n mecanismul interschimb rii proceselor
(transferul blocurilor ntre memoria intern i cea extern ). Tehnica pagin rii este
larg folosit i poate fi independent de gestionarea memoriei. Exist procesoare
care creeaz pagini n memoria fizic , sau, ca n cazul familiei Intel, n memoria
virtual .
Ideea este de a face distinc ia ntre capacitatea de adresare fizic a
sistemului care define te un spa iu de memorie (denumit memorie virtual ) i
capacitatea de memorie instalat n sistem (denumit memorie fizic sau real ).
Exemplu. Fie un sistem cu 16 linii (64 KB) i o memorie instalat de 4
linii (fig. 6.1).
n prezent, denumirea de memorie virtual se folose te cu dou accep iuni:
a) spa iu virtual care poate fi accesat (ini ial);
b) zon de memorie plasat nu n memoria principal , ci pe un dispozitiv de
memorare secundar sau extern, cel mai adesea pe hard disk.
O singur pagin de 4 KB se poate afla la un moment dat n memoria
principal (MP) sau fizic . Dac programul con ine mai multe pagini, restul
paginilor se afl undeva n memoria secundar (pe floppy disk sau pe hard disk).

245

Cnd programul trebuie s execute o instruc iune din pagina urm toare,
sistemul de gestiune al memoriei virtuale (care face parte din sistemul de operare)
execut urm toarele opera ii:
1.
2.
3.
4.
5.

salveaz con inutul memoriei periferice n memoria secundar ;


localizeaz pagina respectiv n memoria secundar ;
ncarc aceast pagin n MP;
asociaz adreselor absolute adresa de memorie fizic de la 0 la 4095;
continu execu ia programului.
spa iul virtual

o pagin de 4 KB

0
spa iul fizic

4096

8192
12287
4095
65536

15

Fig. 6.1. Exemplu de paginare.

Observa ie. Spre deosebire de procesul de segmentare, paginarea este transparent


programatorului, fiind realizat de sistemul de operare.
Memorie fizic i memorie virtual (fig. 6.2).
Accep iunile termenului de memorie fizic sunt urm toarele:
1. linii fizice de adresare pe care le are procesorul n afar ;
2. spa iu de memorie fizic instalat (existent ) n sistemul de calcul.
Accep iunile termenului de memorie virtual sunt urm toarele:
1. prima defini ie de la memoria fizic ;
2. spa iu de memorie pe care l creeaz sistemul de operare i care con ine
un model al memoriei i al adreselor de memorie pe care le are programul
la dispozi ie (poate fi mai mare dect 1);
3. suportul fizic, de obicei hard disk-ul, pe care sistemul de operare salveaz
zone din memoria total disponibil programului pentru a asigura spa ii
libere n zona de memorie fizic , destinate zonelor de cod sau de date cu
care programul lucreaz la momentul respectiv.

246
Tabelul 6.1
Compara ie ntre capacit ile de adresare a memoriei fizice i a memoriei virtuale
Procesor

Memoria maxim fizic adresabil

Memoria virtual maxim

8086

1 MB (20 linii)

80286

16 MB (24 linii)

1 GB

80386

4 GB (32 linii)

64 TB

80486

4 GB (32 linii)

64 TB

Pentium

4 GB (32 linii)

64 TB

Memoria real care p streaz p

i din memoria virtual

Memoria
virtual
Program care
utilizeaz
memoria
virtual
Disc care
stocheaz
i din memoria
virtual

Fig. 6.2. Leg tura ntre memoria fizic

i memoria virtual .

6.1.1 Realizarea unei pagin ri simple


n mod normal, n memoria fizic instalat se pot afla mai multe pagini
active (fig. 6.3.) Dimensiunea paginii cu care opereaz procesorul Intel, echivalent
de fapt cu dimensiunea blocurilor de memorie cu care se lucreaz , este de obicei de
4 KB. Se presupune c exist o capacitate de adresare fizic de 64 KB (adic 16
linii de adres ). Se mparte acest spa iu n pagini de cte 4 KB (blocuri), rezultnd
astfel 16 pagini. Se mai presupune c memoria fizic instalat este de 32 KB.

247
memoria fizic
adresabil
64 KB (16 linii)

memoria fizic
instalat
32 KB

pagina 0
pagina 1

4096
8192

pagina 0
pagina 1

4096

4 KB

8192

4 KB

pagina 5
pagina 7

28672
32678
61440

pagina 15

65536

Fig. 6.3. Exemplu de paginare simpl .

Adresa fizic este pe 16 bi i i dac se urm re te folosirea memoriei paginate


se poate considera c cei mai semnificativi 4 bi i reprezint num rul paginii, iar cei
mai pu in semnificativi 12 bi i reprezint deplasamentul n cadrul paginii.
Pentru a realiza gestiunea memoriei fizice instalate se va folosi un tabel de
pagini cu 16 intr ri a cte 4 bi i fiecare (fig. 6.4.). Din cei 4 bi i, un bit va indica
dac pagina fizic adresabil se afl sau nu n memoria principal , restul de 3 bi i
(acest num r este dat de fapt de num rul de bi i cu care poate fi codificat num rul
de pagini aflate n memoria instalat ) indic pagina din memoria instalat n care se
afl pagina din memoria fizic adresabil la care se face referire.
memorie fizic adresabil

deplasament
0011

0000

0001

0110

12

0
1

2
3

110

0000 0001 0110

15
Fig. 6.4. Gestiunea memoriei fizice folosind tabelul de pagini.

248

Avantajele pagin rii pot fi rezumate astfel:

rimea fix a paginilor intr corect ntr-un sector al unui disc;


un obiect n memorie nu trebuie s fie continuu: pagina poate constitui o
nou cuant de informa ie;
mecanismul pagin rii i, implicit, ntreaga tehnic de a schimba continuu
blocuri fixe de informa ii ntre memoria intern i cea extern nu sunt
vizibile utilizatorului.
n concluzie, mecanismul pagin rii are urm toarele elemente esen iale:
se realizeaz dou niveluri de adresare indirect a memoriei, astfel nct
pn s se ajung la pagina propriu-zis se face o referin ntr-un
director din care se selecteaz o tabel a paginilor;
toate obiectele din memorie implicate (directorul i tabelele) sunt tratate
la rndul lor ca ni te pagini speciale; deci toate au m rimea fix de 4 KB.
Se p streaz astfel principiul coeren ei informa iei n memorie (ca i n
cazul segmentelor);
att directorul ct i tabelele de pagini au structura uniform , fiind
formate din 1 K elemente a cte 4 octe i. Aici se g se te adresa bazei
tabelei i respectiv a paginii selectate;
orice adres a bazei unei tabele sau a unei pagini este dat pe un num r de
20 bi i, ace tia constituind partea mai semnificativ a adresei fizice
vizate. Blocurile n memorie sunt aliniate din 4 KB n 4 KB, deci automat
cei mai pu in semnificativi 12 bi i ai adreselor fizice ale bazelor sunt 0;
adresa fizic a bazei directorului se afl n unul din cele patru registre de
control al microprocesoarelor.

6.1.2. Politica de nlocuire a paginilor


ntr-un sistem care folose te memoria virtual , sistemul de operare trebuie s
stabileasc urm toarele politici de gestionare:
politica fetch: stabile te cnd o pagin trebuie adus n memorie;
paginarea la cerere: aduce o pagin n memorie doar ca rezultat al
excep iei page fault;
pre-paginarea: ncearc s anticipeze abloane de utilizare a memoriei n
viitor i s aduc paginile n memorie nainte ca cererile de accesare s
fie emise. Scopul pre-pagin rii este de a reduce consecin ele opera iilor
de citire/scriere, programnd ca acestea s se desf oare n paralel cu
procesarea desf urat de unitatea central .
politica de plasament: unde s fie puse paginile sau segmentele aduse n
memorie. Aceast politic este folosit n cazul segmentelor f
paginare. n caz contrar, o pagin nu conteaz unde este plasat
(excep ia este reprezentat de arhitecturile NUMA, unde este avantajos
ca o pagin s fie stocat ct mai aproape de procesorul care o va folosi).

249

politica de nlocuire: dac memoria este complet ocupat , cnd intervine


o excep ie page fault, o pagin sau un segment de memorie trebuie s fie
evacuate. Politicile de nlocuire stabilesc care pagini sau segmente s fie
nlocuite.
Algoritmii de nlocuire intr n ac iune atunci cnd sistemul de operare
prime te semnalul de page fault, prin care se n elege c pagina solicitat nu se afl
n memoria fizic , ci pe disc. La primirea acestui semnal, algoritmul de nlocuire a
paginii are sarcina de a muta o pagin existent n memoria fizic pentru a face loc
paginii care va fi copiat de pe disc.
Decizia corect asupra paginii care va fi mutat este crucial pentru viteza cu
care va rula aplica ia. Deoarece lucrul cu discul este lent, este de preferat s se
realizeze ct mai pu ine opera ii cu acesta. Cu ct un algoritm p streaz paginile de
care va fi nevoie n memorie mai mult timp, cu att acesta este mai eficient.
Obiectivul unei politici de nlocuire este de a determina o rat de apari ie a
excep iei page fault ct mai mic . Situa ia ideal ar fi ca o pagin care este
eliminat s fie o pagin care nu va mai fi folosit niciodat . Dac acest lucru nu
este posibil, urm toarea op iune este ca pagina nlocuit s fie una care nu va mai fi
folosit pentru o lung perioad de timp. ntrebarea care se pune este: ce factori pot
fi folosi i pentru a stabili ce pagin trebuie nlocuit ? C iva dintre ace ti factori
sunt urm torii:
durata perioadei n care o pagin a fost situat n memorie: principiul
localit ii temporale enun faptul c o pagin aflat de mult timp n
memorie poate s nu mai fie necesar ;
ct de recent a fost apelat o pagin : acela i principiu al localit ii
temporale enun faptul c probabilitatea ca o pagin care a fost
apelat de curnd s fie apelat din nou n viitorul apropiat este mare;
frecven a cu care a fost apelat o pagin : acest factor nu este la fel de
important ca cei doi descri i mai sus, dar exist totu i o probabilitate
relativ ridicat ca o pagin care a fost des apelat s fie apelat din nou
destul de curnd;
proprietatea unei pagini de a fi fost modificat sau nu: dac to i factorii
sunt egali, se alege a fi nlocuit o pagin care nu a fost modificat .
Acest fapt nu va cauza o opera ie de citire/scriere;
eventualitatea ca un cadru s fie blocat: unele cadre sunt blocate
aceasta nseamn c paginile din interiorul lor nu pot fi nlocuite,
aceast proprietate prevenind situa ia ca pagini din kernel sau din
buffer-ele I/O sa fie evacuate.
Pa ii care sunt parcur i pentru tratarea excep iei page fault sunt:
1. aplica ia acceseaz o pagin care nu este prezent n memoria virtual ;
2. apare excep ia page fault;
3. este aleas o pagin goal ;
4. dac nu este g sita nicio pagin goal , este aleas una care urmeaz a
fi evacuat din memoria virtual , aceast alegere fiind f cut n baza
unor politici de nlocuire;

250

5. dac pagina a fost modificat , aceast pagin este nti scris pe disc;
6. pagina necesar este citit de pe disc;
7. pagina este mapat spa iului de adrese al aplica iei;
8. este reluat execu ia aplica iei.
Algoritmii de nlocuire pot fi locali sau globali. Cnd apare semnalul de
page fault, algoritmii de nlocuire locali selecteaz pagini care apar in aceluia i
proces, n timp ce algoritmii globali pot selecta orice pagin din memorie.
Algoritmul optim de nlocuire (Belady)
Algoritmul optim de nlocuire, cunoscut i sub numele de algoritmul lui
Belady, este un algoritm de nlocuire ce func ioneaz dup urm torul principiul:
cnd o pagin trebuie copiat de pe disc n memorie, sistemul de operare mut
con inutul paginii care va fi folosit n proces cel mai trziu, din memorie pe disc,
cndu-i loc noii pagini. De exemplu, o pagin care nu va fi folosit n
urm toarele 10 secunde va fi mutat din memorie pe disc naintea unei pagini care
va fi folosit n urm toarele 2 secunde.
Acest algoritm este unul teoretic, el neputnd fi implementat pe sistemele
de operare deoarece nu se poate ti exact ct va dur pn cnd o pagin din
memorie va fi folosit .
Not Recently Used (NRU)
Algoritmul NRU (nefolosit recent) este un procedeu de nlocuire a
paginilor care au fost folosite recent. Acest algoritm func ioneaz pe urm torul
principiu: cnd o pagin este referit , un bit de referin este setat la valoarea 1
pentru acea pagin , aceasta este acum marcat ca fiind referit . Cnd o pagin este
scris , un alt bit, de scriere a paginii, este setat la valoarea 1. La un anumit interval
de timp se reseteaz bi ii de referin a paginilor folosite recent.
Sistemul de operare distinge 4 clase de pagini:
clasa 0: nereferite, nemodificate;
clasa 1: nereferite, modificate;
clasa 2: referite, nemodificate;
clasa 3: referite, modificate.
First-In First-Out (FIFO)
Algoritmul de nlocuire FIFO (primul intrat, primul ie it) elimin pagina
care a fost nc rcat prima, indiferent de momentul n care aceast pagin a fost
referit ultima dat . Fiecare pagin are un contor care este ini ial egal cu 0 pentru
fiecare cadru de pagin . Pagina care tocmai a fost adus n memorie va avea
valoarea contorului egal mereu cu 0, urm toarea va avea valoarea 1 (nainte ca
pagina cu indexul 0 s fie adus n memorie pagina aceasta avea contorul egal cu
zero, dar a fost incrementat cu 1) .a.m.d. Practic, se creeaz un fenomen de
mb trnire a paginilor, cea mai tn pagin avnd contorul cu valoarea 0.
Cnd o pagin trebuie eliminat , se va alege mereu cea cu contorul cel mai mare.

251

Algoritmul FIFO este foarte ieftin, ns are performan e slabe comparativ


cu al i algoritmi. Din aceast cauz este rar folosit. Un exemplu de sistem de
operare care folose te algoritmul FIFO este VAX/VMS.
Second Chance (SC)
Second Chance (a doua ans ) este un algoritm de nlocuire a paginilor
inspirat din FIFO, dar care are performan e mult mai bune dect acesta din urm ,
diferen a de pre fiind una foarte mic . Func ioneaz verificnd pagina cu contorul
avnd cea mai mare valoare (cea mai b trn pagin ), dar n loc de a o extrage ca
n algoritmul FIFO, Second Chance i acord o a doua ans paginii verificnd dac
are sau nu fixat bitul de referin . Dac acesta nu este setat, algoritmul func ioneaz
ca i FIFO n continuare, mutnd pagina din memorie. Dac bitul de referin este
setat, atunci contorul paginii este resetat la valoarea 0, pagina fiind practic inserat
din nou n coad ca i cum ar fi o pagin nou .
Clock (C)
Clock este un algoritm cu performan e mai bune dect Second Change,
care merge tot pe principiul FIFO. La fel ca i Second Change, Clock folose te bi i
de referin pentru a da o a doua ans paginii. mbun irea adus de Clock
const n faptul c nu mai este nevoit s mping paginile n coad , algoritmul
folosind un pointer (indicator) i un sistem circulat al paginilor n loc de o coad .
Pointer-ul arat care pagin este cea mai veche i poate fi nlocuit
Least Recently Used (LRU)
Algoritmul Least Recently Used (LRU) cel mai pu in frecvent utilizat
pagin , de i similar n terminologie cu NRU, difer prin faptul c LRU urm re te
paginile ntr-o perioad scurt de timp, n timp ce NRU urm re te paginile ntr-un
interval de ceas. LRU func ioneaz pe ideea c paginile folosite cel mai mult n
trecutul apropiat vor fi cel mai probabil folosite i n viitorul apropiat, n cadrul
urm toarelor ctorva instruc iuni. De i n teorie LRU se descurc foarte bine,
acesta este foarte scump de implementat. Exist cteva implement ri ale LRU care
ncearc s reduc costul acestuia dar s men in n acela i timp performan ele
ridicate.
Cea mai costisitoare variant a LRU este cea de tip coad . Aceasta implic
realizarea unei liste cu toate paginile din memorie. La sfr itul listei se afl cea mai
pu in utilizat recent pagin iar n vrful listei se afl cea mai des recent utilizat
pagin . Intr rile din list trebuie rearanjate la fiecare accesare a listei, ceea ce face
aceast metod foarte lent .
O alt metod are nevoie de suport hardware i func ioneaz pe baza unui
counter (num tor). De fiecare dat cnd o pagin este accesat prime te o
valoarea egal cu a counter-ului la momentul acces rii. Cnd o pagin trebuie
mutat sistemul de operare selecteaz pagina cu counter-ul cel mai mic i o mut .
Costul implement rii acestei metode este unul foarte ridicat datorit tehnologiei
necesare realiz rii counter-ului.

252

Din cauza costurilor mari se folosesc de obicei algoritmii similari cu LRU,


care ofer o implementare mai ieftin .
n unele situa ii, LRU e ueaz lamentabil. De exemplu, n cazul folosirii
ciclurilor care se ntind pe mai multe pagini. n aceste cazuri, algoritmul MRU
(Most Recently Used) este mult mai eficient. Majoritatea implement rilor LRU
ncearc s detecteze aceste cicluri i s le trateze corespunz tor cu algoritmul
MRU.
Variante ale LRU sunt:
LRU-K, cunoscut i sub numele de LRU-2, LRU-1 fiind identic cu LRU;
ARC.
Random (R)
Algoritmul de tip Random nlocuie te aleator o pagin din memorie cu una
de pe disc. Acest procedeu elimin costurile suplimentare legate de realizarea unui
sistem de monitorizare a referin elor c tre o pagin . De obicei, are rezultate mai
bune dect FIFO i n cazul ciclurilor chiar rezultate mai bune dect LRU, de i n
general n practic LRU se descurc mai bine. Sistemul de operare OS/390
construit pentru mainframe-urile de la IBM folose te, de exemplu, algoritmul LRU,
iar cnd performan ele acestuia scad trece la algoritmul Random.
Not Frequently Used (NFU)
Algoritmul NFU (pagini nefolosite frecvent) genereaz mai pu ine semnale
de tip eroare de pagin (page fault) dect algoritmul LRU cnd tabelul de pagini
con ine mul i pointer-i cu valori nule. Acest algoritm folose te un counter
(num tor), fiecare pagin avnd un astfel de counter de sine st tor. La fiecare
interval de ceas toate paginile referite n acel interval vor avea counter-ul
incrementat cu 1. Astfel, cu ajutorul counter-ului se poate determina ct de frecvent
a fost folosit o anumit pagin . Pagina cu valoarea cea mai mic a counter-ului va
fi selectat pentru a fi mutat pe disc. Viteza acestui algoritm este mic datorit
num torului.
Aging (A)
Algoritmul Aging (mb trnire) este o versiune mbun it a NFU, avnd
o vitez de lucru mult mai mare. Modific rile care l fac s in cont i de factorul
interval de timp. n loc ca doar s incrementeze contoarele paginilor apelate,
nef cnd nici o discriminare din punct de vedere al intervalului de timp n care
num rul de apeluri a contribuit la contorul de frecven , contorul de apel al unei
pagini este nti deplasat c tre dreapta (mp it la 2), nainte ca bitul de referin s
fie ad ugat n partea stng a num rului binar. De exemplu, dac o pagin are bi ii
de referin : 1, 0, 0, 1, 1, 0 cu 6 perioade de ceas nainte, contorul de referin va
ar ta n modul urm tor: 10000000, 01000000, 00100000, 10010000, 11001000,
01100100. Dup cum se poate observa, apelurile mai apropiate de momentul
prezent au un impact mai mare dect apelurile care au avut loc mai demult. Aceasta
asigur faptul c paginile care au fost apelate mai pu in, dar mai recent, s aib o

253

prioritate mai mare dect paginile care au fost apelate mai mult, dar n trecut. n
acest fel, cnd o pagin trebuie s fie nlocuit , vor fi alese paginile cu contorul cel
mai sc zut.
Observa ie. Algoritmul Aging difer de algoritmul LRU, n sensul n care
poate ine eviden a apelurilor n ultimele 16/32/64 intervale de timp (depinznd de
num rul de bi i pe care poate lucra procesorul). n consecin , se poate spune c
modul n care au decurs apelurile n memorie n ultimele 16 intervale de ceas este
suficient pentru a lua o decizie corect asupra c rei pagini trebuie nlocuite.
adar, algoritmul Aging poate oferi performan e foarte apropiate de cele ale
algoritmului optim (Belady), la un pre moderat.
Algoritmul Working Set

Fig. 6.5. Dimensiunea setului de pagini utilizate de ultimele k apeluri de memorie n func ie
de timp (t).

Este un algoritm cu grad mare de generalitate. Working Set reprezint setul


de pagini utilizate de ultimele k apeluri de memorie, iar func ia w(k,t) este
dimensiunea acestui set la momentul de timp t.
Compara ie ntre algoritmi
n figura 6.6 este reprezentat un grafic care red comparativ performan a
(raportat la num rul de excep ii page fault ap rute la 1000 de referin e) n func ie
de num rul de cadre apelate, pentru 4 dintre algoritmi: FIFO, Clock, optim i LRU.

Fig. 6.6. Compara ie ntre algoritmi.

254

6.2 Conceptul de segmentare


Fie, de exemplu, un compilator care poate avea mai multe tabele,
construite pe m sur ce decurge compilarea, incluznd:
tabela de simboluri, con innd numele i atributele variabilelor;
textul surs , memorat pentru tip rirea unui listing;
o tabel cu toate constantele ntregi i n virgul mobil folosite;
arborele de analiz sintactic a programului;
stiva folosit pentru apelurile de func ii ale compilatorului.
Se analizeaz ce se ntmpl dac un program are un num r deosebit de
mare de variabile. Por iunea din spa iul de adrese alocat pentru tabela de
simboluri se va umple, chiar dac mai este suficient spa iu n celelalte tabele.
Compilatorul ar putea, fire te, s afi eze un mesaj prin care s anun e
imposibilitatea continu rii compil rii din cauza num rului mare de variabile, lucru
care nu este corect atunci cnd mai exist spa iu nefolosit n celelalte tabele.
O solu ie imediat este de a furniza mai multe spa ii de adrese
independente, numite segmente. Fiecare segment const dintr-o secven liniar de
adrese, de la valoarea 0 la valoarea maxim . Lungimea fiec rui segment poate fi
orict de mare ntre 0 i valoarea maxim . Segmente diferite pot s aib , i, de
regul , au lungimi diferite. Mai mult chiar, lungimea unui segment se poate
modifica n timpul execu iei. Lungimea unui segment de stiv poate cre te ori de
cte ori se pune ceva n stiv i poate sc dea ori de cte ori se ia ceva din stiv .
Deoarece fiecare segment reprezint un spa iu de adrese separat, segmente
diferite vor cre te i vor sc dea independent, f
s se influen eze reciproc. Dac o
stiv dintr-un anumit segment are nevoie de un spa iu suplimentar pentru a cre te,
l poate avea, neexistnd nimic peste care s se suprapun . Evident, un segment se
poate umple, dar deoarece segmentele sunt de obicei mari, aceast situa ie este
deosebit de rar . Pentru a preciza o adres n aceast memorie segmentat sau
bidimensional , programul trebuie s furnizeze o adres cu dou componente: un
num r de segment i o adres n cadrul segmentului.
Un segment este, deci, o entitate logic unic de care programatorul este
con tient i pe care o folose te ca atare. Un segment poate con ine:
procedur ,
un vector,
o stiv ,
o colec ie de variabile scalare.
Observa ie. n general, un segment nu con ine elemente de tip diferit.
Segmentarea permite i partajarea de date sau cod ntre diferite programe.
Dac un calculator are mai multe programe care ruleaz n paralel i care folosesc
anumite proceduri de bibliotec , ar fi o risip de memorie dac fiecare program ar
avea copia sa proprie.
Segmentele pot avea diferite niveluri de protec ie:

255

un segment procedur poate fi marcat ca accesibil doar pentru execu ie,


interzicnd accesul pentru citirea din sau scrierea n el;
un segment care con ine un vector de numere n virgul mobil poate fi
marcat ca accesibil pentru citire/scriere, dar nu pentru execu ie, orice
ncercare de a fi executat fiind interceptat (o astfel de protec ie ajut de
obicei la depistarea erorilor de programare).
Exemplu. Procesorul 80286 utilizeaz 16 linii de adresare, putnd s
lucreze fie n modul real, ceea ce nseamn c func ioneaz cu un spa iu de
adresare liniar de 1 MB, fie n modul protejat. Pentru procesorul 80386, n modul
de lucru protejat pot fi adresate 16 K segmente, fie de 64 KB (286), fie de 4 GB
(386) fiecare.
Spre deosebire de cazul lui 80286, registrele segment pentru 80386 nu mai
specific adresa unui segment, ci indic o intrare ntr-unul din cele dou tabele de
adrese n care se afl zone ce con in descriptorii segmentului.
Memoria virtual este gestionat cu ajutorul a dou tabele:
1. LDT (Local Descriptor Table) de 8 K intr ri fiecare;
2. GDT (Global Descriptor Table).
Fiecare program are propriul s u tabel LDT, n timp ce tabelul GDT este
utilizat n comun de toate programele prin intermediul sistemului de operare.
LDT descrie segmentele locale ale fiec rui program, cum ar fi cele de cod,
date, stiv etc., n timp ce GDT descrie segmentele utilizate de sistemul de operare.
Registrul segment obi nuit este nlocuit n acest caz de un registru selector
pe 16 bi i, care con ine urm toarele informa ii (fig. 6.7).
1

13
index

0/1

num rul de intr ri ntr-unul din


tablourile GDT i LDT

GDT
sau
LDT

0 3 nivelul de
protec ie al
segmentului
respectiv

Fig. 6.7. Informa iile con inute n registrul selector.

Descriptorul este format din 4 octe i (fig. 6.8).


adresa de baz segment 0 15
adresa de baz
segment 24 31

m rimea segmentului 0 15

m rime
G D 0 X segment 16 19

Pr

32 bi i
Fig. 6.8. Structura descriptorului.

Tip

adresa de
baz 16 23

256

Semnifica iile nota iilor folosite sunt:


G = bit care indic dac m rimea segmentului este dat n octe i sau n pagini:
G = 0 f
paginare, m rimea este dat n octe i i rezult
dimensiunea maxim de 8 MB;
G = 1 m rimea este dat
n pagini de cte 4 octe i i rezult
dimensiunea maxim de 4 MB;
D = indicator al tipului de cuvinte cu care se lucreaz n interiorul segmentului:
D = 0 cuvinte de 16 bi i;
D = 1 cuvinte de 32 bi i;
P = bit care indic prezen a n memoria principal (MP):
P = 0 segmentul nu se g se te n MP;
P = 1 segmentul se g se te n MP;
Pr = 2 bi i care indic nivelul de prioritate n execu ie al programului din
care face parte segmentul (ntre 0 i 3);
Tip = 5 bi i care indic tipul segmentului (cod, date, stiv , extra segment
etc.) i nivelul s u de protec ie n modul protejat.
Acest tabel de descriptori folose te la ob inerea adresei fizice (fig. 6.9),
respectnd urm torul algoritm:
1. se pleac de la registrul selector i se ajunge ntr-unul din tabelele unde
sesc descriptorii de segment (care joac rolul tabelei de paginare):
adres , m rime i alte cmpuri;
2. folosind aceast informa ie, sistemul de operare utilizeaz o zon MSB
pentru adres la care adaug deplasamentul din program;
3. rezult 32 de bi i (o adres liniar folosit ca adres fizic ).
Selector
Deplasament

Adresa de baz
rimea
LDT
(GDT)

Alte
cmpuri
MSB

LSB

adresa liniar 32 bi i
Fig. 6.9. Utilizarea tabelului de descriptori n ob inerea adresei fizice.

Adresa liniar poate fi interpretat n dou feluri:


a) dac nu exist paginare, adresa liniar este interpretat ca adres fizic ,
spunndu-se n acest caz c se folose te o schem de memorie cu segmentare pur ;
Observa ie. Segmentele se pot suprapune spa iul de adresare liniar dac
programatorul nu ine o eviden clar a lor la scrierea programului. Ar fi fost prea
complicat pentru sistemul de operare s verifice dac aceste segmente sunt disjuncte.

257
10

10

Dir

12

Page

Deplasament

1024
linii

1024
linii
Adresa de
intrare n
tabelul
Page
0/1

MSB Deplasament

0/1
Fig. 6.10. Separarea nivelurilor de tabele.

b) dac exist paginare, adresa liniar este folosit pentru tabelele de


paginare (nc o treapt ) i de abia apoi ajung la adresa fizic . A adar, dac exist
paginare adresa liniar este interpretat ca adres virtual (adres din spa iul fizic
adresabil) i transformat n adres fizic (real ) prin intermediul tabelei de pagini
(vezi figura 6.10). Deoarece un segment poate avea 1 M de pagini de 4 K, metoda
de paginare la microprocesorul 80386 i urm toarele cuprinde dou niveluri de
tabele pentru a reduce din aceste tabele.
Observa ie. Pot exista 1024 de tabele de tip Page.
Nivelurile de protec ie (03) sunt reprezentate n figura 6.11.

Fig. 6.11. Nivelurile de protec ie.

258

Dac toate registrele selector trimit c tre un acela i descriptor (aflat n


LDT sau n GDT) cu adresa de baz 0 i m rimea maxim (1 M sau 4 G), se va
ob ine un sistem numit cu paginare pur , care face adresare liniar pe 32 de bi i.
n concluzie, procesoarele Intel ncepnd cu 80386 asigur trei scheme de
folosire a memoriei:
1. cu segmentare pur ;
2. cu paginare pur ;
3. superpozi ie ntre segmentare i paginare (paginare segmentat ).
Exemplu. Paginarea segmentelor folose te avantajul elimin rii fragment rii
externe creat de c tre paginare (pentru alocare poate fi folosit oricare dintre cadrele
disponibile). Deosebirea dintre aceast metod i segmentare este aceea c intrarea
tabelei de segment nu con ine adresa de baz a segmentului ci adresa de baz a unei
tabele de pagin asociat acestui segment.
Segmentul este format dintr-un num r de pagini de aceea i dimensiune.
Deplasarea n cadrul segmentului se exprim prin num r de pagin i deplasare n
pagin . Cu num rul de pagin folosit ca index n tabela de pagin a segmentului, se
ob ine num rul cadrului care, n final, se combin cu deplasarea n pagin i
formeaz adresa fizic (vezi figura 6.12). Deoarece ultima pagin a fiec rui
segment nu este ntotdeauna complet ocupat , metoda introduce totu i o cantitate
redus de fragmentare extern (n realitate, atunci cnd se lucreaz cu tabele de
segment de dimensiuni mari, mecanismul este ceva mai complicat).

Fig. 6.12. Exemplu de paginare segmentat .

259

6.2.1 Implementarea segment rii


Implementarea segment rii difer ntr-un mod esen ial de paginare:
paginile au dimensiuni fixe, pe cnd segmentele nu.
Exemplu. Se consider o memorie fizic care con ine ini ial 5 segmente
(fig. 6.12.a). Se analizeaz ce se ntmpl dac segmentul 1 este eliminat i nlocuit
cu segmentul 7, care este mai mic.
Se ob ine configura ia de memorie prezentat n figura 6.12.b. ntre
segmentul 7 i segmentul 2 exist o zon nefolosit , adic o gaur . Apoi segmentul
4 este nlocuit cu segmentul 5, ca n figura 6.12.c, iar segmentul 3 este nlocuit de
segmentul 6, ca n figura 6.10.d. Dup ce sistemul ruleaz o vreme, memoria va fi
mp it ntr-un num r de por iuni, unele con innd segmente, unele g uri. Acest
fenomen se nume te fragmentare extern .
Se analizeaz ce s-ar ntmpla dac programul ar referi segmentul 3 dup
ce a ap rut fragmentarea extern , ca n figura 6.10., d. Spa iul total disponibil n
uri este de 10 K, mai mult dect suficient pentru segmentul 3, dar deoarece
urile sunt distribuite n buc ele mici, nefolositoare, segmentul 3 pur i simplu nu
poate fi nc rcat. Pentru a o face totu i, trebuie mai nti eliminat din memorie un
alt segment.

6.2.2 Algoritmi de nlocuire a segmentelor


I. O modalitate de a elimina fragmentarea extern este compactarea: ori de
cte ori apare o gaur , toate segmentele de dup ea vor fi mutate ct mai aproape de
loca ia de memorie 0, eliminnd acea gaur i l snd o singur gaur , mare, la
sfr itul memoriei. Alternativ, se poate a tepta ca fragmentarea extern s devin
serioas (adic mai mult de un anume procent din memorie este pierdut n g uri),
nainte de a se face compactarea (eliminarea g urilor).
Figura 6.10.e prezint memoria din figura 6.10.d dup compactare
(defragmentare). Scopul compact rii este colectarea tuturor g urilor mici i inutilizabile
ntr-una singur , mare, n care pot fi plasate unul sau mai multe segmente. Compactarea
are dezavantajul evident al pierderii de timp cu realizarea ei. Compactarea dup apari ia
fiec rei g uri este de obicei mult prea cronofag .
Dac timpul necesar compact rii memoriei este inacceptabil de mare, este
nevoie de un algoritm care s stabileasc ce gaur se va folosi pentru un anumit
segment. Aceast gestiune a g urilor necesit men inerea unei liste cu adresele i
dimensiunile g urilor.
II. Un algoritm des ntlnit, numit best fit (cea mai bun potrivire) alege
cea mai mic gaur n care segmentul dorit va nc pea. Ideea este de a g si potriviri
ntre segmente i g uri, evitndu-se astfel preluarea unei por iuni dintr-o gaur
mare, care ar putea fi necesar ulterior pentru un segment mare.
III. Alt algoritm frecvent utilizat este first fit (prima potrivire), care
parcurge circular lista de g uri i alege prima gaur suficient de mare pentru a
stra segmentul.

260
Segment 4
(7k)
Segment 3
(8 k)
Segment 2
(5 k)
Segment 1
(8 k)
Segment 0
(4 k)

Segm. 1
Segm. 7

(a)

Segm. 3
Segm. 6

Gaur
(3 k)
Segment 5
(4 k)
Gaur
(4 k)
Segment 6
(4 k)
Segment 2
(5 k)
Gaur
(4 k)
Segment 7
(5 k)
Segment 0
(4 k)
(d)

Segment 4
(7k)
Segment 3
(8 k)
Segment 2
(5 k)
Gaur
(3 k)
Segment 7
(5 k)
Segment 0
(4 k)
(b)

Compactare

Segm. 4
Segm. 5

(c)

Gaur
(3 k)
Segment 5
(4 k)
Segment 3
(8 k)
Segment 2
(5 k)
Gaur
(3 k)
Segment 7
(5 k)
Segment 0
(4 k)

Gaur unic
(10 k)
Segment 5
(4 k)
Segment 6
(4 k)
Segment 2
(5 k)
Segment 7
(5 k)
Segment 0
(4 k)

(e)

Fig. 6.12. Exemplu de implementare a segment rii.

Procednd astfel, este evident c timpul de c utare necesar este mai mic
dect n cazul c ut rii n ntreaga list a celei mai bune potriviri, ceea ce reprezint
un avantaj al acestui algoritm. Ace ti ultimi doi algoritmi au tendin a de a reduce
dimensiunea medie a g urilor. Ori de cte ori un segment este plasat ntr-o gaur mai
mare dect dimensiunea sa, ceea ce se ntmpl aproape ntotdeauna (potrivirile exacte
fiind rare), gaura este divizat n dou p i. O parte este ocupat de segment, cealalt
devine noua gaur , care binen eles este mai mic dect gaura ini ial .
Dac nu exist un proces de compensare care s creeze g uri mai mari prin
unificarea celor mici, ace ti ultimi doi algoritmi vor duce n cele din urm , la
umplerea memoriei cu g uri mici, nefolositoare. n concluzie, ace ti algoritmi
trebuie utiliza i n conjunc ie cu compactarea, aplicat rar.

261

6.3. Exemple de gestionare a memoriei


Se define te gestionarea memoriei ca fiind translatarea adreselor virtuale
(folosite de programator) n adrese fizice identificabile n structura fizic , concret ,
a calculatorului. Primul reprezentant al familiei Intel care folose te acest mecanism
este 80286. De remarcat este faptul c Intel 80286 i succesorii s i au mecanismul
de gestionare implementat pe cip.
Gestionarea memoriei bazate pe principiile segment rii ncurajeaz
multiprocesarea, protec ia adreselor, protec ia proceselor a c ror izolare rezult n
mod natural din definirea segmentelor i atributelor, precum i interschimbarea
locului proceselor ntre memoria intern i cea extern .
Tabelul 6.2
Compara ie ntre paginare i segmentare
Considera ie

Paginare

Segmentare

Programatorul tie de existen a sa?

Nu

Da

Cte spa ii liniare de adres exist ?

Mai multe

Spa iul de adrese virtuale poate dep i


dimensiunea memoriei?

Da

Da

Tabelele de dimensiune variabil pot


fi gestionate u or?

Nu

Da

Pentru simularea
memoriilor mari

Pentru a furniza mai


multe spa ii de adrese

De ce a fost inventat tehnica?

Paginarea introduce i o nou no iune legat de adrese: adresa liniar .


Acest tip de adres rezult n urma translat rii adresei virtuale i urmeaz , la rndul
ei, s fie translatat n adresa fizic . n cazul familiei Intel, adresa liniar coincide
cu cea fizic dac G = 0 (vezi figura 6.8).
Se impun cteva observa ii preliminare:
pentru familia Intel, mecanismul pagin rii se aplic numai ncepnd de la
80386 i apoi la descenden ii familiei (80486, familia Pentium). Pentru
Intel 386/486 paginarea este op ional , n func ie de bitul de granularitate
din descriptorii de segmente;
adresa virtual , alc tuit din selector i adresa efectiv , este translatat n
adresa liniar i apoi n cea fizic . La fel ca adresa fizic , adresa liniar
(AL) este de 32 de bi i;
Intel 386/486 adaug modurilor de adresare cunoscute de la ascenden ii
familiei un nou tip: adresarea la care, al turi de baz i deplasament,
exist un index care poate fi nmul it cu un factor de scal 1, 2, 4 sau 8;
dimensiunea maxim a unui segment n memoria virtual se ob ine numai
pentru G = 1. n acest caz, un segment poate avea:
220 pagini 212 B/pagin = 232 B = 4 GB.

262

6.3.1. Memoria virtual la Multics


Sistemul de operare Multics rula pe ma inile Honeywell 6000 i pe urma ii
acesteia si asigura fiec rui program o memorie de pn la 218 segmente, fiecare
dintre ele putnd avea o lungime de pn la 65.536 cuvinte (de 36 bi i).
Pentru a combina avantajele pagin rii (dimensiunea uniform a paginii si
neobligativatea inerii n memorie a unui segment ntreg dac numai o parte din
acesta este folosit) cu avantajele segment rii (u urin a n programare, modularitate,
protec ia si partajarea), sistemul de operare Multics trateaz fiecare segment ca pe o
memorie virtual i astfel fiecare segment se pagineaz .
Fiecare program Multics are un tabel de segmente, cu cte un descriptor
pentru fiecare segment. Deoarece exist mai bine de un sfert de milion de intr ri n
tabel, acesta este el nsu i un segment i este paginat la rndul lui. Descriptorul de
segment con ine o indica ie care atest , sau nu, apartenen a segmentului la
memoria principal . Dac vreo parte din segment se afl n memorie, atunci se
consider c segmentul i tabelul s u de pagini se afl n memorie. Daca segmentul
este n memorie, descriptorul s u con ine un pointer de 18 bi i c tre tabelul s u de
pagini dup cum se poate vedea din figura 6.13.

Fig. 6.13. Descriptorul de segment i indicarea tabelelor de pagini.

Deoarece adresele fizice au 24 de bi i i paginile sunt aliniate la limite de 64


de octe i sunt necesari numai 18 bi i n descriptor pentru a stoca adresa tabelului de
pagini. Descriptorul con ine de asemenea dimensiunea segmentului, bi ii de
protec ie i alte cteva elemente. n figura 6.14 se poate observa un descriptor de
segment Multics.
Adresa segmentului n memoria secundar nu este n descriptorul de
segment, ci ntr-un alt tabel care este folosit de agentul de tratare a defectelor al
segmentului.

263

Fig. 6.14. Ilustrarea unui descriptor de sistem.

Trebuie specificat c fiecare segment este un spa iu de adrese obi nuit i


astfel i paginarea se face la fel ca la paginarea memoriei nesegmentate.
Dimensiunea normal a paginii este de 1024 de cuvinte. O observa ie pertinent
este c exist segmente nepaginate sau paginate n unit i de 64 de cuvinte de
obicei segmente mici i astfel se economise te memorie fizic .
O adres n Multics const din dou p i: segmentul i adresa n cadrul
segmentului. Adresa din cadrul segmentului este mai departe divizat ntre un num r
de pagin i un cuvnt n cadrul paginii. n figura 6.15 se observ aceast divizare.

Fig. 6.15. O adres virtual Multics de 34 de bi i.

Cnd are loc o referire la memorie, se urm re te urm torul algoritm:


1. Num rul de segment este folosit pentru a g si descriptorul de segment;
2. Se verific dac tabelul de pagini al segmentului se afl n memorie. Dac
tabelul de pagini este n memorie, i se stabile te loca ia. Dac nu este n memorie, are
loc un defect de segment. Dac are loc o nc lcare a protec iei, se genereaz o capcan .
3. Se examineaz intrarea din tabelul de pagini pentru pagina virtual cerut .
Dac pagina nu este n memorie, are loc un defect de pagin . Dac este n
memorie, adresa de memorie principal a nceputului paginii este extras din
intrarea tabelului de pagini.
4. Se adaug deplasarea la originea paginii pentru a furniza adresa de
memorie principal la care se afl cuvntul.
5. Are loc citirea sau scrierea n memorie (vezi figura 6.16).

264

Fig. 6.16. Conversia unei adrese Multics.

Pentru simplitate, a fost omis faptul c nsu i descriptorul de segment este


paginat. De fapt, este folosit un registru (registrul de baz al segmentului) pentru a
localiza descriptorul tabelului de pagini al segmentului, care la rndul s u indic
spre paginile descriptorului de segment. ndat ce este g sit descriptorul pentru
segmentul dorit, se continu adresarea dup cum este ar tat n figura 6.17.
Dac algoritmul precedent ar fi fost rulat de c tre sistemul de operare la fiecare
instruc iune, evident programul nu ar fi rulat foarte rapid. Pentru a nu exista aceast
problem hardul Multics con ine o tabel TLB de vitez mare pe 16 cuvinte, care
poate c uta n paralel o anumit cheie prin toate intr rile sale. Aceasta este ilustrat
n figura 6. Cnd o adres este prezentat calculatorului, hardul de adresare verific
nti dac adresa virtual se afl n TLB. Dac adresa se afl n TLB, num rul
cadrului de pagin se ob ine direct din TLB i se formeaz adresa efectiv a
cuvntului referit f a se consulta descriptorul de segment sau tabelul de pagini.

Fig. 6.17. Tabela TLB Multics simplificat .

265

Adresele celor 16 cele mai recent referite pagini sunt salvate n TLB.
Programele ale c ror seturi de lucru sunt mai mici dect dimensiunea tabelei TLB
vor ajunge la echilibru cu adresele ntregului set de lucru din TLB i prin urmare
vor rula eficient. Dac pagina nu este n TLB, descriptorul i tabelele de pagini sunt
referite efectiv pentru a se g si adresa cadrului de pagin i tabela TLB este
actualizat prin includerea acestei pagini, fiind eliminat pagina utilizat cel mai
pu in recent. Cmpul de vrst ine eviden a intr rilor utilizate cel mai pu in recent.
Tabela TLB este folosit pentru a compara n paralel segmentele i numerele de
pagin ale tuturor intr rilor.

6.3.2. Memoria virtual la Intel


Din multe puncte de vedere, memoria virtual de la Pentium se aseam
cu
cea de la MULTICS, incluznd prezen a att a segment rii ct i a pagin rii. n
timp ce MULTICS are 256K segmente independente, fiecare de pn la 64K
cuvinte de 36 de bi i, Pentium are 16K segmente independente, fiecare innd pn
la 1 miliard de cuvinte de 32 de bi i. Cu toate c sunt mai pu ine segmente,
dimensiunea mai mare a segmentului este de departe mult mai important , ntruct
pu ine programe au nevoie de mai mult de 1000 de segmente i multe programe
necesit segmente mari.
Inima sistemului de memorie virtual de Ia Pentium este format din dou
tabele: LDT (tabela descriptorilor locali) i GDT (tabela descriptorilor globali).
Fiecare program are propria sa tabel LDT, ns exist o singur copie a tabelei
GDT, partajat de toate programele de pe calculator. Tabela LDT descrie segmentele
locale fiec rui program, cuprinznd codul, datele, stiva i a a mai departe, n timp ce
GDT descrie segmentele sistem, inclusiv cele ale sistemului de operare.
Pentru a accesa un segment, un program de pe Pentium ncarc mai nti un
selector pentru segmentul respectiv, ntr-unul din cele 6 registre de segment ale
ma inii. n timpul execu iei, CS p streaz selectorul pentru segmentul de cod i DS
pentru cel de date. Celelalte registre de segment sunt mai pu in importante. Fiecare
selector este un num r pe 16 bi i, a a cum se vede n figura 6.18.

Fig. 6.18. Selector Pentium.

266

Unul dintre bi ii selectorului indic dac este vorba despre un segment local
sau global (adic segmentul este n LDT sau n GDT). Al i treisprezece bi i
precizeaz num rul intr rii n LDT sau GDT, astfel nct aceste tabele nu pot p stra
dect 8K descriptori de segmente. Ceilal i doi bi i se refer la protec ie i vor fi
discuta i mai trziu. Descriptorul 0 este invalid. El poate fi ns nc rcat ntr-unul
din registrele de segment, pentru a indica faptul c registrul segment nu este
momentan disponibil. Folosirea lui declan eaz o capcan .
n momentul n care un selector este nc rcat ntr-un registru de segment,
descriptorul corespunz tor este preluat din LDT sau GDT i memorat n registrele
interne ale MMU, pentru a putea fi accesat mai rapid. Un descriptor const din 8
octe i, cuprinznd pe lng alte informa ii i adresa de baz a segmentului, a a cum
se observ n figura 6.19.

Fig. 6.19. Descriptor de segment de cod pentru Pentium.

Formatul selectorului a fost ales n mod inteligent, pentru a u ura localizarea


descriptorului. Se selecteaz mai nti fie LDT, fie GDT, n func ie de bitul 2 din
selector. Apoi selectorul este copiat ntr-un registru de lucru (scratch) intern al
MMU, iar cei mai pu in semnificativi 3 bi i sunt seta i la 0. n final, adresa LDT
sau GDT este adunat , ob inndu-se un pointer direct spre descriptor. De exemplu,
selectorul 72 se refer la intrarea 9 n GDT, care se afl la adresa GDT+72.
Sunt prezenta i pa ii prin care o pereche (selector, deplasare) este convertit
ntr-o adres fizic . De ndat ce microprogramul tie ce registru de segment este
folosit, el poate g si descriptorul complet al segmentului corespunz tor selectorului
n registrele sale interne. Dac segmentul nu exist (selector 0) sau nu este
momentan n memorie, se declan eaz o capcan .
Apoi se verific dac deplasarea este dincolo de grani a segmentului, caz n
care se declan eaz alt capcan . Logic, n descriptor ar trebui s existe un cmp de
32 de bi i, pentru a preciza dimensiunea segmentului, dar deoarece sunt disponibili
doar 20 de bi i, trebuie folosit o alt metod .

267

Dac n cmpul G (granularitate) este valoarea 0, cmpul limit (Limit)


reprezint atunci dimensiunea exact a segmentului, pn la valori de 1MB. Dac
valoarea este 1, atunci cmpul limit con ine dimensiunea segmentului n pagini i
nu n octe i. Dimensiunea paginii la Pentium este fixat la 4KB, astfel nct 20 de
bi i ajung pentru segmente de pn la 212 octe i.
Presupunnd c segmentul este n memorie i c deplasarea este corect ,
Pentium adun apoi la deplasare cmpul baz (Base) de 32 de bi i din descriptor,
pentru a forma ceea ce se nume te o adres liniar (linear address), a a cum se
vede i n figura 6.20. Cmpul baz este divizat n trei componente i distribuit spre
descriptor, pentru compatibilitate cu 286, care avea un cmp baz de doar 24 de bi i.
Ca o consecin , cmpul baz permite fiec rui segment s nceap n orice loc din
spa iul liniar de adrese pe 32 de bi i.

Fig. 6.20. Conversia unui selector i a unei deplas ri ntr-o adres liniar .

Dac paginarea este dezactivat (printr-un bit ntr-un registru global de


control), atunci adresa liniar este interpretat ca adres fizic i trimis spre
memorie pentru citire sau scriere. De aceea, cu paginarea dezactivat are o schem
de segmentare pur , adresa de baz a fiec rui segment aflndu-se n descriptorul
asociat. Segmentele se pot suprapune, din ntmplare, probabil deoarece ar fi prea
mare efortul i timpul pentru a verifica dac ele sunt sau nu disjuncte.
Pe de alt parte, dac paginarea este activat , adresa liniar este interpretat
ca adres virtual i pus n coresponden cu o adres fizic folosind tabele de
pagini. Singura complica ie ce poate ap rea este c o adres virtual pe 32 de bi i i
o pagin de 4K permit unui segment s con in 1 milion de pagini, astfel nct se
folose te o punere n coresponden pe dou niveluri, pentru a reduce dimensiunea
tabelei de pagini pentru segmente mici.
Fiecare program n rulare are asociat un catalog de pagini (page directory),
format din 1024 intr ri de 32 bi i. El este localizat la o adres memorat ntr-un
registru global. Fiecare intrare n acest catalog indic spre un tabel de pagini care
con ine de asemenea 1024 intr ri de 32 bi i Intr rile din tabelul de pagini indic
spre cadrele de pagin .
Schema este prezentat n figura 6.22.

268

Fig. 6.21. Adresa liniar .

n figura 6.21 se prezint o adres liniar divizat n trei cmpuri: Dir


(catalog), Pagin (page) i Deplasare (offset). Cmpul Dir este utilizat primul ca
index n catalogul de pagini, pentru a localiza pointer-ul c tre tabelul de pagini
corespunz tor. Apoi cmpul Pagin este folosit ca index n tabelul de pagini, pentru
a afla adresa fizic a cadrului de pagin . Cmpul Deplasare este adunat la adresa
cadrului de pagin pentru a ob ine adresa fizic a octetului sau cuvntului adresat.
Intr rile n tabelul de pagini sunt de 32 de bi i fiecare, din care 20 de bi i
con in un num r de cadru de pagin . Ceilal i bi i reprezint bi i pentru controlul
accesului i bi i pentru a indica modificarea regiunii, seta i de c tre hard pentru
sistemul de operare, bi i de protec ie i al i bi i utilitari.
Fiecare tabel de pagini are 1024 de intr ri pentru cadre de pagin de 4K,
astfel nct o singur tabel de pagini gestioneaz 4MB de memorie. Un segment
mai mic de 4M va avea un catalog de pagini cu o singur intrare, un pointer c tre
singura i unica lui tabel de pagini. Astfel, consumul suplimentar de memorie
indus de segmentele scurte este doar de dou pagini, n loc de milioane de pagini
dac s-ar fi folosit tabele de pagini pe un singur nivel.
Pentru a evita accesul repetat la memorie, Pentium, ca i Multics, are o mic
tabel TLB pentru a reg si repede cele mai recent folosite combina ii Dir-Pagin i
a Ie pune n coresponden cu adresa fizic corespunz toare cadrului de pagin .
Doar pentru acele combina ii care nu au fost folosite recent se urmeaz pa ii descri i
n figura 6.22. Atta timp ct lipsurile TLB sunt rare, performan a este bun .

Fig. 6.22. Coresponden a ntre o adres liniar

i o adres fizic .

Este important de men ionat c dac o anumit aplica ie nu necesit


segmentare, ci se mul ume te cu un spa iu de adresare unic de 32 de bi i, paginat,
acest lucru se poate ob ine foarte u or. Toate registrele segment pot fi nc rcate cu
aceea i valoare a selectorului, care are un descriptor cu baz = 0 i limit de
valoare maxim permis . Deplasarea instruc iunii va fi adresa liniar , cu un singur

269

spa iu de adrese folosit, adic paginare tradi ional . De fapt, toate sistemele de
operare pentru Pentium func ioneaz n acest mod. OS/2 a fost singurul care s-a
folosit de toat puterea arhitecturii MMU de la Intel.
Proiectarea sistemului de memorie virtual la Intel Pentium, date fiind
scopurile contradictorii de implementare a pagin rii pure, a segment rii pure i a
segmentelor paginate, este un real succes. Faptul c s-a p strat compatibilitatea cu
286 i c s-au reu it toate acestea ntr-un mod att de eficient este un real succes
din punct de vedere al proiect rii.

6.3.3. Memoria virtual la Motorola


Din punct de vedere conceptual, utilizarea memoriei virtuale este mai simpl
la microprocesorul Motorola 68030, utiliznd doar scheme de paginare pur . Cu
toate acestea, datorit faptului c schemele Motorola folosesc un num r variabil de
niveluri de tabelare (ntre 0 i 4), sistemul de operare ar avea de ndeplinit opera ii
destul de elaborate, de aceea majoritatea sarcinilor de gestionare a memoriei sunt
preluate de un controler de tip MMU (Memory Management Unit), care ncepnd
cu 68030, este integrat n aceea i capsul cu cipul care reprezint nucleul procesor.
Observa ie. La microprocesoarele Pentium exist unitatea de pagin (Page Unit).
n locul mp irii fixe a adreselor liniare n zonele Dir, Page i Deplasare (vezi
figura 6.21), num rul zonelor de tabelare i num rul de bi i ai fiec rui nivel sunt specificate
n cmpurile unui registru global, denumit TCR (Translation Control Register).
32 bi i (adres liniar )
12

11

ignora i

deplasament

10

B
C

16
intr ri

4 bi i

8
intr ri

Fig. 6.23. Structura adresei liniare la Motorola 68030.

MSB deplasament

270

Adresa liniar va fi mp it conform figurii 6.23.


Avnd n vedere c majoritatea programelor utilizeaz o memorie virtual
mult mai mic de 4 GB (232), n registrul TCR este prev zut i un cmp n care se
poate preciza num rul MSB al adresei la care se renun .
Exemplu. Prin intermediul TCR, se poate preciza c :
12 bi i MSB sunt ignora i;
4 bi i reprezint nivelul de tabelare A;
3 bi i reprezint nivelul de tabelare B;
2 bi i reprezint nivelul de tabelare C;
11 bi i reprezint deplasamentul (deplasament n pagin de 2 K).

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