计算机系统结构第五章
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
影响吞吐率的,所以称其为瓶颈。
提高流水线吞吐率需寻找并消除瓶颈。一般有两种方
法。
S
S4 1 2 3 4
S3 1 2 3 4
S2 1 2 3 4
S1 1 2 3 4
t
•瓶颈段细分
∆t ∆t ∆t ∆t ∆t ∆t
•重复设置瓶颈段
∆t ∆t ∆t
3∆t
时空图如下:
S
S4 1 2 3 4 5 6 7 8 9 10
(2)优化编译,重新排序和调度指令序列,以消除空泡。
指令流水线有按序流动和非按序流动之分,由此数据相
关除了RAW,还有WAR和WAW,共三种类形。例如,有i和
同一功能部件所发生的冲突。例如:
时钟1 2 3 4 5 6 7 8
指令LOAD IF ID EXMEMWB
指令I+1 IF ID EX MEM WB
指令I+2 IF ID EX MEM WB
指令I+3IFID EX MEM WB
访存冲突
解决冲突的办法:停顿一拍流水线。
指令LOAD IF ID EX MEM WB
破坏顺序性,主要有以下几种情况:
1.转移指令
不转移:PC = K0+ K1T
转移:控制流发生间断,以目标地址为起始点,
再顺序流动。
Pc pc
转移指令
Pc=k0+k1
K0
T t
(a)(b)
2.过程调用和返回
可嵌套和递归,返回时从原来断点继续执行。
3.协同程序
与调用不同,被调用过程不总是从头开始,如下
图。
SUB IFIDEX MEM WB
(3)周期分割,即将写R寄存器堆放在时钟周期的前半
周期,读R寄存器堆放在后半周期,这样在一个周期写读
同一个寄存器时就没有相关问题。如下例:写R1
ADD R1,R2,R3 IF ID EX MEMWB
SUB
AND读R1
OR R8,R1,R9 IDIDEX
类似于RAW相关,前面指令从存储器读取操作数以供
静态:同一时间内只能以一种方式工作,可以是单功
能和多功能,多功能时从一种功能切换到另一
种功能,流水线必须排空,然后重新建立。
动态:同一时间内将不同的功能段连接成不同的功能
子集,完成不同的运算功能。
单功能是静态的,动态是多功能的。
4.按连接方式分
线性:每个功能段从输入到输出只通过一次,无反遗
非线性:有反遗回路,如下图:
s1 1 2 3 4 1 2 3
t
总计算时间T = 17∆t,流出结果7个。
%
顺序串行执行,即非流水操作,所需时间为:
T1 = 4×3∆t + 3×5∆t = 27∆t,所以
这个例子表明流水线的吞吐率、效率及加速比均不是很理
想,这是由于功能切换时,要有额外的建立和排空的开销。
此外还有相关问题。流水线适合的操作是求解操作相同,
后继指令使用出现的相关称装载延迟。如下例:写R1
LOAD R1,A IF ID EXMEMWB
ADD R3,R1,R2 IFIDEX MEM WB
读R1
此时专用通路不起作用,因为从存储器读取数据是MEM
功能段,不可能提供ADD指令在EX功能段的运算用。解
决方法有两种:
(1)停顿流水线直至数据竞争消失,停顿周期称空泡。
指令
流水段
ALU
LOAD/STORE
BRANCH
IF
取指
取指
取指
ID
译码
读寄存器堆
译码
读寄存器堆
译码
读寄存器堆
EX
执行
计算访存有效地址
计算访存有效地址,设置条件码
MEM
–
访存(读或写)
若条件成立,将
转移目标地址送PC
WB
结果写回寄存器堆
将读出的数据写入寄存器堆
5.3.1资源冲突(结构冲突)
这是多条指令进入流水线后,在同一机器周期内争用
协同程序A协同程序B
4.中断和自陷
为使流水控制方式能高效地解释指令,程序执行的控
制流必须是连续的,因此对控制流的改变要采取有效的措
施,以保证流水控制的实现。
5.2标量流水工作原理
5.2.1重叠操作方式和先行控制
指令的解释执行有以下几种工作方式:
1.顺序方式
这种方式指令串行执行,设一条指令的解释分为:取
且输入、输出间相互独立的一大串运算,此时,流水线的
吞吐率可接近最大吞吐率,效率接近于1,而加速比也可
接近流水线的段数值。
5.3流水操作中的主要障碍
流水操作中可能出现的相关会造成流水线断流,下面
以一RISC机的一个五段流水线为例,分析流水线中可能
出现的相关和解决的办法。
不同类型指令在各流水功能段进行的操作
输入
输出
5.按维数分
有一维和多维之分,如脉动流水控制是平面型的。
5.2.4流水线的主要性能及其分析
衡量流水线性能主要有三个指标:
1.吞吐率(Tp)
吞吐率是指单位时间内能处理的任务数或输出的结果
数。
(1)最大吞吐率
流水线达到稳定状态后可获得的吞吐率。表示为:
如下面流水线,
∆t ∆t 3∆t ∆t
流水线工作时钟周期按max{∆ti, i=1,2…n}确定,这是直接
流水线按不同的应用,有不同的结构、形式和功能:
1.按处理级别分
操作部件级:如浮点加减运算,
指令级:如指令的解释执行,
处理机级:多处理机的流水操作。
2.按功能分
单功能:只是一种连接,完成一种功能。
多功能:有多种连接组成流水控制,完成多种功能。
如不同连接实现:定点加、浮点加、定点乘
浮点向量点积等。
3.按工作方式分
RAW相关(Read after write)。例如:
ADD R1,R2,R3 (R2) + (R3)→R1
SUB R4,R1,R5 (R1) – (R5) →R4
指令流水操作:
时钟1 2 3 4 5写R1
ADD IF ID EX MEMWB
SUB IFIDEX MEM WB
读R1
ADD指令在笫5时钟周期将运算结果写入R1,而SUB指
指令I+1 IF ID EX MEM WB
指令I+2 IF ID EX MEM WB
指令I+3停顿IF ID EX MEM WB
5.3.2数据相关冲突
这是多条指令在流水线中重叠操作,使对操作数访问
的顺序发生变化所产生的冲突。
常见的是后继指令所需的操作数是前一指令运算的结
果,而此时结果却未产生。称此为先写后读相关,简称为
2l + S1 + S2 + S3 + S4 = 20 + 60 + 50 + 90 + 80 = 300ns
采用流水线运算速度提高三倍。下图为浮点加法流水线。
P a q b
阶码
S1减法器
t= | p-q |
r=max(p,q)
L L L
尾数
r加法器
S2
L L
S3 r
L L L
阶码
S4加法器
L L
5.2.3流水线分类
(a1+b1)(a2+b2)返回x输入端,
(a3+b3)(a4+b4)返回y输入端。
3.继续乘法功能计算:
(a1+b1)(a2+b2)(a3+b3)(a4+b4) =∏(ai+bi) i=1…4。
时空图如下:
S
S6 1 2 3 4 1 2 3
s5 1 2 3 4
s4 1 2 3
s3 1 2 3
s2 1 2 3
实际吞吐率
流水线在开始时有一段建立时间,结束时有一段排空时间,
还有各种相关因素使流水线无法继续流动,所以实际吞吐
率总是小于最大吞吐率。当n ›› m时,Tp ≈ Tpmax。
2.加速比(Sp)
这是流水方式的工作速度与等效的顺序串行方式的工
作速度之比,具体计算如下:
当n ›› m时,Sp ≈ m。这说明要获得高的加速比,流水线
•采用多体交叉存储器
•设置指令缓冲寄存器组
这可预取指令,取指阶段时间短,可以合并到分析阶
段,一条指令解释是分析和执行两个阶段。重叠方式如下:
T = ( n + 1)t
这称为一次重叠。
3.先行控制
一次重叠方式中,若分析和执行两个阶段操作时间不
一样,有可能使分析与执行操作有时处于空闲,如下图:
分析k执行k空闲
S3c 3 6 9
S3b 2 5 8
S3a 1 4 7
S2 1 2 3 4 5 6 7 8 9 10
S1 1 2 3 4 5 6 7 8 9 10
t
(2)实际吞吐率
设流水线由m段组成,时钟周期为∆t,连续处理的任
务数为n,通过各段的时间都是∆t,则:
完成n个任务的时间T = M∆t + (n-1) ∆t
(4)流水线工作分建立、满载和排空三个阶段,
(5)流水线满载工作时,每隔∆t时间有一个结果流出
流水线。
上面流水线用于指令的解释,其实也可以用于运算操
作,例如浮点运算。下面是浮点加法运算的流水操作。
两个浮点数相加分四个阶段:
S1:对阶r = max(p,q),t = | p-q |,小阶尾数右
wenku.baidu.com移t位。
流水的物理实现称流水线,其一般结构如下:
L L L L L
输入输出
时钟
L:锁存器,锁定时间为∆tl,
Si:功能段,延迟时间为∆ts。1
流水线最高最高工作频率为:
∆ts + ∆tl
流水线有以下特点:
(1)一条流水线通常由多个流水段组成,
(2)每个流水段有专门的功能部件,相邻两个功能部
件由锁存器隔开,
(3)各流水段所需时间是一样的,
指、分析、执行三个阶段,指令解释执行如下图所示:
设各阶段执行时间为t,解释n条指令的时间是:
若各阶段执行时间不同,分别为t取、t分、t执,则解释
n条指令时间为:
(t取i+t分i+t执i)
顺序方式控制简单,但指令串行解释速度慢,设备利用率
低。
2.重叠方式
这是使相邻指令的解释在一些阶段上的操作在时间上
重叠执行,如:
令在第3时钟周期就要读R1,显然读出的是R1旧的内容。
解决冲突的办法:
(1)推后执行,即停顿后继指令的运行。
(2)相关专用通路,上例中写入R1的ADD运算结果在
EX功能段就已产生,所以可通过硬件设置专用通路将此时
产生的结果直接送往SUB的EX段进行运算,代替读R1。
时钟1 2 3 4 5写R1
ADD IF ID EX MEMWB
行操作栈、数据缓冲站等。先行控制结构图如下:
数据缓冲栈
5.2.2标量流水工作原理
流水是重叠方式的进步发展,如把一条指令的解释细
分为:取指、译码、执行、访存、写回寄存器五个子过程,
相邻指令之间多个子过程时间上重叠操作,如下图所示。
S空间
(功能段)建立(填入)正常(满载)排空
S5 1 2 3 4 5 n
B = (b1,b2,b3,b4)
要求在静态加、乘双功能流水线上计算 。
流水线如下图所示:
乘
加
加法:1 5 6,乘法:1 2 3 4 6
1.流水线先设置加法功能,连续计算ai+bi,(i=1…4)其中
a1+b1,a3+b3返回x输入端,
a2+b2,a4+b4返回y输入端。
2.流水线切换为乘法功能,计算:
T = ( n + 2) t
或
T = ( 2n + 1) t
重叠方式需增设指令缓冲寄存器,在执行k条指令时存放
k+1条指令。同时还要解决取操作数与取指令都要访问存
储器的冲突。
解决冲突的方法:
•使用分开的指令存储器和数据存储器,称为哈佛结构,
如Pentium处理器设置有指令Cache和数据Cache。
S2:两个尾数相加求和。
S3:规格化尾数,数前导0,左移尾数
S4:修改阶码
设4个段的延时为
S1=60ns S2=50ns S3=90ns S4=80ns
L=10ns
四个阶段最大延迟时间为90+10=100ns,流水线满载运行
时,每100ns可完成一次浮点加法操作。
顺序执行时,完成一次浮点加法操作需要的时间为:
分析k+1执行k+1
分析k+2执行k+2
空闲
解释n条指令的时间为:
T = t分1+ (max(t分i,t执i–1)) + t执n
要消除空闲等待的时间,可进行如下操作:
分析k执行k
分析k+1执行k+1
分析k+2执行k+2
T = t分1+ t执I
为此,必须采用先行控制技术,即指令预取、指令先行分
析、预取数据等。并增设有关部件,如:指令缓冲站、先
S4 1 2 3 4 5 n
S3 1 2 3 4 5 n
S2 1 2 3 4 5 n
S1 1 2 3 4 5 n
t1 t2 t3 t4 t5 tn T时间
m∆t (n-1)∆t
这种工作方式与工厂中的装配流水线相类似,所以称其为
流水方式。上图给出了指令各功能段重叠操作的时间关系,
称此为流水方式的时空图。
的段数m应尽可能大,即加大流水线深度。
3.效率(E)
效率是指流水线中的各功能段的利用率。具体可用流
水线各段处于工作时间的时空区与流水各段总的时空区的
比来衡量流水线的效率。
n个任务占用的时空区
m段总的时空区
这说明效率与实际吞吐率Tp成正比。
5.2.5流水线性能分析举例
设有A,B两个向量:
A = (a1,a2,a3,a4)
第五章
标量流水技术
计算机处理器的主要功能是控制指令的解释执行,为
了能引入并行处理,目前普遍使用一种经济有效的方法,
即流水控制方式。
本章讨论的是有关流水控制的概念、原理、涉及的问
题与解决的办法,以及流水控制技术的应用和进一步的发
展。
5.1控制流及其改变
按算法要求控制指令序列的先后顺序执行称控制流,
通常指令的执行顺序是相继的,但控制流经常会发生间断,
提高流水线吞吐率需寻找并消除瓶颈。一般有两种方
法。
S
S4 1 2 3 4
S3 1 2 3 4
S2 1 2 3 4
S1 1 2 3 4
t
•瓶颈段细分
∆t ∆t ∆t ∆t ∆t ∆t
•重复设置瓶颈段
∆t ∆t ∆t
3∆t
时空图如下:
S
S4 1 2 3 4 5 6 7 8 9 10
(2)优化编译,重新排序和调度指令序列,以消除空泡。
指令流水线有按序流动和非按序流动之分,由此数据相
关除了RAW,还有WAR和WAW,共三种类形。例如,有i和
同一功能部件所发生的冲突。例如:
时钟1 2 3 4 5 6 7 8
指令LOAD IF ID EXMEMWB
指令I+1 IF ID EX MEM WB
指令I+2 IF ID EX MEM WB
指令I+3IFID EX MEM WB
访存冲突
解决冲突的办法:停顿一拍流水线。
指令LOAD IF ID EX MEM WB
破坏顺序性,主要有以下几种情况:
1.转移指令
不转移:PC = K0+ K1T
转移:控制流发生间断,以目标地址为起始点,
再顺序流动。
Pc pc
转移指令
Pc=k0+k1
K0
T t
(a)(b)
2.过程调用和返回
可嵌套和递归,返回时从原来断点继续执行。
3.协同程序
与调用不同,被调用过程不总是从头开始,如下
图。
SUB IFIDEX MEM WB
(3)周期分割,即将写R寄存器堆放在时钟周期的前半
周期,读R寄存器堆放在后半周期,这样在一个周期写读
同一个寄存器时就没有相关问题。如下例:写R1
ADD R1,R2,R3 IF ID EX MEMWB
SUB
AND读R1
OR R8,R1,R9 IDIDEX
类似于RAW相关,前面指令从存储器读取操作数以供
静态:同一时间内只能以一种方式工作,可以是单功
能和多功能,多功能时从一种功能切换到另一
种功能,流水线必须排空,然后重新建立。
动态:同一时间内将不同的功能段连接成不同的功能
子集,完成不同的运算功能。
单功能是静态的,动态是多功能的。
4.按连接方式分
线性:每个功能段从输入到输出只通过一次,无反遗
非线性:有反遗回路,如下图:
s1 1 2 3 4 1 2 3
t
总计算时间T = 17∆t,流出结果7个。
%
顺序串行执行,即非流水操作,所需时间为:
T1 = 4×3∆t + 3×5∆t = 27∆t,所以
这个例子表明流水线的吞吐率、效率及加速比均不是很理
想,这是由于功能切换时,要有额外的建立和排空的开销。
此外还有相关问题。流水线适合的操作是求解操作相同,
后继指令使用出现的相关称装载延迟。如下例:写R1
LOAD R1,A IF ID EXMEMWB
ADD R3,R1,R2 IFIDEX MEM WB
读R1
此时专用通路不起作用,因为从存储器读取数据是MEM
功能段,不可能提供ADD指令在EX功能段的运算用。解
决方法有两种:
(1)停顿流水线直至数据竞争消失,停顿周期称空泡。
指令
流水段
ALU
LOAD/STORE
BRANCH
IF
取指
取指
取指
ID
译码
读寄存器堆
译码
读寄存器堆
译码
读寄存器堆
EX
执行
计算访存有效地址
计算访存有效地址,设置条件码
MEM
–
访存(读或写)
若条件成立,将
转移目标地址送PC
WB
结果写回寄存器堆
将读出的数据写入寄存器堆
5.3.1资源冲突(结构冲突)
这是多条指令进入流水线后,在同一机器周期内争用
协同程序A协同程序B
4.中断和自陷
为使流水控制方式能高效地解释指令,程序执行的控
制流必须是连续的,因此对控制流的改变要采取有效的措
施,以保证流水控制的实现。
5.2标量流水工作原理
5.2.1重叠操作方式和先行控制
指令的解释执行有以下几种工作方式:
1.顺序方式
这种方式指令串行执行,设一条指令的解释分为:取
且输入、输出间相互独立的一大串运算,此时,流水线的
吞吐率可接近最大吞吐率,效率接近于1,而加速比也可
接近流水线的段数值。
5.3流水操作中的主要障碍
流水操作中可能出现的相关会造成流水线断流,下面
以一RISC机的一个五段流水线为例,分析流水线中可能
出现的相关和解决的办法。
不同类型指令在各流水功能段进行的操作
输入
输出
5.按维数分
有一维和多维之分,如脉动流水控制是平面型的。
5.2.4流水线的主要性能及其分析
衡量流水线性能主要有三个指标:
1.吞吐率(Tp)
吞吐率是指单位时间内能处理的任务数或输出的结果
数。
(1)最大吞吐率
流水线达到稳定状态后可获得的吞吐率。表示为:
如下面流水线,
∆t ∆t 3∆t ∆t
流水线工作时钟周期按max{∆ti, i=1,2…n}确定,这是直接
流水线按不同的应用,有不同的结构、形式和功能:
1.按处理级别分
操作部件级:如浮点加减运算,
指令级:如指令的解释执行,
处理机级:多处理机的流水操作。
2.按功能分
单功能:只是一种连接,完成一种功能。
多功能:有多种连接组成流水控制,完成多种功能。
如不同连接实现:定点加、浮点加、定点乘
浮点向量点积等。
3.按工作方式分
RAW相关(Read after write)。例如:
ADD R1,R2,R3 (R2) + (R3)→R1
SUB R4,R1,R5 (R1) – (R5) →R4
指令流水操作:
时钟1 2 3 4 5写R1
ADD IF ID EX MEMWB
SUB IFIDEX MEM WB
读R1
ADD指令在笫5时钟周期将运算结果写入R1,而SUB指
指令I+1 IF ID EX MEM WB
指令I+2 IF ID EX MEM WB
指令I+3停顿IF ID EX MEM WB
5.3.2数据相关冲突
这是多条指令在流水线中重叠操作,使对操作数访问
的顺序发生变化所产生的冲突。
常见的是后继指令所需的操作数是前一指令运算的结
果,而此时结果却未产生。称此为先写后读相关,简称为
2l + S1 + S2 + S3 + S4 = 20 + 60 + 50 + 90 + 80 = 300ns
采用流水线运算速度提高三倍。下图为浮点加法流水线。
P a q b
阶码
S1减法器
t= | p-q |
r=max(p,q)
L L L
尾数
r加法器
S2
L L
S3 r
L L L
阶码
S4加法器
L L
5.2.3流水线分类
(a1+b1)(a2+b2)返回x输入端,
(a3+b3)(a4+b4)返回y输入端。
3.继续乘法功能计算:
(a1+b1)(a2+b2)(a3+b3)(a4+b4) =∏(ai+bi) i=1…4。
时空图如下:
S
S6 1 2 3 4 1 2 3
s5 1 2 3 4
s4 1 2 3
s3 1 2 3
s2 1 2 3
实际吞吐率
流水线在开始时有一段建立时间,结束时有一段排空时间,
还有各种相关因素使流水线无法继续流动,所以实际吞吐
率总是小于最大吞吐率。当n ›› m时,Tp ≈ Tpmax。
2.加速比(Sp)
这是流水方式的工作速度与等效的顺序串行方式的工
作速度之比,具体计算如下:
当n ›› m时,Sp ≈ m。这说明要获得高的加速比,流水线
•采用多体交叉存储器
•设置指令缓冲寄存器组
这可预取指令,取指阶段时间短,可以合并到分析阶
段,一条指令解释是分析和执行两个阶段。重叠方式如下:
T = ( n + 1)t
这称为一次重叠。
3.先行控制
一次重叠方式中,若分析和执行两个阶段操作时间不
一样,有可能使分析与执行操作有时处于空闲,如下图:
分析k执行k空闲
S3c 3 6 9
S3b 2 5 8
S3a 1 4 7
S2 1 2 3 4 5 6 7 8 9 10
S1 1 2 3 4 5 6 7 8 9 10
t
(2)实际吞吐率
设流水线由m段组成,时钟周期为∆t,连续处理的任
务数为n,通过各段的时间都是∆t,则:
完成n个任务的时间T = M∆t + (n-1) ∆t
(4)流水线工作分建立、满载和排空三个阶段,
(5)流水线满载工作时,每隔∆t时间有一个结果流出
流水线。
上面流水线用于指令的解释,其实也可以用于运算操
作,例如浮点运算。下面是浮点加法运算的流水操作。
两个浮点数相加分四个阶段:
S1:对阶r = max(p,q),t = | p-q |,小阶尾数右
wenku.baidu.com移t位。
流水的物理实现称流水线,其一般结构如下:
L L L L L
输入输出
时钟
L:锁存器,锁定时间为∆tl,
Si:功能段,延迟时间为∆ts。1
流水线最高最高工作频率为:
∆ts + ∆tl
流水线有以下特点:
(1)一条流水线通常由多个流水段组成,
(2)每个流水段有专门的功能部件,相邻两个功能部
件由锁存器隔开,
(3)各流水段所需时间是一样的,
指、分析、执行三个阶段,指令解释执行如下图所示:
设各阶段执行时间为t,解释n条指令的时间是:
若各阶段执行时间不同,分别为t取、t分、t执,则解释
n条指令时间为:
(t取i+t分i+t执i)
顺序方式控制简单,但指令串行解释速度慢,设备利用率
低。
2.重叠方式
这是使相邻指令的解释在一些阶段上的操作在时间上
重叠执行,如:
令在第3时钟周期就要读R1,显然读出的是R1旧的内容。
解决冲突的办法:
(1)推后执行,即停顿后继指令的运行。
(2)相关专用通路,上例中写入R1的ADD运算结果在
EX功能段就已产生,所以可通过硬件设置专用通路将此时
产生的结果直接送往SUB的EX段进行运算,代替读R1。
时钟1 2 3 4 5写R1
ADD IF ID EX MEMWB
行操作栈、数据缓冲站等。先行控制结构图如下:
数据缓冲栈
5.2.2标量流水工作原理
流水是重叠方式的进步发展,如把一条指令的解释细
分为:取指、译码、执行、访存、写回寄存器五个子过程,
相邻指令之间多个子过程时间上重叠操作,如下图所示。
S空间
(功能段)建立(填入)正常(满载)排空
S5 1 2 3 4 5 n
B = (b1,b2,b3,b4)
要求在静态加、乘双功能流水线上计算 。
流水线如下图所示:
乘
加
加法:1 5 6,乘法:1 2 3 4 6
1.流水线先设置加法功能,连续计算ai+bi,(i=1…4)其中
a1+b1,a3+b3返回x输入端,
a2+b2,a4+b4返回y输入端。
2.流水线切换为乘法功能,计算:
T = ( n + 2) t
或
T = ( 2n + 1) t
重叠方式需增设指令缓冲寄存器,在执行k条指令时存放
k+1条指令。同时还要解决取操作数与取指令都要访问存
储器的冲突。
解决冲突的方法:
•使用分开的指令存储器和数据存储器,称为哈佛结构,
如Pentium处理器设置有指令Cache和数据Cache。
S2:两个尾数相加求和。
S3:规格化尾数,数前导0,左移尾数
S4:修改阶码
设4个段的延时为
S1=60ns S2=50ns S3=90ns S4=80ns
L=10ns
四个阶段最大延迟时间为90+10=100ns,流水线满载运行
时,每100ns可完成一次浮点加法操作。
顺序执行时,完成一次浮点加法操作需要的时间为:
分析k+1执行k+1
分析k+2执行k+2
空闲
解释n条指令的时间为:
T = t分1+ (max(t分i,t执i–1)) + t执n
要消除空闲等待的时间,可进行如下操作:
分析k执行k
分析k+1执行k+1
分析k+2执行k+2
T = t分1+ t执I
为此,必须采用先行控制技术,即指令预取、指令先行分
析、预取数据等。并增设有关部件,如:指令缓冲站、先
S4 1 2 3 4 5 n
S3 1 2 3 4 5 n
S2 1 2 3 4 5 n
S1 1 2 3 4 5 n
t1 t2 t3 t4 t5 tn T时间
m∆t (n-1)∆t
这种工作方式与工厂中的装配流水线相类似,所以称其为
流水方式。上图给出了指令各功能段重叠操作的时间关系,
称此为流水方式的时空图。
的段数m应尽可能大,即加大流水线深度。
3.效率(E)
效率是指流水线中的各功能段的利用率。具体可用流
水线各段处于工作时间的时空区与流水各段总的时空区的
比来衡量流水线的效率。
n个任务占用的时空区
m段总的时空区
这说明效率与实际吞吐率Tp成正比。
5.2.5流水线性能分析举例
设有A,B两个向量:
A = (a1,a2,a3,a4)
第五章
标量流水技术
计算机处理器的主要功能是控制指令的解释执行,为
了能引入并行处理,目前普遍使用一种经济有效的方法,
即流水控制方式。
本章讨论的是有关流水控制的概念、原理、涉及的问
题与解决的办法,以及流水控制技术的应用和进一步的发
展。
5.1控制流及其改变
按算法要求控制指令序列的先后顺序执行称控制流,
通常指令的执行顺序是相继的,但控制流经常会发生间断,