为提高处理器执行指令的效率,把一条指令的操作分成多个细小的步骤,每个步骤由专门的电路完成的方式
指令流水线是为提高处理器执行指令的效率,把一条指令的操作分成多个细小的步骤,每个步骤由专门的电路完成的方式。
原理
举个例子: 例如一条指令要执行要经过3个阶段:取指令、译码、执行,每个阶段都要花费一个机器周期,如果没有采用流水线技术,那么这条指令执行需要3个机器周期;
如果采用了指令流水线技术,那么当这条指令完成“取指”后进入“译码”的同时,下一条指令就可以进行“取指”了,这样就提高了指令的执行效率。
步骤
指令步骤的并行。常见的六级流水线将指令流的处理过程划分为取指(FI)、译码(DI)、计算操作数地址(CO)、取操作数(FO)、执行指令(EI)、写操作数(WO)等几个并行处理的过程段。这就是指令6级流水时序。在这个流水线中,处理器有六个操作部件,同时对这六条指令进行加工,加快了程序的执行速度。几乎所有的高性能计算机都采用了指令流水线。
![](https://i-blog.csdnimg.cn/blog_migrate/da36f97f459d80817f654c2540be8dbe.jpeg)
指令流水线
1. 指令流水线的基本概念
(1)流水线基本原理
流水线技术是一种显著提高指令执行速度与效率的技术。方法是:指令取指完成后,不等该指令执行完毕即可取下一条指令。
如果把一条指令的解释过程进一步细分,例如,把分析、执行两个过程分成取指、译码、执行、访存和写回寄存器五个子过程,并用五个子部件分别处理这五个子过程。
这样只需在上一指令的第一子过程处理完毕进入第二子过程处理时,在第一子部件中就开始对第二条指令的第一子过程进行处理。随着时间推移,这种重叠操作最后可达到五个子部件同时对五条指令的子过程进行操作。
(2)影响流水线性能的因素
在流水线中会出现三种相关,影响流水线的畅通流动,这三种相关是结构相关、数据相关和控制相关。
结构相关是当多条指令进人流水线后,硬件资源满足不了指令重叠执行的要求时产生的。
数据相关是指令在流水线中重叠执行时,当后继指令需要用到前面指令的执行结果时发生的。
控制相关是当流水线遇到分支指令和其他改变PC值的指令时引起的。
(3)流水线性能
流水线的性能通常用吞吐率、加速比和效率3项指标来衡量。
1)吞吐率
在指令流水线中,吞吐率是指单位时间内流水线所完成的指令或输出结果的数量。
2)加速比
流水线的加速比是指m段流水线的速度与等功能的非流水线的速度之比。
3)效率
效率是指流水线中个功能段的利用率。
2. 超标量和动态流水线的基本概念
(1) 超标量
在超标量的处理器结构中,整数和浮点数运算、装入、存储以及条件转移等普通操作指令可以同时启动并独立执行。
超标量流水CPU是指集成了多条流水线结构的CPU,当流水线满载时,每个时钟周期可以完成一条以上的指令。
(2) 动态流水线
流水线按功能可分成单功能流水线和多功能流水线两种。
单功能流水线只完成一种功能。如浮点加法或乘法流水线。
多功能流水线则可完成多种功能,它允许在不同时间,甚至同一时间内在流水线内连接不同功能段的子集来实现不同功能。
流水线按工作方式可分为静态流水线和动态流水线两种。
在静态流水线中,同一时间内它只能以一种功能方式工作。它可以是单功能的,也可以是多功能的。当是多功能流水线时,则从一种功能方式变为另一种功能方式时,必须先排空流水线,然后为另一种功能设置初始条件后方可使用。显然,不希望这种功能的转换频繁的发生,否则将严重影响流水线的处理效率。
动态流水线则允许在同一时间内将不同的功能段连接成不同的功能子集(前提条件是功能部件的使用不发生冲突),以完成不同的运算功能。显然,动态流水线必是多功能流水线,而单功能流水线则必是静态的。