各种实施例包括对于源应用和源仿真器的嵌套仿真。复制源ISA库使源仿真器库调用重定向到目标库,由此迫使本机仿真器通过第一与第二ISA之间的正确仿真通道。其它实施例关于通过确定某些函数调用相反在不需要PLT代码转换的情况下直接被调用而不是通过PLT代码的仿真来处理来使动态链接加速。一些实施例解决嵌套仿真和加速动态链接两者但其它实施例包括嵌套仿真和加速动态链接中的一个。本文中还描述了其它实施例。
【技术实现步骤摘要】
【国外来华专利技术】【专利摘要】各种实施例包括对于源应用和源仿真器的嵌套仿真。复制源ISA库使源仿真器库调用重定向到目标库,由此迫使本机仿真器通过第一与第二ISA之间的正确仿真通道。其它实施例关于通过确定某些函数调用相反在不需要PLT代码转换的情况下直接被调用而不是通过PLT代码的仿真来处理来使动态链接加速。一些实施例解决嵌套仿真和加速动态链接两者但其它实施例包括嵌套仿真和加速动态链接中的一个。本文中还描述了其它实施例。【专利说明】嵌套仿真和动态链接环境
技术介绍
计算设备可由它的指令集架构(ISA)表征。典型地,计算设备可包括操作系统 (OS)服务,并且OS服务可包括为计算设备的ISA开发的运行时库(LIB)服务,用于帮助应用开发者开发在计算设备上操作的应用。如果对不是计算设备的ISA的ISA编写应用,可能需要仿真应用。具体地,仿真允许应用(为第一 ISA编写的)在计算设备的架构(其使用第二 ISA)上执行。应用的依赖于ISA的部分可包括对源LIB服务的函数调用,其需要使用目标LIB服务来仿真。此外,应用的依赖于ISA的部分可包括回调函数(例如,从依赖于ISA的运行时LIB回调到仿真应用的函数、回调到需要仿真的源LIB服务的函数)。这样的回调可直到运行时才被发现,由此使在桥接两个ISA方面传统方法(例如,二进制转换)低效。 为了执行上文的应用,应用可需要链接。链接通过分辨互连参考(例如,由应用调用的库例程之间的互连)而从编译模块(例如,库)产生可执行程序。该链接(在本文有时也叫作“加载”)可经由二进制转换系统(BT)动态进行。动态链接使大部分的链接过程推迟到程序开始运行。动态链接器可以是在执行可执行文件时加载并且链接对于该可执行文件的共享库的OS的部分。技术可使用规程链接表(PLT)、全局偏移表(GOT)和间接跳跃来使应用的库调用指向动态链接库中的目标函数。 【专利附图】【附图说明】 本专利技术的实施例将通过示范性实施例而非限制的方式描述、在附图中图示,其中类似的标号指代相似的元件,并且其中:图1图示在本专利技术的实施例中包括ISA桥接的计算设备;图2进一步详细图示图1的ISA桥接层;图3和4图示在本专利技术的实施例中用于桥接源ISA的应用与目标ISA的库服务之间的调用和回调的方法;图5图不在本专利技术的一个实施例中的BT系统。 图6和7分别图示在本专利技术的实施例中用于使动态链接加速的方法和伪代码。 【具体实施方式】 各种操作将进而采用对于理解说明性实施例最有帮助的方式描述为多个分立操作;然而,描述的顺序不应该解释为暗示这些操作必定依赖于顺序。特别地,这些操作不需要按呈现的顺序执行。此外,作为单独操作的操作的描述不应解释为需要操作一定独立地和/或由单独实体执行。作为单独模块的实体和/或模块的描述应同样不解释为需要模块是单独的和/或执行单独操作。在各种实施例中,图示和/或公开的操作、实体、数据和/或模块可合并、分解成进一步的子部分和/或省略。重复使用短语“实施例”。该短语一般不指相同的实施例;然而,它可指相同的实施例。术语“包括”、“具有”和“包含”是同义的,除非上下文另外指示。短语“A/B”意思是“A或B”。短语“A和/或B”意思是“(A)、(B)或(A和B)”。短语“A、B和C中的至少一个”意思是“(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B 和 C)”。 各种实施例包括对于源应用和源仿真器的嵌套仿真。复制源ISA库重定向对目标库的源仿真器库调用,由此迫使本机仿真器通过第一与第二 ISA之间的正确仿真通道。其它实施例关于通过确定某些函数调用不是通过PLT代码的仿真来处理而是在不需要PLT代码转换的情况下直接被调用来使动态链接加速。一些实施例解决嵌套仿真和加速动态链接两者但其它实施例包括嵌套仿真和加速动态链接中的一个。 图1图示实施例中的示例计算设备,其包括ISA桥接(可选地具有回调)。计算设备102可包括处理器和存储器布置104,其包括或耦合于OS 122、ISA桥接层123、应用120、图形处理单元(GPU)106、显示单元108和联网接口 110,它们彼此如示出的那样耦合(即,直接或间接)。OS 122可包括服务124的库(其细分成库127、128,共同包括符号“A”至“H”)。计算设备102还可包括应用120与OS 122之间可选的中间件121。如将在下文更详细描述的,ISA桥接层123可配置有各种运行时特征和服务(其包括但不限于,动态绑定)以使应用120能够全部或部分地在源ISA中实现(例如,在也使用独立于ISA的中间件121时),而 OS122 (其包括库服务124)可在与源ISA不同的目标ISA中实现。此外,应用120可以是这样的应用(特别地,使用源ISA实现的部分),其包括需要库服务124的各种元素(例如,函数)在各种条件下“回调”应用120的各种回调函数125的库服务124的使用特性。ISA桥接层123在本文也可称为过程虚拟机(PVM)。 计算设备102可以是服务器、台式计算机、膝上型计算机、平板计算机、智能电话、个人数字助理、游戏控制台、因特网家电、移动互联网设备、手机、移动联网设备、移动计算节点或其它计算设备。处理器和存储器布置104代表广泛的处理器和存储器布置,其包括具有各种执行速度和功耗的单核或多核处理器以及具有各种架构(例如,具有一级或多级高速缓存)和各种类型(例如,动态随机存取、FLASH,等)的存储器的步骤。在各种实施例中,GPU 106可配置成向OS 122提供视频解码和/或图形处理功能,而显示单元108可配置成使多媒体内容(例如,HD视频)能够在其上渲染。相似地,GPU 106和显示单元108意在代表本领域内已知的广泛图形处理器和显示元件。同样,网络134意在代表本领域内已知的广泛网络。网络134的示例可包括有线或无线、局域或广域、专用或公共网络,其包括因特网。OS 122 (其包括库服务124)代表本领域内已知的广泛OS元件,但除了限定库服务124的调用的应用编程接口(API)之外。OS 122可包括常规组件,例如配置成管理存储器资源、调度任务执行等的内核,和配置成管理各种设备资源的设备驱动器。在实施例中,OS 122可包括支持可选中间件121的虚拟机(例如,支持Android?应用框架的Android?虚拟机)。除限定库服务124的调用外,为了促进应用120的回调函数125的调用,库服务124的API还包括应用120的回调函数125的对应存根和签名。OS 122的示例可包括Windows?操作系统、Linux?、Android?、1S?及类似物。相似地,可选中间件121意在代表广泛的中间件元件,其包括但不限于,独立于ISA的中间件。中间件121的示例可包括但不限于,Android?应用框架、Java?或其它应用框架或独立于ISA的执行环境。同样,应用120(其包括回调函数125)代表广泛的应用,其包括对于个人助理、生产率、社交联网应用、日程安排、字处理、电子制表、Twitter?、Facebook?、浏览器的应用及类似物。 图1的剩余元件在论述图2之后在下文进一步论述。 在图2中,ISA桥接层123可包括ISA桥接加载器20本文档来自技高网...
【技术保护点】
一种由至少一个处理器执行的方法,其包括:加载具有源指令集架构(ISA)的应用;使调用重定向到第一库,所述调用是对于源ISA库的库服务,因此所述调用未触及所述源ISA库;使所述调用从所述第一库定向到目标ISA库的库服务;以及经由所述目标ISA库仿真所述应用。
【技术特征摘要】
【国外来华专利技术】
【专利技术属性】
技术研发人员:钟学亮,李剑慧,陈建萍,李庭涛,伍勇,谭文,XD林,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。