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