1、第5章 标量处理机 5.1 重叠方式重叠方式5.2 流水方式流水方式5.3 指令级高度并行的超级处理机指令级高度并行的超级处理机 5.4 本章小结本章小结第5章 标量处理机 5.1 重重 叠叠 方方 式式 5.1.1 重叠原理与一次重叠重叠原理与一次重叠指令的重叠解释使机器语言程序的执行速度会比采用顺序 解释有较大的提高。解释一条机器指令的微操作可归并成取指令、分析和执行三部分,时间关系如图5-1所示。第5章 标量处理机 图 5-1 对一条机器指令的解释第5章 标量处理机 图5-2(b)是可能的一种方式。显然,重叠解释虽不能加快一条指令的解释,却能加快相邻两条指令以至整段程序的解释。第5章 标
2、量处理机 图 5-2 指令的顺序解释与重叠解释(a)顺序解释;(b)重叠解释的一种方式 第5章 标量处理机(1)要解决访主存的冲突。最多可预取多少条指令取决于指缓的容量。如果每次都可以从指缓中取得指令,则“取指k+1”的时间很短,就可把这个微操作合并到“分析k+1”内,从而由原先的“取指k+2”、“分析k+1”、“执行k”重叠变成只是“分析k+1”与“执行k”的重叠,如图5-3所示。第5章 标量处理机 图 5-3 一次重叠工作方式第5章 标量处理机(2)要解决“分析”与“执行”操作的并行。(3)要解决“分析”与“执行”操作控制上的同步。(4)要解决指令间各种相关的处理。图5-4示意出条件转移时
3、第k条指令和第k+1条指令的时间关系。第5章 标量处理机 图 5-4 第k条指令和第k+1条指令的时间关系第5章 标量处理机 5.1.2 相关处理相关处理1.转移指令的处理转移指令的处理当第k条指令是条件转移且转移成功时,传统做法与延迟转移做法的比较如图5-5所示。第5章 标量处理机 图 5-5 当第k条指令是条件转移且转移成功时,传统做法与延迟转移做法的比较(a)条件转移成功时成了顺序解释;(b)采用延迟转移,条件转移成功时,仍保持重叠第5章 标量处理机 2.指令相关的处理指令相关的处理 当执行到“执行”指令时,按第二操作数地址(X2)+(B2)+D2取出操作数区中单元的内容作为指令来执行,
4、参见图5-6。第5章 标量处理机 图 5-6 IBM 370“执行”指令的执行 第5章 标量处理机 3.主存空间数相关的处理主存空间数相关的处理主存空间数相关是相邻两条指令之间出现对主存同一单元要求先写而后读的关联,如图5-7(a)所示。第5章 标量处理机 图 5-7 主存空间数相关的处理(a)主存数相关的时间关系;(b)由存控推后“分析k+1”的读 第5章 标量处理机 4.通用寄存器组相关的处理通用寄存器组相关的处理一般的机器中,通用寄存器除了存放源操作数、运算结果外,也可能存放形成访存操作数物理地址的变址值或基址值,因此,通用寄存器组的相关又有操作数的相关和变址值或基址值的相关两种。第5章
5、 标量处理机 L1、L3分别指明存放第一操作数和结果数的通用寄存器号,B2为形成第二操作数地址的基址值所在通用寄存器号,d2为相对位移量。图5-8示意出它们的时间关系。第5章 标量处理机 图 5-8 指令解释过程中与通用寄存器内容有关的 微操作时间关系第5章 标量处理机 有些指令需要从通用寄存器组中取两个操作数(L1)和(L2),若通用寄存器组做在一个片子上,每次只能读出一个数,则在“分析k+1”期间,操作数(L1)和(L2)就需要在不同拍时取得,分别送入运算器的B和C寄存器,以便在“执行k+1”时供运算用。这样,“执行k”与“分析k+1”访问通用寄存器组的时间关系如图5-9所示。第5章 标量
6、处理机 图 5-9 “执行k”、“分析k+1”重叠时,访问通用寄存器组 的时间关系 第5章 标量处理机 如果在运算器的输出到B或C输入之间增设“相关专用通路”,如图5-10 所示,则在发生L1或L2相关时,接通相应的相关专用通路,“执行k”时就可以在将运算结果送入通用寄存器完成其应有的功能的同时,直接将运算结果回送到B或C寄存器,从而大大缩短了其间的传送时间,并保证“执行k+1”用此操作数时,它已在B或C寄存器中准备好了。第5章 标量处理机 图 5-10 用相关专用通路解决通用寄存器组的数相关第5章 标量处理机 设操作数的有效地址(Xd)+(B2)+d2是由分析器中的地址加法器形成的。由于多数
7、情况的“分析”周期等于主存周期,因此,从时间上要求,在“分析”周期的前半段就应由通用寄存器输出总线取得(B2),送入地址加法器。由于运算结果是在“执行”周期的末尾才送入通用寄存器组的,因此它当然不能立即出现在通用寄存器输出总线上。也就是说,在“执行k”得到的、送入通用寄存器的运算结果是来不及为“分析k+2”作基址值用,更不用说为“分析k+1”作基址值用。第5章 标量处理机 即B(k+1)=L3(k)时发生B一次相关,B(k+2)=L3(k)时发生B二次相关,如图5-11所示。第5章 标量处理机 图 5-11 B一次相关与二次相关第5章 标量处理机 由图5-11可见,B二次相关时,只需推后“分析
8、k+2”的始点到“执行k”送入通用寄存器的运算结果能在“分析k+2”开始时出现于通用寄存器输出总线上即可,如图5-12(a)所示。至于推后多少拍,这取决于通用寄存器组译码、读出机构的具体逻辑组成。而对B一次相关,则除此之外,还需再推后一个“执行”周期,如图5-12(b)所示。由于B相关的概率并不是很低,增设B相关专用通路是值得的,办法如图5-13所示。第5章 标量处理机 图 5 12 B一次与二次相关的推后处理(a)B二次相关的推后处理;(b)B一次相关的推后处理 第5章 标量处理机 图 5-13 B相关专用通路法第5章 标量处理机 5.2.1 基本概念基本概念1.工作原理工作原理“分析k+1
9、”与“执行k”的一次重叠是把指令的解释过程分解成“分析”与“执行”两个子过程,在独立的分析部件和执行部件上时间重叠地进行。若“分析”与“执行”子过程都需要t1的时间,如图5-14所示,则一条指令的解释需要2t1完成,但机器每隔t1就能解释完一条指令。5.2 流流 水水 方方 式式 第5章 标量处理机 图 5-14 指令分解为“分析”与“执行”子过程第5章 标量处理机 如果把“分析”子过程再细分成“取指令”、“指令译码”和“取操作数”3个子过程,并改进运算器的结构以加快其“执行”子过程(如图5-15(a)所示,这4个子过程分别由独立的子部件实现),让经过的时间都等于t2,则指令解释的时(间)空(
10、间)关系如图5-15(b)所示。图中的1、2、3、4、5表示处理机所处理的第1、2、3、4、5条指令。第5章 标量处理机 图 5-15 流水处理(a)指令解释的流水处理;(b)流水处理的时(间)空(间)图 第5章 标量处理机 2.流水的分类流水的分类从不同的角度对流水可进行不同的分类。流水的向上扩展可理解为在多个处理机之间流水,如图5-16所示。第5章 标量处理机 图 5-16 处理机间的流水处理第5章 标量处理机 要完成多种功能的流水可将多个单功能流水线组合。如CRAY-1有12条单功能流水线,分别完成地址加、地址乘、标量加、标量移位、标量逻辑运算、标量数“数”、向量加、向量移位、向量逻辑运
11、算、浮点加、浮点乘、浮点迭代求倒数。多功能流水线指的是同一流水线的各个段之间可以有多种不同的连接方式,以实现多种不同的运算或功能。例如TI-ASC计算机的运算器流水线就是多功能的,它有8个可并行工作的独立功能段,如图5-17(a)所示。当要进行浮点加、减时,连接成如图5-17(b)所示的形式。当要进行定点乘法运算时,连接成如图5-17(c)所示的形式。第5章 标量处理机 图 5-17 ASC计算机运算器的流水线(a)流水线的功能段;(b)浮点加、减法运算时的连接;(c)定点乘法运算时的连接 第5章 标量处理机 图5-18画出了静态和动态多功能流水线的时空图,从中可以看出它们在工作方式和性能上的
12、差异。图5-19就是一个非线性流水线,由4段组成,经反馈回路和多路开关使某些段如2段、3段或4段可能要多次通过,而有些段如2段可能被跳过。第5章 标量处理机 图 5-18 静、动态多功能流水线时空图(a)静态;(b)动态 第5章 标量处理机 图 5-19 非线性流水线第5章 标量处理机 5.2.2 标量流水线的主要性能标量流水线的主要性能 1.吞吐率吞吐率Tp和加速比和加速比Sp吞吐率是流水线单位时间里能流出的任务数或结果数。在图5-15(b)所示的流水线例中,各子过程经过的时间都是t2,满负荷后流水线每隔t2解释完一条指令,其最大吞吐率Tpmax为1/t2。如果各个子过程所需的时间分别为t1
13、、t2、t3、t4,时钟周期应当为maxt1,t2,t3,t4,即流水线的最大吞吐率,max14321maxttttTp第5章 标量处理机【例【例 5-1】有一个4段的指令流水线如图5-20(a)所示,其中,1、3、4段的经过时间均为t0,只有2段的经过时间为3t0,因此瓶颈在2段,使整个流水线的最大吞吐率只有1/(3t0),其时空图如图5-20(b)所示。即使流水线每隔t0流入一条指令,也会因来不及处理被堆积于2段,致使流水线仍只能每隔3t0才流出一条指令。第5章 标量处理机 图 5-20 最大吞吐率取决于瓶颈段的时间第5章 标量处理机 消除瓶颈的一种办法是将瓶颈子过程再细分。例如将2段再细
14、分成21、22、23三个子段,如图5-21(a)所示。让各子段经过时间都减少到t0,这样,最大吞吐率就可提高到1/t0。图5-21(b)是将瓶颈子过程再细分后的时空图。例如2段已不能再细分了,则可以通过重复设置多套(如此例用3套)瓶颈段并联,让它们交叉并行,如图5-22(a)所示。第5章 标量处理机 图 5-21 瓶颈子过程再细分第5章 标量处理机 图 5-22 瓶颈子过程并联第5章 标量处理机 设一m段流水线的各段经过时间均为t0,则第1条指令从流入到流出需要T0=mt0 的流水建立时间,之后每隔t0就可流出一条指令,图5-23为其时空图(这里设m=4)。这样,完成n个任务的解释共需时间T=
15、mt0+(n-1)t0,流水线在这段时间里的实际吞吐率 nmTnmttntmnTpp11111)1(max000第5章 标量处理机 图 5-23 从时空图分析实际的吞吐率第5章 标量处理机 如果线性流水线每段经过的时间ti不等,其中瓶颈段的时间为tj,则完成n个任务所能达到的实际吞吐率 其加速比 jimiptntnT)1(1jimiimiptnttnS)1(11第5章 标量处理机 2.效率效率流水线的效率是指流水线中设备的实际使用时间与整个运行时间之比,也称流水线设备的时间利用率。如果是线性流水线、任务间不相关且各段经过的时间相同,如图5-23所示那样,则在T时间里,流水线各段的效率都相同,均
16、为0,即 0021)1(nmnTtnm第5章 标量处理机 整个流水线的效率 式中,分母mT是时空图中m个段和流水总时间T所围成的面积,分子mnt0是时空图中n个任务实际使用的面积。同时还可以看出,当为线性流水且每段经过时间相等,任务间无相关时,流水线的效率才正比于吞吐率,即 mTtmnmmmm0002100)1(tTmnnTtnp第5章 标量处理机 一般为提高效率、减少时空图中空白区所采取的措施也会为提高吞吐率带来好处。因此,在图5-18 所示的多功能流水线中,动态流水比起静态流水减少了空白区,从而使流水线吞吐率和效率都得到了提高,但是参照图5-23,不难得出整个流水线的效率jimiimitn
17、tmtnm)1(11个段总的时空区区个任务实际占用的时空第5章 标量处理机【例【例 5-2】设向量WTHXA和B各有4个元素,要在图5-24(a)所示的静态双功能流水线上计算向量点积AB=。按此算法可画出流水线工作的时空图如图5-24(b)所示。iiiba41第5章 标量处理机 图 5-24 流水线工作举例第5章 标量处理机 该流水线的效率可用阴影区面积和全部5个段的总时空区面积之比求得,即 虽然效率连1/3都不到,但解题速度却提高为串行的1.6倍,而且如果向量A、B的元素数增加时,还会使解题速度和效率进一步提高。%321553443tt第5章 标量处理机 5.2.3 标量流水机的相关处理和控
18、制机构标量流水机的相关处理和控制机构标量流水线只有连续不断地流动,不出现断流,才能获得高效率。造成流水线断流的原因除了编译形成的目标程序不能发挥流水结构的作用,或存储系统供不上为连续流动所需的指令和操作数以外,还可能是由于出现了相关和中断。第5章 标量处理机 1.局部性相关的处理局部性相关的处理指令相关、访存操作数相关和通用寄存器组相关等局部性相关都是由于在机器同时解释的多条指令之间出现了对同一主存单元或寄存器要求“先写后读”。有一个8段的流水线,其中第2段为读段,第7段为写段,如图5-25所示。第5章 标量处理机 图 5-25 顺序流动和异步流动第5章 标量处理机 如果让j之后的那些指令,如
19、k,l,m,n等,只要与j没有相关,就越过j继续向前流动,使得从某个时间看,指令在流水线内的流动顺序会如图5-25中“可以不顺序流动”那行所示,那么流水线的吞吐率和效率都未下降,这就是异步流动方式。当流水线采用异步流动方式后,会出现顺序流动不会发生的其他相关。在流水线中同样可以通过设置相关直接通路来减少吞吐率和效率的损失。第5章 标量处理机 图5-26是IBM 360/91浮点执行部件的结构框图。浮点操作数缓冲器FLB接收和缓冲来自主存的操作数。要写入存储器的信息被送到存储数据缓冲器SDB中缓冲。浮点执行部件中的浮点加法器和浮点乘/除法器都是流水线,且能同时并行工作。第5章 标量处理机 图 5
20、-26 IBM 360/91的浮点执行部件结构第5章 标量处理机 2.全局性相关的处理全局性相关的处理全局性相关指的是已进入流水线的转移指令(尤其是条件转移指令)和其后续指令之间的相关。(1)使用猜测法。使用猜测法。若指令i是条件转移指令,有两个分支,如图5-27所示。第5章 标量处理机 图 5 27 用猜测法处理条件转移第5章 标量处理机(2)加快和提前形成条件码。加快和提前形成条件码。尽快、尽早获得条件码,以便提前知道流向哪个分支,会有利于流水机器简化对条件转移的处理。(3)采取延迟转移。采取延迟转移。(4)加快短循环程序的处理。加快短循环程序的处理。第5章 标量处理机 3.流水机器的中断
21、处理流水机器的中断处理中断会引起流水线断流,但其出现概率比条件转移的概率要低得多,且又是随机发生的。4.非线性流水线的调度非线性流水线的调度由于线性流水线在执行每个任务(指令、操作)的过程中,各段均只通过一次,因此,每拍都可以将一个新的任务送入流水线,这些任务不会争用同一个流水线。现设流水线由5段组成,段号k分别为15,任务经过流水线总共需9拍,其预约表如图5-28(a)所示。第5章 标量处理机 图 5-28 流水线预约表及状态图举例(a)单功能流水线预约表举例;(b)单功能流水线的状态转移示意第5章 标量处理机 表5-1给出了本例中各种调度方案的平均间隔拍数(平均延迟)。由表5-1可知,采用
22、先隔3拍后隔4拍轮流给流水线送入任务的调度方案是最佳的,平均每隔3.5拍即可流入一个任务,吞吐率最高。尽管(4,3)调度方案平均间隔拍数也是3.5拍,但若实际流入任务数是循环所需任务数的整数倍,则其实际吞吐率相对会低些,所以不作为最佳调度方案。第5章 标量处理机 表表 5-1 各种调度方案的平均间隔拍数的例子各种调度方案的平均间隔拍数的例子 第5章 标量处理机【例【例 5-3】在一个4段的流水线处理机上需经7拍才能完成一个任务,其预约表如表5-2所示。状态转移图如图5-29所示。各种调度方案及其相应的平均延迟如表5-3所示。第5章 标量处理机 表表5-2 7拍才能完成一个任务的预约表拍才能完成
23、一个任务的预约表 第5章 标量处理机 图 5-29 例5-3的状态转移示意图第5章 标量处理机 表表 5-3 调度方案及其相应的平均延迟调度方案及其相应的平均延迟 第5章 标量处理机 对于一个多功能流水线,只需要将对应每种功能的预约表都重叠在一起即可。这里仅举一个二功能动态流水线的例子来简要说明其思路。图5-3(a)为一个A、B两种功能重叠的预约表例子。第5章 标量处理机 图 5-30 多功能流水线预约表及状态图举例(a)一个二功能流水线的预约表;(b)状态图第5章 标量处理机 5.3.1 超标量处理机超标量处理机假设一条指令包含取指令、译码、执行、存结果四个子过程,每个子过程经过时间为t。常
24、规的标量流水线单处理机是在每个t期间解释完一条指令,如图5-31所示。执行完12条指令共需15t。称这种流水机的度m=1。5.3 指令级高度并行的超级处理机指令级高度并行的超级处理机 第5章 标量处理机 图 5-31 常规(度m=1)的标量流水机时空图第5章 标量处理机 超标量处理机采用多指令流水线,每个t同时流出m条指令(称为度m)。假如度m为3的超标量处理机流水时空图如图5-32所示,每3条指令为一组,执行完12条指令只需7t。第5章 标量处理机 图 5-32 度m=3的超标量处理机时空图第5章 标量处理机【例【例 5-4】典型的超标量流水机有WTBZIBM RS/6000、Power P
25、C 601、DEC 21064、PowerPC 620、Intel i960CA、Pentium、Tandem Cyclone、SUN Ultra SPAC和Motorola MC 88110等。第5章 标量处理机 5.3.2 超长指令字处理机超长指令字处理机超长指令字(VLIW)结构是将水平型微码和超标量处理两者相结合,指令字长可达数百位,多个功能部件并发工作,共享大容量寄存器堆。图5-33(a)示意出了典型的VLIW处理机的组成和指令格式。第5章 标量处理机 图 5-33 超长指令字(VLIW)处理机(a)VLIW处理机组成和指令格式;(b)度m=3时的流水时空图 第5章 标量处理机 5.
26、3.3 超流水线处理机超流水线处理机超流水线处理机不同于超标量处理机和VLIW处理机,每个t仍只流出一条指令,但它的t值小,一台度为m的超流水线处理机的t只是基本机器周期t的1/m。因此,一条指令需花kmt的时间,k为一条指令所含的基本机器周期数。只要流水线性能得以充分发挥,其并行度就可达m。图5-34给出了度m=3的超流水线处理机工作的时空图。第5章 标量处理机 图 5-34 每t流出一条指令且度m=3的超流水线处理机时空图第5章 标量处理机 没有高速时钟机制,超流水线处理机是无法实现的。例如一台有k段流水线的m度超流水线处理机,执行完N条指令的时间为t,如图5-34所示,所需时间为,相对常
27、规流水线处理机加速比为 mNk1tt32731124)1()1()1)/-()1(NmkNkmtmNktNkSp第5章 标量处理机 5.3.4 超标量超流水线处理机超标量超流水线处理机超标量超流水线处理机是超标量流水线与超流水线机的结合。它在一个t(等于t/n)时间内发射k条指令(超标量),而每次发射时间错开t(超流水),相当于每拍t流出了nk条指令,即并行度m=kn。例如k=3,n=3,完成12个任务时,就只需5t,其时间关系图如图5-35所示,其并行度m=9。第5章 标量处理机 图 5-35 超标量超流水线时空图举例第5章 标量处理机 5.4.1 知识点和能力层次要求知识点和能力层次要求(1)领会重叠工作方式的原理、它对计算机组成设计的要求、“一次重叠”的定义和优点。(2)领会流水方式的工作原理。识记流水或流水处理机的各种分类和定义。(3)掌握流水机器对局部性相关的处理办法。5.4 本本 章章 小小 结结 第5章 标量处理机(4)在单功能非线性流水线上,会找任务最佳调度方案,会计算极限吞吐率;实际调度若干个任务时,会画流水线工作的时空图,对实际吞吐率和效率进行计算。(5)领会超标量、超长指令字、超流水线、超标量超流水线四种处理机在指令级上并行的工作原理。第5章 标量处理机 5.4.2 重点和难点重点和难点 1.重点重点 2.难点难点