【技术实现步骤摘要】
【国外来华专利技术】相关申请的交叉引用本公开内容要求对2013年11月25日提交的美国临时专利申请No.61/908,429的优先权和来自该美国临时专利申请的权益,它的整体通过引用并入本文。
本专利文件中所描述的技术一般性地涉及计算机编程并且更特别地涉及Java编程。
技术介绍
Java程序可以运行在Java虚拟机(JVM)正在其上执行的任何机器上。在JVM(例如,Dalvik)中,在Java程序的启动时,可以使用解释器(interpreter)来执行Java字节代码。例如,在Java程序被执行之前,程序的源代码被分解为Java字节代码。在运行时,JVM的Java解释器对字节代码进行解释。作为一种备选,JVM可以选择不对字节代码进行解释,而是将字节代码编译分为本机(native)代码。JVM然后促使本机代码直接由一个或多个处理器执行。例如,频繁使用的字节代码被编译为本机代码以改进运行性能。即时(Just-in-time)编译(JIT)(也被称为动态转换)是程序或应用在运行时的执行期间而不是在执行之前进行的编译。经常地,JIT牵涉到向用于Java程序的本机代码的转换/编译。例如,本机代码(例如,轨迹(trace))被放入到JIT代码高速缓存中以用于执行。如图1中所示出的,JIT代码高速缓存100包括通常使用的子例程(例如,TEMPLATE_CMP_LONG)和本机代码(例如,轨迹-1)。
技术实现思路
根据本 ...
【技术保护点】
一种用于循环过程中止的方法,所述方法包括:在代码高速缓存中加载与循环过程相关联的一个或多个循环指令;确定所述代码高速缓存中的与所述循环过程的分支相关联的一个或多个分支指令;检测中止事件;一经检测到所述中止事件,在所述代码高速缓存中将所述分支指令替换为一个或多个跳转指令;响应于所述跳转指令在所述代码高速缓存中被执行,恢复所述代码高速缓存中的所述分支指令;中止所述循环过程;以及在解释器中执行一个或多个中止指令,所述中止指令与所述中止事件相关联。
【技术特征摘要】
【国外来华专利技术】2013.11.25 US 61/908,4291.一种用于循环过程中止的方法,所述方法包括:
在代码高速缓存中加载与循环过程相关联的一个或多个循环指
令;
确定所述代码高速缓存中的与所述循环过程的分支相关联的一
个或多个分支指令;
检测中止事件;
一经检测到所述中止事件,在所述代码高速缓存中将所述分支指
令替换为一个或多个跳转指令;
响应于所述跳转指令在所述代码高速缓存中被执行,
恢复所述代码高速缓存中的所述分支指令;
中止所述循环过程;以及
在解释器中执行一个或多个中止指令,所述中止指令与所述
中止事件相关联。
2.根据权利要求1所述的方法,其中所述分支对应于与所述循
环过程相关联的循环返回边缘。
3.根据权利要求1所述的方法,进一步包括:
响应于所述跳转指令在所述代码高速缓存中被执行,跳转到所述
解释器。
4.根据权利要求1所述的方法,进一步包括:
设置中止标记。
5.根据权利要求4所述的方法,其中在所述循环过程期间不测
试所述中止标记。
6.根据权利要求1所述的方法,进一步包括:
响应于所述分支指令在所述代码高速缓存中被恢复,测试中止标
记;以及
响应于所述中止标记没有被设置,继续所述循环过程。
7.根据权利要求1所述的方法,其中所述代码高速缓存与即时
\t(JIT)编译器相关联。
8.根据权利要求1所述的方法,其中所述解释器与Java虚拟机
相关联。
9.一种用于循环过程中止的系统,所述系统包括:
代码高速缓存,被配置为存储与循环过程相关联的一个或多个循
环指令;
监测器组件,被配置为确定所述代码高速缓存中的与所述循环过
程的分支相关联的一个或多个分支指令,并且一经检测到中止事件,
在所述代码高速缓存中将所述分支指令替换为一个或多个跳转指令;
运行组件,被配置为响应于所述跳转指令在所述代码高速缓存中
被执行,恢复所述代码高速缓存中的所述分支指令并且中止所述循环
过程;以及
解释器组件,被配置为执行与所述中止事件相关联的一...
【专利技术属性】
技术研发人员:黄海涛,高丽萍,齐歆瑜,简宁胜,
申请(专利权)人:马维尔国际贸易有限公司,
类型:发明
国别省市:巴巴多斯;BB
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。