1、第 5 章 重叠、流水和向量流水处理机,5.1 重叠方式 5.2 流水方式 5.3 向量的流水处理与向量流水处理机 5.4 指令级高度并行的超级处理机,本章要点,“一次重叠”方式中各种相关的处理; 流水线的时空图和性能分析; 流水的局部性相关处理,全局性相关处理 单功能非线性流水线的调度; 向量处理方法 增强向量处理性能的方法 采用链接技术,从访存开始到一个一个结果分量输出所需的拍数。,5.1 重叠方式,5.1.1 重叠原理和一次重叠,图 5.1 对一条机器指令的解释,t,一、顺序解释(sequence):一条指令执行完再取下一条指令。,若各阶段执行时间相等,则共需3 n t,优点:控制简单,
2、节省设备;缺点:速度慢,机器各部件的利用率很低。,指令的解释方式一般分为顺序、重叠、流水三种。 设指令工作方式分成取指令、分析、执行指令阶段,执行n条指令需:T=(1+2n)t; 优点:指令执行时间缩短了近1/2;功能部件的利用率也有 所提高; 缺点:需要增加一些部件,控制也要复杂些;,二、重叠(Overlap):在两条相近指令的解释过程中,某 些不同解释阶段在时间上存在重叠部分。 1.上一条指令的执行阶段与下一条指令的取指阶段完全重叠;,2.将相邻两条指令的重叠时间再往前提前一个阶段;,执行n条指令需要:T=(2+n)t 指令的执行时间缩短了近2/3,是一种比较理想的指令执行方式;这种执行方
3、式存在着访存冲突,要解决访主存的冲突问题,通常采用以下几种方式:(1)主存分成两个独立编址的存储器,一个专门存放指令,一个专门存放操作数;(2)指令和数据仍然混存在一个存储器中,采用多体交叉主存结构,不能根本解决;(3)采用先行控制技术,增设采用先进先出方式工作的指令缓冲寄存器。,3 一次重叠:把取指令操作隐含在分析、执行指令过程中,则 在任何时候只允许上条指令“执行”与下条指令“分析”相重叠。,连续执行n条指令所需时间为:T=(1+n)t; 实际达到这个速度是很难得,存在几个问题: (1)各种类型的指令“分析”与“执行”所需时间差别很大; 从而导致相互等待。 (2)当出现转移指令或转移子程序
4、指令时,程序的执行过 程就不是顺序的了,那么指缓中的内容以及已经分析完的 下一条指令都将作废; (3)数据相关以及控制相关;,三、先行控制,使分析和执行部件分别连续不断地运行,使部件空闲状态减至最低。,1.工作原理,结果:解决了分析与执行时间不等长问题。,与重叠区别:分析和执行部件可同时处理两条不相邻指令。,2.硬件要求,增设指令缓冲栈,消除取指过程;,增设数据缓冲栈,保证不同指令的读、写操作并行;,增设先行操作栈,保证执行部件能连续执行。,硬件结构:,5.1.2 相关处理,1. 转移指令的处理,采用延迟转移技术,将转移指令与条件转移无关的第k-1条指 令交换一下位置,即使转移成功也不会使重叠
5、效率下降。,2. 指令相关的处理,“执行”指令是IBM 370机器为此设置的一条指令,其形式为,当执行到“执行”指令时,按第二操作数(X2)+(B2)+D2地址取出操作数区中单元的内容作为指令来执行,参见图5.5。,图 5.5 IBM 370“执行”指令的执行,3. 主存空间数相关的处理,图 5.6 主存空间数相关的处理,4. 通用寄存器组相关的处理 设机器的基本指令格式为,或,图 5.7 指令解释过程中与通用寄存器内容有关的微操作时间关系,图 5.8 “执行k”、 “分析k+1”重叠时,访问通用寄存器组的时间关系,(1)通用寄存器组数相关处理,图 5.9 用相关 专用通路解决 通用寄存器组
6、的数相关,处理方法: a.推后下一条指令的分析。 b.设置相关专用通路,(2)通用寄存器组基址值和变址值相关的处理,图 5.10 B一次相关与二次相关,图 5.11 B一次、 二次相关的推后处理, 处理方法: a.推后分析,图 5.12 B相关专用通路法,b.设置相关专用通路,5.2 流 水 方 式,5.2.1 基本概念,1.工作原理(重叠的进一步延伸),一种典型的指令流水线,流水线中每一个子过程还可以再进一步分解成更小的子过程,将浮点加法器分解为求阶差、对阶、尾数加和规格化4个子过程。,图5.13 一种典型的指令流水线,图5.14 浮点数加法器流水线,流水线工作方式:指令一条接着一条从输入端
7、流入,经过各个子 过程后从输出端流出。,时空图:描述流水线工作过程的二维坐标。,对应图5.13所示的流水线的时空图如图5.15所示。,图5.15 对应图5.13流水线的时空图,1)时空图,图5.16是对应5.14浮点数加法器流水线的时空图,图5.16 浮点数加法器流水线的时空图,从横坐标方向看,流水线中的各个功能部件在逐个连续地完成自己的任务。 从纵坐标方向看,在同一个时间段内有多个流水段在同时工作,执行不同的任务。,(2)流水线特点:1)流水一定重叠,比重叠更苛刻。2)一条流水线通常有多个流水段组成。3)每段有专用功能部件,各部件顺序连接,不断流。4)流水线有建立时间、满载时间、排空时间。5
8、)各段时间尽量短、一致;不一致时最慢子过程 为瓶颈。6)给出指标如最大吞吐率,为满负载最佳指标。,2 流水线分类,分级:(处理的级别分类)部件级:指部件内各子部件间的流水,将复杂的算逻运算组成流水工作方式; 处理机级:指构成处理机的各部件之间的流水,如取指、分析、执行部件间的流水 ;系统(处理机间)级:构成计算机系统的每个处理机完成某一专门任务,各个处理机所得到的结果需存放在与下一个处理机所共享的存储器中 。 按流水具有的功能多少: A.单功能流水线:指流水线内各段固定连接,同一时间内只能完成单一的一种功能。,TI-ASC运算器流水线(多功能),B.多功能流水线:流水线中各段可以有多种不同的连
9、接方式,以实现多种不同的运算和功能;,按工作方式分为:A.静态流水线:在某一时间内各段只能按一种 功能连接流水,只有等流水线全部流空后,才能切换 为另一种功能;,B. 动态流水线:各个段可以同时为不同的功能服务,也就是说各功能段在同一时间内可以按不同 运算或功能连接;,浮加排空完,再进行定乘,浮加未排空完,已输入定乘。,为什么?,产生冲突,产生冲突,按流水线中各功能段是否有反馈回路,分为:A. 线性流水线:各段串行联接,没有反馈回路,各个段 只经过一次;B. 非线性流水线:除有串行联接通路外,还有某种反馈 回路,需多次经过某个段或越过某个段;,按机器所具有的数据表示分为:标量流水机和向量流水机
10、,特点: 动态流水线必是多功能流水线;单功能流水线必是静态流水线,一、吞吐率、加速比和效率。,5.2.2 流水线处理机的主要性能,1.吞吐率(Thoughput rate,TP),指在单位时间内流水线完成的任务数或输出的结果数。,其中:n表示任务数,Tk表示完成n个任务所用的时间,(1)各段时间均相等的流水线 各段时间均相等的流水线时空图,S1,S2,S3,S4,t,t,t,t,时间,4t,(n-1)t,完成n个任务,n个任务所需要的时间,流水线完成n个连续任务所需要的总时间为 (假设一条k段线性流水线)Tkkt(n-1)t(kn-1)t 流水线的实际吞吐率,最大吞吐率,TP,=,n,(k+n
11、-1)t,TPmax,=,n,(k+n-1)t,lim,n,=,1,t,最大吞吐率与实际吞吐率的关系,流水线的实际吞吐率小于最大吞吐率,它除了与每个段的时间有关外,还与流水线的段数k以及输入到流水线中的任务数n等有关。 只有当nk时,才有TPTPmax。, 流水线中各个段的执行时间不完全相等,流水线出现“瓶颈”部件。,时空图,(a)各段执行时间不相等的流水线,(b)各段执行时间不相等的时空图 图5.17 各段流水线不相等的流水线和时空图,流水线各段执行时间不相等的情况下的实际吞吐率为:,流水线各段执行时间不相等的情况下的最大吞吐率为:,对于图5.17所示的例子,流水线的最大吞吐率为:,解决流水
12、线“瓶颈”问题有两种方法:,一种方法:将流水线的“瓶颈”部分再细分,(a)瓶颈功能段细分的流水线连接图,(b)瓶颈功能段细分的时空图,图5.18 瓶颈功能部件细分的流水线和时空图,流水线的最大吞吐率为:,另一种方法:将流水线的“瓶颈”子部件设置多套并联,(a)重置瓶颈功能部件的流水线,(b)重置瓶颈功能部件的时空图,图5.19 重置瓶颈段的流水线和时空图,流水线的最大吞吐率为:,2. 加速比 ,指流水线加速比是指完成一批任务时,不采用流水线所用的时间与采用流水线所用的时间之比,其中: 用T0表示采用顺序方式下的执行时间; 用T表示采用流水线的执行时间; 用S表示流水线的加速比,(1)各个功能段
13、执行时间均相等的k段流水线上完成n个连续任务的实际加速比为 :,在k个功能段相等的流水线中,最大加速比为:,(2)如果流水线上各个功能段的执行时间不相等,则流水线的加速比为:,计算图5.17、 图5.18所示的流水线的加速比?,3.效率 ,指流水线的设备利用率。,其中: kTK :表示k段流水线完成n个任务的总的时空区; T0 :表示流水线完成n个任务所使用的总时间 ; E:表示k段流水线的效率;,即:在时空图上,流水线的效率为n个任务占用的时空区与k个功能段总的时空区之比。,(1)在流水线的各功能段执行时间相等 连续输入n个任务的情况下,一条k段流水线的效率为:,流水线的最高效率为:,流水线
14、效率与吞吐率的关系式:,E=TPt,流水线效率与加速比的关系式:,(2)流水线的各段执行时间不相等连续执行n个任务时的流水线效率为:,计算图5.17(b)的时空图所示,整个流水线的效率E?,在图5.18和图5.19中分别采用的细分瓶颈功能部件和重置瓶颈功能部件的效率?,二. 标量流水线的性能举例,【例5.1】 采用前面图5.14所示的4段浮点数加法器流水线计算下面式子的8个浮点数的和,画出流水线的时空图,并求出流水线吞吐率、加速比和效率。,Z = A+B+C+D+E+F+G+H,解:,Z = (A+B)+(C+D)+(E+F)+(G+H),按照数学计算顺序的方法从左到右一个一个计算上式,先计算
15、(A+B),其结果出来后再开始计算(A+B)与C的加法,依次类推。,流水线的实际吞吐率TP为:,流水线的加速比Sp为:,流水线的效率E为:,【例5.2】 设向量A和B各有4个元素,图5.20为静态双功能的流水线连接图,其中,1235组成加法流水线,145组成乘法流水线,设每个流水线所经过的时间均为t,则计算向量点积,画出完成上面运算流水线的时空图,并求出静态双功能流水线的实际吞吐率、加速比和效率。,按照数学运算优先级顺序进行(a1b1)+(a2b2)+(a3b3)+(a4b4)的运算,分别用任务1到7表示。,解:,加,流水线的实际吞吐率TP为:,流水线的加速比Sp为:,流水线的效率E为:,【例
16、5.3】 假设图5.20表示的双功能流水线为动态双功能流水线,则重新计算向量点积,要求画出完成上面运算流水线的时空图,并求出动态双功能流水线的实际吞吐率、加速比和效率。,解:动态多功能流水线在不发生功能部件冲突前提下,同一时间可以按不同运算进行不同功能的连接。因此,只要任务1、任务2、任务3和任务4的结果输出,任务5和任务6就可以输入流水线。下图为在动态流水线下执行向量点积的时空图。,图6-17 动态双功能流水线的时空图,流水线的实际吞吐率TP为:,流水线的加速比Sp为:,流水线的效率E为:,课堂练习,有一个乘、加双功能的静态流水线,“乘”由1236完 成,“加”由1456完成,各段如下图所示
17、。 若要计算:AB=(a1+b1)(a2+b2) (a3+b3),问: (1)完成全部运算所需时间是多少?画时空图计算此流水线的使用效率和吞吐率。 (2)与顺序运算方式相比,加速比是多少?,1,2,3,4,5,6,2t,2t,2t,2t,t,t,一、局部性相关处理,(1)资源冲突(相关)原因:许多指令争抢同一功能部件。如访存,5.2.3 流水机器的相关处理和控制机构,1、各种局部性相关的处理 包括资源或结构相关、指令相关、数据相关。,两条指令同时访存造成资源相关,MEM,EX,ID,IF,指令 i+4,WB,MEM,EX,ID,IF,指令 i+3,WB,MEM,EX,ID,IF,指令 i+2,
18、WB,MEM,EX,ID,IF,指令 i+1,WB,MEM,EX,ID,IF,Load 指令,8,7,6,5,4,3,2,1,时钟指令,取指 译码 执行 访存 写回,例:,解决方法:,a. 时间方法-后续指令冲突部件推后一拍执行;,b.空间方法-重复设置资源。,(2)指令相关原因:由指令可修改引起。,解决方案:a.禁止方法-指令不允许修改;b.转换方法-把新指令作为“执行”指令的操作数,使指令相关变成数据相关。,(3)数据相关 原因:对主存数据或通用寄存器数据的操作引起的相关。,相关类型一:RAW(先写后读)有针对存储器RAW和针对通用寄存器RAW两种。,例:ADD R1,R2,R3 ;R2+
19、R3 R1SUB R4,R1,R5 ;R1-R5 R4,相关类型一解决方案:a.延迟执行法(后推法)不同拍之间相关时,停顿后继指令的运行,直到前面指令结果生成;(R或M相关)同一拍中相关时,采用推后读、提前写方法(后半拍读、前半拍写); (R或M相关) RISC指令的装载延迟,采用联锁硬件检测,并使流水线停顿,直到相关消除。,b.相关专用通路法执行结果除写寄存器外,可直接送到ALU的操作数保存栈中。(R相关),c.异步流动法让流水线中相关指令的后续不相关指令先执行,自动消除相关。,绝大多数系统均采用异步流动的方法。异步流动会产生新的数据相关类型,使其控制很复杂。,相关类型二:WAR(先读后写)
20、、WAW(写写),这两种相关只有在异步流动流水线中才会产生。RAW(先写后读)相关在任何流水线中都会出现。,WAR(读写):在先的指令先读,在后的指令才能写的关 联,称“先读后写”相关。 如: 1 MOV AL,2000H2 MOV 2000H,BL WAW(写写):在先的指令先写入,在后的指令才能写的关 联,称“写写”相关。 如:1 MOV 2000H,AL2 MOV 2000H,BL,相关类型二解决方案:使用分布式动态调度方式检测和处理相关。,2.局部相关的分布式控制和管理,目的:解决异步流动的WAR和WAW相关。,关键技术:动态调度、寄存器重命名和动态存储器地址判别技术,IBM360/9
21、1的浮点运算器部分包括了以下主要部件: (1) 运算部件(2)保存站(3)浮点操作栈(FLOS) (4)浮点操作数缓冲器(FLB) (5) 存储数据缓冲器(SDB) (6) 浮点寄存器(FLR):寄存器号F0F7,每个寄存器设置 一个“忙位”,只要寄存器Fi正在使用,“忙位”就置为“1”,使用完就清0。若某个操作命令使用Fi,先检查“忙位”是否为“1”,若为1则发生相关。 (7)公共数据总线(CDB),结构框图:,a.利用公共数据总线作为相关专用通路; b.利用FLR “忙”位,检测REG的RAW相关; c. 利用修改站号(寄存器重命名),检测和消除REG的WAR 和WAW相关; d.利用存数
22、缓冲器的动态存储器地址判别技术,检测和消除 MEM的RAW、WAR和WAW相关。,应用举例:,S1:(FLB1)F0S2:(F0)*(FLB2)F0S3:(F0)+(FLB4)F0,工作原理:,二、全局性相关处理,原因:由转移指令(占总指令的1/4)引起的相关。,解决方法:,程序执行时:,程序生成时: 优化延迟转移,1.加快和提前形成条件码,对转移指令的条件码,部分可提前生成;加快单条指令或循环内条件码形成。,2.猜测法,选取发生概率较高的分支为猜测方向,运行但不写回结果。若猜对,继续执行;否则,作废猜测方向的执行,返回实际转移处。,(2)实现方法:,a.根据转移指令PC值检索BTB;,BTB
23、包含转移指令PC值、有效位、历史位、转移目标PC值项。,b.命中时,根据历史位取得转移的猜测方向,猜测为转移时,取得转移目标PC值,预取指令送入指令队列头,否则,顺序执行;,(1)硬件要求:增设转移目标缓冲器BTB,加快另一分支的流动,c.根据转移指令实际结果,增加或修改BTB相关指令项,更新其有效位、转移目标PC、历史位。,3.延迟转移技术是一种静态调度方法,由编译程序实现。,实现方法(转移前指令与转移指令关系):无相关:转移前指令入槽;相 关:空指令入槽。,结果:50%以上指令可进入延迟槽,其余为空指令。,4.设置特殊循环指令,加快短循环处理,三、流水机器的中断处理,1.解决问题 如何处理
24、好中断现场的保存与恢复。 2.解决方法 (1)不精确断点法不论第i条指令在流水线的哪一段发出中断申请,都 不再允许那时还未进入流水线的后续指令再进入 。已在流水线的指令仍继续流完,然后才转入中断处理程序。 特点:硬件开销小,控制简单,程序排错不方便。,(2)精确断点法:不论第i条指令是在流水线中哪一段发的 中断申请,给中断处理程序的现场全都是对应第i条的,在第 i条之后进入流水线的所有指令的原有现场都能保存和恢复。 中断处理方法:平时采用一定数量的后援寄存器,把流水线中所有指令的执 行现场保存下来,中断产生时可实现精确断点现场保护与恢 复。特点:效果理想,硬件代价高,控制复杂。现在的流水都采用
25、了精确断点法。,练习题,一、选择 1.指令间的“一次重叠”是指() A.执行K与取指K+1重叠 B.分析K+1与执行K重叠 C.取指K+1与分析K重叠 D.分析K与执行K+1重叠 2一次重叠中消除“指令相关”最好的方法是() A.不准在程序执行过程中修改指令 B.增设相关专用通路 C.推后执行下一条指令 D.推后下条指令的分析 3.在流水线的相关处理中,会发生“写写”相关和“先读后写”相关的是() A.猜测法 B.顺序流动 C.异步流动 D .相关专用通路 二、填空 1.为同时解释相邻两条或多条指令,常用的控制方式是()和()。 2.解决重叠和流水中的操作数相关,不外乎是()法和()法两种。
26、3.流水机器对中断的处理有()断点和()断点,IBM360/91用的是前者,Amdahl470/V6用的是后者。,三、判断1.指令的重叠解释,既可加快程序的解释,又能加快指令的解释。( ) 2、要使线性流水线的实际吞吐率接近于理想的最大吞吐率,应将子过程数分得越多越好。( ) 3、流水机器处理中断应着眼于解决断点现场如何保存和恢复,并不在于如何缩短断流的时间,去追求流水的高吞吐率和高效率。( ),四. 流水线调度 1、单功能非线性流水线调度,非线性流水线:由于段间有前馈和反馈通路任务,执 行过程中可能会多次通过同一流水段,发生几个任务 同时争用同一流水段的现象,这就是功能段的使用冲突。,某流水
27、线结构如下:,解决方法:非线性流水线上输入任务时,在不发生功能段冲 突,又能使流水线有较高的吞吐率和效率的情况下,应该如何 选择输入任务的间隔时间? 非线性流水线调度的任务就是找出一个最佳调度方案,按照这 个调度方案向流水线输入任务,流水线的各个功能段都不会发 生冲突。同时,非线性流水线的吞吐率和效率最高。,流水线调度方案步骤如下:形成预约表; 由预约表形成禁止表;由禁止表形成初始冲突向量;由初始冲突向量形成状态转换图;由状态转换图中找出最佳调度方案。,图5-21是一条由4个功能段组成非线性流水线的连接图,它有两条反馈线和一条前馈线,输出端在第一个功能段S1。,图5-21 非线性流水线连接图,
28、(1)形成预约表,预约表的横坐标表示流水线工作的时间周期,纵坐标表示流水线功能段,功能段在某个时钟周期处于工作状态用“”表示,空白的地方表示该功能段在对应的时间周期内不工作。,图5-22 与图5-21对应的一张预约表,一张非线性流水线的预约表可能与多个非线性流水线的连接图相对应;一个非线性流水线的连接图也可能与多个非线性流水线的预约表相对应。,图5-23 与图5-21对应的另一张预约表,图5-24是非流水线预约表5-22对应的另一种连接图。,图5-24与图5-22对应的另一张连接图,非线性流水线连接图5-21和对应的预约表图5-22可以唯一确定非线性流水线的工作过程。,图5-25 启动距离为2
29、的流水线冲突情况,在图5-21和图5-22所确定的非线性流水线,当启动距离为2时,有关功能段的冲突情况如图5-25所示。,(2)由预约表形成禁止表F,所对应的禁止向量为F=(3,4,6) ,若不想发生冲突,两个任务送入流水线的间隔拍数不属于F,F的拍数禁止使用。,(3)由禁止表F形成初始冲突向量C0,把预约表的每一行中任意两个“”之间的距离都计算出来,去掉重复的,将这些数组成一个数列。,初始冲突向量用一个m位的二进制数表示,其中m表示禁止向量 中的最大值。对于一张k列的预约表,有m k-1。通常禁止向 量用C0 = (CmCm-1C1)来表示,如果i在禁止向量中,则Ci为1, 否则Ci为0。上
30、例中预约表的初始冲突向量C0=(101100),(4)由初始冲突向量C0形成状态转换图,a.C0每过一拍逻辑右移一位,若移出0,则允许后续指令进入流水线,再与C0按位“或”,形成新的冲突向量Ci=修改后的冲突向量初始冲突向量;,1拍后, C0右移1位,左边补0形成修改的冲突向量,结果 010110,修改的冲突向量与原始冲突向量“或”,010110+ 101100=111110=C1,即为新的冲突向量。同理,我们 可计算出C2= 101111,C5 =101101,用冲突向量可画出流水线 状态转换图: (1)冲突向量中,位=0表示不发生冲突,其位置号是不发生 冲突的间隔拍数。 (2)从初始状态开
31、始,检查冲突向量中为0的位,有几个0, 就会有几个新的冲突向量。 (3)逐次计算新的冲突向量,并用有向图连接。 (4)有向弧上的数字表示产生新的冲突向量所用的间隔拍数,b.各Ci再每过一拍逻辑右移一位,若移出0,允许后续指令进入,再与C0按位“或”,形成新的冲突向量Cij= Ci C0 ;,说明:Cij为第i+j拍后流水线的冲突向量,若此时流水线中已有三条指令, Cij用于判断第四条指令的进入。,对C5,再2拍后,C2右移2位,左边补0形成修改的冲突向量,结果 001011,修改的冲突向量与原始冲突向量“或” 001011+ 101100=101111=C52,即为新的冲突向量。,c.重复上一
32、步骤,直到不再生成新的冲突向量为止。,图5-26 与图5-22预约表对应的状态转换图,(5)找出最佳调度方案,从各个闭合回路中找出平均间隔最小的一个。 a.从初始状态出发,沿箭头方向,每走一个闭环,即为一个方案。 b.若中间遇到小闭环,每个小闭环也可作为一个方案。 c.遍历初始状态中的Ci每一个回路。,本例中调度方案如下:,对于非等间隔调度方案,找出每种调度法的平均间隔拍数,然后找出最小者,就是最佳调度方案。本例子平均间隔拍数最小的调度方案有(1,1,7).,平均间隔拍数=循环周期/任务数,非线性流水线的各个功能段在任何周期中都不会发生冲突的流水线预约表如图5-27所示。,图5-27 最佳调度
33、方案(1,1,7)的流水线预约表,最大吞吐率Tpmax=1/(3 t) 照最佳调度方案(1,1,7)连续输入9个任务,求流水线的 实际执行时间、吞吐率和效率。 完成任务的总时间=建立时间+(n-1)个任务流出时间= (7+1+1+7+1+1+7+1+1)t=27t 其中,(n-1)个任务的流出时间示意如下: 任务1 2 3 4 5 6 7 8 99个任务可以在27个周期内完成。吞吐率= 9/(27 t) = 1/(3 t )=33%/t效率=8*9/(4*27)=2/3=66.7%10个任务可以在34个周期内完成。吞吐率10=10/34= 5/17=29%/t效率10=8*10/(4*34)=
34、80/136=58.8%,1,1,7,1,1,7,1,1,例:一条有4个流水段的非线性流水线,每个流水段的延迟 时间都相等,需经7拍完成一个任务,它的预约表如下图:,(1)写出流水线的禁止表和初始冲突向量 (2)画出调度流水线的状态图 (3)求流水线的最优调度方案及最小平均间隔时间和流水线的最大吞吐率。 (4)按最优调度方案连续输入8个任务时,流水线的实际吞吐率是多少?,解:(1)禁止表F=2,4,6冲突向量为 C=(101010)。(2),7+表示大于等于7,(3)平均最小间隔拍数,即平均最小延迟的调度方案是: (1,7)、(5,3)、 (3,5)平均最小延迟是4拍,调度方案如右表:,Tpm
35、ax=1/4,(4) (1,7)调度方案, Tp =n/(7+25)=8/32 (5,3)调度方案 Tp =n/ (7+29)=8/36 (3,5)调度方案 Tp =n/ (7+27)=8/34,Tp =n/(7+25)=8/32 最佳,练习:一条有5个流水段的非线性流水线,每个流水段的延迟 时间都相等,需经7拍完成一个任务,它的预约表如下图:,(1)写出流水线的延迟禁止表和初始冲突向量 (2)画出调度流水线的状态图 (3)求流水线的最优调度方案及最小平均延迟时间和流水线的最大吞吐率。 (4)按最优调度方案连续输入10个任务时,流水线的实际吞吐率是多少?,2.多功能非线性流水线调度,如:加(A
36、)、乘(B)双功能流水线预约表如下:,VAA =(0110), VAB =(1011); VBB =(0110), VBA =(1010)。 VAB表示先执行B后执行A; VBA表示先执行A后执行B。,MA为A的初始冲突矩阵(从A开始),包含VAA和VBA;MB为B的初始冲突矩阵(从B开始),包含VBB和VAB。,a.同单功能调度方法,首先生成n个初始冲突矩阵(按在先功能分类)。,调度方案:,b.再由初始冲突矩阵按后续功能分类按位右移,形成新的冲突矩阵,最终形成状态转换图。,新冲突矩阵形成规则:VB=(Vx)|MB,V后续操作为B;VA=(Vx)|MA,V后续操作为A。,c.从闭合回路中找出调
37、度方案(按功能顺序分成几种)。,向量机对向量的各种运算可以采用不同的加式方式,一种是横向加工,一种是纵向(垂直)加工,还有就是纵横向加工(分组加工),这是分段技术在向量加工方式上的实现。 以一个简单的C语言编写的程序为例,说明向量的三种处理方式的工作原理。 for (i = 1;i = n;i+) yi = ai ( bi + ci );,一、横向处理方式,又称为水平处理方式,横向加工方式等。向量计算是按行的方式从左至右横向地进行。 逐个分量进行处理:假设中间结果为T(i) 计算第1个分量: T(1) B(1)C(1) Y(1) A(1)T(1) 计算第2个分量: T(2) B(2)C(2)
38、Y(2) A(2)T(2) 最后一个分量:T(N) B(N)C(N) Y(N)A(N)T(N),5.3 向量的流水处理与向量流水处理机,5.3.1 向量的处理和向量的流水处理,q存在两个问题:1.在计算向量的每个分量时,都发生先写后读数据相关,流水线效率低。2.如果采用静态多功能流水线,必须频繁进行流水线切换。 q横向处理方式是向量处理方式,但不是向量流水处理方式。,二、纵向处理方式,又称为垂直处理方式,纵向加工方式等。向量计算是按列的方式自上而下纵向地进行。T(1) = B(1) + C(1) T(2) = B(2) + C(2) T(n) = B(n) + C(n)Y(1) = A(1)T
39、(1) Y(2) = A(2)T(2) Y(N) = A(N) T(N),q采用向量指令只需要2条:VADD T , B, CVMUL Y , A, T q这种处理方式适用于向量处理机,数据相关不影响流水线 连续工作。 1次相关,不同的运算操作只需要切换1次。 特点:向量长度不受限制,但访存次数增加,宜于M-M型向量处理方式及其向量流水处理方式。,三、纵横处理方式,又称为分组纵横处理方式。横向处理和纵向处理相结合的方式。,5.3.2 向量流水处理机的结构,1.向量处理机的指令系统,指令类型:,1,2,3,4,5,6,Vi,Vk,Sj,1,2,3,4,5,6,Vi,主存,1,2,3,4,5,6,
40、Vi,主存,2、向量处理机基本系统结构,按向量元素和结果存放分M-M和R-R两类。,控制部分:控制部件和缓冲部件,标量流水:功能部件和标量寄存器(S),向量流水:功能、存取部件和寄存器(V、VM、VL),向量处理机的典型结构图,以CRAY-1机为例(寄存器寄存器)CPU结构向量寄存器 8*64*64 指令缓存器4*64*16 标量寄存器8*64 向量屏蔽Vm 64位向量长度寄存器Vl 地址寄存器等。,CPU功能部件 12个可并行工作的单功能流水部件3个向量部件 加(3)逻辑运算(2) 移位(4)3个浮点部件 加(6) 乘(7) 求倒数(14)4个标量部件 2个地址功能部件 存储器存取(6),其
41、它寄存器:地址寄存器A(8个24bit),中间寄存器B (64个24bit),中间寄存器T(64个64bit)。,5.3.3 提高向量流水处理性能的技术,一、多功能部件并行操作,对向量机中多个功能部件,使其能并行操作。,并行操作条件:,(1)不存在向量寄存器使用冲突不允许出现RAW、WAR、WAW、RAR相关。,如:V4V1+V2V5V2V3,(2)不存在功能部件使用冲突每种功能部件一般只设置一个。,如:V3V1V2V6V4V5,本节将讨论四种提高向量机流水性能的方法:(1) 多功能部件的并行操作(2) 流水线链接技术(3) 条件执行语句和稀疏矩阵的加速处理方法(4) 向量归约操作的加速方法,
42、二、链接技术,利用向量指令间存在的先写后读的数据相关性来加快向量指令序列执行速度的技术称为链接技术。,(1)不存在功能部件和向量寄存器使用冲突; (2)两条向量指令的向量长度必须相等。 (3)参与链接的两条先行指令产生结果时间相同; (4)只有在先行指令产生的第一结果分量送入结果向量寄存器的那 一个时钟周期才可以进行链接,若错过该时刻就不能进行链接。,链接条件:,采用“相关专用通路”思想,解决寄存器的RAW相关。,适用情况:即第1条指令的结果,是第2条指令的操作数,这时 ,所得到的第1条指令的中间结果不必要等待全部向量元素都执 行完才进行第二条指令的操作,可以将从一个流水线部件得到 的结果直接
43、送入下一个功能流水线部件的向量寄存器,形成两条指令的链接 。,例:求D=A*(B+C),若向量为浮点数,长度小于64,B、C已取到V0,V1中,则可用以下三条指令求解。,LD V3,A ; V3A,访主存,读 ADDV V2,V0,V1 ; V2V0+V1,浮点加 MULTV V4,V2,V3 ; V4V2V3,浮点乘,因此,从访存开始到第一个结果分量存入V4,所需拍数(流水线建立时间)为: 1(启动访存,进入浮点加部件)+6(访存,浮点加)+1(流出浮点加部件、访存部件)+1(进入浮点乘部件)+7(浮点乘)+ 1(出浮点乘部件)=17拍 此后,每拍完成一个结果分量存入V4,完成3条指令获得全
44、部结果分量需17+N-1。,如果每一个时钟周期的延迟称为1拍,在Cray-1机中LD指令需要6拍,浮点加为6拍,浮点乘为7拍, cray-1启动访存,数据进入和流出功能部件都为1拍,分别计算上述三条指令采用如下图所示的链接过程所需的时间。,转下页,并行和链接操作图,转上页,若三条指令串行执行,即每次只有前条指令结束,才执行后 继指令,那么三条指令执行的总时间为:(1+6+1)+N-1+(1+6+1)+N-1+(1+7+1)+N-1=3N+22(拍) 若第一、二条指令并行与第三条串行:(1+6+1)+N-1+(1+7+1)+N-1=2N+15(拍) 若第一,二条指令并行与第三条链接:(1+6+1
45、)+(1+7+1)+(N-1)=N+16(拍) 可以看出采用并行与链接后,可以很有效的改善性能。,V2V0*V1 V3 存储器 V4 V2+V3,例:设向量长度均为64,在CRAY1机上所用浮点功能部件的执行时间分别为:相加6拍,相乘7拍,求倒数近似值14拍;从存储器读数6拍,打入寄存器及启动功能部件各1拍。 计算出各指令组全部完成所需要的拍数。,解:3条指令不存在功能部件的使用冲突,但是第1、2条向量指 令与第3条向量指令有V2及V3的先写后读相关。只要让第1条向 量指令较第2条向量指令提前1拍启动,则第1、2条向量指令的 第1个结果元素就可被同时链入到第3条向量指令中。这样,就 有:,三、
46、条件语句和稀疏向量的加速处理,1.加速条件语句,标量条件语句向量化,可提高流水线效率。,条件语句如何向量化?,利用向量屏蔽控制技术实现。,向量屏蔽控制技术实现:,通过条件语句设置VM,通过带VM的向量指令执行。,系统设计:,增加VM置位和复位命令,增加带VM运算命令。,VM的作用:禁止写入/运算。,2.加速稀疏矩阵处理,存储:非零元素和非零元素下标数组,改成稠密向量存储;,操作:散射-聚合方法(R-R)或散列函数方法(M-M)。,四、加速向量归约操作,应用举例:,实现方法一: (正常方法),(1) C=AB; -流水(向量)操作,(2) 对C进行递归折叠求和。-串行(循环)操作,实现方法二:
47、(加速方法),(1) C=AB; -流水(向量)操作,(2) D=D+C; -归约操作,归约实现方法: (V0V0 + C),(1)置V0各分量为0(乘法为1),V0和C计数器均为0;,(2)V0读计数器为0,直到第一个结果分量出来,V0写和C读计数器每时钟加1,直到等于向量计算长度为止。,(3) 对V0的最后p个(n/m)分量累加求和即可。,并行性可分为粗粒度和细粒度。 粒度:指计算机所处理问题的单位大小。 粗粒度并行性:在多处理机上分别运行多个进程、任务和作业,由多台处理机合作完成一个程序; 细粒度并行性:指在一个进程中进行操作一级或指令一级的并行处理。 指令并行性可用并行度来度量。并行度
48、是指不存在相关、可同时并行执行的指令数。 例:LOAD R1 MR2 ADD R2 R1+1ADD R3 R3+1 SUB R4 R3-R2FPMUL F5 F3*F4 STORE MR4 R5(a)并行度=3 (b)并行度=1,5.4 指令级高度并行的超级处理机,每拍启动3条指令 要求并行度=3,超标量流水线,超级标量计算机的原理:,多套独立译码电路、多条独立流水线、控制器,5.4.1. 超标量处理机,每个时钟周期内能启动n条指令,思想:多条流水线并行工作,提高指令级并行度。,正常流水线,超级标量机的典型结构,从上图可以看出,指令的执行部件由存储操作部件、ALU部 件和转移控制部件三部分组成。存储操作部件用来执行 LOAD/STORE指令,ALU部件进行整数运算,而控制部件用来执行转移指令。,主要特点: (1)配置有多个性能不同的处理部件,采用多条流水线并行处理。 (2)能同时对若干条指令进行译码,将可并行的指令送往不同的执行部件,从而达到每个周期启动多条指令。 (3)在程序运行期间由硬件(通常是状态记录部件和调度部件)完成指令调度。,