Sunteți pe pagina 1din 47

2.

TIPURI DE ARHITECTURI

2.1. Clasificarea arhitecturii sistemelor de calcul

2.1.1. Clasificarea Flynn

Clasificarea Flynn se face dup gradul de multiplicitate al irurilor formate


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

2.1.1.1. Arhitectura SISD

Fig. 2.1. Structura arhitecturii SISD.

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

• un calculator cu structur SISD poate avea mai multe elemente de


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

2.1.1.2. Arhitectura SIMD


Caracteristici:
• exist mai multe UP datorit irului de date multiplu, preluat din memoria
partajat (memoria împ it în mai multe memorii);
• corespunde matricelor de microprocesoare: UP identice i supervizate de
o singur UC;
• toate UP primesc instruc iunile (setul unic de instruc iuni) care ac ioneaz
asupra unor seturi de date diferite, provenite din iruri diferite de date
SD1, ..., SDn;
• ma inile SIMD pot efectua dou tipuri de prelucr ri: pe cuvânt (word-
slice) i pe bit (bit-slice).
Tipuri de arhitecturi 21

Fig. 2.2. Structura arhitecturii SIMD.

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


matrice de dimensiuni foarte mari atunci când este necesar s se execute asupra lor
aceea i opera ie. Ma inile SIMD sunt eficiente i în cazul proces rii re elelor neurale.
Exemplu: CM (Connection Machine) fabricat de Thinking Machines
Company din Cambridge (Massachusetts).
Limit rile arhitecturii SIMD
Aceste tipuri de ma ini sunt destul de scumpe în ceea ce prive te costurile de
produc ie, deoarece bancurile de procesoare nu sunt componente standard. Chiar
dac num rul celor care au nevoie de astfel de ma ini este în continu cre tere,
ace tia nu sunt destul de numero i pentru a justifica existen a unor fabrici dedicate
exclusiv produc iei de SIMD-uri. În consecin , aceste ma ini sunt în general
cute la comand i cost foarte mult.

1.4.1.3. Arhitectura MISD


De i aceast ma in este posibil de realizat din punct de vedere teoretic, nu a
fost niciodat fabricat în scop comercial. A fost construit în laboratoare de
cercetare, dar nu au existat clien i dornici s investeasc într-o astfel de arhitectur ,
deoarece nu se adreseaz nici uneia dintre aplica iile de baz .

Fig. 2.3. Structura arhitecturii MISD.

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

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


Structura se nume te macro-pipeline (are doar o valoare teoretic ).

2.1.1.3. Arhitectura MIMD


Aceste tipuri de calculatoare sunt cunoscute sub denumirea de
multiprocesoare, chiar dac i ma inile SIMD sunt tot multiprocesor. În
calculatoarele MIMD paralelismul este realizat prin lansarea în execu ie a mai
multor instruc iuni în acela i timp pe diferite seturi de date. Este evident c sunt
necesare elemente adi ionale de control pentru a trimite instruc iunea corect i
data care trebuie la procesorul ales, toate în acela i timp. Cele mai multe sisteme
multiprocesor intr în aceast clas .

Fig. 2.4. Structura arhitecturii MIMD.

Avantajele arhitecturii MIMD sunt:


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

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


memorie se face prin conexiuni seriale punct-la-punct (de tip re ea). Comunica ia
între procesoare se face prin mesaje (message passing). Fiecare procesor dispune
de memorie proprie (private memory). Avantaj: scalabilitate (posibilitate comod
de expandare). Cele mai multe sisteme comerciale sunt cu cuplaj slab.
Exemple: IBM 370/168 – cuplaj slab, CRAY 2 – cuplaj strâns.

2.1.1.4. Sisteme cu memorie partajat (shared memory)


În cazul ma inilor cu memorie partajat , ma ina original von Neumann a
fost extins prin includerea a ceea ce se nume te memorie cache. Aceasta este o
memorie local ata at fiec rui procesor în parte, care îi permite procesorului s
aib acces rapid la propriile seturi de instruc iuni i date, dar s poat accesa în
continuare memoria principal prin magistrala de memorie. Acest tip de ma in se
mai nume te arhitectur cu multiprocesare simetric i este prezentat în figura 2.5.

Fig. 2.5. Arhitectura sistemelor shared memory.

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


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

Fig. 2.6. Limit rile calculatoarelor cu memorie partajat .


24 ARHITECTURA SISTEMELOR DE CALCUL

La aceste arhitecturi, „gâtul sticlei” (bottleneck) îl reprezint magistrala de


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

Fig. 2.7. Arhitectura UMA.

Principala caracteristic a calculatoarelor UMA este c toate procesoarele au


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

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


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

Fig. 2.8. Arhitectura UMA cu memorii cache locale.

Utilizarea memoriilor cache presupune îns i asigurarea consisten ei


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

Arhitectura NUMA (Non-Uniform Memory Access)


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

Fig. 2.9. Arhitectura NUMA.

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

Fig. 2.10. Arhitectura COMA.


Tipuri de arhitecturi 27

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


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

Fig. 2.11. Arhitectura CC-NUMA.


28 ARHITECTURA SISTEMELOR DE CALCUL

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


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

Principalul avantaj al acestor sisteme îl reprezint scalabilitatea, adic ,


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

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

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


procesoare. Ap rea deja necesitatea unei interconect ri a modulelor de memorie, a
procesoarelor i a leg turilor cu canalele I/O. Se foloseau re ele multietajate de tip
crossbar sau multistage (vezi figura 2.12.b). Memoriile cache, marea lovitur a
anilor '70, au fost de natur a influen a puternic structurile de memorare. Sistemele
de memorie scalate prin ad ugarea de module suplimentare aveau nevoie de
capacitate, dar i de vitez ridicat . Memoria era o surs de strangul ri (bottleneck).
Introducerea memoriilor cache a schimbat aproape radical datele problemei.

2.1.1.5. Sisteme f memorie partajat (shared nothing)


În acest caz, fiecare procesor are propria lui memorie. Aceste ma ini sunt
practic calculatoare independente legate într-o re ea. Fiecare calculator se mai
nume te i nod (al re elei). Arhitectura shared nothing se mai nume te cu
multiprocesare asimetric i este prezentat în figura 2.13.
30 ARHITECTURA SISTEMELOR DE CALCUL

Fig. 2.13. Arhitectura sistemelor shared nothing.

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


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

2.1.2. Clasificarea Wang

Criteriul de clasificare este în acest caz gradul de paralelism în procesarea


cuvintelor, respectiv bi ilor de date. Datele pot fi configurate într-o matrice (vezi
figura 2.14).
Se noteaz cu n lungimea unui cuvânt i cu m num rul de cuvinte procesate
la un moment dat.

Fig. 2.14. Organizarea datelor într-o matrice.

Conform acestei clasific ri, exist patru tipuri de arhitecturi:


• WSBS (Word Serial – Bit Serial). Se lucreaz pe un singur cuvânt,
fiecare cuvânt fiind prelucrat bit cu bit: n = 1, m = 1;
• WSBP (Word Serial – Bit Parallel): n > 1, m = 1;
• WPBS (Word Parallel – Bit Serial): n = 1, m > 1;
• WPBP (Word Parallel – Bit Parallel): n > 1, m > 1.
În cazul tipului WPBP, structura paralel este complet , corespunz toare
prelucr rii pe matrice m × n.
În cazul tipului WSBP, prelucrarea este pe orizontal , iar în cazul tipului
WPBS, prelucrarea este pe vertical .
Tipuri de arhitecturi 31

2.2. Structura fizic a unui calculator secven ial

Calculatorul numeric – sistem fizic, care prelucreaz automat informa ia


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

Fig. 2.15. Ma ina von Neumann.

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

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

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


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

2.2.1. Structuri de calculatoare paralele

Calculatoarele paralele se clasific în trei configura ii arhitecturale:


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

2.2.1.1. Calculatoare pipeline


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

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

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

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

P1 1 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 execu ia unei instruc iuni i desf urarea lor în timp.

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


Când se atinge al cincilea impuls de ceas, la toate cele cinci procese se lucreaz în
paralel; astfel se m re te de cinci ori viteza de execu ie. În faza încadrat ,
instruc iunea 5 este în faza de înc rcare, instruc iunea 4 în faza de decodare etc.
Problema este c în faza P5 poate s apar fenomenul de strangulare, pentru
una sau mai multe instruc iuni aflate între P1 i P5 pot s nu fie instruc iuni utile
(de ex.: salt). De i exist un paralelism în execu ia instruc iunilor, aceasta este o
ma in pipeline de tip SISD.

2.2.1.2. Calculatoare matriceale


Un procesor matriceal tipic este prezentat în figura 2.19. Exist dou unit i
func ionale distincte: o unitate de control i sincronizare a elementelor de procesare
(care are ca sarcin suplimentar efectuarea opera iilor cu scalari) i o unitate de
prelucrare matriceal . Fiecare element de prelucrare (EP) reprezint un element
pasiv, adic , f posibilitatea de a decodifica instruc iuni.
Înc rcarea instruc iunilor i decodarea lor (fazele IF i ID) pentru unitatea de
prelucrare matriceal este efectuat de c tre unitatea de control, prin intermediul
unei re ele de interconectare între EP. Fiecare element de prelucrare este alc tuit
dintr-o unitate ALU, registre i memorie local , iar conexiunea dintre elemente este
realizat într-o arhitectur de tip NUMA.
Pentru o sesiune de lucru specific , unitatea de control stabile te func ia
ALU pentru fiecare EP, dup care transfer operanzi din exterior c tre memoriile
locale ale EP i rezultatele de la un EP spre alt EP (utilizând re eaua de
interconectare). Programarea CM este mult mai dificil decât programarea CPL.
Tipuri de arhitecturi 35

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

2.2.1.3. Calculatoare multiprocesor


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

Fig. 2.20. Calculator multiprocesor.


36 ARHITECTURA SISTEMELOR DE CALCUL

Nota iile din figura 2.20 sunt urm toarele:


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

2.2.2. Mecanisme de prelucrare paralel

Aceste solu ii de implementare a prelucr rii paralele sunt corelate cu


arhitecturile clasific rii Flynn în privin a solu iilor hardware, solu iile software
fiind specifice sistemelor de operare care gestioneaz intervalele de timp alocate
diferitelor aplica ii i speculând, astfel, posibilitatea prelucr rilor paralele.

2.2.2.1. Solu ii hardware de prelucrare paralel


Multiplicarea i specializarea unit ilor aritmetico-logice (ALU)
Procesoarele clasice aveau o singur unitate de tip ALU. În acest fel, nu se
efectua decât o singur opera ie la un moment dat. Prin multiplicarea ALU,
majoritatea func iilor pot fi distribuite între unit ile specializate pe o anumit
func ie aritmetic sau logic i pot func iona în paralel. În unele procesoare exist
dou ALU care pot lucra în paralel (o unitate pentru aritmetica în virgul fix i
alta pentru aritmetica în virgul mobil ). Ideea specializ rii func ionale i a
distribuirii i multiplic rii ALU (numite i unit i func ionale) poate fi extins atât
la sistemele multiprocesor, cât i la cele matriceale. Acest mecanism constituie, de
fapt, implementarea paralelismului la sistemele SISD.
În figura 2.21 se prezint un exemplu de schem pentru figurarea acestei
solu ii. Unitatea central con ine 5 unit i ALU specializate pe diferite opera ii,
care pot lucra în paralel.
În timp ce o instruc iune este executat de o anumit unitate ALU, unitatea
de comand încarc i decodific o alt instruc iune pe care o încredin eaz unei
alte unit i ALU .a.m.d.
Tipuri de arhitecturi 37

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

Sistemul este eficient dac timpul de execu ie de c tre ALU a unei opera ii
este mult mai mare decât timpul de înc rcare i decodificare a unei instruc iuni.
Aceast condi ie este, în general, îndeplinit .
Exprimarea algebric a condi iei de eficien pentru multiplicarea i
specializarea ALU este:

tEX(ALU) >> tIF + tID.

Paralelism i structur pipeline în CPU


Primele genera ii de microprocesoare utilizau ALU (în special, sumatoare)
care operau cu flux de bi i (serial).
Introducerea unui ALU care opereaz în paralel, pe flux de 8, 16, 32 sau 64
bi i simultan (cu sumatoare, cu transport anticipat sau multiplicatoare matriceale)
duce la cre terea vitezei de prelucrare.
Arhitectura superscalar
În arhitectura superscalar , iruri de instruc iuni diferite (de obicei dou ,
eventual mai multe), utilizeaz resurse diferite în acelea i stadii de execu ie a
instruc iunilor de pe fiecare ir.
Un exemplu particular de arhitectur superscalar este prezentat în figura 2.22.
38 ARHITECTURA SISTEMELOR DE CALCUL

Fig. 2.22. Arhitectura superscalar .

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


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

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


Tipuri de arhitecturi 39

Exemplu. Schema din figura 2.24 reprezint o arhitectur superscalar cu


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

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

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

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

Unitate ALU vectorial

Fig. 2.26. Arhitectur SIMD cu unitate ALU vectorial .

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


Tipuri de arhitecturi 41

Utilizarea unui sistem ierarhizat de memorie


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

loca ie adresat de curând s fie adresat i într-un timp imediat – localizare


temporar – i, similar, este previzibil ca i loca iile adiacente s fie accesate în
curând – localizare spa ial . Principiile localiz rii temporale i spa iale sunt o
consecin a modului uzual de execu ie a secven elor de program.
Exemple:
• un program con ine bucle care presupun execu ia repetitiv a aceleia i
secven e de instruc iuni;
• execu ia instruc iunilor este, în majoritatea cazurilor, secven ial
(succesiunea în execu ie), excep ie f când instruc iunile de salt;
• secven a de program (procedura) utilizeaz repetitiv aceea i variabil sau
adreseaz repetat elemente ale unei structuri de date (tablouri, înregistr ri).
Concluzie. Statistic s-a constatat c pentru majoritatea programelor este
valabil urm toarea regul : 90% din timpul afectat unui program este utilizat
pentru execu ia a numai 10% din codul acestuia. Pe baza acestor observa ii,
informa iile pot fi amplasate în mod dinamic pe diferite niveluri ierarhice ale
memoriei, în func ie de probabilitatea de a fi utilizate.

2.2.2.2. Solu ii software de prelucrare paralel


Prelucrarea pe loturi
Prelucrarea pe loturi (batch processing) presupune formarea unui fi ier cu
extensia .bat i lansarea lui. Procesele au loc succesiv, iar CPU (care execut
opera iile de calcul) nu este folosit în mod eficient.

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


Tipuri de arhitecturi 43

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

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


44 ARHITECTURA SISTEMELOR DE CALCUL

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


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

Modelele de threading suportate de sistemele win32 sunt:


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

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


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

2.3. Categorii de calculatoare

Calculatoarele pot fi grupate în 5 categorii, în func ie de structur ,


dimensiuni, vitez , putere de calcul i destina ie:
• microcalculatoare (ex.: computerele Apple i toate modelele de PC);
• minicalculatoare (ex.: serverele IBM, SGI, Sun Microsystems etc.);
• superminicalculatoare (ex.: Norsk Data Nord, Interdata, DEC VAX etc.);
• mainframe-uri;
• supercalculatoare.

2.3.1. Mainframe-uri

Un mainframe este un computer mare, folosit de institu ii guvernamentale i


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

2.3.2. Supercalculatoare

Un supercalculator este un calculator complex cu destina ie special , compus


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

Fig. 2.29. Arhitectura IBM BlueGene/L.

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

2.4. Exemple de arhitecturi

2.4.1. Arhitecturi uniprocesor

Se bazeaz pe cele trei componente majore: UCP, memoria, subsistemul I/O.


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

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


50 ARHITECTURA SISTEMELOR DE CALCUL

IBM 370/168

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

Schema de principiu (vezi figura 2.31) con ine:


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

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

Schema de principiu con ine:


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

2.4.2. Arhitecturi multiprocesor

Arhitecturile multiprocesor sunt cel mai bun exemplu al tentativei de a


paraleliza un sistem de calcul. Acestea sunt de dou tipuri: cele care folosesc
procesoare multiple, discrete, pe o plac de baz sau sisteme hardware speciale i
cele care folosesc mai multe nuclee în interiorul unui singur procesor fizic.

2.4.2.1. Arhitecturi cu procesoare multiple


Arhitecturile cu procesoare multiple pot fi de dou feluri:
• cu multiprocesare simetric ;
• cu multiprocesare asimetric .
Multiprocesarea simetric utilizeaz mai multe procesoare fizice legate
printr-o magistral de memorie partajat i suportul magnetic aferent (vezi
paragrafele 2.1.1.4 i 2.2.1.3, referitoare la sisteme cu memorie partajat – shared
memory i calculatoare multiprocesor).
În cazul sistemelor cu arhitecturi de multiprocesare asimetric , fiecare
procesor are alt task. Exemple: cipseturile 3D din pl cile grafice moderne i
cluster-ele de calculatoare personale (Beowulf), în care fiecare procesor are acces
numai la memoria calculatorului din care face parte (vezi paragraful 2.1.1.5,
referitor la sisteme f memorie partajat – shared nothing).
IBM RS/6000 model F50
Sistemul cuprinde între 1 i 4 procesoare Power PC cu cache extern i are o
magistral de 64 de bi i. Memoria cache se nume te 8-way (cu 8 c i) pentru c datele
sunt grupate în seturi de câte 8 × 64 bi i. Memoria folose te date de 72 bi i: 64 pentru
date i 8 pentru codul corector de erori (ECC = Erorr Correction Code). Procesorul
are o arhitectur de tip superscalar i poate executa pân la 4 instruc iuni pe ciclu.
Caracteristici (vezi figura 2.33):
• frecven a de tact: 166–332 MHz, 87 MHz pentru magistrala de memorie;
• 32 KB cache de date, 32 KB cache de instruc iuni;
• magistral de date de 64 de bi i i magistral de adrese de 32 de bi i;
• memorie de pân la 4 GB i memorie virtual de pân la 4 PB (1P = 252).
Arhitectura Intel multiprocesor
Arhitectura multiprocesor propus de firma Intel este reprezentat prin
schema din figura 2.34.
Nota iile din schem au urm toarele semnifica ii: BSP = Bootstrap Processor,
AP = Application Processor, APIC = Advanced Programmable Integrated Circuit,
ICC Bus = Interrupt Controller Communications Bus.

2.4.2.2. Arhitecturi biprocesor


Un sistem care suport dou procesoare trebuie s aib o plac de baz
adaptat pentru a servi dou CPU. În acest scop, placa de baz este dotat cu o
magistral special , a c rei construc ii depinde de la produc tor la produc tor, dar
care se conformeaz unor reguli generale.
52 ARHITECTURA SISTEMELOR DE CALCUL

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

Fig. 2.34. Schema arhitecturii Intel multiprocesor.

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

Pentium II biprocesor

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

AMD Athlon biprocesor


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

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


54 ARHITECTURA SISTEMELOR DE CALCUL

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

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

Sun SPARC IV biprocesor


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

Fig. 2.37. Arhitectura Sun SPARC IV biprocesor.

Se observ c cele dou procesoare au atât memorie cache comun , cât i


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

Fig. 2.38. Arhitectura sistemului Xeon biprocesor.

Pentru aceasta, arhitectura pune la dispozi ie componentelor sistemului


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

Fig. 2.39. Arhitectura sistemului AMD Opteron biprocesor.

Sistemele de operare Windows XP i Windows server 2003 suport în


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

2.4.2.3. Arhitecturi multinucleu


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

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

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

Unit ile de execu ie cu numere întregi


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

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


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

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

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

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


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

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

AMD Opteron Dual-core


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

Fig. 2.44. Arhitectura AMD Phenom Triple-core.


64 ARHITECTURA SISTEMELOR DE CALCUL

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


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

Fig. 2.45. Arhitectura Intel quad-core

Fig. 2.46. Arhitectura AMD Quad FX.

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


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

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