Sunteți pe pagina 1din 19

UNIVERSITATEA POLITEHNICA DIN BUCUREȘTI

FACULTATEA DE ELECTRONICĂ, TELECOMUNICAȚII ȘI TEHNOLOGIA


INFORMAȚIEI

TEMĂ SUPLIMENTARĂ ASC

EVALUAREA PERFORMANȚELOR STRUCTURILOR PIPE-LINE

PROF. DR. ING.: STUDENT:


ZOICAN SORIN SAVU DAVID ALEXANDRU

GRUPA
442D
BIBLIOGRAFIE:

1. PRINCIPIUL PIPE-LINE
2. PERFORMANȚA UNEI STRUCTURI PIPE-LINE NON-IDEALĂ
3. METODE PENTRU EVITAREA DEGRADĂRII PERFORMANȚELOR
STRUCTURII PIPE-LINE
1. PRINCIPIUL PIPE-LINE

Pipeline este o tehnică de creștere a vitezei de execuție totale a procesoarelor, fără a ridica tactul.
Ea constă în subdivizarea fiecărei instrucțiuni într-un număr de etape sau segmente, fiecare etapă
fiind executată de câte o unitate funcțională separată a procesorului.

Execuția normală a instrucțiunilor are loc în mod secvențial. Deci execuția unei instrucțiuni va
începe după terminarea ultimului stagiu al instrucțiunii precedente. Astfel, considerând modelul
descris mai sus, pentru a executa 3 instrucțiuni avem nevoie de 15 cicluri de ceas (considerând că
toate instrucțiunile folosesc toate stagiile).

A executa instrucțiuni în pipeline înseamnă că este câte o instrucțiune în fiecare stagiu la orice
moment dat. În timp ce o instrucțiune este în stagiul de execuție, alta este decodificată, alta este
adusă din memorie, etc. Asta duce la o reducere semnificativă a timpului de execuție al unui
program. În același timp în care puteam executa doar 3 instrucțiuni fără pipeline, putem executa
11 instrucțiuni în pipeline.

Trebuie totuși să aplicăm o constrângere asupra stagiilor. Fiecare stagiu trebuie să dureze la fel
de mult timp.

Fazele execuției unei instrucțiuni:


 Instruction fetch (IF): Instrucțiunea este adusă din memorie într-un registru de procesor.
 Instruction decode (ID): Instrucțiunea adusă anterior este decodificată și sunt
determinate unitățile și datele necesare execuției.
 Execute (EX): Acțiunea determinată anterior este executată.
 Memory access (MEM): Dacă este necesar, se accesează memoria de date.
 Register write back (WB): Dacă este necesar, se scriu date în registrele de procesor.
2. PERFORMANȚA UNEI STRUCTURI PIPE-LINE
NON-IDEALĂ

1.Performanța unei structuri pipe-line cu instrucțiuni de salt necondiționat


Apariția unei instrucțiuni de salt (condiționat sau necondiționat) în fluxul de instrucțiuni deja
încărcat în pipe-line determină modificarea contextului programului, ceea ce face ca
instrucțiunile din urmă să devină nefolositoare. Se va introduce un timp suplimentar necesar
golirii structurii pipe-line.
În cazul unei structuri pipe-line cu instrucțiuni de salt necondiționat, timpul suplimentar este:

unde p1 este probabilitatea ca instrucțiunea executată să fie salt, si t1 este numărul de tacte
necesar anulării instrucțiunilor deja incărcate in mod eronat in structura pipe-line.
Performanța va avea următoarea formă:

Cu ajutorul simulatorului “simpl”, va urma să simulăm pe baza a șase modele, funcționarea unei
structuri pipe-line cu instrucțiuni de salt necondiționat.
MODELUL 1:

În urma calculelor, au reieșit urmatoarele valori, pentru performanță:


Teoretic: Performanța = 76%
Simulat: Performanța = 72%

MODELUL 2:

Teoretic: Performanța = 86%


Simulat: Performanța = 84%
MODELUL 3:

Teoretic: Performanța = 68%


Simulat: Performanța = 63%

MODELUL 4:

Teoretic: Performanța = 76%


Simulat: Performanța = 65%
MODELUL 5:

Teoretic: Performanța = 76%


Simulat: Performanța = 79%

MODELUL 6:

Teoretic: Performanța = 76%


Simulat: Performanța = 82%
2. Performanța unei structuri pipe-line cu instrucțiuni de salt condiționat
O structură pipe-line cu instrucțiuni de salt condiționat este asemănatoare cu una de salt
necondiționat, diferența fiind faptul că în cazul saltului condiționat, condiția de salt va fi evaluată
atunci când instrucțiunea se află în execuție, si există o probabilitate ca saltul să se efectueze sau
nu.
Instrucțiunile de salt condiționat sunt mai dificil de gestionat față de alte instrucțiuni de salt,
deoarece pentru aceste instrucțiuni se va cunoaște doar în timpul execuției dacă o condiție de salt
este îndeplinită, deci dacă saltul va fi executat sau nu.
Timpul suplimentar este:

unde p2 este probabilitatea ca instrucțiunea executată să fie de salt condiționat, q este


probabilitatea ca saltul să se efectueze, iar t2 este numarul de tacte necesar anulării instrucțiunilor
deja incărcate in mod eronat in structura pipe-line.
Performanța va avea forma:

Cu ajutorul simulatorului “simpl”, va urma să simulăm pe baza a șase modele, funcționarea unei
structuri pipe-line cu instrucțiuni de salt condiționat.
MODELUL 1:

În urma calculelor, au reieșit urmatoarele valori, pentru performanță:


Teoretic: Performanța = 89%
Simulat: Performanța = 90%

MODELUL 2:

Teoretic: Performanța = 86%


Simulat: Performanța = 84%
MODELUL 3:

Teoretic: Performanța = 84%


Simulat: Performanța = 89%

MODELUL 4:

Teoretic: Performanța = 89%


Simulat: Performanța = 92%
MODELUL 5:

Teoretic: Performanța = 89%


Simulat: Performanța = 93%

MODELUL 6:

Teoretic: Performanța = 66%


Simulat: Performanța = 86%
3.Performanța unei structuri pipe-line cu instrucțiuni dependente
În cazul unei structuri pipe-line cu instrucțiuni dependente, execuția se desfășoară in felul
următor: o instrucțiune este dependentă de alta, acest lucru fiind cunoscut de la bun început, iar
instrucțiunea dependentă trebuie sa aștepte până la terminarea execuției instrucțiunii de care
aceasta depinde pentru a fi pusă în execuție si ea. Acest lucru creează goluri in structura pipe-
line.
Timpul suplimentar necesar este:

unde p3 este probabilitatea ca instrucțiunea să fie dependentă de o instrucțiune incărcata cu m


tacte anterior. Trebuie îndeplinită, în mod evident, condiția: m < k
Performanța va avea forma:

Cu ajutorul simulatorului “simpl”, va urma să simulăm pe baza a doua modele, funcționarea unei
structuri pipe-line cu instrucțiuni dependente.
MODELUL 5:

În urma calculelor, au reieșit urmatoarele valori, pentru performanță:


Teoretic: Performanța = 71%
Simulat: Performanța = 95%

MODELUL 6:

Teoretic: Performanța = 66%


Simulat: Performanța = 86%
4.Performanța unei structuri pipe-line cu instrucțiuni de acces la memorie
În cazul unei structuri pipe-line cu instrucțiuni de acces la memorie, vom avea o instrucțiune care
dorește sa acceseze memoria, iar celelalte instrucțiuni vor trebui să aștepte până la terminarea
execuției instrucțiunii care acceseaza memoria. Acest lucru produce goluri in structura pipe-line.
Instrucțiunile de acces la memorie tind să introducă intârzieri în execuție în special dacă datele
cerute nu se află în memoria cache.
Timpul suplimentar este:

unde p4 este probabilitatea ca instrucțiunea executată să fie de acces la memorie, iar t4 este timpul
suplimentar necesar accesării memoriei lente, exprimat in tacte pipe-line.
Performanța va avea următoarea formă:

Cu ajutorul simulatorului “simpl”, va urma să simulăm pe baza a doua modele, funcționarea unei
structuri pipe-line cu instrucțiuni de acces la memorie.
MODELUL 5:

În urma calculelor, au reieșit urmatoarele valori, pentru performanță:


Teoretic: Performanța = 68%
Simulat: Performanța = 84%

MODELUL 6:

Teoretic: Performanța = 68%


Simulat: Performanța = 83%
5.Performanța unei structuri pipe-line cu instrucțiuni mixte (salt, salt condiționat,
dependente si de acces la memorie)
În cazul unei structuri pipe-line cu instrucțiuni mixte, avem însumate toate cazurile prezentate
mai sus.
Performanța va avea forma:

Cu ajutorul simulatorului “simpl”, va urma să simulăm pe baza a doua modele, funcționarea unei
structuri pipe-line cu instrucțiuni mixte.
MODELUL 5:

În urma calculelor, au reieșit urmatoarele valori, pentru performanță:


Teoretic: Performanța = 56%
Simulat: Performanța = 66%
MODELUL 6:

Teoretic: Performanța = 54%


Simulat: Performanța = 80%
3. METODE PENTRU EVITAREA DEGRADĂRII
PERFORMANȚELOR STRUCTURII PIPE-LINE

Efectele prezentate anterior pot fi diminuate cu ajutorul mai multor metode. În primul rând, se
poate incerca scrierea programelor cu un numar relativ mic de instrucțiuni de comutare a
contextului (salturi condiționate, salturi necondiționate, apeluri de subrutine). In al doilea rând,
se pot aplica următoarele procedee software sau hardware:
a. Rearanjarea instrucțiunilor
b. Utilizarea unor predictoare de salturi
c. Utilizarea unor metode rapide de acces la memorie

a. Prin rearanjarea instrucțiunilor (efectuată de catre compilator sau manual) se micșoreaza


termenul (k  m 1) ceea ce reduce timpul suplimentar asociat instrucțiunilor
dependente.

b. Prin predicția salturilor se optimizează utilizarea structurii pipe-line evitându-se


reinițializarea acesteia dacă instrucțiunile corespunzătoare saltului în program au fost
încarcate în mod eronat.

c. Metodele rapide de acces la memorie (accesul simultan sau accesul concurent, utilizarea
de memorii cache cu o metodă de mapare ce conduce la o rată miss cache redusă) elimină
problema acceselor lente la memorie.
Referințe:
https://ro.wikipedia.org/wiki/Pipeline
http://elf.cs.pub.ro/cn/wiki/lab/cn1/lab09
http://discipline.elcom.pub.ro/asc/ASC_pipe_line/ASC_pl.pdf
http://users.utcluj.ro/~baruch/ssc/labor/Procesor-RISC.pdf

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