[发明专利]使用JIT编译器并绕过所选择目标代码块的转译的目标系统的仿真在审
申请号: | 201880037127.7 | 申请日: | 2018-06-06 |
公开(公告)号: | CN110709823A | 公开(公告)日: | 2020-01-17 |
发明(设计)人: | J.斯廷;T.卡扎马;D.托尔斯托夫;G.诺顿 | 申请(专利权)人: | 索尼互动娱乐股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 11105 北京市柳沈律师事务所 | 代理人: | 张晓明 |
地址: | 日本*** | 国省代码: | 日本;JP |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 主机系统 目标代码 转译 目标系统代码 评估目标 系统代码 主机代码 仿真器 块选择 替代 绕过 | ||
仿真器通过以下方式来处理问题目标代码块:评估目标系统代码是否是问题目标代码块并绕过此类块的转译,在一些情况下,针对问题块选择替代的主机代码。将所述目标系统代码的非问题部分转译成主机系统代码的对应部分,所述主机系统代码的对应部分被插入到执行流中。也可将替代的主机系统代码插入到所述执行流中。
技术领域
本公开涉及软件编译器。更具体地,本公开涉及对被编写为在一个设备架构上运行的代码进行转译以在第二个不同设备架构上运行。
背景技术
在第二计算机平台(“主机系统”)上仿真第一计算机平台(“目标系统”)的功能使得主机系统可以执行针对目标系统设计的程序的过程称为“仿真”。通常通过创建将针对目标平台设计的程序指令(目标代码指令)转换成主机平台的本机语言(主机指令)的软件来实现仿真,由此实现兼容性。也通过创建“虚拟机”来实现仿真,在所述“虚拟机”中,目标平台的物理架构——硬件本身的设计——通过软件中的虚拟模型进行复制。
当前通常使用两种主要类型的仿真策略。第一种策略称为“解释”,其中每个目标代码指令在被寻址时依次被解码,从而产生其后待执行的语义上等同于目标代码指令的小的主机指令序列。这种仿真器的主要组件通常是软件解释器,所述软件解释器将呈目标机器语言的程序的每个指令转换成呈主机机器语言的一组指令,其中主机机器语言是用于仿真目标机器的主机计算机的代码语言。在一些情况下,解释器已在计算机硬件或固件中实现,从而使得能够相对快速地执行仿真程序。
另一种主要的仿真策略称为“转译”,其中目标指令被分析和解码。这也称为“重新编译”或“交叉编译”。熟知的是,解释器通常会大大降低计算机程序的执行速度。与当将等同的程序重新编译成目标机器代码并执行目标代码版本时相比,当通过仿真执行计算机程序时,所述计算机程序运行慢十至二十倍并不少见。由于熟知的软件仿真速度慢,通过在运行时间将目标程序的部分转译成主机机器代码,并且然后执行重新编译的程序部分,多个产品已经成功地改进了执行源应用的速度。虽然每个目标代码指令的转译过程可能耗费(例如)50至100个机器或时钟周期,但平均而言,所得主机机器代码的更快的速度足以改进大多数源应用的总体执行速度。
一些运行时转译系统使用称为即时(JIT)转译或编译的方法来基于需要将目标软件转译成主机软件。例如,在以上通过引用方式并入的美国专利号8,245,202B2、7,792,666B2、7,813,909B2和7,770,050B2中描述了采用JIT转译方案的实例仿真。这种运行时JIT方案通常用于转译具有动态性质的目标软件。在性质上是动态的软件中,代码的部分可在执行之前动态地改变。例如,在目标系统内,可执行代码可通过加载新的可执行文件、加载覆盖、运行时代码生成或自修改代码来动态地改变。动态代码改变还可通过经由多个路径修改存储器来发生,诸如通过执行系统调用,通过来自各种设备的直接存储器访问(DMA)传输,或简单地通过执行用户代码。
本公开的各方面正是在此背景下产生。
附图说明
通过结合附图考虑以下详细描述,可以易于理解本发明的教义,在附图中:
图1A是现有技术目标系统代码的框图。
图1B是根据本公开的各方面的包含目标系统代码和JIT编译器的非暂时性计算机可读存储器的框图。
图2是描绘根据本公开的各方面的选择并插入替代的主机代码的过程的流程图。
图3描绘根据本公开的各方面的主机系统的硬件配置。
图4描绘根据本公开的各方面的主机系统的CPU核心架构。
引言
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于索尼互动娱乐股份有限公司,未经索尼互动娱乐股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201880037127.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种终端设备的故障处理方法及终端设备
- 下一篇:一种数据查询方法及装置