




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、5.3.7 5.3.7 准确断点与不准确断点准确断点与不准确断点对于输入输出设备的中断效力,实践上不需求有准确对于输入输出设备的中断效力,实践上不需求有准确断点。断点。比较简单的处置方法是:让曾经进入流水线的一切指比较简单的处置方法是:让曾经进入流水线的一切指令都执行完成,断点就是最后进入流水线的那条指令都执行完成,断点就是最后进入流水线的那条指令的地址。令的地址。对于程序性错误和机器缺点等引起的中断,它们出现对于程序性错误和机器缺点等引起的中断,它们出现的概率很低,处置原那么:不在于缩短时间,关键的概率很低,处置原那么:不在于缩短时间,关键是要正确保管现场和正确恢复断点。是要正确保管现场和正
2、确恢复断点。不准确断点不准确断点(Imprecise),流水线可以不断流,流水线可以不断流需求的硬件比较少,控制逻辑比较简单需求的硬件比较少,控制逻辑比较简单中断呼应时间加长中断呼应时间加长 采用不准确断点法能够会发生如下两个问题:采用不准确断点法能够会发生如下两个问题:(1)程序的调试困难程序的调试困难调试程序时要设置断点,程序员经过查看断点处的中间执行结调试程序时要设置断点,程序员经过查看断点处的中间执行结果判别程序能否正确。但由于不准确断点,程序不能准确中果判别程序能否正确。但由于不准确断点,程序不能准确中断,因此,难于调试。断,因此,难于调试。早期的流水线处置机,多采用不准确断点法早期
3、的流水线处置机,多采用不准确断点法近期的流水线处置机普通都采用准确断点法近期的流水线处置机普通都采用准确断点法 申申请请中中断断 输输入入 S1 S2 S3 S4 S5 S6 S7 S8 输输出出 PC: i+5 i+4 i+3 i+2 i+1 i i-1 i-2 不不精精确确断断点点 精精确确断断点点 (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 i
4、条指令执行到条指令执行到S6S6段时发现浮点加法结果溢出,段时发现浮点加法结果溢出,于是发出中断效力恳求。由于采用不准确断点法,于是发出中断效力恳求。由于采用不准确断点法,曾经进入流水线的第曾经进入流水线的第i+1i+1条指令将执行完成;由于条指令将执行完成;由于第第i+1i+1条指令运用了不正确的条指令运用了不正确的R1R1,所以浮点乘法的,所以浮点乘法的执行结果是不正确的。执行结果是不正确的。采用准确断采用准确断(Precise)(Precise)点法,要设置一定数量的后援点法,要设置一定数量的后援存放器,把整个流水线中一切指令的执行结果和现存放器,把整个流水线中一切指令的执行结果和现场都
5、保管下来。场都保管下来。5.4 5.4 动态调度技术动态调度技术5.4.1 顺序流动与乱序流动顺序流动与乱序流动5.4.2 乱序流动中的数据相关乱序流动中的数据相关5.4.3 数据重定向方法数据重定向方法5.4.4 Tomasulo动态调度算法动态调度算法实现方法:实现方法: 由硬件动态调整指令执行顺序,以减少数据相关呵由硬件动态调整指令执行顺序,以减少数据相关呵斥的影响。斥的影响。主要优点:主要优点:可以处置在编译时无法确定的相关,并简化编译器设可以处置在编译时无法确定的相关,并简化编译器设计计在其他流水线机器上编译的目的代码也可以高效运转在其他流水线机器上编译的目的代码也可以高效运转用静态
6、调度法生成的代码也能在动态调度法的机器中用静态调度法生成的代码也能在动态调度法的机器中运转运转主要缺陷:指令级并行度低,由于只能在比较小的范主要缺陷:指令级并行度低,由于只能在比较小的范围内寻觅并行性围内寻觅并行性5.4.1 5.4.1 顺序流动与乱序流动顺序流动与乱序流动1.1.顺序流动方式:义务按顺序流入流水线顺序流动方式:义务按顺序流入流水线, ,也按顺序也按顺序流出流水线流出流水线把如下一段程序输入到这条流水线中:把如下一段程序输入到这条流水线中: k k: R0 R0R1R1 k+1 k+1: k+2 k+2: R2 R2R0R0R3R3 k+3 k+3: k+4 k+4: k+5
7、k+5: 读读 专专用用数数据据通通路路 写写 输输入入 S1 S2 S3 S4 S5 S6 输输出出 寄寄存存器器R0 指令指令k+2k+2无法继续执行,要在功能段无法继续执行,要在功能段S2S2中等待。中等待。后续的指令后续的指令k+4k+4、k+5k+5、等也不能进入流水线。等也不能进入流水线。功能段功能段S3S3、S4S4、S5S5将逐渐空闲。将逐渐空闲。缺陷:吞吐率和效率降低缺陷:吞吐率和效率降低优点:流水线的控制逻辑比较简单优点:流水线的控制逻辑比较简单流水线流水线“断流,有些功能段断流,有些功能段“空闲空闲 时时钟钟周周期期ti+4k k+ +4 4k k+ +3 3k k+ +
8、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+ +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.乱序乱序(Ou
9、t of order)(Out of order)流动方式:指令流出流水线的顺序与流流动方式:指令流出流水线的顺序与流入流水线的顺序不同。又称为错序流动方式、无序流动方式、入流水线的顺序不同。又称为错序流动方式、无序流动方式、异步流动方式等。异步流动方式等。时时钟钟周周期期ti+5k+8(k+7)k+6k+2K+5k+4k+3ti+4k+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+
10、5k+4k+3k+2k+1k功功能能段段功功能能段段S1S2S3S4S5S6乱乱序序流流动动方方式式5.4.2 5.4.2 乱序流动中的数据相关乱序流动中的数据相关在乱序流动方式中,能够发生三种数据相关在乱序流动方式中,能够发生三种数据相关 写写相关写写相关 k k: LOAD F1, A ;F1 LOAD F1, A ;F1A A 写读相关写读相关 k+1 k+1:FADD F2, F1 ;F2FADD F2, F1 ;F2F2F2+ +F1F1 k+2 k+2:FMUL F1, F3 ;F1FMUL F1, F3 ;F1F1F1F3F3 k+3 k+3:STORE F1, B ;BSTOR
11、E F1, B ;BF1F1读写相关读写相关(1)(1)写读相关:指令写读相关:指令k k与指令与指令k+1k+1之间关于之间关于F1F1的相关,又称的相关,又称为数据相关、先写后读相关、流相关、为数据相关、先写后读相关、流相关、WRWR相关、相关、RAWRAW相相关等。关等。(2)读写相关:指令读写相关:指令k+1与指令与指令k+2之间关于之间关于F1的相关,的相关,变量名相关、先读后写相关、反相关、变量名相关、先读后写相关、反相关、RW相关、相关、WAR相关等。相关等。(3)写写相关:指令写写相关:指令k与指令与指令k+2左边的左边的F1之间的相关之间的相关关系称为:输出相关、写写相关、关
12、系称为:输出相关、写写相关、WW相关、相关、WAW相关或写后再写相关等。相关或写后再写相关等。有时把相关称为有时把相关称为“冒险冒险(hazard)、“竟争竟争 (competition)等。等。在程序执行过程中,只需防止相关,执行结果才是正在程序执行过程中,只需防止相关,执行结果才是正确的。确的。 三种数据相关可以用以下关系式来表示:三种数据相关可以用以下关系式来表示: 对于写读相关对于写读相关 D(i) S(j) D(i) S(j) 对于读写相关对于读写相关 S(i) D(j) S(i) D(j) 对于写写相关对于写写相关 D(i) D(j) D(i) D(j) ( (写写) ) ( (写
13、写) ) ( (读读) ) ( (写写) ) ( (a a) ) 写写读读相相关关 ( (b b) ) 写写写写相相关关 ( (读读) ) ( (写写) ) i i 先先于于j j。 ( (c c) ) 读读写写相相关关 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 j只能在只能在i i之后执行。之后执行。 重定向之后,可以做到:重定向之后,可以做到:(1)(1)写读相关,写读相关,j j与与
14、i i可以同时执行可以同时执行 即公用数据通路即公用数据通路(2)(2)写写相关,先后顺序无关写写相关,先后顺序无关(3)(3)读写相关,先后顺序无关读写相关,先后顺序无关 后两种情况又称为后两种情况又称为“变量换名技术变量换名技术B BB B i i j j i iA 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) ) 读读写
15、写相相关关的的数数据据重重定定向向2.2.变量换名技术变量换名技术用来自动消除读写数据相关和写写数据相关用来自动消除读写数据相关和写写数据相关规那么:一个变量只允许定值一次规那么:一个变量只允许定值一次在三种数据相关中,实践上只需写读数据相关必需依托硬件、在三种数据相关中,实践上只需写读数据相关必需依托硬件、或采用软硬件结合的方法来处理或采用软硬件结合的方法来处理 处理方法:推后处置或公用数据通路处理方法:推后处置或公用数据通路在上面的数据重定向图中,把在上面的数据重定向图中,把B B换成了换成了BB,并在以后的都援用,并在以后的都援用BB读写数据相关和写写数据相关就不存在了。读写数据相关和写
16、写数据相关就不存在了。一个实践例子:一个实践例子: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) LD F6, -16(R1) LD F8, -24(R1) ADD F0,F2 ADD F4,F
17、2 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 k: LOAD F1, A LOAD F1, A k+1 k+1: FADD F1, F2 FADD F1, F2 k+2 k+2: FMUL F1, F3 FMUL F1, F3 k+3 k+3: STORE F1, B STORE F1, B A k+1k+1 FADDFADD k+1 k+1 F2 k k k+1 k+1 F1
18、k+3 k+3 k+2 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专门设置:AFADD、FMULB、FADDFMUL三条公用途径。吊销:F1FADD、F1FMUL、FADDF1 、AF1的途径。5.4.4 Tomasulo5.4.4 Tomasulo动态调度算法动态调度算法P310P310适用的动态调度算法主要有两种:(1)集中控制:CD
19、C计分牌(scorebord)算法, 最先在CDC 6600大型机中采用。(2)分散控制:Tomasulo算法, 公共数据总线法,令牌法等。最早在大型机IBM 360/91的浮点处置部件中被采用。以上面的一段程序为例阐明Tomasulo算法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 资源冲突资源冲突5.5.5 超标量处置机性能超标量处置机性能三种主流处置机:三种主
20、流处置机: 超标量处置机超标量处置机 超流水线处置机超流水线处置机 超标量超流水线处置机超标量超流水线处置机以以一一台台k k 段段流流水水线线的的普普通通标标量量处处理理机机为为基基准准 超超标标量量处处理理机机、超超流流水水线线处处理理机机和和超超标标量量超超流流水水线线处处理理机机的的主主要要性性能能: 机器类型 k 段流水线 标量处理机 m度 超标量处理机 n 度 超流水线处理机 (m,n)度超标量 超流水线处理机 机器流水线周期 1 个时钟周期 1 1n 1n 同时发射指令条数 1 条 m 1 m 指令发射等待时间 1 个时钟周期 1 1n 1n 指令级并行度ILP 1 m n mn
21、 5.5.1 5.5.1 根本构造根本构造普通标量流水线处置机:普通标量流水线处置机: 一条指令流水线,一个多功能操作部件,一条指令流水线,一个多功能操作部件, 每个时钟周期平均执行指令的条数小于每个时钟周期平均执行指令的条数小于1 1。多操作部件标量处置机:多操作部件标量处置机: 一条指令流水线,多个独立的操作部件,一条指令流水线,多个独立的操作部件, 指令级并行度小于指令级并行度小于1 1。超标量处置机典型构造:超标量处置机典型构造: 多条并行任务的指令流水线,多个独立的操作部件,多条并行任务的指令流水线,多个独立的操作部件, 指令级并行度指令级并行度ILPILP大于大于1 1。整数整数
22、部件部件 整数整数 部件部件 位操位操作作 部件部件 浮点浮点加加 部件部件 乘法乘法 部件部件 除法除法 部件部件 图形图形 部件部件 图形图形 部件部件 内部总线内部总线 读数存数读数存数 部件部件 通用寄通用寄 存器堆存器堆 扩展扩展 寄存器堆寄存器堆 目标目标 指令指令 CacheCache 指令分配指令分配 转移部件转移部件 数据数据 CacheCache(8K8KB B) 指令指令 CacheCache(8K8KB B) 3232 位地址总线位地址总线 6464 位数据总线位数据总线 系统总线系统总线 超标量处理机超标量处理机 MC88110MC88110 的结构的结构 Motor
23、ola公司的MC88110有10个操作部件两个存放器堆:整数部件通用存放器堆,32个32位存放器浮点部件扩展存放器堆,32个80位存放器缓冲深度为4的先行读数栈缓冲深度为3的后行写数栈两个独立的高速Cache中,各为8KB,采用两路组相联方式转移目的指令Cache,用于存放另一条分支上的指令5.5.2 5.5.2 单发射与多发射单发射与多发射1.1.单发射处置机:单发射处置机:每个周期只取一条指令、只译码一条指令,只执行一条指令,每个周期只取一条指令、只译码一条指令,只执行一条指令,只写回一个运算结果。只写回一个运算结果。取指令部件和指令译码部件各设置一套;取指令部件和指令译码部件各设置一套;
24、只设置一个多功能操作部件或设置多个独立的操作部件;只设置一个多功能操作部件或设置多个独立的操作部件;操作部件中可以采用流水线构造,也可以不采用流水线构造。操作部件中可以采用流水线构造,也可以不采用流水线构造。目的是每个时钟周期平均执行一条指令,目的是每个时钟周期平均执行一条指令,ILPILP的期望值为的期望值为1 1。2.2.多发射处置机:多发射处置机:每个周期同时取多条指令、同时译码多条指令,同时执行多条每个周期同时取多条指令、同时译码多条指令,同时执行多条指令,同时写回多个运算结果。指令,同时写回多个运算结果。多个取指令部件,多个指令译码部件和多个写结果部件。多个取指令部件,多个指令译码部
25、件和多个写结果部件。设置多个指令执行部件,有些指令执行部件采用流水线构造。设置多个指令执行部件,有些指令执行部件采用流水线构造。目的是每个时钟周期平均执行多条指令,目的是每个时钟周期平均执行多条指令,ILPILP的期望值大于的期望值大于1 1。单单 发发 射射 处处 理理 机机 的的 指指 令令 流流 水水 线线 时时 空空 图图 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
26、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 I8 IF ID EX W R I9 IF ID EX W R 指指 令令 单单发发射射处处理理机机的的指指令令流流水水线线 取取指指令令 指指令令译译码码 执执行行指指令令EX 写写回回结结果果 FA1 FA2 FA3 浮浮点点加加法法部部件件 来来自自指指令令 Cache IF ID MD1 MD2 MD3 WR 通通用用寄寄存存器器 后后行
27、行写写数数栈栈 乘乘除除法法部部件件 AL 定定点点算算术术逻逻辑辑部部件件 LS 取取数数存存数数部部件件 同同时时发发射射两两条条指指令令的的多多发发射射处处理理机机的的指指令令流流水水线线 取取指指令令 指指令令译译码码 执执行行指指令令 写写回回结结果果 FA1 FA2 FA3 浮浮点点加加法法部部件件 来来自自指指令令 Cache IF1 ID1 MD1 MD2 MD3 WR1 通通用用寄寄存存器器 后后行行写写数数栈栈 乘乘除除法法部部件件 来来自自指指令令 Cache IF2 ID2 AL WR2 通通用用寄寄存存器器 后后行行写写数数栈栈 定定点点算算术术逻逻辑辑部部件件 LS
28、 取取数数存存数数部部件件 3.3.超标量处置机:超标量处置机:有两条或两条以上能同时任务的指令流水线有两条或两条以上能同时任务的指令流水线先行指令窗口:可以从指令先行指令窗口:可以从指令CacheCache中预取多条指令,可以对窗中预取多条指令,可以对窗口内的指令进展数据相关性分析和功能部件冲突检测。口内的指令进展数据相关性分析和功能部件冲突检测。例如:例如:IntelIntel公司的公司的i860i860、i960i960、PentiumPentium,MotoloraMotolora公司的公司的MC88110MC88110,IBMIBM公司的公司的Power 6000,TIPower 6
29、000,TI公司消费公司消费SuperSPARCSuperSPARC等等操作部件的个数普通多于每个周期发射的指令条数。通常为操作部件的个数普通多于每个周期发射的指令条数。通常为4 4 个至个至1616个操作部件。个操作部件。超标量处置机的指令级并行度:超标量处置机的指令级并行度:1 1ILPILPm m有有先先行行指指令令窗窗口口的的超超标标量量处处理理机机的的流流水水线线结结构构 取取指指令令 指指令令译译码码 执执行行指指令令 写写回回结结果果 FA1 FA2 FA3 浮浮点点加加法法部部件件 指指令令 Cache IF1 ID1 MD1 MD2 MD3 WR1 通通用用寄寄存存器器 后后
30、行行写写数数栈栈 乘乘除除法法部部件件 指指令令 Cache IF2 ID2 AL WR2 通通用用寄寄存存器器 后后行行写写数数栈栈 定定点点算算术术逻逻辑辑部部件件 IF3 ID3 LS 先先行行指指令令窗窗口口 取取数数存存数数部部件件 F FA A:浮浮点点加加减减法法运运算算,M MD D:乘乘除除法法运运算算,A AL L:定定点点算算术术逻逻辑辑运运算算,L LS S 取取数数存存数数 5.5.3 5.5.3 多流水线调度多流水线调度顺序发射(in-order issue)与乱序发射(out-order issue):指令发射顺序是按照程序中指令陈列顺序进展的称为顺序发射顺序完成
31、(in-order completion)与乱序完成(out-order completion):指令完成顺序是按照程序中指令陈列顺序进展的称为顺序完成多流水线的调度主要有三种方法:顺序发射顺序完成顺序发射乱序完成乱序发射乱序完成以如下以如下6 6条指令组成的程序为例,阐明这三种调度方条指令组成的程序为例,阐明这三种调度方法法 I1 I1:LOAD R1, A LOAD R1, A ;R1(A)R1(A) I2 I2:FADD R2, R1 FADD R2, R1 ;R2(R2)R2(R2)(R1)(R1) I3 I3:FMUL R3, R4 FMUL R3, R4 ;R3(R3)R3(R3)
32、(R4)(R4) I4 I4:FADD R4, R5 FADD R4, R5 ;R4(R4)R4(R4)(R5)(R5) I5 I5:DEC R6 DEC R6 ;R6(R6)R6(R6)1 1 I6 I6:FMUL R6, R7 FMUL R6, R7 ;R6(R6)R6(R6)(R7)(R7)6 6条指令中有条指令中有4 4个数据相关,包括个数据相关,包括2 2个写读相关,个写读相关,1 1个读个读写相关和写相关和1 1个写写相关。个写写相关。1.1.顺序发射顺序完成顺序发射顺序完成 共用共用1010个时钟周期完成个时钟周期完成 还有还有8 8个空闲的时钟周期个空闲的时钟周期顺顺序序发发射
33、射顺顺序序完完成成的的指指令令流流水水线线时时空空图图 1 2 3 4 5 6 7 8 9 10 I1 IF1 ID1 LS WR1 时时钟钟周周期期 I2 IF2 ID2 FA1 FA2 FA2 WR2 I3 IF1 ID1 MD1 MD2 MD3 WR1 I4 IF2 ID2 FA1 FA2 FA3 WR2 I5 IF1 ID1 AL WR1 I6 IF2 ID2 MD1 MD2 MD3 WR2 指指令令 I IF F:取取指指令令,I ID D:指指令令译译码码,L LS S 取取数数存存数数,F FA A:浮浮点点加加减减法法运运算算, M MD D:乘乘除除法法运运算算,A AL L
34、:定定点点算算术术逻逻辑辑运运算算 W WR R:写写回回运运算算结结果果 2.2.顺序发射乱序完成顺序发射乱序完成 总的执行时间为总的执行时间为9 9个时钟周期,个时钟周期, 节省了一个时钟周期。少了节省了一个时钟周期。少了5 5个空闲时钟周期。个空闲时钟周期。顺顺序序发发射射乱乱序序完完成成的的流流水水线线时时空空图图 1 2 3 4 5 6 7 8 9 I1 IF1 ID1 LS WR1 时时钟钟周周期期 I2 IF2 ID2 FA1 FA2 FA2 WR2 I3 IF1 ID1 MD1 MD2 MD3 WR1 I4 IF2 ID2 FA1 FA2 FA3 WR2 I5 IF1 ID1
35、AL WR1 I6 IF2 ID2 MD1 MD2 MD3 WR2 指指令令 顺顺序序发发射射乱乱序序完完成成的的指指令令完完成成次次序序 时时钟钟周周期期 4 4 5 5 6 6 7 7 8 8 9 9 流流水水线线 1 1 I1 I5 I3 流流水水线线 2 2 I2 I4 I6 3. 3. 乱序发射乱序完成乱序发射乱序完成没有空闲周期,功能部件得到充分利用。没有空闲周期,功能部件得到充分利用。 总的执行时间为总的执行时间为8 8个周期,节省个周期,节省2 2个周期。个周期。乱乱序序发发射射乱乱序序完完成成调调度度方方法法的的流流水水线线时时空空图图 1 2 3 4 5 6 7 8 流流水
36、水线线 1 1 I I1 1 IF1 ID1 LS WR1 时时钟钟周周期期 流流水水线线 2 2 I I3 3 IF2 ID2 MD1 MD2 MD3 WR2 先先行行窗窗口口 I I4 4 IF3 ID3 FA1 FA2 FA3 WR1 I2 IF1 ID1 FA1 FA2 FA3 WR1 I5 IF2 ID2 AL WR2 I6 IF1 ID1 MD1 MD2 MD3 WR1 指指令令 指指令令在在流流水水线线中中的的发发射射次次序序 指指令令在在流流水水线线中中的的完完成成次次序序 时时钟钟周周1 2 3 时时钟钟周周期期 4 5 6 7 8 流流水水线线 1 1 I1 I2 I6 流
37、流水水线线 1 1 I1 I4 I2 I6 流流水水线线 2 2 I3 I5 流流水水线线 2 2 I5 I3 先先行行窗窗口口 I4 5.5.4 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)双双 流流 水水 线线 超超 标标 量量 处处 理理 机机 , 操操
38、作作 部部 件件 不不 采采 用用 流流 水水 线线 的的 时时 空空 图图1234567891011流流 水水 线线1 I1IF1 ID1FADDW R1 时时 钟钟 周周 期期流流 水水 线线2 I2IF2 ID2FM ULW R2流流 水水 线线1 I3IF1 ID1FADDW R1流流 水水 线线2 I4IF2 ID2FM ULW R2 指指 令令I IF F: 取取 指指 令令 , I ID D: 指指 令令 译译 码码 , F FA AD DD D: 浮浮 点点 加加 法法 , F FM MU UL L: 浮浮 点点 乘乘 法法 , W WR R: 写写 回回 结结 果果 操作部件
39、不采用流水线:操作部件不采用流水线: 做完做完4 4条指令总共用了条指令总共用了1111个周期,个周期, 有有5 5个空闲周期。个空闲周期。操作部件采用流水线:操作部件采用流水线: 做完做完4 4条指令共用条指令共用8 8个周期,个周期, 少用少用3 3个周期。个周期。双双流流水水线线超超标标量量处处理理机机,操操作作部部件件采采用用流流水水线线的的时时空空图图 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 流流水水线线1 I1 I IF F1 1 I ID D1 1 F FA AD DD D1 1 F FA AD DD D2 2 F FA AD DD D3 3 W WR R1
40、1 时时钟钟周周期期 流流水水线线2 I2 I IF F2 2 I ID D2 2 F FM MU UL L1 1 F FM MU UL L2 2 F FM MU UL L3 3 F FM MU UL L4 4 W WR R2 2 流流水水线线1 I I3 3 I IF F1 1 I ID D1 1 F FA AD DD D1 1 F FA AD DD D2 2 F FA AD DD D3 3 W WR R1 1 流流水水线线2 I I4 4 I IF F2 2 I ID D2 2 F FM MU UL L1 1 F FM MU UL L2 2 F FM MU UL L3 3 F FM MU
41、UL L4 4 W R2 指指令令 I IF F:取取指指令令,I ID D:指指令令译译码码,F FA AD DD D:浮浮点点加加法法,F FM MU UL L:浮浮点点乘乘法法,W WR R:写写回回结结果果 操作部件采用流水线构造的缘由分析操作部件采用流水线构造的缘由分析假每个周期发射假每个周期发射m m条指令,操作部件的延迟时间为条指令,操作部件的延迟时间为k k个个周期,周期,假设操作部件不采用流水线构造,那么运用同一个操假设操作部件不采用流水线构造,那么运用同一个操作部件的两条指令应该至少相差作部件的两条指令应该至少相差m mk k假设操作部件采用假设操作部件采用k k段流水线构
42、造,那么运用同一个操段流水线构造,那么运用同一个操作部件的两条指令只需相差作部件的两条指令只需相差m m或或m m以上以上指令流水线的段数指令流水线的段数k k普通在普通在4 4至至1010之间,每个时钟周期之间,每个时钟周期发射的指令条数发射的指令条数m m在在2 2至至4 4之间。取中间值,之间。取中间值,k k7 7,m m3 3为了不发生资源冲突,假设操作部件不采用流水线构造, 两条运用同一个功能部件的指令序号必需相差21或21以上。假设操作部件采用流水线构造, 两条运用同一个功能部件的指令序号只需求相差3或3以上。因此,在超标量处置机中,操作部件普通要采用流水线构造。 假设由于某种缘
43、由,操作部件不能采用流水线构造,那么必需设置多个一样种类的操作部件普通标量处置机,希望一样操作延续出现。 只需延续出现一样操作的指令序列时,流水线的效率才干得到充分发扬。超标量处置机那么正好相反,希望一样操作不要延续出现。一样操作的指令序列延续出现时,会发生资源冲突;要求一样操作的指令可以相对均匀地分布在程序中。超标量处置机的这种要求正好符合普通标量程序的特点。5.5.5 5.5.5 超标量处置机性能超标量处置机性能单流水线普通标量处置机的指令级并行度记作(1, 1),超标量处置机的指令级并行度记作(m, 1),超流水线处置机的指令级并行度记作(1, n),而超标量超流水线处置机的指令级并行度
44、记作(m, n)。在理想情况下,N条指令在单流水线标量处置机上的执行时间为: T(1, 1)(kN1)t在每个周期发射m条指令的超标量处置机上执行的时间为: 超标量处置机相对于单流水线标量处置机的加速比为:超标量处置机的加速比的最大值为:S(m,1)MAXmtmmNkmT)() 1 ,() 1() 1() 1 ,() 1 , 1 () 1 ,(kmNNkmmTTmS5.6 5.6 超流水线处置机超流水线处置机5.6.1 指令执行时序指令执行时序5.6.2 典型处置机构造典型处置机构造5.6.3 超流水线处置机性能超流水线处置机性能超流水线处置机的两种定义:超流水线处置机的两种定义:在一个周期内
45、分时发射多条指令的处置机在一个周期内分时发射多条指令的处置机指令流水线的段数大于等于指令流水线的段数大于等于8 8的流水线处置机的流水线处置机提高处置机性能的两种方法:提高处置机性能的两种方法:经过添加硬件资源来提高处置机性能经过添加硬件资源来提高处置机性能经过各部分硬件的重叠任务来提高处置机性能经过各部分硬件的重叠任务来提高处置机性能两种不同并行性:两种不同并行性:超标量处置机采用的是空间并行性。超标量处置机采用的是空间并行性。超流水线处置机采用的是时间并行性。超流水线处置机采用的是时间并行性。5.6.1 5.6.1 指令执行时序指令执行时序每隔每隔1/n个时钟周期发射一条指令,个时钟周期发
46、射一条指令, 即处置机的流水线周期为即处置机的流水线周期为1/n个时钟周期。个时钟周期。每每个个时时钟钟周周期期分分时时发发射射 3 3 条条指指令令的的超超流流水水线线处处理理机机的的指指令令执执行行时时空空图图 1 1 2 2 3 3 4 4 5 5 6 6 I1 IF I ID D EX WR 时时钟钟周周期期 I2 IF ID EX W WR R I3 IF ID EX WR I4 IF ID EX WR I5 IF ID EX WR I6 IF ID EX WR I7 IF ID EX WR I8 IF ID EX WR 指指令令 I9 IF ID EX WR 5.6.2 5.6.2
47、 典型处置机构造典型处置机构造MIPS R4000MIPS R4000处置机:处置机: 每个时钟周期包含两个流水段每个时钟周期包含两个流水段是一种很规范的超流水线处置机构造。是一种很规范的超流水线处置机构造。指令流水线有指令流水线有8 8个流水段。个流水段。指令指令CacheCache和数据和数据CacheCache的容量各的容量各8KB8KB,每个时钟周期可以访问每个时钟周期可以访问CacheCache两次,两次,在一个时钟周期内可以从指令在一个时钟周期内可以从指令CacheCache中读出两条指令,从中读出两条指令,从数据数据CacheCache中读出或写入两个数据。中读出或写入两个数据。
48、主要运算部件有整数部件和浮点部件。主要运算部件有整数部件和浮点部件。MIPS R4000MIPS R4000 处理机的流水线操作处理机的流水线操作 IF IS RF EX DF DS TC WB 指令指令 指令译码指令译码 Cache 数据数据 寄存寄存 读读寄寄存存器器 ALU Cache 标标 志志 检检 验验 器堆器堆 IF:取第一条指令;:取第一条指令;IS:取第二条指令;:取第二条指令;RF:读寄存器堆,指令译码;:读寄存器堆,指令译码; EX:执行指令;:执行指令;DF:取第一个数据;:取第一个数据;DS:取第二个数据;:取第二个数据;TC:数据标志检验;:数据标志检验; WB:写
49、回结果:写回结果 MIPS R4000MIPS R4000 正常指令流水线工作时序正常指令流水线工作时序 主时钟周期主时钟周期 当前当前 CPU 周期周期 IF IS RF EX DF DS TC WB IF IS RF EX DF DS TC WB IF IS RF EX DF DS TC WB IF IS RF EX DF DS TC WB IF IS RF EX DF DS TC WB IF IS RF EX DF DS TC WB IF IS RF EX DF DS TC WB IF IS RF EX DF DS TC WB IF:取第一条指令;:取第一条指令;IS:取第二条指令;:取
50、第二条指令;RF:读寄存器堆,指令译码;:读寄存器堆,指令译码; EX:执行指令;执行指令;DF:取第一个数据;:取第一个数据;DS:取第二个数据;:取第二个数据;TC:数据标志检验;:数据标志检验; WB:写回结果:写回结果 流水流水 线线 周期周期 假设在LOAD指令之后的两条指令中,任何一条指令要在它的EX流水级运用这个数据,那么指令流水线要暂停一个时钟周期。指令 运行 暂停 暂停 运行 运行 运行 运行 运行 运行 运行 运行 I1 DF DS TC WB LOAD指令 I2 EX DF DS TC WB 使用LOAD数据 I3 RF EX DF DS TC WB I4 IS RF E
51、X DF DS TC WB I5 IF IS RF EX DF DS TC WB I6 IF IS RF EX DF DS TC WB 5.6.3 5.6.3 超流水线处置机性能超流水线处置机性能指令级并行度为(1,n)的超流水线处置机,执行N条指令所的时间为:超流水线处置机相对于单流水线普通标量处置机的加速比为: 加速比的最大值为:S(1, n)MAXnTnkntN( , )()111) 1()1() 1(), 1 () 1 , 1 (), 1 (NnkNkntnNktNknTTnS5.7 5.7 超标量超流水线处置机超标量超流水线处置机一个时钟周期发射一个时钟周期发射m次,每次发射次,每次
52、发射n条指令条指令 5.7.1 指令执行时序指令执行时序5.7.2 典型处置机构造典型处置机构造5.7.3 超标量超流水线处置机性能超标量超流水线处置机性能5.7.4 三种处置机的性能比较三种处置机的性能比较每每个个时时钟钟周周期期发发射射 3 3 次次,每每次次同同时时发发射射 3 3 条条指指令令的的 超超标标量量超超流流水水线线处处理理机机的的指指令令执执行行时时空空图图 1 1 2 2 3 3 4 4 5 5 6 6 I1 IF ID EX WR 时时钟钟周周期期 I2 IF ID EX WR I3 IF ID EX WR I4 I IF F ID EX WR I5 IF ID EX
53、WR I6 IF ID EX WR I7 IF ID EX WR I8 IF ID EX WR I9 IF ID EX WR I10 IF ID EX WR I11 IF ID EX WR I12 IF ID EX WR 指指令令 I IF F:取取指指令令,I ID D:指指令令译译码码,E EX X:执执行行指指令令,W WR R:写写回回结结果果 5.7.1 5.7.1 指令执行时序指令执行时序5.7.2 5.7.2 典型处置机构造典型处置机构造DEC公司的Alpha处置机为典型的超标量超流水线构造。主要由四个功能部件和两个Cache组成:整数部件EBOX 浮点部件FBOX 地址部件AB
54、OX 中央控制部件IBOX 指令Cache和数据Cache在EBOX内还有多条公用数据通路,可以把运算结果直接送到执行部件。中央控制部件IBOX可以同时完成: 同时读出两条指令; 同时对两条指令进展译码,并作相关性检测; 假设资源和相关性允许,IBOX就把两条指令同时发射给EBOX、ABOX和FBOX三个执行部件中的两个。指令流水线的控制方式: 采用顺序发射乱序完成。在指令Cache中有一个转移历史表,实现条件转移的动态预测。Alpha 21064Alpha 21064处置机共有三条指令流水线:处置机共有三条指令流水线:(1)(1)整数操作流水线为整数操作流水线为7 7个流水段,其中,取指令个
55、流水段,其中,取指令2 2个个流水段、分析指令流水段、分析指令2 2个流水段、运算个流水段、运算2 2个流水段、写个流水段、写结果结果1 1个流水段。个流水段。(2)(2)访问存储器流水线为访问存储器流水线为7 7个流水段。个流水段。(3)(3)浮点操作流水线分为浮点操作流水线分为1010个流水段,其中,浮点执个流水段,其中,浮点执行部件行部件FBOXFBOX的延迟时间为的延迟时间为6 6个流水段。个流水段。 三条指令流水线的平均段数为三条指令流水线的平均段数为(7+7+10)/3=8(7+7+10)/3=8,且每个,且每个时钟周期发射两条指令。因此,时钟周期发射两条指令。因此,Alpha 2
56、1064Alpha 21064处置处置机为超标量超流水线处置机。机为超标量超流水线处置机。7 7 个个流流水水段段的的整整数数操操作作流流水水线线( (0 0) )( (1 1) )( (2 2) )( (3 3) )( (4 4) )( (5 5) )( (6 6) )IFSWAPI0I1A1A2WRI IF F:取取指指令令;S SW WA AP P:交交换换双双发发射射指指令令,转转移移预预测测;I I0 0:指指令令译译码码;I I1 1 访访问问通通用用寄寄存存器器堆堆,发发射射校校验验;A A1 1:计计算算周周期期 1 1,I IB BO OX X 计计算算新新的的 P PC C
57、 值值;A A2 2:计计算算周周期期 2 2,查查指指令令快快表表;W WR R:写写整整数数寄寄存存器器堆堆,指指令令 C Ca ac ch he e 命命中中检检测测。7 7 个个流流水水段段的的访访问问存存储储器器流流水水线线 ( (0 0) )( (1 1) )( (2 2) )( (3 3) )( (4 4) )( (5 5) )( (6 6) )IFSWAPI0I1ACTBHMA AC C:A AB BO OX X 计计算算有有效效数数据据地地址址;T TB B:查查数数据据快快表表;H HM M:写写读读数数缓缓冲冲栈栈,数数据据 C Ca ac ch he e 命命中中/ /不不命命中中检检测测。 1 10 0 个个流流水水段段的的浮浮点点操操作作流流水水线线 ( (0 0) )( (1 1) )( (2 2) )( (3 3) )( (4 4) )( (5 5) )( (6 6) )( (7 7) )( (8 8) )( (9 9) )IFSWAPI0I1F1F2F3F4F5FWRF F1 1F F5 5:浮浮点点计计算算流流水水线线;F FW WR R:写写回回浮浮点点寄寄存存
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 适应性教学策略与实施计划
- 四年级下数学教案-空间与图形-苏教版
- 全国泰山版初中信息技术八年级上册第二章第一节《数字化视频播放》教学设计
- 视网膜坏死的护理
- 人才继任计划的制定与落实
- 工业园区安全隐患的评估与治理计划
- 2025年无机矿物填充塑料合作协议书
- 言语治疗辨音训练
- 九年级道德与法治下册 第一单元 我们共同的世界 第二课 构建人类命运共同体教学实录设计(pdf) 新人教版
- 南京会展工作简历模板
- 人教版六年级数学下册全册大单元教学任务单
- 高考完型填空解题技巧(公开课)
- 人情往来(礼金)账目表
- 中低空飞行的大气环境
- 河北医疗服务价格手册指南
- 《言语治疗技术》期末考试复习题库(含新题)
- 退役军人就业创业培训承训机构申报表
- 从政经验交流发言3篇
- APQP项目小组人员能力矩阵图
- 经颅磁刺激的基础知识及临床应用
- 《妇产科-胎心监护》课件
评论
0/150
提交评论