计算机组成_ 流水线处理器(Pipelined Processor)_

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

十级流水线 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%
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
本节主题
流水线的优化
北京大学 · 慕课 计算机组成
制作人:陆俊林
流水线的分析
洗菜
时钟周期=1分钟
切菜
炒菜
装盘
1分钟
单独一道菜 做四道菜 连续工作
1分钟
1分钟
1分钟
流水线方式
非流水线方式
4+分钟

4分钟
7+分钟
16分钟
每1+分钟上一道菜 < 每4分钟上一道菜
≈4倍
流水线的平衡性
洗菜
时钟周期=2分钟
单独一道菜
5+分钟

5分钟
做四道菜
8+分钟
20分钟
连续工作
每1+分钟上一道菜百度文库< 每5分钟上一道菜 ≈5倍
“超级流水线”
“超级流水线”技术 (Super Pipelining)
◦ 将五级流水线细分为更多的阶段,增加流水线的深度
◦ 提升时钟频率,从而提高指令吞吐率
五级流水线 S1
S2
S3
S4
S5
◦ 时钟周期:200ps+50ps=250ps
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
十级流水线 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10
◦ 时钟周期:100ps+50ps=150ps
◦ 单条指令的延迟:1500ps
◦ 流水线寄存器延迟所占比例:50ps / 150ps = 33%
处理器流水线深度的变化
1986年,R2000: 5级
1988年,R3000: 5级
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
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
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
① 结构冒险
◦ 所需的硬件部件正在为之前的指令工作
② 数据冒险
◦ 需要等待之前的指令完成数据的读写
③ 控制冒险
◦ 需要根据之前指令的结果决定下一步的行为
结构冒险(示例1)
时间(ps)0 200 400 600 800 1000 1200 1400 1600 1800 2000 2200 2400
lw …
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级
取指
译码
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
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级
切菜
炒菜
装盘
1分钟
2分钟
1分钟
1分钟
不平衡的流水线 流水线方式
非流水线方式
单独一道菜
8+分钟

5分钟
做四道菜
14+分钟
20分钟
连续工作
每2+分钟上一道菜 < 每5分钟上一道菜
≈2.5倍
流水线的调整
时钟周期=1分钟
洗菜
切菜1
切菜2
炒菜
装盘
1分钟
1分钟
1分钟
1分钟
1分钟
平衡的流水线 流水线方式
非流水线方式
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
相关文档
最新文档