仿真器的性能优化制造技术

技术编号:18178965 阅读:24 留言:0更新日期:2018-06-09 20:47
本文解说的一个实施例包括一种可以在具有运行本机体系结构系统的客体系结构的计算环境中实施的方法。该方法包括用于处置函数调用的动作。该方法包括接收对目标二进制的调用,其中该调用是用于客体系结构的格式。该方法还包括确定该调用是对作为混合二进制的二进制的调用。混合二进制包括使用客体系结构源代码编译成本机体系结构二进制代码的本机函数以及用于处理客体系结构与本机体系结构之间的不兼容性的特殊化形实转换程序。该方法还包括调用特殊化形实转换程序以允许混合二进制中的本机函数在本机体系结构系统上本机地执行。

【技术实现步骤摘要】
【国外来华专利技术】仿真器的性能优化背景背景和相关技术软件仿真系统可被用来在一种类型的本机计算机架构上执行另一类型的客计算机架构的应用。这使用动态转换来达成,这是一种用来将x86指令在运行时转换成对应ARM指令的技术。如可预期的,转换过程可能将延迟引入应用的运行时执行。在客体系结构和本机体系结构之间存在不兼容性时情况尤其如此。例如,ARM处理器具有比x86弱得多的存储器模型。为了在ARM上仿真x86应用时达到兼容的存储器排序,运行时编译器被迫在ARM代码中积极地生成存储器屏障以准确地仿真x86强排序语义。存储器屏障的自由使用是惊人昂贵的。作为结果,一些仿真器默认每当可能时就使用单个处理器(由此消除对屏障生成的需求),但以放弃多核处理为代价。作为又一示例,客体系结构可以使用不同于本机体系结构的数据类型。例如,客体系结构可使用32位数据类型,而本机体系结构使用64位数据类型。这可能需要仿真器在运行时在这两个方向上都执行附加数据编排(marshal)。因而,数据将需要从32位数据类型编排成64位数据类型以及从64位数据类型编排成32位数据类型。在没有开发者努力的情况下,自动编排数据类型是困难的。对于大型软件项目,这需要每一工程师适当地注释数据类型并且不是可伸缩的。本文要求保护的主题不限于解决任何缺点或仅在诸如上述环境这样的环境中操作的各实施例。相反,提供该背景仅用于例示其中可实践所述一些实施例的一个示例性
简要概述本文解说的一个实施例包括一种可以在具有运行本机体系结构系统的客体系结构的计算环境中实施的方法。该方法包括用于处置函数调用的动作。该方法包括接收对目标二进制的调用,其中该调用是用于客体系结构的格式。该方法还包括确定该调用是对作为混合二进制的二进制的调用。混合二进制包括使用客体系结构源代码编译成本机体系结构二进制代码的本机函数以及用于处理客体系结构与本机体系结构之间的不兼容性的特殊化形实转换程序(thunk)。作为确定客体系结构的格式的调用是对作为混合二进制的二进制的调用的结果,该方法还包括调用特殊化形实转换程序来允许混合二进制中的本机函数在本机体系结构系统上本机地执行。另一实施例包括一种可在计算环境中实施的方法。该方法包括用于使用在本机体系结构系统上运行的客体系结构的客源代码来创建二进制的动作。该二进制被配置成在本机体系结构系统上本机地运行。该方法包括访问客体系结构源代码。该方法还包括将客源代码编译成混合二进制。这包括使用客体系结构源代码创建编译成本机体系结构二进制代码的本机函数。这还包括创建特殊化形实转换程序以处置客体系结构与本机体系结构调用惯例之间的不兼容性。提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述并非旨在标识出要求保护的主题的关键特征或必要特征,亦非旨在用作辅助确定要求保护的主题的范围。附加特征和优点将在以下描述中提出,且部分会从描述中显而易见,或者可以通过实施本文的原理来获悉。本专利技术的特征和优点可以通过在所附权利要求书中特别指出的工具和组合来实现和获得。本专利技术的特征从以下描述和所附权利要求书中将更完全显而易见,或者可以通过如下文所述实施本专利技术而获悉。附图简述为了描述能够获得上述和其它优点和特征的方式,将通过参考附图中示出的各具体实施例来呈现对以上简述的主题的更为具体的描述。理解这些附图仅描述典型的实施例,因此不应被视为限制本专利技术的范围,各实施例将通过使用附图以附加的具体性和细节来描述和解释,附图中:图1解说了配置成执行客体系结构二进制和具有根据客体系结构源代码编译的本机函数的混合二进制的本机体系结构系统;图2解说了使用工具链来将客源代码编译成混合二进制;图3A解说了对混合二进制的本机调用;图3B解说了对混合二进制的客调用;图3C解说了对混合二进制的混合调用;图3D解说了对混合二进制的间接混合调用;图4A解说了寄存器映射;图4B解说了寄存器映射的另一示例;图5A解说了寄存器映射;图5B解说了寄存器映射的另一示例;图6示出了处置函数调用的方法;以及图7解说了使用在本机体系结构系统上运行的客体系结构的客源代码创建混合二进制的方法。详细描述本文的一些实施例能够通过将混合二进制用于在本地主机上实现的客应用来实现经改进计算系统。混合二进制是已被编译来促进与客体系结构仿真器的互操作性的特殊本机二进制。如此,各实施例可为一些代码消除运行时交叉编译。如此,较高性能机器可被实现而无需昂贵的硬件改进。因而,当在不同本机体系结构机器上运行客体系结构代码时,实现这一功能性的机器在性能方面被改进而优于具有相同或相似硬件规范的先前机器。由本机工具链在完全知悉原始源代码的情况下生成混合二进制。这允许本机代码分析和优化的全部范围被应用于该代码,包括对本机存储器屏障指令的适当使用。对于不能被各工具转换成本机代码的代码而言,一些目标代码保持是二进制(客目标代码)。这仍然由仿真器处置,如同根本没有发生优化一样。与尝试在客代码和本机代码之间编排(由此完全消除对特殊“客”二进制的需求)的办法相对比,本解决方案继续利用原始客体系结构源代码,从而减轻对自定义数据结构或更复杂编排的需求。各实施例可以维持与原始客源代码的完全兼容性并将对调用常规编排的责任移至工具链。各实施例可被应用于可具有与客机不同的“位性(bitness)”的本地主机体系结构。例如,可通过生成ILP32代码(即,使用32位指针的64位代码)来将32位x86客代码实现在本机64位ARM64硬件上。通过降低实现客体系结构的本地主机体系结构的系统所要执行的工作量,这些系统可以是更具能力的系统,因为它们解放了能被应用于另选任务的计算能力。另选地,运行其他系统的相同功能性的此类系统可能够使用比先前系统更少的功率来实现这一点。图1解说了本地主机102。例如,本地主机102可以是基于ARM32或ARM64体系结构的机器。本地主机102包括本机硬件104。本机硬件104包括诸如处理器106、寄存器108以及存储器110等组件。本机硬件104被配置成在本机执行针对本机体系结构创建的二进制。例如,图1解说了可直接在本机硬件104上执行的本机二进制112。图1还解说了本地主机102包括仿真器114。仿真器114在本机硬件104上运行,但被配置成处置客二进制。例如,仿真器114可以是x86仿真器。这将通过使用本地主机102的功能性适当地执行x86二进制函数来允许x86客二进制在本地主机102上执行。图2解说了在仿真器114上执行的客二进制116的示例。如上所述,使用仿真器114可导致本地主机102上增加的负载并且因而降低本地主机102的总体能力。为此,各实施例可以利用混合二进制,诸如混合二进制118。混合二进制118是从客源代码创建的(参见图2)但(大部分)可以在本机硬件104上直接执行,而无需使用仿真器114执行。客源代码被定义为:全部高级和汇编级代码文件,且对应于编译器设置和预处理器定义,与用于客体系结构的编译相关联。这如何被实现的更多细节在下文解说。图2解说了创建混合二进制。图2解说了客源代码202的样本。在这一示例中,客源代码202被提供给工具链204。工具链204能够将客源代码202编译成二进制代码且具体而言编译成混合二进制118。混合二进制118包本文档来自技高网...
仿真器的性能优化

【技术保护点】
一种在具有运行本机体系结构系统的客体系结构的计算环境中的用于处理函数调用的系统,所述系统包括:一个或多个处理器;以及一个或多个计算机可读介质,其中所述一个或多个计算机可读介质包括计算机可执行指令,所述计算机可执行指令能由所述一个或多个处理器中的至少一个处理器执行以使得所述系统执行以下:接收对目标二进制的调用,其中所述调用是用于所述客体系结构的格式;其中所述调用是对作为混合二进制的二进制的调用,其中所述混合二进制包括:使用客体系结构源代码编译成本机体系结构二进制代码的本机函数;以及用于处理所述客体系结构与所述本机体系结构之间的不兼容性的特殊化形实转换程序;以及作为接收到所述客体系结构的格式的所述调用是对作为混合二进制的二进制的调用的结果,调用所述特殊化形实转换程序来允许所述混合二进制中的本机函数在所述本机体系结构系统上本机地执行。

【技术特征摘要】
【国外来华专利技术】2015.10.01 US 14/873,1001.一种在具有运行本机体系结构系统的客体系结构的计算环境中的用于处理函数调用的系统,所述系统包括:一个或多个处理器;以及一个或多个计算机可读介质,其中所述一个或多个计算机可读介质包括计算机可执行指令,所述计算机可执行指令能由所述一个或多个处理器中的至少一个处理器执行以使得所述系统执行以下:接收对目标二进制的调用,其中所述调用是用于所述客体系结构的格式;其中所述调用是对作为混合二进制的二进制的调用,其中所述混合二进制包括:使用客体系结构源代码编译成本机体系结构二进制代码的本机函数;以及用于处理所述客体系结构与所述本机体系结构之间的不兼容性的特殊化形实转换程序;以及作为接收到所述客体系结构的格式的所述调用是对作为混合二进制的二进制的调用的结果,调用所述特殊化形实转换程序来允许所述混合二进制中的本机函数在所述本机体系结构系统上本机地执行。2.如权利要求1所述的系统,其特征在于,接收对目标二进制的调用包括接收到来自x86函数的调用。3.如权利要求1所述的系统,其特征在于,所述本机函数包括ARM体系结构函数。4.如权利要求1所述的系统,其特征在于,调用所述特殊化形实转换程序使得要被传递给所述本机函数的数据被所述客体系结构的格式的所述调用置于堆栈上,以从所述堆栈弹出到本机硬件寄存器。5.如权利要求1所述的系统,其特征在于,所述一个或多个计算机可读介质包括计算机可执行指令,所述计算机可执行指令能由所述一个或多个处理器中的至少一个处理器执行以使得所述系统通过调用具有本机函数的另一混合二进制来从混合二进制中的所述本机函数直接调用另一本机函数。6.如权利要求1所述的系统,其特征在于,所述一个或多个计算机可读介质包括计算机可执行指令,所述计算机可执行指令能由所述一个或多个处理器中的至少一个处理器执行以使得所述系统通过调用本机二进制来从所述混合二进制中的所述本机函数直接调用另一本机函数。7.如权利要求1所述的系统,其特征在于,所述混合二进制包括配置成将处理从本机函数返回至配置成...

【专利技术属性】
技术研发人员:T·H·曾A·U·基什安
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

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

1