购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.7 流水线

指令是如何被执行的?微处理器的功能是什么?Tom Shanley在其名著《奔腾4大全》的第1章中给出了这两个问题的答案:“微处理器就是一个从内存中取指令并解码(Decode)和执行(Execute)的引擎”。

在计算机中,一条指令的执行可分为若干阶段。由于每个阶段的操作都是相对独立的,因此可以采用流水线的重叠技术来提高系统的性能。在流水线填充满后,多条指令可以并行执行,这样可以充分利用现有的硬件资源,提高微处理器的运行效率。

指令流水线的思想类似现代化工厂的生产流水线,如图2-21所示。在工厂的生产流水线上,把生产某产品的过程分解成若干工序,每个工序用同样的时间单位,在不同工位上完成各自工序的工作。这样就可以使单位时间内的成品流出率大大提高。

CM3处理器使用一个3级流水线,分别是取指令(Fetch)、解码(Decode)和执行(Execute),如图2-22所示。

当运行的指令大多是16位时,处理器会每隔一个周期进行一次取指令操作。这是因为CM3有时可以一次取出两条指令(一次能取32位),所以在取来第1条16位指令时,也把第2条16位指令取来了。此时,总线接口就可以先“歇”一个周期再取指令;如果缓冲区是满的,那么总线接口就空闲下来了。有些指令的执行需要多个周期,在此期间,流水线就会处于暂停状态。

当遇到分支指令时,译码阶段也包含取指令预测,这提高了执行的速度。处理器在译码阶段自行对分支目的地指令进行取指令操作。在稍后的执行过程中,处理完分支指令后,便知道下一条要执行的指令是什么。如果分支不跳转,那么紧跟着的下一条指令随时可供使用;如果分支跳转,那么在跳转的同时分支指令可供使用。空闲时间限制为一个周期。

图2-21 流水线示意图

图2-22 CM3的3级流水线 KEc5WcvRKB8lbicnxLGjEfxGyTrHPp9HdhYCWCczkAwC/TUF4bmF4NXZdBM4uU+F

点击中间区域
呼出菜单
上一章
目录
下一章
×