Pipelining
1
Pipelining 1 Today Quiz Introduction to pipelining 2 Pipelining - - PowerPoint PPT Presentation
Pipelining 1 Today Quiz Introduction to pipelining 2 Pipelining L L a a Logic (10ns) t t c c 10ns L L a a Logic (10ns) t t c c 20ns L L a a Logic (10ns) t t c c 30ns Whats the latency for one unit of
1
2
Logic (10ns)
L a t c L a t c
Logic (10ns)
L a t c L a t c
Logic (10ns)
L a t c L a t c
What’s the latency for one unit of work? What’s the throughput? 10ns 20ns 30ns
1.Break up the logic with latches into “pipeline stages” 2.Each stage can act on different data 3.Latches hold the inputs to their stage 4.Every clock cycle data transfers from one pipe stage to the next
Logic (10ns) L a t c L a t c Logic(2ns) L a t c L a t c Logic(2ns) L a t c Logic(2ns) L a t c Logic(2ns) L a t c Logic(2ns) L a t c
Logic Logic Logic Logic Logic Logic Logic Logic Logic Logic Logic Logic Logic Logic Logic Logic Logic Logic Logic Logic Logic Logic Logic Logic Logic Logic Logic Logic Logic Logic
6
Logic
7
Logic Logic Logic Logic Logic Logic
Logic Logic Logic Logic Logic Logic
8
Logic Logic Logic Logic Logic Logic
(i.e., the useful part)
do the inputs to a register need be ready?
the register.
9
10
pipelined design.
11
12
Fast Logic Slow Logic Slow Logic Fast Logic Fast Logic Slow Logic Slow Logic Fast Logic
basic algorithm for execution
13
14
EX Decode Fetch Mem Write back
EX Decode Fetch Mem Write back
15
16
Read Address
Instruc(on Memory
Add PC 4 Write Data Read Addr 1 Read Addr 2 Write Addr
Register File
Read Data 1 Read Data 2 16 32 ALU Shi< le< 2 Add
Data Memory
Address Write Data Read Data Sign Extend
Read Address
Instruc(on Memory
Add PC 4 Write Data Read Addr 1 Read Addr 2 Write Addr
Register File
Read Data 1 Read Data 2 16 32 ALU Shi< le< 2 Add
Data Memory
Address Write Data Read Data IFetch/Dec Dec/Exec Exec/Mem Mem/WB Sign Extend
Read Address
Instruc(on Memory
Add 4 Write Data Read Addr 1 Read Addr 2 Write Addr
Register File
Read Data 1 Read Data 2 16 32 ALU Shi< le< 2 Add
Data Memory
Address Write Data Read Data Sign Extend
add … lw … Sub… Sub …. Add … Add …
Read Address
Instruc(on Memory
Add 4 Write Data Read Addr 1 Read Addr 2 Write Addr
Register File
Read Data 1 Read Data 2 16 32 ALU Shi< le< 2 Add
Data Memory
Address Write Data Read Data Sign Extend
add … lw … Sub… Sub …. Add … Add …
Read Address
Instruc(on Memory
Add 4 Write Data Read Addr 1 Read Addr 2 Write Addr
Register File
Read Data 1 Read Data 2 16 32 ALU Shi< le< 2 Add
Data Memory
Address Write Data Read Data Sign Extend
add … lw … Sub… Sub …. Add … Add …
Read Address
Instruc(on Memory
Add 4 Write Data Read Addr 1 Read Addr 2 Write Addr
Register File
Read Data 1 Read Data 2 16 32 ALU Shi< le< 2 Add
Data Memory
Address Write Data Read Data Sign Extend
add … lw … Sub… Sub …. Add … Add …
Read Address
Instruc(on Memory
Add 4 Write Data Read Addr 1 Read Addr 2 Write Addr
Register File
Read Data 1 Read Data 2 16 32 ALU Shi< le< 2 Add
Data Memory
Address Write Data Read Data Sign Extend
add … lw … Subi… Sub …. Add … Add …
24
EX Decode Fetch Mem Write back Fetch Fetch EX Decode Fetch Mem Write back Fetch Fetch Fetch
them from stage to stage. It won’t stay this simple...
instructions
25
needed
resource
26
before the end of the cycle
reads.
EX Decode Fetch Mem Write back