CN104025046B - 与利用调回的isa桥接关联的方法、装置和计算设备 - Google Patents
与利用调回的isa桥接关联的方法、装置和计算设备 Download PDFInfo
- Publication number
- CN104025046B CN104025046B CN201280066708.6A CN201280066708A CN104025046B CN 104025046 B CN104025046 B CN 104025046B CN 201280066708 A CN201280066708 A CN 201280066708A CN 104025046 B CN104025046 B CN 104025046B
- Authority
- CN
- China
- Prior art keywords
- storehouse
- instruction set
- function
- set architecture
- service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本文公开与利用调回的ISA桥接关联的方法、设备和存储介质。在多种实施例中,至少一个计算机可读存储介质可以包含指令,所述指令配置成使得具有目标ISA的目标装置响应这些指令的执行能够为目标装置提供ISA桥接层以帮助库服务调回应用的调回函数。可以对目标ISA实现该库服务,并且可以对与目标ISA不同的源ISA至少部分地实现应用。该ISA桥接层可以包括源ISA模拟器和库模拟器,其配置成协作以跨两个指令集体系结构,使得应用能够调用库服务,以及使得库服务能够调回调回函数。还公开了其它实施例或对它们要求权利。
Description
技术领域
本申请涉及指令集体系结构(ISA)桥接的领域,更具体而言,涉及利用调回的ISA桥接。
背景技术
本文提供的背景技术描述是为了概括性地阐述本公开的应用环境。除非本文中另行明示,否则此部分中描述的材料不是本申请的权利要求的现有技术,并不因包含在此部分中而承认视为现有技术。
计算设备可以由其指令集体系结构(ISA)来表征。典型地,计算设备可以包括操作系统(OS)服务,以及OS服务可以包括对计算设备的ISA开发的运行时库服务(LIB),以便帮助(facilitate)应用开发者开发要在计算设备上的工作的应用。例如,多种智能电话可以使用ARM处理器及其ISA来表征。这些智能电话可以包括OS,例如,iOS或安卓,以支持为相应智能电话开发的多种应用。一些计算设备提供ISA无关的执行环境,如JavaISA相关的部分,其调用ISA相关的运行时库的服务。而且,这些ISA相关的部分往往包括调回函数,这些调回函数需要从ISA相关的运行时库调回,并且这些调回往往在运行时之后才被发现,从而使得传统方法,如二进制解释在解决需求时不足够。
发明内容
按照本申请的第一方面,限定了一种用于利用调回将源指令集体系结构桥接到目标指令集体系结构的方法,其包括: 由计算设备的源指令集体系结构模拟器保持源指令集体系结构执行上下文,其中所述计算设备包括所述计算设备的目标指令集体系结构中实现的库服务;以及由所述计算设备的库模拟器保持库执行上下文;在所述指令集体系结构模拟器与所述库模拟器之间协作以便跨所述源和目标指令集体系结构,帮助至少部分地在所述源指令集体系结构中实现的应用调用所述库服务,以及帮助所述库服务调回所述应用的调回函数。
附图说明
将通过举例说明附图中图示的示范实施例而非限制来描述本发明的实施例,在附图中相似的引用表示相似的元件,其中:
图1图示与利用调回的ISA桥接结合的示例计算设备;
图2进一步详细地图示图1的ISA桥接层;
图3和图4图示用于源ISA的应用与目标ISA的库服务之间的桥接调用和调回的方法;以及
图5图示具有配置成实施图3和图4的方法的全部或选定方面的指令的示例非短暂性计算机可读存储介质,所有这些是根据本公开的实施例布置的。
具体实施方式
本文公开与利用调回的ISA桥接关联的方法、装置和存储介质。在多种实施例中,至少一个计算机可读存储介质可以包含指令,所述指令配置成使得具有目标ISA的目标设备能够响应这些指令的执行为目标设备提供ISA桥接层以帮助库服务调回(callback)应用的调回函数。可以对目标ISA实现该库服务,并且可以对与目标ISA不同的源ISA至少部分地实现应用。该ISA桥接层可以包括源ISA模拟器和库模拟器,其配置成协作以跨两个指令集体系结构,使得应用能够调用库服务,以及使得库服务能够调回调回函数。
将使用本领域技术人员通用以便将他们的工作实质内容传达给本领域中的其它技术人员的术语来描述说明性实施例的多种方面。但是,对于本领域技术人员来说,将显见到利用所描述的多个方面的仅其中一些可以实施多个备选实施例。出于解释的目的,提出了特定数字、材料和配置,以便透彻地理解这些说明性实施例。但是,对于本领域技术人员来说,将显见到没有这些特定细节,仍可以实施备选实施例。在其它实例中,省略或简化了公知的特征,以不致于妨碍这些说明性实施例的理解。
将多种操作描述为多个离散操作,进而以最有助于理解这些说明性实施例的方式来描述这些多种操作;但是,描述的次序不应视为暗示这些操作必定是按照次序的。具体来说,这些操作无需按出现的次序来执行。再者,将多个操作描述为单独的操作不应视为要求这些操作必定要独立地被执行和/或由单独的实体来执行。将多个实体和/或模块描述为单独的模块同样地不应视为要求这些模块是单独的和/或执行单独的操作。在多种实施例中,可以将图示和/或描述的操作、实体、数据和/或模块合并、将其进一步拆分成从属部件和/或将其省略。
短语“在一个实施例中”或“在实施例中”被反复使用。该短语一般不是指同一个实施例;但是,它可以指同一个实施例。除上下文另行指示,否则术语“包括”、“具有”和“包含”是同义词。短语“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)”。
图1图示根据本公开的多种实施例的与利用调回的ISA桥接结合的示例计算设备。如图所示,对于图示的实施例,计算设备102可以包括处理器和存储器布置104,其配置成具有操作系统(OS)122、ISA桥接层123和其中运行的应用120、图形处理单元(GPU)106、显示单元108和联网接口110,它们如图所示地彼此耦合。OS 122可以包括服务124的库。此外,计算设备102还可以在应用120与OS 122之间包括可选的中间件121。正如下文将更详细描述的,ISA桥接层123可以配置有多种运行时特征功能和服务(包括但不限于,例如动态绑定)以使得应用120能够整体地或部分地(例如,当还使用ISA无关的中间件121时)在源ISA中实现,而OS 122(包括库服务124)可以在与源ISA不同的目标ISA中实现。再者,在多种情况下,应用120可以是包括需要库服务124中的多种库服务以调回应用120的多种调回函数125的库服务124的使用特点的应用(具体来说,使用源ISA实现的部分)。ISA桥接层123也可以称为进程虚拟机(PVM)。
计算设备102可以是服务器、台式计算机、膝上型计算机、平板计算机、智能电话、个人数字助理、游戏控制台、因特网电器或类似的其它计算设备。计算设备102的示例可以包括但不限于,可从加州奥托市的惠普公司获得的服务器、可从德州奥斯丁的戴尔计算机公司获得的膝上型计算机、可从加州库比蒂诺市的Apple Computer公司获得的智能电话和计算平板、可从日本东京任天堂公司获得的游戏控制台等。
处理器和存储器布置104旨在表示宽范围的处理器和存储器布置,其包括但不限于具有多种执行速度和功耗的单核或多核处理器和具有一级或多级高速缓存的且多种类型(诸如动态随机存取、闪存等)的多种体系结构的存储器的布置。在多种实施例中, GPU106可以配置成为OS 122提供视频解码和/或图形处理功能,而显示单元108可以配置成能够在其上再现多媒体内容,例如HD视频。相似地,GPU 106和显示单元108旨在表示本领域中公知的宽范围的图形处理器和显示元件。同样地,网络134旨在表示本领域中公知的宽范围的网络。网络134的示例可以包括有线网络或无线网络、局域网或广域网、专用网络或公用网络,包括因特网。
OS 122(包括库服务124),除了定义库服务124的启用的应用编程接口(API)外,旨在表示本领域中公知的宽范围的操作系统元件。OS 122可以包括常规组件,如配置成管理存储器资源、调度任务执行等的内核以及配置成管理多种设备资源的设备驱动器。在多个实施例中,OS 122可以包括支持中间件121(如果采用的话)的虚拟机,例如支持安卓应用框架的安卓虚拟机。对于这些实施例,除了定义库服务124的调用外,为了帮助启用应用120的调回函数125,库服务124的API还可以包括应用120的调回函数125的对应存根(stub)和签名。OS 122的示例可以包括但不限于可从华盛顿州雷德蒙德的微软公司获得的Windows®操作系统、可从北卡罗来纳州罗利市的Red Hat®公司获得的Linux、开放手持设备联盟开发的安卓™或可从加州库比蒂诺市的Apple®公司获得的iOS。
相似地,中间件121旨在表示本领域中公知的宽范围的中间件,包括但不限于ISA相关的中间件。中间件121的示例可以包括但不限于,安卓应用框架、JavaTM或其它应用框架或ISA相关的执行环境。
同样地,应用120(包括调回功能125)旨在表示本领域中公知的宽范围的应用。应用120的示例可以包括但是不限于,个人助理、生产力或社交网络应用,如日程表、文字处理、电子表格、Twitter、Facebook等或通用应用代理,如浏览器。浏览器的示例可以包括但不限于,可从华盛顿州雷德蒙德的微软公司获得的Internet Explorer或可从加州山景城的Mozilla公司获得的Firefox。
现在参考图2,其中图示根据本公开的多种实施例的示例ISA桥接层123。如图所示,对于这些实施例,ISA桥接层123可以包括ISA桥接加载器202、源ISA模拟器204和目标ISA库模拟器206(下文简称为LIB模拟器),其配置成提供多种运行时特征功能和服务,包括但不限于动态绑定服务。源ISA模拟器204可以包括源ISA上下文212和二进制解释引擎215。源ISA模拟器204可以保持在源ISA上下文212中,源ISA体系结构的执行上下文包括但不限于例如,当前执行指令指针(IP)。二进制解释器引擎215可以配置成将源ISA指令解释为目标ISA指令。LIB模拟器206可以包括目标ISA库(LIB)上下文222、门224和封装器函数226。LIB模拟器206可以保持在目标ISA库(LIB)上下文222、目标ISA库的执行上下文中。在多种实施例中,每个库服务124还可以有对应的一对门224和封装器函数226,其配置成帮助应用120跨源和目标ISA体系结构调用库服务124。相似地,每个调回函数125可以有对应的一对门224和封装器函数226,其配置成帮助库服务124跨目标和源ISA体系结构调回调回函数125。
ISA桥接加载器202可以配置成加载应用120。在加载应用120时,ISA桥接加载器202可以配置成将与调用库服务关联的应用120的任何未解析的符号名称解析为库服务124中适合的一个。在多个实施例中,ISA桥接加载器202可以配置成将与调用库服务关联的应用120的任何未解析的符号名称解析为库服务124的对应门224的地址。此外,ISA桥接加载器202可以配置成将调回函数125的符号名称或引用修改为内部名称,并将调回函数125的符号名称或引用关联到对应封装器函数226。
ISA桥接加载器202可以采用多种公知方式的任何一种方式获得从OS 122加载器(或如果采用的话,从中间件121)进行加载的控制。此类公知方式的示例可以包括OS 122或中间件121支持时使用基于二进制格式的控制转移或加载/预加载变量。在其它实施例中,可以修改OS 122的加载器(或如果采用的话,从中间件121)以反之帮助将控制转移到ISA桥接加载器202。
正如先前描述的,源ISA模拟器204可以配置成保持源ISA执行上下文212。源ISA模拟器204可以配置成在应用120的执行期间跟踪源ISA IP(指令指针)。当应用120尝试调用库服务124时,监视源ISA执行的源ISA模拟器204继而可以调用并反之转移执行控制到LIB模拟器206。在多种实施例中,源ISA模拟器204可以调用并转移执行控制到库服务124的对应门224。
LIB模拟器206同样可以配置成保持目标ISA库(LIB)执行上下文222。
与库服务124对应的门224可以配置成分别地将对库服务124的调用重定向到对应的封装器函数226以处理和设置这些调用。而与调回函数125对应的门224可以配置成分别地将调回的执行控制从对应的封装器函数226转移到源ISA模拟器204。在多种实施例中,每个门224可以包括配置成实施向对应的封装器函数226或源ISA模拟器204重定向的指令。在多种实施例中,每个门224的指令可以是配置与二进制解释引擎215协作以实施执行控制重定向的源ISA指令。在多种实施例中,每个门224还可以包括标识对应的封装器函数226的指示符。
在多种实施例中,为了处理和设置对对应的库服务124的调用,与库服务124对应的每个封装器函数226可以配置成从源ISA上下文212检索调用的关联的参数值,将调用从源ISA应用二进制接口(ABI)格式转换成目标ISA ABI格式,并将转换的调用附带参数值保存在LIB上下文222中。
在调回到调回函数125时,可以将执行控制转移到调回函数125的对应封装器函数226。在多种实施例中,为了处理和设置对应用120的调回函数125的调回,与调回函数125对应的每个封装器函数226可以配置成将调回从目标ISA ABI格式转换成源ISA ABI格式,连接调回的关联的参数值,并将转换的调回附带参数值保存在源ISA上下文212中。
与调回函数125对应的门224可以配置成利用与调回函数125对应的封装器函数226准备的源ISA上下文一起来调用源ISA模拟器204以便模拟以源ISA格式在目标ISA上呈示的调回函数。
现在参考图3和图4,其中图示根据本公开的多种实施例的示例利用调回的ISA桥接方法。如图所示,方法300可以包括两个部分,用于将调用从(源ISA的)应用120桥接到(目标ISA的)库服务124的部分300a,以及用于将调回从(目标ISA的)库服务124桥接到(源ISA的)应用120的调回函数的部分300b。
部分300a可以开始于框302。在框302处,ISA桥接加载器202可以加载应用120。在加载应用120时,ISA桥接加载器202可以解析应用120至库服务124的符号名称或引用,并修改调回函数125的符号名称或引用,正如早前描述。从框302,部分300a可以接着进行到框304。在框304处,在执行过程中,应用120可以调用库服务124的其中之一。在多种实施例中,应用120可能需要被调用的库服务124调回到其调回函数125的其中之一。在多个实施例中,应用120可以作为调用被调用的库服务124的一部分包括要调回的调回函数125的指针。并不将该指针传递到调回函数125,而是库服务124的封装器函数226可以传递调回函数125的对应封装器函数226。
从框304,部分300a可以接着进行到框306。在框306处,源ISA模拟器204在通过例如监视源ISA IP并确定IP正在引用目标库的地址范围内的地址检测到调用时,源ISA模拟器204可以将调用重定向到LIB模拟器206中的库服务124的对应门224并将执行控制转移到LIB模拟器206中的库服务124的对应门224。从框306,部分300a可以接着进行到框308。在框308处,门224还可以将调用重定向到被调用的库服务124的对应封装器函数226,并将执行控制转移到被调用的库服务124的对应封装器函数226。从框308,部分300a可以接着进行到框310。在框310处,被调用的库服务124的封装器函数226可以处理该调用,并在LIB上下文222中设置该调用以供被调用的库服务124执行,正如早前描述的。从框310,部分300a可以接着进行到框312。在框312处,被调用的库服务124的门224可以从LIB上下文222收集调用的返回值,更新源ISA上下文212,并将执行控制转移到源ISA模拟器202以将库服务调用的返回值返回到应用125。
现在参考图4,部分300b可以开始于框404。在框404处,在被调用的库服务124的过程中或完成时,库服务124可以通过例如调用应用120传递的调回指针来调回应用120的调回函数125。从框404,部分300b可以接着进行到框406,因为调回指针是与调回函数125对应的封装器函数226。在框406处,可以根据修改的引用,将执行控制转移到调回函数125的对应封装器函数226。从框406,部分300b可以接着进行到框408。在框408处,封装器函数226可以处理调回,在源ISA上下文212中设置调回以供应用120的调回函数125执行,正如早前描述的,此后将执行控制转移到调回函数125的对应门224。从框408,部分300b可以接着进行到框410。在框410处,与调回函数125对应的门224可以将调回重定向到具有封装器函数226准备的源ISA上下文的ISA模拟器,并将执行控制转移到具有封装器函数226准备的源ISA上下文的ISA模拟器。
再者,在框412处,在通过例如监视源ISA IP并确定IP正在引用与调回函数125对应的门224的地址范围内的地址而检测到调用时,源ISA模拟器204可以将源ISA IP重定向到调回函数以继续模拟。从框412,部分300b可以接着进行到框414。在框414处,调回函数125的门224可以从源ISA上下文212收集调回的返回值,更新LIB上下文222,并将执行控制转移到LIB模拟器204以将调回函数125的返回值返回到库服务124。
图5图示根据本公开的多种实施例的,具有配置成实施图3和图4的方法的全部或选定方面的指令的示例非短暂性计算机可读存储介质。如图所示,非短暂性计算机可读存储介质502可以包括多个编程指令504。编程指令504可以配置成使计算设备,如计算设备102,能够响应该编程指令的执行,以执行早前参考图3和图4描述的方法300的ISA桥接操作的全部或选定方面。在备选实施例中,编程指令504可以设在多个非短暂性计算机可读存储介质502上。
参考回图1,对于一个实施例,可以将处理器和存储器布置104的处理器中至少一个处理器与配置成实施图3和图4的方法300的操作(或其子集)的ISA桥接层123的计算逻辑(或其子集)封装在一起。对于一个实施例,可以将处理器和存储器布置104的处理器中至少一个处理器与配置成实施图3和图4的方法300的操作(或其子集)的ISA桥接层123的计算逻辑(或其子集)封装在一起以形成封装中系统(SiP)。对于一个实施例,可以将处理器和存储器布置104的处理器中至少一个处理器与配置成实施图3和图4的方法300的操作(或其子集)的ISA桥接层123的计算逻辑(或其子集)集成在同一个晶片上。对于一个实施例,可以将处理器和存储器布置104的处理器中至少一个处理器与配置成实施图3和图4的方法300的操作(或其子集)的ISA桥接层123的计算逻辑(或其子集)集成在同一个晶片上以形成芯片上系统(SoC)。对于至少一个实施例,该SoC可以被用于台式计算机、膝上型计算机、智能电话、计算平板设备、因特网电器、个人数字助理(PDA)、便携式游戏播放设备、服务器或其它计算设备。
仍参考图1,虽然为了易于理解,本公开是结合将一个源ISA桥接到一个目标ISA的一个ISA桥接层123来描述的。但是,本公开并不局限于此。在多个实施例中,可以提供多个不同ISA桥接层123以便将多个不同源ISA桥接到目标ISA。在这些实施例的其中一些中,可以附加地提供调度器以检测必需的桥接,并且将一个或多个适合的ISA桥接层123实例化以提供必需的ISA桥接。
再者,在多种实施例中,本公开可以利用替代应用120的多个部分(在源ISA中)的二进制(在目标ISA中)来实施以减少所需的桥接的量。在其它实施例中,用于桥接的一些资源,例如封装器函数的其中一些可以位于ISA桥接层123可访问的远程服务器上。
再者,虽然为了易于理解,将ISA桥接层123描述为配置成桥接不同的源ISA和目标ISA。但是,本公开并不局限于此。可设想对于多种应用,可以采用ISA桥接层123来桥接相同的源ISA和目标ISA。在此类应用中,可能无需所描述的元件的其中一个或多个,例如二进制解释引擎215。此类应用的示例可以为计算设备102提供增强型工作安全性。其它应用同样可以从此类桥接获益。
因此,虽然本文图示和描述了特定的实施例,但是本领域技术人员将认识到,可以利用广泛多种备选和/或等效实现来替代所示出和描述的特定实施例。
相应地,将认识到,本公开可以是针对具有支持为另一个ISA开发的应用的一个ISA的计算设备的技术问题的解决方案,其中这些应用具有偶尔需要从被调用的库服务调回的使用特点。本公开的优点可以包括但不限于免去在计算设备ISA中完全解释或实现应用的需要。
还将认识到,本公开可以是针对为计算设备提供增强型安全性的技术问题的解决方案。本公开的优点可以包括但不限于所提供的隔离的鲁棒性。
Claims (21)
1.一种用于利用调回将源指令集体系结构桥接到目标指令集体系结构的方法,其包括:
由计算设备的源指令集体系结构模拟器保持源指令集体系结构执行上下文,其中所述计算设备包括所述计算设备的目标指令集体系结构中实现的库服务;
由所述计算设备的库模拟器保持库执行上下文;
在所述指令集体系结构模拟器与所述库模拟器之间协作以便跨所述源和目标指令集体系结构,帮助至少部分地在所述源指令集体系结构中实现的应用调用所述库服务,以及帮助所述库服务调回所述应用的调回函数;
由与所述指令集体系结构模拟器和所述库模拟器关联的加载器加载所述应用,包括以使得所述库模拟器能够在启用所述调回时进行干预的方式修改引用所述库服务的符号名称;以及
由所述加载器以使得所述源指令集体系结构模拟器能够在启用所述调回时进行干预的方式,修改引用所述应用的调回函数的符号名称。
2.如权利要求1所述的方法,其中协作包括将所述调用重定向到与所述库服务对应的所述库模拟器的门。
3.如权利要求1所述的方法,其中协作还包括将所述调用重定向到与所述库服务对应的封装器函数以处理所述调用,以及在所述库服务的所述库执行上下文中设置所述调用。
4.如权利要求1所述的方法,还包括将所述调回重定向到与所述调回函数对应的所述库模拟器的封装器函数,以便处理所述调回,以及在所述源指令集体系结构的执行上下文中设置所述调回。
5.如权利要求1所述的方法,还包括由与所述调回函数对应的所述库模拟器的门将所述调回重定向到所述源指令集体系结构模拟器。
6.如权利要求1-5中任一项所述的方法,其中所述源指令集体系结构和所述目标指令集体系结构是同一个指令集体系结构。
7.一种用于执行至少部分地在源指令集体系结构中实现的应用的装置,所述装置包括:
处理器和存储器布置,其具有目标指令集体系结构;以及
指令集体系结构桥接层,所述指令集体系结构桥接层包括源指令集体系结构模拟器和库模拟器,其配置成由所述处理器和存储器操作来进行协作以跨所述源和目标指令集体系结构,使得应用能够调用库服务,以及使得所述库服务能够调回所述应用的所述调回函数,
其中所述指令集体系结构桥接层还包括加载器;其中所述加载器配置成加载所述应用,以及以使得所述库模拟器能够在启用所述调回时进行干预的方式修改引用所述库服务的符号名称,
其中所述加载器还配置成以使得所述源指令集体系结构模拟器能够在启用所述调回时进行干预的方式,修改引用所述应用的调回函数的符号名称。
8.如权利要求7所述的装置,其中所述源指令集模拟器配置成保持所述源指令集体系结构的执行上下文,以及所述库模拟器配置成保持库执行上下文。
9.如权利要求8所述的装置,其中所述库模拟器还包括与所述库服务对应的门,其配置成将所述调用重定向到与所述库服务对应的封装器函数。
10.如权利要求8所述的装置,所述库模拟器还包括与所述库服务对应的封装器函数;其中所述封装器函数配置成处理所述调用,并在所述库执行上下文中设置所述调用。
11.如权利要求8所述的装置,其中所述库模拟器还包括与所述调回函数对应的门,其配置成将所述调回重定向到所述源指令集体系结构模拟器。
12.如权利要求8所述的装置,其中所述库模拟器还包括与所述调回函数对应的封装器函数,其配置成处理所述调回,在所述源指令集体系结构的执行上下文中设置所述调回,并将所述调回重定向到与所述调回函数对应的所述库模拟器的门。
13.如权利要求8-12中任一项所述的装置,其中所述源指令集体系结构和所述目标指令集体系结构是同一个指令集体系结构。
14.如权利要求13所述的装置,其中所述装置是服务器、台式计算机、膝上型计算机、平板计算机、智能电话、个人数字助理、游戏控制台或因特网电器中的选定的一个。
15.如权利要求13所述的装置,其中所述处理器是多核处理器。
16.如权利要求13所述的装置,还包括:包括服务库的操作系统。
17.如权利要求13所述的装置,还包括:指令集体系结构无关的应用执行环境;其中所述应用还使用所述指令集体系结构无关的应用执行环境的至少一个其它服务。
18.一种配备成利用调回将源指令集体系结构桥接到目标指令集体系结构的计算设备,其包括:
用于保持所述计算设备的源指令集体系结构执行上下文的部件,其中所述计算设备包括所述计算设备的目标指令集体系结构中实现的库服务;
用于保持所述计算设备的库执行上下文的部件;
用于跨所述源和目标指令集体系结构,帮助至少部分地在所述源指令集体系结构中实现的应用调用所述库服务,以及帮助所述库服务调回所述应用的调回函数的部件;以及
用于以能够在启用所述调回时进行干预的方式,修改引用所述应用的调回函数的符号名称的部件。
19.如权利要求18所述的计算设备,还包括用于将所述调回重定向到与所述调回函数对应的封装器函数,以处理所述调回,以及在所述源指令集体系结构的所述执行上下文中设置所述调回。
20.如权利要求18所述的计算设备,还包括用于经由与所述调回函数对应的门来重定向所述调回的部件。
21.如权利要求18所述的计算设备,还包括用于加载所述应用的部件,所述用于加载所述应用的部件包括用于以能够干预所述调用的方式修改引用所述库服务的符号名称。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2012/070163 WO2013104107A1 (en) | 2012-01-10 | 2012-01-10 | Isa bridging with callback |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104025046A CN104025046A (zh) | 2014-09-03 |
CN104025046B true CN104025046B (zh) | 2017-06-20 |
Family
ID=48781021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280066708.6A Active CN104025046B (zh) | 2012-01-10 | 2012-01-10 | 与利用调回的isa桥接关联的方法、装置和计算设备 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9513977B2 (zh) |
EP (1) | EP2802983B1 (zh) |
JP (1) | JP2015507269A (zh) |
KR (1) | KR101691063B1 (zh) |
CN (1) | CN104025046B (zh) |
TW (1) | TWI496081B (zh) |
WO (1) | WO2013104107A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9851987B2 (en) | 2012-03-22 | 2017-12-26 | Intel Corporation | Nested emulation and dynamic linking environment |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9262156B2 (en) * | 2014-02-12 | 2016-02-16 | International Business Machines Corporation | Methods for transparent management of context and state in an asynchronous callback flow |
US10120663B2 (en) * | 2014-03-28 | 2018-11-06 | Intel Corporation | Inter-architecture compatability module to allow code module of one architecture to use library module of another architecture |
US9483283B1 (en) * | 2014-11-20 | 2016-11-01 | Apptimize, Inc. | Enhanced code callback |
US10452409B2 (en) * | 2015-10-23 | 2019-10-22 | Oracle International Corporation | Universal adapter for native calling |
US10713213B2 (en) * | 2016-12-21 | 2020-07-14 | Intel Corporation | Systems and methods for multi-architecture computing |
US10684984B2 (en) | 2016-12-21 | 2020-06-16 | Intel Corporation | Computing devices and server systems with processing cores having different instruction set architectures |
US11275709B2 (en) | 2017-05-02 | 2022-03-15 | Intel Corporation | Systems and methods for multi-architecture computing |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1682181A (zh) * | 2002-09-20 | 2005-10-12 | Arm有限公司 | 具有外部和内部指令集的数据处理系统 |
US7870387B1 (en) * | 2006-04-07 | 2011-01-11 | Mcafee, Inc. | Program-based authorization |
US7958232B1 (en) * | 2007-12-05 | 2011-06-07 | Appcelerator, Inc. | Dashboard for on-the-fly AJAX monitoring |
CN102110011A (zh) * | 2009-12-23 | 2011-06-29 | 英特尔公司 | 局部仿真环境中从源指令集架构代码向转换后代码的转换 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5748964A (en) | 1994-12-20 | 1998-05-05 | Sun Microsystems, Inc. | Bytecode program interpreter apparatus and method with pre-verification of data type restrictions |
US7516453B1 (en) | 1998-10-26 | 2009-04-07 | Vmware, Inc. | Binary translator with precise exception synchronization mechanism |
US6986128B2 (en) | 2000-01-07 | 2006-01-10 | Sony Computer Entertainment Inc. | Multiple stage program recompiler and method |
GB0215033D0 (en) * | 2002-06-28 | 2002-08-07 | Critical Blue Ltd | Instruction set translation method |
US7249355B2 (en) * | 2002-12-18 | 2007-07-24 | Microsoft Corporation | Unified network thread management |
US7380235B1 (en) * | 2003-06-27 | 2008-05-27 | Microsoft Corporation | Application program interface call replay tool |
US7971255B1 (en) * | 2004-07-15 | 2011-06-28 | The Trustees Of Columbia University In The City Of New York | Detecting and preventing malcode execution |
KR20070067207A (ko) | 2004-10-12 | 2007-06-27 | 픽셀 (리서치) 리미티드 | 런타임 동적 링킹 |
US7587722B2 (en) * | 2004-12-03 | 2009-09-08 | Microsoft Corporation | Extending operating system subsystems |
US7415701B2 (en) * | 2005-02-17 | 2008-08-19 | Intel Corporation | Methods and apparatus to support mixed-mode execution within a single instruction set architecture process of a virtual machine |
US7634768B2 (en) * | 2005-02-17 | 2009-12-15 | Intel Corporation | Methods and apparatus to support mixed-mode execution within a single instruction set architecture process of a virtual machine |
GB2426840A (en) | 2005-06-04 | 2006-12-06 | Transitive Ltd | Method of executing program code where a portion of the target code calls a native code portion which then calls a second target code portion. |
US8028295B2 (en) * | 2005-09-30 | 2011-09-27 | Intel Corporation | Apparatus, system, and method for persistent user-level thread |
US7757221B2 (en) | 2005-09-30 | 2010-07-13 | Intel Corporation | Apparatus and method for dynamic binary translator to support precise exceptions with minimal optimization constraints |
US8381202B2 (en) * | 2006-06-20 | 2013-02-19 | Google Inc. | Runtime system for executing an application in a parallel-processing computer system |
US7941641B1 (en) | 2007-10-01 | 2011-05-10 | Yong-Kyu Jung | Retargetable instruction decoder for a computer processor |
US7712092B2 (en) | 2007-10-01 | 2010-05-04 | The Board Of Trustees Of The Leland Stanford Junior University | Binary translation using peephole translation rules |
US8156479B2 (en) * | 2007-12-07 | 2012-04-10 | International Business Machines Corporation | System and method of monitoring dynamic scopes in synchronous and asynchronous calls |
US20090271172A1 (en) * | 2008-04-24 | 2009-10-29 | International Business Machines Corporation | Emulating A Computer Run Time Environment |
US9038018B2 (en) | 2010-10-08 | 2015-05-19 | Microsoft Technology Licensing, Llc | Integrating software components |
EP2482184A1 (en) | 2011-02-01 | 2012-08-01 | Irdeto B.V. | Adaptive obfuscated virtual machine |
-
2012
- 2012-01-10 EP EP12865442.3A patent/EP2802983B1/en active Active
- 2012-01-10 KR KR1020147018786A patent/KR101691063B1/ko active IP Right Grant
- 2012-01-10 US US13/995,935 patent/US9513977B2/en active Active
- 2012-01-10 JP JP2014550609A patent/JP2015507269A/ja active Pending
- 2012-01-10 WO PCT/CN2012/070163 patent/WO2013104107A1/en active Application Filing
- 2012-01-10 CN CN201280066708.6A patent/CN104025046B/zh active Active
-
2013
- 2013-01-09 TW TW102100701A patent/TWI496081B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1682181A (zh) * | 2002-09-20 | 2005-10-12 | Arm有限公司 | 具有外部和内部指令集的数据处理系统 |
US7870387B1 (en) * | 2006-04-07 | 2011-01-11 | Mcafee, Inc. | Program-based authorization |
US7958232B1 (en) * | 2007-12-05 | 2011-06-07 | Appcelerator, Inc. | Dashboard for on-the-fly AJAX monitoring |
CN102110011A (zh) * | 2009-12-23 | 2011-06-29 | 英特尔公司 | 局部仿真环境中从源指令集架构代码向转换后代码的转换 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9851987B2 (en) | 2012-03-22 | 2017-12-26 | Intel Corporation | Nested emulation and dynamic linking environment |
Also Published As
Publication number | Publication date |
---|---|
EP2802983B1 (en) | 2016-12-14 |
EP2802983A1 (en) | 2014-11-19 |
EP2802983A4 (en) | 2015-09-02 |
US20140040921A1 (en) | 2014-02-06 |
WO2013104107A1 (en) | 2013-07-18 |
KR20140101412A (ko) | 2014-08-19 |
KR101691063B1 (ko) | 2016-12-29 |
CN104025046A (zh) | 2014-09-03 |
US9513977B2 (en) | 2016-12-06 |
JP2015507269A (ja) | 2015-03-05 |
TWI496081B (zh) | 2015-08-11 |
TW201351275A (zh) | 2013-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104025046B (zh) | 与利用调回的isa桥接关联的方法、装置和计算设备 | |
CN103443763B (zh) | 包含对重写虚拟函数的调用的支持的isa桥接 | |
EP3452907B1 (en) | Control of applications that use system resources | |
CN109213613B (zh) | 图像信息的传输方法、装置、存储介质及电子设备 | |
CN103279396B (zh) | 用于向次级设备传送应用和会话状态的系统和方法 | |
EP2867805B1 (en) | Method and apparatus for task based remote services | |
US20120017209A1 (en) | Optimizing a file system interface in a virtualized computing environment | |
CN104317648B (zh) | 一种监测广告的方法和装置 | |
CN104246695A (zh) | 嵌套仿真和动态链接环境 | |
US8024444B2 (en) | Associating telemetry data from a group of entities | |
US9262211B2 (en) | Apparatus and method for software migration in mobile environment | |
CN110333955B (zh) | 一种管理应用中消息通知的方法与设备 | |
KR20140101370A (ko) | 자율형 네트워크 스트리밍 기법 | |
CN110321189B (zh) | 一种在宿主程序中呈现寄宿程序的方法与设备 | |
CN104205049B (zh) | 混合模拟和内核函数处理系统和方法 | |
CN108984339A (zh) | 数据恢复方法及相关产品 | |
Srinivasan et al. | Google Cloud Platform for Architects: Design and manage powerful cloud solutions | |
US11100243B2 (en) | Selective persistence of data utilized by software containers | |
CN102609293B (zh) | 对c/c++进行动态实例化的方法 | |
US10375206B1 (en) | Entity-component architecture with components having multiple configurations | |
US10146791B2 (en) | Open file rebalance | |
CN105068850A (zh) | 一种资源包加载装置、方法和计算设备 | |
JP5989844B2 (ja) | 可搬型内蔵式ノードコンピュータのための方法および装置 | |
JP2013254303A (ja) | 情報処理装置、情報処理方法およびプログラム | |
CN110262856B (zh) | 一种应用程序数据采集方法、装置、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |