[发明专利]一种解释器中间接跳转预测方法及系统有效
申请号: | 201310052296.7 | 申请日: | 2013-02-18 |
公开(公告)号: | CN103294518A | 公开(公告)日: | 2013-09-11 |
发明(设计)人: | 程旭;黄明凯;刘先华 | 申请(专利权)人: | 北京北大众志微系统科技有限责任公司 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 栗若木;曲鹏 |
地址: | 100080 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 解释 间接 跳转 预测 方法 系统 | ||
1.一种解释器中间接跳转预测方法,所述方法包括:
在解释器中插入引导指令,将字节码指针包含在所述引导指令中;
转移预测器识别所述引导指令,并将所需的字节码指针保存至转移预测器中;
当间接跳转指令运行时,转移预测器识别所述间接跳转指令,使用所述间接跳转指令的指针和所保存的所述字节码指针进行散列运算,并以所述散列运算得到的索引值访问转移目标缓冲,获得预测的转移目标地址。
2.如权利要求1所述的方法,其中:
所述在解释器中插入引导指令,将字节码指针包含在所述引导指令中,包括:
分析所述解释器的源代码,找到实现字节码功能的指令模板;
根据所述指令模板的尾部包含的使用字节码指针读取字节码的操作码的代码,得出字节码指针所在的寄存器号;
寻找所述指令模板的公共头部;
在所述指令模板的公共头部插入引导指令,在所述引导指令中指明保存字节码指针的寄存器号;
编译经过修改的解释器源代码,得到包含有所述引导指令的解释器。
3.如权利要求1所述的方法,其中:
所述转移预测器识别所述引导指令,并将所需的字节码指针保存至转移预测器中,包括:
转移预测器根据引导指令的编码识别引导指令;
转移预测器读取引导指令中标明的字节码指针所在的寄存器号;
根据该寄存器号访问寄存器堆,读取字节码指针;
将读取的字节码指针保存在转移预测器中。
4.如权利要求1所述的方法,其中:
所述转移预测器以所述散列运算得到的索引值访问转移目标缓冲,获得预测的转移目标地址后,所述方法还包括:
所述转移预测器从预测的转移目标地址处开始下一条转移指令的取值;
该转移指令执行完成之后,比较实际目标和预测的目标,判断预测是否正确,决定是否需要清除推测式执行的指令;
根据预测结果更新转移目标缓冲。
5.如权利要求1或2所述的方法,其中:
在所述指令模板的公共头部插入引导指令时,在所述指令模板的最后一条间接跳转指令之前、离所述间接跳转指令尽量远的地方插入所述引导指令。
6.一种解释器中间接跳转预测系统,所述系统包括:解释器和转移预测器,
所述解释器,用于插入引导指令,并将字节码指针包含在所述引导指令中;
所述转移预测器,用于识别所述引导指令,并将所需的字节码指针保存至转移预测器中;以及,当间接跳转指令运行时,转移预测器识别所述间接跳转指令,使用所述间接跳转指令的指针和所保存的所述字节码指针进行散列运算,并以所述散列运算得到的索引值访问转移目标缓冲,获得预测的转移目标地址。
7.如权利要求6所述的系统,其中:
所述解释器配置为按照如下方式在所述在解释器中插入引导指令,将字节码指针包含在所述引导指令中:
分析所述解释器的源代码,找到实现字节码功能的指令模板;
根据所述指令模板的尾部包含的使用字节码指针读取字节码的操作码的代码,得出字节码指针所在的寄存器号;
寻找所述指令模板的公共头部;
在所述指令模板的公共头部插入引导指令,在所述引导指令中指明保存字节码指针的寄存器号;
编译经过修改的解释器源代码,得到包含有所述引导指令的解释器。
8.如权利要求6所述的系统,其中:
所述转移预测器,采用如下方式识别所述引导指令,并将所需的字节码指针保存至转移预测器中:
转移预测器根据引导指令的编码识别引导指令;
转移预测器读取引导指令中标明的字节码指针所在的寄存器号;
根据该寄存器号访问寄存器堆,读取字节码指针;
将读取的字节码指针保存在转移预测器中。
9.如权利要求6所述的系统,其中:
所述转移预测器以所述散列运算得到的索引值访问转移目标缓冲,获得预测的转移目标地址后,还用于:
所述转移预测器从预测的转移目标地址处开始下一条转移指令的取值;
该转移指令执行完成之后,比较实际目标和预测的目标,判断预测是否正确,决定是否需要清除推测式执行的指令;
根据预测结果更新转移目标缓冲。
10.如权利要求6或7所述的系统,其中:
所述解释器在所述指令模板的公共头部插入引导指令时,在所述指令模板的最后一条间接跳转指令之前、离所述间接跳转指令尽量远的地方插入所述引导指令。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京北大众志微系统科技有限责任公司,未经北京北大众志微系统科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310052296.7/1.html,转载请声明来源钻瓜专利网。