内容提要 Digital Design and Computer Architecture ·流水线技术原理:4.5 ·RV的五级流水线实现:4.6 M< -Verilog行为级定义:4.13 MODERN PROCESSOR DESIGN 物 。Hazard问题:4.5.2 一结构冲突:哈佛结构 -数据依赖:4.7 ·编译技术:插入nop,指令重排,寄存器重命名 MIPS体系结构透 ·forwarding技术:RAW ·Interlock技术:Stall Run -控制相关:4.8 ·编译技术:延迟分支 ·硬件优化:提前完成,投机,预测 。多发射技术:4.10 Parallel Computer Organization 硬件多线程:6.4 and Design
内容提要 • 流水线技术原理:4.5 • RV的五级流水线实现:4.6 – Verilog行为级定义:4.13 • Hazard问题:4.5.2 – 结构冲突:哈佛结构 – 数据依赖:4.7 • 编译技术:插入nop,指令重排,寄存器重命名 • forwarding技术:RAW • Interlock技术:Stall – 控制相关:4.8 • 编译技术:延迟分支 • 硬件优化:提前完成,投机,预测 • 多发射技术:4.10 • 硬件多线程:6.4
Laundry Example 6 PM 7 8 9 10 11 Midnight 6PM 7 8 9 10 11 Midnight Time Time 30'402030'40203040203040'20 304040404020 T T a 同 6 福¥ d 6 6 同 6 。·4袋衣服:Wash(30),dry(40),fold(20) - Sequential Laundry:需要6小时:4x(30+40+20)=360分钟⑧ - Pipelined Laundry:需3.5小时:30+4x40+20=210分钟© ·前提:1)过程可分解,2)设备独立(单缸/滚筒,双缸?),3)作业等时 ·贪心:Start work ASAP!一袋衣服? ·流水线目标:提升“吞吐率”,缩短“完成时间”。IPC?CP? CSC顺序模型,RISC指令级并行模型(LP)
Laundry Example • 4 袋衣服:Wash(30), dry(40), fold(20) – Sequential Laundry:需要 6 小时:4x(30+40+20)=360分钟 – Pipelined Laundry:需3.5小时:30+4x40+20=210分钟☺ • 前提:1)过程可分解,2)设备独立(单缸/滚筒,双缸?),3)作业等时 • 贪心:Start work ASAP!一袋衣服? • 流水线目标:提升“吞吐率”,缩短“完成时间”。IPC?CPI? • CISC顺序模型,RISC指令级并行模型(ILP)
指令流水线时空图(Gantt chart):六级 CPI=?IPC=? L1L23456L78⊥910111213114 指令1巴,lp9 指令2 指令3 指令4 Lplc9FoE画wg 指令5 FI DI COFOL EL WO 指令6 E巴PLlC9ELwo 指令7 FL DIICOLFO EL WO 指令8 {D49马w9 指令9 4P449404马y llxx@ustc.edu.cn
llxx@ustc.edu.cn 4 指令流水线时空图(Gantt chart):六级 CPI=? IPC=?
流水线性能:Pipelining Idealism ·CPI,IPC,加速比(speedup) -单周期,多周期,ppl? 非流水线执行时间 n*k*△t speedup= lim =k 流水线执行时间 n->0 k*△t+(n-1)*△t 从CC6开始,每个周期流出一条 指令,因此,CPI=IPC≈1。 L1L23L4⊥56⊥78⊥91011121314 每条指令的指令周期没变 指令1,poFo弘,wg 整体性能提升 指令3、 FL DLICO FOLEL WO 最坏情况?最好情况?PC≥1? 指令4 FL DL COFOLEL WO 指令5 FL DLCO FOLEL WO PPL越深越好? 指令6 FL DLCOFO ELWO 指令7 FL DL CO FOL EL WO 指令8 249马y9 指令9 144494马y9
5 流水线性能:Pipelining Idealism • CPI,IPC,加速比(speedup) – 单周期,多周期,ppl? k k t n t n k t n = + − − * ( 1)* * * speedup =lim 流水线执行时间 非流水线执行时间 = 从CC6开始,每个周期流出一条 指令,因此,CPI = IPC ≈ 1。 • 每条指令的指令周期没变 • 整体性能提升 最坏情况?最好情况?IPC≥1? PPL越深越好?
流水线分类 ·单功能流水线:只能完成一种功能的流水线,如浮点加法流水线。 多功能流水线:流水线的各段可以进行不同的连接,从而使流水线在 不同的时间完成不同的功能。 ·静态流水线:在某一时间段内,流水线的各段只能按同一种功能的连 接方式工作,即只有当输入是一串相同性质的操作时其性能才能得到 发挥。 动态流水线:在某一段时间内,某些段正在实现某类操作(定点乘), 其他段却在实现另一类操作(浮点加)。 顺序流水线:流水线的流出顺序与其流入顺序相同。 ·乱序流水线:流水线的流出顺序与其流入顺序不同。 静态调度流水线:不对指令执行顺序进行重排序。 动态调度流水线:对指令执行顺序进行重排序(“指令调度”)。 6
6 流水线分类 • 单功能流水线:只能完成一种功能的流水线,如浮点加法流水线。 • 多功能流水线:流水线的各段可以进行不同的连接,从而使流水线在 不同的时间完成不同的功能。 • 静态流水线:在某一时间段内,流水线的各段只能按同一种功能的连 接方式工作,即只有当输入是一串相同性质的操作时其性能才能得到 发挥。 • 动态流水线:在某一段时间内,某些段正在实现某类操作(定点乘), 其他段却在实现另一类操作(浮点加)。 • 顺序流水线:流水线的流出顺序与其流入顺序相同。 • 乱序流水线:流水线的流出顺序与其流入顺序不同。 • 静态调度流水线:不对指令执行顺序进行重排序。 • 动态调度流水线:对指令执行顺序进行重排序(“指令调度”)