《第五章系统结构辅导精选文档.ppt》由会员分享,可在线阅读,更多相关《第五章系统结构辅导精选文档.ppt(70页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第五章系统结构辅导本讲稿第一页,共七十页 一、基本思想和一次重迭一、基本思想和一次重迭 基本思想基本思想 一条指令解释由三个过程完成:一条指令解释由三个过程完成:取指取指分析(译码)分析(译码)执行执行取指取指K分析分析K执行执行K取指取指K+1分析分析K+1执行执行K+1 5.15.1重迭方式重迭方式 为了充分发挥机器各部分工作效率,提出让若干条指令在时间上重迭为了充分发挥机器各部分工作效率,提出让若干条指令在时间上重迭地解释。地解释。顺序解释顺序解释本讲稿第二页,共七十页 硬件支持硬件支持:增设先进先出指令缓冲器(增设先进先出指令缓冲器(指令予取队列)指令予取队列),用于用于予取下一条或下
2、几条指令存放于指缓中(予取下一条或下几条指令存放于指缓中(“分析分析K”可与取可与取指指K+1就可重迭了)就可重迭了)。由于可予取指令由于可予取指令(即指令还未执行,就提前取到(即指令还未执行,就提前取到CPU的指令队列中了)的指令队列中了),当取指令时,很快可从指令予当取指令时,很快可从指令予取(队列)缓冲器中得到,时间很短,将这一微操作取(队列)缓冲器中得到,时间很短,将这一微操作合并合并“分析分析K+1”过程中过程中。本讲稿第三页,共七十页 为实现这样的重迭,需要有硬件上的独立的指令分析为实现这样的重迭,需要有硬件上的独立的指令分析部件和执行部件支持。部件和执行部件支持。分析分析执行执行
3、K分析分析K+1 执行执行K+2分析分析K+2 执行执行K+2分析分析执行执行所以一条指令的解释合并为(内部)所以一条指令的解释合并为(内部)本讲稿第四页,共七十页为使硬件和控制不过分繁杂,采用在任何时候指令分析部件和指令为使硬件和控制不过分繁杂,采用在任何时候指令分析部件和指令执行部件只对两条相邻指令进行重迭解释,这就是执行部件只对两条相邻指令进行重迭解释,这就是“一次重迭一次重迭”。为实现为实现“分析分析K+1”和和“执行执行K”的一次重迭的一次重迭“在控制上需解在控制上需解决的问题。决的问题。一一 次次 重重 迭迭 重迭方式的机器在程序中尽量减少使用条转指令重迭方式的机器在程序中尽量减少
4、使用条转指令。本讲稿第五页,共七十页 数据地址发生的关联:数据地址发生的关联:如果分析如果分析K+1 所要读出的操作数正好所要读出的操作数正好是执行是执行K 的结果,它们之间如果重迭解释,因为执行的结果,它们之间如果重迭解释,因为执行K到周期结到周期结尾才出结果,必然出错。这是由于第尾才出结果,必然出错。这是由于第K、K+1条指令的数据地址之条指令的数据地址之间有了关联,称之为产生了间有了关联,称之为产生了“数相关数相关”。见书。见书P181 “指令相关指令相关”:有有“数相关数相关”,也就会有,也就会有“指令相关指令相关”。有。有指令指令K存通用寄存器;(通用寄存器)存通用寄存器;(通用寄存
5、器)=(K+1),),产生指令产生指令K+1:(:(指令指令K执行完后,执行完后,K+1指令才会产生)。指令才会产生)。要解决好相邻指令之间可能出现的某种关联。要解决好相邻指令之间可能出现的某种关联。本讲稿第六页,共七十页 这样,这样,“分析分析K+1”分析的不是真正的执行分析的不是真正的执行K 以后产生的(K+1)指令,而是事先预取到指令缓冲器中紧随第指令,而是事先预取到指令缓冲器中紧随第K条指令之后的指条指令之后的指令(令(K+1),),这种情况称这种情况称第第K、K+1条指令之间发生了关联。条指令之间发生了关联。为避为避免出错,它们不能同时解释。免出错,它们不能同时解释。分析分析K+1执
6、行执行K 但是,由于但是,由于一次重迭一次重迭 两个操作是在同一时间解释两个操作是在同一时间解释(而指令而指令K+1是在指令是在指令K执行执行完后才会产生完后才会产生 无论发生何种相关,都会引起解释出错无论发生何种相关,都会引起解释出错/重迭效率下降,重迭效率下降,所以必须对相关进行正确处理。所以必须对相关进行正确处理。本讲稿第七页,共七十页是由于在程序执行过程中机器指令允许被修改而引起(如上所讲的:是由于在程序执行过程中机器指令允许被修改而引起(如上所讲的:K+1指令被指令被K指令执行后修改了)。所以为避免出现指令执行后修改了)。所以为避免出现“指令相关指令相关”,不允,不允许在程序运行过程
7、中修改机器指令,许在程序运行过程中修改机器指令,二、进行相关处理(二、进行相关处理(Correlation)的若干方法的若干方法 (自学自学)指令相关处理:指令相关处理:将必须要修改的指令转变成为将必须要修改的指令转变成为“执行执行”指令的操作数处理指令的操作数处理。见 书书P182本讲稿第八页,共七十页 主存空间数相关的处理主存空间数相关的处理 主存空间数据相关主存空间数据相关:两相邻指令之间出现对主存同一单元要求两相邻指令之间出现对主存同一单元要求先先写而后读写而后读的关联。的关联。处理:当有处理:当有CPU访存和通道访存同时发生,出现访存冲突时,访存和通道访存同时发生,出现访存冲突时,由
8、存储器控制器在每个主存周期对所有访存请求进行优先权排队,由存储器控制器在每个主存周期对所有访存请求进行优先权排队,其中写数优先级别安排高于读数级别。当出现其中写数优先级别安排高于读数级别。当出现执行执行K(写数申请)写数申请)和分析和分析K+1(读数申请)读数申请)之间主存数相关时,之间主存数相关时,由存储器控制器将由存储器控制器将“分析分析K+1的读操作数推后一个主存周期执的读操作数推后一个主存周期执行。行。见书见书P183图图5、6本讲稿第九页,共七十页 通用寄存器组相关处理通用寄存器组相关处理 通用寄存器组可以存放操作数、运算结果,也可以存放基地址或通用寄存器组可以存放操作数、运算结果,
9、也可以存放基地址或变址值。在指令解释过程中,依它的不同用途,微操作执行时间是不变址值。在指令解释过程中,依它的不同用途,微操作执行时间是不同的,具体如下示意图(时间关系):同的,具体如下示意图(时间关系):分析周期分析周期 执行周期执行周期 指令:指令:存基存基/变址值变址值 取操作数用操作数取操作数用操作数 存结果存结果 (前半周期)(前半周期)(后半周期)(后半周期)(周期结尾(周期结尾)所以通用寄存器的数相关和基址所以通用寄存器的数相关和基址/变址值相关处理方法不同。变址值相关处理方法不同。执行分析本讲稿第十页,共七十页 由上分析,执行周期使用通用寄存器时间关系可知:由上分析,执行周期使
10、用通用寄存器时间关系可知:“分析分析K+1”取得的操作数(取得的操作数(L1)和(和(L2)并不是并不是“执行执行K”的结果。的结果。通用寄存器组相关处理方法:通用寄存器组相关处理方法:方法一:推后方法一:推后“分析分析K+1”到到“执行执行K”结束时。结束时。方法二:在运算器输出到方法二:在运算器输出到B、C寄存器之间增设相关专用通路寄存器之间增设相关专用通路 一次重迭如仍达不到速度要求,可用同时解一次重迭如仍达不到速度要求,可用同时解释多条指令的流水方式。释多条指令的流水方式。小结小结:本讲稿第十一页,共七十页 流水线是一种通过改进结构来提高程序解释速度流水线是一种通过改进结构来提高程序解
11、释速度的方法。的方法。处理机解释程序的方式有处理机解释程序的方式有顺序方式顺序方式、重叠方式重叠方式、流水方式流水方式 等。等。顺序方式顺序方式 是解释完一条指令再开始解释下一条。是解释完一条指令再开始解释下一条。流水方式流水方式 是指:是指:把一条指令的解释过程分解为若干个子过把一条指令的解释过程分解为若干个子过程,每个子过程可以与其它子过程同时进行,以此提高单位时程,每个子过程可以与其它子过程同时进行,以此提高单位时间内解释指令的数目间内解释指令的数目;重叠方式重叠方式 是一种简单的流水方式,它把指令分成是一种简单的流水方式,它把指令分成2个子过个子过程,每条指令的执行过程只与下一条指令的
12、分析过程相重叠程,每条指令的执行过程只与下一条指令的分析过程相重叠。5.2 流流 水水 方方 式式本讲稿第十二页,共七十页5.流水技术一一.流水方式的特点流水方式的特点(1)(1)流水过程由多个相联系的子过程组成,每个流水过程由多个相联系的子过程组成,每个子过程称为流水线的子过程称为流水线的“级级”或或“段段”。“段段”的数目称为流水线的的数目称为流水线的“深度深度”。(2)(2)每个子过程由专用的功能段实现;每个子过程由专用的功能段实现;(3)(3)各个功能段所需时间应尽量相等,否则,时间长的功各个功能段所需时间应尽量相等,否则,时间长的功能段将成为流水线的瓶颈,会造成流水线的能段将成为流水
13、线的瓶颈,会造成流水线的“堵塞堵塞”和和“断流断流”。这个时间一般为一个时钟周期(拍);。这个时间一般为一个时钟周期(拍);本讲稿第十三页,共七十页(4)(4)流水线需要有流水线需要有“通过时间通过时间”(建立时间建立时间),),即第一即第一个任务流出结果所需的时间,在此之后流水过程才进个任务流出结果所需的时间,在此之后流水过程才进入稳定工作状态,每一个时钟周期(拍)流出一个结入稳定工作状态,每一个时钟周期(拍)流出一个结果;果;(5)(5)流水技术适合于大量重复的时序过程,只有输流水技术适合于大量重复的时序过程,只有输入端能连续地提供任务,流水线的效率才能充分发入端能连续地提供任务,流水线的
14、效率才能充分发挥。挥。本讲稿第十四页,共七十页本讲稿第十五页,共七十页本讲稿第十六页,共七十页浮点加法流水线浮点加法流水线 书书P158P158本讲稿第十七页,共七十页时空图从时间和空间两个方面描述了流水线时空图从时间和空间两个方面描述了流水线的工作过程。时空图中,横坐标代表时间,纵坐的工作过程。时空图中,横坐标代表时间,纵坐标代表流水线的各个段。标代表流水线的各个段。时间段号S5S4S3S2S18888877777666665555544444333332122221111二二.流水线时空图(参见书流水线时空图(参见书P156.P159)本讲稿第十八页,共七十页本讲稿第十九页,共七十页段号段
15、号段号4354213432238765432111111118888887777776666665555554444434333332222222(c)流水段重复的时空图(b)流水段细分后的时空图(a)原流水线时空图时间时间时间S4S4S4S3cS3cS3S3bS3bS2S1S1S2S2S3aS3aS188877766655544433321221111时空图3a本讲稿第二十页,共七十页流水线可以按不同的观点进行分类。流水线可以按不同的观点进行分类。分为五类分为五类 n操作部件级,处理器级操作部件级,处理器级,系统级系统级n单功能,多功能单功能,多功能n静态,动态静态,动态n线性,非线性线性,
16、非线性n标量,向量标量,向量三三.流水线的分类流水线的分类 见书见书P156本讲稿第二十一页,共七十页依向上扩展和向下扩展的思路分,在计算机系统不依向上扩展和向下扩展的思路分,在计算机系统不同等级上使用流水线,同等级上使用流水线,部件级流水部件级流水:指构成部件内的各子部件间的流水(指构成部件内的各子部件间的流水(ALU内的浮内的浮点加。点加。Cache和多体并行主存之间)。和多体并行主存之间)。处理机级流水处理机级流水:指构成处理机的各部件之间的流水(如指构成处理机的各部件之间的流水(如“取指取指”、“分析分析”、“执行执行”。系统级流水:系统级流水:也称宏流水,指构成计算机系统的多处理机之
17、间的流也称宏流水,指构成计算机系统的多处理机之间的流水。水。流水按处理的级别分可分为部件级、处理机级和流水按处理的级别分可分为部件级、处理机级和系统级。系统级。本讲稿第二十二页,共七十页 从流水线具有功能的多少来看,可分为单功能从流水线具有功能的多少来看,可分为单功能/多多功能流水线。功能流水线。单功能流水线单功能流水线 (unification pipelining):即一条流水线只能完成即一条流水线只能完成一种固定的功能(如只能实现浮点数加一种固定的功能(如只能实现浮点数加/减的流水线)。当要实现减的流水线)。当要实现多种不同功能时,可采用多条单功能流水线组合。多种不同功能时,可采用多条单
18、功能流水线组合。多功能流水线多功能流水线 (multifunction pipelining):指流水线的各段可进指流水线的各段可进行不同的连接,在不同行不同的连接,在不同/相同的时间内,通过不同的连接方式实现不同相同的时间内,通过不同的连接方式实现不同的功能。的功能。例如:例如:TI ASC的多功能流水线的多功能流水线本讲稿第二十三页,共七十页本讲稿第二十四页,共七十页静态流水线与动态流水线静态流水线与动态流水线按在同一时间内,能否将多功能流水线连接成多种方式,同按在同一时间内,能否将多功能流水线连接成多种方式,同时使多种功能并行执行来划分。时使多种功能并行执行来划分。动态流水线动态流水线(
19、dynamic pipelining):指在同一时间段,多功能流水线中各段可按不同方式连接,指在同一时间段,多功能流水线中各段可按不同方式连接,同时执行多种功能(各种功能之间无冲突)。同时执行多种功能(各种功能之间无冲突)。本讲稿第二十五页,共七十页 静态流水线静态流水线(static pipelining):指在某一时间段内,指在某一时间段内,多功能流水线中的各功能段多功能流水线中的各功能段只能按只能按一种方式连接,实现一种固定功能。一种方式连接,实现一种固定功能。只有当按这种连接只有当按这种连接方法实现的所有功能操作全部完成(流水线流完),才方法实现的所有功能操作全部完成(流水线流完),才
20、能切换成(按另一种功能)别的连接,以实现另外的功能切换成(按另一种功能)别的连接,以实现另外的功能。能。本讲稿第二十六页,共七十页以机器所具有的数据表示划分以机器所具有的数据表示划分标量流水机;标量流水机;没有向量数据表示,只能用标量循环方没有向量数据表示,只能用标量循环方式来处理向量和数组。式来处理向量和数组。向量流水机:向量流水机:是向量数据表示和流水技术的结合。是向量数据表示和流水技术的结合。机器有向量数据表示,设置有向量指令和向量运算硬件,机器有向量数据表示,设置有向量指令和向量运算硬件,能流水地处理向量和数组中的各个元素能流水地处理向量和数组中的各个元素。标量流水机和向量流水标量流水
21、机和向量流水本讲稿第二十七页,共七十页(亦称顺序和乱序流水线)(亦称顺序和乱序流水线)依流水线中各功能段之间是否有反馈回路划分依流水线中各功能段之间是否有反馈回路划分线性流水线:线性流水线:流水线各段串行连接,一次流水各段只经过一次,流水线各段串行连接,一次流水各段只经过一次,没有反馈回路(各任务在流水线中按输入顺序一个任务段接着一个任务没有反馈回路(各任务在流水线中按输入顺序一个任务段接着一个任务段的流动)。段的流动)。非线性流水线:流水线除了有串行联接通路外,还有反馈回路,非线性流水线:流水线除了有串行联接通路外,还有反馈回路,使任务段经流水线可多次经过某个段或越过某些段。使任务段经流水线
22、可多次经过某个段或越过某些段。线性线性/非线性流水非线性流水1432举例:举例:本讲稿第二十八页,共七十页 主要性能:主要性能:吞吐率吞吐率(Throughput Rate TP)和效率和效率(Efficiency)定义;定义;吞吐率:吞吐率:即单位时间内机器能处理的最多指令条数或即单位时间内机器能处理的最多指令条数或 机器能输出的最多结果数。、机器能输出的最多结果数。、四、流水线处理机的主要性能(性能分析)四、流水线处理机的主要性能(性能分析)对于线性流水线,如果各个子过程所需要的时间分别是对于线性流水线,如果各个子过程所需要的时间分别是 ,则线性流水线的,则线性流水线的最大吞吐率为最大吞吐
23、率为:tTPD D=1maxmaxtttmi,.,.,11D DD DD Dtttmi,.,.,1D DD DD D本讲稿第二十九页,共七十页考虑以下几种情况的最大吞吐率考虑以下几种情况的最大吞吐率顺序解释顺序解释:一条指令的执行时间由个:一条指令的执行时间由个t完成。完成。采用一次重迭解释:采用一次重迭解释:机器每隔一个机器每隔一个t 就能输就能输出一条指令执行结果,机器最大吞吐率提高了一倍。出一条指令执行结果,机器最大吞吐率提高了一倍。流水线达到不间断流水的稳定状态后可获流水线达到不间断流水的稳定状态后可获得的吞吐率。得的吞吐率。最大吞吐率最大吞吐率:本讲稿第三十页,共七十页 T=2t,则
24、每隔则每隔t=T/2输出一个结果输出一个结果 T=4t,则每隔则每隔t=T/4输出一个结果输出一个结果 如果一条指令由如果一条指令由m个子部件完成,个子部件完成,T=mt,则每隔则每隔 t=T/m输出一个结果输出一个结果 机器最大吞吐率取决于子过程经过的时间机器最大吞吐率取决于子过程经过的时间t,t越小,机器最大越小,机器最大吞叶率就越高。吞叶率就越高。注意:这里的讨论忽略了流水线的建立时间,如前面例,建立时间注意:这里的讨论忽略了流水线的建立时间,如前面例,建立时间为为3t 一条指令执行时间为一条指令执行时间为采用流水进行指令解释:个子过程,如下分析采用流水进行指令解释:个子过程,如下分析:
25、本讲稿第三十一页,共七十页机器最大吞吐率取决于子过程经过的时间机器最大吞吐率取决于子过程经过的时间t t,t t越越小,机器最大吞叶率就越高。小,机器最大吞叶率就越高。同时,它受限于流水线中最慢子过程(同时,它受限于流水线中最慢子过程(瓶颈子过程瓶颈子过程)所)所经过的时间。经过的时间。“瓶颈瓶颈”问题:问题:本讲稿第三十二页,共七十页方法一:见书方法一:见书P161图图5、21(a)、(b)将将“瓶颈瓶颈”子过程再细分成更小的子过程,使各子子过程再细分成更小的子过程,使各子过程均使用时间过程均使用时间t0。则最大吞吐率得以提高。如图所示:则最大吞吐率得以提高。如图所示:流水线瓶颈的解决流水线
26、瓶颈的解决方法二:见书方法二:见书P161图图5、22(a)、(b)当不能细分瓶颈过程时,可重复设置多套瓶颈段并联,使当不能细分瓶颈过程时,可重复设置多套瓶颈段并联,使它们交叉并行。每隔一个它们交叉并行。每隔一个t0轮流给其中一个瓶颈段分配任务,轮流给其中一个瓶颈段分配任务,使整个流水线仍可每隔一个使整个流水线仍可每隔一个t0解释完成一条指令。如图所示解释完成一条指令。如图所示本讲稿第三十三页,共七十页流流 水水 线线 瓶瓶 颈颈 的的 解解 决决(c)瓶颈段重复设置部件图8-2 消除流水线瓶颈段的两种方法消除流水线瓶颈段的两种方法3DtDtDtDt瓶颈段细分(a)原流水线,第 3 段为瓶颈(
27、b)3c3b3aDtDtDtDtDtDt3DtDtDtDt方方法法一一方方法法二二本讲稿第三十四页,共七十页 流水线实际吞吐率的分析流水线实际吞吐率的分析在实际工作过程中,实际吞吐率在实际工作过程中,实际吞吐率TP是小于是小于Tpmax。因为有:流水线开始需要因为有:流水线开始需要建立时间建立时间;流水结束;流水结束需需排空时间排空时间;输入流水线的任务不一定连续;数据的相;输入流水线的任务不一定连续;数据的相关处理及多功能流水线的关处理及多功能流水线的某些功能段跳过某些功能段跳过等因素影响。等因素影响。经书经书P137138对对TP实实的公式分析,可得结论;采用的公式分析,可得结论;采用流水
28、方式,且任务流水方式,且任务n要要任务子过程段数任务子过程段数m,才可使实才可使实际吞吐率接近于际吞吐率接近于TP最大最大本讲稿第三十五页,共七十页对于线性流水线,完成对于线性流水线,完成n个任务所需时间为个任务所需时间为T=mD Dt+(n-1)D Dt,实际吞吐率为:实际吞吐率为:本讲稿第三十六页,共七十页2.加速比加速比流水方式的工作速度与等效的顺序工流水方式的工作速度与等效的顺序工流水方式的工作速度与等效的顺序工流水方式的工作速度与等效的顺序工 作作作作方式时间的比值。方式时间的比值。方式时间的比值。方式时间的比值。见书见书见书见书P194P194对于线性流水线对于线性流水线对于线性流
29、水线对于线性流水线:本讲稿第三十七页,共七十页整个运行时间时间流水线中设备实际使用3、效率、效率:用工作时间的时空区与流水线中各段总的时用工作时间的时空区与流水线中各段总的时用工作时间的时空区与流水线中各段总的时用工作时间的时空区与流水线中各段总的时空区之比空区之比空区之比空区之比来表示来表示。流水线效率也称流水线设备时间利用率。流水线效率也称流水线设备时间利用率。本讲稿第三十八页,共七十页从时空图中看:效率实际上就是从时空图中看:效率实际上就是n个任务占用的时空区面个任务占用的时空区面积与积与m个段总的时空区面积之比。个段总的时空区面积之比。与实际吞吐率与实际吞吐率TP实实一样,只有当一样,
30、只有当nm时,时,才趋于才趋于1。对于线性流水且每段经过时间相等时,流水线的效率对于线性流水且每段经过时间相等时,流水线的效率正正比于吞吐率。比于吞吐率。本讲稿第三十九页,共七十页 三、流水机器的相关处理和控制机构三、流水机器的相关处理和控制机构(自学自学)流水线只有不间断地连续流动,才会出现高的效率。流水线只有不间断地连续流动,才会出现高的效率。结合前一页书结合前一页书P196图图5.23,说明该流水线效率、加速比及实际吞吐率的,说明该流水线效率、加速比及实际吞吐率的计算。计算。效率效率 解题速度却提高为串行的解题速度却提高为串行的1.6倍倍是用加速比计算而知是用加速比计算而知 加速比:加速
31、比:流水线实际吞吐率为流水线实际吞吐率为 最大吞吐率为最大吞吐率为本讲稿第四十页,共七十页 流水机器中的相关处理流水机器中的相关处理 流水机器中的相关影响机器的效率和吞吐率流水机器中的相关影响机器的效率和吞吐率 流水机器中的相关分为局部相关和全局相关流水机器中的相关分为局部相关和全局相关。局部相关只影响相关的两条局部相关只影响相关的两条/若干指令,最多只影响若干指令,最多只影响到某些段工作的推后,不改变指缓中予取的指令,影响到某些段工作的推后,不改变指缓中予取的指令,影响是局部的。是局部的。全局相关是指出现了转移指令,使其后随指令不能同时执全局相关是指出现了转移指令,使其后随指令不能同时执行,
32、大大影响了机器的效率和吞吐率行,大大影响了机器的效率和吞吐率,故称为全局相关。,故称为全局相关。本讲稿第四十一页,共七十页 流水机器中的流水控制机构局部相关及处理流水机器中的流水控制机构局部相关及处理 “先写后读先写后读”后携一个后携一个Tm再读再读/使用相关专用通路使用相关专用通路(不可能为每个功能部件设专用通路,所以常采用分布式控制(不可能为每个功能部件设专用通路,所以常采用分布式控制和管理以及公共数据总线)。和管理以及公共数据总线)。控制机构控制机构:顺序(控制)流动(:顺序(控制)流动(同步流动方式同步流动方式)相关后造成断流,影响流水线的吞吐率和效率。相关后造成断流,影响流水线的吞吐
33、率和效率。见书图见书图5.24 顺序流动时空图顺序流动时空图本讲稿第四十二页,共七十页 解决办法:变顺序流水方式为异动方式,即让不相关的后面指令越解决办法:变顺序流水方式为异动方式,即让不相关的后面指令越过相关指令(不能与前面一条指令一起解释,而必须等待其结果流水后,过相关指令(不能与前面一条指令一起解释,而必须等待其结果流水后,获得其结果后方可继续被解释),继续向前流动获得其结果后方可继续被解释),继续向前流动 流水机器中异步流动方式的局部相关流水机器中异步流动方式的局部相关 “写写-写相关写相关”:对同一单元要求在先的指令先写,在后的指令后写:对同一单元要求在先的指令先写,在后的指令后写(
34、尽管可能尽管可能 已流到前面去了已流到前面去了)。)。“先读后写相关先读后写相关”:对同一单元要求在先的指令先读出,在:对同一单元要求在先的指令先读出,在后的指令再写入。后的指令再写入。异步流动方式的控制机构要对以上相关要求进行保证。异步流动方式的控制机构要对以上相关要求进行保证。本讲稿第四十三页,共七十页 在流水线中通过设置相关直接通路以减少吞吐率在流水线中通过设置相关直接通路以减少吞吐率和效率损失和效率损失 流水机器是同时解释多条指令,并经常采用多个可并行工流水机器是同时解释多条指令,并经常采用多个可并行工作的功能部件,故对相关直接通路的设置,一般采用分布式控作的功能部件,故对相关直接通路
35、的设置,一般采用分布式控制和管理,设置公共数据总线,以简化各种相关的判别和实现制和管理,设置公共数据总线,以简化各种相关的判别和实现相关直接通路的连接。相关直接通路的连接。以以IBM360/91浮点执行部件为例,介绍其相关处理控制浮点执行部件为例,介绍其相关处理控制机构。见书机构。见书P142本讲稿第四十四页,共七十页ipi+1 全局性相关的处理:全局性相关的处理:见书见书P144 全局性相关全局性相关已进入流水线的转移指令与其后续指已进入流水线的转移指令与其后续指令之间的相关。令之间的相关。常采用方法:常采用方法:猜测法猜测法 转移不成功分支转移不成功分支 转移指令转移指令 转移成功分支转移
36、成功分支本讲稿第四十五页,共七十页 加快和提前形成条件码加快和提前形成条件码 可从两个方面采取措施可从两个方面采取措施 加快单条指令内部条件码的形成,不等指令执行加快单条指令内部条件码的形成,不等指令执行完就提前形成反映运算结果的条件码。完就提前形成反映运算结果的条件码。(这特别适合于循环型程序判循环是否继续时的转移)(这特别适合于循环型程序判循环是否继续时的转移)。例:书例:书203程序中先减、再判程序中先减、再判 在一段程序内提前形成条件码在一段程序内提前形成条件码本讲稿第四十六页,共七十页 采取延迟转移采取延迟转移可使转移造成的流水线损失为可使转移造成的流水线损失为0 是用软件方法进行静
37、态指令调度技术,不必增加硬件,在编译是用软件方法进行静态指令调度技术,不必增加硬件,在编译生成目标指令程序时,将转移指令与其前面不相干的一条或多条交生成目标指令程序时,将转移指令与其前面不相干的一条或多条交换位置,让成功转移总是延迟到在这些指令执行后再进行(有充足换位置,让成功转移总是延迟到在这些指令执行后再进行(有充足的时间等待转移指令执行后条件码的形成,以完成成功转移)。的时间等待转移指令执行后条件码的形成,以完成成功转移)。加快短循环程序的处理加快短循环程序的处理 将可一次性整个予取到指缓中的短程序(指令)一次取进指缓,然后暂将可一次性整个予取到指缓中的短程序(指令)一次取进指缓,然后暂
38、停予取,使短循环取指予取得到保障。同时,使短循环程序出口的分支条转停予取,使短循环取指予取得到保障。同时,使短循环程序出口的分支条转指令恒猜循环分支。指令恒猜循环分支。本讲稿第四十七页,共七十页 讨论的问题是:讨论的问题是:当多个任务争用同一功能段时,如何既消除冲突又能使流水线当多个任务争用同一功能段时,如何既消除冲突又能使流水线保持有高的吞吐率和效率。保持有高的吞吐率和效率。为了对流水线的任务进行优化调度和控制,为了对流水线的任务进行优化调度和控制,(a)采取了二维采取了二维(n拍号,即任务经过流水线的时钟节拍号,拍号,即任务经过流水线的时钟节拍号,k段号)段号)预约表预约表可获得任务使用流
39、水线各段的时间关系表(利用画时空图的方法可获得任务使用流水线各段的时间关系表(利用画时空图的方法建立预约表),建立预约表),(b)可可得知任务在各段会引起争用的相隔拍数,将各段统计情况汇集在得知任务在各段会引起争用的相隔拍数,将各段统计情况汇集在一起一起构成一个延迟禁止表构成一个延迟禁止表F。按流水线状态由初始状态出构由流水线状态由初始状态出构由流水线调度流水线调度 P204本讲稿第四十八页,共七十页(c)有了延迟禁止表后,就可以形成冲突向量有了延迟禁止表后,就可以形成冲突向量。随任务随任务在流水线中的推进,冲突向量会不断动态地形成当时的在流水线中的推进,冲突向量会不断动态地形成当时的冲突向量
40、冲突向量。(d)依冲突向量,可画出用冲突向量表示的流水线状态依冲突向量,可画出用冲突向量表示的流水线状态转移图。转移图。(e)流水线状态图中由初始状态出发,构成一种间隔拍数流水线状态图中由初始状态出发,构成一种间隔拍数呈周期性重复的方案来进行流水线调度,就不会发生功能呈周期性重复的方案来进行流水线调度,就不会发生功能段使用冲突。段使用冲突。只要计算出每种调度方案的平均间隔拍数,从中找出最只要计算出每种调度方案的平均间隔拍数,从中找出最小者即是最调度方案小者即是最调度方案。本讲稿第四十九页,共七十页 如一任务的单功能流水线预约表如下:如一任务的单功能流水线预约表如下:54321987654321
41、段段号号K有了延迟禁止表后,就可以形成冲突向量。有了延迟禁止表后,就可以形成冲突向量。由表可知:由表可知:1段相隔段相隔8拍(一任务相隔拍(一任务相隔8折要用折要用1段一次)段一次)2段相隔有段相隔有1、5、6三种情况(即该任务隔三种情况(即该任务隔1拍、拍、5拍和拍和6拍要使用拍要使用2段各段各一次)一次)所以本例的延迟表所以本例的延迟表 F=1、5、6、8。本讲稿第五十页,共七十页 表的形成依据:表的形成依据:如有另一任务要流入流水线,如与前一任务相如有另一任务要流入流水线,如与前一任务相隔隔8拍(使用拍(使用1段),必将引起冲突,导致争用。而相隔段),必将引起冲突,导致争用。而相隔1、5
42、、6拍流拍流入流水线入流水线,将会争用,将会争用2段段如此统计,可得知任务在各段会引起争如此统计,可得知任务在各段会引起争用的相隔拍数,将各段统计情况汇集在一起构成一个延迟禁止表用的相隔拍数,将各段统计情况汇集在一起构成一个延迟禁止表F。表中,任务对段表中,任务对段3无重复使用(线性使用一次),对段无重复使用(线性使用一次),对段4、5也也是相隔是相隔1拍使用,。拍使用,。所以本例的所以本例的 延迟表延迟表F=1、5、6、8。即是说:即是说:要使流水线各功能段不在被使用时引起争用冲突,相要使流水线各功能段不在被使用时引起争用冲突,相邻两任务送入流水线的相隔节拍数就不能是邻两任务送入流水线的相隔
43、节拍数就不能是1、5、6、8拍拍本讲稿第五十一页,共七十页 有了延迟禁止表后,就可以形成冲突向量。有了延迟禁止表后,就可以形成冲突向量。随任务在流水线中随任务在流水线中的推进,冲突向量会不断动态地形成当时的冲突向量。的推进,冲突向量会不断动态地形成当时的冲突向量。禁止表冲突向量禁止表冲突向量C=10110001F=依冲突向量,可画出用冲突向量表示的流水线状态转移图依冲突向量,可画出用冲突向量表示的流水线状态转移图只要按流水线状态图中由初始状态出发,构成一种间隔拍数呈周期性重流水线状态图中由初始状态出发,构成一种间隔拍数呈周期性重复的方案来进行流水线调度,就不会发生功能段使用冲突。复的方案来进行
44、流水线调度,就不会发生功能段使用冲突。只要计算出每种调度方案的平均间隔拍数,从中找出最小者即可。只要计算出每种调度方案的平均间隔拍数,从中找出最小者即可。本讲稿第五十二页,共七十页 非线性流水线的调度方法(书非线性流水线的调度方法(书P205)预约表预约表 禁止表禁止表F=1,5,6,8 冲突向量冲突向量C=10110001 本讲稿第五十三页,共七十页调度状态转换图000101101011000110110111b:相相或或 00000000 10110001 10110001a:相相或或001011001011000110111101d:相相或或本讲稿第五十四页,共七十页调度方案比较调度策略
45、平均间隔周期bc:(3,4)3.50ad:(2,7)4.50ade:(2,2,7)3.67abcb:(3,4,3,7)4.25abc:(3,4,7)4.67acb:(4,3,7)4.67ab:(3,7)5.00ac:(4,7)5.50a:(7)7.00本讲稿第五十五页,共七十页第三节 向量的流水与向量流水处理机 向量内部各元素很少相关,且通常又是执行同一操向量内部各元素很少相关,且通常又是执行同一操作,易发挥流水线的效能。故将向量数据表示和流水线作,易发挥流水线的效能。故将向量数据表示和流水线结合,就构成了向量流水处理机,以提高面向向量数组结合,就构成了向量流水处理机,以提高面向向量数组计算类
46、应用的计算机的速度性能。计算类应用的计算机的速度性能。本讲稿第五十六页,共七十页 一、向量的流水处理一、向量的流水处理 目标:选择使向量运算最能充分发挥出流水线效能的目标:选择使向量运算最能充分发挥出流水线效能的处理方式,就是向量的流水处理要研究的问题。处理方式,就是向量的流水处理要研究的问题。向量的处理方式:分横向量和纵向量举例说明向量的处理方式:分横向量和纵向量举例说明 计算计算D=A(B+C),其中其中A、B、C、D均为有均为有N个元素的个元素的向量向量本讲稿第五十七页,共七十页 因为在进行因为在进行di=ai(bi+ci)计算过程中,频繁地使用到加、乘两条指计算过程中,频繁地使用到加、
47、乘两条指令,进行着令,进行着bi+ci=k、kai=di的操作,使用的操作,使用k单元存放中间结果,导单元存放中间结果,导致频繁出现致频繁出现“先写后读先写后读”的操作数相关。故每次只能等的操作数相关。故每次只能等ai+ci结果出来后,结果出来后,才能开始乘,所以流水线的吞吐率下降。才能开始乘,所以流水线的吞吐率下降。采用横向处理:即逐个求采用横向处理:即逐个求D向量元素的方法向量元素的方法 逐个求逐个求di=ai(bi+ci)、di+1=ai+1(bi+1+ci+1)此种处理方式宜于在标量处理机上用循环程序实现,却此种处理方式宜于在标量处理机上用循环程序实现,却难以使流水线连续流动。难以使流
48、水线连续流动。本讲稿第五十八页,共七十页 采用纵向处理采用纵向处理 思路:将整个向量按相同操作都以流水方式执行完后再执行别的操思路:将整个向量按相同操作都以流水方式执行完后再执行别的操作,以更好地发挥流水处理的效能。作,以更好地发挥流水处理的效能。具体:执行具体:执行di=ai(bi+ci)、处理方式改为:按处理方式改为:按bi+ciki(i从从1N),),然然后再按后再按kiaidi(i从从1N)这种处理方式。这种处理方式。B、C向量、向量、k、a向量分别均执向量分别均执行相同操作,且无相关,流水线能连续流动,能有效发挥流水线效率,行相同操作,且无相关,流水线能连续流动,能有效发挥流水线效率
49、,功能切换总共只进行一次。功能切换总共只进行一次。采用纵向处理条件:采用纵向处理条件:流水线输入端要求能每拍取得成对元素,才能每拍求得一个结果元素,流水线输入端要求能每拍取得成对元素,才能每拍求得一个结果元素,且元素个数且元素个数N也不会小,故要求主存流量和流水线的处理速率相匹配。也不会小,故要求主存流量和流水线的处理速率相匹配。本讲稿第五十九页,共七十页 二、向量流水处理机二、向量流水处理机 以以CRAY-1机为例,介绍面向寄存器机为例,介绍面向寄存器寄存器型向量寄存器型向量流水处理的结构特点。流水处理的结构特点。CRAY-1机向量处理的一个显著特点是其指令可以链机向量处理的一个显著特点是其
50、指令可以链接,使它能灵活地组织各流水线功能部件的并行操作,接,使它能灵活地组织各流水线功能部件的并行操作,最多能并行处理最多能并行处理6条向量指令,充分发挥出流水线功能部条向量指令,充分发挥出流水线功能部件的效能。件的效能。本讲稿第六十页,共七十页 其灵活组织表现在其灵活组织表现在:只要不出现功能部件冲突和源向量冲突,通过只要不出现功能部件冲突和源向量冲突,通过链接机构可使有数据相关的向量指令仍能够重迭并行处链接机构可使有数据相关的向量指令仍能够重迭并行处理,具体见书理,具体见书P153图图5.30 CARY-1能由机器自动检查每一个向量指令是否可能由机器自动检查每一个向量指令是否可与它前面的