Presentation laddar. Vänta.

Presentation laddar. Vänta.

En vanlig femstegspipeline FDEMW FDEMW FDEMW FDEMW tid.

Liknande presentationer


En presentation över ämnet: "En vanlig femstegspipeline FDEMW FDEMW FDEMW FDEMW tid."— Presentationens avskrift:

1 En vanlig femstegspipeline FDEMW FDEMW FDEMW FDEMW tid

2 En superskalär femstegspipeline av grad 2 tid FDEMW FDEMW FDEMW FDEMW FDEMW FDEMW FDEMW FDEMW

3 Beroenden ger stopp i röret tid FDEMW FDEMW FDEMW FDEMW FDEMW FDEMW FDEMW FDEMW stall Instruktion 1 beräknar ett värde......som instruktion 2 använder

4 Extra hårdvara zÖkad bandbredd från instruktionscache zDubbla instruktionsavkodare zFler läsportar på registerfilen zBypassing ökar kvadratiskt (4n 2 ) zFlera funktionsenheter - dubbel ALU zFlera portar till datacacheminnet

5 Heltal parallellt med flyttal zInstruktionsuppsättningen har ofta separata register för heltal och flyttal zFunktionsenheterna är alltid separata zSällsynt med beroenden mellan heltals- och flyttalsinstruktioner zSeparata bypassvägar

6 Mer att göra för avkodaren zSka upptäcka beroenden zSka skicka instruktioner till rätt enhet zMer att göra tar längre tid - superskalära datorer har ofta 2-3 avkodningssteg zPPro/II/iii har 3-7 steg, beror på hur man räknar

7 Ny pipeline zTvå avkodningssteg, Decode och Register read zHoppinstruktioner: yEfter D-steget vet vi vart vi ska hoppa yEfter R-steget vet vi om vi ska hoppa FDREMW

8 Hopp blir dyrt tid FDREM FD--- F---- FDREM FDR-- FD--- F---- FDREM W - - W - - - W

9 Branch penalties zMisfetch penalty (1 cykel, D-steget) yförlorad tid när man hämtat ett hopp och gissar rätt att man ska hoppa zMispredict penalty (2 cykler, D + R) yförlorad tid vid felgissning yförst i R-steget vet man att gissningen var fel FDREMW Samtidigt hämtas alltid nästa instruktion i ordningsföljd

10 Superpipelining zstartar en instruktion per klockcykel zhar extra kort cykeltid yE1 och E2 behövs för ALU, en beroende instruktion kan inte starta i cykeln efter F1F2D1D2E1E2M1M2W1W2 FDEMW vanlig femstegspipeline superpipelinad av grad 2

11 Exempel zPentium Pro/II/iii, Pentium 4 är superpipelinade zExec tar 1 steg, decode tar många - ojämnt! Pentium: 5 steg PPro/II/iii: 10 steg P4: 20 steg

12 Latens (latency) zLatens - cykler tills resultat kan användas zALU-instruktioner har ofta latens 1 yberoende instruktion kan köras i nästa cykel - men inte i samma! zLOAD i femstegpipeline har latens 2 zHopp har ofta lång latens ysärskilt när hoppgissningen misslyckas

13 Genomsnittlig grad av superpipelining zAnta: yOm Load och hopp har latens 3, ALU 1 yLoad och hopp är vardera 25% av de utförda instruktionerna zGenomsnittlig grad av superpipelining: y0,25 x 3 + 0,25 x 3 + 0,50 x 1 = 2,0

14 Tolkning zVärdet 2 betyder att: ydet program som körs bör vara sådant att det för det mesta finns 2 saker att göra samtidigt yi genomsnitt ska varje instruktion följas av en oberoende instruktion zDet finns gränser för hur mycket som finns att göra samtidigt i typiska program yvärden på 2-4 är rimliga, knappast mer

15 Precisa felavbrott zDynamisk instruktionsschemaläggning ger problem: var var man vid felavbrottet? zPrecisa avbrott: det går att peka ut en instruktion, så att den och alla tidigare instruktioner är helt utförda, och alla senare instruktioner inte är utförda alls.

16 Hårdvara för precisa avbrott zHoppgissning i alla nya processorer zFelgissade hopp händer ofta, måste klaras zHårdvara för att ångra felspekulation finns zSamma kretsar används vid felavbrott

17 Instruktionsfönster zLagrar hämtade instruktioner zDatorn utför instruktioner ur fönstret zOm utförda instruktioner plockas bort direkt så blir felavbrotten oprecisa zSparas utförda instruktioner tills alla tidigare har utförts får vi precisa felavbrott

18 Instruktionsfönster FDREMWFDREMWFDREMWFDREMWFDREMWFDREMWFDREMWFDREMWFDREMW utförd och klar instruktions- fönster (fullt just nu) FDREMWFDREMW hämtas ej FDREMW

19 Instruktionsfönster med oprecisa avbrott FDREMW FDREMW FDREMW FDREMW FDREMW FDREMW FDREMW FDREMW FDREMW utförd och klar instruktionsfönster (fullt just nu) hämtad FDREMW FDREMW FDREMW utförd och klar

20 EMW EMW Instruktionsfönster med precisa avbrott - bild 1 FDREMW FDREMW FDRW FDREW FDREMW FDREMW FDRE FDREM FDREM utförd och klar instruktionsfönster (fullt just nu) FDR FDR hämtas ej FDREM Alla write- back-steg görs när den sista blir klar EM M

21 W W W W Instruktionsfönster med precisa avbrott - bild 2 FDREM FDREM FDREM utförd och klar instruktionsfönstret stegas fram hämtas ej FDREM FDREM FDREM FDREM FDREMW FDREMW FDREM DREMW nu hämtas de väntande instruktionerna

22 Reorder buffer - omordningsbuffert zLagrar färdiga resultat på väg till registret zKan kombineras med instruktionsfönstret zVäntar tills tidigare instruktioner är klara innan ett resultat skrivs till sitt register

23 Reorder buffer + instruktionsfönster zFIFO zPlats bokas vid avkodning av instruktion zNär instruktionens resultat är beräknat lagras det i reorder buffer zNär ett register ska läsas tittar man först i reorder buffer och väljer nyaste värdet

24 Reorder buffer vid felspekulation zVid felgissat hopp innehåller reorder buffer resultat från instruktioner som aldrig skulle ha utförts (hoppvillkoret var inte uppfyllt) zReorder buffer raderar snabbt de platser som bokats efter det felgissade hoppet (de senaste platserna i FIFOn nollställs)


Ladda ner ppt "En vanlig femstegspipeline FDEMW FDEMW FDEMW FDEMW tid."

Liknande presentationer


Google-annonser