JP2015511041A - ネスト構造化されたエミュレーションおよび動的リンキング環境 - Google Patents
ネスト構造化されたエミュレーションおよび動的リンキング環境 Download PDFInfo
- Publication number
- JP2015511041A JP2015511041A JP2015500737A JP2015500737A JP2015511041A JP 2015511041 A JP2015511041 A JP 2015511041A JP 2015500737 A JP2015500737 A JP 2015500737A JP 2015500737 A JP2015500737 A JP 2015500737A JP 2015511041 A JP2015511041 A JP 2015511041A
- Authority
- JP
- Japan
- Prior art keywords
- library
- call
- isa
- additional
- source
- 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
Images
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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- 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
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
-
- 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
- G06F9/45516—Runtime code conversion or optimisation
- G06F9/4552—Involving translation to a different instruction set architecture, e.g. just-in-time translation in a JVM
-
- 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/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
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)
- Debugging And Monitoring (AREA)
Abstract
Description
Claims (20)
- 少なくとも一つのプロセッサーにより実行される方法であって:
ソース側命令セット・アーキテクチャ(ISA)を有するアプリケーションをロードするステップ;
呼び出しがソース側ISAライブラリーに到達しないようにするために、ソース側ISAライブラリーのライブラリ・サービスについての前記呼び出しを第1のライブラリーへとリダイレクトするステップ;
前記呼び出しを、第1のライブラリーからターゲット側ISAライブラリーのライブラリ・サービスへと向けるステップ;および、
ターゲット側ISAライブラリーを介してアプリケーションをエミュレート実行するステップ;を含む、方法。 - 前記アプリケーションに関する未定義のシンボルをアドレス解決するステップを含む請求項1記載の方法。
- 前記未定義のシンボルのアドレス解決は、第1のライブラリーの第1のゲートを介してターゲット側ISAライブラリーのターゲット側ゲートに間接的にリンクする動作を含む、請求項2記載の方法。
- 前記第1のゲートは第1の名前を有することが可能であり、ターゲット側ゲートは、前記第1の名前を含むターゲット名を有する、請求項3記載の方法。
- 前記第1のライブラリーへの呼び出しの前記リダイレクト動作は、前記アプリケーション専用に設けられたエミュレータからの呼び出しをリダイレクトする動作を含む、請求項1記載の方法。
- 前記第1のライブラリーへの呼び出しのリダイレクト動作は、前記アプリケーション専用に設けられたエミュレータであって、汎用のシステム・ローダーではないエミュレータからの呼び出しをリダイレクトする動作を含む、請求項1記載の方法。
- 前記アプリケーションと関連した追加的なライブラリ・サービスの追加的な呼び出しを提供するステップであって、前記追加的な呼び出しは、プロシージャ・リンキング・テーブル(PLT)内に含まれているコードへと向けられている、ステップ;および、
前記追加的な呼び出しを、直接実行可能な追加的呼び出しで置き換えるステップであって、前記直接実行可能な追加的呼び出しは、PLTを迂回しながらソース側ISAライブラリーおよび追加的なソース側ISAライブラリーの一方に対して直接的に実行される追加的呼び出しである、ステップ;を含む、請求項1記載の方法。 - 前記追加的な呼び出しに関するアドレスを識別するステップを含むことが可能であり;
前記追加的な呼び出しの決定は、前記追加的な呼び出しに関する前記アドレスを前記識別した結果に基づいて、PLT内に含まれているコードに対して指示される、請求項1記載の方法。 - 前記アプリケーションと関連した追加的なライブラリ・サービスの追加的な呼び出しを提供するステップであって、前記追加的な呼び出しは、プロシージャのアドレス位置を特定するように構成されたコードへと向けられている、ステップ;および、
前記追加的な呼び出しを、直接実行可能な追加的呼び出しに置き換えるステップであって、前記直接実行可能な追加的呼び出しは、プロシージャのアドレス位置を特定するように構成されたコードを迂回しながらソース側ISAライブラリーおよび追加的なソース側ISAライブラリーの一方に対して直接的に実行される追加的呼び出しである、ステップ;
を含む請求項1記載の方法。 - 請求項1乃至請求項9のいずれか一項に記載された処理動作を実行するための実効手段を具備する装置。
- コンピューティング装置によって実行されるのに応答して、請求項1乃至請求項9のいずれか一項に記載された方法を前記コンピューティング装置に実行させる複数の命令コードを具備した少なくとも一つの機械読み取り可能な記録媒体。
- 少なくとも一つのメモリおよび前記少なくとも一つのメモリに結合されている少なくとも一台のプロセッサーを具備している装置であって:
ソース側命令セット・アーキテクチャ(ISA)を有するアプリケーションをロードする動作;
前記アプリケーションと関連したライブラリ・サービスのための呼び出しを提供する動作であって、追加的な呼び出しが、プロシージャのアドレス位置を特定するように構成されたコードへと向けられる、動作;
前記呼び出しを、直接実行可能な呼び出しに置き換える動作であって、前記直接実行可能な追加的呼び出しは、前記プロシージャのアドレス位置を特定するように構成された前記コードを迂回しながらソース側ISAライブラリーに対して直接的に実行される追加的呼び出しである、動作;および、
ターゲット側ISAライブラリを介して前記アプリケーションをエミュレート実行する動作;
を具備する一連の処理動作実行する、装置。 - 前記プロシージャのアドレス位置を特定するように構成された前記コードは、プロシージャ・リンク・テーブル(PLT)内に含まれている、請求項12記載の装置。
- 前記少なくとも一つのプロセッサは:
呼び出しのためのアドレスを識別する動作を具備する一連の処理動作を具備することが可能であり;
前記呼び出しの決定は、前記呼び出しのためのアドレスを前記識別した結果に基づいて、PLT内に含まれているコードに対して指示される、
ことを特徴とする請求項13記載の装置。 - 前記少なくとも一つのプロセッサは:
追加的な呼び出しがソース側ISAライブラリーおよび追加的なソース側ISAライブラリーの一方に到達しないようにするために、ソース側ISAライブラリーおよび追加的なソース側ISAライブラリーの一方に関する追加的なライブラリ・サービスのための追加的な呼び出しを、第1のライブラリに対してリダイレクトする動作;および、
第1のライブラリーからの追加的な呼び出しを、ターゲット側ISAライブラリーおよび追加的なターゲット側ISAライブラリーの一方へと向ける動作;
を具備する一連の処理動作を実行する、請求項12記載の装置。 - 前記少なくとも一つのプロセッサは:
アプリケーションに関する未定義のシンボルをアドレス解決する動作を具備する一連の処理動作を実行する、請求項12記載の装置。 - 前記未定義のシンボルの前記アドレス解決は、第1のライブラリーのゲートを介してターゲット側ISAライブラリーおよび追加的なターゲット側ISAライブラリーのいずれか一方についてのゲートに対して間接的にリンクする動作を含む、請求項16記載の装置。
- 追加的な呼び出しのリダイレクト動作は、前記アプリケーション専用に設けられたエミュレータからの追加的な呼び出しをリダイレクトする動作を含む、請求項12記載の装置。
- 追加的な呼び出しのリダイレクト動作は、前記アプリケーション専用に設けられたエミュレータであって、汎用のシステム・ローダーではないエミュレータからの追加的な呼び出しをリダイレクトする動作を含む、請求項12記載の装置。
- 請求項12乃至請求項19の中のいずれか一項に記載された少なくとも一つのプロセッサと、少なくとも一つのディスプレイ装置を含んでいる、コンピュータ・システム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2012/072770 WO2013139014A1 (en) | 2012-03-22 | 2012-03-22 | Nested emulation and dynamic linking environment |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015511041A true JP2015511041A (ja) | 2015-04-13 |
JP5976917B2 JP5976917B2 (ja) | 2016-08-24 |
Family
ID=49221814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015500737A Expired - Fee Related JP5976917B2 (ja) | 2012-03-22 | 2012-03-22 | ネスト構造化されたエミュレーションおよび動的リンキング環境 |
Country Status (7)
Country | Link |
---|---|
US (2) | US9851987B2 (ja) |
EP (1) | EP2828739A4 (ja) |
JP (1) | JP5976917B2 (ja) |
KR (1) | KR101665219B1 (ja) |
CN (1) | CN104246695B (ja) |
AU (1) | AU2012373895B2 (ja) |
WO (1) | WO2013139014A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112020007705T5 (de) | 2020-12-24 | 2023-09-28 | Mitsubishi Electric Corporation | Datenverarbeitungseinrichtung, datenverarbeitungsverfahren und datenverarbeitungsprogramm |
WO2024069678A1 (ja) * | 2022-09-26 | 2024-04-04 | 日立Astemo株式会社 | 電子制御装置 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013102280A1 (en) * | 2012-01-06 | 2013-07-11 | Intel Corporation (A Corporation Of Delaware) | Method and apparatus for substituting compiler built-in helper functions with machine instructions |
US9830176B2 (en) * | 2013-04-19 | 2017-11-28 | The Trustees Of Columbia University In The City Of New York | Methods, systems, and media for binary compatible graphics support in mobile operating systems |
CN106528188B (zh) * | 2015-09-09 | 2019-08-30 | 腾讯科技(深圳)有限公司 | 一种应用加速方法及装置 |
US10268465B2 (en) * | 2016-10-24 | 2019-04-23 | International Business Machines Corporation | Executing local function call site optimization |
US10552207B2 (en) | 2016-12-21 | 2020-02-04 | Intel Corporation | Systems and methods for multi-architecture computing including program stack translation |
US10684984B2 (en) | 2016-12-21 | 2020-06-16 | Intel Corporation | Computing devices and server systems with processing cores having different instruction set architectures |
US10713213B2 (en) * | 2016-12-21 | 2020-07-14 | Intel Corporation | Systems and methods for multi-architecture computing |
US11275709B2 (en) | 2017-05-02 | 2022-03-15 | Intel Corporation | Systems and methods for multi-architecture computing |
US10706193B1 (en) * | 2018-12-04 | 2020-07-07 | Xilinx, Inc. | Computer processing during simulation of a circuit design |
US11403100B2 (en) * | 2020-08-31 | 2022-08-02 | Microsoft Technology Licensing, Llc | Dual architecture function pointers having consistent reference addresses |
US11231918B1 (en) | 2020-08-31 | 2022-01-25 | Microsoft Technologly Licensing, LLC | Native emulation compatible application binary interface for supporting emulation of foreign code |
CN114461227B (zh) * | 2022-04-13 | 2022-07-12 | 飞腾信息技术有限公司 | 运行软件的方法、装置以及机器可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050015781A1 (en) * | 2003-07-15 | 2005-01-20 | Alex Brown | Method and apparatus for performing native binding |
JP2007529063A (ja) * | 2003-07-15 | 2007-10-18 | トランジティブ リミテッド | ネイティブ結合を行なうための方法および装置 |
US20080092151A1 (en) * | 2006-10-02 | 2008-04-17 | Transitive Limited | Method and apparatus for handling dynamically linked function calls with respect to program code conversion |
JP2009517752A (ja) * | 2005-12-01 | 2009-04-30 | エクセント テクノロジーズ, リミテッド | コンピュータ装置上で実行するアプリケーションを動的に向上させるためのシステム、方法、およびコンピュータ製品 |
JP2010506252A (ja) * | 2006-10-02 | 2010-02-25 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラムコード変換に関して動的にリンクされた関数呼び出しを行うための方法及び装置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3086623A (en) | 1959-07-20 | 1963-04-23 | David F Cole | Pneumatic timer |
US5774694A (en) * | 1996-09-25 | 1998-06-30 | Intel Corporation | Method and apparatus for emulating status flag |
US6086623A (en) * | 1997-06-30 | 2000-07-11 | Sun Microsystems, Inc. | Method and implementation for intercepting and processing system calls in programmed digital computer to emulate retrograde operating system |
US6631514B1 (en) * | 1998-01-06 | 2003-10-07 | Hewlett-Packard Development, L.P. | Emulation system that uses dynamic binary translation and permits the safe speculation of trapping operations |
US8065504B2 (en) * | 1999-01-28 | 2011-11-22 | Ati International Srl | Using on-chip and off-chip look-up tables indexed by instruction address to control instruction execution in a processor |
KR100518584B1 (ko) * | 2003-07-12 | 2005-10-04 | 삼성전자주식회사 | 공유 라이브러리 시스템 및 상기 시스템 구축 방법 |
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 |
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 |
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. |
EP1889158B1 (en) * | 2005-06-04 | 2015-04-22 | International Business Machines Corporation | Method and apparatus for combined execution of native code and target code during program code conversion |
US7768518B2 (en) * | 2006-09-27 | 2010-08-03 | Intel Corporation | Enabling multiple instruction stream/multiple data stream extensions on microprocessors |
CN101295265A (zh) | 2007-04-25 | 2008-10-29 | 国际商业机器公司 | 全系统isa仿真系统及其识别进程的方法 |
US8775153B2 (en) * | 2009-12-23 | 2014-07-08 | Intel Corporation | Transitioning from source instruction set architecture (ISA) code to translated code in a partial emulation environment |
JP5546023B2 (ja) | 2011-06-16 | 2014-07-09 | 日本電信電話株式会社 | 光ファイバ無切断型光入出力装置及び光ファイバ無切断型光入出力方法 |
EP2802983B1 (en) * | 2012-01-10 | 2016-12-14 | Intel Corporation | Isa bridging with callback |
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 |
-
2012
- 2012-03-22 JP JP2015500737A patent/JP5976917B2/ja not_active Expired - Fee Related
- 2012-03-22 AU AU2012373895A patent/AU2012373895B2/en not_active Ceased
- 2012-03-22 KR KR1020147026067A patent/KR101665219B1/ko active IP Right Grant
- 2012-03-22 US US13/994,725 patent/US9851987B2/en not_active Expired - Fee Related
- 2012-03-22 WO PCT/CN2012/072770 patent/WO2013139014A1/en active Application Filing
- 2012-03-22 CN CN201280071653.8A patent/CN104246695B/zh not_active Expired - Fee Related
- 2012-03-22 EP EP12871825.1A patent/EP2828739A4/en not_active Withdrawn
-
2017
- 2017-12-15 US US15/843,822 patent/US10761867B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050015781A1 (en) * | 2003-07-15 | 2005-01-20 | Alex Brown | Method and apparatus for performing native binding |
JP2007529063A (ja) * | 2003-07-15 | 2007-10-18 | トランジティブ リミテッド | ネイティブ結合を行なうための方法および装置 |
JP2009517752A (ja) * | 2005-12-01 | 2009-04-30 | エクセント テクノロジーズ, リミテッド | コンピュータ装置上で実行するアプリケーションを動的に向上させるためのシステム、方法、およびコンピュータ製品 |
US20080092151A1 (en) * | 2006-10-02 | 2008-04-17 | Transitive Limited | Method and apparatus for handling dynamically linked function calls with respect to program code conversion |
JP2010506252A (ja) * | 2006-10-02 | 2010-02-25 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラムコード変換に関して動的にリンクされた関数呼び出しを行うための方法及び装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112020007705T5 (de) | 2020-12-24 | 2023-09-28 | Mitsubishi Electric Corporation | Datenverarbeitungseinrichtung, datenverarbeitungsverfahren und datenverarbeitungsprogramm |
WO2024069678A1 (ja) * | 2022-09-26 | 2024-04-04 | 日立Astemo株式会社 | 電子制御装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2828739A1 (en) | 2015-01-28 |
KR20140127332A (ko) | 2014-11-03 |
CN104246695A (zh) | 2014-12-24 |
US20130338993A1 (en) | 2013-12-19 |
WO2013139014A1 (en) | 2013-09-26 |
US9851987B2 (en) | 2017-12-26 |
AU2012373895B2 (en) | 2016-01-21 |
JP5976917B2 (ja) | 2016-08-24 |
US20180173545A1 (en) | 2018-06-21 |
AU2012373895A1 (en) | 2014-09-11 |
US10761867B2 (en) | 2020-09-01 |
CN104246695B (zh) | 2019-05-10 |
EP2828739A4 (en) | 2015-12-09 |
KR101665219B1 (ko) | 2016-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5976917B2 (ja) | ネスト構造化されたエミュレーションおよび動的リンキング環境 | |
US9910721B2 (en) | System and method for execution of application code compiled according to two instruction set architectures | |
US8768682B2 (en) | ISA bridging including support for call to overidding virtual functions | |
US8307353B2 (en) | Cross-domain inlining in a system virtual machine | |
CN111770113A (zh) | 一种执行智能合约的方法、区块链节点和节点设备 | |
CN111399990B (zh) | 解释执行智能合约指令的方法及装置 | |
EP2802983B1 (en) | Isa bridging with callback | |
US20150379169A1 (en) | Efficient emulation for pseudo-wrapped callback handling in binary translation software | |
JP5886450B2 (ja) | ハイブリッドのエミュレーション及びカーネル関数処理のシステム及び方法 | |
US20120331489A1 (en) | Bypassing user mode redirection | |
Debab et al. | Containers runtimes war: a comparative study | |
JP2007226784A (ja) | インラインされたメソッドの呼出方法およびそれを用いたジャバ仮想マシン | |
KR101083271B1 (ko) | 액티브엑스 컨트롤 변환 시스템 및 방법 | |
Herdt et al. | RVX-a tool for concolic testing of embedded binaries targeting RISC-V platforms | |
KR102263692B1 (ko) | 이더리움 스마트계약 가상머신 바이트코드 보안성 향상 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140919 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20151016 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20151117 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160216 |
|
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: 20160712 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160720 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5976917 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |