计算机体系结构62965.docVIP

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机体系结构62965

计算机体系结构 班级:计11 任课教师:高清华 5月12日----5月16日教学指导 一 多指令流出技术 1.技术背景: 每个时钟周期流出一条指令,而且要减少数据相关和控制相关,达到CPI为1。为了更好的提高性能,若每个时钟周期流出多条指令,CPI就能小于1,这就是多指令流出。 2.多指令流出处理器有三种:超标量、超流水、超长指令字。 超标量:每个时钟周期流出1到8条指令不定,可以通过编译器静态调度,也可以通过记分牌或Tomasulo算法动态调度。 超长字令字(VLIW):每个时钟周期流出的指令数量是固定的,它们构成一条长字令,或说是一个混合指令包。超长字令字的处理器目前只能通过编译静态调度。硬件不负责动态处理。 超流水:就是每一个功能部件一步流水化,使得一个功能部件在一拍中可以处理多条指令。本章不作讨论。 二 超标量 超标量处理器每时钟周期流出1--8条流水指令数不定。能够同时流出指令满足条件: 指令不相关 某些其他限制条件:如每个时钟周期访存不能多于1次;不同处理器限制不同。 如果出现相关或不满足限制条件,只能流出前面指令,所以流出指令数不定。 超标量处理器的指令序列可以采用静态调度或动态调度。 DLX处理器的超标量实现: 一次流出两条指令 先一条整数指令(Load/store/分支/整数运算)和后跟任意一条浮点指令。 编译要求指令成对,且与64位边界对齐,整数部分在前。 第一条指令流出后才可以流出第二条,由硬件动态决定,如果不满足条件只流出第一条指令。 图4.16给出两路超标量指令流示意图。 多指令流出需解决的问题: 必须采用流水功能部件或多个独立功能部件。 整数操作和浮点操作搭配使用不同的寄存器组和不同的功能部件。不必增加硬件。但是浮点访存指令,使用整数部件,从而导致结构冲突;需增加冲突监测机制的硬件。 整数部分指令是浮点数据访存,导致浮点寄存器端口访存竞争。 流出指令对中浮点指令和整数指令相关,会产生新的数据相关。浮点寄存器端口问题通过限制浮点存取(访存)指令单独执行来解决。也可解决数据存取和浮点操作指令同时流出的结构相关。另一种方法是给浮点寄存器设置两个端口:一个读端口、一个写端口。 浮点Load后跟浮点操作指令且相关,硬件能检测出,从而限制后面浮点指令流出。 简单DLX中Load有一个时钟周期延迟,使用此结果的指令没有停是无法使用Load结果的;而在DLX超标量流水线中,在同一个时钟周期和下一个时钟周期不能使用Load结果。这意味着后面三条指令不能使用Load结果。 为了有效的利用超标量可获得的并行度,需采用更有效的编译技术和硬件调度技术,以克服限制超标量流水线的性能发展障碍。 超标量处理器的循环展开和指令调度。(静态调度) 例4.9 Loop: LD F0, 0(R1): F0=数组元素 ADDDD F4, F0,F2: 加上在F2中标量 SD 0(R1),F4: R1, R1,#8: 将指令减少8(每个DW) BNEZ R1,Loop: R1不等于0,转移 循环展开5次 5个LD,ADDD,SD 1个SUBI,1个BNEZ 如图4.17所示 性能分析: 12个时钟周期/5=2.4时钟周期/每个迭代 性能受限于整数计算和浮点计算之间平衡问题,无足够浮点指令使流水线达到饱和。 超标量处理器(双指令流出):第一条整数指令和第二条浮点指令同时流出,如果相关,顺序流出。 超标量处理器与超长指令字处理器相比有两个优点: 超标量结构对代码是透明的,处理器自己检测下一条指令能否流出,从而不需要排列指令来满足指令流出。 即使未经过调度的代码或是旧的编译器编译过代码也可以运行,当然运行的效果不会很好。解决办法:用动态调度技术。 三 多指令流出的动态调度 多指令流出,可用记分牌技术或Tomasulo算法进行动态调度处理。 扩展Tomasulo算法,流出两条指令:一条是整数指令,另一条是浮点指令顺序流向保留站。整数数据寄存器和浮点寄存器分开,不使用相同寄存器就可以同时将一条整数指令和一条浮点指令送到它们的保留站中。这种方法阻碍了在一个时钟周期内先浮点Load和浮点加两条相关指令的流出。但可以送到保留站中以后顺序执行。 双指令流出两种方法: 指令流出进一步流水化,指令流水速度是基本机器周期的两倍。这样,在后面指令流出前更改寄存器表,于是两条指令可同时执行。 对流水的指令进行限制。只有浮点的取操作指令或是从整数寄存器将数据送入浮点寄存器的传送操作,才会产生相关而导致两条指令不能同时流出。 使用结果队列前减少存储器取操作或数据传送操作对保留站的需求量。 使用队列还可以使等待操作数的存操作指令提高流出。动态调度对数据传送最有效,静态调度对

文档评论(0)

jiupshaieuk12 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档