万博体育官网登录图中的三条曲线最终都要收拢到同一个点上

当前位置:万博体育手机版 > 万博体育官网登录 > 万博体育官网登录图中的三条曲线最终都要收拢到同一个点上
作者: 万博体育手机版|来源: http://www.jcsjdb.com|栏目:万博体育官网登录

文章关键词:万博体育手机版,标量流水线

  1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

  5.3.7 精确断点与不精确断点 对于输入输出设备的中断服务,实际上不需要有精确断点。 比较简单的处理方法是:让已经进入流水线的所有指令都执行完成,断点就是最后进入流水线的那条指令的地址。 对于程序性错误和机器故障等引起的中断,它们出现的概率很低,处理原则:不在于缩短时间,关键是要正确保存现场和正确恢复断点。 不精确断点(Imprecise),流水线可以不断流 需要的硬件比较少,控制逻辑比较简单 中断响应时间加长 采用不精确断点法可能会发生如下两个问题: (1)程序的调试困难 调试程序时要设置断点,程序员通过查看断点处的中间执行结果判断程序是否正确。但由于不精确断点,程序不能准确中断,因此,难于调试。 早期的流水线处理机,多采用不精确断点法 近期的流水线处理机一般都采用精确断点法 (2)程序执行的结果可能出错,例如: i:FADD R1, R2 ;(R1)+(R2)→R1 i+1:FMUL R3, R1 ;(R3)×(R1)→R3 当第i条指令执行到S6段时发现浮点加法结果溢出,于是发出中断服务申请。由于采用不精确断点法,已经进入流水线条指令将执行完成;因为第i+1条指令使用了不正确的R1,所以浮点乘法的执行结果是不正确的。 采用精确断(Precise)点法,要设置一定数量的后援寄存器,把整个流水线中所有指令的执行结果和现场都保存下来。 5.4 动态调度技术 5.4.1 顺序流动与乱序流动 5.4.2 乱序流动中的数据相关 5.4.3 数据重定向方法 5.4.4 Tomasulo动态调度算法 实现方法: 由硬件动态调整指令执行顺序,以减少数据相关造成的影响。 主要优点: 能够处理在编译时无法确定的相关,并简化编译器设计 在其他流水线机器上编译的目标代码也能够高效运行 用静态调度法生成的代码也能在动态调度法的机器中运行 主要缺点:指令级并行度低,因为只能在比较小的范围内寻找并行性 5.4.1 顺序流动与乱序流动 1.顺序流动方式:任务按顺序流入流水线,也按顺序流出流水线 把如下一段程序输入到这条流水线)+(R3) k+3: …… k+4: …… k+5: …… 指令k+2无法继续执行,要在功能段S2中等待。 后续的指令k+4、k+5、……等也不能进入流水线将逐渐空闲。 缺点:吞吐率和效率降低 优点:流水线的控制逻辑比较简单 流水线“断流”,有些功能段“空闲” 2.乱序(Out of order)流动方式:指令流出流水线的顺序与流入流水线的顺序不同。又称为错序流动方式、无序流动方式、异步流动方式等。 5.4.2 乱序流动中的数据相关 在乱序流动方式中,万博体育官网登录可能发生三种数据相关 写写相关 k: LOAD F1, A ;F1?(A) 写读相关 k+1:FADD F2, F1 ;F2?(F2)+(F1) k+2:FMUL F1, F3 ;F1?(F1)?(F3) k+3:STORE F1, B ;B?(F1)读写相关 (1)写读相关:指令k与指令k+1之间关于F1的相关,又称为数据相关、先写后读相关、流相关、WR相关、RAW相关等。 (2)读写相关:指令k+1与指令k+2之间关于F1的相关,变量名相关、先读后写相关、反相关、RW相关、WAR相关等。 (3)写写相关:指令k与指令k+2左边的F1之间的相关关系称为:输出相关、写写相关、WW相关、WAW相关或写后再写相关等。 有时把相关称为“冒险”(hazard)、“竟争” (competition)等。 在程序执行过程中,只有避免相关,执行结果才是正确的。 三种数据相关可以用下列关系式来表示: 对于写读相关 D(i) ∩ S(j) ≠ ? 对于读写相关 S(i) ∩ D(j) ≠ ? 对于写写相关 D(i) ∩ D(j) ≠ ? 5.4.3 数据重定向方法 1.三种数据相关的重定向 重定向之前,j只能在i之后执行。 重定向之后,可以做到: (1)写读相关,j与i可以同时执行 即专用数据通路 (2)写写相关,先后顺序无关 (3)读写相关,先后顺序无关 后两种情况又称为“变量换名技术” 2.变量换名技术 用来自动消除读写数据相关和写写数据相关 规则:一个变量只允许定值一次 在三种数据相关中,实际上只有写读数据相关必须依靠硬件、或采用软硬件结合的方法来解决 解决方法:推后处理或专用数据通路 在上面的数据重定向图中,把B换成了B’,并在以后的都引用B’读写数据相关和写写数据相关就不存在了。 一个实际例子: 3.一个简单的程序: k: LOAD F1, A k+1: FADD F1, F2 k+2: FMUL F1, F3 k+3: STORE F1, B 专门设置:A→FADD、FMUL→B、FADD→FMUL三条专用路径。 撤消:F1→FADD、F1→FMUL、FADD→F1 、A→F1的路径。 5.4.4 Tomasulo动态调度算法P310 实用的动态调度算法主要有两种: (1)集中控制:CDC计分牌(scorebord)算法, 最先在CDC 6600大型机中采用。 (2)分散控制:Tomasulo算法, 公共数据总线法,令牌法等。最早在大型机IBM 360/91的浮点处理部件中被采用。 以上面的一段程序为例说明Tomasulo算法 k: LOAD F1, A k+1: FADD F1, F2 k+2: FMUL F1, F3 k+3: STORE F1, B 5.5 超标量处理机 5.5.1 基本结构 5.5.2 单发射与多发射 5.5.3 多流水线 超标量处理机性能 三种主流处理机: 超标量处理机 超流水线处理机 超标量超流水线 基本结构 普通标量流水线处理机: 一条指令流水线,一个多功能操作部件, 每个时钟周期平均执行指令的条数小于1。 多操作部件标量处理机: 一条指令流水线,多个独立的操作部件, 指令级并行度小于1。 超标量处理机典型结构: 多条并行工作的指令流水线,多个独立的操作部件, 指令级并行度(ILP)大于1。 Motorola公司的MC88110 有10个操作部件 两个寄存器堆: 整数部件通用寄存器堆,32个32位寄存器 浮点部件扩展寄存器堆,32个80位寄存器 缓冲深度为4的先行读数栈 缓冲深度为3的后行写数栈 两个独立的高速Cache中,各为8KB,采用两路组相联方式 转移目标指令Cache,用于存放另一条分支上的指令 5.5.2 单发射与多发射 1.单发射处理机: 每个周期只取一条指令、只译码一条指令,只执行一条指令,只写回一个运算结果。 取指令部件和指令译码部件各设置一套; 只设置一个多功能操作部件或设置多个独立的操作部件; 操作部件中可以采用流水线结构,也可以不采用流水线结构。 目标是每个时钟周期平均执行一条指令,ILP的期望值为1。 2.多发射处理机: 每个周期同时取多条指令、同时译码多条指令,同时执行多条指令,同时写回多个运算结果。 多个取指令部件,多个指令译码部件和多个写结果部件。 设置多个指令执行部件,有些指令执行部件采用流水线结构。 目标是每个时钟周期平均执行多条指令,ILP的期望值大于1。 3.超标量处理机: 有两条或两条以上能同时工作的指令流水线 先行指令窗口:能够从指令Cache中预取多条指令,能够对窗口内的指令进行数据相关性分析和功能部件冲突检测。 例如:Intel公司的i860、i960、Pentium,Motolora公司的MC88110,IBM公司的Power 6000,TI公司生产SuperSPARC等 操作部件的个数一般多于每个周期发射的指令条数。通常为4 个至16个操作部件。 超标量处理机的指令级并行度:1<ILP<m 5.5.3 多流水线调度 顺序发射(in-order issue)与乱序发射(out-order issue):指令发射顺序是按照程序中指令排列顺序进行的称为顺序发射 顺序完成(in-order completion)与乱序完成(out-order completion):指令完成顺序是按照程序中指令排列顺序进行的称为顺序完成 多流水线的调度主要有三种方法: 顺序发射顺序完成 顺序发射乱序完成 乱序发射乱序完成 以如下6条指令组成的程序为例,说明这三种调度方法 I1:LOAD R1, A ;R1←(A) I2:FADD R2, R1 ;R2←(R2)+(R1) I3:FMUL R3, R4 ;R3←(R3)×(R4) I4:FADD R4, R5 ;R4←(R4)+(R5) I5:DEC R6 ;R6←(R6)-1 I6:FMUL R6, R7 ;R6←(R6)+(R7) 6条指令中有4个数据相关,包括2个写读相关,1个读写相关和1个写写相关。万博体育官网登录 1.顺序发射顺序完成 共用10个时钟周期完成 还有8个空闲的时钟周期 2.顺序发射乱序完成 总的执行时间为9个时钟周期, 节省了一个时钟周期。少了5个空闲时钟周期。 3. 乱序发射乱序完成 没有空闲周期,功能部件得到充分利用。 总的执行时间为8个周期,节省2个周期。 5.5.4 资源冲突 如果操作部件采用流水线结构,发生资源冲突的可能性很小; 如果不采用流水线结构,发生资源冲突的可能性就比较大。 下面是一个由4条指令的程序例子: I1:FADD R0, R1 ;R0←(R0)+(R1) I2:FMUL R2, R3 ;R2←(R2)×(R3) I3:FADD R4, R5 ;R4←(R4)+(R5) I4:FMUL R6, R7 ;R6←(R6)+(R7) 操作部件采用流水线个周期。 操作部件采用流水线结构的原因分析 假每个周期发射m条指令,操作部件的延迟时间为k个周期, 如果操作部件不采用流水线结构,则使用同一个操作部件的两条指令应该至少相差m×k 如果操作部件采用k段流水线结构,则使用同一个操作部件的两条指令只需相差m或m以上 指令流水线之间,每个时钟周期发射的指令条数m在2至4之间。取中间值,k=7,m=3 为了不发生资源冲突,如果操作部件不采用流水线结构, 两条使用同一个功能部件的指令序号必须相差21或21以上。 如果操作部件采用流水线结构, 两条使用同一个功能部件的指令序号只需要相差3或3以上。 因此,在超标量处理机中,操作部件一般要采用流水线结构。 如果由于某种原因,操作部件不能采用流水线结构,则必须设置多个相同种类的操作部件 普通标量处理机,希望相同操作连续出现。 只有连续出现相同操作的指令序列时,流水线的效率才能得到充分发挥。 超标量处理机则正好相反,希望相同操作不要连续出现。 相同操作的指令序列连续出现时,会发生资源冲突; 要求相同操作的指令能够相对均匀地分布在程序中。 超标量处理机的这种要求正好符合一般标量程序的特点。 5.5.5 超标量处理机性能 单流水线普通标量处理机的指令级并行度记作(1, 1), 超标量处理机的指令级并行度记作(m, 1), 超流水线处理机的指令级并行度记作(1, n), 而超标量超流水线处理机的指令级并行度记作(m, n)。 在理想情况下,N条指令在单流水线标量处理机上的执行时间为: T(1, 1)=(k+N-1)?t 在每个周期发射m条指令的超标量处理机上执行的时间为: 超标量处理机相对于单流水线标量处理机的加速比为: 超标量处理机的加速比的最大值为:S(m,1)MAX=m 5.6 超流水线.6.3 超流水线处理机性能 超流水线处理机的两种定义: 在一个周期内分时发射多条指令的处理机 指令流水线的流水线处理机 提高处理机性能的两种方法: 通过增加硬件资源来提高处理机性能 通过各部分硬件的重叠工作来提高处理机性能 两种不同并行性: 超标量处理机采用的是空间并行性。 超流水线处理机采用的是时间并行性。 5.6.1 指令执行时序 每隔1/n个时钟周期发射一条指令, 即处理机的流水线 典型处理机结构 MIPS R4000处理机: 每个时钟周期包含两个流水段 是一种很标准的超流水线处理机结构。 指令流水线个流水段。 指令Cache和数据Cache的容量各8KB, 每个时钟周期可以访问Cache两次, 在一个时钟周期内可以从指令Cache中读出两条指令,从数据Cache中读出或写入两个数据。 主要运算部件有整数部件和浮点部件。 如果在LOAD指令之后的两条指令中,任何一条指令要在它的EX流水级使用这个数据,则指令流水线要暂停一个时钟周期。 5.6.3 超流水线处理机性能 指令级并行度为(1,n)的超流水线处理机,执行N条指令所的时间为: 超流水线处理机相对于单流水线普通标量处理机的加速比为: 加速比的最大值为:S(1, n)MAX=n 5.7 超标量超流水线处理机 一个时钟周期发射m次,每次发射n条指令 5.7.1 指令执行时序 5.7.2 典型处理机结构 5.7.3 超标量超流水线 三种处理机的性能比较 5.7.1 指令执行时序 5.7.2 典型处理机结构 DEC公司的Alpha处理机为典型的超标量超流水线结构。 主要由四个功能部件和两个Cache组成:整数部件EBOX 浮点部件FBOX 地址部件ABOX 中央控制部件IBOX 指令Cache和数据Cache 在EBOX内还有多条专用数据通路,可以把运算结果直接送到执行部件。 中央控制部件IBOX能够同时完成: 同时读出两条指令; 同时对两条指令进行译码,并作相关性检测; 如果资源和相关性允许,IBOX就把两条指令同时发射给EBOX、ABOX和FBOX三个执行部件中的两个。 指令流水线的控制方式: 采用顺序发射乱序完成。 在指令Cache中有一个转移历史表,实现条件转移的动态预测。 Alpha 21064处理机共有三条指令流水线)整数操作流水线个流水段,其中,取指令2个流水段、分析指令2个流水段、运算2个流水段、写结果1个流水段。 (2)访问存储器流水线)浮点操作流水线个流水段,其中,浮点执行部件FBOX的延迟时间为6个流水段。 三条指令流水线,且每个时钟周期发射两条指令。因此,Alpha 21064处理机为超标量超流水线 超标量超流水线处理机的性能 指令级并行度为(m,n)的超标量超流水线处理机,连续执行N条指令所需要的时间为: 超标量超流水线处理机相对于单流水线标量处理机的加速比为: 在理想情况下,超标量超流水线处理机加速比的最大值为: S(m,n)MAX=m n 5.7.4 三种标量处理机的性能比较 从三种标量处理机的性能曲线中,可以得出如下结论: 1.三种处理机的性能关系 超标量处理机的相对性能最高,其次是超标量超流水线处理机,超流水线处理机的相对性能最低,主要原因如下: (1)超标量处理机功能部件的冲突比超流水线处理机小。在指令执行过程中的许多功能段,超标量处理机都重复设置有多个相同的指令执行部件,而超流水线处理机只是把同一个指令执行部件分解为多个流水级。 (2)条件转移等操作造成的损失,超流水线处理机要比超标量处理机大。 由于超流水线处理机采用深度流水线结构,对条件转移等操作比超标量处理机敏感。 (3)超流水线处理机的启动延迟通常要比超标量处理机大。 超标量处理机在每个时钟周期的一开始就同时发射多条指令, 超流水线处理机把一个时钟周期平均分成多个流水线周期,每个流水线周期只发射一条指令。 2.实际指令级并行度与理论指令级并行度的关系 当横坐标给出的理论指令级并行度比较低时,处理机的实际指令级并行度的提高比较快。 当理论指令级并行度进一步增加时,处理机实际指令级并行度提高的速度越来越慢。 在实际设计超标量、超流水线、超标量超流水线处理机的指令级并行度时要适当,否则,有可能造成花费了大量的硬件,但实际上处理机所能达到的指令级并行度并不高。 目前,一般认为,m 和 n 都不要超过 4。 3.最大指令级并行度 一个特定程序由于受到本身的数据相关和控制相关的限制,它的指令级并行度的最大值是有限的,是有个确定的值。 最大指令级并行度由程序自身的语义决定,与这个程序运行在那一种处理机上及采用何种方法开发并行性无关。 对于某一个特定的程序,图中的三条曲线最终都要收拢到同一个点上。 对于各个不同程序,这个收拢点的位置也是不同的。 操作部件不采用流水线个空闲周期。 * * Loop: LD F0, 0(R1) ADD F0, F2 SD 0(R1), F0 LD F0, -8(R1) ADD F0, F2 SD -8(R1), F0 LD F0, -16(R1) ADD F0, F2 SD -16(R1), F0 LD F0, -24(R1) ADD F0, F2 SD -24(R1), F0 SUBI R1, R1, #32 BNEZ R1, Loop Loop: LD F0, 0(R1) LD F4, -8(R1) LD F6, -16(R1) LD F8, -24(R1) ADD F0,F2 ADD F4,F2 ADD F6,F2 ADD F8,F2 SD 0(R1), F0 SD -8(R1), F4 SUBI R1, R1, #32 SD -16(R1), F6 BNEZ R1, Loop SD -24(R1), F8 *

  ·基于25%小偏置正面碰撞的某乘用车前端结构改进设计-中国机械工程.PDF

  ·基于AlN基板的不同Al组分的AlGaN材料生长-西安电子科技大学.PDF

  ·基于AHPr信息量法的武汉地区岩溶地面塌陷危险性-长江科学院院报.PDF

  ·基于Dijkstra的PKI交叉认证路径搜索算法-计算机工程.PDF

  GB∕T 4094.2-2017 电动汽车 操纵件、指示器及信号装置的标志(高清版).pdf

网友评论

我的2016年度评论盘点
还没有评论,快来抢沙发吧!