+ All Categories
Home > Documents > Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer...

Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer...

Date post: 15-Feb-2019
Category:
Upload: lydiep
View: 220 times
Download: 0 times
Share this document with a friend
37
Cresterea performantelor calculatoarelor Pipeline ANCA APĂTEAN - UTCN CURS 12
Transcript
Page 1: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

Cresterea performantelor calculatoarelor

Pipeline

A N C A A P Ă T E A N - U T C N

CURS 12

Page 2: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

2

Introducere

Introducere –reprezentarea informatiei in calculator. Tipuri de

calculatoare

Arhitectura calculatoarelor personale/ PC.

Istoria familiei de procesoare x86

Istoria calculatoarelor. Calculatorul von

Neumann.

Din interiorulPC-ului

Memoria in PC.

Memoria cache.

Echipamente periferice.

Control transfer de date.

Polling, Intreruperi, DMA.

Bus-uri si interfete folosite in PC.

ISA, PCI, PCIe,

IDE/ATA, SCSI, RS232, USB, IEEE 1284, etc

Din exteriorulPC-ului

Echipamente de stocare date: FD, HDD, SSD,CD/DVD, Flash USB

Echipamente de intrare-iesire: monitor,

tastatura, mouse, interfata grafica,

interfete audio, etc

Identificarea

si configurarea resurselor PC

Crestereaperformantelor

PC-ului

Clasificarea Flynn.

Paralelismul în prelucrarea datelor.

CISC vs RISC

Arhitecturi VLIW, EPIC,Prelucrare

secventiala si secvential-paralela

Pipeline/Superpipeline.

Scalar/Superscalar

Comparatie arhitecturi procesoare de uz general

(GPP), DSP, MicroC, DSC, SoC.

Evaluareaperformantelor

PC-ului

Evaluarea performantelor calculatoarelor. Benchmark-uri.

5.4. InstrucŃiuni pentru operaŃii cu şiruri

5.4.1. InstrucŃiuni pentru operaŃii primitive

A N C A A P A T E A N - U T C N

Tematica material

Page 3: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

- prezentarea principalelor notiuni despre prelucrarea paralela(pipeline)

- intelegerea si asimilarea principapelor aspecte prin parcurgerea de exemple, exercitii adaptatepreluate din viata de zi cu zi

- intelegerea principalilor indicatori pipeline:

cresterea (castigul) vitezei / eficienta / rata de transfer prin exemple

- urmarirea principalelor probleme care pot sa apara in pipeline si propunerea de solutii pentrurezolvarea acestora

- urmarirea metodelor de crestere a performantelor procesoarelor actuale

A N C A A P Ă T E A N - U T C N

PipelineObiective curs

Page 4: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

Exista paralelism :

- vizibil programatorului

=> tehnici noi de programare “concurenta”, adaptate arhitecturilor paralele – dificile, pt ca omulin mod natural are o gandire secventiala

- “ascuns” = ILP (Instruction Level II-ism)

– prin folosirea de arhitecturi de prelucrare de tip PIPELINE- din exterior, pare ca lucreaza secvential

(adica exista o singura secventa de executie a instructiunilor)

- in interior: exista de fapt mai multe unitati functionale ce prelucreaza in paralel mai multeinstructiuni aflate in faze diferite de executie

- e gestionat automat de unitatea centrala a CPU si compilator

Ex: linia de asamblare – ideal (teoretic): creste viteza de prelucrare

de un nr de ori egal cu nr posturilor de lucru

A N C A A P Ă T E A N - U T C N

PipelineParalelismul in prelucrarea datelor

Page 5: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

Exemplul unei spalatorii de haine (movie)

4 persoane (Ann, Brian, Cathy, Dave) au haine ce trebuie spalate, uscate si calcate

Spalarea dureaza 30 minute

uscarea dureaza 40 minute

calcarea dureaza 20 minute

A B C D

PipelineUn exemplu cunoscut

A N C A A P A T E A N - U T C N

[Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”]

Page 6: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

Operarea secventiala a sarcinilor dureaza 6 ore pt cele 4 incarcaturi de haineDaca ar fi folosit pipeline, cat ar fi durat ?

A

B

C

D

30 40 20 30 40 20 30 40 20 30 40 20T

a

s

k

O

r

d

e

r

6 PM 7 8 9 10 11 Midnight

Time

13. PipelineUn exemplu cunoscut (2)

A N C A A P A T E A N - A C E P - U T C N

[Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”]

Page 7: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

Operarea folosind Pipeline dureaza 3.5 ore pt cele 4 incarcaturi de haine

A

B

C

D

6 PM 7 8 9 10 11 Midnight

T

a

s

k

O

r

d

e

r

Time

30 40 40 40 40 20

13. PipelineUn exemplu cunoscut (3)

A N C A A P A T E A N - A C - U T C N

[Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”]

Incepe lucrul ASAP

Page 8: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

Specificul liniei pipeline:mai multe sarcini realizate simultan,

in paralel

Eficienta liniei pipeline – afectata (redusa) de :- stagiul cel mai lent (durata lui)

(uscarea dureaza 40 minute vs 30 min sau 20 min)

- durata diferita (neechilibrata) a stagiilor pipeline - timpul de umplere si cel de golire al liniei pipeline

Castigul potential = nr de stagii pipeline

A

B

C

D

6 PM 7 8 9

T

a

s

k

O

r

d

e

r

Time

30 40 40 40 40 20

13. PipelineUn exemplu cunoscut (4)

A N C A A P A T E A N - A C - U T C N

[Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”]

Page 9: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

PipelinePipeline – ce este ?

p

A N C A A P A T E A N - U T C N

9

Pipelining = o metoda de imbunatatire a performantelor unui procesor sau a unei UAL in care mai multe instructiuni sunt suprapuse in executie

(se executa in paralel faze diferite ale instructiunilor).

- introdusa in 1964 prin calculatoarele IBM 7030 si CDC 6600- reintrodusa incepand cu 1985 de microprocesoarele RISC

Pipelining-ul este cheia vitezei procesoarelor actuale.

Viteza se obtine prin cresterea ratei de executie a instructiunilor.

Caracteristici pipeline - ideal:

- toate instructiunile sa aiba aceeasi lungime

- numar mic de formate de instructiuni

- operanzii din memorie sa apara numai in instructiuni de incarcare si salvare

- in gen sunt caracteristice pentru procesoarele RISC

- procesoarele 80x86 au instr de 1-17 octeti, nr mare de moduri de adresare, instructiuni cu operanzi in memorie => pt sisteme CISC, pipelining-ul e o mare provocare !

Page 10: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

10

Un pipeline simplu O instructiune se executa in 3 pasi:F-Fetch, D-Decode, E-Execute

PipelineUn pipeline simplu cu 3 etaje

A N C A A P A T E A N - U T C N

F,D,E = operatii realizate de componente independente unele de altele- fiecare din aceste componente, imediat ce a terminat taskul curent, se pregateste pt urmatoarea operatie: - acest proces de creare a unei cozi de instructiuni = pipelining

F D E

T1 T2 T3

Instructiunea

7 cicluri

F D E

F D E

F D E

F D E

F D E

15 cicluri

F D E

T1 T2 T3

F D E

T1 T2 T3

F D E

T1 T2 T3

F D E

T1 T2 T3

F D E

T1 T2 T3

=> Mai mult de 50% din timp s-a salvat

Page 11: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

11

Nr cicluri (fara pipeline): 3 x nr instruct- pt o arhit pipeline sunt necesare 2 cicluri pt “umplerea” structurii de pipeline =>

toate cele 3 componente ale CPU sunt ocupate, dar odata realizata aceasta umplere, se vaexecuta cate o instructiune la fiecare ciclu -> amortizarea sistemului

Nr cicluri (cu pipeline) = 2 + nr instruct- pe masura ce creste nr instruct, eficienta devine tot mai mare

Exemplu: a) comparati nr cicluri necesare pt executia a 50 instruct intre un CPU fara pipeline (secvential) si unul cu pipeline pt sistemul anterior, in care o operatie se executa in 3 stagii; b) acelasi enunt pt un nr de 1000 instructiuni; c) dar daca sistemul ar avea 8 stagii si ar executa 1000 instructiuni ?

Solutie:a) Nr cicluri (fara pipeline) = 3*50=150 cicluri

Nr cicluri (cu pipeline) = 2+50=52 cicluri=> s-au economisit 98 cicluri ! => doar 35% din timp e ocupat !

b) Nr cicluri (fara pipeline) = 3*1000=3000 cicluriNr cicluri (cu pipeline) = 2+1000=1002 cicluri

=> aprox 33,5% din timp e ocupat ! c) Nr cicluri (fara pipeline) = 8*1000=8000 cicluri

Nr cicluri (cu pipeline) = 7+1000=1007 cicluri=> doar 13,3% din timp e ocupat !

PipelineUn pipeline simplu cu 3 etaje (2)

A N C A A P A T E A N - U T C N

Page 12: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

12

Principiul pipeline-ului este cel al liniei de montaj (de asamblare):- împărţirea unei sarcini în mai multe sub-sarcini de durate egale, numite etajesau stagii;- executarea simultană a diferitelor sub-sarcini din mai multe sarcini.

=> se măreşte debitul de sarcini al sistemului

Sistemul va fi caracterizat de 2 parametri: - durata individuală a unui etaj (T ) şi - numărul de etaje (l ) din pipeline.

Latenţa L este durata totală de execuţie a unei sarcini: L= l*T

IF ID OF EX WB

Instructiunea

Ex: O instructiune se executa in 5 pasi:1. (IF) Extragere instructiune din memorie 2. (ID) Decodificare instructiune3. (OF) Acces operand in memorie4. (EX) Executie operatie sau calcul adresa memorie5. (WB) Scrie rezultat intr-un registru

T1 T2 T3 T4 T5

PipelinePrincipiul pipeline

A N C A A P A T E A N - U T C N

Page 13: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

13

Fazele de executie ale unei instructiuni: (exemplu)1.Incarcare instructiune – citeste instructiunea din memorie (instruction fetch=IF)2.Decodificare instructiune – identifica operatia de executat (instruction decoding=ID)3.Incarcare operand – adresarea si citirea operandului (operand fetch=OF)4.Executie instructiune – executa operatia specifica asupra operandului (execution=EX)5.Scriere rezultat- actualizarea operandului destinatie (write back =WB)

CPI=5 (cicluri per instructiune)

IF ID OF EX WB IF ID OF EX WB IF ID OF EX WB

Instructiunea 1 Instructiunea 2 Instructiunea 3

PipelineExecutia secventiala - arhitectura scalara

A N C A A P A T E A N - U T C N

Page 14: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

14

IF ID OF EX WB IF ID OF EX WB

instrucţiunea i1 instrucţiunea i2Execuţie secvenţială: CPI = 5

T1 T2 T3 T4 T5 T6 T7 T8 T9 T10

Execuţie pipeline: CPI=1 (în cazul ideal) – o instructiune e gata intr-un singur ciclu !

i1

i2

i3

i4

i5

IF ID OF EX WB

IF ID OF EX WB

IF ID OF EX WB

IF ID OF EX WB

IF ID OF EX WB

T1 T2 T3 T4 T5 T6 T7 T8 T9 T10

Comparaţie între execuţia secvenţială şi executia de tip pipeline:

In acelasi ciclu de ceas, procesorul scrie rezultatul unei instructiuni in registri, executa operatia aritmetica a instructiunii urmatoare si citeste operanzii instructiunii de dupa instructiunea urmatoare.

PipelineExecutia paralela a instructiunilor

A N C A A P A T E A N - U T C N

Page 15: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

15

Procesarea paralelă a instrucţiunilor într-o arhitectură pipeline, poate conduce, în cazul

ideal, la terminarea unei instrucţiuni la fiecare perioadă de

ceas:

ideal - o instrucţiune pe ciclu de ceas : CPI=1

În cazul ideal:performanţa se va îmbunătăţi de un număr de ori = cu numărul de

nivele ale arhitecturii pipeline.

IF ID OF EX WB

Instructiunea 2

IF ID OF EX WB

Instructiunea 3

IF ID OF EX WB

Instructiunea 1

IDEAL

Probleme cheie pt procesoarele paralele : - cum partajeaza datele; - cum se sincronizeaza; - numarul maxim de procesoare.

PipelineExecutia paralela a instructiunilor (2)

A N C A A P A T E A N - U T C N

Page 16: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

16

Fie un sistem pipeline cu k stagii (etaje), cu durataciclului de ceas tp si care are de executat un numar de ninstructiuni (taskuri de intrare)

=> prima instructiune, de pe durata TI necesita k*tp timppentru a se executa in structura pipeline = “intarziere”, “latenta” -> executia completa a primului task- cele n-1 instructiuni ramase vor implica fiecare cate un timptp, deci (n-1)*tp pt a realiza toate cele n instructiunicu structura pipeline cu k etajesunt necesare (k*tp ) +(n-1)*tp = (k+n-1)*tp

sau k+(n-1) cicluri de ceas

PipelineCastigul obtinut prin pipeline

A N C A A P A T E A N - U T C N

Page 17: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

17

Care este cresterea (castigul) vitezei / eficienta / rata de transfer obt cu structura pipeline ?

Fara pipeline (secvential): tsecvential = n*tn cicluri, unde tn=k*tp

castigul=Tsecvential / Tpipeline => castigul=n*tn / (k+n-1)*tp , cand n >> k, n-> infinit => k+n-1-> n => castigul=k*tp / tp = k=> castigul vitezei e de aproximativ k ori, adica nr de stagii !

Eficienta = Cresterea vitezei / k = n*k / [(k+n-1)*k] = n / k+n-1Eficienta= cresterea vitezei pe etaj are valoarea maxima=1 atunci cand n-> infinitCand n=1 => E= 1/k = valoarea minima ce se poate obtine

Rata de transfer R a unui sistem pipeline = nr de taskuri pe care le poateprelucra in unitatea de timp

R=n/Tpipeline= n / ((k*tp ) +(n-1)*tp ) = cresterea vitezei / k*tp

PipelineCastigul obtinut prin pipeline

A N C A A P A T E A N - U T C N

Page 18: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

18

Exemplu:

Fie un sistem pipeline cu 5 stagii (etaje), cu durata ciclului de ceas 2,5 ns

si care are de executat un numar de 4 instructiuni (taskuri de intrare).

Sa se calculeze cresterea vitezei prin pipeline.

Solutie:

Pt executia secventiala sunt necesare: Tsecv=n*k*tp=4*5*2,5ns=50ns,

Iar pt cea cu pipeline sunt necesare Tpipe=k*tp+(n-

1)*tp=5*2,5+3*2,5=20ns

=> Cresterea vitezei = 50/20=2,5

PipelineCastigul obtinut prin pipeline(2)

A N C A A P A T E A N - U T C N

Page 19: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

Timpul necesar executiei instructiunilor poate varia:

- 8086 si 8088— in medie 12 cicluri la executia unei instructiuni

- 286 si 386— imbunatatesc valoarea la aproximativ 4,5 cicluri pe

instructiune (CPI)

- 486 si majorit procesoarelor compatibile Intel generatia a IV-a:

aproximativ 2 cicluri pe instructiune (CPI)

- Pentium/K6 si alte procesoare din generatia a V-a — includ 2

benzi pipeline + alte imbunatatiri, ajungand la 1 sau 2 instructiuni pe

ciclu ceas (IPC) = 1/CPI !!!

- generatiile de procesoare P6/P7 si cele mai noi – pot executa 3 sau

mai multe instr pe ciclu ceas (IPC)

A N C A A P Ă T E A N - U T C N

PipelineCompararea procesoarelor GPP la executia paralela a instruct

Page 20: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

Procesoare ce ruleaza la aceeasi viteza a ceasului au performante diferite, unele fiind mai rapide decat altele la realizarea unor sarcini.

De ex. Un 486 executa de 2x mai multe instructiuni decat un 386, in acelasi nr de cicluriPentium executa de 2x mai multe instructiuni decat un 486, in acelasi nr de cicluri

- un 486 la 133MHz nu e atat de rapid ca un Pentium la 75MHz, desi frecv ceasului e mai mare

- Pentium II si III sunt de aprox 50% ori mai rapide decat echivalentul lor Pentium la o anumita frecventa a ceasului pt ca pot executa instructiunile mai rapid- dupa Pentium III nu a mai fost atat de usor de comparat procesoarele doar pe bazavitezei ceasului -> au aparut arhitecturi interne mult diferite -> unele mai eficiente caaltele !

A N C A A P Ă T E A N - U T C N

PipelineCompararea procesoarelor la executia paralela a instruct

Page 21: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

Procesor Adancimepipeline

Pentium III, M/Core

10 stagii

Athlon/XP 10 stagiiAthlon 64/ Phenom/ II

12 stagii

Core 2/i5/i7 14 stagiiPentium 4 20 stagiiPentium 4 Prescott/ D

31 stagii

A N C A A P Ă T E A N - U T C N

Un pipeline mai adanc (cu mai multe stagii sau etaje) -> imparte instructiunilein microinstructiuni mai mici

-> frecventa ceasului mai ridicata

- daca unitatile de predictie a salturilor sau executiilespeculative esueaza

=> intreaga linie trebuie golita si reumplutacu noile instructiuni

Numarul de etaje pipeline per CPU

PipelineInfluenta numarului de etaje pipeline

Page 22: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

A N C A A P Ă T E A N - U T C N

Un CPU Intel CORE i7 executa mai multe instructiuni comparativ cu un Pentium III (ruland la aceeasi frecventa a ceasului)

in acelasi numar de cicluri de ceas (14 stagii vs 10 stagii)- desi odata cu cresterea adancimii pipeline-ului scade eficienta executieiinstructiunilor

(datorita posibilelor predictii eronate sau salturilor)frecventa ce rezulta e mai ridicata si poate compensa pierderea !

Ex: pt aceeasi tehnologie, un Pentium 4 poate rula la 3,4 GHz, iar un Athlon la doar 2,2 GHz- combinarea nr stagii mare + frecv ceas ridicata => cantitate de calduradisipata mare !!!

- in loc sa creasca frecventa ceasului, s-a optat pt cresterea performantelorprin combinarea mai multor procesoare intr-un singur chip (multi-core)

PipelineInfluenta numarului de etaje pipeline

Page 23: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

Sistemele pipeline se fol. la executia a miliarde de instructiuni -> banda = cea care conteaza !

In timp, s-au adaugat circuite (componente arhitecturale) care saincerce sa prezica ce va face fiecare componenta a CPU imediat ce va

termina sarcina curenta- in caz ca predictia e eronata, sa nu se piarda nimic,

deci rezultatul sa fie ignorat- in caz pozitiv: timp salvat => cod executat mai rapid

- pipeline-ul permite executia simultana a mai multor instructiuni/operatii:fol paralelismul prin suprapunerea fazelor de executie ale instructiunilor saua etapelor de executie ale unei operatii (extragere, decodificare, executie si

salvare rezultat)

PipelineProbleme ale sistemelor pipeline

A N C A A P A T E A N - U T C N

Page 24: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

O struct pipeline functioneaza eficient daca:- linia e complet incarcata si- nu exista situatii de oprire temporara a acesteia !

PROBLEMA este ca predictia trebuie sa fie corecta !- sa nu existe salturi prea multe in programe- de cate ori predictia e eronata, trebuie realizata din nou“umplerea” structurii

In realitate , exista anumite probleme care pot sa apara in pipeline: 1. Indisponibilitatea datelor2. Intarzieri produse de etaje3. Hazard

PipelineProbleme ale sistemelor pipeline

A N C A A P A T E A N - U T C N

Page 25: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

1. Indisponibilitatea instructiunilor- exista situatii in care sist. pipeline trebuie golit si reincarcat: la aparitia instructiunilorde salt sau intreruperi- timpul de reincarcare poate fi minimizat prin incarcarea in avans a

instructiunilor/datelor in buffere(in memoria cache de exemplu)

- se fol algoritmi de preincarcare – se asigura ca instructiuni potential necesare vor fi disponibile- prin fol. acestor algoritmi, intarzierile datorate conflictelor de acces la memorie pot fi reduse2. Intarzieri produse de etaje- daca un etaj executa operatii mai complexe comparativ cu alte etaje

=> timpul necesar pt terminarea acestor operatii va creste=> perioada de ceas trebuie aleasa in functie de acesti timpi

-> scade performanta sistemului- solutii posibile: divizarea etajului respectiv in mai multe etaje,

realizarea de copii ale acelui etaj

A N C A A P Ă T E A N - U T C N

PipelineProbleme ale sistemelor pipeline (2)

Page 26: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

1. Indisponibilitatea instructiunilor2. Intarzieri produse de etaje3. Situatii de HAZARD – daca o instructiune e disponibila, dar exista un alt motiv pt care ea nu poate fi executata

=> apare un hazard pt acea instructiuneHazardul = eveniment in pipeline care face ca instructiunea urmatoare sa nu poata fi executata

in urmatorul ciclu de ceas.Exista hazard: structural, de date, de control

A N C A A P Ă T E A N - U T C N

PipelineProbleme ale sistemelor pipeline (2)

Page 27: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

27

hazardurile structurale= conflicte generate de partajarea resurselor, ex: registre, memorie- apar daca structura hardware-ului nu suporta unele combinatii de instructiuni in

acelasi ciclu de ceas, ca urmare a unui conflict de acces la o resursaEx: 2 faze diferite ale unor instructiuni consecutive solicita aceeasi unitate structurala.Solutionare: - introducerea de stari de asteptare

- reordonarea instructiunilor,- duplicarea/multiplicarea unitatilor solicitate/resurselor din conflict

(memorii separate pt date si instruct)hazardurile de control- apar atunci cand trebuie luata o decizie bazata pe rezultatul unei instructiuni intimp ce alte instructiuni sunt in diferite faze de executie- sunt produse de modificari in ``controlul” (ordinea de executie) a programului,

datorate in special instructiunilor de saltSolutii:- predictia salturilor, memorarea salturilor anterioare, intarzierea executiei salturilor- salt intarziat – instructiunea de dupa instruct de salt se excuta intotdeauna=> rearanjarea instruct de catre compilator sau asamblor, sau introducerea de noop

A N C A A P A T E A N - U T C N

PipelineProbleme ale sistemelor pipeline (3)

Page 28: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

28

hazardurile structurale= conflicte generate de partajarea resurselor, ex: registre, memoriehazardurile de control- apar atunci cand trebuie luata o decizie bazata pe rezultatul unei instructiuni intimp ce alte instructiuni sunt in diferite faze de executiehazardurile de date– foarte dese si nu se poate pune baza pe compilator sau asamblor sa le rezolve prinrearanjarea instructiunilor- apar atunci cand o instr foloseste rezultatul instructiunii anterioare (care inca nu efurnizat - este inca in linia pipeline)- apar la existenta dependentelor de date intre instructiuni consecutive- instruct depinde de rezultatul unei instruct dinainte (care inca se executa in linia pipeline)Solutionare: Stari de asteptare, multiplicarea registrelor, reordonarea instructiunilor,forwarding (expedierea in avans a rezultatului catre instructiunea urmatoare), compilerscheduling – rezolvarea/ ordonarea instruct de catre compilator

A N C A A P A T E A N - U T C N

PipelineProbleme ale sistemelor pipeline (3)

Page 29: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

Exemplul 1:Se consideră execuția a zece instrucțiuni �� � ��� pe o structură pipeline cu următoarele 4 stagii (etaje):IF (instruction fetch), ID (instruction decode), IE (instruction execute), IS (instruction results store)Se presupune că instrucțiunea �� este un salt conditional și căatunci când este verificată condiția de salt aceasta nu e satisfăcută (deci nu se execută saltul).=> Când instrucțiunea de salt �� este în stagiul IF (adică e adusă din memorie) pipeline-ulse blochează până când rezultatul executiei instrucțiunii de salt este stocat.Ilustrați succesiunea de instructiuni din structura pipeline (diagrama Gantt)

R:

Problema – diagrama Gantt

A N C A A P Ă T E A N - U T C N

Page 30: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

Exemplul 2:

Se considera execuția următoarei secvențe de 3 instrucțiuni:

Se presupune că pipeline-ul are cinci etaje: IF, ID, OF(operand fetch), IE, IS.

R: diagrama Gantt:

Desi instrucțiunea ����� a fost decodificată cu success pe perioada k+2, aceasta instrucțiune nu poate înaintaîn etajul OF deoarece operandul ce ar trebui adus (OF) de instrucțiunea ����� pe perioada k+3 este rezultatuldin registrul R3 care va fi obținut abia în etajul IS al instrucțiunii ��� .Dependența datelor a apărut deoarece registrul R3 este destinația ambelor instrucțiuni ����� și ��� .

Problema – diagrama Gantt (2)

A N C A A P Ă T E A N - U T C N

������� � ����, ��, ��; �� ← �� � ������; �� ← �� �������, ��, ��; �� ← �� � ��

Page 31: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

31

Cresterea performantelor procesoarelor actuale se realizeaza pe 3 cai de extindere a pipeline-ului:1. Superpipelining (pipeline cu mai multe etaje, de exemplu 8)=> scurtarea duratei ciclului de ceas (cresterea frecventei procesorului,

ex 500 MHz - 1 GHz) prin simplificarea operatiilor executate in fiecare etapa.2. Superscalar (multiplicarea componentelor interne ale procesorului)=> lansarea in executie a mai multor instructiuni simultan

(2, 4, 6, ... instruct in fiecare etapa a pipeline => 2, 4, 6 ... pipeline-uriparalele)=> CPI (clock per instr)=> IPC (instr’s per clock cycle) e actualLanseaza mai multe instructiuni in acelasi ciclu de ceas. Dependenta de date este insa verificata de hardware aditional. Daca nu pot fi lansate in paralel, se va executa cate o instructiune secvential (neavand suport din partea compilatorului, exista si aceasta posibilitate).3. Dynamic pipeline scheduling (planificare dinamica pipeline) => pentru a elimina hazardurile prin hardware, instructiunile sunt lansate in executie fara a respecta secventa lor (daca nu exista dependente de date).=> Control mai complicat. Alte modele de executie (diferite de cel secvential).

PipelineExecutia paralela a instructiunilor

A N C A A P A T E A N - U T C N

Page 32: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

32

instr. i+2 IF ID OF EX WB

T1 T2 T3 T4 T5 T6

T1 T2 T3 T4 T5 T6

instr. i+1 IF ID OF EX WB

instr. i IF ID OF EX WB

CPI=1/2Arhitectura superscalara- lansarea simultană a mai multor instrucţiuni pe o perioadă de ceas, spre unităţi de execuţie multiple

CPI=1/2Arhitectura superpipeline- creşterea numărului de etaje pipeline şi lansarea succesivă a mai multor instrucţiuni pe o perioadă de ceas

Comparaţie între arhitectura superscalară şi superpipeline-pipeline cu 5 stagii

instr. i+3 IF ID OF EX WB

instr. i IF ID OF EX WB

instr. i+1 IF ID OF EX WB

instr. i+2 IF ID OF EX WB

instr. i+3 IF ID OF EX WB

PipelineExecutia paralela a instructiunilor

A N C A A P A T E A N - U T C N

Page 33: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

33

Obiectiv: reordonarea instruct pt evitarea situatiilor de hazard si implicit pt cresterea perform 1) Planificarea statica:Reordonarea instructiunilor in faza de compilareVLIW – Very Long Instructiun Word - Gruparea instr in super-instructiuni foarte lungi

Lanseaza mai multe instructiuni in acelasi ciclu de ceas. Compilatorul trebuie sa se asigure ca nu exista dependente de date intre acestea. VLIW este constient de numarul de unitati de executie(La procesoarele superscalare, numarul de unitati de executie este transparent pentru setul

de instructiuni)EPIC (Explicitly Parallel Instruction Computing)

asemanator cu VLIW, implementat de procesoarele Itanium si in DSP-uri. -Diferenta majora dintre EPIC si VLIW este aceea ca versiunile de VLIW nu sunt compatibile cu versiunile mai vechi (versiunile de EPIC sunt) - versiuni diferite de VLIW au nr diferit de unitati de executie. -Unele procesoare analizeaza codul in timpul executiei - presupune hardware aditional complex.

Procesoarele EPIC deleaga aceasta sarcina compilatorului. -presupune : compilatorul precizeaza inca de la compilare ce intructiuni se vor executa in paralel-procesorul trebuie sa si poata executa in paralel multe instructiuni-=> un procesor EPIC are multi registri, multe pipelineuri si cai de date largi.

PipelineExecutia paralela a instructiunilor

A N C A A P A T E A N - U T C N

Page 34: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

34

Obiectiv: reordonarea instruct pt evitarea situatiilor de hazard si implicit pt crestereaperformantelor1) Planificarea statica:Reordonarea instructiunilor in faza de compilare

2) Planificarea dinamica:- scop: eliminarea pauzelor (golurilor) in linia pipeline, ascunderea intarzierilor datorate memoriei(memory latency), executia speculativa a instr pe timpul cand se asteapta rezolvarea unui hazard Reordonarea instructiunilor in timpul executiei programuluiTehnici folosite: analiza fluxurilor de date, arbori de dependente, predictia salturilorInstructiunile sunt reordonate in timp ce sunt executate => poate sa gaseasca usor instructiuni care nu au dependenta de date intre ele, pentru a fi executate simultan.

PipelineExecutia paralela a instructiunilor

A N C A A P A T E A N - U T C N

Page 35: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

35

Procesarea paralelă a informaŃiei conduce la îmbunătăŃirea performanŃelor globale ale maşinii, fărămodificarea ciclurilor de bază ale procesorului.

CondiŃia de funcŃionare a arhitecturilor care permit execuŃia în paralel a mai multor instrucŃiuni:instrucŃiunile să fie independente.

Pipelining-ul = o tehnica care exploateaza paralelismul dintre instructiunile unui program secvential.

Avantajul substantial fata de multiprocesoare: pipelining-ul este fundamental invizibil (transparent) pentruprogramator.

Pipelining-ul creste- nr de instructiuni executate simultan- rata la care instructiunile sunt lansate si terminate.

Pipelining-ul nu scade timpul de executie al unei instructiuni (pentru unele instr acest timp creste - ex: 5 ciclide ceas pentru toate instr)

Setul de instructiuni poate simplifica sau complica munca proiectantilor de pipeline prin hazardurile care potsa apara: structurale, de control si de date.

Tehnici care rezolva problemele legate de hazarduri: predictia salturilor, expedierea in avans, pauzele (nop).

PipelineConcluzii

A N C A A P A T E A N - U T C N

Page 36: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

36

Fiecare inovatie (pipeline-uri lungi, executie superscalara, predictie dinamica a ramificarilor) inseamna un consum de milioane de tranzistoare asigurate de avansurile tehnologice.

Cele mai multe dificulati ale pipeliningului vin de la un set de instructiuni complicat- instruct cu lungimi foarte variabile => dezechilibrarea incarcarii etapelor pipeline- complicarea severa a detectiei hazardurilor si gestiunii exceptiilor;- moduri de adresare sofisticate, cu mai multe accese la memorie

=> complica detectia hazardurilor si complica fluxul prin pipeline

Cresterea vitezei e limitata de:- hazardurile de date => cresc timpul/instr prin mai multi cicli de ceas cu goluri- hazardurile de control => lungirea pipeline-ului inseamna ramificari mai lente- gestionarea registrelor pipeline limiteza descresterea lungimii ciclului de ceas.

PipelineConcluzii

A N C A A P A T E A N - U T C N

Page 37: Pipelineusers.utcluj.ro/~apateana/C_pipeline.pdf · [Prof. Jan M. Rabaey, Spring 2000, “Computer Architecture in Cory Hall”] ... -operanzii din memorie saaparanumai in instructiuni

Pipeline

Bibliografie principala

p

A N C A A P A T E A N - U T C N

37

[Barr2005] – Mostafa Abd-El-Barr, Hesham El-Rewini– “Fundamentals of Computer Organization and Architecture”, 2005

[Baruch2000] - Zoltan Baruch – “Arhitectura calculatoarelor”, Editura Todesco, 2000

[Brey1997] - Barry B. Brey- “The Intel Microprocessors”, 4th edition, 1997

[Henessy2007] - John Hennesy, David Patterson – “Computer Architecture – A quantitative Approach” , 2007

[Hide2001] - Randall Hide – “The Art of Assembly Language”, beta edition

[Lupu2012] – Eugen Lupu, Simina Emerich , Anca Apatean– “Initiere in Limbaj de Asamblare x86. Lucrari practice, teste si probleme”, Editura Galaxia Gutenberg, 2012

[Mueller2012] - Scott Mueller – “Upgrading and Repairing PCs”, 20th edition, 2012

[Null2003] - Linda Null, Julia Lobur– “The essentials of Computer Organization and Architecture”, 2003

[Patterson2009] – David Patterson, John Hennesy– “Computer Organization and Design – the hardware/software interface”, 4th edition, 2009

[Tarnoff2007] - David Tarnoff– “Computer Organization and Design Fundamentals”, editia intai revizuita, 2007


Recommended