lec9 - Pipelined Implementation Datapath Instruction Fetch...

Info iconThis preview shows pages 1–11. Sign up to view the full content.

View Full Document Right Arrow Icon
Reinman 10-2 Pipelined Implementation Datapath Instruction Fetch Instruction Decode/ Register Fetch Execute/ Address Calculation Memory Access Write Back Instruction memory Address 4 32 0 Add Add result Shift left 2 IF/ID EX/MEM MEM/WB M u x 0 1 Add PC 0 Write data M u x 1 Registers Read data 1 Read data 2 Read register 1 Read register 2 16 Sign extend Write register Write data Read data 1 ALU result M u x ALU Zero ID/EX Data memory Address
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Reinman 10-3 Data Hazards • When a result is needed in the pipeline before it is available, a “data hazard” occurs. IM Reg ALU DM Reg IM Reg DM IM Reg DM Reg IM Reg DM Reg IM Reg DM Reg CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 sub $2 , $1, $3 and $12, $2 , $5 or $13, $6, $2 add $14, $2 , $2 sw $15, 100( $2 ) R2 Available R2 Available R2 Needed R2 Needed
Background image of page 2
Reinman 10-4 Dealing With Data Hazards • Register file bypass eliminates one hazard. – First half-cycle of cycle 5: register 2 written – Second half-cycle: new value is read IM Reg ALU DM Reg IM Reg DM Reg IM Reg DM Reg IM Reg DM Reg CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 sub $2 , $1, $3 and $12, $6 , $5 or $13, $6, $8 add $14, $2 , $2 R2 Available R2 Available
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Reinman 10-5 Dealing with Data Hazards • In Software – insert independent instructions (or no-ops) • In Hardware – insert bubbles (i.e. stall the pipeline) – data forwarding
Background image of page 4
Reinman 10-6 Dealing with Data Hazards in Software IM Reg ALU DM Reg IM Reg DM Reg IM Reg DM Reg IM Reg DM Reg CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 sub $2 , $1, $3 nop add $12, $2, $5 nop Insert enough no-ops (or other instructions that don’t use register 2) so that data hazard doesn’t occur,
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Reinman 10-7 Code Scheduling to Avoid Stalls • Reorder code to avoid use of load result in the next instruction • C code for A = B + E; C = B + F; lw $t1, 0($t0) lw $t2 , 4($t0) add $t3, $t1, $t2 sw $t3, 12($t0) lw $t4 , 8($t0) add $t5, $t1, $t4 sw $t5, 16($t0) stall stall lw $t1, 0($t0) lw $t2 , 4($t0) lw $t4 , 8($t0) add $t3, $t1, $t2 sw $t3, 12($t0) add $t5, $t1, $t4 sw $t5, 16($t0) 11 cycles 13 cycles
Background image of page 6
Reinman 10-8 Where are No-ops needed? • sub $2, $1,$3 • and $4, $2,$5 • or $8, $2,$6 • add $9, $4,$2 • slt $1, $6,$7 • Are no-ops really necessary?
Background image of page 7

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Reinman 10-9 Handling Data Hazards in Hardware • Stall the pipeline sub $2 , $1, $3 add $12, $2 , $5 or $13, $6, $2 add $14, $2 , $2 IM Reg DM Reg IM Reg DM IM Reg DM Reg IM Reg DM Reg CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 Bubble Bubble
Background image of page 8
Reinman 10-10 Handling Data Hazards in Hardware sub $2, $1, $3 add $12, $3, $5 or $13, $6, $2 add $14, $12, $2 IM Reg DM Reg IM Reg DM IM Reg DM Reg IM Reg DM Reg CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 Bubble Bubble sw $14, 100 ($2) Reg IM Reg DM CC9 CC10 CC11 Bubble
Background image of page 9

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Reinman 10-11 Pipeline Stalls • To insure proper pipeline execution in light of register dependences, we must: – Detect the hazard – Stall the pipeline • prevent the IF and ID stages from making progress – the ID stage because we can’t go on until the dependent instruction completes correctly – the IF stage because we do not want to lose any instructions.
Background image of page 10
Image of page 11
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 06/09/2010 for the course CS 152 taught by Professor Staff during the Spring '98 term at UCLA.

Page1 / 60

lec9 - Pipelined Implementation Datapath Instruction Fetch...

This preview shows document pages 1 - 11. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online