第4章标量流水线技术 内容提要 本章首先简要介绍标量流水线的基本概念与工作原理,然后 讲述流水线时空图与性能分析、流水线操作中的主要障碍、处理 方法、非线性流水线的调度策略以及实现流水线的控制方式。重 点是流水线的时空图、流水线性能分析以及流水线的实现与控制 难点是使用流水线的时空图、性能分析与非线性流水线的调度策 略
第4章 标量流水线技术 • 内容提要: 本章首先简要介绍标量流水线的基本概念与工作原理,然后 讲述流水线时空图与性能分析、流水线操作中的主要障碍、处理 方法、非线性流水线的调度策略以及实现流水线的控制方式。重 点是流水线的时空图、流水线性能分析以及流水线的实现与控制。 难点是使用流水线的时空图、性能分析与非线性流水线的调度策 略
第4章标量流水线技术 4.1概述 4.2标量流水线工作原理 4.3指令级流水线
第4章 标量流水线技术 4.1 概述 4.2 标量流水线工作原理 4.3 指令级流水线
4.1概述 41.1控制流及其改变 4.1.2程序执行过程中的重叠操作与先 行控制
4.1 概述 4.1.1 控制流及其改变 4.1.2 程序执行过程中的重叠操作与先 行控制
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 分析与执行时间不相等 和先行控制方式
□分析k执行k 分析k1 执行k+1 分析k+2 执行k+2 (b)先行控制方式 图46分析与执行时间不相等和先行控制方式 为解决重疊过程中的“空闲”,可采用先行控制技术,使 “分析”和“执行”分别连续进行,如图4.6(b)所示。这时, 执行条指令所需要的时间为 7先行=t分1+∑/(43)
为解决重叠过程中的“空闲”,可采用先行控制技术,使 “分析”和“执行”分别连续进行,如图4.6(b)所示。这时, 执行n条指令所需要的时间为: n i=1 T先行=t分1+∑t执i (4.3) 图4.6 分析与执行时间不相等和先行控制方式