编辑: 丶蓶一 | 2019-12-25 |
P291 流水线的基本概念 计算机中的流水线是把一个重复的过程分解为若干个子过程,每个子过程与其他子过程并行进行.由于这种工作方式与工厂中的生产流水线十分相似,因此称为流水线技术.通常,可以从两个方面来提高处理机内部的并行性,一个是所谓的空间并行性,即在一个处理机内设置多个独立的操作部件,并且使这些部件并行工作;
另一个是所谓的时间并行性,就是采用流水线技术.流水线技术是一种非常经济、对提高计算机的运算速度非常有效的技术.采用流水线技术只需增加少量硬件就能把计算机的运算速度提高几倍,成为计算机中普遍使用的一种并行处理技术.计算机各个部分几乎都可以采用流水线技术,如果指令的执行过程可以采用流水线,那么称为指令流水线.运算器中的操作部件,如浮点加法器、浮点乘法器等可以采用流水线,称为操作部件流水线;
多个计算机之间,通过存储器连接,也可以采用流水线,称为宏流水线. 流水线的基本概念 一条指令的执行过程可以分为多个阶段取指令:按照指令计数器的内容访问主存储器,取出一条指令送到指令寄存器.指令分析:对指令操作码进行译码,按照给定的寻址方式和地址字段中的内容形成操作数的地址,并用这个地址读取操作数.指令执行:根据操作码的要求,完成指令规定的功能,即把运算结果写到通用寄存器或主存中. 流水线的基本概念 指令的几种执行方式指令多次重叠执行方式实际上就是指令流水线 P292 流水线的基本概念 如果取指令、分析指令、执行指令的时间都相等,每段的时间都为t,则n条指令所用的时间为:顺序执行一次重叠执行两次重叠执行 流水线的表示方法 流水线的每一个阶段完成一条指令的一部分,不同阶段并行完成不同指令的不同部分.流水线中的每一个阶段称为一个流水阶段、流水节拍、流水步、流水段、功能段、流水级等.一个流水阶段与另一个流水阶段相连接形成流水线.指令从流水线的一端进入,经过流水线的处理,从另一端流出.目前大部分处理机的指令流水线在3-12段之间.流水线常用的两种表示方法流水线连接
图表示法,各个流水段顺序连接在一起流水线时空
图表示法,直观描述流水线工作过程 流水线的表示方法 流水线连接
图表示法 流水线的表示方法 流水线时空
图表示法在时空图中,横坐标表示时间,也就是输入到流水线中的各个任务在流水线中所经过的时间.当流水线中各个流水段的执行时间都相等时,横坐标被分割成相等长度的时间段.纵坐标表示空间,即流水线的每一个流水段. 流水线的特点 第一,把一个任务(一条指令或一个操作)分解为几个有联系的子任务,每个子任务由一个专门的功能部件来实现.第二,流水线每一个功能段部件后面都要有一个缓冲寄存器,或称为锁存器,其作用是保存本流水段的结果. P295 流水线的特点 第三,流水线中各功能段的时间应尽量相等,否则将引起堵塞、断流.要求流水线的时钟周期不能快于最慢的流水段.第四,只有连续不断地提供同一种任务时才能发挥流水线的效率,所以在流水线中处理的必须是连续任务.第五,流水线需要有装入时间和排空时间.装入时间是指第一个任务进入流水线到输出流水线的时间.排空时间是指第n个(最后一个)任务进入流水线到输出流水线的时间. P295 流水线的分类 部件功能级流水线所谓功能部件级流水线也可以称为运算操作流水线(Arithmetic Pipelines).前面的浮点加法器就是一种典型的功能部件级流水线.处理机级流水线所谓处理机级流水线,又叫指令流水线(Instruction Pipelines),它是把解释指令的过程按照流水方式处理,使处理机能够重叠地解释多条指令.处理机间级流水线所谓处理机间流水线,又被称为宏流水线(Macro Pipelines).这种流水线由两个或者两个以上的处理机通过存储器串行连接起来,每个处理机完成整个任务的一部分. P296 流水线的分类 单功能流水线如果一条流水线只能完成一种固定的功能,这种流水线称为单功能流水线.多功能流水线多功能流水线是指流水线各段可以进行不同的连接.在不同时间内,或者在同一时间内,通过不同的连接方式实现不同的功能. P297 流水线的分类 静态流水线所谓静态流水线是指在同一段时间内,多功能流水线中的各个功能段只能够按照一种固定的方式连接,实现一种固定的功能.只有当按照这种连接方式工作的所有任务都流出流水线之后,多功能流水线才能重新进行连接.动态流水线而动态流水线是指在同一段时间内,多功能流水线中的各段可以按照不同的方式连接,同时执行多种功能.这种同时实现多种连接方式是有条件的,即流水线中的各个功能部件之间不能发生冲突. 流水线的分类 线性流水线所谓线性流水线是将流水线的各段串行连接起来,没有反馈回路.输入数据从流水线的一端进入,从另一端输出.数据在流水线的各个功能段流过时,每个功能段都流过且仅流过一次.非线性流水线而非线性流水线则是在流水线的各个功能段之间除了有串行的连接之外,还有反馈回路. P298 流水线的分类 其他的流水线分类方法按照数据表示方式的不同,可以把流水线分为标量流水线(处理机无向量数据表示,仅对标量数据进行流水处理)和向量流水线(处理机有向量数据表示,有向量指令)两种.本章主要介绍的都是标量流水线.在线性流水线中,根据对流水线控制方式的不同,可以把流水线分为同步流水线和异步流水线两类.本章中介绍的都是同步流水线,一般的宏流水线采用异步流水线方式.按照流水线输出端流出的任务与流水线输入端流入的任务的顺序是否相同,还可以把流水线分为顺序流水线和乱序流水线(又可称为错序流水线或者无序流水线)两种. 计算机原理及系统结构 第四十九讲 主讲教师:赵宏伟 学时:64 本章主要内容 流水线的基本概念概念、表示方法、特点和分类流水线的性能指标吞吐率、加速比和效率 流水线的实现原理DLX流水线实例流水线的相关问题结构相关、数据相关和控制相关指令级并行技术简介 流水线的性能指标 衡量流水线性能的主要指标有吞吐率、加速比和效率. 流水线设计中,流水线的最佳段数选择也是一个重要问题.下面以线性流水线为例,分析流水线的主要性能指标.其分析方法和有关公式也适用于非线性流水线. 流水线的性能指标 流水线的吞吐率吞吐率(Throughput Rate)是衡量流水线速度的重要指标.它是指在单位时间内流水线所完成的任务数量,或是输出结果的数量,计算流水线吞吐率的最基本的公式表示为:上面公式中,n为任务数,Tk为处理完成n个任务所用的时间. 流水线的性能指标 流水线的吞吐率各个流水段执行时间相等的情况,k为流水线的段数,?t为时钟周期.从流水线输出端看,用k个时钟周期输出第一个任务,其余n-1个时钟周期,每个时钟周期输出一个任务,即用n-1个时钟周期输出n-1个任务.因此,流水线完成n个连续任务需要的总时间为: 流水线的性能指标 流水线的吞吐率流水线的实际吞吐率为:当连续输入的任务n→∞时,得最大吞吐率为:最大吞吐率与实际吞吐率的关系是: 流水线的性能指标 流水线的吞吐率各段执行时间不相等的流水线,其中第二段的执行时间是其他各段执行时间的3倍.流水线的时空图如下图所示.其中S
1、S
3、S4各段中的灰色部分表示该段流水线在这一段时间内是空闲的,而S2段没有任何空闲,因此S2段成为瓶颈段. 流水线的性能指标 流水线的吞吐率流水线存在瓶颈段的情况下,实际吞吐率为: 分母中的第一部分是流水线完成第1个任务所用时间,第二部分是完成其余n-1个任务所用时间.此时流水线的最大吞吐率为: 流水线的性能指标 流水线的吞吐率解决流水线瓶颈的方法之一:瓶颈段细分 P300 流水线的性能指标 流水线的吞吐率解决流水线瓶颈的方法之二:重复设置瓶颈段 流水线的性能指标 流水线的加速比完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比(Speedup Ratio).设T0表示不使用流水线,即顺序执行所用的时间,Tk表示使用流水线时的执行时间,则流水线加速比S的基本公式为: 流水线的性能指标 流水线的加速比如果流水线各段执行时间都相等,则一条k段流水线完成n个连续任务实际加速比为:上述情况下的最大加速比为: 流水线的性能指标 流水线的效率流水线的设备利用率称为流水线的效率(Efficiency).在时空图上,流水线的效率定义为完成n个任务占用的时空区有效面积与n个任务所用的时间与k个流水段所围成的时空区总面积之比.因此,流水线的效率包含了时间和空间两个因素.n个任务占用的时空区有效面积就是顺序执行n个任务所使用的总的时间T0,而n个任务所用的时间与k个流水段所围成的时空区总面积为kTk,其中Tk是流水线完成n个任务所使用的总时间,计算流水线效率的一般公式可以表示为: 流水线的性能指标 流水线的效率如果流水线的各段执行时间均相等,而且输入的n个任务是连续........