C5 流水和指令级高度并行的超级机
1 重叠方式
-
重叠解释的实现方法:
- 操作数和指令分存于两个独立编址且可同时访问的存储器(利于实现指令保护,但增加了复杂度)
- 混存,采用多体交叉主存结构
- 增设指令缓冲寄存器(FIFO)(简称指缓)
-
相关问题
- 数相关:第k、k+1条指令的数据地址之间有了关联
- 主存空间数相关
- 原因👉相邻两条指令之间要求对主存同一单元线写入而后再读出的关联
- 解决👉延迟
- 通用寄存器空间数相关
- 解决👉设置“相关专用通路”
- 主存空间数相关
- 指令相关:经第k条指令的执行来形成第k+1条指令
- 原因:冯诺依曼型机器的指令允许修改
- 解决:在程序执行过程中,不准修改指令除可解决指令相关,也可实现程序的可再入性和程序的递归调用
- 数相关:第k、k+1条指令的数据地址之间有了关联
-
相关处理两种方式
- 延迟和设置“相关专用通路”
- 延迟是降低了速度但设备基本上不增加
- 设置“相关专用通路”以增加设备为代价,使重叠效率不下降
-
顺序执行方式
- 执行n条指令所用时间:
T = ∑ i = 1 n ( t 取 指 令 i + t 分 析 i + t 执 行 i ) T=\sum _{i=1}^n(t_{取指令i}+t_{分析i}+t_{执行i}) T=i=1∑n(t取指令i+t分析i+t执行i)
- 主要优点:控制简单,节省设备
- 主要缺点:执行指令的速度慢,功能部件的利用率很低
-
一次重叠执行方式(一种最简单的流水线方式)(最常使用)
- 主要优点:指令的执行时间缩短,功能部件的利用率明显提高
- 主要缺点:需要增加一些硬件,控制过程稍复杂
-
二次重叠执行方式(理想状态下同时有三条指令在被处理)
-
采用二次重叠执行方式,必须解决两个问题
- 有独立的取指令部件、指令分析部件和 指令执行部件
- 要解决访问主存储器的冲突问题
-
必须采用先行控制方式
-
先行控制方式的实现方法👇
-
需要有两个独立的存储器:独立的指令存储器和数据存储器
在许多高性能处理机中,有独立的指令Cache和数据Cache。这种结构被称为哈佛结构
-
采用先行控制技术
-
-
-
先行控制技术
- 技术关键是缓冲技术和预处理技术
- 技术结果:解决了分析与执行时间不等长问题
- 硬件要求:
- 增设指令缓冲栈,消除取指过程
- 增设数据缓冲栈,保证不同指令的读写操作并行
- 增设先行操作栈,保证执行部件能连续执行
2 流水机器的相关处理和控制机构
流水线只有连续不断地流动,不出现断流,才能获得高效率。如果处理不当,就会使流水效率显著下降
-
局部相关与全局相关
- 在同一个基本块内部的相关称为局部相关
- 在基本块之间的相关称为全局相关
-
局部相关的处理
- 局部相关包括:指令相关、访存操作数相关、通用寄存器组相关
- 局部相关产生原因:在机器同时解释多条指令之间出现了对同一主存单元或寄存器要求“先写后读”而产生的
- 局部相关解决方法:
- 延迟读指令
- 设置相关直接通路
- 任务在流水线中流动顺序的安排和控制
- 顺序流动方式(同步流动方式)
- 异步流动方式(可能会发生“先读后写”相关、“先写后读”相关和“写-写”相关)
-
全局相关的处理-------转移相关
- 猜测法
- 加快和提前形成条件码
- 采用延迟转移------采用软件进行静态指令调度
- 加快短循环程序的处理
-
流水机器的中断处理
处理中断的主要问题:断点现场的保护和恢复,而不是缩短流水线的断流时间
- 不精确断电
- 精确断点
-
相关问题
- 相关(Correlation):指在一段程序的相近指令之间有某种关系,这种关系可能影响指令的重叠执行。
- 相关分为:数据相关(局部相关)和控制相关(全局相关)
- 数据相关
- 指令相关(解决:程序中不允许修改指令)
- 主存操作数相关(解决:推后处理法)
- 通用寄存器相关(解决:推后处理或者设置专用数据通路)
- 变址相关(解决:推后分析或者设置专用通路)
- 转移相关
- 无条件转移
- 一般条件转移
- 复合条件转移
-
流水线调度----非线性流水线
要找出一个最小的循环周期,按照这个周期向流水线输入新任务。流水线的各个功能段不会发生冲突,而且流水线的吞吐率和效率最高
流程✨
(1)形成预约表
(2)由预约表形成禁止表
(3)由禁止表形成初始冲突向量C0
(4)由初始冲突向量C0形成状态转换图
(5)找出最佳调度方案
例子👇
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zpOJ9fb2-1625152765016)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210627182040501.png)]
(1)写出流水线的禁止向量和初始冲突向量
(2)画出调度流水线的状态图
(3)求流水线的最小启动循环和最小启动距离
(4)求平均启动距离最小的恒定循环
解:
(1)禁止向量
F = { 3 , 4 } F=\{3,4\} F={3,4}
初始冲突向量
C 0 = ( 101100 ) C_0=(101100) C0=(101100)
(2)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F86KKO3s-1625152765018)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210627183749197.png)]
(3)
简单循环 平均启动距离 (1,7) 4 (1,1,7) 3 (2,7) 4.5 (2,5) 3.5 (2,5,7) 4.7 (5,7) 6 (5) 5 (7) 7 (5,2,7) 4.7 最小启动循环为(1,1,7)最小启动距离为3
(4)最小平均启动距离的恒定循环为(5)
3 向量流水处理机、指令级高度并行的超级处理机
将向量数据表示和流水线技术结合起来构成向量流水处理机
- 向量的流水处理
- 提高流水性能的方法:
- 增加流水线段数,以减少Δt
- 每个时钟同时启动多条指令
- 减少相关,减少功能变换次数,增加处理指令条数
- 向量操作很适合于流水处理或并行处理
- 向量处理机工作方式
- 横向加工
- 纵向加工
- 纵横处理:对向量分组,组内纵向,组间横向处理
- 提高流水性能的方法:
- 向量流水处理机
- 向量流水处理机的指令系统
- 包含向量型和标量型两类指令
- 向量流水处理机的结构
- 向量寄存器由512个64位寄存器组成,分为8组
- 超级向量流水处理机举例
- STAR-100
- CDC-6600
- CYBER 205
- ETA10
- 向量流水处理机的指令系统
- 指令级高度并行的超级处理机
- 超标量处理机-----------采用空间并行性-----增加硬件资源提高性能
- 超流水线处理机--------采用时间并行性-----各硬件充分重叠提高性能
- 定义1:一个周期内能分时发射多条指令的处理机
- 定义2:指令流水线有8个或更多功能段的流水线处理机
- 超标量超流水线处理机------👆两者结合,性能处于二者之间,超标量处理机性能最高,因为超流水线处理机的启动延迟大、条件转移造成的损失大
- 超长指令字处理机(VLIW)
件资源提高性能
- 超流水线处理机--------采用时间并行性-----各硬件充分重叠提高性能
- 定义1:一个周期内能分时发射多条指令的处理机
- 定义2:指令流水线有8个或更多功能段的流水线处理机
- 超标量超流水线处理机------👆两者结合,性能处于二者之间,超标量处理机性能最高,因为超流水线处理机的启动延迟大、条件转移造成的损失大
- 超长指令字处理机(VLIW)