Sunteți pe pagina 1din 9

Arhitectura calculatoarelor CAPITOLUL VII

106

CAPITOLUL VII
PROCESOARE SUPERSCALARE

Dup cum am artat n paragrafele anterioare, tehnicile de tip pipeline permit ca mai multe instruciuni s
fie prelucrate n acelai timp, pe baza unui paralelism temporal, dar numai dac la un moment dat de timp pe linia
de asamblare sunt tratate faze diferite ale respectivelor instruciuni.
O arhitectur superscalar este una din soluiile care permite ca mai multe instruciuni s fie iniiate i
executate simultan de ctre unitatea central, fr restriciile de mai sus. Tehnica superscalar include toate
caracteristicile prelucrrii de tip pipeline, dar permite n plus ca faze similare de execuie ale instruciunilor s fie
prelucrate simultan pe linia de asamblare. n acest fel, arhitectura superscalar ofer procesorului abilitatea de a
iniia tratamente multiple de instruciuni n acelai ciclu de ceas.
Noua tehnic propus - prelucrarea superscalar a instruciunilor - are astzi dou implementri:
arhitectura superpipeline;
arhitectura superscalar propriu-zis.
Arhitectura superpipeline se bazeaz pe divizarea pailor unei linii de asamblare (pipeline) n subpai,
mrindu-se astfel numrul de instruciuni care pot fi tratate n paralel la un moment dat.
Spre exemplu, diviznd n dou fiecare pas al unei pipeline, perioada de ceas t a unitii centrale se
reduce la jumtate i astfel, linia de asamblare produce (la capacitatea maxim), cte un rezultat la fiecare
interval t/2. Procedura este ilustrat n figura 7.1 b. Am discutat totui n capitolul anterior despre faptul c, pentru
o arhitectur i un set corespondent de instruciuni date, exist n pipeline un numr optim de pai, astfel nct
depirea acestei valori nu numai c nu aduce nici un spor de performan, dar poate conduce chiar la
diminuarea acesteia. De aceea, dac se dorete o cretere i mai mare a vitezei de prelucrare n pipeline,
arhitectura superscalar nu o mai poate oferi, singura alternativ viabil fiind apelul la organizarea superscalar a
unitii centrale.
Arhitectura superscalar const dintr-un numr de pipeline care lucreaz n paralel, ca n exemplul din
figura 7.1 c. n funcie de numrul i funciile acestor uniti disponibile, rezult un anumit numr de instruciuni
care pot fi executate n paralel.

Ciclul de ceas 1 2 3 4 5 6 7 8 9 10 11
Instruciunea i FI DI CO FO EI SR
Instruciunea i+1 FI DI CO FO EI SR
Instruciunea i+2 FI DI CO FO EI SR
Instruciunea i+3 FI DI CO FO EI SR
Instruciunea i+4 FI DI CO FO EI SR
Instruciunea i+5 FI DI CO FO EI SR

a) Execuia pipeline

Ciclul
de
ceas
1 2 3 4 5 6 7 8 9
Instr. i FI
1
FI
2
DI
1
DI
2
CO
1
CO
2
FO
1
FO
2
EI
1
EI
2
SR
1
SR
2

Instr.
i+1
FI
1
FI
2
DI
1
DI
2
CO
1
CO
2
FO
1
FO
2
EI
1
EI
2
SR
1
SR
2

Instr.
i+2
FI
1
FI
2
DI
1
DI
2
CO
1
CO
2
FO
1
FO
2
EI
1
EI
2
SR
1
SR
2

Instr.
i+3
FI
1
FI
2
DI
1
DI
2
CO
1
CO
2
FO
1
FO
2
EI
1
EI
2
SR
1
SR
2

Instr.
i+4
FI
1
FI
2
DI
1
DI
2
CO
1
CO
2
FO
1
FO
2
EI
1
EI
2
SR
1
SR
2

Instr.
i+5
FI
1
FI
2
DI
1
DI
2
CO
1
CO
2
FO
1
FO
2
EI
1
EI
2
SR
1
SR
2


b) Execuia superpipeline

Arhitectura calculatoarelor CAPITOLUL VII

107
Ciclul de ceas 1 2 3 4 5 6 7 8 9 10
Instruciunea i FI DI CO FO EI SR
Instruciunea i+1 FI DI CO FO EI SR
Instruciunea i+2 FI DI CO FO EI SR
Instruciunea i+3 FI DI CO FO EI SR
Instruciunea i+4 FI DI CO FO EI SR
Instruciunea i+5 FI DI CO FO EI SR

c) Execuie superscalar
Figura 7.1. Execuia comparativ cu tehnicile pipeline, superpipeline i superscalar

n figura 7.2 prezentm un exemplu de arhitecur superscalar care permite execuia simultan a dou
instruciuni cu numere ntregi i a uneia n virgul flotant. Fiecare din cele trei uniti de prelucrare este de tip
pipeline i - n consecin - poate executa mai multe operaii n diferite stagii de prelucrare.

Figura 7.2. Arhitectura superscalar cu trei uniti de prelucrare

7.1. Tehnici de programarea dinamic a instruciunilor (out of order)

Limitele arhitecturii superscalare sunt aproape n totalitate similare cu cele care mpiedic o execuie
eficient n orice alt arhitectur pipeline, aa cum le-am prezentat n capitolul anterior. Consecinele acestor
situaii restrictive - exprimate prin penaliti de ntrziere - sunt ns mult mai severe n cazul superscalar, n
comparaie cu structurile pipeline simple, deoarece potenialul de paralelism al acestei structuri este mai mare i,
astfel, penalitile sunt mult mai drastice.
Putem clasifica aceste limitri n trei categorii:
Conflicte de resurse. Acestea apar atunci cnd dou sau mai multe instruciuni se refer n acelai
timp la aceeai resurs (registru, locaie de memorie, unitate funcional). Se poate spune c este vorba
despre o situaie similar cu cu cea care genera hazardul structural, discutat la prelucrarea pipeline.
Totui, datorit faptului c arhitecturile superscalare utilizeaz simultan mai multe linii de prelucrare
pipeline, numrul acestor conflicte tinde s se reduc, n comparaie cu o pipeline clasic.
Dependenele proceduale (de control). Aceste limitri apar n primul rnd datorit prezenei salturilor
n secvenele de execuie ale instruciunilor din programe, ceea ce creaz probleme majore n
asigurarea unui paralelism optim al prelucrrii acestora. Totui, unele modaliti de reducere a

Arhitectura calculatoarelor CAPITOLUL VII

108
penalitilor de salt au fost discutate n capitolul anterior. n al doilea rnd, dependenele procedurale se
manifest atunci cnd se ncearc tratarea n paralel a instruciunile au lungime variabil. n aceste
situaii trebuie s se adapteze o strategie special pentru ca atunci cnd o instruciune a fost
decodificat, s se tie care va fi urmtoarea ce trebuie tratat. n consecin, rezult c tehnicile
superscalare se pot aplica mai eficient pentru arhitecturile RISC, deoarece acestea utilizeaz
instruciunile cu format i lungime fixe.
Conflictele de date. Aceste conflicte se manifest - ca i n cazul prelucrrii pipeline simple - din cauza
dependenelor care apar n prelucrarea datelor de ctre instruciunile din program. Deoarece arhitecturile
superscalare permit o mare libertate n ceea ce privete ordinea de tratare a instruciunilor, aceste
conflicte de date apar cu o frecven mult mai redus.
Limitrile n performanele de paralelism ale prelucrrile superscalare, enunate mai sus, sugereaz i unele
posibile soluii pentru mbuntirea acestora.
Am mai subliniat faptul c scopul implementrii unei arhitecturi superscalare este creterea ct de mult
posibil al paralelismului n execuia instruciunilor, cu alte cuvinte exploatarea la maxim a nivelului de paralelism
permis de ctre programul de calcul. Pentru atingerea unui astfel de obiectiv, arhitecturile superscalare moderne
folosesc tehnica numit programarea dinamic a tratrii instruciunilor. Aceast metod presupune alegerea
instruciunilor care vor fi prelucrate n paralel ntr-un mod dinamic, fr a ine seama de ordinea lor secvenial din
program (out of order). Alegerea se va face numai pe baza dependenelor i a disponibilitii resurselor. Evident,
o condiie esenial pentru aceast tehnic este ca rezultatul s fie identic cu cel care s-ar obine n urma
execuiei strict secveniale a programului. Aceast condiie poate fi respectat numai dac toate posibilele
conflicte de date sunt corect identificate i luate n considerare.
Pe de alt patre, dependenele datelor determin ca numai o anumit parte a instruciunilor s poat
constitui un potenial subiect pentru execuia paralel. Pentru a gsi ct mai multe astfel de instruciuni, apte de a
fi tratate n paralel, este de dorit ca procesorul s poat face o selecie dintr-o secven care s conine ct mai
multe elemente. O astfel de secven extins, coninnd un numr mare de instruciuni, se numete fereastr de
execuie (window of execution).
Cu alte cuvinte, fereastra de execuie poate fi definit ca fiind mulimea instruciunilor considerate a fi
potenial executabile n pararel la un moment dat. Oricare din elementele acestei mulimi poate fi aleas pentru
execuia paralel dar n acelai timp poate fi subiectul fie al unei dependine de date, fie al unui conflict de
resurse. Deoarece numrul instruciunilor din fereastr trebuie s fie ct mai mare, se impune creterea
substanial a capacitii i vitezei unitii de citire a acestora, n paralel cu implementarea unui mecanism eficient
de predicie a salturilor.
Pentru a ilustra funcionarea ferestrei de execuie,rezentm mai jos un exemplu de secven de
program,:
For (i = 0; i<last; i++){
If (a[i] > a[i+1] {
Temp = a[i];
a[i] = a[i+1];
a[i+1] = temp
change ++;
}
}
Considernd c n r7 se stocheaz adresa de acces la a[i], a[i+1], iar variabilele change, last i i sunt
reinute n r5, r4 i respectiv r6, secvena echivalent a programului n limbaj de asamblare, lund n considerare
dependena ferestrei de execuie de specificul salturilor, este cea din figura 7.3.
| |
| |
1
3 , 9 , 8
1 9 ) 3 ( , 9
4 , 3 , 3
8 ) 3 ( , 8
7 , 3 2
baza de bloc
L r r ble
i a r r r lw
r r add
i a r r r lw
r r move L



Arhitectura calculatoarelor CAPITOLUL VII

109

| |
| |
2
1 , 5 , 5
8 1 ) 3 ( , 8
4 , 3 , 3
9 ) 3 ( , 9
7 , 3
baza de bloc
change r r add
r i a r r sw
r r add
r i a r r sw
r r move

+ +
+



3
2 , 4 , 6
4 , 7 , 7
1 , 6 , 6 3
baza de bloc
L r r ble
r r add
i r r add L

`
+ +


Figura 7.3. Ferestre de execuie n tehnic superscalar

Fereastra de execuie va fi extins n afara uneia din cele trei blocuri de baz printr-o predicie de salt.
Aceast modalitate de lucru se numete execuie speculativ i const n introducerea n fereastra de execuie
curent a instruciunilor din blocul indicat prin predicia de salt i tratarea (printr-o ordine oarecare) a acestora.
Dac predicia saltului se dovete a fi fost corect (are loc un fit), schimbrile de stare produse prin execuia
acestor instruciuni vor deveni permanente i vizibile. n caz contrar, toare aceste efecte sunt anulate.
Toate instruciunile din fereastra de execuie pot fi subiectul constrngerilor provocate prin dependenele
de date (i resurse). Dependenele de date pot fi clasificate n adevrate i artificiale. La rndul lor, cele artificiale
pot fi dependene de ieire sau antidependene.
Dependena adevrat de date de manifest atunci cnd ieirea unei instruciuni este solicitat ca
intrare pentru o instruciune consecutiv. Spre exemplu:
MUL R4, R3, R2 R4R3 x R1
.........................................
ADD R2, R4, R5 R2 R4 + R5

Acest tip de dependen este o caracteristic intrinsec a programului utilizator i nu poate fi eliminat
de ctre compilator sau prin tehnici hardware. Dependenele adevrate nu trebuie deci dect detectate i tratate.
Astfel, n exemplul de mai sus adunarea coninutului regitrilor R4 cu R5 nu se poate efectua pn cnd
nu este disponibil rezultatul nmulirii R3 x R1. Soluia cea mai simpl ar fi ca adunarea s fie oprit pn cnd se
termin efectuarea nmulirii. Dac totui se dorete evitarea ntreruperii n ateptare a unitii de adunare,
compilatorul sau hard-ul pot cuta o alt instruciune care s poat fi executat de ctre aceasta, pn cnd va fi
disponibil rezultatul nmulirii. Pentru instruciunile din blocul de baz unu al ferestrei de execuie aleas n
exemplului din figura 7.3, dependenele adevrate de date sunt date de urmtoarele instruciuni:

Dependena artificial de ieire se manifest atunci cnd dou instruciuni scriu ntr-o aceeai locaie.
n situaia n care cea de-a doua instruciune scrie naintea primeia, va aprea evident o eroare:
MUL R4, R3, R1 R4R3 x R1
........................................
ADD R4, R2, R5 R4R2 +R5

L2 move r3,r7
lw r8, (r3)
add r3, r3,4
lw r9, (r3)
ble r8, r9, L3


Arhitectura calculatoarelor CAPITOLUL VII

110
i pentru exemplul din figura 7.3, prima secven, se poate semnala o dependen de ieire:


Antidependena datelor apare atunci cnd o instruciune utilizeaz un operand amplasat ntr-o anumit
locaie, n timp ce o alt instruciune consecutiv acesteia scrie n acest locaie. Dac prin tratare paralel cea
de-a doua instruciune scrie locaia nainte ca prima instruciune s-i foloseasc vechiul coninut, va fi semnalat
acest tip de eroare:
MUL R4, R3, R1 R4R3 x R1
........................................
ADD R4, R2, R5 R4R2 +R5
O situaia similar apare i n figura 7.3, considernd tot prima secven de instruciuni:

Trebuie remarcat faptul c att dependenele de ieire ct i antidependenele nu reprezint
caracteristici intrinseci ale programelor, ele nefiind dependene reale de date, ci mai degrab conflicte de stocare.
Rezult c apariia lor este consecina manierei n care programatorul sau compilatorul utilizeaz regitrii sau
locaiile de memorie, provocnd competiia mai multor instruciuni pentru a obine o astfel de resurs. n
exemplele anterioare, dependena de ieire a fost provocat pentru c registrul R4 a fost utilizat pentru stocarea
rezultatului de ctre ambele instruciuni, iar antidependena a rezultat pentru c a doua instruciune utilizeaz
registrul R3 pentru a stoca un rezultat.
Dependenele din aceste exemple pot fi eliminate prin utilizarea unor regitrii suplimentari:
MUL R4, R3, R1 R4R3 x R1
.............................
ADD R7, R2, R5 R7 R2 + R5

i:
MUL R4, R3, R1 R4R3 x R1
.............................
ADD R6, R2, R5 R6 R2 + R5

ntr-un mod similar pot fi eliminate dependenele de aceast natur semnalate n exemplul din figura 7.3:

L2 move R1, r7
lw r8, (R1)
add R2, R1, 4
lw r9, (R2)
ble r8, r9, L3
L2 move r3,r7
lw r8, (r3)
add r3, r3,4
lw r9, (r3)
ble r8, r9, L3

L2 move r3, r7
lw r8, (r3)
add r3, r3,4
lw r9, (r3)
ble r8, r9, L3



Arhitectura calculatoarelor CAPITOLUL VII

111


7.2. Politici de execuie paralel n arhitecturi superscalare

Din cele discutate pn acum, rezult c abilitatea unui procesor superscalar de a executa instruciuni n
paralel este determinat n principal de doi factori:
numrul i natura liniilor pipeline paralele, care determin de fapt numrul i natura instruciunilor care
pot fi citite i executate n acelai timp;
mecanismul pe care l utilizeaz procesorul pentru a gsi instruciunile independente (adic acelea care
pot fi executate propriu-zis n paralel).
La rndul lor, politicile utilizate pentru execuia instruciunilor sunt caracterizate i ele prin doi factori:
- ordinea n care sunt alese instruciunile pentru nceperea execuiei;
- ordinea n care se termin execuia acestor instruciuni, iar rezultatele prelucrrilor sunt scrise n
registre sau locaii de memorie.
Cea mai simpl politic de lansare i terminare a execuiei instruciunilor este de a se lua n considerare
ordinea lor secvenial. Evident ns c aceast opiune va oferi foarte puine anse de a gsi multe instruciuni
care pot fi prelucrate n paralel. Pentru a crete paralelismul prelucrrii, procesorul trebuie deci s ncerce "s
priveasc nainte", cu scopul de a alege instruciuni independente, apte pentru o altfel de tratare dect cea strict
secvenial. Este evident c va rezulta astfel o alt ordine de tratare dect cea strict secvenial, ins acesta va
respecta restricia fundamental impus, anume aceea de a nu schimba rezultatul final al prelucrrii.
Politicile pentru execuia paralel a instruciunilor implementate prin arhitecturile superscalare sunt n
numr de trei:
- lansare n ordine i terminare n ordine;
- lansare n ordine i terminare fr ordine;
- lansare fr ordine i terminare fr ordine.
Pentru a ilustra modurile de lucru care rezult ca urmare a adoptrii acestor politici, s considerm
urmtoarea secven de instruciuni:
I1: ADDF R12, R13, R14 (virgul flotant)
I2: ADD R1, R8, R9
I3: MUL R4, R2, R3
I4: MUL R5, R6, R7
I5: ADD R10, R5, R7
I6: ADD R11, R2, R3
Instruciunea I1 se execut n dou cicluri. I3 i I4 sunt conflictuale, pentru c solicit aceeai unitate
funcional (MUL). I5 depinde de valoarea produs de I4 (are loc o dependen adevrat de date ntre I4 i I5).
I2, I5 i I6 sunt de asemenea conflictuale, pentru c solicit i ele o aceeai unitate funcional (ADD).

Lansare
(decodificare)

Execuie
Terminare
(scriere)

Ciclul
I1 I2 1
I3 I4 I1 I2 2
I5 I6 I1 3
I3 I1 I2 4
I4 I3 5
I5 I4 6
I6 I5 7
I6 8

Figura 7.4. Politica de execuie in-order issue with in-order completion

Politica de execuie cu lansare i terminare n ordine (in-order issue with in-order completion)

Arhitectura calculatoarelor CAPITOLUL VII

112
presupune ca instruciunile s fie lansate n execuie exact n ordinea lor secvenial din program, ca n figura 7.4.
Nici o instruciune nu va putea fi deci aleas naintea celei anterioare din secven. De asemenea, o instruciune
nu va fi terminat dac nu s-a terminat execuia precedesoarei sale.
Aa cum se poate observa i din figura 7.4, pentru a se respecta terminarea n ordine a execuiei, unele
instruciuni vor trebui oprite atunci cnd ele sunt n conflict sau atunci cnd unitatea de prelucrare are nevoie de
mai mult de un ciclu de ceas pentru a le trata. Cel care va detecta i rezolva (prin oprire) instruciunile cu
dependene adevrate de date sau cu conflicte de resurse va fi chiar procesorul.
Deoarece instruciunile sunt tratate n ordinea lor strict, paralelismul rezultat va fi foarte mult dependent
de modul n care este scris i compilat programul. Cu toate c n proiectarea procesoarelor superscalare se
urmrete ca detectarea i alegerea instruciunilor susceptibile de a fi executate n paralel s se fac prin tehnici
implementate hard i nu prin cele bazate pe compilatoare, contribuia acestora nu trebuie de loc ignorat.
S observm ce se ntmpl dac n secvena de instruciuni aleas n exemplul mai sus, I3 i I6 i
schimb poziiile ntre ele. Este evident c n aceast nou situaie perechile de instruciuni I6 - I4 i I5 - I3 pot fi
executate n paralel. Compilatoarele optimizate moderne pot efectua n program astfel de modificri ale poziiilor
instruciunilor, genernd secvene echivalente cu un potenial mult mai mare de paralelism. n exemplul
considerat, un astfel de compilator va genera prin schimbarea poziiilor lui I3 i I6 urmtoarea secven
echivalent:
I1: ADDF R12, R13, R14 (virgul flotant)
I2: ADD R1, R8, R9
I6: ADD R11, R2, R3
I4: MUL R5, R6, R7
I5: ADD R10, R5, R7
I3: MUL R4, R2, R3

Execuia n paralel de ctre procesor a perechilor I6 - I4 i I5 - I3 va duce la tratarea secvenei n numai
6 cicluri de ceas, n loc de 8, ct dura tratarea secvenei iniiale. Efectuai pentru clarificare o comparaie ntre
schemele din figurile 7.4 i 7.5).

Lansare
(decodificare)

Execuie
Terminare
(scriere)

Ciclul
I1 I2 1
I6 I4 I1 I2 2
I5 I3 I1 3
I6 I4 I1 I2 4
I5 I3 I6 I4 5
I5 I3 6
7
8

Figura 7.5. Politica de execuie in-order issue with in-order completion cu compilator optimizat

Politica lansrii i terminrii n ordine a instruciunilor permite ca procesorul s nu dispun de
mecanisme care s ia n considerare dependenele de ieire sau antidependenele, pentru c niciuna dintre
acestea dou nu pot s apar, dac tratarea se face strict secvenial.
Execuia n ordine presupune de asemenea c nici o nou instruciune nu va putea fi tratat atunci cnd
procesorul a detectat un conflict. Tratarea va fi reluat numai dup ce acesta a fost rezolvat. Rezult c
procesorul nu este nevoit s priveasc nainte pentru a gsi noi instruciuni de tratat n paralel cu cele curente.
Politicile de tip fr ordine (in order issue with out - of - order completion sau out - of - order
issue with out - of - order completion) i propun s rezolve problema seleciei anticipate a instruciunilor
eligibile pentru paralelism. Dintr-un set dat de instruciuni decodificate, procesorul poate alege n orice ordine pe
acelea care vor fi tratate, evident respectnd regula stabilit privind corectitudinea rezultatului programului.
S considerm pentru exemplificare aceeai secven de instruciuni despre care am discutat mai sus,

Arhitectura calculatoarelor CAPITOLUL VII

113
observm c I6 poate fi aleas pentru execuie naintea lui I5 i poate fi tratat n paralel cu I4. Noua secven de
execuie astfel obinut va dura acum 6 cicluri de ceas - conform cu schia din figura 7.6 -n loc de 8, ct dura
execuia secvenei cu ordinea original a instruciunilor.

Lansare
(decodificare)

Execuie
Terminare
(scriere)

Ciclul
I1 I2 1
I2 I3 I1 I2 2
I5 I6 I1 I3 I2 3
I6 I4 I1 I3 4
I5 I4 I6 5
I5 6
7
8

Figura 7.6. Politica de execuie out-of-order issue with out-of-order completion

n execuie fr ordine procesorul trrebuie s aib abilitatea de a detecta, pe lng dependenele
adevrate de date, i pe cele de ieire sau antidependenele, pentru c lipsa de ordine poate duce i la astfel de
conflicte.
ntr-o prim abordare, tratarea celor trei tipuri de dependene se poate face n mod obinuit, prin
ntrzierea execuiei unei anumite instruciuni pn cnd aceasta poate fi rezolvat. Am artat ns mai devreme
c paralelismul poate fi mbuntit prin eliminarea dependenelor false. De aceea, o a doua abordare propune ca
soluie alocarea automat a unor noi regitri pentru a stoca datele, atunci cnd a fost detectat o astfel de situaie
conflictual. Aceast tehnic se numete redenumirea regitrilor.
Spre exemplu, n secvena de instruciuni de mai jos apare o dependen de ieire, deoarece adunarea
se sfrete naintea nmulirii:
MUL R4, R3, R1 R4R3 x R1
.............................
ADD R4, R2, R5 R4 R2 + R5
ntr-o alt secven, prezentat mai jos, poate aprea o antidependen deoarece operandul din R3 este
utilizat nainte ca el s fie rescris:
MUL R4, R3, R1 R4R3 x R1
.............................
ADD R3, R2, R5 R3 R2 + R5
Dac dorim eliminarea dependenelor de mai sus prin tehnica redenumirii regitrilor, putem alege - de
exemplu - un nou registru (R6), n care se stocheaz valoarea R2+R5.
Cele dou secvene de instruciuni se vor modifica n acest caz astfel:
MUL R4, R3, R1 R4R3 x R1
.............................
ADD R6, R2, R5 R6 R2 +R5
(n loc de ADD R4, R2, R5)
i:
MUL R4, R3, R1 R4R3 x R1
.............................
ADD R6, R2, R5 R6 R2 +R5
(n loc de ADD R3, R2, R5)

La finalul acestui capitol, vom ncerca s evideniem cteva concluzii. Funcionarea procesoarelor
supescalare este caracterizat prin implementarea a trei tehnici: utilizarea mai multor pipeline care lucreaz n
paralel, lansarea i terminarea tratrii instruciunilor n out - of - order i redenumirea regitrilor. Fiecare dintre

Arhitectura calculatoarelor CAPITOLUL VII

114
acestea ofer o mbuntire a performanelor.
Unele studii experimentale efectuate n scopul determinrii eficienei acestor tehnici au permis
specialitilor s fac urmtoarele constatri:
fr a fi asociat i cu alte tehnici, simpla adugare a unor uniti suplimentare de prelucrare tip pipeline
nu este eficient;
execuia tip out - of - order este cea mai potrivit pentru a permite procesorului s detecteze instruciuni
independente prin tehnica denumit cutare nainte;
redenumirea regitrilor poate crete performanele de paralelism al prelucrrii cu peste 30%, n acest
caz limitrile fiind reduse numai la dependenele adevrate;
este foarte important ca procesorul s aib o capacitate corespunztoare de citire/decodificare n avans
a instruciunilor, astfel nct el s poat s asigure o fereastr de execuie a acestora ct mai larg.
n ceea ce privete implementrile arhitecturilor superscalare, cteva dintre ele sunt remarcabile.
Procesoarele Power PC 604 i 620 posed ase uniti independente de execuie: cte una pentru predicia
salturilor, ncrcare/stocare date i calcul n virgul flotant i trei pentru calcul cu numere ntregi. Modelul 604
utilizeaz selecia instruciunilor n ordine i redenumirea regitrilor, pe cnd 620 dispune n plus i de facilitatea
de selecie out of order.
Procesorul Pentium nu este dotat dect cu trei uniti de prelucrare independente, dintre care primele
dou sunt destinate calculelor cu numere ntregi, iar ultima pentru operaiile n virgul flotant. Selecia
instruciunilor se face de asemenea n ordine. Arhitectura Pentium II permite tratarea simultan a cinci
instruciuni ntr-un ciclu de ceas. Selecia acestora se poate face i prin politica out - of - order.

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