第4章标量流水线技术 内容提要 本章首先简要介绍标量流水线的基本概念与工作原理,然后 讲述流水线时空图与性能分析、流水线操作中的主要障碍、处理 方法、非线性流水线的调度策略以及实现流水线的控制方式。重 点是流水线的时空图、流水线性能分析以及流水线的实现与控制 难点是使用流水线的时空图、性能分析与非线性流水线的调度策 略
第4章 标量流水线技术 • 内容提要: 本章首先简要介绍标量流水线的基本概念与工作原理,然后 讲述流水线时空图与性能分析、流水线操作中的主要障碍、处理 方法、非线性流水线的调度策略以及实现流水线的控制方式。重 点是流水线的时空图、流水线性能分析以及流水线的实现与控制。 难点是使用流水线的时空图、性能分析与非线性流水线的调度策 略
4.1.1控制流及其改变 所谓控制流是指被执行的指令序列的处理顺序,其地址由程序计 数器PC给出,一条接着条地执行。在一般情况下,PC的值是时间的 单调函数,如图41(a)所示。但是当遇上转移类指令时,控制流 将发生间断,转移到目标地址后又顺序执行,PC中的值如图4.1(b) 所示。通常,改变程序顺序执行的因素有多种,常见的有以下4种。 转移 PC=kothi 转移/转移 (a)程序顺序执行 (b)程序转移执行 图41程序计数器PC与时间的关系
4.1.1 控制流及其改变 所谓控制流是指被执行的指令序列的处理顺序,其地址由程序计 数器PC给出,一条接着一条地执行。在一般情况下,PC的值是时间的 单调函数,如图4.1(a) 所示。但是当遇上转移类指令时,控制流 将发生间断,转移到目标地址后又顺序执行,PC中的值如图4.1(b) 所示。通常,改变程序顺序执行的因素有多种,常见的有以下4种。 图4.1 程序计数器PC与时间t的关系
(1)转移指令 转移指令可分为无条件转移和条件转移两种类型,且有多条,都是把转移 目标地址送入程序计数器PC中,然后又顺序执行,如图4.1(b)所示。 (2)过程调用与返回 即执行被调用的过程或子程序,其入口地址送入PC中;返回时,返回地址 送入PC,另外还有嵌套和递归。 (3)协同程序 协同程序与过程调用程序有所不同,它 协同程序A协同程序B 是被调用过程未必从头开始执行,而是从上 次返回的位置开始,如图42乐示。 (4)中断与自陷 中断是由外部事件引起,自陷是由 CPU的内部原因引起,CPU执行中断服务程 序,执行完后返回原来被中断的程序。 以上几种情况都改变PC中的值,使控图42协同程序改变控制流 制流发生改变。 <
(1)转移指令 转移指令可分为无条件转移和条件转移两种类型,且有多条,都是把转移 目标地址送入程序计数器PC中,然后又顺序执行,如图4.1(b)所示。 (2)过程调用与返回 即执行被调用的过程或子程序,其入口地址送入PC中;返回时,返回地址 送入PC,另外还有嵌套和递归。 (3)协同程序 协同程序与过程调用程序有所不同,它 是被调用过程未必从头开始执行,而是从上 一次返回的位置开始,如图4.2所示。 (4)中断与自陷 中断是由外部事件引起,自陷是由 CPU的内部原因引起,CPU执行中断服务程 序,执行完后返回原来被中断的程序。 以上几种情况都改变PC中的值,使控 制流发生改变。 图4.2 协同程序改变控制流
4.1.2程序执行过程中的重叠操作 与先行控制 1.程序执行过程中的重叠操作 在计算机运行的过程中,指令的解释方式可分为三种,即顺序、重叠 和流水,依据不同的解释方式,可以产生不同的工作方式和过程。下面仅 介绍顺序解释方式和重叠解释方式,流水线方式将在第4.2节介绍。 (1)顺序解释方式 顺序解释是最简单的种方式,它是一条指令执行完后再去解释下一 条指令。早期的计算机多采用这种方式,指令执行过程分为取指令、分析 (译码)和执行三个阶段,顺序进行,其示意如图43所示。 取指k分析k执行k取指k+1分析k+1执行k+1 图43顺序执行方式
4.1.2 程序执行过程中的重叠操作 与先行控制 1.程序执行过程中的重叠操作 在计算机运行的过程中,指令的解释方式可分为三种,即顺序、重叠 和流水,依据不同的解释方式,可以产生不同的工作方式和过程。下面仅 介绍顺序解释方式和重叠解释方式,流水线方式将在第4.2节介绍。 (1)顺序解释方式 顺序解释是最简单的一种方式,它是一条指令执行完后再去解释下一 条指令。早期的计算机多采用这种方式,指令执行过程分为取指令、分析 (译码)和执行三个阶段,顺序进行,其示意如图4.3 所示。 图4.3 顺序执行方式
若取指令、分析和执行所用的时间(周期)相等,设为t,则顺 序解释执行指令所需要的时间3×门×t如果各部分时间表示 为指、t析和轨行,则顺序执行嚓条指令所用的时间为: 7=∑(t取十t分十1执) (4.1) (2)重叠解释方式是在两条相邻指令的解释过程中,存在某些时段 可以重叠进行,其示意如图4.4所示。 取指k分析k执行k 取指k+1分析k+1执行k+1 (a)一次重叠工作方式 取指k分析k执行k1 取指k+1分析k+1执行k+1 (b)二次重叠工作方式 图44重叠执行方法
若取指令、分析和执行所用的时间(周期)相等,设为t,则顺 序解释执行n条指令所需要的时间T=3×n×t。如果各部分时间表示 为t取指、t分析和t执行,则顺序执行n条指令所用的时间为: (2)重叠解释方式是在两条相邻指令的解释过程中,存在某些时段 可以重叠进行,其示意如图4.4所示。 图4.4 重叠执行方法 T=∑(t取i+t分i+t执i) n i=1 (4.1)
图(a)是一次重叠方式,执行m涤条指令所用的时间为:7=(2+1)t 图(b)是二次重叠方式,执行条指令所用的时间为 7=3+(-1)t=(m+2)t 为实现重叠解释方式,需要硬件支持,比如设置指令缓冲寄存器 或称指令队列。又如程序与数据分别存储,以便分别迅速读取操作 数。 若指令的解释过程可分为两个段,上述重叠解释过程可如图4.5 所示。如果“分析”和“执行”的时间相同,那么解释执行n条指令 的时间为 7=(+1)t 分析k 执行k 分析k+1执行k+1 图45两阶段一次重叠工作方式
图4.5 两阶段一次重叠工作方式 图(a)是一次重叠方式,执行n条指令所用的时间为:T=(2n+1)t; 图(b)是二次重叠方式,执行n条指令所用的时间为: T=3t+(n-1)t=(n+2)t。 为实现重叠解释方式,需要硬件支持,比如设置指令缓冲寄存器 或称指令队列。又如程序与数据分别存储,以便分别迅速读取操作 数。 若指令的解释过程可分为两个段,上述重叠解释过程可如图4.5 所示。如果“分析”和“执行”的时间相同,那么解释执行n条指令 的时间为: T=(n+1)t
2.先行控制 分析k「执行k 执行部件空闲 在上述重叠解释方式中假 分析k+1 执行k+1 设“分析”和“执行”的时间 分析部件空闲 分析k2执行k 相等,但是实际的解释执行过 (a)分析与执行时间不相等重叠方式 程中,“分析”和“执行”的 分析k 执行k 时间往往不相等,如图4.6(a) 分析k+1 执行k+1 分析k2 所示,这样解释执行n条指令 执行k+2 (b)先行控制方式 的时间为: 图46分析与执行时间不相等 和先行控制方式 7=1分1+∑[max(t2,A1)]+执n (4.2)
2.先行控制 在上述重叠解释方式中假 设“分析”和“执行”的时间 相等,但是实际的解释执行过 程中,“分析”和“执行”的 时间往往不相等,如图4.6(a) 所示,这样解释执行n条指令 的时间为: T=t分1+∑[max(t分i,t执i-1)]+t执n n i=2 (4.2) 图4.6 分析与执行时间不相等 和先行控制方式