资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,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,。它们在时间上重叠,但取指要访问主存,分析中取操作数也可能访问主存,这样,在一般的指令和数据混存于同一台机器的情况下,就出现了,主存冲突,问题。,一种方法,让操作数和指令分别存放在两个独立编址且可同时访问的存储器中,。这有利于实现指令的保护,但增加了主存总线控制的复杂性及软件设计的麻烦。,第二种方法是,采用多体交叉主存结构,尽量让第,k,条指令的操作数与第,k+1,条指令不在同一个存储体内,,就能在一个主存周期取得。但如果正好共存于同一个存储体就不能重叠了。,第三种方法是,增设采用先进先出方式工作的指令缓冲寄存器,。可乘主存有空时,预取下一条或几条指令存于指缓中。,接着,看,执行,k,与分析,k+1,。为了实现它们的重叠,,硬件上应有独立的指令分析部件和指令执行部件,。而且,由于执行时间的不同,还需在,硬件上解决控制上的同步问题,。此外,当,第,k,条指令是转移指令时,还需采用延迟转移技术,使重叠效率不致下降。,在控制上,还需解决邻近指令之间可能出现的数和指令相关,的问题。,5.1.2,相关处理,1.,指令相关的处理,如果采用机器指令可修改的办法经第,k,条指令的执行来形成第,k+1,条指令,由于在执行,k,的末尾才形成第,k+1,条指令,按照一次重叠的时间关系,为避免出错,第,k,、,k+1,条指令就不能同时解释,这时这两条指令之间就发生了,指令相关,。,为解决指令相关问题,可,设置一条“执行”指令解决,。在这条执行指令中,被修改的指令以,“,执行,”,指令操作数形式出现,这样就,将指令相关转化成了数据相关,因为操作数可以存放在主存,也可以存放在通用寄存器中,这样就有了,主存空间的数相关,和,通用寄存器组的数相关,。,2.,主存空间数相关的处理,如图,5.6,所示,主存空间数相关是相邻两条指令之间出现对主存同一单元要求先写而后读的关联。要想不出错,只有推后分析,k+1,的读。,推后读常见的方法是由存控给读数、写数申请安排不同的访存优先级来解决,。当第,k,和第,k+1,出现主存数相关时,存控先处理执行,k,的写数,而将分析,k+1,的读申请推迟到下一个主存周期才能处理,自动实现推后分析,k+1,。,3.,通用寄存器组相关的处理,通用寄存器可以存放操作数、运算结果、基址值或变址值,在指令解释过程中,使用通用寄存器作不同用途所需微操作的时间不同。如,图,5.7P129,所示,,,存放基址或变址值一般在,“,分析,”,周期的前半段取用;操作数是在,“,分析,”,周期的后半段取出,到,“,执行,”,周期的前半段采用;运算结果是在,“,执行,”,周期末尾形成并存入通用寄存器中,。,要解决通用寄存器组数相关,一种办法是可以,推后分析,k+1,的读到执行,k,结束时开始,也可推后到执行,k,把结果送入,L,3,。该方法降低了速度,当不增加设备,另一种方法就是如图,5.9P130,所示,设置相关专用通路,。该方法增加了设备,当重叠效率并不下降。,特别的,当,通用寄存器组基址值或变址值相关,(,如图,5.10P131),时,也,可以采用推后分析,(,如图,5.11P131),和,设置相关专用通路,(,如图,5.12P131),的方法。,综上所述,,为实现两条指令在时间上重叠解释,,首先,需要付出空间代价,,如增设数据总线、控制总线、指令缓冲器、地址加法器、相关专业通路,将指令分析部件和指令执行部件功能分开、单独设置,主存采用多体交叉存取等。其次,,要处理好指令之间可能存在的关联,。此外,还应该,合理调配好机器指令的微操作,,使分析和执行的时间尽可能相等,以提高重叠的效率。,5.2,流水方式,5.2.1,基本概念,5.2.2,流水线处理机的主要性能,5.2.3,流水机器的相关处理和控制机构,5.2.1,基本概念,1.,流水是重叠的引申,如图,5.14P132,所示,,流水是重叠的引申,。,显然,如能把一条指令的解释分解成时间相等的,m,个子过程,则每隔,t=T/m,就可以处理一条指令。因此,,流水的最大吞吐率取决于子过程的经过时间,t,,,t,越小,流水线的最大吞吐率就越高。,流水的最大吞吐率是指流水线满负荷每隔,t,流出一个结果时多达到的吞吐率,。实际上,流水线从开始启动到流出第一个结果,需要经过一段流水线的建立时间,T,0,,在这段时间里流水线并未流出任何结果。所以实际吞吐率总是低于其最大吞吐率。,在实际流水线中,由于各子部件经过的时间不同,,为平滑这些子过程的速度差,一般在它们之间设有锁存器,。,所有锁存器都受同一时钟信号控制来实现各子部件信息流的同步推进,。,时钟信号周期不得低于速度最慢子部件的经过时间与锁存器的存取时间之和,还要考虑时钟信号到各锁存器可能存在时延差,2.,分类,流水线依据向下和向上扩展的思路,可分类出在计算机系统不同等级上使用的流水线。,向下扩展,指的是把子过程进一步细分,让每个子过程经过的时间都同等程度减少,吞吐率就会进一步提高。,向上扩展,可理解为在多个处理机之间流水;流水线按照处理级别可分为,部件级,(,部件内各子部件间的流水,),、,处理机级,(,构成处理机的各部件之间的流水,),和,系统级,(,构成计算机系统的多处理机之间的流水,),;从流水线具有功能的多少来看,可以分为,单功能流水线,(,只能实现单一功能的流水,),和,多功能流水线,(,同一流水线的各个段之间可以有多种不同的联接方式以实现多种不同的功能或功能,),;按多功能流水线的各段能否允许同时用于多种不同功能联接流水,可把流水线分成,静态流水线,(,同一时间内各段只能按一种功能联接流水,),和,动态流水线,(,同一时间内可按不同运算或功能联接,),;以机器所具有的数据表示可把流水线处理机分为,标量流水机,(,没有向量数据表示,只能以标量循环方式处理向量和数据,),和,向量流水机,;从流水线中各功能段之间是否有反馈回路,分为,线性流水,和,非线性流水,。,5.2.2,流水线处理机的主要性能,1.,吞吐率,吞吐率,是流水线单位时间里能流出的任务数或结果数,一般,如果各子过程所需的时间不同时,取最大的时间作为时钟周期,这样,流水的最大吞吐率就等于,1/,最大子过程时间。可见流水线最大吞吐率受限于流水线中最慢子过程经过的时间。流水线中经过时间最长的子过程称为,瓶颈子过程,。为提高流水线的最大吞吐率,需找到并消除瓶颈。消除瓶颈的,一种方法,是如图,5.20P137,将瓶颈子过程再细分,。另一种是如图,5.21P137,通过,重复设置多套瓶颈段并联,,让它们交叉并行。,设一,m,段流水线的各段经过时间均为,t,0,,则完成,n,个任务后流水线的实际吞吐率,TP=n/(mt,0,+(n-1)t,0,)=1/t,0,(1+(m-1)/n)=TP,max,/(1+(m-1)/n),可见,,实际吞吐率总是小于最大吞吐率,。,只有当,nm,时,才能使实际吞吐率接近于最大吞吐率,。,加速比,S,P,表示流水方式相对于非流水顺序方式速度提高的比值,,S,P,=nmt,0,/(mt,0,+(n-1)t,0,)=m/(1+(m-1)/n),所以,,线性流水线各段时间相等时,仅当,nm,时,连续流入的任务数,n,远多于流水线子过程数,m,时,其加速比才能趋于最大值,即为流水线的段数,m,。,这样一来,就可以通过让子过程细分增大,m,的方法来提高加速比。但是,如果增大,m,缩短,t,0,,却未能再软件、算法、语言编译、程序设计上保证连续流动的任务数,n,能远大于子过程数,m,,则实际吞吐率将大大低于最大吞吐率。极限情况下,当,n=1,时,由于,m,增大。锁存器个数增多,实际增大了任务在流水线上的通过时间,反而使其速度会比顺序串行的还要低。,如果,线性流水线每段经过的时间,t,i,不等,,其中瓶颈段的时间是,t,j,,则完成,n,个任务的,实际吞吐率,TP=n/(,t,i,+(n-1)t,j,),其,加速比,S,P,=n,t,i,/(,t,i,+(n-1)t,j,),2.,效率,流水线的效率,是指流水线中设备的实际使用时间占整个运行时间之比,也称为流水线设备的时间利用率。,如果是,线性流水线且各段经过的时间相同,,如图,5.22P138,所示,则在,n,个任务执行的整个时间,T,中,,流水线各段的效率都相同,,均为,0,,即,1,=,2,=,=,m,=n,t,0,/T=n/(m+(n-1)=,0,整个流水线的效率,=(,1,+,2,+,+,m,)/m,=,0,=mn,t,0,/mT,式中,分母,mT,是时空图中,m,个段和流水线总时间,T,所围成的面积,分子,mn,t,0,是时空图中,n,个任务实际使用的面积。因此,,从时空图的角度看,效率实际上就是,n,个任务占用的时空区面积和,m,个段总的时空区面积之比,。显然,只有当,nm,时,,才趋于,1,。同时还可以看出,线性流水线每段时间相等时,,,流水线的效率正比于吞吐率,,即,=n,t,0,/T=n/(m+(n-1)=TPt,0,尽管,在非线性流水线或线性流水线各段时间不等时,这种正比关系并不存在。但是,,为提高效率减少时空图中空白区域所采取的措施也会为提高吞吐率带来好处,。,如果,流水线各段经过时间不等,,各段的效率就会不等,,整个流水线的效率,=n,个任务实际占用的时空区,/m,个段总的时空区,=n,t,i,/m(,t,i,+(n-1)t,j,),3.,流水线工作举例,(,略,),5.2.3,流水机器的相关处理和控制机构,流水线只有连续不断流动,不出现断流,才能提高效率。,造成流水线断流的原因除了编译形成的目的程序不能发挥流水结构的作用,或存储系统供不上连续流动所需的指令和操作数以外,还由于出现了相关和中断,。,流水机环境下,转移指令和其后的指令之间存在关联,使之不能同时解释,其造成的对流水机器的吞吐率和效率下降的影响要比指令相关、主存操作数相关和通用寄存器组相关及基址值或变址值相关严重得多,所以称为,全局性相关,。而后者只影响相关得两条或几条指令,最多影响流水线某些段工作的推后,不会改变指缓中预取得指令,影响是局部得,故称为,局部性相关,。,1,.,局部性相关的处理,包括指令相关、访存操作数相关和通用寄存器组相关等局部性相关都是由于在机器同时解释的多条指令之间出现了对同一主存单元或寄存器要求先写后读。重叠机器处理局部性相关采用,推后读和设置相关直接通路,的方法,这两种方法,同样适用于流水机器,。而其中,因为流水机器同时解释多条指令,如果,在各功能部件之间为每个局部性相关都设置单独的相关直接通路,将会耗费大量的硬件资源,,而且控制复杂,因此,,一般会设置公共数据总线,,,采用,如图,5.25P143,所示的,分布式控制和管理,方法进行处理。,任务在流水线中流动顺序的安排和控制可以有两种方式。一种是让任务流出流水线的顺序保持与流入流水线的顺序一致,称为顺序流动方式或称,同步流动方式,;另一种是让流出流水线的任务顺序和流入流水线的顺序不同,称为,异步流动方式,。一般,同步流动方式控制比较简单,但流水线的吞吐率和效率都要下降;而,异步流动方式,尽管控制复杂,流水线的吞吐率和效率则均未下降,但是,可能会出现顺序流动不会发生的写,-,写相关和先读后写相关等问题,。,2.,全局相关的处理,1),猜测法,若指令,i,是条件转移指令,有两个分支。一个是按原来顺序执行的,i+1,、
展开阅读全文