[发明专利]用于存储器访问保护的方法和系统有效
申请号: | 201410204214.0 | 申请日: | 2014-05-14 |
公开(公告)号: | CN104166633B | 公开(公告)日: | 2019-06-25 |
发明(设计)人: | 黄海涛;范晔 | 申请(专利权)人: | 马维尔国际贸易有限公司 |
主分类号: | G06F12/14 | 分类号: | G06F12/14;G06F9/455 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 酆迅;李峥宇 |
地址: | 巴巴多斯*** | 国省代码: | 巴巴多斯;BB |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 存储器 访问 保护 方法 系统 | ||
本公开的各方面提供了用于存储器访问保护的方法和系统,具体地提供了一种用于空地址处理的方法。该方法包括在不在存储器访问码之前添加空校验码的情况下编译代码,与用于空地址的处理代码的第二地址相关联地存储存储器访问码的第一地址,响应于在编译代码的执行期间在第一地址处发生异常,基于存储信息来确定第二地址,以及执行第二地址处的处理代码。
本公开要求2013年5月16日提交的美国临时申请号61/824,121、“Method forDelaying Null Check in Java VM”的优先权,其过引用结合被整体地通到本文中。
技术领域
本申请涉及存储器领域,具体地,涉及用于用于存储器访问保护的方法和系统。
背景技术
在此提供的背景描述是出于一般地呈现本公开的背景的目的。目前署名的发明人的工作在其在本背景技术章节以及另外在提交时可能不会有资格作为现有技术的本描述的各方面中被描述的程度上,既然未明示地也未隐含地被承认为针对本公开的现有技术。
一般地,诸如Dalvik等java虚拟机将频繁使用的Java字节码编译成本地代码(native code)以改善运行时性能。在本地代码中,在存储器访问之前执行空校验(nullcheck)。在示例中,在访问对象之前,本地代码包括空校验码以检查对对象的参考是否是空的。当参考不是空的时,使用该参考来访问对象。
发明内容
本公开的各方面提供了一种用于空地址处理的方法。该方法包括:在不在存储器访问码之前添加空校验码的情况下编译代码,与用于空地址的处理代码的第二地址相关联地存储存储器访问码的第一地址,响应于在已编译代码的执行期间在第一地址处发生异常而基于存储信息来确定第二地址,以及执行第二地址处的处理代码。
为了与用于空地址的处理代码的第二地址相关联地存储存储器访问码的第一地址,在一个实施方式中,该方法包括:与第二地址相关联地将第一地址存储在表格中。此外,该方法包括:在表中搜索所述第一地址;以及输出与第一地址相关联地存储的第二地址。本公开的各方面提供了一种存储用于促使处理器执行用于空地址处理的操作的程序指令的非瞬态计算机可读介质。该操作包括:在不在存储器访问码之前添加空校验码的情况下编译代码,与用于空地址的处理代码的第二地址相关联地存储存储器访问码的第一地址,响应于在编译代码的执行期间在第一地址处发生异常而基于存储信息来确定第二地址,以及执行第二地址的处理代码。
本公开的各方面提供了另一方法。该方法包括由Java虚拟机在不在存储器访问码之前添加空校验码的情况下编译代码,与用于空地址的处理代码的第二地址相关联地存储存储器访问码的第一地址,响应于在已编译代码的执行期间在第一地址处发生异常而退出Java虚拟机,以使得内核基于存储信息来确定第二地址,并用所确定地址返回Java虚拟机以执行第二地址处的处理代码。
附图说明
将参考以下各图详细地描述作为示例而提出的本公开的各种实施方式,其中,相同的附图标记参考相同的元件,并且在所述附图中:
图1示出了根据本公开的实施方式的系统示例100的框图;
图2示出了概述根据本公开的实施方式的编译过程200的流程图;
图3示出了概述本公开的实施方式的用于空地址处理的过程300的流程图;
图4A-4C示出了根据本公开的实施方式的代码示例;以及
图5示出了根据本公开的实施方式的用于内核的伪代码示例500。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于马维尔国际贸易有限公司,未经马维尔国际贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410204214.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种海参枸杞保健米及其加工方法
- 下一篇:四线测试探针装置及其应用方法