指令流水 编辑

指令流水是指为提高处理器执行指令的效率,把一条指令的操作分成多个细小的步骤,每个步骤由专门的电路完成。

原理

编辑
为提高处理器执行指令的效率,把一条指令的操作分成多个细小的步骤,每个步骤由专门的电路完成。

例如一条指令要执行要经过3个阶段:取指令、译码、执行;每个阶段都要花费一个时钟周期,如果没有采用流水线技术,那么这条指令执行需要3个时钟周期;如果采用了指令流水线技术,那么当这条指令完成“取指”后进入“译码”的同时,下一条指令就可以进行“取指”了,这样就提高的指令的执行效率。

影响因素

编辑
要使流水线具有良好的性能,必须设法使流水线能畅通流动,即必须做到充分流水,不出现断流。

然而在实际流水中会出现三种相关:资相关、数据相关、控制相关,这三个相关使流水线充分流水很难实现。

资源相关

资源相关是指当指令在重叠执行过程中,不同指令争用同一功能部件产生资源冲突时产生的。

通常,大多数机器都是将指令和数据保存在同一存储器中,且只有一个访问口,如果在某个时钟周期内,流水线既要完成某条指令对操作数的存储器访问操作,又要完成另一条指令的取指操作,这就会发生访存冲突。这就是结构相关。

解决访存冲突的一个办法停顿,另一种是设置两个独立的存储器分别存放操作数和指令,以免取指令和取操作数冲突。

数据相关

数据相关是指令在流水线中重叠执行时,当后继指令需要用到前面的指令产生的结果时发生的。

控制相关

控制相关是当流水线遇到转移指令引起的。统计表明,转移指令约占总指令的四分之一左右,比起数据相关,它会使流水线丧失更多的功能。

流水线性能

编辑
流水线性能通常用吞吐率、加速比和效率三项指标衡量。

下一篇 乱序执行

上一篇 超标量