用于在虚拟机中进行延续传递的方法和设备技术

技术编号:2920164 阅读:164 留言:0更新日期:2012-04-11 18:40
公开了用于在虚拟机(VM)中进行延续传递的方法和设备。提供了一种方法用于在无线设备中运行虚拟机以提供延续传递。该虚拟机包括堆栈存储器。该方法包括遇到上下文-创建触发标识,响应于该触发标识构造延续块,该延续块包括从堆栈存储器产生的堆栈片段,遇到估算指令;以及响应该估算指令,将来自该延续块的该堆栈片段存储到该堆栈存储器。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般涉及计算系统,而且更具体地,涉及用于在虚拟机中提供延续传递来提供高效的程序流以及存储器资源利用的方法和设备。
技术介绍
技术的进步已经导致了更小和更强大的无线设备。例如,目前存在多种小型的、重量轻的并且用户能轻松携带的移动无线电话、个人数字助理(PDA)和寻呼设备。典型地,这些设备包括具有有限的存储器资源的嵌入式控制器。例如,可用的存储器数量可能受限于该设备较小的尺寸。随着无线设备已经变得越来越广泛,越来越需要这些设备处理大量的数据并执行更复杂的程序。例如,用户要求远程访问互动程序——例如游戏程序——该程序需要无线设备利用无线网络提供与远程服务提供者的快速和高效的通信。另外,用户想要远程访问特殊的程序,该程序典型地可以在较大型的家庭或者办公室系统上访问。为了满足这些需求,设备和服务提供者面临选择开发其自身的技术或者试图利用已有的技术。不幸的是,开发新技术既费时又昂贵,所以,是一个不能吸引人的选择。利用已有技术——例如已有的软件——则必须克服兼容性问题。例如,为一种处理系统开发的软件可能与其他处理系统不兼容。因此,当把软件从一个或者多个系统中引入到无线设备中运行的时候需要着手解决兼容性问题。一种用于克服兼容性问题的技术涉及到虚拟机(VM)的使用。典型的VM包括在主机系统上执行的软件,该软件允许主机系统运行为其他一些系统(也就是,远程系统)编写的非本地程序指令。例如,为在远程系统上执行而编写的非本地程序指令通过在主机系统上运行的VM软件进行解释。这样,在无线设备上运行的VM允许该设备运行为多种不同的系统编写的软件,由此允许设备开发者和服务提供者使用已有的软件向无线设备用户提供附加的功能。不幸的是,在资源有限的无线设备上实现VM带来了其他的问题。例如,多数VM的实现是利用堆栈作为临时存储,该堆栈可以作为暂存区使用来存储常量、变量、被调用过程的自变量或者程序执行需要的其他信息。在字节码的执行中,可以遇到(encounter)一个创建活动记录或者上下文的动态函数,该函数可以包括堆栈指针、当前程序计数器(PC)、代码指针等等。闭包或者块是一种引用当前的上下文(块由此产生)中的堆栈上的元素的字节码片段。块可以从上下文返回,用于应用代码中的其他地方。传递到分类函数的分类块就是一个例子。为了在稍后的阶段中执行块,创建上下文不能被释放,也就是,创建函数不能返回。块只能传递给创建函数做出的函数调用。但是,能够返回一个参数化的块(也就是,和创建上下文中的数据相关的块)将非常有用。有些系统通过为每个活动记录创建一个全新的堆栈来解决这个问题。由于每个活动记录的最大堆栈容量可以在编译的时候计算出来,因此堆栈的容量是有限的。这种技术虽然似乎可以解决这个问题,它却阻碍了每个含有堆栈创建和参数复制的函数调用,函数调用对于低处理能力和有限存储器的系统是需要很高代价的,例如对无线设备。其他的技术只在块不引用创建活动记录中的任何实际数据(也就是,这个块是干净的)的时候,才允许创建活动记录的返回。这个技术解决了问题的一部分,但是不允许对块使用创建上下文中可用的数据进行参数化。因此,需要的是在资源有限的无线设备上使用一种VM来提供延续传递,其允许引用创建上下文中的数据的参数化的块返回,从而在提供快速的程序执行的同时高效率地利用可用的存储器资源。
技术实现思路
在一个或者多个实施方式中,提供的方法和设备允许VM在资源有限的无线设备中完成延续传递。例如,无线设备可以是具有嵌入式处理器和有限的存储器资源的无线电话,其执行程序指令来提供VM的一个实施方式。VM允许无线设备执行为不同系统编写的非本地的程序指令。因此,这个无线设备能够为该设备的用户提供非本地程序的功能。在一个实施方式中,VM完成延续传递,使得响应于遇到(encounter)上下文-创建触发标识构造出块,触发标识例如动态函数调用。VM处理扩展的上下文,其包括当前上下文的当前堆栈片段的拷贝。另外,对块中包含的参数的片段内的参数偏移进行存储。根据块的估算,已存储的堆栈片段的元素被压回到堆栈上,有效地重新构造了创建该块的块的上下文。使用存储的参数的索引,将传送到该块的参数存储到片段中。然后该块可以使用创建上下文的完全状态执行。通过把堆栈片段压回到堆栈上,有效地重新设置了块的创建上下文。这样使参数化的块能够通过上下文返回。通过只在块被创建的时候复制堆栈片段,处理和存储器开销被最小化。在一个实施方式中,提供了一种方法用于在无线设备中运行虚拟机以提供延续传递。虚拟机包括堆栈存储器。该方法包括遇到上下文-创建触发标识,响应于触发标识,构造包含从堆栈存储器产生的堆栈片段的延续块,遇到估算指令,以及响应于估算指令,将来自延续块的堆栈片段存储到堆栈存储器。在另一个实施方式中,提供了在具有嵌入式处理器的无线设备中使用的虚拟机。虚拟机包括堆栈存储器,该堆栈存储器包括存储和取回信息的逻辑。虚拟机还包括遇到上下文-创建触发标识的逻辑以及响应于触发标识构造延续块的逻辑,其中延续块包括从堆栈存储器产生的堆栈片段。虚拟机还包括遇到估算指令的逻辑和响应于估算指令将来自延续块的堆栈片段存储到堆栈存储器的逻辑。在另一个实施方式中,提供了用于在具有嵌入式处理器的无线设备中使用的虚拟机。虚拟机包括用于提供堆栈存储器的装置和用于遇到上下文-创建触发标识的装置。虚拟机还包括用于响应于触发标识构造延续块的装置,其中延续块包括从堆栈存储器中产生的堆栈片段。虚拟机还包括用于遇到估算指令的装置以及响应于估算指令将来自延续块的堆栈片段存储到堆栈存储器的装置。在另一个实施方式中,提供了一种包含程序指令的计算机可读介质,当处理逻辑执行该程序指令的时候提供实现延续传递的虚拟机。虚拟机包括堆栈存储器,而计算机可读介质包括用于遇到上下文-创建触发标识的程序指令。计算机可读介质还包括用于响应于触发标识构造延续块的程序指令,其中延续块包括从堆栈存储器产生的堆栈片段。计算机可读介质还包括用于遇到估算指令的程序指令和用于响应于估算指令将来自延续块的堆栈片段存储到堆栈存储器的程序指令。在另一个实施方式中,提供了具有嵌入式处理器的无线设备。无线设备包括堆栈存储器,该堆栈存储器包括存储和取回信息的逻辑。无线设备还包括用于完成延续传递的虚拟机。虚拟机包括遇到上下文-创建触发标识的逻辑和响应于该触发标识构造延续块的逻辑,其中延续块包括从堆栈存储器产生的堆栈片段。虚拟机还包括遇到估算指令的逻辑和用于响应于估算指令将来自延续块的堆栈片段存储到堆栈存储器的逻辑。本专利技术的其他方面、优点以及特征在参阅下文中列出的附图简要说明、本专利技术的具体实施方式和权利要求书之后将变得更加明显。附图说明前述的方面及在此描述的实施方式的附随的优点通过结合附图参照下面的详细说明将变得更明显,其中图1图示的是一种数据网络,该数据网络包括具有有限存储器资源的无线设备,其适合于实现VM的一个实施方式来完成延续传递;图2示出的是图1的无线设备的一个实施方式的功能方框图; 图3示出的是用于创建延续块提供延续传递的存储器资源的图示;图4示出的是用于估算图3中延续块的存储器资源的图示;图5示出的是用于无线设备的VM中提供延续传递的方法的一个 具体实施例方式下面的详细说明描述了用于在无线设备中提供本文档来自技高网
...

【技术保护点】
一种用于在无线设备中运行虚拟机以提供延续传递的方法,其中该虚拟机包括堆栈存储器,并且该方法包括:遇到上下文-创建触发标识;响应于该触发标识构造延续块,其中该延续块包括从该堆栈存储器产生的堆栈片段;遇到估算指令;以及   响应于该估算指令,将来自该延续块的该堆栈片段存储到该堆栈存储器。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:马克E尼杰戴姆
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1