蜂鸟E200处理器笔记

一. 流水线

1. 更深的流水线

  • 流水线的级数越多,意味着流水线被切得越细,每一级流水线内容纳的硬件逻辑便越少,意味能够运行到更高的主频。
  • 由于每一级流水线都由寄存器组成,更多的流水线级数要消耗更多的寄存器,以及更多的面积开销。这是流水线加深的负面意义。
  • 由于每一级流水线需要进行握手,流水线最后一级的反压信号可能会一直串扰到最前一级造成严重的时序问题,需要使用 些比较高级的技巧来解决此类反压时序问题。
  • 预测失败,需要将所有预取的错误指令流全部丢弃掉,重新取正确的指令流,这个过程叫作“流水线冲刷( Pipeline Flush )”。

2. 乱序

关于处理器的乱序问题,这里是有关于Tomasulo算法的问题,以我目前的理解
保留站:数据的源操作数未准备好的时候,在保留站等待,当准备好就开始执行。
ROB:ROB保证了乱序执行的问题,实际的乱序执行,并不是指令乱序结束,是执行的时候,即EX段是乱序的,但最后的WB还是通过ROB保证了顺序。

3. 数据冲突

三种数据冲突为WAW,WAR,RAW,关于数据冲突解决的方法依然是Tomasulo算法。
RAW
是真的数据相关,必须在前一个数据计算后才能进行使用,此处使用“动态调度”的方法来解决

  • 一方面采用数据旁路传播(Data Bypass and Forward )技术,尽可能让前序指令的计算结果更快地旁路传播给后序相关指令的操作数。
  • 另一方面尽可能地让后序相关指令在等待的过程中不阻塞流水线,而让其他无关的指令继续顺利执行。
  • 早期的 Tomasulo 算法中通过保留站可以达到这两方面的功效,但是保留站由于保存了操作数,无法做到很大的深度(否则面积和时序的开销巨大〉。
  • 最新的高性能处理器普遍采用在每个运算单元前配置乱序发射队列 Issue Queue) 的方式,发射队列仅追踪 RAW 相关性,而并不存放操作数,因此可以做到很深(譬16 个表项〉。在发射队列中的指令一旦相关性解除之后,再从发射队列中发射出来读取物理寄存器组(Physical Registe
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值