JP3579414B2 - 投機的な実行を用いたアウトオブオーダー・プロセッサにおける精密な例外を配達する機構 - Google Patents
投機的な実行を用いたアウトオブオーダー・プロセッサにおける精密な例外を配達する機構 Download PDFInfo
- Publication number
- JP3579414B2 JP3579414B2 JP2002504587A JP2002504587A JP3579414B2 JP 3579414 B2 JP3579414 B2 JP 3579414B2 JP 2002504587 A JP2002504587 A JP 2002504587A JP 2002504587 A JP2002504587 A JP 2002504587A JP 3579414 B2 JP3579414 B2 JP 3579414B2
- Authority
- JP
- Japan
- Prior art keywords
- exception
- instruction
- class
- exceptions
- scheduler
- 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
- 230000007246 mechanism Effects 0.000 title description 4
- 238000000034 method Methods 0.000 claims description 28
- 230000011664 signaling Effects 0.000 claims description 13
- 230000008569 process Effects 0.000 description 8
- 239000000872 buffer Substances 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008054 signal transmission 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Description
【発明の属する技術分野】
本発明は、投機的な実行を用いたアウトオブオーダー・プロセッサにおける精密な例外を配達する機構に関する。特に本発明は、アウトオブオーダー・プロセッサにおいて発生する例外のイベントが、精密に報告され、処理されることができる、投機的な実行を用いたアウトオブオーダー・プロセッサにおける精密な例外を配達する機構に関する。
【0002】
【従来の技術】
コンピュータプロセッサは、コンピュータプログラムからの命令を翻訳して実行する演算、論理、及び制御回路を含む。プロセッサの性能を向上するために、設計者は、演算を速くすることと、更に多くの演算を並列に処理するという2つの主なゴールを捜し求めてきた。演算を速くすることは、様様な方法で取り組むことができる。例えば、半導体プロセスの向上により、トランジスタのスイッチ速度を速くすることにより、信号の伝達速度を速くしてもよい。実行ユニットの待ち時間は、設計においてトランジスタの数を増やすことにより減少することができる。速度を速めるために、与えられた機能の実施するために設計上必要とされる論理のレベルを最小にすることができる。更に多くの演算を並列に実行するためには、設計者は、主にパイプライン及びスーパースカラ技術の一つ、又は組み合わせ頼る。パイプラインされたプロセッサは、共通の実行資源を用いて時間方向に複数の命令をオーバーラップさせる。スーパースカラ・プロセッサは、別々の資源を用いて空間方向に複数の命令をオーバーラップさせる。
【0003】
パイプラインストールは、並列処理に関して主な性能阻害因子である。ストールは、データ依存の状態、プログラムのフローの変化、及びハードウェア資源の衝突から生じる。たまに、パイプラインストールは、命令の組について実行の順序を再配置することにより避けることができる。静的に命令をリスケジュールするためにコンパイラーを、使用することができる。しかしながら、実行時情報の不完全な知識は、静的リスケジュールの効果を減少する。インオーダー・プロセッサ、すなわち厳密なプログラムの順序で命令を発行し、実行し、完了し、リタイアするプロセッサは、静的リスケジュールに完全に依存しなければならないので、パイプラインストールになりやすい。
【0004】
【発明が解決しようとする課題】
その結果、設計者は、アウトオブオーダー・プロセッサを使用して動的命令リスケジュールを実施することを求めるようになった。最も単純なアウトオブオーダー・プロセッサは、順番に命令を発行するが、アウトオブオーダーに命令が実行及び完了されることを許容する。対応する命令がリタイアする前に結果をリオーダーするために、これらの単純なアウトオブオーダー・プロセッサでさえも複雑なハードウェアを必要とする。厳密な結果の順序は、データフローの観点から必要とされない。しかし、このような順序付けは、精密な例外を維持し、誤って予測された投機的な実行から回復するために必要である。
【0005】
よく知られたリオーダーの方法は、リオーダーバッファ、すなわちプログラムの順序でレジスター・ファイルに書き込まれるまで結果を維持するバッファ、の使用によるものである。設計者は、ヒストリーバッファ及びフューチャーファイルなどの、他のタイプのリオーダーハードウェアをも使用する。ヒストリーバッファは、ソースオペランドの履歴を記録し、プロセッサが精密なアーキテクチャ状態に復帰することを可能とする。そして、フューチャーファイルは、現在の状態及びアーキテクチャ状態を別のレジスタ・ファイルに保持し、プロセッサが正確なチェックポイントの状態に復帰することを可能とする。
【0006】
分岐予測及び投機的な実行は、パイプラインストールを減少するために用いられる追加的な技術である。パイプラインされたプロセッサにおいて、条件付の分岐の結果は、しばしば続きの命令をフェッチした後に決定される。従って、解決されていない分岐の正確な方向を予測することができれば、使用される可能性が高い、十分な命令を、命令キューに保持することができる。いくつかのプロセッサでは、命令は、解決されていない条件付の分岐を越えて、投機的に実際に実行される。分岐が予測された方向に進行しているときに、この技術は、パイプラインストールを完全に回避する。一方、分岐方向が誤って予測された場合は、パイプラインは、フラッシュされ、命令のフェッチは方向を変えられ、パイプラインは再び満たさなければならない。
【0007】
命令の例外、すなわち与えられた命令のために正規の処理を一時停止するイベント、を効果的に処理し、取り扱うことも重要である。命令に例外が生じたとき、制御フローは一時的にトラップハンドラーを通るように変更される。トラップハンドラーは、例外の原因を調査し、例外を取り除くために必要な全てのプロセスを完了するルーチンである。一般的にプロセッサは、トラップハンドラーにより必要とされる情報を格納する。この情報は、実行されているプログラムの現在の状態、例外のソースの識別情報などを含む。
【0008】
命令の例外は、比較的まれである。しかしながら、もし遭遇した場合、命令が実行される前のままの、プロセッサの状態を精密に保存しておくことは、極めて有用である。このような精密な例外は、トラップハンドラーによる例外の診断を容易にすることを許容する。しかしながら、例外と遭遇しない状態で、一般的なケースの速度をおとさずに精密な例外を達成することは困難な作業である。これは、例外を発生する命令が非常に若い場合に、すなわち他の命令よりも最近にフェッチされた命令である場合においても、発行され、実行されるアウトオブオーダー・プロセッサにおいて特に言えることである。
【0009】
図1を参照して、典型的なコンピュータシステムは、CPU12、ロード/ストア部14、ボード上のキャッシュメモリ16を特に有するマイクロプロセッサ10を含む。マイクロプロセッサ10は、共にデータ及びマイクロプロセッサ10により実行されるべきプログラム命令を保持する外部のキャッシュメモリ17及びメインメモリ18に接続される。内部的には、プログラム命令の実行は、CPU12により行われる。命令を実行するためにCPU12が必要とするデータは、ロード/ストア部14によりフェッチされ、CPU12の内部レジスタ15にロードされる。メモリキュー(不図示)は、未解決のメモリー要求のリストを維持する。ロード/ストア部は、メモリキューに要求を追加し、更にメモリキューからの値をレジスタにロードする。CPU12からのコマンドを受けて、ロード/ストア部14は、まず高速なオンボードのキャッシュメモリ16で、次に外部のキャッシュメモリ17で、最後に遅いメインメモリ18でデータを探す。キャッシュメモリ内のデータを見つけることは、「ヒット」と呼ばれる。キャッシュメモリ内のデータを見つけることができないことは、「ミス」と呼ばれる。
【0010】
【課題を解決するための手段】
一つの態様では、プロセッサにおける例外を処理する方法は、例外を検出したときに状態を設定するステップと、状態が設定された場合に、例外のためのトラップを合図するステップと、トラップを合図する前に、例外のクラスに基づいて異なるように例外を処理するステップとを備える。
【0011】
方法は、例外のためのトラップを合図する前に、例外のクラスに基づいて、例外を発生する命令をリプレイするステップを備えてもよい。方法は、例外を発生する命令が、リタイアしていない最古の命令となった後に、例外を発生する命令をリプレイするステップを備えてもよい。方法は、例外を発生する命令が、リタイアしていない最古の命令となった後に、例外のためのトラップを合図するステップを備えてもよい。方法は、例外を発生する命令を、当該命令が発行されることなく完了したとしてマーキングするステップを備えてもよい。
【0012】
一つの態様では、プロセッサにおいて例外を処理するための装置は、例外を検出したときに状態を設定するため及び状態が設定された場合に例外のためのトラップを合図するための命令スケジューラを備える。命令スケジューラは、トラップを合図する前に、例外のクラスに基づいて、異なるように例外を処理する。
【0013】
命令スケジューラは、例外のためのトラップを合図する前に、例外のクラスに基づいて例外を発生する命令をリプレイしてもよい。命令スケジューラは、例外を発生する命令が、リタイアしていない最古の命令となった後に、例外を発生する命令をリプレイしてもよい。命令スケジューラは、更に、例外を発生する命令が、リタイアしていない最古の命令となった後に、例外のためのトラップを合図してもよい。命令スケジューラは、例外を発生する命令を、当該命令が発行されることなく完了したとしてマーキングしてもよい。
【0014】
一つの態様では、プロセッサにおいて例外を処理するための装置は、例外を検出したときに状態を設定する手段と、状態が設定された場合に、例外のためのトラップを合図する手段と、トラップを合図する前に、例外のクラスに基づいて、異なるように例外を処理する手段とを備える。
【0015】
他の態様及び発明の長所は、下記及び添付の請求項から明らかである。
【0016】
【発明の実施の形態】
様様な発明の形態を、付随する図面を参照して説明する。図2を参照して、一般的に、一つ又は更に多くの実施形態では、発明は、フェッチ部11及び命令スケジューラ13を有するプロセッサの設計において具体化されることができる。命令スケジューラ13は、発行部15及びリタイアロジック17を含む。発行部15は、命令発行前の処理を行い命令を発行する。一方、リタイアロジック17は、命令発行後の処理を行う。後で更に詳細に説明するように、フロントエンド例外は、例外の要因となった命令を発行する前に発生し、当該命令の発行を止める。一方、バックエンド例外は、例外を発生する命令が発行された後に処理される。
【0017】
フェッチ部11は、命令をフェッチし、フェッチされた命令19を、命令スケジューラ13に渡す。命令スケジューラ13の発行部15は、次にフェッチされた命令19を、発行された命令21として発行する。発行された命令は、実行部23に送られ、次に、リタイアするためにリタイアロジック17に戻る。命令と関連する例外がいつ発生するかに従って、例外の処理は、異なる一連のステップを通して進行する。例外がフロントエンド例外である場合、フェッチ部は、例外を検出して、適切なビットをマークする。例外がバックエンド例外である場合、実行部は、例外を検出して、適切なビットをマークする。例外の処理するためにとられる手段及びマークされたビットを、図3を参照して以下に説明する。いかなる場合であっても、命令スケジューラ13は、検出された例外をフェッチ部11に伝達し、それが次にトラップハンドラー(不図示)を呼ぶ。トラップハンドラーは、例外を解決するためのソフトウェアツールである。トラップハンドラーを呼ぶためにフェッチ部11に例外の発生を伝達する場合、これを、トラップを合図すると呼ぶ。当業者は、複数の命令が同時にフェッチされてもよく、また、プロセッサの設計によっては上述の機能が他のユニットにより実現されてもよいことを認識できるであろう。
【0018】
図3を参照して、一つの実施形態によるアウトオブオーダー・プロセッサにおける精密な例外の報告を可能にするプロセスを示す。第1に、例外を受理したときに(ステップ20)、例外は、クラスが割り当てられる(ステップ22)。示された例では、各例外は、2つの可能なクラスのうちの一つが割り当てられる。例外は、例外のタイプに基づいてフロントエンド例外又はバックエンド例外のいずれかである。当業者は、多くの変形が可能であること、一例のプロセスとしては、クラスの一つを検出するステップ(例えばフロントエンド例外)及び他にデフォルトするステップ(バックエンド例外)を含むもの、を認識できるであろう。フロントエンド例外は、発行キュー又は複数のキュー中に命令が挿入される前に検出される。これらの例外は、典型的に非常に高い優先順位であり、従って、その命令のために全ての他の可能な例外に先行して取られる。一方、バックエンド例外は、命令が実行部に発行された後で発生する。本質的に、フロントエンド例外は、命令を発行する前に発生し、当該命令の発行を止める。一方、バックエンド例外は、命令の発行後に生じるものである。
【0019】
従って、プロセスは、例外がフロントエンド例外であるか否かを決定することにより継続する(ステップ24)。そうであれば、精密な方法でフロントエンド例外が報告されることを保証するために、命令発行ロジックが命令を発行しないようなやり方で、命令はマークされる。これは、間違っていることが既に知られている命令が、発行、実行、又はリタイアにより他のいかなる状態にも壊れないことを保証する。このような命令が、命令キューに入るとき、命令は、例外を有するが、完了したとしてマークされる(ステップ26)。例外を有さず、完了したとマークされた命令が、ついにはリタイアする。例外を有し、完了したとマークされた命令が、一旦リタイアしていない最古の命令(ステップ28)になると、例外が報告され(ステップ30)、プロセッサの状態は、全ての古い命令の実行のみを反映する。
【0020】
バックエンド例外を発生する命令は、アウトオブオーダーに発行され完了されるので、更に複雑である。従って、バックエンド例外に遭遇した場合、例外リプレイ・ビット、例えば命令キュー中の命令のエントリー中のビット、がバックエンド例外を生成する命令のために設定される(ステップ32)。プロセッサ内で、命令がリタイアしていない最古の命令となるまで、他のいかなるアクションも取られない(ステップ34)。一旦、命令がリタイアしていない最古の命令となると、命令は再発行又はリプレイされる(ステップ36)。もし、リプレイ時に、例外が生成されない場合(ステップ37)、命令は正常にリタイアすることを許され、プロセスは終了する。一方、リプレイ中に例外が生成された場合、命令が完了したときに例外情報は、記録される(ステップ38)。例外を生成する命令をリプレイすることは、使用されるトラップ情報を記録するための単一のレジスタを許容する。当業者は、他の方法によれば、命令毎に一つのレジスタが必要となる可能性があることを認識するであろう。また、例外のリプレイは、不正確な投機的処理、データキャッシュミス等により、命令リタイアロジックの外部で維持されるエラーレジスタが、壊れないことを保証する。最後に、命令フェッチロジックにトラップが通知され、トラップハンドラーをフェッチする前に、全ての命令がフラッシュされる(ステップ40)。
【0021】
もし、何らかの理由で、命令を2回実行することができなかった場合、実行部は、これを検出して、例外ビットに付随する「例外をリプレイしないこと」のビットを設定する。リタイアロジックは、「例外をリプレイしないこと」のビットが設定されているときに、単純に命令をリプレイしない。これは、I/Oスペースへのロード/ストア操作などの副作用を有する命令において必要とされる。更に、もし命令が再発行されたときに、命令が例外に遭遇しなかった場合、命令は正常にリタイアすることを許されることを特筆する。例外ビット及び例外リプレイ・ビットが、同一のビットを用いて実行されること、及び、このような場合、タイミング又は例外検出のソースの違いは、どのアクションを取るべきか命じるために用いられることを、当業者は認識できるであろう。
【0022】
フロントエンド例外のペンディング中に、古い命令により生成された、全てのバックエンド例外により、フロントエンド例外が、オーバーライトされる可能性がある。これは、トラップがプログラムの順序で合図される必要があるからである。従って、古い命令からのバックエンド例外に遭遇した場合、バックエンド例外は、どの若いフロントエンド例外よりも前に処理されなければならない。また、2つの例外が互いに関連しない場合、一旦バックエンド例外のためのトラップハンドラーが完了して、若い命令が再フェッチされると、フロントエンド例外は、再び報告される。
【0023】
命令が発行される度に、プロセッサのリネーム状態が変更されるが、プロセッサのアーキテクチャの状態は変更されないことを特筆することは、重要である。これは、例外が精密な方法で報告されることを許容する。レジスタリネーム以外の機構も適切であるが、トラップハンドラーがフェッチされる前に、プロセッサの正確なアーキテクチャの状態がレストアされることが必要であることを、当業者は認識できるであろう。
【0024】
本発明は、下記の一つ又は更に多くの長所を含む。アウトオブオーダー・プロセッサにおいて発生する例外のイベントが、精密に報告され、処理されることができる。検出及びマーキングの点から見て、フロントエンド例外は、発行されない。更に、バックエンド例外がリプレイされ、単一のフロントエンド例外のみが一時に処理されるので、単一のトラップレジスタのみが必要である。
【0025】
本発明は、限られた数の実施形態に関して説明されたが、当業者は、ここに開示された発明の範囲から離れずに、他の実施形態が考案され得ることを認識できるであろう。従って、発明の範囲は、添付された請求項のみにより限定されるべきである。
【0026】
【発明の効果】
上記説明から明らかなように、本発明によればアウトオブオーダー・プロセッサにおいて発生する例外のイベントが、精密に報告され、処理されることができる。
【図面の簡単な説明】
【図1】典型的なコンピュータシステムを示す。
【図2】本発明の実施形態に従ったブロック図である。
【図3】本発明の実施形態に従ったプロセスを示すフローチャートである。
【符号の説明】
11 フェッチ部、13 命令スケジューラ、14 ロード/ストア部、15 発行部、17 リタイアロジック、18 メインメモリ、19 フェッチされた命令、21 発行された命令、23 実行部
Claims (12)
- プロセッサにおける命令の例外を処理する方法であって、
前記命令の例外を検出し、
前記命令の例外がいつ発生するかに従って、前記例外にクラスを割り当て、
前記例外のクラスがバックエンド例外である場合に、前記バックエンド例外を発生する、リタイアしていない前記命令をリプレイし、
前記例外のためのトラップを合図する
方法。 - 前記バックエンド例外を発生する前記命令のリプレイ中に例外が発生した場合に、例外情報を記録する請求項1記載の方法。
- 前記バックエンド例外を発生する前記命令のリプレイ中に例外が発生しない場合に、当該命令を正常にリタイアさせる請求項1記載の方法。
- 前記バックエンド例外を発生する命令が、リタイアしていない最古の命令となった後に、当該命令をリプレイする請求項1から請求項3のいずれかに記載の方法。
- 前記例外のクラスがフロントエンド例外である場合に、前記フロントエンド例外を発生する前記命令を、例外を有するが完了した命令であるとしてマーキングする請求項1から請求項4のいずれかに記載の方法。
- プロセッサにおける命令の例外を処理する方法であって、
命令の例外を検出し、
命令の例外がいつ発生するかに従って、前記例外にクラスを割り当て、
前記例外のクラスがフロントエンド例外である場合に、前記フロントエンド例外を発生する前記命令が発行されないように、例外を有するが完了した命令であるとしてマーキングし、
前記例外のためのトラップを合図する
方法。 - プロセッサにおいて命令の例外を処理するための装置であって、
前記命令の例外を検出する手段と、
前記命令の例外がいつ発生するかに従って割り当てられた前記例外のクラスに基づいて、前記例外を処理する命令スケジューラを備え、
前記命令スケジューラは、前記例外のクラスがバックエンド例外である場合に、前記バックエンド例外を発生する、リタイアしていない前記命令をリプレイする
装置。 - 前記命令スケジューラは、前記バックエンド例外を発生する前記命令のリプレイ中に例外が発生した場合に、例外情報を記録する請求項7記載の装置。
- 前記命令スケジューラは、前記バックエンド例外を発生する前記命令のリプレイ中に例外が発生しない場合に、当該命令を正常にリタイアさせる請求項7記載の装置。
- 前記命令スケジューラは、前記バックエンド例外を発生する命令が、リタイアしていない最古の命令となった後に、当該命令をリプレイする請求項7から請求項9のいずれかに記載の装置。
- 前記命令スケジューラは、前記例外のクラスがフロントエンド例外である場合に、前記フロントエンド例外を発生する前記命令を、例外を有するが完了した命令であるとしてマーキングする請求項7から請求項10のいずれかに記載の装置。
- プロセッサにおける命令の例外を処理する装置であって、
前記命令の例外を検出する手段と、
前記命令の例外がいつ発生するかに従って割り当てられた前記例外のクラスに基づいて、前記例外を処理する命令スケジューラを備え、
前記命令スケジューラは、前記例外のクラスがフロントエンド例外である場合に、前記フロントエンド例外を発生する前記命令が発行されないように、例外を有するが完了した命令であるとしてマーキングし、
前記例外のためのトラップを合図する
装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/599,227 US6615343B1 (en) | 2000-06-22 | 2000-06-22 | Mechanism for delivering precise exceptions in an out-of-order processor with speculative execution |
PCT/US2001/020148 WO2001098895A1 (en) | 2000-06-22 | 2001-06-22 | Mechanism for delivering precise exceptions in an out-of-order processor with speculative execution |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004501471A JP2004501471A (ja) | 2004-01-15 |
JP3579414B2 true JP3579414B2 (ja) | 2004-10-20 |
Family
ID=24398778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002504587A Expired - Fee Related JP3579414B2 (ja) | 2000-06-22 | 2001-06-22 | 投機的な実行を用いたアウトオブオーダー・プロセッサにおける精密な例外を配達する機構 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6615343B1 (ja) |
EP (1) | EP1301858A1 (ja) |
JP (1) | JP3579414B2 (ja) |
KR (1) | KR20030019451A (ja) |
AU (1) | AU2001272988A1 (ja) |
WO (1) | WO2001098895A1 (ja) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1109096A3 (en) * | 1999-12-17 | 2004-02-11 | Fujitsu Limited | Processor and method of controlling the same |
US7124285B2 (en) * | 2001-03-29 | 2006-10-17 | Intel Corporation | Peak power reduction when updating future file |
US7409500B2 (en) * | 2004-01-13 | 2008-08-05 | Hewlett-Packard Development Company, L.P. | Systems and methods for employing speculative fills |
US7380107B2 (en) * | 2004-01-13 | 2008-05-27 | Hewlett-Packard Development Company, L.P. | Multi-processor system utilizing concurrent speculative source request and system source request in response to cache miss |
US7409503B2 (en) * | 2004-01-13 | 2008-08-05 | Hewlett-Packard Development Company, L.P. | Register file systems and methods for employing speculative fills |
US7406565B2 (en) * | 2004-01-13 | 2008-07-29 | Hewlett-Packard Development Company, L.P. | Multi-processor systems and methods for backup for non-coherent speculative fills |
US7360069B2 (en) * | 2004-01-13 | 2008-04-15 | Hewlett-Packard Development Company, L.P. | Systems and methods for executing across at least one memory barrier employing speculative fills |
US7376794B2 (en) * | 2004-01-13 | 2008-05-20 | Hewlett-Packard Development Company, L.P. | Coherent signal in a multi-processor system |
US7383409B2 (en) | 2004-01-13 | 2008-06-03 | Hewlett-Packard Development Company, L.P. | Cache systems and methods for employing speculative fills |
US8301844B2 (en) * | 2004-01-13 | 2012-10-30 | Hewlett-Packard Development Company, L.P. | Consistency evaluation of program execution across at least one memory barrier |
US8281079B2 (en) * | 2004-01-13 | 2012-10-02 | Hewlett-Packard Development Company, L.P. | Multi-processor system receiving input from a pre-fetch buffer |
US7340565B2 (en) * | 2004-01-13 | 2008-03-04 | Hewlett-Packard Development Company, L.P. | Source request arbitration |
US7240165B2 (en) * | 2004-01-15 | 2007-07-03 | Hewlett-Packard Development Company, L.P. | System and method for providing parallel data requests |
US7962696B2 (en) * | 2004-01-15 | 2011-06-14 | Hewlett-Packard Development Company, L.P. | System and method for updating owner predictors |
US7627857B2 (en) | 2004-11-15 | 2009-12-01 | International Business Machines Corporation | System and method for visualizing exception generation |
US7475232B2 (en) * | 2005-07-19 | 2009-01-06 | International Business Machines Corporation | Performance of an in-order processor by no longer requiring a uniform completion point across different execution pipelines |
US8447962B2 (en) * | 2009-12-22 | 2013-05-21 | Intel Corporation | Gathering and scattering multiple data elements |
US7984273B2 (en) | 2007-12-31 | 2011-07-19 | Intel Corporation | System and method for using a mask register to track progress of gathering elements from memory |
US10387151B2 (en) | 2007-12-31 | 2019-08-20 | Intel Corporation | Processor and method for tracking progress of gathering/scattering data element pairs in different cache memory banks |
US7921280B2 (en) * | 2008-06-27 | 2011-04-05 | Intel Corporation | Selectively powered retirement unit using a partitioned allocation array and a partitioned writeback array |
US10175990B2 (en) | 2009-12-22 | 2019-01-08 | Intel Corporation | Gathering and scattering multiple data elements |
KR101006545B1 (ko) * | 2009-12-22 | 2011-01-07 | (주)유니트엔지니어링 | 외측 종방향 리브부재 및 내부보강판을 이용한 강박스 거더를 이용한 교량시공방법 |
US9626333B2 (en) | 2012-06-02 | 2017-04-18 | Intel Corporation | Scatter using index array and finite state machine |
US8972697B2 (en) | 2012-06-02 | 2015-03-03 | Intel Corporation | Gather using index array and finite state machine |
GB2543306B (en) * | 2015-10-14 | 2019-05-01 | Advanced Risc Mach Ltd | Exception handling |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5778219A (en) * | 1990-12-14 | 1998-07-07 | Hewlett-Packard Company | Method and system for propagating exception status in data registers and for detecting exceptions from speculative operations with non-speculative operations |
US5809275A (en) | 1996-03-01 | 1998-09-15 | Hewlett-Packard Company | Store-to-load hazard resolution system and method for a processor that executes instructions out of order |
US6049868A (en) | 1997-06-25 | 2000-04-11 | Sun Microsystems, Inc. | Apparatus for delivering precise traps and interrupts in an out-of-order processor |
US5881280A (en) * | 1997-07-25 | 1999-03-09 | Hewlett-Packard Company | Method and system for selecting instructions for re-execution for in-line exception recovery in a speculative execution processor |
US6505296B2 (en) * | 1997-10-13 | 2003-01-07 | Hewlett-Packard Company | Emulated branch effected by trampoline mechanism |
US5915117A (en) * | 1997-10-13 | 1999-06-22 | Institute For The Development Of Emerging Architectures, L.L.C. | Computer architecture for the deferral of exceptions on speculative instructions |
US6119219A (en) * | 1998-04-30 | 2000-09-12 | International Business Machines Corporation | System serialization with early release of individual processor |
US6282636B1 (en) * | 1998-12-23 | 2001-08-28 | Intel Corporation | Decentralized exception processing system |
-
2000
- 2000-06-22 US US09/599,227 patent/US6615343B1/en not_active Expired - Lifetime
-
2001
- 2001-06-22 JP JP2002504587A patent/JP3579414B2/ja not_active Expired - Fee Related
- 2001-06-22 KR KR1020027017479A patent/KR20030019451A/ko not_active Application Discontinuation
- 2001-06-22 WO PCT/US2001/020148 patent/WO2001098895A1/en not_active Application Discontinuation
- 2001-06-22 EP EP01952204A patent/EP1301858A1/en not_active Withdrawn
- 2001-06-22 AU AU2001272988A patent/AU2001272988A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
WO2001098895A1 (en) | 2001-12-27 |
JP2004501471A (ja) | 2004-01-15 |
EP1301858A1 (en) | 2003-04-16 |
KR20030019451A (ko) | 2003-03-06 |
US6615343B1 (en) | 2003-09-02 |
AU2001272988A1 (en) | 2002-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3579414B2 (ja) | 投機的な実行を用いたアウトオブオーダー・プロセッサにおける精密な例外を配達する機構 | |
US8627044B2 (en) | Issuing instructions with unresolved data dependencies | |
US6192466B1 (en) | Pipeline control for high-frequency pipelined designs | |
US6912648B2 (en) | Stick and spoke replay with selectable delays | |
US7600221B1 (en) | Methods and apparatus of an architecture supporting execution of instructions in parallel | |
US6189088B1 (en) | Forwarding stored dara fetched for out-of-order load/read operation to over-taken operation read-accessing same memory location | |
US6907520B2 (en) | Threshold-based load address prediction and new thread identification in a multithreaded microprocessor | |
US7330963B2 (en) | Resolving all previous potentially excepting architectural operations before issuing store architectural operation | |
US20040128448A1 (en) | Apparatus for memory communication during runahead execution | |
JP3602840B2 (ja) | 命令の投機的実行制御装置およびその方法 | |
US7650485B1 (en) | Structure and method for achieving very large lookahead instruction window via non-sequential instruction fetch and issue | |
US7711934B2 (en) | Processor core and method for managing branch misprediction in an out-of-order processor pipeline | |
JP3659877B2 (ja) | ライトアフターライトデータハザードにより生じるエラーを効率的に防止するためのスーパースケーラ処理システム及び方法 | |
US20060149931A1 (en) | Runahead execution in a central processing unit | |
US20080168260A1 (en) | Symbolic Execution of Instructions on In-Order Processors | |
US6381691B1 (en) | Method and apparatus for reordering memory operations along multiple execution paths in a processor | |
US6338133B1 (en) | Measured, allocation of speculative branch instructions to processor execution units | |
US7047398B2 (en) | Analyzing instruction completion delays in a processor | |
US10474469B2 (en) | Apparatus and method for determining a recovery point from which to resume instruction execution following handling of an unexpected change in instruction flow | |
US6052777A (en) | Method for delivering precise traps and interrupts in an out-of-order processor | |
US20050223201A1 (en) | Facilitating rapid progress while speculatively executing code in scout mode | |
US6049868A (en) | Apparatus for delivering precise traps and interrupts in an out-of-order processor | |
US7418581B2 (en) | Method and apparatus for sampling instructions on a processor that supports speculative execution | |
US20100306513A1 (en) | Processor Core and Method for Managing Program Counter Redirection in an Out-of-Order Processor Pipeline | |
US6711670B1 (en) | System and method for detecting data hazards within an instruction group of a compiled computer program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20031126 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040224 |
|
A524 | Written submission of copy of amendment under article 19 pct |
Free format text: JAPANESE INTERMEDIATE CODE: A524 Effective date: 20040224 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040408 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040511 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040526 |
|
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: 20040622 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040715 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |