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