Ladda ner presentationen
Presentation laddar. Vänta.
Publicerades avEmma Hansson
1
Pipelining Föreläsning 4
2
T exe — CPU-exekveringstid I — Antalet exekverade instruktioner CPI — Genomsnittligt antal klockcykler per instruktion T c — Klockcykeltid T exe = I × CPI × T c Exekveringstidsformeln
3
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
4
PC + 4 Instruction Address Instruction Memory Enheter för instruktionsuthämtning
5
Read R1 Read R2 Write Data Write Reg Data R2 Data R1 Registers Write ALU ALU operation Enheter för instruktionsexekvering
6
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
7
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
8
+ 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
9
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
10
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)
11
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
12
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
13
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
14
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
15
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
16
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
17
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
18
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
19
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å!
20
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)
21
+ 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
22
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)
23
Reg IMDM Reg IMDM Reg IMDM Reg IMDM Reg IMDM
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.