计算机的流水线-----流水线的原理



  • 先听一个故事

假如你是刚刚在繁华的地带开了一个餐馆,雇了一个大厨掌管厨房,所有的流程都由这个厨师来操作,那么当生意好的时候,厨师一个人根本来不及啊。而且客人本来就很饿,这就很不好了。

【大厨的图片】

于是你想提高上菜的效率,就将大厨解雇掉,用相应的薪资雇了几个人,如洗菜的,切菜的,烧菜的,上菜的。
这样一来原来每四分钟做完一个菜,现在也需要四分钟(在菜的数量等于1的时候情况是这样),但后面伴随着点的菜的数量越来越多,则这种i分工明确化的操作将大大提高上菜效率。

【分工的图片】

如图,每一个步骤的传递都需要一个号手,不然不知道啥时候交换材料啊,而这里的好号手就相当于计算机内的时钟信号。

  • 流水线优化

还是上面那个流水线的图,如果切菜的时间由原来的 1 min ->2 min 那为了速度能匹配只能每个步骤都用两分钟来进行操作。
在这里插入图片描述
那这样操作岂不是浪费了很多时间? 而且得不偿失! 效率也很离谱啊。那你有没有想到啥好的办法让效率达到最大?
那就是继续将两分钟的切菜变为一分钟。
如图:
在这里插入图片描述
那为了提升性能把每一步骤的时间颗粒度在进行细分,那这样时钟周期也会越来越短对吧? 那效率也就上去了对吧?
在理想情况下是这样的,但现实是骨感的啊。
事实是如果洗菜洗完了会把这个状态存储到流水线寄存器,待切菜部分从流水线寄存器读取。每一步都是这样的,那如果无限细分下去的化,写入流水线寄存器也是需要时间的啊。所以是不可行的。

总结

我们通过流水线的操作,可以使工作效率达到最大。那这样是不是最好的安排呢?
其实不是的,在后面的文章中将会讲解流水线的冒险问题,如数据harzd,结构,分支等。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值