1."1
第三章 流水线技术
3.1\t流水线的基本概念
3.2\t流水线的时空图及性能分析
3.3\t流水线的相关
3.4\tMIPS R4000流水线计算机
3.5\t向量处理机
" 2."2
3.1 流水线的基本概念
一.指令的重叠执行
1.一条指令的几个过程段
1)取指令: 根据PC(指令计数器)从M(存储器)取出指令送到IR(指令寄存器)
2)译码分析: 译出指令的操作性质,准备好所需数据
3)执行:将准备好的数按译出性质进行处理,主要涉及ALU(算术逻辑运算部件)
3.1.1有关基本概念
" 3."3
2. 对指令执行的几种方式
1)顺序执行 (传统机采用)
只有在前一条指令的各过程段全部完成后,才从存储器取出下一条指令
取
译
执
取
译
执
i
条
i
1
条
" 4."4
2) 仅两条指令重叠:第i条指令的执行与第i 1条的取指重叠。
3) 三条指令重叠:第i条指令的执行与第i 1条的译码及第i 2条的取指重叠。
i
条
取
译
执
取
译
执
i 1
条
i
条
取
译
执
i 1
条
取
译
执
i 2
条
取
译
执
" 5."5
若一条指令的过程段划分更多时,重叠组合方式更多。
重叠解释并不能加快一条指令的实现,但能加快一段程序的解释。
3. 重叠方式中所需时间表达式及所需时间计算
1)条件:设一条指令分为三个过程段,各过程段分别用t取、t译、t执表示。
执行n条指令,分别采用顺序执行、两条重叠、三条重叠。
2)分别列出上述三种执行方式所需时间表达式
顺序执行 n*(t取 t译 t执)
两条重叠 t取 k* t译 (n-1) *( t取 6.t执)max t执
三条重叠
t取 ( t译 7. t取)max (n-2) *(t取 8.t译 9.t执)max
( t执 10. t译)max t执
" 11."6
3) 例子 当n=200,t取=3Δt,t译=4Δt,t执=5Δt,时,分别计算上述三种执行方式的时间。
顺序执行:
200×(3 4 5)=2400Δt
两条重叠:
3 200×4 (200-1)×5 5=1803Δt
三条重叠:
3 4 (200-2)×5 5 5=1007Δt
" 12."7
重叠方式需要解决的问题
1)对存储器的频繁访问
① 有哪些访问:取指令、取操作数、存放执行结果 13. I/O通道访问.
② 希望存储器为多体结构,以适应多种访问源的需要。
③ 当存储器为单体结构时,需要将访问源排队,先后顺序为:
取指令、取数据、I/O通道访问、存结果
2)应具有先行控制部件
① 先行:在重叠操作中,当前一条指令在执行过程中就需要提前取出后面的指令进行相应处理,这种提前取出后继指令进行相应处理,称为先行。
" 14."8
2) 先行控制部件的主要内容
Ⅰ)先行地址站,包括先行指令地址站和先行操作数地址站;
Ⅱ)先行指令站,用来存放多条指令;
Ⅲ)先行操作数站,用来存放多个操作数;
Ⅳ)先行地址形成部件,用来形成先行指令地址以及先行操作数地址;
Ⅴ)先行操作数译码站,用来完成对多条指令的译码并保留译码输出状态。
" 15."9
3)也应具有后行部件 后行部件:对指令执行后的结果进行处理的器件,称后行部件。包括:①后行数地址站,提供后行数存放地址。②后行数站,存放运行的结果,并且,这些结果需送存储器。
" 16."10
" 17."11
二、从重叠到流水
1、工业生产流水线
下面通过一个例子来说明流水线的好处:
两种方案
两种方案的工作过程对比
流水线生产过程的抽象描述
这种流水工作方式的主要特点
" 18."12
°
洗衣店的例子
°
A 19. B 20. C 21. D
均有一些衣务要清洗,甩干,折叠
°
清洗要花 30 分钟
°
甩干要用 30 分钟
°
叠衣物也需要 30 分钟
°
还要花费 30 分钟的时间
将衣物放在衣柜里
A
B
C
D
" 22."13
顺序操作
°
洗4 个人的衣物,顺序操作需要 8 个小时
°
如果使用流水线作业 23. 将需要多少时间呢?
30
任
务
顺
序
B
C
D
A
时间
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
6 下午
7
8
9
10
11
12
1
2 上午
" 24."14
流水线作业
°
流水线作业洗4个人的衣物只需要 3.5 个小时!
任
务
顺
序
12
2 上午
6 下午
7
8
9
10
11
1
时间
B
C
D
A
30
30
30
30
30
30
30
" 25."15
流水线
°
流水线无法帮助解决单个任务
的延迟 26. 有利于减少整个工作
全部时间
°
多个任务同时操作需要不同
的资源
°
流水线的速率受速度最慢
的流水段的限制
°
流水线各段长度不均会降低
加速比
6 下午
7
8
9
时间
B
C
D
A
30
30
30
30
30
30
30
任
务
顺
序
" 27."16
2、流水线技术
把一个重复的过程分解为若干个子过程,每个子过程由专门的功能部件来实现。
把多个处理过程在时间上错开,依次通过各功能段,这样,每个子过程就可以与其他的子过程并行进行。
3、流水线中的每个子过程及其功能部件称为流水线的级或段,段与段相互连接形成流水线。流水线的段数称为流水线的深度。
" 28."17
4、指令流水线
把指令的解释过程分解为分析和执行两个子过程,并让这两个子过程分别用独立的分析部件和执行部件来实现。理想情况:速度提高一倍
4段指令流水线
" 29."18
5、浮点加法流水线
把流水线技术应用于运算的执行过程,就形成了运算操作流水线,也称为部件级流水线。
把浮点加法的全过程分解为求阶差、对阶、尾数相加、规格化4个子过程。
理想情况:速度提高3倍
" 30."19
3.1.2 流水线的分类
流水线可按不同的观点进行分类,一般来说流水线可以分为以下几个类型。
1、按各过程段用时是否相等分类
流水线按各过程段用时是否相等可分为均匀流水线和非均匀流水线两种。
1) 均匀流水线指的是各过程段用时全相等的流水线
2) 非均匀流水线指的是各过程段用时不全相等的流水线
" 31."20
2、按处理的数据类型
1) 标量流水线:用于对标量数据进行流水处理。
2) 向量流水线:用于对向量数据进行流水处理。(向量很适合流水处理)
按处理的数据类型可分为标量流水处理机和向量流水处理机两种。
" 32."21
3.按流水线的规模
按流水线的规模可分为操作流水线、指令流水线和宏流水线。
1) 操作流水线是把处理机的算术逻辑部件分段,使得各种数据类型的操作能够进行流水,规模最小。
2) 指令流水线则是把解释指令的过程按照流水方式处理。
3) 宏流水线它是指由两个以上的处理机串行地对同一数据流进行处理,每个处理机完成一项任务。
" 33."22
4.按功能分类
按流水线完成的功能是否单一,流水线可分为单功能流水线与多功能流水线两种。
1) 单功能流水线:只能完成一种固定功能的流水线。
2) 多功能流水线:流水线的各段可以进行不同的连接,以实现不同的功能。
例: ASC的多功能流水线
" 34."23
" 35."24
5.按工作方式分类
流水线按工作方式可分为静态流水线和动态流水线两种。
1) 静态流水线:在同一时间内,多功能流水线中的各段只能按同一种功能的连接方式工作。
对于静态流水线来说,只有当输入的是一串相同的
运算任务时,流水的效率才能得到充分的发挥。
例如:ASC的8段流水线
" 36."25
2) 动态流水线:在同一时间内,多功能流水线中的各段可以按照不同的方式连接,同时执行多种功能。
优点
灵活,能够提高流水线各段的使用率,从而提高处理速度。
缺点
控制复杂。
" 37."26
静、动态流水线时空图对比
" 38."27
6.按连接方式分类
按照流水线的各个功能段之间是否有反馈信号,可将流水线分为线性流水线和非线性流水线。
1) 线性流水线:流水线的各段串行连接,没有反馈回路。数据通过流水线中的各段时,每一个段最多只流过一次。
2) 非线性流水线:流水线中除了有串行的连接外,还有反馈回路
" 39."28
" 40."29
7.其他分类
除上述几种外,流水线分类还有下述几种。
1)根据控制方式分成顺序流水线和乱序流水线。
2)在线性流水线中,根据控制方式还可以分成同步流水线和异步流水线。
" 41."30
3.1.3 流水线的特点
1.流水线处理的必须是连续任务,只有连续不断的任务才能充分发挥流水线的效率。
2.流水线依靠多个功能部件并行工作宋缩短程序的执行时间,实际上是把一个大的功能部件分解为多个子过程,如前述将浮点数加法器分解为4个子过程。
3.流水线中的每一功能部件后面都要有一个缓冲寄存器,即所谓的锁存器,以便平滑各个功能段延时时间的不一致。
4.流水线中各段时间应尽量相等,避免段延时过长引起的相互等待。
5.流水线需要有“装入时间”和“排空时间”。
" 42."31
3.2 流水线的时空图及性能分析
一、时空图
时空图从时间和空间两个方面描述了流水线的工作过程。时空图中,横坐标代表时间,纵坐标代表流水线的各个段。
4段指令流水线的时空图
3.2.1 流水线的时空图
" 43."32
3.2.2 流水线的性能分析
吞吐率:在单位时间内流水线所完成的任务数量或输出结果的数量。
一、 吞吐率
n:任务数
Tk:处理完成n个任务所用的时间
" 44."33
1、各段时间均相等的流水线
各段时间均相等的流水线时空图
" 45."34
流水线完成n个连续任务所需要的总时间为
(假设一条k段线性流水线)
Tk=kΔt+(n-1)Δt=(k+n-1)Δt
流水线的实际吞吐率
最大吞吐率
" 46."35
最大吞吐率与实际吞吐率的关系
流水线的实际吞吐率小于最大吞吐率,它除了与每个段的时间有关外,还与流水线的段数k以及输入到流水线中的任务数n等有关。
只有当n>>k时,才有TP≈TPmax。
" 47."36
2、各段时间不完全相等的流水线
各段时间不等的流水线及其时空图
举例(时空图)
一条4段的流水线
S1,S3,S4各段的时间:Δt
S2的时间:3Δt (瓶颈段)
流水线中这种时间最长的段称为流水线的瓶颈段。
" 48."37
" 49."38
各段时间不等的流水线的实际吞吐率:
( Δti为第i段的时间,共有k个段 )
流水线的最大吞吐率为
" 50."39
3、解决流水线瓶颈问题的常用方法
1)细分瓶颈段
例如:对前面的4段流水线
把瓶颈段S3细分为3个子流水线段:S3a,S3b,S3c
改进后的流水线的吞吐率 :
" 51."40
2)重复设置瓶颈段
缺点:控制逻辑比较复杂,所需的硬件增加了。
例如:对前面的4段流水线
重复设置瓶颈段S3:S3a,S3b,S3c
" 52."41
重复设置瓶颈段后的时空图
" 53."42
二、 加速比
流水线的加速比(Speedup 54.S)完成某个任务顺序执行所用时间与流水线执行所用时间之比。
假设:不使用流水线(即顺序执行)所用的间为Ts,使用流水线后所用的时间为Tk,则该流水线的加速比为
" 55."43
1、流水线各段时间相等(都是△t)
一条k段流水线完成n个连续任务
所需要的时间为
Tk = (k+n-1)Δt
顺序执行n个任务
所需要的时间: Ts= nk△t
流水线的实际加速比为
" 56."44
最大加速比
当n>>k时,S ≈ k思考:流水线的段数愈多愈好?
" 57."45
2、流水线的各段时间不完全相等时
一条k段流水线完成n个连续任务的实际加速比为
" 58."46
三、 效率
流水线效率(Efficiency,E)是指流水线的设备利用率。在时空图上,流水线的效率定义为n个任务占用的时空区与k个功能段总的时空区之比,因此流水线的效率包含时间和空间两个方面的因素。
实际上,n个任务占用的时空区就是顺序执行n个任务的总的时间T0;而用一条k段流水线完成n个任务的总的时空区为KΔt,其中Tk 是流水线完成n个任务所使用的总时间,则一条k段流水线的效率为:
" 59."47
举例
计算:S=a0 a1 a2 a3 a4 a5 a6 a7
对相关算式要合理分解算式——尽量分解为少相关算式:
① S0=a0 a1 ⑤S4=S0 S1
② S1=a2 a3 ⑥S5=S2 S3
③ S2=a4 a5 ⑦S6=S4 S5
④ S3=a6 a7
" 60."48
吞吐率:TP=7/18 (1/Δt)
效率:E=(作用区域面积)/(完成运算所需时间矩形面积)
=(7*5Δt)/(18Δt*5)=7/18
" 61."49
例子
线性流水线,输人任务是不连续的情况,计算流水线的吞吐率、加速比和效率。用一条4段浮点加法器流水线计算8个浮点数的和:
Z = A B C D E F G H
解:由于存在数据相关,把上式作一个简单的变换,得到:
Z =〔(A B ) ( C D )
查看更多