第5章_重叠、流水和向量处理机

上传人:今*** 文档编号:107030621 上传时间:2019-10-17 格式:PPT 页数:25 大小:388.50KB
返回 下载 相关 举报
第5章_重叠、流水和向量处理机_第1页
第1页 / 共25页
第5章_重叠、流水和向量处理机_第2页
第2页 / 共25页
第5章_重叠、流水和向量处理机_第3页
第3页 / 共25页
第5章_重叠、流水和向量处理机_第4页
第4页 / 共25页
第5章_重叠、流水和向量处理机_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《第5章_重叠、流水和向量处理机》由会员分享,可在线阅读,更多相关《第5章_重叠、流水和向量处理机(25页珍藏版)》请在金锄头文库上搜索。

1、第5章 重叠、流水和向量处理机,5.1 重叠方式 5.2 流水方式 5.3 向量的流水处理与向量流水处理机 5.4 指令级高度并行的超级处理机 习题,5.1 重叠方式,5.1.1 基本思想和一次重叠 5.1.2 相关处理,5.1.1 基本思想和一次重叠,指令的重叠解释是在解释第k条指令的操作完成之前,就可开始解释第k+1条指令。显然,重叠解释并不能加快一条指令的解释,但却能加快相邻两条以至整段程序的解释。 分析指令重叠过程,首先看取指k+1与分析k。它们在时间上重叠,但取指要访问主存,分析中取操作数也可能访问主存,这样,在一般的指令和数据混存于同一台机器的情况下,就出现了主存冲突问题。 一种方

2、法让操作数和指令分别存放在两个独立编址且可同时访问的存储器中。这有利于实现指令的保护,但增加了主存总线控制的复杂性及软件设计的麻烦。 第二种方法是采用多体交叉主存结构,尽量让第k条指令的操作数与第k+1条指令不在同一个存储体内,就能在一个主存周期取得。但如果正好共存于同一个存储体就不能重叠了。 第三种方法是增设采用先进先出方式工作的指令缓冲寄存器。可乘主存有空时,预取下一条或几条指令存于指缓中。,接着,看执行k与分析k+1。为了实现它们的重叠,硬件上应有独立的指令分析部件和指令执行部件。而且,由于执行时间的不同,还需在硬件上解决控制上的同步问题。此外,当第k条指令是转移指令时,还需采用延迟转移

3、技术使重叠效率不致下降。 在控制上还需解决邻近指令之间可能出现的数和指令相关的问题。,5.1.2 相关处理,1.指令相关的处理 如果采用机器指令可修改的办法经第k条指令的执行来形成第k+1条指令,由于在执行k的末尾才形成第k+1条指令,按照一次重叠的时间关系,为避免出错,第k、k+1条指令就不能同时解释,这时这两条指令之间就发生了指令相关。 为解决指令相关问题,可设置一条“执行”指令解决。在这条执行指令中,被修改的指令以“执行”指令操作数形式出现,这样就将指令相关转化成了数据相关 因为操作数可以存放在主存,也可以存放在通用寄存器中,这样就有了主存空间的数相关和通用寄存器组的数相关。,2.主存空

4、间数相关的处理 如图5.6所示,主存空间数相关是相邻两条指令之间出现对主存同一单元要求先写而后读的关联。要想不出错,只有推后分析k+1的读。推后读常见的方法是由存控给读数、写数申请安排不同的访存优先级来解决。当第k和第k+1出现主存数相关时,存控先处理执行k的写数,而将分析k+1的读申请推迟到下一个主存周期才能处理,自动实现推后分析k+1。 3.通用寄存器组相关的处理 通用寄存器可以存放操作数、运算结果、基址值或变址值,在指令解释过程中,使用通用寄存器作不同用途所需微操作的时间不同。如图5.7P129所示,存放基址或变址值一般在“分析”周期的前半段取用;操作数是在“分析”周期的后半段取出,到“

5、执行”周期的前半段采用;运算结果是在“执行”周期末尾形成并存入通用寄存器中。,要解决通用寄存器组数相关,一种办法是可以推后分析k+1的读到执行k结束时开始,也可推后到执行k把结果送入L3。该方法降低了速度,当不增加设备 另一种方法就是如图5.9P130所示设置相关专用通路。该方法增加了设备,当重叠效率并不下降。 特别的,当通用寄存器组基址值或变址值相关(如图5.10P131)时,也可以采用推后分析(如图5.11P131)和设置相关专用通路(如图5.12P131)的方法。 综上所述,为实现两条指令在时间上重叠解释,首先需要付出空间代价,如增设数据总线、控制总线、指令缓冲器、地址加法器、相关专业通

6、路,将指令分析部件和指令执行部件功能分开、单独设置,主存采用多体交叉存取等。其次,要处理好指令之间可能存在的关联。此外,还应该合理调配好机器指令的微操作,使分析和执行的时间尽可能相等,以提高重叠的效率。,5.2 流水方式,5.2.1 基本概念 5.2.2 流水线处理机的主要性能 5.2.3 流水机器的相关处理和控制机构,5.2.1 基本概念,1.流水是重叠的引申 如图5.14P132所示,流水是重叠的引申。 显然,如能把一条指令的解释分解成时间相等的m个子过程,则每隔t=T/m就可以处理一条指令。因此,流水的最大吞吐率取决于子过程的经过时间t,t越小,流水线的最大吞吐率就越高。流水的最大吞吐率

7、是指流水线满负荷每隔t流出一个结果时多达到的吞吐率。实际上,流水线从开始启动到流出第一个结果,需要经过一段流水线的建立时间T0,在这段时间里流水线并未流出任何结果。所以实际吞吐率总是低于其最大吞吐率。 在实际流水线中,由于各子部件经过的时间不同,为平滑这些子过程的速度差,一般在它们之间设有锁存器。所有锁存器都受同一时钟信号控制来实现各子部件信息流的同步推进。时钟信号周期不得低于速度最慢子部件的经过时间与锁存器的存取时间之和,还要考虑时钟信号到各锁存器可能存在时延差,2.分类 流水线依据向下和向上扩展的思路,可分类出在计算机系统不同等级上使用的流水线。向下扩展指的是把子过程进一步细分,让每个子过

8、程经过的时间都同等程度减少,吞吐率就会进一步提高。向上扩展可理解为在多个处理机之间流水;流水线按照处理级别可分为部件级(部件内各子部件间的流水)、处理机级(构成处理机的各部件之间的流水)和系统级(构成计算机系统的多处理机之间的流水);从流水线具有功能的多少来看,可以分为单功能流水线(只能实现单一功能的流水)和多功能流水线(同一流水线的各个段之间可以有多种不同的联接方式以实现多种不同的功能或功能);按多功能流水线的各段能否允许同时用于多种不同功能联接流水,可把流水线分成静态流水线(同一时间内各段只能按一种功能联接流水)和动态流水线(同一时间内可按不同运算或功能联接);以机器所具有的数据表示可把流

9、水线处理机分为标量流水机(没有向量数据表示,只能以标量循环方式处理向量和数据)和向量流水机;从流水线中各功能段之间是否有反馈回路,分为线性流水和非线性流水。,5.2.2 流水线处理机的主要性能,1.吞吐率 吞吐率是流水线单位时间里能流出的任务数或结果数 一般,如果各子过程所需的时间不同时,取最大的时间作为时钟周期,这样,流水的最大吞吐率就等于1/最大子过程时间。可见流水线最大吞吐率受限于流水线中最慢子过程经过的时间。流水线中经过时间最长的子过程称为瓶颈子过程。为提高流水线的最大吞吐率,需找到并消除瓶颈。消除瓶颈的一种方法是如图5.20P137将瓶颈子过程再细分。另一种是如图5.21P137通过

10、重复设置多套瓶颈段并联,让它们交叉并行。 设一m段流水线的各段经过时间均为t0,则完成n个任务后流水线的实际吞吐率 TP=n/(mt0+(n-1)t0)=1/t0(1+(m-1)/n)=TPmax/(1+(m-1)/n) 可见,实际吞吐率总是小于最大吞吐率。只有当nm时,才能使实际吞吐率接近于最大吞吐率。,加速比SP表示流水方式相对于非流水顺序方式速度提高的比值,SP=nmt0/(mt0+(n-1)t0)=m/(1+(m-1)/n) 所以,线性流水线各段时间相等时,仅当nm时,连续流入的任务数n远多于流水线子过程数m时,其加速比才能趋于最大值,即为流水线的段数m。 这样一来,就可以通过让子过程

11、细分增大m的方法来提高加速比。但是,如果增大m缩短t0,却未能再软件、算法、语言编译、程序设计上保证连续流动的任务数n能远大于子过程数m,则实际吞吐率将大大低于最大吞吐率。极限情况下,当n=1时,由于m增大。锁存器个数增多,实际增大了任务在流水线上的通过时间,反而使其速度会比顺序串行的还要低。 如果线性流水线每段经过的时间ti不等,其中瓶颈段的时间是tj ,则完成n个任务的实际吞吐率TP=n/(ti+(n-1)tj) 其加速比SP=nti/(ti+(n-1)tj),2.效率 流水线的效率是指流水线中设备的实际使用时间占整个运行时间之比,也称为流水线设备的时间利用率。 如果是线性流水线且各段经过

12、的时间相同,如图5.22P138所示,则在n个任务执行的整个时间T中,流水线各段的效率都相同,均为0,即 1=2=m=nt0/T=n/(m+(n-1)=0 整个流水线的效率=(1+2+m)/m=0=mnt0/mT 式中,分母mT是时空图中m个段和流水线总时间T所围成的面积,分子mnt0是时空图中n个任务实际使用的面积。因此,从时空图的角度看,效率实际上就是n个任务占用的时空区面积和m个段总的时空区面积之比。显然,只有当nm时,才趋于1。同时还可以看出线性流水线每段时间相等时,流水线的效率正比于吞吐率,即=nt0/T=n/(m+(n-1)=TPt0 尽管,在非线性流水线或线性流水线各段时间不等时

13、,这种正比关系并不存在。但是,为提高效率减少时空图中空白区域所采取的措施也会为提高吞吐率带来好处。,如果流水线各段经过时间不等,各段的效率就会不等,整个流水线的效率 =n个任务实际占用的时空区/m个段总的时空区 =nti/m(ti+(n-1)tj) 3.流水线工作举例(略),5.2.3 流水机器的相关处理和控制机构,流水线只有连续不断流动,不出现断流,才能提高效率。造成流水线断流的原因除了编译形成的目的程序不能发挥流水结构的作用,或存储系统供不上连续流动所需的指令和操作数以外,还由于出现了相关和中断。 流水机环境下,转移指令和其后的指令之间存在关联,使之不能同时解释,其造成的对流水机器的吞吐率

14、和效率下降的影响要比指令相关、主存操作数相关和通用寄存器组相关及基址值或变址值相关严重得多,所以称为全局性相关。而后者只影响相关得两条或几条指令,最多影响流水线某些段工作的推后,不会改变指缓中预取得指令,影响是局部得,故称为局部性相关。,1.局部性相关的处理 包括指令相关、访存操作数相关和通用寄存器组相关等局部性相关都是由于在机器同时解释的多条指令之间出现了对同一主存单元或寄存器要求先写后读。重叠机器处理局部性相关采用推后读和设置相关直接通路的方法,这两种方法同样适用于流水机器。而其中,因为流水机器同时解释多条指令,如果在各功能部件之间为每个局部性相关都设置单独的相关直接通路,将会耗费大量的硬

15、件资源,而且控制复杂,因此,一般会设置公共数据总线,采用如图5.25P143所示的分布式控制和管理方法进行处理。 任务在流水线中流动顺序的安排和控制可以有两种方式。一种是让任务流出流水线的顺序保持与流入流水线的顺序一致,称为顺序流动方式或称同步流动方式;另一种是让流出流水线的任务顺序和流入流水线的顺序不同,称为异步流动方式。一般,同步流动方式控制比较简单,但流水线的吞吐率和效率都要下降;而异步流动方式尽管控制复杂,流水线的吞吐率和效率则均未下降,但是可能会出现顺序流动不会发生的写-写相关和先读后写相关等问题。,2.全局相关的处理 1)猜测法 若指令i是条件转移指令,有两个分支。一个是按原来顺序

16、执行的i+1、i+2、的转移不成功分支;另一个是转向p、p+1、的转移成功分支。当指令i进入流水线时,只有等到条件码建立才能确认如何进行转移,这必将让i之后的指令停等,流水线就会断流,性能急剧下降。为此,可采用猜测法猜取两个分支之一继续向前流动。 在猜测时,如果两个分支概率相近,宜选i+1不成功转移分支,因为它已经预取进缓指,可以很快从中取出进入流水线而不用等待。而当两个分支概率不均等时,宜猜高概率分支。转移概率可以静态根据转移指令类型或程序执行期间转移的历史状况来预测,但需要事先对大量程序的转移类型和转移概率进行统计,且统计出的概率也不一定能保证较高的猜测准确度。如果采用动态策略,由编译程序根据执行过程中转移的历史纪录来动态预测未来的转移选择,可使预测准确度提高到90%。,采用猜测法还应能保证猜错时可恢复分支点处原先的现场。一般有三种方法:一种方法是在执行猜测分支时对指令只译码和准备好操作数,在转移条件码出现之前不进行运算;另一种方法是运算但不送回结果;第三种方法是采用后援寄存器保

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号