第4章 流水线技术及指令级并行 纲要
1、流水线的概念、分类
2、流水线的时空图及性能指标计算
3、add, sub, addi, subi, lw, sw, beq每条指令在5级流水线的执行过程
4、结构冒险、数据冒险和控制冒险的判断,以及需要暂停的时钟周期数的判断
5、结构冒险、数据冒险和控制冒险的解决办法
6、流水线中处理中断和异常的方法
7、记分牌动态调度算法
一、基本概念
流水线术语
机器周期(流水线周期):指令沿流水线移动一个流水段的时间。长度取决于最慢的流水段,一般是一个时钟周期(有时是两个时钟周期)。
每个流水线周期从指令流水线流出一条指令。
吞吐量:单位时间从流水线流出的指令数。
为什么不开发 50段流水线?
1、有些操作不能分为更细的逻辑实现
2、流水线锁存器不是免费的,要占据面积,且有延迟。
流水线怎样减少执行时间?
对比不同串行实现的机器:
1、每条指令执行用一个时钟周期的机器(单周期实现)
流水线减少时钟周期的长度(时间)
2、每条指令执行用多个时钟周期的机器(多周期实现)
流水线减少CPI.
如何改进硬件冗余
-ALU 可以共享
-数据和指令存储器可以合并,因为访问发生在不同的时钟周期
单周期如何变成流水线
1、在ID级创建控制信号,然后逐级传递
完成 ALU 指令在MEM cycle
二、冒险
情况一:
在同一时钟周期不同操作不能使用同一数据通路资源。(结构冒险structure hazard)
情况二:
当写和读同一个寄存器会发生什么? (数据冒险 Data hazard )
具体:数据冒险—指令想要的数据值还没有完成,或者值没有在正确的地方
情况三:
遇到转移指令怎么办?
-转移可能会改变PC的值—— 但是条件要等到ID段才能得到!
-如果转移发生