(转)Tomasulo算法与记分牌调度算法

Tomasulo算法与记分牌调度算法

一流水线的静态调度与动态调度

提高流水线的效率

指令流水线的执行方式会产生流水线的冲突和保护

1 对寄存器访问的竞争是影响流水线保护和延迟的主要原因。

如果出现要对某寄存器读取/写入的时候, 前一指令对该寄存器的写操作/读操作还未完成的情况,就会造成流水线保护和延迟

2 对存储器访问的竞争也是影响流水线保护和延迟的重要原因

3 指令缓冲队列也有可能造成流水线保护和延迟,

流水线的竞争

定义: 流水线竞争是流水线中造成下一条指令不能在指令时钟周期被执行的情况.

流水线竞争的后果----造成流水线停顿几个周期,从而降低流水线效率.

流水线竞争种类

结构竞争:资源冲突(不支持某些指令组合)

数据竞争:后续指令的执行依赖于前面指令的执行结果

控制竞争:因转移或修改PC引起的竞争

流水线的动态调度有许多优势

1 能调度在编译时不可能知道的竞争情况

2 符合程序执行的实际情况

3 具有更高的效率和准确性

4 简化编译程序设计

5 代码的移植性强

缺点就是控制硬件比较复杂

二 动态调度

静态调度的缺点

虽然可以通过旁路控制机构,编译技术调度指令序列,分开具有相关性的指令来使竞争数目和性能损失减小到最低程度。但是不可避免的数据相关是不可能完全消除的竞争还会存在。所以需要使用流水线的动态调度。

动态调度的一大优势就是: 能够在数据相关时,避免暂停流水线。

动态调度的重要点就是:流水线的乱序执行,指令的发射是乱序的,指令的完成也有可能是乱序的。

由于流水线允许多条指令在同一时刻执行 所以流水线结构需要改变,功能单元也需要改变了。

静态调度与动态调度:

静态调度:根据软件的行为特征进行优化来编译调度指令代码次序,主要依据程序未执行时的行为特征和统计数据进行的调度策略

动态调度:通过硬件在程序执行时重新安排代码的执行序列来减少竞争引起的流水线停顿时间

动态调度流水线具备以下功能:

(1)允许按序取多条指令和发射多条指令----取指(IF)流水级允许按顺序取多条指令进入单口暂存器(single-entry latch)或队列(queu

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值