当前位置:
文档之家› 计算机组成_ 流水线处理器(Pipelined Processor)_
计算机组成_ 流水线处理器(Pipelined Processor)_
43;分钟
≈
5分钟
做四道菜
8+分钟
20分钟
连续工作
每1+分钟上一道菜 < 每5分钟上一道菜 ≈5倍
“超级流水线”
“超级流水线”技术 (Super Pipelining)
◦ 将五级流水线细分为更多的阶段,增加流水线的深度
◦ 提升时钟频率,从而提高指令吞吐率
五级流水线 S1
S2
S3
S4
S5
◦ 时钟周期:200ps+50ps=250ps
IMem Reg ALU DMem Reg
instruction 5
IMem Reg ALU DMem Reg
如果指令和数据放在同一个存储器中,则不能同时读存储器 解决方案2:指令和数据放在不同的存储器中
结构冒险(示例2)
时间(ps)0 200 400 600 800 1000 1200 1400 1600 1800 2000 2200 2400
切菜
炒菜
装盘
1分钟
2分钟
1分钟
1分钟
不平衡的流水线 流水线方式
非流水线方式
单独一道菜
8+分钟
>
5分钟
做四道菜
14+分钟
20分钟
连续工作
每2+分钟上一道菜 < 每5分钟上一道菜
≈2.5倍
流水线的调整
时钟周期=1分钟
洗菜
切菜1
切菜2
炒菜
装盘
1分钟
1分钟
1分钟
1分钟
1分钟
平衡的流水线 流水线方式
非流水线方式
本节主题
流水线的优化
北京大学 · 慕课 计算机组成
制作人:陆俊林
流水线的分析
洗菜
时钟周期=1分钟
切菜
炒菜
装盘
1分钟
单独一道菜 做四道菜 连续工作
1分钟
1分钟
1分钟
流水线方式
非流水线方式
4+分钟
≈
4分钟
7+分钟
16分钟
每1+分钟上一道菜 < 每4分钟上一道菜
≈4倍
流水线的平衡性
洗菜
时钟周期=2分钟
IF ID EX MEM WB
lw …
IMem Reg ALU DMem Reg
instruction 1 IMem Reg ALU DMem Reg
instruction 2
IMem Reg ALU DMem Reg
bubble bubble bubble bubble bubble
instruction 3 instruction 4
IF ID EX MEM WB
lw …
IMem Reg ALU DMem Reg
instruction 1 IMem Reg ALU DMem Reg
instruction 2
IMem Reg ALU DMem Reg
IMem Reg ALU DMem Reg IMem Reg ALU DMem Reg
如果指令和数据放在同一个存储器中,则不能同时读存储器 解决方案1:流水线停顿(stall),产生空泡(bubble)
结构冒险(示例1)
时间(ps)0 200 400 600 800 1000 1200 1400 1600 1800 2000 2200 2400
十级流水线 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10
◦ 时钟周期:100ps+50ps=150ps
流水线的深度
流水线的级数是越多越好吗?
◦ 否!
五级流水线 S1
S2
S3
S4
S5
◦ 时钟周期:200ps+50ps=250ps
◦ 单条指令的延迟:1250ps
◦ 流水线寄存器延迟所占比例:50ps / 250ps = 20%
IMem Reg ALU DMem Reg
instruction 5
IMem Reg ALU DMem Reg
如果指令和数据放在同一个存储器中,则不能同时读存储器
结构冒险(示例1)
时间(ps)0 200 400 600 800 1000 1200 1400 1600 1800 2000 2200 2400
IF ID EX MEM WB
IMem Reg ALU DMem Reg
instruction 1 IMem Reg ALU DMem Reg
instruction 2
IMem Reg ALU DMem Reg
instruction 3
IMem Reg ALU DMem Reg
instruction 4
lw …
IF ID EX MEM WB
IMem Reg ALU DMem Reg
instruction 1 IMem Reg ALU DMem Reg
instruction 2
IMem Reg ALU DMem Reg
instruction 3
IMem Reg ALU DMem Reg
instruction 4
1991年,R4000(64位): 8级
1993年,Pentium: 5级 1995年,Pentium Pro: 12级
取指
译码
地址生成
执行
回写
IF1 IF2 IF3 ID1 ID2 RAT ROB DIS EX WB RR RET
1997年,ARM9: 5级 2002年,ARM11: 8级
取指
译码
① 结构冒险
◦ 所需的硬件部件正在为之前的指令工作
② 数据冒险
◦ 需要等待之前的指令完成数据的读写
③ 控制冒险
◦ 需要根据之前指令的结果决定下一步的行为
结构冒险(示例1)
时间(ps)0 200 400 600 800 1000 1200 1400 1600 1800 2000 2200 2400
lw …
十级流水线 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10
◦ 时钟周期:100ps+50ps=150ps
◦ 单条指令的延迟:1500ps
◦ 流水线寄存器延迟所占比例:50ps / 150ps = 33%
处理器流水线深度的变化
1986年,R2000: 5级
1988年,R3000: 5级
2010年,Cortex-A9:11级
2013年,Core i7(Haswell):14级
2013年,Cortex-A57:15级
本节小结
流水线的优化
北京大学 · 慕课 计算机组成
制作人:陆俊林
本节主题
流水线的“冒险”
北京大学 · 慕课 计算机组成
制作人:陆俊林
“冒险”(Hazard)
阻止下一条指令在下一个时钟周期开始执行的情况
取指1 取指2 译码
执行
访存
写回
发射 执行1 执行2 执行3 写回
2004年,Pemtium 4(Prescott):31级
2006年,Core 2 Duo(Merom):14级
2008年,Core i7(Nehalem):16级
2009年,Cortex-A8:13级
2011年,Cortex-A15:15级