Vous êtes sur la page 1sur 131

1.

I NTRODUCERE
Lucrarea de fa trateaz aspecte funcionale, constructive si relaionale ale
blocurilor unui sistem de calcul numeric. Aplicaiile derulate pe calculatoare sunt:
- prelucrrile de date;
- prelucrrile de informaii;
- prelucrrile de cunostine;
- prelucrrile inteligente (inteligena artificial).
Fig. 1.1. Structura piramidal a tipurilor de prelucrri.
Spaiul datelor. Materialul prelucrat la baza piramidei este considerat un spaiu
de datedin care fac parte numere reprezentate n diverse formate. Datele prelucrate
sunt considerate mutual independente n spaiul lor. Spaiul datelor este cel mai mare
spaiu al obiectelor prelucrate cu sistemul de calcul, incluznd caractere, simboluri
si/sau reprezentri multidimensionale ale acestora, numere n diverse formate.
Spaiul informaiilor. Termenul de informaie reprezint o colecie de date
legate ntre ele printr-o anumit relaie sau structur sintactic. El se prezint ca un
subspaiu al spaiului de date. Prin sintax se nelege un set de reguli care
guverneaz alctuirea propoziiilor dintr-un limbaj.
Spaiul cunotinelor. Formeaz un subspaiu n cadrul spaiului informaiilor.
Informaiile sunt legate ntre ele printr-o structur semantic. Semantica reprezint
un set de reguli care extrag nelesul propoziiilor dintr-un limbaj.
Spaiul prelucrrilor de tip inteligen artificial. Lucreaz cu baze de
cunostine, reguli de inferen (raionament) sau cu alte mijloace specifice
domeniului de inteligen artificial. Calculatoarele de astzi au devenit suficient
de rapide. Cu toate acestea, nici un calculator actual nu este un sistem inteligent
care gndeste independent.
ARHITECTURA SISTEMELOR DE CALCUL
10
Un calculator este o masin capabil de a rezolva probleme aplicnd
instruciuni definite n prealabil. Circuitele electronice ale fiecrui calculator nu pot
recunoaste si executa direct dect un numr limitat de instruciuni. Ansamblul de
instruciuni executate direct de un calculator formeaz un limbaj care permite
oamenilor s comunice cu calculatorul. Este ceea ce se numeste limbajul main.
Problema care se pune n acest caz este c limbajele masin sunt att de primitive
nct este extrem de greoi a le utiliza. Sunt dou lucruri de rezolvat n privina
acestei probleme, ambele viznd construirea unui nou set de instruciuni mai
practic de utilizat dect limbajul masin. n ansamblu, aceste noi instruciuni
formeaz un nou limbaj care va fi numit L2, n timp ce ansamblul instruciunilor
corespunztoare limbajului masin formeaz nivelul L1.
Prima sarcin de executat a unui program scris n limbajul L2 este de a
nlocui fiecare instruciune a programului cu instruciunile corespunztoare
limbajului L1 care i sunt echivalente. Calculatorul va executa deci noul program n
limbajul L1 si nu vechiul program care a fost scris n limbajul L2. Se poate spune
c 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 fiecrei instruciuni a programului din L2, s execute direct secvena de
instruciuni n limbajul L1 echivalent. Aceast tehnic, cu ajutorul creia nu mai
este nevoie s se genereze un program echivalent n L1 care va examina si executa
fiecare instruciune din L2, poart denumirea de interpretare.
Traducerea si interpretarea se aseamn mult. n fiecare caz, toate
instruciunile n L2 sunt convertite n final ntr-o suit echivalent de instruciuni
corespunztoare 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 si programul n L1 va fi cel executat. n replic, interpretarea const n
analizarea si apoi executarea imediat a fiecrei instruciuni din limbajul L2.
Aceste dou metode sunt foarte utilizate n proporii aproximativ identice.
Pentru a simplifica lucrurile, este mai usor de imaginat existena unui
calculator virtual, al crui limbaj masin este L2. Dac se poate construi aceast
masin la un pre rezonabil nu va mai fi nevoie de limbajul L1 si nici de o masin
capabil s execute acest limbaj. Utilizatorii vor scrie tot mai simplu programele
lor n limbajul L2 si calculatorul va executa direct aceste programe.
1.1. Limbaje i maini virtuale
Limbajul si masina virtual sunt ntr-o relaie foarte limitat. Orice masin prin
limbajul su formeaz un ansamblu de instruciuni de baz pe care le poate executa. Se
poate spune deci c o masin defineste un limbaj. Reciproc, un limbaj defineste o
masin si, mai precis, un limbaj defineste o masin care poate executa toate programele
scrise n acel limbaj. Bineneles, masina definit printr-un limbaj oarecare poate fi
extraordinar de complex si cu un cost prohibitiv. Dar, cu toate acestea, ea poate exista.
Introducere
11
Un calculator alctuit din n nivele poate fi vzut ca n masini virtuale distincte,
fiecare masin virtual avnd propriul su 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
masin virtual de nivelul n nu este interesat de compilatoare si nici de
interpretoarele aflate la un nivel inferior. Pentru acesta nu este interesant de stiut n
acest caz dac programele sunt traduse ntr-un limbaj cunoscut de calculator sau dac
ele sunt executate direct de ctre circuitele aflate la nivelul fizic. n ambele cazuri se
va ajunge la acelasi 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.
ARHITECTURA SISTEMELOR DE CALCUL
12
Nivelul 0, primul nivel care intr n alctuirea unui calculator, poart
denumirea de nivel fizic. Obiectele utilizate la acest nivel sunt pori, care prin
definiie pot fi privite ca niste componente logice interconectate ntre ele. Fiecare
poart dispune de una sau mai multe intrri logice si ntoarce ca rezultat o funcie
simpl obinut conform semnificaiei de la intrare (de exemplu SI, SAU, NU). O
poart este realizat cu ajutorul tranzistorilor. Acest nivel execut instruciunile
limbajului microprogramat (urmtorul nivel ierarhic), care acioneaz asupra
nivelului 0 ca niste comenzi. De reinut este faptul c nivelul 0 poate s nu fie
nivelul cel mai sczut, sub el putnd exista un alt nivel care poart denumirea de
nivel component, si care de regul nu apare n schema nivelurilor unui calculator.
Nivelul urmtor este nivelul 1 sau nivelul microprogramat. El este nivelul
limbajului intern al masinii. Aici exist un microprogram care interpreteaz
instruciunile de nivel 2 si care este realizat cu un set restrns de instruciuni simple
(n medie cam 20 de instruciuni), de transfer si teste simple ale unor condiii. Este
scris ntr-o memorie ROM intern, la ea avnd acces numai productorul.
Deasupra nivelului 1 se afl nivelul 2 sau nivelul mainii tradiionale.
Fiecare procesor defineste n mod implicit un limbaj de nivel 2 si o masin virtual
al crei limbaj masin este interpretat de un microprogram. Denumirea de nivel al
masinii tradiionale este dat deoarece componentele au caracteristici comune.
Aceeasi structur fizic poate corespunde la dou sau mai multe masini dac
microprogramul de pe nivelul 1 este scris n mod adecvat si aceeasi masin
tradiional se poate implementa prin diverse structuri fizice. Exist si excepii:
unele calculatoare nu dispun de nivelul microprogramat (nivelul 1), n acest caz
instruciunile 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
instruciunilor care definesc limbajul 3 sunt de tip masin. Se gsesc aici sarcini
specifice privind gestionarea memoriei si capacitatea de executare a mai multor
programe n paralel. Acest nivel poart denumirea de nivelul sistemului de operare.
De remarcat c nivelele 1 si 2 nu sunt accesibile programatorului mediu. Ele
sunt necesare pentru interpretarea nivelului inferior si sunt scrise de ctre specialisti.
Limbajele de nivel 1, 2 si 3 sunt orientate ctre modul numeric, iar ncepnd cu
nivelul 4 apar limbaje formate din simboluri si 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 traductoare.
Programele realizate n limbaj de asamblare sunt mai nti traduse n limbaje pentru
nivelurile 1, 2 si 3 si apoi interpretate de masinile reale sau virtuale corespondente.
Urmtorul nivel ierarhic este nivelul 5, numit nivelul limbajului de aplicaie.
Aici se afl limbaje concepute pentru a fi utilizate de ctre programatorii de
aplicaii. Ele mai sunt adesea denumite si limbaje de nivel nalt si 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 ctre programe traductoare specializate numite compilatoare.
Introducere
13
Nivelul 6, care este si cel mai de sus nivel, este reprezentat de un ansamblu
de programe. Ele conin numeroase date pentru aplicaii care pot ine de domenii
diferite de lucru.
n concluzie, se poate spune c un calculator poate fi vzut ca o suit de
nivele, fiecare nivel nglobnd toate nivelele precedente. Un nivel reprezint un
grad oarecare de abstractizare si conine diverse obiecte si operaii cu aceste
obiecte. n sens ascendent creste complexitatea prelucrrii, iar n sens descendent
creste volumul materialului prelucrat.
Ansamblul tipurilor de date, operaiilor si caracteristicilor fiecrui nivel
poart denumirea de arhitectura nivelului. n particular, arhitectura calculatoarelor
si structura lor semnific aproape acelasi lucru.
1.3. Etapele evoluiei arhitecturii calculatoarelor
Cea mai mare parte a vechilor calculatoare utilizate au iesit astzi din uz,
ajungnd piese de muzeu. Cu toate acestea, au existat cteva masini care au avut un
rol important n evoluia calculatoarelor. Pentru acestea se vor analiza n continuare
cteva din principalele caracteristici.
1.3.1. Generaia 0: calculatoarele mecanice (1642-1945)
Meritul de a fi realizat prima masin de calcul i revine lui Blaise Pascal. n
onoarea sa a fost denumit si primul limbaj de programare care a fost inventat.
Acest prim calculator a fost n ntregime un calculator mecanic, bazat pe angrenajul
unor roi dinate acionate manual, principalele operaii care puteau fi efectuate
fiind adunri si scderi. Treizeci de ani mai trziu acestei masini de calcul i-au fost
adugate de ctre Leibnitz alte dou noi operaii: nmulirea si mprirea.
Au urmat apoi alte asemenea masini, dintre care poate fi amintit prima
main analitic. Aceasta cuprindea patru pri: memoria (magazia), unitatea de
calcul, intrarea (cititorul de cartele perforate) si iesirea. Memoria dispunea de 1000
de cuvinte de 50 de cifre zecimale care puteau fi utilizate pentru stocarea
variabilelor si rezultatelor. Unitatea de calcul prelua operanzii provenii din
memorie, fcea diverse operaii asupra lor (adunare, scdere, nmulire, mprire)
si ntorcea rezultatul tot n memorie. Toate aceste blocuri erau n ntregime
mecanice. Marea noutate a acestei masini consta n faptul c putea citi instruciuni
de pe cartelele perforate si apoi le putea trata. Unele instruciuni puteau comanda
masinii s preia doi operanzi din memorie, s efectueze o operaie asupra lor si s
trimit rezultatul n memorie. Procesul continu pn n anul 1944 cnd a fost
construit prima masin, Mark I, care avea 72 cuvinte a 23 cifre si un ciclu masin
de 6 secunde. A urmat ndeaproape succesoarea sa Mark II. Se poate afirma c,
practic, era electronicii ncepuse.
ARHITECTURA SISTEMELOR DE CALCUL
14
1.3.2. Prima generaie: tuburile cu vid (1945-1955)
Se poate spune c al doilea rzboi mondial a grbit apariia apariiei primelor
calculatoare echipate cu componente electronice, chiar dac acestea aveau s fie
tuburile cu vid. Primul calculator construit si folosit a fost ENIGMA, folosit pentru
criptarea mesajelor care urmau a fi trimise de ctre armata german prin radio
submarinelor. Nici armata britanic nu a stat cu minile n sn, ea reusind s pun
la punct un calculator numit COLOSSUS, folosit pentru decodarea mesajelor,
deoarece erau foarte multe calcule de fcut. Printele lui COLOSSUS a fost omul
de stiin englez Alan Turing. Urmeaz apoi un nou model numit ENIAC. Acest
asa zis calculator cuprindea 18000 tuburi cu vid si 1500 de relee; cntrea peste 30
de tone si consuma 150 kW. Din punct de vedere al unitii de calcul dispunea de
20 registre a 10 cifre zecimale. La foarte puin timp dup aceasta si face apariia
un nou calculator, al crui realizator, John von Neumann, va intra n istorie, putnd
fi considerat pe drept cuvnt printele calculatoarelor actuale. Schema unei masini
von Neumann este redat n figura 1.3.
Fig. 1.3. Schema unei masini von Neumann.
Masina von Neumann era alctuit din 5 pri: memoria, unitatea aritmetic
si logic, unitatea de control, dispozitivele de intrare si cele de iesire. Memoria
dispunea de 4096 cuvinte, fiecare cuvnt avnd 40 de bii (0 sau1). Instruciunile
cuprindeau dou cmpuri: 8 bii pentru tipul instruciunii si 12 bii pentru adres.
Unitatea aritmetic si logic coninea un registru intern special numit acumulator.
Masina nu dispunea de capacitate de calcul n virgul mobil.
Fcnd un salt peste timp se ajunge la modelul IBM 704 care avea aceeasi
structur cu 4 K de memorie, instruciuni de 36 de bii si dispozitive speciale de
calcul n virgul mobil.
1.3.3. A doua generaie: 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 masin de 4 K cuvinte de 18 bii, avnd ciclul masin de 5 ms. n
comparaie 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 ctre firma DEC si deci
participarea la nasterea unei industrii mini-informatice.
n 1964 apare pe pia modelul 6600 al firmei CDC, o masin aproape de 10
ori mai rapid dect btrnul IBM 7094. Impactul asupra publicului a fost unul
foarte puternic, numeroase firme exprimndu-si dorina de a cumpra un astfel de
calculator. Diferena fa de modelul IBM: o arhitectur paralel. n concluzie,
dispunea de mai multe uniti funcionale capabile s execute simultan diverse
operaii. Acest model putea executa 10 instruciuni n acelasi timp.
1.3.4. A treia generaie: 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 si mai ieftine.
n anul 1965, firma IBM, numrul unu n domeniul informaticii, scoate pe
pia modelul IBM 360, acesta fiind primul calculator capabil de a simula un alt
calculator. Apariia circuitelor integrate a dus la dezvoltarea industriei
microinformaticii, prin apariia unor noi modele, dintre care pot fi amintite
calculatorul PDP-11 realizat de firma DEC. El este asemntor cu modelul 360 al
firmei IBM, dar cu un raport performan/cost mult mai bun.
1.3.5. A patra generaie: circuitele VLSI (1980-1990)
Aceast etap este cea n care ncep s apar primele calculatoare personale,
acest lucru fiind posibil datorit unor factori decisivi:
- perfecionarea tehnologiei de fabricaie;
- dezvoltarea reelelor de calculatoare;
- diversitatea mare de modele de arhitecturi;
- apariia conceptelor de multimedia si de programare orientat pe obiecte.
Un pas important n aceast etap a fost reprezentat de apariia 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 consoriu format din Apple si 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 generaie: prelucrarea masiv paralel (dup 1990)
nceputul generaiei a cincia este marcat de dezvoltarea calculatoarelor cu
prelucrare masiv paralel, de exemplu CM 2 si CM 5 de la Thinking Machines Co.
ARHITECTURA SISTEMELOR DE CALCUL
16
Un alt element esenial este apariia si dezvoltarea serviciului www (World
Wide Web) iniiat de Laboratorul CERN din Geneva n colaborare cu mai multe
universiti americane.
n 1993, firma Intel construieste microprocesorul cu structur superscalar
Pentium. Apar sistemele masiv paralele cu memorie partajat si distribuit
(Cray/MPP). Interactivitatea serviciului www este asigurat prin introducerea
tehnologiei Java.
Evoluia procesoarelor a luat apoi un avnt puternic, frecvenele de lucru
crescnd n numai opt ani de la 100 MHz la peste 3 GHz, nregistrndu-se n
acelasi timp si o mbuntire a arhitecturii microprocesoarelor prin specializare,
memorie cache, paralelism (pipe-line), optimizarea algoritmilor
Este prezentat n continuare un scurt istoric al dezvoltrii domeniului.
AN NUME SUBI ECT
1642 Blaise Pascal Prima masin de calculat mecanic
1834 C. Babbage Masina analitic de la Cambridge cu instruciuni
pe cartel perforat
1904 J.A. Flemming Dioda
1906 L. De Forest Trioda
1936 K. Zuse Primul calculator cu relee Berlin
1943 Guvernul britanic,
cu concursul lui A. Turing
Primul calculator electronic cu tuburi cu vid
Colossus
1944 H. Aiken Primul calculator american Mark 1 (72 cuvinte a
23 cifre, ciclu masin de 6 sec.); nceputul erei
electronicii
1946 J. Mauchly si J.P. Eckert Debutul generaiei I de calculatoare Eniac, Univ.
Pennsylvania (18.000 tuburi electronice, 1.500
relee, 600 comutatoare, 30 tone, 150 KW)
1948 J. Bardeen, W. Shockley,
W. Brattain
Tranzistorul
1948 N. Wiener Cibernetica
1949 M. Wilkes, cu arhitectur
propus de J. von Neumann
Primul calculator cu program nregistrat, EDSAC
1951 MIT Primul calculator n timp real, Whirlwind
1951 J. Mauchly si J.P. Eckert Primul calculator comercializat Univac 1
1952 J. von Neumann Calculatorul IAS (Princeton) rspndeste
arhitectura de baz von Neumann
1955 Laboratoarele Lincoln Primul calculator echipat cu tranzistoare TX 0
1956 Firma IBM Calculatorul IBM 704
~1960 Circuite integrate
1960-61 Firma DEC Primul minicalculator, PDP-1, practic nceputul
generaiei a doua de calculatoare (tranzistorizate)
si a miniinformaticii
1961 Firma IBM Masina de gestiune 1401
1962 Firma IBM Primul calculator stiinific puternic
(pe 36 de bii) IBM 7094
Introducere
17
1963 Firma Borroughs Calculatorul B 5000 primul calculator dedicat
unui limbaj de programare: Algol 60
1964 Firma IBM Prima familie de calculatoare, IBM 360; firma
IBM preia supremaia n informatic;
multiprogramare; nceputul generaiei a treia
(cu circuite integrate)
1964 Firma CDC Primul calculator paralel 6600
1965 Firma DEC Primul calculator cu producie de mas
(pe 12 bii), PDP-8
1970 Firma DEC Minicalculatorul PDP-11, firma DEC
preia supremaia n miniinformatic
~1970 Circuite integrate pe scar larg
1971 Firma Intel Primul microprocesor de 4 bii 4004
1972 Firma Intel Primul microprocesor de 8 bii 8008
1974 Firma Cray Primul supercalculator: Cray-1
1974 Firma Intel Microprocesorul 8080:
prima unitate central pe un cip
1978 Firma Intel Primul microprocesor de 16 bii 8086
1978 Firma DEC Primul superminicalculator de 32 bii VAX
1979 Firma Motorola Primul procesor al familiei 680x0 68000
1980 Firma IBM nceputul generaiei a patra de calculatoare (cu
circuite VLSI); era calculatoarelor personale, PC
1982 Firma Intel Microprocesorul de 16 bii 80286
1983 S.U.A. Tehnologia LAN (Local Area Network) este
folosit pe scar larg
1984 Firma Motorola Primul microprocesor de 32 bii 68020
1985 Firma Intel Microprocesorul de 32 bii 80386
1987 Firma Motorola Microprocesorul de 32 bii cu unitate de gestiune a
memoriei 68030
1989 Firma Intel Microprocesorul de 32 bii cu coprocesor si
memorie cache 80486
1990 -
1991
Thinking Machines Co.
CM 2 si CM 5
nceputul generaiei a cincia de calculatoare
(prelucrare masiv paralel)
1992 Laboratorul CERN, Geneva Serviciul de informaii www
(World Wide Web) oferit pe Internet
1993 Firma Intel Microprocesorul cu structur superscalar
Pentium
1993 Firma Cray Research Cray/MPP Sistem masiv paralel
Cu memorie partajat distribuit
1995 Firma Sun Microsystems Tehnologia JAVA asigur interactivitatea
serviciului www
1996 Firma Cyrix Microprocesorul n arhitectur superpipe-line
686 P200+
1997 Firma AMD Microprocesoarele RISC K5, K6
1998 Firma AMD Microprocesorul K6-2 3D
1998 Firma Intel Microprocesorul Mendocino/333 MHz
1999 Firma Intel Microprocesorul Pentium III/600 MHz
1999 Firma AMD Microprocesorul Athlon/K7
2000 Firma AMD Microprocesorul Sharptooth /K6-3
ARHITECTURA SISTEMELOR DE CALCUL
18
2002 Firma Intel Microprocesorul Pentium 4 (> 3 GHz)
2002 Firma AMD Microprocesorul AMD Athlon XP 2600+
2003 Firma AMD Microprocesorul AMD Opteron (64 bii)
2005 Firma AMD Microprocesorul AMD Opteron (2)
2005 Firma Intel Microprocesorul Intel Pentium D
2006 Firma Intel Microprocesorul Intel Core (1, 2)
2007 Firma AMD Microprocesorul AMD Phenom (2, 3, 4)
2007 Firma Intel Microprocesorul Intel Dual Core
2007 Firma Intel Microprocesorul Intel Core 2 (1, 2, 4)
2008 ... ... ... ... ... ...
2. TI PURI DE ARHI TECTURI
2.1. Clasificarea arhitecturii sistemelor de calcul
2.1.1. Clasificarea Flynn
Clasificarea Flynn se face dup gradul de multiplicitate al irurilor formate
din secvene de instruciuni i secvene de date care pot fi tratate simultan din punct
de vedere hardware. Prin secven de date se nelege un ir de date de intrare,
rezultate pariale sau rezultate temporare care sunt apelate de ctre o secven de
instruciuni.
Conform acestei clasificri 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).
Dei sunt diferite ntre ele, toate schemele urmtoare respect succesiunea
evenimentelor din arhitectura Von Neumann: instruciunile i datele sunt extrase
din memorie, instruciunile sunt decodate de UC care trimite secvena de
instruciuni ctre UP pentru execuie, datele circul ntre memorie i procesor pe o
cale bidirecional.
n continuare se va nota irul de date cu SD i cel de instruciuni cu SI.
2.1.1.1. Arhitectura SI SD
Fig. 2.1. Structura arhitecturii SISD.
Caracteristici:
- instruciunile sunt executate serial, ns pot exista suprapuneri n
execuie (pipeline). Majoritatea structurilor SISD rmase astzi n uz
folosesc structuri pipeline.
ARHITECTURA SISTEMELOR DE CALCUL
20
- un calculator cu structur SISD poate avea mai multe elemente de
prelucrare (funcii definite), toate gsindu-se sub supervizarea aceleiai
unice UC.
Exemple: IBM 7090, VAX 11/780, CDC 6600, IBM 360/91, CRAY.
Limitrile arhitecturii SI SD
La acest tip de arhitecturi, viteza calculatorului este determinat de perioada
ceasului. Dac perioada ceasului scade, calculatorul devine n consecin mai rapid.
Pentru a obine un ceas mai rapid exist dou posibiliti:
- calea de semnal s fie mai scurt;
- tranzistorii folosii s fie mai rapizi.
Din nefericire, se pare c ambele au atins o anumit limitare din punct de
vedere tehnologic.
Scurtarea cii de semnal ar costa foarte mult. Creterea numrului de
tranzistori pe unitatea de arie ar duce la creterea dramatic a cldurii disipate n
exterior. Sistemele suplimentare de rcire ar costa i ele foarte mult.
Se lucreaz n prezent la fabricarea unor cipuri de joas putere(Low Power
Chips) care ar duce la scderea cldurii generate. Aceasta se poate realiza prin
meninerea constant a densitii de energie n timp ce numrul de tranzistori pe
unitatea de arie a cipurilor ar crete.
Realizarea de tranzistori mai rapizi este, de asemenea, foarte costisitoare. n
acest scop se lucreaz la scderea rezistenei firelor prin care trece curentul.
Aluminiul este elementul folosit n 1998, dar recent s-a reuit construcia unui cip
cu fire din cupru. Concomitent cu scderea rezistenei firelor se lucreaz i la
mbunWirea izolaiei dintre fire.
Este evident c perioada ceasului nu poate fi fcut egal cu 0. n consecin,
modul secvenial de tratare a operaiilor impus de arhitectura von Neumann
distruge orice speran ntr-o viitoare cretere a vitezei calculatoarelor. Aceast
situaie 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 SI MD
Caracteristici:
- exist mai multe UP datoritirului de date multiplu, preluat din memoria
partajat (memoria mpUit n mai multe memorii);
- corespunde matricelor de microprocesoare: UP identice i supervizate de
o singur UC;
- toate UP primesc instruciunile (setul unic de instruciuni) care acioneaz
asupra unor seturi de date diferite, provenite din iruri diferite de date
SD1, ..., SDn;
- mainile SIMD pot efectua dou tipuri de prelucrri: pe cuvnt (word-
slice) i pe bit (bit-slice).
Tipuri de arhitecturi
21
Fig. 2.2. Structura arhitecturii SIMD.
Aceste tipuri de maini lucreaz foarte bine pe seturi de date formate de
matrice de dimensiuni foarte mari atunci cnd este necesar s se execute asupra lor
aceeai operaie. Mainile SIMD sunt eficiente i n cazul procesrii reelelor neurale.
Exemplu: CM (Connection Machine) fabricat de Thinking Machines
Company din Cambridge (Massachusetts).
Limitrile arhitecturii SI MD
Aceste tipuri de maini sunt destul de scumpe n ceea ce privete costurile de
producie, deoarece bancurile de procesoare nu sunt componente standard. Chiar
dac numrul celor care au nevoie de astfel de maini este n continu cretere,
acetia nu sunt destul de numeroi pentru a justifica existena unor fabrici dedicate
exclusiv produciei de SIMD-uri. n consecin, aceste maini sunt n general
Icute la comandi cost foarte mult.
1.4.1.3. Arhitectura MI SD
Dei aceast main 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 clieni dornici s investeasc ntr-o astfel de arhitectur,
deoarece nu se adreseaz nici uneia dintre aplicaiile de baz.
Fig. 2.3. Structura arhitecturii MISD.
Caracteristici:
- fiecare UC lucreaz cu irul de instruciuni propriu SI1, ..., SIn;
- fiecare UP lucreaz cu acelai ir de date, care suport mai multe prelucrri;
- partajare pe orizontal (un singur ir de date, mai multe iruri de instruciuni);
ARHITECTURA SISTEMELOR DE CALCUL
22
- ieirea de la UP1 devine intrare pentru UP2 .a.m.d.
Structura se numete macro-pipeline(are doar o valoare teoretic).
2.1.1.3. Arhitectura MI MD
Aceste tipuri de calculatoare sunt cunoscute sub denumirea de
multiprocesoare, chiar dac i mainile SIMD sunt tot multiprocesor. n
calculatoarele MIMD paralelismul este realizat prin lansarea n execuie a mai
multor instruciuni n acelai timp pe diferite seturi de date. Este evident c sunt
necesare elemente adiionale de control pentru a trimite instruciunea corect i
data care trebuie la procesorul ales, toate n acelai 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 uniti se poate compensa prin alocarea sarcinii de
prelucrare altei uniti (grad ridicat de toleran la defectri);
- se poate utiliza reconfigurarea dinamic pentru a face fa gradelor
variabile de ncrcare 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 acelai spaiu de memorie adresat de
cele n procesoare (dac nu se ntmpl acest lucru spaii 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 comunicaii).
Dac la un sistem MIMD intrinsec interaciunea ntre microprocesoare este
puternic, sistemul se numete cu cuplaj strns. Legtura procesor memorie se
face prin intermediul unor magistrale de interconectare. Comunicaia i sincronizarea
ntre procesoare se realizeaz prin zone comune de memorie. Avantaj: comoditate
de programare oferit de spaiul comun de adrese (shared address space).
Tipuri de arhitecturi
23
n caz contrar, sistemul se numete cu cuplaj slab. Legtura procesor
memorie se face prin conexiuni seriale punct-la-punct (de tip reea). Comunicaia
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 mainilor cu memorie partajat, maina original von Neumann a
fost extins prin includerea a ceea ce se numete memorie cache. Aceasta este o
memorie local ataat fiecrui procesor n parte, care i permite procesorului s
aib acces rapid la propriile seturi de instruciuni i date, dar s poat accesa n
continuare memoria principal prin magistrala de memorie. Acest tip de main se
mai numete arhitectur cu multiprocesare simetrici 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 aa-numit crossbar care, spre deosebire de
magistrala convenional, permite pn la patru transferuri simultane cu memoria.
Limitrile arhitecturilor MI MD cu memorie partajat
Fig. 2.6. Limitrile calculatoarelor cu memorie partajat.
ARHITECTURA SISTEMELOR DE CALCUL
24
La aceste arhitecturi, gtul sticlei (bottleneck) l reprezint magistrala de
memorie. Toate instruciunile i datele fiecrui procesor trebuie s treac prin
aceast magistral. Cnd procesoarele care folosesc aceeai memorie sunt puine,
performanele depind liniar de numrul procesoarelor. Pe msur ce acesta crete,
Prirea performanelor este din ce n ce mai slab, aa cum rezult din figura 2.6.
Exist dou tipuri de sisteme MIMD cu memorie partajat:
- cu resurse globale(Global Shared Memory):
o arhitectura UMA (UniformMemory Access);
o arhitectura UMA cu memorii cache locale;
- cu resurse distribuite(Distributed Shared Memory):
o arhitectura NUMA (Non-UniformMemory Access);
o arhitectura COMA (Cache-Only Memory Access);
o arhitectura CC-NUMA (Cache CoherentNon-UniformMemory Access).
A. Arhitecturile GSM (Global Shared Memory)
Calculatoarele MIMD cu spaiu unic de memorie au un cost relativ sczut 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. Funcionarea
ntregului sistem paralel este coordonat de ctre un singur sistem de operare, care
se ocup de planificarea n execuie a proceselor pe procesoarele disponibile n
sistem, n condiiile n care se dorete o ncrcare 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 spaiu unic de adresare. Procesoarele acceseaz blocurile
de memorie prin intermediul reelei de interconectare (vezi figura 2.7), care poate fi
static (format din conexiuni fixe, punct-la-punct, ntre nodurile reelei) 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, numrul
procesoarelor utilizate n cadrul sistemului paralel nu poate fi foarte mare, deoarece
creterea numrului de procesoare din sistem atrage dup sine o probabilitate mai
mare de conflict n ceea ce privete accesarea concurent a aceleiai zone de
memorie. ntr-un astfel de caz, se vor nregistra timpi de ateptare care vor conduce
la o utilizare ineficient a procesoarelor i la o ncrcare neechilibrat a acestora.
Tipuri de arhitecturi
25
n plus, pentru obinerea unor performane deosebite, reeaua de comunicaie
va trebui s ofere o lrgime de band suficient de mare, deoarece fiecare procesor
poate necesita accesul la memoria partajat, ceea ce presupune transportul datelor
solicitate din memoria comun ctre procesorul care a formulat cererea.
Arhitectura UMA cu memorii cache locale
O mbunWire 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 gsesc deja n memoria cache local. n caz
afirmativ, acestea se transfer foarte rapid procesorului, fU a accesa memoria
partajat. Astfel, problema conflictelor de acces concurent la spaiul unic de
memorie se rezolv, cel puin, parial. Mult mai puine cereri vor ajunge s
acceseze memoria partajat i, din acest motiv, probabilitatea de apariie a
conflictelor devine mult mai mic.
Fig. 2.8. Arhitectura UMA cu memorii cache locale.
Utilizarea memoriilor cache presupune ns i asigurarea consistenei
acestora. n momentul n care anumite date stocate n memoria global se modific,
aceste modificri trebuie s fie semnalate tuturor memoriilor cache care stocheaz
cpii ale datelor respective. Mai mult chiar, atunci cnd se schimb coninutul
datelor de la nivelul unei memorii cache este nevoie ca modificrile s fie efectuate
n toate memoriile cache care conin cpii ale datelor actualizate. Meninerea
coerenei 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 ctre toate elementele
de procesare. Timpul de acces la locaiile de memorie nu mai este uniform, el
depinznd de localizarea fizic a datelor care se doresc a fi transferate.
ARHITECTURA SISTEMELOR DE CALCUL
26
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 spaiu 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 reeaua de comunicaie.
Fig. 2.9. Arhitectura NUMA.
Observaie. Sistemele NUMA sunt foarte asemQtoare sistemelor distribuite,
din moment ce fiecare procesor dispune de o memorie local, iar toate aceste
module locale formeaz un spaiu unic de adresare.
O caracteristic important pentru mainile NUMA este factorul NUMA.
Acest factor arat diferenele de laten pentru accesarea datelor din memoria
local comparativ cu accesarea dintr-o zon care nu este local. n funcie de
conexiunile sistemului, factorul NUMA poate diferi pentru diverse pUi ale
mainii: accesarea datelor dintr-un nod vecin este mai rapid dect accesarea
datelor dintr-un nod mai ndeprtat pentru care este necesar traversarea unui
numr mai mare de etaje crossbar. Aadar, atunci cnd este menionat, factorul
NUMA se refer de obicei la cele mai ndeprtate dou procesoare ale unei reele.
Arhitectura COMA (Cache-Only Memory Access)
n cazul modelului COMA, spaiul global de adrese este format din memorii
cache locale fiecrui procesor. Atunci cnd un procesor are nevoie de anumite date,
acestea sunt mai nti aduse n memoria cache de ctre controlerul de memorie,
dup care acestea vor fi accesate foarte rapid (vezi figura 2.10).
Fig. 2.10. Arhitectura COMA.
Tipuri de arhitecturi
27
Observaie. Dispare conceptul de memorie global, controlerul de memorie
avnd responsabilitatea de a ncrca n memoriile cache locale datele ce urmeaz a
fi accesate de ctre procesoare. ncrcarea datelor presupune localizarea i
transportul acestora prin intermediul reelei de interconectare. Prin folosirea
memoriilor cache locale, probabilitatea ca un procesor s acceseze majoritar date
numai din memoria local creste foarte mult.
Totui, 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 mutrii unui alt bloc de
date pentru a se crea spaiul necesar memorrii noului bloc care va fi accesat de
Ftre procesor. ns, datorit faptului c nu mai exist o memorie global n care s
se scrie acest bloc, va fi nevoie ca datele coninute s fie mutate n memoria cache
a unui alt procesor. Aceste date ns nu vor fi niciodat accesate de ctre procesorul
care folosete memoria respectiv, ceea ce conduce la o scdere a eficienei de
utilizare a sistemului.
n plus, operaia 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 reeaua de interconectare. Aceti timpi mori atrag dup sine o utilizare
ineficienti o ncrcare neechilibrat a procesoarelor.
O alt problem o reprezint asigurarea coerenei memoriilor cache, n
contextul n care operaiile de mutare a blocurilor devin din ce n ce mai
complicate, atunci cnd numrul 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 spaiul 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.
ARHITECTURA SISTEMELOR DE CALCUL
28
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 reeaua de comunicaie atrage dup sine ntrzieri, deoarece nu este la fel
de rapid precum accesarea memoriilor locale.
Existena memoriilor cache are ca efect reducerea traficului prin reeaua de
comunicaie. Datele solicitate de ctre un procesor sunt mai nti cutate n
memoriile locale, dup care sunt aduse n memoria cache, n cazul n care acestea
se gsesc n memoria local a unui alt procesor. La accesrile 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 reeaua de interconectare.
Utilizarea memoriile cache implic necesitatea implementrii unor
mecanisme software sau hardware care s asigure consistena 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 coerena memoriilor cache contribuie la creterea traficului efectuat n
cadrul reelei 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
spaiu individual de adresare (NUMA, COMA, CC-NUMA) l reprezint
ntrzierile care pot s apar atunci cnd un procesor dorete s acceseze date aflate
n memoria local a unui alt element de procesare. Aceste ntrzieri se datoreaz
faptului c procesorul respectiv va atepta 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
Dteptarea datelor solicitate. n general comutarea proceselor este o operaiune
complex, implicnd costuri importante, ce pot influena performanele sistemului.
Eficiena operaiei de comutare poate fi substanial mbunWit prin
utilizarea firelor de execuie (thread-uri). Un proces poate fi mpUit n mai multe
fire de execuie, care comunic ntre ele prin accesul la spaiul de adres alocat
procesului, pe care l partajeaz. Din acest motiv, firele de execuie reprezint un
mecanism eficient de exploatare a concurenei programelor.
Un fir de execuie reprezint cea mai mic entitate de planificare n sistemele
bazate pe thread-uri. Comutarea ntre dou fire de execuie care aparin aceluiai
proces este o operaie 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
execuie al aceluiai proces. Aceast comutare ntre fire de execuie aparinnd
aceluiai proces conduce la scderea timpilor de inactivitate i, implicit, la creterea
eficienei cu care este utilizat sistemul paralel.
Calculatoarele MIMD cu memorie distribuit se numesc multicalculatoarei
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. Creterea numrului de
procesoare nu atrage dup sine probleme legate de accesul concurent la memorie,
deoarece majoritatea apelurilor sunt ctre memoria local. ns transferul de mesaje
presupune schimburi de date care pot aglomera reeaua. Transferul de date ntre
dou procesoare este o operaie mare consumatoare de timp. Din acest motiv,
performanele reelei de interconectare pot influena n mod hotrtor eficiena 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 vzut ca fiind format din staii 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 gsi
un simplu procesor sau un ntreg sistem de tip UMA.
Exemple de arhitecturi MI MD cu memorie partajat
Din perspectiv istoric, mainile 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 spaiu de adresare global (Cray T3D, T3E).
Mainile 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 adugarea de module de memorie i de dispozitive I/O.
Fig. 2.12. a. Arhitectura sistemelor multiprocesor. b. Arhitectura reelei crossbar (multistage).
Creterea capacitii de procesare se putea realiza prin adugarea de
procesoare. Aprea deja necesitatea unei interconectri a modulelor de memorie, a
procesoarelor i a legturilor cu canalele I/O. Se foloseau reele multietajate de tip
crossbar sau multistage (vezi figura 2.12.b). Memoriile cache, marea lovitur a
anilor '70, au fost de natur a influena puternic structurile de memorare. Sistemele
de memorie scalate prin adugarea de module suplimentare aveau nevoie de
capacitate, dar i de vitez ridicat. Memoria era o surs de strangulri (bottleneck).
Introducerea memoriilor cache a schimbat aproape radical datele problemei.
2.1.1.5. Sisteme fU memorie partajat (shared nothing)
n acest caz, fiecare procesor are propria lui memorie. Aceste maini sunt
practic calculatoare independente legate ntr-o reea. Fiecare calculator se mai
numete i nod (al reelei). Arhitectura shared nothing se mai numete cu
multiprocesare asimetrici este prezentat n figura 2.13.
ARHITECTURA SISTEMELOR DE CALCUL
30
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
IU erori. IBM folosete n acest scop protocolul Message Passing Interface(MPI)
i mai multe ci redundante care formeaz un switch de mare vitez.
Aceste noduri sunt conectate i printr-o reea convenional 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 biilor de date. Datele pot fi configurate ntr-o matrice (vezi
figura 2.14).
Se noteaz cu n lungimea unui cuvnt i cu mnumrul de cuvinte procesate
la un moment dat.
Fig. 2.14. Organizarea datelor ntr-o matrice.
Conform acestei clasificri, 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, corespunztoare
prelucrrii 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 secvenial
Calculatorul numeric sistem fizic, care prelucreaz automat informaia
codificat sub form de valori discrete, conform unui program, ce indic o
succesiune determinat de operaii 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 secvenial, cu program memorat, stabilit
de von Neumann n 1945, este reprezentat n figura 2.15 i cuprinde cinci uniti
funcionale: unitatea de intrare (UI), unitatea de memorare (M), unitatea de ieire
(UE), unitatea aritmetico-logic (UAL) i unitatea de comand (UCd).
Fig. 2.15. Maina von Neumann.
Linia continu reprezint fluxul de date i instruciuni, iar linia ntrerupt,
fluxul de comenzi i stri.
Unitatea de comand (UCda) controleaz activitatea tuturor componentelor
din sistem pe baza unei secvene de instruciuni, reprezentnd programul memorat.
Caracterul secvenial al calculatorului rezult din modul de execuie al
programului. Sunt necesare urmtoarele etape majore (vezi figura 2.16):
- ncrcarea instruciunii I F (instruction fetch);
- decodificarea instruciunii I D(instruction decoding);
- ncrcarea (din memorie) a operanzilor OF (operand fetch);
- execuia operaiilor impuse de instruciune EX (execution).
Dup terminarea unei instruciuni, se trece la urmtoarea instruciune. Astfel,
programul este executat secvenial, instruciune cu instruciune.
ARHITECTURA SISTEMELOR DE CALCUL
32
Fig. 2.16. Etapele execuiei secveniale a unei instruciuni.
Unitatea aritmetico-logic (ALU) realizeaz prelucrarea informaiei preluate
din memorie, iar rezultatele se depun din nou n memorie sau sunt furnizate n
exterior. ALU realizeaz dou categorii de operaii:
- aritmetice: adunare, scdere, nmulire, mpUire;
- logice: I, SAU, SAU-EXCLUSIV, NEGAIE.
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 unitii de
intrare, fiind apoi depuse n memorie.
2.2.1. Structuri de calculatoare paralele
Calculatoarele paralele se clasific n trei configuraii 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 uniti ALU sincronizate pentru a atinge
paralelismul spaial. Un sistem multiprocesor este caracterizat de paralelism
asincron, n sensul c setul de procesoare din structura sa interacioneaz i i
mpart resursele (memorii, baze de date). n acelai timp, procesoarele matriceale
apeleaz la paralelismsincron (blocuri comandate printr-un unic semnal de ceas).
Cele patru tipuri de paralelism enunate 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.
Diferena de baz dintre un procesor matriceal i un sistem multiprocesor este
aceea c unitile funcionale din procesorul matriceal opereaz sincron, n timp ce
procesoarele sistemului multiprocesor funcioneaz asincron. Tendinele indic
utilizarea calculatoarelor controlate prin flux de datecu procesoare algoritmice
VLSI. Aceste tipuri de calculatoare sunt caracterizate printr-o cretere masiv a
hardware-ului pentru a atinge paralelismul.
Tipuri de arhitecturi
33
2.2.1.1. Calculatoare pipeline
Execuia unei instruciuni presupune patru faze majore: ncrcarea
instruciunii IF, decodarea instruciunii ID, ncrcarea operanzilor OF i
execuia efectiv EX. n procesoarele non-pipeline, aceste faze se desfoar
secvenial, iar n procesoarele pipeline se desfoar cu paralelism temporal.
Pentru procesoare complexe, faza de execuie a instruciunii poate fi
partajat n suboperaii organizate dup principiul pipeline. Problemele care apar n
calculatoarele pipeline sunt datorate conflictelor de acces la memorie, salturilor i
ntreruperilor.
Datorit suprapunerii operaiilor, calculatoarele pipeline (CPL) sunt
optimizate pentru a efectua operaii de acelai tip. Ori de cte ori se modific tipul
operaiei (instruciunii), registrele pipeline trebuie terse i rencrcate i, ca
urmare, se consum timp suplimentar. Proiectarea CPL include: secvenializarea
sarcinilor (task-urilor), prevenirea conflictelor de acces (coliziunilor), controlul
congestiei i controlul salturilor n program.
O schem funcional a unui CPL este ilustrat n figura 2.17.
Fig. 2.17. Structura funcional a unui calculator pipeline.
n schema de mai sus, exist dou structuri pipeline: una pentru date scalare
i una pentru date vectoriale. Faza de ncrcare a operaiilor este mpUit n dou
subfaze independente, corespunztoare operrii cu scalari sau cu vectori. Faza de
execuie se desfoar n dou procesoare distincte, asociate scalarilor sau
vectorilor.
ARHITECTURA SISTEMELOR DE CALCUL
34
Tehnica pipeline
Execuia unei instruciuni este privit ca fiind alctuit din mai multe faze
(sau stagii), care se succed una dup alta i care pot fi tratate de uniti specializate,
ntr-un mod asemQtor funcionrii unei linii de asamblare (de ex.: de automobile).
Exemplu. Fie un ir de procese care are loc la execuia unei instruciuni.
P1 1 2 3 4 5 6 7
P2 1 2 3 4 5 6
P3 1 2 3 4 5
P4 1 2 3 4
P5 1 2 3
t
Fig. 2.18. Exemplu de ir de procese la execuia unei instruciuni i desfurarea 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 mrete de cinci ori viteza de execuie. n faza ncadrat,
instruciunea 5 este n faza de ncrcare, instruciunea 4 n faza de decodare etc.
Problema este c n faza P5 poate s apar fenomenul de strangulare, pentru
F una sau mai multe instruciuni aflate ntre P1 i P5 pot s nu fie instruciuni utile
(de ex.: salt). Dei exist un paralelism n execuia instruciunilor, aceasta este o
main pipeline de tip SISD.
2.2.1.2. Calculatoare matriceale
Un procesor matriceal tipic este prezentat n figura 2.19. Exist dou uniti
funcionale distincte: o unitate de control i sincronizare a elementelor de procesare
(care are ca sarcin suplimentar efectuarea operaiilor cu scalari) i o unitate de
prelucrare matriceal. Fiecare element de prelucrare (EP) reprezint un element
pasiv, adic, fU posibilitatea de a decodifica instruciuni.
ncrcarea instruciunilor i decodarea lor (fazele IF i ID) pentru unitatea de
prelucrare matriceal este efectuat de ctre unitatea de control, prin intermediul
unei reele de interconectare ntre EP. Fiecare element de prelucrare este alctuit
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 stabilete funcia
ALU pentru fiecare EP, dup care transfer operanzi din exterior ctre memoriile
locale ale EP i rezultatele de la un EP spre alt EP (utiliznd reeaua de
interconectare). Programarea CM este mult mai dificil dect programarea CPL.
Tipuri de arhitecturi
35
Fig. 2.19. Structura funcional 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.
ARHITECTURA SISTEMELOR DE CALCUL
36
Notaiile din figura 2.20 sunt urmtoarele:
- P1 Pn procesoare;
- ML1 MLn memorii locale.
Sistemul este alctuit din mai multe procesoare care mpart resurse comune
(memorie), dar posedi resurse proprii (private), ntr-o arhitectur de tip UMA cu
memorii (cache) locale. Procesoarele funcioneaz 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 interconectri:
1. partajarea unei magistrale comune (bus);
2. utilizarea unei reele de interconectare total (crossbar);
3. utilizarea unei memorii multiport (ca memorie comun, dual).
CMP pot fi centralizate sau distribuite. Sistemele centralizate conin toate
procesoarele n acelai sistem de calcul, spre deosebire de sistemele distribuite, n
care procesoarele pot fi fizic plasate n subsisteme diferite. Pentru sistemele
distribuite este necesar o reea de comunicaie rapid, flexibil (adaptabil) i
fiabil.
2.2.2. Mecanisme de prelucrare paralel
Aceste soluii de implementare a prelucrrii paralele sunt corelate cu
arhitecturile clasificrii Flynn n privina soluiilor hardware, soluiile software
fiind specifice sistemelor de operare care gestioneaz intervalele de timp alocate
diferitelor aplicaii i speculnd, astfel, posibilitatea prelucrrilor paralele.
2.2.2.1. Soluii hardware de prelucrare paralel
Multiplicarea i specializarea unitilor aritmetico-logice(ALU)
Procesoarele clasice aveau o singur unitate de tip ALU. n acest fel, nu se
efectua dect o singur operaie la un moment dat. Prin multiplicarea ALU,
majoritatea funciilor pot fi distribuite ntre unitile specializate pe o anumit
funcie aritmetic sau logic i pot funciona 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 specializrii funcionale i a
distribuirii i multiplicrii ALU (numite i uniti funcionale) 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
soluii. Unitatea central conine 5 uniti ALU specializate pe diferite operaii,
care pot lucra n paralel.
n timp ce o instruciune este executat de o anumit unitate ALU, unitatea
de comand ncarc i decodific o alt instruciune pe care o ncredineaz unei
alte uniti ALU .a.m.d.
Tipuri de arhitecturi
37
Fig. 2.21. Multiplicarea ALU prin specializarea pe operaii.
Sistemul este eficient dac timpul de execuie de ctre ALU a unei operaii
este mult mai mare dect timpul de ncrcare i decodificare a unei instruciuni.
Aceast condiie este, n general, ndeplinit.
Exprimarea algebric a condiiei de eficien pentru multiplicarea i
specializarea ALU este:
t
EX(ALU)
>> t
IF
+ t
ID
.
Paralelism i structur pipeline n CPU
Primele generaii de microprocesoare utilizau ALU (n special, sumatoare)
care operau cu flux de bii (serial).
Introducerea unui ALU care opereaz n paralel, pe flux de 8, 16, 32 sau 64
bii simultan (cu sumatoare, cu transport anticipat sau multiplicatoare matriceale)
duce la creterea vitezei de prelucrare.
Arhitectura superscalar
n arhitectura superscalar, iruri de instruciuni diferite (de obicei dou,
eventual mai multe), utilizeaz resurse diferite n aceleai stadii de execuie a
instruciunilor de pe fiecare ir.
Un exemplu particular de arhitectur superscalar este prezentat n figura 2.22.
ARHITECTURA SISTEMELOR DE CALCUL
38
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 folosete aceast memorie pentru a citi blocuri de instruciuni
din memoria cache, instruciuni care au fost ncrcate acolo din memoria principal
(MP) n mod secvenial (vezi figura 2.23). n acest mod, se citesc dintr-o dat fie
dou, fie patru cuvinte, n funcie de dimensiunea instruciunii (pe 32 sau 16 bii).
S-a folosit iniial o magistral intern ntre cache i decodificatorul de instruciuni
de 64 bii, ajungndu-se n prezent la 128 de bii.
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 instruciuni diferite. Se execut n acelai timp o operaie cu numere
reale i dou operaii cu numere ntregi. Fiecare unitate este de tip pipeline i poate
executa cteva operaii n diferite stagii pipeline.
Fig. 2.24. Exemplu de arhitectur superscalar cu trei uniti pipeline n paralel.
Arhitectura superpipeline
Se bazeaz pe divizarea stagiului pipeline n substagii i, deci, pe creterea
numrul de instruciuni care sunt procesate de pipeline la un moment dat. Diviznd
fiecare stagiu n dou substagii, perioada ciclului de ceas va fi redus la jumtate:
/2.
La capacitate maxim, structura pipeline produce un rezultat la fiecare /2
secunde. Pentru o arhitectur dati setul de instruciuni aferent ei, exist un numr
optim de stagii pipeline. Dac numrul de stagii pipeline crete peste aceast limit,
se va reduce performana global. O soluie pentru a crete viteza fU a face
compromisuri este arhitectura superscalar, prezentat anterior.
n figura 2.25, este prezentat un exemplu de execuie pipeline (a),
superpipeline (b) i superscalar (c) a unei instruciuni.
Suprapunerea operaiilor CPU cu operaiile I /O
Utilizarea unor controlere I/O separate permite efectuarea n paralel a
operaiilor interne ale CPU cu operaii de transfer de date pe canalele I/O.
Exemplede 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.
ARHITECTURA SISTEMELOR DE CALCUL
40
a
b
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 soluie 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 cerine, adesea
contradictorii: capacitate mare, timp de acces mic, cost rezonabil i dimensiuni
reduse. Aceste cerine 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, spaiul 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
diferenele 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 ctre 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 pstrate instruciunile
i datele cu probabilitatea cea mai mare de a fi utilizate ntr-o proximitate de timp.
Memoria cache reprezint un tampon ntre memoria principali CPU.
Memoria principal sau operativ pstreaz programele i datele aferente
n curs de execuie. 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 virtuali CPU.
Memoria virtual este un concept arhitectural prin care memoria operativ
este extins peste spaiul de adresare al memoriei externe (hard disk, band
magnetic). Prin tehnicile de implementare, numite segmentare i paginare (vezi
capitolul 6), se urmresc dou aspecte eseniale:
- creterea 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 aplicaie lucreaz numai cu memoria
principal. Transferul de informaii ntre diferitele nivele de memorie se realizeaz
n mod automat, fie de ctre componente hardware specializate (unitatea de gestiune
a memoriei, MMU), fie de ctre sistemul de operare. Procesoarele recente ofer
suport hardware pentru implementarea memoriei cache i a memoriei virtuale.
Eficiena utilizrii unei arhitecturi ierarhizate de memorie se bazeaz pe
cteva principii legate de modul de utilizare a informaiilor coninute n memorie.
Astfel, conform principiului localizrii referinei, adresarea locaiilor de
memorie se realizeaz ntr-o secven repetitiv. Exist o probabilitate mare ca o
ARHITECTURA SISTEMELOR DE CALCUL
42
locaie adresat de curnd s fie adresat i ntr-un timp imediat localizare
temporar i, similar, este previzibil ca i locaiile adiacente s fie accesate n
curnd localizare spaial. Principiile localizrii temporale i spaiale sunt o
consecin a modului uzual de execuie a secvenelor de program.
Exemple:
- un program conine bucle care presupun execuia repetitiv a aceleiai
secvene de instruciuni;
- execuia instruciunilor este, n majoritatea cazurilor, secvenial
(succesiunea n execuie), excepie fcnd instruciunile de salt;
- secvena de program (procedura) utilizeaz repetitiv aceeai variabil sau
adreseaz repetat elemente ale unei structuri de date (tablouri, nregistrri).
Concluzie. Statistic s-a constatat c pentru majoritatea programelor este
valabil urmtoarea regul: 90% din timpul afectat unui program este utilizat
pentru execuia a numai 10% din codul acestuia. Pe baza acestor observaii,
informaiile pot fi amplasate n mod dinamic pe diferite niveluri ierarhice ale
memoriei, n funcie de probabilitatea de a fi utilizate.
2.2.2.2. Soluii software de prelucrare paralel
Prelucrarea pe loturi
Prelucrarea pe loturi (batch processing) presupune formarea unui fiier cu
extensia .bat i lansarea lui. Procesele au loc succesiv, iar CPU (care execut
operaiile 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 vzut n timp
ca o succesiune de trei etape: intrare (i), calcul (c), ieire (o) (vezi figura 2.27.a).
Multiprogramarea
n acelai interval de timp pot exista mai multe programe (procese) active n
sistemul de calcul, concurnd pentru memorie, I/O i CPU. Totui, unele programe
sunt orientate ctre calcule (utiliznd intens CPU), n timp ce altele sunt orientate
Ftre citirea/scrierea dispozitivelor I/O. Se pot astfel organiza (intercala) cele dou
clase de programe pentru a obine un timp de prelucrare global ct mai bun. n
figura 2.27.b, ctigul de timp este notat cu .
Intercalarea programelor permite utilizarea mai eficient a resurselor
calculatorului prin suprapunerea operaiilor I/O cu operaiile CPU. Acest mod de
organizare este gestionat de sistemul de operare (programul de supervizare). Astfel,
multiprogramarea se poate defini ca intercalarea operaiilor CPU cu operaii I/O
pentru mai multe programe.
Observaii.
1. P1, P2 i P3 pot aparine aceluiai program sau unor programe diferite.
2. n cadrul multiprogramrii, se poate ntmpla ca un proces cu prioritate
mare s ocupe CPU un timp ndelungat i n acest fel se mpiedic
execuia altor procese. Neajunsul se poate nltura folosind un sistem de
operare cu divizare n timp.
Diviziunea n timp(time sharing)
Diviziunea n timp reprezint mpUirea timpului de execuie al CPU ntre
toate procesele (task-urile) active din sistemul de calcul. Cuantele de timp alocate
fiecrui proces pot fi inegale de la un proces la altul. Viteza de prelucrare poate
crete astfel mai mult dect n cazul multiprogramrii (vezi cazul particular din
figura 2.28).
Fig. 2.28. Repartizarea n timp a desfurrii proceselor (time sharing).
ARHITECTURA SISTEMELOR DE CALCUL
44
Procesul de calcul se mparte n mai multe etape. n funcie de divizarea n
intervale de timp, se poate face ca procesele s se termine aproximativ n acelai
interval de timp (nu exist un proces dominant).
Diviziunea n timp constituie o atribuie 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, rspunsul unicului procesor este suficient de rapid astfel
nct s se considere c fiecare terminal opereaz independent, ca i cum ar poseda
el nsui procesor (utilizatorul are impresia c lucreaz singur pe calculator).
Conceptul de diviziune n timp poate fi extins n mod similar la sistemele
multiprocesor.
Observaii.
1. n cazul multiprogramrii, procesele i termin faza de calcul (n CPU),
aprnd suprapunere doar ntre operaii CPU i operaii 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
ctige timp de execuie n raport cu multiprogramarea (suprapuneri ntre
operaii CPU i operaii I/O, respectiv ntre diferite operaii I/O).
Noiunea de multithreading
Termenul de multithreading reprezint un aspect important al proiectrii
software, care necesit atenie special n construcia sistemelor mari i, n deosebi,
atunci cnd se pune problema eficienei (exprimate n termeni de vitez a
sistemului) i a performanei (exprimate n termeni de corectitudine n funcionare
a sistemului). Folosind adecvat instruciunile de multithreading, se pot realiza
aplicaii optimizate.
Fiecare aplicaie sau program care ruleaz pe sistemul de operare este un
proces alctuit din unul sau mai multe fire (thread-uri). Un thread este un set de
instruciuni sau o parte anume a aplicaiei, care se execut independent n cadrul
programului sau sistemului. Thread-urile sunt entiti responsabile cu multitasking-
ul n cadrul unei singure aplicaii. De obicei, sistemul de operare (SO) se ocup cu
programarea i executarea thread-urilor.
Multithreading-ul presupune execuia n paralel a mai multor procese, pentru
a mbunWi eficiena sistemului. Thread-urile sunt implementate n situaiile n
care trebuie ndeplinite mai multe sarcini simultan.
Avantajele threading-ului sunt urmtoarele:
- sarcinile care cer mai mult timp de execuie pot fi rulate n background;
- interfaa aplicaiei poate fi realizat mai atrJtor i mai simplu de
utilizat (de ex.: dup apsarea unui buton se afieaz o bar de progres);
- viteza aplicaiei poate crete;
- thread-urile pot fi folositoare n situaiile 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 threadla un moment dat. Restul thread-urilor trebuie
V atepte. Principalul dezavantaj al acestui tip de thread l reprezint timpii lungi
de execuie pentru sarcini mici. Corespunde din punct de vedere conceptual
prelucrrii 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 aplicaiei. 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, aplicaia este rspunztoare pentru stabilirea duratei fiecrui thread din
cadrul fiecrui 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. Totui, nu este atins nc eficiena
maxim, deoarece sarcinile se vor executa una dup alta. Corespunde din punct de
vedere conceptual multiprogramrii.
3. Modelul Multithread Apartment (Free Thread Apartment Model FTA).
Modelul Multithread Apartment presupune existena unui singur apartament. Nu
este nevoie de ordonare, deoarece toate thread-urile aparin aceluiai apartament i
pot partaje resursele. Aceste aplicaii se execut mai rapid dect cele care
implementeaz modelul unic sau STA, deoarece sistemul este mai puin solicitat i
poate fi optimizat s elimine timpii mori. Corespunde din punct de vedere
conceptual diviziunii n timp (time sharing).Aceste tipuri de aplicaii sunt foarte
complexe, deoarece trebuie s se asigure c thread-urile nu acceseaz simultan
aceleai resurse (principiul pipeline). Este, astfel, absolut necesar s se furnizeze un
sistem de blocare a resurselor. Acesta trebuie implementat cu atenie, 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 performanelor. 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 urmtoarele cauze:
- interaciunea ntre procese (transmiterea rezultatelor intermediare sau
pariale) i sincronizarea proceselor;
- inactivitatea temporar (idling), care nseamn c exist procese inactive
pe anumite perioade de timp, datorit ncrcrii inegale i a ateptrii
sincronizrii;
- calculele suplimentare, care nu apar n formularea serial a algoritmului.
Parametrii de intrare care contribuie la calculul performanelor sunt:
- timpul de execuie secvenial sau serial, T
S
(timpul msurat de la
nceputul i pn la sfritul execuiei algoritmului pe un calculator
secvenial);
ARHITECTURA SISTEMELOR DE CALCUL
46
- timpul de execuie paralel, T
P
(timpul msurat de la nceputul execuiei
i pn la terminarea ultimului subtask paralel);
- numrul de procesoare, p.
Cu ajutorul acestora, se pot calcula urmtorii parametri de ieire:
- suprasarcina, T
O
(Total Parallel Overhead) = diferena dintre timpul
total de lucru nsumat al tuturor procesoarelor i timpul necesar celui mai
rapid algoritm secvenial;
- accelerarea, S (Speedup) = raportul dintre timpul necesar rezolvrii unei
probleme pe un procesor i timpul necesar rezolvrii aceleiai probleme
n paralel pe p procesoare identice;
- eficiena utilizrii calculatorului paralel, E = S/ p;
- costul, C = T
P
p, care reflect timpul total de lucru nsumat al
procesoarelor.
2.3. Categorii de calculatoare
Calculatoarele pot fi grupate n 5 categorii, n funcie de structur,
dimensiuni, vitez, putere de calcul i destinaie:
- 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 instituii guvernamentale i
companii pentru procesarea datelor importante n statistic, recensminte, cercetare
i dezvoltare, proiectare, prognoz, planificarea produciei, tranzacii financiare etc.
Ca aspect exterior, primele mainframe-uri artau ca nite dulapuri uriae de metal.
Cu trecerea anilor, tehnologiile de fabricaie s-au dezvoltat, mrimea fizic a
mainframe-urilor a sczut, iar viteza lor de calcul a crescut foarte mult.
La nivelul anului 2008, prin mainframe se nelege 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 gzdui mai multe sisteme de operare simultan,
funcionnd ca mai multe maini virtuale. Un mainframe poate nlocui astfel chiar
i cteva sute de servere de dimensiuni mici (de exemplu, n aplicaii web),
reducnd costurile de ntreinere, dar meninnd un nivel ridicat de siguran.
Tipuri de arhitecturi
47
2.3.2. Supercalculatoare
Un supercalculator este un calculator complex cu destinaie special, compus
din mai multe procesoare care acceseaz aceeai memorie central i care
funcioneaz 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. Numrul de procesoare
interconectate ale unui supercalculator depHte la anumite modele chiar i
100.000.
Pentru a menine 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 aa-numite cluster-e.
Printre primele firme care au produs supercalculatoare pentru pia s-a
numrat 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, existi linia
supercalculatoarelor militare.
Exemplu: arhitectura supercalculatorului bazat pe IBM BlueGene/L.
Modelele IBM BlueGene dein momentan (2008) primele dou locuri n Top
500. Calculatorul se bazeaz pe un nou concept, care renun la creterea frecvenei
de ceas n favoarea micorrii componentelor, creterii densitii acestora i
reducerii consumului de putere. Reducerea frecvenei de ceas este compensat prin
Prirea gradului de paralelism, folosind un numr 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 ncrcare i unul de stocare ctre memoriile cache L2, funcionnd
cu 8 bii/ciclu. Aceasta este jumtate din banda necesar celor dou uniti de
virgul mobil (FPU). Procesoarele au o memorie cache L1 de 32 KB pentru
instruciuni i date, n situaii favorabile atingnd performane de 2,8 Gflops/2. Se
observ c memoria cache L1 este mai mare dect L2, un lucru neobinuit, care
permite ns atingerea unor viteze de procesare mai mari.
Arhitectura modelului IBM BlueGene/L este reprezentat n figura 2.29.
Sistemul este alctuit astfel: sunt introduse dou cipuri pe o plac cu o
memorie de 512 MB, aisprezece asemenea plci sunt plasate pe o alt plac nod,
iar 32 de plci nod sunt introduse ntr-un aa-numit cabinet. Aadar, un cabinet
conine 1024 cipuri (2048 CPU). Pentru configuraia 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,
performana de vrf teoretic a sistemului este de 183,5 Tflops. Dac necesitile
de comunicare sunt mici, se pot folosi ambele procesoare pentru calcule, dublnd
viteza de vrf, ajungnd la 360 Tflops.
ARHITECTURA SISTEMELOR DE CALCUL
48
Fig. 2.29. Arhitectura IBM BlueGene/L.
Din punct de vedere al interconectrii, BlueGene/L posed mai multe reele:
dou reele pentru conectarea procesoarelor, o reea inel 3D i o reea arbore.
Reeaua inel este folosit pentru comunicaii generale, iar cea arbore pentru
comunicaii colective: broadcast, operaii de reducere etc. Lrgimea de band a
reelei arbore este de dou ori mai mare dect a reelei inel, ajungnd la 350 MB/s
(fa de 175 MB/s).
Performanele sistemului ajung la 280,6 Tflops pentru testul Linpack. n
urma testului, s-a efectuat rezolvarea unui sistem liniar de N = 1.769.471 ecuaii.
Eficiena rezultat a fost de 76%.
Supercalculatoarele care au la baz modelul IBM BlueGene/L
implementeaz arhitectura masiv paralel.
Aceasta const ntr-un numr de procesoare (de obicei, foarte mare de
ordinul miilor) interconectate i controlate de un singur computer central. Fiecare
CPU are memoria sa i spaiul de date propriu, care conine i o copie a sistemului
de operare. Toate blocurile CPU comunic ntre ele cu ajutorul unor interconectri
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 conine:
- CPU unitatea central de prelucrare, care include:
o R
0
, ..., R
15
= 16 registre generale a cte 32 bii fiecare;
o PC = contorul de program (programcounter);
o ALU = unitatea aritmetici logic;
o ML = memoria local;
- MD = memorie de diagnoz;
- CVM = coprocesor de virgul mobil;
- MP = memoria principal (maxim 2
32
cuvinte);
- C = consol;
- F = floppy disk;
- SBI = interfaa cu magistrala sincron (Synchronous Bus Interface);
- AU = adaptor unibus, cu (U) = magistral unibus;
- AMB = adaptor masterbus, cu (M) = magistral masterbus.
CPU mai conine un registru de stare, care indic starea curent a
microprocesorului, a programului care se executi a memoriei cache.
Fig. 2.30. Schema arhitecturii generale pentru VAX 11/780.
ARHITECTURA SISTEMELOR DE CALCUL
50
I BM 370/168
Fig. 2.31. Schema arhitecturii generale pentru IBM 370/168.
Schema de principiu (vezi figura 2.31) conine:
- MP = memoria principal;
- LSU = local storage unit (unitate de memorie local);
- CM = controller memory(legtur multiport CPU memorie);
- SS I/O = subsisteme de intrare-ieire (mai multe canale asincrone).
I BM 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 conine:
- 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 reea.
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
memoryi calculatoare multiprocesor).
n cazul sistemelor cu arhitecturi de multiprocesare asimetric, fiecare
procesor are alt task. Exemple: cipseturile 3D din plcile 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 fU memorie partajat shared nothing).
I BM RS/6000 model F50
Sistemul cuprinde ntre 1 i 4 procesoare Power PC cu cache extern i are o
magistral de 64 de bii. Memoria cache se numete 8-way (cu 8 ci) pentru c datele
sunt grupate n seturi de cte 8 64 bii. Memoria folosete date de 72 bii: 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 instruciuni pe ciclu.
Caracteristici (vezi figura 2.33):
- frecvena de tact: 166332 MHz, 87 MHz pentru magistrala de memorie;
- 32 KB cache de date, 32 KB cache de instruciuni;
- magistral de date de 64 de bii i magistral de adrese de 32 de bii;
- memorie de pn la 4 GB i memorie virtual de pn la 4 PB (1P = 2
52
).
Arhitectura I ntel multiprocesor
Arhitectura multiprocesor propus de firma Intel este reprezentat prin
schema din figura 2.34.
Notaiile din schem au urmtoarele semnificaii: 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 crei construcii depinde de la productor la productor, dar
care se conformeaz unor reguli generale.
ARHITECTURA SISTEMELOR DE CALCUL
52
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 interfee 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 parial), iar magistrala poate
fi cu lime variabil sau cu adaptare dinamic la cereri.
Tipuri de arhitecturi
53
Pentium I I 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.
ARHITECTURA SISTEMELOR DE CALCUL
54
Creterea performanelor este realizat prin utilizarea magistralei punct-la-
punct (Point-to-Point) i a modului snoop. Modul snoop permite citirea datelor de
Ftre un procesor din cellalt 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 ctre
primul procesor i apoi citite de ctre al doilea.
AMD K7 biprocesor
Microprocesorul AMD K7 lucreaz pe magistrala ultrarapid EV6 la
frecvena de 200 MHz. Astfel, K7 poate folosi memorii foarte rapide i cu lrgime
de band mare, cum este Rambus DRAM. Datorit suportului multiprocesor al
protocolului de magistral EV6, sistemele AMD pot fi folosite n domeniul staiilor
de lucru i al serverelor. Arhitectura EV6 permite o flexibilitate ridicat, cu
faciliti 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
primete date i comenzi de la logica de sistem. Tot aici sunt gestionate
transferurile cu sistemul, ctre memorie sau ctre 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 I V biprocesor
Arhitectura biprocesor Sun SPARC IV este prezentat n figura 2.37.
Notaiile din schem au urmtoarele semnificaii: ECC = Error Checking/Correction
Code(cod de verificare/corecie de erori), DCSS = Dual Chip Data Switch (bloc de
alegere a cipului), SIU = SystemInterface 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 aprea n urma unor accesri simultane. Schema
este capabil s ruleze dou fire de execuie (thread-uri) cu latene 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 puin recent
utilizat), ceea ce duce la mai multe anse de a gsi n cache informaia necesar la
urmtoarea procesare (cache hit). Memoria acestui sistem este de tipul SDRAM.
Exist scheme care aduc mbunWiri suplimentare legate de administrarea
eficient a magistralei (prin repartizarea dinamic a duratelor de acces bazat pe
predicii i pe comportri anterioare ale proceselor care se repet la fiecare CPU etc.).
I ntel 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.
ARHITECTURA SISTEMELOR DE CALCUL
56
Fig. 2.38. Arhitectura sistemului Xeon biprocesor.
Pentru aceasta, arhitectura pune la dispoziie componentelor sistemului
(controlerul SCSI, sloturile PCI pe 32 sau 64 de bii) 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 folosete o plac
de baz dotat cu cipsetul NVIDIA nForce Professional 2200. Noutatea acestei
configuraii este c procesoarele nu mpart aceeai magistral pentru a accesa
memoria, ca la sistemele tradiionale. n acel caz, magistrala reprezenta gtul
sticlei (bottleneck) sistemului, fiind un obstacol n calea procesrii la potenialul
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
poriune 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 legtur 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 latene foarte mici (mult
mai mici dect la sisteme tradiionale), precum i memoria care nu le aparine direct,
dar cu latene mari. Aceasta nu constituie un dezavantaj, deoarece un CPU lucreaz
n mod normal doar n zona de memorie care i este repartizat. Totui 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 aplicaii.
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, opiunea activndu-se automat la detectarea unui
sistem de acest tip.
Calculatoarele biprocesor se preteaz pentru diverse aplicaii complexe, care
necesit putere de calcul. Aici intr aplicaiile grafice de modelare 3D, aplicaiile
de reea (mai ales dac sistemul este unul de tip nod coordonator de trafic sau
server pentru subreele de diverse dimensiuni) i aplicaiile 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 execuie simultan, conform principiilor
de calcul paralel. Aceste tipuri de algoritmi sunt create pentru a minimiza timpul de
execuie foarte mare pe care l implic acele aplicaii n situaii normale.
n ultima vreme, ctig popularitate un nou tip de aplicaii care pot folosi
arhitectura biprcocesor, anume sistemele embedded. n esen, este vorba despre
conectarea n paralel, pe aceeai 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 aplicaii este c
procesorul este adaptat s realizeze un numr restrns de operaii cu scopuri bine
determinate. n plus, DSP-ul este capabil s ruleze aplicaii de sine stWtoare, care
V ofere interfa cu utilizatorul i suport pentru memorare i transmitere ctre alte
componente conectate la acesta. De exemplu: un subsistem care, conectat la un PC,
V codeze/decodeze fiiere audio n format mp3.
ARHITECTURA SISTEMELOR DE CALCUL
58
2.4.2.3. Arhitecturi multinucleu
Un procesor multinucleu combin dou sau mai multe nuclee ntr-un singur
cip fizic, care conine 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 acelai circuit integrat se numete 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 optimizri hardware, cum sunt: sisteme pipeline, execuie
superscalar, extensii SSE, multithreading etc.
Un sistem cu n nuclee este eficient atunci cnd pe acesta se ruleaz n procese
(sau fire de execuie) concurente i independente. Cele mai cunoscute procesoare
multinucleu sunt cele de pe piaa 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
interacioneze 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 plcile
de baz mai mici dect pentru dou sau mai multe procesoare.
- Un procesor cu dou nuclee consum mai puin dect dou procesoare
cu cte un singur nucleu, deoarece acestea necesit mai mult putere s
transmit aceleai semnale n afara cipului,
- Preul produsului este mai redus, pachetul fizic fiind de un singur
procesor n loc de mai multe.
Dezavantajele sistemelor cu procesoare multinucleu sunt:
- Dei, teoretic, dou procesoare pot dubla viteza de calcul, software-ul
trebuie optimizat pentru a beneficia de acest lucru, n funcie de
posibilitatea aplicaiilor i a sistemului de operare de a crea fire de
execuie (thread-uri) paralele i independente.
- Integrarea a nc unui nucleu n acelai circuit integrat pune probleme
deosebite din punct de vedere termic, deoarece, practic, acelai 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 foreaz lucrul numai al unuia dintre cele dou nuclee, n loc de toate
patru deodat, micornd 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 muli factori care limiteaz performana 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 ctre nucleele multiple ale procesoarelor, n acelai mod n care o
osea cu prea puine benzi de circulaie produce uneori blocaje.
I ntel 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 cretere
de 40% a performanei i este cu peste 40% mai eficient din punct de vedere al
consumului de energie, n comparaie cu cel mai bun procesor Intel anterior.
Potrivit analitilor independeni, procesoarele ctig 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, utilizrii individuale i entuziatilor 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 execuie, procesoarele pot executa cu
vitez un numr mai mare de instruciuni. De asemenea, procesoarele pot opera
mai rapid la lansarea simultan n execuie a mai multor aplicaii, de exemplu,
scrierea unui e-mail n acelai timp cu descrcarea de muzici scanarea antivirus.
Procesoarele Dual-core contribuie la mbunWirea execuiei programelor, de
exemplu, n cazul vizionrii unor clipuri high-definition sau al protejrii PC-ului n
timpul tranzaciilor financiare pe Internet, crescnd, de asemenea, autonomia
bateriei n cazul notebook-urilor, care pot deveni astfel mai subiri i mai uoare.
Inovaiile aduse de Intel prin introducerea arhitecturii Intel Core 2 (Duo i
Exteme) sunt urmtoarele:
Intel Wide Dynamic Execution mbunWHte performana i eficiena,
ntruct fiecare nucleu de execuie poate realiza pn la 4 instruciuni simultan,
folosind un pipeline eficient n 14 stagii.
Intel Smart Memory Access mbunWHte performana sistemului,
diminund latena cipurilor de memorie i optimiznd astfel utilizarea lrgimii de
band disponibile pentru furnizarea datelor ctre procesor cnd i unde este nevoie.
Intel Advanced Smart Cache include o memorie cache L2 comun,
proiectat pentru a reduce consumul de energie prin micorarea traficului de
memorie, i mrete performana, permind unui nucleu de execuie s utilizeze
ntreg cahe-ul atunci cnd cellalt nucleu nu este folosit. Aceast funcie este
asigurat pentru toate segmentele de pia: server, desktop i notebook.
Intel Advanced Digital Media Boost dubleaz efectiv viteza de execuie a
instruciunilor folosite cu precdere n aplicaiile grafice i multimedia.
Intel 64 Technology aceast mbunWire adus arhitecturii Intel pe 32 de
bii ofer suport pentru procesarea pe 64 de bii i permite procesorului s acceseze
o cantitate mai mare de memorie.
Nucleul de execuie al procesorului Intel Core este reprezentat n figura 2.40.
Caracteristicile funcionale ale acestei arhitecturi sunt expuse n cele ce urmeaz.
ARHITECTURA SISTEMELOR DE CALCUL
60
Fig. 2.40. Nucleul de execuie al procesorului Intel Core.
Unitile de execuie cu numere ntregi
Intel Core are trei asemenea uniti pe 64 bii, fiecare dintre ele putnd
realiza operaii pe 64 bii ntr-un singur ciclu. Exist i o unitate pe 64 bii de
numere complexe (CIU Complex Integer Unit), care realizeaz n mare parte
aceeai munc precum cea din P6, i dou uniti simple de numere ntregi (SIU
Simple Integer Unit), pentru operaiile uzuale, cum ar fi adunarea. Una din unitile
SIU mparte portul 2 cu BEU (Branch Execution Unit), pe care Intel o numete
unitatea de salt n execuie). Pe acest port, SIU este capabil s lucreze n tandem cu
BEU pentru a executa instruciuni macro (comparaii sau teste +jcc).
Posibilitatea de a realiza calcule pe 64 bii ntr-un singur ciclu este o
premier n arhitectura Intel 86 i aceasta l pune naintea IBM, cu al su Power
PC970, care are o laten de dou cicluri pentru operaii cu numere ntregi. n plus,
datorit unitilor ALU pe 64 bii care sunt pe porturi separate, Intel Core poate
menine un total de trei operaii pe 64 bii per ciclu.
Unitile de execuie n virgul mobil
Intel Core are dou uniti de execuie n virgul mobil, care se ocup de
ambele tipuri de operaii aritmetice: scalare i vectoriale.
Unitatea de execuie de pe portul 1 se ocup cu adunri sau cu alte operaii
simple n virgul mobil, dup cum urmeaz:
- scalar: simpl precizie (32 bii) i dubl precizie (64 bii);
- vector: simpl precizie (4) i dubl precizie (2).
Tipuri de arhitecturi
61
Unitatea de execuie n virgul mobil de pe portul 2 se ocup cu nmuliri i
mpUiri cu vectori i scalari n formatele listate mai sus.
Procesarea vectorial real pe 128 bii
Arhitectura Intel Core asigur latena de un ciclu pentru operaiile vectoriale
pe 128 bii. Intel realizeaz acest lucru fcnd magistrala pentru virgul mobil i
cea intern de date cu limea de 128 bii, facilitate care nseamn c este necesar
doar o singur micro-operaie (care trebuie generat, trimis, programat i
realizat) pentru fiecare operaie vectorial pe 128 bii. De aceea, noul design nu
numai c elimin dezavantajul generat de laten, dar n acelai timp mbunWHte
decodarea i programarea lrgimii de band, pentru c jumtate din micro-operaii
sunt generate pentru instruciuni vectoriale de 128 bii (vezi figura 2.41).
Fig. 2.41. Configuraia de procesare vectorial real pe 128 bii.
Pipeline-ul
Intel Core are un pipeline realizat n 14 stagii, la fel de lung ca la Power PC
970, aproximativ jumtate din cel de la Pentium 4 Prescott (~ 30 etape) i puin mai
lung dect cel de la P6 (12 etape). Aceasta nseamn c Intel Core este proiectat
pentru o cretere lent a vitezei de ceas i nu scaleaz la fel de rapid ca Pentium 4.
Fereastra de instruciuni
Deoarece partea din spate este mult mai lat dect a predecesorilor, buffer-ul
de reorganizare (Reorder Buffer, ROB) a crescut la 96 de intrri, de la 40 ct avea
Pentium M, iar staia de rezervare (Reservation Station, RS) a fost mrit.
Fereastra de instruciuni din Intel Core a fost mrit nu numai fizic (ROB +
RS), ci i virtual. Macro-fuziunea i micro-operaiile (descrise anterior), permit lui
Intel Core s rein mai multe instruciuni cu un numr mai mic de resurse
hardware.
ARHITECTURA SISTEMELOR DE CALCUL
62
Deoarece limea execuiei a fost mrit considerabil, vechiul hardware de
decodare al lui P6 ar fi fost inadecvat pentru a ine restul procesorului ocupat cu
micro-operaii. Intel a trebuit s mreasc rata de decodare, n aa fel nct mai multe
micro-operaii/ciclu s ajung la final. Primul lucru pe care l-a fcut a fost s adauge
nc un decodor simplu i rapid, ceea ce nseamn c decodorul hardware poate
trimite pn la 7 instruciuni pe ciclu n coada de ateptare ROB (vezi figura 2.42).
Fig. 2.42. Structura hardware pentru decodarea instruciunilor din arhitectura Intel Core.
AMD Opteron Dual-core
n figura 2.43 este reprezentat arhitectura simplificat a procesorului
Opteron Dual-core.
Fig. 2.43. Arhitectura AMD Opteron Dual-core.
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 aciona mpreun mai eficient. Fiecare dintre
nucleele K8 are propriul su cache L2, independent, ncorporat, dar cele dou
nuclee mpart o coad comun a cererilor de sistem, un controler de memorie DDR
de tip dual-channeli un set de legturi HyperTransport cu mediul exterior.
Accesul la resursele I/O este adjudecat printr-o reea crossbar sau printr-un
switch, astfel nct fiecare CPU poate comunica direct i eficient cu memoria sau
cu dispozitivele I/O. n unele privine, Opteron Dual-core se comport foarte
asemQtor 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 su 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 su controler de
memorie DDR local de tip dual-channel, iar procesoarele comunic ntre ele i cu
cipurile I/O prin legturi HyperTransport punct-la-punct, la frecvena 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 legtur HyperTransport mai puin, 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 frecvena de 800 MHz, lrgimea total de band este de 6,4 GB/s,
ceea ce poate fi un bottleneck n anumite situaii.
AMD Phenom Triple-core
AMD are n producie 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.
ARHITECTURA SISTEMELOR DE CALCUL
64
Noul microprocesor triple-core prezint propriul design i nu este un cip
quad-core cu un core dezactivat. Totui, cipurile includ 2 MB de cache L3 partajat
i beneficiaz de caracteristicile micro-arhitecturii K10, cum sunt setul de
instruciuni SSE4A i unitile de prelucrare n virgul mobil (FPU) de 128 bii.
Evident, cipurile dispun de posibiliti avansate de gestiune a puterii.
Potrivit unor estimri 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 numrul de aproximativ
218 cipuri candidate obinute din fiecare bucat de 300 mm, este neobinuit faptul
F AMD a decis dezvoltarea unui design triple-core cu aria fizic de 247 mm i
250 de cipuri candidate obinute de pe o bucat de 300 mm. Tehnic, AMD poate
realiza uor microprocesoare cu un numr impar de motoare de procesare datorit
arhitecturii sale Direct Connect. Cu versiunile sale Phenom i Athlon 64 2, AMD
are de combtut procesoarele Intel Core 2 (dual-core i quad-core).
I ntel 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 fiecrei perechi pot interschimba informaii direct (la fel se ntmpl la
AMD dual-core i la Intel Core 2 Duo), dar pentru a schimba informaii 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.
Diferena dintre platforma Quad FX i arhitectura utilizat de ctre
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
deine un avantaj n ceea ce privete 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 comunicaie dedicat
(magistrala coerent HyperTransport), care transfer date cu pn la 4 GB/s n
fiecare direcie. Magistrala HyperTransport ofer dou canale de comunicaie, cte
unul pentru fiecare direcie. 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 ctre CPU pentru a accesa restul PC-ului.
Datorit faptului c platforma Quad FX folosete 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, ctig popularitate sistemele de tip embedded. Este vorba
despre conectarea n paralel a mai multor procesoare specializate, pe aceeai plac,
cu un scop bine definit. De exemplu, prelucrarea unui semnal audio (codare i
decodare) n format mp3. Procesorul este adaptat s realizeze un numr restrns de
operaii specifice, iar DSP-urile sunt capabile s ruleze aplicaii de sine stWtoare,
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 execuie
a programelor stocate n memoria principal, execuie realizat n trei etape:
- extragerea instruciunilor;
- decodificarea instruciunilor;
- execuia lor propriu-zis.
Fig. 3.1. Schema bloc a unui calculator.
Unitatea de comand si control urmreste ordinea de execuie a instruciunilor
unui program si controleaz ntreaga activitate a unitii centrale, astfel:
- interpreteaz instruciunile programului din memoria intern si comand
circuitele s execute instruciunile;
- comand si controleaz transferul de date dintre memoria intern si
dispozitivele periferice.
Unitatea aritmetic si logic (ALU) implementeaz funciile logice, si
execut operaiile aritmetice elementare: adunare, scdere, nmulire, mprire.
Registrele interne pot fi:
- de uz general;
- cu destinaie specific.
Structura unui calculator
67
Registrele de uz general stocheaz valorile intermediare ale calculelor.
Registrele cu destinaie specific contorul de program (programcounter, PC)
indic adresa noii instruciuni care urmeaz a fi executat precum si adresa
instruciunii curente care se execut.
3.1.1. Execuia unei instruciuni
Timpul necesar execuiei unei instruciuni se numeste ciclu instruciune.
Etapele n execuia unei instruciuni sunt:
1. ncrcarea instruciunii din memorie n registrul de instruciuni (fetch);
2. actualizarea PC pentru a indica urmtoarea instruciune care va fi executat;
3. decodificarea instruciunii din registrul de instruciuni;
4. localizarea n memorie a eventualelor date utilizate de instruciune;
5. ncrcarea datelor (dac este necesar) n registrele interne ale UC;
6. execuia efectiv a instruciunii;
7. stocarea rezultatelor la destinaia corespunztoare;
8. ntoarcerea la etapa nr. 1 pentru a executa urmtoarea instruciune.
3.1.2. Tipuri de uniti centrale
Criteriul dup care se clasific unitile centrale este cel al setului de
instruciuni:
- 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. Performanaunitii centrale
Performana UC se refer ntotdeauna la o aplicaie dat, existnd mai multe
moduri de evaluare a performanei:
- mips (mega instructions per second): milioane de instruciuni pe secund;
- flops (floating point operations per second): operaii 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).
Performana este produsul a trei factori:
- numrul de instruciuni executate n cazul unei aplicaii date (N
i
);
- numrul mediu de perioade de ceas necesare pentru execuia unei
instruciuni (N
p
);
- durata unei perioade de ceas (T
c
).
Valoarea N
p
se exprim n cicluri de ceas/instruciune, iar T
c
se exprim n
timp/ciclu de ceas.
ARHITECTURA SISTEMELOR DE CALCUL
68
Rezult c:
P(t) = N
i
N
p
T
c
(sec). (3.1)
Reducerea numrului de instruciuni N
i
se face optimiznd compilatorul si
utiliznd o arhitectur adecvat acestui compilator.
N
p
se reduce fie optimiznd compilatorul, aceasta nsemnnd utilizarea unor
instruciuni de durat mai scurt, fie utiliznd o arhitectur paralel, deci utilizarea
mai multor instruciuni simultan. La optimizarea N
p
, apar limitri tehnologice legate
de implementarea procesorului.
Durata T
c
ine exclusiv de o tehnologie avansat.
3.1.2.2. I ndici de performan
Pn n 1992, se utiliza urmtoarea pereche de mrimi: Whetstones si
Dhrystones, care artau practic viteza UC. ncepnd din 1992, s-a trecut la ali
indici de msurare a performanei, si anume indicii SPEC, cu care s-a nlocuit
perechea anterioar.
Standard Performance Evaluation Corporation (SPEC) este o organizaie
non-profit care a luat nastere n 1988 si are ca scop asigurarea testelor corecte si
utile pentru a face diferen ntre sistemele de pe pia. Testele SPEC sunt larg
folosite actualmente n evaluarea performanei calculatoarelor, rezultatele fiind
afisate pe site-ul SPEC. Acestea poart denumirea de note SPEC (SPECmarks).
Testele sunt concepute pentru a realiza situaii din viaa real. De exemplu,
SPECweb2005, realizeaz un test al performanei serverului de web prin mai multe
tipuri de cereri paralele HTTP. Performana microprocesorului este testat prin
rularea ctorva programe (de exemplu, compilatoare gcc) sau printr-un joc de sah.
Diverse cerine sunt atribuite n funcie de importana 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 prile interesate pot compila codul folosind metoda
dorit, dar fr a schimba codul. Productorii au lucrat la mbuntirea
compilatoarelor pentru a realiza o ct mai bun acuratee a diferitelor teste SPEC.
Teste SPEC actuale sunt:
- SPEC CPU2006 combin performanele microprocesorului, memoriei
si compilatorului;
- CINT2006 sau SPECint testeaz aritmetica numerelor ntregi, folosind
compilatoare, interpretoare, procesoare de text, programe de sah;
- CFP2006 sau SPECfp, testeaz performana n virgul mobil, cu
simulri fizice, grafic 3D, procesare de imagine, chimie computaional;
- SPECjms2007 testeaz performana serviciului de mesaje Java;
- SPECweb2005 testeaz performana n PHP/JSP;
- SPECviewperf testeaz performana unui sistem 3D OpenGL, cu
ajutorul diferitelor sarcini de randare din aplicaii reale;
- SPECapc testeaz performana aplicaiilor 3D cunoscute unui sistem dat;
Structura unui calculator
69
- SPEC OMP2001 V3.2 evalueaz performanelor sistemului paralel,
folosind aplicaii OpenMP;
- SPEC MPI2007 evalueaz performanele sistemelor paralele, folosind
aplicaii MPI (Message Passing Interface);
- SPECjvm98 evalueaz performana unui sistem client, care ruleaz o
masin virtual Java;
- SPECjAppServer2004 evalueaz performana aplicaiilor bazate pe
Java 2 Enterprise Editition (J2EE);
- SPEC jbb2005 evalueaz performana serverului Java, prin emularea
unui sistem client-server;
- SPEC MAIL 2001 evalueaz performana unui server de mail, cu
testarea protocoalelor POP si SMTP;
- SPECimap2003 evalueaz performana unui server de mail la nivel de
ntreprindere, testnd protocoalele IMAP4 si SMTP;
- SPECpower_ssj2008 testeaz eficiena energetic a sistemelor server;
- SPEC SFS97_R1 evalueaz viteza de transfer a serverului de fisiere
NFS si timpul de rspuns;
- SPECappPlatform evalueaz performana platformelor web (Java EE
si NET).
Nota obinut de sistemul testat se obine n modul urmtor.
Pentru SPECint, se ruleaz 6 programe care folosesc numere ntregi si se
obin astfel 6 note, din care nota final rezult prin mediere geometric.
Pentru SPECfp, se ruleaz 12 programe care folosesc virgul mobil (12
programe n Fortran si dou programe n C), din care se obin 14 note. Nota final
se obine tot prin media geometric.
3.1.3. Organizarea unitii centrale
Datele care trebuie prelucrate sunt aduse din registrele interne n registrele de
intrare ale ALU, unde acestea rmn n timpul n care ALU face operaiunea de
calcul aritmetic si logic. Rezultatul calculului preluat de registrele de iesire ale ALU
este stocat ntr-unul din registrele de uz general.
Exist trei tipuri de instruciuni (vezi figura 3.2):
- instruciuni registre-memorie: se ncarc date din memorie n registre
si viceversa. Datele pot fi folosite mai departe de alte instruciuni sau
chiar de instruciunile respective. n acest ultim caz, rezultatul este depus
n registre;
- instruciuni registre-registre: mut operanzii din registrul de la intrarea
ALU, execut asupra lor o anumit operaie si depun din nou operanzii
n registru;
- instruciuni memorie-memorie: preiau operanzii din memorie, i
plaseaz n registrul de intrare ALU, se execut o anumit operaie si se
stocheaz rezultatul n memorie.
ARHITECTURA SISTEMELOR DE CALCUL
70
Fig. 3.2. Schema unitii centrale.
3.2. Memoria
Memoria reprezint acea parte a calculatorului n care sunt stocate
programele si datele. Practic, de aici procesorul preia datele de care are nevoie si
tot aici scrie rezultatul. Unitatea de memorie este o cifr binar care poate lua
numai dou valori: 0 sau 1.
Microprocesorul are capacitatea de a memora att datele care urmeaz a fi
prelucrate, ct si rezultatele intermediare. Se observ c rolul su principal este de a
prelucra si transmite datele. Capacitatea de memorare este mic, neputnd stoca, de
exemplu, programe.
Sistemul de memorie al unui calculator reprezint ansamblul unitilor de
memorie, mpreun cu algoritmii necesari pentru controlul transferurilor si
memorarea datelor, algoritmi care pot fi implementai hardware sau software.
Sistemul de memorie include att locaiile de memorie propriu-zise, ct si circuitele
necesare pentru adresarea locaiilor si controlul operaiilor de citire si scriere. O
parte din aceste circuite se gsesc n unitatea de memorie respectiv, altele sunt
externe, fiind de obicei integrate n controlerul unitii de memorie.
Obiectivul principal n proiectarea oricrui sistem de memorie este realizarea
unei capaciti de memorare adecvate sistemului de calcul, cu un nivel acceptabil
de performane, la un cost rezonabil. Trebuie subliniat faptul c nu ntotdeauna
obiectivul este acela de a obine o capacitate de memorare ct mai mare.
Structura unui calculator
71
3.2.1. Caracteristicile unitilor de memorie
Capacitatea de memorare reprezint numrul locaiilor (celulelor) de
memorie coninute de o unitate de memorie. Aceasta depinde de tehnologia de
fabricaie si se exprim n numr de cuvinte de informaie memorat (cuv),
dimensiunea cuvntului fiind diferit de la un calculator la altul.
Timpul de acces la o unitate de memorie(t
A
) este timpul necesar localizrii
unei celule de memorie pentru transferul de date la/de la locaia de memorie
respectiv. Acesta reprezint intervalul de timp calculat din momentul n care o
unitate master lanseaz o comand ctre o unitate de memorie si pn n momentul
n care informaia este transferat n sensul dorit.
Rata de acces (r
A
) este inversa timpului de acces, fiind exprimat n cuvinte
pe secund:
r
A
=
A
t
1
[cuv/s]. (3.2)
Timpul de ciclu la o unitate de memorie(t
C
) este timpul minim ntre dou
accese succesive si reprezint timpul din momentul n care o unitate master
lanseaz o comand spre unitatea de memorie si pn cnd poate lansa o nou
comand la aceeasi unitate de memorie. Uzual, t
C
> t
A
, diferena lor numindu-se
timp de revenire (t
R
= t
C
t
A
). Acesta reprezint timpul minim necesar pentru
inactivarea primei comenzi, pn la activarea celei de-a doua.
Rata de transfer (r
T
) este inversa timpului de ciclu si reprezint cantitatea
maxim de informaie (exprimat n cuvinte pe secund) care poate fi transferat
la/de la memorie ntr-o secund:
r
T
=
C
t
1
[cuv/s]. (3.3)
Costul total al unitii de memorie(C
T
) include, pe lng costul celulelor
de memorie propriu-zise, costul circuitelor de acces la aceste celule. Pentru
compararea diverselor uniti de memorie ntre ele, se utilizeaz costul unitar
(C
U
), care reprezint costul de memorare a unui cuvnt de informaie. Costul unitar
se determin prin raportarea costului total (C
T
) la capacitatea de memorare (CM):
C
U
=
CM
C
T
[cost/cuv]. (3.4)
Cu ct memoria este mai rapid, cu att costul unitar este mai mare.
Modul de acces la locaiile unitii de memorie arat ordinea n care
informaia memorat poate fi accesat. Acesta poate fi serial sau paralel.
ARHITECTURA SISTEMELOR DE CALCUL
72
Dac locaiile de memorie pot fi accesate n orice ordine, iar timpul de acces
este independent de locaia accesat, atunci accesul este aleator, iar unitatea de
memorie se numeste memorie cu acces aleator (RandomAccess Memory, RAM).
n general, memoriile semiconductoare sunt memorii cu acces aleator.
Prin ierarhizarea unitilor de memorie, blocurile de date cu probabilitatea
cea mai mare de accesare sunt aduse pe niveluri superioare, mai aproape de
unitatea central (localizare spaial). Dintre acestea, datele cele mai recent
accesate sunt pstrate n apropierea procesorului (localizare temporal).
3.2.2. I erarhizarea memoriei
Pornind de la funciile realizate de fiecare tip de memorie, de la rolul si locul
ocupat n sistemul de calcul, se pot distinge mai multe categorii de memorii,
ilustrate n figura 3.3.
Fig. 3.3. Ierarhizarea memoriei.
3.2.2.1. Registrele de memorie
Reprezint dispozitivele de memorie cele mai rapide, dar si cele mai scumpe.
Sunt utilizate de procesor, fiind de dou feluri: cu destinaie specific si de uz
general.
Registrele cu destinaie specific au un rol precis si memoreaz numai
anumite tipuri de informaie (de exemplu, contorul de program). Din acest motiv,
pentru ca procesorul s realizeze o anumit operaie, este accesat un anumit
registru, si anume, acela care memoreaz tipul de informaie dorit. n acest fel, nu
este necesar ca registrul s fie accesat prin adres, fapt care mreste viteza de acces
la informaia memorat n registre.
Registrele de uz general sunt registre nespecializate, care pot fi utilizate
explicit prin instruciuni-program. Capacitatea registrului depinde de tipul
procesorului si nu depseste de obicei lungimea cuvntului de memorie. Numrul
de registre de memorie este mic, utilizndu-se de regul 1620 registre.
3.2.2.2. Memoria intern
Conine programele si datele pentru toate procesele n curs de execuie n
sistemul de calcul. Ct timp funcioneaz procesorul, el citeste si scrie date din/n
Structura unui calculator
73
aceasta memorie. Memoria intern este o memorie read-write cu acces direct
(RAM). Ea trebuie s aib un timp de acces redus, pentru a nu ntrzia activitatea
procesorului. Tipurile de memorie din aceast categorie sunt:
- Memoriile DRAM (Dynamic RandomAccess Memory) sunt memorii
RAM dinamice, n care, pentru a se pstra informaia, trebuie restabilit
periodic sarcina electric cu care a fost ncrcat condensatorul circuitului
de memorie. Pentru aceasta, este necesar un circuit de remprosptare a
memoriei (refresh).
- Memoriile SRAM (Static RandomAccess Memory) sunt memorii RAM
statice, realizate cu circuite basculante bistabile de memorie, care
pstreaz informaia att timp ct sistemul este sub tensiune.
La calculatoarele PC, cipurile de memorie sunt asamblate pe plci de
memorie organizate n bancuri de memorie. Aceste bancuri se instaleaz n placa
de baz a PC-ului, n soclurile rezervate memoriei interne. Acest mecanism permite
modificarea dimensiunii memoriei interne a PC-ului, prin adugarea de noi bancuri
de memorie n locurile disponibile sau prin schimbarea bancurilor cu altele de
capacitate mai mare.
Memoria principal sau memoria primar reprezint memoria de lucru a
sistemului de calcul, fiind realizat cu circuite integrate de memorie DRAM si
avnd o capacitate de memorare relativ mare (sute de MB). Memoria principal
pstreaz datele active, care vor fi apelate de ctre procesor, dar care nu sunt
imediat necesare acestuia. Datele devin active prin transferarea lor din memoria
secundar n memoria principal, fiind memorate sub form de blocuri de date, n
zone de memorie, proprii fiecrui program. Viteza de lucru a memoriei principale
este mult mai mic dect cea a registrelor procesorului (cu 23 ordine de mrime),
avnd timpi de acces aleator de zeci pn la sute de ns.
Memoria nevolatil cu acces aleatoriu (NVRAM) este cea care stocheaz
date atunci cnd calculatorul este nchis sau nu mai are energie. Memoria NVRAM
este utilizat pentru a menine informaiile privind configuraia calculatorului, cum
ar fi data, ora si alte opiuni de pornire care pot fi setate de utilizator.
Memoria cache este o memorie specializat, utilizat n scopul scderii
timpului de acces la datele din memoria intern. Are capacitate mic si vitez mare,
fiind inserat logic ntre procesor si memoria principal. Constructiv, este o memorie
mai rapid dect memoria principal, construit, de regul, din circuite SRAM.
Memoria cache are timpul de acces de 210 ori mai mic (ns) dect cel al
memoriei primare, fiind ns si de cteva ori mai scump. Se urmreste ca procesorul
s lucreze ct mai mult timp cu memoria cache, si nu cu memoria principal.
Pentru o memorie cache bine implementat, procesorul lucreaz cu aceasta circa
7090 % din timpul total de lucru cu memoria. Si acest tip de memorie poate fi
extins prin adugarea de cipuri suplimentare. Utilizarea memoriei cache se bazeaz
pe dou caracteristici ale execuiei programelor n sistemele de calcul clasice:
1. programele tind s utilizeze date si instruciuni situate unele lng altele
sau n zone apropiate (principiul vecintii);
2. programele folosesc n mod repetat adresarea acelorasi blocuri de memorie.
ARHITECTURA SISTEMELOR DE CALCUL
74
Plecnd de la aceste constatri, memoria cache conine la un moment dat
cpii ale unor date din memoria principal. nainte de orice acces la memoria
principal, se verific dac nu cumva informaia cutat se gseste n memoria
cache. Dac aceasta exist, se preia de acolo cu o vitez superioar.
Memoria intermediar, numit si memorie cache pentru supori externi sau
memorie cache de disc (Disk-Cached Memory), este plasat ntre memoria
principal si memoria secundar, acionnd ntr-o manier similar memoriei
cache. Are rol de memorie tampon, care pstreaz blocurile de date cel mai recent
accesate de un program, duplicri ale celor din memoria secundar.
3.2.2.3. Memoria extern
Pentru a utiliza datele memorate n memoria extern, acestea trebuie aduse
mai nti n memoria principal. Prin comparaie cu memoria intern, memoria
extern se caracterizeaz prin vitez de acces mai sczut, cost mai redus,
capacitate mai mare, avnd rolul de a mri spaiul de memorare al unui sistem de
calcul. n memoria extern sunt stocate si programele cu ajutorul crora se realizeaz
prelucrarea datelor. Accesul la memoria extern nu se face direct, ci prin intermediul
memoriei interne. n comparaie cu memoria intern, memoria extern este:
- nevolatil,
- cu acces poziional si timp de acces mai mare,
- cu vitez de transfer mai mic,
- cu cost mai redus,
- cu capacitate mult mai mare,
- de tip read-write,
- cu densitate de memorare variabil de la un echipament la altul si de la
un suport la altul (magnetic, optic, semiconductor).
Memoria secundar este organizat pe un suport extern de memorie, de
regul disc magnetic, si are rolul de a realiza o extindere a memoriei principale,
conform conceptului de memorie virtual, care se refer la capacitatea procesorului
de a utiliza un spaiu 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 spaiu de adrese care depseste spaiul de adrese al memoriei principale.
Acest concept a aprut nc din anul 1960, iar la PC este disponibil ncepnd cu seria 286.
Memoria suplimentar poate fi de mai multe tipuri: memorie expandat,
memorie extins si memorie de arhivare sau teriar.
Memoria expandat este o memorie suplimentar la calculatoarele de tipul
PC, pe care utilizatorul o acceseaz prin intermediul mecanismului EMS (Extended
Memory Specification). Este alctuit din bancuri de memorie de 64 KB RAM si
este gestionat de un program-sistem specializat. numit EMM386.EXE (n sistemul
de operare MS-DOS).
Memoria extins este memoria suplimentar accesibil utilizatorului prin
mecanismul XMS (eXtended Memory Specification), care poate fi implementat pe
procesoare avnd cuvinte de adres de 32 bii. Programele trebuie scrise ca
utiliznd special aceste mecanisme. Programul-sistem care gestioneaz acest tip de
memorie n sistemul de operare MS-DOS este HIMEM.SYS.
Structura unui calculator
75
Memoria de arhivare este acea parte a memoriei externe care asigur
stocarea datelor preluate din mediul extern pe o perioad de timp nedeterminat si
n volume semnificative.
Memoria de arhivare sau memoria teriar este o memorie nevolatil de
dimensiuni foarte mari, dar si cu timpi de acces foarte mari (zeci de secunde).
Pstreaz date pasive, stocate doar n scop de arhivare, pe o perioad de timp
nedeterminat si n volume semnificative. Accesul la aceste date se face foarte rar.
Memoria teriar este realizat cu uniti de memorare pe suport detasabil, optic
(CD-ROM, DVD-ROM), magnetic (band sau caset magnetic) sau
semiconductor (stick-uri si card-uri de memorie). Trebuie subliniat faptul c
memoria teriar reprezint colecia de discuri si casete existente, si nu unitile de
memorie propriu-zise.
3.2.3. Memoria RAM
Circuitele integrate de memorie sunt memorii semiconductoare, realizate n
diverse tehnologii de fabricaie (bipolare sau MOS). Acestea sunt de mai multe
tipuri, cu diferite raporturi performane/cost, avnd domenii specifice de utilizare:
memoriile cu acces aleator (RAM) si memoriile cu acces pentru citire (ROM).
O memorie cu acces aleator (RAM = RandomAccess Memory) este acea
memorie la care locaiile de memorie pot fi accesate n orice ordine, iar timpul de
acces nu depinde de locaia accesat. Memoriile RAM pot fi de dou tipuri: SRAM
(Static RAM) si DRAM (Dynamic RAM).
3.2.3.1. Memoria SRAM
Memoria SRAM (Static RAM) este o memorie n care informaia se
memoreaz ntr-un mod stabil, pe ambele niveluri logice, att timp ct memoria este
alimentat. Este realizat n tehnologii rapide (bipolare sau CHMOS =
Complementary High-density MOS), cu timpi de acces foarte mici (ns). Fiind o
memorie care poate fi si citit si scris, SRAM are magistrala bidirecional de date
si dou cicluri diferite de memorie: ciclul de citire si ciclul de scriere, identificate de
semnalul WE , activ pe 0L. Simbolul memoriei SRAM este ilustrat n figura 3.4.
Fig. 3.4. Simbolul memoriei SRAM
ARHITECTURA SISTEMELOR DE CALCUL
76
Memoria SRAM poate fi de dou tipuri:
- Memoria SRAM asincron nu necesit semnal de ceas pentru
sincronizarea cu unitatea master. Memoriile asincrone sunt mai lente
dect cele sincrone, dar sunt mai ieftine si au un consum de energie mic.
Aceste memorii sunt realizate ntr-o gam foarte divers de performane,
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 funciona 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 capaciti mici, de zeci-sute de
KB, si care memoreaz cuvinte de 8 bii. Sistemele performante, care necesit
viteze si capaciti de memorare mari, folosesc memorii SRAM rapide pentru
implementarea memoriei cache.
Din punct de vedere constructiv, cele dou tipuri de memorii SRAM sunt
similare. Ele difer doar prin algoritmul de transfer al datelor si, implicit, prin
performane. De aceea, n cele ce urmeaz vor fi analizate elementele comune,
definitorii pentru SRAM, iar exemplificrile vor fi realizate pentru memoria
asincron.
Schema bloc a memoriei SRAM este ilustrat n figura 3.5.
Fig. 3.5. Schema bloc a memoriei SRAM.
Structura unui calculator
77
3.2.3.2. Memoria DRAM
Memoria DRAM (Dynamic RAM) este o memorie volatil cu acces aleator,
care memoreaz informaia n mod dinamic. Este realizat n tehnologie CMOS
(Complementary MOS), cu consum de energie foarte mic. Datorit
particularitilor constructive ale celulelor de memorie, informaia 0L este
memorat stabil, dar informaia 1L se pierde n timp si necesit mprosptarea
periodic a memoriei, de unde si denumirea acesteia.
Indiferent de modul de realizare, memoria DRAM este mult mai lent dect
memoria SRAM, din cauza mecanismului specific de memorare a datelor. Timpul
de acces la DRAM este de 210 ori mai mare dect la SRAM, si variaz n funcie
de tipul accesului la memorie.
Astfel, n acces aleator, timpul de acces este mare (zeci de ns), ns scade
foarte mult (n funcie de tipul memoriei DRAM), dac se restricioneaz 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 densiti mari de integrare. Circuitele de memorie DRAM
au, prin urmare, capaciti de memorare mari, si, implicit, un numr mare de linii
de adres. Simbolul memoriei DRAM este ilustrat n figura 3.6.
Fig. 3.6. Simbolul memoriei DRAM.
Memorarea datelor se bazeaz pe stocarea si transferul de sarcini electrice, si
nu pe mecanisme de comutare, ca n cazul memoriilor SRAM. Fiecare bit de
informaie este memorat prin ncrcarea sau descrcarea unui condensator. Cnd
condensatorul este ncrcat, se spune c se memoreaz valoarea 1L, iar cnd acesta
este descrcat, valoarea memorat este 0L. 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 ptrat sau dreptunghiular de
locaii de memorie, fiecare locaie memornd un cuvnt de mbii, Semnalele de
comand acioneaz prin intermediul logicii de control. Eventual, memoria DRAM
poate avea circuit intern de mprosptare, care presupune un numrtor de adrese
de rnd si un ceas de timp real. n funcie de tipul memoriei DRAM, ciclurile de
mprosptare pot fi realizate n trei moduri:
ARHITECTURA SISTEMELOR DE CALCUL
78
Fig. 3.7. Schema bloc de baz a memoriei DRAM.
- ROR (RAS Only Refresh) este o metod de mprosptare din exterior,
prin care se transmit memoriei adresa de rnd (AR) si semnalul RAS ,
Ir a se activa semnalul CAS. Unitatea master extern este anunat
periodic s fac refresh de ctre un ceas de timp real, care este
programat software de ctre sistemul de operare.
- CBR (CAS BeforeRAS) este tot o metod de mprosptare din exterior,
prin care se transmit semnalele CAS si RAS , activate n aceast
ordine. n acest caz, memoria dispune de un numrtor de adrese intern,
pentru indicarea liniei care trebuie mprosptat, fr a fi nevoie de
transmiterea adresei din exterior. De asemenea, perioada de repetiie a
ciclurilor de refresh este determinat de un ceas de timp real extern.
- Auto-mprosptarecu ajutorul circuitelor interne memoriei DRAM. n
interior, memoria conine un numrtor de adrese de rnd, un ceas de
timp real si o logic de control pentru generarea semnalelor CAS si
RAS , conform metodei CBR.
Memoria DRAM poate fi de dou tipuri: asincron si sincron.
Memoria DRAM asincron nu necesit semnal de ceas pentru
sincronizarea cu unitatea master apelant. Ca si la SRAM, memoriile DRAM
asincrone sunt mai lente dect cele sincrone, dar sunt mai ieftine si au un consum
de energie mai mic. Dintre memoriile DRAM asincrone, se pot enumera: FPM
(Fast Page Mode), EDO (Extended Data Out) si BEDO (Burst EDO) DRAM. La
toate memoriile, accesul aleator este lent. n acces aleator, timpul de acces fa de
RAS (t
RAC
) este de 5070 ns, iar timpul de ciclu (t
C
) este de 90120 ns.
Structura unui calculator
79
O alt categorie de memorii DRAM este cea care utilizeaz o interfa
sincron. Prin implementarea unei interfee sincrone, s-au eliminat perioadele de
asteptare de ctre procesor, obinndu-se, de asemenea, unele avantaje
suplimentare. n cazul funcionrii sincrone, se memoreaz anumite date de la
procesor n circuitele latch ale memoriei DRAM, sub controlul ceasului de sistem.
Aceste circuite pstreaz adresele, datele si semnalele de control, ceea ce permite
procesorului s execute alte operaii. Dup un numr specific de cicluri de ceas,
datele devin disponibile si procesorul le poate citi de pe liniile de iesire.
Un alt avantaj al unei interfee sincrone este c ceasul sistemului este
singurul semnal de sincronizare care trebuie furnizat memoriei DRAM. Aceasta
elimin necesitatea propagrii semnalelor multiple de sincronizare. Intrrile sunt de
asemenea simplificate, deoarece semnalele de control, adresele si datele pot fi
memorate fr temporizrile de setare si meninere monitorizate de procesor.
Avantaje similare se obin si pentru operaiile de iesire.
O alt categorie este reprezentat de memoriile DRAM bazate pe
protocoale. Categoriile precedente de memorii au linii separate de adrese, date si
control, ceea ce limiteaz viteza la care poate funciona circuitul cu tehnologia
curent. Pentru eliminarea acestui dezavantaj, au fost proiectate memorii DRAM
bazate pe protocoale, care implementeaz toate aceste semnale pe aceeasi
magistral. Cele mai cunoscute memorii din aceast categorie sunt DRDRAM
(Direct Rambus) si SLDRAM (SyncLink) DRAM.
Memoria DRAM sincron necesit un semnal de ceas pentru validarea
semnalelor de control. Ceasul primit din exterior permite operarea memoriei
sincron cu unitatea master. Desi accesul aleator este comparativ cu cel al
memoriilor asincrone, accesul n mod pagin este mult mai rapid.
Memoriile sincrone pot fi de mai multe tipuri: SDRAM (Synchronous
DRAM), DDR SDRAM (Double Data Rate SDRAM), RDRAM (Rambus
DRAM), DRDRAM (Direct Rambus DRAM) etc. Accesul aleator este, de
asemenea, lent, fiind puin mai rapid dect la memoriile asincrone, datorit
tehnologiei (memoriile sincrone au aprut ulterior). n acces aleator, t
RAC
este de
4060 ns, iar t
C
este de 80110 ns. Accesul n mod pagin este mult mai rapid dect
la memoriile asincrone si depinde de frecvena semnalului de ceas de sincronizare.
3.2.4. Accesul la locaiile de memorie
n sistemele cu microprocesoare, modulele de memorie se conecteaz pe
magistrala sistemului. Accesul la locaiile de memorie se realizeaz prin cicluri de
transfer (cicluri masin), folosindu-se semnalele magistralei (de adres, date si
comenzi). Modul de desfsurare a diferitelor tipuri de cicluri de transfer se
reprezint prin diagrame de timp (evoluia 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 comunicaie pe magistral si de tipul circuitelor de
memorie utilizate.
ARHITECTURA SISTEMELOR DE CALCUL
80
Ciclu de citire din memorie
Semnale de adres
Adresa valid
S. de c-d MEMR\
(citire memorie) (nalt impedan)
Semnale de date Date valide (citite)
t
AR
t
MEMR
t
C
Ciclu de scriere n memorie
Semnale de adres Adresa valid
S. de c-d MEMW\
(scriere memorie) (nalt impedan)
Semnale de date Date valide (scrise)
t
AW
t
MEMW
t
C
Fig. 3.8. Diagrame de citire/scriere memorie.
n figura 3.8, s-au reprezentat diagramele de transfer pentru un ciclu de citire
din memorie si un ciclu de scriere n memorie.
La proiectarea unui modul de memorie, trebuie s se in cont de urmtorii
parametri de timp:
- timpul de acces la citire (t
AR
) intervalul de timp ntre momentul apariiei
adresei valide si momentul n care data citit este prezent pe liniile de
date. Uneori, timpul de acces se msoar n raport cu momentul apariiei
semnalului de comand MEMR\. Dac timpul de acces al circuitului de
memorie folosit este mai mare dect timpul permis pe magistral, atunci
interfaa modulului de memorie trebuie s prelungeasc ciclul de transfer,
prin dezactivarea pe un timp limitat a semnalului READY ctre procesor.
- timpul de meninere a semnalului de comand MEMR\ activ (t
MEMR
).
- durata unui ciclu complet de citire sau scriere (t
C
).
- timpul de acces la scriere (t
AW
) intervalul de timp ntre momentul n care
adresa este valid si momentul de generare a comenzii de scriere; n
acelasi mod ca la citire, dac circuitul de memorie folosit are un timp de
acces mai mare, atunci interfaa modulului trebuie s dezactiveze temporar
semnalul READY pentru prelungirea ciclului de transfer. Momentul
activrii semnalului de scriere se msoar si n raport cu momentul n care
data este prezent pe magistral.
- timpul de meninere a semnalului de scriere (t
MEMW
), de obicei < t
MEMR
.
Structura unui calculator
81
Observaii:
1. la citire, data este generat dup apariia semnalelor de adres si de
comand si se menine un timp scurt dup dezactivarea acestora;
2. la scriere, data trebuie s apar pe magistral naintea semnalului de scriere
si s fie valid pe toat durata de activare a semnalului de comand;
3. timpul de acces acoper ntrzierile care apar ntr-un modul de memorie
datorit circuitelor de decodificare a adresei si de selecie a
amplificatoarelor de intrare sau de iesire;
4. proiectantul trebuie s aleag circuite de memorie cu parametri de timp
acoperitori pentru restriciile impuse pe magistral si s ia n calcul
ntrzierile produse de circuitele de amplificare din interfa si de pe
magistral.
Exist dou moduri de organizarea octeilor n memorie, si anume:
a) Big Endian;
b) Little Endian.
Exemplu. Se consider c se lucreaz pe cuvinte de 32 bii. Cele dou
moduri de organizare a octeilor sunt reprezentate n figura 3.9.
Fig. 3.9. Modurile de organizare a memoriei de tip Big Endian (a) si Little Endian(b).
Microprocesoarele PowerPC, Motorola 6800 si HP, folosesc o organizare a
octeilor n memorie de tip Big Endian, iar microprocesoarele DEC si Intel folosesc
modul Little Endian.
ARHITECTURA SISTEMELOR DE CALCUL
82
3.2.5. Metodologia de proiectare a memoriilor statice
Proiectarea unui modul de memorie se face pe baza unor parametrilor de
proiectare impusi:
- capacitatea memoriei;
- modul de organizare (unitatea elementar de acces la memorie: octet,
cuvnt, cuvnt dublu);
- tipul de magistral pe care se conecteaz (numrul semnalelor de date si
de adres, tipurile semnalelor de comand, parametrii de timp pentru
ciclurile de transfer);
- amplasarea modulului de memorie n spaiul de adresare al procesorului,
exprimat prin adresa sa de nceput (trebuie s fie un multiplu al
capacitii modulului);
- tipul de circuit de memorie disponibil (poate fi un parametru impus sau
unul ales de proiectant);
- alte cerine speciale (de exemplu: accesul dual de pe dou magistrale,
remprosptarea controlat centralizat, implementarea unor mecanisme
de detecie a erorilor etc.)
3.2.6. Metodologia de proiectare a memoriilor dinamice
Proiectarea memoriilor dinamice este, n principiu, similar proiectrii
memoriilor statice, cu urmtoarele amendamente:
- trebuie s se adauge un mecanism de remprosptare periodic a
memoriei (refresh);
- adresele trebuie multiplexate (generarea secvenial pe aceleasi semnale
a adresei de linie si a adresei de coloan);
- trebuie s se genereze semnalul de validare a adresei de linie (RAS
Row Address Select) si semnalul de validare a adresei de coloan (CAS
Column Address Select);
- selecia circuitelor se face cu semnalele RAS si CAS (excepie fac
circuitele tip EDO-DRAM, cu semnal separat pentru selecia circuitului).
Pentru circuitele RAM dinamice, multiplexarea n timp a adreselor a fost
necesar pentru a reduce numrul de pini ai circuitului de memorie si, implicit,
dimensiunea acestuia. De notat c circuitele dinamice au o capacitate relativ mare,
ceea ce impune un numr mare de linii de adres pentru selecie. Organizarea
intern a unei memorii dinamice este sub forma unei matrice, cu linii si coloane, iar
selecia unei locaii se face prin specificarea adresei sale de linie si de coloan.
Remprosptarea periodic a memoriei este necesar deoarece informaia
este pstrat un timp limitat dup ultima operaie de citire sau scriere
(condensatorul care stocheaz informaia se descarc n timp).
n figurile 3.10, 3.11, 3.12 s-au reprezentat diagramele de timp pentru ciclurile
de citire din memorie, scriere n memorie si, respectiv, remprosptare a memoriei.
Structura unui calculator
83
Adrese
Adres linie Adres coloan
RAS\
CAS\
WR\
Date Date citite
t
RASCAS
t
CAS
t
acces
t
ciclu
Fig. 3.10. Ciclu de citire din memorie.
Adrese Adres linie Adres coloan
RAS\
CAS\
WR\
Date Date de scris
t
RASCAS
t
CAS
t
acces
t
ciclu
Fig. 3.11. Ciclu de scriere n memorie.
Adrese Adres linie
RAS\
CAS\
WR\
Fig. 3.12. Ciclu de remprosptare a memoriei.
ARHITECTURA SISTEMELOR DE CALCUL
84
Controlul procesului de remprosptare poate s se fac la nivelul modulului
de memorie sau centralizat la nivelul ntregului sistem. Indiferent de metoda aleas,
proiectantul trebuie s se asigure c ciclurile de remprosptare nu se suprapun
peste ciclurile obisnuite de citire sau scriere. Remprosptarea se face simultan la
nivelul unei linii ntregi din matricea de memorie.
3.2.7. Modulele de memorie
Modulele de memorie sunt plcue cu circuite integrate care includ conectori
externi, pentru a fi introduse n soclurile disponibile pe placa de baz. Modulele de
memorie sunt prevzute cu conectori CELP (Card Edge Low Profile), avnd 3083
contacte pe fiecare parte a modulului. Conectorii aflai la baza modulelor de memorie
permit adugarea sau scoaterea lor de pe placa de baz fr instrumente speciale.
n ceea ce priveste necesarul de memorie ntr-un sistem de calcul, este demn
de reinut c prin cresterea dimensiunii acesteia sistemul devine mai rapid,
deoarece microprocesorul citeste datele din RAM foarte repede, neasteptnd citirea
de pe hard disk-ul mult mai lent, fr a mai lua n consideraie 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 instalai,
performanele sistemului rmn aproape constante.
Totusi exist anumite aplicaii care cer resurse deosebite si ndeosebi RAM.
Este cazul profesionistilor care lucreaz mai ales n domeniul graficii (att static
proiectare CAD, fotografie, design, ct si dinamic animaii, spoturi publicitare,
filme, aplicaii stiinifice, simulri etc.), fiind necesari peste 256 MB de RAM. Un
alt caz deosebit este al serverelor de reea, unde necesarul de RAM este urias si
poate atinge valori peste 512 MB.
Privitor la modul n care microprocesorul opereaz fizic cu memoria
instalat, aceasta se plaseaz pe placa de baz n dou sau mai multe segmente
fizice numite bancuri de memorie. Acestea sunt segmentele minime de memorie
care pot fi accesate de microprocesor, numerotate ncepnd cu 0, fiecare banc
avnd unul sau mai multe sloturi pentru plcuele de memorie. Toate aceste bancuri
sunt vzute ca niste pori spre memoria fizic instalat si au dimensiuni date de
limea magistralei microprocesorului (inclusiv biii de paritate), de exemplu, de 72
de bii pentru Pentium.
n sloturile aceluiasi banc, se introduc ntotdeauna memorii de acelasi tip
(avnd n special timpi de acces identici) si aceeasi dimensiune, pentru a nu
provoca accesri gresite de memorie sau chiar blocarea sistemului de calcul.
Exemplu. Pentru un banc cu dou sloturi: 2 plci 1 MB sau 2 plci 2 MB.
n bancuri diferite, se pot monta (teoretic) memorii diferite (ex.: 2 1 MB n
bancul 0 si 2 4 MB n bancul 1), dar, practic, este bine s se utilizeze valori pare.
Exemplu. n loc de 2 4 MB + o plcu de 1 MB ar trebui montate 2 4
MB + o plcu de 2 MB), pentru a evita unele neplceri.
n figura 3.13 este prezentat dispunerea bancurilor pe placa de baz.
Structura unui calculator
85
Fig. 3.13. Dispunerea bancurilor pe placa de baz.
Arhitectura dual-channel
Motivul care a dus la dezvoltarea acestei arhitecturi a fost apariia unui
bottleneck ntre procesor si memorie. Arhitectura dual-channel presupune o
tehnologie prin care se poate dubla transferul dintre RAM si controlerul de
memorie. Controlerele de memorie care suport dual-channel utilizeaz pentru
transfer dou canale de date de 64 bii, rezultnd o lime a cii de date de 128 bii.
Pentru a putea beneficia de avantajele arhitecturii dual-channel, este nevoie de
dou sau mai multe module de memorie instalate n bancurile corespunztoare. De
obicei, aceste bancuri sunt colorate diferit pe placa de baz. Cele dou canale permit
accesul fiecrui modul de memorie la controler, crescnd astfel lrgimea de band.
Teoretic, nu este absolut necesar ca cele dou module de memorie s fie identice, dar
acest lucru este recomandat pentru a evita eventualele probleme de compatibilitate.
De asemenea, se pot folosi un modul single-sided si unul double-sided, dar cstigul
de performan si fiabilitate depind foarte mult de controlerul de memorie.
n cazul n care pe o plac de baz exist dou perechi de socket-uri DIMM
din bancuri diferite (n general, culoarea socket-ului identific bancul cruia acesta
aparine), se poate instala o pereche de dou module n bancul 0 si o pereche de
alt capacitate n bancul 1, att timp ct acestea funcioneaz la aceeasi vitez. n
acest mod, sistemul va folosi arhitectura dual-channel.
Chiar si module care funcioneaz la frecvene diferite pot fi folosite n
modul dual-channel, dar, n acest caz, toate modulele vor rula la frecvena celui
mai lent modul. Desi arhitectura permite cel puin teoretic toate aceste
combinaii, foarte multe plci de baz au probleme cu anumite module de memorie
dac urmeaz s le foloseasc n mod dual-channel. Tocmai din acest motiv este
recomandat s se utilizeze perechi identice de module.
Merit reinut faptul c arhitectura dual-channel este o tehnologie care ine
de plcile de baz, si nu de memorii. Cu alte cuvinte, orice dou module de
memorii compatibile vor suporta att operaii single-channel, ct si dual-channel.
ARHITECTURA SISTEMELOR DE CALCUL
86
3.2.8. Formatele fizice de memorie
Plcue cu cipuri de memorie exist sub urmtoarele tipuri de ncapsulri:
DI P (Dual I n-line Package)
Este varianta clasic de ncapsulare, n care cipul este prevzut cu un numr
de pini pe partea sa inferioar (de ambele pri), pini care vor fi introdusi n socluri
speciale (vezi figura 3.14). Dezavantajul este c, din cauza rezistenei reduse pinii,
se pot rupe destul de usor. Acest tip de ncapsulare este prezent pe sisteme (i80286)
si plci video vechi.
Fig. 3.14. Modul de memorie DIP.
SOJ (Small Outline J Lead)
Este o metod de ncapsulare mai modern, regsit la modulele SIMM si
cipurile BIOS (uneori). Se aseamn cu DIP-ul, cu diferena c, n loc de pini, sunt
folosite niste terminale n form de J, care se prind prin ndoire (vezi figura 3.15).
Fig. 3.15. Modul de memorie SOJ.
TSOP (Thin Small Outline Package)
Este o ncapsulare de tip SMD (Surface Mounted Devices), dar care necesit
o suprafa foarte redus si, de aceea, este folosit pe plci PCMCIA, notebook-uri
si unele plci video (vezi figura 3.16).
Fig. 3.16. Modul de memorie TSOP.
Structura unui calculator
87
BGA (Ball Grid Array)
Este o metod mai nou de ncapsulare, n care cipurile sunt atasate cu
ajutorul unor bilue din cositor, plasate sub cip. Acestea sunt destul de ieftine si
prezint proprieti bune de conductivitate electric si termic (permit o mai bun
disipare a cldurii, n special n versiunea cu suport ceramic). Exist mai multe
variante ale ncapsulrii BGA (Fine BGA si Tiny BGA), folosite n majoritatea
modulelor de memorie de azi, inclusiv memoriile Rambus (vezi figura 3.17).
Fig. 3.17. Modul de memorie BGA.
SI MM (Single I n-line Memory Module)
Este o plcu de memorie care se introduce n sloturi pe placa de baz.
Elimin problemele de compatibilitate, datorit standardizrii ei de ctre
productorii plcilor de baz. Memoriile SIMM folosesc o magistral de memorie
pe 32 de bii si exist n dou variante (vezi figurile 3.18 si 3.19):
- cu 30 de pini pentru cantiti mici de memorie (< 8 MB);
- cu 72 de pini pentru cantiti mai mari de memorie (> 8 MB).
Memoriile SIMM pot fi att single sided (cu cipuri de memorie pe o singur
parte), ct si double sided (cipurile sunt dispuse pe ambele fee). SIMM-urile
double sided sunt realizate din dou SIMM-uri single sided, conectate mpreun pe
acelasi modul din fibr de sticl.
Fig. 3.18. Modul de memorie SIMM cu 30 de pini.
Fig. 3.19. Modul de memorie SIMM cu 72 de pini.
ARHITECTURA SISTEMELOR DE CALCUL
88
SODI MM (Small Outline Dual I n-line Memory Module)
SIMM-urile de 72 de pini sunt convenabile pentru calculatoare desktop, dar
sunt prea mari pentru laptop-uri. n consecin, productorii de calculatoare
miniaturizate au transformat SIMM-urile cu 72 de pini, astfel nct, n locul
conectrii la un loc a pinilor de pe cele dou pri ale modulului, au introdus niste
spaii pe fiecare parte, pentru a avea dou semnale separate. Astfel, lungimea
modulului s-a redus la jumtate, rezultatul fiind Small Outline Dual In-line
Memory Module, numit astfel datorit dimensiunilor reduse ale modulului si a celor
dou linii de conectori independeni de pe fiecare parte a modulului (vezi figura
3.20). Un SODIMM cu 72 de pini are lungimea jumtate fa de SIMM-ul cu 72 de
pini (2,35 inci), fiind echivalent unui SIMM 72 cu conectorii pe ambele pri ale
modulului.
Fig. 3.20. Modul de memorie SODIMM.
SI PP (Single I n-line Pin Package)
Desi SIPP-urile sunt identice cu SIMM-urile de 30 de pini din punct de
vedere electric, din punct de vedere fizic sunt mai mici (vezi figura 3.21).
Dimensiunile standard sunt de 3,23 inci lungime si 1 inci nlime. Desi din punct
de vedere funcional SIMM-urile si SIPP-urile pot avea aceleasi cipuri de memorie,
aceeasi tehnologie si aceeasi capacitate, ntre ele exist diferene care le fac
incompatibile. Dac se doreste instalarea unei noi extensii de memorie sau nlocuirea
uneia existente, trebuie specificat tipul de memorie folosit: SIMM sau SIPP.
Fig. 3.21. Modul de memorie SIPP.
Structura unui calculator
89
DI MM (Double I n-line Memory Modules)
Sunt module de memorie cu limea magistralei de 64 de bii, folosite la
implementarea memoriilor SDRAM si DDR SDRAM (vezi figura 3.22). DIMM-
urile SDRAM folosesc 168 de pini, pe cnd cele DDR SDRAM au 184 de pini. Ele
mai difer si prin numrul fantelor de pe partea inferioar, cele SDRAM avnd dou,
iar cele DDR, numai una. Din punct de vedere al designului si al tensiunii de
alimentare, exist 4 variante de DIMM-uri: de 3,3V sau 5V si cu buffer (buffered)
sau fr buffer (unbuffered). Cele mai des ntlnite sunt de tipul 3,3V, fr buffer.
Fig. 3.22. Modul de memorie DIMM.
RI MM (Rambus I n-line Memory Modules)
Este tipul de ncapsulare folosit la memorii Rambus (vezi figura 3.23). Este
foarte asemntor DIMM-ului, dar foloseste setri diferite ale pinilor. Se remarc
prin prezena de radiatoare pe ambele fee ale modulului de memorie, pentru a
preveni nclzirea excesiv a acestuia. Se prezint si n varianta XDIMM (vezi
paragraful 3.2.9 XDR DRAM)
Fig. 3.23. Modul RIMM Rambus.
3.2.9. Formatele logice de memorie
ncrcarea cipurilor de memorie prin adresarea liniilor si coloanelor consum
timp de ordinul nanosecundelor, ceea ce provoac ntrzieri la rspunsurile
furnizate microprocesoarelor. Dac se adaug si timpul necesar remprosptrii, se
obin limitele performanei cipului de memorie. Pentru a mri performanele
memoriei, proiectanii au dezvoltat o serie de tehnologii care s depseasc aceste
limite, orientndu-se asupra modului n care sunt procesate datele intern moduri
care constituie formatele logice ale memoriilor interne: s-a ncercat memoria de tip
coloan static, apoi s-a trecut la FPM, care s-a dovedit a fi mai performant prin
anul 1995, ulterior tehnologia EDO prelund supremaia. Toate formatele logice,
au acelasi mod de adresare a celulelor si aceeasi tehnologie la baz, diferind prin
anumite semnale si cuante de timp alocate.
ARHITECTURA SISTEMELOR DE CALCUL
90
SCRAM (Static Column RAM)
Primele memorii au folosit tehnologia Static Column RAM, care efectua
citirea unei coloane de memorie si scrierea adresei pe linia de adres a cipului,
transmind 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 meninut deschis, pentru a indica faptul c acea
coloan a rmas constant.
FPM (Fast Page Mode)
Tehnologiile FPM folosesc tot o variant a acestei strategii. Controlerul de
memorie transmite mai nti o linie de adrese, apoi activeaz semnalul RAS. Ct
timp semnalul RAS este activ, se transmite o adres a semnalului CAS, pentru a
indica o anumit celul. Dac semnalul RAS este meninut activ, controlerul poate
trimite una sau mai multe adrese, urmate de un impuls al semnalului CAS, pentru a
indica celule din cadrul aceleiasi linii.
n terminologia de adresare a memoriei, linia este numit pagin, iar tipurile de
cipuri care permit aceste operaii sunt numite mod pagin (page mode RAM).
Calculatorul poate astfel accesa mai rapid mai multe celule dintr-o pagin de memorie,
asigurnd un timp de acces de 2530 ns. Pentru a accesa mai multe pagini, va trebui s
se schimbe ambele adrese ale liniei si coloanei, ceea ce va genera ntrzieri.
EDO (Extended Data Out)
O alt tehnologie utilizat este numit EDO (Extended Data Out) si este
destul de rapid pentru calculatoarele actuale. Memoria EDO lucreaz cel mai bine
n combinaie cu o memorie cache. n esen, EDO este o variant a memorie Fast
Page Mode(care permite accesul repetat la biii din cadrul unei pagini de memorie,
Ir a genera ntrzieri).
n timp ce memoria convenional se descarc dup fiecare operaie de citire
si necesit timp de rencrcare nainte de a fi citit din nou, EDO pstreaz datele
pn cnd primeste un alt semnal. Memoria EDO modific cuanta de timp alocat
pentru semnalul CAS. Linia de date mai rmne activ un interval scurt de timp,
dup ce linia CAS este dezactivat. Se elimin, astfel, timpul de asteptare necesar
pentru un ciclu separat de citire/scriere, deci, se pot citi sau scrie date la viteza cu
care cipul poate s selecteze adresele.
La cele mai multe cipuri, este cerut n mod normal o asteptare de 10 ns ntre
emiterea adreselor de coloan. Modelul EDO elimin aceast ntrziere, permind
memoriei s furnizeze mai repede datele solicitate. Teoretic, EDO poate s creasc
performanele cu 5060%, dar, la modelele mai recente de calculatoare, cele mai
bune implementri au condus la o crestere a performanelor cu 1020%.
Fizic, cipurile EDO si SIMM par identice, dar, pentru a implementa EDO,
este necesar un sistem complet diferit de gestiune (management) a memoriei, care
s se potriveasc cu tehnologia memoriei (BIOS-ul, n special). Astfel, se pot
instala SIMM-uri EDO n majoritatea calculatoarelor, dar vor funciona ca
memorie obisnuit, si nu vor contribui la o crestere a performanei.
Structura unui calculator
91
n aplicaiile multimedia, diferena ntre memoria cache si EDO nu este
notabil, astfel c EDO poate fi considerat ca o alternativ la memoria cache
secundar. La sfrsitul anului 1995, nlocuirea memoriei FPM cu EDO devenise
cea mai comun form de reducere a timpului de acces la memorie. Diferena
dintre cele dou memorii este mic, astfel nct multe calculatoare create pentru
memoria FPM accept si memoria EDO, desi nu cstig n performan. Cu toate
c FPM nu poate imita EDO, calculatoarele actuale pot determina ce fel de
memorie s-a instalat, lucrnd cu ea n mod adecvat. Pentru o rat de transfer dat,
memoria EDO va fi cu 30% mai rapid dect memoria FPM.
Exemplu. Acolo unde un cip page modede 70 ns are starea de asteptare zero
la o frecven a magistralei de 25 MHz, un cip EDO poate opera la stare de
asteptare zero pentru o frecven a magistralei de 33 MHz.
BEDO DRAM (Burst Extended Data Out DRAM)
Pentru a cstiga mai mult vitez cu EDO, Micron Technology a adugat
circuite cipului, pentru a-l face compatibil cu modul burst folosit de
microprocesoarele Intel, ncepnd cu 486. Noul cip, numit Burst EDO DRAM,
realizeaz toate operaiile de citire si scriere n serii de cte patru cicluri, numite burst.
Aceeasi tehnologie este regsit sub numele generic de pipeline nibble mode DRAM,
pentru c transferul datelor se realizeaz n serii de cte patru cicluri pe pipeline.
Cipul funcioneaz ca un EDO sau ca un page mode DRAM atunci cnd
linia CAS devine activ, dar, n loc s transfere un octet de date, un numrtor
binar transmite un semnal de patru ori n interiorul cipului, fiecare semnal
transfernd un octet de date.
BEDO este relativ usor de fabricat, pentru c necesit un minim de
schimbri fa de memoria EDO sau page modeDRAM. Cipul de siliciu conine un
fuzibil care determin dac cipul funcioneaz ca EDO sau BEDO. Cipul si poate
schimba starea n mod ireversibil, prin arderea fuzibilului. Tehnologia BEDO este
capabil s opereze la o vitez a magistralei de 66 MHz cu stri de asteptare zero,
la un timp de transfer de 52 ns.
SDRAM (Sychronous DRAM)
Datorit multiplexrii, cipurile de memorie nu pot opera simultan cu
microprocesoarele. Adresarea normal cere cicluri alternante, dar, prin
reproiectarea interfeei de baz, cipurile de memorie pot accesa date la fiecare ciclu
de ceas. Modificrile cipurilor de interfa au fcut ca cipurile de memorie s poat
opera sincron cu microprocesoarele: acestea se numesc DRAM sincron.
Desi schimbarea interfeei cipului poate evita blocrile sistemului, ea nu are
nicio contribuie la cresterea vitezei. Ca si microprocesoarele superscalare, cipurile
SDRAM sunt realizate cu stagii de operare multiple si independente, astfel nct cipul
poate s acceseze o a doua adres nainte de a ncheia procesarea primei adrese.
Extinderea pipeline se refer doar la adresarea coloanelor unei anumite pagini.
Cipurile SDRAM au rata de transfer foarte ridicat. Interfaa si pipeline-ul
determin timpi de transfer de ordinul nanosecundelor, ceea ce le permite utilizarea
ARHITECTURA SISTEMELOR DE CALCUL
92
pentru magistrale de memorie de 100 MHz. Cipurile actuale au anumite limite, care
reduc viteza la aproape 66 MHz. SDRAM-urile nu pot opera la viteze mai mari de
100 MHz, pentru c sloturile SIMM-urilor devin nesigure la frecvene mai mari.
Memoriile SDRAM sunt adaptate noului standard de magistral
sincron introdus de microprocesoarele familiei Intel P6 (Pentium Pro,
Pentium II si III). n figura 3.24 este prezentat structura unei memorii organizate
pe 4 blocuri, care sunt accesibile n mod concurent.
Fig. 3.24. Structura intern a unei memorii SDRAM de 8 MB.
Structura favorizeaz operaiile n regim burst. Se poate programa numrul
de locaii dintr-un burst la valorile de 1, 2, 4, 8 octei sau o pagin de memorie.
Accesul ncepe la o adres specificat si continu cu adresele succesive, pn la
numrul de locaii programate. Circuitul de memorie accept mai multe tipuri de
comenzi, fiecare fiind specificat printr-o combinaie a semnalelor de intrare.
Ratele de transfer cerute de diverse tehnologii de memorie pentru starea de
asteptare zero la o vitez de transfer dat pe magistral sunt prezentate n tabelul 3.1.
Structura unui calculator
93
Tabelul 3.1
Ratele de transfer la o vitez dat a magistralei locale
Viteza magistralei de memorie FPM EDO BEDO SDRAM
25 MHz 70 ns 70 ns 70 ns 12 ns
33 MHz 52 ns 70 ns 70 ns 15 ns
50 MHz N/A 52 ns 70 ns 12 ns
66 MHz N/A N/A 52 ns 10 ns
Dintre versiunile rapide de SDRAM dezvoltate n ultimii ani, se pot aminti:
- PC 100 RAM timp de acces 8 ns, rat de transfer 500-800 MB/s;
- PC 133 RAM timp de acces 7,5 ns, rat de transfer 800 MB/s;
- PC 2100/2700/3200 la frecvenele de 266/333/400 MHz.
EDRAM (Enhanced DRAM)
Memoriile de tip EDRAM sunt mai rapide si se obin din DRAM-urile
obisnuite prin adugarea unor blocuri mici de memorie cache static pe fiecare cip.
Cache-ul opereaz la vitez nalt (n mod obisnuit, 1 ns), astfel nct pot s
acopere cererile de date ale microprocesorului fr a aduga strile de asteptare
generate de operaia de remprosptare. Productorul tehnologiei EDRAM
(Ramtron) descrie patru avantaje ale acestui tip de memorie:
- legarea cache-ului SRAM cu DRAM-ul pe acelasi cip presupune folosirea
unei magistrale de lime mare pentru conectare (Ramtron foloseste o
magistral de 16.384 bii), care poate determina o rat de umplere a
memoriei cache de aproximativ 60 Gb/s, comparativ cu 110 Mb/s la
cache page modeDRAM. Timpul de umplere este de aproape sapte ori
mai mic (35 ns) la EDRAM fa de cache page modeDRAM (250 ns);
- modelul Ramtron foloseste o structur de control diferit fa de DRAM-
ul convenional, ceea ce permite ca memoria s fie prencrcat n timp
ce sistemul realizeaz transferul n mod burst din cache, prencrcarea
determinnd reducerea timpului de acces;
- desi cache-ul EDRAM foloseste proiectarea write through (vezi
paragraful 3.2.12), scrierea n memoria principal poate fi fcut cu timp
de asteptare zero. Prima operaie 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 iniial de 4 MB are ncorporat
o memorie cache de 2 KB, folosind dou buffer-e de cte un cuvnt (16 bii) pentru
transferul dintre cache si circuitele externe.
ARHITECTURA SISTEMELOR DE CALCUL
94
Spre deosebire de EDRAM, prile CDRAM asociaz att cache-ului, ct si
DRAM-ului principal, aceeasi 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 funcioneze
independent, deci, pot lucra n flux continuu.
MDRAM (Multibanc DRAM)
Principiul de lucru este urmtorul: n locul unui bloc de celule, fiecare celul
este adresat prin numrul liniei si al coloanei. Memoria DRAM produs de MoSys
Inc. desparte informaia stocat ntr-un numr de bancuri de memorie separate.
n modelul MDRAM iniial de 4 MB, fiecare din cele 16 bancuri de memorie
pstreaz 256 KB, ele fiind legate printr-o magistral central de date, care
acceseaz fiecare banc individual. Acest model permite unui banc de memorie s
trimit sau s primeasc o serie de date printr-un singur ciclu de ceas si s comute
la un alt banc pentru un alt transfer. Deoarece fiecare banc de memorie dispune de
o interfa de 32 bii care lucreaz la fel ca SDRAM, cipurile MDRAM opereaz la
viteze de transfer de pn la 1 GB/s.
RDRAM (Rambus DRAM)
Modelul Rambus foloseste un cache RAM static de 2.048 octei, care se
leag la memoria dinamic printr-o magistral de lime foarte mare, permind
transferul unei pagini de memorie n cache ntr-un singur ciclu. Cache-ul este
destul de rapid, furniznd date la un timp de acces de 15 ns.
Memoria Rambus nu este implementat pe calculator ca o memorie standard.
Ea foloseste o magistral special de nalt vitez. Indiferent de legtura cu
microprocesorul, limea magistralei dintre controlerul de memorie si cipul
Rambus este de 1 octet. Rambus opereaz la frecvene ntre 250 si 800 MHz,
modelul permind transferul a doi octei la fiecare ciclu de ceas: unul pe frontul
cresctor, iar al doilea pe frontul descresctor al impulsului de ceas.
Accesul la memorie se face n mod inteligent, incluznd funcia de pre-
ncrcare a datelor, iar citirea acestora se face n pachete mici, la viteze ridicate ale
semnalului de ceas. Viteza Rambus este izolat de microprocesor si rmne
constant indiferent de viteza microprocesorului. Rata de transfer maxim poate
atinge 1,6 GB/s. Viteza ridicat a Rambus-ului impune limite n proiectarea unui
sistem de memorie: magistrala trebuie s fie scurt si poate suporta doar 32 de
cipuri sau 10 module de memorie Rambus, un modul coninnd 32 de cipuri
Rambus. O vitez de peste 500 MB/s a magistralei poate s induc interferene;
pentru a le minimiza, Rambus funcioneaz la 2 V, cu oscilaii de 300 mV.
Rambus opereaz ca o mic reea, trimind date n pachete cu o lungime de
pn la 256 octei. Modelul este schimbat radical si cere o modificare important a
tipului de calculator pe care se instaleaz, fiind deocamdat util pentru sisteme care
includ integrare video. O colaborare ntre Intel si Rambus s-a materializat n 1999
printr-un DRAM care opereaz la 100 MHz, pe calculatoare de 64 de bii.
n figura 3.25 este prezentat arhitectura unui cip de memorie RDRAM cu
capacitatea de 32 MB.
Structura unui calculator
95
Fig. 3.25. Cip de memorie RDRAM de 32 MB.
Asa cum se observ din figur, unul din atu-urile memoriei RDRAM este c
fiecare cip de memorie poate conine pn la 32 de bancuri de memorie. Aceste
bancuri sunt individuale si aparin riguros aceluiasi cip, spre deosebire de bancurile
SDRAM, care sunt mprstiate printre mai multe cipuri de memorie. Revenind la
diagram, fiecare banc de memorie are dimensiunea de 1 MB, ceea ce face ca
ntregul cip s aib o capacitate de 32 MB.
Fiecare banc reprezint o matrice DRAM organizat n 512 linii a cte
128 dualoci (dualoctul este cea mai mic unitate de memorie adresabil de ctre
RDRAM). Fiecare dualoct conine 16 octei si, deci, dimensiunea total a liniilor
matricei este de 2 KB. n mod ideal, se poate pstra activ cte o linie din fiecare
din cele 32 de bancuri, pentru a maximiza sansele de a primi datele dintr-o linie
activ. n realitate, ns, pot exista numai 16 bancuri deschise simultan sau, mai
precis, doar jumtate din bancurile existente pe cip.
Figura 3.26 prezint dou operaii: una de citire si cealalt de scriere din/n
memorie, pentru a ilustra lucrul simultan cu doar jumtate din bancurile disponibile.
Modul de funcionare este urmtorul. Atunci cnd procesorul citeste un dualoct
de 16 octei dintr-un banc, datele respective prsesc bancul si ptrund n
amplificatoarele de semnal (numerotate), care sunt plasate de o parte si de alta a
bancurilor de memorie. Data A si Data B reprezint dou jumti ale unui dualoct (cu
8 octei fiecare), care prsesc bancul de memorie pe ci separate, asa cum se observ
n figura 3.26. Cele dou magistrale care ncadreaz bancurile de memorie au fiecare o
lime de 8 octei, deci jumtatea dualoctului reprezentat de Data A se va transfera pe
magistrala din dreapta, iar cea reprezentat de Data B pe magistrala din stnga.
Desi pe diagram pare c fiecare banc este conectat la 4 amplificatoare de
semnal, de fapt, fiecare pereche de csue cu aceeasi etichet (0/1, 1/2 etc.) plasat
la stnga si la dreapta unui banc constituie un singur amplificator de semnal.
ARHITECTURA SISTEMELOR DE CALCUL
96
Fig. 3.26. O operaie de citire si o operaie de scriere din/n memoria RDRAM.
Deoarece un numr prea mare de amplificatoare ar mri considerabil
suprafaa pastilei de memorie, fiecare banc de memorie mparte cele dou
amplificatoare adiacente cu bancurile vecine lui. De exemplu, amplificatoarele 0/1
si 1/2 sunt conectate la bancurile 0, 1 si 2. n acest fel, se micsoreaz suprafaa
cipului, ceea ce duce la o reducere a costului.
Exist si excepii, iar acestea sunt bancurile 0, 15, 16 si 31, care sunt conectate
fiecare la cte un singur amplificator dedicat si, ca atare, trebuie s astepte ca un
singur banc vecin s si termine activitatea pentru a deveni active. Faptul c dou
bancuri de memorie ajung s mpart un singur amplificator de semnal (sense amp)
reprezint motivul pentru care numai jumtate din bancurile unui cip pot fi active
simultan. Chiar si asa, numrul bancurilor de memorie active ale unui modul
RDRAM este mult mai mare fa de cel al unui modul SDRAM. De exemplu, pentru
un singur modul RIMM cu 4 cipuri, exist 32 de bancuri pe cip si, deci, 128 de
bancuri, dintre care 64 active simultan pentru ntregul modul. Acest numr ridicat de
bancuri de memorie reprezint explicaia pentru lrgimea de band si frecvenele
foarte mari (400 MHz, 533 MHz) cu care opereaz memoriile SDRAM.
Referitor la ultima diagram prezentat, mai trebuie fcute dou precizri:
- fiecare amplificator de semnal are si o capacitate proprie de stocare de
1024 de octei, el fiind un buffer ntre bancul de memorie si magistrala
sistemului;
- cele dou magistrale de 8 octei amintite anterior sunt divizate numai
conceptual, n realitate formnd o singur magistral cu limea de 16 octei.
Schema din figura 3.27 ilustreaz diferenele dintre un sistem de memorie
bazat pe RDRAM si unul bazat pe SDRAM. Se observ c la RDRAM cipurile
sunt atasate unor module de memorie RIMM, asa cum memoria SDRAM este
organizat n module DIMM.
Structura unui calculator
97
Fig. 3.27. Diferenele dintre sistemele de memorie RDRAM si SDRAM.
Diferena const n faptul c RIMM-urile sunt atasate plcii de baz n mod
serial, neputnd exista sloturi de memorie goale. Dac nu exist suficiente module
de memorie RIMM propriu-zise, sloturile de memorie de pe placa de baz rmase
libere vor trebui completate cu module de continuitate, pentru a permite canalului
Rambus s-si ating rezistena de sarcin (terminaia). Din punct de vedere teoretic,
pot exista oricte canale Rambus independente ntr-un sistem, fiecare cu o lrgime
de band de 1,6 GB/s, dar, n practic, numrul canalelor este limitat din
considerente de design al plcilor de baz.
Un alt factor care complic designul unui subsistem de memorie Rambus
este dat de faptul c semnalului de ceas provenit de la controlerul de memorie i
este necesar un timp att de ridicat pentru a ajunge la cel mai deprtat modul
RIMM din sistem, nct poate fi defazat de mai multe ori, 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 pstra o sincronizare ntre transferurile pe
magistrala de memorie. Aceste schimbri ale domeniilor de tact complic ns si
mai mult arhitectura sistemului de memorie Rambus, prezentat n figura 3.28.
ARHITECTURA SISTEMELOR DE CALCUL
98
Fig. 3.28. Elementele de baz ale unui sistem de memorie RDRAM.
DDR SDRAM (Double Data Rate Synchronous DRAM)
Acest tip de memorie transfer date pe ambele fronturi (cresctor si
descresctor) al semnalului de ceas. n felul acesta, viteza rezultat n transferul
datelor este dubl (Double Data Rate) fa de o memorie SDRAM. DDR SDRAM
se monteaz pe acelasi tip de socluri, dar are nevoie de un nou cip-set.
Fa de RDRAM, DDR SDRAM prezint urmtorul dezavantaj: dac datele
solicitate nu exist n cache, coninutul curent al acestuia este vrsat n DRAM-ul
integrat pe cip, este accesat o alt pagin si abia apoi are loc citirea din memorie.
Avantajele DDR SDRAM fa de RDRAM sunt preul si faptul c rata de
transfer RDRAM este aproximativ 6070% din rata DDR SDRAM (datorit
faptului c lucreaz pe 16 bii, fa de DDR SDRAM, care lucreaz pe 64 de bii).
Deoarece memoria DDR SDRAM este o variant evoluat a SDRAM-ului,
felul n care interacioneaz cu magistrala de memorie este foarte asemntor celui
al predecesoarei sale, cu excepia faptului c la DDR SDRAM se transfer dou
cuvinte de date ntr-o perioad de ceas.
Figura 3.29 prezint funcionarea unui sistem de memorie format din 3
DIMM-uri, fiecare cu 4 bancuri de memorie pe 64 de bii.
n figur sunt marcate blocurile de date de 64 de bii (alctuite din 4 pachete
de cte 16 bii), blocuri trimise de bancurile de memorie ctre procesor n timpul
unei operaii de citire. Sgeile indic sensul parcurs de date pe magistrala de
memorie la care sunt conectate DIMM-urile. n cazul unei operaii de scriere,
sensul ar fi, evident, invers (CPUmemorie).
Evaluarea modulelor DDR SDRAM se face ntr-un mod diferit de SDRAM,
principalul criteriu nemaifiind frecvena, ci lrgimea de band maxim oferit
teoretic si care se exprim n MB/s.
Standardele uzuale actuale sunt PC1600, PC2100 si PC2400. Primul are o
frecven de 2100 MHz (datorit transmisiei datelor pe ambele fronturi ale
semnalului). Lrgimea de band de 1600 MB/s se obine nmulind limea cii de
date (64 de bii) cu frecvena memoriei (200 MHz) si mprind la numrul de bii
dintr-un octet (8).
Similar, pentru PC2100 frecvena este 2133MHz, adic, 266 MHz, iar
pentru PC2700, frecvena 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 bii.
DDR2 SDRAM (Double Data Rate Two Synchronous DRAM)
Memoriile DDR2 fac parte din familia memoriilor SDRAM, reprezentnd o
mbuntire 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 obinut prin mbuntirea semnalizrii
magistralei si prin operarea celulelor de memorie la jumtate din frecvena de ceas
(un sfert din rata de transfer a datelor).
Dac memoria DDR2 ar opera la aceeasi frecven de ceas ca DDR, ar
asigura aceeasi lrgime de band, dar ar avea o ntrziere semnificativ mai mare.
Ca si n cazul DDR, datele din memoriile DDR2 sunt transferate att pe frontul
cresctor, ct si pe frontul descresctor al ceasului. Diferena principal dintre DDR
si DDR2 este aceea c n cazul DDR2 magistrala este sincronizat la de dou ori
frecvena la care lucreaz celulele de memorie, astfel nct pot fi transferai 4 bii de
date ntr-un ciclu al celulei de memorie, conform diagramei de timp din figura 3.30.
Frecvena magistralei DDR2 este crescut prin unele mbuntiri la
interfaa electric, folosirea tehnologiei on-die termination sau folosirea unor
buffer-e de prencrcare. Buffer-ul de prencrcare n cazul DDR2 are o adncime
de 4 bii, spre deosebire de doi bii n cazul DDR. Din pcate, implementarea
tuturor acestor tehnologii au dus la o crestere a ntrzierilor. Dac n cazul DDR
apare o ntrziere ntre dou si trei cicluri ale magistralei de date, DDR2 poate avea
ntrzieri de 4 pn la 6 cicluri. Acesta este motivul care a fcut necesar ca
magistrala s lucreze la o frecven de dou ori mai mare.
ARHITECTURA SISTEMELOR DE CALCUL
100
Fig. 3.30. Citirea n rafale la DDR2 SDRAM.
Un alt cost cauzat de cresterea vitezei este necesitatea ncapsulrii cipurilor
n capsule mai scumpe si mai dificil de asamblat, cum ar fi BGA (Ball Grid Array).
Schimbarea capsulelor a fost necesar pentru a menine integritatea semnalului la
viteze mai mari.
Din punct de vedere al consumului de energie, DDR2 a mai fcut un pas
nainte, necesitnd numai 1,8 V fa de 2,5 V, ct era necesar pentru DDR.
Consumul de energie poate fi redus chiar si mai mult, prin reducerea frecvenei n
situaiile n care nu este necesar o rat de transfer foarte mare. Tensiunea maxim
recomandat este 1,9 V, fiind chiar interzis depsirea acesteia n situaiile n care
stabilitatea memoriei este un factor cheie. Totusi, modulele de memorie ar trebui s
reziste pn la 2,3 V, nainte ca memoria s fie complet distrus.
Pentru folosirea n calculatoarele personale, memoriile DDR2 vin sub forma
unor module DIMM cu 240 de pini, identificate, de obicei, dup rata maxim de
transfer. Cele sase standarde pentru modulele DDR2 sunt prezentate n tabelul 3.2.
Tabelul 3.2
Standardele pentru modulele de memorie DDR2
Numele
standardului
Frecvena
memoriei
(MHz)
Perioada
ceasului
(ns)
Frecvena
magistralei
I/O (MHz)
Transferuri
de date pe
sec. (mil.)
Numele
modu-
lului
Rata max.
de transfer
(MB/s)
DDR-400 100 10 200 400 PC-3200 3200
DDR-533 133 7,5 266 533 PC-4200 4266
DDR-667 166 6 333 667 PC-5300 5333
DDR-800 200 5 400 800 PC-6400 6400
DDR-1066 266 3,75 533 1066 PC-8500 853
DDR-1300 325 3,1 650 1300 PC-10400 10400
Structura unui calculator
101
DIMM-urile DDR2 nu au fost proiectate s fie compatibile cu modulele
DDR. Cheia de siguran la DDR2 se afl n alt poziie, iar densitatea pinilor (240
pentru desktop, 200 pentru notebook) este usor mai mare dect n cazul DDR
(184). Modulele DDR2 mai rapide sunt compatibile cu modulele DDR2 mai lente,
ns magistrala va funciona la viteza celui mai lent modul.
DDR3 SDRAM (Double Data Rate Three Synchronous DRAM)
Memoriile DDR3 sunt o mbuntire a modelului precedent de memorii,
DDR2. Principala diferen ntre cele dou const n faptul c magistrala I/O
DDR3 funcioneaz 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 obinerii 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 productori propun utilizarea
tranzistorilor dual-gate, tehnologie care ar permite reducerea si mai mare a
scurgerilor de curent. Tensiunea maxim recomandat pentru DDR3 este 1,575 V.
n mod normal, memoriile ar trebui s reziste pn la 1,975 V, fr a suferi o
distrugere total, desi, cel mai probabil, nu vor funciona corect la acest nivel.
Principalul avantaj al memoriilor DDR3 este dat de lrgimea de band.
Cresterea acesteia a fost posibil si datorit buffer-ului de prencrcare, a crui
adncime a fost mrit de la 4 bii, ct era n cazul DDR2, la 8 bii. Aceast dublare
a dimensiunii buffer-ului este spectaculoas, n comparaie cu celelalte mici
incrementri ale dimensiunii care au avut loc anterior. Redimensionarea buffer-ului
are un cuvnt greu de spus n ceea ce priveste ntrzierea semnalului CAS.
Teoretic, modulele DDR3 pot transfera date la o frecven de 8001600 MHz,
folosind ambele fronturi ale tactului I/O, cu frecvena de 400800MHz.
DIMM-urile DDR3 au acelasi numr de pini ca modulele DDR2 (240),
avnd si aceleasi dimensiuni, dar, cu toate acestea, sunt incompatibile din punct de
vedere electric, iar cheia de securitate este situat n alt poziie.
Cele patru standarde pentru modulele DDR3 sunt prezentate n tabelul 3.3.
Tabelul 3.3
Standardele pentru modulele de memorie DDR3
Numele
standardului
Frecvena
memoriei
(MHz)
Perioada
ceasului
(ns)
Frecvena
magistralei
I/O (MHz)
Transferuri
de date pe
sec. (mil.)
Numele
modu-
lului
Rata max.
de transfer
(MB/s)
DDR3-800 100 10 400 800 PC-6400 6400
DDR3-1066 133 7,5 533 1066 PC-8500 8533
DDR3-1333 166 6 667 1333 PC-10600 10667
DDR3-1600 200 5 800 1600 PC-12800 12800
ARHITECTURA SISTEMELOR DE CALCUL
102
O tehnologie complet nou, folosit pentru prima dat n cazul DDR3, este
topologia Fly-By. Generaiile anterioare de SDRAM, inclusiv DDR2, utilizau o
topologie stea pentru a mpri datele spre mai multe ci de semnal. Topologia Fly-
Byutilizeaz o singur legtur direct ctre toate componentele DRAM, ceea ce
permite un rspuns mult mai rapid din partea sistemului.
Motivul pentru care DDR2 nu s-a putut dezvolta mai mult dect a fcut-o nu
se datoreaz att procesului de fabricaie, care ar fi trebuit rafinat mai mult, ct
unor limitri mecanice. n esen, DDR2 nu este pregtit s ating viteze mai mari.
Teoretic, acest lucru ar fi posibil, dar, practic, tehnologia mecanic dezvoltat pn
azi nu permite acest lucru. La frecvene mai mari, DIMM-ul ncepe s ntmpine
probleme n ceea ce priveste integritatea semnalului. n cazul topologiei stea
folosite de DDR2, aceast problem s-ar rezolva dac s-ar reusi echilibrarea tuturor
ramurilor. Din pcate, efortul necesar pentru a face acest lucru este peste limitele
fizice din ziua de azi.
Pentru DDR3, integritatea semnalului este rezolvat la nivelul fiecrui modul
DRAM, n locul ncercrii unei echilibrri la nivelul ntregii platforme de memorie.
Acum, att adresele, ct si semnalele de control, sunt transmise pe aceeasi cale.
Practic, topologia Fly-By elimin limitrile cauzate de echilibrarea mecanic
folosit n DDR2, nlocuind-o cu un semnal automat de ntrziere, generat de ctre
controlerul de memorie. O alt inovaie prezent la DDR3 const n apariia unui
pin de reset. Acest pin permite resetarea unui modul de memorie fr resetarea
ntregului sistem, ceea ce duce la o scdere a timpului si a energiei pierdute.
De remarcat este si prezena unui senzor de temperatur, pentru prima dat
la memoriile DDR, senzor care detecteaz momentul n care modulul se apropie de
un anumit prag de temperatur si, n consecin, poate scurta intervalele de refresh.
Acest sistem de siguran permite si el o reducere a consumului de energie.
Un alt element caracteristic DDR3 este sistemul XMP (eXtended Memory
Profile). Acest sistem, implementat pe placa de baz, permite utilizatorului unei
configuraii alctuite dintr-un procesor Intel si o memorie DDR3 s realizeze un
overclocking foarte simplu. Doar prin selectarea unei anumite opiuni, sistemul va
decide singur factorii de multiplicare, tensiunile si frecvenele pn la care poate fi
forat ceasul pentru a cstiga 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 si GDDR4
(memoriile grafice pentru plcile grafice din familia GeForce FX). XDR-ul a fost
proiectat n special pentru sisteme mici, care necesit o lrgime de band ridicat,
si pentru sisteme GPU (Graphical Processing Unit) de top. Aceast tehnologie
elimin problemele cauzate de ntrzierile ridicate, prezente la primele modele
RDRAM. De asemenea, XDR DRAM permite o lrgime de band per pin mult mai
mare, ceea ce duce la scderea costurilor de producie a plcilor de circuite
integrate. Scderea costurilor este posibil datorit faptului c sunt necesare mai
puine ci de transmisie a datelor pentru aceeasi lrgime de band.
Structura unui calculator
103
Dispozitivele XDR DRAM folosesc un nucleu DRAM cu 8 bancuri,
implementate n tehnologie CMOS, avnd momentan o densitate de 512 Mb. Spre
deosebire de alte dispozitive DRAM, dispozitivele 16 XDR DRAM implementeaz
o lrgime programabil si suport magistrale de 8, 4 sau chiar 2 bii.
Elementele cheie ale arhitecturii XDR care permit performane ridicate sunt:
- XDR DRAM este un circuit integrat de memorie de mare vitez, cu o interfa
care lucreaz la 4 GHz, asigurnd o lrgime de band de pn la 8GB/s;
- Controlerul I/O, numit XIO n cazul XDR DRAM, asigur aceeasi vitez
ridicat ca la DRAM, aducnd si unele mbuntiri (tehnologia FlexPhase);
- Controlerul de memorie XMS este optimizat pentru a profita de inovaiile
aduse de XDR, cum ar fi tehnologia Dynamic Point-to-Point, care
permite o extindere a capacitii, pstrnd n acelasi timp si integritatea
ridicat a semnalului, caracteristic modelului Point-to-Point;
- Generatorul de tact, XCG, asigur patru iesiri programabile, care
garanteaz semnalele de tact pentru XIO si alte dispozitive XDR DRAM.
Celula XIO este un controler I/O performant cu ntrzieri reduse, care
foloseste un sistem de semnalizare pe 8 bii, la o frecven de pn la 4 GHz,
permind o lrgime de band de pn la 8 GB/s de la un singur dispozitiv XDR
DRAM. XIO poate fi configurat s suporte mai multe dispozitive, asigurnd astfel
lrgimea de band necesar aplicaiilor grafice sau altor aplicaii.
XIO este compus din unul pn la 12 blocuri de cerere a magistralei (RQ
ReQuest bus block), un bloc de control (CTL) si un numr variabil de blocuri de date
de 8 sau 9 bii n cazul memoriilor cu cod corector de erori (DQ). Blocul RQ asigur
subsistemelor memoriei informaiile referitoare la adrese si control. Blocul CTL
asigur accesul la registre, iniializarea, ntreinerea si testarea funciilor sistemului. Un
bloc DQ este capabil s primeasc si 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 priveste upgrade-
ul, o capacitate ridicat si performan ridicat, esenial n cazul serverelor, de
exemplu. Datorit tehnologiei Dynamic Point-to-Point, XDIMM-urile pot fi
instalate att n configuraie single-channel, ct si n configuraie dual-channel,
pstrnd ntreag lrgimea de band a sistemului si conservnd integritatea
semnalului, caracteristic topologiei Point-to-Point.
O alt inovaie tehnologic adus de XDR este tehnologia DRSL
(Differential Rambus Signaling Level). Aceast tehnologie presupune un standard
de semnalizare de joas tensiune, joas putere, diferenial, care permite o
magistral scalabil, multi-GHz, bidirecional, de tip Point-to-Point, care
conecteaz celula XIO la dispozitivele XDR DRAM.
XDR foloseste si standardul RSL (Rambus Signaling Level), dezvoltat
iniial pentru RDRAM, standard care permite conectarea a pn la 36 de
dispozitive ntr-un mod sincron, adresate prin intermediul unei magistrale si
comandate prin niste semnale. Sistemul de memorie Rambus XDR satisface
nevoile computaionale din numeroase domenii, cum ar fi computere grafice,
servere, reelistic sau electronic de larg consum.
ARHITECTURA SISTEMELOR DE CALCUL
104
Fig. 3.31. Modul de memorie XDIMM.
eDRAM (embedded DRAM)
eDRAM reprezint o memorie dinamic cu acces aleator, capacitiv,
integrat n mod uzual n acelasi pachet cu procesorul, spre deosebire de modulele
DRAM externe si SRAM-urile utilizate tipic pentru memorii cache.
mpachetarea permite folosirea de magistrale mult mai mari si o vitez
sporit a operaiilor. Datorit unei densiti mult crescute pentru DRAM n
comparaie cu SRAM, pot fi utilizate cantiti mai mari de memorie. Diferena n
procesul de fabricaie determin dificultatea integrrii pe aria cipului procesorului,
astfel nct mai multe circuite integrate de pe arie trebuie mpachetate ntr-un chip,
ridicnd costul. Cele mai recente dezvoltri surmonteaz aceast limitare, utiliznd
procesarea CMOS standard pentru a fabrica eDRAM, ca n formatul de memorie
1T-SRAM (vezi paragraful urmtor).
Memoria eDRAM este folosit ntr-o larg varietate de console de jocuri.
Att celula microprocesoare utilizat n PlayStation 3, ct si cea pentru IBM
Power, folosesc eDRAM la cache-ul L2, n nodul de procesare de 45 nm al IBM.
1T-SRAM (1 Transistor Static RAM)
Tehnologia de fabricare a memoriilor 1T-SRAM, introdus de ctre MoSys,
ofer o alternativ la memoriile SRAM tradiionale, permind 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 susinut de o reea de
circuite care fac funcionarea memoriei s fie echivalent celei a memoriilor
SRAM (controlerul ascunde toate operaiile specifice memoriilor DRAM, cum ar fi
prencrcarea sau reactualizarea). n consecin, memoriile 1T-SRAM au o
interfa standard SRAM de un ciclu si sunt percepute de restul logicii sistemului
exact ca orice alt memorie SRAM.
Datorit celulei de memorare cu un tranzistor, varianta 1T-SRAM este mai
mic dect SRAM-ul clasic, bazat pe celule de 6 tranzistori, fiind mai apropiat de
eDRAM (embedded DRAM) n ceea ce priveste dimensiunea si densitatea (vezi
figura 3.32).
n acelasi timp, 1T-SRAM ofer performane comparabile cu SRAM, consum
mai puin dect eDRAM si este realizat n tehnologie CMOS, ca SRAM-ul clasic.
Structura unui calculator
105
Fig. 3.32. Comparaie ntre celula 1T-SRAM si celula SRAM cu 6 tranzistori.
MoSys prezint 1T-SRAM ca fiind soluia ideal pentru aplicaiile 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 bii fiecare, rezultnd un
total de 32 Kb) conectate la o memorie cache de dimensiunea unui banc si la un
controler de memorie.
Chiar dac, n comparaie cu DRAM, 1T-SRAM este ineficient n ceea ce
priveste spaiul, lungimea mai mic a cuvintelor permite atingerea unor viteze mult
mai mari, reusindu-se astfel realizarea unui ciclu RAS la fiecare acces. Fiecare
acces se face la cte un banc, permind astfel bancurilor nefolosite s fie
reactualizate n acelasi timp. n plus, fiecare linie citit este copiat si n memoria
cache. n eventualitatea unor accesri repetate la acelasi banc, exist dou variante:
fie sunt accesate linii diferite, caz n care toate liniile vor fi reactualizate automat,
fie aceeasi linie este accesat de mai multe ori. n cazul celei de-a doua variante,
urmtoarele citiri se vor face din memoria cache, acordndu-se astfel timpul
necesar pentru realizarea remprosptrii.
Pn n prezent (mai 2008), au fost lansate patru generaii de memorii
SRAM cu un tranzistor:
1. 1T-SRAM original, care are o dimensiune de dou ori mai mic dect
6T-SRAM si consum mai puin 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.
ARHITECTURA SISTEMELOR DE CALCUL
106
3. 1T-SRAM-R, care ncorporeaz un sistem de corecie a erorilor (ECC).
Celulele de memorie sunt mai mici, ceea ce duce automat la o rat mai
mare de apariie a erorilor. Totusi, sistemul ECC rezolv aceast problem.
4. 1T-SRAM-Q, care este o versiune quad-density, folosind un proces
nestandard de fabricare a condensatoarelor, care permite njumtirea
dimensiunilor memoriei nc o dat fa de 1T-SRAM-R.
Memoriile 1T-SRAM funcioneaz la viteze comparabile cu 6T-SRAM si
sunt semnificativ mai rapide dect eDRAM, modelul quad-density fiind cu doar
1015% mai mare. n majoritatea proceselor de fabricare a memoriei eDRAM este
necesar parcurgerea unor pasi suplimentari si costisitori, depsind astfel destul de
mult costul de producie al memoriei 1T-SRAM.
Memoriile 1T-SRAM sunt disponibile si sub form de circuite integrate.
Nintendo GameCube a fost prima platform care a folosit 1T-SRAM ca sistem
principal de stocare a datelor. De asemenea, memoria 1T-SRAM a fost folosit n
urmasul lui GameCube, consola Nintendos Wii.
QDR I I SRAM (Quad Data Rate I I Static Random Access Memory)
QDR este o memorie SRAM echipat cu un pin pentru intrarea datelor si un
pin separat pentru iesirea datelor, spre deosebire de SRAM standard, n care cei doi
pini sunt comuni. QDR permite introducerea si extragerea datelor pe ambele
fronturi (DDR Double Data Rate), ducnd astfel la obinerea unor viteze foarte
mari pentru operaiile de scriere si de citire, care se pot desfsura simultan. n felul
acesta, se poate realiza un transfer de pn la patru cuvinte la fiecare ciclu de ceas,
cu o laten foarte mic. Acest tip de memorie este ideal pentru sistemele de
comunicaii si reelistic, cum ar fi router-e sau switch-uri. Pentru a veni n
ntmpinarea tendinelor 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 generaie (vezi figura 3.33).
Din punct de vedere al consumului de energie, memoriile QDR se situeaz
foarte bine, necesitnd doar 1,8 V pentru nucleul memoriei si 1,4 V pentru pinii de
intrare/iesire. Acest aspect este extrem de important n domeniul pentru care sunt
concepute s funcioneze aceste memorii.
Fig. 3.33. Arhitectura QDR II SRAM.
Structura unui calculator
107
Memoriile QDR II sunt prevzute cu dou generatoare de semnale de ceas,
unul pentru intrare, cellalt pentru iesire. Astfel, intrarea si iesirea pot fi foarte usor
defazate. Memoriile QDR II vin sub forma unor FPGA-uri de 13 15 1 mm.
O memorie QDR II hotrste dac va efectua o operaie de scriere sau de
citire, n funcie de starea n care se afl pinii de citire (R#) si de scriere (W#) la
momentul n care ceasul se afl pe front cresctor. Pentru a da o comand de citire,
R# trebuie s fie la nivelul 0 (vezi figura 3.34), iar pentru a da o comand de
scriere, R# trebuie s fie la nivelul 1 si W# la nivelul 0 (vezi figura 3.35).
Fig. 3.34. Operaia de citire la QDR II.
Fig. 3.35. Operaia de scriere la QDR II.
SGRAM (Synchronous Graphics RAM)
Funcionarea memoriei SGRAM este asemntoare celei de la memoria
SDRAM. Funcia principal a memoriei SGRAM este aceea de a stoca si citi date
simultan n zona de memorie. Deoarece este o memorie de tip DRAM, trebuie s
dispun de o remprosptare periodic, pentru a citi si a scrie date eficient si rapid.
Astfel, au fost introduse funcii speciale, care specific adresele grafice necesare
aplicaiilor. Aceste funcii sunt selectate prin folosirea unor registre speciale, dar si
prin folosirea unor pini speciali.
ARHITECTURA SISTEMELOR DE CALCUL
108
Fig. 3.36. Formatul ciclic al diagramei de timp pentru memoria SGRAM.
La fel ca n cazul memoriei SDRAM, toate semnalele de intrare sunt
nregistrate pe frontul cresctor al semnalului de ceas (vezi figura 3.36). Formatul
SGRAM conceput de IBM poate citi sau scrie un numr de locaii dintr-un burst de
1, 2, 4, 8 octei sau chiar o pagin de memorie. Odat ce un rnd este activ, mai
este necesar doar adresa coloanei.
Exist un contor n structura sa intern, care numr fiecare locaie de
memorie, dup ce au fost introduse datele. Dac parametrii de citire si scriere sunt
nregistrai, memoria continu s introduc date pn cnd toate spaiile sunt
completate sau pn cnd apar secvene de ntrerupere. Pentru a face trecerea pe un
nou rnd, acesta trebuie s fie pregtit si astfel va deveni activ.
VRAM (Video RAM)
Problemele de acces la memorie apar cu precdere n sistemele video la care
memoria este folosit ca un buffer de cadru pentru imaginea de pe ecran, aceasta
fiind nmagazinat sub form digital si alocat pentru fiecare element al imaginii.
ntregul coninut al buffer-ului este citit de la 44 la 75 de ori pe secund. ntre timp,
calculatorul poate ncerca s scrie o nou informaie n buffer, pentru ca aceasta s
apar pe ecran.
Cu memorii DRAM obisnuite, aceste operaii de citire si scriere nu pot
aprea simultan, una trebuie s o astepte pe cealalt, timpul de asteptare afectnd n
mod negativ performanele video, viteza sistemului si rbdarea utilizatorului.
Asteptarea poate fi evitat prin introducerea unui cip special de memorie,
care s aib dou ci (dual ported) pentru accesul fiecrei locaii. O astfel de
memorie permite scrierea si citirea simultan. Cipurile de memorie video VRAM
permit citirea si scrierea aleatorie la un port, n timp ce la cellalt port se permite
doar citirea secvenial, care corespunde nevoilor de scanare a unei imagini video.
Dezavantajul principal al tehnologiei VRAM este c aceasta este mai
scump. Folosind ns memorii VRAM, se poate mri viteza sistemului video cu
aproximativ 40%.
Structura unui calculator
109
Pentru a trimite siruri de date ctre monitor cu o vitez ridicat, memoria
VRAM include o serie de registre numite SAM (Serial Access Memory), legate la
un port serial. Acest port este conectat la un controler D/A de vitez foarte mare.
Memoria VRAM are o 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 creste flexibilitatea n aplicaiile 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 pstreaz 1 MB aranjat n plane de 32 de bii, fiecare
fiind compus din 512 512 celule. Trei cipuri asigur memoria necesar pentru a
afisa o rezoluie de 1024 768, 1024 1024 si pentru operare n True Color pe 24
bii. Intern, o magistral de date de 256 de bii leag fiecare plan de bii cu
controlerul logic intern al cipului care multiplexeaz datele pe 32 de bii,
compatibile cu circuitele din calculator. Pentru a furniza date n scopul scanrii
video, cipul conine dou registre serie. Cipul ncarc unul din registre, iar din
cellalt extrage datele, comutnd ntre ele n momentul n care registrul al doilea se
goleste. Cipul conine patru registre de 32 de bii, dou pentru nmagazinare si
pentru culorile de fundal, iar celelalte dou pentru control si msti.
Cu o rat de transfer de pn la 640 MB/s, modelul WRAM poate mri
viteza sistemului cu 50 % n comparaie cu VRAM.
Observaie. Formatul Windows RAM nu are legtur cu Microsoft Windows.
3.2.10. Verificarea prin controlul paritii
Revenind la caracteristicile generale ale memoriei, pe majoritatea plcuelor
de memorie se afl instalate 9 cipuri (pentru memoriile paritare), primele opt avnd
rol de memorie efectiv de lucru (8 bii de la 0 la 7), iar cel de-al 9-lea fiind
numit cip de paritate (parity cip), cu rol de testare a strii de funcionare a
celorlalte 8 cipuri, prin verificarea paritii memoriei.
Paritatea memoriei este de dou tipuri: par si impar.
Exemplu. Fie cazul unei memorii impare. Un rnd de bii conine un numr
impar de 1 (numr reinut n cmpul 9). Datele sunt cuprinse pe 8 bii (1 bit/cip).
Cnd o dat este impar, bitul de paritate este 1.
La pornirea sistemului, cnd se ajunge la etapa de verificare a memoriei, se
verific si paritatea rndurilor de bii (parity check). Memoria fiind, conform
exemplului, impar, trebuie s existe un numr impar de bii, n caz contrar
sistemul semnalnd o eroare de paritate (parity error) si deci un cip (sau mai
multe) este (sunt) defect(e). n cazul memoriei pare, procesul este identic cu cel
anterior, doar c un rnd de bii conine un numr par de 1.
ARHITECTURA SISTEMELOR DE CALCUL
110
Memoriile SIMM se prezint constructiv cu 8 sau 9 cipuri pe plcu, dup
cum sunt cipuri paritare sau nu. Nu toate plcile SIMM folosesc verificarea
paritii, dar toate plcile DIMM sunt prevzute cu aceasta facilitate.
Exemplu. SIMM-urile paritare pe 8 bii folosesc un bit de paritate (module
pe 9 bii), iar cele pe 32 de bii folosesc 4 bii de paritate (module pe 36 bii, 8 4
= 32 bii + 4 1 = 4 bii de paritate).
Exist si module de memorie care folosesc cipuri compuse, pe o plcu
fiind prezente doar 2 sau 4 circuite integrate. n acest caz, n aceeasi capsul sunt
prezente patru sau dou cipuri de memorie. n cazul n care se folosesc module de
memorie neparitare, va trebui dezactivat din CMOS opiunea de verificare a
paritii memoriei, n caz contrar aprnd erori. n nici un caz nu se pot folosi
combinaii de module paritare cu module neparitare.
n timpul funcionrii sistemului, la detectarea unei erori de paritate este
emis o cerere de ntrerupere (de ctre cipul specializat), care va avea ca rezultat
final oprirea procesului aflat n execuie si reluarea unei rutine BIOS care va afisa
un mesaj specific. Unele variante de microprocesoare au integrat un modul special
de evaluare si verificare a paritii memoriei.
Anumii productori ai cipurilor de RAM au abandonat verificarea paritii,
deoarece crestea preul memoriei cu 1015 %, la aceasta adugndu-se si
posibilitatea unei compactri a cipurilor util la calculatoare de tip notebook.
Exist ns si calculatoare care au implementat o paritate fals (fake
parity), care emite un semnal ce atest paritatea fr s realizeze o verificare
efectiv. Datorit faptului c cipurile care genereaz paritate fals sunt mai ieftine,
acestea sunt utile la calculatoarele care au implementat mecanismul de detectare a
paritii. n general, modulele de memorie cu paritate fals apar identice modulelor
cu paritate.
Singurul mod de a le identifica este folosind un tester pentru module de
memorie. Deoarece modulele cu paritate fals lucreaz la nivel hard, programele
obisnuite de testare nu pot s le detecteze (conform cu Kingston Tehnologies,
cipurile cu paritate fals sunt marcate cu una din urmtoarele inscripii: BP, GSM,
MPEC sau VT).
Exist ns procedee care pot efectua att detecia, ct si corecia unor erori.
Un exemplu l constituie procedeul ECC (Error Correction Code), care necesit
bii suplimentari pentru fiecare octet memorat. Procedeul poate s localizeze bitul
care este eronat, iar eroarea poate fi remediat (se mai numeste tehnologie Error
Detection And Correction EDAC). Firma IBM foloseste tehnologia ECC pe
calculatoarele proiectate pentru a funciona ca servere.
Acest cod poate corecta automat orice eroare de 1 bit care apare ntr-un
cuvnt de 64 de bii. n acest scop, memoria foloseste cuvinte de cod de 72 de bii
(64 bii de date + 8 bii de control). Aceast schem are aceeasi eficien cu cea
paritar (8/9 = 64/72), dar ofer corecie cu o robustee mai mic, pentru c poate
corecta o eroare la 64 de bii, spre deosebire de cealalt schem, care poate detecta
o eroare la 8 bii.
Structura unui calculator
111
Procedeul ECC nu este mai costisitor de implementat, datorit cresterii
dimensiunilor magistralelor; astfel, pentru microprocesoarele Pentium si post-
Pentium, care au magistrala de date de 64 bii, costul unei memorii cu verificare a
paritii si corecie este acelasi.
La fiecare acces la memorie, hardware-ul verific dac cuvntul de cod este
corect; dac nu, calculeaz automat cel mai apropiat cuvnt de cod, pe care apoi l
decodific. Aceste operaii 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 excepia memoriilor SDRAM, care pot ajunge pn la cteva
nanosecunde), timp destul de mare, avnd n vedere vitezele de tact la care lucreaz
azi diversele procesoare. Pentru a scdea timpul de acces al memoriei RAM, se
folosesc diverse metode de acces la memorie prin paginarea acesteia sau ntreesere
(Paging Modesau 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 conine informaia dorit si, n cadrul paginii,
adresa datei solicitate (vezi capitolul 6). Automat, spaiul de cutare a informaiei este
micsorat prin paginarea memoriei, iar timpul n care este accesat o informaie scade.
ntreeserea presupune c procesorul desfsoar o activitate paralel de
accesare pentru dou bancuri de memorie (memoria este mprit, dup cum s-a
mai spus, n cel puin dou bancuri, bancul 0 si bancul 1, care nu sunt accesate
simultan). Timpul de citire din bancul 0 este folosit de memoria instalat n bancul
1 pentru operaia de remprosptare, apoi timpul n care procesorul citeste din
bancul 1 este folosit de bancul 0 pentru aceeasi operaie de remprosptare.
Acest lucru este posibil datorit faptului c microprocesorul acceseaz date,
n general, de la adrese apropiate sau nvecinate cu adresa citit anterior. Cum
citirea este un proces secvenial, 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 operaia 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 locaii succesive, doar
pare sau doar impare (la citiri succesive din acelasi banc datele sunt scrise cele
pare n primul banc, cele impare n cel de-al doilea banc), nu mai este timp de
refresh ntre dou citiri consecutive si se vor introduce una sau dou stri de
Dteptare ale procesorului (wait states), ceea ce determin ncetinirea general a
vitezei sistemului. Plasarea plcilor de memorie n bancuri separate este foarte util
si uneori obligatorie, existnd modele de plac de baz care nici nu funcioneaz cu
o singur plcu de memorie.
ARHITECTURA SISTEMELOR DE CALCUL
112
3.2.12. Memoria cache
Datorit vitezei foarte mari cu care lucreaz microprocesoarele, implicit si
fluxul de date si informaii cerute de acestea va fi foarte intens. Dar, deoarece unele
componente din lanul de transmisie a datelor sunt mai lente, n spe memoria de
lucru RAM (prin necesitatea de a fi remprosptat) si magistralele calculatorului
(lente din principiu), acest flux de date cerut de procesor este mai puin 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 posibilitile de prelucrare a datelor de ctre microprocesor si
capacitatea RAM-ului si magistralelor de a pune la dispoziia microprocesorului
aceste date a aprut un decalaj foarte mare, ceea ce a dus n procesul de lucru al
unui microprocesor la introducerea strilor de pauz (wait states), astfel nct, prin
execuia a unuia, a dou sau chiar a patru cicluri de asteptare, datele solicitate s
aib timp s ajung la procesor. Practic, se ntmpl urmtorul lucru: microprocesorul
lucreaz fie cu datele necesare calculelor, fie cu comenzi. Cum datele si informaiile
necesare sunt cuprinse n memoria de lucru, microprocesorul citeste memoria RAM,
prelund anumite date, si realizeaz calculele si procesele cerute.
Cum memoria este mult mai lent n livrarea datelor fa de viteza cu care le
poate prelucra microprocesorul, n funcionarea procesorului se introduc ciclurile
de asteptare despre care s-a vorbit anterior; ct timp aceste cicluri se execut, se
permite datelor solicitate de procesor s fie localizate si extrase din RAM,
depuse pe magistrala de date si transportate ctre microprocesor. n final, dac se
va nmuli timpul ct dureaz un ciclu de asteptare cu milioanele de operaii pe
secund ale unui microprocesor, va rezulta o pierdere de timp substanial.
Deci, era nevoie de o memorie de lucru ceva mai aproape de
microprocesor si mult mai rapid (ideal fr s necesite operaii de
remprosptare). De aceea, ntre microprocesor si memoria de lucru a mai fost
introdus o component si anume memoria cache, realizat din celule de tip
SRAM, cu rol de memorie tampon. La rndul su, memoria cache a fost divizat
fizic n dou niveluri si anume (vezi figura 3.37):
- memoria cache primar sau intern (primary level cache, L1)
- memoria cache secundar sau extern (secundary level cache, L2 / L3).
Memoria cache intern este plasat chiar n capsula microproceso-rului, dar
este de dimensiuni foarte mici, n general de la 8 KB (Pentium) pn la 1 MB (Xeon).
Memoria cache secundar este exterioar microprocesorului si se monteaz
pe placa de baz a sistemului. Este sub form de cipuri (DIP) care se introduc n
soclurile aferente, existnd si aici, ca si la memoria RAM, 8 socluri pentru
memoria cache de lucru si un al 9-lea soclu pentru cipul de control al memoriei
cache. Tipurile mai noi de cache sunt oferite sub form de plachete asemenea
SIMM-urilor. Plcile de baz actuale au uzual cel mult 2 MB de memorie cache.
Memoria cache este subordonat n activitatea ei unui controler de memorie
cache (de exemplu, controlerul i82385) care va realiza gestiunea adreselor si
controlul operaiilor de citire/scriere.
Structura unui calculator
113
Fig. 3.37. Schema unei memorii cache ntr-un sistem Pentium:
1. microprocesor;
2. cache intern (un bloc de 8 KB);
3. cache intern (al doilea bloc de 8 KB);
4. cache extern;
5. cip de marcare a zonelor de memorie cache (TAG RAM);
6. memorie RAM.
Memoria cache intern
Primul nivel de memorie cache (L1) se afl integrat n microprocesor si are o
poriune destinat datelor si instruciunilor (codului) si o alta destinat comenzilor.
Cele dou module de cte sunt complet separate si lucreaz independent.
Dimensiunea memoriei cache interne creste la procesoarele moderne.
Acest tip de memorie mbunteste mult performanele, deoarece fiind n
interiorul procesorului transmisia de date este foarte rapid, nefolosindu-se n
acest caz magistralele externe, foarte lente. n plus, fiind o memorie de tip SRAM,
nu necesit remprosptare si dispune de un timp de acces extrem de scurt. Mai
mult, la unele microprocesoare, cache-ul de date este mprit n blocuri, iar
controlerul de cache va gsi foarte rapid datele necesare, folosind o tabel index,
alegnd exact blocul de memorie care le conine.
Memoria cache extern
Datorit dimensiunilor mici ale memoriei cache interne (limitele fiind
impuse din considerente tehnice de construcie a microprocesoarelor) si pentru a
mri si mai mult performanele sistemelor de calcul, mai ales pentru a creste
sansele ca procesorul s gseasc datele necesare n cache (cache hit) si nu n RAM
sau, mai ru, pe hard disk (cache miss), a fost introdus nc un nivel de memorie
cache (L2 sau L3), de data aceasta n exteriorul microprocesorului, memorie care
este ca dimensiuni cu mult mai mare dect memoria cache intern (de ordinul
megaocteilor).
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 frecvena intern de 166 MHz, va fi nevoie
de o memorie cache cache cu timp de acces de 100/166 = 6,02 ns.
Principiul de funcionare al unei memorii cache este sintetizat n figura 3.38.
ARHITECTURA SISTEMELOR DE CALCUL
114
Fig. 3.38. Principiul memoriei cache.
3.2.12.1. Maparea memoriei cache
Figura 3.39 prezint schema logic a algoritmului de citire a memoriei cache.
Fig. 3.39. Operaia de citire a memoriei cache.
Structura unui calculator
115
O caracteristic de baz a memoriei cache este funcia de mapare (de
translatare), care atribuie locaii 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 locaie din memorie poate fi
depozitat n cache si n care locaie anume. Dac politicile de nlocuire au libertatea
de a alege orice locaie din cache pentru a pstra copia, cache-ul se numeste
(complet) asociativ. La extrema cealalt, dac fiecare poriune din memoria
principal poate merge ntr-o singur locaie din cache, procedeul se numeste mapare
direct. Cele mai multe memorii cache implementeaz un compromis ntre cele
dou, numit mapare asociativ pe seturi.
Exemplu. Se consider o memorie cache de 1024 B (1 KB). Datele se transfer
ntre memoria principal si cache n blocuri de cte 8 octei. nseamn c memoria
cache are 128 de linii a cte 8 octei fiecare. Memoria principal const din 64 KB,
fiecare octet fiind direct adresabil printr-o adres de 16 bii. Se poate considera c
memoria principal const din 8 Kblocuri de cte 8 octei fiecare. Deoarece exist un
numr mai mic de linii ale memoriei cache fa de numrul blocurilor memoriei
principale, este necesar un algoritm pentru plasarea blocurilor memoriei principale
n liniile memoriei cache. n plus, este necesar un mijloc de a determina care bloc
al memoriei principale ocup la un moment dat o linie a memoriei cache.
Memoria cache cu mapare direct
n cazul tehnicii celei mai simple, numit mapare direct, fiecare bloc al
memoriei principale poate ocupa o singur linie posibil a memoriei cache, asa
cum este reprezentat n figura 3.40.
Maparea este:
C = Amod L, (3.5)
unde:
C = numrul liniei din memoria cache;
A= adresa din memoria principal;
L = numrul de linii din memoria cache.
Pentru exemplul considerat, L = 128 si C = A mod128. Funcia de mapare
poate fi implementat simplu, utiliznd adresa de 16 bii. Cei 3 bii mai puin
semnificativi, cmpul cuvnt (offset), identific un cuvnt (octet) unic n cadrul
unui bloc al memoriei principale. Restul de 13 bii specific unul din cele 2
13
= 8
Kblocuri ale memoriei principale.
Cmpul de 7 bii, numit linie sau index (slot), indic numrul blocului,
modulo128. Astfel, blocurile 0, 128, 256, , 8064 vor fi amplasate n linia 0;
blocurile 1, 129, , 8065 vor fi amplasate n linia 1, si asa mai departe, pn la
blocurile 127, 255, , 8191, care vor fi amplasate n linia 127.
ARHITECTURA SISTEMELOR DE CALCUL
116
Fig. 3.40. Memorie cache cu mapare direct.
Cmpul de 6 bii, 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 operaie de citire are loc astfel. Memoriei
cache i se prezint o adres de 16 bii. Numrul liniei de 7 bii este utilizat ca un
index n memoria cache pentru accesul la o anumit linie. Dac marcajul de 6 bii
este egal cu marcajul liniei respective, atunci numrul de 3 bii al cuvntului este
utilizat pentru a selecta unul din cei 8 octei ai liniei respective. n caz contrar,
marcajul si numrul liniei (n total 13 bii) se utilizeaz pentru a ncrca un bloc din
memoria principal.
Memoria cache cu mapare asociativ
Maparea direct este o tehnic care se poate implementa simplu. Principalul
dezavantaj al acesteia este c exist o locaie fix n memoria cache pentru oricare
bloc dat. Deci, dac un program face referire n mod repetat la cuvinte din dou
blocuri diferite care se mapeaz n aceeasi linie, blocurile vor fi interschimbate n
mod continuu n memoria cache si rata de succes va fi redus.
O metod care elimin dezavantajul maprii directe este maparea asociativ,
reprezentat n figura 3.41. n acest caz, adresa memoriei principale const dintr-un
marcaj de 13 bii si un numr al cuvntului de 3 bii. Un bloc din memoria principal
se poate ncrca n oricare linie, iar marcajul su de 13 bii se memoreaz mpreun
cu blocul. Pentru a determina dac un bloc se afl n memoria cache, sunt necesare
circuite pentru a compara simultan marcajul su cu marcajele fiecrei linii.
Structura unui calculator
117
Fig. 3.41. Memorie cache cu mapare asociativ.
n cazul maprii asociative, exist o flexibilitate n privina nlocuirii unui
bloc atunci cnd un nou bloc este ncrcat n memoria cache. Algoritmii de
nlocuire a blocurilor din memoria cache, prezentai n continuare, au rolul de a
creste eficiena. 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 reine avantajele
maprii directe si ale celei asociative. n acest caz, memoria cache este mprit n
I seturi, iar fiecare din acestea conine J linii, asa cum rezult din figura 3.42.
Rezult:
L = I J , (3.6)
K = Amod I, (3.7)
unde K este numrul setului.
Cu aceast metod, blocul coninnd adresa A poate fi mapat n oricare din
liniile setului I.
Observaie. n cazul extrem, n care I = L si J = 1, maparea asociativ pe seturi
se reduce la maparea direct, iar dac I =1 si J = L, se obine maparea asociativ.
Utilizarea a dou linii pe set (J = 2) este cea mai utilizat organizare asociativ
pe seturi, care mbunteste semnificativ rata de succes fa de maparea direct.
Exemplu. Cache-ul de nivel 1 din AMD Athlon este asociativ pe dou seturi,
adic orice locaie din memoria principal poate fi depozitat n 2 locaii din L1.
ARHITECTURA SISTEMELOR DE CALCUL
118
Fig. 3.42. Memorie cache cu mapare asociativ pe seturi.
Memoria cache cu mapare pseudo-asociativ
Memoria cache asociativ pe seturi testeaz simultan toate cile posibile,
folosind un mecanism asemntor coninutului adresabil al memoriei. Memoria
cache pseudo-asociativ testeaz fiecare cale posibil o singur dat. n cele mai
multe cazuri, cnd gseste un bloc din prima testare (succes), memoria cache pseudo-
asociativ este la fel de rapid ca n cazul maprii directe, dar are o rat de esec mai
sczut dect n cazul maprii directe si mai aproape de cea a maprii asociative.
Analize i comparaii
Asociativitatea poate fi privit ca un fel de schimb. Dac sunt zece uniti,
politica de nlocuire le trateaz ca o singur intrare, dar va trebui s caute n toate
pentru un cache hit. A verifica mai multe locaii consum mai mult putere, spaiu
si timp. Pe de alt parte, depozitarea folosind asociativitatea are cteva minusuri,
de aceea viteza procesorului scade. Regula ,,degetului mare are rolul de a dubla
asociativitatea de la maparea direct la cea asociativ pe dou ci si de la cea
asociativ pe dou ci la cea pe patru ci etc., avnd acelasi efect ca n cazul unui
cache hit. Mrirea asociativitii la peste patru ci are un efect mai slab dect n
cazul unui cache hit si este realizat, n general, pentru alte motive.
Dac fiecare locaie din memoria principal poate fi depozitat n alte dou
locaii din memoria cache, se pune ntrebarea care din cele dou va fi folosit. Cea
mai simpl si cea mai folosit schem utilizeaz LSB-ul cmpului linie (index) al
locaiei de memorie ca index pentru memoria cache si are dou intrri pentru
fiecare linie. Avantajul acestei scheme este c etichetele stocate n cache nu trebuie
Structura unui calculator
119
s includ acea parte a adreselor din memoria principal care sunt implicate n
cmpul linie (index) al memoriei cache.
Att timp ct etichetele cache reprezint doar civa bii, ocup spaiu puin,
putnd fi citite si comparate rapid. Unul dintre avantajele maprii directe este acela
c las loc speculaiilor rapide si simple. Atunci cnd o adres a fost calculat, i s-a
atasat index cache unic, care ar putea conine datele. Noua intrare n cache poate fi
citit, iar procesorul si continu lucrul cu acele date pe care le avea nainte de a
termina procesul de verificare, dac adresa cerut se potriveste cu eticheta actual.
Ideea ca procesorul s foloseasc date depozitate n cache nainte ca eticheta
s se potriveasc complet poate fi aplicat si la cache-ul asociativ. O parte din
etichet, numit cheie (hint), poate fi folosit pentru a alege una din adresele
cerute, aflate posibil n harta cache. Aceste date pot fi folosite n paralel cu
verificarea ntregii etichete. Tehnica hint lucreaz excelent cnd este folosit n
contextul translatrii adreselor.
Alte tehnici propun un cache oblic (skewed cache), unde indexul cii 0
este direct, dar indexul cii 1 este format cu o funcie hash. O funcie hash de
calitate are proprietatea c adresele care intr n conflict cu maparea direct tind s
nu mai aib conflicte cnd sunt mapate cu funcia hash si este mai neplcut ca un
program s sufere din cauza unui numr neasteptat de mare de conflicte. Pe de alt
parte, exist laten n implementarea funciei hash. n plus, cnd trebuie ncrcat
o nou linie si exclus una veche, ar putea deveni dificil s se determine care dintre
liniile existente a fost ultima folosit, deoarece noua linie intr n conflict cu datele
de la diferii indecsi ai fiecrei ci. Metoda LRU (vezi paragraful 3.2.12.3)
urmreste principiul vecintii (cache nears) ntr-un cache non-oblic (non-skewed),
mprindu-l pe seturi. Asadar, asociativitatea complet are un avantaj major fa
de asociativitatea pe seturi.
3.2.12.2. Eficiena i localizarea datelor n memoria cache
O memorie cache este util numai dac anumite informaii sunt folosite
frecvent si mult timp. Atunci, acele informaii merit s fie pstrate n memoria
cache. Din fericire, s-a constatat experimental c acest lucru este adesea adevrat.
Aceast observaie poate fi formulat n mai multe moduri, unul dintre acestea
fiind principiul localizrii (locality principle). Exist dou feluri de localizare:
- localizare spaial dac este nevoie de unele date, n curnd va fi
nevoie probabil de date aflate n apropierea lor n memorie;
- localizare temporal cnd s-au gsit anumite date, foarte adesea
acestea vor fi folosite de mai multe ori.
Acestea sunt doar observaii, dar se potrivesc destul de bine programelor, asa
cum funcioneaz acestea n calculatoarele actuale. Validitatea observaiilor
permite folosirea de memorii cache. Acesta nu nseamn c nu exist programe
care folosesc prost memoriile cache; dimpotriv, se poate scrie destul de usor un
astfel de program (este o metod eficient de a ncetini calculatorul). Programele
obisnuite ns nu se comport astfel.
ARHITECTURA SISTEMELOR DE CALCUL
120
Eficiena unei memorii cache se msoar n procentajul de gsiri ale datelor,
numit rat de succes, H (hit rate). Opusul acestei valori este procentajul de ratri,
numit rat de esec, M (miss rate). Procentajele acestea se msoar rulnd
numeroase programe si fcnd media.
Relaia n aceste dou valori este:
H = 1 M. (3.8)
Dac timpul de citire din memoria cache este T
H
(hit time), iar timpul pierdut
pn se rateaz este T
M
(miss time), atunci se poate msura timpul mediu de acces
la memoria cachecu urmtoarea formul:
T = T
H
H + T
M
M. (3.9)
Se observ c timpul unei ratri (T
M
) nu este neaprat egal cu timpul de citire
din memoria lent, T
l
, deoarece, n cazul unei ratri, nti trebuie constatat dac
datele sunt n memoria cache, iar, dac nu sunt, se acceseaz memoria lent.
Memoria cache va fi eficient dac T < T
l
. Parametrul H depinde de mrimea
memoriei cache: pentru o memorie cache de dimensiunea memoriei lente (caz
limit), toate datele pot fi inute n memoria rapid si se va obine H = 1. Pentru o
memorie cache de dimensiune 0, H = 0, pentru c niciodat datele nu se gsesc n
aceast memorie.
Relaia ntre mrimea memoriei cache, a memoriei lente si parametrul H nu
este o linie dreapt, ci creste rapid la nceput, asa cum se observ n figura 3.43.
Din cauza aceasta, o memorie cache relativ redus ca mrime are o importan
mare ca eficien.
Fig. 3.43. Performana memoriei cache.
Eficiena depinde si de raportul dintre T
H
si T
M
. n anumite cazuri, T
M
este de
ordinul a 10
4
T
H
, deci chiar un parametru H de valoare redus poate nsemna mult.
Exemplu. Procesorul Intel Xeon la frecvena de 3,06 GHz are o memorie cache
L3 de 1 MB, cu magistrala de sistem la 533 MHz, si contribuie la cresterea nivelului de
performan cu peste 15%.
Structura unui calculator
121
3.2.12.3. Rennoirea coninutului memoriilor cache
n ceea ce priveste rennoirea coninutului memoriilor cache, pentru
stergerea datelor curente si aducerea altora noi, sunt folosite mai multe metode:
- metoda RW (RandomWrite) sau de rescriere aleatorie: datele coninute
sunt rescrise aleator, fr a folosi un anumit criteriu sau algoritm care s
determine care bloc de date va fi rescris;
- metoda FIFO (First In First Out): primul intrat primul iesit, adic,
primele blocuri de date scrise n memorie sunt rescrise primele;
- metoda LRU (Least Recently Used): datele folosite cel mai puin recent;
blocurile de date care, temporal, nu au fost folosite timp de cel mai lung
interval sunt rescrise primele, cele accesate de curnd fiind pstrate;
- metoda LFU (Least Frequently Used): datele folosite cel mai puin
frecvent; blocurile de date care, statistic, au fost folosite cel mai rar sunt
rescrise primele, cele folosite mai des fiind pstrate.
Alte metode sunt: politica circular (round robin), politica setului de lucru
(working set), politica optim (optimal), politica ceasului (clock), politica celei de-a
doua sanse (second chance) etc. Metoda cea mai folosit este LRU; de aceea, cel
de-al 9-lea cip de memorie cache (TAG RAM) va juca si rol de contor al frecvenei
de apelare a datelor din cache, determinndu-se datele care vor fi rescrise.
Modul de lucru general al microprocesoarelor cu memoria cache este
urmtorul: programul va cuta datele, prin intermediul controlerului de cache, n
cache-ul intern. Dac datele solicitate nu se afl la acest nivel (cache miss), va
merge mai departe cu cutarea n cache-ul extern si apoi, n cazul negsirii acestora
nici aici, n memoria principal RAM. Probabilitatea ca procesorul s gseasc
datele necesare ntr-unul din cele dou niveluri cache este ns destul de mare.
Totodat, magistrala memoriei care, n lipsa cache-ului, ar fi fost solicitat pentru
operaii cu RAM-ul, este disponibilizat pentru alte procese.
3.2.12.4. Conectarea memoriei cache la microprocesor
Memoria cache este conectat cu microprocesorul si memoria RAM n
sistem serial sau paralel.
Conectarea serial (look through) vezi figura 3.44 presupune ca
dialogul microprocesorRAM s se desfsoare prin intermediul cache-ului. Acest
sistem are dezavantajul c cererile procesorului sunt ntrziate de intermediarul
cache, dar are avantajul c magistrala memoriei nu este ocupat la fiecare cerere a
procesorului. Dac datele solicitate se afl n cache (cache hit), interogarea
memoriei RAM nu se mai efectueaz, iar magistrala memoriei rmne liber.
Conectarea paralel (look aside) vezi figura 3.45 presupune ca
microprocesorul s se adreseze, n paralel, att memoriei cache ct si memoriei
RAM. n cazul n care ecoul din partea cache-ului este pozitiv, adresarea ctre
RAM este abandonat. De aici rezult, fa de metoda anterioar, avantajul vitezei,
evitndu-se cutarea secvenial: nti n cache, apoi n RAM. Dezavantajul apare
prin faptul c magistrala memoriei este tot timpul folosit si, astfel, nu mai este
disponibil n momentele de scanare a memoriei altor accesri din partea
perifericelor. Mai ales n modul multitasking, acest lucru se reflect n ntrzieri
semnificative ale vitezei de execuie a diferitelor sarcini.
ARHITECTURA SISTEMELOR DE CALCUL
122
Fig. 3.44. Organigrama conectrii seriale (look through).
Fig. 3.45. Organigrama conectrii paralele (look aside).
3.2.12.5. Depunerea n memorie a rezultatelor
Indiferent de tipul funciei de mapare, fiecrui bloc din memoria cache i
sunt asociaii doi bii de comand, numii V si D.
Bitul V este un bit de validare a blocului, V = 1 fiind o condiie necesar a
obinerii unui cache hit. Bitul V este util ndeosebi n sistemele multiprocesor, n
vederea meninerii coerenei memoriilor cache locale, datorit redundanei
informaionale. 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 conin acea dat din cadrul celorlalte
procesoare trebuie invalidate prin resetarea V = 0.
Necesitatea invalidrii blocurilor (V = 0) apare chiar si n sistemele
uniprocesor. Imediat dup resetarea sistemului, uzual, procesorul execut un
program ncrctor rezident n memoria EPROM. Cum imediat dup iniializarea
sistemului coninutul cache-ului este, practic, aleator, pentru a evita falsele situaii
de cache hit, la citirea programului ncrctor din EPROM, se iniializeaz biii V
cu zero. La prima ncrcare a unei date (instruciuni) n cache, bitul V aferent se va
seta pe 1, validnd astfel situaia de cache hit.
Structura unui calculator
123
Bitul D (dirty data) este pus pe 0 la ncrcarea iniial a blocului n cache. La
prima scriere a acelui bloc, bitul se pune pe 1. Evacuarea propriu-zis a blocului se
face doar dac bitul D = 1. Practic, prin acest bit se minimizeaz evacurile de
blocuri n memoria principal, pe baza principiului c un bloc trebuie evacuat
numai dac a fost scris n cache. n acest sens, din punct de vedere al accesrilor de
scriere de ctre procesor (depunerea n memorie a rezultatelor), exist trei posibiliti:
- metoda Write Through vezi figura 3.46, n care se utilizeaz traseul
invers al citirii datelor, blocurile fiind depuse mai nti n memoria cache
intern, apoi n cache-ul extern si n final n memoria RAM;
Fig. 3.46. Schema metodei Write Through.
- metoda Write Back figura 3.47, n care scrierea se face n cache, n
cazul n care adresa de memorie la care se face scrierea exist si ea n
cache (de fapt, dac blocul de date de la acea adres se afl ncrcat n
cache). n cazul n care blocul de date localizat de acea adres nu mai
exist n cache, scrierea se face direct n RAM;
Fig. 3.47. Schema metodei Write Back.
- metoda Posted Write, prin care din memoria cache este rezervat o
anumit poriune care va juca un rol de buffer si n care vor fi memorate
blocuri de date pn cnd magistrala memoriei devine disponibil,
moment n care buffer-ul si transfer coninutul n RAM.
n vederea meninerii coerenei memoriilor cache, cu precdere n sistemele
multiprocesor, exist dou posibiliti, n funcie de procesul de scriere:
- Write I nvalidate, prin care CPU care scrie determin ca toate copiile din
celelalte memorii cache s fie invalidate nainte ca ea s-si modifice
blocul din cache-ul propriu;
- Write broadcast, prin care CPU care scrie pune data de scris pe magistrala
comun, spre a fi actualizate toate copiile din celelalte cache-uri.
Ambele strategii de meninere a coerenei pot fi asociate cu oricare dintre
metodele de scriere, dar de cele mai multe ori se prefer Write Back cu invalidare.
ARHITECTURA SISTEMELOR DE CALCUL
124
3.2.12.6. Cache hiti cache miss
ntr-o memorie cache, apar posibile patru procese distincte, ca n tabelul 3.4.
Tabelul 3.4
Tipuri de acces n memoria cache
tip acces situaie n cache aciune n cache
citire miss
evacuarea blocului si ncrcarea unui
bloc nou
citire hit
compararea marcajelor/etichetelor
(tag)
scriere miss
evacuarea blocului, ncrcarea unui
bloc nou si scrierea datei n bloc
scriere hit
scrierea datei n blocul din cache
(Write Back)
Asadar, memoriile cache mbuntesc performana, ndeosebi pe citirile cu
cache hit, iar, n cazul utilizrii scrierii tip Write Back, si pe scrierile cu cache hit.
mbuntirea accesului la memorie pe citirile CPU este normal, avnd n vedere
c acestea sunt mult mai frecvente dect scrierile (orice instruciune implic cel
puin o citire din memorie pentru ncrcarea sa; statistic, cca. 75 % din accesrile la
memorie sunt citiri, unii autori susinnd c raportul real citiri/scrieri este de 9/1).
Cache miss se refer la ncercarea nereusit de a citi sau scrie o parte din
date n memoria cache, ceea ce rezult n scrierea/citirea n memoria principal cu
latene mai mari. Explicaiile pentru cauzele situaiilor de cache miss, conform
literaturii de specialitate, sunt de trei tipuri:
- la citirea instruciunilor;
- la citirea datelor;
- la scrierea datelor.
Un cache miss la citirea instruciunilor cauzeaz, n general, ntrzieri,
deoarece procesorul sau ultimul fir de execuie trebuie s astepte pn cnd
instruciunile sunt aduse din memorie.
Un cache miss la citirea datelor cauzeaz ntrzieri mai mici, deoarece
instruciunile nu depind de citirea cache-ului, putnd fi evitate, pn cnd datele
sunt preluate din memoria principal si instruciunile care depind de acestea si
continu execuia.
Un cache miss la scrierea datelor cauzeaz ntrzieri mici, deoarece scrierea
poate fi pus ntr-o coad de asteptare si sunt cteva limitri n execuia
instruciunilor. Procesul poate continua pn cnd coada este plin.
Secvene de referine din memorie trecute prin benchmark-uri sunt salvate ca
urme de adrese. Ulterior, analizele simulate au artat posibile diferene ntre
lungimile urmelor de adrese, n funcie de designul memoriei cache. Cercettorul
Mark Hill a separat situaiile de cache miss n trei categorii:
Structura unui calculator
125
- Ratri obligatorii (compulsory misses) sunt acele pierderi cauzate de
primele referiri la date. Mrimea si asociativitatea memoriei cache nu fac
nicio diferen ntre numrul de ratri obligatorii. Aducerea timpurile a
operanzilor din memorie nu este util n acest caz.
- Ratri de capacitate(capacity misses) sunt acele pierderi care privesc
asociativitatea sau mrimea blocurilor, fcute numai de blocurile finite
din cache. Curba ratei pentru ratrile de capacitate n funcie de
capacitatea memoriei cache d msura localizrii temporale a unui sir
temporar de referine. Informaiile care indic dac memoria cache este
plin, goal sau aproape plin nu sunt utile n acest caz.
Observaie. Cache-ul procesorului are aproape mereu fiecare linie
umplut cu o copie a unei linii din memoria principal si de fiecare dat
alocarea unei noi linii necesit stergerea uneia vechi.
- Ratrile de conflict (conflict misses) sunt acele pierderi care ar putea
fi evitate dac cache-ul n-ar elimina o intrare mai trziu. Ratrile de
conflict pot fi puse ntr-o hart de ratri (miss map), care este inevitabil
si care ofer un detaliu particular asociativitii si politicii de nlocuire.
Fig. 3.48. Rata de pierderi (miss rate) n funcie de capacitatea memoriei cache.
Graficul din figura 3.48 ilustreaz performanele memoriei cache, obinute
pe un benchmark pentru ntregi din SPEC2000. Aceste benchmark-uri reprezint
gradul de ncrcare al unei staii de lucru. Rata de pierderi n cazul asociativitii
este sensibil superioar celei pentru mapare direct. Diferenele obinute 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 funcie de modul de citire a cuvintelor, celulele memoriei cache pot fi:
- asincrone, la care operaia de citire a unui cuvnt se face n dou etape:
se depune adresa, apoi se transfer datele, pentru fiecare cuvnt fiind
necesar acelasi ritual. Aceste cipuri se livreaz sub form DIP.
ARHITECTURA SISTEMELOR DE CALCUL
126
- sincrone, pentru care accesul se face n mod burst (se depune o singur
adres, iar transferul se face pentru patru cuvinte simultan, primul cuvnt
cu adresa indicat de controlerul de cache si urmtoarele trei). Timpul de
acces scade destul de mult, ajungnd pn la 9 ns. Cipurile sincrone sunt
implementate direct prin lipire pe placa de baz a sistemului.
- pipe-line burst cache, care este prevzut la iesire cu registre speciale, n
care datele citite sunt stocate temporar. Astfel, este posibil o nou
adresare, practic, n acelasi timp cu preluarea datelor de ctre
microprocesor din registrele de stocare (latch). Timpul de acces scade
foarte mult (chiar la 4 ns), fapt care duce la performane 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 instruciunilor 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 puin trei memorii cache separate
(pentru instruciuni, TLB si date), fiecare fiind specializat pe un anumit rol. Dac
pipeline-urile au instruciunile si datele separate n memoria cache, se poate spune
c este emulat o arhitectur de tip Harvard. Iniial, aceast faz s-a regsit la
masinile cu instruciuni si date separate n memorie. Dar cele mai multe dintre
calculatoarele moderne sunt concepute n arhitectur von Neumann.
Cache victim (victim cache)
Cache-ul victim este o memorie cache folosit pentru a reine blocurile
sterse din cache-ul procesorului, datorate unui conflict sau unei ratri. Cache-ul
victim se afl ntre cache-ul principal si zona de reumplere, deinnd numai
blocuri care au fost eliminate din cauza unui cache miss. Aceast tehnic este
utilizat pentru a reduce penalizrile suportate de memoria cache la o ratare.
Exemple. Cache-ul victim original de pe HP PA 7200 a fost mic si complet
asociativ. Mai trziu, procesoare precum AMD K7 si K8 au folosit mult memorie
cache secundar pe post de cache victim, pentru a evita duplicatele de stocare.
Cache de urmrire (trace cache)
Unul dintre exemplele cele mai extreme de specializare a memoriei cache
este cache-ul de urmrire, gsit n microprocesoarele Intel Pentium 4. Trace cache
este un mecanism destinat cresterii gradului de aducere din memorie a
instruciunilor (instruction fetch) si lrgimii de band, precum si reducerii
consumului de putere (n cazul lui P4), prin stocarea urmelor (traces)
instruciunilor care au fost aduse din memorie si decodate.
Structura unui calculator
127
Un trace cache stocheaz instruciuni chiar si dup ce acestea au fost
depozitate sau retrase. n general, instruciunile sunt adugate n trace cache n
grupuri care reprezint blocuri individuale de baz sau urme dinamice (dynamic
traces). Un bloc de baz const dintr-un grup de instruciuni neramificate,
terminate cu ramificaii. O urm dinamic include numai instruciuni ale cror
rezultate sunt utilizate efectiv si elimin urmtoarele instruciuni luate ca
ramificaii (att timp ct acestea nu sunt executate), o urm dinamic putnd fi o
concatenare de mai multe blocuri de baz. Acesta permite unitii de fetch a unui
procesor s aduc din memorie cteva blocuri de baz fr s se preocupe de
ramificaiile aflate n execuie.
Liniile de urmrire sunt stocate n cache pe baza unui numrtor de program
aflat n prima instruciune a urmei. Aceasta permite depozitarea pentru diferite ci a
urmelor care ncep de la aceeasi adres, fiecare reprezentnd rezultate diferite ale
ramificaiei. n etapa de aducere din memorie (fetch) a unui pipeline, numrtorul
de program curent, mpreun cu un set de predicii ale instruciunilor ramificate
(branch prediction), este pus n memoria cache, mai exact, n trace cache, pentru o
situaie de cache hit. Dac apare un cache miss, ncepe construcia unei noi urme.
Cache-ul victim este folosit n procesorul P4, pentru a stoca micro-operaii
deja decodate sau translaii ale instruciunilor de pe sisteme 86, astfel nct, atunci
cnd va fi necesar o instruciune, aceasta nu va mai trebui decodat din nou.
Cache multinivel (multilevel cache)
O alt problem este schimbul ntre latena memoriei cache si rata de succes
(cache hit). Memoriile cache mari au o rat de succes mai bun, dar latene mari.
Pentru a rezolva aceast problem, n majoritatea calculatoarelor se folosesc mai
multe nivele de cache, cu blocuri de cache mai mici si rapide, grupate ntr-unul mai
mare si lent.
Un cache multinivel opereaz cutnd prima dat n nivelul cel mai de jos
(L1) si, n cazul unui cache hit, viteza de procesare creste. Dac apare cache miss
n module cache mici, atunci se caut n cache-ul cel mare (L2) si, mai departe, n
memoria principal. Diferena de laten ntre memoria principal si memoria
cache a devenit mai important. Unele memorii cache au nceput s utilizeze mai
mult de 3 nivele pe un chip.
Exemplu. n 2003, procesorul Itanium 2 a nceput s fie livrat cu 6 MB de
cache L3 pe cip. Sistemele IBM Power 4 aveau 256 MB de cache L3 pe cip,
partajat ntre mai multe procesoare. Procesorul AMD Phenom foloseste 2 MB de
cache L2 n schimbul celui L3.
Scratch Pad
Folosirea eficient a spaiului de memorie integrat n cipul procesorului (on-
chip) este extrem de important n aplicaiile moderne ale sistemelor dedicate
(embedded systems), bazate pe nucleele procesoarelor. n completarea memoriei
cache de date, care realizeaz interfaa cu memoria mai lent din afara cipului
procesorului (off-chip), n diverse aplicaii se foloseste adesea o memorie SRAM
rapid, de tip on-chip, numit memorie scratch pad (vezi schema din figura 2.29)
ARHITECTURA SISTEMELOR DE CALCUL
128
Cache integrat i cache divizat
Memoria cache multinivel introduce un nou design al deciziilor.
Exemple. n unele procesoare, toate datele din cache-ul L1 trebuie s se
gseasc undeva n cache-ul L2. Aceste memorii sunt numite cache strict inclusiv.
Alte procesoare (cum ar fi AMD Athlon) au un cache exclusiv: datele sunt
garantate a fi n cel mult unul dintre nivelele L1 sau L2, nu n amndou. Totodat,
alte procesoare, precum Intel PII, PIII si P4, nu solicit ca datele din cache-ul L1 s
se gseasc si n L2, desi ar putea face acest lucru.
Nu sunt acceptate nume universale pentru aceast politic intermediar, desi
termenul inclusiv a fost deja folosit. Avantajul cache-ului exclusiv este acela c
depoziteaz mai multe date. Acest avantaj este cu att mai mare, cu ct cache-ul L1
exclusiv este compatibil cu L2, caz n care se diminueaz memoria L2, aceasta
fiind mai mare dect L1. Cnd apare o situaie de cache miss n L1 si cache hit n
L2 la un acces, linia din cache-ul L2 pe care se afl blocul cu hit este schimbat cu
o linie din L1. Acest schimb implic ceva mai mult munc dect copierea liniei
din L2 n L1, ceea ce o face doar cache-ul inclusiv.
Un avantaj al cache-ului strict inclusiv este c atunci cnd dispozitivele
externe sau alte procesoare ntr-un sistem multiprocesor doresc s stearg o linie
cache, nu au dect s caute n L2. n memoria cache, ierarhiile care nu au pus n
aplicare mecanismele includerii trebuie s verifice si cache-ul L1. n schimb, exist
o corelaie ntre asociativitatea cache-ului L1 si cea a cache-ului L2: dac cache-ul
L2 nu are cel puin attea ci ca L1, asociativitatea cache-ului L1 este
restricionat.
Cache-ul strict inclusiv foloseste linii de dimensiuni mari n cache, ceea ce
reduce mrimea etichetelor din cache-ul secundar (cache-ul exclusiv necesit ca
ambele cache-uri s aib linii de aceeasi dimensiune, pentru a le putea schimba
cnd n L1 apare cache miss si n L2, cache hit). Dac cache-ul secundar este cu un
ordin de mrime mai mare si datele sunt tot cu un ordin de mrime mai mari dect
etichetele, aceast zon poate fi etichetat ca zon de salvare si poate fi
incrementat comparabil pn la dimensiunile zonei de care au nevoie L1 si L2 s
depoziteze date.
Dup cum s-a mai spus, calculatoarele puternice au un alt cache ntre L2 si
memoria principal, numit cache de nivel trei (L3). Acest cache poate fi
implementat pe un chip separat de procesor si, ncepnd din 2004, poate varia ca
mrime de la 2 la 250 MB. Beneficiile unui chip L3 depind de cererea de acces a
aplicaiilor. Staiile de lucru high-end si serverele au memoria de tip L3
implementat n procesor, ceea ce duce la mrirea vitezei si reducerea costurilor.
Exemplu. Intel Xeon MP, produs numit Tulsa, are un cache L3 ncorporat
de 16 MB, partajat ntre cele dou nuclee ale procesorului.
n cele din urm, la cellalt capt al ierarhiei (n cazul staiilor de lucru low-
end), registrul de fisiere al procesorului poate fi considerat drept cel mai mic si cel
mai rapid cache din sistem, cu caracteristica de a fi programat software de un
compilator, ca si cum ar aloca registre pentru a pstra valori primite din memoria
principal.
Structura unui calculator
129
Studiu de caz: memoria cache la procesorul AMD Athlon 64 (K8)
Pentru a exemplifica specializrile cache-ului multinivel, integrat si divizat, se
foloseste ierarhia din nucleul K8 al procesorului AMD Athlon 64 (vezi figura 3.49).
Fig. 3.49. Structura nucleului K8 al procesorului AMD Athlon 64.
Nucleul K8 are patru memorii cache: una pentru instruciuni, una pentru
blocul TLB, una pentru datele TLB-ului si una pentru date. Fiecare dintre aceste
cache-uri este specializat:
1. Cache-ul pentru instruciuni pstreaz cpii ale celor 64 de linii ale
memoriei si aduce din memorie 16 B la fiecare ciclu. Fiecare octet din acest cache
este depozitat n 10 bii n loc de 8, cu un marcaj suplimentar de bit al limitelor
instruciunilor (acesta este un exemplu de precodare). Cache-ul are doar protecie
de paritate, mai degrab dect ECC, deoarece informaia de paritate ocup spaiu
mai puin, iar datele avariate pot fi nlocuite de date proaspete aduse din memorie.
2. Instruciunile blocului TLB pstreaz cpii ale intrrilor din tabelul
paginilor (PTE). Fiecare ciclu de instruciuni adus din memorie are propria sa
adres virtual, translatat cu ajutorul TLB-ului ntr-o adres fizic. Fiecare intrare
are 4 sau 8 octei n memorie, iar fiecare TLB este mprit n dou seciuni: una
pentru a pstra PTE-urile care ocup 4 KB din hart si alta pentru a pstra PTE-
urile care ocup 2 sau 4 MB din hart. mprirea permite o potrivire a circuitului
n fiecare seciune n mod complet asociativ. Sistemul de operare mapeaz seciuni
diferite ale spaiului de adrese virtuale cu diferite mrimi ale PTE-urilor.
3. Datele TLB-ului au dou cpii, care conin intrri identice. Cele dou cpii
permit accesul la dou date per ciclu, pentru a translata adresele virtuale n adrese
fizice. Ca si instruciunile TLB-ului, si aceasta este mprit n dou tipuri de intrri.
4. Datele cache-ului pstreaz cpii ale celor 64 de linii ale memoriei. Este
mprit n 8 bancuri (fiecare depozitnd cte 8 KB de date) si poate aduce din
memorie doi octei de date pe ciclu.
ARHITECTURA SISTEMELOR DE CALCUL
130
Nucleul K8 are, de asemenea, un cache multinivel. Exist instruciuni de
nivel 2 si date ale TLB-ului care depoziteaz numai PTE-uri mapate pe 4 KB.
Ambele cache-uri, de instruciuni si de date, pot fi umplute din cache-ul L2. Acest
cache este exclusiv, att pentru instruciunile ct si pentru datele din L1, ceea ce
nseamn c orice linie de 1 octet se poate gsi numai ntr-o singur instruciune
dat cache-ului L1 sau n cache-ul L2. Cu toate acestea, este posibil ca o linie de
date n cache s aib un PTE care este ntr-unul din TLB-uri sistemul de operare
este responsabil cu pstrarea TLB-ului coerent.
3.2.12.9. Concluzii
Se poate spune c introducerea n practic a conceptului de memorie cache
ca memorie tampon a adus o serie de mbuntiri sistemelor de calcul, mrind
foarte mult viteza de procesare, desigur n funcie si de dimensiunea memoriei
cache instalate n sistem. Totusi, se poate pune si aici o ntrebare: pn unde poate
merge memoria cache ca dimensiune si ct de folositoare este mrimea acesteia?
n ultimul timp se construiesc sisteme care pot avea pe placa de baz pn la
civa megaoctei de cache extern. Dar o supradimensionare a memoriei cache
externe fr a se ine seama de scopul n care va fi folosit calculatorul nu va duce
dect la ncrcarea notei de plat (memoria cache, fiind o memorie static, este cu
mult mai scump dect RAM-ul), deoarece avantajele obinute 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 obine folosind doar 64 KB de memorie cache.
Ridicnd dimensiunea cache-ului la 256 KB se va obine o crestere doar de 23 %.
Se consider c o memorie cache de 256 KB este suficient pentru un procesor
Pentium, n timp ce pentru Pentium Pro este nevoie de 512 KB cache n condiii 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 reea, si unde cei 64 KB cache de date ai unei sarcini sunt nlocuii 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 puin
dou, astfel nct s creasc probabilitatea ca procesorul s-si gseasc datele
necesare ntr-unul din aceste depozite cache, fr s fie nevoit s mai acceseze
RAM-ul. De aceea, n cazul n care calculatorul va juca rol de file server sau va fi
folosit n activiti multitasking, este necesar mult mai mult memorie cache.
3.2.4. Memoria ROM
Un alt tip de memorie folosit n construcia calculatoarelor si a unor
echipamente periferice este memoria ROM (Read Only Memory). Spre deosebire
de memoria RAM, aceast memorie, odat scris prin procedee industriale, nu mai
poate fi stears prin metode aflate la ndemna utilizatorului; n plus, la decuplarea
de sub tensiune a calculatorului, informaiile din ROM rmn intacte.
Structura unui calculator
131
Stergerea anumitor memorii ROM, de construcie special (PROM,
EPROM, EEPROM) se poate face prin lansarea unui spot de radiaii ultraviolete
asupra ferestrei de cuar cu care este prevzut cipul de memorie. Scrierea
memoriilor ROM presupune un atac distructiv si ireversibil asupra diodelor si
tranzistoarelor, prin arderea jonciunilor interne. Rezultatul acestei aciuni de
ardere se observ prin modificarea coninutului informaiei binare.
n prezent, exist plci de baz dotate cu astfel de circuite care permit
revitalizarea rutinelor BIOS prin copierea n ROM, cu ajutorul unui soft
specializat, a unor versiuni mai noi si mai performante. Deci, ca o concluzie de
baz, datele scrise n memoria ROM au un caracter permanent si au o importan
vital n iniializarea si funcionarea oricrui sistem de calcul.
Memoria ROM are aspectul unui circuit integrat cu dou rnduri de pini (DIP)
si este montat de placa de baz a calculatorului prin intermediul unui soclu. Intern,
memoriile de acest tip sunt realizate din reele rectangulare de microtranzistoare
sau microdiode. Accesarea memoriei ROM se face la fel ca la RAM.
O celul de memorie este alctuit dintr-un circuit basculant bistabil (CBB).
Pentru a realiza mai multe celule, se aranjeaz CBB-urile sub forma unui tablou cu
un numr de coloane si rnduri. n general numrul rndurilor este egal cu cel al
coloanelor. Fiecare celul se afl la intersecia unei anumite linii X si a unei
anumite coloane Y (vezi figura 3.50).
Fig. 3.50. Organizarea memoriei RAM.
Organizarea memoriei sub form de matrice permite reducerea numrului
intrrilor de adrese la un numr mai mic dect numrul liniilor si al coloanelor
aferente informaiei stocate. Numrul terminalelor de adresare poate fi micsorat
prin adresarea n cod binar si utilizarea decodificatoarele binar-zecimale. Acest
mod de adresare n cod binar este utilizat si n cazul memoriei RAM.
Exemplu. Fie o memorie ROM care conine 8 cuvinte de cte 4 bii (vezi
figura 3.51.a). O combinaie binar care se aplic pe cele 3 intrri de adres (A
2
,
A
1
, A
0
) selecteaz unul din cele 8 cuvinte, iar cei 4 bii de date ai cuvntului
selectat sunt disponibili la iesiri (O
0
, O
1
, O
2
, O
3
), cu condiia ca semnalul de
validare a iesirii, OE (Output Enable) s fie activ (activarea se face pe 0 logic).
ARHITECTURA SISTEMELOR DE CALCUL
132
Dac OE = 1, iesirile memoriei sunt n starea de impedan nalt (high Z). Tabelul
de adevr din figura 3.51.b este un exemplu care arat o posibilitate de implementare
a 4 funcii binare de cte 3 variabile.
Fig. 3.51.a. Memorie ROM cu 8 cuvinte de 4 bii; b. Tabelul de adevr asociat.
Structura intern a unui cip de memorie ROM organizat pe 1024 cuvinte a
cte 8 bii, adic 1 K 8, este prezentat n figura 3.52. Matricea de memorie se
construieste sub o form ct mai apropiat de cea a unui ptrat. Liniile matricei
sunt selectate cu ajutorul decodificatorului cu 7 intrri de selecie, iar coloanele, cu
ajutorul celor 8 multiplexoare a cte 3 intrri de selecie. Intrarea suplimentar, CS
(Chip Select), activ pe 0 logic, pregteste cipul de memorie n vederea unei
operaii de citire a datelor. Prin dezactivare, acioneaz asupra circuitelor din
structur n scopul reducerii consumului. Schema conine si aspectul unui element
din matricea de memorie, dac aceasta este realizat n tehnologia MOS.
Fig. 3.52. Structura intern a unui cip de memorie ROM cu 1024 cuvinte de 8 bii.
Pentru realizarea memoriei ROM, sunt utilizate tehnologii bipolare (TTL,
TTL-Schottky, ECL), tehnologii metal-oxid-semiconductor (MOS) cu canal N (N-
MOS), cu canal P (P-MOS), cu simetrie complementar (CMOS), cu canal negativ
(NMOS) sau tehnologii cu logic integrat de injecie (I
2
L).
Structura unui calculator
133
Ca urmare, performanele poart amprenta caracteristicilor tehnologice:
- bipolar vitez de procesare mare, putere disipat ridicat, densitate de
integrare sczut;
- MOS densitate de integrare ridicat, vitez de procesare mai sczut
dect la bipolar, putere disipat relativ sczut;
- CMOS putere disipat foarte sczut si vitez de procesare mare.
n alegerea unui circuit integrat de memorie, trebuie s se aib n vedere:
- tensiunea de alimentare;
- capacitatea;
- modul de organizare (lungimea cuvntului, semnalele de control si adres);
- puterea disipat (n regim de funcionare sau n regim de rezerv stand-by);
- timpul de acces;
- timpul de ciclu memorie;
- disponibilitatea;
- preul de cost.
Orice sistem de calcul foloseste o memorie ROM care conine urmtoarele
sisteme software:
1. Sistemul cuprogram starter sau ROM-ul de start, adic microcodul cu
rol de asistare si control al pornirii sistemului. Aici se afl nscrise mici rutine care
realizeaz urmtoarele aciuni:
- execut testele de funcionalitate ale tuturor componentelor atasate hardware;
- iniializeaz toate componentele atasate calculatorului;
- iniializeaz tabela vectorilor de ntrerupere;
- verific alte extensii sau periferice atasate sistemului de calcul;
- ncarc n memorie, de pe disc, sistemul de operare.
Testele de verificare, care formeaz asa-numitul POST (Power On Self
Test), dureaz foarte puin pentru verificarea plcii de baz, a controlerului de disc,
a plcii video, a unitilor de disc, si ceva mai mult pentru memoria RAM, care este
verificat kilooctet cu kilooctet. Automat, n cazul n care se detecteaz anumite
erori si disfuncii pentru oricare din componentele hardware, se va lansa un mesaj
de avertizare. Sistemul de operare, odat ncrcat n RAM, va prelua conducerea si
gestiunea sistemului de calcul.
2. ROM-BIOS (Basic Input Output System) este o parte a memoriei ROM
care va asigura toate procesele si serviciile necesare activitii calculatorului, precum
si gestiunea perifericelor, prin intermediul rutinelor coninute. BIOS-ul coninut de
ROM este elementul de legtur sau interfaa direct ntre partea hardware si cea
software, prin care se realizeaz hard cererile soft ale programelor, folosind
ntreruperile cu serviciile aferente. Practic, orice program acceseaz partea hardware
prin intermediul BIOS. Rutinele coninute vor activa canalele de comunicaie dintre
componentele sistemului si un sistem de operare sub care lucreaz acesta.
3. ROM-Basic este un program opional, care conine nucleul limbajului Basic.
4. Extensiile ROM reprezint un sistem care conine anumite rutine
necesare gestiunii dispozitivelor atasate.
ARHITECTURA SISTEMELOR DE CALCUL
134
ntreaga memorie ROM este activ pe tot parcursul lucrului cu calculatorul.
nc de la pornirea si iniializarea calculatorului (la ncrcarea sistemului de
operare), n situaiile apsrii tastei Delete, BIOS-ul va furniza o interfa de dialog
cu utilizatorul, prin care va oferi o serie de informaii privind starea funcional si
structura sistemului de calcul. Prin intermediul unor meniuri, se poate modifica o
serie de parametri pentru a se obine un mod de lucru optim si rapid.
Fig. 3.53. Modul de organizare al memoriei.
Structura unui calculator
135
Ultimii 128 KB rezervai din zona de memorie superioar (vezi figura 3.53)
sunt utilizai de componenta BIOS de pe placa de baz. Componenta BIOS este, de
obicei, memorat n cipuri de memorie ROM. Programele din componenta ROM
BIOS controleaz sistemul pe durata pornirii (pn la preluarea controlului de ctre
sistemul de operare) si rmn ca driver-e pentru subsistemele hard pe durata
funcionrii normale a sistemului. Deoarece aceste programe trebuie s fie
disponibile imediat, la pornirea sistemului ele nu pot fi ncrcate de pe discuri (sau
alte dispozitive de memorare).
Principalele funcii ale programelor de pe placa de baz sunt:
- autotestarea la punerea sub tensiune (POST);
- rutina de ncrcare a sistemului de operare (bootstrap loader) iniiaz
cutarea sistemului de operare pe discurile disponibile;
- sistemul de baz pentru operaii de intrare-iesire (BIOS) este interfaa
soft sau programul principal de control pentru toate componentele hard
ale sistemului.
Acest sistem conine un prim meniu Standard CMOS Setup , unde se
stabilesc tipul si parametrii unitilor de disc, tastaturii sau plcii video, ora si data
curent a sistemului.
Un al doilea meniu Advanced CMOS Setup cuprinde o serie de parametri
reglabili pentru a obine maximul de performan. n acest meniu, se pot activa sau
dezactiva memoria cache intern si extern, se poate stabili o parol de intrare n
sistem, ordinea de cutare a sistemului de operare pe disc etc.
Al treilea meniu Advanced Chip-set Setup conine reglaje foarte fine de
optimizare, cum ar fi configurarea magistralelor sau a strilor de asteptare ale
microprocesorului.
Datorit usurinei cu care se poate accesa BIOS-ul, parametrii care definesc
funcionarea general a calculatorului pot fi modificai foarte simplu, dar
configurarea arbitrar a parametrilor BIOS poate produce dereglri ale sistemului.
Tot aici se poate meniona unitatea special MMU (Memory Management
Unit), care se ocup cu transferul coninutului memoriei ROM (cel de pe placa de
baz: ROM-ul de sistem, ROM-ul video, segmentele ROM ale unor adaptoare sau
extensii) n memoria de lucru RAM. Este un dispozitiv integrat n microprocesor.
Aceast posibilitate de transfer a rutinelor si datelor ROM n RAM ridic
foarte mult performanele sistemului, deoarece timpul de acces al memoriei ROM
este foarte mare (150200 ns) si operaiile care implic folosirea coninutului ROM
se desfsoar lent. Activarea opiunilor de transfer (shadowing) se face din meniul
BIOS Features Setup din CMOS, prin activarea punctelor de Shadowdefinite de
adrese specificate (System Shadow, Video Shadow etc.). MMU va dezactiva
automat toate cartusele ROM al cror coninut a fost citit si scris apoi n RAM, iar
n continuare va marca aceste zone de memorie RAM n care s-a transferat
coninutul ROM, protejndu-le.
Legtura memoriei ROM cu exteriorul se face prin magistrala de adrese,
corespunztoare pinilor notai cu A
0
A
m
(pentru detectarea locaiei care conine
informaia cerut) si magistrala de date, pentru transferul datelor, prin pinii notai
cu D
0
A
n
, n funcie de numrul de pini al cipului respectiv.
3.3. Organizarea dispozitivelor de intrare-ieire (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.
Semnificaia notaiilor din figur este urmtoarea:
- MP memoria principal;
- UC unitatea central;
- Proc. I/O procesoare I/O sau de canal;
- CT controler terminale;
- T terminale;
- Impr. imprimant;
- UD uniti 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 operaie I/O cu un
anumit periferic, el cedeaz aceast operaie procesorului asociat perifericului;
microprocesorul central transmite canalului informaia necesar pentru realizarea
operaiei de I/O si i cere acestuia s o execute.
Canalul realizeaz operaia I/O n mod complet si autonom: procesorul I/O
execut un program de transfer al datelor cu parametrii primii de la
microprocesorul central; cnd transferul ntre periferic si memorie a fost ncheiat,
procesorul I/O anun microprocesorul central despre efectuarea transferului. Acest
mod de lucru degreveaz microprocesorul central de operaiile I/O, care, de regul,
sunt mult mai lente dect viteza de lucru a microprocesorului central. n timpul
acestui transfer, microprocesorul central execut alte instruciuni. Exist
posibilitatea executrii mai multor transferuri I/O n acelasi timp, astfel rezultnd
cresterea performanelor sistemului.
Observaie. Prezena 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 comunicaia ntre microprocesorul central si canalele I/O,
iar MD permite microprocesorului central s schimbe informaii cu memoria
(citirea/scrierea datelor, execuia 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 si circuitele de I/O (vezi figura 3.55).
Fig. 3.55. Organizarea dispozitivelor I/O la microcalculatoare.
Semnificaia notaiilor din figur este urmtoarea:
UC unitate central;
M memorie;
MON. monitor;
KBD tastatur;
UDM/O unitate disc magnetic / optic.
ARHITECTURA SISTEMELOR DE CALCUL
138
Cu ajutorul conectorilor, la aceast plac de baz se pot lega circuite
suplimentare (plci adiionale), de exemplu plci de comunicaie. Conectorii
reprezint iesiri ale magistralei unice a sistemului.
Fiecare unitate periferic are urmtoarele pri:
- circuite electronice de control a unitii (controler dispozitiv hard care
realizeaz interfaa calculator-periferic, guvernat de un program special,
numit driver);
- unitate periferic propriu-zis (uniti de disc, tastatur, mouse, joystick,
tablet digitizoare, imprimant, camer digital, scanner, modem etc.).
Controlerul de periferic se prezint sub forma unei plci adiionale conectate
la magistrala sistemului prin conectorii de magistral. Exist ns si unele excepii,
aceasta nefiind o regul general.
Exemplu. Controlerul de tastatur se afl pe placa de baz.
Rolul controlerului de periferic este de a transmite perifericului instruciunea si
informaia necesar si de a superviza accesul perifericului la magistrala sistemului.
Exemplu. Dac un program necesit informaie de pe disc, microprocesorul
transmite o comand controlerului de disc; controlerul va trimite unitii de disc un
ansamblu de comenzi necesare gsirii si transferului informaiei respective. Dup
gsirea informaiei, aceasta ajunge la controler sub form binar (bii). Controlerul
de disc formeaz din acest sir de bii cuvinte, pe care le scrie succesiv n memorie.
Un controler poate scrie sau citi n/din memorie fr intervenia
microprocesorului (acesta realizeaz o operaie DMA Direct Memory Access).
Mai exist arbitrul de magistral (bus arbitrer), necesar n situaia 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 si acord accesul doar unui singur dispozitiv (stabileste prioritile). n
general, accesul la magistral se acord mai nti perifericelor, si nu
microprocesorului (microprocesorul are o flexibilitate mai mare dect perifericele).
Exemplu. Nu se opreste hard disk-ul n timpul rotaiei pentru a servi
microprocesorul; se trateaz mai nti cererea hard disk-ului.
3.4. Conectarea perifericelor la sistem
Dup cum s-a vzut, majoritatea calculatoarelor de tip PC compatibile IBM
conin o plac de baz dotat cu sloturi (puncte de conectare la magistralele
sistemului) prin care se cupleaz plcile de extensie, respectiv, porturile seriale sau
paralele, pentru conectarea altor dispozitive (memorii secundare sau teriare,
echipamente de intrare-iesire, de achiziie, de afisare, de comunicaie 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 reea, plachetele de
memorie RAM, plcile pentru digitizarea imaginilor si afisarea acestora pe ecran etc.
Structura unui calculator
139
Legtura dintre toate aceste componente se asigur prin intermediul
transmisiunilor de semnale (instruciuni, comenzi, date), pe baza unor protocoale si
seturi de reguli standardizate.
Sistemele de calcul sunt masini care lucreaz numai n sistem de numeraie
binar, acesta fiind sistemul de numeraie optim folosit la o masin de calcul ideal,
deoarece se folosesc numai dou cifre (0 si 1) pentru reprezentarea oricrei
informaii, de orice natur si form. Aceste numere au coresponden n dou
niveluri de tensiune, n general, de valori 0 Vcc (low level) si 5 Vcc (high level) n
logica pozitiv sau niveluri inverse pentru logica negativ.
Dup cum se stie, entitatea elementar purttoare de informaie este digitul
binar, care poate lua dou valori logice: 0L sau 1L. Dac aceste valori sunt
echiprobabile, cantitatea de informaie purtat de un digit binar este de 1 bit. De
aceea, printr-un abuz de limbaj, se confund uneori noiunile de bit (ca msur a
informaiei) si digit binar (ca semnal purttor de informaie).
Un grup de 8 bii succesivi formeaz o structur numit octet sau byte. Sunt
folosii, de asemenea, multiplii acestuia: kiloocteii, megaocteii, gigaocteii si
teraocteii (KB, MB, GB, TB).
Din punct de vedere fizic, legtura ntre sistemul de calcul si periferice este
realizat prin interfaa de intrare-ieire(I/O).
Dispozitivele de intrare-iesire 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 fiecrui echipament la semnalele de pe magistral si reglarea
fluxului de date ntre calculator si periferic.
Rolul interfeelor I/O este de adapta particularitile unui dispozitiv I/O la
cerinele unui anumit sistem de calcul. Sub acest aspect, o interfa I/O este
structurat pe dou niveluri:
- un nivel adaptat semnalelor si modului de funcionare al magistralei;
- un nivel adaptat particularitilor funcionale ale dispozitivului I/O.
Primul nivel conine registre I/O (porturi) pentru date, comenzi si stare,
direct adresabile de CPU.
Al doilea nivel este responsabil cu generarea semnalelor de comand si cu
achiziia semnalelor de stare specifice unui anumit tip de dispozitiv periferic.
Structura acestui nivel difer mult de la un dispozitiv I/O la altul, n funcie de tipul
perifericului.
O interfa I/O conine urmtoarele blocuri componente:
- registre de date (de intrare si/sau de iesire);
- registre de comenzi;
- registre de stare;
- bloc de selecie a registrelor (decodificator);
- dispozitiv de comand.
Interfaa I/O este prezentat n figura 3.56.
ARHITECTURA SISTEMELOR DE CALCUL
140
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 iesire sau bidirecionale. Pentru fiecare
canal si pentru fiecare sens, se aloc un port (registru) de date, care ocup o
anumit adres n spaiul 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 selecia capului de citire, selecia unitii de
activare a scrierii etc.). Prin registrele de comand pot fi selectate modurile de lucru
ale interfeei sau se pot fixa parametrii de transfer (transfer pe octet sau pe bloc,
frecvena de transmisie, formatul datelor transmise etc.).
Registrele de stare
Ofer informaii despre starea echipamentului si a interfeei (de exemplu,
dispozitiv ocupat/defect, dat recepionat, registru de iesire gol etc.). Aceste
informaii sunt testate n timpul programului, pentru detectarea eventualelor erori
de transfer sau a defectelor si pentru reglarea vitezei de transfer.
Fig. 3.56. Schema de principiu a unei interfee I/O.
Blocul de selecie
Genereaz semnalele de validare a porturilor pentru operaiile de scriere si
citire. La selecie, 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 secvenial sau combinaional, utilizat n cazul unor interfee mai
complexe, care controleaz funcionarea celorlalte componente ale interfeei. Pentru
anumite tipuri de interfee exist circuite specializate de control, numite controlere.
Exemple:
- controler de disc flexibil i8272;
- controler DMA i8237-5;
- controler video MC6845.
Interfaa poate s conin si o memorieROM sau RAM.
Memoria ROM pstreaz driver-ul de interfa, care este identificat la
iniializarea sistemului si este inclus n rutinele sistemului de operare.
Memoria RAM este utilizat ca buffer ntre memoria principal si periferic.
Necesitatea acesteia apare n cazul fluxurilor mari de date, situaie n care
sincronizarea perifericului cu frecvena de transfer de pe magistral devine dificil
(de exemplu, interfaa de disc sau interfaa video).
Toate transferurile de informaii si date, ntre diverse componente ale
sistemului de calcul sau ntre dou sau mai multe sisteme legate ntr-o reea,
transferuri care se realizeaz de-a lungul si cu ajutorul magistralelor, se desfsoar
la nivel de bit, octet, cuvnt sau bloc de octei. Aceste transferuri de bii 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 desfsoar simultan
pentru 8 bii, pe 8 ci diferite (vezi figura 3.57).
Fig. 3.57. Realizarea unei transmisii paralele.
ARHITECTURA SISTEMELOR DE CALCUL
142
Transferul unui grup de octei are loc cu o vitez considerabil, dar are
dezavantajul costului ridicat al instalaiei fizice, care presupune existena a 8 fire si
a unei interfee paralele aparte. De aceea, aceast transmisie se foloseste la
echipamentele care vehiculeaz volume mari de date ntr-un interval de timp foarte scurt.
Porturile paralele sunt folosite, n general, la comunicaia unidirecional
(dar nu n sens strict) si dispun de 25 de pini (vezi figura 3.58).
Fig. 3.58. Dispunerea pinilor pentru transmisia paralel.
3.4.1.1. Configuraia porturilor paralele
Configuraia porturilor paralele nu este tot att de complicat ca aceea a
porturilor seriale. Chiar si calculatorul original IBM PC are suport BIOS pentru trei
porturi LPT, iar sistemul DOS l-a avut, de asemenea, ntotdeauna. Deoarece BIOS
si DOS au definit de la nceput trei porturi paralele, problemele cu sistemele mai
vechi sunt puin frecvente. Acestea pot totusi s apar din lipsa disponibilitii unor
porturi comandate prin ntreruperi la sistemele cu magistral ISA.
Tabelul 3.5
Semnificaia pinilor portului paralel
Nr. pin Semnificaie
1 strobe
2...9 bit0...bit7
10 confirmare (ACK)
11 busy
12 lips hrtie (paper feed)
13 selecie
14 line feed(LF) automat dup CR
15 eroare
16 iniializare display
17 selecie intrare
18...25 mas
n mod normal, un port comandat prin ntreruperi nu este absolut necesar
pentru operaiile de imprimare; de fapt, multe programe nu folosesc posibilitatea de
comand prin ntreruperi. ntreruperea este totusi folosit de multe aplicaii, cum
sunt programele de tiprire din reea si alte tipuri de tiprire n paralel sau de tip
Structura unui calculator
143
spooler (din fisiere de tiprire). De asemenea, orice program utilitar pentru o
imprimant laser rapid ar folosi des posibilitatea de ntrerupere pentru a permite
imprimarea. Dac se foloseste acest tip de aplicaii n cazul unui port care nu este
comandat prin ntreruperi, imprimarea se va face foarte lent sau se va opri.
Singura soluie 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 si toate porturile paralele din aceste sisteme
sunt comandate prin ntreruperi pe IRQ7.
Pentru a configura porturile paralele n sistemele cu magistral ISA, trebuie
s se poziioneze cteva jumper-e si comutatoare. Deoarece fiecare plac de pe
pia este diferit, trebuie s se consulte manualul pentru a sti cum trebuie
configurat. IBM include aceste informaii n documentaia fiecrei plci si ofer
manuale tehnice pentru opiuni si adaptoare, ca si manuale de service si ntreinere
hard, care descriu n detaliu poziiile jumper-elor si comutatoarelor plcilor
adaptoare IBM. Ali productori ofer pur si simplu pe lng plac un manual care
descrie placa si include informaiile de configurare. Sistemele cu magistral MCA
sau PCI si toate sistemele actuale au configurarea automat (plugQplay) 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 transmindu-se bit cu bit (de aceea
este folosit la comunicaiile ntre diverse sisteme de calcul obisnuite). 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 totusi transmisia folosit cel mai des, fiind fiabil, ieftin si
simplu de ntreinut.
Porturile seriale sunt folosite la transmisia bidirecional si dispun de 9 pini.
Dispunerea pinilor este prezentat n figura 3.60, iar semnificaia lor, n tabelul 3.6.
Pentru ambele tipuri de transmisiuni, aceeasi mrime fizic caracterizeaz
numrul de uniti binare transmise n unitatea de timp, si anume, viteza de
transmisie sau debitul de informaie.
Fig. 3.60. Dispunerea pinilor pentru transmisia serial.
Unitile de msur folosite sunt:
- la transmisiunea paralel: B/s (octei pe secund);
- la transmisiunea serial: b/s (bii pe secund) si baud (numrul de
semnale electrice pe secund sau numrul de schimbri ale tensiunii ntr-
o secund transmisia cifrelor 0 si 1 nseamn, de fapt, transmisia unor
trenuri de semnale electrice cu dou niveluri extreme, corespunztoare
celor dou simboluri binare).
Tabelul 3.6
Semnificaia pinilor la portul serial
Nr. pin Semnificaie Denumire
1 intrare detecie de und purttoare DCD
2 intrare recepie date RD
3 iesire transmisie date TD
4 iesire stare readyla dispozitivul cuplat DTR
5 mas de protecie GND
6 intrare stare ready la transmisie DSR
7 iesire cerere de transmisie RTS
8 intrare confirmare transmisie la dispozitivul cuplat CTS
9 intrare indicator de apel RI
3.4.2.1. Configuraia porturilor seriale
De fiecare dat cnd un port serial primeste un caracter, el trebuie s
atenioneze calculatorul activnd o linie de ntrerupere (IRQ). Sistemele cu
magistral ISA pe 8 bii au 8 asemenea linii, iar cele cu magistral ISA pe 16 bii
Structura unui calculator
145
au 16 linii. Controlerul i8259A manipuleaz de regul aceste cereri de atenionare.
ntr-o configuraie standard, COM1 foloseste IRQ4, iar COM2 utilizeaz IRQ3.
Atunci cnd elementul ROMBIOS conecteaz aceste porturi, este posibil s
apar o problem. Dac autotestul POST nu gseste 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 foloseste adresa portului
COM2, adic foloseste 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
primeste datele de intrare-iesire de la BIOS, care, n timpul rulrii autotestului
POST, detecteaz ce este instalat n sistem si unde.
Pentru a evita aceast problem, cele mai multe programe de comunicaii si
unele periferice seriale (ca mouse-ul) accept porturile COM cu numr de ordine
mai mare, adresndu-le direct si nu apelnd funcii DOS. Porturile suplimentare
trebuie s utilizeze ntreruperi separate. Dac se folosesc simultan dou porturi
COM, acestea trebuie s aib ntreruperi opuse. Iat care sunt posibilitile de
operare simultan n configuraia standard de porturi si ntreruperi:
- COM1 (IRQ4) si COM2 (IRQ3)
- COM1 (IRQ4) si COM4 (IRQ3)
- COM3 (IRQ4) si COM2 (IRQ3)
- COM3 (IRQ4) si 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 distane destul de mari, nu mai este indicat s se
foloseasc un cablu de reea, deoarece ar rezulta un pre destul de mare si ar aprea
probleme de transmisie a semnalelor. Conectarea se poate realiza totusi cu ajutorul
liniilor telefonice sau a cablului optic. n cazul primei soluii, este nevoie de un
dispozitiv care s realizeze adaptarea la linia de telefon, si anume, de un modem.
Laboratoarele Bell si CCITT au stabilit standardele pentru protocoalele
modemurilor. Un protocol este o metod prin care dou entiti diferite se neleg
s comunice. Standardele modemurilor se pot mpri n urmtoarele trei grupuri,
n funcie de facilitatea oferit:
- standarde de modulaie: Bell 103, 212A, CCITT V.21, 22bis, 29, 32, 32bis etc.;
- standarde de corecie a erorilor: CCITT V.42 etc.;
- standarde de compresie a datelor: CCITT V.42bis, MNP etc.
Standarde de modulaie
Modulaia este metoda electronic de semnalare folosit de modemuri.
Acestea trebuie s utilizeze aceeasi metod de modulaie pentru a se nelege ntre
ele. Cele mai rspndite metode de modulaie digital sunt (vezi figura 3.61):
- modulaia n amplitudine (MA) Amplitude Shift Keying(ASK);
- modulaia n frecven (MF) Frequency Shift Keying(FSK);
ARHITECTURA SISTEMELOR DE CALCUL
146
- modulaia n faz (MP) Phase Shift Keying(PSK);
- modulaia binar Binary Phase/BiPhase Shift Keying (BPSK);
- modulaia n cuadratur (MQ) Quadrature Phase Shift Keying (QPSK);
- MA n cuadratur Quadrature Amplitude Modulation(QAM);
- modulaia impusurilor n cod (MIC) Pulse Code Modulation(PCM).
Fig. 3.61. Tipuri comune de modulaie digital (de impulsuri): ASK, FSK, PSK, BPSK.
Fig. 3.62. Modulaia QPSK fr zgomot (stnga) si cu zgomot (dreapta).
Fig. 3.63. Constelaiile pentru modulaiile QAM-16 (stnga) si QAM-128 (dreapta).
Structura unui calculator
147
La QPSK, zgomotul prezent pe canal poate fi mare, fr s influeneze prea
mult prin apariia erorilor (vezi figura 3.62). Nu se poate spune acelasi lucru si despre
QAM-16 sau QAM-128, care sunt mult mai susceptibile la zgomot pe canal, unde
chiar si un nivel de zgomot redus poate duce la erori multiple (vezi figura 3.63).
Pentru a reduce rata erorilor, se introduce posibilitatea corectrii erorilor prin
adugarea de bii suplimentari fiecrui esantion. Astfel de modulri sunt cunoscute
sub numele de TCM (Trellis Coding Modulation modulaie prin codificare
matriceal), iar reprezentrile lor se numesc constelaii.
Standarde de corecie a erorilor
Corecia erorilor se refer la posibilitatea pe care o au unele modemuri
evoluate de a identifica erori n timpul transmisiei (EDC Error Detection Codes)
si de a retransmite automat datele care par a se fi deteriorat n tranzit (tehnici ARQ
Automatic Repetition reQuest). Ca operaia de corecie s funcioneze, ambele
modemuri trebuie s adere la acelasi protocol de corecie 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, fcnd astfel economie de timp,
spaiu de stocare si costuri pentru utilizatorii de modemuri aflai la distane mari.
Algoritmii de compresie utilizai fac parte din familia metodelor fr pierderi
(lossless data compression).
3.4.3. Tipuri de transmisii
Dup modul de folosire a liniei de comunicaie, transmisiile se clasific n:
- transmisii simplex, la care partenerii de comunicaie au rolurile fixe de
emitor si receptor (de exemplu: transmisia radio, transmisia TV);
- transmisii semiduplex, care se efectueaz pe aceeasi linie de legtur
ntre dou componente, n ambele direcii, dar nu concomitent (de
exemplu: transmisia prin walkie-talkie);
- transmisie duplex, la care partenerii de pe aceeasi linie de transmisie pot
folosi simultan linia la propriile transmisii, n ambele direcii, soluie
mult mai eficient dect cea anterioar (de exemplu: linia telefonic).
Diferenele ntre modurile semiduplex si duplex sunt vizibile: transmisia
duplex este mai rapid, deoarece dou mesaje pot folosi linia simultan, nefiind
nevoie de stri de asteptare pentru eliberarea liniei.
Avnd n vedere c pe o linie este necesar transmisia unor grupuri de bii
(evident, octei) si nu a unor trenuri de bii succesivi, trebuie introdus un mecanism
de separare logic a octeilor transportai. De aceea, n construcia interfeelor se
foloseste o alt clasificare a transmisiilor si anume:
- transmisia sincron (vezi figura 3.64), n care grupurile de 8 bii se
transmit fr folosirea unor bii fanion sau a unor pauze de transmisie
interoctet, fiind cel mai rapid si 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 octeii transmisi sunt intercalate pauze sau se folosesc bii fanion
(unul sau doi), care indic nceputul unui octet (bii de start) si sfrsitul
acestuia (bii de stop). La recepie, semnalul este curat de acesti bii
fanion, rmnnd doar biii care semnific informaia propriu-zis.
Comunicaia 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, si aici se foloseste noiunea de paritate pentru
determinarea corectitudinii transmisiei de date (paritate par numrul total de bii
1 transmisi este par si paritate impar numrul total de bii 1 transmisi este
impar). Importana si eficiena 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 corecii hard si soft. Toate modemurile moderne
dispun de astfel de metode de corecie. Dup ce microprocesorul proceseaz datele,
acestea pot fi transmise ctre 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 destinaie, adic, un format digital
interpretabil de ctre dispozitivul periferic destinaie.
Structura unui calculator
149
Sistemele de calcul nu pot exista fr comunicaia cu mediul nconjurtor,
comunicaie care presupune primire de la mediu (returnare ctre mediu) de date sau
informaii. Cum acest mediu este alctuit la rndul su din sisteme interdependente
care comunic la rndul lor, este nevoie de un sistem de comunicaie, de un limbaj
universal, care, chiar dac nu foloseste aceleasi noiuni, utilizeaz mcar aceleasi
semne. Toate aceste semne alctuiesc un limbaj de tip analogic, recunoscut de orice
fiin vie (lumina, sunetul, impulsurile electrice neuronale, radiaiile calorice etc.).
n concluzie, este necesar un mecanism care s integreze lumea digital a
sistemelor de calcul n acest univers analogic.
Asa cum n contextul analogic componentele comunic ntre ele prin semnale
integral analogice, n acelasi mod exist comunicaie la nivel intern, n contextul
digital, ntre sisteme de calcul sau, n cadrul aceluiasi sistem, ntre subsistemele
care l alctuiesc (vezi figura 3.66). Comunicaia se realizeaz n format binar.
Fig. 3.66. Tipuri de interfee-translator.
Privind aceast problem de comunicaie intersisteme, se constat c sunt
necesare trei tipuri de interfee-translator care pot asigura comunicaia ntre dou
lumi diferite (cea analogic si cea digital) sau n cadrul aceleiasi lumi.
Aceste interfee traduc semnalele astfel:
- analog-digital. Este interfaa clasic, utilizat ca poart de intrare a
informaiilor din mediul nconjurtor 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 interfeei analog-digitale, venind n
completarea sistemului de comunicaie si asigurnd bidirecionalitatea
schimbului de informaii cu mediul. Aceast interfa reprezint poarta de
iesire din lumea digital ctre cea analogic. Ca exemple, se pot meniona
DAC-ul sau monitorul digital, imprimanta, modemul, placa de sunet etc.
ARHITECTURA SISTEMELOR DE CALCUL
150
- digital-digital. Interfeele standard utilizate n cadrul unui sistem de calcul
sau ntre sisteme sunt de tip digital-digital. Ele primesc/transmit acelasi tip
de semnal, digital, si au ca scop sincronizarea dispozitivelor care comunic,
prin transformarea semnalului transmis ntr-un semnal corect interpretabil
de ctre dispozitivul receptor. Aceast adaptare este efectuat din punctul de
vedere al frecvenelor de tact, al nivelurilor de tensiune pentru semnalele
emise/recepionate, al formatelor de date etc. Spre deosebire de primele
dou tipuri de interfee, care pur si simplu translateaz semnalul digital
n semnal analogic si invers, interfaa digital-digital nu face dect s
aduc la aceiasi parametri comunicaia ntre dou componente digitale.
3.4.4. Standarde de interfee
3.4.4.1. I nterfee seriale
RS-232
Una dintre cele mai uzuale interfee seriale asincrone folosite este RS-232
(Reference Standard232). Activitatea esenial a acesteia este adaptarea semnalului
transportat la cerinele receptorului, activitate denumit comunicaie asincron.
n interfaa RS-232, datele sunt trimise sub form de siruri de bii, fiind
suportat att modul sincron ct si cel asincron. Pe lng circuitele de date,
standardul defineste un numr de circuite de control care supervizeaz conexiunea
dintre DTE (Data Terminal Equipment, dispozitivul de la captul ndeprtat al
conexiunii, de obicei, un calculator sau un terminal) si DCE (Data Circuit-
terminating Equipment, dispozitivul cel mai apropiat de conexiune, de obicei, un
modem), conform reprezentrii din figura 3.67.
Fig. 3.67. Conexiunile interfeei seriale RS-232 C.
Fiecare circuit de date sau control funcioneaz doar ntr-o singur direcie.
Pentru c datele transmise si datele recepionate folosesc fiecare cte un circuit
separat, interfaa poate funciona n mod duplex. n cadrul standardului, nu sunt
definite formatul caracterelor din sirul de date sau tipul de codare a lor.
Standardele RS-232 utilizeaz pentru niveluri de semnal (0 si 1), n afara
intervalului +3Vcc 3Vcc (semnalele cuprinse n acest interval sunt ignorate),
Structura unui calculator
151
urmtoarele convenii: orice tensiune peste +3Vcc este considerat corespunztoare
unui bit de 0, iar sub 3Vcc este considerat corespunztoare unui bit de 1.
Standardul prevede un conector DB25 de tip tat (sau fis) pentru DTE si un
conector DB25 de tip mam (sau priz) pentru DCE. Din cei 25 de pini ai
conectorilor, doar 22 sunt folosii pentru semnale si mas. Deoarece majoritatea
dispozitivelor folosesc doar 9 semnale, sunt folosii adesea conectori mai mici.
Protocolul RS-232 se bazeaz pe tehnica acordului confirmat (handshake),
iar semnificaia 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) recepia datelor de la DCE;
- Request To Send (RTS) setat pe 0 de ctre DTE, pregteste DCE-ul
pentru recepionarea datelor;
- Ready To Receive (RTR) setat pe 0 de ctre DTE, indic DCE-ului
faptul c DTE-ul este pregtit s recepioneze date;
- Clear To Send (CTS) setat pe 0 de ctre DCE ca rspuns la RTS,
permite DTE-ului s transmit date;
- Data Terminal Ready(DTR) setat pe 0 de ctre 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 ctre DCE, indic faptul c acesta
este pornit si pregtit s recepioneze 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 ctre DCE, indic faptul c s-
a stabilit o conexiune cu echipamentul partener;
- Ring Indicator (RI) setat pe 0 de ctre DCE, arat c s-a detectat
semnalul corespunztor apelului (soneriei) telefonice.
Standardele mai noi (RS-422, RS-485 etc.) dezvolt RS-232, urmrind
optimizarea acestuia.
UART
Circuitele integrate folosite ca interfa asincron pentru transmisia serial
sunt denumite UART (Universal Asynchronous Receiver Transmitter). n
componena lor intr registre de deplasare (shift, vezi figura 3.68), prin intermediul
crora datele n format serial/paralel pot fi convertite n format invers
(paralel/serial).
Un UART tipic are trei seciuni:
- un modul receptor, care primeste de la periferic un semnal serial si l
converteste paralel, dup care l depune pe magistrala de date;
- un modul emitor, care primeste semnal paralel de pe magistrala de
date si l converteste n semnal serial pentru periferic;
- un controler de interfa, care gestioneaz activitatea modulelor
receptor si emitor (vezi figura 3.69). Se folosesc cipurile UART 8251,
16450 (mai vechi) sau UART 16550 si 16550A, mult mai rapide.
ARHITECTURA SISTEMELOR DE CALCUL
152
Fig. 3.68. Intrare serial iesire paralel (A); intrare paralel iesire serial (B).
Fig. 3.69. Al treilea modul UART: controlerul de interfa.
ACI A
Un model similar de interfa universal asincron este ACIA (Asynchronous
Communication Interface Adapter), instalat n blocul de mapare a memoriei si care
recepioneaz 4 linii de adrese, 3 selecii de cip si o selecie 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 si registrul de control pentru comanda ACIA.
Funcionarea ACIA are la baz dou registre de deplasare (unul de tip read-
only si cellalt, write-only) pentru convertirea semnalelor paralel/serial si
serial/paralel. Comunicaia 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.
ARHITECTURA SISTEMELOR DE CALCUL
154
USB
Interfaa USB (Universal Serial Bus) a nlocuit interfeele RS-232 si paralel
n multe situaii. 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
s nlocuiasc multitudinea de conectori ai unui calculator, si s mbunteasc
funcionalitatea plugQplay, permind dispozitivelor s fie conectate si
deconectate fr a fi necesar repornirea calculatorului. De asemenea, dispozitivele
care consum puin pot fi alimentate direct prin interfaa USB.
Versiunile standardului USB sunt urmtoarele:
- USB 1.0, lansat n 1996, defineste dou viteze de transfer: 1,5 Mb/s
(Low Speed) si 12 Mb/s (Full Speed);
- USB 1.1 , lansat n 1998, defineste aceleasi viteze de transfer si are dou
tipuri de conectori: seria A si seria B;
- USB 2.0, lansat n 2000, defineste o a treia vitez: 480 Mb/s (High Speed);
- USB 3.0, anunat pentru 2008, va defini viteze de pn la 10 ori mai
mari fa de versiunea anterioar, ajungnd la aproximativ 4,8 Gbit/s.
Desi toate calculatoarele actuale sunt echipate cu porturi USB, acestea nu au
nlocuit complet conectorii standard existeni. Monitorul, tastatura, porturile
paralele si cele seriale utilizeaz, n continuare, conectori separai. 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 conin un distribuitor, cum este monitorul sau tastatura, devin mai
complexe si 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 interfeei USB.
Structura unui calculator
155
Orice topologie necesit cel puin un hub, numit root-hub, atasat direct la HCI.
Un host comunic cu dispozitivele prin intermediul unor canale logice (pipes), care
au niste terminale logice pe dispozitive numite endpoints (vezi figura 3.72). Uneori
este folosit termenul endpoint pentru a identifica si canalul logic respectiv.
Exist 16 endpoint-uri [0-15] si pipe-uri corespunztoare n fiecare direcie
(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 direcie, deci, fiecare
pipeeste unidirecional. Endpoint-urile 0 pentru in si out sunt ntotdeauna active,
fiind folosite pentru management.
Comunicaiile ntre periferice si host se execut prin conexiuni dispozitiv-
host si host-dispozitiv. Conexiunea de la host la dispozitiv se numeste
downstream, iar conexiunea de la dispozitiv la host se numeste upstream.
Conectorii USB sunt diferii pentru upstream si downstream si nu pot fi
interschimbai. O comunicaie (transfer de date) nu se poate efectua dect ntre
porturi diferite de upstreamsi downstream.
Exist dou tipuri de conectori principali: tip A si tip B. Conectorii de tipul A
se folosesc pentru host-uri sau hub-uri si se regsesc cel mai des pe plcile de baz
ale PC-urilor. Conectorii de tipul B se gsesc numai la dispozitivele periferice. Nu
pot exista legturi de cabluri dect de la tipul A de conector la tipul B, dar se pot
gsi si cabluri care nu respecte aceste specificaii, numite cabluri directe.
Alte tipuri de conectori sunt mini-USB de tip A si B (mai frecvent utilizai)
sau AB si micro-USB, folosii n special pentru dispozitive de dimensiune mai
mic, fiind mai usor de integrat.
Conectorii USB de diferite tipuri sunt reprezentai n figura 3.73.
Fig. 3.73. Configuraia pinilor conectorilor USB de tip A, B, mini-A, B si micro-A, B.
Cablul USB foloseste 4 fire (vezi figura 3.74): dou pentru putere: (tensiunea
V
BUS
si masa) si dou pentru semnalele de date (pinii D
+
si D

). Alimentarea V
BUS
este, n general, de 5V (cu o toleran prestabilit), iar modul de transmisie a
datelor este diferenial. Modul de codare al datelor este NRZI (Non Return to Zero
Inverted), folosit pentru a trimite date sincronizate si pentru a sincroniza host-ul cu
semnalul de ceas. D
+
si 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.
ARHITECTURA SISTEMELOR DE CALCUL
156
Semnificaia pinilor conectorilor USB cu 4 pini este prezentat n tabelul 3.7.
Tabelul 3.7
Semnificaia pinilor conectorilor USB
Pin Descriere
1 V
BUS
(4,355,25 V)
2 D

3 D
+
4 GND (0 V)
Exist trei tipuri de alimentare posibile, n funcie de diversele dispozitive
atasate:
- de putere mic (low power) pot lua un curent de 100 mA de la sursa de
alimentare (pinul V
BUS
);
- de putere mare (high power) pot lua un curent ntre 100 mA si 500 mA
de la V
BUS
;
- cu auto-alimentare (self power) pot lua un curent de 100 mA de pe
magistral si se mai pot alimenta de la o surs extern.
I EEE 1394 (FireWire)
FireWire este numele nregistrat de Apple pentru standardul IEEE1394, fiind
o specificaie de magistral serial, care asigur comunicaii de mare vitez si
servicii de date n timp real.
S-a impus mai ales n domeniul conexiunilor externe, datorit costurilor mici
de fabricaie si a unui sistem simplu de cablare. De asemenea, a devenit interfaa
standard pentru conectarea componentelor de comunicaii si control n domeniul
audio-vizual. FireWire este disponibil si n versiunile wireless, fibr optic si
cablu coaxial, folosind protocoale simultane.
Interfaa FireWire suport conectarea simultan a 63 de periferice. FireWire
este bazat pe comunicaia punct-la-punct, ceea ce permite, de exemplu, ca o
imprimant si un scaner s comunice ntre ele fr a ncrca suplimentar procesorul
si magistrala sistemului. De asemenea, la fel ca interfaa USB, FireWire suport
tehnologia plug'n'play si conectarea dispozitivelor la magistral fr a fi necesar
repornirea calculatorului. Interfaa FireWire poate alimenta cu energie dispozitive
care au un consum mai mic de 45 W si o tensiune mai mic de 30 V.
Standardul fizic de conectare se prezint n dou forme o muf de 6 pini si
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 conine 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 si ntregul cablu.
Fig. 3.75. Conectorii interfeei FireWire. Fig. 3.76. Cablul FireWire.
Cablurile de alimentare transport tensiuni ntre 8 si 40 V c.c. si amperaje
pn la 1,5 A si sunt folosite pentru meninerea continuitii stratului fizic al unui
echipament, cnd apar cderi de tensiune sau defeciuni, si pentru alimentarea
echipamentelor conectate la magistral. Deci, cablul FireWire transport att date,
ct si energie, ceea ce constituie un mare avantaj pentru utilizator.
Standardul FireWire se prezint n dou versiuni: FireWire 400 si FireWire 800.
FireWire 400 suport rate de transfer de 100, 200 si 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) si S800T (2007) suport o rat maxim de transfer
de 800 Mb/s si 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 intenioneaz s aduc o crestere de vitez
de pn la 6,4 Gb/s si conectori suplimentari, cum sunt interfeele multimedia mici.
Fig. 3.77. Conectorul RJ45 al interfeei Ethernet.
3.4.4.2. I nterfee paralele
Cel de-al doilea tip de interfa, indiscutabil mai rapid, este interfaa
paralel. Din pcate, este utilizabil pentru transmisii la distane foarte mici, n
comparaie cu cei 30 m la care se poate comunica prin interfee seriale, motivul
fiind nivelurile energetice foarte sczute la care se lucreaz. Este cunoscut si ca
port imprimant sau port Centronics.
ARHITECTURA SISTEMELOR DE CALCUL
158
I EEE 1284
n 1994, mai vechile interfeele Bitronics si Centronics au dat nastere
standardului IEEE 1284. Interfaa paralel nu a fost folosit doar pentru
imprimante, ci si pentru alte dispozitive (chei dongle pentru protecia la copiere,
uniti ZIP, scanere, modemuri externe, plci de sunet si camere web externe,
gamepad-uri, joystick-uri, hard disk-uri si CD-ROM-uri externe, programatoare
EPROM sau controlere hardware etc.). Azi, interfaa paralel a fost nlocuit de
interfaa USB si chiar de cea Ethernet, n unele cazuri (vezi figura 3.77).
Muli productori de calculatoare personale si laptopuri nici nu mai includ un
port paralel, considerndu-l nvechit, dar si pentru c exist convertoare USB-
paralel, care pot fi folosite n cazul imprimantelor care au numai port paralel.
Standardul IEEE 1284 defineste o comunicaie paralel bidirecional ntre
calculatoare sau alte dispozitive, oferind o band maxim teoretic de 4 Mb/s, si
poate funciona n cinci moduri:
- Compatibility Mode (Centronics) foarte asemntor modului
unidirecional original Centronics;
- Nibble Mode foloseste liniile de stare pentru a recepiona date de la
imprimant (pentru transferul extins de stare al imprimantei);
- Byte Mode se transmit 8 bii concomitent, folosind liniile de date;
- Enhanced Parallel Port (EPP) este o arhitectur semiduplex
bidirecional, care permite dispozitivelor s transmit cantiti 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 mri viteza, foloseste RLE Run Length
Encoding , o compresie simpl a secvenelor lungi care conin acelasi
caracter repetitiv, folosind un cod de doar doi octei).
Calculatoarele recente cu port paralel l pot folosi n modurile EPP, ECP sau
n mod mixt.
PI A
Cel mai uzual model de interfa utilizat este PIA (Peripheral Interface
Adapter). Cipul standard folosit este 6821 PIA cu 40 de pini. Interfaa foloseste
dou registre, unul pentru datele transmise de la periferic la microprocesor si
cellalt pentru sensul opus. Cnd perifericul transmite un octet de date de-a lungul
celor opt linii ctre sistem, datele sunt depuse ntr-un registru PIA unde vor astepta
pn cnd microprocesorul este pregtit pentru preluarea lor. Dup efectuarea citirii
acestui octet stocat, procesul se repet pentru urmtorul octet.
Pentru transmisii n sens invers, procesorul va transmite un octet de-a lungul
magistralei de date ctre cipul I/O, care le va depozita ntr-unul din aceste registre.
Cnd perifericul este n stare ready, va transmite un semnal ctre PIA, care i va
pune la dispoziie datele, apoi procesul se reia.
n plus fa de aceste registre, este disponibil un registru de stare ai crui bii,
folosii ca fanioane, indic microprocesorului care coordoneaz activitile I/O
starea registrelor amintite, validitatea octetului de date transferat sau, n general,
Structura unui calculator
159
starea interfeei paralele PIA. Toate aceste registre programabile sunt cuplate la
magistrala de date a sistemului, prin aceasta fiind adresate direct de ctre procesor.
Faptul c, prin intermediul registrelor interne, aceste cipuri-interfee sunt
programabile le face deosebit de practice, deoarece fiecare port al unei linii de
transmisie (din cele opt existente) poate fi programat si controlat individual n
privina direciei de transfer a datelor. Astfel, anumite linii pot fi programate pentru
transmisie ntr-un sens, n timp ce celelalte acioneaz n sens opus. Un exemplu
clasic de folosire a comunicaiilor paralele este imprimanta.
n figura 3.78 este reprezentat o implementare fizic a interfeei PIA, prin
cipul W65C21S, compatibil cu microprocesoarele din familia Motorola 68.
Interfaa prezint dou porturi I/O bidirecionale (A si B) pe cte 8 bii, cu comand
individual a sensului datelor. Transferul datelor se face folosind un protocol
automat de tip handshake. Interfaa este prevzut cu dou iesiri de ntrerupere
comandate software. Portul A, prin iesirea CA2, asigur transferuri de mare vitez,
pentru operaii statice sau cu o frecven de pn la 14 MHz.
Fig. 3.78. Conexiunile interfeei PIA pentru microprocesoarele din familia Motorola 68.
3.4.4.3. I nterfeewireless
Bluetooth
Tehnologia Bluetooth reprezint un set de specificaii bazate pe undele radio,
pentru o reea wireless personal, PAN (Personal Area Network).
Documentaia acestui standard a fost creat n anul 1994 de ctre Jaap
Haartsen si Sven Mattisso, angajai ai diviziei Mobile Platforms din cadrul
companiei Ericsson.
Astfel, standardul dezvoltat de acestia se baza pe tehnologia de transmisie cu
salt n frecven si spectru distribuit, FHSS (Frequency-Hopping Spread
Spectrum).
Specificaiile platformei Bluetooth au fost formalizate de ctre Bluetooth
Special Interest Group (SIG). Aceasta organizaie a fost fondat n data de 20 mai
1998 de ctre Ericsson, IBM, Intel, Toshiba, Sony Ericsson si Nokia, urmnd ca
de-a lungul timpului peste 7.000 de companii s adere la acest grup.
ARHITECTURA SISTEMELOR DE CALCUL
160
Tehnologia Bluetooth creeaz o cale prin care se poate face schimb de
informaii ntre aparate precum telefoane mobile, laptopuri, calculatoare personale,
imprimante, camere digitale si console video, printr-o frecven radio sigur si de
raz mic. Aparatele Bluetooth comunic ntre ele atunci cnd acestea se afl n
aceeasi raz de aciune. Ele folosesc un sistem de comunicaii 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 emisieBluetooth
Clasa
Puterea maxim permis
(mW)
Puterea maxim permis
(dBm)
Raza aproximativ
(m)
Clasa 1 100 20 ~ 100
Clasa 2 2,5 4 ~ 10
Clasa 3 1 0 ~ 1
Protocolul Bluetooth funcioneaz n banda de frecven 2,42,4835 GHz.
Pentru a preveni interferenele cu alte dispozitive care opereaz n banda de 2,45
GHz, protocolul Bluetooth mparte banda n 79 de canale (fiecare cu o lime de
band de 1 MHz) si schimb permanent canalele de 1.600 de ori pe secund.
Implementrile Bluetooth din versiunile 1.1 si 1.2 funcioneaz la viteza de
723,1 kb/s, iar versiunea 2.0 foloseste 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 si 1.0B. Versiunile 1.0 si 1.0B au avut multe probleme,
care au fcut productorii s ntmpine dificulti n a face produsele funcionale.
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 si avea adugat un indicator al puterii semnalului de transmisie.
c) Bluetooth 1.2. Aceast versiune este compatibil cu 1.1. Principalele
sale mbuntiri sunt:
- vitez mai mare de descoperire si de conectare la alte dispozitive;
- vitez practic de transfer mbuntit (desi maximul teoretic rmne 721 kb/s);
- mbuntirea rezistenei 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 comunicaie cu versiunile 1..
Principala mbuntire este introducerea modului EDR (Enhanced Data Rate), care
permite o vitez de 3 Mb/s. Trecerea la versiunea 2.0 a vizat urmtoarele optimizri:
- 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 numeste reea de tip
piconet. Astfel, piconetul poate fi definit ca o reea de tip ad-hoc, care foloseste
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 numr
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 si pot schimba rolul n cadrul piconetului n
orice moment si astfel orice dispozitiv slave poate deveni master si viceversa. Mai
mult dect att, specificaiile 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 si 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 urmtoarele
seturi de informaii: numele si clasa dispozitivului, lista de servicii si specificaiile
tehnice (capabilitile dispozitivului, fabricantul etc.). De asemenea, orice dispozitiv
Bluetooth poate executa o cutare pentru a vedea ce alte echipamente compatibile
exist n proximitate si, de asemenea, orice dispozitiv poate fi configurat s
rspund la cutarea executat de alt echipament. Totusi, dac dispozitivul care
doreste s se conecteze la alt echipament cunoaste adresa exact a acestuia, se va
putea conecta la el indiferent de setrile de vizibilitate ale echipamentului accesat.
Fiecare dispozitiv Bluetooth are o adres unic pe 48 de bii. Aceste adrese nu
sunt totusi folosite n mod direct de ctre utilizatori, optndu-se pentru utilizarea unor
nume care pot fi definite. Aceste nume sunt afisate atunci cnd un dispozitiv
Bluetooth le scaneaz pe cele din proximitatea sa. Dispozitivele Bluetooth se
conecteaz prin intermediul unui proces numit pairing. Astfel, se stabileste o legtur
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 evideniaz protocoalele legate de modelul OSI, inclusiv
de setul comenzilor AT (vezi paragraful 2.7) este reprezentat n figura 3.79.
Wi-Fi
O reea wireless WLAN (Wireless Local Area Networks) este o reea fr fir,
local, extins pe arii limitate, n funcie de echipamentele folosite si de puterea
acestora, prin care se poate face transfer de date si internet folosind undele radio.
Raza de acoperire poate fi de la cteva zeci de metri pn la 20 km, prin folosirea
soluiilor iDirect, care au implementat interfaa de administrare pentru 200 de utilizatori.
ARHITECTURA SISTEMELOR DE CALCUL
162
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 specificaiile 802.11 (cum este 802.16 WiMAX), fac
parte din reelele actuale si ofer multe mbuntiri, de la arii mari de acoperire
pn la viteze mari de transfer.
Diferenele ntre o reea terestr si o reea wireless radio sunt multiple si
reprezint beneficii n favoarea reelelor wireless:
- Spre deosebire de alte sisteme radio, Wi-Fi foloseste un spectru de
frecvene radio care nu are nevoie de licen, deci, nu necesit aprobare
pentru utilizare.
- Se permite dezvoltarea variat a unei reele locale WLAN fr
utilizarea cablurilor, reducnd costurile necesare dezvoltrii reelei si
evitnd diferite obstacole n implementarea reelei (locuri inaccesibile,
care nu pot fi cablate).
- Multe reele Wi-Fi suport roaming, permind unui client s se mute
dintr-un punct de acces n altul n aceeasi cldire sau zon geografic.
Wi-Fi este un standard global, clienii Wi-Fi putnd lucra n diferite
ri de pe glob.
- Exist posibiliti variate de conectare a utilizatorului final, prin
intermediul plcilor Wi-Fi PCMCIA, PCI, USB sau a sistemelor Wi-Fi
802.11b sau 802.11g integrate n majoritatea notebook-urilor moderne.
- Exist posibiliti alternative sau combinate de antene Wi-Fi
unidirecionale sau bidirecionale, sectoriale, direcionale,
omnidirecionale, punct la punct, punct la multi-punct, sisteme de
bridge (interconectarea a dou reele wireless), puncte de acces de
diferite puteri, cu diferite cstiguri etc.
Arhitectura unui sistem de comunicaie care foloseste tehnologia Wi-Fi
este prezentat n figura 3.80.
Structura unui calculator
163
Fig. 3.80. Arhitectura unui sistem de comunicaie Wi-Fi.
3.4.5. Gestionarea tranzaciilor I /O
n ceea ce priveste conectarea plcilor 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 si o integrare de tip software, pe baza driver-elor care nsoesc, de
obicei, plcile de extensie si, de asemenea, este posibil parial configurarea pe baza
setrilor din CMOS, soluii care ns nu rezolv integral problema interconectrii.
Pentru a integra complet un dispozitiv periferic ntr-un sistem de calcul,
indiferent de rolul acestuia, este nevoie de a defini si a asigura comunicaia
general, prin care se va semaforiza si 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 si rezerva un canal de comunicaie
DMA (Direct Memory Access), iar, pe de alt parte, de a stabili si rezerva anumite
canale de ntrerupere IRQ (Interrupt Request) si, n final, de a seta adresele de
intrare-iesire (adrese I/O), la nivelul crora se efectueaz transmiterea datelor,
comenzilor si parametrilor necesari proceselor executate de periferic.
3.4.5.1. Transferurile DMA (Direct Memory Access)
Folosirea DMA duce la cresterea vitezei sistemului prin degrevarea
microprocesorului de controlul transferurilor de date, accesul la memorie fiind
efectuat de ctre placa de extensie respectiv, fr supraveghere continu.
n esen, cnd este vorba despre DMA, se face practic referire la
transferurile de date (si la controlul acestora) ntre memorie si porturile I/O (care
pot fi definite si ca puncte de cuplare a extensiilor periferice la sistem).
ARHITECTURA SISTEMELOR DE CALCUL
164
Dar dac procesorul nu mai este interogat asupra acelor activiti, atunci de
controlul si 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 bii (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 urmtoarele faze:
1. iniializarea transferului;
2. transferul efectiv de date;
3. verificarea terminrii si a corectitudinii transferului.
n faza de iniializare, CPU nscrie n registrele interne ale controlerului
DMA adresa de nceput a blocului de memorie implicat n transfer si numrul de
octei transferai, preciznd sensul de transfer (citire din memorie si scriere la
periferic sau citire de la periferic si scriere n memorie).
La lansarea unui transfer DMA de ctre o interfa de intrare-iesire,
succesiunea evenimentelor din faza de iniializare este urmtoarea:
- interfaa genereaz un semnal de cerere, DRQ (DMA ReQuest), ctre
controlerul DMA;
- controlerul DMA solicit prin linia HOLD accesul la magistral;
- dup terminarea ultimului ciclu n execuie, CPU suspend temporar
activitatea pe magistral prin dezactivarea amplificatoarelor de date,
adrese si comenzi (magistrala trece n starea de impedan nalt);
Structura unui calculator
165
- CPU rspunde 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 si a celor de adrese pentru efectuarea transferului,
rspunznd interfeei 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 verificarese realizeaz un control de paritate sau CRC.
Pentru a realiza funciile prezentate, un controler DMA trebuie s conin
urmtoarele componente:
- registre pentru generarea adreselor de memorie;
- numrtoare pentru contorizarea cuvintelor de date transferate pe fiecare canal;
- un registru de stare pentru marcarea configuraiei curente;
- registre de comand pentru programarea modului de transfer;
- un circuit de arbitrare pentru soluionarea cererilor multiple de acces;
- circuite pentru controlul magistralei (amplificatoare de adrese, date, comenzi);
- un dispozitiv de comand secvenial pentru derularea ciclurilor DMA
si pentru preluarea/cedarea magistralei.
Situaiile n care este necesar acest dispozitiv de comand secvenial sunt
cele n care viteza de transfer impus de echipamentul periferic este relativ mare si
CPU nu reuseste s execute instruciunile coninute n ciclul de transfer n perioada
dintre dou solicitri succesive.
n cazul PC-urilor, transferul DMA se utilizeaz pentru interfaa de floppy
disk si pentru transferul serial pe bloc. Un canal DMA (canalul 0) este utilizat
pentru operaia de remprosptare (refresh) a memoriei dinamice. Sunt simulate
periodic cicluri de citire a memoriei.
Referitor la primele patru canale DMA, dintre acestea canalele 0, 2 si 3
sunt rezervate pentru activitatea intern a sistemului de calcul (0 RAM refresh, 2
operaii cu floppy disk-ul si 3 operaii cu hard disk-ul). Rmne disponibil
canalul 1 pentru dispozitive periferice. Sunt disponibile nc 3 canale HDMA: 5, 6,
7, n general, canalul 4 fiind folosit pentru funcionarea controlerului HDMA,
cuplat n cascad cu primul controler.
Utilizrile tipice ale canalelor DMA se pot observa n tabelul 3.9.
n momentul n care o setare DMA a fost fcut gresit (de exemplu, mai
multe dispozitive folosesc acelasi canal DMA), placa nou montat nu va mai
funciona sau sistemul se va bloca. Concluzia este c nu trebuie folosite, practic,
aceleasi canale DMA pentru dou dispozitive periferice diferite.
3.4.5.2. Canalele I RQ (I nterrupt Request)
n ceea ce priveste cel de-al doilea parametru, canalul IRQ, si acesta poate
cauza, la setri defectuoase, funcionri gresite si blocri de sistem.
ARHITECTURA SISTEMELOR DE CALCUL
166
Tabelul 3.9
Utilizrile tipice ale canalelor DMA
DMA magistral utilizare tipic alte utilizri uzuale
0 RAMrefresh
1 8/16 bii Plac de sunet
(low DMA)
Adaptoare SCSI, porturi paralele, plci de reea,
modemuri de voce
2 8/16 bii Controler
floppy disk

3 8/16 bii Liber Adaptoare SCSI, porturi paralele, plci de sunet


(low DMA), de reea, voice modem, controler HD
4 Redirectat pentru
nivelele DMA 03

5 16 bii Plac de sunet


(high DMA)
Adaptoare SCSI, plci de reea
6 16 bii Liber Plac de sunet (high DMA), plci de reea
7 16 bii Liber Plac de sunet (high DMA), plci de reea
ntreruperile hardware sunt gestionate de un cip de genul i8259. Logica
procesului de cerere de ntrerupere (Interrupt Request) const din conectarea
funcional la sistem a unei extensii (cu rolul si scopul su bine definit) si
optimizarea transferurilor de date si informaii ctre/de la microprocesor
dinspre/spre acele extensii. n acest mod, se elibereaz microprocesorul de sarcina
cronofag de a urmri activitatea perifericului n cauz.
Un canal I RQ este sistemul de transmisiune folosit de componentele
sistemului pentru a semnala o cerere de intrare n aciune.
Exemplu. O plac de sunet nu va funciona 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 funcie de nivelul de ntrerupere (gradul de
prioritate) alocat, controlerul de ntrerupere va stabili oportunitatea interveniei
plcii de sunet n funcie de celelalte cereri de ntrerupere primite de la alte
periferice. Dac nivelul de prioritate este superior celorlalte cereri existente, placa
si va ndeplini activitatea pe baza acceptului primit de la microprocesor.
Alocarea nivelurilor de ntrerupere este prezentat n tabelul 3.10.
Funcionarea unui canal IRQ este urmtoarea:
- placa periferic instalat lanseaz ctre microprocesor un semnal
Interrupt Request (o cerere de ntrerupere, desemnat de un anumit
numr-cod);
- imediat, microprocesorul abandoneaz temporar aciunea pe care o
ntreprinde la acel moment si transmite perifericului un mesaj de recepie,
denumit Interrupt Acknowledge, n cazul n care nivelul de prioritate al
procesului solicitant este superior celui n curs de desfsurare;
Structura unui calculator
167
Tabelul 3.10
Nivelurile I RQ i asignarea corespunztoare fiecrui dispozitiv
nivel ntrerupere utilizare
IRQ0 Ceas de sistem (nu se poate defini de ctre 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 reea si LPT2 sunt
deseori setate la IRQ5, dac nu este alocat plcii de sunet
IRQ6 Floppy disk (nu se poate defini de ctre utilizator)
IRQ7 LPT1 (dac nu se foloseste un port paralel, atunci IRQ7 poate fi asignat
unui alt dispozitiv)
IRQ8 Ceas de timp real (nu se poate defini de ctre utilizator)
IRQ9 Redirectat de IRQ2 (de obicei, folosit pentru placa grafic)
IRQ10 Liber (dac placa de sunet foloseste IRQ5, atunci IRQ10 poate fi folosit
pentru placa de reea)
IRQ11 Liber (de obicei, folosit pentru controlerul SCSI)
IRQ12 Liber (de obicei, folosit pentru PS2)
IRQ13 Coprocesor matematic (nu se poate defini de ctre utilizator)
IRQ14 Controlerul IDE1 (Hard disk, CD-ROM); al doilea dispozitiv IDE de pe
acelasi cablu foloseste acelasi IRQ
IRQ15 Controlerul IDE2
- sistemul de operare execut o rutin special, care are ca sarcin salvarea
strii microprocesorului (salvarea coninutului registrelor curente);
- se citeste din tabela vectorilor de ntrerupere(TVI) o adres la care
se afl numrul canalului de ntrerupere cerut;
- prin citirea adresei din TVI, se poate da controlul rutinei-driver aflate
la adresa citit, rutin care rspunde de activitatea dispozitivului care a
emis semnalul IRQ;
- rolul final al rutinei sistemului de operare este s refac starea
microprocesorului, ncrcnd registrele salvate anterior, moment din
care sistemul revine la starea si procesul desfsurate anterior
semnalului IRQ.
Cum ntr-un sistem de calcul exist mai multe componente care pot cere
simultan permisiunea microprocesorului de a intra n aciune, este foarte probabil
ARHITECTURA SISTEMELOR DE CALCUL
168
ca cel puin dou cereri de ntrerupere s fie lansate ctre microprocesor n acelasi
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 intrri si o iesire, cel de-al doilea avnd intrarea 2 conectat la iesirea
primului, mrindu-se astfel numrul nivelurilor de ntrerupere care pot fi utilizate.
Plcilor de extensie (perifericelor) le vor fi asignate anumite numere de
ordine (coduri), prin care vor fi recunoscute de controlerul de ntrerupere si, mai
departe, de microprocesor. Corespunztor celor 28 intrri, vor rezulta 16 niveluri
(canale) de ntrerupere, multe dintre acestea fiind rezervate unor periferice
instalate, fr de care sistemul nu ar putea funciona (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 si IRQ3IRQ8.
Similar alegerii canalelor DMA, si pentru nivelurile de ntrerupere folosite
este valabil acelasi principiu: este necesar alocarea nivelurilor de ntrerupere
diferite pentru plci de extensie diferite, pentru a nu intra n conflict diversele cereri
simultane ale extensiilor, adresate aceluiasi nivel de ntrerupere.
Cipul 8210A asigur un nivel de prioriti pentru cererile simultane de
ntrerupere, n scopul eliminrii conflictelor. Pentru sistemele de tip XT exist opt
niveluri de prioriti (IRQ0IRQ7), iar pentru sistemele AT, 16 niveluri. Se pot
folosi si diversele canale de ntrerupere prealocate (de exemplu, IRQ5 pentru
LPT2, dac placa de sunet nu exist).
3.4.5.3. Adresa de intrare-ieire
Cel de-al treilea parametru care trebuie avut n vedere la instalarea unui
dispozitiv periferic este adresa de intrare-iesire. Microprocesoarele din seria 86 au
disponibil un spaiu de memorie special pentru stocarea adreselor de intrare-iesire,
respectiv, pentru instruciunile de transfer al informaiei dintre microprocesor si
plcile de extensie conectate. Aceast memorie este nesegmentat si poate depozita
n total 64 KB (pentru porturi de 8 bii) sau 32 KB (pentru porturi de 16 bii) de date.
Cum seciunea de memorie pus la dispoziia unei plci de extensie pentru
transferul de date la/de la microprocesor este de dimensiune relativ mic (16 octei),
va fi nevoie de alocarea mai multor spaii de memorie pentru ca o extensie s poat
fi cuplat n sistemul de comunicaie. Practic, aceste spaii de memorie reprezint
mici pori de memorie folosite ca puni de comunicaie, aceleasi pori fiind
folosite ntotdeauna de aceeasi plac de extensie.
Toate aceste adrese (date n sistem hexazecimal) sunt indicate n crile
tehnice care nsoesc plcile de extensie si 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 si
abia dup aceea se seteaz cele noi. n caz contrar, funcionarea sistemului va fi
obstrucionat de conflictele de comunicaie care apar la suprapunerea adreselor de
Structura unui calculator
169
intrare-iesire. Orice port este definit de o asemenea adres, care va accesa o zon de
memorie din partea inferioar a memoriei de lucru.
Referitor la dificultile generate de setarea acestor parametri, se
menioneaz ca soluie deosebit de avantajoas si rapid folosirea arhitecturii PCI,
care, prin intermediul setului de cipuri inteligente, permite sistemului s se
autoconfigureze, instalarea noii plci decurgnd fr probleme (plug'n'play).
Practic, dup cuplarea fizic, n slotul PCI liber urmeaz instalarea driver-ului
plcii respective (o aciune software), cu aceasta ncheindu-se dotarea sistemului.
Sistemul va recunoaste automat la pornire placa nou instalat, configurnd totodat
si canalele DMA, IRQ si adresele I/O necesare.
3.4.6. Proiectarea unui sistem I /O
Arta proiectrii unui sistem I/O const n a gsi soluia care s
ndeplineasc obiectivele de cost, dependene si varietate ale dispozitivelor, si, n
acelasi timp, s se evite scderea performanei I/O. Pentru a evita scderea
performanei, componentele trebuie s fie echilibrate ntre memoria principal si
dispozitivele I/O.
Arhitectul trebuie s plnuiasc o extindere, att n ceea ce priveste
numrul, ct si tipurile dispozitivelor I/O, astfel nct clienii s poat proiecta
reeaua I/O conform necesitilor aplicaiilor lor, asa cum rezult din figura 3.82.
De exemplu, discurile de stocare trebuie s fie dependente de limitrile care se pot
impune proiectului.
Fig. 3.82. Exemplu de organizare a unui sistem I/O.
ARHITECTURA SISTEMELOR DE CALCUL
170
n continuare, sunt prezentai pasii care trebuie urmai pentru proiectarea
unui sistem I/O. Soluiile pentru fiecare pas n parte sunt dictate de cerinele
pieei, 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 cerinelor fizice pentru fiecare dispozitiv I/O, cerinele
incluznd dimensiunea, puterea, conectorii, sloturile disponibile pe
magistral etc.;
3. luarea n calcul a costului fiecrui dispozitiv I/O, incluznd costul
controlerului necesar pentru dispozitivul respectiv;
4. luarea n calcul a fiabilitii fiecrui dispozitiv I/O, precum si a
cerinelor de memorie si de ocupare a magistralei I/O de ctre fiecare
dispozitiv I/O n parte;
Observaie: si atunci cnd CPU nu foloseste memoria, dimensiunea
memoriei principale si a magistralei I/O este limitat;
5. estimarea performanei si a disponibilitii diferitelor modaliti de
organizare a dispozitivelor I/O, pentru ca n final s se aleag cea mai
bun organizare;
6. nregistrarea cererii de acces a fiecrui dispozitiv I/O la resursele CPU:
- numrul necesar de cicluri de ceas pentru instruciunile de
iniializare a dispozitivului I/O;
- suportarea operaiilor unui dispozitiv I/O (de exemplu, ntreruperile);
- evitarea blocrii CPU cauzate de asteptarea eliberrii memoriei,
magistralei sau memoriei cache, care sunt folosite de dispozitivele I/O.
4. NI VELUL FI ZI C
La baza structurii ierarhice a oricrui calculator se afl nivelul fizic. El
constituie fundamentul calculatorului si are ca suport circuitele si porile logice.
Deoarece porile utilizeaz numere binare, funcionarea calculatoarelor se bazeaz
pe algebra boolean. Funcionarea circuitelor logice se conduce dup principiul
unui tranzistor care se comport ca un ntreruptor electronic foarte rapid.
Porile logice sunt realizate n diferite tehnologii: tehnologie bipolar si
tehnologie unipolar sau MOS (Metal Oxide Semiconductor). n cadrul tehnologiei
bipolare se poate remarca familia TTL (Transistor-Transistor Logic) foarte
utilizat si ECL (Emitter Coupled Logic) folosit n aplicaii care necesit o
mare rapiditate de execuie.
Porile realizate n tehnologie MOS sunt de 10 ori mai lente dect cele n
tehnologie TTL si de 100 de ori mai lente dect cele din tehnologia ECL. n cadrul
tehnologiei MOS se disting cteva familii clasice: PMOS, NMOS si CMOS. Asa
cum s-a mai spus, funcionarea porilor logice se bazeaz pe algebra boolean. O
funcie boolean este asociat uneia sau mai multor variabile si furnizeaz un
rezultat care depinde n mod unic de valorile variabilelor binare aplicate la intrare.
Exemplu. O funcie f a unei variabile oarecare A poate fi definit ca fiind
f(A) = 1 dac A = 0 si f(A) = 0 dac A = 1. Aceasta este funcia NON.
O funcie boolean de n variabile prezint 2
n
stri posibile. A descrie
complet aceste stri sub forma unui tabel care conine 2
n
linii nseamn a construi
tabela de adevr a funciei respective. Fiecare linie a acestui tabel indic valoarea
funciei pentru configuraia binar de n variabile.
Prin combinarea unor pori logice si ncapsularea lor ntr-un circuit sau
capsul au rezultat circuitele integrate logice. Ele sunt realizate cu diverse densiti
de integrare (numrul de pori sau de tranzistoare interne pentru circuit sau pe
milimetru ptrat). Exist mai multe categorii de integrare:
- SSI (Small Scale Integration) circuite cu integrare redus (sub 64
pori/circuit);
- MSI (Medium Scale Integration) circuite cu densitate medie de
integrare (sub 1024 pori/circuit);
- LSI (Large Scale Integration) circuite cu nalt densitate de integrare
(sub 65.000 pori/circuit);
- VLSI (Very Large Scale Integration) circuite cu nalt densitate de
integrare (peste 65.000 pori/circuit);
- SVLSI (Super Very Large Scale Integration) circuite cu foarte nalt
densitate de integrare (peste 500.000 pori/circuit).
ARHITECTURA SISTEMELOR DE CALCUL
172
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 iniial de Texas
Instruments si distribuite astzi de numerosi fabricani de circuite logice. Din cadrul
tehnologiei MSI fac parte circuitele logice combinaionale, dintre care se pot aminti:
multiplexorul, demultiplexorul, comparatorul, registrele logice programabile.
Exist unele circuite logice cu memorie. Pentru un calculator, memoria este
un dispozitiv esenial. Ea este utilizat pentru stocarea instruciunilor si a datelor
programului n curs de execuie. Pentru a obine memorarea unui bit, este necesar
s se utilizeze un dispozitiv care se substituie valorii pe care a nregistrat-o. Un astfel
de circuit poate fi realizat simplu cu pori logice, de exemplu cu pori logice SI-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 comunicaie asociate acestora i permit microprocesorului s fac
schimb de informaii cu mediul extern, n principal cu circuite de memorie sau cu
circuite de intrare-iesire. O analiz detaliat a acestor semnale determin diversele
moduri de funcionare logic si electric a procesorului si posibilitile sale de
interfa. Exist trei categorii de semnalele electrice externe ale microprocesorului:
- de adres;
- de date;
- de comand.
Fiecrui 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
noiuni specifice precum: magistrala de adrese, care reprezint totalitatea liniilor pe
care circul adresele, magistrala de date, corespunztoare liniilor de date si
magistrala de comenzi, specific liniilor de comenzi.
Fig. 4.1. Schema unui microprocesor tipic.
Structura unui calculator
173
Pentru obinerea unei instruciuni a programului care este executat,
microprocesorul ncepe prin plasarea adresei acestei instruciuni pe magistrala de
adrese. Se activeaz un semnal pe magistrala de comand pentru specificarea unei
aciuni de citire din memorie. Ca rspuns la aceast cerere, memoria plaseaz
instruciunea pe magistrala de date, trimite un semnal ctre microprocesor prin care
acesta este atenionat c operaiunea este terminat si activeaz un semnal specific
de validare a magistralei de comenzi. n timp ce microprocesorul primeste
semnalul de validare de memorie, el citeste informaia (instruciunea) prezent pe
magistrala de date si o plaseaz ntr-unul din registrele interne.
Exist doi parametri principali asociai performanelor unui microprocesor:
numrul de linii ale magistralei de adrese si numrul de linii ale magistralei de date.
Observaie. Ambii parametri se refer la Oimeamagistralelor si se msoar
n numr de linii (sau de bii). A nu se confunda cu Orgimea (de band) a
magistralelor, care se exprim n termenii vitezei de transfer (multipli de
octei/secund.)
Un microprocesor care are mlinii de adres poate adresa pn la 2
m
cuvinte
de memorie. Valorile curente pentru msunt: 16, 20, 24, 32 sau 64. De asemenea,
dac dispune de n linii de date poate scrie/citi un cuvnt de memorie de n bii ntr-o
singur operaie. Valorile curente pentru n sunt: 8, 16, 32 sau 64.
Exemplu. Un microprocesor care dispune de opt linii de adres necesit
patru operaii de citire pentru citirea unui cuvnt de 32 de bii. Dac
microprocesorul ar avea 32 de linii de adres, citirea aceluiasi cuvnt s-ar face ntr-
un singur tact, de unde rezult c un procesor este cu att mai rapid cu ct are mai
mare numrul de linii de date.
n afara liniilor de adres si de date, microprocesorul dispune de linii de
comand. Acestea permit asigurarea sincronizrii, reglrii si comandrii
schimburilor pe magistral ntre microprocesor si mediul extern.
Semnalele de ntrerupere sunt semnale de intrare pentru un microprocesor.
Ele provin n principal de la circuitele de intrare-iesire.
Exemplu. Un microprocesor cere unui circuit de intrare-iesire (de fapt
perifericului cruia i este asociat) s efectueze o anumit sarcin, dup care si
continu activitatea. n acest timp, perifericul realizeaz operaia cerut la viteza sa
proprie de execuie. Dup ce sarcina este ndeplinit, perifericul previne circuitul
de I/O (intrare-iesire) 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 apariia 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 blocri care pot rezulta din utilizarea
simultan de ctre dou circuite a magistralei.
Unele procesoare au linii speciale de comunicare cu alte procesoare sau cu
procesorul secundar (coprocesorul), atunci cnd situaia o cere. Acest lucru se
poate ntmpla, de exemplu, atunci cnd este nevoie de un calcul matematic, prin
cedarea controlului coprocesorului matematic.
ARHITECTURA SISTEMELOR DE CALCUL
174
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 legtur cu operaiile I/O.
Exemplu. Un program poate comanda discului s porneasc transferul
informaiei si i cere acestuia s furnizeze o ntrerupere imediat ce transferul s-a
terminat. Microprocesorul ntrerupe programul ce se execut si transfer controlul
unei proceduri de tratare a ntreruperii, care execut cteva aciuni corespunztoare.
Cnd se termin, rutina de tratare a ntreruperilor ntoarce controlul ctre
programul ntrerupt. Microprocesorul trebuie s reporneasc procesul ntrerupt
exact din aceeasi stare n care era cnd a aprut ntreruperea, ceea ce nseamn
refacerea tuturor registrelor interne n starea de dinainte de ntrerupere.
Un concept cheie al ntreruperilor este transparena. Cnd apare o
ntrerupere, se execut cteva aciuni si un fragment de cod anumit, dar cnd
servirea ntreruperii s-a terminat, calculatorul trebuie s se ntoarc n aceeasi 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 atasat cte un nivel
de prioritate. Cnd un dispozitiv cu prioritatea ngenereaz 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 ctre un dispozitiv cu o prioritate mai
mic este ignorat pn cnd rutina ntreruperii se termin si UCP se ntoarce la
programul utilizatorului. Pe de alt parte, tratarea ntreruperilor de la un dispozitiv
cu o prioritate mai mare trebuie validat fr nici o ntrziere.
4.2.1. Gestionarea ntreruperilor
Dac unitatea central (UC) a cerut unui circuit de I/O efectuarea unei
operaii, aceasta anun sfrsitul operaiei printr-o ntrerupere. De asemenea, un
dispozitiv care doreste s foloseasc resursele procesorului semnalizeaz acest
lucru ctre 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 aceeasi
problem ca n cazul accesului la magistral, si anume care dintre dispozitivele ce au
emis cererea urmeaz s fie servit). O modalitate curent de soluionare a cererilor
simultane de ntrerupere este de a asigna niveluri de prioritate diferite pentru
diversele dispozitive si 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 si PS/2).
INT IR 0 Ceas de sistem
INTA IR 1 Tastatur
RD IR 2 Controler IRQ2
WR IR 3 COM2/COM4
A0 IR 4 Mouse serial
CS IR 5 Placa de sunet
D0-D7 IR 6 Floppy disc
IR 7 Imprimant
Fig. 4.2. Schema controlerului de ntreruperi 8259A.
O cerere de ntrerupere se traduce prin activarea intrrii 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 rspunde 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 numr pentru a obine
dintr-o tabel de pointer-i indexat adresa rutinei de ntrerupere corespunztoare.
Controlerul de ntreruperi conine un numr de registre interne care pot fi
citite sau scrise de ctre UC cu ajutorul semnalelor RD (Read), WR (Write), CS
(Chip Select) si A0 (linia 0 de adres). Toate aceste semnale, la fel ca INT si 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 funcioneze 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 conine un 8259A la ale crui intrri sunt legate
iesirile de ntreruperi ale altor opt circuite 8259A. Se creeaz astfel posibilitatea
tratrii a 64 de linii de ntrerupere.
4.3. Magistrala
4.3.1. Conceptul de magistral
n modelul masinii von Neumann, comunicaia dintre componentele
sistemului se realizeaz prin legturi dedicate ntre perechi de componente. Aceast
UC
8259A
controler
de
ntreruperi
ARHITECTURA SISTEMELOR DE CALCUL
176
abordare este relativ rigid, limitnd drastic scalabilitatea (posibilitatea de
extindere) a sistemului.
Adugarea de noi componente este dificil si implic modificarea celor deja
existente. Proiectarea unei noi componente implic cunoasterea n detaliu a
funcionrii celorlalte elemente deja prezente. Soluionarea acestei probleme a
venit din partea firmei Digital Equipment Corporation (DEC), care la sfrsitul
anilor '60 a lansat pe pia primul calculator (PDP 11), construit n jurul unei
magistrale magistrala UniBus.
Conceptual, magistrala este un mediu comun de comunicaie ntre
componentele unui sistem de calcul; fizic este alctuit dintr-un set de linii de
semnal care faciliteaz transferul de date si realizeaz sincronizarea ntre
componentele sistemului.
Introducerea conceptului de magistral a revoluionat modul de concepere si
proiectare a noilor sisteme de calcul. Modelul de calculator bazat pe magistral a
fost preluat mai ales de familiile de calculatoare mini si micro. Prin standardizarea
magistralelor, sistemele de calcul au devenit deschise, n sensul c un numr mai
mare de productori au avut posibilitatea s realizeze componente pentru o anumit
structur de calculator (module de memorie, interfee I/O, echipamente periferice),
bazndu-se numai pe specificaiile magistralei.
n decursul timpului au fost dezvoltate diferite standarde de magistral, care
au urmrit evoluia procesoarelor (a unitilor centrale) si a necesitilor de
comunicaie ale acestora (vitez, mod de transfer, necesiti de sincronizare si
control etc.). S-au dezvoltat, de asemenea, magistrale specializate pentru anumite
tipuri de echipamente periferice (SCSI si EIDE pentru uniti de disc, console
grafice, interfee de msur si control). Din acest punct de vedere, n momentul
actual se pot distinge dou clase de magistrale:
- magistrale de sistem dezvoltate mai ales pentru conectarea unitii
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).
Apariia si evoluia ulterioar a microprocesoarelor a consacrat modelul de
calculator bazat pe magistral. Configuraia semnalelor unui microprocesor este
astfel conceput nct s permit conectarea usoar la o magistral de sistem. n
general, fiecare familie de microprocesoare (Intel 8086, Z80, MC 68000) a impus o
anumit structur si 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
modificri minime, conectabile altor magistrale.
S-au introdus noi principii de transfer care compenseaz ntr-o oarecare
msur limitrile de vitez impuse de legile fizicii de transmitere a semnalelor
electrice. Cele mai reprezentative dintre acestea sunt transferul concurent prin
tranzacii si 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 si un set de reguli
constituite ntr-un protocol, care guverneaz transferul de informaii si accesul la
mediul de comunicaie. Informaiile transferate pot fi: date, instruciuni si
informaii de control si sincronizare.
Protocolul se refer la:
- caracteristicile mecanice: tip de conectori, numr de conectori alocai pentru
un slot, formatul modulelor de extensie atasabile, sertar si fund de sertar
(rack si cablajul din spatele acestuia aceast structur fiind specific
magistralelor industriale);
- caracteristicile electrice ale componentelor conectate pe magistral: niveluri
de tensiune, cureni, ncrcare, frecven de lucru, rat de transfer;
- secvena de generare a semnalelor necesare pentru efectuarea unui transfer;
- timpii limit pentru diferitele faze ale unui transfer si timpii de meninere a
unui anumit semnal;
- intercondiionrile funcionale si temporale ntre diferitele tipuri de semnale.
n accepiunea clasic, o magistral se compune din urmtoarele tipuri de
semnale.
Semnale de date sunt semnale bidirecionale utilizate pentru transferul de
date si instruciuni. La un moment dat doar un singur dispozitiv poate s emit pe
liniile de date; numrul liniilor de date (8, 16, 32, 64) determin dimensiunea
maxim a cuvntului de date care poate fi transferat la un moment dat si, implicit,
viteza medie de transfer a magistralei.
Semnale de adres sunt utilizate pentru specificarea adresei modulului
destinaie sau surs de date, numrul de linii de adres determinnd spaiul maxim
de adresare permis de magistral (de exemplu, 24 linii de adres determin un
spaiu de adresare de 2
24
=16 Mlocaii).
Semnale de comand sunt semnale unidirecionale generate de CPU (sau
de ctre alt dispozitiv master), utilizate pentru specificarea direciei de transfer (de
exemplu, semnale de citire sau scriere pentru CPU) si 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 condiiilor de
transfer al datelor (temporizarea deschiderii si 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 si implicit determin
ntreruperea execuiei programului curent.
Semnale de tact (de ceas) sunt generate de un oscilator cu cuar, fiind
folosite pentru sincronizare si pentru generarea unor semnale de frecven
programabil.
Linii de alimentare sun generate de sursa de tensiune a sistemului, fiind
folosite pentru alimentarea modulelor sistemului.
ARHITECTURA SISTEMELOR DE CALCUL
178
Semnale de control al accesului sunt utilizate pentru arbitrajul si
controlul accesului pe magistral (n cazul magistralelor multimaster), fiind
generate de un circuit specializat (arbitru de magistral).
Numrul si semnificaia particular a semnalelor depind de tipul si destinaia
magistralei. Anumite grupe de semnale din cele prezentate pot s lipseasc (de
exemplu, semnalele de control) sau altele noi pot fi adugate (semnalele de eroare,
semnalele de control al limii datelor transferate pe 8 sau pe 16 bii etc.).
Magistralele pot fi clasificate n funcie 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 frecvena tactului. Datorit vitezei limitate de
propagare a semnalului electric, cresterea ratei ar duce la diferene de
faz la capetele magistralei.
- magistrale asincrone la care nu exist o legtur direct ntre evoluia
n timp a unui ciclu de transfer si tactul sistemului. Majoritatea
magistralelor actuale lucreaz pe acest principiu (de exemplu, ISA,
EISA, MultiBus etc.).
I I . numrul 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
iniia 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 acelasi tronson de magistral. Magistrala trebuie s conin semnale
de arbitraj si un protocol de transfer al controlului pe magistral (de
exemplu, MultiBus, VME).
I I I . modul de realizare al transferului de date:
- magistrale cu transfer prin cicluri (magistrale secveniale) regula
de baz: ciclurile de transfer se desfsoar secvenial, la un moment dat
cel mult un ciclu de transfer fiind n curs de desfsurare. Majoritatea
magistralelor folosesc acest principiu de transfer. n funcie de direcia
de transfer se disting sase cicluri semnificative:
cicluri de citire (respectiv scriere) din/n memorie;
cicluri de citire (respectiv scriere) de la/la un port intrare-iesire;
cicluri de acces direct la memorie (citire/scriere);
- magistrale tranzacionale transferul de date se efectueaz prin
tranzacii. O tranzacie este divizat n mai multe faze. Mai multe
tranzacii se pot desfsura simultan, cu condiia ca tranzaciile s fie n
faze diferite; aceast restricie provine din faptul c fiecare faz a unei
tranzacii foloseste un subset din mulimea semnalelor magistralei.
Teoretic, la aceste magistrale factorul de crestere a vitezei (n comparaie
Structura unui calculator
179
cu o magistral secvenial) este egal cu numrul de faze n care se
divide o tranzacie (de exemplu, magistrala procesoarelor post-Pentium).
I V. numrul semnalelor utilizate n transferul de date:
- magistrale seriale se utilizeaz ca mijloc de comunicaie ntre
componentele de baz ale unui calculator (CPU, memorie, interfee de
I/O etc.). Se folosesc, de asemenea, n anumite sisteme dedicate bazate
pe microcontrolere, la care costul si 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 si nu de bit.
4.3.3. Tipuri, familii i standarde de magistral
Tipurile uzuale de magistrale sunt:
I. Magistrale procesor-memorie:
- ntre procesor si memorie;
- specializate;
- scurte;
- rapide.
I I . 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)
I I I . Magistralebackplane(originar folosite la placa de baz):
- permit acces simultan la procesor, memorie, dispozitive I/O;
- sunt reutilizabile (bune pentru diverse configuraii);
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 conin 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 conine
configuraii cu magistrale pentru comunicarea procesor-memorie si 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.
ARHITECTURA SISTEMELOR DE CALCUL
180
Fig. 4.3. Configuraii cu magistrale pentru comunicarea procesor-memorie si 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 influenate de cerinele si
particularitile funcionale ale procesorului pentru care a fost conceput. Acest fapt
vine n contradicie cu ideea de sistem deschis, conform creia mediul de
comunicaie ntre componentele unui sistem trebuie s fie independent de productor.
Firmele dominante n domeniul construciei de calculatoare si-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 si utilizabil liber de orice productor; altele au fost patentate si au
restricii de utilizare, de exemplu magistrala MicroChannel (MCA) a firmei IBM,
folosit n construcia calculatoarelor PS/2. Exist si standarde dezvoltate de
grupuri de productori cu interese apropiate. Astfel au aprut standardele Camac,
FastBus, FutureBus, NuBus, Can etc.
n cazul acestor magistrale se pune problema asigurrii interoperabilitii si
compatibilitii ntre module realizate de diversi productori. Metoda de eliminare
a unor astfel de probleme este supunerea componentelor la teste de conforman.
Cele mai cunoscute foruri internaionale de standardizare care au activitate n
domeniul magistralelor sunt IEEE, ANSI si 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
I EEE
Nume
uzual
Domenii
de utilizare
488 GPIB Instrumente de laborator
583, 596, 683 Camac Achiziie de date si instrumentaie
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
si memorie, o magistral cu acces multiplu (multimaster) pentru unele periferice de
mare vitez (disc, interfa video) si o magistral de mic vitez pentru perifericele
lente. n aplicaiile de control se mai poate aduga si o magistral de
instrumentaie, adaptat pentru culegerea datelor de proces.
Pentru a satisface o gam larg de cerine, s-au dezvoltat familii de
magistrale care cuprind mai multe variante ale unei magistrale de baz si sunt
compatibile ntre ele ntr-o oarecare msur (interfeele dezvoltate pentru aceste
variante necesit modificri minore pentru compatibilizare).
n prezent exist mai multe astfel de familii de magistrale:
- magistrale dezvoltate pentru calculatoare DEC UniBus, QBus si VAXBI;
- magistrale dezvoltate pentru procesoarele Intel MultiBus I, MultiBus II
si extensii ale acestora;
- magistrale inspirate de structura seriei de procesoare Motorola
magistralele VME;
- magistrale de instrumentaie familia GPIB (dezvoltat de Hewlett
Packard), IEEE488 si Camac.
ARHITECTURA SISTEMELOR DE CALCUL
182
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 artat, o magistral (bus) este o structur de interconectare (un
ansamblu de linii de comunicaii) ntre mai multe circuite sau uniti ale unui
calculator. Un PC are diferite tipuri de magistrale, ntre care se afl urmtoarele:
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 si 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 comunicaie ntre CPU si cipurile cu
care lucreaz direct. Aceast magistral este folosit pentru a transfera date, de
exemplu ntre CPU si 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 si 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
strangulri. Magistrala este compus din linii de semnal utilizate pentru date,
pentru adrese si pentru comenzi.
Exemple.
1. ntr-un sistem 486, magistrala procesorului este compus din 32 de linii
de adrese, 32 de linii de date si cteva linii de comand.
2. Magistrala procesorului dintr-un sistem Pentium are 64 de linii de date,
32 de linii de adrese si 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 aceeasi frecven cu cea a ceasului de
baz ca CPU n exterior. Acest lucru poate conduce la concluzii gresite deoarece
cele mai multe procesoare actuale utilizeaz o frecven de lucru intern mult mai
mare dect a oricrei 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. Aceeasi frecven
extern de lucru (66,6 MHz) o au si procesoarele Pentium 133, Pentium 166 si
chiar Pentium Pro 200. n cele mai multe dintre noile sisteme, frecvena real de
lucru a procesorului este un multiplu (de 1,5 ori, de 2 ori, de 2,5 ori, de 3 ori etc.) al
frecvenei magistralei procesorului.
Structura unui calculator
183
Magistrala procesorului este legat la pinii procesorului si 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 bii de date simultan, n timp ce un sistem
Pentium sau Pentium II poate transfera 64 bii de date la un moment dat.
Pentru a determina viteza de transfer pe magistrala procesorului se
multiplic limea datelor (32 de bii pentru 486 sau 64 de bii pentru Pentium si
Pentium II) cu frecvena ceasului magistralei (aceeasi cu frecvena 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 obine astfel o vitez maxim instantanee de transfer de 528 MB pe
secund. Acest rezultat deriv din urmtoarea formul:
66 MHz 64 bii = 4.224 megabii/secund;
4.224 megabii/secund : 8 = 528 MB/secund.
Aceast vitez de transfer, adesea numit Orgime de band a magistralei,
reprezint o valoare maxim. Ca toate valorile maxime, aceast vitez nu reprezint
lrgimea de band n funcionarea normal; va rezulta o valoare medie mai sczut
a vitezei transferului de date. Ali factori de limitare, cum ar fi proiectarea setului
de cipuri, viteza memoriei si altele, contribuie la scderea lrgimii de band
efective.
ntre unitile sau circuitele conectate la magistral se disting uniti de tip
master, care au iniiativa comunicrii pe magistral, si uniti de tip slave, care
rspund la iniiativa de comunicare a masterului.
Exemple. Perechi master-slave: UC memorie (acces la instruciuni si la
date); UC port I/O (transfer de date); UC coprocesor (tratarea instruciunilor n
virgul mobil ); dispozitive I/O memorie (accesul la operanzi) etc.
n cazul procesoarelor moderne, comunicaia cu cipurile externe procesorului
a introdus noiunile de magistrale FSB, BSB si PSB
a) n cazul procesoarelor cu memorie cache L2 (L3, n cazul procesoarelor K6-
2+ si K6-3) care nu se afl n interiorul procesorului (exemple tipice fiind
procesoarele pe socket 7, slot 1 si slot A), legtura dintre acesta si northbridge poart
denumirea de magistral FSB (Front Side Bus), iar frecvena de baz a acesteia
nmulit cu multiplicatorul d frecvena de lucru a procesorului. ntre procesor si
memoria cache L2 conexiunea se face prin magistrala BSB (Back Side Bus), o
magistral de memorie care funcioneaz fie la frecvena FSB (la procesoarele pe
socket 7), fie la jumtate din frecvena procesorului (la procesoarele Intel pe slot 1),
fie ntre 1/3 si 1/2 din frecvena procesorului (la procesoarele AMD pe slot A).
Exemplu. Un FSB pe 32 de bii, opernd la o frecven de 100 MHz si care
realizeaz 4 transferuri pe ciclu, are o lrgime de band de 1.600 MB/s.
Productorii specific viteza FSB-ului n MT/s (Mega Transfers per second). Dac
o plac de baz are un FSB cu frecvena de tact de 266 MHz si realizeaz 4
transferuri pe ciclu de ceas, FSB-ul certificat este de 1.066 MT/s.
ARHITECTURA SISTEMELOR DE CALCUL
184
b) n cazul procesoarelor cu cache L2 integrat n procesor (Intel P3 si
Celeron pe socket 370 si P4 toate variantele, respectiv, AMD Athlon pe socket A,
754, 939, 940), BSB-ul a disprut, nemaifiind necesar.
Combinnd a) si 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 mcar termenul PSB nu este corect, legtura dintre procesor si northbridge
fiind de tip punct-la-punct (point-to-point).
4.3.4.1. Conectarea la magistral
Majoritatea circuitelor logice nu dispun la iesire de amplificatoare capabile s
furnizeze puterea necesar transmiterii unui semnal binar pe liniile magistralei
(datorit capacitii magistralei, pe de o parte, si a ncrcrii intrrii cu alte sarcini).
Pentru transmitere se utilizeaz circuitele amplificatoare de putere numite driver-e.
La recepie este necesar utilizarea unui receptor de tip Trigger-Schmidt care
reface semnalul degradat din cauza capacitii limitate a liniei de transmisiune sau
a eventualelor zgomote. De multe ori, un circuit poate s transmit si n acelasi
timp s fie receptor, rezultnd c pentru interfaarea cu magistrala sistemului
trebuie utilizate circuite mixte numite transceiver-e (transmitter + receiver).
Din punctul de vedere al strilor logice, circuitele de conectare la magistral
sunt circuite cu trei stri, 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 funcia SAU-cablat).
4.3.4.2. Magistralele sincrone
Din punctul de vedere al cadenei schimbului de date care are loc pe
magistral exist arhitecturi sincrone si asincrone.
Magistrala sincron dispune de o linie de ceas comandat de un oscilator cu
cuar. Toate operaiile de pe o magistral sincron sunt efectuate ntr-un numr
ntreg de perioade de ceas.
Exemplu. n figura 4.4 este prezentat modul de lucru al magistralei sincrone
n cazul operaiei de citire a unui cuvnt din memorie.
Notaii folosite:
semnal de ceas real (un ciclu de ceas T
C
= 250 ns);
MREQ cerere acces memorie (Memory Request);
RD citire (Read);
T
ML
timp de stabilire a adreselor nainte de MREQ (> 60 ns; la o frecven de ceas
4 MHz se accept un timp de crestere de 10 ns);
T
M
activarea semnalului MREQ fa de frontul descresctor n ciclul T
1
(< 85 ns);
T
RL
activarea semnalului RD fa de frontul descresctor n ciclul T
1
(< 85 ns);
T
DS
date disponibile nainte de frontul descresctor n ciclul T
3
(> 50 ns);
T
MH
tranziia semnalului MREQ dup frontul descresctor n ciclul T
3
(< 85 ns);
T
RH
tranziia semnalului RD fa de frontul descresctor n ciclul T
3
(< 85ns);
T
DH
meninerea datelor dup ridicarea semnalului de date (dup comutarea lui RD, > 0).
Structura unui calculator
185
T
1
T
2
T
3

ADDR ADRES CUVNT


DATE DATE
T
M
T
DS
MREQ T
ML
T
MH
RD
T
RL
T
RH
T
DH
Fig. 4.4. Schema accesului la magistrala sincron.
nceputul ciclului T
1
este marcat de frontul cresctor al semnalului . n
prima parte a ciclului T
1
procesorul plaseaz pe magistrala de adrese adresa care se
doreste a fi citit din memorie. Poziionarea adresei pe magistral corespunde
activrii mai multor semnale binare care formeaz adresa. Dup stabilirea adresei
pe magistral, devin active semnalele MREQ si RD. MREQ indic prin activarea
sa c se efectueaz un acces la memorie si nu un acces la dispozitivele I/O. RD
defineste prin activarea sa o operaie de citire din memorie.
n timpul ciclului T
2
nu are loc nici o modificare pe magistral pentru a
permite memoriei decodificarea adresei de pe magistrala de adrese si poziionarea
informaiei cerute pe magistrala de date.
n timpul ciclului T
3
, pe frontul descresctor al semnalului de ceas,
microprocesorul capteaz si nregistreaz ntr-un registru intern informaia prezent
pe magistral. Odat terminat aceast operaiune, procesorul pune n repaus
semnalele MREQ si RD (le ridic n 1).
Dac este nevoie mai departe de o alt operaie de citire sau scriere, aceasta
poate ncepe pe frontul cresctor al urmtorului ciclu de ceas. Dac memoria nu
este capabil s plaseze datele pe magistral n timpul cerut (s fie respectat T
DS
),
atunci memoria activeaz un semnal de wait, prin care cere prelungirea timpului de
ARHITECTURA SISTEMELOR DE CALCUL
186
citire. Strile de wait, care sunt generate de surplusul de vitez a procesorului n
comparaie cu viteza memoriei, ncetinesc viteza calculatorului.
Avantaj: funcionare relativ simpl.
Dezavantaje:
1. orice operaie pe magistral corespunde unui numr ntreg de perioade
de ceas, ceea ce conduce la o funcionare suboptimal din punct de
vedere al vitezei de lucru, datorat faptului c o operaie care dureaz 3,1
perioade de ceas va fi realizat n 4 perioade de ceas, chiar dac
memoria poate s rspund 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 operaii de
citire-scriere pn cnd nu este modificat frecvena 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 existena unui semnal de ceas care s
supervizeze transferul. Deci, durata unei operaiuni pe magistral este variabil, n
funcie de performanele circuitelor utilizate.
Exemplu. n figura 4.5 este prezentat modul de lucru al magistralei
asincrone n cazul operaiei 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) si SSYN (Slave Synchronisation) sunt
semnalele de sincronizare care asigur respectarea ordinii diverselor momente din
operaiunea de citire. De obicei, master este UC si slave este memoria.
Dup ce adresa cuvntului este depus pe magistrala de adrese de ctre UC si
dup ce semnalele MREQ si RD devin active, UC activeaz semnalul MSYN care
comunic memoriei nceperea operaiei de citire.
Memoria efectueaz citirea la vitez proprie, iar dup depunerea pe
magistral a informaiei 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 si MSYN.
Dezactivarea lui MSYN este sesizat de memorie, care pune n repaus SSYN si
elibereaz magistrala de date. Astfel s-a ajuns din nou la starea iniial si rezult c
poate ncepe o alt operaie pe magistral.
Ansamblul semnalelor de mai sus, cu ajutorul crora se efectueaz transferul
datelor, corespunde tehnici full handshake (tehnica acordului confirmat), care
include urmtoarele operaii:
- activarea lui MSYN;
- activarea lui SSYN ca rspuns la MSYN;
- dezactivarea lui MSYN ca rspuns la SSYN;
- dezactivarea lui SSYN ca rspuns la MSYN.
Observaie. 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 usor nlocuite cu altele mai
performante, pe msur ce tehnologia avanseaz. n consecin, avantajul folosirii
magistralei asincrone apare evident n comparaie cu magistrala sincron.
Pe o magistral sincron UC si poziioneaz semnalele, iar memoria sau
circuitele I/O nu fac altceva dect s rspund solicitrilor UC fr a fi necesar o
sincronizare cu aceasta. Astfel, simplitatea magistralei sincrone const n lipsa
semnalelor MSYN si SSYN.
4.3.4.4. Transferul datelor pe magistrala local a procesorului (PLB)
Tranzaciile pe magistrala local a procesorului, PLB (Processor Local Bus),
constau n mai multe faze de adresare si date. n funcie de nivelul de activitate a
magistralei si capacitatea slave PLB, acestea pot dura unul sau mai multe cicluri de
magistral PLB. De asemenea, pipeline-ul de adresare si livrarea datelor si
adreselor separate sunt mbuntite prin modul n care aceste faze sunt gestionate.
Tranzacia de adresare conine 3 faze: cerere, transfer si confirmare de adresare. O
tranzacie PLB ncepe cnd un master adun adresele sale si transfer semnalele n
vedere obinerii 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 si transfer datele n timpul fazei de confirmare a
adresei.
ARHITECTURA SISTEMELOR DE CALCUL
188
Figura 4.6 ilustreaz dou pipeline-uri de adresare de citire si scriere, mpreun
cu fazele de citire si scriere a datelor. Master A si B reprezint starea fiecrei adrese
master. PLB arbitreaz ntre aceste cereri si 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 fiecrui tact PLB.
Fig. 4.6. Exemplu de protocol de transfer PLB.
Asa cum se arat n figura 4.6, specificaiile PLB accept implementrile 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 si unitatea slave confirm adresa de-a lungul aceluiasi 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 bii a aprut n mai 2007.
PLB ofer o interfa standard ntre nucleele procesorului si controlerele
integrate ale magistralei. Cu PLB, poate fi dezvoltat o bibliotec a nucleelor
procesorului si controlerelor magistralei pentru utilizare si aplicare n nucleu, sub
form de circuite integrate specifice (numite Core + ASIC) si modele system-on-a-
chip (SOC).
n plus, PLB este o magistral de mare performan on-chip care este folosit
n sistemele integrate Core + ASIC. PLB sprijin citirea si scrierea, transferuri de
date ntre dispozitivele master si slave care sunt dotate cu o interfa de magistral
PLB si 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 si semnale de transfer.
Slave-urile PLB sunt atasate la PLB prin magistrale de adrese puse n comun, dar
decuplate, magistrale de citire, magistrale de scriere, control al transferului si 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 unitile master si slave care sunt
anexai la PLB folosesc acest ceas ca surs.
PLB se difereniaz prin urmtoarele caracteristici de performan:
Structura unui calculator
189
- transferurile de citire si scriere se suprapun pentru a permite dou
transferuri de date per ciclu pentru maximizarea folosirii magistralei;
- magistrale decuplate pentru adresare si date susin capacitatea de
divizare a tranzaciilor pentru o lime de band mai bun;
- protocolul de suprapunere a cererii de magistralei si 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 funciile acestuia.
Structura centralizat
Algoritmul cu prioriti statice (daisy chain). Se presupune existena a
cinci dispozitive de I/O care cer simultan accesul la magistral prin linia de BUS
REQUEST, iar arbitrul le rspunde 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 puin 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
BUS GRANT Dispozitive I/O
Fig. 4.7. Algoritmul cu prioriti statice (daisy chain).
arbitru
1 2 3 4 5
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 asezate n cascad). Cnd primul circuit I/O
recepioneaz acordarea magistralei, el cunoaste dac are sau nu nevoie de
magistral, adic dac a formulat cererea de acces sau nu. Dac are nevoie, el accept
magistrala si preia controlul ei, iar dac nu, permite propagarea semnalului de
acordare mai departe, ctre circuitul urmtor. Prioritatea scade de la stnga spre
dreapta (prioritatea este direct proporional cu apropierea de arbitru).
n cele ce urmeaz se va prezenta o variant care permite existena mai
multor niveluri de prioritate. Aceasta va cuprinde dou niveluri de ierarhizare:
primul cuprinde circuitele 1 si 2, iar cel de-al doilea cuprinde circuitele 3, 4 si 5.
Astfel, rezult dou linii de acordare a magistralei.
Pentru fiecare nivel de prioritate exist o linie de cerere de magistral si 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
BUS GRANT 1
BUS GRANT 2
Fig. 4.8. Repartizarea dispozitivelor I/O pe nivele de prioritate.
O alt variant ar fi urmtoarea: 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 permind altor uniti s cear
accesul n timpul transferului de date pe magistral si, mai mult chiar, permind
arbitrului de magistral s fac o preselecie a unitii care are prioritate. Astfel, odat
ce transferul de date pe magistral a luat sfrsit, magistrala este eliberat si unitatea
preselectat preia controlul magistralei (aceast tehnic este mai eficient). De obicei,
aceast variant cu preselecie si 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 ctre arbitru.
Acesta rspunde pe linii separate dispozitivelor. Dispozitivul care primeste rspuns
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.
arbitru
1 2 3 4 5
Structura unui calculator
191
Fig. 4.9. Algoritmul cu cereri independente.
Notaiile 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 log
2
mlinii de interogare
pentru cele mdispozitive. Dispozitivele sunt prevzute cu cte un decodor pentru a
recupera codul de interogare. Dispozitivul care si recunoaste codul de interogare
activeaz semnalul de confirmare ACK (acknowledge) si preia controlul
magistralei.
Arbitrul ntrerupe ciclul de interogare pn cnd dispozitivul cruia i s-a
acordat magistrala si ncheie operaiile pe magistral (vezi figura 4.10). Prioritatea
fiecrui dispozitiv este setat n codul de interogare.
n majoritatea sistemelor de calcul, unitatea central trebuie s negocieze
accesul la magistral n acelasi mod cu celelalte uniti. n general, unitatea
central are prioritatea cea mai sczut; 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, fr s apar pericolul de pierdere a datelor.
Pentru fiecare nivel de prioritate exist o linie de cerere de magistral si o
linie de acordare de magistral.
BUS
ACK
BG 1
BG 2
BG m
BR m
BR 2
BR 1
arbitru
1 2 m
ARHITECTURA SISTEMELOR DE CALCUL
192
Fig. 4.10. Algoritmul cu interogare ciclic (polling).
n majoritatea sistemelor de calcul, unitatea central trebuie s negocieze
accesul la magistral n acelasi mod cu celelalte uniti. n general, unitatea central
are prioritatea cea mai sczut; 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, fr s apar pericolul de pierdere a datelor.
Structura descentralizat
n aceast structur nu exist un arbitru veritabil de magistral (circuit fizic),
ci fiecare unitate si gestioneaz singur accesul la magistral realiznd o parte din
funciile arbitrului.
Exemplu. La sistemele VAX, exist 16 niveluri de prioritate si fiecruia i
este asociat o linie de cerere de magistral (sistemul poate accepta maximum 16
uniti, poteniali master de magistral).
Cnd o unitate doreste 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 unitii cu cea mai mare prioritate, iar pentru
celelalte uniti accesul nu este permis.
Avantajul este c permite o implementare simpl, iar dezavantajul, c
necesit mai multe linii, deoarece fiecare unitate recepioneaz cele 16 linii.
Exemplu. Pentru sistemele Intel se foloseste 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 unitile sunt asezate n
cascad (conform structurii centralizate);
log
2
mlinii
de interogare
confirmare
ACK
BUS REQUEST
BUS
arbitru
1 2 m
Structura unui calculator
193
BUS REQUEST BUS BUSY
ARBITRATION LINE
+ 5V
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, potenialul de +5V se
propag pe toat linia de arbitraj (toate unitile n repaus pleac de la o
prioritate egal).
Pentru a obine 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 condiii sunt ndeplinite, unitatea pune n 0 iesirea sa, ceea
ce are ca efect propagarea strii de 0 pe linia de arbitraj pentru toate unitile care
urmeaz.
n acest moment exist o singur unitate care are intrarea activ (n +5V) si
iesirea inactiv (n 0), ceea ce face ca aceast unitate s devin masterul
magistralei; ea activeaz linia de BUS BUSY si este liber s efectueze transferul
pe magistral.
Lanul de prioriti la structura descentralizat este, deci, urmtorul: o unitate
obine accesul la magistral naintea unitii de la dreapta sa, dar dup cele de la
stnga.
Avantajele schemei fa de structura cu arbitru sunt simplitatea (arbitrul de
magistral lipseste si sunt trei teste de efectuat pentru uniti) si rapiditatea.
Algoritmul cu prioriti dinamice (rotating daisy chain). Acest algoritm
reprezint varianta descentralizat a algoritmului cu prioriti statice (daisy chain).
Pentru algoritmul cu prioriti 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 distana dintre dispozitive si subblocul de arbitraj.
Dispozitivul care a preluat controlul magistralei va avea la urmtoarea cerere de
magistral prioritatea minim.
Subblocurile de arbitraj comunic ntre ele pentru a arbitra cererea de
magistral prin semnalele BUS REQUEST si ACK. De asemenea, exist legturi
electrice pentru dialog ntre fiecare subbloc de control al magistralei si dispozitivul
asociat.
1 2 3 4 5
ARHITECTURA SISTEMELOR DE CALCUL
194
Fig. 4.12. Algoritmul cu prioriti 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 conine 32 de linii de adrese si 32 de linii de date. Pe lng aplicaiile
industriale, este utilizat si n minicalculatoare.
Magistrala VME a fost dezvoltat din magistrala Versa Bus a firmei
Motorola, iar specificaiile pentru magistrala VME sunt coninute n norma IEEE
P1014. Spre deosebire de magistrala IBM PC, magistrala VME a fost proiectat
urmrind trei scopuri: interoperabilitatea, performana si fiabilitatea.
Magistrala VME se prezint sub trei forme: VSB, VMS si VME. Aceste
magistrale specifice sunt bine adaptate la realizarea unor sisteme de calcul variate,
de la scheme de dezvoltare si 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 si datele asociate unui procesor. Instruciunile referitoare la memoria
global sunt singurele care necesit utilizarea magistralei VME, celelalte
instruciuni merg pe magistrala VSB.
n consecin, performana 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
bii, cu un ciclu de magistral de 200 ns, lrgimea 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 ncrcat doar la
valoarea de 32MB/s (adic restul de 10%), ceea ce este mai puin de 40MB/s
(valoare impus de tehnologia VME).
1 2 m
BUS
GRANT
ACK
BUS
REQUEST
BUS
Structura unui calculator
195
Familia VME cuprinde o magistral serie pe care comunicaiile se realizeaz
prin transmisiuni seriale (VMS). Magistrala VMS este independent de celelalte
dou si ofer o lrgime de band de 30Mb/s (la transmisia serial banda se exprim
n megabii pe secund, nu n megaoctei pe secund). Ea corespunde necesitilor
de comunicaie cu debit sczut sau transferului informaiilor de sincronizare ntre
procesoare. Magistrala VMS este asemntoare unei reele locale, ea fiind bazat
pe un cablu coaxial.
Exemplul 1: sistem cu trei plci VME: procesor, memorie, controler I/O.
Fig. 4.13. Exemplu simplu de magistral VME.
Exemplul 2: sistem multiprocesor.
VSB BUS
VME BUS
VMS BUS
ML = memorie local MP = memorie partajat
Fig. 4.14. Exemplu complex de magistral VME.
Magistralele VME, VSB si VMS sunt magistrale pe care comunicaiile au
loc independent si simultan, nefiind sincronizate.
Magistralele VME cuprind patru grupe de linii: liniile de date, liniile de
arbitraj al magistralei, liniile de ntreruperi si liniile de comand.
n ceea ce priveste unitile implicate n transferul de pe liniile de date,
exist, pe lng modulele master si slave, nc dou tipuri de uniti funcionale
care particip la schimbul de date pe magistral: monitorul de urmrire si
supervizorul de magistral.
UC M I/O
Magistral VME
ML ML ML
UC UC MP UC
ARHITECTURA SISTEMELOR DE CALCUL
196
Monitorul de urmrireanalizeaz traficul de pe magistral si genereaz o
ntrerupere atunci cnd detecteaz o aciune sau o adres anormal (are rolul de a
semnaliza o aciune nepermis).
Exemplu. O tentativ de scriere n memorie ntr-o zon protejat este
recunoscut de monitorul de urmrire si oprit prin cererea de ntrerupere a
procesorului).
Monitorul de urmrire nregistreaz n memorie ntr-un spaiu cu n poziii
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 ndeplineste funcia de urmrire 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 rspund
acestei adresri. Rolul supervizorului de magistral este important datorit faptului
c fr intervenia 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
prioriti fixe si arbitrajul cu prioriti circulare.
Arbitrajul simplu presupune existena unui lan de uniti pe un singur nivel.
Arbitrajul cu prioriti fixe permite existena mai multor niveluri de
prioritate, ntre care se stabileste o anumit ordine.
Arbitrajul cu prioriti circulare implic nlnuirea ciclic a unitilor,
existnd astfel posibilitatea unui transfer continuu al prioritilor. El presupune
existena unor linii de cerere de magistral cu aceeasi prioritate; la magistrala VME
exist patru astfel de linii de cerere de magistral. Acestea funcioneaz astfel: la
primul ciclu de magistral este servit cererea sosit pe linia 0, la ciclul urmtor
cererea sosit pe linia 1 s.a.m.d. Dac nu exist nici o cerere pe linia considerat,
atunci se analizeaz linia urmtoare. Unitile care pot deveni master sunt legate n
lan la cele patru linii.
Oricare ar fi schema de arbitraj utilizat, o unitate master care doreste
accesul la magistral transmite o cerere n acest sens ctre arbitru pe o linie
corespunztoare; cnd cererea este satisfcut si se obine magistrala, acea unitate
master transmite arbitrului un semnal de ocupare a magistralei si anuleaz cererea
sa. n acest mod, devine posibil alocarea anticipat a magistralei unei alte uniti
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 mbuntire
net a performanelor magistralei.
n plus, la magistrala VME arbitrului de magistral i este permis
suspendarea activitii unui master de prioritate sczut 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 informaiilor ntre CPU
si 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 informaiilor
ntre magistrala procesorului si memorie.
Sistemele cu frecven mare a plcii de baz lucreaz la viteze care depsesc
uneori posibilitile cipurilor DRAM standard. n astfel de sisteme este utilizat un set
de cipuri, controlerul memoriei, care realizeaz interfaa ntre magistrala rapid a
procesorului si memoria principal, mai lent (vezi figura 4.15). Acest set de cipuri
este n general acelasi cu setul de cipuri responsabil cu gestionarea magistralei I/O.
Fig. 4.15. Schema de interconectare a magistralelor unui calculator.
Informaia care circul prin magistrala memoriei este transferat la o vitez
mult mai mic dect viteza de transfer a informaiei pe magistrala procesorului.
Limea magistralei de memorie este ntotdeauna egal cu cea a magistralei
procesorului. Dac procesorul are 32/64 bii, magistrala memoriei are tot 32/64 bii.
Procesoarele mai noi aduc o nou arhitectur a plcii de baz, cu dou cipseturi:
northbridge si southbridge, ntre care sarcinile sunt mprite (vezi figura 4.16 si 4.17).
Chipul northbridge, cunoscut ca Memory Controller Hub (MCH), se ocup de
comunicaiile ntre CPU, memorie, grafic, interfee si southbridge. Unele northbridge-
uri conin controlere video integrate, numite Graphics and Memory Controller Hub
(GMCH). Deoarece diversele procesoare si RAM-ul necesit semnale diferite, un
northbridge va funciona doar cu una sau dou clase de CPU si cu un singur tip de RAM.
Magistrala memoriei
Magistrala principal a
sistemului
Magistrala procesorului
CPU Cache extern
Cipurile
controlerului
de memorie
RAM
Magistrala principal a
sistemului
ARHITECTURA SISTEMELOR DE CALCUL
198
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
interfaa cu perifericele si magistralele si 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 funciona 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 si a celei de
memorie. Magistrala unui sistem Pentium are 64 de linii de date, 32 linii de adrese
si cteva linii de comand. Aceste linii de adrese constituie magistrala de adrese; n
multe scheme bloc este inclus n magistrala procesorului si 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 operaiei de transfer
al datelor. Magistrala de adrese indic precis locul n care va avea loc urmtorul
transfer n memorie sau pe magistral. Dimensiunea magistralei de memorie
determin mrimea 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 si sloturile sale de extensie asociate sunt necesare pentru c nu este
posibil ca sistemele de baz s satisfac toate necesitile tuturor celor care le
achiziioneaz. Magistrala I/O permite adugarea de dispozitive calculatorului
pentru a-i extinde posibilitile. Componentele de baz ale calculatorului, cum ar fi
controlerele de hard disk si plcile adaptoare video, pot fi atasate sistemului prin
intermediul sloturilor de extensie; de asemenea, se pot atasa dispozitive mai
specializate, cum ar fi adaptoarele de reea etc.
De la apariia primului PC, s-au introdus mai multe tipuri de magistrale I/O
(ISA, MCA, EISA etc.). mbuntirea performanelor vizeaz trei domenii principale:
- procesoare mai rapide;
- cerine software sporite;
- cerine video mai mari.
Fiecare dintre aceste trei cerine impune ca magistrala I/O s fie ct mai
rapid posibil. Aproape toate sistemele PC livrate n prezent folosesc nc aceeasi
arhitectur de magistral ca la modelul IBM PC/AT din 1984. Dar, cele mai multe
dintre aceste sisteme conin acum si o magistral local de mare vitez, cum este
VLBus sau PCI, care ofer un nivel de performan mai ridicat pentru adaptoarele
care solicit asa ceva. Standardizarea este una dintre caracteristicile care au
determinat succesul sistemelor PC.
Aceste tipuri de magistrale se deosebesc prin volumul datelor transferate
simultan si 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 si 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 si echipamente de stocare, cum
ar fi hard disk-ul sau unitile optice. Principalele avantaje fa de vechile interfee
ARHITECTURA SISTEMELOR DE CALCUL
200
Parallel ATA sunt transferurile de date mai rapide, abilitatea de a deconecta sau
instala echipamente n timp ce calculatorul este funcional (hot swapping), cabluri
mai subiri care permit sistemului de rcire cu aer s funcioneze mai eficient si
operaii mai sigure cu verificri de integritate ale datelor mai riguroase.
Interfaa standard pentru controlerele SATA este AHCI (Advanced Host
Controller Interface), care permite s fie folosite specificaiile avansate ale SATA
cum ar fi hot plug sau NCQ (Native Command Queuing). Dac interfaa AHCI nu
este implementat pe placa de baz, controlerele SATA ruleaz ntr-un mod care
emuleaz interfaa 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 interfaa AHCI, n timp ce sistemul de operare Windows
Vista si versiunile curente din Mac OS ofer acest suport.
Valorile ratei de transfer a generaiilor interfeei SATA sunt de 1,5 Gb/s si
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, mprind lrgimea 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) si 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 si pot fi astfel conectate la mai multe echipamente, acestea avnd un
identificator unic pe 64 de bii. Exist, de asemenea, si porturi de expansiune (M)
care permit conectarea prin cabluri (C, lungime s 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, difereniale (LVDS). n codarea de tip 8b/10b, semnalul de sincronizare
este inclus n secvena de date. Aceast tehnic este numit clock data recovery
(recuperarea ceasului cu ajutorul datelor), deoarece nu foloseste un semnal de
sincronizare separat. n schimb, are nevoie de o tranziie de la 0 la 1 n sirul de date
serial pentru a face sincronizarea.
Varianta extern la magistralei SATA se numeste 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 si orice alt dispozitiv care
trebuie s transfere cantiti mari de date ntr-un timp foarte scurt.
Standardul SCSI specific interfaa hardware si software la un nivel care
minimizeaz subordonarea fa de orice alt implementare hardware. Specificaia
permite conectarea unei mari varieti de periferice la multe tipuri de calculatoare.
O magistral SCSI este un tip de magistral care se conformeaz cerinelor
fizice si electrice ale standardului SCSI standard. Un dispozitiv SCSI (int) se
supune oricrei uniti conectate la magistrala SCSI, fie c este vorba despre un
echipament periferic sau un calculator. Fiecrui dispozitiv SCSI i este atribuit un
ID SCSI (o valoare ntreag, care identific unic dispozitivul n timpul operaiilor).
Fazele magistralei SCSI sunt intervale de timp de-a lungul crora, prin
convenie, 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 direcioneaz tranziia de la o faz la alta. De exemplu, semnalul de resetare
invoc faza de magistral liber, n timp ce semnalul de atenie 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 foloseste magistrala si c magistrala este liber pentru orice alt operaie SCSI.
2. Arbitrajul: aceast faz este precedat de faza de magistral liber si
permite unui dispozitiv SCSI s cstige control asupra magistralei. n timpul
acestei faze, toate dispozitivele care doresc s foloseasc magistrala si pun ID-ul
pe magistral (folosind semnalele de date). Semnalul cu cel mai mare ID cstig.
3. Selecia: aceast faz urmeaz fazei de arbitraj. Dispozitivul care a
cstigat faza anterioar foloseste aceast etap pentru a selecta un alt dispozitiv cu
care s comunice.
4. Reselecia: aceast faz, opional, este folosit de sisteme care permit
echipamentelor periferice s se deconecteze si s se reconecteze (de) la magistral
n timpul operaiilor ndelungate.
5. Comanda: de-a lungul acestei faze, inta cere o comand de la iniiator.
6. Datele: faza de date are loc cnd inta cere un transfer de date (de) la iniiator.
7. Starea: aceast faz are loc cnd inta cere ca informaia de stare s fie
trimis la iniiator.
8. Mesajul: faza de mesaj are loc cnd inta cere transferul unui mesaj.
Mesajele sunt mici blocuri de date care transport informaia sau cererea ntre
iniiator si int. n aceast faz, pot fi trimise mesaje multiple.
mpreun, ultimele patru faze (comand, date, stare, mesaj) sunt cunoscute
ca fazele de transfer al informaiei.
ARHITECTURA SISTEMELOR DE CALCUL
202
Fig. 4.19. Fazele magistralei SCSI si tranzaciile permise.
Figura 4.19 arat legtura dintre fazele magistralei SCSI.
Varianta serial a magistralei SCSI se numeste 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 sczut. n
timp ce viteza magistralei procesorului a crescut, magistrala I/O a cunoscut doar
ajustri ale vitezei nominale, n principal prin cresterea limii de band.
Soluiile bazate pe magistrala local nu nlocuiesc standardele existente, ci
sunt proiectate pentru a le mbunti. De aceea, un sistem uzual este bazat pe
standardele I/O si, n acelasi timp, este dotat cu unul sau mai muli conectori Local
Bus. Un exemplu de magistral local la Intel 80486 este VLBus (VESALocal Bus).
4.3.8.1. Magistrala PCI
Magistrala PCI (Peripheral Component Interconnect) este numit adesea si
magistral mezanin, oarece ea adaug un alt nivel configuraiei de magistral.
PCI ocoleste magistrala standard I/O, folosind magistrala sistemului (pentru a
creste viteza ceasului) si toate avantajele cilor de date (vezi figura 4.20).
La magistrala PCI standard, informaiile se transfer la 33 MHz, utiliznd
toat limea cuvntului. Lrgimea de band este de 132 MB/s. Cnd magistrala
este folosit cu o unitate CPU pe 64 bii, lrgimea 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 rmn 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, fr s o nlocuiasc. Unitatea CPU
poate procesa date n memoria cache extern, n timp ce magistrala PCI este
ocupat cu transferarea informaiilor 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
iniiator (master) si o int (slave). Dup ce un master a obinut 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 funcioneaz 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 iniiator pentru a emite mesaje ctre una sau
mai multe inte.
3. Citire I/O. Este un ciclu de transfer de date ntre iniiator si un dispozitiv
I/O. Fiecare dispozitiv I/ O are alocat un spaiu propriu de adresare.
4. Scriere I/O.
5. Citire din memorie. Citirile din memorie se pot executa n salv, pe
blocuri, funcie de modul n care controlerul de memorie gestioneaz transferurile
ntre memorie si cache. Se citeste o jumtate de linie de cache sau mai puin, n
salv fiind unul sau dou cicluri de citire.
6. Citire o linie din memorie. Se citeste mai mult de o jumtate de linie de
cache, dar mai puin de trei linii, n salv fiind ntre 3 si 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
ARHITECTURA SISTEMELOR DE CALCUL
204
9. Scriere n memorie si invalidare. Scrierea se poate face, de asemenea, n
salv. Se respect modul Write Backpentru scrierea din cache n memorie.
10. Citire configuraie. 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 configuraie. n acest tip de ciclu, dispozitivul master poate
modifica registrele de configurare.
12. Ciclu de adresare dual. Este folosit de iniiator pentru a arta c apare o
adresare pe 64 de bii.
Orice transfer de date pe magistrala PCI const ntr-o faz de adresare si 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 si date;
C/BE liniile multiplexate pentru comenzi de magistral sau Byte Enable. n
timpul fazei de date, arat care din cei 4 octei de date poart date semnificative;
FRAME semnalul generat de iniiatorul curent, pentru a indica startul unui
transfer. Este dezactivat cnd iniiatorul ncepe faza final de date.
IRDY iniiator pregtit, 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 pregtit, 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 si recunoaste adresa.
Funcionarea este urmtoarea:
Structura unui calculator
205
1. De ndat ce masterul are controlul magistralei, poate ncepe transferul
activnd FRAME. Linia rmne activ pn iniiatorul termin ultima faz de date.
Iniiatorul pune adresa pe AD si comanda de citire pe liniile C/BE.
2. inta si recunoaste adresa pe liniile AD.
3. Iniiatorul cedeaz magistrala intei (ncepnd cu tactul 3). Iniiatorul
schimb informaia pe liniile C/BE, pentru a indica pe care dintre liniile AD se vor
transmite datele de la int (1 pn la 4 octei).
4. inta selectat activeaz DEVSEL, pentru a semnaliza c a recunoscut
adresa, apoi pune datele pe liniile AD (primul octet) si activeaz TRDY.
5. inta are nevoie de timp pentru a pregti urmtorul octet de date.
6. inta dezactiveaz TRDY, pentru a informa iniiatorul c pe urmtorul
tact nu vor exista date valide. Ca urmare, iniiatorul 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 iniiatorul nu este gata s preia datele (are, de
exemplu, buffer-ul plin). Iniiatorul dezactiveaz IRDY, ceea ce are ca efect
meninerea datelor de ctre int un tact suplimentar (datele nu se citesc la
nceputul tactului 7, ci la nceputul tactului 8).
8. Iniiatorul dezactiveaz semnalul FRAME si activeaz semnalul IRDY,
pentru a semnala c este gata s finalizeze transferul.
9. Iniiatorul dezactiveaz IRDY, permind magistralei s treac n starea iniial.
inta a detectat dezactivarea semnalului FRAME si dezactiveaz TRDY si DEVSEL.
4.3.8.2. Magistrala AGP
AGP (Accelerated Graphics Port) este o magistral dedicat comunicrii 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
comunicaia cu display-ul si pentru a mri banda transferurilor de date ctre acesta.
AGP a fost aprut n 1997, odat cu procesorul Pentium II si cipsetul
62440LX. Acest cipset, primul care a implementat controlul comunicaiei 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 si placa grafic montat n slotul AGP (vezi figura 4.22).
AGP d plcii 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 satisfcut). Cererile formeaz o coad de asteptare,
printr-un proces denumit SBA (Sideband Addressing).
Magistrala AGP are la baz standardul PCI versiunea 2.1. AGP are 32 de linii
si lucreaz la 66 MHz, spre deosebire de PCI, a crei frecven este de 33 MHz.
Banda primei magistrale AGP era de 264 MB/s (dubl fa de PCI). Ulterior, au
aprut plci grafice care suportau transferul de date pe ambele fronturi ale semnalului
de ceas (2-mode transfer) si banda s-a dublat ajungnd la 528 MB/s (AGP 2).
ARHITECTURA SISTEMELOR DE CALCUL
206
Fig. 4.22. Configuraia magistralelor la PC-urile cu procesor Pentium II.
Versiunea AGP 2.0, cunoscut si ca AGP 4, defineste 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 depseste, astfel, valoarea de 2 GB/s.
4.3.9. Magistrala serial
4.3.9.1. Magistrala USB
Acest tip de magistral a aprut 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 apariia USB, dispare multitudinea de cabluri si
conectori necesar conectrii 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 si monitor.
Aceste aparate funcioneaz ca distribuitori (hub) pentru alte aparate. De asemenea,
calculatorul preia rolul de gazd (host), gestionnd diversele comunicaii.
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, unitile CD si DVD, unitile HDD externe etc.
Dup cum s-a artat n paragraful 3.4.4.1, un host USB comunic cu
dispozitivele conectate prin intermediul unor canale logice (pipes), care au niste
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 ctre
dispozitive, primind ca rspuns starea dispozitivului periferic la un
moment dat (de exemplu, pipe-urile de management 0);
- modul izocron garanteaz o vitez (nu neaprat cea maxim), dar cu
posibiliti de a pierde date (de exemplu, aplicaii audio-video n timp real);
- modul ntrerupere pentru periferice care au nevoie de rspuns rapid
(cu latene limitate) (de exemplu, mouse, tastatur etc.);
- modul bulk transferuri mari si lungi de date, folosind toat banda
liber, fr a garanta banda (de exemplu, transferuri de fisiere).
Cnd un dispozitiv periferic este activ, atasat host-ului, acesta primeste o
adres de 7 bii de la host. Host-ul interogheaz dispozitivele pentru trafic, astfel
nct nici un dispozitiv nu poate transfera date pe magistral fr a face o cerere
ctre host. ntreruperile efectuate asupra endpoint-urilor corespunztoare nu ntrerup
practic traficul de date, ci sunt programate doar pentru a fi interogate mai des de
ctre host, primind o prioritate mai mare.
Accesarea unui endpoint se face printr-o configuraie ierarhic. Un dispozitiv
conectat la magistral are un descriptor de dispozitiv (device descriptor), care, la
rndul su, are mai muli descriptori de configuraie(configuration descriptors).
Configuraiile corespund, de obicei, cu starea la un moment dat (de exemplu, activ
sau n mod putere sczut low power). Fiecare descriptor de configuraie are, la
rndul su, un descriptor de interfa (interface descriptor), care descrie diferite
funcionaliti ale dispozitivului, n funcie de tipul acestuia (de exemplu, o camer
video poate avea descriptor de interfa video si descriptor de interfa audio).
Structura ierarhic este prezentat n figura 4.23.
Fig. 4.23. Structura ierarhic a descriptorilor USB.
ARHITECTURA SISTEMELOR DE CALCUL
208
Fiecare descriptor de interfa are niste setri implicite si este posibil s aib
setri alternative de interfa (alternate interface settings), care, la rndul lor, au
descriptori de enpoint-uri (endpoint descriptors). Un endpoint poate fi totusi folosit
pentru mai multe interfee sau setri alternative de interfee.
Hub-urile sunt elemente cheie n arhitectura plugnplay a USB, usurnd
conectivitatea din punct de vedere al utilizatorului si asigurnd o robustee mai
mare. Punctele de conexiune ale hub-urilor se numesc porturi. Un hub are un port
upstreamsi 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
downstreamconecteaz hub-ul cu alt hub sau cu un dispozitiv funcional. Hub-ul
poate detecta conectarea si deconectarea dispozitivelor la fiecare port downstream
si permite alimentarea cu energie a dispozitivelor din aval.
Fig. 4.24. Structura unui hubUSB.
Un hub USB 2. 0 se compune din trei poriuni:
- controlerul hub-ului: este un comutator controlat de protocol ntre portul
upstreamsi porturile downstream, care are suport hardware pentru reset
si semnalizare suspend/resume;
- repetorul hub;
- translatorul de tranzacii: asigur mecanismul de vitez medie/mic n
aval de hub, n timp ce n amonte transmisia se face la vitez mare.
Calculatorul (host) si aparatul (hub) sunt mprite n niveluri (layer)
distincte. Sgeile verticale indic starea actual de comunicaie la gazd. Interfaa
corespunztoare a aparatului are o implementare specific. Toate comunicaiile
dintre gazd si aparat au loc prin cablul fizic USB. Exist interfee gazd-aparat la
fiecare nivel orizontal. Comunicaia ntre clientul deintor al software-ului si
funciile provenite de la aparat sunt reglementate de un contract bazat pe nevoia
aplicaiei curente de a folosi aparatul si posibilitile oferite. Aceast interaciune
client-funcie creeaz cereri pentru toate nivelurile si interfeele lor.
Nivelul gazdei pune la dispoziie urmtoarele posibiliti:
- detectarea atasrii sau deconectrii unui aparat USB;
- managementul fluxului standard de control ntre gazd si aparat;
- managementul fluxului de date ntre gazd si aparat;
- colectarea informaiei statistice de stare a activitii;
- controlul electric al interfeelor ntre controlerul gazd si aparatul USB.
Structura unui calculator
209
Fig. 4.25. Arhitectura stratificat a comunicaiei USB.
Fluxul de date de baz si relaiile dintre modulele USB sunt prezentate n
figura 4.25, iar comunicaia ntre calculator (host) si aparate (hub) se face pe baza
unui protocol descris n figura 4.26.
Cmp de
sincronizare
(8 bii)
Identificator al
pachetului
(8 bii)
Date
(0 1032 octei)
Control
erori CRC
(16 bii)
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 informaiei.
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 si 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 informaia necesar) sunt ncrcate exact
driver-ele necesare funcionrii acestuia, care poate fi si dezinstalat cnd se
hotrste ndeprtarea perifericului respectiv din configuraie.
Dup instalarea driver-ului aferent, acesta face o cerere de alocare de band.
Banda se aloc n mod dinamic, n funcie de necesitile fiecrui periferic.
Informaiile se transfer sincron sau asincron pe magistral, n format de pachete.
ARHITECTURA SISTEMELOR DE CALCUL
210
4.3.9.2. Magistrala FireWire (standardul I EEE 1394)
Aceast magistral a fost creat n 1986 de ctre firma Apple si 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 vzut ca magistrala viitorului, pentru
conectarea tuturor echipamentelor electrocasnice: TV, DVD, scanner, camer web, PC.
Acest tip de magistral a aprut datorit cerinelor tot mai mari n ceea ce
priveste calitatea transmisiei audio-video, dar si din necesitatea interconectrii
tuturor echipamentelor electrocasnice. Cu ajutorul unui suport software adecvat se
poate crea un nou tip de aplicaii multimedia: conferine de calitate full-motion,
jocuri si multimedia de calitate cinematografic, video-mail, editare video etc.
Toate transmisiile de date FireWire sunt de tip pachet si pot fi clasificate n
dou categorii: asincronesi isocrone, magistrala fiind de tip tranzacional.
Transmisiile asincrone sunt garantate la recepie si au nevoie de un semnal
de confirmare de la receptor. Ele sunt transmisiuni unipunctuale (unicast).
Transmisiile isocrone sunt garantate n timp, cu o lrgime de band specific,
rezervat pentru ele n magistrala serial. Pn la 80% din banda magistralei poate fi
alocat pentru transmisiile isocrone. Lrgimea 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 numr de canal. FireWire
suport si 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 ncrcturii de date depinde de tipul
de transmisiune si lrgimea de band a magistralei FireWire (1001000 Mb/s).
Figurile 4.27 si 4.28 reprezint formate de pachete FireWire isocrone si,
respectiv, asincrone. Fluxurile asincrone si pachetele isocrone au acelasi format.
Fig. 4.27. Formatul pachetelor isocrone si a fluxurilor asincrone FireWire.
Structura unui calculator
211
Semnificaia notaiilor din figura 4.27 este urmtoarea:
tag formatul datelor (specific protocolului);
channel adresa de canal;
tcode codul tranzaciei (asincron, isocron, pachet de date, de control etc.);
sy codul de sincronizare (specific aplicaiei).
Fig. 4.28. Formatul pachetelor asincrone FireWire.
Semnificaia notaiilor din figura 4.28 este urmtoarea:
destination id include 6 bii pentru ID-ul nodului (63 de noduri) si 10 bii
pentru ID-ul magistralei (1024 magistrale);
tcode tipul tranzaciei;
pri prioritate (cmp neutilizat);
destination offset locaia 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, defineste semnalele electrice
pentru transmisia de date si interfaa mecanic pentru cabluri si conectori. Nivelul
de conexiuni asigur adresa si decodificarea numrului de canal, precum si
generarea CRC-ului si verificarea pachetelor de date transmise si recepionate.
Nivelul de tranzacii asigur servicii de interogare-rspuns pentru transmisiile
asincrone. Transmisiile isocrone opereaz independent faa de acest nivel. Nivelul
de gestiune a magistralei asigur suportul pentru diferite activiti de gestiune si
configurare a magistralei.
ARHITECTURA SISTEMELOR DE CALCUL
212
FireWire necesit trei noduri primare pentru gestionarea magistralei la o
operare normal. Acestea sunt: cycle master, IRM (Isochonous Resource Manager)
si BM (Bus Manager), conform figurii 4.29.
Fig. 4.29. Structura stratificat a protocolului FireWire.
Cycle master genereaz si transmite pachete de iniializare ciclice la fiecare
125 s. Un pachet de iniializare ciclic reprezint nceputul intervalului periodic de
125 s. Nodul rdcin joac rolul de cycle master.
I RM gestioneaz lrgimea de band a magistralei de date seriale isocrone si
aloc numerele de canale generate multinodal.
BM gestioneaz distribuia de putere pe cabluri si afiseaz harta topologic
si diagrama de vitez pentru magistrala serial. Diagrama de vitez este necesar
deoarece FireWire poate suporta noduri/cabluri de lrgimi de band diferite ntr-o
singur reea. n general, toate nodurile sunt capabile s efectueze activitile de
gestionare a magistralei. Totusi, nodurile operaionale de gestionare a magistralei
sunt cele alese n etapa configurrii magistralei.
FireWire utilizeaz un mecanism de arbitraj cerere/acceptare pentru
controlul accesului n reeaua shared-medium. O schem de arbitraj simpl
funcioneaz 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, si emite
un semnal de acceptare pentru nodul corespunztor;
- numai nodul acceptat si 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 I
2
C
Magistrala I
2
C (Inter-Integrated Circuits) a fost dezvoltat de firma Philips
pentru comunicaia ntre diferite microcontrolere si controlere I/O. Este o
magistral bidirecional simpl, care utilizeaz dou fire, unul pentru datele
seriale, SDA (Serial Data), si unul pentru ceasul serial, SCL (Serial Clock), dup
cum arat n figura 4.30. Exist un mare numr de circuite integrate compatibile cu
magistrala I
2
C, care a devenit un standard industrial pentru magistralele de control.
Fig. 4.30. Circuite conectate printr-o magistral I
2
C.
Fiecare dispozitiv conectat la magistral este recunoscut printr-o adres
unic si poate funciona fie ca receptor (de exemplu, un afisaj cu cristale lichide),
fie ca transmitor si receptor (de exemplu, o memorie). Transmitoarele si
receptoarele pot funciona n modul master sau n modul slave, dup cum acestea
pot iniia un transfer de date sau sunt doar adresate. Un dispozitiv master poate
transmite/recepiona semnale la sau de la un dispozitiv slave sau poate controla
transferurile ntre dou dispozitive slave, dintre care unul este transmitor, iar
cellalt 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 bii. Pentru arbitraj, se utilizeaz biii de adres si cei
de date.
Mai recent, n versiunea 2.1 a specificaiilor magistralei, a fost inclus
facilitatea de deplasare a nivelelor de tensiune (level shifting), care permite
conectarea la magistral a dispozitivelor care funcioneaz cu tensiuni de
alimentare diferite, de exemplu, la 5 V si 3,3 V. De asemenea, specificaiile au fost
extinse pentru dispozitivele care funcioneaz la tensiuni de sub 2,7 V. A fost
adugat un mod de transfer de vitez ridicat (high speed), care asigur rate de
transfer de pn la 3,4 Mbit/s si permite conectarea unor memorii EEPROM. Cu
ajutorul unei puni (bridge), se asigur comunicaia bidirecional cu dispozitivele
care utilizeaz modul de transfer rapid sau cel standard.
ARHITECTURA SISTEMELOR DE CALCUL
214
4.3.9.4. Magistrala Fibre Channel
Cresterea performanelor staiilor de lucru, a procesoarelor si a perifericelor,
ca si cresterea ponderii arhitecturilor distribuite de tip client/server, au ridicat
cerinele pentru aplicaiile cu rate de transfer ridicate. Interconexiunile dintre aceste
sisteme si dispozitivele I/O necesit un nou nivel al performanelor n ceea ce
priveste fiabilitatea, viteza si distana. Fibre Channel reprezint o tehnologie de
interconectare cu fiabilitate ridicat, care permite comunicaii concurente ntre staii de
lucru, servere, sisteme de stocare a datelor si 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 comunicaie care
dispune de faciliti de reea si asigur astfel conectivitatea si distana necesar,
permind utilizarea diferitelor protocoale de comunicaie. De asemenea, Fibre
Channel are caracteristicile unui canal de comunicaie tradiional, cu avantajele
simplitii, a performanelor repetabile si a furnizrii garantate a datelor.
n termenii arhitecturii Fibre Channel, comutatorul care leag dispozitivele este
o reea de tip fabric. Legtura este reprezentat de dou fibre unidirecionale
transmind n sensuri opuse fa de emitorul si receptorul asociate acestora. Fiecare
fibr este atasat unui emitor al unui port la unul dintre terminale si unui receptor al
altui port la cellalt terminal. Dac reeaua de tip fabric este prezent n configuraie,
fibra poate fi atasat unui port al unui nod (N_Port) si unui port al reelei (F_Port).
Deoarece sistemul de canale se bazeaz pe porturi comunicnd ntre ele si cu
reeaua de tip fabric, nu este esenial dac reeaua este un comutator de circuit, un
hub activ sau o bucl. Topologia poate fi selectat n funcie de cerinele de
performan ale sistemului sau de opiunile 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, asadar, integrarea unei reele 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) si pe trei
tipuri de medii electrice si optice. Distanele de transmisiune variaz n funcie de
combinaiile ntre vitez si mediu. Mediul optic de fibre unimodale utiliznd surse
de lumin laser cu lungime de und mare ofer cea mai nalt performan (distana
maxim de 10 km la 1 Gbit/s).
4.3.9.5. Magistrala I nfiniBand
Arhitectura InfiniBand rezolv limitrile de lrgime de band si suprasarcin
ale magistralei PCI prin trecerea de la tradiionala arhitectur partajat a magistralei
la o arhitectur cu comutare de reea de tip fabric (switched fabric architecture).
Figura 4.32 ilustreaz cea mai simpl configuraie a unui sistem InfiniBand, n care
dou sau mai multe noduri sunt conectate prin reeaua InfiniBand Fabric. Un nod
reprezint fie un dispozitiv gazd (server), fie un dispozitiv I/O (subsistem RAID).
Reeaua InfiniBand Fabric poate consta dintr-un singur comutator (n cel mai
simplu caz) sau dintr-un set de comutatoare interconectate si router-e.
Fig. 4.32. Arhitectura InfiniBand Fabric.
Fiecare conexiune dintre noduri, comutatoare si router-e este o legtur
serial, punct-la-punct. Aceast deosebire esenial aduce anumite beneficii:
1. Fiind o conexiune serial, necesit doar patru legturi, fa de
conexiunea deosebit de complex a magistralei PCI.
2. Natura punct-la-punct a conexiunii ofer capacitatea maxim a legturii
ntre dou puncte, fiind dedicat celor dou puncte finale. Astfel, se elimin
concurena la magistral, precum si ntrzierea rezultat n condiiile unei
suprasarcini n arhitectura magistralei partajate.
3. Canalul InfiniBand este proiectat pentru conexiuni ntre gazde si
dispozitive I/O n cadrul unui centru de date (Data Centre). Datorit lungimii bine
definite si relativ scurte a conexiunilor, poate fi atins o lrgime de band mult mai
mare dect n cazurile n care este nevoie de lungimi mult mai mari.
Specificaiile InfiniBand definesc lrgimea de band brut a conexiunii de
baz 1 la 2,5 Gb/s si specific dou lrgimi de band adiionale, referite ca 4 si
12, ca multipli ai ratei pentru legtura de baz.
ARHITECTURA SISTEMELOR DE CALCUL
216
4.3.9.6. Magistrala PCI Express
Necesitatea schimbrii magistralei a aprut 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 necesitilor actuale ale calculatoarelor. Chiar si portul AGP 8, cu viteza
sa teoretic maxim de 2 GB/s nu face fa noilor cipuri video aprute. n aceste
condiii, 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 si 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 urmtorii 10 ani,
deci nu este vorba despre un standard de tranziie. Din punct de vedere tehnic, PCI
Express este o magistral serial bidirecional (cu versiunile 1.0, 2.0 si 3.0), care
transfer informaiile sub form de pachete, aproape la fel cu o conexiune Ethernet.
Arhitectura PCI Express
Fiecare dintre cele dou conexiuni unidirecionale 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 generaii de magistral se bazeaz pe straturi (layer),
ca si cele utilizate de protocolului TCP/IP (vezi figura 4.33).
Fig. 4.33. Arhitectura PCI Express.
Nivelul fizic defineste specificaii electrice, mecanice, procedurale si
funcionale pentru activarea, meninerea si dezactivarea legturilor fizice ntre
sisteme si este alctuit 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 si menine conexiunile. Include mecanisme
pentru pregtirea conexiunii, citirea semnalelor, codarea 8b/10b, crearea de frame-uri
& pachete si transmiterea datelor pe conexiune.
Structura unui calculator
217
Nivelul legturilor de date este responsabil cu transmiterea corect a
datelor printr-o legtur fizic existent, ntre dou puncte conectate direct prin
aceast legtur fizic. Nivelul fizic nu poate realiza acest lucru, deoarece aici nu
se opereaz cu de date, ci numai cu bii si, mai exact, cu reprezentarea fizic a
acestora (niveluri de tensiune, intensitate a luminii etc.). Nivelul legturilor de date
se ocup cu adresarea fizic, topologia reelei, accesul la reea, detecia &
anunarea erorilor (CRC pe 32 de bii) si controlul fluxului fizic (flow control);
Nivelul transport este responsabil cu crearea pachetelor care vor fi
expediate si cu citirea pachetelor primite. Se ocup cu controlul fluxului de date si
cu managementul puterii consumate. Acest nivel ofer un serviciu de transport de
date izoleaz nivelurile superioare de orice specificiti legate de modul n care este
executat transportul datelor. Are un caracter redundant, realizat de ECRC (End-to-
end Cycling Redundancy Check), mecanism pe 32 bii cu rolul de a asigura
transportul ntre dou staii separate de una sau mai multe entiti. Desi toate
tranzaciile PCI Express sunt separate, unele nu necesit rspuns (avantaj).
Nivelul software (aplicaie) este situat cel mai aproape de utilizator, oferind
servicii de reea aplicaiilor utilizator. Nivelul aplicaie stabileste disponibilitatea
unui calculator cu care se doreste iniierea unei conexiuni, stabileste procedurile
care vor fi urmate n cazul unor erori si verific integritatea datelor.
PCI Express vs PCI
Lrgimea de band disponibil ntre dou puncte nu este partajat, astfel
nct, att la un singur periferic PCI Express ct si la trei, fiecare are la dispoziie
aceeasi lrgime de band. La nivelul cipsetului, magistrala PCI Express este
gestionat de un switch care gestioneaz conexiunile punct-la-punct, nainte de a
interaciona cu restul sistemului (vezi figura 4.34).
Fig. 4.34. Topologia de magistral partajat la PCI si topologia punct la punct la PCI Express.
Observaie. n cazul PCI Express, fiecare dispozitiv are o cale direct si
exclusiv ctre switch. Switch-ul analizeaz datele n funcie de prioritatea aplicaiilor.
Lrgimea mare de band reprezint o alt noutate adus de PCI Express. O
singur cale este capabil s transmit 250 MB/s n fiecare direcie simultan (500
MB/s pentru ambele direcii). PCI Express este alctuit din dou ci, asadar, poate
transmite 500 Mb/s pentru o singura direcie si 1000 MB/s pentru ambele direcii.
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.
ARHITECTURA SISTEMELOR DE CALCUL
218
Din punct de vedere al compatibilitii, productorii au gndit PCI Express
pentru a rmne compatibil din punct de vedere software cu toate sistemele de
operare si 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 rmne compatibil cu plcile PCI actuale nu ofer
suport simultan pentru AGP si 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 funciile hot plug si hot swap,
furnizeaz performane scalabile si caracteristici avansate, QoS (Quality of Service).
Comparativ cu PCI, PCI Express are semnale de legtur minime, iar ceasul
si adresarea informaiei sunt incluse n date. Figura 4.35 compar lrgimea de
band per pin la PCI, PCI-X, AGP8 si PCI Express.
Fig. 4.35. Comparaie a lrgimilor de band.
Exemple de arhitecturi PCI Express
Nenumrai factori duc la alegerea cardurilor PCI Express n funcie de
necesitile clientului, serverului sau a platformei portabile:
- carduri standard si cu profil mic: desktop, staii de lucru si servere;
- minicarduri: calculatoare portabile;
- ExpressCard: calculatoare portabile si desktop;
- Server I/O Module(SIOM).
Figura 4.36 exemplific implementarea PCI Express ntr-un sistem client. Iniial,
conexiunea PCI Express 16 nlocuieste slotul AGP dintre subsistemele grafice si
northbridge. O variant de PCI Express poate nlocui conexiunea dintre northbridgesi
southbridge, rezolvnd incompatibilitile dintre componente si nothbridge.
Figura 4.37 exemplific structura unui sistem portabil. La fel ca la sistemele
desktop, PCI Express nlocuieste placa AGP, fiind o alternativ la conexiunea
dintre nothbridge si southbridge. Magistrala PCI dintre northbridge si staia de
lucru poate migra, de asemenea, spre PCI Express. Un slot ExpressCard 1 care
foloseste 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 legtura dintre componente
si 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 urmtoarele avantaje:
- vitez mult mai mare pentru generaiile viitoare (10-Gps Ethernet);
- costuri mai mici mai multe sloturi si componente se pot conecta la
cipul sistemului;
- laten mic latena transmisiei dintre componente, CPU si memorie
poate fi redus, eliminnd puntea PCI-X.
ARHITECTURA SISTEMELOR DE CALCUL
220
Fig. 4.38. Exemplu de arhitectur server PCI Express.
4.3.10. Comparaii ntre magistrale
Figura 4.39 este o sintez de tip roadmap si arat evoluia n timp a vitezei
magistralelor, exprimat prin valoarea ratei de transfer (benzii), iar tabelul 4.2
prezint comparativ caracteristicile, parametrii si performanele ctorva dintre cele
mai rspndite standarde de magistrale seriale din ultimii ani.
Fig. 4.39. Evoluia ratei de transfer a magistralelor.
Structura unui calculator
221
Tabelul 4.2
Comparaie ntre magistrale
Nume
/rgime
de band
efectiv
(Mb/s)
Vitez
de
transfer
(MB/s)
Lungime
maxim
de cablu
(m)
Putere/
tensiune
necesare
(W/V)
Numr
de echipamente
per canal
SAS 3.000 375 8 - 4
eSATA 3.000 300 2 - 1 (15 cu multiplicator de port)
SATA 300 3.000 300 1 - 1 (15 cu multiplicator de port)
SATA 150 1.500 150 1 - 1
PATA 133 1.064 133 0,46 - 2
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 5 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 5 - 1 (punct-la-punct)
5. NI VELUL MI CROPROGRAMAT
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.
Funcionarea microprocesorului i a oricrui bloc dintr-un sistem cu
microprocesor necesit date i semnale de comandi control. Succesiunea
dorit a evenimentelor din sistem (care conduce la executarea unei sarcini
utile) se produce prin acionarea corect, secvenial, 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 legturii lor intime cu structura intern a fiecrui bloc nu se lucreaz direct
cu semnale simple ci cu grupuri ale lor care au un efect mai uor de sesizat
din exterior. Astfel de grupuri de semnale sunt numite instruciuni i ele
sunt caracteristice logicii programate.
Din cele menionate rezult c executarea unei instruciuni
presupune efectuarea ntr-o anumit ordine a unor pai elementari care se
numesc microoperaii i microinstruciuni. Primele procesoare executau
codul direct la nivel hardware. Execuia era destul de rapid (se accesa
direct nivelul 0 din nivelul 2), dar conceptul era lipsit de flexibilitate.
Aceasta se datora imposibilitii adugrii de instruciuni noi.
Fig. 5.1. Structur parial a nivelurilor unui calculator.
223
Practic s-a constatat c pentru execuia oricrei instruciuni din setul
microprocesorului se execut o succesiune bine definit de pai.
Microprogramarea este un concept care formeaz de fapt interfaa ntre
limbajul de asamblare i structurile fizice ale procesorului. Microinstruciunile
sunt practic semnalele de comand adresate de unitatea de control ctre unitatea
de execuie a procesorului. Apariia nivelului microprogramat presupune
asocierea fiecrei instruciuni cu o succesiune de microinstruciuni.
5.1. Exemplu de main microprogramat
n figura 5.2 se prezint structura unei maini microprogramate.
Fig. 5.2. Structura unei maini microprogramate de tip A (mA).
224
Notaiile folosite n figura 5.2:
- R1 R16: 16 registre generalede tip latch, fiecare de 16 bii, care
au funcii diferite, registre inaccesibile utilizatorului; ele sunt
utilizate doar de maina microprogramat. Fiecare registru poate
depune date pe magistralele A, B i poate fi ncrcat de pe
magistrala C.
- ALU: circuit logic combinaional care realizeaz patru operaii
aritmetice i logice selectate de F0 i F1. Cele patru operaii sunt
A+B, AB, A, nonA. La ieire mai sunt disponibili doi bii notai cu
N i Z. Semnificaia lor este:
rezultatul din ALU este negativ N = 1;
rezultatul ALU este zero Z = 1.
- registrul shift: este un circuit de deplasare a crui intrare este
legat la ieirea ALU i care poate executa urmtoarele operaii:
deplasare cu un bit la stnga/dreapta;
livrare direct la ieire a cuvntului aflat la intrare (stare
inactiv).
Aceste operaii 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 combinaional, iar
intrrile lui trebuie inute constante pe timpul unei operaii).
Registrele tampon sunt ncrcate prin liniile de comand L0 i L1.
Observaii:
Registrele tampon permit modificarea magistralelor A i B n
timpul unei operaii executate de ctre ALU. Rezult c pot avea
loc operaii 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 ncrcat cu date de pe
magistrala B n acelai timp cu efectuarea unei operaii de ctre
ALU. RDA este ncrcat de pe magistrala C atunci cnd se
activeaz semnalul M1. Semnalele M2 i M3 comand poziionarea
coninutului lui RDA pe magistrala de date (scriere n memorie) i
respectiv nregistrarea datelor de pe magistral n RDA (citire din
memorie). Datele ncrcate n RDA pot fi utilizate la o intrare a
unitii ALU prin semnalul de comand A0 care se aplic
multiplexorului.
225
5.2. Microinstruciunile
n exemplul prezentat anterior, microinstruciunile reprezint setul
de semnale care sunt primite de componentele unitii de execuie a mainii
microprogramate. n total sunt 61 de linii de comand, dispuse n nou
grupe funcionale, care execut comanda i controlul cii de date a mainii.
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 meniunile 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 spaiu);
- dou semnale de comand a ncrcrii registrelor tampon RTA i
RTB, notate n figur cu L0 i L1;
- dou semnale care selecteaz operaiile 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 operaiile de scriere/citire n/din memoria
principal;
- un semnal de comand pentru AMUX (A0).
Maina funcioneaz secvenial, fiind necesar un registru de
comand de 61 bii. Acest numr 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 bii pentru fiecare magistral. Semnalele se obin
apoi prin trei decodoare 4/16 care genereaz cele trei grupe de 16 semnale.
n felul acesta se economisesc 3 12 = 36 bii.
Procednd astfel, la fiecare pas trebuie ncrcat un registru. Situaia
nu este mereu avantajoas. De exemplu, este posibil executarea unei
operaii ALU doar pentru setarea semnalelor N i Z. De aceea se utilizeaz
un semnal suplimentar de validare a ncrcrii, VALC. Acesta ia valoarea 1
cnd valideaz ncrcarea 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 operaiei (citire/scriere din/n memorie). n acest fel se
economisesc nc 2 bii.
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
instruciuni. Rmn 61 36 2 2 + 1 = 22 bii suficieni pentru comanda
Fii de date a micromainii. n structura microinstruciunii vor intra astfel 22
bii de comand plus ali bii descrii n continuare.
5.2.1. Structura unei microinstruciuni
O microinstruciune cuprinde mai multe pUi, numite cmpuri,
fiecare cmp definind o funcie proprie. Reprezentarea din figura 5.3 arat
structura unei microinstruciuni.
1 2 2 2 1 1 1 1 1 4 4 4 8
A
M
U
X
C
O
N
D
*
A
L
U
D
E
P
L
R
D
A
R
A
D
R
D
W
R
V
A
L
C
C B A
A
D
D
R
*
Fig. 5.3. Structura unei microinstruciuni (cmpuri i numr de bii alocat); * neprezentat.
Rezult un total de 22 + 2 + 8 = 32 bii. Semnificaia acestor bii este:
- AMUX (1 bit) 0 intrare din RTA;
1 intrare din RDA.
- ALU (2 bii) 0 A+B;
1 AB;
2 A;
3 nonA.
- DEPL (2 bii) 0 fU deplasare;
1 deplasare la dreapta;
2 deplasare la stnga;
3 neutilizat.
- RDA (1 bit) indic ncrcarea RDA cu cuvntul de pe magistrala C;
- RAD (1 bit) indic ncrcarea RAD cu cuvntul din RTB;
- RD (1 bit) indic citirea din memoria central;
- WR (1 bit) indic scrierea n memoria central;
- VALC (1bit) autorizeaz ncrcarea registrelor generale:
0 interdicie;
1 validare.
- ncrcare/depunere de pe magistrala C/pe magistrala A sau B
(semnal pe 3 4 bii).
227
5.2.2. Execuia unei microinstruciuni
O instruciune cuprinde patru subcicluri de execuie (este folosit un
ceas cu patru faze):
1. ncrcarea microinstruciunii care trebuie executat ntr-un registru
particular denumit registru microinstruciuneRMI;
2. transferul coninutului registrelor selecionate pe magistralele A, B
i ncrcarea datelor n RTA i RTB;
3. realizarea operaiilor ALU i ale registrului shift; dac este necesar,
RAD este ncrcat de la ieirea registrului tampon B;
4. ncrcarea datelor de la ieirea registrului shift n registrul
selecionat i/sau n registrul RDA.
Pn acum s-a prezentat calea de date a mainii. n cele ce urmeaz
se va analiza blocul care genereaz semnalele de comand
(microinstruciunile) 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 numete memorie de comand
(exist ns diferene ntre memoria de program i cea de microprogram).
Memoria de microprogram este o memorie foarte rapid care conine
instruciuni microprogramate. Pentru majoritatea micromainilor, memoria
de microprogram este de tip read-only; exist i posibilitatea utilizrii
memoriei de tip read-write, ceea ce confer posibilitatea modificrii
dinamice a programului.
Fig. 5.5. Schema bloc a unitii de comand.
n exemplul anterior. microinstruciunile sunt de 32 de bii. Exist
256 de microinstruciuni, ceea ce necesit 8 bii de adres (aa se explic
cmpul ADDR de 8 bii n structura cmpurilor microinstruciunii). Cele
256 de microinstruciuni cer o memorie de 8192 bii (256 instruciuni 32
bii). Fiecare microinstruciune execut dou funcii:
- controleaz funcionarea cii de date;
- genereaz adresa pentru microinstruciunea urmtoare.
Aa cum s-a artat, formatul microinstruciunilor conine cmpuri de
control pentru fiecare resurs hardware a mainii.
Secveniatorul de microprogram primete de pe calea de date
starea curent a acesteia prin biii de stare (starea este dat de semnalele N i
Z). Secveniatorul de microprogram are rolul de a adresa urmtoarea
Control adres urmtoare
Adres microprogram
Secveniator de
microprogram
Memorie de
microprogram
Calea de date
Stare Control
229
microinstruciune, n funcie de starea cii de date i de biii de control ai
adresei urmtoare, care sunt dai la rndul lor de cmpurile COND i ADDR
din microinstruciune. Prin linia de adres a microprogramului se selecteaz
instruciunea care este depus pe intrarea de control a cii de date.
Astfel, semnificaia cmpului COND este urmtoarea:
COND (2 bii) 0 se execut urmtoarea microinstruciune;
1 salt la adresa specificat de ADDR dac N = 1;
2 salt la adresa specificat de ADDR dac Z = 1;
3 salt necondiionat la ADDR.
Schema general a micromainii este dat n figura 5.6. Notaiile
folosite sunt urmtoarele:
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 microsecveniator; el va alege pentru
microinstruciunea urmtoare fie adresa MCO + 1, fie
adresa specificat n ADDR.
Fig. 5.6. Schema bloc a unei micromaini (schema modificat pentru mA).
230
ncrcarea datelor de pe magistrala C ntr-unul din cele 16 registre
generale nu este posibil dect atunci cnd se ndeplinesc urmtoarele condiii:
1. VALC = 1;
2. subciclul curent de ceas este 4 (4 activ);
3. registrul este indicat de cmpul C al microinstruciunii.
5.2.4. Modul de lucru al microsecveniatorului
Ecuaia logic a microsecveniatorului este:
O(s) = DN + SZ + SD,
unde:
Os) = ieirea microsecveniatorului;
D = bitul dreapta al cmpului COND;
S = bitul stnga al cmpului COND;
N, Z = semnale de stare generate de ALU (negativ i zero).
Cnd Os) = 1 are loc schimbarea adresei microinstruciunii
urmtoare cu adresa dat de cmpul ADDR din instruciunea curent.
5.3. Microprogramarea orizontali vertical
Diferena major ntre aceste dou tehnici de microprogramare este
dat de modul de codare a microinstruciunii.
Se presupune c pentru comanda mainii mA sunt necesare n
semnale. Cnd microinstruciunile conin n bii, cte un bit pentru fiecare
microcomand, ele sunt denumite microinstruciuni n format orizontal.
Exemplu. n cazul micromainii mA s-ar fi putut renuna la
utilizarea decodoarelor pentru magistralele A, B sau C. De asemenea, ALU
ar fi putut s nu conin un decodor intern pentru cele patru operaii
executate. n acest caz, pentru fiecare ncrcare de pe/pe magistral ar fi fost
nevoie de 16 bii n loc de 4, iar la ALU ar fi fost nevoie de 4 bii n loc de 2
(vezi cmpul ALU n formatul de microinstruciune prezentat).
Deci la una din extremitile formatului microinstruciunilor se afl
formatul orizontal, n care fiecare bit semnific o microcomand. n
consecin, microinstruciunea conine muli bii.
La cealalt extremitate se afl formatul vertical, n care
microinstruciunile conin un numr mic de bii (<< n), ns cmpurile
microinstruciunii sunt puternic codate. Dac n microprogramarea orizontal
231
un microprogram necesit puine instruciuni cu muli bii, n programarea
vertical acelai microprogram necesit multe instruciuni cu puini bii.
n practic se ntlnesc formate mixte, cum este cel prezentat n
exemplul micromainii mA, situat ntre cele dou extremiti. Astfel, la
formatul prezentat se ntlnesc cmpuri asociate direct microcomenzilor (de
exemplu, RAD, RDA, AMUX, RD, WR), care au un efect imediat asupra
circuitelor micromainii. ns se ntlnesc, de asemenea, i cmpuri de bii
codate (de exemplu, ALU, A, B, C), care necesit utilizarea unui decodor
nainte de aplicarea pe circuitele corespunztoare.
5.3.1. Micromaina cu format vertical
Microinstruciunea vertical tipic conine un cmp numit codul
operaiei (care poate fi vzut ca o generalizare a cmpului ALU) i mai
multe cmpuri de operanzi, de exemplu: A, B, C. Pentru a clarifica distincia
ntre microprogramul orizontal i cel vertical, se va revizui micromaina
mA, utiliznd de aceast dat microinstruciuni verticale. Fiecare nou
microinstruciune va cuprinde trei cmpuri de 4 bii, deci un total de 12 bii
fa de 32 de bii la versiunea precedent.
Primul cmp este codul operaiei (COP) care arat ce trebuie s fac
microinstruciunea. Celelalte cmpuri sunt registrele R1 i R2.
Microinstruciunile de salt regrupeaz registrele R
1
i R
2
pentru a forma un
cmp de 8 bii (fie acesta R).
n tabelul 5.1 este prezentat codul operaiei (fiecare tip de
microinstruciune).
Se observ c fiecare microinstruciune nu realizeaz dect o singur
operaie i c cei 12 bii ai microinstruciunii sunt suficieni pentru a
specifica o operaie la un moment dat. Corespunztor, maina se modifici
rezult micromaina mB, n conformitate cu schema din figura 5.7.
Se constat c la cele dou scheme cile de date sunt identice. n
schimb, la micromaina 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 conine 16 pori I care permit cmpului R
1
, dup
traversarea decodorului R
1
, s comande golirea unui registru pe magistrala
A i ncrcarea sa pe magistrala C. Desigur c aceste operaii nu pot fi
simultane. De aici necesitatea porilor I care determin n timpul
subciclului 4 ncrcarea unui registru cnd aceast operaie este validat de
decodorul COP.
232
Tabelul 5.1
Codul operaiei pentru microinstruciunile n format vertical
Binar Simbol Descriere Operaie
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 ncrcare 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 necondiionat go to R
Observaie: R = l6R1 + R2.
Blocul NZ este un registru de 2 bii care nregistreaz semnalele N i
Z la ieirea ALU, cnd aceast nregistrare este ordonat de decodor. Acest
artificiu este utilizat deoarece pe micromaina B nu este realizat dect o
singur operaie n timpul unei microinstruciuni. Astfel, testarea i
utilizarea biilor N i Z se face doar n microinstruciunea urmtoare, deci
este necesar o pstrare a lor n registru.
Decodorul COP reprezint elementul central al micromainii.
Acesta analizeaz codul operaiei i precizeaz aciunile care se vor
ntreprinde. Decodorul COP distribuie 13 microcomenzi distincte ctre
blocul I, microsecveniator, registrul NZ, AMUX, ALU, circuitul shift,
RAD i RDA. Pentru fiecare din cele 16 coduri de operaii posibile trebuie
determinat care dintre cele 13 microcomenzi sunt active (1) i care sunt n
repaus (0).
233
Fig. 5.7. Structura micromainii cu format vertical (mB).
Rezult astfel un tablou 16 13, prezentat n tabelul 5.2.
Dac se numeroteaz cei patru bii care codeaz microinstruciunea
cu A, B, C i D, atunci se pot obine, dup minimizare, urmtoarele funcii
logice (ideal pentru implementare este un PLA cu 4 intrri i 13 ieiri):
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
Corespondena microinstruciuni-microcomenzi la micromaina cu format vertical
in-
struc-
iuni

c
o
m
e
n
z
i
A
L
U
A
A
L
U
B
S
H
I
F
T
A
S
H
I
F
T
B
N
Z
A
M
U
X

I
R
A
D
R
D
A
R
D
W
R
M
S
A
M
S
B
0 ADD + +
1 AND + + +
2 MOVE + + +
3 COMPL + + + +
4 SHIFTL + + + +
5 SHIFTR + + + +
6 GETRDA + + + +
7 TEST + +
8 BEGRD + + +
9 BEGWR + + + +
10 CONRD + +
11 CONWR + +
12 LIBER
13 NJUMP + +
14 ZJUMP + +
15 UJUMP + + +
235
5.3.2. Comparaie ntre cele dou microprograme
Micromaina mA are un format mixt, coninnd att cmpuri
verticale ct i cmpuri orizontale, pe cnd micromaina mB are un format
vertical.
Exemplu. n cazul n care microprogramul ar fi utilizat pentru
interpretarea unui numr de 23 de tipuri de macroinstruciuni, atunci
microprogramul micromainii mA ar trebui s aib 79 microinstruciuni a
cte 32 bii, rezultnd 2528 de bii n memoria de microprogram. n schimb,
microprogramul micromainii mB conine 160 microinstruciuni a 12 bii,
rezultnd n total 1920 de bii. Se obine astfel un ctig de 24% n
capacitate de memorie, deci o diminuare a costului de implementare pentru
al doilea caz (micromaina mB cu structur vertical).
Inconvenientul major al formatului vertical este dat de numrul
important de microinstruciuni care trebuie executate pentru interpretarea
unei macroinstruciuni. Aceasta se traduce ntr-o diminuare net a vitezei
micromainii. Din acest motiv, calculatoarele mari i rapide utilizeaz
microprogramarea orizontal. n schimb, mainile mai modeste utilizeaz
microprogramarea vertical pentru simplitate i pre de cost mai mic.
ntr-adevr, microprogramarea vertical permite scrierea uoar a
microprogramului, deoarece fiecare linie de microprogram reprezint o
singur operaie. Microprogramul este mult mai lizibil dect la
microprogramarea orizontal, unde o microinstruciune reprezint operaii
multiple.
n ultimul timp, cnd competiia dintre arhitecturile RISC i CISC a
fost eliminat, se poate spune acelai lucru i despre formatele vertical i
orizontal pentru microinstruciuni.
5.3.3. Analiza comparativ a sistemelor microprogramate
Microcod vs VLI W (Very Long I nstruction Word) i RI SC
Procesoarele proiectate propice, microcodate puternic cu instruciuni
complexe au luat natere la nceputul anilor 1960 i au continuat pn la
mijlocul anilor 1980. La acel punct, filozofia proiectrii RISC-ului a nceput
V devin mai proeminent. Aceasta a inclus punctele:
- Analiz arat c instruciunile complexe sunt folosite rar, ntruct
resursele mainilor necesare lor sunt risipite foarte mult.
- Programarea s-a ndeprtat foarte mult de nivelul de asamblare, deci
nu se mai merit s furnizezi instruciuni complexe din motive de
productivitate.
236
- Resursele mainilor necesare pentru instruciunile complexe, rar
folosite, sunt utilizate mai bine pentru accelerarea performanei
instruciunilor simple (folosite n mod obinuit).
- Instruciunile complexe microcodate, care necesit multe i diverse
cicluri ceas, sunt dificil de actualizat pentru creterea performanei.
- Seturile de instruciuni simple permit execuii directe ale hardware-
ului, evitnd penalizarea performanei a execuiei microcodate.
Ar trebui menionat c exist la fel de bine i puncte-contor:
- Instruciunile complexe din implementrile dificil microcodate pot
V nu ia multe extra-resurse ale mainilor (cu excepia spaiului
microcodului); de exemplu, aceeai ALU este utilizat des pentru a
calcula adrese efective precum i s calculeze rezultatele operanzilor
actuali.
- Instruciunile non-RISC, care implic operanzi direci de memorie,
sunt folosite frecvent de ctre compilatorii moderni, chiar i stivele
de operaii aritmetice (ex. rezultatul memoriei) sunt de obicei
ntrebuinate. Dei asemenea operaii de memorie, de multe ori cu
decodri cu lungimi variate, sunt mai greu de actualizat, este pe
deplin fezabil, exemplificndu-se n mod limpede prin Intel 486,
Cyrix 6x86 etc.
- Instruciunile non-RISC ndeplinesc, n mod firesc, mai mult munc
pe instruciune (n medie) i de asemenea de obicei sunt extrem de
codate; aa c permit dimensiuni exterioare mai mici ale aceluiai
program, iar astfel o utilizare mai bun a memoriilor cache limitate.
- Implementrile CISC (Complex Instruction Set Computer) moderne
cel mai remarcabil x86 ndeplinesc cele mai multe instruciuni i
toate modurile de adresare n hardware; microcodul este nc
folosit, pentru cteva instruciuni 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
instruciune (ct timp este n cache) ntr-un singur ciclu. Acesta este foarte
similar modului n care CPU-urile cu microcod execut o microinstruciune
pe ciclu. Procesoarele VLIW au instruciuni care se comport similar
microcodului orizontal, cu toate c nu au un asemenea control
microgranular asupra hardware-ului precum asigur microcodul.
Instruciunile RISC sunt uneori similare limitatului microcod vertical.
237
5.4. Nanoprogramarea
Pn acum, discutnd despre microprograme, s-a presupus existena
unei memorii principale (care conine instruciunile nivelului 2) i a unei
memorii de comand (care conine microprogramul).
O a treia memorie, denumit nanomemoria, permite n unele cazuri
o asociere optim ntre microprogramul orizontal i cel vertical Astfel,
nanoprogramarea corespunde unei optimizri statistice a microprogramului,
n cazul n care un set de instruciuni este mai des solicitat. n figura 5.8 este
reprezentat (prin comparaie cu microprogramarea) conceptul de
nanoprogramare.
n cazul a), microprogramul conine n microinstruciuni a cte wbii,
rezultnd capacitatea unei memorii de comand de nwbii. Se presupune c
o analiz detaliat a microprogramului arat c dintre cele 2
w
posibiliti de
reprezentare sunt utilizate doar m<< n instruciuni.
n cazul b) s-a construit o nanomemorie de mcuvinte a cte wbii
care conine cele m microinstruciuni mai des utilizate. Atunci fiecare
microinstruciune a microprogramului original poate fi nlocuit n memoria
de comand prin adresa cuvntului din nanomemorie care conine
nanoinstruciunea corespunztoare, rezultnd limea cuvntului n memoria
de comand de log
2
mbii.
w log
2
m
n
w
m
a) b)
Fig. 5.8. a) Microprogramare convenional; b) microprogramare i nanoprogramare.
Exemplu. Fie un microprogram de nw= 4096 100 bii cu m= 128
de instruciuni diferite folosite mai frecvent. Rezult o nanomemorie avnd
nanoprogram
micro-
program
microprogram
238
mw= 128 100 bii i o memorie de comand de n log
2
m= 4096 7 bii.
Ctigul fa de microprogramarea convenional este de:
(4096 100) (4096 7) (128 100) = 368 128 bii.
Economia de memorie este realizat n contextul unei reduceri
sensibile de vitez. Datorit faptului c un ciclu de extragere a
microinstruciunii necesit dou accese la memorie (memoria de comandi
nanomemorie), maina nanoprogramat este mai lent dect maina
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. Uniti de execuie 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. Unitile de
execuie integrate s-au comercializat n asociaie cu unitile de comand
corespunztoare i cu o serie de circuite adiionale, formnd ceea ce se cheam
microprocesoare pe trane de bii, microprocesoare bit-slice, microprocesoare
multi-chip etc.
Printre cele mai rspndite familii de microprocesoare bit-slices-au aflat i
cele produse de compania Advanced Micro Devices, sub numele de AMD 2900.
Unitatea de execuie AMD 2901 este organizat pe trane de 4 bii/circuit i este
prevzut cu elementele necesare cuplrii n cascad. Semnalele de comand se
aplic sub forma unor vectori binari la terminalele circuitului, fiind, de regul,
preluate sub controlul unui circuit micro-secveniator integrat (AMD 2909, 2911)
de la o memorie cu coninut permanent.
In cele ce urmeaza va fi prezentata unitatea de executie AMD 2901 sub
aspect structural i functional.
5.5.2. Unitatea de execuie 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 micro-
secventiator 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
Microcod Sursa
Mnemonica
I
2
I
1
I
0
Codul
octal
R S
AQ
AB
ZQ
ZB
ZA
DA
DQ
DZ
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0
1
2
3
4
5
6
7
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
I
8:6
I
5:3
I
2:0
Destinatie UAL Functie UAL Sursa UAL
8 7 6 5 4 3 2 1 0
Fig. 5.10. Structura vectorului de comanda (Microcodul I
8: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 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
I
8
I
7
I
6
I
2
I
1
I
0
C
n
I
5
I
4
I
3
A
3
A
2
A
1
A
0
B
3
B
2
B
1
B
0
C
3
C
2
C
1
C
0
M
U
X
1
Selectie
destinatie
M
U
X
2
Selectie
sursa
Operatie
UAL
Adresa
A
Adresa
B
Adresa
C
Fig. 5.11. Cuvntul de comand al unitii de execuie.
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. NI VELUL SI STEMULUI DE OPERARE
Acest nivel are un caracter hibrid, cea mai mare parte a instruciunilor care
definesc limbajul fiind de tip masin. Exist si instruciuni specifice, care necesit
interpretare pentru a fi trecute pe nivelul 2.
Nivelul sistemului de exploatare are sarcini particulare n ceea ce priveste
gestionarea memoriei (lucrul cu memoria virtual prin conceptele de paginare si
segmentare) si organizarea execuiei n paralel a mai multor programe. Att nivelul
microprogramat ct si nivelul sistemului de operare (exploatare) sunt necesare
pentru interpretarea nivelurilor inferioare. Acestea sunt scrise de specialisti si sunt
orientate ctre numeric. ncepnd cu nivelul imediat superior (limbajul de
asamblare) apare orientarea ctre 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 interschimbrii proceselor
(transferul blocurilor ntre memoria intern si cea extern). Tehnica paginrii este
larg folosit si 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 distincia ntre capacitatea de adresare fizic a
sistemului care defineste un spaiu de memorie (denumit memorie virtual) si
capacitatea de memorie instalat n sistem (denumit memorie fizic sau real).
Exemplu. Fie un sistem cu 16 linii (64 KB) si o memorie instalat de 4
linii (fig. 6.1).
n prezent, denumirea de memorie virtual se foloseste cu dou accepiuni:
a) spaiu virtual care poate fi accesat (iniial);
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 conine 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 instruciune din pagina urmtoare,
sistemul de gestiune al memoriei virtuale(care face parte din sistemul de operare)
execut urmtoarele operaii:
1. salveaz coninutul memoriei periferice n memoria secundar;
2. localizeaz pagina respectiv n memoria secundar;
3. ncarc aceast pagin n MP;
4. asociaz adreselor absolute adresa de memorie fizic de la 0 la 4095;
5. continu execuia programului.
Fig. 6.1. Exemplu de paginare.
Observaie. Spre deosebire de procesul de segmentare, paginarea este transparent
programatorului, fiind realizat de sistemul de operare.
Memorie fizici memorie virtual (fig. 6.2).
Accepiunile termenului de memorie fizic sunt urmtoarele:
1. linii fizice de adresare pe care le are procesorul n afar;
2. spaiu de memorie fizic instalat (existent) n sistemul de calcul.
Accepiunile termenului de memorie virtual sunt urmtoarele:
1. prima definiie de la memoria fizic;
2. spaiu de memorie pe care l creeaz sistemul de operare si care conine
un model al memoriei si al adreselor de memorie pe care le are programul
la dispoziie (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 spaii
libere n zona de memorie fizic, destinate zonelor de cod sau de date cu
care programul lucreaz la momentul respectiv.
0
4096
8192
12287
65536
0
15
spaiul virtual
o pagin de 4 KB
0
4095
spaiul fizic
246
Tabelul 6.1
Comparaie ntre capacitile 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
Fig. 6.2. Legtura ntre memoria fizic si memoria virtual.
6.1.1 Realizarea unei paginri 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 spaiu n pagini de cte 4 KB (blocuri), rezultnd
astfel 16 pagini. Se mai presupune c memoria fizic instalat este de 32 KB.
Program care
utilizeaz
memoria
virtual
Disc care
stocheaz
pri din memoria
virtual
Memoria
virtual
Memoria real care pstreaz pri din memoria virtual
247
Fig. 6.3. Exemplu de paginare simpl.
Adresa fizic este pe 16 bii si dac se urmreste folosirea memoriei paginate
se poate considera c cei mai semnificativi 4 bii reprezint numrul paginii, iar cei
mai puin semnificativi 12 bii reprezint deplasamentul n cadrul paginii.
Pentru a realiza gestiunea memoriei fizice instalate se va folosi un tabel de
pagini cu 16 intrri a cte 4 bii fiecare (fig. 6.4.). Din cei 4 bii, un bit va indica
dac pagina fizic adresabil se afl sau nu n memoria principal, restul de 3 bii
(acest numr este dat de fapt de numrul de bii cu care poate fi codificat numrul
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.
1 1 1 0
Fig. 6.4. Gestiunea memoriei fizice folosind tabelul de pagini.
0
4096
8192
61440
65536
pagina 0
pagina 1
pagina 15
pagina 0
pagina 1
pagina 5
pagina 7
0
4096
8192
28672
32678
64 KB (16 linii)
memoria fizic
adresabil
32 KB
memoria fizic
instalat
4 KB
4 KB
0
1
2
3
15
memorie fizic adresabil deplasament
12 4
0 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0
1 1 0 0 0 0 0 0 0 0 1 0 1 1 0
248
Avantajele paginrii pot fi rezumate astfel:
- mrimea 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 informaie;
- mecanismul paginrii si, implicit, ntreaga tehnic de a schimba continuu
blocuri fixe de informaii ntre memoria intern si cea extern nu sunt
vizibile utilizatorului.
n concluzie, mecanismul paginrii are urmtoarele elemente eseniale:
- 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 si tabelele) sunt tratate
la rndul lor ca niste pagini speciale; deci toate au mrimea fix de 4 KB.
Se pstreaz astfel principiul coerenei informaiei n memorie (ca si n
cazul segmentelor);
- att directorul ct si tabelele de pagini au structura uniform, fiind
formate din 1 K elemente a cte 4 octei. Aici se gseste adresa bazei
tabelei si respectiv a paginii selectate;
- orice adres a bazei unei tabele sau a unei pagini este dat pe un numr de
20 bii, acestia constituind partea mai semnificativ a adresei fizice
vizate. Blocurile n memorie sunt aliniate din 4 KB n 4 KB, deci automat
cei mai puin semnificativi 12 bii 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 foloseste memoria virtual, sistemul de operare trebuie s
stabileasc urmtoarele politici de gestionare:
- politica fetch: stabileste cnd o pagin trebuie adus n memorie;
- paginarea la cerere: aduce o pagin n memorie doar ca rezultat al
excepiei page fault;
- pre-paginarea: ncearc s anticipeze sabloane de utilizare a memoriei n
viitor si s aduc paginile n memorie nainte ca cererile de accesare s
fie emise. Scopul pre-paginrii este de a reduce consecinele operaiilor
de citire/scriere, programnd ca acestea s se desfsoare n paralel cu
procesarea desfsurat de unitatea central.
- politica de plasament: unde s fie puse paginile sau segmentele aduse n
memorie. Aceast politic este folosit n cazul segmentelor fr
paginare. n caz contrar, o pagin nu conteaz unde este plasat
(excepia 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 excepie 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 aciune atunci cnd sistemul de operare
primeste semnalul de page fault, prin care se nelege 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 aplicaia. Deoarece lucrul cu discul este lent, este de preferat s se
realizeze ct mai puine operaii cu acesta. Cu ct un algoritm pstreaz 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 apariie a
excepiei page fault ct mai mic. Situaia 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, urmtoarea opiune 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 folosii pentru a stabili ce pagin trebuie nlocuit? Civa dintre acesti factori
sunt urmtorii:
- durata perioadei n care o pagin a fost situat n memorie: principiul
localitii 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: acelasi principiu al localitii
temporale enun faptul c probabilitatea ca o pagin care a fost
apelat de curnd s fie apelat din nou n viitorul apropiat este mare;
- frecvena cu care a fost apelat o pagin: acest factor nu este la fel de
important ca cei doi descrisi mai sus, dar exist totusi 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 toi factorii
sunt egali, se alege a fi nlocuit o pagin care nu a fost modificat.
Acest fapt nu va cauza o operaie 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 situaia ca pagini din kernel sau din
buffer-ele I/O sa fie evacuate.
Pasii care sunt parcursi pentru tratarea excepiei page fault sunt:
1. aplicaia acceseaz o pagin care nu este prezent n memoria virtual;
2. apare excepia page fault;
3. este aleas o pagin goal;
4. dac nu este gsita nicio pagin goal, este aleas una care urmeaz a
fi evacuat din memoria virtual, aceast alegere fiind fcut 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 spaiului de adrese al aplicaiei;
8. este reluat execuia aplicaiei.
Algoritmii de nlocuire pot fi locali sau globali. Cnd apare semnalul de
page fault, algoritmii de nlocuire locali selecteaz pagini care aparin aceluiasi
proces, n timp ce algoritmii globali pot selecta orice pagin din memorie.
Algoritmul optim de nlocuire (Belady)
Algoritmul optim de nlocuire, cunoscut si sub numele de algoritmul lui
Belady, este un algoritm de nlocuire ce funcioneaz dup urmtorul principiul:
cnd o pagin trebuie copiat de pe disc n memorie, sistemul de operare mut
coninutul paginii care va fi folosit n proces cel mai trziu, din memorie pe disc,
Icndu-i loc noii pagini. De exemplu, o pagin care nu va fi folosit n
urmtoarele 10 secunde va fi mutat din memorie pe disc naintea unei pagini care
va fi folosit n urmtoarele 2 secunde.
Acest algoritm este unul teoretic, el neputnd fi implementat pe sistemele
de operare deoarece nu se poate sti 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 funcioneaz pe urmtorul
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 biii 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-I n First-Out (FI FO)
Algoritmul de nlocuire FIFO (primul intrat, primul iesit) elimin pagina
care a fost ncrcat prima, indiferent de momentul n care aceast pagin a fost
referit ultima dat. Fiecare pagin are un contor care este iniial egal cu 0 pentru
fiecare cadru de pagin. Pagina care tocmai a fost adus n memorie va avea
valoarea contorului egal mereu cu 0, urmtoarea 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) s.a.m.d. Practic, se creeaz un fenomen de
mbtrnire a paginilor, cea mai tnr 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 performane slabe comparativ
cu ali algoritmi. Din aceast cauz este rar folosit. Un exemplu de sistem de
operare care foloseste algoritmul FIFO este VAX/VMS.
Second Chance (SC)
Second Chance (a doua sans) este un algoritm de nlocuire a paginilor
inspirat din FIFO, dar care are performane mult mai bune dect acesta din urm,
diferena de pre fiind una foarte mic. Funcioneaz verificnd pagina cu contorul
avnd cea mai mare valoare (cea mai btrn pagin), dar n loc de a o extrage ca
n algoritmul FIFO, Second Chancei acord o a doua sans paginii verificnd dac
are sau nu fixat bitul de referin. Dac acesta nu este setat, algoritmul funcioneaz
ca si 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 si cum ar fi o pagin nou.
Clock (C)
Clock este un algoritm cu performane mai bune dect Second Change,
care merge tot pe principiul FIFO. La fel ca si Second Change, Clock foloseste bii
de referin pentru a da o a doua sans paginii. mbuntirea adus de Clock
const n faptul c nu mai este nevoit s mping paginile n coad, algoritmul
folosind un pointer (indicator) si un sistem circulat al paginilor n loc de o coad.
Pointer-ul arat care pagin este cea mai veche si poate fi nlocuit
Least Recently Used (LRU)
Algoritmul Least Recently Used (LRU) cel mai puin frecvent utilizat
pagin, desi similar n terminologie cu NRU, difer prin faptul c LRU urmreste
paginile ntr-o perioad scurt de timp, n timp ce NRU urmreste paginile ntr-un
interval de ceas. LRU funcioneaz pe ideea c paginile folosite cel mai mult n
trecutul apropiat vor fi cel mai probabil folosite si n viitorul apropiat, n cadrul
urmtoarelor ctorva instruciuni. Desi n teorie LRU se descurc foarte bine,
acesta este foarte scump de implementat. Exist cteva implementri ale LRU care
ncearc s reduc costul acestuia dar s menin n acelasi timp performanele
ridicate.
Cea mai costisitoare variant a LRU este cea de tip coad. Aceasta implic
realizarea unei liste cu toate paginile din memorie. La sfrsitul listei se afl cea mai
puin utilizat recent pagin iar n vrful listei se afl cea mai des recent utilizat
pagin. Intrrile din list trebuie rearanjate la fiecare accesare a listei, ceea ce face
aceast metod foarte lent.
O alt metod are nevoie de suport hardware si funcioneaz pe baza unui
counter (numrtor). De fiecare dat cnd o pagin este accesat primeste o
valoarea egal cu a counter-ului la momentul accesrii. Cnd o pagin trebuie
mutat sistemul de operare selecteaz pagina cu counter-ul cel mai mic si o mut.
Costul implementrii acestei metode este unul foarte ridicat datorit tehnologiei
necesare realizrii counter-ului.
252
Din cauza costurilor mari se folosesc de obicei algoritmii similari cu LRU,
care ofer o implementare mai ieftin.
n unele situaii, LRU esueaz 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 implementrilor LRU
ncearc s detecteze aceste cicluri si s le trateze corespunztor cu algoritmul
MRU.
Variante ale LRU sunt:
- LRU-K, cunoscut si sub numele de LRU-2, LRU-1 fiind identic cu LRU;
- ARC.
Random (R)
Algoritmul de tip Randomnlocuieste aleator o pagin din memorie cu una
de pe disc. Acest procedeu elimin costurile suplimentare legate de realizarea unui
sistem de monitorizare a referinelor ctre o pagin. De obicei, are rezultate mai
bune dect FIFO si n cazul ciclurilor chiar rezultate mai bune dect LRU, desi n
general n practic LRU se descurc mai bine. Sistemul de operare OS/390
construit pentru mainframe-urile de la IBM foloseste, de exemplu, algoritmul LRU,
iar cnd performanele acestuia scad trece la algoritmul Random.
Not Frequently Used (NFU)
Algoritmul NFU (pagini nefolosite frecvent) genereaz mai puine semnale
de tip eroare de pagin (page fault) dect algoritmul LRU cnd tabelul de pagini
conine muli pointer-i cu valori nule. Acest algoritm foloseste un counter
(numrtor), fiecare pagin avnd un astfel de counter de sine stttor. 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
numrtorului.
Aging (A)
Algoritmul Aging(mbtrnire) este o versiune mbuntit a NFU, avnd
o vitez de lucru mult mai mare. Modificrile care l fac s in cont si de factorul
interval de timp. n loc ca doar s incrementeze contoarele paginilor apelate,
nefcnd nici o discriminare din punct de vedere al intervalului de timp n care
numrul de apeluri a contribuit la contorul de frecven, contorul de apel al unei
pagini este nti deplasat ctre dreapta (mprit la 2), nainte ca bitul de referin s
fie adugat n partea stng a numrului binar. De exemplu, dac o pagin are biii
de referin: 1, 0, 0, 1, 1, 0 cu 6 perioade de ceas nainte, contorul de referin va
arta n modul urmtor: 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 puin, 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 sczut.
Observaie. Algoritmul Aging difer de algoritmul LRU, n sensul n care
poate ine evidena apelurilor n ultimele 16/32/64 intervale de timp (depinznd de
numrul de bii 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 crei pagini trebuie nlocuite.
Asadar, algoritmul Aging poate oferi performane 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 funcie
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 funcia w(k,t) este
dimensiunea acestui set la momentul de timp t.
Comparaie ntre algoritmi
n figura 6.6 este reprezentat un grafic care red comparativ performana
(raportat la numrul de excepii page fault aprute la 1000 de referine) n funcie
de numrul de cadre apelate, pentru 4 dintre algoritmi: FIFO, Clock, optim si LRU.
Fig. 6.6. Comparaie ntre algoritmi.
254
6.2 Conceptul de segmentare
Fie, de exemplu, un compilator care poate avea mai multe tabele,
construite pe msur ce decurge compilarea, incluznd:
- tabela de simboluri, coninnd numele si atributele variabilelor;
- textul surs, memorat pentru tiprirea unui listing;
- o tabel cu toate constantele ntregi si n virgul mobil folosite;
- arborele de analiz sintactic a programului;
- stiva folosit pentru apelurile de funcii ale compilatorului.
Se analizeaz ce se ntmpl dac un program are un numr deosebit de
mare de variabile. Poriunea din spaiul de adrese alocat pentru tabela de
simboluri se va umple, chiar dac mai este suficient spaiu n celelalte tabele.
Compilatorul ar putea, fireste, s afiseze un mesaj prin care s anune
imposibilitatea continurii compilrii din cauza numrului mare de variabile, lucru
care nu este corect atunci cnd mai exist spaiu nefolosit n celelalte tabele.
O soluie imediat este de a furniza mai multe spaii de adrese
independente, numite segmente. Fiecare segment const dintr-o secven liniar de
adrese, de la valoarea 0 la valoarea maxim. Lungimea fiecrui segment poate fi
orict de mare ntre 0 si valoarea maxim. Segmente diferite pot s aib, si, de
regul, au lungimi diferite. Mai mult chiar, lungimea unui segment se poate
modifica n timpul execuiei. Lungimea unui segment de stiv poate creste ori de
cte ori se pune ceva n stiv si poate scdea ori de cte ori se ia ceva din stiv.
Deoarece fiecare segment reprezint un spaiu de adrese separat, segmente
diferite vor creste si vor scdea independent, fr s se influeneze reciproc. Dac o
stiv dintr-un anumit segment are nevoie de un spaiu suplimentar pentru a creste,
l poate avea, neexistnd nimic peste care s se suprapun. Evident, un segment se
poate umple, dar deoarece segmentele sunt de obicei mari, aceast situaie 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
numr de segment si o adres n cadrul segmentului.
Un segment este, deci, o entitate logic unic de care programatorul este
constient si pe care o foloseste ca atare. Un segment poate conine:
- procedur,
- un vector,
- o stiv,
- o colecie de variabile scalare.
Observaie. n general, un segment nu conine elemente de tip diferit.
Segmentarea permite si partajarea de date sau cod ntre diferite programe.
Dac un calculator are mai multe programe care ruleaz n paralel si 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 protecie:
255
- un segment procedur poate fi marcat ca accesibil doar pentru execuie,
interzicnd accesul pentru citirea din sau scrierea n el;
- un segment care conine un vector de numere n virgul mobil poate fi
marcat ca accesibil pentru citire/scriere, dar nu pentru execuie, orice
ncercare de a fi executat fiind interceptat (o astfel de protecie 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 funcioneaz cu un spaiu 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
adresen care se afl zone ce conin descriptorii segmentului.
Memoria virtual este gestionat cu ajutorul a dou tabele:
1. LDT (Local Descriptor Table) de 8 K intrri fiecare;
2. GDT (Global Descriptor Table).
Fiecare program are propriul su tabel LDT, n timp ce tabelul GDT este
utilizat n comun de toate programele prin intermediul sistemului de operare.
LDT descrie segmentele locale ale fiecrui program, cum ar fi cele de cod,
date, stiv etc., n timp ce GDT descrie segmentele utilizate de sistemul de operare.
Registrul segment obisnuit este nlocuit n acest caz de un registru selector
pe 16 bii, care conine urmtoarele informaii (fig. 6.7).
Fig. 6.7. Informaiile coninute n registrul selector.
Descriptorul este format din 4 octei (fig. 6.8).
Fig. 6.8. Structura descriptorului.
index 0/1
13 1 2
numrul de intrri ntr-unul din
tablourile GDT si LDT
GDT
sau
LDT
0 3 nivelul de
protecie al
segmentului
respectiv
32 bii
adresa de baz mrime adresa de
segment 24 31 G D 0 X segment 16 19 P Pr Tip baz 16 23
adresa de baz segment 0 15 mrimea segmentului 0 15
256
Semnificaiile notaiilor folosite sunt:
- G = bit care indic dac mrimea segmentului este dat n octei sau n pagini:
G = 0 fr paginare, mrimea este dat n octei si rezult
dimensiunea maxim de 8 MB;
G = 1 mrimea este dat n pagini de cte 4 octei si rezult
dimensiunea maxim de 4 MB;
- D = indicator al tipului de cuvinte cu care se lucreaz n interiorul segmentului:
D = 0 cuvinte de 16 bii;
D = 1 cuvinte de 32 bii;
- P = bit care indic prezena n memoria principal (MP):
P = 0 segmentul nu se gseste n MP;
P = 1 segmentul se gseste n MP;
- Pr = 2 bii care indic nivelul de prioritate n execuie al programului din
care face parte segmentul (ntre 0 si 3);
- Tip = 5 bii care indic tipul segmentului (cod, date, stiv, extra segment
etc.) si nivelul su de protecie n modul protejat.
Acest tabel de descriptori foloseste la obinerea adresei fizice (fig. 6.9),
respectnd urmtorul algoritm:
1. se pleac de la registrul selector si se ajunge ntr-unul din tabelele unde
gsesc descriptorii de segment (care joac rolul tabelei de paginare):
adres, mrime si alte cmpuri;
2. folosind aceast informaie, sistemul de operare utilizeaz o zon MSB
pentru adres la care adaug deplasamentul din program;
3. rezult 32 de bii (o adres liniar folosit ca adres fizic).
Fig. 6.9. Utilizarea tabelului de descriptori n obinerea 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 foloseste o schem de memorie cu segmentare pur;
Observaie. Segmentele se pot suprapune spaiul 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.
adresa liniar 32 bii
Selector
Adresa de baz
Mrimea
Alte
cmpuri
MSB LSB
Deplasament
LDT
(GDT)
257
Fig. 6.10. Separarea nivelurilor de tabele.
b) dac exist paginare, adresa liniar este folosit pentru tabelele de
paginare (nc o treapt) si de abia apoi ajung la adresa fizic. Asadar, dac exist
paginare adresa liniar este interpretat ca adres virtual (adres din spaiul fizic
adresabil) si 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 si urmtoarele cuprinde dou niveluri de
tabelepentru a reduce din aceste tabele.
Observaie. Pot exista 1024 de tabele de tip Page.
Nivelurile de protecie (03) sunt reprezentate n figura 6.11.
Fig. 6.11. Nivelurile de protecie.
1024
linii
1024
linii
0/1
0/1
12 10 10
Dir Page Deplasament
MSB Deplasament
Adresa de
intrare n
tabelul
Page
258
Dac toate registrele selector trimit ctre un acelasi descriptor (aflat n
LDT sau n GDT) cu adresa de baz 0 si mrimea maxim (1 M sau 4 G), se va
obine un sistem numit cu paginare pur, care face adresare liniar pe 32 de bii.
n concluzie, procesoarele Intel ncepnd cu 80386 asigur trei scheme de
folosire a memoriei:
1. cu segmentare pur;
2. cu paginare pur;
3. superpoziie ntre segmentare si paginare (paginare segmentat).
Exemplu. Paginarea segmentelor foloseste avantajul eliminrii fragmentrii
externe creat de ctre paginare (pentru alocare poate fi folosit oricare dintre cadrele
disponibile). Deosebirea dintre aceast metod si segmentare este aceea c intrarea
tabelei de segment nu conine adresa de baz a segmentului ci adresa de baz a unei
tabele de pagin asociat acestui segment.
Segmentul este format dintr-un numr de pagini de aceeasi dimensiune.
Deplasarea n cadrul segmentului se exprim prin numr de pagin si deplasare n
pagin. Cu numrul de pagin folosit ca index n tabela de pagin a segmentului, se
obine numrul cadrului care, n final, se combin cu deplasarea n pagin si
formeaz adresa fizic (vezi figura 6.12). Deoarece ultima pagin a fiecrui
segment nu este ntotdeauna complet ocupat, metoda introduce totusi 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 I mplementarea segmentrii
Implementarea segmentrii difer ntr-un mod esenial de paginare:
paginile au dimensiuni fixe, pe cnd segmentele nu.
Exemplu. Se consider o memorie fizic care conine iniial 5 segmente
(fig. 6.12.a). Se analizeaz ce se ntmpl dac segmentul 1 este eliminat si nlocuit
cu segmentul 7, care este mai mic.
Se obine configuraia de memorie prezentat n figura 6.12.b. ntre
segmentul 7 si 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
mprit ntr-un numr de poriuni, unele coninnd segmente, unele guri. Acest
fenomen se numeste fragmentare extern.
Se analizeaz ce s-ar ntmpla dac programul ar referi segmentul 3 dup
ce a aprut fragmentarea extern, ca n figura 6.10., d. Spaiul total disponibil n
guri este de 10 K, mai mult dect suficient pentru segmentul 3, dar deoarece
gurile sunt distribuite n bucele mici, nefolositoare, segmentul 3 pur si simplu nu
poate fi ncrcat. Pentru a o face totusi, 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
locaia de memorie 0, eliminnd acea gaur si lsnd o singur gaur, mare, la
sfrsitul memoriei. Alternativ, se poate astepta ca fragmentarea extern s devin
serioas (adic mai mult de un anume procent din memorie este pierdut n guri),
nainte de a se face compactarea (eliminarea gurilor).
Figura 6.10.e prezint memoria din figura 6.10.d dup compactare
(defragmentare). Scopul compactrii este colectarea tuturor gurilor mici si 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 apariia
fiecrei guri este de obicei mult prea cronofag.
Dac timpul necesar compactrii 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 gurilor necesit meninerea unei liste cu adresele si
dimensiunile gurilor.
II. Un algoritm des ntlnit, numit best fit (cea mai bun potrivire) alege
cea mai mic gaur n care segmentul dorit va ncpea. Ideea este de a gsi potriviri
ntre segmente si guri, evitndu-se astfel preluarea unei poriuni 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 guri si alege prima gaur suficient de mare pentru a
pstra segmentul.
260
Segment 4
(7k)
Segment 4
(7k)
Gaur
(3 k)
Segment 3
(8 k)
Segment 3
(8 k)
Segment 5
(4 k)
Segment 2
(5 k)
Segm. 1
Segm. 7
Segment 2
(5 k)
Segm. 4
Segm. 5
Segment 3
(8 k)
Segment 1
(8 k)
Gaur
(3 k)
Segment 2
(5 k)
Segment 0
(4 k)
Segment 7
(5 k)
Gaur
(3 k)
Segment 0
(4 k)
Segment 7
(5 k)
(a) (b) (c) Segment 0
(4 k)
Gaur
(3 k)
Gaur unic
(10 k)
Segment 5
(4 k)
Segment 5
(4 k)
Segm. 3
Segm. 6
Gaur
(4 k)
Compactare

Segment 6
(4 k)
Segment 6
(4 k)
Segment 2
(5 k)
Segment 2
(5 k)
Segment 7
(5 k)
Gaur
(4 k)
Segment 0
(4 k)
Segment 7
(5 k)
Segment 0
(4 k)
(d) (e)
Fig. 6.12. Exemplu de implementare a segmentrii.
Procednd astfel, este evident c timpul de cutare necesar este mai mic
dect n cazul cutrii n ntreaga list a celei mai bune potriviri, ceea ce reprezint
un avantaj al acestui algoritm. Acesti ultimi doi algoritmi au tendina de a reduce
dimensiunea medie a gurilor. 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 pri. O parte este ocupat de segment, cealalt
devine noua gaur, care bineneles este mai mic dect gaura iniial.
Dac nu exist un proces de compensare care s creeze guri mai mari prin
unificarea celor mici, acesti ultimi doi algoritmi vor duce n cele din urm, la
umplerea memoriei cu guri mici, nefolositoare. n concluzie, acesti algoritmi
trebuie utilizai n conjuncie cu compactarea, aplicat rar.
261
6.3. Exemple de gestionare a memoriei
Se defineste 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 foloseste acest mecanism
este 80286. De remarcat este faptul c Intel 80286 si succesorii si au mecanismul
de gestionare implementat pe cip.
Gestionarea memoriei bazate pe principiile segmentrii ncurajeaz
multiprocesarea, protecia adreselor, protecia proceselor a cror izolare rezult n
mod natural din definirea segmentelor si atributelor, precum si interschimbarea
locului proceselor ntre memoria intern si cea extern.
Tabelul 6.2
Comparaie ntre paginare i segmentare
Consideraie Paginare Segmentare
Programatorul stie de existena sa? Nu Da
Cte spaii liniare de adres exist? 1 Mai multe
Spaiul de adrese virtuale poate depsi
dimensiunea memoriei?
Da Da
Tabelele de dimensiune variabil pot
fi gestionate usor?
Nu Da
De ce a fost inventat tehnica?
Pentru simularea
memoriilor mari
Pentru a furniza mai
multe spaii de adrese
Paginarea introduce si o nou noiune legat de adrese: adresa liniar.
Acest tip de adres rezult n urma translatrii adresei virtuale si 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 observaii preliminare:
- pentru familia Intel, mecanismul paginrii se aplic numai ncepnd de la
80386 si apoi la descendenii familiei (80486, familia Pentium). Pentru
Intel 386/486 paginarea este opional, n funcie de bitul de granularitate
din descriptorii de segmente;
- adresa virtual, alctuit din selector si adresa efectiv, este translatat n
adresa liniar si apoi n cea fizic. La fel ca adresa fizic, adresa liniar
(AL) este de 32 de bii;
- Intel 386/486 adaug modurilor de adresare cunoscute de la ascendenii
familiei un nou tip: adresarea la care, alturi de baz si deplasament,
exist un index care poate fi nmulit cu un factor de scal 1, 2, 4 sau 8;
- dimensiunea maxim a unui segment n memoria virtual se obine numai
pentru G = 1. n acest caz, un segment poate avea:
2
20
pagini 2
12
B/pagin = 2
32
B = 4 GB.
262
6.3.1. Memoria virtual la Multics
Sistemul de operare Multics rula pe masinile Honeywell 6000 si pe urmasii
acesteia si asigura fiecrui program o memorie de pn la 2
18
segmente, fiecare
dintre ele putnd avea o lungime de pn la 65.536 cuvinte (de 36 bii).
Pentru a combina avantajele paginrii (dimensiunea uniform a paginii si
neobligativatea inerii n memorie a unui segment ntreg dac numai o parte din
acesta este folosit) cu avantajele segmentrii (usurina n programare, modularitate,
protecia si partajarea), sistemul de operare Multics trateaz fiecare segment ca pe o
memorie virtual si 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 intrri n
tabel, acesta este el nsusi un segment si este paginat la rndul lui. Descriptorul de
segment conine o indicaie care atest, sau nu, apartenena segmentului la
memoria principal. Dac vreo parte din segment se afl n memorie, atunci se
consider c segmentul si tabelul su de pagini se afl n memorie. Daca segmentul
este n memorie, descriptorul su conine un pointer de 18 bii ctre tabelul su de
pagini dup cum se poate vedea din figura 6.13.
Fig. 6.13. Descriptorul de segment si indicarea tabelelor de pagini.
Deoarece adresele fizice au 24 de bii si paginile sunt aliniate la limite de 64
de octei sunt necesari numai 18 bii n descriptor pentru a stoca adresa tabelului de
pagini. Descriptorul conine de asemenea dimensiunea segmentului, biii de
protecie si 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 spaiu de adrese obisnuit si
astfel si paginarea se face la fel ca la paginarea memoriei nesegmentate.
Dimensiunea normal a paginii este de 1024 de cuvinte. O observaie pertinent
este c exist segmente nepaginate sau paginate n uniti de 64 de cuvinte de
obicei segmente mici si astfel se economiseste memorie fizic.
O adres n Multics const din dou pri: segmentul si adresa n cadrul
segmentului. Adresa din cadrul segmentului este mai departe divizat ntre un numr
de pagin si un cuvnt n cadrul paginii. n figura 6.15 se observ aceast divizare.
Fig. 6.15. O adres virtual Multics de 34 de bii.
Cnd are loc o referire la memorie, se urmreste urmtorul algoritm:
1. Numrul de segment este folosit pentru a gsi 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 stabileste locaia. Dac nu este n memorie, are
loc un defect de segment. Dac are loc o nclcare a proteciei, 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 nsusi 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 su indic
spre paginile descriptorului de segment. ndat ce este gsit descriptorul pentru
segmentul dorit, se continu adresarea dup cum este artat n figura 6.17.
Dac algoritmul precedent ar fi fost rulat de ctre sistemul de operare la fiecare
instruciune, evident programul nu ar fi rulat foarte rapid. Pentru a nu exista aceast
problem hardul Multics conine o tabel TLB de vitez mare pe 16 cuvinte, care
poate cuta n paralel o anumit cheie prin toate intrrile 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, numrul
cadrului de pagin se obine direct din TLB si se formeaz adresa efectiv a
cuvntului referit fr 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 cror seturi de lucru sunt mai mici dect dimensiunea tabelei TLB
vor ajunge la echilibru cu adresele ntregului set de lucru din TLB si prin urmare
vor rula eficient. Dac pagina nu este n TLB, descriptorul si tabelele de pagini sunt
referite efectiv pentru a se gsi adresa cadrului de pagin si tabela TLB este
actualizat prin includerea acestei pagini, fiind eliminat pagina utilizat cel mai
puin recent. Cmpul de vrst ine evidena intrrilor utilizate cel mai puin recent.
Tabela TLB este folosit pentru a compara n paralel segmentele si numerele de
pagin ale tuturor intrrilor.
6.3.2. Memoria virtual la I ntel
Din multe puncte de vedere, memoria virtual de la Pentium se aseamn cu
cea de la MULTICS, incluznd prezena att a segmentrii ct si a paginrii. n
timp ce MULTICS are 256K segmente independente, fiecare de pn la 64K
cuvinte de 36 de bii, Pentium are 16K segmente independente, fiecare innd pn
la 1 miliard de cuvinte de 32 de bii. Cu toate c sunt mai puine segmente,
dimensiunea mai mare a segmentului este de departe mult mai important, ntruct
puine programe au nevoie de mai mult de 1000 de segmente si multe programe
necesit segmente mari.
Inima sistemului de memorie virtual de Ia Pentium este format din dou
tabele: LDT (tabela descriptorilor locali) si 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 fiecrui program, cuprinznd codul, datele, stiva si asa 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
masinii. n timpul execuiei, CS pstreaz selectorul pentru segmentul de cod si DS
pentru cel de date. Celelalte registre de segment sunt mai puin importante. Fiecare
selector este un numr pe 16 bii, asa cum se vede n figura 6.18.
Fig. 6.18. Selector Pentium.
266
Unul dintre biii selectorului indic dac este vorba despre un segment local
sau global (adic segmentul este n LDT sau n GDT). Ali treisprezece bii
precizeaz numrul intrrii n LDT sau GDT, astfel nct aceste tabele nu pot pstra
dect 8K descriptori de segmente. Ceilali doi bii se refer la protecie si vor fi
discutai mai trziu. Descriptorul 0 este invalid. El poate fi ns ncrcat ntr-unul
din registrele de segment, pentru a indica faptul c registrul segment nu este
momentan disponibil. Folosirea lui declanseaz o capcan.
n momentul n care un selector este ncrcat ntr-un registru de segment,
descriptorul corespunztor este preluat din LDT sau GDT si memorat n registrele
interne ale MMU, pentru a putea fi accesat mai rapid. Un descriptor const din 8
octei, cuprinznd pe lng alte informaii si adresa de baz a segmentului, asa 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 usura localizarea
descriptorului. Se selecteaz mai nti fie LDT, fie GDT, n funcie de bitul 2 din
selector. Apoi selectorul este copiat ntr-un registru de lucru (scratch) intern al
MMU, iar cei mai puin semnificativi 3 bii sunt setai la 0. n final, adresa LDT
sau GDT este adunat, obinndu-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 prezentai pasii prin care o pereche (selector, deplasare) este convertit
ntr-o adres fizic. De ndat ce microprogramul stie ce registru de segment este
folosit, el poate gsi descriptorul complet al segmentului corespunztor selectorului
n registrele sale interne. Dac segmentul nu exist (selector 0) sau nu este
momentan n memorie, se declanseaz o capcan.
Apoi se verific dac deplasarea este dincolo de grania segmentului, caz n
care se declanseaz alt capcan. Logic, n descriptor ar trebui s existe un cmp de
32 de bii, pentru a preciza dimensiunea segmentului, dar deoarece sunt disponibili
doar 20 de bii, 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 conine dimensiunea segmentului n pagini si
nu n octei. Dimensiunea paginii la Pentium este fixat la 4KB, astfel nct 20 de
bii ajung pentru segmente de pn la 2
12
octei.
Presupunnd c segmentul este n memorie si c deplasarea este corect,
Pentium adun apoi la deplasare cmpul baz (Base) de 32 de bii din descriptor,
pentru a forma ceea ce se numeste o adres liniar (linear address), asa cum se
vede si n figura 6.20. Cmpul baz este divizat n trei componente si distribuit spre
descriptor, pentru compatibilitate cu 286, care avea un cmp baz de doar 24 de bii.
Ca o consecin, cmpul baz permite fiecrui segment s nceap n orice loc din
spaiul liniar de adrese pe 32 de bii.
Fig. 6.20. Conversia unui selector si a unei deplasri 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 si trimis spre
memorie pentru citire sau scriere. De aceea, cu paginarea dezactivat are o schem
de segmentare pur, adresa de baz a fiecrui segment aflndu-se n descriptorul
asociat. Segmentele se pot suprapune, din ntmplare, probabil deoarece ar fi prea
mare efortul si 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 si pus n coresponden cu o adres fizic folosind tabele de
pagini. Singura complicaie ce poate aprea este c o adres virtual pe 32 de bii si
o pagin de 4K permit unui segment s conin 1 milion de pagini, astfel nct se
foloseste 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 intrri de 32 bii. El este localizat la o adres memorat ntr-un
registru global. Fiecare intrare n acest catalog indic spre un tabel de pagini care
conine de asemenea 1024 intrri de 32 bii Intrrile 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) si Deplasare (offset). Cmpul Dir este utilizat primul ca
index n catalogul de pagini, pentru a localiza pointer-ul ctre tabelul de pagini
corespunztor. 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 obine adresa fizic a octetului sau cuvntului adresat.
Intrrile n tabelul de pagini sunt de 32 de bii fiecare, din care 20 de bii
conin un numr de cadru de pagin. Ceilali bii reprezint bii pentru controlul
accesului si bii pentru a indica modificarea regiunii, setai de ctre hard pentru
sistemul de operare, bii de protecie si ali bii utilitari.
Fiecare tabel de pagini are 1024 de intrri 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 ctre
singura si 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 si Multics, are o mic
tabel TLB pentru a regsi repede cele mai recent folosite combinaii Dir-Pagin si
a Ie pune n coresponden cu adresa fizic corespunztoare cadrului de pagin.
Doar pentru acele combinaii care nu au fost folosite recent se urmeaz pasii descrisi
n figura 6.22. Atta timp ct lipsurile TLB sunt rare, performana este bun.
Fig. 6.22. Corespondena ntre o adres liniar si o adres fizic.
Este important de menionat c dac o anumit aplicaie nu necesit
segmentare, ci se mulumeste cu un spaiu de adresare unic de 32 de bii, paginat,
acest lucru se poate obine foarte usor. Toate registrele segment pot fi ncrcate cu
aceeasi valoare a selectorului, care are un descriptor cu baz = 0 si limit de
valoare maxim permis. Deplasarea instruciunii va fi adresa liniar, cu un singur
269
spaiu de adrese folosit, adic paginare tradiional. De fapt, toate sistemele de
operare pentru Pentium funcioneaz 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 paginrii pure, a segmentrii pure si a
segmentelor paginate, este un real succes. Faptul c s-a pstrat compatibilitatea cu
286 si c s-au reusit toate acestea ntr-un mod att de eficient este un real succes
din punct de vedere al proiectrii.
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 numr variabil de
niveluri de tabelare (ntre 0 si 4), sistemul de operare ar avea de ndeplinit operaii
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 aceeasi capsul cu cipul care reprezint nucleul procesor.
Observaie. La microprocesoarele Pentium exist unitatea de pagin (Page Unit).
n locul mpririi fixe a adreselor liniare n zonele Dir, Page si Deplasare (vezi
figura 6.21), numrul zonelor de tabelare si numrul de bii ai fiecrui nivel sunt specificate
n cmpurile unui registru global, denumit TCR (Translation Control Register).
12 4 3 2 11
Fig. 6.23. Structura adresei liniare la Motorola 68030.
C
ignorai A B C deplasament
X 10 7 0 6
4 bii
MSB deplasament
B
8
intrri
16
intrri
A
32 bii (adres liniar)
270
Adresa liniar va fi mprit conform figurii 6.23.
Avnd n vedere c majoritatea programelor utilizeaz o memorie virtual
mult mai mic de 4 GB (2
32
), n registrul TCR este prevzut si un cmp n care se
poate preciza numrul MSB al adresei la care se renun.
Exemplu. Prin intermediul TCR, se poate preciza c:
- 12 bii MSB sunt ignorai;
- 4 bii reprezint nivelul de tabelare A;
- 3 bii reprezint nivelul de tabelare B;
- 2 bii reprezint nivelul de tabelare C;
- 11 bii reprezint deplasamentul (deplasament n pagin de 2 K).

Vous aimerez peut-être aussi