欢迎来到天天文库
浏览记录
ID:30940773
大小:147.96 KB
页数:7页
时间:2019-01-04
《转移预测技术》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、动态转移预测一、动态转移预测概述1、动态移预测的概念1)动态转移预测就是利用硬件来动态地预测转移指令的转移行为,以减少转移指令对流水线性能的影响,也就是减少转移指令的转移开销。2)动态转移预测相对的是静态转移预测,所谓的静态转移预测,是指在编译阶段由软件技术來实现对转移指令的预测3)动态转移预测发生在程序编译Z后、执行Z前2、态转移预测的思想利用前面一条转移指令的行为去预测后面一条转移指令的行为3、态转移预测的实现1)预测是由硬件來实现2)动态转移预测的实现方案一位转移预测缓冲器二位转移预测缓冲器相关转移预测缓冲器口标
2、转移预测缓冲器3)具体实现方法设置一个用来预测转移指令转移行为的硬件,这个硬件叫做转移预测缓冲器转移预测缓冲器实际上是一个存储器,存放了转移指令的转移行为IF段取出一条转移指令时,利用转移指令的低位地址去访问转移预测缓冲器,在读岀转移指令的同时也读岀了对转移指令转移行为的预测值4、动态转移预测要解决的问题动态转移预测要解决的对问题是由转移指令所引起的控制和关和控制冒险5、动态转移预测的原理在没有采用动态转移预测的流水线中,如果采用第一种实现方式,转移指令在ID流水段判断转移行为,在EX流水段计算冃标地址,在MEM流水段
3、完成转移;如果采用的是第二种方案,在ID流水段判断转移指令的转移行为、计算转移目标地址、转移完成。从上述可知,不管是采用哪种实现方案,在没有使用动态转移预测的流水线中,转移指令的转移是否成功要到ID流水段结束后才能知道。但采用动态转移预测后,在IF流水段取出指令后,利用指令的低位地址去访问转移预测缓冲器,也就是在读出转移指令的时候,对转移指令转移行为的预测值也被读出,所以在采用动态转移预测的流水线中,转移指令在IF流水段就可以知道其转移行为,也就是提前一个吋钟周期知道其转移行为,所以可以减少流水线停顿。6、动态转移预测
4、的性能1)预测的正确率假设一段程序有n条转移指令,在执行的时候其中有m条转移指令的预测是正确的,那么预测的正确率为m/n2)预测错误的恢复策略二、一位转移预测缓冲器1示意图转移指令低位地址0:不转移1:转移预测失败取反2、工作原理设置一个只有一位的缓冲器,有两个状态值0和1,其中0值预测转移不成功,1值预测转移是成功的。假设预测器的初始值是0,也就是对当前转移指令的预测是转移不成功的,当这条转移指令的实际转移行为是转移不成功的,那么预测是正确的,预测器的状态位不变,对下条转移指令的预测是转移不成功的;当这条转移指令的实
5、际转移行为是转移成功的,那么预测错误,预测器的状态位变为1,对下一条转移指令的转移预测是转移成功的。假设预测器的初始值是1,也就是对当前转移指令的转移行为预测是转移成功的,当这条指令的实际转移行为是转移不成功的,那么预测错误,预测器的状态值边变为1,对下一条转移指令转移行为的预测是转移不成功的;当这条转移指令的实际转移行为是成功的,那么预测正确,预测器的状态位不变,对下--条转移指令的预测也是转移成功的3、实现方法设置一个只有一位的预测器,在IF段读出一条转移指令时用指令的低位地址去访问这个预测器,读出这条转移指令的转
6、移行为预测值4、性能一位转移预测缓冲器的性能比较差,当程序的转移行为是间隔变换的,那么对转移指令的转移行为的预测的正确率为05、改进对一位转移预测缓冲器的改进就是使用二位转移预测缓冲器三、二位转移预测缓冲器11100100NT1、示意图PredictNotTakenTPredictTaken2、工作原理设置一个两位的预测缓冲器,有()0、01、10、11四个状态值,其屮00、01是预测转移不成功的,10、11是预测转移成功的。假设预测器的初始值是00,那么对当前转移指令的转移行为是预测转移不成功的,当当前转移指令的实际
7、转移行为是成功的,那么预测错误,预测器的状态值变为01,对下一条转移指令的转移行为预测是不成功的;当当前转移指令的实际转移行为是不成功的,那么预测正确,预测器的状态位保持()0不变,对下一条转移指令的转移行为的预测是不成功的。假设预测器的初始值是01,那么对当前转移指令的转移行为预测是转移不成功的,当当前转移指令的实际转移行为是成功的,那么预测错误,预测器的状态值变为10,对下一条转移指令的转移行为的预测是转移成功的;当当前转移指令的实际转移行为是不成功的,那么预测正确,预测器的状态值变为00,对下一条转移指令的转移行
8、为的预测是不成功的假设预测器的初始值是10,那么对当前转移指令的转移行为预测是转移成功的,当当前转移指令的实际转移行为是不成功的,那么预测错误,预测器的状态值变为01,对下一条转移指令的转移行为的预测是不成功的;当当前转移指令的实际转移行为是转移成功的,那么预测正确,预测器的状态值变为11,对下一条转移指令的转移行为的预测是转移成
此文档下载收益归作者所有