En vanlig femstegspipeline FDEMW FDEMW FDEMW FDEMW tid.

Slides:



Advertisements
Liknande presentationer
IT för personligt arbete F5
Advertisements

BAS-M Hur du på ett enkelt sätt administrerar din båtklubbs register.
IPad grundkurs.
X-mas algebra Är du redo? Klicka!!.
En genomgång av spelet: Dubbelkrig-Grön
Välkommen till kattens magiska värld
void hittaMax(int tal[], int antal, int *pmax) { int i; ??=tal[0]; for(i=1;i??) ??=tal[i]; } int main() { int v[]={1,2,3,4,2}; int.
Access med Sebastian och Robert
Publicera användbar information Erik Geijer tydligare.se Internetdagarna
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 5: CPU-schemaläggning.
Instruktioner Vilken grupp av frågor känner du att du instämmer mest med? Instämmer du i hög grad med de första 10 frågorna är din självkänsla lägre.
Mannitoltest Vid frågor ring Peter Josefsson , alt.
Vill du lära dig kort division?
Persondatorer Datorns internminne (Kapitel 6)
Nytt golv av finaste furu
OK? INTELLIGENSTEST!(?) Här är 4 frågor. Svara genast!
23 August 2014 IS1200 Datorteknik vt09, föreläsning 10, (E och I mfl)1 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory.
Adressöversättning zRepetition av virtuellt minne zTLB - cacheminne för sidtabellinformation zVirtuellt eller fysiskt adresserat cacheminne zTricket -
Denna föreläsning zVad kursen handlar om zKursupplägg, litteratur, bra att veta zPrestanda - ämnet för dagen.
Adressöversättning Repetition av virtuellt minne
En vanlig femstegspipeline FDEMW FDEMW FDEMW FDEMW tid.
Programmeringsteknik K och Media
Grundläggande programmering
9 September 2014IS1200 Datorteknik, förel 101 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory Access 3. Byte-code i JAVA.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 13: I/O-system.
En PowerPoint om PowerPoint
Information om hur man spelar Trafik!. Din väckarklocka ringer på morgonen och du går upp och gör dig i ordning. Efter en smaskig frukost är du på väg.
Programmering B PHP Lektion 2
Sektorn för Socialtjänst
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
HJÄRNGYMPA.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: Trådprogrammering i Java - Avbrott (”interrupts”) - Metoden join() -
Rollfördelning i funktionärsbåset Vem gör vad i Danicahallen.
The Square of Leadership School of Leadership,
Grundläggande programmering
Problemlösning Veckodagsproblemet Gissa talet Siffersumman.
Bildfabriken kan ställas in på olika sätt - se några exempel
= Passning eller skott = Löpning utan boll = Driver boll
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 4 ( ) Innehåll: - Förening av dataströmmar - Signaler - Signalhantering.
Transaktionshantering (kap 17+18)
= Passning eller skott = Löpning utan boll = Driver boll
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 6 ( ) Innehåll: -Producent – konsument problemet -Förmedling av fildeskriptorer.
Val av transport till resmålet.
2G1510 Datorteknik fk Föreläsning 1, hösten 2003.
31 March 2015IS1200 Datorteknik, förel 101 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory Access 3. Byte-code i JAVA.
31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)1 IS1200 Datorteknik Föreläsning 2 Vi bygger en processor Kursboken, valda delar av kapitel.
IS1200 Datorteknik Föreläsning CE F2 Vi bygger en processor Kursboken, delar av kapitel 7 31 March IS1200 Datorteknik föreläsning CE – F2.
1 386 Från s bits adressbuss –=>4GB minne kan adresseras 32 bits databuss max klockfrekvens: 40MHz Protected mode –virtuellt minne –segmentering.
Pipelining Föreläsning 4. T exe — CPU-exekveringstid I — Antalet exekverade instruktioner CPI — Genomsnittligt antal klockcykler per instruktion T c —
Cacheminnen: skrivning ● Träff ● Skrivbuffert ● Miss.
Varför inte köra alla instruktioner samtidigt? zMåste vänta på: yresultat från andra instruktioner yatt resurser i processorn ska bli lediga yatt få veta.
William Sandqvist ReadModifyWrite-problemet PORTB = 0; PORTB.0 = 1; PORTB = PORTB; Vilket värde har portpinnen RB1 nu ? Förmodligen ”1”,
Varför inte köra alla instruktioner samtidigt? zMåste vänta på: yresultat från andra instruktioner yatt resurser i processorn ska bli lediga yatt få veta.
Uppgift 5 Tekniska rapporten En beskrivning av ett uppdrag ni har gjort i er grupp. Du ska bifoga en programmeringshandledning som visar hur man programmerar.
VARFÖR GÅR ÖSTERSUND ÖVER TILL TOPOBASE 2010 NU!!!
Föreläsning2 Operativsystem.
Uppstart iPad Höörs kommun.
William Sandqvist Övning 10 Processorkonstruktion med pipe-line.
14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)1 IS1200 Datorteknik Föreläsning 2 Vi bygger en processor Kursboken, valda delar av kapitel.
William Sandqvist Övning 10 Processorkonstruktion med pipe-line.
William Sandqvist KIA’s fabrik i Slovenien En bil i minuten lämnar bandet – tar det en minut att bygga en bil? Nej för KIA's fabrik utanför.
På vissa datorer behöver du trycka på F5 för att starta bildspelet.
Knappar i Excel Hoppa till Start Hoppa till Infoga Hoppa till Sidlayout Hoppa till Referenser Hoppa till Utskick Hoppa till Granska Hoppa till Visa Skriv.
Workshop 2: Skapa egna e-tjänster och skicka ärenden till era patienter.
Meddelanden Panel-PC Co-Driver 3.0, version 1.0.
Välkommen till kattens magiska värld
Grundläggande datavetenskap, 4p
Y 5.3 Kombinatorik Kombinationer
Presentationens avskrift:

En vanlig femstegspipeline FDEMW FDEMW FDEMW FDEMW tid

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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)