标量处理机是系统结构的重点。本章主要讲述了标量处理机中广泛采用的流水线技术。流水线的主要研究内容包括先行控制技术、流水线原理和特点、流水线分类、流水线性能分析、非线性流水线调度方法、流水线冲突(局部相关和全局相关)的处理方法等。通过本章的学习,希望大家弄清楚以下几个问题:

    1.先行控制技术(look-ahead)
    先行控制技术的关键是缓冲和预处理技术。指令的执行过程可以被分解为相互独立的几个阶段(取指令,分析指令,执行指令),采用重叠执行方式,使每个功能段相对独立地运行,就能提高运行速度。为了平衡各功能段之间的由于速度不确定带来的速度差异,在各功能段之间设置了缓冲栈(先行指令缓冲栈,先行操作栈,先行读数栈,后行写数栈)。此外,使用了不同的预处理技术来解决数据相关和控制相关带来的停顿问题。

    2.流水线的原理、特点及其分类
    流水线方式是把一个重复的过程分解为若干个子过程,每个子过程可以和其他的子过程同时进行,即所谓的时间并行性。流水线的工作可以用时空图来描述。
    流水线有以下的特征:为了提高流水线的效率,应该尽可能的为流水线提供连续的任务;流水线由很多相联的功能段组成,为了平衡功能段之间的速度差,功能段之间需要设置缓冲寄存器;流水线中每个功能段的时间应该尽量相等,以免形成“瓶颈”,否则应该对功能段再划分或者采用多个功能部件;流水线需要装入和排空时间,只有在流水线完全充满时,它才能充分发挥效率。
    根据不同的角度,流水线可以被划分成以下的类别:线性流水线,非线性流水线;指令流水线,运算操作流水线,宏流水线;单功能流水线,多功能流水线;静态流水线,动态流水线等。

    3. 流水线的性能分析
    衡量流水线性能的主要指标有吞吐率,加速比,效率。流水线的吞吐率TP定义为单位时间内流水线所完成的任务数量或者输出的结果数量,基本公式如下:

    其中T0指顺序执行所用的时间,Tk时使用流水线的执行时间。
    流水线的效率E是指流水线的设备利用率,在时空图上,流水线的效率定义为n个任务占用的时空区与k个功能段总的时空区之比。

    4. 非线性流水线的调度
    非线性流水线需要一个各功能段的连接图和一张预约表来共同表示。非线性流水线中,一个任务可能要使用同一功能段多次,因此,可能发生流水线的冲突。为了避免冲突,需要找出一个最小的循环周期来对任务进行调度。采用无冲突调度方法,能够得到线性流水线的最小启动循环。但是,这种调度方法不是最优调度,即它的平均启动距离不等于最小平均启动距离。为了达到最优调度,可以采用预留算法,通过插入非计算延迟功能段的方法来得到平均启动距离最小的调度。

    5. 数据相关和控制相关的解决方法
    数据相关和控制相关(局部相关和全局相关)产生的流水线停顿会使流水线的效率严重下降。可以用推后分析法和设置专用路径法来解决数据相关。Tomasulo动态指令调度算法和CDC记分牌算法用动态建立专用路径的方法来解决一些数据相关的问题。对于控制相关(全局相关),可以使用延迟转移技术和指令取消技术,以及静态和动态转移预测技术。

    6.超标量处理机、超流水线处理机、超标量超流水线处理机
    超标量处理机是通过重复设置多个功能部件,并且让这些功能部件同时工作来提高指令的执行速度,实际上是以增加硬件资源为代价来换取处理机性能的;而超流水线处理机只需要增加少量硬件,是通过各部分硬件的充分重叠工作来来提高处理机性能的。从流水线的时空图上看,超标量处理机采用的是空间并行性,而超流水线处理机采用的是时间并行性。超标量超流水线处理机是前面二者的结合。要掌握它们的基本原理、典型结构和主要性能等。

    7.单发射、多发射及多流水线调度
    单发射处理机的设计目标是每个时钟周期平均执行一条指令,即它的指令级并行度ILP的期望值1。多发射处理机在一个基本时钟周期内同时读出多条指令,同时对多条指令进行译码,即有多条指令流水线在同时工作。
    在多发射处理机中, 根据指令发射顺序和完成顺序的不同组合,多流水线的调度主要有顺序发射顺序完成,顺序发射乱序完成和乱序发射乱序完成等三种方法。