1.1控制流及其改变
流水的目的:
从系统结构上引入并行处理能力,提高计算机性能。
控制流:
被处理的指令序列的执行顺序。
顺序执行
例外
控制流发生改变的原因:
转移指令、过程调用和返回、协同程序、中断和自陷
1.2标量流水工作原理--重叠操作和先行控制
在计算机中不同部件或同一部件内的各种操作存在重叠部分。
指令解释方式分为:顺序、重叠、流水。
顺序执行指令:解释(处理)完一条指令再开始解释(处理)下一条。
上图为顺序解释执行 T=3*n*t
重叠操作方式
重叠执行指令:
一种简单的流水方式,相邻指令不同阶段在时间上重叠。
重叠执行:T=(2*n+1)*t
更高重叠程度的解释执行: T=3*t+(n-1)*t=(n+2)t
一次重叠工作方式:
先行控制方式
先行控制技术:
是预处理技术和缓冲技术的结合,通过对指令流和数据流的先行控制,使指令分析器和执行部件
尽可能的连续工作。
需增设指令缓冲栈、先行操作栈、数据缓冲栈。
缓冲深度:缓冲部件中寄存器个数。
D指缓>=D操作数>D=读栈>=D写栈
标量流水及特点
流水线
A technique designed into some computers to increase speed by starting the execution of one instruction before completing the previous one.
实现了指令在相同时间内重叠执行的技术,使CPU执行得更快的技术;
和程序的对应关系:
取指令 | 取油桶 |
解码 | 装入卡车 |
ALU操作 | 拉到加油站 |
内存访问 | 卸下油桶 |
写入 | 返回油库 |
流水线的最高工作频率
流水线的各段处理时间相等
流水线的各段处理时间不想等
流水线技术特点
一条流水线通常由多个流水段组成;
每个流水段有专门的功能部件对指令进行某种加工;
各个流水段所需要的时间是相同的;
流水线工作阶段可分为建立、满载和排空三个阶段;
理想情况下,当流水线充满后,每隔△t时间就会有一个结果流出流水线。
标量流水的分类
按处理级别 | 按工作方式 | 按功能 | 按处理数据类型 | 按连接方式 |
操作部件级 | 静态流水线 | 单功能 | 标量流水线 | 线性流水线 |
指令级 | 动态流水线 | 多功能 | 向量流水线 | 非线性流水线 |
处理机级 |
流水线的主要性能及其分析
衡量指标
吞吐率:单位时间内能处理的任务数或输出结果的数量。
最大吞吐率:
实际吞吐率:小于最大吞吐率,原因是需要流水线的建立时间和排空时间。
eg:各段时间为△t ,深度为m的流水线 , 完成n个任务所需要的时间:
T=m△t+(n-1)△t
实际吞吐率:
加速比:采用流水方式后,流水线工作方式与等效的串行工作方式的速度之比。
eg:执行n个任务,串行工作方式时间T1,m段流水线时间Tk,加速比:
当n>>m,Sp=m,为了获得高加速比,流水线段数m应较大,称为加深流水深度。
效率:流水线中的功能段的利用率。
一般用流水线各段处于工作时间的时空区与流水线中各段总的时空区之比表示。
流水线性能分析举例
多功能流水线的通病:吞吐率、效率、加速比都很低。
原因:
功能切换时,需要额外的排空和建立的时间开销;
总有一些不需要的功能段处于空闲;
数据相关问题。
流水线适用场合:求解的操作相同,并且输入、输出相互独立的运算。