Sunteți pe pagina 1din 14

Evaluarea performantelor structurilor pipe-line

1. Principiul pipe-line (paralelism temporal). Cresterea vitezei de


prelucrare in raport cu o structura non-pipe-line
Cresterea vitezei de prelucrare intr-o structura pipe-line ideala, in raport cu o structura
non-pipe-line echivalenta, este ilustrata in figura 1.

Figura 1. Cresterea vitezei de prelucrare intr-o structura pipe-line ideala

Totusi, intr-o structura pipe-line reala, apar urmatoarele aspecte care influenteaza
performanta, in sensul scaderii vitezei de prelucrare. Acesti factori sint:

a. Echilibrarea vitezelor de prelucrarea a stagiilor pipe-line (nu toate stagiile de


prelucrare au, intotdeauna, aceeasi viteza; de exemplu accesul la memorii,
pentru incarcarea operanzilor, poate fi uneori mai lent)
b. Asigurarea incarcarii continue cu operanzi de intrare (instructiuni) – trebuie
asigurate mecansime rapide pentru incarcarea instructiunilor
c. Tipul instructiunii executate in structura pipe-line (comutarile de context:
instructiuni de salt, salt conditionat, apeluri de subrutina, dependentele dintre
instructiuni, instructiunile mai lente: accesul la memoria de date, instructiuni
de virgule mobile – conduc la anularea unor operatii deja efectuate si/sau la
oprirea temporara (stall) a functionarii structurii pipe-line, prin introducerea
unor goluri (holes) – tacte de neutilizare a stagiilor pipe-line.)

2. Performanta unei structuri pipe-line non-ideale


a. Expresia generala a performantei unei structuri pipe-line reale

Performanta unei structuri pipe-line cu k stagii este data de expresia:

1
Tk
P  lim
n  Tk  Ts

unde Tk este timpul (in numar de tacte pipe-line) necesar executiei a n instructiuni in
structura pipe-line cu k stagii, iar Ts este timpul suplimentar (in numar de tacte pipe-line)
datorat tipului de instructiune executata.
Exista relatia: Tk  k  n  1 , iar Ts depinde de tipul instructiunii executate.

b. Performanta unei structuri pipe-line cu instructiuni de salt

Aparitia unei instructiuni de salt conduce la necesitatea anularii unui numar de


instructiuni deja incarcate in structura pipe-line. Numarul acestor instructiuni depinde de
momentul in care se determina adresa de salt (ca in figura 2).
Timpul suplimentar este:
Ts  n  p1  t1
unde p1 este probabilitatea ca instructiunea executata sa fie de salt si t1 este numarul de tacte
necesar anularii instructiunilor deja incarcate in mod eraonat in structura pipe-line.
Rezulta performanta:

Tk k  n 1 1
P  lim  lim 
n  T  T n  k  n  1  n  p  t 1  p1  t1
k s 1 1

O situatie echivalenta este aceea a apelurilor de subrutina si a intreruperilor.

Figura 2. Aparitia instructiunilor de salt intr-o structura pipe-line

2
c. Performanta unei structuri pipe-line cu instructiuni de salt conditionat

Aparitia unei instructiuni de salt conditionat este similara aparitiei unei instructiuni de
salt (neconditionat). Figura 3 ilustreaza efectul aparitiei unei instructiuni de salt conditionat.

Figura 3. Aparitia instructiunilor de salt conditionat intr-o structura pipe-line

Timpul suplimentar este:


Ts  n  q  p 2  t 2
unde p 2 este probabilitatea ca instructiunea executata sa fie de salt conditionat, q este
probabilitatea ca saltul se se efectueze (taken) si t 2 este numarul de tacte necesar anularii
instructiunilor deja incarcate in mod eraonat in structura pipe-line.
Rezulta performanta:
Tk k  n 1 1
P  lim  lim 
n  T  T n  k  n  1  n  q  p  t 1  q  p2  t 2
k s 2 2

d. Performanta unei structuri pipe-line cu instructiuni dependente

In cazul aparitiei unei instructiuni dependente de o instructiune incarcata cu m tacte


anterior, este necesar ca instructiunea care produce dependenta sa se termine. Figura 4
ilustreaza aparitia unei instructiuni dependente.

3
Figura 4. Aparitia instructiunilor dependente intr-o structura pipe-line

Timpul suplimentar necesar este:

Ts  n  p3  (k  m  1)

unde p3 este probabilitatea ca instructiunea sa fie dependenta de o instructiune incarcata cu m


tacte anterior.
Trebuie indeplinita, in mod evident, conditia: m  k .
Rezulta performanta:

Tk k  n 1 1
P  lim  lim 
n  Tk  Ts n   k  n  1  n  p3  (k  m) 1  p3  (k  m  1)

e. Performanta unei structuri pipe-line cu instructiuni de acces la memorie

Aparitia unei instructiuni de acces la memorie are ca efect introducerea unui timp
suplimentar datorat timpului de acces la memorie. Se considera ca, in general, instructiunile
sint incarcate din registre sau memorii cache rapide ce lucreaza la viteza structurii pipe-line.
Figura 5 prezinta situatia in care o instructiune este incarcate dintr-o memorie lenta sau
a aparut o situatie de miss cache.

4
Figura 5. Aparitia instructiunilor de acces la memorie intr-o structura pipe-line

Timpul suplimentar este:

Ts  n  p 4  t 4

unde p 4 este probabilitatea ca instructiunea executata sa fie de acces la memorie si t 4 este


timpul suplimentar necesar accesarii memoriei lente, exprimat in tacte pipe-line.
In aceasta situatie, performanta este:

Tk k  n 1 1
P  lim  lim 
n  T  T n  k  n  1  n  p  t 1  p4  t 4
k s 4 4

f. Performanta unei structuri pipe-line cu instructiuni mixte (salt, salt


conditionat, dependente si de acces la memorie)

Considerind toate tipurile de instructiuni prezentate anterior, rezulta, prin suprapunerea


efectelor, performanta unei structuri pipe-line:

Tk k  n 1
P  lim  lim 
n  Tk  Ts n   k  n  1  n  [ p1  t1  q  p 2  t 2  p3  (k  m  1)  p 4  t 4 ]
1

1  p1  t1  q  p 2  t 2  p3  (k  m  1)  p 4  t 4

Observatie: In toate formulele anterioare, probabilitatile pot fi estimate prin frecvente de


aparitie (calculate ca raportul dintre numarul de aparitii a tipului de instructiune pentru care se
calculeaza probabilitatea de aparitie si numar total de instructiuni).
De asemenea, in formula anterioara, s-a considerat cazul cel mai defavorabil in care nu se
exclud instructiuni datorita salturilor effectuate.

5
3. Metode pentru evitarea degradarii performantelor structurilor pipe-
line

Exista mai multe metode prin care efectele prezentate anterior sa fie atenuate. Pe linga
faptul ca se poate incerca scrierea unor programe cu un numar relativ mic de instructiuni
de comutare a contextului (salturi, salturi conditionate, apeluri de subrutine), se pot aplica
urmatoarele procedee software sau hardware:

a. Rearanjarea instructiunilor
b. Utilizarea unor predictoare de salturi
c. Utilizarea unor metode rapide de acces la memorie

Rearanjarea instructiunilor (efectuata de catre compilator sau manual) micsoreaza


termenul ( k  m  1) ceea ce reduce timpul suplimentar asociat instructiunilor dependente.
Predictorul de salturi va reduce numarul de instructiuni incarcate in mod eronat, prin
aceea ca decizia efectuarii saltului se va lua cit mai devreme.
Metodele rapide de acces la memorie (accesul simultan sau accesul concurent, utilizarea
de memorii cache cu o metoda de mapare ce conduce la o rata miss cache redusa) elimina
problema acceselor lente la memorie.

4. Descrierea simulatorului pentru evaluarea performantelor


structurilor pipe-line

Evaluarea performantelor structurii pipe-line se efectueaza cu ajutorul unui simulator,


simpl, cu structura din figura 6

Figura 6. Structura simulatorului simpl (SIMulator Pipe-Line)

Simulatorul simpl are 4 blocuri functionale: un bloc principal – core, un bloc de


configurare, un bloc de generare a tipurilor de instructiuni si un bloc de afisare.

6
Se pot simula 6 modele de structuri pipe-line ilustrate in figura 7. Parametrii acestor
modele sint prezentati in tabelul 1.

Figura 7. Modelele structurilor pipe-line simulate in simulatorul simpl

Tablelul 1. Modele simulate in simpl


Model Numar Tipuri de Timp suplimentar Timp suplimentar Timp suplimentar
de stagii instructiuni pentru o pentru o pentru o
instructiune de instructiune instructiune de
salt dependenta acces la memorie
-salt
1 3 2 - -
-salt conditionat
-salt
2 3 1 - -
-salt conditionat
-salt
3 4 3 - -
-salt conditionat
-salt
4 4 2 - -
-salt conditionat
-salt
-salt conditionat
5 5 2 4-m 9
-dependente
-acces la memorie
-salt
-salt conditionat
6 6 2 5-m 9
-dependente
-acces la memorie

7
In aceste modele, testarea conditiei pentru salturile conditionate, calculul adresei de salt in
situatia in care conditia de salt este indeplinita si calculul adresei de salt pentru salturile
neconditionate se efectueaza in acelasi stagiu.

Modul de lucru cu simulatorul simpl este ilustrat in continuare.


1. Lansarea programului de evaluare a performantelor structurilor pipe-line, simpl

Dupa lansarea in executie a programului simpl, se deschid 2 ferestre: o fereastra


principala si o fereastra de configurare (figura 8).
Fereastra principala contine meniurile de selectarea a modelului pipe-line simulat
(Models), resetarea programului (Clear), afisarea rezultatelor simularii (Results), Help si
iesire din program (Quit).
Fereastra de configurare seteaza tipurile de intructiuni si probabilitatile de aparitie a
acestora si controleza modul de afisare a diagramei spatio-temporale ce ilustreaza
functionarea structurii pipe-line.

Figura 8. Ferestrele afisate dupa lansarea programului simpl

2. Meniurile ferestrei principale (figura 9).

Figura 9. Meniurile ferestrei principale a programului simpl

8
3. Meniurile ferestrei de configurare (figura 10).

Figura 10. Meniurile ferestrei de configurare a programului simpl

4. Meniurile ferestrei de afisare a performantelor (figura 11).

Se afiseaza grafic performanta structurii pipe-line conform modelului selectat sau


structura pipe-line selectata pentru simulare (ca in figura 7).

Figura 11. Meniurile ferestrei de afisare a performnatelor a programului simpl

Performanta structurii pipe-line este afisata ca in figura 12.

9
Figura 12. Afisarea performantei structurii pipe-line

4. Meniurile ferestrei de afisare a tipurilor de instructiuni (figura 13).

Se afiseaza (cu comanda Update) tipurile de instructiuni. Pentru instructiunile


dependente se trece in paranteza diferenta, in tacte pipe-line, dintre momentul de incarcare a
instructiunii dependente si momentul de timp la care s-a incarcat instructiunea care produce
dependenta.

Figura 13. Meniurile ferestrei de afisare a performantelor a programului simpl

Un exemplu de afisare a tipurilor de instructiuni este prezentat in figura 14.

Figura 13. Afisarea tipurilor de instructiuni

10
Sumarul comenzilor este urmatorul (comanda Help):

Fereastra principala (simpl)


Quit - OK (iesire din program)
Clear - OK (reinitializare program)
Models - 1, 2, 3, 4, 5, 6 (alegere model structura pipe-line)
Results - Performance View (Vizualizarea performantelor structurii pipe-line)
- Intructions View (vizualizarea tipurilor de instructiune)
Help - Help (afisare Help)
- About (afisare versiune program)

Fereastra de configurare (Configuration)


Check box (indica daca intructiunile de tipul corespunzator vor fi generate)
Sliders (indica probabilitatea de aparitie a tipului corespunzator de instructiuni)

Jump - instructiuni de salt


Cond Jump - instructiuni de salt conditionat
Taken % - indica procentual cite instructiuni de salt conditionat se vor efectua
Dep - instructiuni dependente
Mem - instructiuni de lucru cu memoria

Butoane:

START - porneste simularea executiei


NEXT - afiseaza urmatorul ecran din diagrama spatiu-timp
PREV - afiseaza ecranul anterior din diagrama spatiu-timp

Fereastra de afisarea a tipului de instructiuni (View)


Exit - OK (inchide fereastra)
Update - OK (actualizeaza informatia)

Fereastra de afisare a performantelor (performance)


Exit - OK (inchide fereastra)
View - Performance Graph (afisarea grafica a performantei structurii pipe-line)
- Model Diagram (afisarea modelului structurii pipe-line)

O sesiune de lucru cu programul simpl presupune urmatoarele etape, dupa lansarea in


executie a acestuia:

a) alegerea modelului de structura pipe-line (comanda Models, din fereastra principala).


b) configurarea tipurilor de instructiuni si a probabilitatilor de aparitie ale acestora,
conform cu modelul ales ( din feresatra de configurare).
c) simularea propriu-zisa (butonul START din fereastra de configurare)

11
d) vizualizarea diagramei spatio-temporale asociata executiei instructiunilor in structura
pipe-line si identificarea efectelor fiecarei instructiuni (butoanele NEXT si PREV din
fereastra de configurare)
e) vizualizarea si analiza tipurilor de instructiuni (comanda Results→ Instruction View,
din fereastra principala)
f) vizualizarea grafica si analiza performantei structurii pipe-line (comanda Results→
Performance View, din fereastra principala)

O noua sesiune de simulare incepe dupa comanda Clear, din fereastra principala.
Ferestrele asociate vizualizarii instructiunilor si performantei pot ramine deschise, de
la o sesiune de lucru la alta, dar trebuie actualizate dupa fiecare simulare (comanda
Update).

Etapele a) - f) sint ilustrate in continuare:

a) s-a ales modelul 6


b) s-au ales urmatoarele tipuri de instructiuni: salt – 5%, salt conditionat – 10%, salturi
conditionate efectuate – 20%, instructiuni dependente – 10% si instructiuni de acces la
memorie – 5%

Parcurgerea etapelor c) – f) este ilustrata in figura 14.

12
Figura 14. Exemplificarea utilizarii programului simpl .

Tex
Performanta este calculata astfel: P'  , unde Tex este timpul necesar
Tex  Tsup l
executiei instructiunilor si Tsup l este timpul suplimentar (instructiuni anulate si goluri),
exprimate in tacte pipe-line.

5. Desfasurarea lucrarii. Rezultate ale simularilor

1. Studiati efectul instructiunilor de salt, salt conditionat, dependente si de acces la


memorie asupra functionarii unei structuri pipe-line (comparatie intre figurile 1,
2,3,4,5).
2. Studiati modul de lucru al simulatorului simpl.
3. Studiati, separat, efectul instructiunilor de salt, salt conditionat, dependente si de acces
la memorie.
4. Comparati modelele 1 si 2, 3 si 4, respectiv 5 si 6. Pentru fiecare model calculati
frecventa de aparitie a fiecarei instructiuni si performanta structurii pipe-line.
Comparati performanta calculata cu performanta teoretica. Explicati diferentele.
5. Efectuati simularile din tabelul 2:

13
Nr. Crt. Modelul JMP JC Taken Dep. Mem. Performanta
1 1 5% 10% 60% - -
2 2 5% 10% 60% - -
3 3 10% 10% 30% - -
4 4 5% 10% 50% - -
5 5 5% 5% 20% 5% 5%
6 6 5% 5% 30% 5% 5%

Discutati rezultatele.

6. Precizati metode pentru imbunatatirea performantelor in cazul aparitiei instructiunilor


dependente.
7. Precizati metode pentru imbunatatirea performantelor in cazul aparitiei instructiunilor
de salt conditionat.
8. Cum este influentata performanta in functie de numarul de stagii pipe-line ? Discutie
dupa tipul instructiunii.

14

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