[发明专利]使用间接控制流指令的推测在审
申请号: | 201980026183.5 | 申请日: | 2019-03-14 |
公开(公告)号: | CN111989676A | 公开(公告)日: | 2020-11-24 |
发明(设计)人: | 理查德·威廉·恩肖;克里斯托夫·埃瓦里斯特·乔治·贝尔斯;詹姆斯·格林哈勒;斯科特·道格拉斯 | 申请(专利权)人: | ARM有限公司 |
主分类号: | G06F21/52 | 分类号: | G06F21/52;G06F21/54;G06F21/12;G06F9/38 |
代理公司: | 北京东方亿思知识产权代理有限责任公司 11258 | 代理人: | 杨佳婧 |
地址: | 英国*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 使用 间接 控制 指令 推测 | ||
1.一种设备,所述设备包括:
输入电路,用于接收输入数据;
输出电路,用于输出要由数据处理电路执行的指令序列;以及
生成电路,用于执行生成过程以使用所述输入数据生成所述指令序列,所述指令中的至少一些指令被分组为函数,其中
所述指令序列包括间接控制流指令,所述间接控制流指令包括指示所述间接控制流指令的目标存储在何处的字段;
所述目标是所述函数中的一个函数的入口点;并且
所述生成过程使所述指令序列中的至少一条指令在执行所述间接控制流指令之后存储控制流推测状态。
2.根据权利要求1所述的数据处理设备,其中
所述控制流推测状态指示控制流推测是否正确地发生。
3.根据前述权利要求中任一项所述的数据处理设备,其中
所述指令序列中的存储所述控制流推测状态的所述至少一条指令被禁止经受所述数据处理电路的数据值推测。
4.根据前述权利要求中任一项所述的设备,其中
所述指令序列中的存储所述控制流推测状态的所述至少一条指令适于使所述数据处理电路执行比较并根据比较结果来存储所述控制流推测状态。
5.根据权利要求4所述的设备,其中
所述输入数据包括对所述函数中的一个函数的调用;并且
所述指令序列在所述目标处包括所述指令序列中的存储所述控制流推测状态的所述至少一条指令。
6.根据权利要求5所述的设备,其中
所述指令序列中与所述调用相关联的所述目标是通过基于所述调用和进行所述调用所针对的数据结构执行查找操作而确定的。
7.根据权利要求6所述的设备,其中
所述调用是虚函数调用;
对与所述数据结构相关联的虚拟表执行所述查找操作,所述虚拟表包括对与所述数据结构相关联的虚函数的入口点的一个或多个引用;并且
在每个所述入口点处,所述比较确定该入口点的地址是否与所述虚拟表中存储的该入口点的地址相对应。
8.根据权利要求6-7中任一项所述的设备,其中
响应于所述比较结果与计算结果相对应,所述控制流推测状态指示控制流推测正确地发生。
9.根据前述权利要求中任一项所述的设备,其中
所述指令序列的至少一个子集符合应用二进制接口;并且
通过根据所述应用二进制接口在存储电路中存储非法值,在所述指令序列中的函数之间保持所存储的控制流推测状态。
10.根据权利要求9所述的设备,其中
响应于所述控制流推测状态指示发生了推测未命中,将所述非法值存储在所述存储电路中。
11.根据权利要求9-10中任一项所述的数据处理设备,其中
所述存储电路包括栈指针寄存器;并且
所述非法值是0。
12.根据前述权利要求中任一项所述的设备,其中
所述指令序列包括访问指令,所述访问指令包括访问地址;并且
所述访问指令的正确执行取决于所述控制流推测状态。
13.根据权利要求12所述的设备,其中
所述指令序列包括对所述访问指令之前的所述访问地址或由所述访问指令从所述访问地址检索到的数据执行运算的指令;并且
所述运算取决于所述控制流推测状态。
14.根据权利要求13所述的设备,其中
所述操作是包括操作数的逻辑与运算;并且
在所述控制流推测状态指示发生推测未命中的情况下,所述操作数是0。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于ARM有限公司,未经ARM有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201980026183.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:细菌产纤维素碳的制造方法
- 下一篇:排水泵组件和用于控制排水泵的方法