《第5章重叠流水和向量处理机PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第5章重叠流水和向量处理机PPT讲稿.ppt(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第5章重叠流水和向量处理机1第1页,共50页,编辑于2022年,星期一5.1 重叠解释方式重叠解释方式 5.2 流水方式流水方式 5.3 超标量、超流水处理机超标量、超流水处理机5.4 向量流水处理机向量流水处理机 2第2页,共50页,编辑于2022年,星期一本章重点:本章重点:一次重叠方式中,各种相关的处理;一次重叠方式中,各种相关的处理;流水线的时空图和性能分析;流水线的时空图和性能分析;流水局部性相关的处理,全局性相关的处理和对中断的处理;流水局部性相关的处理,全局性相关的处理和对中断的处理;单功能非线性流水线的调度;单功能非线性流水线的调度;向量处理方式。向量处理方式。3第3页,共50
2、页,编辑于2022年,星期一5.1 5.1 重叠解释方式重叠解释方式重叠解释方式重叠解释方式 5.1.1 基本思想和一次重叠基本思想和一次重叠解释一条指令可归纳为三部分:取指令、分析和执行解释一条指令可归纳为三部分:取指令、分析和执行解释一条指令可归纳为三部分:取指令、分析和执行解释一条指令可归纳为三部分:取指令、分析和执行图图 5.1 对一条机器指令的解释对一条机器指令的解释 取指令分析执行t 指令的执行过程:指令的执行过程:取操作码、取操作码、指令译码、形成操作数地址、取操作数、指令译码、形成操作数地址、取操作数、运算、存结果运算、存结果指令的解释有二种:指令的解释有二种:1)1)顺序执行
3、顺序执行2)2)重叠执行重叠执行4第4页,共50页,编辑于2022年,星期一顺序解释:顺序解释:一条指令执行完后再取下一条指令。一条指令执行完后再取下一条指令。特点:特点:控制简单,速度慢。控制简单,速度慢。重叠解释:重叠解释:一条指令执行完之前,就可开始解释下一条指令。一条指令执行完之前,就可开始解释下一条指令。特点:特点:速度快。速度快。图 5.2 指令的顺序解释与重叠解释 5第5页,共50页,编辑于2022年,星期一重叠操作中,取指访存和分析中取操作数访存可能出现访存冲突。重叠操作中,取指访存和分析中取操作数访存可能出现访存冲突。解决的办法解决的办法解决的办法解决的办法有三个:有三个:1
4、.1.指令和操作数分别放在不同且可同时访问的存储器中。指令和操作数分别放在不同且可同时访问的存储器中。2.2.维持指令和操作数混存,采用多体交叉主存结构。维持指令和操作数混存,采用多体交叉主存结构。3.3.采用先进先出的指令缓冲寄存器采用先进先出的指令缓冲寄存器(指缓指缓),预取几条指令于指缓之中,预取几条指令于指缓之中,此时,因取指时间很短,可与此时,因取指时间很短,可与“分析分析”微操作合并。微操作合并。6第6页,共50页,编辑于2022年,星期一一次重叠:一次重叠:指令分析部件和指令执行部件指令分析部件和指令执行部件只有一套只有一套,任何时候只有相邻的,任何时候只有相邻的两条指两条指令令
5、重叠操作。(重叠操作。(“分析分析”和和“执行执行”所需时间要相同)所需时间要相同)特点:特点:省硬件,简化控制。省硬件,简化控制。图 5.3 一次重叠工作方式 如:即使如:即使“分析分析K+1K+1”比比“执行执行K K”提前结束,提前结束,“执行执行K+1K+1”也不能紧接在也不能紧接在“分析分析K+1K+1”之后与之后与“执行执行K K”重叠进行。重叠进行。7第7页,共50页,编辑于2022年,星期一例如:例如:条件转移指令执行,并成功转移到条件转移指令执行,并成功转移到mm单元。单元。结论:条件转移指令成功时,重叠变为顺序执行,应少使用条件转移指令结论:条件转移指令成功时,重叠变为顺序
6、执行,应少使用条件转移指令图 5.4 当第k条指令是条件转移时 8第8页,共50页,编辑于2022年,星期一相关:相关:因程序相邻指令之间出现了关联,为防止出错它们不能同时解释。这因程序相邻指令之间出现了关联,为防止出错它们不能同时解释。这种现象称发生了种现象称发生了“相关相关”,有,有“数据相关数据相关”(”(即数相关即数相关)和和“指令相关指令相关”。例例1.1.数据相关。数据相关。第第K+1K+1条指令的源操作数地址正好是第条指令的源操作数地址正好是第K K条指令结果地址,顺序解释没问题,条指令结果地址,顺序解释没问题,而重叠解释时,在而重叠解释时,在“执行执行K K”和和“分析分析K+
7、1K+1”重叠时就出现问题。重叠时就出现问题。例例2.2.指令相关。指令相关。指令相关是因为机器指令允许修改引起的。指令相关是因为机器指令允许修改引起的。如如 K K:存功能:存功能 通用寄存器,通用寄存器,K+1K+1;(通用寄存器);(通用寄存器)(K+1K+1)K+1 K+1:K K的执行结果的执行结果“执行执行K K”形成形成K+1K+1条指令。因此重叠解释时条指令。因此重叠解释时“分析分析K+1K+1”就是以前进入指就是以前进入指缓的旧内容,出错。为防止出错,缓的旧内容,出错。为防止出错,K K和和K+1K+1指令就不能同时解释,称此时发生了指令就不能同时解释,称此时发生了“指令相关
8、指令相关”。关于临近指令的某种关联问题关于临近指令的某种关联问题关于临近指令的某种关联问题关于临近指令的某种关联问题9第9页,共50页,编辑于2022年,星期一5.1.2 5.1.2 相关处理相关处理相关处理相关处理1.1.指令相关的处理指令相关的处理可通过限定程序运行过程中不准修改指令来解决可通过限定程序运行过程中不准修改指令来解决同时为了增加灵活性,同时为了增加灵活性,IBM370IBM370采用采用”执行执行“指令指令“执行执行”指令的格式:指令的格式:操作码寄存器可修改指令地址被修改的指令以被修改的指令以“执行执行”指令的操作数形式出现,指令的操作数形式出现,将指令相关转成数相关。数据
9、相关分为将指令相关转成数相关。数据相关分为主存数据相主存数据相主存数据相主存数据相关关关关和和通用寄存器组相关通用寄存器组相关通用寄存器组相关通用寄存器组相关。图 5.5 IBM 370“执行”指令的执行 在数据区,其内容作为指令在数据区,其内容作为指令10第10页,共50页,编辑于2022年,星期一2.2.主存空间数相关的处理主存空间数相关的处理主存空间数相关:主存空间数相关:相邻两条指令对同一主存单元相邻两条指令对同一主存单元先写后读先写后读的关联。的关联。处理方法:处理方法:推后读。推后读。措施:措施:写优先级高,读优先级低。写优先级高,读优先级低。如:如:CPUCPU和通道可能同时发出
10、访存要求,和通道可能同时发出访存要求,这时由存控部件在每个主存周期对各种访这时由存控部件在每个主存周期对各种访存申请进行排队。存申请进行排队。图图 5.6 主存数相关的处理主存数相关的处理 11第11页,共50页,编辑于2022年,星期一3.3.通用寄存器组相关的处理通用寄存器组相关的处理通用寄存器组相关的处理通用寄存器组相关的处理 通用寄存器的作用不同既可用来存放通用寄存器的作用不同既可用来存放操作数操作数操作数操作数,又可用来存放操作数的,又可用来存放操作数的基址或变址基址或变址。所需微操作的时间也不同,有。所需微操作的时间也不同,有关处理方法也不同。关处理方法也不同。图 3 用相关专用通
11、路解决通 用寄存器组的数相关 图图 2 “执行执行k”、“分析分析k+1”重叠时,访问通用重叠时,访问通用寄存器组的时间关系寄存器组的时间关系 图图1 1 通用寄存器的内容何时使用通用寄存器的内容何时使用若出现若出现L1(k+1)=L3(k)L1(k+1)=L3(k)或或L2(k+1)=L3(k)L2(k+1)=L3(k)则有数相关。则有数相关。(1)(1)通用寄存器组数相关的处理通用寄存器组数相关的处理 处理方法:处理方法:1.1.推后读推后读 2.2.设置设置“相关专用通路相关专用通路”。作用:重叠效率不下降,数据不出错。作用:重叠效率不下降,数据不出错。12第12页,共50页,编辑于20
12、22年,星期一(2)(2)通用寄存器组基址值或变址相关的处理通用寄存器组基址值或变址相关的处理(以基址以基址B B为例,即为例,即B B相关相关)设有效地址设有效地址(X(Xd d)+(B)+(B2 2)+d)+d2 2由地址加法器形成。基址由地址加法器形成。基址B B2 2通过总线送入加法器,在时间上有时来不及,形成通过总线送入加法器,在时间上有时来不及,形成B B相关。相关。图 1 B一次相关与二次相关 图 2 B一次、二次相关的推后处理 图 5.12 B相关专用通路法 13第13页,共50页,编辑于2022年,星期一结论:结论:结论:结论:相关:相关:指令相关、操作数相关。指令相关、操作
13、数相关。操作数相关有:主存操作数相关、操作数相关有:主存操作数相关、通用寄存器组相关。通用寄存器组相关。通用寄存器组相关分为:通用寄存器组相关分为:通用寄存器组数相关、通用寄存器组基址和变址值通用寄存器组数相关、通用寄存器组基址和变址值相关。相关。解决方法:解决方法:推后分析推后分析或或设置相关专用通路设置相关专用通路。14第14页,共50页,编辑于2022年,星期一5.2 流流 水水 方方 式式 1.流水流水是重叠的引申是重叠的引申的含义:的含义:一次重叠一次重叠:把指令的解释分成两个子过程,同时解释两条指令。流水流水:把指令的解释分成多个子过程,同时解释多条指令。流水的最大吞吐率:流水的最
14、大吞吐率:流水线满负荷,每隔 t流出一个结果时所达到的吞吐率。5.2.1 5.2.1 基本概念基本概念图 5.13 指令分解为“分析”与“执行”子过程 连接图连接图时空图时空图15第15页,共50页,编辑于2022年,星期一2.2.流水线的分类流水线的分类流水线的分类流水线的分类 (1)流水按)流水按处理级别处理级别分为分为部件级的流水部件级的流水:构成部件内的各个子部件之间的流水如运算器内的:构成部件内的各个子部件之间的流水如运算器内的“浮点加浮点加”流水。流水。处理机级流水:处理机级流水:构成计算机系统的各个部件之间的流水,如取指、分析、执行的流水。构成计算机系统的各个部件之间的流水,如取
15、指、分析、执行的流水。系统级流水:系统级流水:构成计算机系统的多个处理机之间的流水,也称为宏流水。构成计算机系统的多个处理机之间的流水,也称为宏流水。流水按扩展方向分类流水按扩展方向分类流水向下扩展:把子过程进一步细分。流水向下扩展:把子过程进一步细分。(过程并行过程并行)流水向上扩展:在多个处理机之间流水。流水向上扩展:在多个处理机之间流水。(任务并行任务并行)图 5.15 处理机间的流水处理 16第16页,共50页,编辑于2022年,星期一(2)按)按流水线的功能多少流水线的功能多少分为分为单功能流水线单功能流水线:只能实现一种功能的流水,如:只能实现一种功能的流水,如“浮点加浮点加”流水
16、。流水。多功能流水线多功能流水线:能实现多种功能的流水,同一流水线的各个段之间可以有多种不同:能实现多种功能的流水,同一流水线的各个段之间可以有多种不同的连接方式实现多种不同的运算或功能的流水。的连接方式实现多种不同的运算或功能的流水。图 5.16 ASC机运算器的流水线 17第17页,共50页,编辑于2022年,星期一多功能流水线多功能流水线多功能流水线多功能流水线进一步分为:进一步分为:静态流水线静态流水线:在某一时间内各段只能按一种功能联接流水,只有等流水线全部流空后,才能切换:在某一时间内各段只能按一种功能联接流水,只有等流水线全部流空后,才能切换成按另一种功能来联接流水。实现简单。成
17、按另一种功能来联接流水。实现简单。动态流水线动态流水线:各功能段在某一时间内可按不同运算或功能联接。控制复杂。:各功能段在某一时间内可按不同运算或功能联接。控制复杂。图 5.17 静、动态多功能流水线时-空图举例18第18页,共50页,编辑于2022年,星期一(3)从流水线中各功能段之间)从流水线中各功能段之间是否有反馈回路是否有反馈回路分为分为线性流水线线性流水线:各个段之间串行连接,无反馈也无跳跃,每个任务流经流水线:各个段之间串行连接,无反馈也无跳跃,每个任务流经流水线中各个段均只有一次中各个段均只有一次非线性流水线非线性流水线:各个段之间除了有串行连接,还有反馈回路,使一个任务:各个段
18、之间除了有串行连接,还有反馈回路,使一个任务流经流水线时,需多次经过某段或越过某段。流经流水线时,需多次经过某段或越过某段。1234a 线性流水线性流水1432反馈一次反馈一次b 非线性流水非线性流水跳跃跳跃19第19页,共50页,编辑于2022年,星期一3 3 流水线的特点流水线的特点从上面的分析可知,计算机中采用流水线方式具有如下特点:从上面的分析可知,计算机中采用流水线方式具有如下特点:(1 1)流水线每一个功能部件后面都要有一个流水线每一个功能部件后面都要有一个缓冲寄存器缓冲寄存器,或称为,或称为锁存器锁存器,其作用,其作用是保存本流水段的结果,由于流水线中每一个流水段的延迟时间不可能
19、绝对相是保存本流水段的结果,由于流水线中每一个流水段的延迟时间不可能绝对相等,再加上电路的延迟时间及时钟等都存在偏移,因此流水段之间传送任务时,等,再加上电路的延迟时间及时钟等都存在偏移,因此流水段之间传送任务时,必须通过锁存器。在每个子过程后加个锁存器,受同一时钟的控制,时钟信号必须通过锁存器。在每个子过程后加个锁存器,受同一时钟的控制,时钟信号的周期不得低于速度最慢子部件的经过时间与锁存器的存取时间之和。的周期不得低于速度最慢子部件的经过时间与锁存器的存取时间之和。(2 2)流水线中流水线中各功能段的时间应尽量相等各功能段的时间应尽量相等,否则将引起堵塞、断流。要求流水线的时,否则将引起堵
20、塞、断流。要求流水线的时钟周期不能快于最慢的流水段。另一方面,执行时间长的一个流水段将成为整个流水线钟周期不能快于最慢的流水段。另一方面,执行时间长的一个流水段将成为整个流水线的的瓶颈瓶颈,此时流水线中的其他功能部件就不能发挥作用。因此瓶颈问题是流水线设计中,此时流水线中的其他功能部件就不能发挥作用。因此瓶颈问题是流水线设计中必须解决的问题。必须解决的问题。(3 3)只有连续不断地提供只有连续不断地提供同一种任务同一种任务时才能发挥流水线的效率。例如,要使浮时才能发挥流水线的效率。例如,要使浮点加法器流水线充分发挥作用,需要连续提供浮点加法运算。点加法器流水线充分发挥作用,需要连续提供浮点加法
21、运算。20第20页,共50页,编辑于2022年,星期一(4 4)流水线需要有流水线需要有装入时间装入时间和和排空时间排空时间。装入时间是指第一个任务进入流水。装入时间是指第一个任务进入流水线到输出流水线的时间。排空时间是指第线到输出流水线的时间。排空时间是指第n n个个(最后一个最后一个)任务进入流水线到任务进入流水线到输出流水线的时间。在这两种情况下,流水线不满载。只有流水线完全输出流水线的时间。在这两种情况下,流水线不满载。只有流水线完全满载时,整个流水线的效率才能得到充分发挥。满载时,整个流水线的效率才能得到充分发挥。21第21页,共50页,编辑于2022年,星期一5.2.2 流水线的主
22、要性能流水线的主要性能 1.吞吐率吞吐率 吞吐率:吞吐率:吞吐率:吞吐率:流水线单位时间里能流出的任务数或结果数流水线单位时间里能流出的任务数或结果数。最大吞吐率:最大吞吐率:最大吞吐率:最大吞吐率:瓶颈子过程:瓶颈子过程:瓶颈子过程:瓶颈子过程:流水线中经过时间最长的子过程。图 5.19 最大吞吐率取决于瓶颈段的时间 22第22页,共50页,编辑于2022年,星期一 流水线瓶颈解决方法:流水线瓶颈解决方法:(1)把瓶颈子过程在进一步细分,让细分后的子过程与别的流水段经过的把瓶颈子过程在进一步细分,让细分后的子过程与别的流水段经过的时间相等。时间相等。图 5.20 瓶颈流水段再次细分 23第2
23、3页,共50页,编辑于2022年,星期一图 5.21 瓶颈流水段重复设置(2)重复设置多套瓶颈段,使它们交叉并联。重复设置多套瓶颈段,使它们交叉并联。该方法需要解决好在各并行该方法需要解决好在各并行子过程之间的任务分配和同子过程之间的任务分配和同步控制,比起瓶颈子过程再步控制,比起瓶颈子过程再细分控制要复杂,设备更多。细分控制要复杂,设备更多。第24页,共50页,编辑于2022年,星期一mm段流水线建立时间段流水线建立时间段流水线建立时间段流水线建立时间(第第1 1条指令从进到出的时间条指令从进到出的时间):实际吞吐率:实际吞吐率:实际吞吐率:实际吞吐率:(每段时间相等每段时间相等 t t0
24、0:)当当nmnm时,时,TPTP接近接近TPTPmaxmaxmm t t0 0:流水线建立时间,:流水线建立时间,(n-1)(n-1)t t0 0:其余全部流出时间,:其余全部流出时间,n n:n n个任务个任务加速比加速比加速比加速比SpSp:流水方式相对于非流水顺序方式速度提高的比值。流水方式相对于非流水顺序方式速度提高的比值。当当nmnm时,加速比趋于流水线的段数时,加速比趋于流水线的段数m(m(最大值最大值)。n*m*n*m*t t0 0:顺序处理完时间,:顺序处理完时间,mm t t0 0+(n-1)+(n-1)t t0 0:流水全部流出时间:流水全部流出时间若流水线每段经过时间不
25、等,则:若流水线每段经过时间不等,则:实际吞吐率为:实际吞吐率为:实际吞吐率为:实际吞吐率为:n n个任务个任务流水建立时间流水建立时间瓶颈段时间瓶颈段时间顺序处理顺序处理完时间完时间加速比为:加速比为:加速比为:加速比为:25第25页,共50页,编辑于2022年,星期一图 5.22 从时空图分析实际的吞吐率 26第26页,共50页,编辑于2022年,星期一2.效率:效率:效率:流水线设备的实际使用时间占整个运行时间之比,也称流水线设备的时间利用率。a)各段经过时间相同 t0 每个流水段效率:=M M个段总的时空区个段总的时空区n n个任务实际占用的时空区个任务实际占用的时空区另外:另外:正比
26、于吞吐率正比于吞吐率b b)各段经过时间不相等)各段经过时间不相等n n个任务个任务每个任务使用每个任务使用 t t0 0时间时间时空图中时空图中n n个任务实际使用的面积个任务实际使用的面积时空图中时空图中mm个段与流水总时间个段与流水总时间T T围成的面积围成的面积整个流水线效率:27第27页,共50页,编辑于2022年,星期一3.流水线工作举例流水线工作举例:向量点积,静态双功能流水线向量点积,静态双功能流水线(求实际吞吐率求实际吞吐率求实际吞吐率求实际吞吐率TPTP和效率和效率和效率和效率)设向量设向量A和和B各有各有4个元素,要在如图所示的静态双功能流水线个元素,要在如图所示的静态双
27、功能流水线(功能是顺序的,不能重叠功能是顺序的,不能重叠)上计算向量点积,上计算向量点积,AB=ai*bi,其中,其中,1、2、3、5组成组成加法加法流水线。流水线。1、4、5为为乘法乘法流水线。每个功能段经过的时间均为流水线。每个功能段经过的时间均为t,流水线输出直接返回相应寄存器。,流水线输出直接返回相应寄存器。计算方法:计算方法:先先a a1 1*b*b1 1、a a2 2*b*b2 2、a a3 3*b*b3 3、a a4 4*b*b4 4,后,后(a(a1 1b b1 1+a+a2 2b b2 2)+(a)+(a3 3b b3 3+a+a4 4b b4 4)实际吞吐率:实际吞吐率:实
28、际吞吐率:实际吞吐率:TP=7/(15 TP=7/(15t)t)顺序方式时间:顺序方式时间:顺序方式时间:顺序方式时间:4*3 4*3t+3*4t+3*4t=24t=24t t加速比:加速比:加速比:加速比:Sp=24 Sp=24t/15t/15t=1.6t=1.6效率效率效率效率(用面积比方法用面积比方法用面积比方法用面积比方法):=(=(4*34*3t+3*4t+3*4t)t)/(5*15 (5*15t t)=32%=32%第28页,共50页,编辑于2022年,星期一由上题可知,影响流水线效率不高的因素包括:由上题可知,影响流水线效率不高的因素包括:1.1.静态多功能流水线流水时,总有一些
29、本功能用不到的段处于空闲状态。静态多功能流水线流水时,总有一些本功能用不到的段处于空闲状态。2.2.流水建立过程中,本功能要用到的某些段也有部分处于空闲状态。流水建立过程中,本功能要用到的某些段也有部分处于空闲状态。3.3.功能切换时,增加了前一种功能流水的排空时间及后一种功能流水的建立时间。功能切换时,增加了前一种功能流水的排空时间及后一种功能流水的建立时间。4.4.上一步运算的结果要送到流水线的输入端,下一任务才能开始。上一步运算的结果要送到流水线的输入端,下一任务才能开始。29第29页,共50页,编辑于2022年,星期一5.2.3 5.2.3 流水机器的相关处理和控制机构流水机器的相关处
30、理和控制机构流水机器的相关处理和控制机构流水机器的相关处理和控制机构(1)(1)全局性相关:全局性相关:机器系统出现相关时,影响面较宽,较严重,称为全局性相关。如转移指令废指缓。机器系统出现相关时,影响面较宽,较严重,称为全局性相关。如转移指令废指缓。局部性相关:局部性相关:机器系统出现相关时,影响面较窄,是局部的,称为局部性相关。如指令相关,主存操作数相关等机器系统出现相关时,影响面较窄,是局部的,称为局部性相关。如指令相关,主存操作数相关等。1.1.局部性相关的处理局部性相关的处理局部性相关的处理局部性相关的处理 流水技术是重叠技术的发展,因此,重叠机器处理相关的方法也适用于流水机器,即流
31、水技术是重叠技术的发展,因此,重叠机器处理相关的方法也适用于流水机器,即 推后读推后读 设置相关直设置相关直接通路。接通路。按流水线中流动顺序的安排,分为两种形式:按流水线中流动顺序的安排,分为两种形式:同步流动:任务流出流水线的顺序与流入流水线的顺序一致同步流动:任务流出流水线的顺序与流入流水线的顺序一致(顺序流动顺序流动)。异步流动:任务流出流水线的顺序与流入流水线的顺序不一致。异步流动:任务流出流水线的顺序与流入流水线的顺序不一致。例:如图,有一串指令例:如图,有一串指令h h、I I、j j、k k、l l、mm、n n依次进入流水线,依次进入流水线,j j的源操作数地址与的源操作数地
32、址与h h的目的操作的目的操作数地址相同,所以数地址相同,所以h h和和j j发生发生“先写后读先写后读”操作数相关。处理方法:操作数相关。处理方法:同步流动:同步流动:j j在读段等待,后续指令暂停,在读段等待,后续指令暂停,h h完成写段后,流水线继续。完成写段后,流水线继续。效率低。效率低。异步流动:先执行与异步流动:先执行与j j没有相关性的后续指令,没有相关性的后续指令,h h完成写段后,执行完成写段后,执行j j。效率高效率高图 5.24 顺序流动和异步流动 30第30页,共50页,编辑于2022年,星期一5.2.3 5.2.3 流水机器的相关处理和控制机构流水机器的相关处理和控制
33、机构流水机器的相关处理和控制机构流水机器的相关处理和控制机构(2)(2)异步流动要处理的三种相关异步流动要处理的三种相关(都是对同一单元的要求都是对同一单元的要求):”先写后读先写后读先写后读先写后读”相关:相关:相关:相关:在先的指令先写入,在后的指令才能读的关联,在先的指令先写入,在后的指令才能读的关联,称称“先写后读先写后读”相关。相关。”写写写写写写写写”相关:相关:相关:相关:在先的指令先写入,在后的指令才能写的相关。在先的指令先写入,在后的指令才能写的相关。“先读后写先读后写先读后写先读后写”相关:相关:相关:相关:在先的指令先读,在后的指令才能写的相关,称在先的指令先读,在后的指
34、令才能写的相关,称“先读后写先读后写”相关。相关。31第31页,共50页,编辑于2022年,星期一浮点操作数缓冲器浮点操作数缓冲器浮点操作数缓冲器浮点操作数缓冲器FLBFLB接受来自存储器的操作数。接受来自存储器的操作数。存储数据缓冲器存储数据缓冲器存储数据缓冲器存储数据缓冲器SDBSDB保存送给存储器的数据。保存送给存储器的数据。浮点操作站浮点操作站浮点操作站浮点操作站FLOSFLOS保存浮点命令。保存浮点命令。浮点寄存器浮点寄存器浮点寄存器浮点寄存器FLRFLR保存临时数据,寄存器号为保存临时数据,寄存器号为F0F7,F0F7,每个寄存器设置每个寄存器设置一个一个“忙位忙位”,只要寄存器,
35、只要寄存器FiFi正在使用,正在使用,“忙位忙位”就置就置“1”“1”,使,使用完后清用完后清0 0。若某个操作命令使用。若某个操作命令使用FiFi,先检查,先检查“忙位忙位”是否为是否为1 1,若为若为1 1则发生相关。则发生相关。浮点加法器和浮点乘法器都是流水线,可并行工作。浮点加法器和浮点乘法器都是流水线,可并行工作。浮点命令格式:浮点命令格式:浮点命令格式:浮点命令格式:操作操作 源源1(1(寄存器,目的寄存器,目的),源,源2 2因为源因为源1 1兼作目的,所以发生数相关的概率较高。兼作目的,所以发生数相关的概率较高。只要同时进入流水线的各个操作命令中使用了同一个浮点寄存器只要同时进
36、入流水线的各个操作命令中使用了同一个浮点寄存器FLRFLR的号就会的号就会发生相关。发生相关。特点:特点:特点:特点:1.1.为浮点寄存器设置一个为浮点寄存器设置一个“忙忙”未来判断相关。未来判断相关。2.2.提供公共数据总线提供公共数据总线CDBCDB作为相关之接通路。作为相关之接通路。3.3.设置多个保存站,以实现异步流动方式。设置多个保存站,以实现异步流动方式。4.4.简化了多重相关的处理,控制灵活。简化了多重相关的处理,控制灵活。例:例:图5.25 IBM 360/91的浮点执行部件结构框图32第32页,共50页,编辑于2022年,星期一图5.25 IBM 360/91的浮点执行部件结
37、构框图ADD F2,FLB1ADD F2,FLB1MD F2,FLB2MD F2,FLB2 两条指令异步执行时,先读后写、写写、先写后读都会出现两条指令异步执行时,先读后写、写写、先写后读都会出现 FLOSFLOS送出加法指令,将送出加法指令,将F2F2和和FLB1FLB1分别送往分别送往A1A1,将,将A1A1站号站号(1010)(1010)送往送往F2F2站号字站号字段,同时置段,同时置F2F2忙位为忙位为1 1。当当F2F2忙位为忙位为1 1时,时,FLOSFLOS送出乘法指令,此时送出乘法指令,此时F2F2忙,发生相关。忙,发生相关。此时不能直接将此时不能直接将F2F2的内容送往的内容
38、送往M1M1,而是改为将存放在,而是改为将存放在F2F2中的站号中的站号(A1,1010)(A1,1010)送往送往M1M1内源内源1 1的站号字段。同时将的站号字段。同时将F2F2中的站号字段由中的站号字段由A1(1010)A1(1010)改为改为M1(1000)M1(1000)以指明以指明F2F2改为由改为由M1M1接受结果。接受结果。当加法器对当加法器对A1A1站的数据进行相加后,经站的数据进行相加后,经CDBCDB送出结果时,就不是送到送出结果时,就不是送到F2F2而是送往而是送往M1M1的源的源1 1。相当于接通相关直接通路。相当于接通相关直接通路。乘法器只有当乘法器只有当M1M1的
39、源的源1 1和源和源2 2都有数据后才会工作,相当于都有数据后才会工作,相当于“推后乘推后乘”。在加法器和乘、除法器输入端设置多个保存站的主要目的是使这些运算部件可以在某个在加法器和乘、除法器输入端设置多个保存站的主要目的是使这些运算部件可以在某个操作命令或因相关需要推后执行,或因执行时间过长而尚未完成时,仍能继续从操作命令或因相关需要推后执行,或因执行时间过长而尚未完成时,仍能继续从FLOSFLOS接接受操作命令,因此是异步流动方式。受操作命令,因此是异步流动方式。33第33页,共50页,编辑于2022年,星期一2.2.全局性相关的处理全局性相关的处理全局性相关的处理全局性相关的处理(1)(
40、1)猜测法:猜测法:猜测法:猜测法:猜选概率大的分支继续向前流动猜选概率大的分支继续向前流动(如何知道哪个概率大,采用预测如何知道哪个概率大,采用预测)。概率预测:概率预测:概率预测:概率预测:转移概率静态预测:转移概率静态预测:转移概率静态预测:转移概率静态预测:根据指令类型,转移历史状态。根据指令类型,转移历史状态。转移概率动态预测:转移概率动态预测:转移概率动态预测:转移概率动态预测:由编译程序依执行过程记录。由编译程序依执行过程记录。猜错点恢复:猜错点恢复:猜错点恢复:猜错点恢复:只译码,准备,不运算。只译码,准备,不运算。译码,运算,不回送结果。译码,运算,不回送结果。采用后援寄存器
41、法采用后援寄存器法(大量保存猜错点原始状态大量保存猜错点原始状态)。另设转移目标指令缓冲器,加快另一分支的流动另设转移目标指令缓冲器,加快另一分支的流动(若需要的话若需要的话)。图 5.26 用猜测法处理条件转移 5.2.3 5.2.3 流水机器的相关处理和控制机构流水机器的相关处理和控制机构流水机器的相关处理和控制机构流水机器的相关处理和控制机构(4)(4)34第34页,共50页,编辑于2022年,星期一(2)(2)加快和提前形成条件码:加快和提前形成条件码:加快和提前形成条件码:加快和提前形成条件码:尽快、尽早形成条件码,提前知道转尽快、尽早形成条件码,提前知道转向分支。向分支。措施:措施
42、:加快单条件指令内部条件码加快单条件指令内部条件码(标志位标志位)的形成。的形成。提前形成条件码提前形成条件码(适合循环程序,如将循环次数修改语句提前适合循环程序,如将循环次数修改语句提前)。(3)(3)延迟转移:延迟转移:延迟转移:延迟转移:软件静态指令调度技术,编译时将转移指令与前面的几条软件静态指令调度技术,编译时将转移指令与前面的几条指令交换位置,因此,成功转移总是要延迟到这几条指令之后再进行指令交换位置,因此,成功转移总是要延迟到这几条指令之后再进行(条件条件不成功则继续,条件成功才转移不成功则继续,条件成功才转移)。(4)(4)加快短循环程序的处理:加快短循环程序的处理:加快短循环
43、程序的处理:加快短循环程序的处理:短循环程序一次性放入指令缓冲区短循环程序一次性放入指令缓冲区(暂暂停预取指令,防止替换指令缓冲区指令停预取指令,防止替换指令缓冲区指令)。3.3.3.3.流水机器的中断处理流水机器的中断处理流水机器的中断处理流水机器的中断处理 主要是保护现场和恢复现场,不是处理断流时间主要是保护现场和恢复现场,不是处理断流时间(中断会引起流中断会引起流水线断流,但不是主要问题水线断流,但不是主要问题)。5.2.3 5.2.3 流水机器的相关处理和控制机构流水机器的相关处理和控制机构流水机器的相关处理和控制机构流水机器的相关处理和控制机构(5)(5)35第35页,共50页,编辑
44、于2022年,星期一5.2.3 5.2.3 流水机器的相关处理和控制机构流水机器的相关处理和控制机构流水机器的相关处理和控制机构流水机器的相关处理和控制机构(6)(6)4.4.流水线调度流水线调度流水线调度流水线调度 线性流水线不会产生冲突。由于线性流水线在执行每个任务的过程中,各段只通过一次,线性流水线不会产生冲突。由于线性流水线在执行每个任务的过程中,各段只通过一次,所以,每拍都可以将一个新的任务送入流水线,这些任务不会争用同一个流水段。所以,每拍都可以将一个新的任务送入流水线,这些任务不会争用同一个流水段。非线性流水线会产生冲突。非线性流水线段间设有反馈回路,一个任务在流非线性流水线会产
45、生冲突。非线性流水线段间设有反馈回路,一个任务在流水的全过程中,可能会多次通过同一段或越过某些段,当每个任务争用同一功能水的全过程中,可能会多次通过同一段或越过某些段,当每个任务争用同一功能段时,就产生了使用冲突。段时,就产生了使用冲突。若不想发生冲突,就必须间隔适当的拍数之后再向流水线送入下一个任务。若不想发生冲突,就必须间隔适当的拍数之后再向流水线送入下一个任务。究竟间隔几拍送入下一个任务,才能不发生使用冲突,又使流水线有较高的吞吐率和效究竟间隔几拍送入下一个任务,才能不发生使用冲突,又使流水线有较高的吞吐率和效率,是流水线调度要解决的问题。率,是流水线调度要解决的问题。流水线调度目的:流
46、水线调度目的:流水线调度目的:流水线调度目的:预测冲突。预测冲突。为了对流水线的任务进行优化调度和控制,提出使用二维预约表方案。为了对流水线的任务进行优化调度和控制,提出使用二维预约表方案。预约表:预约表:预约表:预约表:任务使用流水线各段的时间表。任务使用流水线各段的时间表。36第36页,共50页,编辑于2022年,星期一5.2.3 5.2.3 流水机器的相关处理和控制机构流水机器的相关处理和控制机构流水机器的相关处理和控制机构流水机器的相关处理和控制机构(7)(7)例:单功能非线性流水线的调度。例:单功能非线性流水线的调度。例:单功能非线性流水线的调度。例:单功能非线性流水线的调度。某任务
47、预约表如图:某任务预约表如图:问题:问题:问题:问题:将一个任务送入流水线后,什么时候可以送另一个任务,而不产生功能段使用冲突?将一个任务送入流水线后,什么时候可以送另一个任务,而不产生功能段使用冲突?问题试验:问题试验:问题试验:问题试验:将预约表作成一个模板,把它覆盖在另一个相同的预约表上,用移动模板表示启将预约表作成一个模板,把它覆盖在另一个相同的预约表上,用移动模板表示启动一个操作动一个操作(新任务新任务)。若模板相对移动一个拍号,则出现红色位置图,两个重叠图共同表示两个任务的全部动作,只是相互延若模板相对移动一个拍号,则出现红色位置图,两个重叠图共同表示两个任务的全部动作,只是相互延
48、迟了一拍,有标记的地方表示相应功能段迟了一拍,有标记的地方表示相应功能段“忙忙”,已被预约。若同时含有,已被预约。若同时含有 ,表示两个任务同时需表示两个任务同时需要一个功能段,即产生冲突。要一个功能段,即产生冲突。由预约表可得到使用各段所需的由预约表可得到使用各段所需的间隔间隔间隔间隔拍数,如拍数,如1 1段间隔段间隔8 8拍,拍,2 2段间隔段间隔1,5,61,5,6三种,即两个任务间隔三种,即两个任务间隔8 8拍拍进入流水线就会争用进入流水线就会争用1 1段,间隔段,间隔1,5,61,5,6拍会争用拍会争用2 2段。段。延迟禁止表延迟禁止表延迟禁止表延迟禁止表F F:引起各段争用引起各段
49、争用(冲突冲突)的间隔拍数的集合。的间隔拍数的集合。37第37页,共50页,编辑于2022年,星期一5.2.3 5.2.3 流水机器的相关处理流水机器的相关处理流水机器的相关处理流水机器的相关处理和控制机构和控制机构和控制机构和控制机构(8)(8)1 1段间隔拍数:段间隔拍数:8 82 2段间隔拍数:段间隔拍数:1,5,61,5,63 3段间隔拍数:无段间隔拍数:无4 4段间隔拍数:段间隔拍数:1 15 5段间隔拍数:段间隔拍数:1 1以上间隔拍数的集合,即为以上间隔拍数的集合,即为延迟禁止表延迟禁止表延迟禁止表延迟禁止表F=1,5,6,8F=1,5,6,8,即若不想发生冲突,两个任务送入流水
50、线的间隔拍数不,即若不想发生冲突,两个任务送入流水线的间隔拍数不属于属于F F,F F的拍数禁止使用。这一冲突信息也可用一个二进制向量来表示,称为的拍数禁止使用。这一冲突信息也可用一个二进制向量来表示,称为冲突向量冲突向量冲突向量冲突向量C:C:C=C C=CN-1N-1CCi iCC2 2C C1 1C Ci i表明一个任务启动后,间隔表明一个任务启动后,间隔i i拍能否发送另一个新任务,即是否产生功能段使用冲突,拍能否发送另一个新任务,即是否产生功能段使用冲突,C Ci i=1=1发生冲突,发生冲突,发生冲突,发生冲突,C Ci i=0=0不发生冲突不发生冲突不发生冲突不发生冲突。C C的