CPU流水线工作原理

来源:互联网 发布:js设置table宽度 编辑:程序博客网 时间:2024/04/29 12:39

      今天看了一个帖子,突然问指令流水线是指什么?为什么会出现? 一下把我问到了, 只是知道流水线肯定是

为了提高效率,能并发工作,也不知道具体的原理,查了查才有点感觉,还是基础知识差啊!

     以下是参考: http://iask.sina.com.cn/b/3232098.html?sudaref=www.google.com.hk&retcode=0

     CPU的一个任务,或者说指令,被分为很多个步骤完成,就跟生产线上装配汽车,分成若干个零件依次安装。

而CPU的主频相当于流水线工作的统一节奏。你可以想象成主频就是干活时候喊的号子,大家都跟着号子一步
一步的干活。

      Intel:流水线较少,但是每条流水线的长度很长。可以想象成,Intel有较少的生产线,而每个生产线上把
装配一辆汽车分成了较多的步骤,所以生产线很长。这样的有点是,生产线上的每个步骤需要完成的任务相对
较少,这样,工作的节奏很容易加快,也就是号子喊的可以快一些,所以Intel的P4主频提高非常迅速。这种
架构的缺点是,因为流水线太长,如果中间有一步发生错误,只有到最后一个工序才能发现。虽然这种错误几
率很小很小,但是不可避免,而且会被非常高的主频放大无数倍,带来的影响就是工作效率并没有随着节奏的
加快而明显提升,也就是Intel“高频低能”的原因之一。Intel的Pentium M系列就没有采用这种架构模式,
而是采用类似AMD的短管线多管线模式。

AMD:拥有较多的流水线,就是说,生产线较多,但是每条生产线的长度较短。带来的影响是,在短生产线上
装备一辆汽车的话,每个工序需要干的活比较多,所以大家工作的节奏就不能太快。所以AMD的主频提高非常
困难。可是AMD较多的流水线同样保证了指令执行数量,也就是装配汽车的数量,效率较高。短的流水线受工
序错误的影响也很低,因为流水线短,发现错误会更及时。主频低,错误率被放大的也小。

一些数据:
Intel:五条流水线,每个流水线20步(二十个工序),prescott更是达到了每条流水线30步。
AMD:K7 九条流水线,每条流水线11步。K8的情况还不知道,但是肯定是短流水线架构。

其实Intel和AMD只是走了两条不同的提高CPU性能的路而已。我的高主频模式也能解决问题,你的低主频模式
也能解决问题罢了。
0 0
原创粉丝点击