JP2014532248A - バイナリトランスレーションを実行する方法及びシステム - Google Patents
バイナリトランスレーションを実行する方法及びシステム Download PDFInfo
- Publication number
- JP2014532248A JP2014532248A JP2014536101A JP2014536101A JP2014532248A JP 2014532248 A JP2014532248 A JP 2014532248A JP 2014536101 A JP2014536101 A JP 2014536101A JP 2014536101 A JP2014536101 A JP 2014536101A JP 2014532248 A JP2014532248 A JP 2014532248A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- source
- condition
- instructions
- condition state
- 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
- 238000013519 translation Methods 0.000 title claims abstract description 105
- 238000000034 method Methods 0.000 title claims abstract description 82
- 230000004044 response Effects 0.000 claims abstract description 47
- 238000005457 optimization Methods 0.000 claims abstract description 29
- 239000013598 vector Substances 0.000 claims description 110
- 230000006870 function Effects 0.000 claims description 66
- 238000006243 chemical reaction Methods 0.000 claims description 48
- 238000011084 recovery Methods 0.000 claims description 43
- 230000009249 intrinsic sympathomimetic activity Effects 0.000 description 49
- 230000015654 memory Effects 0.000 description 32
- 230000008569 process Effects 0.000 description 26
- 239000000047 product Substances 0.000 description 23
- 238000012545 processing Methods 0.000 description 19
- 238000004422 calculation algorithm Methods 0.000 description 7
- 101100534231 Xenopus laevis src-b gene Proteins 0.000 description 6
- 230000001413 cellular effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 101100058681 Drosophila melanogaster Btk29A gene Proteins 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001131 transforming effect Effects 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/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
-
- 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
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- 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/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
let eip=ターゲットISAコードにおける例外/割込ip
{offset,ccb_entry_ip}=
BT.runtime.condition_state_recovery_table[eip]
Contition_state=BT.runtime.decode(ccb_entry_ip)
For i=1 to offset:
condition_state=
BT.runtime.condition_state_adcvance(condition_state)。
Vector1=X1X0
Vector2=Y1Y0
Dest_tmp=X1*Y1 and X0*Y0
Dest=X1*Y1+X0*Y0
を含むものとして識別することができ、dest(宛先)アドレスが並列乗算加算命令の結果を含む。
dest=parallel_multiply_add(src1,src2)
if(dest==0x1<<(S*N-1)) O_flagを生成
である。
Src2.low_Sbit=not(src2.low_Sbit)
dest’=parallel_multiply_add(src1,src2)
dest=dest’+Sign-extend(src1.low_Sbit)
である。
If(overflow検出)
{
dest=(0x1<<(S*N-1))+sign-extend(0x1<<(S-1))
}
である。
dest=〜dest
である。
入力:SIA_INSTと表記されるソースISA命令のシーケンス
出力:O_flagと表記される桁あふれフラグ情報
アルゴリズム:
Begin
dest=parallel_multiply_add(src1,src2)
if(dest==0x1<<(S*N-1))
O_flagを生成
Endif
End
のように構成され得る。
入力:SIA_INSTと表記されるソースISA命令のシーケンス
出力:TIA_INSTと表記されるターゲットISA命令のシーケンス
アルゴリズム:
Begin
Src2.low_Sbit=not(src2.low_Sbit)
dest’=Parallel_multiply_add(src1,src2)
dest=dest’+Sign-extend(src1.low_Sbit)
if(桁あふれ検出)
dest=const_val
Endif
if(回要素から上位要素を減算)dest=〜dest
Endif
End
のように構成され得る。
入力:SIA_INSTと表記されるソースISA命令のシーケンス
出力:TIA_INSTと表記されるターゲットISA命令のシーケンス
アルゴリズム:
Begin
src_long_lh’=zero_extend(src_long_lh,SB_size)
src_long_hh’=arithmetic_shift_right(src_long_hh,SB_size)
lh_product=imul(src_long_lh’,src_short)
hh_product=imul(src_long_hh’,src_short)
lh_product’=arithmetic_shift_right(lh_product,SB_size)
dest=add(lh_product’,hh_product)
if 現在命令が拡張を有する
dest=add(dest,src_ext)
Endif
End
のように構成され得る。
Claims (36)
- バイナリトランスレーションを実行する方法であって:
プロセッサ上で動作するトランスレータモジュールによって、ソース命令をターゲット命令にトランスレートするステップ;
前記ソース命令内の条件コードブロックを識別するステップであり、該条件コードブロックは複数の条件ビットを含む、ステップ;及び
前記条件コードブロックを変換するステップであり、前記条件コードブロックについてプレ実行を実行して、前記条件コードブロック内の前記複数の条件ビットを分解することで、事前分解された条件セットを形成することを含むステップ;
を有する方法。 - 前記事前分解された条件セットで前記ソース命令をエンコードするステップ、を更に有する請求項1に記載の方法。
- バイナリトランスレーションを実行する方法であって:
プロセッサ上で動作するランタイム環境モジュールによって、ターゲット命令内の命令における割込を識別するステップ;
割り込まれた命令のターゲットアドレスを検索するステップであり、該ターゲットアドレスはターゲット命令セットアーキテクチャに関するものである、ステップ;及び
前記割り込まれた命令のソースアドレスをリカバリテーブル内で特定するステップであり、前記ターゲットアドレスは該リカバリテーブル内で該ソースアドレスと対にされている、ステップ;
を有する方法。 - 前記ソースアドレスを特定するステップは:
前記割り込まれた命令の前記ソースアドレスに関するオフセットを前記リカバリテーブル内で特定するステップであり、該オフセットに前記割り込まれた命令の命令サイズが乗算される、ステップ;
前記ソースアドレスにおける当初条件状態を特定するステップ;
現在条件状態を前記当初条件状態に設定するステップ;
前記オフセットの値に基づく回数だけ前記現在条件状態を進めるステップ;及び
前記現在条件状態を復元するステップ;
を有する、請求項3に記載の方法。 - 前記現在条件状態を進めるステップは:
変数を1に設定するステップ;
前記オフセットが前記変数に等しいかを決定するステップ;
前記オフセットが前記変数に等しいことに応答して、前記現在条件状態を復元するステップ;
前記オフセットが前記変数に等しくないことに応答して、前記条件コードブロックの条件状態を進めるステップ;
前記条件状態を進めたことに応答して、進められた条件状態に合致するように前記現在条件状態を設定するステップ;
前記現在条件状態を設定したことに応答して、前記変数を進めるステップ;及び
前記オフセットが前記変数に等しくなるまで、前記オフセットが前記変数に等しいかを決定するステップを繰り返すステップ;
を有する、請求項4に記載の方法。 - 並列乗算加算命令をトランスレートする方法であって:
プロセッサ上で動作するトランスレータモジュールによって、トランスレートされるべき命令を受信するステップであり、該命令は複数のソースベクトルに対する並列乗算加算関数を呼び出すものである、ステップ;及び
トランスレートされたコードを生成するステップであり:
前記複数のソースベクトルに対する前記並列乗算加算関数を実行し;且つ
桁あふれが存在するかを決定する
ことを実行するトランスレートされたコードを生成するステップ;
を有する方法。 - 桁あふれを決定したことに応答して、桁あふれが存在することを指し示すように桁あふれフラグを設定するステップ、を更に有する請求項6に記載の方法。
- 並列乗算減算命令をトランスレートする方法であって:
プロセッサ上で動作するトランスレータモジュールによって、トランスレートされるべき命令を受信するステップであり、該命令は複数のソースベクトルに対する並列乗算減算関数を呼び出すものであり、前記複数のソースベクトルのうちの各ベクトルは下位要素と上位要素とを有する、ステップ;及び
トランスレートされたコードを生成するステップであり:
第2のソースベクトルの下位要素に対してビット毎のnot演算を実行し;
前記複数のソースベクトルに対する並列乗算加算関数を実行して結果を形成し;
第1のソースベクトルの下位要素を前記結果に加算し;
桁あふれが存在するかを決定し;且つ
桁あふれを決定したことに応答して、前記結果を一定値に設定する
ことを実行するトランスレートされたコードを生成するステップ;
を有する方法。 - 桁あふれを決定しなかったことに応答して、前記上位要素が前記下位要素から減算されたかを決定するステップ;及び
前記上位要素が前記下位要素から減算されたことに応答して、前記結果に対してビットごとのnot演算を実行するステップ;
を更に有する請求項8に記載の方法。 - パーシャルロング乗算命令をトランスレートする方法であって:
プロセッサ上で動作するトランスレータモジュールによって、トランスレートされるべき命令を受信するステップであり、該命令は複数のソースベクトルに対するパーシャルロング乗算関数を呼び出すものであり、該パーシャルロング乗算関数は第1のオペランドを有する、ステップ;及び
トランスレートされたコードを生成するステップであり:
前記関数の前記第1のオペランドを上半分と下半分とに分割し;
前記第1のオペランドの各半分に第2のオペランドを乗算して、上半分の積と下半分の積とを形成し;且つ
前記上半分の積を前記下半分の積に加算する
ことを実行するトランスレートされたコードを生成するステップ;
を有する方法。 - 前記関数の前記第1のオペランドを分割することは:
前記下半分に対してゼロ拡張を実行し;且つ
前記上半分に対して算術シフトライト演算を実行する
ことを有する、請求項10に記載の方法。 - 前記下半分の積に対して算術シフトライト演算を実行すること、を更に有する請求項10又は11に記載の方法。
- 1つ以上の命令を格納した少なくとも1つのコンピュータ読み取り可能媒体であって、前記1つ以上の命令は、プロセッサによって実行されるときに:
ソース命令をターゲット命令にトランスレートし;
前記ソース命令内の条件コードブロックを識別し、該条件コードブロックは複数の条件ビットを含み;且つ
前記条件コードブロックを変換し、該変換は、前記条件コードブロックについてプレ実行を実行して、前記条件コードブロック内の前記複数の条件ビットを分解することで、事前分解された条件セットを形成することを含む、
少なくとも1つのコンピュータ読み取り可能媒体。 - 更に1つ以上の命令を有し、該1つ以上の命令は、前記プロセッサによって実行されるときに:
前記事前分解された条件セットで前記ソース命令をエンコードする、
請求項13に記載の少なくとも1つのコンピュータ読み取り可能媒体。 - 1つ以上の命令を格納した少なくとも1つのコンピュータ読み取り可能媒体であって、前記1つ以上の命令は、プロセッサによって実行されるときに:
ターゲット命令内の命令における割込を識別し;
割り込まれた命令のターゲットアドレスを検索し、該ターゲットアドレスはターゲット命令セットアーキテクチャに関するものであり;且つ
前記割り込まれた命令のソースアドレスをリカバリテーブル内で特定し、前記ターゲットアドレスは該リカバリテーブル内で該ソースアドレスと対にされている;
少なくとも1つのコンピュータ読み取り可能媒体。 - 前記ソースアドレスを特定することは、前記プロセッサによって実行されるときに1つ以上の命令が:
前記割り込まれた命令の前記ソースアドレスに関するオフセットを前記リカバリテーブル内で特定し、該オフセットに前記割り込まれた命令の命令サイズが乗算され;
前記ソースアドレスにおける当初条件状態を特定し;
現在条件状態を前記当初条件状態に設定し;
前記オフセットの値に基づく回数だけ前記現在条件状態を進め;且つ
前記現在条件状態を復元する
ことを有する、請求項15に記載の少なくとも1つのコンピュータ読み取り可能媒体。 - 前記現在条件状態を進めることは、前記プロセッサによって実行されるときに1つ以上の命令が:
変数を1に設定し;
前記オフセットが前記変数に等しいかを決定し;
前記オフセットが前記変数に等しいことに応答して、前記現在条件状態を復元し;
前記オフセットが前記変数に等しくないことに応答して、前記条件コードブロックの条件状態を進め;
前記条件状態を進めたことに応答して、進められた条件状態に合致するように前記現在条件状態を設定し;
前記現在条件状態を設定したことに応答して、前記変数を進め;且つ
前記オフセットが前記変数に等しくなるまで、前記オフセットが前記変数に等しいかを決定することを繰り返す
ことを有する、請求項16に記載の少なくとも1つのコンピュータ読み取り可能媒体。 - 1つ以上の命令を格納した少なくとも1つのコンピュータ読み取り可能媒体であって、前記1つ以上の命令は、プロセッサによって実行されるときに:
トランスレートされるべき命令を受信し、該命令は複数のソースベクトルに対する並列乗算加算関数を呼び出すものであり;且つ
トランスレートされたコードを生成し、該トランスレートされたコードは:
前記複数のソースベクトルに対する前記並列乗算加算関数を実行し;且つ
桁あふれが存在するかを決定する
ものである、
少なくとも1つのコンピュータ読み取り可能媒体。 - 更に1つ以上の命令を有し、該1つ以上の命令は、前記プロセッサによって実行されるときに:
桁あふれを決定したことに応答して、桁あふれが存在することを指し示すように桁あふれフラグを設定する、
請求項18に記載の少なくとも1つのコンピュータ読み取り可能媒体。 - 1つ以上の命令を格納した少なくとも1つのコンピュータ読み取り可能媒体であって、前記1つ以上の命令は、プロセッサによって実行されるときに:
トランスレートされるべき命令を受信し、該命令は複数のソースベクトルに対する並列乗算減算関数を呼び出すものであり、前記複数のソースベクトルのうちの各ベクトルは下位要素と上位要素とを有し;且つ
トランスレートされたコードを生成し、該トランスレートされたコードは:
第2のソースベクトルの下位要素に対してビット毎のnot演算を実行し;
前記複数のソースベクトルに対する並列乗算加算関数を実行して結果を形成し;
第1のソースベクトルの下位要素を前記結果に加算し;
桁あふれが存在するかを決定し;且つ
桁あふれを決定したことに応答して、前記結果を一定値に設定する
ものである、
少なくとも1つのコンピュータ読み取り可能媒体。 - 更に1つ以上の命令を有し、該1つ以上の命令は、前記プロセッサによって実行されるときに:
桁あふれを決定しなかったことに応答して、前記上位要素が前記下位要素から減算されたかを決定し;且つ
前記上位要素が前記下位要素から減算されたことに応答して、前記結果に対してビットごとのnot演算を実行する、
請求項20に記載の少なくとも1つのコンピュータ読み取り可能媒体。 - 1つ以上の命令を格納した少なくとも1つのコンピュータ読み取り可能媒体であって、前記1つ以上の命令は、プロセッサによって実行されるときに:
トランスレートされるべき命令を受信し、該命令は複数のソースベクトルに対するパーシャルロング乗算関数を呼び出すものであり、該パーシャルロング乗算関数は第1のオペランドを有し;且つ
トランスレートされたコードを生成し、該トランスレートされたコードは:
前記関数の前記第1のオペランドを上半分と下半分とに分割し;
前記第1のオペランドの各半分に第2のオペランドを乗算して、上半分の積と下半分の積とを形成し;且つ
前記上半分の積を前記下半分の積に加算する
ものである、
少なくとも1つのコンピュータ読み取り可能媒体。 - 前記関数の前記第1のオペランドを分割することは、前記プロセッサによって実行されるときに1つ以上の命令が:
前記下半分に対してゼロ拡張を実行し;且つ
前記上半分に対して算術シフトライト演算を実行する
ことを有する、請求項22に記載の少なくとも1つのコンピュータ読み取り可能媒体。 - 更に1つ以上の命令を有し、該1つ以上の命令は、前記プロセッサによって実行されるときに:
前記下半分の積に対して算術シフトライト演算を実行する、
請求項22又は23に記載の少なくとも1つのコンピュータ読み取り可能媒体。 - トランスレータモジュールであり:
ソース命令をターゲット命令にトランスレートし;且つ
前記ソース命令内の条件コードブロックを識別し、該条件コードブロックは複数の条件ビットを含む;
ように構成されたトランスレータモジュールと、
前記条件コードブロックを変換するように構成された最適化モジュールであり、該変換は、前記条件コードブロックについてプレ実行を実行して、前記条件コードブロック内の前記複数の条件ビットを分解することで、事前分解された条件セットを形成することを含む、最適化モジュールと、
を有する装置。 - 前記最適化モジュールは更に、前記事前分解された条件セットで前記ソース命令をエンコードするように構成されている、請求項25に記載の装置。
- 複数のターゲットアドレスと複数のソースアドレスとを格納するように構成されたリカバリテーブルと、
ランタイム環境モジュールであり:
ターゲット命令内の命令における割込を識別し;
割り込まれた命令のターゲットアドレスを検索し、該ターゲットアドレスはターゲット命令セットアーキテクチャに関するものであり;且つ
前記割り込まれた命令のソースアドレスを前記リカバリテーブル内で特定し、前記複数のターゲットアドレスのうちの該ターゲットアドレスは、前記リカバリテーブル内で、前記複数のソースアドレスのうちの該ソースアドレスと対にされている;
ように構成されたランタイム環境モジュールと、
を有する装置。 - 前記ソースアドレスを特定することにおいて、前記ランタイム環境モジュールは:
前記割り込まれた命令の前記ソースアドレスに関するオフセットを前記リカバリテーブル内で特定し、該オフセットに前記割り込まれた命令の命令サイズが乗算され;
前記ソースアドレスにおける当初条件状態を特定し;
現在条件状態を前記当初条件状態に設定し;
前記オフセットの値に基づく回数だけ前記現在条件状態を進め;且つ
前記現在条件状態を復元する;
ように構成される、請求項27に記載の装置。 - 前記現在条件状態を進めることにおいて、前記ランタイム環境モジュールは:
変数を1に設定し;
前記オフセットが前記変数に等しいかを決定し;
前記オフセットが前記変数に等しいことに応答して、前記現在条件状態を復元し;
前記オフセットが前記変数に等しくないことに応答して、前記条件コードブロックの条件状態を進め;
前記条件状態を進めたことに応答して、進められた条件状態に合致するように前記現在条件状態を設定し;
前記現在条件状態を設定したことに応答して、前記変数を進め;且つ
前記オフセットが前記変数に等しくなるまで、前記オフセットが前記変数に等しいかを決定することを繰り返す;
ように構成される、請求項28に記載の装置。 - トランスレータモジュールを有する装置であって:
前記トランスレータモジュールは:
トランスレートされるべき命令を受信し、該命令は複数のソースベクトルに対する並列乗算加算関数を呼び出すものであり;且つ
トランスレートされたコードを生成し、該トランスレートされたコードは:
前記複数のソースベクトルに対する前記並列乗算加算関数を実行し;且つ
桁あふれが存在するかを決定する
ものである;
ように構成されている、
装置。 - 前記トランスレータモジュールは更に、桁あふれを決定したことに応答して、桁あふれが存在することを指し示すように桁あふれフラグを設定するように構成されている、請求項30に記載の装置。
- トランスレータモジュールを有する装置であって:
前記トランスレータモジュールは:
トランスレートされるべき命令を受信し、該命令は複数のソースベクトルに対する並列乗算加算関数を呼び出すものであり、前記複数のソースベクトルのうちの各ベクトルは下位要素と上位要素とを有し;且つ
トランスレートされたコードを生成し、該トランスレートされたコードは:
第2のソースベクトルの下位要素に対してビット毎のnot演算を実行し;
前記複数のソースベクトルに対する並列乗算加算関数を実行して結果を形成し;
第1のソースベクトルの下位要素を前記結果に加算し;
桁あふれが存在するかを決定し;且つ
桁あふれを決定したことに応答して、前記結果を一定値に設定する
ものである;
ように構成されている、
装置。 - 前記トランスレータモジュールは更に:
桁あふれを決定しなかったことに応答して、前記上位要素が前記下位要素から減算されたかを決定し;且つ
前記上位要素が前記下位要素から減算されたことに応答して、前記結果に対してビットごとのnot演算を実行する;
ように構成されている、請求項32に記載の装置。 - トランスレータモジュールを有する装置であって:
前記トランスレータモジュールは:
トランスレートされるべき命令を受信し、該命令は複数のソースベクトルに対するパーシャルロング乗算関数を呼び出すものであり、該パーシャルロング乗算関数は第1のオペランドを有し;且つ
トランスレートされたコードを生成し、該トランスレートされたコードは:
前記関数の前記第1のオペランドを上半分と下半分とに分割し;
前記第1のオペランドの各半分に第2のオペランドを乗算して、上半分の積と下半分の積とを形成し;且つ
前記上半分の積を前記下半分の積に加算する
ものである;
ように構成されている、
装置。 - 前記関数の前記第1のオペランドを分割することにおいて、前記トランスレータモジュールは:
前記下半分に対してゼロ拡張を実行し;且つ
前記上半分に対して算術シフトライト演算を実行する
ように構成される、請求項34に記載の装置。 - 前記トランスレータモジュールは更に、前記下半分の積に対して算術シフトライト演算を実行するように構成されている、請求項34又は35に記載の装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2012/081728 WO2014043886A1 (en) | 2012-09-21 | 2012-09-21 | Methods and systems for performing a binary translation |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014532248A true JP2014532248A (ja) | 2014-12-04 |
JP5727107B2 JP5727107B2 (ja) | 2015-06-03 |
Family
ID=50340545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014536101A Expired - Fee Related JP5727107B2 (ja) | 2012-09-21 | 2012-09-21 | バイナリトランスレーションを実行する方法及びシステム |
Country Status (4)
Country | Link |
---|---|
US (1) | US9928067B2 (ja) |
JP (1) | JP5727107B2 (ja) |
KR (1) | KR101642556B1 (ja) |
WO (1) | WO2014043886A1 (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9792121B2 (en) * | 2013-05-21 | 2017-10-17 | Via Technologies, Inc. | Microprocessor that fuses if-then instructions |
US10990362B1 (en) * | 2014-01-17 | 2021-04-27 | Tg Llc | Converting programs to visual representation with reading complied binary |
KR102145463B1 (ko) * | 2014-05-02 | 2020-08-18 | 충남대학교산학협력단 | 재목적성을 고려한 직접 매핑 기반의 이진 변환 규칙 생성 도구 |
US9335982B1 (en) * | 2015-04-28 | 2016-05-10 | Microsoft Technology Licensing, Llc | Processor emulation using multiple translations |
GB2537936B (en) * | 2015-05-01 | 2020-01-22 | Advanced Risc Mach Ltd | System and method for translating a guest instruction of a guest architecture into at least one host instruction of a host architecture |
US10789056B2 (en) * | 2016-07-06 | 2020-09-29 | Intel Corporation | Technologies for scalable translation caching for binary translation systems |
US20190102182A1 (en) * | 2017-09-29 | 2019-04-04 | Intel Corporation | Apparatus and method for performing dual signed and unsigned multiplication of packed data elements |
US10802826B2 (en) | 2017-09-29 | 2020-10-13 | Intel Corporation | Apparatus and method for performing dual signed and unsigned multiplication of packed data elements |
US10514924B2 (en) | 2017-09-29 | 2019-12-24 | Intel Corporation | Apparatus and method for performing dual signed and unsigned multiplication of packed data elements |
US10795677B2 (en) | 2017-09-29 | 2020-10-06 | Intel Corporation | Systems, apparatuses, and methods for multiplication, negation, and accumulation of vector packed signed values |
US11074073B2 (en) | 2017-09-29 | 2021-07-27 | Intel Corporation | Apparatus and method for multiply, add/subtract, and accumulate of packed data elements |
US10534838B2 (en) | 2017-09-29 | 2020-01-14 | Intel Corporation | Bit matrix multiplication |
US10664277B2 (en) | 2017-09-29 | 2020-05-26 | Intel Corporation | Systems, apparatuses and methods for dual complex by complex conjugate multiply of signed words |
US10795676B2 (en) | 2017-09-29 | 2020-10-06 | Intel Corporation | Apparatus and method for multiplication and accumulation of complex and real packed data elements |
US11256504B2 (en) | 2017-09-29 | 2022-02-22 | Intel Corporation | Apparatus and method for complex by complex conjugate multiplication |
US11243765B2 (en) | 2017-09-29 | 2022-02-08 | Intel Corporation | Apparatus and method for scaling pre-scaled results of complex multiply-accumulate operations on packed real and imaginary data elements |
US10552154B2 (en) | 2017-09-29 | 2020-02-04 | Intel Corporation | Apparatus and method for multiplication and accumulation of complex and real packed data elements |
CN109902312B (zh) * | 2019-03-01 | 2023-07-11 | 北京金山数字娱乐科技有限公司 | 一种翻译方法及装置、翻译模型的训练方法及装置 |
KR102265937B1 (ko) * | 2020-12-21 | 2021-06-17 | 주식회사 모비젠 | 시퀀스데이터의 분석 방법 및 그 장치 |
US11803383B2 (en) | 2020-12-29 | 2023-10-31 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Method and system for executing new instructions |
US11803381B2 (en) | 2020-12-29 | 2023-10-31 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Instruction simulation device and method thereof |
US11789736B2 (en) | 2020-12-29 | 2023-10-17 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Method and system for executing new instructions |
US11803387B2 (en) * | 2020-12-29 | 2023-10-31 | Shanghai Zhaoxin Semiconductor Co., Ltd. | System for executing new instructions and method for executing new instructions |
US11914997B2 (en) | 2020-12-29 | 2024-02-27 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Method and system for executing new instructions |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001306334A (ja) * | 2000-04-25 | 2001-11-02 | Nec Software Hokuriku Ltd | エミュレーション装置 |
JP2002543490A (ja) * | 1999-04-27 | 2002-12-17 | トランジティブ テクノロジーズ リミテッド | プログラムコード変換において使用する例外処理の方法および装置 |
JP2004038923A (ja) * | 2002-02-06 | 2004-02-05 | Transitive Technologies Ltd | プログラムコード変換のための条件コードフラグのエミュレーション |
JP2004054948A (ja) * | 2002-07-19 | 2004-02-19 | Hewlett-Packard Development Co Lp | 非同期のエミュレートされた割込みの同期化 |
JP2006526813A (ja) * | 2003-06-05 | 2006-11-24 | アーム・リミテッド | データ処理システムにおけるプリディケーション命令 |
JP2008546121A (ja) * | 2005-06-27 | 2008-12-18 | インテル・コーポレーション | デノーマル入力ハンドリングメカニズムをサポートする動的バイナリ変換の装置、システム、及び方法 |
US20090187750A1 (en) * | 1998-10-26 | 2009-07-23 | Vmware, Inc. | Binary Translator with Precise Exception Synchronization Mechanism |
JP2012003761A (ja) * | 2010-06-14 | 2012-01-05 | Intel Corp | 効率的な動的バイナリ変換のためのレジスタマッピング技術を用いた方法、物品及びシステム |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6496922B1 (en) * | 1994-10-31 | 2002-12-17 | Sun Microsystems, Inc. | Method and apparatus for multiplatform stateless instruction set architecture (ISA) using ISA tags on-the-fly instruction translation |
US6009512A (en) * | 1997-10-27 | 1999-12-28 | Advanced Micro Devices, Inc. | Mechanism for forwarding operands based on predicated instructions |
US7587582B1 (en) * | 1998-12-03 | 2009-09-08 | Sun Microsystems, Inc. | Method and apparatus for parallel arithmetic operations |
MXPA05004984A (es) | 2002-11-06 | 2005-08-26 | Ambient Corp | Control de potencia de salida de modem para comunicaciones de linea de energia. |
US20060200654A1 (en) * | 2005-03-04 | 2006-09-07 | Dieffenderfer James N | Stop waiting for source operand when conditional instruction will not execute |
US20060224867A1 (en) * | 2005-03-31 | 2006-10-05 | Texas Instruments Incorporated | Avoiding unnecessary processing of predicated instructions |
US7793078B2 (en) * | 2005-04-01 | 2010-09-07 | Arm Limited | Multiple instruction set data processing system with conditional branch instructions of a first instruction set and a second instruction set sharing a same instruction encoding |
US8904151B2 (en) * | 2006-05-02 | 2014-12-02 | International Business Machines Corporation | Method and apparatus for the dynamic identification and merging of instructions for execution on a wide datapath |
US8141066B2 (en) | 2007-01-12 | 2012-03-20 | Hewlett-Packard Development Company, L.P. | Cross-platform architecture for replicating profiling scheme in a computer system |
US7712092B2 (en) * | 2007-10-01 | 2010-05-04 | The Board Of Trustees Of The Leland Stanford Junior University | Binary translation using peephole translation rules |
US8612698B2 (en) * | 2008-10-31 | 2013-12-17 | Intel Corporation | Replacement policy for hot code detection |
US8356165B2 (en) * | 2009-09-14 | 2013-01-15 | Advanced Micro Devices, Inc. | Selecting regions of hot code in a dynamic binary rewriter |
CN101706734B (zh) * | 2009-11-10 | 2013-08-14 | 中国科学院计算技术研究所 | 二进制翻译中间接跳转指令的翻译方法及其系统 |
US20120124346A1 (en) * | 2010-11-15 | 2012-05-17 | Arm Limited | Decoding conditional program instructions |
-
2012
- 2012-09-21 WO PCT/CN2012/081728 patent/WO2014043886A1/en active Application Filing
- 2012-09-21 US US13/976,359 patent/US9928067B2/en not_active Expired - Fee Related
- 2012-09-21 JP JP2014536101A patent/JP5727107B2/ja not_active Expired - Fee Related
- 2012-09-21 KR KR1020137023094A patent/KR101642556B1/ko active IP Right Grant
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090187750A1 (en) * | 1998-10-26 | 2009-07-23 | Vmware, Inc. | Binary Translator with Precise Exception Synchronization Mechanism |
JP2002543490A (ja) * | 1999-04-27 | 2002-12-17 | トランジティブ テクノロジーズ リミテッド | プログラムコード変換において使用する例外処理の方法および装置 |
JP2001306334A (ja) * | 2000-04-25 | 2001-11-02 | Nec Software Hokuriku Ltd | エミュレーション装置 |
JP2004038923A (ja) * | 2002-02-06 | 2004-02-05 | Transitive Technologies Ltd | プログラムコード変換のための条件コードフラグのエミュレーション |
JP2004054948A (ja) * | 2002-07-19 | 2004-02-19 | Hewlett-Packard Development Co Lp | 非同期のエミュレートされた割込みの同期化 |
JP2006526813A (ja) * | 2003-06-05 | 2006-11-24 | アーム・リミテッド | データ処理システムにおけるプリディケーション命令 |
JP2008546121A (ja) * | 2005-06-27 | 2008-12-18 | インテル・コーポレーション | デノーマル入力ハンドリングメカニズムをサポートする動的バイナリ変換の装置、システム、及び方法 |
JP2012003761A (ja) * | 2010-06-14 | 2012-01-05 | Intel Corp | 効率的な動的バイナリ変換のためのレジスタマッピング技術を用いた方法、物品及びシステム |
Non-Patent Citations (1)
Title |
---|
中島康彦、上埜治彦、田尻邦彦、鈴木貴朗: "動的命令変換手法によるMアーキテクチャ・エミュレーション", 情報処理学会論文誌, vol. 第38巻,第11号, JPN6014047297, 15 November 1997 (1997-11-15), pages 2309 - 2320, ISSN: 0002935758 * |
Also Published As
Publication number | Publication date |
---|---|
US20140304493A1 (en) | 2014-10-09 |
WO2014043886A1 (en) | 2014-03-27 |
KR20140064710A (ko) | 2014-05-28 |
JP5727107B2 (ja) | 2015-06-03 |
US9928067B2 (en) | 2018-03-27 |
KR101642556B1 (ko) | 2016-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5727107B2 (ja) | バイナリトランスレーションを実行する方法及びシステム | |
US10649746B2 (en) | Instruction and logic to perform dynamic binary translation | |
US7203932B1 (en) | Method and system for using idiom recognition during a software translation process | |
TWI578155B (zh) | 用於條件式記憶體錯誤輔助抑制的處理器、處理系統及方法 | |
RU2263947C2 (ru) | Целочисленное умножение высокого порядка с округлением и сдвигом в архитектуре с одним потоком команд и множеством потоков данных | |
KR101703743B1 (ko) | 가속된 레인 간 벡터 감축 명령어들 | |
CN108369511B (zh) | 用于基于通道的跨步存储操作的指令和逻辑 | |
US7797366B2 (en) | Power-efficient sign extension for booth multiplication methods and systems | |
TWI510921B (zh) | 快取記憶體共處理單元 | |
KR20170097018A (ko) | 벡터 브로드캐스트 및 xorand 로직 명령어를 위한 장치 및 방법 | |
JPH11175349A (ja) | データ列生成方法及び装置、変換方法、及びコンピュータ | |
TWI546735B (zh) | 用以提供在遮罩暫存器與通用暫存器或記憶體間的轉換之指令及邏輯 | |
RU2015151114A (ru) | Устройство и способ для ускорения операций сжатия и распаковки | |
JP2010186467A (ja) | コンピュータにより実施される方法、コンピュータ可読ストレージ媒体およびシステム(simdアーキテクチャの条件付きデータ選択のための高速ベクトル・マスキング・アルゴリズム) | |
TW201322132A (zh) | 用以控制部分二進制轉譯系統中之轉換的指令及邏輯 | |
US9154157B2 (en) | Search unit to accelerate variable length compression/decompression | |
US9361109B2 (en) | System and method to evaluate a data value as an instruction | |
RU2644528C2 (ru) | Инструкция и логика для идентификации инструкций для удаления в многопоточном процессоре с изменением последовательности | |
US20150261537A1 (en) | Method of decoding instructions in microprocessor | |
US8356156B2 (en) | Method and system for using external storage to amortize CPU cycle utilization | |
US10977012B2 (en) | Computing device for accelerating a data type check and operating method thereof | |
KR20230129559A (ko) | 가변길이 명령어들을 사용하는 병렬 디코드 명령어 세트 컴퓨터 아키텍처 | |
JP6231155B2 (ja) | ベクトル散乱演算機能及びベクトル収集演算機能を提供する命令及びロジック | |
US20180232231A1 (en) | Application specific instruction-set processor (asip) for simultaneously executing a plurality of operations using a long instruction word | |
Grow et al. | Media processor programming interface to increase the portability of media processor software |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20141111 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150209 |
|
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: 20150303 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150401 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5727107 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |