JP3919802B2 - プロセッサ、およびプロセッサにおいて命令演算をスケジューリングするための方法 - Google Patents
プロセッサ、およびプロセッサにおいて命令演算をスケジューリングするための方法 Download PDFInfo
- Publication number
- JP3919802B2 JP3919802B2 JP2006076408A JP2006076408A JP3919802B2 JP 3919802 B2 JP3919802 B2 JP 3919802B2 JP 2006076408 A JP2006076408 A JP 2006076408A JP 2006076408 A JP2006076408 A JP 2006076408A JP 3919802 B2 JP3919802 B2 JP 3919802B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- dependency
- rop
- store
- queue
- 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 title claims description 13
- 239000013598 vector Substances 0.000 claims description 214
- 238000012546 transfer Methods 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 7
- 206010038933 Retinopathy of prematurity Diseases 0.000 description 221
- 230000001419 dependent effect Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 19
- 238000001514 detection method Methods 0.000 description 15
- 230000000644 propagated effect Effects 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 8
- 238000011156 evaluation Methods 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 6
- 238000007667 floating Methods 0.000 description 5
- 210000004027 cell Anatomy 0.000 description 4
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 4
- 230000003466 anti-cipated effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 210000000352 storage cell Anatomy 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000000630 rising 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/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/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- 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/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- 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/3838—Dependency mechanisms, e.g. register scoreboarding
-
- 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/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 or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
- G06F9/38585—Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
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)
- Complex Calculations (AREA)
Description
この発明は、プロセッサの分野に関し、より特定的には、プロセッサにおける命令スケジューリングメカニズムに関する。
スーパースカラプロセッサは、クロックサイクルごとに多数の命令を発行し実行することおよび設計と矛盾しない可能な最も高いクロック周波数を用いることにより、高性能を達成しようと試みる。クロックサイクルごとに実行される命令の数を増加させるための1つの方法は、アウトオブオーダ実行である。アウトオブオーダ実行においては、プログラムシーケンスの中で特定された順序(または「プログラム順序」)とは異なる順序で命令が実行されてもよい。プログラムシーケンス内で互いに近いある命令は、それらの同時実行を禁じる依存性を有し得るが、プログラムシーケンス内のその後の命令は以前の命令に対する依存性を有しない可能性がある。したがって、アウトオブオーダ実行は、(平均して)同時に実行される命令の数を増加させることによりスーパースカラプロセッサの性能を増し得る。
ーキテクチャ上で設計されたレジスタの間で、選択されたレジスタを一意に識別する。ソースオペランドはソースレジスタ番号によって識別され、デスティネーションオペランドはデスティネーションレジスタ番号によって識別される。
が維持される。ロード命令演算に対する依存性ベクトルは、ストアアドレス依存性ベクトルを含んで生成される。依存性ベクトルに示された各々の命令演算が完了するまで、ロード命令演算はスケジューリングを禁じられる。
46、PCサイロおよびリダイレクトユニット48ならびに命令TLB(ITB)50を含む。ライン予測子12は、ITB50、予測子ミスデコードユニット26、分岐履歴テーブル18、間接アドレスキャッシュ20、戻りスタック22、PCサイロおよびリダイレクトブロック48、整列ユニット16ならびにI−キャッシュ14に接続される。I−キャッシュ14は整列ユニット16に接続される。整列ユニット16は予測子ミスデコードユニット26およびデコードユニット24にさらに接続される。デコードユニット24はマイクロコードユニット28およびマップユニット30にさらに接続される。マップユニット30は、マップサイロ32、アーキテクチャリネームブロック34、命令キュー36A−36B、ロード/ストアユニット42、実行コア40A−40BならびにPCサイロおよびリダイレクトブロック48に接続される。命令キュー36A−36Bは、互いならびにそれぞれの実行コア40A−40Bおよびレジスタファイル38A−38Bに接続される。レジスタファイル38A−38Bは、互いおよびそれぞれの実行コア40A−40Bに接続される。実行コア40A−40Bは、ロード/ストアユニット42、データキャッシュ44ならびにPCサイロおよびリダイレクトユニット48にさらに接続される。ロード/ストアユニット42は、PCサイロおよびリダイレクトユニット48、D−キャッシュ44ならびに外部インターフェイスユニット46に接続される。D−キャッシュ44はレジスタファイル38に接続され、外部インターフェイスユニット46は外部インターフェイス52に接続される。文字が後に付く参照番号で本明細書中に示された要素は、参照番号のみによってまとめて参照される。たとえば、命令キュー36A−36Bは命令キュー36とまとめて参照される。
ドレスはラインを終了させる分岐命令のターゲットアドレスであってもよい。さらに別の代替例では、ラインは戻り命令によって終了されてもよく、その場合次のフェッチアドレスは戻りスタック22から導かれる。
イン予測子12は、以前に生成された間接ターゲットアドレスを次のフェッチアドレスとして記憶してもよい。間接アドレスキャッシュ20は、対応するラインが間接分岐命令によって終われば、ライン予測子12によって与えられた次のフェッチアドレスをオーバライドしてもよい。さらに、命令演算のライン内の最後の命令に続くアドレスは、ラインがサブルーチン呼出命令によって終われば、戻りスタック22の上にプッシュされてもよい。戻りスタック22は、戻り命令によって終了されたラインのための潜在的な次のフェッチアドレスとして、その最上部に記憶されたアドレスをライン予測子12に与える。
後、ミスを生じたフェッチアドレスがライン予測子12で再試行され、ヒットが検出され得る。さらに、ライン予測子12のヒットが検出され、I−キャッシュ14でミスが起こり得る。対応する命令バイトは外部インターフェイスユニット46を介してフェッチされかつI−キャッシュ14に記憶され得る。
態およびPCサイロに対して命令のラインを識別するR♯を記憶するように構成され得る。上述のPCサイロと同様に、マップサイロ32はエントリの環形バッファを含み得る。各々のエントリは命令演算の1つのラインに対応する情報を記憶するように構成され得る。
に、その特定の命令演算がどのクロックサイクルでレジスタファイル38A−38Bを更新するかを定める。実行コア40A−40B内の異なる実行ユニットは異なる数のパイプライン段(すなわち異なる待ち時間)を用いてもよい。さらに、特定の命令はパイプライン中で他のものより長い待ち時間を経験してもよい。したがって(いくつかのクロックサイクル中の)特定の命令演算に対する待ち時間を測定するカウントダウンが生成される。命令キュー36A−36Bは(レジスタファイルを読取る依存性命令演算に先立ち、またはそれと同時に更新が起こるまで)特定された数のクロックサイクルを待って、その特定の命令演算に依存する命令演算がスケジューリングされ得ることを示す。たとえば特定的な実施例の1つにおいては、依存性命令演算はそれらが依存する命令演算が完了しレジスタファイル38A−38Bを更新するのに2クロックサイクル先立ってスケジューリングされてもよい。別の実施例においては、依存性命令演算をそれらが依存する命令演算が完了しレジスタファイル38A−38Bを更新するのに先行または後続する種々の数のクロックサイクルにおいてスケジューリングしてもよい。各命令キュー36A−36Bはその命令キュー内での命令演算のためのカウントダウンを維持し、カウントダウンの終了の際に内部で依存性命令演算がスケジューリングされるようにする。加えて、命令キューはカウントダウンが終了した際に他の命令キューに表示を与える。続いて別の命令キューが依存性命令演算をスケジューリングしてもよい。この、他の命令キューに対する命令演算完了の遅延した伝達によって、レジスタファイル38A−38Bは実行コア40A−40Bの1つによって与えられる結果を他のレジスタファイルに伝搬できる。各レジスタファイル38A−38Bはプロセッサ10によって用いられる1組の物理レジスタを実現し、実行コア40A−40Bの1つによって更新される。次いでその更新が他のレジスタファイルに伝搬される。なお、命令キュー36A−36Bはその依存性が満たされたときに(すなわちキュー内での順序に関してアウトオブオーダーで)命令をスケジューリングしてもよい。
キューエントリを割当てられる。続いて、ストアデータが(ストアデータをレジスタファイル38A−38Bからロード/ストアユニット42に経路付けるために用いられる)ストアデータ命令演算によって与えられる。ストア命令がリタイアされる際に、データはD−キャッシュ44に記憶される。加えてロード/ストアユニット42は、(外部インターフェイス46を介した)D−キャッシュ44をミスしたロード/ストアアドレスを、続いてキャッシュに格納するために記憶し、ミスしたロード/ストア演算を再び試みるためのロード/ストアバッファを含んでもよい。ロード/ストアユニット42はさらにロード/ストアメモリ依存性を取扱うために構成される。
ト30からオペコード/R♯/即値フィールドバス74を介して受取られる。さらに、マップユニット30によってROPに割当てられたソースおよびデスティネーションPR♯がオペコード/定数記憶装置64Aに記憶される。ROPのラインに対応するソースおよびデスティネーションPR♯は、マップユニット30からソース/デスティネーションPR♯バス72Bを介して受取られる。オペコード/定数記憶装置64Aはたとえばランダムアクセスメモリ(RAM)を含んでもよい。代替的に、その他のさまざまな記憶装置(たとえば1組のレジスタまたはその他のクロックされる記憶デバイスなど)を用いてもよい。
インも、記憶される依存性ベクトルの評価に用いるために各依存性ベクトルキューに経路付けられる。
ピック論理は実際には単一の論理命令キュー中の命令の一部分のみを考慮するため、各キューに対するピック論理はより複雑でなくなり、したがってより迅速に動作して命令をスケジューリングし得る。さらに命令キューは異なるクロックフェーズの間に命令をスケジューリングできるため、反対側の命令キューにおいてROPへの依存性が満足されたことを(完全なクロックサイクルに対して)1/2クロックサイクル中で命令キューに伝搬できる。伝搬のこの1/2クロックサイクルは、データを反対側のレジスタファイルからスケジューリング命令キューに対応するレジスタファイルに移動させるためにも用い得る。
ング要求信号はデアサートされる。PH1ラッチ94Aは、スケジューリング要求信号をキャプチャし、スケジューリング要求信号をピック論理66Aに伝搬する。
ーズの最初に、トランジスタ128は活性化される。トランジスタ124のゲートが論理1である(すなわち、中間要求信号がPH1フェーズの終わりにキャプチャされる際デアサートされた)場合、スケジューリング要求ライン96BAは、トランジスタ124および128を介してデアサートされた状態にディスチャージされる。他方で、トランジスタ124のゲートが論理0である(すなわち、中間要求ラインがPH1フェーズの終わりにキャプチャされる際アサートされた)場合、スケジューリング要求ライン96BAは、トランジスタ124および128を介してディスチャージされない。スケジューリング要求ライン96BAは、依存性ベクトルの第1の部分の評価に従ってデアサートされてもよく、またはエントリPのROPがスケジューリング可能であることを示すようアサートされたままであってもよい。
ROPを取消することがある。ストアデータROPについてロードROPを不当に遅延させることなしにROPの取消を回避するために、ストア/ロード転送検出ユニット148を用いて、ロードヒットストアデータ(利用不可能のストアデータを備える)状況を予測し、必要であれば、予測に応答して依存性を記録する。ロードヒットストアデータ状況が予測された場合、ストアデータROPのIQ♯は、ストア/ロード転送検出ユニット148によって依存性ベクトル生成ユニット134に与えられる。依存性ベクトル生成ユニット134は、対応するロードROPの依存性ベクトルにストアデータROPへのオーダリング依存性を記録する。
ジスタ番号のソースを特定する。たとえば、この実施例では、ソースレジスタに対応する物理的レジスタ番号は、(マップユニット30によって先に処理されたROPのラインに対応する更新を反映し、かつ仮想/物理的レジスタマップユニット136によって維持される)ルックアヘッドレジスタ状態から、または(先行のROPのデスティネーションオペランドがソースオペランドと同じ、すなわちライン内依存性が存在する場合)ROPのライン内の先行の発行位置から引出すことが可能である。言い換えれば、ソースレジスタ数に対応する物理的レジスタ番号は、ライン内依存性が検出されなければ、ルックアヘッドレジスタ状態内の物理的レジスタ番号である。レジスタスキャンユニット130は、有効に、ライン内依存性チェックを行なう。他の実施例は、所望のごとく、ソースオペランドの他のソースを見込んでもよい。
ト132からの入力に従って生成される次のルックアヘッドレジスタ状態を無効にし得る。
ロードROPについて指定するべきでないからである。
に一体化されてもよい。
この発明は、プロセッサおよびコンピュータシステムに適用可能であり得る。
PCサイロ、50 リダイレクトユニットならびに命令TLB(ITB)。
Claims (15)
- プロセッサであって、
命令演算に対応する依存性ベクトルを生成するよう構成された依存性ベクトル生成ユニットと、
前記依存性ベクトルおよび前記命令演算を受けるよう結合された命令キューとを含み、前記命令キューは、前記命令演算および前記依存性ベクトルを記憶するよう構成され、かつ前記依存性ベクトル内に示された各依存性が満たされるまで前記命令演算のスケジューリングを禁止するようさらに構成され、前記依存性ベクトルは、前記命令キュー内の各他の命令演算への依存性を同時に示すことが可能であり、前記依存性は前記命令演算に対するオペランド依存性に加えて少なくとも1つのオーダリング依存性を含む、プロセッサ。 - 前記オーダリング依存性が、前記命令演算がロード命令演算であれば、先行のストアアドレス命令演算の各々に対して検出される、請求項1に記載のプロセッサ。
- 前記先行のストアアドレス命令演算の各々に対して検出される前記オーダリング依存性が、前記先行のストアアドレス命令演算の各々が実行されると満たされる、請求項2に記載のプロセッサ。
- 前記オーダリング依存性がストア−ロード転送依存性を含む、請求項1に記載のプロセッサ。
- 前記ストア−ロード転送依存性が、前記ストア−ロード転送依存性により特定されたストアデータ命令演算が実行されると満たされる、請求項4に記載のプロセッサ。
- 前記オペランド依存性は、前記オペランドが前記命令演算に対して利用可能になると満たされる、請求項1に記載のプロセッサ。
- 前記オペランドは、結果として前記オペランドを生成する命令演算が実行されると利用可能になる、請求項6に記載のプロセッサ。
- プロセッサにおいて命令演算をスケジューリングするための方法であって、
各命令演算に対応する依存性ベクトルを生成するステップを含み、前記依存性ベクトルは、命令キュー内の各他の命令演算への依存性を同時に示すことが可能であり、前記依存性は前記命令演算に対するオペランド依存性に加えて1つ以上のオーダリング依存性を含み、前記方法はさらに、
前記命令キュー内に前記依存性ベクトルおよび対応の命令演算を記憶するステップと、
前記依存性ベクトルにより示された前記依存性の各々を満たすステップと、
前記満たすステップに応答して前記対応する命令演算をスケジューリングするステップとを含む、方法。 - 前記満たすステップが、前記オーダリング依存性が検出される先行の命令演算の実行を完了させるステップを含む、請求項8に記載の方法。
- 前記1つ以上のオーダリング依存性が、前記命令演算がロード命令演算であれば、先行のストアアドレス命令演算の各々に対して検出されるオーダリング依存性を含む、請求項8に記載の方法。
- 前記先行のストアアドレス命令演算の各々に対して検出される前記オーダリング依存性が、前記先行のストアアドレス命令演算の各々が実行されると満たされる、請求項10に記載の方法。
- 前記1つ以上のオーダリング依存性がストア−ロード転送依存性を含む、請求項11に記載の方法。
- 前記ストア−ロード転送依存性が、前記ストア−ロード転送依存性により特定されたストアデータ命令演算が実行されると満たされる、請求項12に記載の方法。
- 前記オペランド依存性は、前記オペランドが前記命令演算に対して利用可能になると満たされる、請求項8に記載の方法。
- 前記オペランドは、結果として前記オペランドを生成する命令演算が実行されると利用可能になる、請求項14に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/139,178 US6212623B1 (en) | 1998-08-24 | 1998-08-24 | Universal dependency vector/queue entry |
US09/138,886 US6212622B1 (en) | 1998-08-24 | 1998-08-24 | Mechanism for load block on store address generation |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000566743A Division JP3866921B2 (ja) | 1998-08-24 | 1999-03-24 | ストアアドレス生成およびユニバーサルな依存性ベクトルに基づくロードブロックのためのメカニズム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006228241A JP2006228241A (ja) | 2006-08-31 |
JP3919802B2 true JP3919802B2 (ja) | 2007-05-30 |
Family
ID=26836653
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000566743A Expired - Fee Related JP3866921B2 (ja) | 1998-08-24 | 1999-03-24 | ストアアドレス生成およびユニバーサルな依存性ベクトルに基づくロードブロックのためのメカニズム |
JP2006076408A Expired - Fee Related JP3919802B2 (ja) | 1998-08-24 | 2006-03-20 | プロセッサ、およびプロセッサにおいて命令演算をスケジューリングするための方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000566743A Expired - Fee Related JP3866921B2 (ja) | 1998-08-24 | 1999-03-24 | ストアアドレス生成およびユニバーサルな依存性ベクトルに基づくロードブロックのためのメカニズム |
Country Status (5)
Country | Link |
---|---|
EP (2) | EP1121635B1 (ja) |
JP (2) | JP3866921B2 (ja) |
KR (2) | KR100608389B1 (ja) |
DE (1) | DE69922238T2 (ja) |
WO (1) | WO2000011548A1 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6212623B1 (en) | 1998-08-24 | 2001-04-03 | Advanced Micro Devices, Inc. | Universal dependency vector/queue entry |
US6122727A (en) | 1998-08-24 | 2000-09-19 | Advanced Micro Devices, Inc. | Symmetrical instructions queue for high clock frequency scheduling |
US6622235B1 (en) | 2000-01-03 | 2003-09-16 | Advanced Micro Devices, Inc. | Scheduler which retries load/store hit situations |
US6542984B1 (en) | 2000-01-03 | 2003-04-01 | Advanced Micro Devices, Inc. | Scheduler capable of issuing and reissuing dependency chains |
US6564315B1 (en) | 2000-01-03 | 2003-05-13 | Advanced Micro Devices, Inc. | Scheduler which discovers non-speculative nature of an instruction after issuing and reissues the instruction |
KR100747128B1 (ko) * | 2000-01-03 | 2007-08-09 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | 발행 후에 명령의 비투기적 성질을 발견하고 상기 명령을 재발행하는 스케줄러 |
GB0023698D0 (en) * | 2000-09-27 | 2000-11-08 | Univ Bristol | Instruction issue in a processor |
US6862676B1 (en) * | 2001-01-16 | 2005-03-01 | Sun Microsystems, Inc. | Superscalar processor having content addressable memory structures for determining dependencies |
GB0302602D0 (en) * | 2003-02-04 | 2003-03-12 | Young Arthur P | Equipment and methods for real time application |
EP1462934A1 (en) * | 2003-03-29 | 2004-09-29 | Deutsche Thomson-Brandt Gmbh | Method and apparatus for forwarding of results |
US7321964B2 (en) | 2003-07-08 | 2008-01-22 | Advanced Micro Devices, Inc. | Store-to-load forwarding buffer using indexed lookup |
US7506132B2 (en) * | 2005-12-22 | 2009-03-17 | International Business Machines Corporation | Validity of address ranges used in semi-synchronous memory copy operations |
US7380104B2 (en) * | 2006-04-25 | 2008-05-27 | International Business Machines Corporation | Method and apparatus for back to back issue of dependent instructions in an out of order issue queue |
US8639889B2 (en) | 2011-01-31 | 2014-01-28 | International Business Machines Corporation | Address-based hazard resolution for managing read/write operations in a memory cache |
US9116686B2 (en) * | 2012-04-02 | 2015-08-25 | Apple Inc. | Selective suppression of branch prediction in vector partitioning loops until dependency vector is available for predicate generating instruction |
US9424041B2 (en) * | 2013-03-15 | 2016-08-23 | Samsung Electronics Co., Ltd. | Efficient way to cancel speculative ‘source ready’ in scheduler for direct and nested dependent instructions |
CN111694675B (zh) * | 2019-03-15 | 2022-03-08 | 上海商汤智能科技有限公司 | 任务调度方法及装置、存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5201057A (en) * | 1987-01-22 | 1993-04-06 | Uht Augustus K | System for extracting low level concurrency from serial instruction streams |
US5655096A (en) * | 1990-10-12 | 1997-08-05 | Branigin; Michael H. | Method and apparatus for dynamic scheduling of instructions to ensure sequentially coherent data in a processor employing out-of-order execution |
JPH0820949B2 (ja) * | 1991-11-26 | 1996-03-04 | 松下電器産業株式会社 | 情報処理装置 |
US5465336A (en) * | 1994-06-30 | 1995-11-07 | International Business Machines Corporation | Fetch and store buffer that enables out-of-order execution of memory instructions in a data processing system |
US5710902A (en) * | 1995-09-06 | 1998-01-20 | Intel Corporation | Instruction dependency chain indentifier |
US5835747A (en) * | 1996-01-26 | 1998-11-10 | Advanced Micro Devices, Inc. | Hierarchical scan logic for out-of-order load/store execution control |
-
1999
- 1999-03-24 JP JP2000566743A patent/JP3866921B2/ja not_active Expired - Fee Related
- 1999-03-24 WO PCT/US1999/006427 patent/WO2000011548A1/en active IP Right Grant
- 1999-03-24 DE DE69922238T patent/DE69922238T2/de not_active Expired - Lifetime
- 1999-03-24 EP EP99914095A patent/EP1121635B1/en not_active Expired - Lifetime
- 1999-03-24 KR KR1020017002379A patent/KR100608389B1/ko not_active IP Right Cessation
- 1999-03-24 KR KR1020067007925A patent/KR100611341B1/ko not_active IP Right Cessation
- 1999-03-24 EP EP01200954A patent/EP1122639A3/en not_active Withdrawn
-
2006
- 2006-03-20 JP JP2006076408A patent/JP3919802B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP3866921B2 (ja) | 2007-01-10 |
KR100611341B1 (ko) | 2006-08-14 |
KR100608389B1 (ko) | 2006-08-09 |
KR20060070576A (ko) | 2006-06-23 |
DE69922238D1 (de) | 2004-12-30 |
JP2002527798A (ja) | 2002-08-27 |
DE69922238T2 (de) | 2005-11-03 |
EP1121635A1 (en) | 2001-08-08 |
WO2000011548A1 (en) | 2000-03-02 |
JP2006228241A (ja) | 2006-08-31 |
EP1122639A3 (en) | 2002-02-13 |
EP1121635B1 (en) | 2004-11-24 |
EP1122639A2 (en) | 2001-08-08 |
KR20010085584A (ko) | 2001-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3919802B2 (ja) | プロセッサ、およびプロセッサにおいて命令演算をスケジューリングするための方法 | |
US6122727A (en) | Symmetrical instructions queue for high clock frequency scheduling | |
US6212623B1 (en) | Universal dependency vector/queue entry | |
US6212622B1 (en) | Mechanism for load block on store address generation | |
US6141747A (en) | System for store to load forwarding of individual bytes from separate store buffer entries to form a single load word | |
US6247106B1 (en) | Processor configured to map logical register numbers to physical register numbers using virtual register numbers | |
US5768610A (en) | Lookahead register value generator and a superscalar microprocessor employing same | |
US5887152A (en) | Load/store unit with multiple oldest outstanding instruction pointers for completing store and load/store miss instructions | |
US5832297A (en) | Superscalar microprocessor load/store unit employing a unified buffer and separate pointers for load and store operations | |
US5764946A (en) | Superscalar microprocessor employing a way prediction unit to predict the way of an instruction fetch address and to concurrently provide a branch prediction address corresponding to the fetch address | |
US6256727B1 (en) | Method and system for fetching noncontiguous instructions in a single clock cycle | |
US6339822B1 (en) | Using padded instructions in a block-oriented cache | |
US6604190B1 (en) | Data address prediction structure and a method for operating the same | |
US6185675B1 (en) | Basic block oriented trace cache utilizing a basic block sequence buffer to indicate program order of cached basic blocks | |
US5848433A (en) | Way prediction unit and a method for operating the same | |
JP3871883B2 (ja) | 間接分岐ターゲットを計算するための方法 | |
US6393549B1 (en) | Instruction alignment unit for routing variable byte-length instructions | |
US6119223A (en) | Map unit having rapid misprediction recovery | |
US6260134B1 (en) | Fixed shift amount variable length instruction stream pre-decoding for start byte determination based on prefix indicating length vector presuming potential start byte | |
US8171240B1 (en) | Misalignment predictor | |
US6393546B1 (en) | Physical rename register for efficiently storing floating point, integer, condition code, and multimedia values | |
US6212621B1 (en) | Method and system using tagged instructions to allow out-of-program-order instruction decoding | |
US5832249A (en) | High performance superscalar alignment unit | |
US6230262B1 (en) | Processor configured to selectively free physical registers upon retirement of instructions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060926 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061225 |
|
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: 20070123 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070213 |
|
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: 20110223 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120223 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120223 Year of fee payment: 5 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120223 Year of fee payment: 5 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |