JP2004508607A - 例外ルーチンを有するプロセッサのレジスタライトトラフィックを減じる装置及び方法 - Google Patents
例外ルーチンを有するプロセッサのレジスタライトトラフィックを減じる装置及び方法 Download PDFInfo
- Publication number
- JP2004508607A JP2004508607A JP2001560791A JP2001560791A JP2004508607A JP 2004508607 A JP2004508607 A JP 2004508607A JP 2001560791 A JP2001560791 A JP 2001560791A JP 2001560791 A JP2001560791 A JP 2001560791A JP 2004508607 A JP2004508607 A JP 2004508607A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- result value
- pipeline
- register file
- execution device
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 13
- 230000008569 process Effects 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 2
- 230000003139 buffering effect Effects 0.000 claims 1
- 230000006870 function Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000000126 substance Substances 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
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- 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/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
-
- 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
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)
- Executing Machine-Instructions (AREA)
- Computer And Data Communications (AREA)
Abstract
命令実行装置及び方法が、例外ルーチンを有するプロセッサ内におけるレジスタの書込トラフィックを減じるために開示されている。命令実行装置は、命令に対する結果を生成するために命令パイプラインを含み、そこにおいては例外ルーチンがランダムな間隔で命令パイプラインに割り込み、上記命令実行装置はさらに、上記結果をストアするための書き込みポートを少なくとも1つ有するレジスタファイル及び上記結果にアクセスするためのバイパス回路、上記結果が他の1つの命令だけによって用いられるかどうかを示す手段、上記結果が上記バイパス回路を介してアクセスされ他の1つの命令だけによって用いられる場合に上記結果が前記書き込みポートにストアされるのを防ぐレジスタファイルコントロール、上記結果を蓄えるFIFOバッファ、例外が発生したときに上記FIFOバッファの内容を上記レジスタファイルへ書き込むためのFIFOコントロールをさらに含む。
Description
【0001】
本発明の技術分野
本発明は、デジタル計算回路の分野に関し、特に、例外ルーチンを有するプロセッサに用いられる命令実行装置についてのシステム及び方法に関する。
【0002】
本発明の背景
一般的なモチベーション基準は、電力の消費や装置のサイズ低減させ、さらに全体のコストを低減させるマイクロプロセッサのデザインにある。特にこの点における技術の発展は、多くの同時並行命令を実行する命令実行アーキテクチャの発展であった。
【0003】
上述したタイプの命令実行アーキテクチャを与えるシステム及び方法として、例えばマイクロプロセッサ命令セットアーキテクチャ(ISAs)が知られている。一般的にそのようなISAsの実行においてはいわゆる“パイプライン”手段を用いる。パイプラインは、後続命令の異なる実行ステージを並行処理する。
【0004】
従来の4つのステージのパイプラインは(1)フェッチ(2)デコード(3)実行(4)ライトバックを用いる。ロード命令のようなデータ転送型命令に対しては1つの余分な命令パイプラインステージが通常必要である。
【0005】
そのサイクルの第1のステージにおいてプロセッサはメモリから命令をフェッチする。フェッチするための命令のアドレスは、プログラムカウンタすなわちPCといわれる内部レジスタにストアされている。プロセッサは命令に応答するためにメモリを待っているとき、PCを増加させる。これは、次のサイクルにおけるフェッチフェーズが、メモリにおける次の場所の命令をフェッチすることを意味する(もしPCがそのサイクルの後のフェーズによって変更されなければ)。
【0006】
デーコードフェーズにおいてプロセッサはメモリによって返される情報を別の内部レジスタにおいてストアする。それは命令レジスタすなわちIRとして知られている。IRはバイナリ数として符号化された1つの機械語命令を保持する。プロセッサは、次のステージにおいてどんな動作を実行すべきかを決定するためにIRにおける値をデコードする。
【0007】
実行ステージにおいてプロセッサは実際に命令を実行する。このステップはしばしばさらなるメモリの動作を必要とする。例えば、命令は、プロセッサにメモリから2つのオペランドをフェッチさせ(例えばそれらをオペランドレジスタにストアする)、それらを加算し、その結果値を第3の場所にストアする(そのオペランドと結果値の宛先アドレスはさらに命令の一部として符号化される)。
【0008】
パイプラインのライトバックステージにおいては、パイプラインにおいて上流へ(upstream)計算された結果値はレジスタファイルにおける宛先レジスタに書き込まれる(リタイアされる)。
【0009】
別の従来技術におけるパイプラン手段では、オペランドあるいは結果値をレジスタファイルへバイパスする回路が備えられている。これらのバイパス回路を用いるとオペランド生成命令(operand−producing instructions)がリタイアされる(例えばレジスタファイルへの書き戻し)前に、オペランドあるいは結果値を後続命令に対して容易にすぐに利用できる。
【0010】
最後に、一般的なプロセッサにおいて通常のパイプラインフローに割り込みがシステマティカリーに生じるのには多くの原因がある。これらの割り込みに対する不利益は、失われたあるいは失速したパイプラインサイクルという形であらわれる。特に、例外ルーチンや割り込みは以下のような手段でパイプラインにおける命令フローをしばしば遮る。以下のような手段とは、例外が完了した後に第1の命令がすぐに再び入らないが、第1の命令に続いてパイプラインに入った第2の命令はすぐに再び入るというような手段である。したがって、パイプラインにおける命令のオーダー変化をアカウントするのに複雑さがパイプラインに加えられ、故に命令オペランド及び結果値は適当にオペレートされる。
【0011】
これらのタイプの従来のパイプラインには多くの欠点がある。例えば、従来のパイプライン手段は、十分に多くの同時並行命令を実行するために且つ割り込みの間データをストアするためにしばしば非常に多くのセパレートレジスタをレジスタファイルにおいて必要とする。大きなレジスタファイルは一般的に全電力消費やプロセッササイズに非常に寄与する。
【0012】
したがって、従来技術においては、プロセッサ内における従来のレジスタに対する書込トラフィックを減じさせるために、改善されたシステム及び方法、技術が必要である。それによって全体の消費電力を減じさせ、パイプラインアーキテクチャにおける割り込みの影響を補う。
【0013】
本発明の簡単な要約
本発明の目的は、上述したようなプロセッサ内における従来の命令実行装置におけるいくつかの限界を解決することにある。
【0014】
さらに本発明の目的は、プロセッサ命令セットアーキテクチャを提供することにある。これは、パイプライン手段におけるレジスタファイルの書込動作数を減じさせ、パイプラインアーキテクチャにおける割り込みの影響をアカウントし、有利には、、プロセッサの全体の消費電力を減じる可能性もある。
【0015】
プロセッサにおけるレジスタの書込トラフィックに関連する欠点は減じさせられあるいは打開される。それは、命令実行装置が設けられる本発明の原理に応じた装置によってなされる。命令実行装置は命令に対する結果値を生成するのに命令パイプラインを有し、例外ルーチンがランダムな間隔で命令パイプラインに割り込む。命令実行装置は、結果値をストアするのに少なくとも1つの書込ポートを有するレジスタファイル及び結果値へアクセスするためのバイパス回路、そこにおいては、結果値が1つの他の命令のみによって用いられるかどうかに関してレジスタファイルコントロールに指示が与えられ、上記実行命令装置は、さらに、結果値がパイパス回路を介してアクセスされ且つ1つの他の命令のみによって用いられる場合に結果値が書込ポートにストアされないようにするためのレジスタファイルコントロール、結果値をストアするための先入れ先出し(FIFO)バッファ、例外が発生したときにレジスタファイルにFIFOバッファの内容を書き込むためのFIFOコントロールを有する。
【0016】
本発明のある実施例においては、結果値が1つの他の命令のみによってもちいられるかどうかの指示はそれぞれの命令を符号化する工程を有する。例えば、いわゆる“デッド値”フィールドが、結果値が1つの他の命令のみによって用いられるかどうかを示すために、それぞれの命令の“オペコード(opcode)”に示される。
【0017】
本発明の別の実施例においては、第1の結果値が第2の命令のみによって用いられるかどうかを示すための手段として、命令パイプラインにおける命令の結果値及び命令パイプラインにおける別の命令の別の結果値が、レジスタファイルの同じ書込ポートにおいてストアのために指定されるかどうかを判断する命令パイプラインを有する。レジスタファイルにおける書込ポートが命令パイプラインにおいてすぐに後続命令によって“再利用”されるのだから、これは、第1の結果値が1つの他の命令のみによって用いられるということを示すのに用いられる。
【0018】
本発明のこれらの及びその他の、実施例及び特徴は以下の詳細な開示において実証される。
【0019】
好ましい実施例の詳細な説明
以下の詳細な説明のいくつかの部分はプログラムすなわちアルゴリズムの観点から、そしてコンピュータメモリ内のデータビットとしての演算記号表現の観点から述べられている。これらのアルゴリズム的な記述や表現は、データ処理技術における当業者によって用いられる手段であり、最も効果的に研究の本質を他の当業者に伝達できる。アルゴリズムはここでは一般的に所望の結果へのステップを有するつじつまの合うシーケンスである。これらのステップは物理量の物理操作を要求する。通常これらの量は、必ずしもそうではないが、蓄積あるいは転送、接続、比較等の処理をすることができる電気的あるいは磁気的、光学的信号の形をとる。
【0020】
図1は、本発明が適用される命令実行装置の実施例を示すブロック図である。図1は説明のために簡略化されており、本発明を用いるのに適当な全プロセッサ環境としては例えば、キャッシュメモリ、RAM及びROM、コンパイラあるいはアセンブラ、入出力装置等が設けられているが、いずれも図示されていない。一般的に命令実行装置は、121〜12nまでのN段パイプライン命令セットレジスタアーキテクチャ(ISA)(以下パイプライン12)、通常のバイパス回路14、レジスタファイル16、レジスタファイルコントロール18、FIFOバッファ24、FIFOバッファコントロール26を有している。
【0021】
パイプライン12は多くのパイプラインステージ(例えばフェッチ、デコード、実行、ライトバック)を有しており、レジスタ121〜12nにストアされる。通常のパイプラインとは異なりパイプライン12はさらに“コンシューマ(consumer)id”をパイプラインステージレジスタに含み、その用途については以下に詳しく説明される。しかしながら本発明は特定のパイプラインアーキテクチャに制限されない。例えば、パイプラインにおけるステージは、命令フェッチ、デコード、オペランドフェッチ、ALU実行、メモリアクセス、演算結果のライトバックを含む。さらに、パイプラインにおけるステージのチェーンはさらに細かく分けられあるいは接続される。パイプラインのステージの数は、命令レベルの並行処理の利用の仕方によって変わるアーキテクチャーである。
【0022】
レジスタファイル16はデータをストアするために少なくとも一つのアドレス可能な宛先書込ポート20を有する。当業者ならば分かるように、レジスタファイルは、レコード/データを蓄えこれらにアクセスできる従来のデータベース/インデキシングストレージ手段でよい。
【0023】
レジストファイルコントロール18は、ロジック機能及びコントロール機能、監視機能、変換機能を多く有しており、これらの機能によりレジスタファイル16に対して書込データを書き戻すのを制御する。レジスタファイルコントロール18にはさらに、図3に示される機能的動作をするプログラムが備えられており、以下に述べるように、これらのプログラムにより必要な機能が実行され、パイプラインにおけるレジスタファイルへの書込数が減少させられる。
【0024】
命令は、3つの主要なタイプ、即ち、算術論理及びデータ転送、制御のうちの一つとして区別される。算術論理命令は1つあるいは2つの引数の原始関数であり、例えば足し算あるいは掛け算、論理積である。
【0025】
それぞれのステージのタイミングはプロセッサの内部構造や実行命令の複雑さにより決まる。演算のための最小時間単位はクロックサイクルとして知られている。プロセッサ内での演算は外部クロックによって制御される。外部クロックは例えば一定期間で方形波を生成する回路である。演算を実行するのに必要なクロックサイクル数でかかる時間が決まる。
【0026】
本発明は以下のことに注意を払った。多くの命令により演算結果値が生成されるが、この結果値は、この後のアルゴリズムにおける1つの命令、例えば連続してパイプラインに入る1つの他の命令、によって用いられるだけである(前者の命令を“プロデューサ”、後者の命令を“コンシューマ”と呼ぶ。)。さらにSPECベンチマークにおけるレジスタデータフローの解析により、全ての整数演算結果の70%及び全ての浮動小数点演算結果の80〜99%が一度使われるだけであるということが明らかになった。フランクリンなどによって書かれた論文、1992年12月にマイクロアーキテクチャーに関する国際シンポジウム第25回(MICRO−25)において発表された“微細パラレルプロセッサにおける動作をストリーミングするためのレジスタトラフィック解析(Register Traffic Analysis for Streamlining Inter−Operation Communication in Fine Grain Parallel Processors)”と題する論文の236〜245頁を読んでみよ。さらに非常に多くの場合において、上記プロデューサがリタイヤする前に、上記コンシューマはパイプラインアーキテクチャに入力される。これは、スーパースケーラプロセッサやVLIWプロセッサのような特定のタイプのプロセッサに対していっそう強く保持される。したがって、上記コンシューマは、レジスタファイル以外の手段例えばバイパス回路を通じて結果値を得る。しかしながらそれでも結果値はレジスタファイルに書き戻されない。
【0027】
さらに重要なことに本発明者は以下のことを理解した。そのような場合におけるプロデューサの結果値はレジスタファイルにリタイヤされる必要はない。なぜならばそれは他のどんなコンシューマによっても用いられないからである。プロデューサの結果値は事実上コンシューマに対してバイパスされるやいなや“デッド値(dead value)”になる。それゆえ本発明の特徴の一つによればレジスタファイルコントロール18は、ある命令結果値が1つのコンシューマだけによって(あるいはパイプラインにおける他のコンシューマによって)用いられるかどうかを判断し、もしそうであれば、その結果値は、ステージn例えばライトバックステージにおいてレジスタファイル16に書き戻される。いずれにしても結果値(書込データ及び宛先アドレス、コンシューマidを含む)は一時的にFIFOバッファ24にストアされる。
【0028】
図1の実施例において、各命令における明示符号化は、ある特定の命令における結果値が1つのコンシューマだけによって用いられるかどうかを判断するのに用いられる。好ましくは、上記命令における符号化においては、専用“デッド値”ビット(いわゆる命令のオペコード(opcode))が用いられる。それは、コンパイラーあるいはアセンブラ(図示せず)によってセットあるいはクリアされ、消費度(degree of consumption)によって決まる。もしデッド値ビットがセットされれば、結果値は、パイプライン12のステージnにおいてレジスタファイル16に書き戻されない(例えば書込可能信号を介して)が、FIFOバッファ24においてストアされる。特にデッド値は、関連命令の命令idと同様にレジスタファイルコントロール18に対して供給され、結果値をライトバックしあるいはしないためにレジスタファイル16を書込可能信号を介して制御する。代替手段として、もし専用ビットが利用できなければ、少数の一般に用いられる命令が選択され(例えばADD及びLOAD)、代わりのオペコードが消費度を示すために割り当てられる。
【0029】
本発明によれば、FIFOバッファ24に結果値を蓄えることによってパイプラインを通じて命令フローに割り込む例外の作用が説明される。例外は命令フローを次のようにして中断させる。即ち、例外がハンドル(handle)された後、プロデューサはパイプラインに再び入らないが一方コンシューマは再び入るように中断させる。例外ルーチンが終了した後、コンシューマがパイプラインに再び入ったら、それはレジスタファイル16からそのオペランドを読み込む。なぜなら、今、プロデューサはもはやパイプラインにおいてコンシューマのダウンストリーム(downstream)ではない。しかし例外が発生する前にプロデューサはレジスタファイル16をアップデートしていなかったので、コンシューマはレジスタファイル16から前の(stale)データを読み込み、結果としてプログラムは不正確に作動する。
【0030】
トリメディア(trimedia)ISAのようなあるパイプラインアーキテクチャは命令フローにおいて割り込みをランダムに生じさせない。その代わりにISAは、CPUが保留されている例外に同期する特別の命令を供給する。プロデューサとコンシューマがそのような命令によって離されない限り、害は無く、デッド値を除去して問題ない。
【0031】
しかしながら、MIPS(Microprocessor without Interlocking Pipeline Stages)ISA及びほとんどの他の従来におけるISAは、保留されている例外にプロセッサがいつ同期すべきかどうかをアプリケーションプログラムに判断させない。結果として、次のようにして例外は命令フローを中断させることができる。即ち、例外が処理された後、プロデューサがパイプラインに再び入らないように一方コンシューマは再び入るようにして中断させることができる。
【0032】
作動中、FIFOバッファ24は各々の命令の結果をFIFOバッファ24のテール(tail)でストアする。再度、結果値は、書込データ及びレジスタファイル16の宛先アドレス、パイプラインステージレジスタからコンシューマをユニークに識別するコンシューマidを含む。
【0033】
FIFOコントロール26はリタイアした命令のフローを連続的にモニタリングし、FIFO24のヘッドにおける“コンシューマid”によりそれらのアイデンティティを比較する。マッチイングを見つけると、FIFOバッファ24からヘッドをいわゆる“ポップ(pops)”し、その値を除去する。
【0034】
しかしながら、例外の間、FIFOコントロール26はFIFOバッファ24の内容をレジスタファイル16に書き込む。ヘッドからテールまでFIFOが空になるまで書き込む。当業者ならば分かるように、FIFOバッファ書込動作は種々の手段で実行される。例えばレジスタファイルコントロールやレジスタファイルへの直接接続部を介して実行される。例外ルーチンが終了した後、コンシューマは正確なデータをレジスタファイル16から読み込む。
【0035】
図2において他の実施例が示されており、それぞの命令における暗黙の符号化が、ある特定の命令の結果値が1つのコンシューマだけ(あるいはそのパイプラインにおける他の複数のコンシューマ)によって用いられるかどうかを示すのに用いられる。特に、パイプライン12は、パイプランにおける後続命令としての別の命令が、レジスタファイル16における同じ宛先アドレス(例えば書込ポート)を用いるかどうかを判断する。これは多くの手段で判断される。例えば、もしステージ−3 123における命令の結果値がレジスタファイル16における書込ポート20の宛先アドレスに当てられ、そしてステージ−1 121における命令の結果値がさらにレジスタファイル16の同じ宛先アドレスに当てられるのならば、ステージ−3における命令の結果値は“デッド”である。なぜならばその宛先アドレスはパイプラインにおける別の命令によって再び用いられるからである。言い換えれば、1つのコンシューマだけが結果値を用いる。代わりに、この手段はさらに(パイプラインにおける)2以上のコンシューマが結果値を用いるときにも用いられる。例えば、もしステージ−n 12nにおける命令の結果値がレジスタファイル16の書込ポート20の宛先アドレスに当てられ、ステージ−
1 121における(上流への(upstream))命令の結果値がさらにレジスタファイル16のおける同じ宛先アドレスに当てられれば、ステージnにおける命令の結果値はステージ−2からステージ n−1において“アライブ”である。しかしながらステージ−1においては“デッド”である。このように、結果値は“アライブ”の間は多数のコンシューマによって用いられる。それ故に一旦結果値が“デッド”になると、それはレジスタファイル16には書き戻されない。
【0036】
図2の実施例において、従来のゲート及びロジック回路22、例えばORゲートが、レジスタファイルコントロール18に対してデッド値ビットを供給するのに用いられる。関連する命令の命令idがさらにレジスタファイルコントロール18に供給される。しかしながら、周知であるように、レジスタリネイミング(register renaming)をサポートするマイクロアーキテクチャにおいてはゲート及びロジック回路は必要とされない。なぜならばそのようなプロセッサはすでにレジスタの再使用を検出するためのメカニズムを備えているからである。
【0037】
電力消費の減少は実際の装置の特性による。例えば、FIFOバッファにおけるデータはそれが除去される前に少しのクロックサイクルの間そこにストアされるだけである。リフレッシュファシリティなしでダイナミックチャージとしてFIFOバッファにデータをストアすることが可能である。これはFIFOバッファのエリアの複雑さを非常に低減させる。とくに、命令レベル平行の高い程度をを利用し、それ故に1クロックサイクルにつき多くの命令をリタイアしなければならないプロセッサにとって好ましい。
【0038】
下記は単に本発明の原理を示すものにすぎない。したがって、ここでは明確に述べられていないけれども、当業者であれば、本発明の原理を具体化し本発明の範囲に含まれる種々の装置を考え出すことができることが理解されよう。さらに、本発明の原理及び特徴、具体化についてのすべての見解は、それらの特定の実施例と同様に、それらの構造的及び機能的等価物をも含むことが意図されている。さらに、そのような等価物は、広く知られた等価物や、将来において発展させられた等価物すなわち構造に関わらず同じ機能を実現する発展した任意の要素をも含むことが意図されている。
【0039】
クレームにおいて、特定の機能を実行する手段としてのいずれの要素も、例えばa)その特定の機能を実行する回路要素の接続、あるいはb)ファームウェア及びマイクロコード等を含む任意の形態におけるソフトウェアでその機能を実行するために適当な回路に接続されたもの、を含むことが意図されている。そのようなクレームにおいて定められた本発明は、上記に述べられた種々の手段によって与えられる機能性がクレームが求める態様で接続されている。このように出願人は、ここに示されたものと同等の機能性を与える任意の手段をも考慮している。
【図面の簡単な説明】
【図1】
本発明が適用される命令実行装置における1実施例のブロックダイアグラムである。
【図2】
本発明が適用される命令実行装置における別の実施例のブロックダイアグラムである。
本発明の技術分野
本発明は、デジタル計算回路の分野に関し、特に、例外ルーチンを有するプロセッサに用いられる命令実行装置についてのシステム及び方法に関する。
【0002】
本発明の背景
一般的なモチベーション基準は、電力の消費や装置のサイズ低減させ、さらに全体のコストを低減させるマイクロプロセッサのデザインにある。特にこの点における技術の発展は、多くの同時並行命令を実行する命令実行アーキテクチャの発展であった。
【0003】
上述したタイプの命令実行アーキテクチャを与えるシステム及び方法として、例えばマイクロプロセッサ命令セットアーキテクチャ(ISAs)が知られている。一般的にそのようなISAsの実行においてはいわゆる“パイプライン”手段を用いる。パイプラインは、後続命令の異なる実行ステージを並行処理する。
【0004】
従来の4つのステージのパイプラインは(1)フェッチ(2)デコード(3)実行(4)ライトバックを用いる。ロード命令のようなデータ転送型命令に対しては1つの余分な命令パイプラインステージが通常必要である。
【0005】
そのサイクルの第1のステージにおいてプロセッサはメモリから命令をフェッチする。フェッチするための命令のアドレスは、プログラムカウンタすなわちPCといわれる内部レジスタにストアされている。プロセッサは命令に応答するためにメモリを待っているとき、PCを増加させる。これは、次のサイクルにおけるフェッチフェーズが、メモリにおける次の場所の命令をフェッチすることを意味する(もしPCがそのサイクルの後のフェーズによって変更されなければ)。
【0006】
デーコードフェーズにおいてプロセッサはメモリによって返される情報を別の内部レジスタにおいてストアする。それは命令レジスタすなわちIRとして知られている。IRはバイナリ数として符号化された1つの機械語命令を保持する。プロセッサは、次のステージにおいてどんな動作を実行すべきかを決定するためにIRにおける値をデコードする。
【0007】
実行ステージにおいてプロセッサは実際に命令を実行する。このステップはしばしばさらなるメモリの動作を必要とする。例えば、命令は、プロセッサにメモリから2つのオペランドをフェッチさせ(例えばそれらをオペランドレジスタにストアする)、それらを加算し、その結果値を第3の場所にストアする(そのオペランドと結果値の宛先アドレスはさらに命令の一部として符号化される)。
【0008】
パイプラインのライトバックステージにおいては、パイプラインにおいて上流へ(upstream)計算された結果値はレジスタファイルにおける宛先レジスタに書き込まれる(リタイアされる)。
【0009】
別の従来技術におけるパイプラン手段では、オペランドあるいは結果値をレジスタファイルへバイパスする回路が備えられている。これらのバイパス回路を用いるとオペランド生成命令(operand−producing instructions)がリタイアされる(例えばレジスタファイルへの書き戻し)前に、オペランドあるいは結果値を後続命令に対して容易にすぐに利用できる。
【0010】
最後に、一般的なプロセッサにおいて通常のパイプラインフローに割り込みがシステマティカリーに生じるのには多くの原因がある。これらの割り込みに対する不利益は、失われたあるいは失速したパイプラインサイクルという形であらわれる。特に、例外ルーチンや割り込みは以下のような手段でパイプラインにおける命令フローをしばしば遮る。以下のような手段とは、例外が完了した後に第1の命令がすぐに再び入らないが、第1の命令に続いてパイプラインに入った第2の命令はすぐに再び入るというような手段である。したがって、パイプラインにおける命令のオーダー変化をアカウントするのに複雑さがパイプラインに加えられ、故に命令オペランド及び結果値は適当にオペレートされる。
【0011】
これらのタイプの従来のパイプラインには多くの欠点がある。例えば、従来のパイプライン手段は、十分に多くの同時並行命令を実行するために且つ割り込みの間データをストアするためにしばしば非常に多くのセパレートレジスタをレジスタファイルにおいて必要とする。大きなレジスタファイルは一般的に全電力消費やプロセッササイズに非常に寄与する。
【0012】
したがって、従来技術においては、プロセッサ内における従来のレジスタに対する書込トラフィックを減じさせるために、改善されたシステム及び方法、技術が必要である。それによって全体の消費電力を減じさせ、パイプラインアーキテクチャにおける割り込みの影響を補う。
【0013】
本発明の簡単な要約
本発明の目的は、上述したようなプロセッサ内における従来の命令実行装置におけるいくつかの限界を解決することにある。
【0014】
さらに本発明の目的は、プロセッサ命令セットアーキテクチャを提供することにある。これは、パイプライン手段におけるレジスタファイルの書込動作数を減じさせ、パイプラインアーキテクチャにおける割り込みの影響をアカウントし、有利には、、プロセッサの全体の消費電力を減じる可能性もある。
【0015】
プロセッサにおけるレジスタの書込トラフィックに関連する欠点は減じさせられあるいは打開される。それは、命令実行装置が設けられる本発明の原理に応じた装置によってなされる。命令実行装置は命令に対する結果値を生成するのに命令パイプラインを有し、例外ルーチンがランダムな間隔で命令パイプラインに割り込む。命令実行装置は、結果値をストアするのに少なくとも1つの書込ポートを有するレジスタファイル及び結果値へアクセスするためのバイパス回路、そこにおいては、結果値が1つの他の命令のみによって用いられるかどうかに関してレジスタファイルコントロールに指示が与えられ、上記実行命令装置は、さらに、結果値がパイパス回路を介してアクセスされ且つ1つの他の命令のみによって用いられる場合に結果値が書込ポートにストアされないようにするためのレジスタファイルコントロール、結果値をストアするための先入れ先出し(FIFO)バッファ、例外が発生したときにレジスタファイルにFIFOバッファの内容を書き込むためのFIFOコントロールを有する。
【0016】
本発明のある実施例においては、結果値が1つの他の命令のみによってもちいられるかどうかの指示はそれぞれの命令を符号化する工程を有する。例えば、いわゆる“デッド値”フィールドが、結果値が1つの他の命令のみによって用いられるかどうかを示すために、それぞれの命令の“オペコード(opcode)”に示される。
【0017】
本発明の別の実施例においては、第1の結果値が第2の命令のみによって用いられるかどうかを示すための手段として、命令パイプラインにおける命令の結果値及び命令パイプラインにおける別の命令の別の結果値が、レジスタファイルの同じ書込ポートにおいてストアのために指定されるかどうかを判断する命令パイプラインを有する。レジスタファイルにおける書込ポートが命令パイプラインにおいてすぐに後続命令によって“再利用”されるのだから、これは、第1の結果値が1つの他の命令のみによって用いられるということを示すのに用いられる。
【0018】
本発明のこれらの及びその他の、実施例及び特徴は以下の詳細な開示において実証される。
【0019】
好ましい実施例の詳細な説明
以下の詳細な説明のいくつかの部分はプログラムすなわちアルゴリズムの観点から、そしてコンピュータメモリ内のデータビットとしての演算記号表現の観点から述べられている。これらのアルゴリズム的な記述や表現は、データ処理技術における当業者によって用いられる手段であり、最も効果的に研究の本質を他の当業者に伝達できる。アルゴリズムはここでは一般的に所望の結果へのステップを有するつじつまの合うシーケンスである。これらのステップは物理量の物理操作を要求する。通常これらの量は、必ずしもそうではないが、蓄積あるいは転送、接続、比較等の処理をすることができる電気的あるいは磁気的、光学的信号の形をとる。
【0020】
図1は、本発明が適用される命令実行装置の実施例を示すブロック図である。図1は説明のために簡略化されており、本発明を用いるのに適当な全プロセッサ環境としては例えば、キャッシュメモリ、RAM及びROM、コンパイラあるいはアセンブラ、入出力装置等が設けられているが、いずれも図示されていない。一般的に命令実行装置は、121〜12nまでのN段パイプライン命令セットレジスタアーキテクチャ(ISA)(以下パイプライン12)、通常のバイパス回路14、レジスタファイル16、レジスタファイルコントロール18、FIFOバッファ24、FIFOバッファコントロール26を有している。
【0021】
パイプライン12は多くのパイプラインステージ(例えばフェッチ、デコード、実行、ライトバック)を有しており、レジスタ121〜12nにストアされる。通常のパイプラインとは異なりパイプライン12はさらに“コンシューマ(consumer)id”をパイプラインステージレジスタに含み、その用途については以下に詳しく説明される。しかしながら本発明は特定のパイプラインアーキテクチャに制限されない。例えば、パイプラインにおけるステージは、命令フェッチ、デコード、オペランドフェッチ、ALU実行、メモリアクセス、演算結果のライトバックを含む。さらに、パイプラインにおけるステージのチェーンはさらに細かく分けられあるいは接続される。パイプラインのステージの数は、命令レベルの並行処理の利用の仕方によって変わるアーキテクチャーである。
【0022】
レジスタファイル16はデータをストアするために少なくとも一つのアドレス可能な宛先書込ポート20を有する。当業者ならば分かるように、レジスタファイルは、レコード/データを蓄えこれらにアクセスできる従来のデータベース/インデキシングストレージ手段でよい。
【0023】
レジストファイルコントロール18は、ロジック機能及びコントロール機能、監視機能、変換機能を多く有しており、これらの機能によりレジスタファイル16に対して書込データを書き戻すのを制御する。レジスタファイルコントロール18にはさらに、図3に示される機能的動作をするプログラムが備えられており、以下に述べるように、これらのプログラムにより必要な機能が実行され、パイプラインにおけるレジスタファイルへの書込数が減少させられる。
【0024】
命令は、3つの主要なタイプ、即ち、算術論理及びデータ転送、制御のうちの一つとして区別される。算術論理命令は1つあるいは2つの引数の原始関数であり、例えば足し算あるいは掛け算、論理積である。
【0025】
それぞれのステージのタイミングはプロセッサの内部構造や実行命令の複雑さにより決まる。演算のための最小時間単位はクロックサイクルとして知られている。プロセッサ内での演算は外部クロックによって制御される。外部クロックは例えば一定期間で方形波を生成する回路である。演算を実行するのに必要なクロックサイクル数でかかる時間が決まる。
【0026】
本発明は以下のことに注意を払った。多くの命令により演算結果値が生成されるが、この結果値は、この後のアルゴリズムにおける1つの命令、例えば連続してパイプラインに入る1つの他の命令、によって用いられるだけである(前者の命令を“プロデューサ”、後者の命令を“コンシューマ”と呼ぶ。)。さらにSPECベンチマークにおけるレジスタデータフローの解析により、全ての整数演算結果の70%及び全ての浮動小数点演算結果の80〜99%が一度使われるだけであるということが明らかになった。フランクリンなどによって書かれた論文、1992年12月にマイクロアーキテクチャーに関する国際シンポジウム第25回(MICRO−25)において発表された“微細パラレルプロセッサにおける動作をストリーミングするためのレジスタトラフィック解析(Register Traffic Analysis for Streamlining Inter−Operation Communication in Fine Grain Parallel Processors)”と題する論文の236〜245頁を読んでみよ。さらに非常に多くの場合において、上記プロデューサがリタイヤする前に、上記コンシューマはパイプラインアーキテクチャに入力される。これは、スーパースケーラプロセッサやVLIWプロセッサのような特定のタイプのプロセッサに対していっそう強く保持される。したがって、上記コンシューマは、レジスタファイル以外の手段例えばバイパス回路を通じて結果値を得る。しかしながらそれでも結果値はレジスタファイルに書き戻されない。
【0027】
さらに重要なことに本発明者は以下のことを理解した。そのような場合におけるプロデューサの結果値はレジスタファイルにリタイヤされる必要はない。なぜならばそれは他のどんなコンシューマによっても用いられないからである。プロデューサの結果値は事実上コンシューマに対してバイパスされるやいなや“デッド値(dead value)”になる。それゆえ本発明の特徴の一つによればレジスタファイルコントロール18は、ある命令結果値が1つのコンシューマだけによって(あるいはパイプラインにおける他のコンシューマによって)用いられるかどうかを判断し、もしそうであれば、その結果値は、ステージn例えばライトバックステージにおいてレジスタファイル16に書き戻される。いずれにしても結果値(書込データ及び宛先アドレス、コンシューマidを含む)は一時的にFIFOバッファ24にストアされる。
【0028】
図1の実施例において、各命令における明示符号化は、ある特定の命令における結果値が1つのコンシューマだけによって用いられるかどうかを判断するのに用いられる。好ましくは、上記命令における符号化においては、専用“デッド値”ビット(いわゆる命令のオペコード(opcode))が用いられる。それは、コンパイラーあるいはアセンブラ(図示せず)によってセットあるいはクリアされ、消費度(degree of consumption)によって決まる。もしデッド値ビットがセットされれば、結果値は、パイプライン12のステージnにおいてレジスタファイル16に書き戻されない(例えば書込可能信号を介して)が、FIFOバッファ24においてストアされる。特にデッド値は、関連命令の命令idと同様にレジスタファイルコントロール18に対して供給され、結果値をライトバックしあるいはしないためにレジスタファイル16を書込可能信号を介して制御する。代替手段として、もし専用ビットが利用できなければ、少数の一般に用いられる命令が選択され(例えばADD及びLOAD)、代わりのオペコードが消費度を示すために割り当てられる。
【0029】
本発明によれば、FIFOバッファ24に結果値を蓄えることによってパイプラインを通じて命令フローに割り込む例外の作用が説明される。例外は命令フローを次のようにして中断させる。即ち、例外がハンドル(handle)された後、プロデューサはパイプラインに再び入らないが一方コンシューマは再び入るように中断させる。例外ルーチンが終了した後、コンシューマがパイプラインに再び入ったら、それはレジスタファイル16からそのオペランドを読み込む。なぜなら、今、プロデューサはもはやパイプラインにおいてコンシューマのダウンストリーム(downstream)ではない。しかし例外が発生する前にプロデューサはレジスタファイル16をアップデートしていなかったので、コンシューマはレジスタファイル16から前の(stale)データを読み込み、結果としてプログラムは不正確に作動する。
【0030】
トリメディア(trimedia)ISAのようなあるパイプラインアーキテクチャは命令フローにおいて割り込みをランダムに生じさせない。その代わりにISAは、CPUが保留されている例外に同期する特別の命令を供給する。プロデューサとコンシューマがそのような命令によって離されない限り、害は無く、デッド値を除去して問題ない。
【0031】
しかしながら、MIPS(Microprocessor without Interlocking Pipeline Stages)ISA及びほとんどの他の従来におけるISAは、保留されている例外にプロセッサがいつ同期すべきかどうかをアプリケーションプログラムに判断させない。結果として、次のようにして例外は命令フローを中断させることができる。即ち、例外が処理された後、プロデューサがパイプラインに再び入らないように一方コンシューマは再び入るようにして中断させることができる。
【0032】
作動中、FIFOバッファ24は各々の命令の結果をFIFOバッファ24のテール(tail)でストアする。再度、結果値は、書込データ及びレジスタファイル16の宛先アドレス、パイプラインステージレジスタからコンシューマをユニークに識別するコンシューマidを含む。
【0033】
FIFOコントロール26はリタイアした命令のフローを連続的にモニタリングし、FIFO24のヘッドにおける“コンシューマid”によりそれらのアイデンティティを比較する。マッチイングを見つけると、FIFOバッファ24からヘッドをいわゆる“ポップ(pops)”し、その値を除去する。
【0034】
しかしながら、例外の間、FIFOコントロール26はFIFOバッファ24の内容をレジスタファイル16に書き込む。ヘッドからテールまでFIFOが空になるまで書き込む。当業者ならば分かるように、FIFOバッファ書込動作は種々の手段で実行される。例えばレジスタファイルコントロールやレジスタファイルへの直接接続部を介して実行される。例外ルーチンが終了した後、コンシューマは正確なデータをレジスタファイル16から読み込む。
【0035】
図2において他の実施例が示されており、それぞの命令における暗黙の符号化が、ある特定の命令の結果値が1つのコンシューマだけ(あるいはそのパイプラインにおける他の複数のコンシューマ)によって用いられるかどうかを示すのに用いられる。特に、パイプライン12は、パイプランにおける後続命令としての別の命令が、レジスタファイル16における同じ宛先アドレス(例えば書込ポート)を用いるかどうかを判断する。これは多くの手段で判断される。例えば、もしステージ−3 123における命令の結果値がレジスタファイル16における書込ポート20の宛先アドレスに当てられ、そしてステージ−1 121における命令の結果値がさらにレジスタファイル16の同じ宛先アドレスに当てられるのならば、ステージ−3における命令の結果値は“デッド”である。なぜならばその宛先アドレスはパイプラインにおける別の命令によって再び用いられるからである。言い換えれば、1つのコンシューマだけが結果値を用いる。代わりに、この手段はさらに(パイプラインにおける)2以上のコンシューマが結果値を用いるときにも用いられる。例えば、もしステージ−n 12nにおける命令の結果値がレジスタファイル16の書込ポート20の宛先アドレスに当てられ、ステージ−
1 121における(上流への(upstream))命令の結果値がさらにレジスタファイル16のおける同じ宛先アドレスに当てられれば、ステージnにおける命令の結果値はステージ−2からステージ n−1において“アライブ”である。しかしながらステージ−1においては“デッド”である。このように、結果値は“アライブ”の間は多数のコンシューマによって用いられる。それ故に一旦結果値が“デッド”になると、それはレジスタファイル16には書き戻されない。
【0036】
図2の実施例において、従来のゲート及びロジック回路22、例えばORゲートが、レジスタファイルコントロール18に対してデッド値ビットを供給するのに用いられる。関連する命令の命令idがさらにレジスタファイルコントロール18に供給される。しかしながら、周知であるように、レジスタリネイミング(register renaming)をサポートするマイクロアーキテクチャにおいてはゲート及びロジック回路は必要とされない。なぜならばそのようなプロセッサはすでにレジスタの再使用を検出するためのメカニズムを備えているからである。
【0037】
電力消費の減少は実際の装置の特性による。例えば、FIFOバッファにおけるデータはそれが除去される前に少しのクロックサイクルの間そこにストアされるだけである。リフレッシュファシリティなしでダイナミックチャージとしてFIFOバッファにデータをストアすることが可能である。これはFIFOバッファのエリアの複雑さを非常に低減させる。とくに、命令レベル平行の高い程度をを利用し、それ故に1クロックサイクルにつき多くの命令をリタイアしなければならないプロセッサにとって好ましい。
【0038】
下記は単に本発明の原理を示すものにすぎない。したがって、ここでは明確に述べられていないけれども、当業者であれば、本発明の原理を具体化し本発明の範囲に含まれる種々の装置を考え出すことができることが理解されよう。さらに、本発明の原理及び特徴、具体化についてのすべての見解は、それらの特定の実施例と同様に、それらの構造的及び機能的等価物をも含むことが意図されている。さらに、そのような等価物は、広く知られた等価物や、将来において発展させられた等価物すなわち構造に関わらず同じ機能を実現する発展した任意の要素をも含むことが意図されている。
【0039】
クレームにおいて、特定の機能を実行する手段としてのいずれの要素も、例えばa)その特定の機能を実行する回路要素の接続、あるいはb)ファームウェア及びマイクロコード等を含む任意の形態におけるソフトウェアでその機能を実行するために適当な回路に接続されたもの、を含むことが意図されている。そのようなクレームにおいて定められた本発明は、上記に述べられた種々の手段によって与えられる機能性がクレームが求める態様で接続されている。このように出願人は、ここに示されたものと同等の機能性を与える任意の手段をも考慮している。
【図面の簡単な説明】
【図1】
本発明が適用される命令実行装置における1実施例のブロックダイアグラムである。
【図2】
本発明が適用される命令実行装置における別の実施例のブロックダイアグラムである。
Claims (16)
- 例外ルーチンを有するプロセッサにおいて用いられる命令実行装置であって、
第1の命令に対して第1の結果値を生成する命令パイプライン(12)であって、前記例外ルーチンが前記命令パイプラインにランダムな間隔で割り込むように構成された命令パイプラインと、
前記命令パイプライン(12)に接続されたレジスタファイル(16)であって、前記レジスタファイルは少なくとも前記第1の結果値をストアする第1の書込ポート(20)を有するレジスタファイルと、
前記命令パイプライン(12)に接続されたバイパス回路(14)であって、前記第1の結果値にアクセスするように構成された前記パイパス回路(14)と、
第1の結果値が第2の命令だけによって用いられるかどうかを示す手段と、
前記命令パイプライン(12)と前記レジスタファイル(16)とに接続されたレジスタファイルコントロール(18)であって、前記第1の結果値が前記パイパス回路(14)を介してアクセスされ且つ前記第2の命令のみによって用いられる場合に、前記第1の結果値が前記書込ポートにストアされないようにするための、レジスタファイルコントロールと、
前記第1の結果値をストアするためのバッファ(24)と、
例外が発生したときに、前記第1の結果値を前記バッファから前記レジスタファイルに書き込むためのバッファコントロール(26)と、
を有する命令実行装置。 - 前記プロセッサはMIPSである請求項1に記載の命令実行装置。
- 前記バッファは先入れ先出しバッファである請求項1に記載の命令実行装置。
- 前記命令パイプライン(12)は複数のステージを有する、請求項1に記載の命令実行装置。
- 前記命令パイプライン(12)は前記複数のステージで複数の命令を処理する、請求項4に記載の命令実行装置。
- 前記第1の結果値が前記第2の命令のみによって用いられるかどうかを示す前記手段は、前記第1の結果値が前記第2の命令のみによって用いられるかどうかを示すために前記第1の命令を符号化する手段を有する、請求項1に記載の命令実行装置。
- 前記第1の命令を符号化する手段は、前記第1の結果値が前記第2の命令のみによって用いられるかどうかを示すために、前記第1の命令のオペコードにおけっるフィールドを指定する手段を有する、請求項6に記載の命令実行装置。
- それぞれの命令が、そのそれぞれの結果値が1つの他の命令のみによって用いられるかどうかを示すために符号化される、請求項7に記載の命令実行装置。
- 前記第1の結果値が前記第1の命令のみによって用いられるかどうかを示す前記手段は、前記命令パイプライン(12)における前記第1の命令の前記第1の結果値と前記命令パイプラインにおける前記第2命令の第2の結果値が、前記レジスタファイル(16)の前記第1の書込ポート(20)に記憶のためにあてられるかどうかを判断するための前記命令パイプライン(12)を有する、請求項5に記載の命令実行装置。
- 前記第1の結果値が前記第2の命令のみによって用いられるかどうかを示す前記手段は、さらにゲート及びロジック回路(22)を有する、請求項9に記載の命令実行装置。
- 例外ルーチンを有するプロセッサにおいて命令を実行する方法であって、
命令パイプライン(12)を用いて第1の命令から第1の結果値を生成し、前記例外ルーチンはランダムな間隔で前記命令パイプラインに割り込む工程と、
バイパス回路(14)を用いて前記第1の結果値にアクセスする工程と、
前記第1の結果値が前記命令パイプライン(12)における第2の命令のみによって用いられるかどうかを判断する工程と、
前記第1の結果値がアクセスされ前記第2の命令のみによって用いられる場合に、前記第1の結果値がレジスタファイル(16)にストアされないようにし且つ前記第1の結果値をバッファ(24)にストアする工程と、
例外が発生したときに、前記バッファ(24)からの前記第1の結果値を前記レジスタファイル(16)に書き込む工程と、
を有する、命令を実行する方法。 - 前記判断する工程は、前記第1の結果値が前記第2の命令のみによって用いられるかどうかを示すために前記第1の命令を符号化する工程を有する、請求項11に記載の命令を実行する方法。
- 前記判断する工程は、前記命令パイプライン(12)における前記第1の命令の前記第1の結果値と前記命令パイプライン(12)における前記第2の命令の第2の結果値が、前記レジスタファイル(16)において同じストアアドレスを有するかどうかを判断するための前記命令パイプライン(12)を有する、請求項11に記載の命令を実行する方法。
- 例外ルーチンを有する装置において命令を処理するためのコードを有するコンピュータ読込可能メモリメディアであって、
前記コードは、
第1の命令から第1の結果値を生成する命令パイプラインコードと、
前記第1の結果値へのアクセスを許可するアクセス許可コードと、
前記第1の結果値が前記命令パイプラインにおいて第2の命令によって用いられるかどうかを識別する指示コードと、
前記第1の結果値がアクセスされ前記第2の命令のみによって用いられる場合に、前記第1の結果値がレジスタファイルにストアされないようにし且つ前記第1の結果値をバッファにストアする回避コードと、
前記例外ルーチンが発生した場合に、前記第1の結果値を前記バッファから前記レジスタファイルに書き込む転送コードと、
を有する、コンピュータ読込可能メモリメディア - 前記指示コードは、前記第1の結果値が前記第2の命令のみによって用いられるかどうかを示すために前記第1の命令を符号化する手段を有する、請求項14に記載のメモリメディア。
- 前記指示コードは、前記命令パイプライン(12)における前記第1の命令の前記第1の結果値と前記命令パイプライン(12)における前記第2の命令の第2の結果値が、前記レジスタファイル(16)において同じストアアドレスを有するかどうかを判断するための前記命令パイプライン(12)を有する、請求項14に記載のメモリメディア。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/505,986 US6851044B1 (en) | 2000-02-16 | 2000-02-16 | System and method for eliminating write backs with buffer for exception processing |
PCT/EP2001/000775 WO2001061469A2 (en) | 2000-02-16 | 2001-01-24 | Apparatus and method for reducing register write traffic in processors with exception routines |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004508607A true JP2004508607A (ja) | 2004-03-18 |
JP2004508607A5 JP2004508607A5 (ja) | 2004-12-24 |
Family
ID=24012699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001560791A Withdrawn JP2004508607A (ja) | 2000-02-16 | 2001-01-24 | 例外ルーチンを有するプロセッサのレジスタライトトラフィックを減じる装置及び方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6851044B1 (ja) |
EP (1) | EP1208424B1 (ja) |
JP (1) | JP2004508607A (ja) |
AT (1) | ATE264520T1 (ja) |
DE (1) | DE60102777T2 (ja) |
WO (1) | WO2001061469A2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7644190B2 (en) | 2002-07-19 | 2010-01-05 | Xelerated Ab | Method and apparatus for pipelined processing of data packets |
WO2004010287A1 (en) * | 2002-07-19 | 2004-01-29 | Xelerated Ab | A processor and a method in the processor, the processor comprising a programmable pipeline and at least one interface engine |
US7290153B2 (en) * | 2004-11-08 | 2007-10-30 | Via Technologies, Inc. | System, method, and apparatus for reducing power consumption in a microprocessor |
US8250231B2 (en) | 2004-12-22 | 2012-08-21 | Marvell International Ltd. | Method for reducing buffer capacity in a pipeline processor |
WO2007057831A1 (en) * | 2005-11-15 | 2007-05-24 | Nxp B.V. | Data processing method and apparatus |
CN104216681B (zh) * | 2013-05-31 | 2018-02-13 | 华为技术有限公司 | 一种cpu指令处理方法和处理器 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4228497A (en) * | 1977-11-17 | 1980-10-14 | Burroughs Corporation | Template micromemory structure for a pipelined microprogrammable data processing system |
AU553416B2 (en) * | 1984-02-24 | 1986-07-17 | Fujitsu Limited | Pipeline processing |
US6370623B1 (en) | 1988-12-28 | 2002-04-09 | Philips Electronics North America Corporation | Multiport register file to accommodate data of differing lengths |
JPH0719222B2 (ja) * | 1989-03-30 | 1995-03-06 | 日本電気株式会社 | ストアバッフア |
AU629007B2 (en) | 1989-12-29 | 1992-09-24 | Sun Microsystems, Inc. | Apparatus for accelerating store operations in a risc computer |
US5222240A (en) | 1990-02-14 | 1993-06-22 | Intel Corporation | Method and apparatus for delaying writing back the results of instructions to a processor |
GB2241801B (en) | 1990-03-05 | 1994-03-16 | Intel Corp | Data bypass structure in a register file on a microprocessor chip to ensure data integrity |
JPH04367936A (ja) * | 1991-06-17 | 1992-12-21 | Mitsubishi Electric Corp | スーパースカラープロセッサ |
US5471626A (en) * | 1992-05-06 | 1995-11-28 | International Business Machines Corporation | Variable stage entry/exit instruction pipeline |
US5898882A (en) * | 1993-01-08 | 1999-04-27 | International Business Machines Corporation | Method and system for enhanced instruction dispatch in a superscalar processor system utilizing independently accessed intermediate storage |
JPH08212083A (ja) | 1995-02-07 | 1996-08-20 | Oki Electric Ind Co Ltd | 割り込み処理装置 |
JP3490191B2 (ja) | 1995-06-30 | 2004-01-26 | 株式会社東芝 | 計算機 |
US20020161985A1 (en) * | 1999-10-01 | 2002-10-31 | Gearty Margaret Rose | Microcomputer/floating point processor interface and method for synchronization of cpu and fpu pipelines |
-
2000
- 2000-02-16 US US09/505,986 patent/US6851044B1/en not_active Expired - Lifetime
-
2001
- 2001-01-24 JP JP2001560791A patent/JP2004508607A/ja not_active Withdrawn
- 2001-01-24 WO PCT/EP2001/000775 patent/WO2001061469A2/en active IP Right Grant
- 2001-01-24 EP EP01953031A patent/EP1208424B1/en not_active Expired - Lifetime
- 2001-01-24 DE DE2001602777 patent/DE60102777T2/de not_active Expired - Lifetime
- 2001-01-24 AT AT01953031T patent/ATE264520T1/de not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP1208424B1 (en) | 2004-04-14 |
ATE264520T1 (de) | 2004-04-15 |
EP1208424A2 (en) | 2002-05-29 |
DE60102777T2 (de) | 2009-10-08 |
WO2001061469A3 (en) | 2002-02-21 |
US6851044B1 (en) | 2005-02-01 |
WO2001061469A2 (en) | 2001-08-23 |
DE60102777D1 (de) | 2004-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100900364B1 (ko) | 인스트럭션 실행 디바이스, 인스트럭션 실행 방법 및 컴퓨터 판독가능 메모리 매체 | |
US5881280A (en) | Method and system for selecting instructions for re-execution for in-line exception recovery in a speculative execution processor | |
US6260189B1 (en) | Compiler-controlled dynamic instruction dispatch in pipelined processors | |
US8762444B2 (en) | Fast condition code generation for arithmetic logic unit | |
JPH09311786A (ja) | データ処理装置 | |
JP2004171573A (ja) | 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ | |
US20170277537A1 (en) | Processing mixed-scalar-vector instructions | |
US6237083B1 (en) | Microprocessor including multiple register files mapped to the same logical storage and inhibiting sychronization between the register files responsive to inclusion of an instruction in an instruction sequence | |
US5469552A (en) | Pipelined data processor having combined operand fetch and execution stage to reduce number of pipeline stages and penalty associated with branch instructions | |
KR20040005927A (ko) | 데이터 처리장치에서의 소스 레지스터 록킹 | |
JPH07120284B2 (ja) | データ処理装置 | |
US5768553A (en) | Microprocessor using an instruction field to define DSP instructions | |
JP2001142701A (ja) | プロセッサにおけるパイプライン制御用メカニズムおよび方法 | |
JP2004508607A (ja) | 例外ルーチンを有するプロセッサのレジスタライトトラフィックを減じる装置及び方法 | |
JP2874351B2 (ja) | 並列パイプライン命令処理装置 | |
US5737562A (en) | CPU pipeline having queuing stage to facilitate branch instructions | |
JP3182591B2 (ja) | マイクロプロセッサ | |
CN108834427B (zh) | 处理向量指令 | |
US6453412B1 (en) | Method and apparatus for reissuing paired MMX instructions singly during exception handling | |
US6944745B2 (en) | Exception handling for single instructions with multiple data | |
JP3915019B2 (ja) | Vliwプロセッサ、プログラム生成装置、および記録媒体 | |
US6859871B1 (en) | Method and apparatus for reducing power consumption in a pipelined processor | |
US20040128482A1 (en) | Eliminating register reads and writes in a scheduled instruction cache | |
JP2000148499A (ja) | スーパースカラ・プロセッサ | |
JPH05108348A (ja) | 並列演算処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080123 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20080626 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20090911 |