计算机系统结构第五章

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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控制流及其改变
按算法要求控制指令序列的先后顺序执行称控制流,
通常指令的执行顺序是相继的,但控制流经常会发生间断,
相关文档
最新文档