[发明专利]用于在可控运行时环境中进行基于硬件的动态逸出检测的方法和装置有效

专利信息
申请号: 201210033006.X 申请日: 2006-12-18
公开(公告)号: CN102693188A 公开(公告)日: 2012-09-26
发明(设计)人: Q·A·雅克布森;S·斯里尼瓦斯;A·C·布雷西;H·王 申请(专利权)人: 英特尔公司
主分类号: G06F12/08 分类号: G06F12/08;G06F12/02
代理公司: 永新专利商标代理有限公司 72002 代理人: 刘瑜;王英
地址: 美国加*** 国省代码: 美国;US
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 用于 可控 运行 环境 进行 基于 硬件 动态 检测 方法 装置
【说明书】:

本申请是申请日为2006年12月18日、申请号为200680045018.7的同名专利申请的分案申请。

技术领域

一个或多个实施例一般涉及集成电路和计算机系统设计领域。更具体地,一个或多个实施例涉及用于在可控运行时环境(managed run-time environment)中进行基于硬件的动态逸出(escape)检测的方法和装置。

背景技术

可控运行时环境是用于运行基于新编程语言的应用程序的基础结构,所述新编程语言例如Java和C-Sharp(C#)。在可控运行时环境的背景中,执行从公共内存区域的对象分配,所述公共内存区域被称为“堆”,其在该环境中经常是共享资源。一般地,在该环境中,作为自动内存管理的一部分来对堆进行周期性地收集。这通常涉及动态扫描为不可达对象所分配的内存,以及返回被该对象占用的内存。如本文所描述的,可以将所分配的对象分类为具有局部范围或全局范围。

如本文所描述的,被定义或分类为具有局部范围的对象是对单个线程可见的对象。换句话说,局部对象仅被局部指针访问,或仅被同一线程的其它局部对象链接。相反,被分类为具有全局范围的对象是指对一个以上线程可见的对象。

在多线程可控运行时环境(MRTE)中,当在已知对单个线程为局部的对象上进行操作时,能够应用很多优化。可以避免局部对象的同步,并且可以用启动局部收回的方式分配局部对象,从而使MRTE中全局垃圾收集器的工作负担最小化。

实际上大多数对象都是局部的,但是难以确定给定对象为局部还是全局。传统地,存在两种方法来确定对象是否为局部。第一种方法能够执行程序的编译器静态分析并确定对象从何时创建到何时消灭,对象无法变为对另一线程是可达的。遗憾的是,静态分析仅能标识可被可证实地标识为局部的一小部分对象。

第二种用于标识局部对象的方法为:动态地保持跟踪哪些对象为局部以及哪些对象为全局,并且通过检测出到对象的链接当前使得该对象变得全局可达来检测对象何时变为全局。如本文所描述的,对象的范围或可达性是指对象对任一单个线程的可见性,或称为“局部可达的”,其中该对象被视为具有局部范围。相反,将对一个以上线程可见的对象标识为具有全局范围,或者可选地称为“全局可达的”。

动态逸出检测提供了一种方法,其用于通过检测出到对象的链接当前使得该对象变得全局可达来确定局部对象何时变为全局。传统的动态逸出检测是通过检查对象的每次更新来实现的。基于所述更新,如果新链接将目标对象从局部可达对象变为全局可达对象,则该目标对象当前包括已修改的范围,从而局部对象当前为具有全局范围的或可选地标识为“全局可达的”全局对象。如本文所描述的,“写屏障(write barrier)”是指执行所述检查,以基于指针更新来确定是否检测出局部对象的动态逸出检测。

在大多数MRTE中,并未尝试标识局部对象,也未基于这种获知去优化运行。原因在于静态分析仅标识很少的优化候选。此外,动态逸出检测的开销减少了进行优化和利用局部对象获知的益处。

附图说明

在下面的附图中,通过实例而非限定的方式示出了本发明的多个实施例,其中:

图1是示出根据一个实施例的提供基于硬件的动态逸出检测的可控运行时环境(MRTE)的方框图。

图2是示出根据一个实施例的提供属性感知(aware)技术(AAT)的高速缓存的方框图。

图3是示出根据一个实施例的AAT指令的方框图。

图4是示出根据一个实施例的基本指针更新操作的方框图。

图5是示出根据一个实施例的用于如图1所示的MRTE的可选平台配置的方框图。

图6是示出根据一个实施例的计算机平台的方框图,在该计算机平台中,可以实现如图1所示的MRTE以提供基于硬件的动态逸出检测。

图7是示出根据一个实施例的对称多处理器(SMP)计算机系统的方框图,在该对称多处理器计算机系统中可以实现如图1所示的MRTE。

图8是示出根据一个实施例的用于提供基于硬件的动态逸出检测的方法的流程图。

图9是示出根据一个实施例的用于进行初始化以启动基于硬件的动态逸出检测的方法的流程图。

图10是示出根据一个实施例的用于发出AAT指令的方法的流程图。

图11是示出根据一个实施例的用于调用处理程序例程以验证目标对象的范围为局部的方法的流程图。

图12是示出根据一个实施例的用于将局部对象转换为全局对象的方法的流程图。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201210033006.X/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top