计组-5.6 指令流水线
5.6 指令流水线
基本概念
不同(指令)执行方式的总耗时

1.顺序执行方式
- 没有并行,一次只能执行一条指令。
- 总耗时=指令数n * 指令执行的总时间3t(3个阶段时间3t)
- =3nt

2.一次重叠方式
- 重叠了一个阶段的时间(第n个的最末阶段和第n+1个的最初阶段重叠)
- 总耗时:第一条指令all 3t,后面的(n-1)条指令都是 2t。
- =(1+2n)t

3.二次重叠执行方式
- 重叠了两个阶段。
- 总耗时:第一条指令all 3t,后面的(n-1)条指令都是 t。
- =(2+n)t

流水线的表示方法
- 指令执行过程图:分析影响流水线的因素?
- 时空图:分析流水线的性能

性能指标
吞吐率
- 单位时间流水线完成的任务数量。
- TP = 任务数n / 总时间Tk

加速比
- 不使用流水线和使用流水线所用时间的比
- S = 不使用流水线T₀ / 使用流水线Tk

效率
- 设备的利用率(空格数占比所有格子数)

以上性能指标都是建立在理想情况下的:①各阶段花费时间相同②每个阶段结束后立即进入下一阶段
但实际情况是②条件并不能满足?
影响因素
- (五段式)指令流水线:IF(instruction fetch),ID(ins.. decode),EX(excute),M(memory),W(writeback)。
- 因为要固定100ns才到下一阶段,所以每个阶段后面都有一个缓存器(锁存器)

1.结构相关(资源冲突)
- 如:Load和Instr3指令的 Mem寄存器可以细分为Dm和Im就不会冲突了(或者Dcache/Icache)
- 其他的指令同上。


2.数据相关(数据冲突)
- 解决方法:
- ①暂停相关指令:硬件阻塞
- ①暂停相关指令:软件插入NOP(空指令)
- ②数据旁路技术(转发机制)
- ③编译优化,调整指令顺序 (原理同NOP,但是不像NOP一样单纯消耗时间)





3.控制相关(控制冲突)
- 当流水线 遇到转移指令和其他改变PC值的指令(eg中断) 而造成断流时,会引起控制相关

指令流水线的分类
①根据流水线使用级别
- 处理机间流水线:一个CPU处理一个专门的任务,串行执行。
- 处理机级流水线:把(一个)指令解释过程分成子过程,如取指译码执行访存写回5个子过程。
- 部件功能级流水线:把复杂的算术逻辑运算分成多步执行。
②根据流水线可以完成的功能
单功能流水线:只能实现一种功能的流水线
多功能流水线:能够完成多种功能的流水线(如指令流水线)【同时或者不同时地完成】
- ③按同一时间各功能段的连接方式:
- 静态流水线:在同一时间内,流水线各段只能按同一种功能的连接方式工作
- 动态流水线:在同一时间内,当某些段正在实现某种运算时,另一些段却在进行另一种运算。
- ③按同一时间各功能段的连接方式:
按流水线的各功能段之间是否有反馈信号
- 线性流水线:从输入到输出,每个功能段只允许经过一次,不存在反馈回路。
- 非线性流水线:存在反馈回路,适合递归运算
流水线多发技术
超标量技术
- 每个时钟周期内,可以并行发射出多条指令。且不能调整指令执行顺序。(需要多个功能部件)

超流水技术
- 在一个时钟周期再分段
- 不能调整指令执行顺序

超长指令字
- 多条能并行操作的指令组合成一条

五段式指令流水线
不同类型指令的执行过程
运算类指令的执行过程

LOAD指令的执行过程
评论

