JP2005539321A - データ処理システムの外部および内部命令セット - Google Patents
データ処理システムの外部および内部命令セット Download PDFInfo
- Publication number
- JP2005539321A JP2005539321A JP2004537249A JP2004537249A JP2005539321A JP 2005539321 A JP2005539321 A JP 2005539321A JP 2004537249 A JP2004537249 A JP 2004537249A JP 2004537249 A JP2004537249 A JP 2004537249A JP 2005539321 A JP2005539321 A JP 2005539321A
- Authority
- JP
- Japan
- Prior art keywords
- internal
- instruction block
- internal instruction
- instruction
- external
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 7
- 238000006243 chemical reaction Methods 0.000 claims abstract description 84
- 238000013519 translation Methods 0.000 claims abstract description 73
- 230000015654 memory Effects 0.000 claims description 54
- 238000000034 method Methods 0.000 claims description 51
- 238000013507 mapping Methods 0.000 claims description 30
- KJLPSBMDOIVXSN-UHFFFAOYSA-N 4-[4-[2-[4-(3,4-dicarboxyphenoxy)phenyl]propan-2-yl]phenoxy]phthalic acid Chemical compound C=1C=C(OC=2C=C(C(C(O)=O)=CC=2)C(O)=O)C=CC=1C(C)(C)C(C=C1)=CC=C1OC1=CC=C(C(O)=O)C(C(O)=O)=C1 KJLPSBMDOIVXSN-UHFFFAOYSA-N 0.000 claims description 11
- 230000009466 transformation Effects 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 6
- 241001522296 Erithacus rubecula Species 0.000 claims description 4
- 230000006399 behavior Effects 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000004422 calculation algorithm Methods 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 claims 3
- 230000014616 translation Effects 0.000 description 51
- 230000008901 benefit Effects 0.000 description 6
- 230000002411 adverse Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000000844 transformation Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 210000003813 thumb Anatomy 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000008713 feedback mechanism Effects 0.000 description 1
- 239000003292 glue Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- 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/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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, look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
-
- 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, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- 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, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
-
- 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, look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
-
- 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, look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
Abstract
1つ以上の内部命令のうちの複数の内部命令ブロックを記憶するようになっている変換バッファとを備え、前記内部命令ブロックが1つ以上の外部命令のうちのそれぞれの外部命令ブロックのダイナミックな変換であり、
対応する内部命令ブロックからの1つ以上の内部命令を前記実行コアに供給できるよう、前記変換バッファ内に記憶された前記対応する内部命令ブロックを識別するための前記外部命令ブロックのうちの1つのうちにある、外部命令のための実行リクエストに応答自在なリマッパーを備えた、データを処理するための装置が提供される。
Description
内部命令を実行するようになっている実行コアと、
1つ以上の内部命令のうちの複数の内部命令ブロックを記憶するようになっている変換バッファとを備え、前記内部命令ブロックが1つ以上の外部命令のうちのそれぞれの外部命令ブロックのダイナミックな変換であり、
対応する内部命令ブロックからの1つ以上の内部命令を前記実行コアに供給できるよう、前記変換バッファ内に記憶された前記対応する内部命令ブロックを識別するよう、外部命令ブロックのための実行リクエストに応答するリマッパー(remapper)を備えた、データを処理するための装置を提供するものである。
1つ以上の内部命令の複数の内部命令ブロックを変換バッファ内に記憶する工程を備え、前記内部命令ブロックが1つ以上の外部命令のそれぞれの外部命令ブロックのダイナミック変換であり、
更に前記外部命令ブロックのうちの1つの外部にある外部命令に対する実行リクエストに応答し、前記変換バッファ内に記憶された対応する内部命令ブロックを識別する工程と、
前記対応する内部命令ブロックから内部命令を実行するようになっている実行コアへ1つ以上の内部命令を供給する工程とを備えた、データを処理する方法を提供するものである。
・リマッパー内での競合する不一致(conflict misses)に起因し、有効な変換がアクセスできない状態となり得ること。
・フレームを無効にするにはリマッパー内の対応するエントリーを除かなければならない。概念的には、これを行うには変換インデックスからブロックの外部アドレスへの逆マッピングを行わなければならない。
・変換バッファにおいて、外部基本ブロックのエンドアドレスからそのインデックスへのマッピングを維持すること。この構造はリマッパーに類似するが、開始点ではなく、基本ブロックの終了点によってインデクシングされる。変換バッファ内に新しいフレームを入れる前に、同じ終了ポイントを有する変換があるかどうかを見るように、この構造をチェックする。変換が存在する場合、新しい変換と旧い変換のオーバーラップを適切に調和させ、対応する構造内で更新しなければならない。
・ブランチターゲットの仮想−物理アドレスマッピングをすること(TLBルックアップ)。
・キャッシュ内の変換されたフレームを探すためにリマッパーをルックアップすること。
・変換キャッシュのアクセスをすること。
・フレームアライメントをすること。
・問題のフレームが確率の高い特定の別のフレームの実行をフォローし、実行中に例外が生じる可能性が低い場合、トレーススケジューリングのためにマークされたフレームのセットを選択する。
・実行と同時に変換ユニット内でリスケジューリングを行う。
・一旦スペキュレーティブなフレームが発生されると、先行するフレームの予測されたターゲットアドレスとして新しいフレームのアドレスを挿入する。
・ミススペキュレーションを例外のように取り扱う:スペキュレーティブなステートをブローして除去し、最後の既知の良好な非スペキュレーティブステートから実行を再スタートする。
Claims (68)
- 内部命令を実行するようになっている実行コアと、
1つ以上の内部命令のうちの複数の内部命令ブロックを記憶するようになっている変換バッファとを備え、前記内部命令ブロックが1つ以上の外部命令のうちのそれぞれの外部命令ブロックのダイナミックな変換であり、
対応する内部命令ブロックからの1つ以上の内部命令を前記実行コアに供給できるよう、前記変換バッファ内に記憶された前記対応する内部命令ブロックを識別するための前記外部命令ブロックのうちの1つのうちにある、外部命令のための実行リクエストに応答するリマッパーを備えた、データを処理するための装置。 - 前記実行リクエストが外部命令ブロック内の第1外部命令に対するものであり、前記対応する内部命令ブロックからの第1内部命令によってスタートする前記実行コアに前記対応する内部命令ブロックからの内部命令が供給される、請求項1記載の装置。
- 内部命令ブロックがそれぞれの対応する外部命令ブロックに機能的に等価的である、請求項1および2のいずれかに記載の装置。
- 前記外部命令ブロックが可変長である、請求項1、2および3のいずれかに記載の装置。
- 前記内部命令ブロックが可変長である、前の請求項のいずれかに記載の装置。
- 前記内部命令が外部からアクセスできる命令セットの一部である、前の請求項のいずれかに記載の装置。
- 外部命令ブロックがブランチ外部命令によって終了される、前の請求項のいずれかに記載の装置。
- 内部命令ブロックがブランチ内部命令によって終了される、前の請求項のいずれかに記載の装置。
- 前記リマッパーが前記変換バッファ内の外部命令ブロックのアドレスと対応する内部命令ブロックのアドレスとの間のマッピングを識別するマッピングデータを記憶する、前の請求項のいずれかに記載の装置。
- 前記リマッパー内のリマッパーメモリ内に前記マッピングデータが記憶される、請求項9記載の装置。
- 前記リマッパーメモリが複数のリマッパーメモリ部分に分割されており、各リマッパーメモリ部分が前記変換バッファ内のそれぞれの変換バッファ部分に関連しており、前記関連する変換バッファ部分が新しく発生したマッピングデータを取り込むための自由スペースを有しなくなるまで、前記リマッパーメモリ部分の1つが新しく発生されたマッピングデータを受けるように働き、前記関連した変換バッファが新しく発生されたマッピングデータを取り込むための自由スペースを有しなくなると、前記リマッパーメモリ部分の別の部分が選択され、クリアされ、その内部に記憶された新しく発生されたマッピングデータが記憶されると共に新しく発生された内部命令ブロックが関連する変換バッファ部分に記憶されるよう前記リマッパーが作動できる、請求項10記載の装置。
- 前記リマッパーメモリ部分の前記別の部分がラウンドロビンアルゴリズムを使って選択される、請求項11記載の装置。
- 前記内部命令が外部命令間の境界に対応するかどうかを特定する内部命令ブロック内の各内部命令に対する外部命令境界制御データも前記変換バッファが記憶する、前の請求項のいずれかに記載の装置。
- 前記内部命令ブロック内の先行する命令に依存することなく前記内部命令を実行してよいかどうか、を特定する内部命令ブロック内の各内部命令に対する命令非依存制御データ(instruction independence control data)も前記変換バッファが記憶する、前の請求項のいずれかに記載の装置。
- システムステートを破壊することなく、完了前に前記内部命令を終了してよいかどうかを指定する内部命令ブロック内の各内部命令に対する早期終了制御データも前記変換バッファが記憶する、前の請求項のいずれかに記載の装置。
- 前記内部命令ブロックの実行完了時に取り込むべき、予測されたブランチターゲットを指定する各内部命令ブロックに対するブランチ予測データも前記変換バッファが記憶する、前の請求項のいずれかに記載の装置。
- 実行すべき予測された次の内部命令ブロックの前記変換バッファ内でのロケーションを指定する、各内部命令ブロックに対する次のブロックデータも、前記変換バッファが記憶する、前の請求項のいずれかに記載の装置。
- 前記内部命令ブロックの実行に関する統計を指定する各内部命令ブロックに対するコードプロフィル化データも前記変換バッファが記憶する、前の請求項のいずれかに記載の装置。
- 検出された実行行動に応答して記憶された内部命令ブロックに関する前記変換バッファ内に記憶されたデータを更新するようになっている更新器を含む、請求項16、17および18のいずれかに記載の装置。
- 外部命令ブロックを内部命令ブロックに変換するようになっている命令変換器を含む、前の請求項のいずれかに記載の装置。
- 前記命令変換器が、
ハードウェアに基づく命令変換器および
ソフトウェアに基づく命令変換器のうちの1つである、請求項20記載の装置。 - ロックダウン記憶装置内に内部命令ブロックを配置できるロックダウン領域を前記変換バッファが含む、前の請求項のいずれかに記載の装置。
- 前記変換バッファ内に予め記憶された内部命令ブロックが少なくとも一時的に記憶されるレスキューメモリであって、前記変換バッファ内の前記内部命令ブロックを求めているときに不一致が生じた場合、前記内部命令ブロックをアクセスのために利用できる前記レスキューメモリを含む、前の請求項のいずれかに記載の装置。
- 少なくともいくつかの内部命令または内部命令ブロックがプログラム実行フロー内のそれらの位置に先んじてスペキュレーティブに実行される、前の請求項のいずれかに記載の装置。
- 外部命令ブロックを内部命令ブロックに変換するときの、前記外部命令ブロックに関して利用できる実行時間命令に前記命令変換器が応答する、請求項20および21のいずれかに記載の装置。
- 前記命令変換器が、
メモリアドレスを決定すること、
インライン例外ハンドラーを決定すること、
モード変化を除くこと、および
実行時間において一定またはほぼ一定の情報に依存する計算を簡略化することのうちの1つ以上を行うように作動できる、請求項25記載の装置。 - 内部命令ブロックのうちの内部命令の実行中に例外が発生した時、例外取り扱い命令の実行と例外が生じたポイントにおける前記内部命令ブロックの実行の再開を可能とするための例外リターンポインタの記憶とをトリガーするように作動できる例外ハンドラーを含む、前の請求項のいずれかに記載の装置。
- 内部命令ブロックのうちの内部命令の実行中にインターラプトが発生した時、インターラプト取り扱い命令の実行と前記例外が生じたポイントにおける前記内部命令ブロックの実行の再開を可能とするためのインターラプトリターンポインタの記憶とをトリガーするように作動できるインターラプトハンドラーを含む、前の請求項のいずれかに記載の装置。
- 前記リマッパーおよび変換バッファが外部命令ブロックの異なるタイプに対応する内部命令ブロックを記憶するように割り当てられた複数の部分を有する、前の請求項のいずれかに記載の装置。
- 前記リマッパーメモリが外部命令ブロックの異なるタイプに対応するマッピングデータを記憶するように割り当てられた複数の部分を有する、請求項10記載の装置。
- ロックダウン記憶装置内に配置された内部命令ブロックが前記リマッパーにおけるルックアップを低減するようにあらかじめ処理される、請求項22記載の装置。
- 前記変換バッファがプログラム制御によりアクセスできる物理メモリのエリアにアドレスマッピングされる、前の請求項のいずれかに記載の装置。
- リマッパーバイパスブランチ内部命令が前記リマッパーの動作をバイパスするブランチ動作を実行するようになっている、前の請求項のいずれかに記載の装置。
- 1つ以上のリマッパー管理内部メモリが前記リマッパーでの管理動作を実行するようになっている、前の請求項のいずれかに記載の装置。
- 1つ以上の内部命令の複数の内部命令ブロックを変換バッファ内に記憶する工程を備え、前記内部命令ブロックが1つ以上の外部命令のそれぞれの外部命令ブロックのダイナミック変換であり、
更に前記外部命令ブロックのうちの1つの外部にある外部命令に対する実行リクエストに応答し、前記変換バッファ内に記憶された対応する内部命令ブロックを識別する工程と、
前記対応する内部命令ブロックから内部命令を実行するようになっている実行コアへ1つ以上の内部命令を供給する工程とを備えた、データを処理する方法。 - 前記実行リクエストが外部命令ブロック内の第1外部命令に対するものであり、前記対応する内部命令ブロックからの第1内部命令によってスタートする前記実行コアに前記対応する内部命令ブロックからの内部命令が供給される、請求項35記載の方法。
- 内部命令ブロックがそれぞれの対応する外部命令ブロックに機能的に等価的である、請求項35および36のいずれかに記載の方法。
- 前記外部命令ブロックが可変長である、請求項35、36および37のいずれかに記載の方法。
- 前記内部命令ブロックが可変長である、請求項35〜38のいずれかに記載の方法。
- 前記内部命令が外部からアクセスできる命令セットの一部である、請求項35〜39のいずれかに記載の方法。
- 外部命令ブロックがブランチ外部命令によって終了される、請求項35〜40のいずれかに記載の方法。
- 内部命令ブロックがブランチ内部命令によって終了される、請求項35〜41のいずれかに記載の方法。
- 前記変換バッファ内の外部命令ブロックのアドレスと対応する内部命令ブロックのアドレスとの間のマッピングを識別するマッピングデータを記憶する工程を備えた、請求項35〜42のいずれかに記載の方法。
- リマッパーメモリ内に前記マッピングデータが記憶される、請求項43記載の方法。
- 前記リマッパーメモリが複数のリマッパーメモリ部分に分割されており、各リマッパーメモリ部分が前記変換バッファ内のそれぞれの変換バッファ部分に関連しており、前記関連する変換バッファ部分が新しく発生したマッピングデータを取り込むための自由スペースを有しなくなるまで、前記リマッパーメモリ部分の1つが新しく発生されたマッピングデータを受けるように働き、前記関連した変換バッファが新しく発生されたマッピングデータを取り込むための自由スペースを有しなくなると、前記リマッパーメモリ部分の別の部分が選択され、クリアされ、その内部に新しく発生されたマッピングデータが記憶されると共に新しく発生された内部命令ブロックが関連する変換バッファ部分に記憶される、請求項44記載の方法。
- 前記リマッパーメモリ部分の前記別の部分がラウンドロビンアルゴリズムを使って選択される、請求項45記載の方法。
- 前記内部命令が外部命令間の境界に対応するかどうかを特定する内部命令ブロック内の各内部命令に対する外部命令境界制御データも前記変換バッファが記憶する、請求項35〜46のいずれかに記載の方法。
- 前記内部命令ブロック内の先行する命令に依存することなく前記内部命令を実行してよいかどうかを特定する内部命令ブロック内の各内部命令に対する命令非依存制御データも前記変換バッファが記憶する、請求項35〜47のいずれかに記載の方法。
- システムステートを破壊することなく、完了前に前記内部命令を終了してよいかどうかを指定する内部命令ブロック内の各内部命令に対する早期終了制御データも前記変換バッファが記憶する、請求項35〜48のいずれかに記載の方法。
- 前記内部命令ブロックの実行完了時に取り込むべき、予測されたブランチターゲットを指定する各内部命令ブロックに対するブランチ予測データも前記変換バッファが記憶する、請求項35〜49のいずれかに記載の方法。
- 実行すべき予測された次の内部命令ブロックの前記変換バッファ内でのロケーションを指定する、各内部命令ブロックに対する次のブロックデータも、前記変換バッファが記憶する、請求項35〜50のいずれかに記載の方法。
- 前記内部命令ブロックの実行に関する統計を指定する各内部命令ブロックに対するコードプロフィル化データも前記変換バッファが記憶する、請求項35〜51のいずれかに記載の方法。
- 検出された実行行動に応答して、記憶された内部命令ブロックに関する前記変換バッファ内に記憶されたデータを更新することを含む、請求項50、51および52のいずれかに記載の方法。
- 外部命令ブロックを内部命令ブロックに変換することを含む、請求項35〜53のいずれかに記載の方法。
- 前記変換が、
ハードウェアに基づく命令変換器および
ソフトウェアに基づく命令変換器のうちの1つによって実行される、請求項54記載の方法。 - ロックダウン記憶装置内に内部命令ブロックを配置できるロックダウン領域を前記変換バッファが含む、請求項35〜55のいずれかに記載の方法。
- 前記変換バッファ内に予め記憶された内部命令ブロックが少なくとも一時的にレスキューメモリに記憶され、前記変換バッファ内の前記内部命令ブロックを求めているときに不一致が生じた場合、前記レスキューメモリがアクセスのために利用できる、請求項35〜56のいずれかに記載の方法。
- 少なくともいくつかの内部命令または内部命令ブロックがプログラム実行フローと異なる順序でスペキュレーティブにスケジューリングされる、請求項35〜57のいずれかに記載の方法。
- 外部命令ブロックを内部命令ブロックに変換するときの、前記外部命令ブロックに関して利用できる実行時間情報に前記変換が応答する、請求項35〜58のいずれかに記載の方法。
- 前記変換が、
メモリアドレスを決定すること、
インライン例外ハンドラーを決定すること、
モード変化を除くこと、および
実行時間において利用できる情報に依存する計算を簡略化することのうちの1つ以上を行うようになっている、請求項59記載の方法。 - 内部命令ブロックの内部命令を実行する間に例外が発生したときに、例外取り扱い命令の実行をトリガーし、前記例外が生じたポイントで前記内部命令ブロックの実行を再開できるように例外リターンポインタを記憶する、請求項35〜60のいずれかに記載の方法。
- 内部命令ブロックの内部命令を実行中にインターラプトが発生したときに、インターラプト取り扱い命令の実行をトリガーし、前記インターラプトが生じたポイントで前記内部命令ブロックの実行を再開できるようにインターラプトリターンポインタを記憶する、請求項35〜61のいずれかに記載の方法。
- 前記変換バッファが外部命令ブロックの異なるタイプに対応する内部命令ブロックを記憶するように割り当てられた複数の部分を有する、請求項35〜62のいずれかに記載の方法。
- 前記リマッパーメモリが外部命令ブロックの異なるタイプに対応するマッピングデータを記憶するように割り当てられた複数の部分を有する、請求項44記載の方法。。
- ロックダウン記憶装置内に配置された内部命令ブロックが前記リマッパーにおけるルックアップを低減するようにあらかじめ処理される、請求項56記載の方法。
- 前記変換バッファがプログラム制御によりアクセスできる物理メモリのエリアにアドレスマッピングされる、請求項35〜65のいずれかに記載の方法。
- リマッパーバイパスブランチ内部命令が前記リマッパーの動作をバイパスするブランチ動作を実行するようになっている、請求項35〜66のいずれかに記載の方法。
- 1つ以上のリマッパー管理内部命令が前記リマッパーでの管理動作を実行するようになっている、請求項35〜67のいずれかに記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0221916A GB2393274B (en) | 2002-09-20 | 2002-09-20 | Data processing system having an external instruction set and an internal instruction set |
PCT/GB2003/002092 WO2004027601A1 (en) | 2002-09-20 | 2003-05-15 | Data processing system having external and internal instruction sets |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005539321A true JP2005539321A (ja) | 2005-12-22 |
JP3820261B2 JP3820261B2 (ja) | 2006-09-13 |
Family
ID=9944499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004537249A Expired - Fee Related JP3820261B2 (ja) | 2002-09-20 | 2003-05-15 | データ処理システムの外部および内部命令セット |
Country Status (13)
Country | Link |
---|---|
US (1) | US7406585B2 (ja) |
EP (1) | EP1540464B1 (ja) |
JP (1) | JP3820261B2 (ja) |
KR (1) | KR101086801B1 (ja) |
CN (1) | CN1682181B (ja) |
AU (1) | AU2003232331A1 (ja) |
DE (1) | DE60308201T2 (ja) |
GB (1) | GB2393274B (ja) |
IL (1) | IL165987A (ja) |
MY (1) | MY127780A (ja) |
RU (1) | RU2005107713A (ja) |
TW (1) | TWI263169B (ja) |
WO (1) | WO2004027601A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008523471A (ja) * | 2004-12-06 | 2008-07-03 | マイクロソフト コーポレーション | ダイナミックトランスレーションによる先取りコンピュータマルウェアの保護 |
JP2016539423A (ja) * | 2013-11-27 | 2016-12-15 | シャンハイ シンハオ マイクロエレクトロニクス カンパニー リミテッド | 命令セット変換システム及び方法 |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7805710B2 (en) | 2003-07-15 | 2010-09-28 | International Business Machines Corporation | Shared code caching for program code conversion |
GB0316532D0 (en) * | 2003-07-15 | 2003-08-20 | Transitive Ltd | Method and apparatus for partitioning code in program code conversion |
GB2424092A (en) * | 2005-03-11 | 2006-09-13 | Transitive Ltd | Switching between code translation and execution using a trampoline |
US7769983B2 (en) * | 2005-05-18 | 2010-08-03 | Qualcomm Incorporated | Caching instructions for a multiple-state processor |
US7711927B2 (en) * | 2007-03-14 | 2010-05-04 | Qualcomm Incorporated | System, method and software to preload instructions from an instruction set other than one currently executing |
US10621092B2 (en) | 2008-11-24 | 2020-04-14 | Intel Corporation | Merging level cache and data cache units having indicator bits related to speculative execution |
US9672019B2 (en) | 2008-11-24 | 2017-06-06 | Intel Corporation | Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads |
US8533859B2 (en) * | 2009-04-13 | 2013-09-10 | Aventyn, Inc. | System and method for software protection and secure software distribution |
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 |
US9201652B2 (en) | 2011-05-03 | 2015-12-01 | Qualcomm Incorporated | Methods and apparatus for storage and translation of entropy encoded software embedded within a memory hierarchy |
US9092236B1 (en) * | 2011-06-05 | 2015-07-28 | Yong-Kyu Jung | Adaptive instruction prefetching and fetching memory system apparatus and method for microprocessor system |
US10120692B2 (en) | 2011-07-28 | 2018-11-06 | Qualcomm Incorporated | Methods and apparatus for storage and translation of an entropy encoded instruction sequence to executable form |
US9417855B2 (en) | 2011-09-30 | 2016-08-16 | Intel Corporation | Instruction and logic to perform dynamic binary translation |
WO2013104107A1 (en) | 2012-01-10 | 2013-07-18 | Intel Corporation | Isa bridging with callback |
US10146545B2 (en) | 2012-03-13 | 2018-12-04 | Nvidia Corporation | Translation address cache for a microprocessor |
US9880846B2 (en) | 2012-04-11 | 2018-01-30 | Nvidia Corporation | Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries |
CN103377033B (zh) * | 2012-04-12 | 2016-01-13 | 无锡江南计算技术研究所 | 运算核心及其指令管理方法 |
US10241810B2 (en) | 2012-05-18 | 2019-03-26 | Nvidia Corporation | Instruction-optimizing processor with branch-count table in hardware |
US8856769B2 (en) * | 2012-10-23 | 2014-10-07 | Yong-Kyu Jung | Adaptive instruction prefetching and fetching memory system apparatus and method for microprocessor system |
US20140189310A1 (en) | 2012-12-27 | 2014-07-03 | Nvidia Corporation | Fault detection in instruction translations |
US10108424B2 (en) | 2013-03-14 | 2018-10-23 | Nvidia Corporation | Profiling code portions to generate translations |
US9891936B2 (en) | 2013-09-27 | 2018-02-13 | Intel Corporation | Method and apparatus for page-level monitoring |
CN104679481B (zh) * | 2013-11-27 | 2020-04-28 | 上海芯豪微电子有限公司 | 一种指令集转换系统和方法 |
CN104915180B (zh) * | 2014-03-10 | 2017-12-22 | 华为技术有限公司 | 一种数据操作的方法和设备 |
US20160378488A1 (en) * | 2015-06-26 | 2016-12-29 | Microsoft Technology Licensing, Llc | Access to target address |
US10346168B2 (en) | 2015-06-26 | 2019-07-09 | Microsoft Technology Licensing, Llc | Decoupled processor instruction window and operand buffer |
US11755484B2 (en) | 2015-06-26 | 2023-09-12 | Microsoft Technology Licensing, Llc | Instruction block allocation |
US10120688B2 (en) | 2016-11-15 | 2018-11-06 | Andes Technology Corporation | Data processing system and method for executing block call and block return instructions |
CN108988931B (zh) * | 2018-06-26 | 2020-10-09 | 上海卫星工程研究所 | 卫星测控协处理器 |
US10924481B2 (en) | 2018-11-06 | 2021-02-16 | Bank Of America Corporation | Processing system for providing console access to a cyber range virtual environment |
US10958670B2 (en) | 2018-11-06 | 2021-03-23 | Bank Of America Corporation | Processing system for providing console access to a cyber range virtual environment |
US10901878B2 (en) | 2018-12-19 | 2021-01-26 | International Business Machines Corporation | Reduction of pseudo-random test case generation overhead |
US10972789B2 (en) | 2019-06-03 | 2021-04-06 | At&T Intellectual Property I, L.P. | Methods, systems, and devices for providing service differentiation for different types of frames for video content |
US11698789B2 (en) | 2020-10-12 | 2023-07-11 | Microsoft Technology Licensing, Llc | Restoring speculative history used for making speculative predictions for instructions processed in a processor employing control independence techniques |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US66081A (en) * | 1867-06-25 | Improvement in chucks | ||
EP0459232B1 (en) * | 1990-05-29 | 1998-12-09 | National Semiconductor Corporation | Partially decoded instruction cache and method therefor |
US5249286A (en) * | 1990-05-29 | 1993-09-28 | National Semiconductor Corporation | Selectively locking memory locations within a microprocessor's on-chip cache |
US5560013A (en) * | 1994-12-06 | 1996-09-24 | International Business Machines Corporation | Method of using a target processor to execute programs of a source architecture that uses multiple address spaces |
US5742802A (en) * | 1996-02-16 | 1998-04-21 | International Business Machines Corporation | Method and system for efficiently mapping guest instruction in an emulation assist unit |
US6711667B1 (en) * | 1996-06-28 | 2004-03-23 | Legerity, Inc. | Microprocessor configured to translate instructions from one instruction set to another, and to store the translated instructions |
US6012125A (en) * | 1997-06-20 | 2000-01-04 | Advanced Micro Devices, Inc. | Superscalar microprocessor including a decoded instruction cache configured to receive partially decoded instructions |
US6216206B1 (en) * | 1997-12-16 | 2001-04-10 | Intel Corporation | Trace victim cache |
US6112280A (en) * | 1998-01-06 | 2000-08-29 | Hewlett-Packard Company | Method and apparatus for distinct instruction pointer storage in a partitioned cache memory |
US6233678B1 (en) * | 1998-11-05 | 2001-05-15 | Hewlett-Packard Company | Method and apparatus for profiling of non-instrumented programs and dynamic processing of profile data |
US6223254B1 (en) * | 1998-12-04 | 2001-04-24 | Stmicroelectronics, Inc. | Parcel cache |
GB2348305A (en) * | 1999-03-24 | 2000-09-27 | Int Computers Ltd | Instruction execution mechanism |
US6363336B1 (en) * | 1999-10-13 | 2002-03-26 | Transmeta Corporation | Fine grain translation discrimination |
US6351802B1 (en) * | 1999-12-03 | 2002-02-26 | Intel Corporation | Method and apparatus for constructing a pre-scheduled instruction cache |
US20020066081A1 (en) * | 2000-02-09 | 2002-05-30 | Evelyn Duesterwald | Speculative caching scheme for fast emulation through statically predicted execution traces in a caching dynamic translator |
US6718440B2 (en) * | 2001-09-28 | 2004-04-06 | Intel Corporation | Memory access latency hiding with hint buffer |
US6920550B2 (en) * | 2001-11-15 | 2005-07-19 | Hewlett-Packard Development Company, L.P. | System and method for decoding and executing program binaries |
-
2002
- 2002-09-20 GB GB0221916A patent/GB2393274B/en not_active Expired - Fee Related
-
2003
- 2003-05-15 AU AU2003232331A patent/AU2003232331A1/en not_active Abandoned
- 2003-05-15 EP EP03797358A patent/EP1540464B1/en not_active Expired - Lifetime
- 2003-05-15 KR KR1020057004548A patent/KR101086801B1/ko not_active IP Right Cessation
- 2003-05-15 DE DE60308201T patent/DE60308201T2/de not_active Expired - Lifetime
- 2003-05-15 JP JP2004537249A patent/JP3820261B2/ja not_active Expired - Fee Related
- 2003-05-15 CN CN038221713A patent/CN1682181B/zh not_active Expired - Fee Related
- 2003-05-15 WO PCT/GB2003/002092 patent/WO2004027601A1/en active IP Right Grant
- 2003-05-15 RU RU2005107713/09A patent/RU2005107713A/ru not_active Application Discontinuation
- 2003-06-13 MY MYPI20032221A patent/MY127780A/en unknown
- 2003-07-01 US US10/609,538 patent/US7406585B2/en not_active Expired - Fee Related
- 2003-09-18 TW TW092125828A patent/TWI263169B/zh not_active IP Right Cessation
-
2004
- 2004-12-26 IL IL165987A patent/IL165987A/en not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008523471A (ja) * | 2004-12-06 | 2008-07-03 | マイクロソフト コーポレーション | ダイナミックトランスレーションによる先取りコンピュータマルウェアの保護 |
JP2016539423A (ja) * | 2013-11-27 | 2016-12-15 | シャンハイ シンハオ マイクロエレクトロニクス カンパニー リミテッド | 命令セット変換システム及び方法 |
Also Published As
Publication number | Publication date |
---|---|
MY127780A (en) | 2006-12-29 |
TW200410143A (en) | 2004-06-16 |
EP1540464A1 (en) | 2005-06-15 |
WO2004027601A1 (en) | 2004-04-01 |
CN1682181A (zh) | 2005-10-12 |
GB2393274A (en) | 2004-03-24 |
RU2005107713A (ru) | 2005-11-20 |
EP1540464B1 (en) | 2006-09-06 |
DE60308201D1 (de) | 2006-10-19 |
CN1682181B (zh) | 2010-05-26 |
TWI263169B (en) | 2006-10-01 |
KR20050084558A (ko) | 2005-08-26 |
IL165987A (en) | 2010-05-31 |
AU2003232331A1 (en) | 2004-04-08 |
GB0221916D0 (en) | 2002-10-30 |
US20040059897A1 (en) | 2004-03-25 |
DE60308201T2 (de) | 2007-08-23 |
KR101086801B1 (ko) | 2011-11-25 |
IL165987A0 (en) | 2006-01-15 |
JP3820261B2 (ja) | 2006-09-13 |
US7406585B2 (en) | 2008-07-29 |
GB2393274B (en) | 2006-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3820261B2 (ja) | データ処理システムの外部および内部命令セット | |
US11954036B2 (en) | Prefetch kernels on data-parallel processors | |
CN106716362B (zh) | 用于将微指令序列重排序为优化的微指令序列以实现指令集不可知的运行时架构的分配和发出级 | |
US9483267B2 (en) | Exploiting an architected last-use operand indication in a system operand resource pool | |
US9652230B2 (en) | Computer processor employing dedicated hardware mechanism controlling the initialization and invalidation of cache lines | |
US10409763B2 (en) | Apparatus and method for efficiently implementing a processor pipeline | |
US9311095B2 (en) | Using register last use information to perform decode time computer instruction optimization | |
US11176055B1 (en) | Managing potential faults for speculative page table access | |
JP6690812B2 (ja) | 複数の変換テーブルを用いた命令セットアグノスティックランタイムアーキテクチャの実施 | |
US9690589B2 (en) | Computer instructions for activating and deactivating operands | |
US20060179236A1 (en) | System and method to improve hardware pre-fetching using translation hints | |
JP6690811B2 (ja) | ランアヘッドランタイムゲスト命令変換/デコードプロセスと、ゲストコードが、命令シーケンスにおけるゲスト分岐のターゲットからプリフェッチされるプリフェッチプロセスとを実施するシステム変換器 | |
US6345351B1 (en) | Maintenance of speculative state of parallel executed jobs in an information processing system | |
JP6690813B2 (ja) | 変換ルックアサイドバッファを用いた命令セットアグノスティックランタイムアーキテクチャの実施 | |
US8667258B2 (en) | High performance cache translation look-aside buffer (TLB) lookups using multiple page size prediction | |
CN107077371B (zh) | 用于不可知的运行时架构的系统、微处理器和计算机系统 | |
JP6683321B2 (ja) | ゲストイメージからのコードを実行するための実行時オプティマイザを実行するシステム変換器 | |
US6892280B2 (en) | Multiprocessor system having distributed shared memory and instruction scheduling method used in the same system | |
US6820254B2 (en) | Method and system for optimizing code using an optimizing coprocessor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060530 |
|
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: 20060602 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060616 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090623 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100623 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100623 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110623 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110623 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120623 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |