第5章 流水处理机
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、开发并行性的途径: 时间重叠:——让多个处理过程在时间上错开,轮流重叠 地使用同一套硬件设备的各个部分,使之加快硬件使用的 周转来赢得速度。(流水线处理机) 资源重复:——通过重复设置硬件资源来提高性能或可靠 性。(并行处理机、相联处理机) 资源共享:——用软件的方法让多个用户共用同一套资源, 通过提高系统资源的利用率来提高系统的效率和性能。 (多处理机)
执行指令 分析指令
1 2 3 4 n
12 3 4 n
时间
采用“一次重叠”的好处是系统只需要一套指令 分析部件和一套指令执行部件,节省了硬件,也简化 了指令之间的相关控制。为了使“一次重叠”方式的 系统能有较高的重叠效率,应使“分析”和“执行” 的时间尽可能调整成一样的。
重叠解释不能加快每条指令的解释速度,但在硬 件增加不多的情形下,可以加快相邻两条指令以及整 段程序的解释,使系统的性能价格比有显著提高。
取
分析
E 取 分析 E
…
取 分析 E 取 分析 E
t取指+100t分析+99max{t取指,t执行}+t执行
取 分析 E 取 分析 取 E 分析 E
…
取 分析 取 E 分析 取 E 分析 E
t取指+ max{t取指,t分析}+ 98max{t取指,t分析,t执行} +max{t分析,t执行}+t执行
+ ++ ++ + +
⑵、(2+7)*5=45; 时间
乘法 1 2 3 4 5 6 7 8
空间
1 1 4 4 4 4 5 5 6 5 6 7 4 5 6 7 5 6 7 6 7 7
3、计算机系统的分类: SISD——单指令流单数据流 Single Instruction Stream Single Data Stream 流水线处理机
IS
CU
CS
PU
DS
MM
SIMD——单指令流多数据流
Single Instruction Stream Multiple Data Stream 并行处理机 IS DS DS
12 3 4 1 23 4 12 34 1 23 4
时间
2、重复设置多套瓶颈段并使之并联
2A 1 空间 4 2B 2C 3 4
12 34
3
2C 2B 2A 1
1 23 4
3 2 1 1 23 4 4
时间
实际吞吐率:
设一 m 段流水线的各段经过时间均为△t 0,
则最大吞吐率TPmax是 1/ △t 0 ; 则完成n条指令共需要T = m* △t 0 + (n –1)* △t 0 则实际吞吐率 TP = n / (m* △t 0 + (n –1)* △t 0 ) = Tpmax / (1 + (m –1) / n)
3
2 1
A*C
1
1
2
5
3
4
6
时间
吞吐率:3/8;效率:3/8;
*D
*
+
+
A1*B1+ A2*B2+ A3*B3+ A4*B4+ A5*B5+ A6*B6+ A7*B7+ A8*B8
空间 加法 乘法 1 2 3 4 5 6 7 8 ⑴、(8+7)*5=75; 空间 加法 时间
++ + + + + +
1
2
3
4
向量流水机——标量流水机
标量流水机则只有流水线,没有向量数据表示,处理向 量、数组时需要借用程序的循环和变址
向量流水机是向量数据表示和流水线的结合
3、流水线处理机的主要性能 吞吐率和效率是反映流水机器性能的主要指标 吞吐率指的是在单位时间内,流水线机器所能处理的数 据、指令或任务的数目
效率是指流水线中设备实际使用时间占整个运行时间之 比,也称为流水线设备的时间利用率;
单功能流水——多功能流水 单功能流水是指流水线内各段固定连接,只能完成单一 的一种功能 多功能流水是指流水线中各个段可以有多种不同的连接, 以实现多种不同的功能 在多功能流水线的基础上,静态流水——动态流水 静态流水是指在流水线内各个段于同一时间里只能按其 中的一种功能流水,只有等各个段全部空闲后,才能切 换成按另一种功能的连接来流水,把功能负担加到软件 调整上。 动态流水是指流水线的各个段可以同时为不同的功能服 务,把功能负担加到硬件控制上。
一、重叠方式
1、指令的顺序方式与重叠方式解释 指令的顺序解释方式指的是指令与指令之间顺序串 行,指令内的各个微操作之间也是顺序串行的。 优点:每条指令转入下一条指令的时间关系是确定的, 指令间相互的关联关系易于得到控制和处理。 缺点:程序解释的速度低,系统内各部件的时间利用率 低。
指令的重叠解释方式是在相邻的指令之间,让取指 令、分析指令、执行指令等操作在时间上错开重叠的进 行,而指令内部的微操作仍然是顺序串行的。 一次重叠:在任何时间都只有“执行K‖与“分析K+1‖在 时间上重叠。 空间
数相关:
主存空间的数相关:它是在相邻指令之间出现了对 主存同一单元要求在先的指令必须先完成写,在后 的指令才能读的“先写后读”相关。由于发生主存 空间数相关的概率很低,为此可以采取推后后继指 令对相关单元的读操作的办法来解决。 通用寄存器组的数相关: 推后后继指令的分析; 设置“相关专用通道” 数 据 总 线 相 关 专 用 通 路 通用寄存器组
3
2 1
A*C
1
1
2
5
3
4
6
时间
吞吐率:3/8;效率:3/8;
*D
*
+
+
A*(B+C*(D+E*F))+G*H = A*B+A*C*D+A*C*E*F+G*H 空间 4
1 1 2 2 3 3 4 4 5 5 6 7 7 1 2 E*F 3 4 5 A*B 6 7 G*H 8 8 8 9 9 9 6 7 8 9
目前,多采用第二、三种办法的组合。
3.“一次重叠”方式的相关控制
指令相关:
下一条指令的内容取决于上一条指令的执行结果。 条件转移指令与后继指令存在着相关性,会使重 叠效率下降。因此,程序中应尽量减少条件转移指令的 使用。在需要使用条件转移指令时,可采用“延迟转移” 的技术,由编译程序生成目标程序时,将条件转移指令 与其前面的指令交换位置,可使重叠效率不致下降。 另外因为指令在程序的执行过程中允许被修改 (本条指令要等到之前的指令执行完后才能修改形成好) 也可能造成指令相关。解决这种指令相关的根本办法是 在机器中规定指令在执行过程中不允许修改。但是,为 了满足用户编程的灵活性,需要修改指令时,可以设置 类似IBM 370 的“执行”指令,将指令相关转成操作数 相关,统一按操作数相关来处理。
2、重叠方式对计算机组成的要求
为解决“分析 K+1‖、“执行 K‖ 在重叠时的访主存冲突, 可采用的办法:
①、分别设置各自独立编址的数据存储器和指令存储器, 让存、取操作数和取指令可同时访存。缺点:增加了总 线控制和软件设计的负担。 ②、让主存用逻辑上统一编址的多分体交叉访问的并行 组成方式。缺点:可能发生分体冲突,而使并行度受到 限制 ③、在硬件上,增设有一定容量的指令缓冲器和数据缓 冲器,让主存插空将预取的指令存入指令缓冲器,或将 要写入的数据暂时存入数据缓冲器中。
空间
4
12 3 4 1 23 4 12 34 n n
n
3
2 1
1 23 4
n
时间
补充: 用加速比表示流水线方式相对于非流水线顺序串行方式 速度提高的比值。
非流水线顺序串行方式: n*m* △t 0
流水线方式:m* △t 0 + (n –1)* △t 0 加速比:Sp = m / 1 + (m -1) / n 结论:如果线性流水线的各段时间相同,仅当 n >> m 时, 即连续流入的任务数n远远大于流水线子过程数m的时候, 其加速比才能趋于最大值,为流水线的段数m。
设有两个向量A和B,各有4个元素,要在如下图所示的静 态双功能流水线上,计算向量点积A· B (a1*b1+a2*b2+a3*b3+a4*b4)。
其中,1→2→3→5组成加法流水线,1→4→5组成乘法流 水线。又设每个流水线所经过的时间均为△t 0 ,而且流水 线的输出结果可以直接返回到输入或暂存于相应的缓冲寄 存器中,其延迟时间和功能切换所需的时间都可以忽略不 计。请求出流水线从开始流入到结果流出这段时间的实际 吞吐率TP和效率η 。
从时 — 空图上看,效率实际上就是 n 个任务占用的时 — 空区面积和m个段总的时—空区面积之比。
提高吞吐率的两个措施:
1 空间
2
3
4
4 3
1
2
3
4
1
1 1 2 2 3
2
3 4
3
4
4
2
1
时间
1、将瓶颈子过程再细化 1 21 22 2 空间 4 23 3 4
1 2 3 4
3
23 22 21 1
1 2 3 4
3
2 1
A*C
1
1
2
5
3
4
6
时间
吞吐率:3/8;效率:3/8;
*D
*
+
+
A*(B+C*(D+E*F))+G*H = A*B+A*C*D+A*C*E*F+G*H 空间 4
1 1 2 2 3 3 4 4 5 5 7 6 6 6 7 7 1 2 E*F 3 4 5 A*B 7 6 G*H 8 8 8 9 9 9 8 9
第一章 第二章
计算机系统结构的基本概念 数据表示与指令系统
第三章
第四章 第五章 第六章 第七章 第八章
中断与输入输出系统
存储体系 重叠、流水和向量处理机 并行处理机和相联处理机 多处理机 具有现代特色的计算机
引言:系统结构中的并行性发展
1、并行性的含义: 并行性是指问题中具有可同时运算或操作的特性。 同时性:两个或多个事件在同一时刻发生; 并发性:两个或多个事件在同一时间间隔内发生;
运算器 B C
二、流水方式
1、流水是重叠的引申 “一次重叠”是把指令的解释分成两个子过程,让 相邻的指令在时间上错开重叠的解释,因此,“一 次重叠”对速度的提高最多也只是顺序方式的两倍。 流水则是把指令的解释分成更多个( m 个)子过程, 让相邻的m条指令的解释在时间上错开重叠。 空间
指令执行 取操作数 指令译码 取指令
CU
CS
DS
MISD——多指令流单数据流 Multiple Instruction Stream Single Data Stream IS
DS
CS
MIMD——多指令流多数据流 Multiple Instruction Stream Multiple Data Stream 多处理机 IS CS DS
假设指令的解释分取指、分析和执行3步,每步的 时间相应为t取指 t分析 t执行, 分别计算下列情况下,执行完100条指令所需时间 的一般关系式: ① 顺序方式; ② 仅执行k与取址k+1重叠; ③ 取址k+2分析k+1和执行k流水; 当t取指 = t分析=2,t执行=1
当 t取指 = t执行=5,t分析=2
1
2 4
3
5
ຫໍສະໝຸດ Baidu间 5 4 3 2
1 23 4 12 34
+ + ++ +
+
+ +
1 23 4 ++ +
+
时间
1
实际吞吐率:7/15 加速比:24 △t 0 / 15 △t 0 = 1.6
效率: 24 △t 0 / 75 △t 0 = 0.32
空间
4 3 2
12 3 45 + 1 23 4 5+ 12 34 5 + + +
空间
输出
累加 相乘 规格化 相加
1 2 3
A A
A
A B
A B A B
1 2 3 1 2 3
对阶移位
减阶
1 2 3
12 3
A A B
输入 1 2 3
时间
线性流水——非线性流水
线性流水线中各个段之间串行的连接,无反馈也无跳 跃,每个任务流经流水线中各个段均只有一次。
非线性流水是指如果流水线中除有串行联接的通路外, 还有某种反馈回路,使一个任务流经流水线时,需多 次经过某个段或越过某些段。
+ + +
+ + +
+
1
1 23 45 +
+
+
+
时间
【{(A1+A2)+(A3+A4)}+(A9+A10)】+{(A5+A6)+(A7+A8)}
A*(B+C*(D+E*F))+G*H = A*B+A*C*D+A*C*E*F+G*H 空间 4
1 1 2 2 3 3 4 4 5 5 6 7 1 2 E*F 3 4 5 A*B 6 G*H 7 8 8 9 9 6 7 8 9
1 2 3 4
1 2 3 4
1 2 3 4
12 3 4
时间
2、 流水线的分类 部件级流水——处理机级流水——系统级流水 部件机流水是指部件内的各个子部件之间的流水,如分析 部件内部的取址、译码、地址形成和取数之间的流水;浮 点加/减法运算器内的求阶差、对阶、尾数加/减和尾数规 格化之间的流水; Cache存储器内查地址映象表进行地址 变换与访物理Cache之间的流水 处理机级流水是指构成处理机的各个部件之间的流水,如 取指、分析、执行部件间的流水 系统级流水是指处理机之间的流水,如宏流水,在任务、 作业一级上的流水