JP2017142842A - Isa (instruction set architecture) bridging by callback - Google Patents
Isa (instruction set architecture) bridging by callback Download PDFInfo
- Publication number
- JP2017142842A JP2017142842A JP2017078938A JP2017078938A JP2017142842A JP 2017142842 A JP2017142842 A JP 2017142842A JP 2017078938 A JP2017078938 A JP 2017078938A JP 2017078938 A JP2017078938 A JP 2017078938A JP 2017142842 A JP2017142842 A JP 2017142842A
- Authority
- JP
- Japan
- Prior art keywords
- instruction set
- library
- set architecture
- callback
- emulator
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 48
- 230000006870 function Effects 0.000 claims description 92
- 230000008569 process Effects 0.000 claims description 24
- 230000015654 memory Effects 0.000 claims description 11
- 230000004044 response Effects 0.000 abstract description 3
- 238000012546 transfer Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 230000007704 transition Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 4
- 230000009249 intrinsic sympathomimetic activity Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
Description
ここに与えられる背景の説明は、開示のコンテクストを全体的に提示するためのものである。特段の断りがない場合、このセクションにおいて説明される題材は、本出願の請求項に対する従来技術でなく、本セクションに含めることによって従来技術として自認されない。 The background description provided herein is for the purpose of generally presenting the context of the disclosure. Unless otherwise noted, the material described in this section is not prior art to the claims of this application and is not admitted to be prior art by inclusion in this section.
計算装置は、それの命令セットアーキテクチャ(ISA)により特徴付けされる。典型的には、計算装置は、オペレーティングシステム(OS)サービスを含み、OSサービスは、アプリケーションの開発者が計算装置上で実行されるアプリケーションを開発することを容易にするため、計算装置のISAのために開発されたランタイムライブラリサービス(LIB)を含む。例えば、各種スマートフォンは、ARMプロセッサとそれのISAを利用することによって特徴付けされる。これらのスマートフォンは、各スマートフォンについて開発された各種アプリケーションのサポートにおいてiOSやAndroidなどのOSを含む。ある計算装置は、Java(登録商標)やAndroid Application FrameworkなどのISAから独立した実行環境を提供する。しかしながら、多数のアプリケーションが、ISAに依存したランタイムライブラリのサービスを呼び出すISA依存部分を含む。さらに、これらのISA依存部分は、しばしばISAに依存したランタイムライブラリからのコールバックを求めるコールバックファンクションを含み、このようなコールバックは、ランタイムまでしばしば検出されず、バイナリ変換などの従来のアプローチをニーズに対処するのに不適切なものにする。 A computing device is characterized by its instruction set architecture (ISA). Typically, a computing device includes an operating system (OS) service, which facilitates application developers to develop applications that run on the computing device, so that the ISA of the computing device. Includes a runtime library service (LIB) developed for For example, various smartphones are characterized by utilizing an ARM processor and its ISA. These smartphones include OSs such as iOS and Android in support of various applications developed for each smartphone. Some computing devices provide an execution environment independent of ISA, such as Java (registered trademark) and Android Application Framework. However, many applications include an ISA dependent part that invokes a service of a runtime library that depends on the ISA. In addition, these ISA-dependent parts often include callback functions that seek callbacks from ISA-dependent runtime libraries, and such callbacks are often not detected until runtime, replacing traditional approaches such as binary conversion. Make it inappropriate to address your needs.
本発明の実施例は、限定することなく、同様の参照が同様の要素を示す添付図面に示される実施例により説明される。
コールバックによるISAブリッジングに関連する方法、装置及び記憶媒体が開示される。各種実施例では、少なくとも1つのコンピュータ可読記憶媒体は、命令の実行に応答して、アプリケーションのコールバックファンクションをコールバックするためのライブラリサービスを実現するため、ターゲットISAを備えたターゲット装置がターゲット装置に対するISAブリッジングレイヤを提供することを可能にするよう構成される命令を有する。ライブラリサービスは、ターゲットISAについて実現され、アプリケーションは、ターゲットISAと異なるソースISAについて少なくとも部分的に実現されてもよい。ISAブリッジングレイヤは、アプリケーションがライブラリサービスをコールし、ライブラリサービスが2つの命令セットアーキテクチャ間でコールバックファンクションをコールバックすることを可能にするよう連携するよう構成されるソースISAエミュレータとライブラリエミュレータとを有してもよい。 A method, apparatus, and storage medium related to ISA bridging by callback are disclosed. In various embodiments, the at least one computer readable storage medium provides a library service for callback of an application callback function in response to execution of an instruction, so that the target device with the target ISA is the target device. Having instructions configured to allow providing an ISA bridging layer for Library services may be implemented for a target ISA and applications may be implemented at least in part for a source ISA that is different from the target ISA. The ISA bridging layer includes a source ISA emulator and a library emulator that are configured to work together to allow an application to call a library service and the library service to call back a callback function between two instruction set architectures. You may have.
例示的な実施例の各種態様が、他の当業者に当業者が自分の作業の本質を伝えるため一般に利用される用語を用いて説明される。しかしながら、他の実施例は説明された態様の一部のみにより実施されてもよいことが当業者に明らかであろう。説明のため、例示的な実施例の完全な理解を提供するため、具体的な数字、題材及びコンフィギュレーションが提供される。しかしながら、他の実施例はこれら具体的な詳細になしに実施可能であることが、当業者に明らかであろう。他の例では、周知の特徴は、例示的な実施例を不明瞭にしないように省略又は簡単化される。 Various aspects of the illustrative embodiments are described using terminology commonly used by those skilled in the art to convey the substance of their work to others skilled in the art. However, it will be apparent to one skilled in the art that other embodiments may be practiced according to only some of the described aspects. For purposes of explanation, specific numbers, subject matter and configurations are provided to provide a thorough understanding of the exemplary embodiments. However, it will be apparent to one skilled in the art that other embodiments may be practiced without these specific details. In other instances, well-known features are omitted or simplified so as not to obscure the example embodiments.
各種処理が、例示的な実施例を理解するのに最も役立つ方法により複数の別々の処理として説明される。しかしながら、説明の順序は、これらの処理が必ずしも順序に依存することを意味するように解釈されるべきでない。特に、これらの処理は、提示の順序で実行される必要はない。さらに、別々の処理としての処理の説明は、当該処理が独立の及び/又は別々のエンティティにより実行される必要があることを要求するものとして解釈されるべきでない。別々のモジュールとしてのエンティティ及び/又はモジュールの説明は、これらのモジュールが別々のものであり、及び/又は別々の処理を実行することを要求するものとして解釈されるべきでない。各種実施例では、図示及び/又は説明された処理、エンティティ、データ及び/又はモジュールは、マージ、さらなるサブパーツに分割及び/又は省略されてもよい。 The various processes are described as multiple separate processes in a manner that is most useful for understanding the exemplary embodiment. However, the order of description should not be construed to mean that these processes are necessarily dependent on the order. In particular, these processes need not be performed in the order of presentation. Further, the description of a process as a separate process should not be construed as requiring that the process be performed by an independent and / or separate entity. The description of entities and / or modules as separate modules should not be construed as requiring that these modules be separate and / or perform separate processing. In various embodiments, the processes, entities, data, and / or modules illustrated and / or described may be merged, divided into further subparts, and / or omitted.
“一実施例では”又は“実施例では”というフレーズは、繰り返し利用される。これらのフレーズは、一般に同一の実施例を参照するものでないが、参照してもよい。特段の断りがない場合、“有する”及び“含む”という用語は同義的である。フレーズ“A/B”は、“A又はB”を意味する。フレーズ“A及び/又はB”は、“(A),(B)又は(A及びB)”を意味する。“A、B及びCの少なくとも1つ”というフレーズは、“(A),(B),(C),(A及びB),(A及びC),(B及びC)又は(A,B及びC)”を意味する。 The phrases “in one embodiment” or “in an embodiment” are used repeatedly. These phrases generally do not refer to the same embodiment, but may refer to them. Unless otherwise noted, the terms “comprising” and “including” are synonymous. The phrase “A / B” means “A or B”. The phrase “A and / or B” means “(A), (B) or (A and B)”. The phrase “at least one of A, B and C” means “(A), (B), (C), (A and B), (A and C), (B and C) or (A, B And C) ".
図1は、本開示の各種実施例によるコールバックによるISAブリッジングを搭載した一例となる計算装置を示す。図示されるように、例示的な実施例について、計算装置102は、図示されるように互いに接続される、オペレーティングシステム(OS)122、ISAブリッジングレイヤ123及びそこで実行されるアプリケーション120、グラフィック処理ユニット(GPI)106、ディスプレイユニット108及びネットワーキングインタフェース110を有するよう構成されるプロセッサメモリ構成104を有する。OS122は、サービス124のライブラリを含む。さらに、計算装置102はまた、アプリケーション120とOS122との間の任意的なミドルウェア121を有してもよい。以下でより詳細に説明されるように、ISAブリッジングレイヤ123は、アプリケーション120が全体的に又は部分的に(例えば、ISAに独立したミドルウェア121がまた利用されるときなど)ソースISAにおいて実現されることを可能にするための各種ランタイム機能及びサービス(限定することなく、ダイナミックバインディングなどを含む)を備えるよう構成され、OS122(ライブラリサービス124を含む)は、ソースISAと異なるターゲットISAにおいて実現されてもよい。さらに、アプリケーション120は、ライブラリサービス124の各種サービスが各種状態の下でアプリケーション120の各種コールバックファンクション125をコールバックすることを要求するライブラリファンクション125をコールバックすることを要求するライブラリサービス124の利用特性を含むアプリケーション(特に、ソースISAを用いて実現される部分)であってもよい。ISAブリッジングレイヤ123はまた、プロセスバーチャルマシーン(PVM)と呼ばれてもよい。
FIG. 1 illustrates an example computing device equipped with callback ISA bridging according to various embodiments of the present disclosure. As shown, for the exemplary embodiment, computing device 102 is connected to each other as shown, operating system (OS) 122, ISA bridging layer 123 and application 120 executing therein, graphics processing. It has a processor memory arrangement 104 configured to have a unit (GPI) 106, a
計算装置102は、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、PDA(Personal Digital Assistant)、ゲームコンソール、インターネット機器又は同様の他の計算装置であってもよい。計算装置102の具体例は、限定することなく、カリフォルニア州のPalo AltoのHewlett Packardから入手可能なサーバ、テキサス州のAustinのDell Computerから入手可能なデスクトップ又はラップトップコンピュータ、カリフォルニア州のCupertinoのApple Computerから入手可能なスマートフォン及び計算タブレット、日本の東京の任天堂から入手可能なゲームコンソールなどを含むものであってもよい。 The computing device 102 may be a server, desktop computer, laptop computer, tablet computer, smartphone, PDA (Personal Digital Assistant), game console, internet device, or other similar computing device. Specific examples of computing device 102 include, but are not limited to, a server available from Hewlett Packard, Palo Alto, California, a desktop or laptop computer available from Dell Computer, Austin, Texas, Appletino Apple, California. It may include a smartphone and a calculation tablet available from Computer, a game console available from Nintendo in Tokyo, Japan, and the like.
プロセッサメモリ構成104は、限定することなく、各種実行速度及び電力消費のシングル又はマルチコアプロセッサ、及びDRAM、FLASHなどの各種タイプの1以上のレベルのキャッシュを備えた各種アーキテクチャのメモリと備えた構成を含む広範なプロセッサメモリ構成を表すことが意図される。各種実施例では、GPU106は、OS122に対してビデオ復号化及び/又はグラフィック処理ファンクションを提供するよう構成され、ディスプレイユニット108は、HDビデオなどのマルチメディアコンテンツが再生されるのを可能にするよう構成される。同様に、GPU106及びディスプレイユニット108は、当該技術において知られる広範なグラフィックプロセッサ及びディスプレイ要素を表すことが意図される。同様に、ネットワーク134は、当該技術において知られる広範なネットワークを表すことが意図される。ネットワーク134の具体例は、有線又は無線、ローカル又はワイドエリア、プライベート又はインターネットを含むパブリックネットワークを含むものであってもよい。
The processor memory configuration 104 includes, without limitation, a single or multi-core processor with various execution speeds and power consumption, and memories of various architectures including one or more levels of caches of various types such as DRAM and FLASH. It is intended to represent a wide range of processor memory configurations including. In various embodiments, the GPU 106 is configured to provide video decoding and / or graphics processing functions to the OS 122 and the
OS122(ライブラリサービス124を含む)は、ライブラリサービス124の呼び出しを規定するアプリケーションプログラミングインタフェース(API)の除き、当該技術において知られる広範なオペレーティングシステム要素を表すことが意図される。OS122は、メモリリソースを管理し、タスクの実行をスケジューリングするよう構成されるカーネル、各種デバイスリソースを管理するよう構成されるデバイスドライバなどの従来のコンポーネントを含むものであってもよい。実施例では、OS122は、AndroidアプリケーションフレームワークのサポートにおけるAndroidのバーチャルマシーンなど、ミドルウェア121(利用される場合)のサポートにおけるバーチャルマシーンを含むものであってもよい。実施例について、アプリケーション120のコールバックファンクション125の呼び出しを実行するため、ライブラリサービス124の呼び出しを規定することに加えて、ライブラリサービス124のAPIはまた、アプリケーション120のコールバックファンクション125の対応するスタブ及びシグネチャを有してもよい。OS122の具体例は、限定することなく、ワシントン州のRedmondのMicrosoft Corporationから入手可能なWindows(登録商標)オペレーティングシステム、ノースカロライナ州のRaleighのRed Hat(登録商標)などから入手可能なLinux(登録商標)、Open Handset Allianceにより開発されたAndroidTM、又はカリフォルニア州のCupertinoのApple(登録商標) Computerから入手可能なiOSを含むものであってもよい。
OS 122 (including library service 124) is intended to represent a wide range of operating system elements known in the art, except for an application programming interface (API) that defines invocations of library service 124. The OS 122 may include conventional components such as a kernel configured to manage memory resources and schedule task execution, and a device driver configured to manage various device resources. In an embodiment, the OS 122 may include a virtual machine in support of middleware 121 (if used), such as Android's virtual machine in support of the Android application framework. For an embodiment, in addition to defining a call to library service 124 to perform a call to callback function 125 of application 120, the API of library service 124 also includes a corresponding stub for callback function 125 of application 120. And may have a signature. Specific examples of
同様に、ミドルウェア121は、限定することなく、ISAから独立したミドルウェアを含む当該技術において知られる広範なミドルウェア要素を表すことが意図される。ミドルウェア121の具体例は、限定することなく、Androidアプリケーションフレームワーク、Java(登録商標)又は他のアプリケーションフレームワーク又はISAから独立した実行環境を含むものであってもよい。 Similarly, middleware 121 is intended to represent a wide range of middleware elements known in the art including, but not limited to, middleware independent of ISA. Specific examples of the middleware 121 may include, without limitation, an execution environment independent of the Android application framework, Java (registered trademark), other application frameworks, or ISA.
同様に、アプリケーション120(コールバックファンクション125を含む)は、当該技術において知られる広範なアプリケーションを表すことが意図される。アプリケーション120の具体例は、限定することなく、カレンダ、ワードプロセッシング、スプレッドシート、Twitter、Facebookなどのパーソナルアシスタント、プロダクティビティ又はソーシャルネットワーキングアプリケーション、又はブラウザなどの汎用アプリケーションエージェントを含むものであってもよい。ブラウザの具体例は、限定することなく、ワシントン州のRedmondのMicrosoft Corporationから入手可能なInternet Explorer又はカリフォルニア州のMountain ViewのMozillaから入手可能なFirefoxを含むものであってもよい。 Similarly, application 120 (including callback function 125) is intended to represent a wide range of applications known in the art. Specific examples of application 120 may include, without limitation, a calendar, word processing, spreadsheet, personal assistant such as Twitter, Facebook, a productivity or social networking application, or a general purpose application agent such as a browser. . Specific examples of browsers may include, but are not limited to, Firefox, available from Internet Explorer, Redmond, Washington, or Mozilla, Mountain View, California.
図2を参照して、本開示の各種実施例による一例となるISAブリッジングレイヤ123が示される。図示されるように、実施例について、ISAブリッジングレイヤ123は、限定することなく、ダイナミックバインディングサービスを含む各種ランタイム機能及びサービスを提供するよう構成されるISAブリッジングローダ202、ソースISAエミュレータ204及びターゲットISAライブラリエミュレータ206(以降、単にLIBエミュレータ)を有してもよい。ソースISAエミュレータ204は、ソースISAコンテクスト212及びバイナリ変換エンジン215を有する。ソースISAエミュレータ204は、ソースISAコンテクスト212において、限定することなく、現在の実行命令ポインタ(IP)などを含むソースISAアーキテクチャの実行コンテクストを維持する。バイナリ変換エンジン215は、ソースISA命令をターゲットISA命令に変換するよう構成される。LIBエミュレータ206は、ターゲットISAライブラリ(LIB)コンテクスト222、ゲート224及びラッパファンクション226を有する。LIBエミュレータ206は、ターゲットISAライブラリ(LIB)コンテクスト222において、ターゲットISAライブラリの実行コンテクストを維持する。各種実施例では、ソース及びターゲットISAアーキテクチャにおいてアプリケーション120によるライブラリサービス124の呼び出しを実行するよう構成される、ライブラリサービス124毎のゲート224及びラッパファンクション226の対応するペアがあってもよい。同様に、ターゲット及びソースISAアーキテクチャにおいてライブラリサービス124によるコールバックファンクション125のコールバックを実現するよう構成される、コールバックファンクション125毎のゲート224及びラッパファンクション226の対応するペアがあってもよい。 With reference to FIG. 2, an exemplary ISA bridging layer 123 is shown in accordance with various embodiments of the present disclosure. As shown, for an embodiment, the ISA bridging layer 123 includes, but is not limited to, an ISA bridging loader 202, a source ISA emulator 204, and a configuration configured to provide various runtime functions and services including dynamic binding services. A target ISA library emulator 206 (hereinafter simply referred to as a LIB emulator) may be included. The source ISA emulator 204 includes a source ISA context 212 and a binary conversion engine 215. The source ISA emulator 204 maintains an execution context of the source ISA architecture in the source ISA context 212, including but not limited to the current execution instruction pointer (IP). The binary conversion engine 215 is configured to convert source ISA instructions to target ISA instructions. The LIB emulator 206 includes a target ISA library (LIB) context 222, a gate 224, and a wrapper function 226. The LIB emulator 206 maintains the execution context of the target ISA library in the target ISA library (LIB) context 222. In various embodiments, there may be a corresponding pair of gates 224 and wrapper functions 226 for each library service 124 that is configured to perform a call to the library service 124 by the application 120 in the source and target ISA architecture. Similarly, there may be a corresponding pair of gate 224 and wrapper function 226 for each callback function 125 configured to implement callback of callback function 125 by library service 124 in the target and source ISA architecture.
ISAブリッジングローダ202は、アプリケーション120をロードするよう構成される。アプリケーション120をロードする際、ISAブリッジングローダ202は、コール元のライブラリサービスに関するアプリケーション120の何れか未定なシンボリックネームをライブラリサービス124の適切なサービスに決定するよう構成される。実施例では、ISAブリッジングローダ202は、コール元のライブラリサービスに関連するアプリケーション120の未定なシンボリックネームをライブラリサービス124の対応するゲート224のアドレスに決定するよう構成されてもよい。さらに、ISAブリッジングローダ202は、コールバックファンクション125のシンボリックネーム又はリファレンスを内部ネームに変更し、シンボリックネーム又はリファレンスを対応するラッパファンクション226に対するコールバックファンクション125に関連付けるよう構成されてもよい。 The ISA bridging loader 202 is configured to load the application 120. When loading the application 120, the ISA bridging loader 202 is configured to determine any undetermined symbolic name of the application 120 for the calling library service as the appropriate service of the library service 124. In an embodiment, the ISA bridging loader 202 may be configured to determine the undetermined symbolic name of the application 120 associated with the calling library service as the address of the corresponding gate 224 of the library service 124. Further, the ISA bridging loader 202 may be configured to change the symbolic name or reference of the callback function 125 to an internal name and associate the symbolic name or reference with the callback function 125 for the corresponding wrapper function 226.
ISAブリッジングローダ202は、複数の既知の方法の何れかによってOS122(又は使用される場合、ミドルウェア121)のローダからのロード処理の制御を取得する。このような既知の方法の具体例は、OS122又はミドルウェア121によりサポートされるとき、バイナリフォーマットベースの制御移転又はロード/プレロード変数の利用を含む。他の実施例では、OS122(又は使用される場合、ミドルウェア121)のローダが、代わりにISAブリッジングローダ202への制御の移転を実行するよう変更されてもよい。
The ISA bridging loader 202 obtains control of the load process from the loader of the OS 122 (or middleware 121, if used) by any of a number of known methods. Examples of such known methods include the use of binary format based control transfer or load / preload variables when supported by
上述されるように、ソースISAエミュレータ204は、ソースISA実行コンテクスト212を維持するよう構成される。ソースISAエミュレータ204は、アプリケーション120の実行中にソースISA IP(命令ポインタ)をトラッキングするよう構成されてもよい。アプリケーション120がライブラリサービス124を呼び出すことを試みるとき、ソースISA実行をモニタリングするソースISAエミュレータ204が代わりに、LIBエミュレータ206への実行制御の呼び出し及び移転してもよい。各種実施例では、ソースISAエミュレータ204は、ライブラリサービス124の対応するゲート224に対して実行制御を呼び出し及び移転してもよい。 As described above, the source ISA emulator 204 is configured to maintain a source ISA execution context 212. The source ISA emulator 204 may be configured to track the source ISA IP (instruction pointer) during execution of the application 120. When application 120 attempts to call library service 124, source ISA emulator 204, which monitors source ISA execution, may instead call and transfer execution control to LIB emulator 206. In various embodiments, the source ISA emulator 204 may invoke and transfer execution control to the corresponding gate 224 of the library service 124.
LIBエミュレータ206は、同様にターゲットISAライブラリ(LIB)実行コンテクスト222を維持するよう構成されてもよい。 The LIB emulator 206 may similarly be configured to maintain a target ISA library (LIB) execution context 222.
ライブラリサービス124に対応するゲート224は、ライブラリサービス124に対するコールを対応するラッパファンクション226にそれぞれリダイレクトし、当該コールを処理及び設定するよう構成されてもよい。一方、コールバックファンクション125に対応するゲート224は、対応するラッパファンクション226からソースISAエミュレータ204へのコールバックの実行制御をそれぞれ移転するよう構成されてもよい。各種実施例では、各ゲート224は、対応するラッパファンクション226又はソースISAエミュレータ204へのリダイレクトを実行するよう構成される命令を有してもよい。各種実施例では、各ゲート224の命令は、実行制御リダイレクションを実現するため、バイナリ変換エンジン215と連携するよう構成されるソースISA命令であってもよい。各種実施例では、各ゲート224は更に、対応するラッパファンクション226を特定するインジケータを有してもよい。 The gate 224 corresponding to the library service 124 may be configured to redirect each call to the library service 124 to the corresponding wrapper function 226 to process and set the call. On the other hand, the gate 224 corresponding to the callback function 125 may be configured to transfer the callback execution control from the corresponding wrapper function 226 to the source ISA emulator 204, respectively. In various embodiments, each gate 224 may have instructions configured to perform a redirect to a corresponding wrapper function 226 or source ISA emulator 204. In various embodiments, each gate 224 instruction may be a source ISA instruction configured to cooperate with the binary translation engine 215 to implement execution control redirection. In various embodiments, each gate 224 may further include an indicator that identifies the corresponding wrapper function 226.
各種実施例では、対応するライブラリサービス124に対するコールを処理及び設定するため、ライブラリサービス124に対応する各ラッパファンクション226は、ソースISAコンテクスト212からコールの関連するパラメータ値を抽出し、当該コールをソースISAアプリケーションバイナリインタフェース(ABI)フォーマットからターゲットISA ABIフォーマットに変換し、変換されたコールをパラメータ値と共にLIBコンテクスト222に保存するよう構成されてもよい。 In various embodiments, in order to process and set up a call to the corresponding library service 124, each wrapper function 226 corresponding to the library service 124 extracts the associated parameter value of the call from the source ISA context 212 and sends the call to the source It may be configured to convert from an ISA application binary interface (ABI) format to a target ISA ABI format and store the converted call in the LIB context 222 with parameter values.
コールバックファンクション125に対するコールバックに対して、実行制御は、コールバックファンクション125の対応するラッパファンクション226に移転されてもよい。各種実施例では、アプリケーション120のコールバックファンクション125に対するコールバックを処理及び設定のため、コールバックファンクション125に対応する各ラッパファンクション226は、当該コールバックをターゲットISA ABIフォーマットからソースISA ABIフォーマットに変換し、コールバックの関連するパラメータ値をアタッチし、変換されたコールバックをパラメータ値と共にソースISAコンテクスト212に保存するよう構成されてもよい。 For callbacks to the callback function 125, execution control may be transferred to the corresponding wrapper function 226 of the callback function 125. In various embodiments, each wrapper function 226 corresponding to callback function 125 converts the callback from the target ISA ABI format to the source ISA ABI format for processing and setting the callback to callback function 125 of application 120. Then, it may be configured to attach the associated parameter value of the callback and save the converted callback along with the parameter value in the source ISA context 212.
コールバックファンクション125に対応するゲート224は、ターゲットISAのソースISAフォーマットにおいて提示されるコールバックファンクションをエミュレートするため、コールバックファンクション125に対応するラッパファンクション226により準備されるソースISAコンテクストによってソースISAエミュレータ204を呼び出すよう構成されてもよい。 The gate 224 corresponding to the callback function 125 is source ISA by the source ISA context prepared by the wrapper function 226 corresponding to the callback function 125 to emulate the callback function presented in the source ISA format of the target ISA. The emulator 204 may be configured to be invoked.
図3〜4を参照して、本開示の各種実施例によるコールバックによる一例となるISAブリッジング方法が示される。図示されるように、方法300は、コールを(ソースISAの)アプリケーション120から(ターゲットISAの)ライブラリサービス124にブリッジングするためのパート300aと、コールを(ターゲットISAの)ライブラリサービス124から(ソースISAの)アプリケーション120のコールバックファンクションにブリッジングするためのパート300bとの2つのパートを含むものであってもよい。
With reference to FIGS. 3-4, an exemplary ISA bridging method with callback according to various embodiments of the present disclosure is shown. As shown, the
パート300aは、ブロック302から開始される。ブロック302において、ISAブリッジングローダ202はアプリケーション120をロードする。アプリケーション120をロードする際、上述されるように、ISAブリッジングローダ202は、ライブラリサービス124に対してアプリケーション120のシンボリックネーム又はリファレンスを決定し、コールバックファンクション125のシンボリックネーム又はリファレンスを修正してもよい。ブロック302から、パート300aは、ブロック304に移行する。ブロック304において、実行中に、アプリケーション120はライブラリサービス124の1つを呼び出してもよい。各種実施例では、アプリケーション120は、コールされたライブラリサービス124によるそれのコールバックファンクション125の1つに対するコールバックを要求してもよい。実施例では、アプリケーション120は、コールされたライブラリサービス124に対するコールの一部として、コールバックされるべきコールバックファンクション125に対するポインタを有してもよい。コールバックファンクション125に対するポインタをわたす代わりに、ライブラリサービス124のラッパファンクション226は、コールバックファンクション125の対応するラッパファンクション226をわたしてもよい。
ブロック304から、パーツ300aはブロック306に移行する。ブロック306において、ソースISAエミュレータ204は、例えば、ソースISA IPをモニタリングし、IPがターゲットライブラリのアドレス範囲内のアドレスを参照していると判断することによってコールを検出すると、当該コールをリダイレクトし、LIBエミュレータ206のライブラリサービス124の対応するゲート224に対して実行制御を移転する。ブロック306から、パーツ300aはブロック308に移行する。ブロック308において、ゲート224は更に、当該コールをリダイレクトし、コールされたライブラリサービス124の対応するラッパファンクション226に対して実行制御を移転してもよい。ブロック308から、パーツ300aはブロック310に移行する。ブロック310において、上述されるように、コールされたライブラリサービス124のラッパファンクション226は当該コールを処理し、コールされたライブラリサービス124による実行のため、LIBコンテクスト222にコールを設定する。ブロック310から、パート300aはブロック312に移行する。ブロック312において、コールされたライブラリサービス124のゲート224は、LIBコンテクスト222から当該コールのリターン値を収集し、ソースISAコンテクスト212を更新し、ライブラリサービスのコールのリターン値をアプリケーション125に返すため、ソースISAエミュレータ202に対する実行制御を移転する。
From
図4を参照して、パーツ300bはブロック404において開始される。ブロック404において、コールされたライブラリサービス124の実行中又は終了すると、ライブラリサービス124は、アプリケーション120によりわたされたコールバックポインタをコールするなどによって、アプリケーション120のコールバックファンクション125をコールバックする。ブロック404から、パート300bは、コールバックポインタがコールバックファンクション125に対応するラッパファンクション226であるとき、ブロック406に移行する。ブロック406において、実行制御は、修正されたリファレンスに従って、コールバックファンクション125の対応するラッパファンクション226に移転されてもよい。ブロック406から、パート300bはブロック408に移行する。ブロック408において、ラッパファンクション226は、コールバックを処理し、上述されるように、アプリケーション120のコールバックファンクション125による実行のため、ソースISAコンテクスト212にコールバックを設定し、その後、コールバックファンクション125の対応するゲート224に対して実行制御を移転する。ブロック408から、パート300bはブロック410に移行する。ブロック410において、コールバックファンクション125に対応するゲート224は、コールバックをリダイレクトし、ラッパファンクション226による準備されるソースISAコンテクストによってISAエミュレータに対して実行制御を移転する。
Referring to FIG. 4,
さらに、ブロック412において、ソースISA IPをモニタリングし、当該IPがコールバックファンクション125に対応するゲート224のアドレス範囲内のアドレスを参照していると判断するなどによってコールを検出すると、ソースISAエミュレータ204は、エミュレーションを継続するため、ソースISA IPをコールバックファンクションにリダイレクトする。ブロック412から、パート300bはブロック414に移行する。ブロック414において、コールバックファンクション125のゲート224は、ソースISAコンテクスト212からコールバックのリターン値を収集し、LIBコンテクスト222を更新し、ライブラリサービス124にコールバックファンクション125のリターン値を返すため、LIBエミュレータ204に対して実行制御を移転する。
Further, at block 412, if the call is detected, such as by monitoring the source ISA IP and determining that the IP refers to an address within the address range of the gate 224 corresponding to the callback function 125, the source ISA emulator 204 Redirects the source ISA IP to the callback function to continue emulation. From block 412,
図5は、本開示の各種実施例による図3及び4の方法の全て又は選択された態様を実施するよう構成される命令を有する一例となる非一時的なコンピュータ可読記憶媒体を示す。図示されるように、非一時的なコンピュータ可読記憶媒体502は、複数のプログラミング命令504を有する。プログラミング命令504は、計算装置102などの計算装置が、プログラミング命令の実行に応答して、図3及び4を参照して上述された方法300のISAブリッジング処理の全て又は選択された態様を実行することを可能にするよう構成される。他の実施例では、プログラミング命令504は、複数の非一時的なコンピュータ可読記憶媒体502に配置されてもよい。
FIG. 5 illustrates an example non-transitory computer readable storage medium having instructions configured to implement all or selected aspects of the methods of FIGS. 3 and 4 according to various embodiments of the present disclosure. As shown, the non-transitory computer readable storage medium 502 has a plurality of
図1を再び参照して、一実施例について、プロセッサメモリ構成104のプロセッサの少なくとも1つは、図3及び4の方法300の処理(又はそれの一部)を実行するよう構成されるISAブリッジングレイヤ123の計算ロジック(又はそれの一部)と共にパッケージングされてもよい。一実施例について、プロセッサメモリ構成104のプロセッサの少なくとも1つは、システム・イン・パッケージ(SiP)を構成するため、図3及び4の方法300の処理(又はそれの一部)を実行するよう構成されるISAブリッジングレイヤ123の計算ロジック(又はそれの一部)と一緒にパッケージングされてもよい。一実施例について、プロセッサメモリ構成104のプロセッサの少なくとも1つは、図3及び4の方法300の処理(又はそれの一部)を実行するよう構成されるISAブリッジングレイヤ123の計算ロジック(又はそれの一部)と同一ダイ上で統合されてもよい。一実施例について、プロセッサメモリ構成104のプロセッサの少なくとも1つは、システム・オン・チップ(SoC)を構成するため、図3及び4の方法の処理(又はそれの一部)を実行するよう構成されるISAブリッジングレイヤ123の計算ロジック(又はそれの一部)と同一ダイ上に統合されてもよい。少なくとも1つの実施例について、SoCは、デスクトップコンピュータ、ラップトップコンピュータ、スマートフォン、計算タブレット、インターネット機器、PDA(Personal Digital Assistant)、ポータブルゲーム再生装置、サーバ又は他の計算装置において利用されてもよい。
Referring back to FIG. 1, for one embodiment, at least one of the processors in the processor memory configuration 104 is configured to perform the processing (or part thereof) of the
図1を更に参照して、理解の簡単化のため、本開示は1つのソースISAを1つのターゲットISAにブリッジングする1つのISAブリッジングレイヤ123により説明された。しかしながら、本開示はこれに限定されるものでない。実施例では、複数の異なるISAブリッジングレイヤ123が、複数の異なるソースISAをターゲットISAにブリッジングするため設けられてもよい。これらの実施例のいくつかについて、要求されたブリッジングを検出するためディスパッチャが更に設けられてもよく、要求されたISAブリッジングを提供するため、適切なISAブリッジングレイヤ123をインスタンス化する。 With further reference to FIG. 1, for ease of understanding, the present disclosure has been described with a single ISA bridging layer 123 that bridges a single source ISA to a single target ISA. However, the present disclosure is not limited to this. In an embodiment, a plurality of different ISA bridging layers 123 may be provided to bridge a plurality of different source ISAs to the target ISA. For some of these embodiments, a dispatcher may further be provided to detect the requested bridging and instantiate the appropriate ISA bridging layer 123 to provide the requested ISA bridging.
さらに、各種実施例では、本開示は、必要とされるブリッジング量を低減するため、(ソースISAにおける)アプリケーション120の部分について(ターゲットISAにおいて)代替されるバイナリにより実現されてもよい。他の実施例では、ラッパファンクションの一部などのブリッジングに用いられるリソースの一部は、ISAブリッジングレイヤ123にアクセス可能なリモートサーバに配置されてもよい。 Further, in various embodiments, the present disclosure may be implemented with binaries that are substituted (in the target ISA) for portions of the application 120 (in the source ISA) to reduce the amount of bridging required. In other embodiments, some of the resources used for bridging, such as part of the wrapper function, may be located on a remote server accessible to the ISA bridging layer 123.
さらに、理解の簡単化のため、ISAブリッジングレイヤ123は、異なるソースISAとターゲットISAとをブリッジングするよう構成されるものとして説明された。しかしながら、本開示はこれに限定されるものでない。各種アプリケーションについて、ISAブリッジングレイヤ123は、同一のソースISAとターゲットISAとをブリッジングするのに利用されてもよい。このようなアプリケーションでは、バイナリ変換エンジン215などの説明された要素の1以上が必要とされない可能性がある。このようなアプリケーションの具体例は、計算装置102に対するエンハンスされた動作セキュリティを提供するものであってもよい。他のアプリケーションは、同様に当該ブリッジングから利用してもよい。 Furthermore, for ease of understanding, the ISA bridging layer 123 has been described as configured to bridge different source ISAs and target ISAs. However, the present disclosure is not limited to this. For various applications, the ISA bridging layer 123 may be used to bridge the same source ISA and target ISA. Such an application may not require one or more of the described elements, such as the binary conversion engine 215. A specific example of such an application may provide enhanced operational security for computing device 102. Other applications may be used from the bridging as well.
従って、特定の実施例がここに図示及び説明されたが、図示及び説明された特定の実施例について広範な他の及び/又は等価な実現形態が置換されてもよいことが、当業者により理解されるであろう。 Thus, although specific embodiments have been illustrated and described herein, those skilled in the art will appreciate that a wide variety of other and / or equivalent implementations may be substituted for the specific embodiments illustrated and described. Will be done.
従って、本開示は、あるISAサポートアプリケーションコールされたバイナリサービスからコールバックを時々要求する利用特性を有する他のISAのために開発されたISAサポートアプリケーションを備えた計算装置の技術的問題に対する解決手段であってもよいことが理解されるであろう。本開示の効果は、限定することなく、計算装置のISAにおいてアプリケーションをフルに変換又は再実現するための必要性を回避することを含むものであってもよい。 Accordingly, the present disclosure provides a solution to the technical problem of computing devices with ISA support applications developed for other ISAs that have usage characteristics that sometimes require a callback from one ISA support application called binary service. It will be understood that it may be. The benefits of the present disclosure may include, without limitation, avoiding the need to fully convert or re-implement the application in the ISA of the computing device.
本開示は、計算装置に対してエンハンスされたセキュリティを提供する技術的問題に対する解決手段であってもよいことが理解されるであろう。本開示の効果は、限定することなく、提供されるアイソレーションのロウバスト性を含むものであってもよい。 It will be appreciated that the present disclosure may be a solution to the technical problem of providing enhanced security for computing devices. The effects of the present disclosure may include the robustness of the isolation provided without limitation.
Claims (18)
前記ライブラリサービスは前記ターゲット命令セットアーキテクチャについて実現され、前記アプリケーションはソースコンピュータプロセッサのソース命令セットアーキテクチャについて少なくとも部分的に実現され、
前記ソース及びターゲットコンピュータプロセッサのソース及びターゲット命令セットアーキテクチャは、異なるコンピュータプロセッサファミリの異なるコンピュータプロセッサ命令セットアーキテクチャであり、
前記命令セットアーキテクチャブリッジングレイヤは、前記ソース及びターゲット命令セットアーキテクチャにわたって、前記アプリケーションが前記ライブラリサービスを可能にし、前記ライブラリサービスが前記コールバックファンクションをコールバックすることを可能にするためそれぞれと連携するライブラリエミュレータとソース命令セットアーキテクチャエミュレータとを有し、
前記ソース命令セットアーキテクチャエミュレータは前記ソース命令セットアーキテクチャの実行コンテクストを維持し、前記ライブラリエミュレータはライブラリ実行コンテクストを維持し、
前記ライブラリエミュレータは更に、前記ライブラリサービスに対応するラッパファンクションにコールをリダイレクトする前記ライブラリサービスに対応するゲートを有し、前記ライブラリサービスに対応するラッパファンクションは、前記コールを処理し、前記ライブラリ実行コンテクストにおいて前記コールを設定するプログラム。 Execute a library service of the library of the target device called by an application executed on the target device on a target device having a target computer processor that supports a target instruction set architecture, and call a callback function of the application A program that causes the target device to provide an instruction set architecture bridging layer to back,
The library service is implemented for the target instruction set architecture and the application is implemented at least in part for a source instruction set architecture of a source computer processor;
The source and target instruction set architectures of the source and target computer processors are different computer processor instruction set architectures of different computer processor families;
The instruction set architecture bridging layer cooperates with each of the source and target instruction set architectures to enable the application to enable the library service and to allow the library service to call back the callback function. A library emulator and a source instruction set architecture emulator,
The source instruction set architecture emulator maintains an execution context of the source instruction set architecture, the library emulator maintains a library execution context;
The library emulator further includes a gate corresponding to the library service for redirecting a call to a wrapper function corresponding to the library service, and the wrapper function corresponding to the library service processes the call and the library execution context. A program for setting up the call.
前記ライブラリエミュレータは更に、前記ソース命令セットアーキテクチャエミュレータにコールバックをリダイレクトする前記コールバックファンクションに対応する第2のゲートを有する、請求項1記載のプログラム。 The gate is a first gate;
The program of claim 1, wherein the library emulator further comprises a second gate corresponding to the callback function that redirects a callback to the source instruction set architecture emulator.
前記ライブラリエミュレータは更に、前記コールバックを処理し、前記ソース命令セットアーキテクチャの実行コンテクストにおいて前記コールバックを設定し、前記コールバックファンクションに対応する前記ライブラリエミュレータのゲートに前記コールバックをリダイレクトする前記コールバックファンクションに対応する第2のラッパファンクションを有する、請求項1記載のプログラム。 The wrapper function is a first wrapper function;
The library emulator further processes the callback, sets the callback in an execution context of the source instruction set architecture, and redirects the callback to the gate of the library emulator corresponding to the callback function. The program according to claim 1, further comprising a second wrapper function corresponding to the back function.
前記ローダは、前記アプリケーションをロードし、前記ライブラリエミュレータが前記コールを可能にするのに介入することを可能にする方法で前記ライブラリサービスを参照するシンボル名を修正する、請求項1記載のプログラム。 The instruction set architecture bridging layer further comprises a loader;
The program of claim 1, wherein the loader modifies a symbolic name that references the library service in a manner that allows the application to load and allow the library emulator to intervene to enable the call.
前記ソース及びターゲットコンピュータプロセッサのソース及びターゲット命令セットアーキテクチャは、異なるコンピュータプロセッサファミリの異なるコンピュータプロセッサ命令セットアーキテクチャであり、
当該方法は、
計算装置の命令セットアーキテクチャブリッジングレイヤのソース命令セットアーキテクチャエミュレータが、ソース命令セットアーキテクチャ実行コンテクストを維持するステップであって、前記計算装置は前記ターゲット命令セットアーキテクチャにより実現されるライブラリサービスを有し、前記計算装置は前記ターゲットコンピュータプロセッサを有する、維持するステップと、
前記計算装置の命令セットアーキテクチャブリッジングレイヤのライブラリエミュレータが、ライブラリ実行コンテクストを維持し、前記ライブラリサービスをコールするため、前記計算装置上で実行され、前記ソース命令セットアーキテクチャにより少なくとも部分的に実現されるアプリケーションと、前記ソース及びターゲット命令セットアーキテクチャにわたって、前記アプリケーションのコールバックファンクションをコールバックするために前記ライブラリサービスとを実行するように前記ソース命令セットアーキテクチャエミュレータと前記ライブラリエミュレータとの間で連携するステップであって、前記連携は、前記ライブラリサービスに対応するライブラリエミュレータのゲートが前記ライブラリサービスに対応するラッパファンクションに前記コールをリダイレクトすることを含む、維持するステップと、
前記ライブラリサービスに対応するラッパファンクションが、前記コールを処理し、前記ライブラリ実行コンテクストにおいて前記コールを設定するため処理するステップと、
を有する方法。 A method of bridging a source instruction set architecture of a source computer processor to a target instruction set architecture of a target computer processor by a callback, comprising:
The source and target instruction set architectures of the source and target computer processors are different computer processor instruction set architectures of different computer processor families;
The method is
An instruction set architecture of the computing device a source instruction set architecture emulator of the bridging layer maintains a source instruction set architecture execution context, the computing device comprising a library service implemented by the target instruction set architecture; Maintaining said computing device comprising said target computer processor;
An instruction set architecture of the computing device A bridging layer library emulator is executed on the computing device to maintain a library execution context and call the library service, and is at least partially implemented by the source instruction set architecture. And between the source instruction set architecture emulator and the library emulator to execute the library service to call back the application callback function across the source and target instruction set architectures. In this step, the linkage is performed by the library emulator gate corresponding to the library service. Comprising redirecting the call to the function, and the step of maintaining,
A wrapper function corresponding to the library service processes the call and sets the call in the library execution context;
Having a method.
当該方法は更に、前記コールバックファンクションに対応するライブラリエミュレータの第2のラッパファンクションに前記コールバックをリダイレクトし、前記コールバックを処理し、前記ソース命令セットアーキテクチャの実行コンテクストにおいて前記コールバックを設定するステップを有する、請求項6記載の方法。 The wrapper function is a first wrapper function;
The method further redirects the callback to a second wrapper function of a library emulator corresponding to the callback function, processes the callback, and sets the callback in the execution context of the source instruction set architecture. The method of claim 6, comprising steps.
当該方法は更に、前記コールバックファンクションに対応するライブラリエミュレータの第2のラッパファンクションに前記コールバックをリダイレクトし、前記コールバックを処理し、前記ソース命令セットアーキテクチャの実行コンテクストにおいて前記コールバックを設定するステップを有する、請求項6記載の方法。 The gate is a first gate;
The method further redirects the callback to a second wrapper function of a library emulator corresponding to the callback function, processes the callback, and sets the callback in the execution context of the source instruction set architecture. The method of claim 6, comprising steps.
ターゲット命令セットアーキテクチャを有するターゲットコンピュータプロセッサとメモリ構成であって、前記ソース及びターゲットコンピュータプロセッサのソース及びターゲット命令セットアーキテクチャは、異なるコンピュータプロセッサファミリの異なるコンピュータプロセッサ命令セットアーキテクチャである、ターゲットコンピュータプロセッサとメモリ構成と、
ソース命令セットアーキテクチャエミュレータとライブラリエミュレータとを有する命令セットアーキテクチャブリッジングレイヤであって、前記ソース及びターゲット命令セットアーキテクチャにわたって、前記ソース命令セットアーキテクチャにより少なくとも部分的に実現されるアプリケーションが前記ターゲット命令セットアーキテクチャにより実現される前記装置のライブラリサービスをコールすることを可能にし、前記ライブラリサービスが前記装置のコールバックファンクションをコールバックすることを可能にするよう連携するため、前記ターゲットコンピュータプロセッサ及びメモリによって実行される命令セットアーキテクチャブリッジングレイヤと、
を有し、
前記ソース命令セットアーキテクチャエミュレータは前記ソース命令セットアーキテクチャの実行コンテクストを維持し、前記ライブラリエミュレータはライブラリ実行コンテクストを維持し、
前記ライブラリエミュレータは更に、前記ライブラリサービスに対応するラッパファンクションに前記コールをリダイレクトする前記ライブラリサービスに対応するゲートを有し、
前記ライブラリエミュレータは更に、前記ライブラリサービスに対応するラッパファンクションを有し、前記ラッパファンクションは、前記コールを処理し、前記ライブラリ実行コンテクストにおいて前記コールを設定する装置。 An apparatus for executing an application implemented at least in part by a source instruction set architecture of a source computer processor,
Target computer processor and memory having a target instruction set architecture, wherein the source and target instruction set architecture of the source and target computer processor are different computer processor instruction set architectures of different computer processor families Configuration,
An instruction set architecture bridging layer having a source instruction set architecture emulator and a library emulator, wherein an application at least partially implemented by the source instruction set architecture across the source and target instruction set architectures is the target instruction set architecture Executed by the target computer processor and memory to enable calling the library service of the device implemented by and cooperating to allow the library service to call back the callback function of the device. The instruction set architecture bridging layer,
Have
The source instruction set architecture emulator maintains an execution context of the source instruction set architecture, the library emulator maintains a library execution context;
The library emulator further includes a gate corresponding to the library service that redirects the call to a wrapper function corresponding to the library service,
The library emulator further comprises a wrapper function corresponding to the library service, wherein the wrapper function processes the call and sets the call in the library execution context.
前記ライブラリエミュレータは更に、前記ソース命令セットアーキテクチャエミュレータに前記コールバックをリダイレクトする前記コールバックファンクションに対応する第2のゲートを有する、請求項11記載の装置。 The gate is a first gate;
The apparatus of claim 11, wherein the library emulator further comprises a second gate corresponding to the callback function that redirects the callback to the source instruction set architecture emulator.
前記ライブラリエミュレータは更に、前記コールバックを処理し、前記ソース命令セットアーキテクチャの実行コンテクストにおいて前記コールバックを設定し、前記コールバックファンクションに対応する前記ライブラリエミュレータのゲートに前記コールバックをリダイレクトする前記コールバックファンクションに対応する第2のラッパファンクションを有する、請求項11記載の装置。 The wrapper function is a first wrapper function;
The library emulator further processes the callback, sets the callback in an execution context of the source instruction set architecture, and redirects the callback to the gate of the library emulator corresponding to the callback function. The apparatus of claim 11, comprising a second wrapper function corresponding to the back function.
前記ローダは、前記アプリケーションをロードし、前記ライブラリエミュレータが前記コールを可能にするのに介入することを可能にする方法で前記ライブラリサービスを参照するシンボル名を修正する、請求項11記載の装置。 The instruction set architecture bridging layer further comprises a loader;
The apparatus of claim 11, wherein the loader modifies a symbol name that references the library service in a manner that allows the application to load and allow the library emulator to intervene to enable the call.
前記アプリケーションは更に、前記命令セットアーキテクチャから独立したアプリケーション実行環境の少なくとも1つの他のサービスを利用する、請求項11記載の装置。 An application execution environment independent of the instruction set architecture;
The apparatus of claim 11, wherein the application further utilizes at least one other service of an application execution environment independent of the instruction set architecture.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017078938A JP6352486B2 (en) | 2017-04-12 | 2017-04-12 | ISA bridging by callback |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017078938A JP6352486B2 (en) | 2017-04-12 | 2017-04-12 | ISA bridging by callback |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014550609A Division JP2015507269A (en) | 2012-01-10 | 2012-01-10 | ISA bridging by callback |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017142842A true JP2017142842A (en) | 2017-08-17 |
JP6352486B2 JP6352486B2 (en) | 2018-07-04 |
Family
ID=59628688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017078938A Active JP6352486B2 (en) | 2017-04-12 | 2017-04-12 | ISA bridging by callback |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6352486B2 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04123144A (en) * | 1990-09-13 | 1992-04-23 | Toshiba Corp | Debuging device |
JP2002116908A (en) * | 2000-10-05 | 2002-04-19 | Arm Ltd | Mutual calling between native and nonnative instruction sets |
JP2005507114A (en) * | 2001-10-23 | 2005-03-10 | マイクロソフト コーポレーション | Data alignment between native and non-native shared data structures |
JP2008516324A (en) * | 2004-10-12 | 2008-05-15 | ピクセル(リサーチ)リミテッド | Runtime dynamic linking |
JP2008546085A (en) * | 2005-06-04 | 2008-12-18 | トランジティブ リミテッド | Method and apparatus for executing native code and target code in combination during program code conversion |
-
2017
- 2017-04-12 JP JP2017078938A patent/JP6352486B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04123144A (en) * | 1990-09-13 | 1992-04-23 | Toshiba Corp | Debuging device |
JP2002116908A (en) * | 2000-10-05 | 2002-04-19 | Arm Ltd | Mutual calling between native and nonnative instruction sets |
JP2005507114A (en) * | 2001-10-23 | 2005-03-10 | マイクロソフト コーポレーション | Data alignment between native and non-native shared data structures |
JP2008516324A (en) * | 2004-10-12 | 2008-05-15 | ピクセル(リサーチ)リミテッド | Runtime dynamic linking |
JP2008546085A (en) * | 2005-06-04 | 2008-12-18 | トランジティブ リミテッド | Method and apparatus for executing native code and target code in combination during program code conversion |
Also Published As
Publication number | Publication date |
---|---|
JP6352486B2 (en) | 2018-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5976930B2 (en) | ISA bridging including support for calls that disable virtual functions | |
US9513977B2 (en) | ISA bridging with callback | |
US10761867B2 (en) | Nested emulation and dynamic linking environment | |
US20130167150A1 (en) | Application Management | |
US20150331726A1 (en) | Persistent and resilient worker processes | |
US9529615B2 (en) | Virtual device emulation via hypervisor shared memory | |
US9778942B2 (en) | Generating a replacement binary for emulation of an application | |
US9424089B2 (en) | Hardware acceleration of web applications | |
CN108376066B (en) | Code processing device and code processing method | |
JP5886450B2 (en) | Hybrid emulation and kernel function processing system and method | |
TW201407377A (en) | Virtualizing integrated calls to provide access to resources in a virtual namespace | |
JP2009516296A (en) | Asynchronous just-in-time compilation | |
JP6352486B2 (en) | ISA bridging by callback | |
US9910834B2 (en) | Converting terminal-based legacy applications to web-based applications | |
Heidari | Android Elastic Service Execution and Evaluation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180423 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180508 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180606 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6352486 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |