计算机操作系统(四) --- 流水线的通用原理

计算流水线

         下面的图就可以知道流水线的思维了,I1 ,I2 ,I3 为需要经过ABC 组合逻辑的信号,可以看到当I1 到了 B 时,I2 已经到了A 了,

同理 I3也一样,流水线的思维提高了工作效率.

流水线

             这里说一下吞吐量 , 延迟 , 时间周期的计算,下图为例,可以看到, 假如我们的时间周期为 70ps. 那么下面一个信号走完就需要 6*70 = 420ps , 那么 420ps 就是延迟, 吞吐量就是单位时间内可以处理的信号量,可以知道用一除以70乘以一个时间单位得到 14.29 GIPS .即是时间周期的倒数.

延迟

 

流水线的局限性

  • 不一致的划分

流水线局限

           我们可以看到以B 为周期(以为B里的延迟最大,思考一下要是选AC会是怎么样的),那么AC中会有空闲的地方.

 

  • 流水线过深,收益反而下降

lsx

 

流水线的改进

电路重定时( circuit retiming )

       将计算PC的部分移到时序的开头.具体的查看下面的链接

 

分支预测

       当出现分支的时候, 猜测分支的方向并根据猜测的方向进行预测.

 

流水线冒险

       流水线冒险

       一个准备写入的时候,一个提前先拿了出来就会造成数据错误,解决这个问题可以通过以下的方式

  • 用暂停来比避免数据冒险(stalling)

stallingrisk

          但是这样会暂停三个周期,严重影响了性能.

 

  • 用转发来避免数据冒险

           还是上图的那种情况,一个写入,一个读取,读取的时候发现这个值需要被其他操作写入,那么读取的操作直接就拿写入的值就够了,不再等其他操作写入后,我再读取了(仔细想想,类型于并发中的可视性啊!!)

bypass

 

  • 加载/使用数据冒险

加载使用冒险

         下面为暂停+转发的方式来解决加载/使用冒险

互锁

 

 

参考资料:

转载于:https://www.cnblogs.com/Benjious/p/9954995.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值