转移预测技术_第1页
转移预测技术_第2页
转移预测技术_第3页
转移预测技术_第4页
转移预测技术_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

叮叮小文库动态转移预测一、动态转移预测概述1、动态移预测的概念1)动态转移预测就是利用硬件来动态地预测转移指令的转移行为,以减少转移指令对流水线性能的影响,也就是减少转移指令的转移开销。2)动态转移预测相对的是静态转移预测,所谓的静态转移预测,是指在编译阶段由软件技术来实现对转移指令的预测3)动态转移预测发生在程序编译之后、执行之前2、态转移预测的思想利用前面一条转移指令的行为去预测后面一条转移指令的行为3、态转移预测的实现1)预测是由硬件来实现2)动态转移预测的实现方案一位转移预测缓冲器二位转移预测缓冲器相关转移预测缓冲器目标转移预测缓冲器3)具体实现方法设置一个用来预测转移指令转移行为的硬件,这个硬件叫做转移预测缓冲器转移预测缓冲器实际上是一个存储器,存放了转移指令的转移行为IF段取出一条转移指令时,利用转移指令的低位地址去访问转移预测缓冲器,在读出转移指令的同时也读 出了对转移指令转移行为的预测值4、动态转移预测要解决的问题动态转移预测要解决的对问题是由转移指令所引起的控制相关和控制冒险5、动态转移预测的原理在没有采用动态转移预测的流水线中,如果采用第一种实现方式,转移指令在ID流水段判断转移行为,在EX流水段计算目标地址,在MEM流水段完成转移;如果采用的是第二种方案,在ID流水段判断转移指令的转移行为、计算转移目标地址、转移完成。从上述可知,不管是采用哪种实现方案,在没有使用动态转移预测的流水线中,转移指令的转移是否成功要到ID流水段结束后才能知道。但采用动态转移预测后,在IF流水段取出指令后,利用指令的低位地址去访问转移预测缓冲器,也就是在读出转移指令的时候,对转移指令转移行为的预测值也被读出,所以在采用动态转移预测的流水线中,转移指令在IF流水段就可以知道其转移行为,也就是提前一个时钟周期知道其转移行为,所以可以减少流水线停顿。6、动态转移预测的性能1)预测的正确率假设一段程序有n条转移指令,在执行的时候其中有m条转移指令的预测是正确的,那么预测的正确率为m/n2)预测错误的恢复策略二、一位转移预测缓冲器1、示意图2、工作原理设置一个只有一位的缓冲器,有两个状态值0和1,其中0值预测转移不成功,1值预测转移是成功的。假设预测器的初始值是0,也就是对当前转移指令的预测是转移不成功的,当这条转移指令的实际转移行为是转移不成功的,那么预测是正确的,预测器的状态位不变,对下条转移指令的预测是转移不成功的;当这条转移指令的实际转移行为是转移成功的,那么预测错误,预测器的状态位变为1,对下一条转移指令的转移预测是转移成功的。假设预测器的初始值是1,也就是对当前转移指令的转移行为预测是转移成功的,当这条指令的实际转移行为是转移不成功的,那么预测错误,预测器的状态值边变为1,对下一条转移指令转移行为的预测是转移不成功的;当这条转移指令的实际转移行为是成功的,那么预测正确,预测器的状态位不变,对下一条转移指令的预测也是转移成功的3、实现方法设置一个只有一位的预测器,在IF段读出一条转移指令时用指令的低位地址去访问这个预测器,读出这条转移指令的转移行为预测值4、性能一位转移预测缓冲器的性能比较差,当程序的转移行为是间隔变换的,那么对转移指令的转移行为的预测的正确率为05、改进对一位转移预测缓冲器的改进就是使用二位转移预测缓冲器三、二位转移预测缓冲器1、示意图2、工作原理设置一个两位的预测缓冲器,有00、01、10、11四个状态值,其中00、01是预测转移不成功的,10、11是预测转移成功的。假设预测器的初始值是00,那么对当前转移指令的转移行为是预测转移不成功的,当当前转移指令的实际转移行为是成功的,那么预测错误,预测器的状态值变为01,对下一条转移指令的转移行为预测是不成功的;当当前转移指令的实际转移行为是不成功的,那么预测正确,预测器的状态位保持00不变,对下一条转移指令的转移行为的预测是不成功的。假设预测器的初始值是01,那么对当前转移指令的转移行为预测是转移不成功的,当当前转移指令的实际转移行为是成功的,那么预测错误,预测器的状态值变为10,对下一条转移指令的转移行为的预测是转移成功的;当当前转移指令的实际转移行为是不成功的,那么预测正确,预测器的状态值变为00,对下一条转移指令的转移行为的预测是不成功的假设预测器的初始值是10,那么对当前转移指令的转移行为预测是转移成功的,当当前转移指令的实际转移行为是不成功的,那么预测错误,预测器的状态值变为01,对下一条转移指令的转移行为的预测是不成功的;当当前转移指令的实际转移行为是转移成功的,那么预测正确,预测器的状态值变为11,对下一条转移指令的转移行为的预测是转移成功的假设预测器的初始值是11,那么对当前转移指令的转移行为的预测是转移成功的,当当前转移指令的实际的转移行为是不成功的,那么预测错误,预测器的状态值变为10,对下一条转移指令的转移行为的预测是转移成功的;当当前转移指令是转移成功的,那么预测正确,预测器的状态值不变,对下一条转移指令的转移行为的预测是转移成功的。3、实现方法1)设置一个专门的CACHE,在IF流水段读出一条转移指令的时候,用转移指令的低位地址去访问转移预测器,读出对转移指令的预测值。2)在CACHE的每一行设置两个附加的标志位,用来标志对转移指令的转移行为,当读出一条转移指令的时候,连同预测值一起读出4、二位转移预测器的性能二位转移预测器的性能比一位转移预测器的性能好5、改进方法1)增加位数2)增加容量四、相关转移预测缓冲器1、相关转移指令的概念有两条转移指令,后一条转移指令的转移行为与前面那条转移指令的转移行为相关,那么这两条转移指令叫相关转移指令。2、相关转移指令的例子11)程序IF ( aa= 2)aa= 0;IF ( bb = 2)bb = 0;IF (aa!= bb ) 2)指令序列DSUBI R3, R1, #2BNEZ R3, L1 ; br.b1 (aa!=2)DADD R1, R0, R0 ; aa=0L1: DSUBI F3, R2, #2BNEZ R3, L2 ; br.b2 (bb!=2)DADD R2, R0, R0 ; bb=0L2: DSUB R3, R1, R2 ; R3=aa-bbBEQZ R3, L3 ; br.b3 (aa=bb)3)相关性分析转移指令b3的转移行为与转移指令b1和转移指令b2的转移行为是相关的,当转移指令b1和转移指令b2的转移行为是不成功的,那么b3的转移是成功的。3、相关转移指令的例子21)程序If (d=0)d=1;if (d=1).2) 指令序列BNEZ R1, L1 ; brb1, (d!=0)DADDIU R1, R0, #1 ; d=0, so d=1L1: DADDIU R3, R1, # -1 ;BNEZ R3, L2 ; brb2, (d!=1)L2:3) 相关性分析4、相关转移预测缓冲器相关转移预测缓冲器是对一般转移预测缓冲器进行改造,使改造后的预测缓冲器既能够处理不相关转移指令的预测,也能够处理相关转移指令的预测5、对相关转移预测缓冲器的改进把(1,1)维的相关转移预测缓冲器改成(m,n)维,其中值m表示具有相关性的转移指令的数量,n表示相关转移预测缓冲器的位数6、相关转移预测缓冲器的性能相关转移预测缓冲器的性能比一般的转移预测缓冲器的性能好五、目标转移预测缓冲器1、目标转移预测缓冲器的定义转移预测缓冲器存放了被调用的指令的下一条要执行的预测指令的地址,这个转移预测缓冲器叫目标转移预测缓冲器。2、目标转移预测缓冲器的示意图3、目标转移预测缓冲器的工作原理转移指令的地址存放在Branch PC,转移指令所对应的转移目标指令地址存放在 Predicted PC中,当从内存中取出一条转移指令后,用这条指令的PC值,也就是地址值去查找目标转移预测缓冲器的 Branch PC,如果在Branch PC中找到相等的项,那么接下来到Branch PC中该项所对应的Predicted PC值所指示的内存中去取下一条指令,如果在Branch PC中没有找到,那说明这条指令不是转移指令,或是转移指令而预测转移是不成功的,接下来要到PC+4的内存中去取指令4、目标转移预测缓冲器的特点1)目标转移预测缓冲器在指令的IF段就去读转移预测缓冲器,在IF段结束的时候就知道该指令是否转移指令和转移指令是否转移成功2)在访问目标转移预测缓冲器的时候,还无法判断是否是转移指令,以及无法判断转移是否成功,还要进行匹配3)目标转移预测缓冲器的工作原理象CACHE的工作原理一样4)目标转移预测缓冲器只存放预测转移是成

温馨提示

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

评论

0/150

提交评论