第七章 指令流水线
复习:A Single Cycle Processor
Branch Jump Zero Clk RegDst Instruction Fetch Unit <31:26> Instruction<31:0> op <16:20> <21:25> <11:15> Rd Imm16 5 Rs 5 Rt <5:0> func <0:15> RegDst Main Control 3 ALUSrc
6 PM
7
8
9
Time
10
11
Midnight
30 40
T a s k O r d e r
40
40
40 20
串行方式为6小时,N批则为90N分钟
A
只需30+4x40+20=210分 (3.5小时)
B C
D
如果有N批衣服呢? 所花时间为:30+Nx40+20分钟 假定每一步时间均衡,则比串行方 式提高约3倍!
:
ALUopRtΒιβλιοθήκη Rd1 Mux 0
ALU Control
RegWr 5 busW 32 Clk
ALUctr 3 busA 32
0 Mux ALU Zero 32 WrEn Adr 32 MemWr 0 Mux
Rw Ra Rb 32 32-bit Registers busB 32 Extender
MemtoReg
Ideal Memory
32
Rt Rt 0 Rd 1
5 5
Ra Rb Rw busW busB 32 busA
Mux
Reg File
4
1 Mux 0
Mux
32
<< 2
2 3
ALU Control
Imm 16
Extend
32
ALUOp ALUSelB
2018年12月31日星期一
ExtOp
Pipeline.4
Ch7: Instruction Pipeline 指令流水线
第一讲 流水线数据通路和控制逻辑
第二讲 流水线冒险处理 第三讲 高级流水线技术
第一讲 流水线数据通路和控制 主要内容
° 日常生活中的流水线处理例子:洗衣服 ° 单周期处理器模型和流水线性能比较
° 什么样的指令集适合于流水线方式执行
° 如何设计流水线数据通路 • 以MIPS指令子集来说明 • 详细设计取指令部件
Instr Decode / Reg. Fetch
Address
Data Memory
Reg Wr
Rs, Rt, Rd, Op, Func
1
Old Value
Old Value Old Value Old Value
ALUctr
ExtOp ALUSrc RegWr busA busB Address busW
• 详细设计执行部件 • 分析每条指令在流水线中的执行过程,遇到各种问题: - 资源冲突 - 寄存器和存储器的信号竞争 - 分支指令的延迟 - 指令间数据相关
° 如何设计流水线控制逻辑 • 分析每条指令执行过程中的控制信号 • 给出控制器设计过程 ° 流水线冒险的概念
Pipeline.2
2018年12月31日星期一
流水方式下,所花时间主要与最长阶段时间有关!
Pipeline.8
2018年12月31日星期一
复习:Load指令的5个阶段
阶段1 阶段 2 阶段 3
32 32 0 1 32 32 RAdr
PCWrCond Zero MemWr
32 Rs 0 1 32
PCSrc IRWr RegDst RegWr ALUSelA
1
0 32 0 1 32
BrWr
32
Target
Mux
Zero ALU
Mux
Instruction Reg
32
WrAdr 32 Din Dout
A
B
C
D
如果让你来管理洗衣店,你会如何安排?
Pipelining: It’s Natural !
Pipeline.6
2018年12月31日星期一
Sequential Laundry(串行方式) 6 PM 7 8 9
Time
10
11
Midnight
30 40 20 30 40 20 30 40 20 30 40 20
T a s k O r d e r
A B
C D
° 串行方式下, 4 批衣服需要花费 6 小时(4x(30+40+20)=360分钟) ° N批衣服,需花费的时间为Nx(30+40+20) = 90N ° 如果用流水线方式洗衣服,则花多少时间呢?
Pipeline.7
2018年12月31日星期一
Pipelined Laundry: (Start work ASAP)
Pipeline.5
Delay through Control Logic New Value New Value New Value Register File Write Time New Value
2
Old Value Delay through Extender & Mux Old Value Old Value
Register File Access Time New Value
3
New Value ALU Delay New Value
Data Memory Access Time Old Value New
2018年12月31日星期一
一个日常生活中的例子—洗衣服
°Laundry Example • Ann, Brian, Cathy, Dave each have one load of clothes to wash, dry, and fold • Washer takes • Dryer takes • “Folder” takes 30 minutes 40 minutes 20 minutes
MemtoReg
复习:Timing Diagram of a Load Instruction
Instruction Fetch
Clk PC Old Value Clk-to-Q New Value Old Value Instruction Memory Access Time New Value
1
1 32 ALUSrc
imm16 Instr<15:0>
Data In 32
16
Clk
Data Memory
ExtOp
Pipeline.3
2018年12月31日星期一
复习:Multiple Cycle Processor
° MCP: 一个功能部件在一个指令周期中可以被使用多次。
PCWr IorD PC