当前位置: 首页 > 专利查询>英特尔公司专利>正文

混合模式指令的动态最佳匹配编译的方法和设备技术

技术编号:2848894 阅读:155 留言:0更新日期:2012-04-11 18:40
提供了混合模式指令的动态最佳匹配编译的方法和设备。在一个实施例中,提供的方法包括:在一个装置上接收非本机软件指令;基于非本机软件指令从第一指令集产生第一本机软件指令,第一本机软件指令的产生发生在该装置上;在该装置上执行第一本机软件指令;基于非本机软件指令从第二指令集产生第二本机软件指令,第二本机软件指令的产生发生在该装置上;以及在该装置上执行第二本机软件指令。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及混合模式计算机指令,更具体地说,涉及用于混合模式计算机指令的动态最佳匹配编译的方法和设备。
技术介绍
对嵌入式系统(例如无线通信装置、无线数据装置等)有日益增长的需求。在静态和动态存储器、处理能力、显示器大小、电池寿命、输入/输出能力等方面,嵌入式系统上可用的资源类型大不相同。所以,在嵌入式系统上很少有硬件和软件的会聚。如业界一般技术人员已知的,不用本机编译语言(例如C编程语言),而用中间语言(IL),例如Java、C#等,来开发嵌入式系统具有许多优点。首先,可以将中间语言模块放在多个平台上,而不用更改源代码,这就和大多数编译语言不同。第二,中间语言和它们的运行时环境常常具有故障消除特性,例如阵列边界检查、自动无用单元收集以及内置异常处理,这些是许多编译语言不具备的。第三,中间语言通常比完全解释语言运行得快。实现了中间语言的上述优点,嵌入式系统正慢慢向在运行时环境上工作的中间语言迁移。由于应用软件从运行时环境取得较大的价值,因此预计许多未来的应用程序会使用中间语言来写。对在嵌入式系统上使用中间语言最起阻止作用的因素之一是执行速度。虽然中间语言通常比解释语言工作得快,但中间语言通常比本机编译语言要慢。例如,中间语言例如Java可比本机编译语言例如C慢达3或4倍。加速中间语言指令的一种技术包括从一些中间语言指令产生本机指令。通常,仅将最常用的代码路径编译为本机代码,其余的代码留作中间指令。虽然这种现有技术可改进性能,但从一些中间语言指令产生本机指令仅利用了处理器的单一指令集。混合模式处理器例如ARM依从处理器具有两个或更多个指令集,例如一个16位指令集(Thumb指令集)和一个32位指令集(ARM指令集)。根据如何使用指令集,这些指令集中每一个都有其优缺点。例如,16位Thumb指令集通常以一半数量的位来编码32位ARM指令的功能性,从而创建更高的代码密度。但是,ARM指令通常比Thumb指令具有更多的语义内容。如业界一般技术人员所知,这就是说,用Thumb指令实现的操作可能需要更多的指令来执行用ARM指令执行的等效操作(例如40%多的指令)。例如,要使用16位立即数据单元,Thumb指令集将需要比ARM指令集多两条的指令才能将数据移入寄存器中。根据系统的存储器配置,ARM代码可比相应的Thumb代码运行得快得多,或反之亦然。例如据估计,用32位存储器,ARM代码将比相应的Thumb代码运行快40%。但是,用16位存储器,Thumb代码可比相应的ARM代码运行快45%。于是,由于基于各个嵌入式系统配置在速度和存储特性方面有如此大的差异,将中间语言完全编译到一个指令集(例如ARM指令集)中就有重大的缺点。此外,不将全部中间语言指令都编译为本机指令也有重大的缺点。附图说明图1为示出所公开系统的使用环境的示范计算机系统的框图。图2的框图示出可以由图1的计算机系统实现的混合模式指令的动态最佳匹配编译的使用实例。图3的流程图示出可以由图1的计算机系统实现的动态编译混合模式指令的过程实例。图4的流程图示出可以由图1的计算机系统实现的试探性优化混合模式指令的过程实例。图5的流程图示出可以由图1的计算机系统实现的在使用16位指令和32位指令之间作决定的过程实例。具体实施例方式一般来说,本文所述方法和设备动态编译混合模式指令(即混合模式指令的动态最佳匹配编译)。虽然以下公开了系统实例,包括在硬件上执行的软件以及其它组件,但应指出,这些系统仅是说明性的,而不应认为是限制性的。例如,要考虑到,任何或所有公开的硬件和软件成分可完全以专用硬件实施、完全以软件实施、完全以固件实施、或以硬件、固件和/或软件的某种组合来实施。此外,虽然以下公开内容是针对示范动态编译系统而作,但应理解,许多其它动态编译系统也很容易适用于所公开的系统。所以,虽然以下说明了示范系统和过程,但业界一般技术人员应容易理解到,所公开的实例并不是实现这种系统的唯一方式。例如,也可使用除16位指令集和32位指令集以外的其它指令集。示范计算机系统100的框图示于图1。计算机系统100可以是个人计算机(PC)、个人数字助理(PDA)、因特网设备、蜂窝电话或任何其它计算装置。在一个实例中,计算机系统100包括主处理单元102,它由电源103供电。主处理单元102可包括混合模式处理单元104,由系统互连106电连接到主存储装置108以及一个或多个接口电路110。在一个实例中,系统互连106是地址/数据总线。当然,业界一般技术人员很容易理解,也可使用除总线外的其它互连将混合模式处理单元104连接到主存储装置108。例如,可以使用一条或多条专用线和/或纵横开关将混合模式处理单元104连接到主存储装置108。混合模式处理单元104可包括任何类型的已知混合模式处理器,例如IntelXScaleTM处理器系列中以及Intel因特网交换处理器(IXP)处理器系列中的处理器。或者,混合模式处理单元104可由两个或更多个单指令集处理器实现。例如可以使用IntelPentium处理器和IntelItanium处理器的混合系统。此外,混合模式处理器104可包括任何类型的已知高速缓冲存储器,例如静态随机存取存储器(SRAM)。主存储装置108可包括动态随机存取存储器(DRAM)和/或任何其它形式的随机存取存储器。例如,主存储装置108可包括双数据率随机存取存储器(DDRAM)。主存储装置108还可包括非易失性存储器。在一个实例中,主存储装置108存储软件程序,该软件程序由混合模式处理器104以众所周知的方式执行。主存储装置108可存储编译程序111,用于由混合模式处理器104执行。接口电路110可以使用任何类型的众所周知的接口标准实现,例如以太网接口和/或通用串行总线(USB)接口。可将一个或多个输入装置112连接到接口电路110,以将数据和命令输入到主处理单元102中。例如,输入装置112可以是键盘、鼠标、触摸屏、跟踪垫、跟踪球、isopoint和/或语音识别系统。一个或多个显示器、打印机、扬声器和/或其它输出装置114也可通过一个或多个接口电路110连接到主处理单元102。显示器114可以是阴极射线管(CRT)、液晶显示器(LCD)或任何其它类型的显示器。显示器114可产生主处理单元102操作期间产生的数据的视觉指示。视觉指示可包括对操作员输入的提示、计算的值、检测的数据等。计算机系统100还可包括一个或多个存储装置116。例如,计算机系统100可包括一个或多个硬盘驱动器、光盘(CD)驱动器、数字多功能盘驱动器(DVD)和/或其它计算机媒体输入/输出(I/O)装置。计算机系统100还可通过到网络118的连接与其它装置交换数据。到网络118的连接可以是任何类型的网络连接,例如以太网连接、数字用户线(DSL)、电话线、同轴电缆等。网络118可以是任何类型的网络,例如因特网、电话网、电缆网络和/或无线网络。图2的框图总体示出了混合模式指令系统200的动态最佳匹配编译的使用实例。混合模式指令系统200包括多个应用程序202、语言编译器204、编译的二进制206和运行时环境208。多个应用程序202可包括Java源文件、C#源文件等。而且,多个应用程序202可本文档来自技高网...

【技术保护点】
一种执行非本机软件指令的方法,所述方法包括:在装置上接收所述非本机软件指令;基于所述非本机软件指令从第一指令集产生第一本机软件指令,第一本机软件指令的产生发生在所述装置上;在所述装置上执行第一本机软件指令;基于所述非本机软件指令从第二指令集产生第二本机软件指令,第二本机软件指令的产生发生在所述装置上;以及在所述装置上执行第二本机软件指令。

【技术特征摘要】
【国外来华专利技术】US 2003-9-10 10/659,4571.一种执行非本机软件指令的方法,所述方法包括在装置上接收所述非本机软件指令;基于所述非本机软件指令从第一指令集产生第一本机软件指令,第一本机软件指令的产生发生在所述装置上;在所述装置上执行第一本机软件指令;基于所述非本机软件指令从第二指令集产生第二本机软件指令,第二本机软件指令的产生发生在所述装置上;以及在所述装置上执行第二本机软件指令。2.如权利要求1所述的方法,还包括计数第一本机软件指令被执行的次数;以及对第一本机软件指令被执行的次数和阈值相比较,其中产生第二本机软件指令是对以下之一作出的响应(i)所述次数等于所述阈值,以及(ii)所述次数超过所述阈值。3.如权利要求2所述的方法,还包括插入仪表以计数第一本机软件指令被执行的次数。4.如权利要求2所述的方法,还包括通过移动运行时配置参数接收所述阈值。5.如权利要求1所述的方法,其中在所述装置上接收所述非本机软件指令包括在所述装置上接收中间语言指令。6.如权利要求1所述的方法,其中在所述装置上接收所述非本机软件指令包括在所述装置上接收Java字节代码。7.如权利要求1所述的方法,其中在所述装置上接收所述非本机软件指令包括在手持计算装置上无线接收所述非本机软件指令。8.如权利要求1所述的方法,其中第一本机软件指令包括X位宽的指令,第二本机软件指令包括Y位宽的指令,且X小于Y。9.如权利要求1所述的方法,其中第一本机软件指令包括16位宽的指令,且第二本机软件指令包括32位宽的指令。10.如权利要求1所述的方法,其中第一本机软件指令包括Thumb指令,且第二本机软件指令包括ARM指令。11.如权利要求1所述的方法,其中产生第一本机软件指令包括使用即时编译器在所述装置上编译所述非本机软件指令。12.如权利要求1所述的方法,还包括在产生第一本机软件指令之前配置第一代码优化选项,第一代码优化选项导致产生较小的代码;以及在产生第二本机软件指令之前配置第二代码优化选项,第二代码优化选项导致产生较快的代码。13.如权利要求1所述的方法,其中产生第一本机软件指令包括产生第一多个本机软件指令,并且产生第二本机软件指令包括产生第二多个本机软件指令,所述方法还包括计数在第一多个本机软件指令中包含的第一指令数;计数在第二多个本机软件指令中包含的第二指令数;以及比较第一指令数和第二指令数,其中执行第一本机软件指令是对以下之一作出的响应(i)第二指令数等于第一指令数,以及(ii)第二指令数超过第一指令数。14.如权利要求13所述的方法,还包括比较第一指令数和第二指令数,其中执行第二本机软件指令是对第一指令数不超过第二指令数预定阈值以上而作出的响应。15.如权利要求1所述的方法,还包括测量第一本机软件指令,得出第一字节数;测量第二本机软件指令,得出第二字节数;以及比较第一字节数和第二字节数,其中执行第一本机软件指令是对第一字节数比第二字节数小至少预定阈值而作出的响应。16.如权利要求1所述的方法,还包括测量第一本机软件指令,得出第一字节数;测量第二本机软件指令,得出第二字节数;以及比较第一字节数和第二字节数,其中执行第二本机软件指令是对第一字节数不比第二字节数小至少预定阈值而作出的响应。17.一种包括机器可存取介质的制品,所述机器可存取介质具有多个机器可存取指令,当执行所述指令时,使装置在所述装置上接收非本机软件指令;基于所述非本机软件指令从第一...

【专利技术属性】
技术研发人员:M南亚Z高J蒙特J徐
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

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

1