JP2002522841A - 異なる待ち時間を伴う命令のスケジューリング - Google Patents
異なる待ち時間を伴う命令のスケジューリングInfo
- Publication number
- JP2002522841A JP2002522841A JP2000565456A JP2000565456A JP2002522841A JP 2002522841 A JP2002522841 A JP 2002522841A JP 2000565456 A JP2000565456 A JP 2000565456A JP 2000565456 A JP2000565456 A JP 2000565456A JP 2002522841 A JP2002522841 A JP 2002522841A
- Authority
- JP
- Japan
- Prior art keywords
- latency
- register
- expected
- issue group
- instruction
- 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
- 239000013598 vector Substances 0.000 claims abstract description 50
- 238000000034 method Methods 0.000 claims abstract description 31
- 230000004044 response Effects 0.000 claims abstract description 29
- 230000001603 reducing effect Effects 0.000 claims abstract description 5
- 230000003111 delayed effect Effects 0.000 claims description 8
- 230000003068 static effect Effects 0.000 claims description 5
- 230000001172 regenerating effect Effects 0.000 claims description 2
- 230000008901 benefit Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008929 regeneration Effects 0.000 description 3
- 238000011069 regeneration method Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000015654 memory Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
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, 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/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, look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
Abstract
Description
待ち時間を伴う命令をスケジューリングすることに関する。
索し実行する。実行された命令の多くは、前記シーケンスのより先の命令にデー
タ依存性および/または制御依存性を有する。プロセッサは通常、この依存性を
尊重する方法で命令をスケジューリングし実行する。
可能度に関係する。ソース・オペランドおよび宛先オペランドは命令が読み出す
および書き込む各レジスタ・アドレスであろう。ソース・オペランドは、命令シ
ーケンスのより先の命令が書込みを完了した後、正しいデータが格納されると使
用可能になる。宛先オペランドは、命令シーケンスのより先の命令のすべてがア
ドレスの読出しを完了した後に命令をアドレスへ書き込みできると使用可能にな
る。多くのプロセッサは命令のオペランドが使用可能であると決定されたことに
応じて、命令をスケジューリングし実行する。オペランドの使用可能度を決定す
ることは、各スケジュール・サイクル内で多数のオペランドをチェックしなけれ
ばならない時には、時間を消費し、命令処理を遅らせるであろう。
ードを増すための種々の機能を含んでいる。このような機能の1つが推論実行で
ある。推論実行においては、プロセッサは実行の前に依存性に関して予想を決定
し、実行の後にその予想が真であったかどうかをチェックする。予想が間違って
いることが分かった場合、プロセッサは影響を受けた命令を再実行する。推論実
行は依存性に関する予想が正確である時に、決定されていない命令の依存性によ
って起こされる遅延をなくすことができる。いくつかのプロセッサが使用してい
る第2の機能は、スーパースカラ処理である。スーパースカラ処理では、別の入
力ポートを伴ういくつかの実行ユニットがある。スーパースカラ・プロセッサは
、1つのクロック・サイクルの間にいくつかの命令のイシュー・グループをディ
スパッチすることができる。イシュー・グループの各命令は、異なる入力ポート
にディスパッチされる。推論実行およびスーパースカラ処理は一般に、決定され
ない命令の依存性を処理する技法を必要とする。
オペランドの使用可能度を解決させる。ストール可能なパイプラインは、ストー
ル制御ネットワークを使用してストールを処理する。ストール制御ネットワーク
は、種々のパイプラインステージからストール・コントローラおよびネットワー
クへ状態信号を送るためのネットワークを含み、ストール・コントローラからパ
イプラインの種々のステージへ「ストール」信号または「アドバンス」信号をブ
ロードキャストする。状態信号はストール・コントローラに、その結果を1つの
ステージから次のステージへ送ってさらに処理できるかどうかを伝える。「アド
バンス」信号によって、たとえば、並列フリップ・フロップのバンクが結果を1
つのステージから次のステージへ送る。受け取りネットワークおよびブロードキ
ャスト・ネットワークはキャパシタンスおよびそれに関連した過渡時間を伴うワ
イヤを使用するので、これらのネットワークは時間遅延を起こし、それがパイプ
ラインステージの間で結果を送るために達成可能な最小の時間を制限する。
の物理的な大きさに達し、多くのステージを伴うパイプラインを使用することに
なる。どちらの特性もストール制御ネットワークに必要なワイヤを増加する傾向
があるので、キャパシタンスによって起こされる関連した時間遅延を増加させる
。
の間1つのイシュー・グループをスケジューリングする必要がある。イシュー・
グループの各命令のオペランドとして現れるレジスタが次のイシュー・グループ
をディスパッチする間の時間に使用可能かどうかをプロセッサが決定しなければ
ならない場合、このようなタイミング要件は達成するのが困難である。これらの
タイミング要件はイシュー・グループの大きさが増大するにつれて達成するのが
さらに困難になる。
の影響を削減することに関する。
クと、複数の行および1つまたは複数のポートを有する電子ハードウェア構造を
含む。各行は、ポートのうち1つのポートを介して書き込まれる別の待ち時間ベ
クトルを記録するように構成される。そこに記録された待ち時間ベクトルはクロ
ックに応答する。
れる。この方法は複数の予想される待ち時間をレジスタ待ち時間表の行の一部で
更新し、他の行に残っている予想される待ち時間をクロック・パルスに応答して
削減することを含む。その部分の行は特定のレジスタに対応する。
らかになろう。
では実際の実装におけるすべての機能が説明されているわけではない。もちろん
、このような実際の実施形態の開発においては、実装に特有な多くの決定を行っ
て、システム関連の制約や業務関連の制約に従うなど、実装によって変化する開
発者の特有の目的を達成しなければならないことを理解されよう。さらに、この
ような開発努力は複雑で時間のかかるものである場合があるが、この開示から利
点を得られる当業者であれば日常業務の仕事であることを理解されよう。
ィスパッチ・サイクルの間にディスパッチされ実行される命令のグループを意味
する。いくつかの実施形態では、イシュー・グループは命令を1つだけ含む。
込むかまたはそこから読み出すかによって異なる。特定の命令がレジスタから読
み出す場合、「実際の待ち時間」は命令シーケンスのより先の命令がレジスタへ
の書込みを実行するための時間と定義される。特定の命令がレジスタに書き込む
場合、「実際の待ち時間」は命令シーケンスのより先の命令がレジスタへの書込
みとそこからの読出しを実行するための時間である。本発明の実施形態は、「予
想される待ち時間」に基づいて各命令をスケジューリングする。本発明の実施形
態は、命令が読出しまたは書込みのどちらを実行する場合でも「予想される待ち
時間」を使用する。
ジスタ待ち時間の決定に基づいて命令をスケジューリングする。「予想される」
レジスタ待ち時間はプロセッサの起動時にゼロにリセットされる。次いで、「予
想される」レジスタ待ち時間は命令タイプに基づいて更新される。たとえば、一
実施形態では、任意のロード命令、任意の整数計算命令、および任意の浮動小数
点計算命令によって書き込まれたレジスタに関して、それぞれ2クロック・パル
ス、1クロック・パルス、5クロック・パルスで予想されるレジスタ待ち時間を
更新する。予想されるレジスタ待ち時間への更新の特定の値は、特定のハードウ
ェア実装態様によって異なり、本発明にとっては本質的ではない。スケジューリ
ングは予想されるレジスタ待ち時間を使用するので、いくつかの実施形態は新し
い命令がスケジューリングされるごとに予想を更新し、他の実施形態は新しい命
令がディスパッチされ実行されるごとに予想を更新する。
間表10に関する一実施形態を示す。レジスタ待ち時間表10はいくつかの行1
4、16、18を有する電子ハードウェア構造であり、対応するレジスタ(図示
せず)のバイナリの待ち時間ベクトル、すなわち、レジスタ待ち時間を格納する
。レジスタ待ち時間表10はまた、それぞれそこから待ち時間ベクトルを読み出
し、そこへ待ち時間ベクトルを書き込むための少なくとも1つのポート12を有
する。レジスタ待ち時間表10の各行14、16、18は、クロック20からの
パルスに応答して残りの予想される待ち時間間隔をカウントダウンする、すなわ
ち行14、16、18は、時間内の予想されるレジスタ待ち時間を追跡する。
定の実施形態22を示すが、本発明はこのように限定されるものではない。示さ
れた実施形態では各行14、16、18はシフト・レジスタであり、ベクトルを
シフトする、すなわち2で整数除算することによってそこに格納された待ち時間
ベクトルをカウントダウンする。レジスタ待ち時間表10の14、16、18の
各行は、「有限状態マシン」として作用する。「有限状態マシン」は、ハードウ
ェアと1つまたは複数のレジスタの組合せであり、ハードウェアはレジスタ内に
格納された物理量を発展させるように構成されており、たとえば、行14、16
、18は予想されるレジスタ待ち時間を一時的に発展させ、現在の値を反映する
ように構成されている。
18のうち1つの状態を時間発展させたところを示す。最初の時に、制御論理(
図示せず)はMバイナリ桁のバイナリ待ち時間ベクトル24の並列ロードをシフ
ト・レジスタ内に作成し、Mバイナリ桁を格納する。Nクロック・サイクルの待
ち時間に対応する待ち時間ベクトルは値1を伴うN個の連続する桁および、値0
を有するM−N個の連続する桁を有する。図1のクロック20からの第1のパル
ス25の後、レジスタは1つのバイナリ桁だけ待ち時間ベクトル24をシフトし
、値1を伴うN−1個の連続する桁および、値0を伴うM−N+1個の連続する
桁を有する新しい待ち時間ベクトル26を生成する。図1のクロック20から第
2のパルス27の後、レジスタは別のバイナリ桁だけ待ち時間ベクトル26をシ
フトし、値1を伴うN−2個の連続する桁および、値0を伴うM−N+2個の連
続する桁を有する新しい待ち時間ベクトル28を生成する。Nクロック・サイク
ルの後、待ち時間ベクトル(図示せず)は値0を伴うM桁を含むことになる。図
1のレジスタ待ち時間表10の各行14、16、18は、そこに格納された待ち
時間ベクトルを図1のクロック20の各パルスで1バイナリ桁だけシフトする。
レジスタ待ち時間表10は、予想される待ち時間をシフトすることにより予想さ
れるレジスタ待ち時間を「追跡」し、それによって予想されるレジスタ待ち時間
の残りを格納する。
後に残る予想されるレジスタ待ち時間である。種々の実施形態は命令を検索する
こと、命令をスケジューリングすること、命令をディスパッチすることに応答し
て、または実行の前の命令処理シーケンス内の別の時間のいずれかで、予想され
るレジスタ待ち時間を更新することができる。
6、18内の予想されるレジスタ待ち時間の残りを追跡することができる。この
ような一実施形態では、レジスタ待ち時間表の行14、16、18はデクリメン
トするカウンタとして作用する、すなわち、クロック20の各パルスで現在の予
想されるレジスタ待ち時間から1を引く場合がある。行14、16、18は、そ
こに格納された予想される待ち時間を修正して現在の物理値を反映する「有限状
態マシン」として作用する。
ジューリングし実行するプロセッサ30の一部を示す。プロセッサ30は複数の
内部レジスタ32、33、34を含み、命令によって読み出されおよび書き込ま
れるデータを格納する。レジスタ32、33、34はレジスタ・ファイル36を
形成する。いくつかの実施形態では、レジスタ待ち時間表10およびレジスタ・
ファイル36は、同じ数の読出しポート12、37および同じ数の書込みポート
12、37を有する。レジスタ待ち時間表10の各行14、16、18は、レジ
スタ32、33、34のうち1つに関して静的待ち時間ベクトルを格納する。レ
ジスタ待ち時間表10およびレジスタ・ファイル36は両方とも、内部レジスタ
32、34、36のそれぞれに関して1つの行を有する。プロセッサ30は複数
の実行ユニット46、48を有する。プロセッサ30は、その中に命令があるレ
ジスタ32、33、34が使用可能になると予想される時間においてまたはその
時間の後に、すなわち、レジスタ待ち時間表10の待ち時間ベクトルによって決
定されたように、実行ユニット46、48にディスパッチされるべき命令のイシ
ュー・グループをスケジューリングする。
てプログラム依存性を静的に実行する、すなわち、命令のタイプの関数である予
想された依存性を実行する。レジスタ待ち時間表10はレジスタ32、33、3
4の一部の待ち時間に対して、命令が読出しか書込みかの静的な予想を提供する
。プロセッサ30は、静的な予想される待ち時間、すなわちより先の命令の予想
された待ち時間がレジスタ32、33、34の一部へ書込みを終了するまで、命
令をディスパッチしない。静的な予想される待ち時間に基づいたスケジューリン
グは、命令依存性の違反の数を削減することができる。
ージに到着するように、命令は実行ステージより早くパイプラインステージにス
ケジューリングされディスパッチされる。
サ50を示す。フェッチャ/復号器52は、メモリ(図示せず)から命令を検索
し、ハードウェア実行ユニット46、48上で実行可能な命令の復号化されたイ
シュー・グループを生成する。リネーマ54はプロセッサ50の内部にあるレジ
スタ32、33、34の一部を、復号化された命令のダミー・オペランドへ割り
当てる。スケジューラ56は各イシュー・グループに関して予想される待ち時間
を静的に決定し、イシュー・グループおよび予想される待ち時間を命令待ち行列
58内の行(図示せず)に書き込む。「静的に決定する」とは、プロセッサ・ハ
ードウェアが固定された「予想される待ち時間」を命令クラスに依存する命令に
割り当てることを意味する。たとえば、一実施形態では、すべてのロード命令、
すべての整数計算命令およびすべての浮動小数点命令によって書き込まれたレジ
スタに、2クロック・パルス、1クロック・パルスおよび5クロック・パルスな
どの各予想される待ち時間を割り当てる。命令待ち行列58はイシュー・グルー
プの命令の実行が並列に開始するように、複数の整列した実行ユニット46、4
8に各イシュー・グループをディスパッチするように構成される。プロセッサ5
0は、レジスタ待ち時間表10を使用して各イシュー・グループの予想される待
ち時間、すなわち、イシュー・グループのすべての命令がディスパッチの準備を
する時間を決定する。リタイアメント・ユニット60は、イシュー・グループが
正しく実行されていれば、イシュー・グループの命令をリタイアし命令待ち行列
58を更新する。
示す。フェッチ/復号ステージ(FD)では、フェッチャ/復号器52は命令の
イシュー・グループを生成してリネーマ54に送る。リネーマステージ(RE)
では、リネーマ54は内部レジスタ32、33、34の一部を命令のダミー・オ
ペランドへ割り当てる。待ち時間決定ステージ(LA)では、スケジューラ56
は図4Aのレジスタ待ち時間表10の中にある命令のレジスタ32、34、36
の待ち時間ベクトルを検索し、命令のソース・レジスタが使用可能になる前に予
想されるクロックの数を決定する。LAステージでは、スケジューラ56はまた
イシュー・グループ自体に関して予想される待ち時間を決定する。待ち行列ステ
ージ(QU)では、いくつかの実施形態ではスケジューラ56はイシュー・グル
ープに関して予想される待ち時間の決定を完了する。QUステージでは、スケジ
ューラ56はイシュー・グループを命令待ち行列58内のアドレスに書き込み、
予想される待ち時間に関してバイナリの符号セグメントを付与する。QUステー
ジでは、スケジューラ56はレジスタ待ち時間表10の待ち時間ベクトルを更新
する。実行ステージ(EX)では、命令待ち行列58はイシュー・グループに関
して予想される待ち時間をカウントダウンした後に、次のイシュー・グループを
ディスパッチして実行する。リタイアメントステージ(RT)では、リタイアメ
ント・ユニット60は正しく実行された命令をリタイアする。当業者であれば、
プロセッサ・パイプライン62内のFD、RE、LA、QU、EXおよびRTの
各ステージの区分は、図4Bに現れるように区別できない場合があることを理解
されるであろう。たとえば、1つまたは複数のステージが他のステージと重複す
る場合がある。
Tは代表的なものにすぎず、種々の代替の実施形態に存在するようなステージを
網羅的または限定的に表したものではない。したがって、パイプライン62のス
テージの正確な構造は本発明の実施には直接関係がない。
ーリングする方法63を示すフローチャートである。ブロック64では、スケジ
ューラ56は入力イシュー・グループから命令のオペランドとして現れるレジス
タ32、33、34の一部に関して予想される待ち時間を読み出す、すなわち図
4Bの中のLAステージである。ブロック65では、スケジューラ56はそこに
現れるレジスタ32、33、34の一部の予想される待ち時間から、イシュー・
グループに関して予想される待ち時間を生成する、すなわち、図4BのLAステ
ージまたはQUステージである。一実施形態では、イシュー・グループの予想さ
れる待ち時間は、イシュー・グループの命令によって書き込まれるべきレジスタ
に関する最大の待ち時間と等しい。ブロック66では、命令待ち行列58は、イ
シュー・グループの予想される待ち時間が終了したことに応答して実行ユニット
46、48にイシュー・グループをディスパッチする、すなわち、図4BのQU
ステージからEXステージである。ブロック67では、スケジューラ56はイシ
ュー・グループによってレジスタ32、33、34のうちどれが書き込まれるか
を決定する、すなわち、QUステージである。ブロック68では、スケジューラ
56はたとえばレジスタ32、33、34の残りの待ち時間からイシュー・グル
ープの待ち時間を引くことによって、イシュー・グループによって書き込まれる
レジスタ32、33、34の一部に関してレジスタ待ち時間表10を更新する。
ブロック69では、レジスタ待ち時間表10はクロック・パルスに応答して、イ
シュー・グループによって書き込まれない各レジスタの予想される待ち時間を減
少させる。ブロック67、68および69は1レジスタについてレジスタごとに
実行される。一実施形態では、更新は図4BのステージQUで発生する。他の実
施形態では、更新は図4BのステージEXで発生する、すなわちスケジューリン
グの間ではなくディスパッチの時に起きる。
して予想されるレジスタ待ち時間を更新する。たとえば、更新はレジスタ待ち時
間表10の予想されるレジスタ待ち時間を、現在の予想されるレジスタ待ち時間
と、レジスタに書き込まれる次のイシュー・グループの予想される待ち時間のう
ち大きな方で置き換える。レジスタを更新するための他の公式も可能である。種
々の公式は予想されるレジスタ待ち時間の更新を、各イシュー・グループのディ
スパッチ時またはディスパッチ前に可能にする。
スパッチする循環バッファでよい。命令待ち行列58のポインタ(図示せず)は
、ディスパッチされた最後のイシュー・グループを示す。命令待ち行列58は次
のイシュー・グループに関して残りの待ち時間をカウントダウンし、次のイシュ
ー・グループの待ち時間が終了したことに応答して、ポインタを進めて次のイシ
ュー・グループをディスパッチする。命令待ち行列58は非命令イシュー・グル
ープ、すなわち実行動作のないイシュー・グループを、待ち時間がカウントダウ
ンされているディスパッチ・サイクルの間にディスパッチする。実行ユニット4
6、48は非命令イシュー・グループを実行せず、リタイアメント・ユニット6
0はそこからの結果をアーキテクチャの状態にゆだねずに、非命令イシュー・グ
ループをリタイアする。実施形態によっては、実行ユニット46、48およびリ
タイアメント・ユニット60は、保持された1つまたは複数の特別ビットによっ
て非命令イシュー・グループを認識し、「非命令」状態を示す。こうして、図4
Aのプロセッサ50は、実行の準備ができていると予想されるイシュー・グルー
プがない時には、図4Bの命令パイプライン62をストールしない。図4Bのパ
イプライン62におけるREステージの後の例外または実行エラーに応答して、
図4Aのプロセッサ50は非命令イシュー・グループをディスパッチし、実行ユ
ニット46、48は、そこから命令を実行しない。図4Aのプロセッサ50は他
の装置および/または待ち行列を有し、図4Bのパイプライン62のLAステー
ジより早いステージで発生するエラーを処理する。図4Bのパイプライン62は
ストール可能なパイプラインにおけるように動作速度を低減する可能性のあるス
トール・ネットワークを有しない。
の公式を使用してレジスタ待ち時間表10を更新することができる。たとえばI
G1とIG2など2つの連続的なイシュー・グループのディスパッチの間に、プ
ロセッサ50は第2のイシュー・グループの予想される待ち時間に等しいX個の
非命令イシュー・グループをディスパッチする、すなわち、XはIG2に関して
予想される待ち時間である。スケジューリングにおいてIG2による更新が起き
た場合、すなわち、ブロック68がブロック64または65と同時である場合、
上記の第1の更新公式は後者のイシュー・グループの待ち時間を多く見積もりす
ぎた可能性がある。たとえば、次のイシュー・グループIG3はIG2に関して
X個の非命令イシュー・グループがディスパッチされている間、命令待ち行列5
8の中で待つ。レジスタ待ち時間表10の予想は、IG2のディスパッチと完了
の間の時間を考慮するが、X個の非命令がディスパッチされている間の待ち時間
は考慮しない。
間に待ち時間表を更新するための第2の公式は2つのステップを有する。まず、
スケジューラ56はIG2の予想される待ち時間Xをレジスタ待ち時間表10の
予想されるレジスタ待ち時間のすべてから差し引く。負の予想されるレジスタ待
ち時間はゼロと見なされる。第2に、スケジューラ56は残りの予想されるレジ
スタ待ち時間とイシュー・グループIG2の待ち時間のうち大きい方によってレ
ジスタ待ち時間表10の各残りの予想されるレジスタ待ち時間を置き換える。こ
れはレジスタに書き込まれる。第2の公式を使用する実施形態はより短い待ち時
間を、続くイシュー・グループすなわちIG3にあてることができる。
ーチャートである。ブロック71で、スケジューラ56はリネーマ54から新し
い命令のイシュー・グループを受け取る。ブロック72で、スケジューラ56は
レジスタ待ち時間表10の中の予想されるレジスタ待ち時間から、イシュー・グ
ループに関して予想される待ち時間を決定する。一実施形態では、予想される待
ち時間はレジスタ32、33、34の一部の最大の待ち時間であり、これはイシ
ュー・グループの命令のソース・オペランドである。ブロック73では、スケジ
ューラ56はイシュー・グループおよび予想される待ち時間を、命令待ち行列5
8内の次の位置に書き込む。ブロック74では、命令待ち行列58はイシュー・
グループの予想される待ち時間が終了したことに応答して、イシュー・グループ
を実行ユニット46、48にディスパッチする。ブロック75では、スケジュー
ラ56はイシュー・グループがレジスタ32、33、34のそれぞれに書き込む
かどうかを決定する。ブロック76では、スケジューラ56はディスパッチされ
たイシュー・グループによって書き込まれると決定されたレジスタ32、33、
34の一部の待ち時間を更新する。ブロック77では、クロック20はクロック
・パルスに応答して、レジスタ待ち時間表10のレジスタ32、33、34のイ
シュー・グループによって書き込まれない一部の待ち時間を減少させる。ブロッ
ク76、77で実行される待ち時間の更新および減少は、ブロック72において
続くイシュー・グループのスケジューリングに関して、レジスタ待ち時間表10
内の待ち時間を「追跡」する。
100の一実施形態を示す。回線102は入力待ち時間ベクトルをレジスタ待ち
時間表10へ運ぶ。回線102はマルチプレクサ(MUX)104の入力の第1
の組に接続する。MUX104の出力はレジスタ待ち時間表10の書込みポート
108および、シャドウ・レジスタ112の第1の組の書込みポート110に接
続する。図1および図3に示されるように、シャドウ・レジスタ112の第1の
組は、レジスタ待ち時間表10の各行14、16、18に関して別のレジスタを
有する。シャドウ・レジスタ112の第1の組は、直列に接続された出力および
入力を有するシャドウ・レジスタ112、116と同じ組の列114の第1の成
分である。クロック122はシャドウ・レジスタ112、116のイネーブル入
力118、120を制御し、その結果、クロック・パルスにより、データは列1
14に送られるようにされる。図示された列114は、Qクロック・パルスだけ
遅延されているレジスタ待ち時間表10の状態を出力する。シャドウ・レジスタ
116の最後の組の出力124は、MUX104の入力126の第2の組に接続
する。再生制御128は、入力待ち時間ベクトルに関して回線102を選択する
か、または、シャドウ列114によって遅延された待ち時間ベクトル、すなわち
再生された待ち時間ベクトル関して第2の入力126を選択するかのいずれかで
ある。
格納するか、または回線126からレジスタ待ち時間表10へクロック122の
Qサイクルだけ遅延された古い待ち時間ベクトルを再コピーするかのいずれかを
選択することができる。列114のシャドウ・レジスタ112、116の組のそ
れぞれは、再生された待ち時間ベクトルを、クロック122の1サイクル分だけ
遅延する。再生制御128は、例外または実行エラーに応答して、遅延された待
ち時間ベクトルをレジスタ待ち時間表10に再コピーすることを選択する。再コ
ピーのステップは、図4Bのパイプライン62の残りをレジスタ待ち時間表10
の遅延されたコピーで再生することによって、REステージの後のパイプライン
ステージに発生するエラーおよび(1つまたは複数の)例外からの回復を可能に
する。ハードウェア(図示せず)が例外および/またはエラーを検出し、再生を
順序づけるための時間遅延は、必要な遅延および列114の長さを決定する。し
たがって、列114の長さは実装態様に依存する。
ち時間ベクトルの再生は、例外エラーおよび/または実行エラーを処理および/
または修正するように順序づけられる場合がある。レジスタ待ち時間表10は、
イシュー・グループに関連づけられたより早い状態に戻り、再ディスパッチされ
再実行されて、図4A〜4Bのストール不能パイプライン50、62内の例外エ
ラーおよび/または実行エラーから回復する。再生構造100は、図1、図3、
図4Aのレジスタ待ち時間表の待ち時間ベクトルを遅延し再生する手段であり、
再生によって図4Bのストール不能パイプライン62内の実行例外およびエラー
を処理するための実施形態でもある。
を再生する方法134を示すフローチャートである。ブロック135では、図3
または図4Aのプロセッサ30、50はREステージの後に図4Bのパイプライ
ン62の一部の再生をするかどうかを決定し、たとえば、実行例外またはエラー
から回復する。ブロック136では、図3または図4Aのプロセッサ30、50
が再生することを決定した場合に、再生制御128はMUX104へ新しい待ち
時間ベクトル、すなわち、更新を運ぶ回線102を選択する。ブロック138で
は、スケジューラ56は新しい待ち時間ベクトルをレジスタ待ち時間表10に書
き込むことによって、レジスタ待ち時間表10を更新する。スケジューラ56は
同時に、その更新をシャドウ・レジスタ112の第1の組に書き込む。ブロック
140では、クロック122からのタイミング・パルスは、待ち時間ベクトルを
シャドウ・レジスタ112、116の組の列114へ送る。ブロック142では
、再生コントローラ128はMUX104の第2の入力126を選択し、REス
テージの後に、図4Aのプロセッサ50がパイプライン62の再生を決定したこ
とに応答して、シャドウ・レジスタ116の最後の組から遅延された待ち時間ベ
クトルを受け取る。ブロック144では、再生構造100は、MUX104から
再生された待ち時間ベクトルで、レジスタ待ち時間表10およびシャドウ・レジ
スタ112の第1の組を更新する。図4Aの命令待ち行列58は次いで、レジス
タ待ち時間表10に関して再コピーされ遅延された入力に関連づけられたイシュ
ー・グループを再ディスパッチすることによって再生を開始する。
ングして、実行の時にオペランドを使用可能にするメカニズムを提供する。この
メカニズムはパイプラインをストールする必要なくイシュー・グループが使用可
能になり実行できるように、オペランドの予想される使用可能度を前もって決定
し、必要であれば非命令をディスパッチする。したがって、本発明はこれに限定
されるものではないが、本発明はストールではなく再生を使用しているようなス
トール不能なパイプラインで特に役に立つ。本発明はこのようなストール不能な
パイプラインで、これまでは非ユニット待ち時間の命令に直面した時にパイプラ
インをストールすることによって導入されてきた遅延の導入を可能にする。
方法で修正、実行できるため、上記に開示された特定の実施形態は例示のための
ものである。さらに、ここに示された構造または設計の詳細は、首記の請求項で
記述される以外の限定を目的としていない。したがって、上記に開示された特定
の実施形態は変更または修正される可能性があり、このような変形例のすべては
本発明の範囲と精神の中にあることは明らかである。したがって、ここで求めら
れている保護は首記の請求項で示されている通りのものである。
トルを更新するための一実施形態を示す図である。
ニット上で実行するプロセッサの一部を示す図である。
の高い構成図である。
る方法を示すフローチャートである。
る。
することによって、レジスタ待ち時間表内で待ち時間ベクトルを再生するための
構造を示す図である。
Claims (47)
- 【請求項1】 クロックと、 複数の行および1つまたは複数のポートを有する電子ハードウェア構造であっ
て、各行が前記ポートのうち1つのポートを介して書き込まれた待ち時間ベクト
ルを記録するように構成され、格納された待ち時間ベクトルは前記クロックに応
答する電子ハードウェア構造とを備える装置。 - 【請求項2】 各行が、前記クロックに電気的に接続されたシフト制御をさ
らに備えたシフト・レジスタを含む請求項1に記載の装置。 - 【請求項3】 複数のレジスタをさらに備え、 各行が有限な状態マシンである請求項1に記載の装置。
- 【請求項4】 待ち時間ベクトルが、スケジューリングされた命令およびス
ケジューリングされた命令のイシュー・グループのうちの1つの予想される待ち
時間である請求項3に記載の装置。 - 【請求項5】 前記複数のレジスタがレジスタ・ファイルに属し、前記レジ
スタ・ファイルおよび前記電子ハードウェア構造が同じ数の読出しポートおよび
同じ数の書込みポートを有する請求項3に記載の装置。 - 【請求項6】 前記複数のレジスタがレジスタ・ファイルに属し、前記レジ
スタ・ファイルおよび前記電子ハードウェア構造が同じ数の行を有し、前記行の
数が前記レジスタ・ファイル内のレジスタの数である請求項3に記載の装置。 - 【請求項7】 少なくとも1つの実行ユニットと、 命令のオペランドに関する前記待ち時間ベクトルが、前記オペランドが使用可
能であるという予想を提供したことに応答して前記実行ユニットに命令をディス
パッチするデバイスとをさらに備える請求項1に記載の装置。 - 【請求項8】 少なくとも1つの別の実行ユニットと、待ち時間ベクトルが
イシュー・グループの命令のオペランドが使用可能であるという予想を提供した
ことに応答して前記実行ユニットに前記イシュー・グループをディスパッチする
ためのデバイスとをさらに備える請求項7に記載の装置。 - 【請求項9】 あらかじめ選択された数のクロック・サイクルだけ入力信号
を遅延させるように構成されたシャドウ・レジスタの組の列であって、各組が電
子ハードウェア構造の各行に対して1つのレジスタを有する一連のシャドウ・レ
ジスタの組の列と、 マルチプレクサであって第1の入力、第2の入力および出力を有し、前記第1
の入力は待ち時間ベクトルを受け取り、前記第2の入力は前記シャドウ・レジス
タの組の列の出力から信号を受け取り、前記マルチプレクサの出力は、前記電子
ハードウェア構造と前記シャドウ・レジスタの組の列の両方の入力に並列に接続
されているマルチプレクサをさらに備える請求項1に記載の装置。 - 【請求項10】 前記電子ハードウェア構造内の前記待ち時間ベクトルを遅
延し再生するための手段をさらに備える請求項1に記載の装置。 - 【請求項11】 複数のレジスタを含むレジスタ・ファイルと、 命令を実行する複数の実行ユニットであって、前記命令の一部が前記レジスタ
から読出しと書込みのうち1つを実行する複数の実行ユニットと、 前記レジスタの予想されるレジスタ待ち時間を追跡するレジスタ待ち時間表と
、 前記レジスタ待ち時間表の待ち時間を更新するクロックと を備えるプロセッサ。 - 【請求項12】 前記レジスタ待ち時間表および前記レジスタ・ファイルが
両方とも、前記レジスタのそれぞれに関して1つの行を有する請求項11に記載
のプロセッサ。 - 【請求項13】 前記レジスタ待ち時間表および前記レジスタ・ファイルが
、同じ数の読出しポートおよび同じ数の書込みポートを有する請求項12に記載
のプロセッサ。 - 【請求項14】 前記レジスタ待ち時間表の前記予想されるレジスタ待ち時
間を使用してイシュー・グループをスケジューリングし、前記実行ユニットへデ
ィスパッチするスケジューラをさらに備える請求項11に記載のプロセッサ。 - 【請求項15】 前記スケジューラがイシュー・グループをスケジューリン
グしてディスパッチし、前記ディスパッチが前記イシュー・グループの命令の前
記レジスタの一部の前記予想されるレジスタ待ち時間が終了したことに応答して
実行される請求項14に記載のプロセッサ。 - 【請求項16】 さらに命令待ち行列を備え、前記スケジューラは第1のイ
シュー・グループおよび前記第1のイシュー・グループの予想される待ち時間を
前記命令待ち行列に書き込むように構成され、前記命令待ち行列は前記第1のイ
シュー・グループの前記予想される待ち時間のカウントダウンに応答して前記第
1のイシュー・グループをディスパッチする請求項14に記載のプロセッサ。 - 【請求項17】 前記実行ユニット、前記スケジューラ、および前記命令待
ち行列がパイプラインの要素であり、前記パイプラインはストール不能である請
求項16に記載のプロセッサ。 - 【請求項18】 あらかじめ選択された数のクロック・サイクルだけ入力信
号を遅延するシャドウ・レジスタの組の列と、 待ち時間ベクトルを受け取る第1の入力およびシャドウ・レジスタの組の列か
ら前記信号を受け取る第2の入力を有するマルチプレクサであって、前記マルチ
プレクサの出力は前記レジスタ待ち時間表の入力とシャドウ・レジスタの組の列
の出力の両方に並列に接続されているマルチプレクサとをさらに備える請求項1
1に記載のプロセッサ。 - 【請求項19】 選択された実行エラーおよび例外に応答して前記マルチプ
レクサの前記第2の入力を選択するように構成された再生コントローラをさらに
備える請求項18に記載のプロセッサ。 - 【請求項20】 複数の予想される待ち時間をレジスタ待ち時間表の、特定
のレジスタに対応する行の一部に更新するステップと、 クロック・パルスに応答して前記行のうち他の行に残っている予想される待ち
時間を削減するステップと を含むプロセッサ内で命令をディスパッチする方法。 - 【請求項21】 前記行の第2の部分の予想される待ち時間を読み出し、前
記行の第2の部分は第1のイシュー・グループの命令に割り当てられたレジスタ
の一部に対応するステップと、 前記行の前記第2の部分の予想される待ち時間の読出しが終了したことに応答
して、前記第1のイシュー・グループをディスパッチして実行するステップとを
さらに含む請求項20に記載の方法。 - 【請求項22】 前記第1のイシュー・グループが命令を1つだけ含む請求
項21に記載の方法。 - 【請求項23】 前記予想される待ち時間を更新する作用が1つまたは複数
の命令のスケジューリングに応答し、前記1つまたは複数の命令のそれぞれは前
記特定のレジスタのうち1つを読み出す命令および前記特定のレジスタのうち1
つに書き込む命令である請求項20に記載の方法。 - 【請求項24】 前記更新の作用が命令の第2のイシュー・グループのスケ
ジューリングに応答して実行され、前記第2のイシュー・グループは前記特定の
レジスタに書き込む請求項20に記載の方法。 - 【請求項25】 前記第2のイシュー・グループが前記行のうち他の行に対
応するレジスタに書き込まないことを決定したことに応答して、前記削減の作用
が前記行のうち他の行に対して実行される請求項24に記載の方法。 - 【請求項26】 予想される待ち時間を更新する前記作用が、1つまたは複
数の命令をディスパッチする前記作用に応答し、前記1つまたは複数の命令のそ
れぞれは、前記特定のレジスタのうち1つを読み出すことおよび前記特定のレジ
スタのうち1つに書き込むことのうち1つを実行する請求項21に記載の方法。 - 【請求項27】 前記ディスパッチの作用に、前記第1のイシュー・グルー
プの各命令を異なる実行ポートに送ることを含む請求項21に記載の方法。 - 【請求項28】 前記第1のイシュー・グループの前記命令を命令待ち行列
の行に書き込むステップをさらに含み、 前記ディスパッチの作用が、前記行の前記命令の前記予想されるレジスタ待ち
時間が終了したことに応答して、前記命令待ち行列のうち1つの行からすべての
命令を送って実行する請求項21に記載の方法。 - 【請求項29】 前記更新、読出し、ディスパッチ、書込みの作用が、結果
を次のステージに転送する前に前記プロセッサの次のステージが準備されている
かどうかを決定することを含まない請求項28に記載の方法。 - 【請求項30】 命令のイシュー・グループを受け取るステップと、 前記イシュー・グループの前記命令に割り当てられた前記レジスタの一部の予
想される待ち時間から前記イシュー・グループに関して予想される待ち時間を決
定するステップと、 前記イシュー・グループによって書き込まれるレジスタの予想されるレジスタ
待ち時間を更新し、前記イシュー・グループに関する前記予想される待ち時間は
前記予想されるレジスタ待ち時間の更新を決定するステップと、 前記イシュー・グループを命令待ち行列に書き込むステップと、 前記イシュー・グループに関して予想される待ち時間が終了したことに応答し
て、前記イシュー・グループをディスパッチし実行するステップと を含むプロセッサ内で命令を実行する方法。 - 【請求項31】 命令に関して予想される前記待ち時間が、前記命令のソー
ス・レジスタが使用可能になる時の静的な予想である請求項30に記載の方法。 - 【請求項32】 クロック・パルスに応答して前記予想されるレジスタ待ち
時間を追跡するステップをさらに含む請求項30に記載の方法。 - 【請求項33】 前記書込みの作用が、前記イシュー・グループを前記命令
待ち行列のシーケンス上で次の位置に置き、前記ディスパッチの作用が、より先
のイシュー・グループがディスパッチされた後で前記書き込まれたイシュー・グ
ループを送る請求項30に記載の方法。 - 【請求項34】 前記予想されるレジスタ待ち時間を更新する前記作用が、
イシュー・グループをディスパッチして実行することに応答して実行される請求
項30に記載の方法。 - 【請求項35】 前記受け取り、更新、決定、置くこと、ディスパッチの作
用が、結果を次のステージに転送する前に前記プロセッサの次のステージが準備
されているかどうかを決定することを含まない請求項30に記載の方法。 - 【請求項36】 命令を検索する命令フェッチ・ユニットと、 複数のレジスタと、 前記レジスタの予想されるレジスタ待ち時間を追跡するレジスタ待ち時間表と
、 複数の命令のイシュー・グループを格納する命令待ち行列と、 前記命令待ち行列から受け取られた各イシュー・グループの前記命令を並列に
実行するように整列された複数の実行ユニットと、 前記イシュー・グループを前記命令待ち行列に書き込むスケジューラであって
、前記命令待ち行列は特定のイシュー・グループの予想される待ち時間が終了し
たことに応答して前記特定のイシュー・グループをディスパッチするスケジュー
ラと を備えるプロセッサ。 - 【請求項37】 前記スケジューラが前記イシュー・グループに関して予想
される待ち時間を決定し、かつ前記予想される待ち時間を前記命令待ち行列に書
き込む請求項36に記載のプロセッサ。 - 【請求項38】 前記イシュー・グループのうち第1のイシュー・グループ
の予想される待ち時間が、前記イシュー・グループのうち第1のイシュー・グル
ープの命令のソース・オペランドとして現れるレジスタの予想されるレジスタ待
ち時間のうちで最大である請求項37に記載のプロセッサ。 - 【請求項39】 前記レジスタ待ち時間表が、所与の命令のディスパッチに
応答して所与のレジスタの予想されるレジスタ待ち時間を更新するように構成さ
れ、前記所与の命令は前記所与のレジスタへ書き込むかそこから読み出すかのい
ずれかである請求項36に記載のプロセッサ。 - 【請求項40】 前記レジスタ待ち時間表が、クロック・パルスに応答して
前記予想されるレジスタ待ち時間を追跡するように構成されている請求項36に
記載のプロセッサ。 - 【請求項41】 前記命令待ち行列が、先入れ先出し法で前記実行ユニット
にイシュー・グループをディスパッチするように構成されている請求項36に記
載のプロセッサ。 - 【請求項42】 あらかじめ選択された数のクロック・サイクルだけ入力信
号を遅延するように構成された1つまたは複数のシャドウ・レジスタの組を備え
る列であって、前記組の1つのレジスタは前記レジスタ待ち時間表の各行に対応
する列と、 待ち時間ベクトルを受け取るための第1の入力および前記列の最後の組から信
号を受け取るための第2の入力を有するマルチプレクサであって、前記マルチプ
レクサの出力は、前記レジスタ待ち時間表の入力とシャドウ・レジスタの組の列
の両方の入力に並列に接続されているマルチプレクサとをさらに備える請求項3
6に記載のプロセッサ。 - 【請求項43】 前記予想されるレジスタ待ち時間の前記更新を遅延するた
めの手段と、実行例外およびエラーのうち1つに応答して前記予想されるレジス
タ待ち時間を再生するための手段とをさらに備える請求項39に記載のプロセッ
サ。 - 【請求項44】 前記プロセッサがストール不能なパイプラインの形を有す
る請求項39に記載のプロセッサ。 - 【請求項45】 イシュー・グループのスケジューリングに応答して、レジ
スタ待ち時間表およびシャドウ・レジスタの組の列の両方に、命令のイシュー・
グループに割り当てられたレジスタの一部の待ち時間ベクトルを書き込むステッ
プと、 前記実行ユニットが使用可能であるかどうかを決定せずに前記イシュー・グル
ープを実行ユニットへディスパッチするステップと、 前記列へ書き込まれる待ち時間ベクトルをあらかじめ選択された時間だけ遅延
するステップと、 前記イシュー・グループの実行に応答して、実行例外およびエラーのうち1つ
を検出することに応答して前記列から前記レジスタ待ち時間表に前記遅延された
待ち時間ベクトルを書き込むステップと を含む命令を実行し再生する方法。 - 【請求項46】 前記命令の前記一部にある実行例外およびエラーのうち1
つを検出することに応答して、前記イシュー・グループの前記命令の一部を前記
実行ユニットに再ディスパッチするステップをさらに含む請求項45に記載の方
法。 - 【請求項47】 次にディスパッチされるべきイシュー・グループがゼロ以
外の予想される待ち時間を有することを決定したことに応答して、非命令のイシ
ュー・グループを前記実行ユニットにディスパッチするステップをさらに含む請
求項46に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/132,043 | 1998-08-11 | ||
US09/132,043 US6035389A (en) | 1998-08-11 | 1998-08-11 | Scheduling instructions with different latencies |
PCT/US1999/017948 WO2000010076A1 (en) | 1998-08-11 | 1999-08-10 | Scheduling instructions with different latencies |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2002522841A true JP2002522841A (ja) | 2002-07-23 |
JP2002522841A5 JP2002522841A5 (ja) | 2006-09-14 |
JP3984786B2 JP3984786B2 (ja) | 2007-10-03 |
Family
ID=22452183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000565456A Expired - Fee Related JP3984786B2 (ja) | 1998-08-11 | 1999-08-10 | 異なる待ち時間を伴う命令のスケジューリング |
Country Status (6)
Country | Link |
---|---|
US (1) | US6035389A (ja) |
JP (1) | JP3984786B2 (ja) |
CN (1) | CN1138205C (ja) |
AU (1) | AU5550699A (ja) |
HK (1) | HK1041947B (ja) |
WO (1) | WO2000010076A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012173755A (ja) * | 2011-02-17 | 2012-09-10 | Nec Computertechno Ltd | 情報処理装置及び情報処理方法 |
Families Citing this family (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3881763B2 (ja) * | 1998-02-09 | 2007-02-14 | 株式会社ルネサステクノロジ | データ処理装置 |
US6304953B1 (en) * | 1998-07-31 | 2001-10-16 | Intel Corporation | Computer processor with instruction-specific schedulers |
US6219781B1 (en) * | 1998-12-30 | 2001-04-17 | Intel Corporation | Method and apparatus for performing register hazard detection |
US6304955B1 (en) * | 1998-12-30 | 2001-10-16 | Intel Corporation | Method and apparatus for performing latency based hazard detection |
US6631452B1 (en) * | 2000-04-28 | 2003-10-07 | Idea Corporation | Register stack engine having speculative load/store modes |
US7127422B1 (en) * | 2000-05-19 | 2006-10-24 | Etp Holdings, Inc. | Latency monitor |
US20040064678A1 (en) * | 2002-09-30 | 2004-04-01 | Black Bryan P. | Hierarchical scheduling windows |
US20040064679A1 (en) * | 2002-09-30 | 2004-04-01 | Black Bryan P. | Hierarchical scheduling windows |
US7454747B2 (en) * | 2003-02-07 | 2008-11-18 | Sun Microsystems, Inc. | Determining maximum acceptable scheduling load latency using hierarchical search |
US20040158694A1 (en) * | 2003-02-10 | 2004-08-12 | Tomazin Thomas J. | Method and apparatus for hazard detection and management in a pipelined digital processor |
US7590063B2 (en) * | 2003-11-10 | 2009-09-15 | Honeywell International Inc. | Real-time estimation of event-driven traffic latency distributions when layered on static schedules |
US7502912B2 (en) * | 2003-12-30 | 2009-03-10 | Intel Corporation | Method and apparatus for rescheduling operations in a processor |
US20050147036A1 (en) * | 2003-12-30 | 2005-07-07 | Intel Corporation | Method and apparatus for enabling an adaptive replay loop in a processor |
US20050216900A1 (en) * | 2004-03-29 | 2005-09-29 | Xiaohua Shi | Instruction scheduling |
US7257700B2 (en) * | 2004-06-03 | 2007-08-14 | Sun Microsystems, Inc. | Avoiding register RAW hazards when returning from speculative execution |
US7418625B2 (en) * | 2004-09-09 | 2008-08-26 | Broadcom Corporation | Deadlock detection and recovery logic for flow control based data path design |
US7953959B2 (en) * | 2005-06-15 | 2011-05-31 | Panasonic Corporation | Processor |
US20160098279A1 (en) * | 2005-08-29 | 2016-04-07 | Searete Llc | Method and apparatus for segmented sequential storage |
GB2447907B (en) * | 2007-03-26 | 2009-02-18 | Imagination Tech Ltd | Processing long-latency instructions in a pipelined processor |
US7913067B2 (en) * | 2008-02-20 | 2011-03-22 | International Business Machines Corporation | Method and system for overlapping execution of instructions through non-uniform execution pipelines in an in-order processor |
US20090271237A1 (en) * | 2008-04-28 | 2009-10-29 | Rail Insight, Llc | Optimizing Rail Shipments for Commodity Transactions |
US9311593B2 (en) | 2010-03-26 | 2016-04-12 | Brain Corporation | Apparatus and methods for polychronous encoding and multiplexing in neuronal prosthetic devices |
US8315305B2 (en) * | 2010-03-26 | 2012-11-20 | Brain Corporation | Systems and methods for invariant pulse latency coding |
US9122994B2 (en) | 2010-03-26 | 2015-09-01 | Brain Corporation | Apparatus and methods for temporally proximate object recognition |
US9405975B2 (en) | 2010-03-26 | 2016-08-02 | Brain Corporation | Apparatus and methods for pulse-code invariant object recognition |
US9193075B1 (en) | 2010-08-26 | 2015-11-24 | Brain Corporation | Apparatus and methods for object detection via optical flow cancellation |
US9070039B2 (en) | 2013-02-01 | 2015-06-30 | Brian Corporation | Temporal winner takes all spiking neuron network sensory processing apparatus and methods |
US9047568B1 (en) | 2012-09-20 | 2015-06-02 | Brain Corporation | Apparatus and methods for encoding of sensory data using artificial spiking neurons |
US9098811B2 (en) | 2012-06-04 | 2015-08-04 | Brain Corporation | Spiking neuron network apparatus and methods |
TWI643063B (zh) * | 2012-03-06 | 2018-12-01 | 智邦科技股份有限公司 | Detection method |
US9224090B2 (en) | 2012-05-07 | 2015-12-29 | Brain Corporation | Sensory input processing apparatus in a spiking neural network |
US9129221B2 (en) | 2012-05-07 | 2015-09-08 | Brain Corporation | Spiking neural network feedback apparatus and methods |
US9412041B1 (en) | 2012-06-29 | 2016-08-09 | Brain Corporation | Retinal apparatus and methods |
US9311594B1 (en) | 2012-09-20 | 2016-04-12 | Brain Corporation | Spiking neuron network apparatus and methods for encoding of sensory data |
US9218563B2 (en) | 2012-10-25 | 2015-12-22 | Brain Corporation | Spiking neuron sensory processing apparatus and methods for saliency detection |
US9111226B2 (en) | 2012-10-25 | 2015-08-18 | Brain Corporation | Modulated plasticity apparatus and methods for spiking neuron network |
US9183493B2 (en) | 2012-10-25 | 2015-11-10 | Brain Corporation | Adaptive plasticity apparatus and methods for spiking neuron network |
US9275326B2 (en) | 2012-11-30 | 2016-03-01 | Brain Corporation | Rate stabilization through plasticity in spiking neuron network |
US9123127B2 (en) | 2012-12-10 | 2015-09-01 | Brain Corporation | Contrast enhancement spiking neuron network sensory processing apparatus and methods |
US9177245B2 (en) | 2013-02-08 | 2015-11-03 | Qualcomm Technologies Inc. | Spiking network apparatus and method with bimodal spike-timing dependent plasticity |
US9009545B2 (en) * | 2013-06-14 | 2015-04-14 | International Business Machines Corporation | Pulsed-latch based razor with 1-cycle error recovery scheme |
US9436909B2 (en) | 2013-06-19 | 2016-09-06 | Brain Corporation | Increased dynamic range artificial neuron network apparatus and methods |
US9239985B2 (en) | 2013-06-19 | 2016-01-19 | Brain Corporation | Apparatus and methods for processing inputs in an artificial neuron network |
US11210098B2 (en) * | 2013-07-15 | 2021-12-28 | Texas Instruments Incorporated | Variable latency instructions |
US9552546B1 (en) | 2013-07-30 | 2017-01-24 | Brain Corporation | Apparatus and methods for efficacy balancing in a spiking neuron network |
US9489623B1 (en) | 2013-10-15 | 2016-11-08 | Brain Corporation | Apparatus and methods for backward propagation of errors in a spiking neuron network |
US10194163B2 (en) | 2014-05-22 | 2019-01-29 | Brain Corporation | Apparatus and methods for real time estimation of differential motion in live video |
US9939253B2 (en) | 2014-05-22 | 2018-04-10 | Brain Corporation | Apparatus and methods for distance estimation using multiple image sensors |
US9713982B2 (en) | 2014-05-22 | 2017-07-25 | Brain Corporation | Apparatus and methods for robotic operation using video imagery |
US9848112B2 (en) | 2014-07-01 | 2017-12-19 | Brain Corporation | Optical detection apparatus and methods |
US10057593B2 (en) | 2014-07-08 | 2018-08-21 | Brain Corporation | Apparatus and methods for distance estimation using stereo imagery |
US10055850B2 (en) | 2014-09-19 | 2018-08-21 | Brain Corporation | Salient features tracking apparatus and methods using visual initialization |
US9881349B1 (en) | 2014-10-24 | 2018-01-30 | Gopro, Inc. | Apparatus and methods for computerized object identification |
US9563428B2 (en) * | 2015-03-26 | 2017-02-07 | International Business Machines Corporation | Schedulers with load-store queue awareness |
US10197664B2 (en) | 2015-07-20 | 2019-02-05 | Brain Corporation | Apparatus and methods for detection of objects using broadband signals |
TWI587218B (zh) * | 2016-09-10 | 2017-06-11 | 財團法人工業技術研究院 | 記憶體事務層級模型模擬方法及系統 |
US10558460B2 (en) * | 2016-12-14 | 2020-02-11 | Qualcomm Incorporated | General purpose register allocation in streaming processor |
CN108334326A (zh) * | 2018-02-06 | 2018-07-27 | 江苏华存电子科技有限公司 | 一种低延迟指令调度器的自动管理方法 |
US11263013B2 (en) * | 2020-04-07 | 2022-03-01 | Andes Technology Corporation | Processor having read shifter and controlling method using the same |
US11829767B2 (en) | 2022-01-30 | 2023-11-28 | Simplex Micro, Inc. | Register scoreboard for a microprocessor with a time counter for statically dispatching instructions |
US11954491B2 (en) | 2022-01-30 | 2024-04-09 | Simplex Micro, Inc. | Multi-threading microprocessor with a time counter for statically dispatching instructions |
US11829187B2 (en) * | 2022-01-30 | 2023-11-28 | Simplex Micro, Inc. | Microprocessor with time counter for statically dispatching instructions |
US11829762B2 (en) | 2022-01-30 | 2023-11-28 | Simplex Micro, Inc. | Time-resource matrix for a microprocessor with time counter for statically dispatching instructions |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5404469A (en) * | 1992-02-25 | 1995-04-04 | Industrial Technology Research Institute | Multi-threaded microprocessor architecture utilizing static interleaving |
US5657315A (en) * | 1995-06-01 | 1997-08-12 | International Business Machines Corporation | System and method for ring latency measurement and correction |
US5745724A (en) * | 1996-01-26 | 1998-04-28 | Advanced Micro Devices, Inc. | Scan chain for rapidly identifying first or second objects of selected types in a sequential list |
US5828868A (en) * | 1996-11-13 | 1998-10-27 | Intel Corporation | Processor having execution core sections operating at different clock rates |
-
1998
- 1998-08-11 US US09/132,043 patent/US6035389A/en not_active Expired - Lifetime
-
1999
- 1999-08-10 WO PCT/US1999/017948 patent/WO2000010076A1/en active Application Filing
- 1999-08-10 CN CNB998120030A patent/CN1138205C/zh not_active Expired - Fee Related
- 1999-08-10 AU AU55506/99A patent/AU5550699A/en not_active Abandoned
- 1999-08-10 JP JP2000565456A patent/JP3984786B2/ja not_active Expired - Fee Related
-
2002
- 2002-05-14 HK HK02103640.6A patent/HK1041947B/zh not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012173755A (ja) * | 2011-02-17 | 2012-09-10 | Nec Computertechno Ltd | 情報処理装置及び情報処理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1138205C (zh) | 2004-02-11 |
US6035389A (en) | 2000-03-07 |
JP3984786B2 (ja) | 2007-10-03 |
WO2000010076A1 (en) | 2000-02-24 |
AU5550699A (en) | 2000-03-06 |
HK1041947A1 (en) | 2002-07-26 |
CN1323412A (zh) | 2001-11-21 |
HK1041947B (zh) | 2004-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2002522841A (ja) | 異なる待ち時間を伴う命令のスケジューリング | |
JP3014773B2 (ja) | プロセサアーキテクチャ | |
JP5431308B2 (ja) | システムおよびパイプラインプロセッサにおける条件命令実行の加速のためのローカル条件コードレジスタの使用方法 | |
US8074060B2 (en) | Out-of-order execution microprocessor that selectively initiates instruction retirement early | |
JP3093639B2 (ja) | プロセッサ内の資源割当て追跡方法及びそのシステム | |
JP3561915B2 (ja) | スーパースカラ型プロセサにおいて命令処理を制御するためタグを割り当てるシステム及び方法 | |
JP2937485B2 (ja) | スーパースカラプロセッサにおけるトラップを検出して実行する方法及び装置 | |
EP0437044B1 (en) | Data processing system with instruction tag apparatus | |
US6336183B1 (en) | System and method for executing store instructions | |
JP3919802B2 (ja) | プロセッサ、およびプロセッサにおいて命令演算をスケジューリングするための方法 | |
JP5209933B2 (ja) | データ処理装置 | |
US7603543B2 (en) | Method, apparatus and program product for enhancing performance of an in-order processor with long stalls | |
JPH07160501A (ja) | データ処理システム | |
JPH096611A (ja) | データ処理システムにおけるデータをバッファリングする方法およびシステム | |
JP2653037B2 (ja) | データ処理システム | |
KR20190033084A (ko) | 로드 스토어 유닛들을 바이패싱하여 스토어 및 로드 추적 | |
EP0745241B1 (en) | Exception recovery in a data processing system | |
US6324640B1 (en) | System and method for dispatching groups of instructions using pipelined register renaming | |
US6345356B1 (en) | Method and apparatus for software-based dispatch stall mechanism for scoreboarded IOPs | |
JPH06110688A (ja) | 複数の順序外れ命令を並行処理するためのコンピュータ・システム | |
JP3611304B2 (ja) | 1サイクルのパイプライン・ストールを生成するパイプライン・プロセッサのシステム及び方法 | |
CN1124546C (zh) | 一种超标量处理器及在该超标量处理器中完成指令的方法 | |
US7302553B2 (en) | Apparatus, system and method for quickly determining an oldest instruction in a non-moving instruction queue | |
JP2001142700A (ja) | パイプラインプロセッサにおける電力有効処理メカニズム | |
JP2001142702A (ja) | パイプラインプロセッサにおける制御空間への高速アクセスメカニズム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060720 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060720 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070201 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070213 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070514 |
|
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: 20070612 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070709 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100713 Year of fee payment: 3 |
|
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: 20110713 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |