JP6124463B2 - 一方のアーキテクチャのコードモジュールが他方のアーキテクチャのライブラリモジュールを用いることを可能にするインターアーキテクチャ互換性モジュール - Google Patents
一方のアーキテクチャのコードモジュールが他方のアーキテクチャのライブラリモジュールを用いることを可能にするインターアーキテクチャ互換性モジュール Download PDFInfo
- Publication number
- JP6124463B2 JP6124463B2 JP2015005697A JP2015005697A JP6124463B2 JP 6124463 B2 JP6124463 B2 JP 6124463B2 JP 2015005697 A JP2015005697 A JP 2015005697A JP 2015005697 A JP2015005697 A JP 2015005697A JP 6124463 B2 JP6124463 B2 JP 6124463B2
- Authority
- JP
- Japan
- Prior art keywords
- module
- bit
- architecture
- code
- library
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims description 136
- 230000015654 memory Effects 0.000 claims description 100
- 238000012546 transfer Methods 0.000 claims description 84
- 230000008859 change Effects 0.000 claims description 65
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 230000008685 targeting Effects 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 41
- 230000006870 function Effects 0.000 description 23
- 238000007667 floating Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 9
- 238000004519 manufacturing process Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 239000003795 chemical substances by application Substances 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 238000013459 approach Methods 0.000 description 6
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 230000001965 increasing effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 229910052754 neon Inorganic materials 0.000 description 1
- GKAOGPIIYCISHV-UHFFFAOYSA-N neon atom Chemical compound [Ne] GKAOGPIIYCISHV-UHFFFAOYSA-N 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 239000011232 storage material Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/52—Binary to binary
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Description
Claims (26)
- インターアーキテクチャ互換性装置であって、
第1のアーキテクチャコードモジュールから、第1のアーキテクチャライブラリモジュールを対象とした第1の呼び出し手順オペレーションを受け取る制御フロー移転受け取りモジュールであって、前記第1の呼び出し手順オペレーションは第1の複数の入力パラメータを含む、制御フロー移転受け取りモジュールと、
前記制御フロー移転受け取りモジュールに接続されたアプリケーションバイナリインタフェース変更モジュール(ABI変更モジュール)であって、前記ABI変更モジュールは、前記第1の複数の入力パラメータを含む前記第1の呼び出し手順オペレーションを、第2の複数の入力パラメータを含み、第2のアーキテクチャライブラリモジュールと互換性がある対応する第2の呼び出し手順オペレーションへ変換すべく、複数のABI変更を行う、前記ABI変更モジュールと、
前記ABI変更モジュールに接続され、前記第2の呼び出し手順オペレーションを前記第2のアーキテクチャライブラリモジュールへ提供する制御フロー移転出力モジュールと、
第1のアーキテクチャコードと実行される第2のアーキテクチャコードとから選択されるコードのタイプを決定するプロセッサモード変更モジュールであって、前記プロセッサモード変更モジュールは、実行されるコードの前記決定されたタイプと互換性のあるプロセッサのコードタイプ実行モードを変更する、前記プロセッサモード変更モジュールと、
を備える装置。 - 前記ABI変更モジュールは、
スタックから前記第1の複数の入力パラメータの第1のパラメータを受信し、
前記第1のパラメータに対応する、前記第2の複数の入力パラメータの第2のパラメータを、前記第2のアーキテクチャライブラリモジュールによって前記第2のパラメータのために用いられることが予期されるレジスタに格納する
請求項1に記載の装置。 - 前記制御フロー移転受け取りモジュール、前記ABI変更モジュール、及び前記制御フロー移転出力モジュールは、前記第1のアーキテクチャライブラリモジュールに対応する第1のラッパーモジュールの一部である
請求項1または2に記載の装置。 - 異なる第1のアーキテクチャライブラリモジュールに各々が対応する複数のラッパーモジュールをさらに備え、
前記複数のラッパーモジュールの各々は、制御フロー移転受け取りモジュール、ABI変更モジュール、及び制御フロー移転出力モジュールを有する
請求項3に記載の装置。 - 前記第1のラッパーモジュールは前記第1のアーキテクチャライブラリモジュールと同じ名前を有し、
前記複数のラッパーモジュールの各々は対応する前記異なる第1のアーキテクチャライブラリモジュールと同じ名前を有する
請求項4に記載の装置。 - 前記制御フロー移転受け取りモジュールは、前記制御フロー移転受け取りモジュールのラッパーライブラリが32ビットライブラリ及び64ビットライブラリのいずれかの前に検索されるように構成される機能インターポジショニングを用いて、前記第1の呼び出し手順オペレーションを受け取る
請求項1から5のいずれか1項に記載の装置。 - 前記プロセッサモード変更モジュールは、全ての第1のアーキテクチャコードを有する第1のセグメントと全ての第2のアーキテクチャコードを有する第2のセグメントとの間の複数のインターセグメント制御フロー移転に基づいて実行されるコードの前記タイプを決定する
請求項1から6のいずれか1項に記載の装置。 - 前記制御フロー移転受け取りモジュールは、32ビットコードモジュールから、32ビットライブラリモジュールを対象とする前記第1の呼び出し手順オペレーションを受け取り、
前記ABI変更モジュールは、前記第1の呼び出し手順オペレーションを、64ビットライブラリモジュールと互換性のある対応する前記第2の呼び出し手順オペレーションへ変換し、
前記制御フロー移転出力モジュールは、前記第2の呼び出し手順オペレーションを、前記64ビットライブラリモジュールへ提供する
請求項1から7のいずれか1項に記載の装置。 - 前記第1のアーキテクチャコードモジュールによって使用可能な複数のアーキテクチャ整数レジスタの最大ビット幅は、第2のアーキテクチャライブラリモジュールによって使用可能な複数のアーキテクチャ整数レジスタの最大ビット幅と異なり、
前記第2のアーキテクチャライブラリモジュールは、数学ライブラリモジュールと標準Cライブラリモジュールとから選択される
請求項1から8のいずれか1項に記載の装置。 - インターアーキテクチャ互換方法であって、
第1のアーキテクチャコードモジュールから、第1のアーキテクチャライブラリモジュールを対象とする第1の呼び出し手順オペレーションを受け取る段階であって、前記第1の呼び出し手順オペレーションは第1の複数の入力パラメータを含む、受け取る段階と、
前記第1の複数の入力パラメータを有する前記第1の呼び出し手順オペレーションを、第2の複数の入力パラメータを有する対応する第2の呼び出し手順オペレーションへ変換すべく、複数のアプリケーションバイナリインタフェース(ABI)変更を行う段階と、
前記第2の呼び出し手順オペレーションを、第2のアーキテクチャライブラリモジュールへ提供する段階と、
第1のアーキテクチャコードと実行される第2のアーキテクチャコードとから選択されるコードのタイプを決定し、実行されるコードの前記決定されたタイプと互換性のあるプロセッサのコードタイプ実行モードを変更する段階と
を備える方法。 - 受け取る段階は、32ビットコードモジュールから、32ビットライブラリモジュールを対象とする前記第1の呼び出し手順オペレーションを受け取る段階を有し、
提供する段階は、前記第2の呼び出し手順オペレーションを、64ビットライブラリモジュールへ提供する段階を有する
請求項10に記載の方法。 - 前記第1の複数の入力パラメータの第1のパラメータを、スタックから受け取る段階と、
前記第2の複数の入力パラメータの第2のパラメータを、前記第2のアーキテクチャライブラリモジュールが前記第2のパラメータを受け取るために使用したレジスタに格納する段階と
をさらに備え、
前記第2のパラメータは前記第1のパラメータに対応する
請求項10または11に記載の方法。 - 受け取る段階は、前記第1のアーキテクチャライブラリモジュールと同じ名前を有するラッパーモジュールを用いて前記第1の呼び出し手順オペレーションを受け取る段階を有する
請求項10から12のいずれか1項に記載の方法。 - 前記第1のアーキテクチャライブラリモジュール及び前記第2のアーキテクチャライブラリモジュールの両方の前に動的リンカーによって検索されるように、前記ラッパーモジュールを構成する段階をさらに備える
請求項13に記載の方法。 - 前記第1のアーキテクチャライブラリモジュールを有さない電子デバイスにおいて実行される
請求項10から14のいずれか1項に記載の方法。 - 32ビットコードモジュールと64ビットライブラリモジュールを格納するメモリと、
前記メモリに接続された64ビットプロセッサと、
32ビットライブラリモジュールに対する前記32ビットコードモジュールからの呼び出し手順オペレーションをインターセプトし、前記32ビットライブラリモジュールに対する前記呼び出し手順オペレーションを前記64ビットライブラリモジュールに対する対応する呼び出し手順オペレーションへ変換するべく複数のアプリケーションバイナリインタフェース(ABI)変更を行い、前記対応する呼び出し手順オペレーションを前記64ビットライブラリモジュールへ提供するインターアーキテクチャ互換性モジュールと、
32ビットコードと実行される64ビットコードとから選択されるコードのタイプを決定するプロセッサモード変更モジュールであって、前記プロセッサモード変更モジュールは、実行されるコードの前記決定されたタイプと互換性のある前記64ビットプロセッサのコードタイプ実行モードを変更する、前記プロセッサモード変更モジュールと を備えるコンピュータシステム。 - 前記32ビットコードモジュール及び前記64ビットライブラリモジュールは、前記メモリの複数の異なるセグメントに格納され、前記32ビットコードモジュールを格納するセグメントはフラットアドレス指定を利用する
請求項16に記載のコンピュータシステム。 - 前記インターアーキテクチャ互換性モジュールは、前記32ビットコードモジュールからの前記呼び出し手順オペレーションをインターセプトする前記32ビットライブラリモジュールと同じ名前を有するラッパーモジュールを含む
請求項16または17に記載のコンピュータシステム。 - 前記コンピュータシステムは、前記32ビットライブラリモジュールを有さない
請求項16から18のいずれか1項に記載のコンピュータシステム。 - 複数の命令を備えたプログラムであって、マシンによって実行された場合、前記複数の命令は、前記マシンに、
第1のアーキテクチャコードモジュールから、第1のアーキテクチャライブラリモジュールを対象とする第1の呼び出し手順オペレーションを受け取る段階であって、前記第1の呼び出し手順オペレーションは第1の複数の入力パラメータを有する、受け取る段階と、
前記第1の複数の入力パラメータを有する前記第1の呼び出し手順オペレーションを、第2の複数の入力パラメータを有する対応する第2の呼び出し手順オペレーションへ変換すべく、複数のアプリケーションバイナリインタフェース(ABI)変更を行う段階と、
前記第2の呼び出し手順オペレーションを第2のアーキテクチャライブラリモジュールへ提供する段階と、
第1のアーキテクチャコードと実行される第2のアーキテクチャコードとから選択されるコードのタイプを決定し、実行されるコードの前記決定されたタイプと互換性のあるプロセッサのコードタイプ実行モードを変更する段階と
を有するオペレーションを実行させるプログラム。 - 前記複数の命令は、前記マシンによって実行された場合、前記マシンに、
32ビットコードモジュールから、32ビットライブラリモジュールを対象とする前記第1の呼び出し手順オペレーションを受け取る段階と、
前記第2の呼び出し手順オペレーションを64ビットライブラリモジュールへ提供する段階と
を有するオペレーションを実行させる
請求項20に記載のプログラム。 - 請求項10から15のいずれか1項に記載の方法を実行する手段を備える装置。
- 複数の命令を備えるプログラムであって、前記複数の命令は、マシンによって実行された場合、前記マシンに請求項10から15のいずれか1項に記載の方法を実行させるように作動するプログラム。
- 第1のアーキテクチャコードモジュールから、第1のアーキテクチャライブラリモジュールを対象とする第1の呼び出し手順オペレーションを受け取る手段と、
前記第1の呼び出し手順オペレーションを、第2の複数の入力パラメータを有する対応する第2の呼び出し手順オペレーションへ変換すべく、複数のアプリケーションバイナリインタフェース(ABI)変更を行う手順と、
前記第2の呼び出し手順オペレーションを、第2のアーキテクチャライブラリモジュールへ提供する手段と、
第1のアーキテクチャコードと実行される第2のアーキテクチャコードとから選択されるコードのタイプを決定し、実行されるコードの前記決定されたタイプと互換性のあるプロセッサのコードタイプ実行モードを変更する手段と
を備え、
前記第1の呼び出し手順オペレーションは、第1の複数の入力パラメータを有する
インターアーキテクチャ互換性装置。 - 制御フロー移転受け取りモジュールのラッパーライブラリが第1のアーキテクチャライブラリの前に検索されるように構成される機能インターポジショニングを用いて、第1のアーキテクチャコードモジュールから、第1のアーキテクチャライブラリモジュールを対象とした第1の呼び出し手順オペレーションを受け取る前記制御フロー移転受け取りモジュールであって、前記第1のアーキテクチャライブラリモジュールと同じ名前を有するラッパーモジュールが、前記第1のアーキテクチャライブラリモジュールの前に特定され、前記第1の呼び出し手順オペレーションは第1の複数の入力パラメータを含む、前記制御フロー移転受け取りモジュールと、
前記制御フロー移転受け取りモジュールに接続されたアプリケーションバイナリインタフェース変更モジュール(ABI変更モジュール)であって、前記ABI変更モジュールは、前記第1の複数の入力パラメータを含む前記第1の呼び出し手順オペレーションを、第2の複数の入力パラメータを含み、第2のアーキテクチャライブラリモジュールと互換性がある対応する第2の呼び出し手順オペレーションへ変換すべく、複数のABI変更を行う、前記ABI変更モジュールと、
前記ABI変更モジュールに接続され、前記第2の呼び出し手順オペレーションを前記第2のアーキテクチャライブラリモジュールへ提供する制御フロー移転出力モジュールと、
第1のアーキテクチャコードと実行される第2のアーキテクチャコードとから選択されるコードのタイプを決定するプロセッサモード変更モジュールであって、前記プロセッサモード変更モジュールは、実行されるコードの前記決定されたタイプと互換性のあるプロセッサのコードタイプ実行モードを変更する、前記プロセッサモード変更モジュールと、
を備えるインターアーキテクチャ互換性装置。 - 制御フロー移転受け取りモジュールのラッパーライブラリが第1のアーキテクチャライブラリの前に検索されるように構成される機能インターポジショニングを用いて、第1のアーキテクチャコードモジュールから、第1のアーキテクチャライブラリモジュールを対象とした第1の呼び出し手順オペレーションを受け取る前記制御フロー移転受け取りモジュールであって、前記第1のアーキテクチャライブラリモジュールと同じ名前を有するラッパーモジュールが、前記第1のアーキテクチャライブラリモジュールの前に特定され、前記第1の呼び出し手順オペレーションは第1の複数の入力パラメータを含む、前記制御フロー移転受け取りモジュールと、
前記制御フロー移転受け取りモジュールに接続されたアプリケーションバイナリインタフェース変更モジュール(ABI変更モジュール)であって、前記ABI変更モジュールは、前記第1の複数の入力パラメータを含む前記第1の呼び出し手順オペレーションを、第2の複数の入力パラメータを含み、第2のアーキテクチャライブラリモジュールと互換性がある対応する第2の呼び出し手順オペレーションへ変換すべく、複数のABI変更を行う、前記ABI変更モジュールと、
前記ABI変更モジュールに接続され、前記第2の呼び出し手順オペレーションを前記第2のアーキテクチャライブラリモジュールへ提供する制御フロー移転出力モジュールと、
を備えるインターアーキテクチャ互換性装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/229,795 US10120663B2 (en) | 2014-03-28 | 2014-03-28 | Inter-architecture compatability module to allow code module of one architecture to use library module of another architecture |
US14/229,795 | 2014-03-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015191657A JP2015191657A (ja) | 2015-11-02 |
JP6124463B2 true JP6124463B2 (ja) | 2017-05-10 |
Family
ID=52630760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015005697A Expired - Fee Related JP6124463B2 (ja) | 2014-03-28 | 2015-01-15 | 一方のアーキテクチャのコードモジュールが他方のアーキテクチャのライブラリモジュールを用いることを可能にするインターアーキテクチャ互換性モジュール |
Country Status (7)
Country | Link |
---|---|
US (1) | US10120663B2 (ja) |
JP (1) | JP6124463B2 (ja) |
KR (1) | KR101817397B1 (ja) |
CN (1) | CN104951296B (ja) |
DE (1) | DE102015002582A1 (ja) |
GB (1) | GB2524616B (ja) |
TW (1) | TWI567646B (ja) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9851987B2 (en) * | 2012-03-22 | 2017-12-26 | Intel Corporation | Nested emulation and dynamic linking environment |
US9958932B2 (en) * | 2014-11-20 | 2018-05-01 | Apple Inc. | Processor including multiple dissimilar processor cores that implement different portions of instruction set architecture |
US9477490B2 (en) * | 2015-01-05 | 2016-10-25 | Dell Software Inc. | Milestone based dynamic multiple watchdog timeouts and early failure detection |
US9778945B2 (en) * | 2015-02-10 | 2017-10-03 | Red Hat Israel, Ltd. | Providing mode-dependent virtual machine function code |
US11403099B2 (en) * | 2015-07-27 | 2022-08-02 | Sony Interactive Entertainment LLC | Backward compatibility by restriction of hardware resources |
US9928115B2 (en) | 2015-09-03 | 2018-03-27 | Apple Inc. | Hardware migration between dissimilar cores |
WO2017052555A1 (en) * | 2015-09-24 | 2017-03-30 | Hewlett Packard Enterprise Development Lp | Process and thread launch features |
US10452409B2 (en) * | 2015-10-23 | 2019-10-22 | Oracle International Corporation | Universal adapter for native calling |
US9753776B2 (en) * | 2015-12-01 | 2017-09-05 | International Business Machines Corporation | Simultaneous multithreading resource sharing |
US10284592B1 (en) | 2015-12-17 | 2019-05-07 | Architecture Technology Corporation | Application randomization mechanism |
US10200401B1 (en) * | 2015-12-17 | 2019-02-05 | Architecture Technology Corporation | Evaluating results of multiple virtual machines that use application randomization mechanism |
US10412114B1 (en) | 2015-12-17 | 2019-09-10 | Architecture Technology Corporation | Application randomization mechanism |
US10007498B2 (en) | 2015-12-17 | 2018-06-26 | Architecture Technology Corporation | Application randomization mechanism |
US10412116B1 (en) | 2015-12-17 | 2019-09-10 | Architecture Technology Corporation | Mechanism for concealing application and operation system identity |
US10853118B2 (en) * | 2015-12-21 | 2020-12-01 | Intel Corporation | Apparatus and method for pattern-driven page table shadowing for graphics virtualization |
US10261921B2 (en) * | 2016-02-19 | 2019-04-16 | Rajnarine Brigmohan | Universal secure platform virtualization system and method thereof |
US10303488B2 (en) * | 2016-03-30 | 2019-05-28 | Sony Interactive Entertainment Inc. | Real-time adjustment of application-specific operating parameters for backwards compatibility |
US10853040B2 (en) | 2017-03-31 | 2020-12-01 | Microsoft Technology Licensing, Llc | Address space splitting for legacy application compatibility |
CN107423084B (zh) * | 2017-04-24 | 2021-02-02 | 武汉斗鱼网络科技有限公司 | 程序修改方法及装置 |
US10554685B1 (en) | 2017-05-25 | 2020-02-04 | Architecture Technology Corporation | Self-healing architecture for resilient computing services |
US11275587B2 (en) * | 2018-05-02 | 2022-03-15 | Micron Technology, Inc. | Static identifications in object-based memory access |
US10761855B2 (en) | 2018-05-02 | 2020-09-01 | Micron Technology, Inc. | Securing conditional speculative instruction execution |
US10977101B2 (en) | 2018-12-12 | 2021-04-13 | International Business Machines Corporation | Interoperability between programs associated with different addressing modes |
US11249760B2 (en) | 2019-04-10 | 2022-02-15 | International Business Machines Corporation | Parameter management between programs |
EP3748440B1 (en) * | 2019-06-03 | 2023-11-08 | ABB Schweiz AG | Workflow of an apparatus |
CN112083934A (zh) * | 2019-06-13 | 2020-12-15 | 青岛海信移动通信技术股份有限公司 | 一种终端和处理方法 |
CN111026452B (zh) * | 2019-11-20 | 2023-10-20 | 北京明朝万达科技股份有限公司 | 一种远程32位进程注入64位进程的方法及系统 |
CN111142969A (zh) * | 2019-12-27 | 2020-05-12 | 贵阳动视云科技有限公司 | 64位程序调用32位程序模块的方法、装置、介质及设备 |
US11294695B2 (en) * | 2020-05-28 | 2022-04-05 | International Business Machines Corporation | Termination of programs associated with different addressing modes |
CN113760338B (zh) * | 2020-06-05 | 2023-07-18 | 北京字跳网络技术有限公司 | 切换应用程序二进制接口abi的方法、装置及电子设备 |
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 |
CN112486570B (zh) * | 2020-11-06 | 2023-06-02 | 麒麟软件有限公司 | 一种不同类型CPU的Glibc兼容方法 |
EP4053722B1 (en) | 2021-03-01 | 2023-11-29 | Irdeto B.V. | Secured computer code and systems, methods, and storage media for creating the secured computer code from original computer code |
US12014198B2 (en) | 2021-03-25 | 2024-06-18 | International Business Machines Corporation | Running smaller memory-address width program code in a larger memory-address width address space |
CN113076263A (zh) * | 2021-05-06 | 2021-07-06 | 北京字节跳动网络技术有限公司 | 一种进程运行的方法、装置、计算机设备及存储介质 |
US11947993B2 (en) | 2021-06-22 | 2024-04-02 | International Business Machines Corporation | Cooperative input/output of address modes for interoperating programs |
US11556356B1 (en) | 2021-09-23 | 2023-01-17 | International Business Machines Corporation | Dynamic link objects across different addressing modes |
CN114510267B (zh) * | 2022-04-20 | 2023-03-21 | 麒麟软件有限公司 | 基于Linux系统的程序ABI接口兼容性计算方法 |
US12028224B1 (en) | 2023-02-17 | 2024-07-02 | International Business Machines Corporation | Converting an architecture document to infrastructure as code |
Family Cites Families (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5604885A (en) | 1991-02-01 | 1997-02-18 | Texas Instruments Incorporated | Apparatus and method enabling a computer to transfer control between two program segments that call one another but operate in different modes |
US5379432A (en) * | 1993-07-19 | 1995-01-03 | Taligent, Inc. | Object-oriented interface for a procedural operating system |
US5473777A (en) * | 1993-07-19 | 1995-12-05 | Moeller; Christopher P. | Wrapper for enabling an object otented application to maintain virtual memory using procedural function calls |
US6438621B1 (en) | 1994-11-14 | 2002-08-20 | Microsoft Corporation | In-memory modification of computer programs |
US5870587A (en) | 1996-03-20 | 1999-02-09 | International Business Machines Corporation | Information-handling system, method, and article of manufacture including a mechanism for providing an improved application binary interface |
US5845107A (en) | 1996-07-03 | 1998-12-01 | Intel Corporation | Signaling protocol conversion between a processor and a high-performance system bus |
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 |
US8127121B2 (en) | 1999-01-28 | 2012-02-28 | Ati Technologies Ulc | Apparatus for executing programs for a first computer architechture on a computer of a second architechture |
JP3762867B2 (ja) * | 1999-01-29 | 2006-04-05 | 富士通株式会社 | コンパイラ装置、コンパイル方法、およびそのためのプログラムを格納した記憶媒体 |
US6715063B1 (en) | 2000-01-14 | 2004-03-30 | Advanced Micro Devices, Inc. | Call gate expansion for 64 bit addressing |
US6662361B1 (en) | 2000-01-14 | 2003-12-09 | International Business Machines Corporation | Method, system, program, and data structures for transforming an instruction in a first bit architecture to an instruction in a second bit architecture |
US6725366B1 (en) * | 2000-09-07 | 2004-04-20 | International Business Machines, Corporation | System and method for 32 bit code branching to 64 bit targets |
US7406681B1 (en) * | 2000-10-12 | 2008-07-29 | Sun Microsystems, Inc. | Automatic conversion of source code from 32-bit to 64-bit |
GB0026363D0 (en) * | 2000-10-27 | 2000-12-13 | Sgs Thomson Microelectronics | Bi-endian libraries |
US7406682B2 (en) * | 2001-03-26 | 2008-07-29 | Emc Corporation | Translator-compiler for converting legacy management software |
AT411044B (de) | 2001-10-16 | 2003-09-25 | Burg Design Gmbh | Dekorelement |
US7020729B2 (en) | 2002-05-16 | 2006-03-28 | Intel Corporation | Protocol independent data transmission interface |
US7124445B2 (en) * | 2002-06-21 | 2006-10-17 | Pace Anti-Piracy, Inc. | Protecting software from unauthorized use by converting source code modules to byte codes |
US7353502B2 (en) * | 2002-07-03 | 2008-04-01 | The Mathworks, Inc. | System and method for creation of software components |
US8423976B2 (en) | 2003-03-13 | 2013-04-16 | Northrop Grumman Corporation | Extreme pipeline and optimized reordering technology |
GB0316531D0 (en) | 2003-07-15 | 2003-08-20 | Transitive Ltd | Method and apparatus for performing native binding |
US7519951B2 (en) * | 2003-09-30 | 2009-04-14 | International Business Machines Corporation | Multi-attribute dynamic link library packaging |
US20050221813A1 (en) | 2004-04-05 | 2005-10-06 | Jarno Rajahalme | System and method for initiating auxiliary communication interfaces via a primary communication interface |
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 |
US7966624B2 (en) * | 2007-08-22 | 2011-06-21 | Intel Corporation | Using message passing interface (MPI) profiling interface for emulating different MPI implementations |
US8832679B2 (en) * | 2007-08-28 | 2014-09-09 | Red Hat, Inc. | Registration process for determining compatibility with 32-bit or 64-bit software |
US20090144046A1 (en) | 2007-09-28 | 2009-06-04 | Rothman Michael A | Method to encapsulate an option rom for operation in multiple firmware and platform architectures |
US7831813B2 (en) | 2007-12-17 | 2010-11-09 | Globalfoundries Inc. | Uses of known good code for implementing processor architectural modifications |
JP4352086B2 (ja) * | 2007-12-21 | 2009-10-28 | 株式会社東芝 | 情報処理装置およびオペレーティングシステム判別方法 |
US20100077378A1 (en) * | 2008-09-25 | 2010-03-25 | International Business Machines Corporation | Virtualised Application Libraries |
US9189620B2 (en) * | 2009-06-30 | 2015-11-17 | Intel Corporation | Protecting a software component using a transition point wrapper |
US8561183B2 (en) * | 2009-07-31 | 2013-10-15 | Google Inc. | Native code module security for arm instruction set architectures |
US8645936B2 (en) * | 2009-09-30 | 2014-02-04 | Zynga Inc. | Apparatuses, methods and systems for an a API call abstractor |
CA2776913C (en) * | 2009-10-08 | 2017-01-03 | Irdeto Canada Corporation | A system and method for aggressive self-modification in dynamic function call systems |
US9075688B2 (en) * | 2010-02-09 | 2015-07-07 | Accenture Global Services Limited | Enhanced upgrade path |
KR101211673B1 (ko) | 2010-12-08 | 2012-12-12 | 한국과학기술연구원 | 사용자 단말에서 다른 시스템 환경을 갖는 외부 단말의 프로그램을 실행하기 위한 바이너리 호환 시스템 및 그 방법 |
US20120222024A1 (en) * | 2011-02-24 | 2012-08-30 | Kushal Das | Mechanism for Managing Support Criteria-Based Application Binary Interface/Application Programming Interface Differences |
US9891939B2 (en) | 2011-03-03 | 2018-02-13 | Microsoft Technology Licensing, Llc | Application compatibility with library operating systems |
CN103092599A (zh) | 2011-11-05 | 2013-05-08 | 京瓷办公信息系统株式会社 | 软件开发套件 |
CN104137055B (zh) * | 2011-12-29 | 2018-06-05 | 英特尔公司 | 点积处理器、方法、系统和指令 |
KR101691063B1 (ko) * | 2012-01-10 | 2016-12-29 | 인텔 코포레이션 | 콜백을 이용하는 isa 브리징 |
US9063759B2 (en) * | 2012-03-28 | 2015-06-23 | International Business Machines Corporation | Optimizing subroutine calls based on architecture level of called subroutine |
RU2012127581A (ru) * | 2012-07-02 | 2014-01-10 | ЭлЭсАй Корпорейшн | Генератор исходного кода для разработки и тестирования программного обеспечения для многопроцессорных сред |
WO2014022980A1 (en) | 2012-08-08 | 2014-02-13 | Intel Corporation | Isa bridging including support for call to overidding virtual functions |
US20140282371A1 (en) * | 2013-03-14 | 2014-09-18 | Media Direct, Inc. | Systems and methods for creating or updating an application using a pre-existing application |
WO2014172710A1 (en) | 2013-04-19 | 2014-10-23 | The Trustees Of Columbia University In The City Of New York | Methods, systems, and media for binary compatibility |
US9424420B2 (en) * | 2013-08-02 | 2016-08-23 | Red Hat, Inc. | Restricting application binary interfaces |
-
2014
- 2014-03-28 US US14/229,795 patent/US10120663B2/en not_active Expired - Fee Related
-
2015
- 2015-01-15 JP JP2015005697A patent/JP6124463B2/ja not_active Expired - Fee Related
- 2015-01-19 GB GB1500818.8A patent/GB2524616B/en active Active
- 2015-02-13 TW TW104105063A patent/TWI567646B/zh not_active IP Right Cessation
- 2015-02-26 KR KR1020150027602A patent/KR101817397B1/ko active IP Right Grant
- 2015-02-27 DE DE102015002582.1A patent/DE102015002582A1/de active Pending
- 2015-02-28 CN CN201510091576.8A patent/CN104951296B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR101817397B1 (ko) | 2018-01-11 |
US20150277867A1 (en) | 2015-10-01 |
GB2524616B (en) | 2018-05-09 |
GB2524616A (en) | 2015-09-30 |
KR20150112778A (ko) | 2015-10-07 |
CN104951296B (zh) | 2019-02-15 |
US10120663B2 (en) | 2018-11-06 |
JP2015191657A (ja) | 2015-11-02 |
TWI567646B (zh) | 2017-01-21 |
DE102015002582A1 (de) | 2015-10-01 |
CN104951296A (zh) | 2015-09-30 |
GB201500818D0 (en) | 2015-03-04 |
TW201545058A (zh) | 2015-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6124463B2 (ja) | 一方のアーキテクチャのコードモジュールが他方のアーキテクチャのライブラリモジュールを用いることを可能にするインターアーキテクチャ互換性モジュール | |
US11656899B2 (en) | Virtualization of process address space identifiers for scalable virtualization of input/output devices | |
EP3274816B1 (en) | User-level fork and join processors, methods, systems, and instructions | |
US10153012B2 (en) | Multiple register memory access instructions, processors, methods, and systems | |
US20150007196A1 (en) | Processors having heterogeneous cores with different instructions and/or architecural features that are presented to software as homogeneous virtual cores | |
JP5985526B2 (ja) | システムコールのためのロバスト且つ高性能な命令 | |
CN110659129A (zh) | 用于数据表示之间的一致、加速的转换的装置和方法 | |
TW201741867A (zh) | 記憶體複製指令、處理器、方法及系統 | |
EP3709159B1 (en) | Processing vectorized guest physical address translation instructions | |
US10761979B2 (en) | Bit check processors, methods, systems, and instructions to check a bit with an indicated check bit value | |
US11269782B2 (en) | Address space identifier management in complex input/output virtualization environments | |
TW201734766A (zh) | 使用處理器指令前綴的二進制轉譯支援 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160223 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20160523 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20160722 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160823 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161025 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170125 |
|
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: 20170307 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170403 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6124463 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 |
|
LAPS | Cancellation because of no payment of annual fees |