Pipelining Föreläsning 4. T exe — CPU-exekveringstid I — Antalet exekverade instruktioner CPI — Genomsnittligt antal klockcykler per instruktion T c —

Slides:



Advertisements
Liknande presentationer
IT för personligt arbete F5
Advertisements

Simulering av MIPS32 4K med TLB och CACHE Andrei Krougliak Simon Olsson Luleå tekniska universitet 2005.
Vecka 47 Måndag Onsdag Vecka 48 Måndag Torsdag Fredag Vecka 49 Måndag Onsdag Torsdag Vecka 51 Onsdag 19 dec Här och nu! tenta.
Datorarkitekturer och operativsystem
EDA Digital och Datorteknik
Föreläsning 7 Analys av algoritmer T(n) och ordo
Minnesteknologier Teknologi Accesstid Kostnad $/GB SRAM 1 ns 1000 DRAM
William Sandqvist Datorteknik övning 2 Subrutinanrop William Sandqvist
PC-teknik Repetition enligt önskemål som inkommit via mail. (täcker alltså inte alla moment i kursen)
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.
Denna föreläsning zVad kursen handlar om zKursupplägg, litteratur, bra att veta zPrestanda - ämnet för dagen.
En vanlig femstegspipeline FDEMW FDEMW FDEMW FDEMW tid.
En vanlig femstegspipeline FDEMW FDEMW FDEMW FDEMW tid.
Distribuerade filsystem
Algoritm analys och rekursiva metoder kap 5,7
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.
INFÖR NATIONELLA PROVET
Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1
Att gå från magkänsla till faktabaserad utveckling Stöd för förskolor och skolor som vill ordna analysgrupp Metoden har utvecklats och prövats i Eu-projektet.
Styrteknik: Programmering med MELSEC IL PLC2A:1
TÄNK PÅ ETT HELTAL MELLAN 1-50
DATABASHANTERING för programmerare Lektion 4 Mahmud Al Hakim
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 4 ( ) Innehåll: - Förening av dataströmmar - Signaler - Signalhantering.
William Sandqvist Kodlåsmall lockmall.vhd William Sandqvist
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 6 ( ) Innehåll: -Producent – konsument problemet -Förmedling av fildeskriptorer.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 6: Process- synkronisering.
2G1510 Datorteknik fk Föreläsning 1, hösten 2003.
William Sandqvist PIC PIC (Peripheral Interface Computer) är en datorkrets med ”allt i ett”. Prog Mem. Programminnet är 2048 instruktioner.
Lågnivåprogrammering Översikt av I/O-mekanismer i hårdvara Olika språkkrav och modeller för komponent- hantering(device driving) Modeller för komponent-hantering.
Problemlösningsmetodik
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.
Anders Sjögren Går det att simulera vår värld med 1:or och 0:or ?
Cacheminnen: skrivning ● Träff ● Skrivbuffert ● Miss.
Emulatorkonstruktion Schema Inledning Andra metoder Mina metoder Demonstration av min C64-emulator Sammanfattning och frågor.
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.
Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45 Adderare Addition av två tal innebär att samma förfarande upprepas för varje position i talet. För varje.
PROCESSPROGRAMMERING Föreläsning 1 ( )‏ Innehåll: Introduktion till paralellprogrammering (“concurrent programming”)‏ Introduktion till parallellprogrammering.
William Sandqvist ReadModifyWrite-problemet PORTB = 0; PORTB.0 = 1; PORTB = PORTB; Vilket värde har portpinnen RB1 nu ? Förmodligen ”1”,
2 April 2015 IS1200 Datorteknik o k, föreläsning CE - F31 IS1200 Datorteknik Föreläsning CE F3 Metoder / subrutiner Kursboken, delar av kapitel 4.
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.
Antalet operander/instruktion z0 - stackmaskin yADD - adderar värdena överst på stacken, tar bort dem och lägger dit summan z1 - ackumulatormaskin yADD.
Diskret stokasticitet Projekt 2.3, Talltita
2G1518 Datorteknik Föreläsning 5 Bussar In- och utmatning (Input/Output, I/O) Programstyrd pollning hösten 2005 för D3 och CLMDA m fl.
William Sandqvist Datorteknik övning 1 Introduktion till assemblerprogrammering av Nios II William Sandqvist
1 June 20152G1502, föreläsning 3, vt G1502 Datorteknik allmän kurs Föreläsning 3 Metoder och subrutiner Kursboken, valda delar av kapitel 4 version.
1 June G1518, Förel 10, ht2005 (D3/CLMDA)1 2G1518 Datorteknik, ht 2005 version för D3 och CLMDA Föreläsning Processorkonstruktion 2. DMA, Direct.
1 June G1502, Föreläsning 9, vt2004 för IT1 2G1502 Datorteknik allmän kurs Föreläsning 9 1. Processorkonstruktion 2. DMA, Direct Memory Access 3.
2 June G1502, Föreläsning 8, vt2004 för E och I1 2G1502 Datorteknik allmän kurs Föreläsning 8 Processorkonstruktion DMA, Direct Memory Access.
12 June G1518, Föreäsningl 8, vt07 (E/I/CL)1 2G1518 Datorteknik Föreläsning 8 Cache Memory vt 2007 (period 3-4) för E, I och CLMDA.
William Sandqvist Övning 10 Processorkonstruktion med pipe-line.
1 2G1502 Datorteknik allmän kurs Föreläsning 3 Programmering med hopp Programmering av Nios.
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.
30 July 2015 IS1200 Datorteknik föreläsning CE - F11 IS1200 Datorteknik Föreläsning CE F1 Computer Engineering Introduktion.
31 July 2015IS1200 Datorteknik, förel 101 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory Access 3. Byte-code i JAVA.
4 August 2015 IS1200 Datorteknik föreläsning CE - F91 IS1200 Datorteknik Övning 10.
William Sandqvist Övning 10 Processorkonstruktion med pipe-line.
15 August 2015 IS1200 Datorteknik föreläsning CE - F11 IS1200 Datorteknik Föreläsning CE F1 Computer Engineering Introduktion.
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.
Så fungerar en dator Mental bild av en dator
Vetenskapsprojekt, rubrik
Grundläggande datavetenskap, 4p
Kombinatoriska byggblock
Kombinatoriska byggblock
Digitalteknik 3p - Kombinatoriska Byggblock
Digitalteknik 3p - Kombinatoriska Byggblock
Presentationens avskrift:

Pipelining Föreläsning 4

T exe — CPU-exekveringstid I — Antalet exekverade instruktioner CPI — Genomsnittligt antal klockcykler per instruktion T c — Klockcykeltid T exe = I × CPI × T c Exekveringstidsformeln

Att bygga en dataväg Utgå från instruktionscykeln: 1. Hämta instruktionen från minnet och uppdatera programräknaren 2. Exekvera instruktionen Observera Steg 1 är gemensamt för alla instruktioner Steg 2 beror på typ av instruktion

PC + 4 Instruction Address Instruction Memory Enheter för instruktionsuthämtning

Read R1 Read R2 Write Data Write Reg Data R2 Data R1 Registers Write ALU ALU operation Enheter för instruktionsexekvering

Instruction Read R1 Read R2 Write Data Write Reg Data R2 Data R1 Registers Write ALU ALU operation Dataväg för ALU-instruktioner med tre operander

Sign extend Address Write Data Data Memory Read Data Instruction Read R1 Read R2 Write Data Write Reg Data R2 Data R1 Registers Write ALU ALU operation WriteRead Dataväg för LOAD, STORE

+ Shift left 2 Instruction Read R1 Read R2 Write Data Write Reg Data R2 Data R1 Registers Write ALU ALU operation PC+4 from instruction datapath Branch target To branch control logic Sign extend Dataväg för hoppinstruktioner

PC MUX + 4 Instruction Address Instruction Memory Sign extend Read R1 Read R2 Write Data Write Reg Data R2 Data R1 Registers ALU MUX + Shift left 2 Address Write Data Data Memory Read Data MUX Förenklad MIPS-modell

Uppdelning av instruktioner i klockcykler Balansera arbetet som utförs i varje klockcykel MIPS-instruktioner kan delas upp i fem steg: 1.Instruktionsuthämtning (IF) 2.Registerläsning och instruktionsavkodning (spekulativ hoppadressberäkning)(ID) 3.ALU-operation (exekvering, operandadressberäkning) (EX) 4.Minnesreferens (MEM) 5.Registerskrivning (WB)

Pipelinetekniken Exekvera instruktioner på löpande band Innan en instruktion är färdigexekverad kan nästa instruktion påbörja exekvering Jämför: –Löpande bandstillverkning av bilar –Tvättstugeanvändning

Uppdelning av MIPS-instruktioner i steg Balansera arbetet i varje steg Minne, register och ALU tar längst tid Låt varje steg utföras i en klockcykel Klockcykeltiden bestäms av det steg som tar längst tid MIPS instruktioner kan delas upp i fem steg: –IFInstruktionsuthämtning –IDInstruktionsavkodning/Registerläsning –EX ALU-operation –MEMMinneaccess –WBRegisterskrivning

beq $1,$0,L1 sub $4,$6,$2 add $5,$6,$7 lw $3,8($4) add $1,$0,$2 PC MUX + 4 Instruction Address Instruction Sign extend Read R1 Read R2 Write Data Write Reg Data R2 Data R1 ALU MUX + Shift left 2 Registers Address Write Data Data Memory Read Data MUX Memory 5 instruktioner samtidigt

Instruktionsklassernas användning av maskinvara i pipeline ALU- och store-instruktioner använder 4 steg branch-instruktioner använder endast 3 steg Enbart load-instruktionen använder alla 5 stegen

Konflikter i pipelinen — Hazards Data hazards — Databeroende i instruktionsströmmen Branch hazards — Konflikt i instruktionsuthämtningen för instruktioner som ändrar programräknaren (PC) Strukturella konflikter — När en funktionell enhet används i två eller fler steg samtidigt

Exempel på datakonflikt Resultatet av sub-instruktionen behövs innan det är tillbakaskrivet i registerbanken sub $2,$1,$3 and $12,$2,$5 sw $15,100($2) or $13,$6,$2 add $14,$2,$2 Reg IMDM Reg IMDM Reg IMDM Reg IMDM Reg IMDM

Lösning av datakonflikter Inför återkoppling mellan stegen i pipelinen (bypassing eller forwarding) sub $2,$1,$3 and $12,$2,$5 sw $15,100($2) or $13,$6,$2 add $14,$2,$2 Reg IMDM Reg IMDM Reg IMDM Reg IMDM Reg IMDM

Minnesoperationen är inte klar när operanden behövs lw $2,100($1) and $12,$2,$5 sw $15,100($2) or $13,$6,$2 add $14,$2,$2 Reg IMDM Reg IMDM Reg IMDM Reg IMDM Reg IMDM Datakonflikt vid loadinstruktioner

lw $2,100($1) and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 Reg IMDM Reg IMDM Reg IMDM Reg IMDM Reg IMDM Lösning av datakonflikt vid loadinstruktioner nop Använd nop-instruktionen. Forwarding behövs också!

Med denna konstruktion hinner tre extra instruktioner exekveras innan hoppet verkligen sker 40 beq $1,$3,7 Reg IMDM Reg IMDM Reg IMDM Reg IMDM Reg IMDM Hoppkonflikter (branch hazards) 44 and $12,$2,$5 48 or $13,$6,$2 52 add $14,$2,$2 72 lw $4,50($7)

+ Lösning av hoppkonflikter 1 En enkel jämförare sätts in direkt på registerutgångarna. Den gör lite av vad ALU:n förmår. PC + 4 Instruction Address Instruction Sign extend Read R1 Read R2 Write Data Write Reg Data R2 Data R1 ALU MUX Shift left 2 Registers Address Write Data Data Memory Read Data MUX Memory =? MUX

Med denna konstruktion räcker det med en nop. Detta förklarar varför alla branch-instruktioner bara kan göra enkla tester: ==, !=, 0, >=0. 40 beq $1,$3,7 Reg IMDM Reg IMDM Reg IMDM Lösning av hoppkonflikter 2 44 nop 72 lw $4,50($7)

Reg IMDM Reg IMDM Reg IMDM Reg IMDM Reg IMDM