计算机体系结构第四章-2_第1页
计算机体系结构第四章-2_第2页
计算机体系结构第四章-2_第3页
计算机体系结构第四章-2_第4页
计算机体系结构第四章-2_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1、n4.3 动态分支预测技术4.3 4.3 动态分支预测技术动态分支预测技术n动态分支预测动态分支预测 在程序运行时,根据分支指令过去的表现来预测其将来的行为。如果分支行为发生了变化,预测结果也跟着改变。有更好的预测准确度和适应性。n需要解决的关键问题需要解决的关键问题 如何记录分支的历史信息; 如何根据这些信息来预测分支的去向(甚至取到指令)。4.3 4.3 动态分支预测技术动态分支预测技术一一. .采用分支历史表采用分支历史表 BHTBHT(Branch History TableBranch History Table)n又称为分支预测缓冲器(Branch Prediciton Buffe

2、r)n最简单的动态分支预测方法。 n用BHTBHT来记录分支指令最近一次或几次的执行情况(成功或不成功),并据此进行预测。 1. 1. 只有只有1 1个预测位的分支预测缓冲个预测位的分支预测缓冲 记录分支指令最近一次的历史,BHTBHT中只需要1 1位二进制位。(最简单)2.2.采用两位二进制位来记录历史采用两位二进制位来记录历史n提高预测的准确度n研究结果表明:研究结果表明:两位分支预测的性能与n位(n2)分支预测的性能差不多。1)两位分支预测的状态转换如下所示:)两位分支预测的状态转换如下所示: 分支预测:分支预测: 不成功不成功 分支预测:分支预测: 成功成功 11 10 分支不成功分支

3、不成功 分支成功分支成功 分支不成功分支不成功 分支成功分支成功 01 00 分支不成功分支不成功 分支成功分支成功 分支不成功分支不成功 分支成功分支成功 4.3 动态分支预测技术动态分支预测技术2)操作步骤:()操作步骤:(2步)步)n分支预测分支预测n当分支指令到达译码段(IDID)时,根据从BHTBHT读出的信息进行分支预测 。n若预测正确,就继续处理后续的指令,流水线没有断流。否则,就要作废已经预取和分析的指令,恢复现场,并从另一条分支路径重新取指令。 n状态修改状态修改4.3 动态分支预测技术动态分支预测技术3. BHT方法只在以下情况下才有用:方法只在以下情况下才有用:n适用情况

4、:适用情况:判定分支是否成功所需的时间大于确定分支目标地址所需的时间。 n前述5段经典流水线:由于判定分支是否成功和计算分支目标地址都是在ID段完成,所以BHT方法不会给该流水线带来好处。4. 4. 研究结果表明:研究结果表明:对于SPEC89测试程序来说,具有大小为4K的BHT的预测准确率为预测准确率为82%82%99%99%。 一般来说,采用一般来说,采用4K4K的的BHTBHT就可以了。就可以了。 5. BHTBHT可以跟分支指令一起存放在指令可以跟分支指令一起存放在指令CacheCache中,也可以用一个专中,也可以用一个专门的硬件来实现。门的硬件来实现。 4.3 动态分支预测技术动态

5、分支预测技术二二. .采用分支目标缓冲器采用分支目标缓冲器BTB (Branch Target Buffer)BTB (Branch Target Buffer)n目的:目的:将分支的开销减少为将分支的开销减少为 0 0n方法:方法:分支目标缓冲器分支目标缓冲器 BTBn将分支成功的分支指令的地址和它的分支目标地址都放到一个缓冲区中保存起来,缓冲区以分支指令的地地址作为标识址作为标识。n这个缓冲区就是分支目标缓冲器分支目标缓冲器(Branch-Target Buffer,简记为BTB,或者Branch-Target Cache)。 4.3 动态分支预测技术动态分支预测技术1.1.BTB的结构的

6、结构 N = =? 当前取指令的地址当前取指令的地址 地址标识地址标识 预测的分支目标地址预测的分支目标地址 查找查找 认为本指令不是分支指令,认为本指令不是分支指令, 按普通指令正常执行。按普通指令正常执行。 Y 认为该指令是成功的分支指令,用预测的认为该指令是成功的分支指令,用预测的 分支目标地址作为下一条指令的分支目标地址作为下一条指令的 PCPC 值。值。 4.3 动态分支预测技术动态分支预测技术BTB是用专门的硬是用专门的硬件实现的一张表格。件实现的一张表格。 表格中的每一项表格中的每一项至少有两个字段:至少有两个字段: 执行过的成功分执行过的成功分支指令的地址;支指令的地址;(作为

7、该表的匹配作为该表的匹配标识标识 )预测的分支目标预测的分支目标地址。地址。 2. 2.采用采用BTBBTB后,在流水线各个阶段所进行的相关操作:后,在流水线各个阶段所进行的相关操作: 当当前前P PC C 值值 B BT TB B 中中存存在在匹匹配配的的项项? 成成功功分分支支指指令令? 当当前前分分支支成成功功? 以以B BT TB B 的的第第二二字字段段作作为为 否否 否否 正正常常执执行行指指令令 是是 是是 否否 分分支支预预测测正正确确, 继继续续执执行行后后继继指指令令, 指令无 不不会会出出现现停停顿顿。 分分支支预预测测错错误误,清清除除 已已取取的的指指令令,并并从从另

8、另 一一个个分分支支(即即失失败败处处) 取取指指令令。从从B BT TB B 中中删删 除除相相应应的的项项。 将将其其P PC C 值值和和分分支支 目目标标地地址址写写入入B BT TB B 中中,作作为为一一个个新新项项。 I IF F 段段 I ID D 段段 E EX X 段段 送送存存储储器器和和B BT TB B 分分支支目目标标地地址址送送给给P PC C 是是 预测分支成功预测分支成功实际分支实际分支不成功不成功BTB的建立的建立延迟延迟2个时钟周期个时钟周期之前不成功的分支之前不成功的分支未未执行过的分支执行过的分支普通指令普通指令三三. .基于硬件的前瞻执行基于硬件的前

9、瞻执行1.1. 前瞻执行(前瞻执行(SpeculationSpeculation)的基本思想)的基本思想 对分支指令的结果进行猜测,并假设这个猜测总是对的,然后按这个猜测结果继续取、流出和执行后续的指令。只是执行指令的结果不是写回到寄存器或存储器,而是放到一个称为ROB(ReOrder Buffer)的缓冲器中。等到相应的指令得到“确认确认” (commit)(即确实是应该执行的)之后,才将结果写入寄存器或存储器。4.3 动态分支预测技术动态分支预测技术2.2.基于硬件的前瞻执行结合了三种思想:基于硬件的前瞻执行结合了三种思想:1)动态分支预测。用来选择后续执行的指令。2)在控制相关的结果尚未

10、出来之前,前瞻地执行后续指令。3)用动态调度对基本块的各种组合进行跨基本块的调度。3.3.对对TomasuloTomasulo算法加以扩充,就可以支持前瞻执行。算法加以扩充,就可以支持前瞻执行。 把Tomasulo算法的写结果和指令完成加以区分,分成两个不同的段:n写结果写结果n指令确认指令确认 4.3 动态分支预测技术动态分支预测技术n写结果段写结果段把前瞻执行的结果写到ROB中;通过CDB在指令之间传送结果,供需要用到这些结果的指令使用。n指令确认段指令确认段 在分支指令的结果出来后,对相应指令的前瞻执行给予确认。如果前面所做的猜测是对的,把在ROB中的结果写到寄存器或存储器。如果发现前面

11、对分支结果的猜测是错误的,那就不予以确认,并从那条分支指令的另一条路径开始重新执行。 4.3 动态分支预测技术动态分支预测技术支持前瞻执行的浮点部件的结构 从从指指令令部部件件来来 浮浮点点寄寄存存器器 FP 地地址址部部件件 load/store 操操作作 浮浮点点操操作作 操操作作数数总总线线 操操作作总总线线 store 数数据据 1 1 存存储储部部件件 浮浮点点加加法法器器 浮浮点点乘乘法法器器 指指令令队队列列 地地址址 2 3 2 3 4 5 6 公公共共数数据据总总线线(CDB) 1 2 保保留留站站 ROB 数数据据 寄寄存存器器号号 缓缓冲冲器器 load store 地地

12、址址 保保留留站站 load 数数据据 介于保留站和寄介于保留站和寄存器组之间存器组之间支持前瞻执行的浮点部件的结构 从从指指令令部部件件来来 浮浮点点寄寄存存器器 FP 地地址址部部件件 load/store 操操作作 浮浮点点操操作作 操操作作数数总总线线 操操作作总总线线 store 数数据据 1 1 存存储储部部件件 浮浮点点加加法法器器 浮浮点点乘乘法法器器 指指令令队队列列 地地址址 2 3 2 3 4 5 6 公公共共数数据据总总线线(CDB) 1 2 保保留留站站 ROB 数数据据 寄寄存存器器号号 缓缓冲冲器器 load store 地地址址 保保留留站站 load 数数据据

13、 换名功能是由换名功能是由ROB来完成的。来完成的。 实现前瞻的关键思想:实现前瞻的关键思想: 允许指令乱序执行,但必须允许指令乱序执行,但必须顺序确认。顺序确认。4.3 4.3 动态分支预测技术动态分支预测技术n采用前瞻执行机制后,指令的执行步骤:采用前瞻执行机制后,指令的执行步骤: 书书P132(在(在TomasuloTomasulo算法的基础上改造的算法的基础上改造的 )1. 流出流出 n从浮点指令队列的头部取一条指令。从浮点指令队列的头部取一条指令。n如果有空闲的保留站(设为如果有空闲的保留站(设为r r)且有空闲的)且有空闲的ROBROB项(设为项(设为b b),),就流出该指令,并

14、把就流出该指令,并把相应的信息相应的信息放入保留站放入保留站r r和和ROBROB项项b b。n如果保留站或如果保留站或ROBROB全满,便停止流出指令,直到它们都有空全满,便停止流出指令,直到它们都有空闲的项。闲的项。 4.3 4.3 动态分支预测技术动态分支预测技术2. 执行执行 n如果有操作数尚未就绪,就等待,并不断地监测如果有操作数尚未就绪,就等待,并不断地监测CDBCDB。 ( (检测检测RAWRAW冲突冲突) )n当两个操作数都已在保留站中就绪后,就可以执行该指令的当两个操作数都已在保留站中就绪后,就可以执行该指令的操作。操作。3. 写结果写结果 n当结果产生后,将该结果连同本指令

15、在流出段所分配到的当结果产生后,将该结果连同本指令在流出段所分配到的ROBROB项的编号放到项的编号放到CDBCDB上,经上,经CDBCDB写到写到ROBROB以及所有等待该结果的保以及所有等待该结果的保留站。留站。n释放产生该结果的保留站。释放产生该结果的保留站。n storestore指令指令在本阶段完成,其操作为在本阶段完成,其操作为: : 4.3 4.3 动态分支预测技术动态分支预测技术n如果要写入存储器的数据已经就绪,就把该数据写入分如果要写入存储器的数据已经就绪,就把该数据写入分配给该配给该storestore指令的指令的ROBROB项。项。n否则,就监测否则,就监测CDBCDB,

16、直到那个数据在,直到那个数据在CDBCDB上播送出来,这上播送出来,这时才将之写入分配给该时才将之写入分配给该storestore指令的指令的ROBROB项项。4. 确认确认 对对分支指令、分支指令、store指令指令以及以及其他指令其他指令的处理不同:的处理不同:n其他指令其他指令(除分支指令和除分支指令和storestore指令)指令) 当该指令到达当该指令到达ROBROB队列的头部而且其结果已经队列的头部而且其结果已经就绪时,就把该结果写入该指令的目标寄存器,并从就绪时,就把该结果写入该指令的目标寄存器,并从ROBROB中删除该指令。中删除该指令。 4.3 4.3 动态分支预测技术动态分

17、支预测技术nstorestore指令指令 处理与上面类似,只是它把结果写入存储器。处理与上面类似,只是它把结果写入存储器。n分支指令分支指令 n当预测错误的分支指令到达当预测错误的分支指令到达ROBROB队列的头部时,清空队列的头部时,清空ROBROB,并从分支指令的另一个分支重新开始执行。并从分支指令的另一个分支重新开始执行。 (错误的前瞻执行)(错误的前瞻执行)n当预测正确的分支指令到达当预测正确的分支指令到达ROBROB队列的头部时,该指令执队列的头部时,该指令执行完毕。行完毕。 n4.4 多指令流出技术4.4 4.4 多指令流出技术多指令流出技术一一. .单流出(单发射)处理机和多流出

18、(多发射)处理机单流出(单发射)处理机和多流出(多发射)处理机 1. 单流出处理机单流出处理机每个周期只取一条指令、只译码一条指令,只执行一条指令,只写回一个运算结果。(理想的CPI=1) 设计目标:设计目标:每个时钟周期平均执行一条指令,即指令并行度ILPILP期望值为期望值为1 1. IF 1 2 3 4 5 6 7 时钟周期时钟周期 指令指令 I1 I2 I3 ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB 单流出时空图单流出时空图 4.4 多指令流出技术多指令流出技术2. 多流出处理机多流出处理机( (多发射多发射) )n每个周期同时取多条指令

19、、同时译码多条指令,同时执行多条指令,同时写回多个运算结果。n需要多套(m)指令部件(取指部件和译码部件)和多个写结果部件。设置多个指令执行部件,有些指令部件采用流水线结构。n设计目标:设计目标:一个时钟周期内流出多条指令, 指令并行度ILP1(CPI1)。 同时发射两条指令的同时发射两条指令的多发射处理机流水线:多发射处理机流水线: 1 2 3 4 5 6 7 时钟周期时钟周期 指令指令 I1 I2 I3 IF ID EX MEM WB IF IF ID ID EX EX MEM MEM WB WB IF ID EX MEM WBIF ID EX MEM WBIF ID EX MEM WB

20、IF ID EX MEM WBIF ID EX MEM WBIF ID EX MEM WB同时发射三条指令的多发射处理机的指令执行时空图同时发射三条指令的多发射处理机的指令执行时空图 4.4 多指令流出技术多指令流出技术二二. 多流出处理机有两种基本结构多流出处理机有两种基本结构1. 1. 超标量超标量处理机(空间并行):处理机(空间并行):n一个时钟周期内能够同时同时发射多条指令的处理机称为超标量处理机。 n最基本的要求是有两套或两套以上完整的指令执行部件。n为了能够在一个时钟周期内同时发射多条指令,超标量处理机必须有两条或两条以上能够同时工作的指令流水线。4.4 多指令流出技术多指令流出技

21、术n目前的指令调度技术,每个周期发射2-4条指令比较合理。n例如:Intel公司的i860、i960、Pentium,IBM公司的Power 6000每个周期发射2条指令;Pentium 每个周期发射3条指令。n超标量处理机在每个时钟周期流出的指令条数不固定,依代码的具体情况而定。有上限,设这个上限为m,就称该处理机为m-流出(发射m条指令)。n实际指令级并行度实际指令级并行度1 1ILPILPm mn可以通过编译器进行静态调度,也可以基于Tomasulo算法进行动态调度。 4.4 多指令流出技术多指令流出技术2. 2. 超长指令字超长指令字VLIWVLIW(Very Long Instruc

22、tion WordVery Long Instruction Word) 基本思路:基本思路:由编译器在编译时找出指令间潜在的并行性,进行适当调度安排,把多个能并行执行的操作组合在一起,成为一条具有多个操作段的超长指令(100多位到几百位),并设置多个功能部件。超长指令字被分割成一些操作段,每个字段称为一个操作槽,直接独立地控制一个功能部件。 VLIW处理机是一种单指令多操作码多数据的系统结构。处理机是一种单指令多操作码多数据的系统结构。第第k条指令条指令第第k + 1条指令条指令第第k + 2条指令条指令4.4 多指令流出技术多指令流出技术每拍启动一条长每拍启动一条长指令,执行指令,执行3个

23、个操作,相当于操作,相当于3条指令并行。条指令并行。n在每个时钟周期流出的指令条数是固定的固定的,这些指令构成一条长指令或者一个混合指令包。n指令包中,指令之间的并行性是通过指令显式地表示出来的。n指令调度是由编译器静态完成的。4.4 多指令流出技术多指令流出技术三三. . 多流出流水线的调度问题多流出流水线的调度问题n顺序发射与乱序发射:顺序发射与乱序发射:指令发射顺序是按照程序中指令排列顺序进行的称为顺序发射(in-order issue),否则,称为乱序发射(out-order issue)。n顺序完成与乱序完成:顺序完成与乱序完成:指令完成顺序是按照程序中指令排列顺序进行的称为顺序完成

24、。否则,称为乱序完成。n多流水的调度主要有三种方法:n顺序发射顺序完成顺序发射顺序完成n顺序发射乱序完成顺序发射乱序完成n乱序发射乱序完成乱序发射乱序完成4.4 多指令流出技术多指令流出技术n以如下指令为例,说明三种调度方法:以如下指令为例,说明三种调度方法:n 同时发射两条指令的同时发射两条指令的多发射处理机流水线:多发射处理机流水线:真数据相关真数据相关真数据相关真数据相关输出相关输出相关反相关反相关流水线流水线1流水线流水线2功能功能部件部件冲突冲突(1 1)顺序发射顺序完成)顺序发射顺序完成p 6 6条指令共用了条指令共用了1010个时钟周期才完成。个时钟周期才完成。p 有有8 8个空

25、闲的时钟周期。个空闲的时钟周期。指令流水线时空图指令流水线时空图(假设采用假设采用“定向技术定向技术”):插入插入5个个空闲的时空闲的时钟周期,钟周期,为了维持为了维持顺序完成。顺序完成。(2 2)顺序发射乱序完成)顺序发射乱序完成p共需共需9 9个周期。仅有个周期。仅有3 3个个空闲周期。空闲周期。p总执行时间缩短了;总执行时间缩短了;p功能部件利用率提高了。功能部件利用率提高了。FA3顺序发射乱序完成的指令完成次序:顺序发射乱序完成的指令完成次序:指令流水线时空图:指令流水线时空图:(3 3)乱序发射乱序完成)乱序发射乱序完成先行指令窗口:先行指令窗口: 能够从指令能够从指令Cache中预

26、取多条指令。多数超标量处理机的指令窗口大中预取多条指令。多数超标量处理机的指令窗口大小为小为2-8条指令。条指令。 能够通过硬件对窗口内的指令进行数据相关性分析和功能部件冲突的能够通过硬件对窗口内的指令进行数据相关性分析和功能部件冲突的检测。可以把没有功能部件冲突、没有数据相关和控制相关的指令超越检测。可以把没有功能部件冲突、没有数据相关和控制相关的指令超越它前面的指令先发射到操作部件中去。它前面的指令先发射到操作部件中去。(3 3)乱序发射乱序完成)乱序发射乱序完成p共需共需8 8个周期。无空个周期。无空闲周期。闲周期。p总执行时间最短;总执行时间最短;p功能部件利用率最高。功能部件利用率最

27、高。指令在流水线中的发射次序:指令在流水线中的发射次序:指令在流水线中的完成次序:指令在流水线中的完成次序:指令流水线时空图:指令流水线时空图:4.4 多指令流出技术多指令流出技术四、超流水线处理机四、超流水线处理机n两种定义:在一个时钟周期内能够分时分时发射多条指令的处理机称为超超流水线处理机。流水线处理机。指令流水线的段数大于等于8的流水线处理机。n提高处理机性能的两种方法:n通过增加硬件资源来提高处理机性能-超标量处理机n通过各部分硬件的重叠工作来提高处理机性能-超流水线处理机。n 对于一台每个时钟周期能流出n n条条指令的超流水线来说,这n条指令不是同时流出的,而是每隔1/n1/n个时

28、钟周期流出一条指令。n 即处理机的流水线周期流水线周期为1/n1/n个时钟周期。 IF IF IF IF WBMEM ID EX IF 1 2 3 4 5 6 7 时时钟钟周周期期 指指令令 I1 I2 I3 ID EX MEM WBI6 I5 I4 I7 ID EX MEM WBIF ID EX MEM WBID EX MEM WBIF ID EX MEM WBID EX MEM WB每个时钟周期分时发射每个时钟周期分时发射2条指令的超流水线处理机的指令执行时空图条指令的超流水线处理机的指令执行时空图4.4 多指令流出技术多指令流出技术1典型结构典型结构MIPS R4000采用8级超流水线结

29、构n每个时钟周期包含两个流水段;n是一种很标准的超流水线处理机结构;n指令流水线有8个流水段;n指令Cache和数据Cache的容量各8KB;n每个时钟周期可以访问Cache两次;n在一个时钟周期内可以从指令Cache中读出两条指令,从数据Cache中读出或写入两个数据。n主要运算部件有整数部件和浮点部件。4.4 多指令流出技术多指令流出技术nMIPS R4000的的8级流水线结构图级流水线结构图一个时钟周期一个时钟周期一个时钟周期一个时钟周期4.4 多指令流出技术多指令流出技术4.4 多指令流出技术多指令流出技术n每个时钟周期分时发射2条指令的超流水线处理机的指令执行时空图如下: WB WB

30、 时钟周期时钟周期 IF IS RF EX DF DS TC IF IS RF EX DF DS WB IF IS RF EX DF TC WB IF IS RF EX DS TC WB IF IS RF DF DS TC WB IF IS EX DF DS TC IF RF EX DF DS TC WB IS RF EX DF DS TC 周期周期 流水流水 线线 当前当前 CPU 周期周期 WB TC DS DF EX RF IS IF 2 2、与超标量机提高处理机性能的途径不同、与超标量机提高处理机性能的途径不同n超标量处理机超标量处理机通过重复设置多个“取指令”部件,多个“译码”、“执

31、行”和“写回结果”部件,使其同时工作来提高指令的执行速度,以增加硬件资源为代价来换取处理机性能。n超流水线处理机超流水线处理机只需要增加少量硬件,是通过各部分硬件的充分重叠工作来提高处理机性能的。4.4 4.4 多指令流出技术多指令流出技术 从流水线的时从流水线的时空图上看,超空图上看,超标量处理机采标量处理机采用的是空间并用的是空间并行性,而超流行性,而超流水线处理机采水线处理机采用的是时间并用的是时间并行性。行性。机器类型机器类型k k段流水线基准标段流水线基准标量处理量处理m m度超标量处理机度超标量处理机n n度超流水线处理机度超流水线处理机机器流水线周期机器流水线周期1 1个时钟周期

32、个时钟周期1 1个时钟周期个时钟周期1/n1/n个时钟周期个时钟周期同时发射指令条数同时发射指令条数1 1m m1 1指令发射等待时间指令发射等待时间1 1个时钟周期个时钟周期1 1个时钟周期个时钟周期1/n1/n个时钟周期个时钟周期指令级并行度指令级并行度ILPILP (期望值)(期望值)1 1m mn n三种不同类型处理机的性能比较三种不同类型处理机的性能比较4.4 4.4 多指令流出技术多指令流出技术n4.5 循环展开和指令调度4.5 4.5 循环展开和指令调度循环展开和指令调度n 增加指令间并行性最简单和最常用的方法:n开发循环级并行性循环的不同迭代之间存在的并行性。n在编译时多次展开

33、循环体,再对指令序列重新排序,以进一步提高流水线的并行性。例:例:对于下面的源代码,转换成MIPS汇编语言, 在不进行指令调度和进行指令调度两种情况下,分析其代码一次循环所需的执行时间。 for (i=1; i=1000; i+) xi = xi + s;解:把该程序翻译成MIPS汇编语言代码: 假设R1的初值是指向第一个元素,8(R2)指向最后一个元素;浮点寄存器F2保存常数s。 Loop:L.D F0F0, 0(R1)/取数 ADD.D F4F4, F0F0, F2 /相加 S.D F4F4, 0(R1) /存数 DADDIU R1R1, R1,#-8 /指针减8 BNE R1R1, R2

34、, Loop/ (R1) (R2),转移到LOOP4.5 循环展开和指令调度循环展开和指令调度 各操作时间不等,为保证流水线正常工作,插入等待周期。 指令流出时钟Loop: L.D F0, 0(R1) 1 (空转) 2 ADD.D F4, F0, F2 3 (空转) 4 (空转) 5 S.D F4, 0(R1) 6 DADDIU R1, R1,# -8 7 (空转) 8 BNE R1, R2, Loop 9 (空转) 10n 每个元素的操作需要每个元素的操作需要10个个时钟周时钟周期,其中期,其中5个个是空转周期。是空转周期。 对该循环体进行调度调度,执行时间由10个周期缩减为6个周期。 指令

35、流出时钟Loop: L.D F0, 0(R1) 1 DADDIU R1, R1, #-82 ADD.D F4, F0, F23 (空转)4 BNE R1, Loop 5 S.D F4,8(R1) 64.5 循环展开和指令调度循环展开和指令调度u只有只有L.D、ADD.D和和S.D这这3条指令条指令是有效操作。占用是有效操作。占用3个时钟周期。个时钟周期。u而而DADDIU、空转和、空转和BEN这这3个时钟个时钟周期都是附加的循环控制开销。周期都是附加的循环控制开销。n循环展开技术:循环展开技术:n把循环体的代码复制多次并按顺序排列,然后相应调整循环的结束条件。把循环体的代码复制多次并按顺序排列,然后相应调整循环的结束条件。n这给编译器进行指令调度带来了更大的空间。这

温馨提示

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

评论

0/150

提交评论