多指令流出技术课件_第1页
多指令流出技术课件_第2页
多指令流出技术课件_第3页
多指令流出技术课件_第4页
多指令流出技术课件_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、4.4 多指令流出技术 一个时钟周期内流出多条指令, CPI1。 多指令流出处理器有三种基本结构: 超标量(Superscalar) 每个时钟周期流出的指令数不定,它既可 以通过编译器静态调度,也可以通过记分牌或 Tomasulo算法动态调度, 超流水(Super Pipeline) 将每个功能部件进一步流水化,特别是取 指令或指令流出被分解为多个段,使得一个功 能部件在一拍中可以处理多条指令。第四章 指令级并行 超长指令字VLIW(Very Long Instruction Word,简记为VLIW) 每个时钟周期流出的指令数是固定的,它 们构成一条长指令,或说是一个混合指令包, 这种处理器

2、目前只能通过编译静态调度。 4.4 多指令流出技术 采用前面假设的流水线延迟,并且采用相同的代 码,即将1个标量和数组相加: Loop:LDF0,0(R1);F0=数组元素 ADDDF4,F0,F2;加上在F2中的标量 SD0(R1),F4;存结果 SUBIR1,R1,#8 ;将指针减少8(每个DW) BNEZR1,Loop;R1不等于0,转移4.4 多指令流出技术4.4.1 静态超标量技术 在典型的超标量处理器中,每个时钟周期可 流出1到8条指令。 流出的指令必须不相关且满足某些限制条件。 超标量处理器的指令序列可以采用静态调度 或动态调度。 DLX处理器是怎样实现超标量的呢? 假设:每个时

3、钟周期流出两条指令: 取(load)指令、存(store)指 令、分支指令或整数运算操作, 任意的浮点操作。 4.4 多指令流出技术指令整数指令浮点指令整数指令浮点指令整数指令浮点指令整数指令浮点指令IFIFIDIDIFIFEXEXIDIDIFIFMEMMEMEXEXIDIDIFIFWBWBMEMMEMEXEXIDIDWBWBMEMMEMEXEXWBWBMEMMEMWBWB流水线工作情况 图4.16 两路超标量指令执行示意图 4.4 多指令流出技术3.通过对指令流出部件采用流水技术,可以很大地 提高指令流出的速率,但同时必须采用流水化的 功能部件或多个独立的功能部件。4.并行流出一条整数指令和

4、一条浮点指令,除了一 般的冲突监测机制,只要增加少量的硬件。5.指令相关情况 浮点数据访存指令将使用整数部件,会增 加访存的结构冲突。监测是否存在结构相 关只需检查两条指令的操作码。 浮点寄存器端口的访问冲突: 4.4 多指令流出技术取操作指令的结果不能在本周期或下一个周期使用,所以后续三条指令不能使用其结果。分支延迟也变为三条指令,因为分支指令肯定是指令组合的第一条指令。 例4.9 下面是前面我们使用的循环程序段,在超标 量DLX流水线上将如何调度? Loop: LD F0,0(R1) ;F0=数组元素 ADDDF4,F0,F2 ;加上在F2中的标量 SD0(R1),F4 ;存结果 SUBI

5、R1,R1,#8 ;将指针减少8(每个DW) BNEZR1,Loop ;R1不等于0,转移 4.4 多指令流出技术解:展开并经过调度的指令序列如图4.17所示。 Loop: LDLDLDLDLDSDSDSDSDSUBIBNEZSDF0(R1)F6,-8(R1)F10,-16(R1)F14,-24(R1)F18,-32(R1)0(R1),F4-8(R1),F8-16(R1),F12-24(R1),F16 R1,R1,#40R1,Loop8(R1),F20ADDDADDDADDDADDDADDDF4,F0,F2F8,F6,F2F12,F10,F2F16,F14,F2F20,F18,F2123456

6、789101112 整数指令 浮点指令 时钟周期 超标量流水线上展开的代码每次循环需12个时钟周期,即每个迭代是2.4个时钟周期。而在普通的DLX流水线上,没有调度的迭代1次为9个时钟周期,性能提高了3.75倍;调度后为6个时钟周期,性能提高了2.5倍;展开4次并调度后每个迭代为3.5个时钟周期,性能提高了1.4倍。 4.4 多指令流出技术6.超标量处理器与超长指令字处理器相比有两个 优点: (1)超标量结构对程序员是透明的,因为处理 器能自己检测下一条指令能否流出,从而 不需要排列指令来满足指令流出; (2)即使是没有经过编译器对超标量结构进行 调度优化的代码或是旧的编译器生成的代 码也可以

7、运行,当然运行的效果不会很好。 要想达到很好的效果,方法之一: 使用动态超标量调度技术。4.4 多指令流出技术4.4.2 动态多指令流出技术 扩展Tomasulo算法:支持两路超标量。 即每个时钟周期流出两条指令。 (一条是整数指令,另一条是浮点指令) 1.要求 指令按顺序流向保留站,否则信息记录机制 会太复杂。 将整数寄存器和浮点寄存器分开,只要不使 用相同的寄存器就可同时将一条整数指令和 一条浮点指令送到它们的保留站中去。 限制相关指令的并行执行。 4.4 多指令流出技术2.有两种方式可以实现两路超标量。 (1) 将指令流出段进一步流水化,使指令流出的 速度是基本机器周期的两倍。 (2)

8、对流出的指令组合进行限制.只有浮点的取 操作指令或是从整数寄存器将数据送入浮点寄 存器的传送操作,才会产生相关而导致两条指 令不能同时执行。如果对流出的指令组合限制 减少,指令组合的复杂度增加,可能出现的相 关情况会更多,对硬件相关检测的要求就会大 提高。4.4 多指令流出技术例4.10 下面的代码运行于采用Tomasulo算法的两路动态超标量DLX流水线上。现做以下假设:(1)无论是否相关,每个时钟周期能流出一条整 数指令和一条浮点指令;(2)有1个整数部件,用于整数运算和地址计算; 有1个独立的浮点功能部件;(3)指令流出和写结果各占用1个时钟周期;(4)有1个具有独立分支预测能力的分支预

9、测部件, 分支指令只能单独流出,没有分支延迟;(5)因为写结果占用1个周期,所以产生结果的延 迟为:整数运算1个周期,存储器取数操作2 个周期,浮点运算3个周期; 4.4 多指令流出技术 列表表示出循环前面三遍循环各个指令的流出、开始执行、访存和将结果写到CDB的时间。需要分析的源代码为: Loop:LDF0,0(R1);F0=数组元素 ADDDF4,F0,F2;加上在F2中的标量 SD0(R1),F4;存结果 SUBIR1,R1,#8 ;将指针减少8(每个DW) BNEZR1,Loop;R1不等于0,转移解 运行结果如图4.18所示。 4.4 多指令流出技术 从图中可以看出: 程序基本可以达

10、到3拍流出5条指令, IPC=5/3=1.67条/拍 虽然指令的流出率比较高,但是执行效率并不是很高,16拍共执行15条指令,平均指令执行速度为15/16=0.94条/拍。 4.4 多指令流出技术4.4.3 超长指令字技术 采用多个独立的功能部件,将多条指令的操作 组装成固定格式的指令包,形成一条非常长的 指令。 超长指令字的格式固定,处理过程简单,采用 超长指令字的处理器所需硬件量比超标量要少。 下面讨论流出通道较宽的超长指令字处理器。 4.4 多指令流出技术1.超长指令字处理器的指令包括: 两个整数操作、两个浮点操作、两个访存操作和一个分支操作, 每个操作可能占用16到24位,从而指令长度

11、达到112到168位。2.指令中每一个操作字段称为操作槽。3.超长指令字处理器中功能部件的数量和指令中包含的操作数量是对应的。4.假设有一种技术可以产生满足超长指令字要求的代码段,这个代码段用来构建超长指令字。 5.下面看一个最基本的超长指令字处理器的操作过程。 4.4 多指令流出技术例4.11 假设超长指令字每个时钟周期可同时流出两 条访存指令、两条浮点指令和一条整数指令 或分支指令。给出在此处理器上数组元素循 环加一个标量的展开后的代码序列。尽可能 展开循环以消除空操作,忽略分支指令的延 迟槽。 解 代码序列入图4.19所示,展开5遍循环可以 消除空操作。 4.4 多指令流出技术LDLDL

12、DSDSDSDF0,0(R1)F10,-16(R1)F18,-32(R1)0(R1),F4-16(R1),F128(R1),F20LDLDSDSDF6,-8(R1)F14,-24(R1)-8(R1),F824(R1),F16ADDDADDDADDDF4,F0,F2F12,F10,F2F20,F18,F2ADDDADDDF8,F6,F2F16,F14,F2SUBIBNEZR1,R1,#40R1,Loop访存指令1 访存指令2 浮点指令1 浮点指令2 整数/转移指令 这段程序的运行时间为8个时钟周期,每遍循环平均1.6个时钟周期。8个时钟周期内流出了17条指令,每个时钟周期2.1条。8个时钟周期共有操作槽85=40个,有效槽的比例为42.5%。 功能部件使用效率不高是超长指

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论