1672流水方式内容摘要:

著下降。  全局相关 :转移相关  局部相关 流水机器的相关处理和控制机构  局部性相关的处理  全局性相关的处理 转移相关  流水机器的中断处理  流水线调度 非线性流水线 局部相关与全局相关  如果程序内有一个两路的条件分支操作指令,它把程序分为三个部分 B0、 B1和 B2,在每一个部分内部不再有分支操作指令  在同一个基本块内部的相关成为局部相关(Local Correlation)  对程序执行的过程的影响相对较小,仅影响到相关指令前后的一条或几条指令的执行  在基本块之间相关成为全局相关( Global Correlation)  影响到整个程序的执行方向 B0 B2 B1 局部性相关的处理  局部性相关:指令相关、访存操作数相关、通用寄存器组相关  原因:在机器同时解释多条指令之间出现了对同一主存单元或寄存器要求 “ 先写后读 ” 而产生的。  解决:  推后后续指令对相关单元的读,直至在先的指令写入完成  设置相关直接通路,将运算结果经相关直接通路直接送入所需部件 局部性相关的处理(续)  任务在流水线中流动顺序的安排和控制  顺序流动方式 (同步流动方式):任务流出流水线的顺序保持与流入流水线的顺序一致  控制简单,但相关后吞吐率和效率下降  异步流动方式 举例:流动顺序的控制  8段流水线,第 2段为读段,第 7段为写段  一串指令流入: h,i,j,k,l,m,n  当指令 j的源操作数地址与指令 h的目的操作数相同时,发生 先写后读 的操作数相关  顺序流动时: j读段是停下来等待,直到 h到达写段并完成后,才流动。 推后读。  优点:控制比较简单  相关后流水线的吞吐率和效率下降 入 指令地址: 顺序流动和异步流动 指令 j的源操作数地址与指令 h的目的操作数地址相同时 , h和 j就发生先写后读的操作数相关。 读 段 写 段 相关直接通路 1 2 3 4 5 6 7 8 n k k j j j m 空 i l 空 h k 空 i i h h 可以不顺序流动的 顺序流动的(推后) 判出 j、 h相关 出 读段写段相关直接通路空 空 空出举例:流动顺序的控制(续)  异步流动:如果让 j之后的指令,如k,l,m,n,只要与 j没有相关,就越过 j继续向前流动。  会发生其他相关  写 写相关 :对同一单元,要求在先的指令先写入,在后的指令后写入的关联。  先读后写相关 :对同一单元,要求在先的指令先读出,在后的指令再写入的关联。 数据相关 S( j )D ( i ) D ( j )D ( i ) S(i) D(j) S(j) D(i) “先写后读”相关 S(i) D(i) S(j) D(j) “写 写”相关 D(i) S(i) D(j) S(j) “先读后写”相关 D ( j )S( i ) 单条流水线的“先写后读”相关的数据重定向 B A C B A C t t+Δt t t+Δt 单条流水线的“写 写”相关的数据重定向 B A C B A C t t+Δt t+Δt 全局性相关的处理  指的是已进入流水线的转移指令(尤其是条件转移指令)和其后续指令之间的相关。 全局性相关的处理 转移相关  猜测法  加快和提前形成条件码  加快单条指令内部的条件码的形成  在一段程序内提前形成条件码 ( 适合循环 )  采用延迟转移 采用软件进行静态指令调度  加快短循环程序的处理 猜测法 i3 i2 i1 i i+1 i+2 i+3 i+4 p p+1 p+2 p+3 猜测路径(转移不成功路径) 转移成功路径 转移不成功分支 转移 指令 具体分析条件转移指令对流水线性能的影响  对一条有 k个功能段的流水线,由于条件转移指令的影响,在最坏情况下,每一次条件转移将造成 k1个时钟周期的 “ 断流 ”  假设条件转移指令在一般程序中所占的比例为 p,转移成功的概率为 q,因此,对于一个由 n条指令组成的程序,在执行这个程序指令的过程中,由于条件转移需要额外增加的时钟周期数: pqn(k1)Δt, 包括条件转移指令在内的 n条指令的总的执行时间为 tknpqtkn DD )1()1(T IFk 有条件转移影响的流水线的吞吐率:  当 n∞时, 有条件转移影响的流水线的吞吐率:  由于条件转移指令的影响,流水线吞吐率下降的百分比为: tknpqtknnDD )1()1(TP IFtkpq D ))1(1(1TPIFM A X)1(1)1(D kpqkpqTPTPTPM A XIFM A XM A X 在典型的标量类机器指令程序中,条件转移指令占 20%,其中转移成功的概率有约占其中的 60%。 对于一条有 8个功能段的指令流水线,流水线的最大吞吐率要下降:  如果段数为 10,则下降: %46)18(** )18(** 8  %52)110(** )110(** 10  采取的措施  延迟转移技术和指令取消技术  SUN: SPARC, HP: HPRISC, SGI: MIPS  静态转移预测技术  TI:SuperSPARC  动态转移预测技术 流水机器的中断处理  中断的出现概率比条件转移的概率要低。  处理中断的主要问题:断点现场的保护和恢复,而不是缩短流水线的断流时间。  不精确断点 :无论指令 I在流水线的哪一段发生中断,都不再允许尚未进入流水线的后续指令再进入,但已在流水线的所有指令仍继续流动到执行完毕,然后才转入中断处理程序。  IBM 360/91  不利于编程和程序的排错  精确断点 :无论指令 I是在流水线中的哪一段响应中断,给中断现场全都是对应 I的, I之后流入流水线内的指令的原有现场都能保存和恢复。  需设置很多后援寄存器  控制逻辑比较复杂 S1 S2 S3 S4 S5 S6 S7 S8 不精确断点 精确断点 流水线处理机的中断处理 相关问题  相关( correlation):指在一段程序的相近指令之间有某种关系,这种关系可能影响指令的重叠执行。  数据相关:局部相关  控制相关:全局相关 数据相关  在执行本条指令的过程中,如果用到的指令、操作数、变址偏移量等正好是前面指令的执行结果,则必须等待前面的指令执行完成,并把结果写到主存或通用寄存器中之后,本条指令才能执行。  指令相关  主存操作数相关  通用寄存器相关  变址相关 控制相关  指由条件分支指令、转子程序指令、终断等引起的相关。 指令相关  第 k+1条指令本身的内容取决于第 k条指令的执行结果。  解决 :程序中不允许修改指令。 主存操作数相关  当指令的执行结果写到主存储器,所读取的操作数也取自主存储器时。  解决 :推后处理法 通用寄存器相关  在寄存器 寄存器型和寄存器 存储器型指令的执行过程中有可能发生通用寄存器数据相关。  解决  在通用寄存器和运算器之间建立直接数据通路  推后处理  设置专用数据通路 变址相关  变址寄存器发生相关。  解决  推后分析  设置专用通路 总结:数据相关的解决方法  采用硬件或软件的办法尽量避免数据相关发生  是在确保指令正确执行的前提下,推后指令分析  设置专用通路 转移相关  无条件转移  一般条件转移  复合条件转移 无条件转移相关  一般能够在指令分析器中就执行完成。  对程序执行速度的影响很小。 分析 k 执行 k 分析 k+1 取指令 L 分析 L 执行 L 分析 L 执行 L 分析 L+1 执行 L+1 指令 L不在先行指令缓冲栈中: 指令 L在先行指令缓冲栈中: 一般条件转移  对程序执行速度造成的影响很大。 缓冲深度越深,影响越大。 分析 k 执行 k 分析 k+1 分析 k+2 执行 k+2 分析 k+1 分析 L 执行 L 分析 k+1 取指令 L 分析 L 执行 L 转移不成功 成功, L在指缓栈中 成功, L不在指缓栈中 产生转移条件 CC 根据转移条件 CC判断转移是否成功 复合条件转移  本身是一条运算指令,根据结果决定后转移。  影响比一般条件转移指令要大。 分析 K 执行 k 分析 K+1 执行 k+1 分析 L 执行 L 取指令 L 分析 L 执行 L 转移不成功。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。