pipeline timing issues

17
Interstage Buffers 1 Computer Organization II CS@VT ©2005-2013 McQuain Pipeline Timing Issues Consider executing: add $t2, $t1, $t0 sub $t3, $t1, $t0 or $t4, $t1, $t0 sw $t2, 0($t0) 0 1 2 3 4 tim e add sub or sw ...

Upload: elysia

Post on 23-Feb-2016

35 views

Category:

Documents


1 download

DESCRIPTION

Pipeline Timing Issues. Consider executing: add $t2, $t1, $t0 sub $t3, $t1, $t0 or $t4, $t1, $t0 sw $t2, 0($t0). time. 0. 1. 2. 3. 4. . sw. or. add. sub. Pipeline Timing Issues. What happens during cycle 1? Among other things… - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Pipeline Timing Issues

Interstage Buffers 1

Computer Organization IICS@VT ©2005-2013 McQuain

Pipeline Timing Issues

Consider executing:add $t2, $t1, $t0sub $t3, $t1, $t0or $t4, $t1, $t0sw $t2, 0($t0)

0 1 2 3 4

time

addsuborsw...

Page 2: Pipeline Timing Issues

Interstage Buffers 2

Computer Organization IICS@VT ©2005-2013 McQuain

Pipeline Timing Issues

What happens during cycle 1? Among other things…- sw reaches the ID stage, and Control sets MemWrite to 1- so, a memory write will occur while sub is in the MEM stage- and that’s bad news…

0 1 2 3 4

time

addsuborsw...

Page 3: Pipeline Timing Issues

Interstage Buffers 3

Computer Organization IICS@VT ©2005-2013 McQuain

Pipeline Timing Issues

What needs to happen instead?- the value of MemWrite that goes with sw…- … needs to travel forward, stage to stage as sw does

0 1 2 3 4time

addsuborsw...

0 1 2 3 4time

suborsw......

Page 4: Pipeline Timing Issues

Interstage Buffers 4

Computer Organization IICS@VT ©2005-2013 McQuain

Pipeline Timing Issues

What needs to happen instead?- the value of MemWrite that goes with sw…- … needs to travel forward, stage to stage as sw does

0 1 2 3 4time

orsw.........

So how do we make this happen?

Page 5: Pipeline Timing Issues

Interstage Buffers 5

Computer Organization IICS@VT ©2005-2013 McQuain

Adding Buffers

Put storage buffers between adjacent stages:

Control writes/reads with the clock signal.Write values exiting a stage to the “outbound” buffer.Read values entering a stage from the “inbound” buffer.

So no signal (or data value) arrives before its time…

Page 6: Pipeline Timing Issues

Interstage Buffers 6

Computer Organization IICS@VT ©2005-2013 McQuain

Pipeline Operation

Cycle-by-cycle flow of instructions through the pipelined datapath– “Single-clock-cycle” pipeline diagram

Shows pipeline usage in a single cycle Highlight resources used

– c.f. “multi-clock-cycle” diagram Graph of operation over time

We’ll look at “single-clock-cycle” diagrams for load & store

Page 7: Pipeline Timing Issues

Interstage Buffers 7

Computer Organization IICS@VT ©2005-2013 McQuain

IF for Load, Store, …

PC+4 is computed,

stored back into the PC,

stored in the IF/ID buffer although it will not be needed in a later stage for LW or SW

Instruction word is fetched from memory,

and stored in the IF/ID buffer because it will be needed in the next stage.

Write into the buffer

Page 8: Pipeline Timing Issues

Interstage Buffers 8

Computer Organization IICS@VT ©2005-2013 McQuain

ID for LoadBits of load instruction are taken from IF/ID buffer, while

new instruction is being fetched back in stage 1.

Read register #1 and #2 contents are fetched and stored in ID/EX buffer until needed in next stage… #2 won't be needed.

PC+4 is passed forward to ID/EX buffer...

16-bit field is fetched from IF/ID buffer, then sign-extended, then stored in the ID/EX buffer for use in a later stage.

Read from the buffer

Page 9: Pipeline Timing Issues

Interstage Buffers 9

Computer Organization IICS@VT ©2005-2013 McQuain

EX for LoadPC+4 is taken from ID/EX buffer and added to branch offset…

Read register #1 contents are taken from ID/EX buffer and provided to ALU.

Read register #2 is passed forward to EX/MEM buffer, for possible use in later stage… but won't be needed.

Computed branch target address is stored in EX/MEM buffer to await decision in next stage... but won't be needed.

ALU result and Zero line are stored in EX/MEM buffer for use as memory address in next stage.

16-bit literal is provided to ALU as second operand

Page 10: Pipeline Timing Issues

Interstage Buffers 10

Computer Organization IICS@VT ©2005-2013 McQuain

MEM for Load

Zero line taken from EX/MEM buffer for branch control logic in this stage…

ALU result is taken from EX/MEM buffer and passed to Address port of data memory.

ALU result also stored in MEM/WB buffer for possible use in last stage…

Read register #2 contents taken from EX/MEM buffer and passed to Write data port of data memory.

Value on Read data port of data memory is stored in MEM/WB buffer, awaiting decision in last stage..

Page 11: Pipeline Timing Issues

Interstage Buffers 11

Computer Organization IICS@VT ©2005-2013 McQuain

WB for Load

Since load instruction, value from data memory is selected and passed back to register file.

But the Write register port is now seeing the register number from a different, later instruction.

Page 12: Pipeline Timing Issues

Interstage Buffers 12

Computer Organization IICS@VT ©2005-2013 McQuain

Corrected Datapath for Load

So we fix the register number problem by passing the Write register # from the load instruction through the various inter-stage buffers…

…and then back, on the correct clock cycle.

Page 13: Pipeline Timing Issues

Interstage Buffers 13

Computer Organization IICS@VT ©2005-2013 McQuain

EX for StoreAlmost the same as for LW…

Read register #2 is passed forward to EX/MEM buffer, for use in later stage… for SW this will be needed.

Page 14: Pipeline Timing Issues

Interstage Buffers 14

Computer Organization IICS@VT ©2005-2013 McQuain

MEM for Store

Zero line taken from EX/MEM buffer for branch control logic in this stage…

ALU result is taken from EX/MEM buffer and passed to Address port of data memory.

ALU result also stored in MEM/WB buffer for possible use in last stage…

Read register #2 contents taken from EX/MEM buffer and passed to Write data port of data memory.

Value on Read data port of data memory is stored in MEM/WB buffer, awaiting decision in last stage..

Page 15: Pipeline Timing Issues

Interstage Buffers 15

Computer Organization IICS@VT ©2005-2013 McQuain

WB for Store

Since SW instruction, neither value will be written to the register file… doesn't really matter which value we send back…

Page 16: Pipeline Timing Issues

Interstage Buffers 16

Computer Organization IICS@VT ©2005-2013 McQuain

Questions to Ponder

Can you repeat this analysis for other sorts of instructions, identifying in each stage what's relevant and what's not?

How much storage space does each interstage buffer need? Why?

Do the interstage buffers have any effect on the overall time required for an instruction to migrate through the pipeline? Why?

Page 17: Pipeline Timing Issues

Interstage Buffers 17

Computer Organization IICS@VT ©2005-2013 McQuain

Summary

Here’s our final configuration for the buffers: