您好、欢迎来到现金彩票网!
当前位置:2019跑狗图高清彩图 > 向量指令 >

理学]第5章 重叠、流水和向量处理机ppt

发布时间:2019-07-04 00:41 来源:未知 编辑:admin

  1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

  第5章 重叠、流水和向量处理机 5.1 重叠方式 5.2 流水方式 5.3 向量的流水处理与向量流水处理机 5.4 指令级高度并行的超级处理机 ?本章重点: 流水的性能分析及时空图,相关处理、流水线调度、向量指令流水的并行与链接。 ?本章难点: 针对所要求的重叠关系,计算全部指令完成的时间。根据题目要求画出功能静态流水时空图,计算吞吐率、效率和加速比。单功能非线性流水线的调度。向量指令间的并行、链接、串行的判断及所需拍数的计算。 5.1 重叠方式 5.1.1 基本思想和一次重叠 一条指令的执行过程可以分为多个阶段,如: 取指 分析 执行 可以有多种处理方式:顺序执行、一次重叠、二次重叠。 1、顺序解释:各条指令之间顺序串行地进行;每条指令内部的各个微操作也顺序串行地进行。 2、解释一条机器指令的微操作可归并成取指令,分析和执行三个部份 执行n条指令所用的时间为: 如果每段时间都为t,则执行n条指令所用的时间为: T=3nt 优点:控制简单,节省设备。 缺点:执行指令的速度慢,功能部件的利用率 很低。 3、指令的重叠:是在解释第K条指令的操作完成之前,就可开始解释第K+1条指令。 4、重叠方式对计算机组成的要求 解决主存冲突问题(在同一时刻同时访问第K条指令的操作数和第K+1条指令的指令码):一是把操作数和指令分别存放在两个独立的存储器;二是采用多体交叉主存系统;三是增设采用先进先出方式工作的指令缓冲寄存器。 5、一次重叠:指令分析部件和指令执行部件任何时候只有相邻两条指令在重叠解释的方法。 “一次重叠”解释的优点: 省硬件,简化控制,指令的执行时间缩短,功能部件的利用率明显提高。 (1)为了实现“执行 k”与 “分析k+1 ”,硬件还应有独立 的指令分析部件和指令执行部件; 以增加某些硬件为代价的。 (2)要解决因条件转移指令带来的重叠效率下降问题; 采取延迟转移技术。 (3)要解决“相关”问题。 5.1.2 相关处理 1、基本概念 “相关”:邻近指令之间出现关联,为了防出错 让它们不能同时解释的现象; “数相关”:邻近两条指令的数据地址有了关联; “指令相关”:采用机器指令可修改的方法在第K条指令执行后才产生第K+1条指令的现象。即:为了避免出错,第k、第k+1条指令就不能同时 解释。 2、指令相关的处理:禁止指令修改,还可另设置一条执行指令来解决程序设计灵活性。 3、主存空间数相关的处理:推后读 。 推后读是指若出现相邻两条指令之间出现对主存同一单元要求先写后读的关联。 4、通用寄存器组相关的处理 通用寄存器组数相关的处理方法:推后“分析k+1”和设置“相关专用通路”,前面降低速度为代价,后者增加硬件成本为代价。 设置“相关专用通路”是指第K条指令的运算结果直接通有硬件专用通道回送到寄存器。 通用寄存器组基址值或变址值相关的处理:方法同上类拟,只不推后分析的推后时间不同及设置“相关专用通路”回写是到访存操作数地址形成机构。 5.2 流水方式 5.2.1 基本概念 1.流水是重叠的引申 流水是重叠的引申:把指令的解释过程分为 更多子过程; 流水的最大吞吐率:指流水线满负荷每隔△t流出一个结果时所达到的吞吐率; 流水的最大吞吐率是取决于子过程的经过时间 △t,△t越小,流水线的最大吞吐率就越高。 时钟信号周期不得低于速度最慢子部件的经过时间与锁存器的存取时间之和; 子过程的细分会因锁存器数增多而增大任务或指令流过流水线的时间,这在一定程度上会抵消子过程细分使吞吐率提高的好处。 2.流水线的分类 计算机系统在不同等级上的流水线)流水的向下扩展指的是把子过程进一步细分,让每个子过程经过的时间都同等程度地减少,吞吐率就会进一步提高;部件级流水线)流水的向上扩展可理解为在多个处理机之间的流水。 系统级流水是指构成计算机系统的多个处理机之间的流水,也称为宏流水。处理机级流水线, 又称为指令流水线 (Instruction Pipelining)。 从流水线的功能的多少来分,可分为单功能流水线和多功能流水线(流水线)单功能流水线只能实现单一功能的流水。 (2)多功能流水线指的是同一流水线的各个段之间可以有多种不同的联接方式以实现多种不同的运算或功能。 按多功能流水线的各段能否允许同时用于多种不同功能联接流水,可把流水线分为静态流水线)静态流水线在某一时间内各段只能按一种功能联接流水,只有等流水线全部流空后,才能切换成按另一种功能联接流水。 (2)动态流水线的各功能段在同一时间内可按不同运算或功能联接。 以机器所具有的数据表示可以把流水线处理机分为标量流水机和向量流水机 (1)标量流水机没有向量数据表示,只能用标量循环方式来处理向量和数组。 (2)向量流水机指的是机器有向量数据表示,设置有向量指令和向量运算硬件,能流水地处理向量和数组中的各个元素。 从流水线中各功能段之间是否有反馈回路,可把流水线分为线性流水和非线)流水线各段串行联接,各段只经过一次,没有反馈回路的,称为线性流水线。每个流水段都流过一次,且仅流过一次。线性流水线能够用流水线)流水线除有串行联接的通路,还有反馈回路,使任务流经流水线需多次经过某个段或越过某些段,则称为非线性流水线。在流水线的某些流水段之间有反馈回路或前馈回路。 流水线)按照控制方式:同步流水线)顺序流水线与乱序流水线: 乱序流水线又称为无序流水线 流水线处理机的主要性能 衡量流水线处理机的性能主要使吞吐率(Through Put Rate,TP)和效率(Efficiency, η)和加速比。 1.吞吐率 吞吐率使流水线单位时间里能流出的任务数或结果数。 求流水线吞吐率的最基本公式:TP = n / Tk n为任务数, Tk为完成n个任务所用时间 各段执行时间相等,输入连续任务情况下完成n个连续任务需要的总时间为: Tk= (k+n-1) Dt k为流水线的段数,Dt为时钟周期 吞吐率: 最大吞吐率为: 各段执行时间不相等、输入连续任务情况下: 吞吐率为: 最大吞吐率为: 瓶颈子过程:流水线中经过时间最长的子过程。 消除瓶颈的两种方法:细化与并联; 最大吞吐率: 流水线各段执行时间不相等的解决办法 一是将“瓶颈”流水段细分(如果可分的话): 二是将 “瓶颈”流水段重复设置(并联): 流水段重复设置的流水线 设一m段流水线条指令从流入到流出需要T0=mt0的流水建立时间,之后每隔t0就可流出一条指令,这样,完成n个任务共需时间T=mt0+(n-1)t0,流水线在这段时间里的实际吞吐率为: TP=n/(mt0+(n-1)t0)=1/t0(1+(m-1)/n) =TPmax/(1+(m-1)/n) 不仅实际吞吐率总是小于最大吞吐率,而且只有当nm时,才能使实际吞吐率接近于最大吞吐率。 加速比(Speedup) 计算流水线加速比的基本公式: S = 顺序执行时间T0 / 流水线)各段执行时间相等,输入连续任务情况下 加速比为: (2)最大加速比为: (3)各段执行时间不等,输入连续任务情况下实际加速比为: 如果线性流水线每段经过的时间 不等,其中瓶颈段的时间为 ,则完成n隔任务所能达到的实际吞吐率为: 其加速比为: 2.效率 流水线的效率是指流水线中设备的实际使用时间占整个运行时间之比,也称流水线设备的时间利用率。 如果是线性流水线且各段经过的时间相同,则在T时间里,流水线各段的效率都相同,均为η0。 即: 整个流水线的效率: 从上式可以看出,只有当nm时,η才趋近于1。对于线性流水且每段经过的时间相等时,流水线的效率是正比于吞吐率的,即 如果流水线各段经过的时间不等,各段的效率就会不等,可以得出整个流水线.流水线工作举例 设向量A和B各有4个元素,在下图所示的静态双功能流 水线上计算向量点积 其中,1 2 3 5组成加法流水线组成乘法流水线。又设每个流水线所经过的时间均为 ,流水线输出可直接返回输入或暂存于相应缓冲寄存器中,其延迟时间和功能切换时间都可忽略。请求出流水线从开始流入到结果流出这段时间的实际吞吐率TP和效率η。 由上图可以看出,在15个 时间内流出7个结果,其实际吞吐率TP为7/(15 ),而顺序方式所需时间为4 3 +3 4 =24 ,因此,加速比为 Sp=24 /(15 )=1.6 该流水线的效率可用阴影区面积和全部5个段的总时空区面积之比求得,即 影响效率提高的因素有: 1、静态多功能流水线按某种功能流水时,总有一些本功能用不到得段处于空闲; 2、流水建立时,本功能要用到的某些段也有部分处于空闲; 3、功能切换时,增加了前一功能流水的排空时间及后一功能流水的建立时间; 4、经常需要等待把上一步计算的结果输出回授到输入,才能开始下一步的计算。 5.2.3 流水机器的相关处理和控制机构 流水机器在遇到转移指令尤其是条件转移指令时,效率也会显著下降。 转移指令和其后的指令之间存在关联,使之不能同时解释,称为全局性相关。 指令相关、主存操作数相关和通用寄存器组相关及基址或变址值相关,只影响相关的两条或几条指令,最多影响流水线某些段工作的推后,不会改动指缓中预取到的指令,影响是局部的,称为局部性相关。 1.局部性相关的处理 重叠机器处理局部相关的方法: (1)推后后续指令对相关单元的读,直至在先的指令写入完成。 (2)设置相关直接通路,将运算结果经相关直接通路直接送入所需部件。 任务在流水线中流动顺序的安排和控制可以有两种方式: (1)同步流动方式:让任务(指令)流出流水线的顺序保持与流入流水线)异步流动方式:让流出流水线的任务(指令)顺序可以和流入流水线的顺序步同。 异步流动方式带来的新的相关: (1)“写-写”相关 对同一单元要求在先的指令先写入,在后的指令才能写入的关联称为“写—写”相关。 (2)“先读后写”相关 对同一单元要求在先的指令先读出,在后的指令才写入的关联称为“先读后写”相关。 (3)“先写后读”相关 对同一单元要求在先的指令先写入,在后的指令才读出的关联称为“先写后读”相关。 解决方法: 推后后续指令和设置相关直接通路。 举例: 第142页IBM 360/91浮点执行部件。 2.全局性相关的处理 全局性相关指的是已进入流水线的转移指令(尤其是条件转移指令)和后续指令之间的相关。 (1)猜测法 根据历史猜测出现概率大的分支装入指缓。当转移的两个分支概率不均等时,宜猜高概率分支。 采用猜测法时应能保证猜错时可恢复分支点的处原先的现场,一般有三种方法: 在机器沿猜测分支解释时,应当与正常情况下的指令解释不同。IBM360/91采取对指令只译码和准备好操作数,在转移条件码出现之前不运算。 另一种方法时让它运算完但不送回运算结果。 (早期使用的这两种方法都不方便) 采用后援寄存器法。 一旦猜错,就取出后援寄存器的内容来恢复分支点的现场。 (2)加快和提前形成条件码 不等指令执行完成提前形成条件码。尽快、尽早获得条件码,以便提前知道流向哪个分支,会有利于流水机器简化对条件转移的处理。两个方面的措施: 加快单条指令内部条件码的形成,不等指令执行完就提前形成反映运算结果的条件码。 在一段程序内提前形成条件码,这特别适合于循环型程序在判断循环是否继续时的转移情况。 (3)采取延迟转移 用软件方法将转移指令与其前面不相关的指令交换位置。这是用软件方法进行静态指令调度的技术。 (4)加快短循环程序的处理 将长度小于指缓的循环程序一次性放入指缓,并暂停预取指令,避免执行循环时由于指令预取导致指缓中需循环执行的指令被冲掉,减少了访主存重复取指的次数; 或者让循环出口端条件转移指令恒猜循环分支,减少因条件分支造成流水线.流水机器的中断处理 流水机器处理中断主要是如何处理好断点现场的保护和恢复,而不是如何缩短流水线的断流时间。 “不精确断点” 法:不论指令i在流水线的哪一段发生中断,未进入流水线的后续指令不再进入,已在流水线的指令仍继续流完,然后才转入中断处理程序。 “不精确断点” 法不利于编程和程序的排错。 “精确断点” 法:不论指令i是在流水线中哪一段响应中断,给中断处理程序的现场全都是对应i的,i之后流入流水线的指令的原有现场都能恢复。 “精确断点” 法需设置很多后援寄存器,以保证流水线内各条指令的原有现场都能保存和恢复。 4.流水线)如果每拍向流水线送入一个新的任务,非线性流水线会出现多个任务争用同一功能段的使用冲突现象。 流水线调度要解决的问题:究竟间隔几拍送入下一个任务,才既不发生功能段使用冲突,又能使流水线有较高的吞吐率和效率。 为了对流水线的任务进行优化调度和控制,1971年E.S.Davidson等人提出使用一个二维的预约表(Reservation Table)。 如果有一个由K段组成的单功能非线性流水线,每个任务通过流水线需要N拍。利用类似画时空图的方法可以得到该任务使用流水线各段的时间关系表(即预约表)。 其中拍号n为任务经过流水线的时钟节拍号。如果任务再第n拍要用到第k段就在相应第n列和第k行的交点处用√表示。现设流水线,任务经过流水线拍,其预约表如下图所示: 数格子的游戏,如上图5.27(a),分别数出每行中两个打勾之间的间隔数,然后把所有行的间隔数构成一个间隔集合,就是延迟禁止表了。 冲突向量( CN-1…Ci…C2C1) 中第i位的状态表示与当时相隔i拍给流水线送入后续任务是否会发生功能段冲突。如果不会发生冲突,令该位为“0”,表示允许送入;否则让该位为“1”,表示禁止送入。 冲突向量取N-1位是因为经N拍后,任务已流出流水线不会与后续的任务争用流水线功能段了。 只要按流水线状态图中由初始状态出发,能构成一种间隔拍数呈周期性重复的方案来进行流水线的调度,都不会发生功能段使用冲突。要想找出一种最佳的调度方案使流水线的吞吐率最高,只要计算出每种调度方案的平均间隔拍数,从中找出最小者即可。 由下表可见,采用先隔3拍后隔4拍轮流给流水线送入任务的调度方案使最佳的,平均每隔3.5拍即可流入一个任务,吞吐率最高。尽管(4,3)调度方案平均间隔拍数也是3.5拍,但若实际流入任务数不是循环所需任务数的整数倍时,其实际吞吐率相对会低一些,所以不作为最佳调度方案。这是一种不等间隔的调度策略,比起相等间隔的调度策略在控制上要复杂一些。 (2)预约表及流水线调度过程 ·根据预约表写出延迟禁止表F; ·由延迟禁止表形成冲突向量C; ·由所有的向量图画出状态图; ·由状态图形成最佳调度方案 。 练习:P158习题5?.9 ·延迟禁止表F={1,3,4,8}(第一行间隔8,第二行间隔1,第三行间隔1,3,4,然后间隔都为1,合并) ·冲突向量为C:10001101(写一个8位两进制数,根据禁止表倒着写) ·画出状态图(如图,当第二个任务在第二拍进入时,冲突向量C1为10101111,又分为两种情况:当第三个任务在第5拍进入时,冲突向量C2等于C0,当第三个任务在第7拍进入时,冲突向量C2也等于C0),这时你就可以画出最右边的三条线。以此类推,画出所有连线,这题倒也简单,一共有两个冲突向量,比例子好多了。) ·写出各种方案的平均延迟表: (2,7)4.5 (2,5)3.5 (6,7)6.5 (6,5)5.5 (5)5 (7)7 {从第一个向量出发,找出所有回路,把回路上的拍数按顺序写下来,并求出这些拍数的平均数} ·最小延迟调度方案为(2,5) ·根据方案画出时空图,求效率和吞吐量(这是上节的内容了,大家自己做做吧) 5.3 向量的流水处理与向量流水处理机 5.3.1 向量的流水处理 不同的向量处理方式会对流水处理机的结构、组成提出不同的要求,而结构和组成不同的向量处理机反过来也会要求采用不同的向量流水处理方式。 举例:计算D=A*(B+C),其中A、B、C、D都是有N个元素的向量。 横向(水平)处理方式:先求K=B+C,再求A*K,然后重复;采用逐个求D向量元素的方法,即访存取ai、bi、ci元素求di,再取ai+1、bi+1、ci+1求di+1,然后重复。宜于在标量处理机上用循环程序实现,但却难以使流水线连续流动。 纵向(垂直)处理方式:先求所有的K=(B+C),再求所有的A*K。 即按bi+ci ki(i从1到N),然后再ki*ai di(i从1到N)。 在ASC流水机上,将上述向量运算由横向处理改为纵向处理,就是向量的流水处理,流水线就能每拍流出一个结果元素。 分组纵横处理方式:把该向量分割成若干个组,使每个组都能装入向量寄存器中,每组内均按纵向方式处理,组间采用软件方法编制循环程序的方式依次循环处理。 这种分组纵横处理的方式,就可以对向量的长度N大小不加限制。CRAY-1 就是采用这种方式来进行向量的流水处理的。 以一个简单的C语言编写的程序为例,说明向量的三种处理方式的工作原理。 for (i = 1;i = n;i++) y[i] = a[i] ×( b[i] + c[i] ); (1)横向处理方式 也称为水平处理方式,横向加工方式等。 逐个分量进行处理:假设中间结果为T(I) 计算第1个分量: T(1) =B(1)+C(1) Y(1) =A(1)×T(1) 计算第2个分量: T(2) =B(2)+C(2) Y(2) =A(2)×T(2) …… 计算最后一个分量: T(N) =B(N)+C(N) Y(N)=A(N)×T(N) 存在两个问题: 在计算向量的每个分量时,都发生写读数据相关。流水线效率低。 如果采用多功能流水线,必须频繁进行流水线切换。 横向处理方式对向量处理机不适合 即使在标量处理机中,也经常通过编译器进行指令流调度。 (2)纵向处理方式 也称为垂直处理方式,纵向加工方式等。 T(1) = B(1) + C(1) T(2) = B(2) + C(2) …… T(n) = B(n) + C(n) Y(1) = A(1)×T(1) Y(2) = A(2)×T(2) …… Y(N) = A(N) ×T(N) 采用向量指令只需要2条: VADD B, C, T VMUL A, T, Y 这种处理方式适用于向量处理机 数据相关不影响流水线连续工作。 不同的运算操作只需要切换1次。 (3)纵横处理方式 用于寄存器-寄存器结构的向量处理机中 向量寄存器的长度是有限的,例如,每个向量寄存器有64个寄存器。当向量长度N大于向量寄存器长度n时,需要分组处理。 分组方法:N=K·n+r,其中:r为余数,共分K+1组。 组内采用纵向处理方式,组间采用横向处理方式。因此,也称为分组处理方式,纵横向加工方式等。 运算过程为: 第1组: T(1,n) = B(1,n) + C(1,n) Y(1,n) = A(1,n)×T(1,n) 第2组: T(n+1,2n) = B(n+1,2n)+C(n+1,2n) Y(n+1,2n) = A(n+1,2n)×T(n+1,2n) …… 最后第k+1组: T(kn+1,N) = B(kn+1,N) + C(kn+1,N) Y(kn+1,N) = A(kn+1,N) + T(kn+1,N) 每组用两条向量指令,每组发生数据相关两次,其中组内发生数据相关一次,组间切换时发生数据相关一次。 优点:减少访问主存储器的次数 例如:中间变量T不写入主存储器。 5.3.2 向量流水处理机 以CRAY-1机为例,说明面向寄存器-寄存器型向量流水处理的一些结构特点。 (1)组成 CRAY-1是由中央处理机、诊断维护控制处理机、大容量磁盘存储子系统、前端处理机组成的功能分布异构型多处理机。中央处理机的控制部分里有总容量为256个16位的指令缓冲器,分成4组,每组64个。 中央处理机的运算部件有12条可并行工作的单功能流水线,可分别流水地进行地址、向量、标量的各种运算。另外还有可为流水线功能部件直接访问的向量寄存器组V0-V7、标量寄存器S0-S7及地址寄存器A0-A7。 (2)流水线个流水线单功能部件:整数加、逻辑运算、移位、浮点加、浮点乘和浮点迭代求倒数,其流水经过的时间分别为3、2、4、6、7和14拍。一拍为12.5ns。任何一条流水线,只要满负荷流动,都可以每拍流出一个结果分量。 (3)向量寄存器 向量寄存器部分由512个64位的寄存器组成,分成8组,编号为V0~V7。每个向量寄存器组vi可存放最多含64个分量(元素)的一个向量。因此向量寄存器组部分同时可存放8个向量。对于长度超过64个分量的长向量可以由软件加以分段处理,每段64个分量。 为处理长向量而形成的程序结构称为向量循环。每经过一次循环,处理一段。分段中,余下不足64个分量的段作为向量循环的首次循环,最先处理。 (4)Vi冲突 并行工作的各向量指令的源向量或结果向量使用了相同的Vi。 除了相关情况之外,就是出现源向量冲突,例如: V4 V1 +V2 V5 V1 ^V3 (5)功能部件冲突 同一个功能部件被要求并行工作的多条向量指令所使用。例如: V4 V2 *V3 V5 V1 *V6 (6)四个向量指令 CRAY-1有标量类和向量类指令共128条。其中有4种向量指令如下图所示: (7)通过链接技术实现向量指令之间大部 分时间并行(以D=A*(B+C)为例) 链接技术:利用向量指令间存在的先写后读的数据相关性,则可以使结果寄存器成为后继指令的操作数寄存器,通过两条有数据相关的向量指令并行执行来加快向量指令序列执行速度的技术。 基本规则:只要操作数向量中的第一个元素可用,而且功能部件有空,向量运算可立即开始, 只要不发生功能部件冲突和操作数寄存器冲突都可以通过全链接机构使数据相关指令功能并行处理。 适用情况:即第1条指令的结果,是第2条指令的操作数,这时,所得到的第1条指令的中间结果不必要等待全部向量元素都执行完才进行第二条指令的操作,可以将从一个流水线部件得到的结果直接送入下一个功能流水线部件的向量寄存器,形成两条指令的链接 。 实现链接的条件: (1) 没有向量寄存器冲突和运算部件冲突。 (2) 只有第一个结果送入向量寄存器的那一 个周期可以链接。 (3) 先行的两条指令产生运算结果的时间必 须相等。 (4) 两条向量指令的向量长度必须相等。 掌握根据P152三条向量指令画出图P153图5.30的方法,注意两个条件,一是向量长度限制,二是Vi冲突的解决方法。 如果每一个时钟周期的延迟称为1拍,在Cray-1机中LD指令需要6拍,浮点加为6拍,浮点乘为7拍,假若向量寄存器的存与取的传送各为1拍,内存的传送为1拍,分别计算上述三条指令不同的执行方式所需的时间。(假设向量长度为N) 若三条指令串行执行,即每次只有前条指令结束,才执行后继指令,那么三条指令执行的总时间为: [(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)+(1+7+1)+(N-1)]=N+16(拍) 可以看出采用并行与链接后,可以很有效的改善性能。 5.4 指令级高度并行的超级 处理机 5.4.1 超标量(Superscalar)处理机 资源重复,配置多套部件,按组(一组m条指令)执行指令。 超标量处理机采用多指令流水线,每个△ t同时流出m条指令(称为度m)。 度为m=3的超标量流水处理机的流水时空图如下图所示,每三条指令为一组,执行完12条指令需要7△t。 在超标量流水线处理机中配置多套功能部件、指令译码电路和多组总线,寄存器也备有多个端口和多组总线。 超级标量流水处理机非常适合于求解像稀疏向量或矩阵这类标量计算问题,因为它们用向量流水线处理机求解很不方便。 典型的超标量流水线处理机有IBM RS/6000、DEC21064、Intel i960CA、Tandem Cyclone等。 5.4.2 超长指令字(VLIW)处理机 编译程序找出指令间潜在并行性,将多个能并行执行的指令或无关操作先行压缩组合在一起,形成一条多个操作段的超长指令。 VLIW结构是将水平型微码和超标量处理两者相结合。指令字长可达数百位,多个功能部件并发工作,共享大容量寄存器堆。 每个操作段控制其中的一个功能部件,相当于同时在执行多条指令。因此硬件结构和指令系统简单,是一种单指令多操作码多数据的系统结构(SIMOMD),不同于SIMD计算机。 超长指令字处理机每条指令所需拍数比超标量处理机的少,指令译码容易,开发标量操作间的随机并行性更方便,从而可使指令级并行性较高。 但VLIW处理机能否成功,很大程度取决于代码压缩的效率,其结构的目标码与一般的计算机不兼容,而且指令字很长而操作段格式固定,经常使指令字中的许多字段没有操作,白白浪费了存储空间。所以VLIW结构思想是好的,却难以成为计算机的主流。 5.4.3 超流水线(Superpipelining) 处理机 时间并行性 ,在公共硬件上采用较短时钟周期,深度流水来提高速度。 超流水线处理机不同于超标量和VLIW处理机,每个△t’仍只流出一条指令,但它的△t’值很小,一台度为m的超流水线处理机的△t’只是基本机器周期△t的1/m。所以此一条指令需花k*m* △t’的时间,k为一条指令所含的基本机器周期数。下图是度m=3的超流水线处理机工作的时空图。 超标量处理机利用资源重复,设置多个执行部件寄存器堆端口。超流水线处理机则着重开发时间并行性,在公共的硬件上采用较短的时钟周期,深度流水来提高速度,需使用多时钟,时钟频率高达100MHz~500MHz。 如果一台有k段流水线的m度超流水线处理机,执行完N条指令的时间为 如上图所示,所需时间为: 相对常规流水线处理机加速比为: 当 N趋于无穷大时,加速比Sp趋近于m。 第5章 小结 1.重叠方式,要求达到简单应用层次。 1.1 顺序方式习重叠方式的定义和特点,重叠方式解决 访存冲突的办法。 1.2 “一次重叠”的含义及好处。 1.3 条件转移指令与后续指令之间的相关及其处理办 法。 1.4 指令相关、主存数相关、通用寄存器组的数相关和 变(基)址值相关的定义及处理相关的办法,设置 相关专用通路的作用。 1.5 给出指令间微操作重叠的时间要求,计算出执行完 若干条指令所需要的时间。 2.流水方式,要求达到综合应用层次。 2.1 流水是重叠进一步引申的概念,流水的向上扩展与向下扩展,指令级、处理机级、系统级流水的含义c 2.2 单功能和多功能、静态和动态、线性和非线性流水线及标量和向量流水机的定义。 2.3 消除流水线瓶颈两种办法的时空图画法,吞吐率和效率的计算。 2.4 给出计算式,在两功能静态流水线上,能调整指令顺序,画出流水时空图,计算出实际吞吐率、效率和加速比。 2.5 同步流动和异步流动的区别,异步流动会出现的三种相关的定义。结合IBM360/91能综述出处理流水线 综述出流水机器处理全局性相关的各种办法。 2.7 单功能非线性流水线的调度,根据预约表,找出最佳调度方案,按此方案实际调度若干条指令,画其时空图,并求出此时实际的吞吐率和效率。 3.向量的流水处理与向量处理机,要求达到简单应用层次。 3.1 处理向量的三种方式和向量的流水处理含义。 3.2 向量指令之间发生功能部件冲突、源向量 Vi冲突 不能并行,而发生Vi先写后读相关可以链接的含 义。 3.3 以CRAY - 1为例,分析向量指令之间并行、链接 或串行的情况,计算出多条向量指令全部执行完 所需的最少时钟数。 4.指令级并行的超级处理机,要求达到领会层次。 4.l 超标量流水机的工作方式和结构特点。 4.2 超长指令字计算机的工作原理。 4.3 超流水线处理机提高指令级并行的方法。 作业: 5.3、5.4、5.5、 5.8、 5.9、5.10、5.11 Vi 访存 第I种 Vj Vk n … 3 2 1 Sj Vk Vi n … 3 2 1 主存 主存 6 5 4 3 2 1 6 5 4 3 2 1 访存 第II种 第III种 第Ⅳ种 CRAY-1的4种向量指令 功能部件 功能部件 以CRAY-1向量处理机为例,有四类指令,两种指令格式 (1) 向量与向量操作, Vi?Vj OP Vk (2) 向量与标量操作, Vi ? Sj OP Vk (3) 向量取, Vi?存储器 (4) 向量存, 存储器? Vi CRAY向量处理机的指令格式 g h i j k 4位 3位 3位 3位 3位 g, h为操作码,i为目的寄存器编号 j, k为源寄存器编号 g h i j k g为操作码,h为变址寄存器A的编号 i为目的寄存器编号,j, k, m为形式地址 m 4位 3位 3位 3位 3位 16位 例如:有如下3条向量指令: V3 ? A V2 ? V0+V1 V4 ? V2×V3 第一、二条指令没有数据相关和功能部件冲突,可以同时开始执行。 第三条指令与第一、二条指令均存在写读数据相关,可以链接执行。 LD V3,A ;访主存,读 ADDV V2,V0,V1 ;浮点加 MULTV V4,V2,V3 ;浮点乘 V0 V4 V1 V2 V3 1 3 2 4 5 6 1 3 2 4 5 6 1 3 2 4 5 6 浮点加 浮点乘 D B C 访存 存储器 A 7 访存与浮点加并行, 再与浮点乘链接 LD V3,A ADDV V2,V0,V1 MULTV V4,V2,V3 并行和链接操作图 时间(△t) 部件 0 1 2 3 4 5 度m=3的超标量处理机时空图 6 7 取指 译码 存结果 执行 7 10 4 1 8 11 5 2 9 12 6 3 7 10 4 1 8 11 2 9 12 6 3 7 10 4 1 8 11 2 9 12 6 3 7 10 4 1 8 11 5 2 9 12 6 3 5 5 { 1 2 3 { 1 2 3 { 1 2 3 { 1 2 3 寄存器堆 主存 存/取部件 浮点加法部件 定点算逻部件 转移部件 … 转移 定点算逻 …….. 浮点乘 浮点加 存/取 VLIW处理机组成和指令格式 时间(△t) 部件 0 1 2 3 4 5 度m=3时的执行时空图 6 7 取指 译码 存结果 执行 3 4 2 1 3 4 2 1 3 4 2 1 3 4 2 1 { 1 2 3 3 4 2 1 3 4 2 1 时间(△t) 部件 0 1 2 3 4 5 每△t’流出一条指令且度m=3的超流水线 取指 译码 存结果 执行 7 10 4 1 8 11 2 9 12 5 6 3 { 1 2 3 { 1 2 3 { 1 2 3 { 1 2 3 7 10 4 1 8 11 2 9 12 5 6 3 7 10 4 1 8 11 2 9 12 5 6 3 7 10 4 1 8 11 2 9 12 5 6 3 △t’ △t 1 2 3 4 5 X Y Z 时间(?t) 空间 1 2 3 4 5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 a1 b1 a2 b2 a3 b3 a4 b4 Z Y 输入 a1b1 a2b2 a3b3 a4b4 a1b1 a2b2 a3b3 a4b4 a1b1+a2b2 a3b3+a4b4 a1b1+a2b2 a3b3+a4b4 输出 X 流水线工作的时空图 √ √ 5 √ √ 4 √ 3 √ √ √ 2 √ √ 1 9 8 7 6 5 4 3 2 1 拍号n 段号k (a)单功能流水线 2 4 3 7 4 3 7 (b)单功能流水线 (4,3,7) 5.00 (3,7) 4.67 (3,4,7) 3.50 (4,3) 3.50 (3,4) 4.50 (2,7) 3.67 (2,2,7) 平均间隔拍数 调度方案 各种调度方案的平均间隔拍数的例子 * 对一条机器指令的解释 取指令k 分析k 执行k 取指令k+1 分析k+1 执行k+1 取指k+2 分析k+2 执行k+2 取指k+1 分析k+1 执行k+1 取指k 分析k 执行k 重叠解释的一种方式(二次重叠) 分析k 执行k 分析k+1 分析k+2 执行k+1 执行k+2 一次重叠工作方式 取指令 指令译码 取操作数 入 出 执行 指令解释的流水处理 1 时间 空间 0 t1 t2 t3 t4 t5 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 t6 t7 t8 取指令 指令译码 取操作数 执行 流水处理的时空图 处理机1 处理机2 处理机n 数据集 处理机间的流水处理 输 入 减 阶 对阶移位 相 加 规格化 相 乘 累 加 输 出 2 1 5 4 3 6 7 8 输 入 减 阶 对阶移位 相 加 规格化 输 出 2 1 5 4 3 6 7 8 输 入 相 乘 累 加 输 出 2 1 5 4 3 6 7 8 (a)流水线的 功能段 (b)浮点加减法运 算时的联接 (c)定点乘法 时的联接 ASC机器运算器的流水线 2 3 … n 1 2 3 … n 1 2 3 … n 1 2 3 4 … 1 2 3 … 1 2 … … 1 输入 求阶差 对阶 尾数加 规格化 尾数乘 累加 输出 静态流水线时空图 浮点加法 定点乘法 1 时间 空间 0 2 3 … n 1 2 3 … n 1 2 3 … n 1 2 3 … n 1 2 3 … n 1 2 3 … n 输入 求阶差 对阶 尾数加 规格化 尾数乘 累加 输出 动态流水线时空图 … … … … … … 1 2 3 5 4 6 1 2 3 5 4 1 2 3 4 1 2 3 … … … … 浮点加法 定点乘法 S1 输入 S2 S3 输出 前馈回路 反馈回路 一种简单的非线 1 2 3 … … n-1 n 1 2 3 … … n-1 n 1 2 3 … … n-1 n kDt (n-1) Dt nDt (k-1)Dt T S1 输 入 Dt1=Dt S2 Dt2=3Dt S3 Dt3=Dt S4 Dt4=Dt 输 出 1 时间 空间 S1 S2 S3 S4 SDti (n-1)Dt2 Tk 2 3 … n 1 2 3 … n 1 2 3 … n 1 2 3 … n S1 输入 输出 Dt S2-1 Dt S2-2 Dt S2-3 Dt S3 Dt S4 Dt S2(3Dt) S1 输入 输出 Dt1=Dt S2-1 S2-1 S2-1 S3 S4 Dt3=Dt Dt4=Dt Dt2=3Dt 1 时间 空间 2 3 n S1 S2-1 4 5 6 … 1 4 … -2 -1 n-2 2 5 … n-1 3 6 … n 1 2 3 n 4 5 6 … -2 -1 1 2 3 n 4 5 6 … -2 -1 S2-2 S2-3 S3 S4 *

  “原创力文档”前称为“文档投稿赚钱网”,本网站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】

http://bluecaleel.com/xiangliangzhiling/228.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有