44多指令流出技术.ppt
《44多指令流出技术.ppt》由会员分享,可在线阅读,更多相关《44多指令流出技术.ppt(25页珍藏版)》请在三一文库上搜索。
1、4.4 多指令流出技术,一个时钟周期内流出多条指令, CPI1。 多指令流出处理器有三种基本结构:,超标量(Superscalar) 每个时钟周期流出的指令数不定,它既可 以通过编译器静态调度,也可以通过记分牌或 Tomasulo算法动态调度, 超流水(Super Pipeline) 将每个功能部件进一步流水化,特别是取 指令或指令流出被分解为多个段,使得一个功 能部件在一拍中可以处理多条指令。,第四章 指令级并行,超长指令字VLIW(Very Long Instruction Word,简记为VLIW) 每个时钟周期流出的指令数是固定的,它 们构成一条长指令,或说是一个混合指令包, 这种处理
2、器目前只能通过编译静态调度。,4.4 多指令流出技术,采用前面假设的流水线延迟,并且采用相同的代 码,即将1个标量和数组相加: Loop: LD F0,0(R1) ;F0=数组元素 ADDD F4,F0,F2 ;加上在F2中的标量 SD 0(R1),F4 ;存结果 SUBI R1,R1,#8 ;将指针减少8(每个DW) BNEZ R1,Loop ;R1不等于0,转移,4.4 多指令流出技术,4.4.1 静态超标量技术,在典型的超标量处理器中,每个时钟周期可 流出1到8条指令。 流出的指令必须不相关且满足某些限制条件。 超标量处理器的指令序列可以采用静态调度 或动态调度。 DLX处理器是怎样实现
3、超标量的呢? 假设:每个时钟周期流出两条指令: 取(load)指令、存(store)指 令、分支指令或整数运算操作, 任意的浮点操作。,4.4 多指令流出技术,1. 要求:,取指令和解码部件都是64位。 编译结果要求指令按要求组合成对,且与64位边 界对齐,整数指令顺序在前。 只有第一条指令流出后才可以流出第二条指令。 如果第二条指令不满足条件就只流出第一条指令。,2. DLX两路超标量指令流的示意图,4.4 多指令流出技术,指令 整数指令 浮点指令 整数指令 浮点指令 整数指令 浮点指令 整数指令 浮点指令,IF IF,ID ID IF IF,EX EX ID ID IF IF,MEM ME
4、M EX EX ID ID IF IF,WB WB MEM MEM EX EX ID ID,WB WB MEM MEM EX EX,WB WB MEM MEM,WB WB,流水线工作情况,图4.16 两路超标量指令执行示意图,4.4 多指令流出技术,3.通过对指令流出部件采用流水技术,可以很大地 提高指令流出的速率,但同时必须采用流水化的 功能部件或多个独立的功能部件。 4.并行流出一条整数指令和一条浮点指令,除了一 般的冲突监测机制,只要增加少量的硬件。 5.指令相关情况,浮点数据访存指令将使用整数部件,会增 加访存的结构冲突。监测是否存在结构相 关只需检查两条指令的操作码。 浮点寄存器端口
5、的访问冲突:,4.4 多指令流出技术,限制浮点数据存取(访存)指令单独执行。 给每个浮点寄存器设置两个的端口,一个读端口,一条写端口,通过增加资源来消除结构相关。,当指令组合中包含浮点取指令,且后面的浮点指令 与之相关时,硬件必须能够检测出来,从而限制后 面浮点指令的流出。除了这种情况,其它可能存在 的相关检测和单流出流水线是相同的。另外,还需 要添加一些额外的相关专用通路来避免不必要的流 水线空转。 限制超标量流水线的性能发挥的障碍:,4.4 多指令流出技术,取操作指令的结果不能在本周期或下一个周期使 用,所以后续三条指令不能使用其结果。 分支延迟也变为三条指令,因为分支指令肯定是 指令组合
6、的第一条指令。,例4.9 下面是前面我们使用的循环程序段,在超标 量DLX流水线上将如何调度? Loop: LD F0,0(R1) ;F0=数组元素 ADDD F4,F0,F2 ;加上在F2中的标量 SD 0(R1),F4 ;存结果 SUBI R1,R1,#8 ;将指针减少8(每个DW) BNEZ R1,Loop ;R1不等于0,转移,4.4 多指令流出技术,解:展开并经过调度的指令序列如图4.17所示。,Loop:,LD LD LD LD LD SD SD SD SD SUBI BNEZ SD,F0(R1) F6,-8(R1) F10,-16(R1) F14,-24(R1) F18,-32(
7、R1) 0(R1),F4 -8(R1),F8 -16(R1),F12 -24(R1),F16 R1,R1,#40 R1,Loop 8(R1),F20,ADDD ADDD ADDD ADDD ADDD,F4,F0,F2 F8,F6,F2 F12,F10,F2 F16,F14,F2 F20,F18,F2,1 2 3 4 5 6 7 8 9 10 11 12,整数指令 浮点指令 时钟周期,超标量流水线上展开的代码每次循环需12个时钟周期,即每个迭代是2.4个时钟周期。而在普通的DLX流水线上,没有调度的迭代1次为9个时钟周期,性能提高了3.75倍;调度后为6个时钟周期,性能提高了2.5倍;展开4次并
8、调度后每个迭代为3.5个时钟周期,性能提高了1.4倍。,4.4 多指令流出技术,6.超标量处理器与超长指令字处理器相比有两个 优点: (1)超标量结构对程序员是透明的,因为处理 器能自己检测下一条指令能否流出,从而 不需要排列指令来满足指令流出; (2)即使是没有经过编译器对超标量结构进行 调度优化的代码或是旧的编译器生成的代 码也可以运行,当然运行的效果不会很好。 要想达到很好的效果,方法之一: 使用动态超标量调度技术。,4.4 多指令流出技术,4.4.2 动态多指令流出技术,扩展Tomasulo算法:支持两路超标量。 即每个时钟周期流出两条指令。 (一条是整数指令,另一条是浮点指令) 1.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 44 指令 流出 技术
链接地址:https://www.31doc.com/p-2885468.html