流水线技术与指令级并行
相当复杂,瞎记一下。
并行处理技术
同时性:同一时刻
并发性:同一时刻间隔
并行处理技术有三种形式:
- 时间并行:时间重叠
- 空间并行:资源重复
- 时间空间并行:超标量流水线
通过将某一 重复 的工作分解为若干子过程,每个子过程可以在专用设备构成的流水线功能段上实现,达到与其他子过程同时执行的效果,这种技术就被成为流水技术。
流水线的一般结构
- 每个子过程被称为流水线的级或段,级的个数被称为流水线的而深度;
- 流水线有一定 通过时间,即在此之后才能进入稳定的工作状态;
- 流水线不能单个任务的响应时间,但是可以提高吞吐率;
- 流水线速度受限于最慢流水线段的速度。
分类
系统级流水线/轰流水线:多机系统中由多个处理机串行构成的流水线;
处理器级流水线:指令间流水执行,如执行指令时可以先取下一个指令;
部件级流水线:如微程序控制单元中取微指令和执行微指令流水执行。
流水线功能的强弱
单功能流水线:每条流水线只能完成单一的功能;
多功能流水线:还可以细分为静态和动态流水线,可以在一条流水线上实现不同的功能;静态流水线只有在某个功能的任务执行完毕之后才能切换为其他任务,动态流水线则不然,但是其复杂度很高。
反馈回路
没有反馈回路的流水线被称为 线性流水线,而 非线性流水线 可以选择数据流向,需要使用流水线连接图和流水线预约表共同表示。
顺序流水线
按照流水线输出端任务流出顺序和输入端流入顺序是否相同划分,相同则为顺序流动流水线,不同则为异步流动流水线,具体分为无序流水线、错序流水线和乱序流水线。
指令流水线策略
增加指令深度
将子过程进一步细分,可以使得单条指令流水线并行执行指令的能力变强,每一级处理时间更短,提高处理器的工作频率;但是分支预测失败的开销太大。
时空图
横轴为时钟周期,纵轴为段的图,方格中写所执行的指令(子过程)有几个段就可同时流水处理几个指令,其通过时间为 (流水线级数 ) 时钟周期,即从第一个段执行第一个子过程到最后一段开始执行第一个子过程的时间。
另一种时空图横轴不变,纵轴为所执行指令,方格中写所执行的段号
吞吐率:单位时间内流水线过完成的任务数或输出结果的数量
最大吞吐率:达到稳定状态后的吞吐率
实际吞吐率:从开始运行到结束的实际吞吐率,若每段执行时间相同,对于 个段和 个任务,则其实际吞吐率为
每段执行时间不同,计算公式为
其中 表示相应段的执行周期。
单流水线计算机的理想 ,最大吞吐率就是主频
加速比:采用流水之后和不采用流水线的比值。
效率:数格子,执行指令的格子和所有格子之比,其实际上是实际加速比和最大加速比的比值,当 不变时,效率与吞吐率呈正比;当 和段数都不变时,加速比和吞吐率呈正比。
流水线的基本性能问题
流水线的深度受限于流水线的延迟、时间不均衡和流水线的额外开销,指令执行时可能存在的 相关 或 冒险 问题。
相关 是指相邻或相近的两条指令因为存在某种关联,后一条指令不能在原定时钟周期开始执行,相关或冒险有 类:
- 结构相关:如资源冲突等。
- 数据相关:某条指令需要用到前面某条指令的结果。
- 控制相关,与前两种不同,控制相关是全局性的,开销很大。