哈工大—并行处理—第二章流水线处理机和向量处理机
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.将瓶颈子过程再细分,让每个子段经过时间减少到Δt0 2.若子过程不能再细分了,可采用重复设置多套瓶颈段并
联,让它们交叉并行。
1
1 2
1 2 3
1 2 3 4
2 3 4 5
3 4 5 … n-1 4 5 … n-1 n 5 … n-1 n … n-1 n (n-1). Δt0 T
n
1
Δt0
1 2
1 2 3
以上几种相关称为局部相关,因为它最多只影响流入流水线中与之相关的后面 几条指令,使其暂停流动,并不会更改指令缓冲器的内容,所以说影响是局部的。
2.局部性相关的处理
①推后后续指令对相关单元的读操作, 直至在先的指令写入完成。 两种方法 ②设置相关直接通路,将运算结果经相 关直接通路直接送所需部件,不必先 把运算结果写入相关单元,再从此单 元取出来使用
和恢复。
不精确断点法-----不论指令i在流水线的哪一段
发生了中断,都不再允许尚 未进入流水线的后续指令再 进入,但将已进入的指令执 行完,转入中断处理。
采用猜测法时,有以下几种方法: 1 只译码准备操作数,但不运算 (在条件码出现前) 2 运算但不写回结果 (条件码形成后再写) 3 用寄存器保存原始状态 (猜错时恢复现场) 另外,为了在猜错时能尽快回复到原分支点, 转入另一个分支,在沿猜测路径向前流动的同时, 还可以由存储器预取另一分支的头n条指令放在 指缓中,以便猜错时,不必从访存取P开始,使 流水线少等待。
从C中取 操作值
流水线中的先写后读相关
取指K+1 分析K+1 执行K+1
若:C是主存地址——K和K+1条指令间发生了主存操作 数相关
C是通用寄存器号——K和K+1条间发生通用寄存器 组的数相关 C是变地址寄存器号——K和K+1条间发生通用寄存 器的变址值相关 若:第K+1条中放的是条指令,而K+1条指令的代码要 等第K条指令执行结束后才能形成,则称K和K+1条 指令间发生了指令相关。
动态流水线----各功能段在同一时间内可按不同运算或功能 联接
目前,高性能流水处理机大多都采用多功能静态流水
静态多功能流水线时-空图
空间 (段号)
浮加
定乘
8 7 6 5 4 3 2 1 1 1 2 1 2 3 1 2 3 4 1 2 3
1
2
3
4
… …
n-1 n
一 一 二 一 二 三
2 3 4
3 4
1 2 3 4
T0=m. Δt0
(m-1). Δt0
2 3 4 5 时间
n.Δt0
段数 m=4
第1个任务从流入到流出需要T0=m. Δt0的流水建 立时间;之后每隔Δt0流出一个任务。完成n个任务共 需时间 T= m .Δt0+(n-1). Δt0
实际吞吐率为:
n 1 TP= = m .Δt0+(n-1). Δt0 Δt0(1+ =
m
△ α i· t i)
i =1
α i[ Δt i (n 1)Δt j]
i 1
m
对于复杂的非线性流水线,吞吐率和效率需要通过 画实际的时空图才能用下面两个式子求得:
▲
TP=
任务数n
从开始流入到n个任务全部流出的时间T
η=
N个任务的总的加权时空区 m 个段的总的加权时空区
如果线性流水线各段经过的 tc不等,其中瓶颈的时 间为 tj,则完成几个任务所能达到的实际吞吐率
η1= η2=… ηm=
n△t0 T
=
n =η0 m+n-1
●整个流水线的效率为η=
η1+η2+…+ηm m
= m.n△t0 m.T
=η0
▲
若各段经过时间均相同的线性流水,其效率与吞吐率 是成正比的,即: η=TP·△t0 n>>m时,η才趋近于1
▲如果流水线各段经过的时间不等,各段的效率就会不等。
即: η=
n 个任务实际占用的时空区 = m 个段总的时空区
n.
m
i =1
· ti △
m.[ Δt i (n 1)Δt j ]
i 1
m
再考虑到各段设备量不同,为反映出其重要性,数 量、成本等不同,在计算整个系统设备利用率时,可 对各个段加不同的数值α,这样: i
▲
n .(
η=
m
i =1
顺序流动方式一般采用以上方法.
n k 指令地址: k
入 1
j j j
读 段 2
m 空 i
l 空 h
k 空
i i
h h
写 段
(可以不顺序流动的) (顺序流动的) (判出j、h相关)
出 8
3
4
5
6
7
相关专用通路 图:顺序流动和异步流动
顺序流动方式(同步流动) ——任务流出流水线的顺序保持与流入 流水线的顺序一致 异步流动方式——流出流水线的任务(指令)顺序可以和流入流水 线的顺序不同。
时
空图
2a
入
1
Δt0
出
2b 2c 3 Δt0 3
Δt0
4
Δt0
空间
4
3 2c
2b 2a
1 1
2
Δt0
1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 3 6 9 2 5 8 1 4 7 10 3 4 5 6 7 8 9 10 11
8
时间
瓶颈过程并联示意图
清除瓶 颈的办法
空间
4
3 2 1
2.按流水线完成功能的多少分类
单功能流水线----只能实现一种功能的流水处理。
多功能流水线指----同一流水线的各个段之间可以有多 种不同的联接方式以实现多种不同 的运算或功能。
流水线功能块 浮点加、减运算时的连接 定点乘法运算的连接
3.按流水不同功能的联接切换方式分类
静态流水线----在某一时间里各段只能按一种功能联 接流水,只有等流水线全部流空后才 能切换成按另一种功能来联接流水。
3.全局性相关
第K条为条转指令:
取指K
分析K
执行K
按流水关系条件转移不成功时: 取指K+1 分析K+1 执行K+1 条件转移为成功且指令r在指缓中时: 取指r 条件转移为成功且 指令r不在指缓中时: 从主存中取指r
分析r
执行r
分析r
执行r
全局性相关----转移指令和其后面的指令之间的相关。
4.全局性相关的处理
2.3流水线处理机的主要性能
1.吞吐率 T P(吞吐率):单位时间里能流出的任务数或 结果数。
入
出
1
Δt0
2
3Δt0 1
3
Δt0
4
Δt0
上图:Tp max = 1/3Δt0
Tp max =
Max{Δt0,3Δt0,Δt0,Δt0}
空间
3Δt0
4 3 2 1 1
1
2 2
3 3 4
1 2
1
2 3
3 4
4 5
时间
最大吞吐率取决于瓶颈的时间示意图
空间
2
入
1 21 22 23 3 4
出
Δt0 Δt0 Δt0 Δt0 Δt0 Δt0
4 3 23 22 21 1
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 Δt0
1 2 3 4 5
2 3 4 5 3 4 5 4 5 5
时间
瓶颈子过程再细分示意图
(2)加快和提前形成条件码
1 加快单条指令内部条件码的形成,不等指令 可以从两方 执行完,就提前形成反映运算结果的条件码。
面采取措施 2 在一段程序内提前形成条件码。特别适合于循 环程序在判断循环是否继续时的转移情况。
(3)采用延迟转移
用软件方法进行静态指令调度的技术,不增加硬件, 让转移指令与其前面不相关的一条或几条指令交换位置, 让成功转移总是延迟一条或多条指令执行之后再进行。
采用异步流动方 式发生的相关有 二种:
写—写相关——对同一单元,要求在先的指令先
写入,在后的指令后写入的关联。 要求在先的指令先写入,既写入顺序不变.
先读后写相关——对同一单元,要求在先的指令先
读出,在后的指令才写入的关联。 要求在先的指令先读出,既读写的先后顺序不变.
流水机器一般同时解释多条指令,并 经常采用多个可并行工作的功能部件,若 在各功能部件之间为每种局部性相关都设 置单独的相关直接通路,将会使硬件耗费 大,控制复杂。因此,一般宜采用分布式 控制和管理,并设置公共数据总线以简化 各种相关的判别和实现相关直接通路的连 接。
线性流水----各段串行联接,没有反馈回路,各段 只经过一次。
非线性流水----流水线中除有串行联接的通路外.还 有某种反馈回路,使一个任务流经 流水线时,需要多次经过某个段或 跳过某些段,称非线性流水。
入
1
+
2
+
3
+
4
出
图:非线性流水线
6.其它类型
可大量采用,用硬件来实现复杂的 多维流水线,同时设多个方向脉动地向 前推进,以进一步提高流水的并行处理 能力
TP n/[ Δt i (n 1) t j ]
i 1
m
加速比为:
SP=( n
i 1
Δt i
m
)/ [
Δt
i 1
m
i
(n 1)Δt j ]
2.效率 效率(利用率):是指流水线中,设备实际被使用 的时间占整个运行时间的比率。
如果是线性流水,且各段经过的时间相等,则在 T时间内,流水线各段效率都相同,均为 η0,即:
1.猜测法
I+1 i-2 I-1 i P P+1 P+2 P+3 P+4 I+2 I+3 I+4 I+5
转移概率可以 静态 地根据转移指令类型或程序执行期间转移的历 史状况来预测.但需事先对大量程序的转移类型和转移概率进行统 计,且统计所得的概率值一般不好改动,难以得高的猜测准确 度.还可采取 动态 策略,由编译程序根据执行时转移的历史记录来 预测,准确度90%左右.
4
… … n-1 n
n-1 n
… …
n-1 n
… …
4 … … n-1 n … … n-1 n
一 二
三
四
动态多功能流水线时-空图
空间 (段号)
浮加
定乘
8 7 6 5 4 3 2 1 1 1 2 1 2 3 1
1
2
3
4
… …
n-1 n
一 二 一 二 三 三 四
三 四 五
四 五 六
一 二 2 3 4 … … n-1 n 一 二 三 n-1 n
1
2 3 4
2
3
3
4
4
… …
n-1 n
… …
4 … … n-1 n … … n-1 n
四
五
六
七 时间
4.按处理的数据类型分类
标量流水处理机:没有向量数据表示,只能对标 量进行处理
向量流水处理机:机器具有向量数据表示,设置有向 量指令和向量运算硬件,能对向量 的各个元素流水地处理。
5.按流水线的结构分类
m-1 n )
TPmax
m-1 1+ n
若用加速比(speed up Ratio, Sp)表示流水线方式相对 非流水顺序串行方式,速度提高的比值,则其:
Sp=
n.m .Δt0 m .Δt0+(n-1). Δt0
=
m
m-1 1+ n
一般机器手册中提供的吞吐率都是最大吞吐率
如果线性流水线各段经过的时间Δt不等,则完成n个任 务所能达到的实际吞吐率为:
空间
m ti n 1tj TP n / i 1
m=4
1
1 1 1
t 0
i 1
2来自百度文库
2 3 3 3 4 4
3
4
4
m
2 2
时间
ti
n 1tj
2.4 流水的相关处理和控制机构 1.局部性相关
取指K 分析K 执行K
从C中取 变址值
4.按处理的数据类型分类
5.按流水线的结构分类 6.其它类型
1、按流水处理的级别分类
部件级流水: 指构成部件内的各个子部件之间的 流水
处理机级流水: 指构成处理机的各个部件之间的 流水 系统级流水: 指构成计算机系统的多个处理机之 间的流水
处理 机1
处理 机2
处理 机n
数据集
图:处理机的流水处理 系统级流水----宏流水
(4)加快短循环程序的处理
将长度小于指缓容量的短循环放入指缓内,减少访 主存重复取指令次数。
由于循环分支概率高,让循环出口端的条转指令恒 猜循环分支,减少断流。
2.5 流水机器的中断处理
中断会引起流水线断流,但其出现的概率比条件转 移引起的断流概率要低得多,且又是随机发生的。所以, 流水线机器处理中断主要是如何处理好断点现场的保存
机器的最大吞吐率-----机器单位时间内能处理指 令的最大条数,或机器能 输出结果的最多个数。 流水的最大吞吐率是指流水线处于正常满负 荷流动时的吞吐率,只有这时才会每隔Δt 流出一 个结果。 为缓冲各子部件的 速度差异并在部件之间 往往都要设置 高速缓冲器
高速接口锁存器
2.2流水线的分类
1.按流水处理的级别分类 2.按流水线完成功能的多少分类 3.按流水不同功能的联接切换方式分类
第二章 流水线处理机和向量处理机
目录
2.1 流水的基本原理
2.2 流水线的分类 2.3 流水线处理机的主要性能 2.4 流水的相关处理和控制机构 2.5 流水机器的中断处理 2.6 流水线调度 2.7 向量的流水处理与向量流水处理机
2.1 流水的基本原理
入
分
析
出
指令解释的流水处理
5条指令顺序执行20Δt;现8ΔT即可完成, 如完成一条指令的时间为T,把一条指令解释 分解成时间相等的M个子过程,则每隔Δt=T/m 就可以处理一条指令.,最大吞吐率提高。