精确断点与不精确断点精品课件.ppt
《精确断点与不精确断点精品课件.ppt》由会员分享,可在线阅读,更多相关《精确断点与不精确断点精品课件.ppt(65页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、5.3.7 5.3.7 精确断点与不精确断点精确断点与不精确断点对于输入输出设备的中断服务,实际上不需要有精确对于输入输出设备的中断服务,实际上不需要有精确断点。断点。比较简单的处理方法是:让已经进入流水线的所有指令都执行完成,断点就是最后进入流水线的那条指令的地址。对于程序性错误和机器故障等引起的中断,它们出现对于程序性错误和机器故障等引起的中断,它们出现的概率很低,处理原则:的概率很低,处理原则:不在于缩短时间,关键是不在于缩短时间,关键是要正确保存现场和正确恢复断点。要正确保存现场和正确恢复断点。不精确断点不精确断点(Imprecise),流水线可以不断流流水线可以不断流需要的硬件比较少
2、,控制逻辑比较简单需要的硬件比较少,控制逻辑比较简单中断响应时间加长中断响应时间加长 采用不精确断点法可能会发生如下两个问题:采用不精确断点法可能会发生如下两个问题:(1)(1)程序的调试困难程序的调试困难调试程序时要设置断点,程序员通过查看断点处的中间执行结果判断程序是否正确。但由于不精确断点,程序不能准确中断,因此,难于调试。早期的流水线处理机,多采用不精确断点法近期的流水线处理机一般都采用精确断点法 申申请请中中断断 输输入入 S1 S2 S3 S4 S5 S6 S7 S8 输输出出 PC: i+5 i+4 i+3 i+2 i+1 i i-1 i-2 不不精精确确断断点点 精精确确断断点
3、点 (2)(2)程序执行的结果可能出错,例如:程序执行的结果可能出错,例如: i i:FADD R1, R2 FADD R1, R2 ;(R1)(R1)(R2)R1(R2)R1 i+1 i+1:FMUL R3, R1 FMUL R3, R1 ;(R3)(R3)(R1)R3(R1)R3当第i条指令执行到S6段时发现浮点加法结果溢出,于是发出中断服务申请。由于采用不精确断点法,已经进入流水线的第i+1条指令将执行完成;因为第i+1条指令使用了不正确的R1,所以浮点乘法的执行结果是不正确的。采用精确断采用精确断(Precise)(Precise)点法,要设置一定数量的后援点法,要设置一定数量的后援寄
4、存器寄存器,把整个流水线中所有指令的执行结果和现场都保存下来。5.4 5.4 动态调度技术动态调度技术5.4.1 顺序流动与乱序流动顺序流动与乱序流动5.4.2 乱序流动中的数据相关乱序流动中的数据相关5.4.3 数据重定向方法数据重定向方法5.4.4 Tomasulo动态调度算法动态调度算法实现方法:实现方法: 由硬件动态调整指令执行顺序,以减少数据相关造由硬件动态调整指令执行顺序,以减少数据相关造成的影响。成的影响。主要优点:主要优点:能够处理在编译时无法确定的相关,并简化编译器设计在其他流水线机器上编译的目标代码也能够高效运行用静态调度法生成的代码也能在动态调度法的机器中运行主要缺点:主
5、要缺点:指令级并行度低,因为只能在比较小的范围内寻找并行性5.4.1 5.4.1 顺序流动与乱序流动顺序流动与乱序流动1.1.顺序流动方式:顺序流动方式:任务按顺序流入流水线任务按顺序流入流水线, ,也按顺序也按顺序流出流水线流出流水线把如下一段程序输入到这条流水线中: k: R0(R1) k+1: k+2: R2(R0)(R3) k+3: k+4: k+5: 读读 专专用用数数据据通通路路 写写 输输入入 S1 S2 S3 S4 S5 S6 输输出出 寄寄存存器器R0 指令指令k+2k+2无法继续执行,要在功能段无法继续执行,要在功能段S2中等待。中等待。后续的指令后续的指令k+4k+4、k
6、+5k+5、等也不能进入流水线。等也不能进入流水线。功能段功能段S3、S4、S5将逐渐空闲。将逐渐空闲。缺点:缺点:吞吐率和效率降低吞吐率和效率降低优点:优点:流水线的控制逻辑比较简单流水线的控制逻辑比较简单流水线流水线“断流断流”,有些功能段,有些功能段“空闲空闲” 时时钟钟周周期期ti+4k k+ +4 4k k+ +3 3k k+ +2 2空空闲闲空空闲闲空空闲闲ti+3k k+ +3 3k k+ +2 2空空闲闲空空闲闲空空闲闲k k+ +1 1ti+2k k+ +3 3k k+ +2 2空空闲闲空空闲闲k k+ +1 1k kti+1k k+ +3 3k k+ +2 2空空闲闲k k
7、+ +1 1K Kk k- -1 1tik k+ +3 3k k+ +2 2k k+ +1 1k kk k- -1 1k k- -2 2正正常常流流动动k k+ +5 5k k+ +4 4k k+ +3 3k k+ +2 2k k+ +1 1k k功功能能段段功功能能段段S1S2S3S4S5S6顺顺序序流流动动方方式式2.2.乱序乱序(Out of order)流动方式:流动方式:指令流出流水线的顺序与流入指令流出流水线的顺序与流入流水线的顺序不同。流水线的顺序不同。又称为错序流动方式、无序流动方式、异步流动方式等。时时钟钟周周期期ti+5k+8(k+7)k+6k+2K+5k+4k+3ti+4
8、k+7(k+6)k+2k+5K+4k+3k+1ti+3k+6k+5(k+2)k+4k+3k+1kti+2k+5k+4(k+2)k+3k+1kk-1Ti-+1k+4k+3(k+2)k+1kK-1k-2tik+3(k+2)k+1kk-1k-1k-3正正常常流流动动k+5k+4k+3k+2k+1k功功能能段段功功能能段段S1S2S3S4S5S6乱乱序序流流动动方方式式5.4.2 5.4.2 乱序流动中的数据相关乱序流动中的数据相关在乱序流动方式中,可能发生三种数据相关在乱序流动方式中,可能发生三种数据相关 写写相关写写相关 k: LOAD F1, A ;F1(A) 写读相关写读相关 k+1:FADD
9、 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相关或写后再写相关等。有时把相关相关称
10、为“冒险冒险”(hazard)、“竟争竟争” (competition)等。在程序执行过程中,只有避免相关,执行结果才是正在程序执行过程中,只有避免相关,执行结果才是正确的。确的。 三种数据相关可以用下列关系式来表示:三种数据相关可以用下列关系式来表示: 对于写读相关 D(i) S(j) 对于读写相关 S(i) D(j) 对于写写相关 D(i) D(j) ( (写写) ) ( (写写) ) ( (读读) ) ( (写写) ) ( (a a) ) 写写读读相相关关 ( (b b) ) 写写写写相相关关 ( (读读) ) ( (写写) ) i i 先先于于j j。 ( (c c) ) 读读写写相相
11、关关 S(i) S(i) S(i) D(i) D(i) D(i) S(j) S(j) S(j) D(j) D(j) D(j) 5.4.3 5.4.3 数据重定向方法数据重定向方法1.1.三种数据相关的重定向三种数据相关的重定向 重定向之前,j只能在i之后执行。 重定向之后,可以做到:(1)(1)写读相关,写读相关,j j与与i i可以同时执行可以同时执行 即专用数据通路即专用数据通路(2)(2)写写相关,写写相关,先后顺序无关先后顺序无关(3)(3)读写相关,读写相关,先后顺序无关先后顺序无关 后两种情况又称为后两种情况又称为“变量换名技术变量换名技术”B BB B i i j j i iA
12、AC CA Aj jC C( (a a) ) 写写读读相相关关的的数数据据重重定定向向B BB BB B i i j j i i j jA AC CA AC C( (b b) ) 写写写写相相关关的的数数据据重重定定向向B BB B i i j j j jA AC CA Aj jC C i iB B ( (c c) ) 读读写写相相关关的的数数据据重重定定向向2.2.变量换名技术变量换名技术用来自动消除读写数据相关读写数据相关和写写数据相关写写数据相关规则:一个变量只允许定值一次一个变量只允许定值一次在三种数据相关中,实际上只有写读数据相关必须依靠硬件、或采用软硬件结合的方法来解决 解决方法:
13、推后处理推后处理或专用数据通路专用数据通路在上面的数据重定向图中,把B换成了B,并在以后的都引用B读写数据相关和写写数据相关就不存在了。一个实际例子: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, LoopLoop: LD F0, 0(R1) LD F4, -8(R1
14、) 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), F83.3.一个简单的程序:一个简单的程序: k: LOAD F1, A k+1: FADD F1, F2 k+2: FMUL F1, F3 k+3: STORE F1, B A k+1k+1 FADDFADD k+1 k+1 F2 k k k+1 k+1 F1 k+3 k+3 k+2
15、 k+2 B k+2k+2 FMULFMUL k+2 k+2 F3 A AK K,k k+ +1 1F FA AD DD D k k+ +1 1F2F1k k+ +1 1k k+ +2 2 k k+ +2 2B Bk k+ +2 2, ,k k+ +3 3F FM MU UL L k k+ +2 2F3专门设置:AFADDAFADD、FMULBFMULB、FADDFMULFADDFMUL三条专用路径。撤消:F1FADD、F1FMUL、FADDF1 、AF1的路径。5.4.4 Tomasulo5.4.4 Tomasulo动态调度动态调度算法算法P310P310实用的动态调度算法主要有两种:(1)
16、集中控制:CDC计分牌计分牌(scorebord)算法, 最先在CDC 6600大型机中采用。(2)分散控制:TomasuloTomasulo算法算法, , 公共数据总线公共数据总线法,令牌法等。最早在大型机IBM 360/91的浮点处理部件中被采用。以上面的一段程序为例说明TomasuloTomasulo算法算法k: LOAD F1, Ak+1: FADD F1, F2k+2: FMUL F1, F3k+3: STORE F1, B5.5 5.5 超标量处理机超标量处理机5.5.1 基本结构基本结构5.5.2 单发射与多发射单发射与多发射5.5.3 多流水线调度多流水线调度5.5.4 资源冲
17、突资源冲突5.5.5 超标量处理机性能超标量处理机性能三种主流处理机:三种主流处理机: 超标量处理机超标量处理机 超流水线处理机超流水线处理机 超标量超流水线处理机超标量超流水线处理机以以一一台台k k 段段流流水水线线的的普普通通标标量量处处理理机机为为基基准准 超超标标量量处处理理机机、超超流流水水线线处处理理机机和和超超标标量量超超流流水水线线处处理理机机的的主主要要性性能能: 机器类型 k段流水线 标量处理机 m度 超标量处理机 n度 超流水线处理机 (m,n)度超标量 超流水线处理机 机器流水线周期 1个时钟周期 1 1n 1n 同时发射指令条数 1条 m 1 m 指令发射等待时间
18、1个时钟周期 1 1n 1n 指令级并行度ILP 1 m n mn 5.5.1 5.5.1 基本结构基本结构普通标量流水线处理机:普通标量流水线处理机: 一条指令流水线一条指令流水线,一个多功能操作部件一个多功能操作部件, 每个时钟周期平均执行指令的条数小于1。多操作部件标量处理机:多操作部件标量处理机: 一条指令流水线一条指令流水线,多个独立的操作部件,多个独立的操作部件, 指令级并行度小于1。超标量处理机典型结构:超标量处理机典型结构: 多条并行工作的指令流水线多条并行工作的指令流水线,多个独立的操作部件,多个独立的操作部件, 指令级并行度(指令级并行度(ILP)大于)大于1。整数整数 部
19、件部件 整数整数 部件部件 位操位操作作 部件部件 浮点浮点加加 部件部件 乘法乘法 部件部件 除法除法 部件部件 图形图形 部件部件 图形图形 部件部件 内部总线内部总线 读数存数读数存数 部件部件 通用寄通用寄 存器堆存器堆 扩展扩展 寄存器堆寄存器堆 目标目标 指令指令 CacheCache 指令分配指令分配 转移部件转移部件 数据数据 CacheCache(8K8KB B) 指令指令 CacheCache(8K8KB B) 3232 位地址总线位地址总线 6464 位数据总线位数据总线 系统总线系统总线 超标量处理机超标量处理机 MC88110MC88110 的结构的结构 Motoro
20、laMotorola公司的公司的MC88110MC88110有10个操作部件两个寄存器堆:整数部件通用寄存器堆,32个32位寄存器浮点部件扩展寄存器堆,32个80位寄存器缓冲深度为4的先行读数栈缓冲深度为3的后行写数栈两个独立的高速Cache中,各为8KB,采用两路组相联方式转移目标指令Cache,用于存放另一条分支上的指令5.5.2 5.5.2 单发射与多发射单发射与多发射1.1.单发射处理机:单发射处理机:每个周期只取一条指令、只译码一条指令,只执行一每个周期只取一条指令、只译码一条指令,只执行一条指令,只写回一个运算结果。条指令,只写回一个运算结果。取指令部件和指令译码部件各设置一套;只
21、设置一个多功能操作部件或设置多个独立的操作部件;操作部件中可以采用流水线结构,也可以不采用流水线结构。目标是每个时钟周期平均执行一条指令,ILP的期望值为1。2.2.多发射处理机:多发射处理机:每个周期同时取多条指令、同时译码多条指令,同时每个周期同时取多条指令、同时译码多条指令,同时执行多条指令,同时写回多个运算结果执行多条指令,同时写回多个运算结果。多个取指令部件,多个指令译码部件和多个写结果部多个取指令部件,多个指令译码部件和多个写结果部件。件。设置多个指令执行部件,设置多个指令执行部件,有些指令执行部件采用流水线结构。目标是每个时钟周期平均执行多条指令,ILP的期望值大于1。单单 发发
22、 射射 处处 理理 机机 的的 指指 令令 流流 水水 线线 时时 空空 图图 1 2 3 4 5 6 I1 IF ID EX W R 时时 钟钟 周周 期期 I2 IF ID EX W R I3 IF ID EX W R 指指 令令 多多 发发 射射 处处 理理 机机 的的 指指 令令 流流 水水 线线 时时 空空 图图 1 2 3 4 5 6 I1 IF ID EX W R 时时 钟钟 周周 期期 I2 IF ID EX W R I3 IF ID EX W R I4 IF ID EX W R I5 IF ID EX W R I6 IF ID EX W R I7 IF ID EX W R I
23、8 IF ID EX W R I9 IF ID EX W R 指指 令令 单单发发射射处处理理机机的的指指令令流流水水线线 取取指指令令 指指令令译译码码 执执行行指指令令EX 写写回回结结果果 FA1 FA2 FA3 浮浮点点加加法法部部件件 来来自自指指令令 Cache IF ID MD1 MD2 MD3 WR 通通用用寄寄存存器器 后后行行写写数数栈栈 乘乘除除法法部部件件 AL 定定点点算算术术逻逻辑辑部部件件 LS 取取数数存存数数部部件件 同同时时发发射射两两条条指指令令的的多多发发射射处处理理机机的的指指令令流流水水线线 取取指指令令 指指令令译译码码 执执行行指指令令 写写回回
24、结结果果 FA1 FA2 FA3 浮浮点点加加法法部部件件 来来自自指指令令 Cache IF1 ID1 MD1 MD2 MD3 WR1 通通用用寄寄存存器器 后后行行写写数数栈栈 乘乘除除法法部部件件 来来自自指指令令 Cache IF2 ID2 AL WR2 通通用用寄寄存存器器 后后行行写写数数栈栈 定定点点算算术术逻逻辑辑部部件件 LS 取取数数存存数数部部件件 3.3.超标量处理机:超标量处理机:有两条或两条以上能同时工作的指令流水线先行指令窗口先行指令窗口:能够从指令Cache中预取多条指令,能够对窗口内的指令进行数据相关性分析和功能部件冲突检测。例如:例如:Intel公司的i86
25、0、i960、Pentium,Motolora公司的MC88110,IBM公司的Power 6000,TI公司生产SuperSPARC等操作部件的个数一般多于每个周期发射的指令条数。通常为4 个至16个操作部件。超标量处理机的指令级并行度:超标量处理机的指令级并行度:1ILPm有有先先行行指指令令窗窗口口的的超超标标量量处处理理机机的的流流水水线线结结构构 取取指指令令 指指令令译译码码 执执行行指指令令 写写回回结结果果 FA1 FA2 FA3 浮浮点点加加法法部部件件 指指令令 Cache IF1 ID1 MD1 MD2 MD3 WR1 通通用用寄寄存存器器 后后行行写写数数栈栈 乘乘除除
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精确 断点 不精确 精品 课件
限制150内