JPH1124927A - 多重発行/複数逆流パイプライン・プロセッサ - Google Patents

多重発行/複数逆流パイプライン・プロセッサ

Info

Publication number
JPH1124927A
JPH1124927A JP10125635A JP12563598A JPH1124927A JP H1124927 A JPH1124927 A JP H1124927A JP 10125635 A JP10125635 A JP 10125635A JP 12563598 A JP12563598 A JP 12563598A JP H1124927 A JPH1124927 A JP H1124927A
Authority
JP
Japan
Prior art keywords
instruction
register
field
pipeline
result
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
Application number
JP10125635A
Other languages
English (en)
Other versions
JPH1124927A5 (ja
JP3833825B2 (ja
Inventor
Ivan E Sutherland
イヴァン・イー・サザーランド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH1124927A publication Critical patent/JPH1124927A/ja
Publication of JPH1124927A5 publication Critical patent/JPH1124927A5/ja
Application granted granted Critical
Publication of JP3833825B2 publication Critical patent/JP3833825B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

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)

Abstract

(57)【要約】 【課題】 逆流パイプライン・プロセッサの性能の向上
をもたらすコンピュータ・システム・アーキテクチャを
提供する。 【解決手段】 このシステムは、命令フェッチ・ユニッ
ト、レジスタ・ファイル、および命令フェッチ・ユニッ
トとレジスタ・ファイルとの間に接続されたパイプライ
ンを含む。パイプ中の各ステージは、第1の命令を記憶
する第1の命令レジスタ、第2の命令を記憶する第2の
命令レジスタ、および結果を記憶する第1の結果レジス
タを含む。命令は、ステージからステージに第1の方向
で転送され、結果は、反対の方向で転送される。命令用
のレジスタは、オペランド・フィールド、オペランド用
の第1のソース・フィールド、オペランド用の第2のソ
ース・フィールド、および宛先フィールドとを含む。各
フィールド自体にレジスタ値と有効性ビットを含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータ・ア
ーキテクチャに関し、特に、逆流パイプライン・プロセ
ッサと呼ばれるアーキテクチャの一種に関する。逆流パ
イプライン・プロセッサは、命令と結果がパイプライン
中を反対の方向に流れ、それらが通過するときに相互作
用するコンピュータ・システム・プロセッサである。さ
らに詳細には、本発明は、多重発行パイプラインまたは
複数逆流パイプライン、またはその両方が使用されるそ
のようなアーキテクチャに関する。
【0002】
【従来の技術】逆流パイプライン・プロセッサでは、パ
イプラインは、それぞれ命令部分および結果部分を含む
ステージから形成される。命令はパイプライン中を一方
向に流れ、結果は反対の方向に流れる。命令が上方に流
れていると考えられる場合、任意の時刻において命令パ
イプラインはプログラム・リストのように見えるが、命
令流れの実際の方向は重要ではない。
【0003】この類推を続けると、命令は、命令フェッ
チ・ユニットからパイプラインの底部に入る。各命令は
パイプライン中のあるステージにおいて実行するが、異
なるタイプの命令は異なるステージ中で実行する。命令
は、その実行ステージに到達したときに実行の準備がで
きていない場合、準備ができるまでそこで待つ。パイプ
ラインは、命令の物理的シーケンスを保持する。命令が
いつパイプラインの適切なステージに到達したかに基づ
いて、命令を任意の時間的順序で実行させる。各命令
は、分かっている場合、そのソースの名前または識別子
および宛先オペランドおよびそれらの値を伴っている。
最初に命令がパイプに入ったとき、値は未知であり、反
対の方向に流れ過ぎた結果ストリームから最後にコピー
される。
【0004】結果は、パイプラインの上部のレジスタ・
ファイルからか、または命令が実行するときに結果スト
リームに入る。各結果は名前および値を有する。結果の
名前は、ソースまたは命令の宛先レジスタのレジスタ名
に対応し、オペランドの一意の識別子であることが重要
である。結果は、一致する名前を持っている場合にのみ
物理的シーケンス中に留まる。異なる名前を有する結果
は、結果パイプライン中で互いに追い越す。
【0005】最初に結果の値は未知であるが、実行が進
行するにつれて、命令は、前の命令から来た結果のスト
リームからそれが必要とする値をコピーする。ソース値
を命令中にコピーするプロセスを示すために「ガーナ
(garner)」なる語を使用する。命令は、それが
遭遇した反対の方向に流れている結果からそれが必要と
する値を「ガーナ」する。
【0006】また、結果と命令が遭遇したとき結果の値
が変化する。命令がすでに結果中に名前付けされたレジ
スタの新しい値を計算してある場合、結果はこの最新の
値をとる。命令がまだ結果中に名前付けされたレジスタ
の新しい値を計算しておらず、これからそれを計算しよ
うとする場合、結果は無効になる。プロセッサが宛先値
を結果中にコピーすることを示すために「レンラグ(r
enrag)」(ガーナを逆に綴ったもの)なる語を使
用する。命令と結果が遭遇したときはいつでも、ガーナ
・プロセスとレンラグ・プロセスは適宜にそれらの間で
値を交換する。
【0007】逆流パイプライン・プロセッサの従来の研
究のより詳細な議論は、リポートSMLI TR−94
−25として本発明の譲受人であるSun Micro
systems社から市販されている文献「逆流パイプ
ラインプロセッサアーキテクチャ(Counterflow Pipeli
ne Processor Architecture )」に記載されている。こ
れはまた、本発明の譲受人に譲渡された米国特許出願第
5187800号「非同期パイプライン化データプロセ
スシステム(Asynchronous Pipelined Data Processing
System)」の主題である。
【0008】
【発明が解決しようとする課題】現代のマイクロプロセ
ッサの能力が向上するにつれて、また単一の集積回路上
に配置できる回路の量が増大するにつれて、逆流プロセ
ッサ中の命令の実行が向上することが望ましい。本発明
はそれを実現することを課題とする。
【0009】本発明の逆流パイプライン・プロセッサ・
アーキテクチャは、命令フェッチ・ユニットおよびレジ
スタ・ファイルを含む。この2つは、所望の数のステー
ジを有するパイプラインによって接続される。各ステー
ジにおいて、命令中の所望のオペランドが実行される。
【0010】命令は、命令フェッチ・ユニットによって
フェッチされ、パイプライン中に順にディスパッチされ
る。命令が上方に流れるとき、命令の実行からの結果ま
たは他のデータはパイプライン中を下方に流れる。各ス
テージにおいて、結果の名前および命令ソースの名前と
宛先の名前とを比較する。一致した場合、結果の値を更
新するか、または命令のソースまたは宛先を更新する。
【0011】
【課題を解決するための手段】一実施態様では、各ステ
ージ中に2つまたはそれ以上の命令用のレジスタを含め
ることによって、改善された性能が得られる。そのよう
な手法によれば、単一の命令レジスタのみを備えた場合
よりも多くの命令がパイプライン中を移動できる。各命
令レジスタは、演算フィールド、第1のオペランド・ソ
ース・フィールド、第2のオペランド・ソース・フィー
ルド、および宛先フィールドを含む。(所望の数のオペ
ランド・ソースと宛先が備えられる)。命令がパイプラ
イン中を移動するとき、ソース・フィールドおよび宛先
フィールドの一部(レジスタ名)と結果フィールドの対
応する部分(これもレジスタ名)とを比較する。レジス
タ名が一致した場合、情報を命令と結果の間で転送する
ことができる。
【0012】本発明の他の実施態様では、少なくとも3
つのパイプラインが命令フェッチ・ユニットとレジスタ
・ファイルとの間に備えられる。1つのパイプラインは
第1の命令レジスタ用のステージを含み、第2のパイプ
ラインは第2の命令レジスタ用のステージを含む。第3
のパイプラインは結果レジスタを含む。そのような手法
によれば、例えば浮動小数点命令が1つのパイプライン
にディスパッチされ、例えば固定小数点命令が他のパイ
プラインにディスパッチされる。他の考えられる手法
は、交互の命令を各パイプラインにディスパッチするこ
とである。第1の実施態様の場合と同様に、命令がパイ
プライン中を一方向に移動し、結果が反対の方向に移動
するとき、様々なレジスタの内容と様々なパイプライン
の内容とを互いに比較して、オペランド・ソース・フィ
ールドおよび結果フィールドを更新する。この実施態様
では、追加のインタロック回路がパイプライン中の各ス
テージごとに備えられる。インタロック回路は、様々な
パイプライン中を進行する命令が適切なシーケンス中に
維持されることを保証する。
【0013】
【発明の実施の形態】図1に、従来技術の逆流パイプラ
イン・プロセッサ(本明細書ではCFPPと呼ぶ)の代
表的な構造を示す。本発明の好ましい実施形態は逆流処
理の基本概念を使用するので、図1の説明によれば、本
明細書の好ましい実施形態がよりよく理解できる。CF
PP1は、命令が一方向に流れ、結果が反対の方向に流
れる双方向パイプライン2を使用して、以下で論じる正
確な動作を保証するいくつかのパイプライン規則に従っ
て、部分的に実行される命令および結果を一定の形で移
動させる。
【0014】CFPP1では、任意の長さのパイプライ
ン2が底部の命令フェッチ・ユニット3を上部のレジス
タ・ファイル4に接続する。命令は、パイプライン中の
命令のシーケンスがコードのそのセクションのリストに
似るように命令パイプライン2中を上方に流れるものと
して示されている。この実施形態では命令が互いに追い
越すことが禁止されているので前の命令は後の命令の上
方にあり、この状態が維持される。命令は、パイプ2中
をできるだけ遠くかつ迅速に上方に移動し、図1ですぐ
上のパイプライン・ステージ(ステージ0、ステージ
1、...ステージnで示される)がまだ新しい命令を
受けていないとき、または命令がそれを実行するために
備えられている最後のパイプライン・ステージに到達し
たときのみ停止する。停止した命令の上方には、任意の
サイズのギャップがパイプライン中に形成される。すべ
てのステージが命令で「いっぱい」になる必要はない。
制御回路(図示せず)は、命令が適切な時刻において移
動し、かつ他の命令を上書きしないこと、および結果お
よび命令の動きが調和することを保証する。
【0015】CFPPアーキテクチャによれば、様々な
ステージに様々な処理動作を実施させるか、または様々
なステージを様々な処理動作に対して最適化することが
できる。例えば、1つのステージが整数演算命令を実行
し、他の整数演算命令が浮動小数点命令を実行すること
ができる。1つのステージが加算を実行し、他のステー
ジが乗算を実行することもできる。乗算器が命令パイプ
ライン中の加算器の下にある場合、内積を形成するため
に使用される「乗算−加算」シーケンスは、結果パイプ
ラインによって与えられた転送を利用する。言い換えれ
ば、乗算結果は、加算器に迅速に転送される。
【0016】命令パイプラインの他の様態は、ステージ
が部分的実行を実施し、命令がパイプラインを上方に進
行するために十分に実行されることを確認するために必
要な場合に停止する。命令をフェッチするステージまた
は複数のステージはまた、部分的実行を達成するとも言
われる。すなわち、ステージは、プログラム・カウンタ
値を実行すべき命令を記述するビットに変換する。
【0017】図1に示されるようなシステムの性能を改
善するためには、追加の並列度を使用すればパイプライ
ンのスループットを改善することができる。2つまたは
それ以上の命令を各ステージ中にパックすることによっ
て、改善された性能が得られる。パイプライン中の各ス
テージが多数の命令を担持するので、このタイプのアー
キテクチャを多重発行システムと呼ぶ。このタイプの二
重発行設計では、命令は、パイプライン中を対になって
上方に移動する。並列度を増加する三重またはそれ以上
の手法も可能である。これは、複数(2つまたはそれ以
上)の命令に対する各移動動作のオーバヘッドを無くす
ことができる。2つの命令を一時に発行し、パイプ中を
ロックステップさせて(つめて)上方に移動させること
により、ステップごとに2回動作が起こる。後で示すよ
うに、追加の名前比較およびガーナ・パスも設けられて
いる。
【0018】図2に、本発明の一実施形態の多重発行逆
流パイプライン・プロセッサの代表的な構造を示す。C
FPP10では、パイプライン20が底部の命令フェッ
チ・ユニット30を上部のレジスタ・ファイル40に接
続する。ただし、この場合、パイプライン20中の各ス
テージは2つの命令を含む。例えば、ステージ0では、
命令は命令Aおよび命令Bで示される。上述のように、
命令は、命令パイプライン20中を上方に流れるものと
して示されており、前の命令は後の命令の上方にある。
命令Cおよび命令Dは命令Aおよび命令Bの後で発行さ
れ、命令Mおよび命令Nはさらに後で発行される。命令
対は、パイプ20中をできるだけ遠くかつ迅速に上方に
移動し、すぐ上のパイプライン・ステージがまだ新しい
命令対を受けることができないとき、または対になった
命令の一方がそれを実行するために備えられた最後のパ
イプライン・ステージに到達したときのみ停止する。
【0019】図3に、図2に示されるパイプライン20
中の各命令および結果ステージnのデータ構造、したが
ってまたラッチ構造を示す。図3に示される実施形態は
二重命令パイプライン用であるが、所望の任意の数、す
なわち3つ以上の命令を対応する形で実施できることを
理解されたい。図3には、各命令50、60がどのよう
にそのソース・オペランド52、55、62、65およ
びその宛先58、68用のバインド(フィールド)を備
えるか、ならびに結果70がどのようにその結果値7
4、76用のバインド(フィールド)を備えるか示され
ている。命令用ならびに結果用の各バインドは、データ
値80を、レジスタ名84に関連付け、有効ビット85
がその関連が有効であるかどうかを示す。
【0020】図3に示されるパイプライン・ステージ
は、各命令を有する3つのバインド、例えば、2つのソ
ース52、55および命令50に関連する1つの宛先5
8、および2つのソース62、65および命令60に関
連する1つの宛先68を示す。もちろん、他の数のソー
スおよび宛先も使用できる。命令50または60が実行
されたとき、新しいデータが宛先バインド58、68の
データ値80中に入れられ、次いでビット85を使用し
て、有効とマーク付けされる。命令50、60がパイプ
ラインの上部に到達したとき、宛先バインド58、68
中に記憶されたデータ値は、レジスタ・ファイル40
(図2参照)中の対応する位置に書き込まれる。この最
後の記録がレジスタ・ファイル40中に作成されるま
で、命令50、60は不確実であると考えられ、トラッ
プまたはブランチによって必要とされた場合に必要に応
じて取り消される。
【0021】命令50、60が実行されるときはいつで
も、出力は3つの形で使用される。第一に、出力が命令
の宛先バインド58、68中に入れられ、最後に上述の
ようにレジスタ・ファイル40中に書き込む。第二に、
各宛先バインド58、68が後続の命令によって観測さ
れるように下方に流れる結果パイプライン中に挿入され
る。第三に、例えば下位の命令が命令グループ内の上位
の命令からの結果を必要とする場合、結果がそのグルー
プ内で使用される。これについては以下でさらに論じ
る。図3に示すように、この実施形態では、結果パイプ
ラインの各ステージは2つのバインド74、76を収容
する。
【0022】そのレジスタ名84が結果バインド74、
76のレジスタ名84に一致するソース・バインド5
2、55、62、65を必要とするパイプライン中の後
の命令は、その値を命令パイプ中のバインド中にコピー
し、書き込むことによってその値をガーナする。ソース
・レジスタ52、55、62、65の名前、宛先レジス
タ58、68の名前、および結果レジスタ74、76の
名前の間の比較動作は、図3に楕円形で示されるコンパ
レータ90のグループによって実施される。そのような
コンパレータの回路設計は周知である。したがって、結
果パイプラインは、従来のプロセッサ設計において「バ
イパス」または「転送」と呼ばれる機能を実施し、すべ
てのステージに対して均一である形でその機能を実施す
る。
【0023】比較を実施することによって、下方に流れ
る結果バインドが後続の命令によって修正される。コン
パレータを使用して、パイプライン中の各ステージ50
および60は、命令バインドと結果バインドとの一致、
すなわち、命令バインド中のレジスタ名84と結果バイ
ンド中のレジスタ名84とが一致する場合を検出する
(図3参照)。すでに実行され、かつ結果バインド7
4、76に一致する宛先バインド58、68を有する命
令50、60は、宛先バインド58、68からの値を結
果バインド74、76中にコピーしなければならない。
このようにして、後の命令は、任意のレジスタに対して
最も新しいバインドをガーナする。
【0024】命令50または60がまだ実行すべき場
合、異なる状況が生じる。この場合、バインドがさらに
後の命令に対して有効でなくなるので、命令中の宛先バ
インド58、68に一致する結果バインド74、76は
結果パイプラインから削除される(本明細書では「キ
ル」されると呼ぶ)。したがって、特定の結果バインド
70は、一般に、命令50、60の短いスパン、すなわ
ち値を計算した命令の後およびその値を上書きする次の
命令までのセクションのみを通過させる。これらの結果
修正規則は、逆流パイプライン中の命令50、60に遭
遇した結果70がその命令50、60に対して正確であ
るバインドを保持することを保証する。レジスタ用の異
なる複数のバインドが同時に結果パイプラインの異なる
部分中を通過している。そのような多数の結果バインド
の使用は、従来のプロセッサ設計における「レジスタ名
前変更」と同じ役目を果たす。
【0025】レジスタ・ファイル40(図2参照)はま
た、命令に対するオペランドのソースである。このた
め、レジスタ・ファイル40は、結果パイプ中に挿入さ
れたバインドの主要なソースである。好ましい実施形態
では、フェッチし、パイプ中に送るべきレジスタ値を決
定するのに適している多数の方針のうち、このシステム
は、パイプ中の命令のソースに一致することが分かって
いるバインドを結果パイプ中に送ることを選択する。こ
れらのレジスタ値は、関連する命令によってガーナさ
れ、したがって命令の実行を可能にする。この方針の一
実施形態では、命令復号ステージがソース・レジスタ・
アドレスをレジスタ・ファイルに送り、レジスタ・ファ
イルがレジスタ値をフェッチし、対応するバインドを結
果パイプ中に送る。
【0026】正確な動作を保証するために、CFPP
は、下方に流れる各結果中のバインドと上方に流れる各
命令中のバインドとの一致を検出しなければならない。
各結果は、比較が行われたあるパイプライン・ステージ
中の後続のすべての命令に遭遇しなければならない。適
切な制御回路を使用することによって、隣接するパイプ
ライン・ステージが、一致の検出を妨げる命令と結果を
「同時に」交換することがなくなる。ステージ間の境界
は、命令を上方に通過させるか、または結果を下方に通
過させるが、両方を通過させることはできない。CFP
Pの非同期実施形態では、ステージの各対間のアービタ
を使用して、この通信プロトコルを実施する。
【0027】パイプライン中の各ステージは、いくつか
の規則に従って動作する。命令に関して、 1.命令は、命令パイプライン中でプログラム順でなけ
ればならない。 2.命令に対するすべてのソース・バインドが有効であ
り、かつ命令が適切な計算論理を含むステージ中に保持
される場合、命令は実行する。命令が実行を完了したと
き、その宛先バインドが有効とマーク付けされ、値が挿
入される。 3.命令が実行を完了したとき、それぞれその宛先バイ
ンドの1つまたは複数のコピーが結果パイプライン中に
挿入される。 4.実行されない命令は、それを実行することができる
パイプラインの最後のステージを追い越すことはできな
い。特に、命令は、それが実行されるまでレジスタ・フ
ァイル中に入ることができない。命令と結果が同じパイ
プライン・ステージ中に存在し、かつ一致するバインド
を有する場合に適用する一致規則に関して、 1.有効な結果バインドが無効なソース・バインドに一
致する場合、結果値をソース値にコピーし、ソースを有
効とマーク付けする。 2.無効な宛先バインドが有効な結果バインドに一致す
る場合、結果バインドを無効とマーク付けする。 3.有効な宛先バインドが結果バインドに一致する場
合、宛先値を結果値中にコピーし、結果を有効とマーク
付けする。 4.グループ内で、宛先およびソースを適切に処理する
必要がある。
【0028】多重発行システムでは、各命令は、実行の
準備ができるまでその実行ステージのところで待たなけ
ればならない。1つの問題は、多重発行命令中の別々の
動作が異なるステージにおいて実行する必要があること
である。複合命令は、複合命令の任意の部分を計算する
ためにその計算に必要とされるソースをガーナするまで
第1のステージにおいて停止する。残念ながら、停止を
もたらした動作は、命令シーケンス中の前の方で、パイ
プライン中の後のステージまで計算されない複合命令の
ある他の部分からの結果に依存する。複合命令中の別々
の動作がパイプライン中のステージの順序に一致しない
順序で現れた場合、そのような停止はデッドロックをも
たらす。そのようなデッドロックは、以下で説明するよ
うに、予定された形でグループ内の命令を実行する機構
を備えることによって回避される。
【0029】本発明のいくつかの実施形態では、結果パ
スを同様に広くすることができる。言い換えれば、2つ
またはそれ以上の結果レジスタが使用できる。しかしな
がら、実施した実験的テストでは、実際の命令の統計か
ら、命令はそれぞれ1よりもわずかに大きいソース値の
みを使用することが分かる。第二に、レジスタ・キャッ
シュは、小さいものでも、レジスタ・ファイルへのアク
セスを最小限に抑え、したがって結果パイプライン・ト
ラフィックを少なくする。第三に、結果は、結果パイプ
中で短い距離、すなわち結果が生成された場所から結果
がキルされた場所までしか持続しない。同じ宛先レジス
タを有する2つの近い命令は、一緒にただ1つの結果パ
イプ要素をもたらす。したがって、パイプラインをより
長くすることには、結果パイプの帯域幅を広くする効果
がある。第四に、一対の命令は、共同で結果を生成し、
消費する。命令を対にすることによって、結果パイプへ
のステージ当たりのアクセスを増加させる。両方の命令
が共通のソース・レジスタを必要とする場合、それが結
果パイプ中にただ1回現れる必要がある。2つの命令が
共通の宛先を有する場合、それらは一緒にただ1つの結
果をもたらす。命令のグループが名前を共用する場合、
適切な実行を保証するために特に注意しなければならな
い。
【0030】多重発行パイプラインを処理するために追
加の演算装置が備えられる。例えば、命令パイプの各側
に1つずつ、2つのALUを使用し、異なる複数のステ
ージにおいて対のALUを繰り返す。好ましい実施形態
では、命令パイプラインを半分に分けてその2つの半分
が単一のALU(図示せず)を共用し、対になった動作
が異なっているという統計的な可能性を利用する。その
ような実施形態では、両方の動作がそれらのすべてのソ
ース値をガーナし、かつ両方が同じALUを必要とする
場合、それは順にまず一方の命令によって使用され、次
いで他方の命令によって使用される。好ましい実施形態
では、単一のALUが任意の1つのステージ中で使用さ
れる。そのような単一のALUの競合は2つの理由で最
小になる。第一に、統計的に両方の命令が同じ種類のA
LUを必要とする可能性は低い。第二に、両方が同じ種
類のALUを必要とする場合でも、対の一方の命令は、
一般に他方の命令の前にその資源をガーナする。まだ準
備ができていない命令は、まだALUの競合者ではな
い。他の実施形態では、複数のALUが備えられるが、
命令対によって共用されるべき別々のステージ中に配置
される。そのような手法では、部分的に完了した対が完
了のために他のステージに前進することができる。他の
実施形態では、ステージパイプごとに多重命令を処理す
るより多くの演算装置が備えられる。そのような実施形
態では、命令パイプの各側に1つずつ、2つのALUが
備えられる。
【0031】命令対は、単一の命令よりも所与のステー
ジ中で処理を必要とする可能性が高い。対によっては、
2倍の処理時間を必要とする。したがって、単一発行パ
イプラインに比較して、二重発行パイプラインはより広
範な処理時間を有する。必要な場合、高速バッファステ
ージを可変遅延ステージの作業負荷の前ならびに後に配
置すれば、作業負荷を平滑化できる。
【0032】上述の多重発行手法は、プログラマの連続
的実行モデルを保持する。このモデルは、各ステージが
各対を適切に処理する場合、すなわち結果の処理に対し
て必ずしも連続的な発行順序でではなく各対を処理する
場合、二重命令パイプライン中に保存される。対の前の
命令が結果をキルした場合、その結果は、対の後の命令
に見えてはならない。パイプラインのフレキシビリティ
は、設計に大きい利点をもたらす。実行順序は対の中で
も保持されない。対のどちらかがまず実行される。命令
の対が結果をガーナし、キルするためにどのように一緒
に動作するかに関してのみ注意が必要である。好ましい
実施形態では、これは、グループ内の命令の宛先を比較
する余分のコンパレータを備えることによって達成され
る。例えば、図3のコンパレータ88を参照されたい。
追加の帯域幅が望まれる場合、レジスタ・ファイル・キ
ャッシュが備えられる。そのようなキャッシュは、本発
明の譲受人に譲渡された米国特許出願第08/7588
02号「コンピュータ・プロセッサへレジスタ値を与え
るレジスタ・キャッシュ(A Register Cache for Provi
ding Resister Values to a Computer Processor)」に
記載されている。
【0033】命令の並列発行を実施する他の方法は、上
述の発行手法の他に、複数の別々のパイプラインを使用
することである。図4にこの実施形態を示す。図示のよ
うに、命令用の2つのパイプライン100、120があ
り、結果用の1つのパイプライン130がある。もちろ
ん、追加の命令パイプラインおよび結果パイプラインが
備えられる。命令パイプライン100は、上述のように
任意の数の別々のステージを含む。他方の命令パイプラ
イン120も、一般に76パイプライン100と同じ数
の別々のステージから構成される別々のステージを含
む。底部の命令フェッチ・ユニット140は、パイプラ
イン100とパイプライン120の両方に接続され、そ
れぞれに命令を与える。上部のレジスタ・ファイル15
0は、パイプライン100とパイプライン120の両方
に接続され、それらから結果を受ける。上述のように、
命令は、命令パイプライン100、120中を上方に流
れるものとして示されている。単一のパイプライン10
0または120中の前の命令は、後の命令の上方にあ
る。命令は、それぞれパイプ100、120中をできる
だけ遠くかつ迅速に上方に移動し、すぐ上のパイプライ
ン・ステージがまだ新しい命令を受けることができない
とき、または命令がそれを実行するために備えられた最
後のパイプライン・ステージに到達したときのみ停止す
る。また、上述のように、停止した命令の上方には、任
意のサイズのギャップがパイプライン中に生じる。パイ
プラインの命令が異なるレジスタ組を使用するのでパイ
プラインは独立している。パイプラインは、底部におい
て、命令を適切なパイプライン中に送る命令発行機構1
40によって結合される。好ましい実施形態では、一方
のそのようなパイプは主として浮動小数点演算用に使用
され、他方のパイプは主として固定小数点演算用に使用
される。
【0034】図4に示されるアーキテクチャでは、命令
は、2つのパイプライン中に交互に発行される。命令が
同じ命令シーケンスから来た場合、一方のパイプライン
中の命令が他方のパイプライン中の命令を追い越すのを
防ぐ追加の機構を備えて、それらの相互のシーケンスを
保持することが望ましい。2つのパイプ間の命令の順序
は、インタロック機構160によって維持される。この
回路は、一方のパイプライン中の後で発行された命令が
他方のパイプライン中の前に発行された命令を追い越す
のを防ぐ。したがって、命令は、それらが命令フェッチ
140によって発行されたのと同じ順序でレジスタ・フ
ァイル150中に入れられる。所要のインタロック機構
を実施するのに適した回路は、本発明の譲受人に譲渡さ
れた1996年4月23日出願の米国特許出願第08/
636260号「インターロックされたFIFO制御回
路(Interlocked FIFO Control Circuits )」に記載さ
れている。
【0035】また、2つのパイプラインが異なる機能を
有する場合、それらの間で連続的な動作を維持すること
ができる。例えば、プログラムが浮動小数点演算のグル
ープと固定小数点演算のグループとを交互に組み合わせ
ると仮定する。固定小数点演算は、浮動小数点演算用の
索引値を与える。複数の固定小数点演算の結果は、単一
のそのような索引値である。そのような命令の交互に組
み合わせた組を2つのパイプラインに分割できる。
【0036】浮動小数点パイプ中では、固定小数点演算
の各グループが「要約」演算に置き換えられる。そのよ
うな要約演算は、実際に「レジスタXの値がこの点にお
いて命令ストリーム中に現れる」という。同様に、固定
小数点パイプ中では、浮動小数点演算の各グループが、
実際に「この点において以下のレジスタが計算される」
という「要約」演算に置き換えられる。
【0037】パイプ間の通信手段は、要約演算を使用し
て、結果を他方の結果パイプ中に導入する。要約演算は
また、結果パス中の古くなった結果をキルする役目をす
る。要約演算は結果をキルするので、宛先値を生成する
演算が単一のパイプライン中の結果ストリームを分割す
る場合と同様に、要約演算は結果パスをその適切な部分
に分割する。
【0038】図4に示される実施形態の命令/結果バイ
ンド機構は、図3に示されるシステムと同じである。命
令が機能的に別々のパイプライン中にあることは、上述
のように、単一の多重発行パイプラインに比較して動作
を変更しない。
【0039】上述の多重パイプライン実施形態では、両
方のパイプライン中の命令は、単一結果パイプラインか
らの値と相互作用する。ガーナとレンラグの両方の動作
が行われる。適切なアービトレーション回路および適切
な名前比較回路をそれぞれ命令パイプラインと結果パイ
プラインの間に複製しなければならない。この手法は、
単位時間当たり発行する命令が、各結果が2つのパイプ
ラインのどちらか一方に入る場合の2倍であるので大き
い利点をもたらす。
【0040】いくつかの状況では、そのようなシステム
は、結果パイプラインに非常に重い負担をかけることが
ある。それらの状況では、複数の結果パイプラインを同
様に備えることができる。このアーキテクチャによれ
ば、結果が異なる名前を有することを条件として結果が
互いに追い越すことができる。したがって、異なる種類
の名前を異なる結果パイプ中に入れることが有用であ
る。例えば、2つの結果パイプを有するシステムでは、
偶数の名前を有する結果は一方のパイプ中に入り、奇数
の名前を有する結果は他方のパイプ中に入る。あるい
は、結果名は、ある他の条件によっていくつかのグルー
プに分割され、例えばアルファベットの後のほうの名前
は一方のパイプ中に入り、アルファベットの前のほうの
名前は他方のパイプ中に入る。
【0041】所要の制御回路の数および比較回路の数
は、一方向に流れるパイプラインの数と反対の方向に流
れるパイプラインの数との積である。グループ間比較の
ために追加のコンパレータ88が必要である。例えば、
上方に流れる3つの命令パイプおよび下方に流れる2つ
の結果パイプを有するシステムは、1ステージ当たり6
つのアービタおよび6つの比較回路を必要とする。非同
期デバイス中でのこの種類の信頼できる相互作用にはア
ービトレーションが必要である。各パイプの各ステージ
は、各逆流パイプラインごとに1つのアービタを必要と
する。同様に、各パイプラインの各ステージは、その名
前を逆流パイプライン中の名前に比較する名前比較回路
を必要とする。したがって、回路の数は、2つの方向に
流れるパイプの数と、適切なグループ間協働を保証する
ために追加された追加の回路との積に関連する。
【0042】上述のように、所与のグループ内での命令
の実行を調整するために必要とされる追加のコンパレー
タ88がある。必要とされる特定の調整は、命令パイプ
ラインおよび結果パイプライン用に選択された特定の実
施形態によって異なる。
【0043】命令パイプラインに関して、3つの可能な
構成がある。第1の実施形態では、命令の各対はパイプ
ライン中を「ロックステップ」の形で移動する。これ
は、図3に示される実施形態であり、図3では、実行中
の上位の命令からの結果が対(またはより大きいグルー
プ)内の適切な下位の命令に送られて、その下位の命令
が実行できることを保証するために追加のコンパレータ
88が必要である。
【0044】命令パイプライン中の命令の他の可能な関
係は、それらが別々の組を形成することである。この状
況では、命令は、命令の各対(またはより大きいグルー
プ)が互いに異なる文字のみの命令を含むようにコンパ
イルされる。例えば、一対の命令の場合、1つの命令が
浮動小数点命令になり、他方の命令が固定小数点命令に
なる。そのような場合、結果が対の一方の命令から他方
の命令に送られないので追加のコンパレータ88は不要
である。
【0045】命令パイプライン用の命令の他の可能な構
成は、命令がそれらの実行順序を保存するような形でイ
ンタロックされることである。この構成では、各対の1
つの命令は、より最近命令フェッチ・ユニットによって
発行された上位命令、下位命令と考えられる。ただし、
このシステムは、次の対の上位命令が実行する前に各対
の下位命令が必ず実行するような形で動作するようにな
される。言い換えれば、次のグループの第1の命令が実
行する前にグループ内のすべての命令が実行することを
保証するインタロック機構が必要である。
【0046】パイプラインの各ステージ中に多数の結果
が存在する場合、結果パイプライン用の同様の可能な構
成がある。もちろん、最も簡単な場合は、単一の結果の
みがパイプラインの各ステージのところに存在し、その
結果がパイプラインのすべての命令によって共用される
ことである。他の場合は、命令ステージの場合と同じで
ある。言い換えれば、結果は、結果パイプラインに沿っ
てロックステップの形または互いに素な集合の形で移動
する。互いに素な集合は、奇数または偶数のステージか
らの結果、またはアルファベットのある部分中の名前対
他の部分中の名前に対する結果などの結果から構成され
る。結果パイプラインの最後の場合は、結果がパイプラ
イン中に存在するが、必ず同じ名前または識別が同じ名
前または識別を有する他の命令を通さないような形で調
整されることである。
【0047】上述の本発明は、多数の態様を有する。第
1に、複数のパイプラインが所与の方向に流れることが
できる。例えば、3つのパイプが一方向に流れ、2つの
パイプが反対の方向に流れることができる。パイプライ
ン間の相互作用の規則は、単一のパイプが各方向に流れ
る場合とまったく同様に保持される。言い換えれば、一
方向に流れるデータ要素は、反対の方向に流れるすべて
のデータ要素と相互作用する機会を有する。
【0048】第2に、そのような構造を使用してパイプ
ライン・アキーテクチャを実施することによって、多数
の命令パイプが単位時間当たりより多くの命令を発行す
ることができる。第3に、多数の結果パイプを使用する
ことによって、性能がさらに改善される。識別可能な名
前を有する結果が別々の結果パイプ中に入れられた場
合、結果の順序を保存するインタロックが省略できる。
【0049】本発明の他の実施形態では、複数の多重発
行パイプラインが使用される。そのような実施形態で
は、システムの編成は、図2および図4に示されるもの
の組合せである。言い換えれば、図4の複数の各パイプ
ラインは、図2に示すようにそれ自体多重発行パイプラ
インである。制御機構は、2つの実施形態それぞれにつ
いて個々に不変である。
【0050】本明細書に記載の本発明は、同期プロセッ
サまたは非同期プロセッサ内で実施される。逆流パイプ
ライン・プロセッサの同期実施形態は、隣接するステー
ジの状態に対して組合せ関数によって与えられたステー
ジの局所制御を有する。制御は、固定の方針を使用し
て、いずれか一方が可能な場合、命令パケットを通す
か、または結果パケットを通すかを決定することができ
る。一実施形態では、命令は優先的に通される。
【0051】パイプラインの非同期進行が実施される本
発明の実施形態では、アービトレーションと呼ばれる技
法が使用される。パイプライン各ステージに関連するア
ービタは、命令(または結果)がいつ進行の準備ができ
るかを決定する。アービタ回路は、前進を許可する前に
3つの条件が存在するかどうかを確認する。3つの条件
とは、(1)例えば、命令が実行されている場合、実行
が必ず完了するように項目が進行の準備ができていなけ
ればならない、(2)次のステージにスペースが存在し
なければならない、(3)命令と結果が交換できない、
すなわちそれらが隣接するステージ間で交換できない。
これらの条件では、ステージおよびその隣接するステー
ジの状態が局所的に分かっているだけでよい。
【0052】以上、逆流プロセッサの性能を改善するコ
ンピュータ・システムについて説明した。本発明の範囲
から逸脱することなくこのシステムに修正または変更を
加えることができることを理解されたい。本発明の範囲
は、首記の請求の範囲に記載されている。
【図面の簡単な説明】
【図1】従来技術の逆流パイプライン・プロセッサの代
表的な構造を示す図である。
【図2】多重発行逆流パイプライン・プロセッサの好ま
しい実施形態を示す図である。
【図3】図2に示されるパイプライン中の各命令および
結果ステージのデータ(およびラッチ)構造を示す図で
ある。
【図4】複数の別々のパイプラインを使用して多数の命
令を発行する逆流パイプライン・プロセッサの他の実施
形態を示す図である。
【符号の説明】 10 逆流パイプライン・プロセッサ(CFPP) 20 パイプライン 30 命令フェッチ・ユニット 40 レジスタ・ファイル 50 命令 52、55 ソース・オペランド 58、60 宛先 60 命令 62、65 ソース・オペランド 68 宛先 70 結果 74、76 結果値 80 データ値 84 レジスタ名 85 有効ビット
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成10年6月2日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図1】
【図2】
【図3】
【図4】
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A.

Claims (25)

    【特許請求の範囲】
  1. 【請求項1】 命令フェッチ・ユニットと、 レジスタ・ファイルと、 命令フェッチ・ユニットとレジスタ・ファイルとの間に
    接続され、複数のステージを含むパイプラインとを含
    み、 前記パイプライン中の各ステージが、 第1の命令を記憶する第1の命令レジスタ、 第2の命令を記憶する第2の命令レジスタ、および結果
    を記憶する第1の結果レジスタを含み、 命令が第1の方向でステージからステージに転送され、
    かつ結果が反対の方向でステージからステージに転送さ
    れるコンピュータ・システム・アーキテクチャ。
  2. 【請求項2】 第1の命令レジスタおよび第2の命令レ
    ジスタがそれぞれ、第1の結果レジスタに情報を送信
    し、かつ第1の結果レジスタから情報を受信するように
    接続された請求項1に記載のシステム。
  3. 【請求項3】 各命令レジスタが、 オペランド・フィールドと、 オペランド用の第1のソース・フィールドと、 オペランド用の第2のソース・フィールドと、 宛先フィールドとを含む請求項2に記載のシステム。
  4. 【請求項4】 オペランド用の第1のソース・フィール
    ドおよび第2のソース・フィールドがそれぞれオペラン
    ドの実行のための情報を含み、かつ宛先フィールドがオ
    ペランドの実行からのデータを記憶する請求項3に記載
    のシステム。
  5. 【請求項5】 第1のソース・フィールド、第2のソー
    ス・フィールド、および宛先フィールドがそれぞれ、 レジスタ名と、 値と、 有効性ビットとを含む請求項3に記載のシステム。
  6. 【請求項6】 第1の命令レジスタ、第2の命令レジス
    タ、および第1の結果レジスタに接続され、命令レジス
    タの内容の一部と結果レジスタの内容の一部とを比較す
    るコンパレータのグループをさらに含む請求項2に記載
    のシステム。
  7. 【請求項7】 各命令レジスタが、オペランド・フィー
    ルド、オペランド用の第1のソース・フィールド、オペ
    ランド用の第2のソース・フィールド、および宛先フィ
    ールドを含み、 各結果レジスタが少なくとも第1の結果フィールドおよ
    び第2の結果フィールドを含む請求項6に記載のシステ
    ム。
  8. 【請求項8】 第1のソース・フィールド、第2のソー
    ス・フィールド、宛先フィールド、第1の結果フィール
    ド、および第2の結果フィールドがレジスタ名を含む請
    求項7に記載のシステム。
  9. 【請求項9】 コンパレータのグループが、 第1の結果フィールドのレジスタ名とそれぞれ第1の命
    令レジスタおよび第2の命令レジスタのソース・フィー
    ルドおよび宛先フィールドのレジスタ名とを比較するよ
    うに接続された第1の組のコンパレータと、 第2の結果フィールドのレジスタ名とそれぞれ第1の命
    令レジスタおよび第2の命令レジスタのソース・フィー
    ルドおよび宛先フィールドのレジスタ名とを比較するよ
    うに接続された第2の組のコンパレータとを含む請求項
    8に記載のシステム。
  10. 【請求項10】 コンパレータのグループが、第1の命
    令と第2の命令のどちらが最初に実行するかを制御する
    ためにそれぞれ第1の命令および第2の命令のソース・
    フィールドのレジスタ名と第2の命令の宛先フィールド
    とを比較するように接続された第3の組のコンパレータ
    をさらに含む請求項9に記載のシステム。
  11. 【請求項11】 コンパレータが、フィールド中に記憶
    されたデータ値の1つのレジスタから他のレジスタへの
    転送を制御する請求項9に記載のシステム。
  12. 【請求項12】 命令フェッチ・ユニットと、 レジスタ・ファイルと、 命令フェッチ・ユニットとレジスタ・ファイルとの間に
    接続され、それぞれ複数のステージを含む少なくとも第
    1のパイプライン、第2のパイプライン、および第3の
    パイプラインとを含み、 第1のパイプラインの各ステージが第1の命令を記憶す
    る第1の命令レジスタを含み、 第2のパイプラインの各ステージが第2の命令を記憶す
    る第2の命令レジスタを含み、 第3のパイプラインの各ステージが結果を記憶する第1
    の結果レジスタを含み、 命令がそれぞれ第1のパイプラインおよび第2のパイプ
    ライン中で第1の方向でステージからステージに転送さ
    れ、かつ結果が第3のパイプライン中で反対の方向でス
    テージからステージに転送されるコンピュータ・システ
    ム・アーキテクチャ。
  13. 【請求項13】 インタロック回路がそれぞれ第2のパ
    イプラインおよび第3のパイプライン中の対応するステ
    ージに接続された第1のパイプラインの各ステージごと
    に制御回路をさらに含む請求項12に記載のシステム。
  14. 【請求項14】 制御回路が、命令が順序を外れて実行
    するのを防ぐためにパイプラインを制御するように互い
    に接続された請求項13に記載のシステム。
  15. 【請求項15】 第1の命令レジスタと第2の命令レジ
    スタがそれぞれ、第1の結果レジスタに情報を送信し、
    かつ第1の結果レジスタから情報を受信するように接続
    された請求項12に記載のシステム。
  16. 【請求項16】 第1の命令レジスタと第2の命令レジ
    スタがそれぞれ、 オペランド・フィールドと、 オペランド用の第1のソース・フィールドと、 オペランド用の第2のソース・フィールドと、 宛先フィールドとを含む請求項12に記載のシステム。
  17. 【請求項17】 オペランド用の第1のソース・フィー
    ルドおよび第2のソース・フィールドがそれぞれオペラ
    ンドの実行のための情報を含み、かつ宛先フィールドが
    オペランドの実行からのデータを記憶する請求項16に
    記載のシステム。
  18. 【請求項18】 第1のソース・フィールド、第2のソ
    ース・フィールド、および宛先フィールドがそれぞれ、 レジスタ名と、 値と、 有効性ビットとを含む請求項16に記載のシステム。
  19. 【請求項19】 第1の命令レジスタ、第2の命令レジ
    スタ、および第1の結果レジスタに接続され、命令レジ
    スタの内容の一部と結果レジスタの内容の一部とを比較
    するコンパレータのグループをさらに含む請求項12に
    記載のシステム。
  20. 【請求項20】 各命令レジスタが、オペランド・フィ
    ールド、オペランド用の第1のソース・フィールド、オ
    ペランド用の第2のソース・フィールド、および宛先フ
    ィールドを含み、 各結果レジスタが少なくとも第1の結果フィールドおよ
    び第2の結果フィールドを含む請求項19に記載のシス
    テム。
  21. 【請求項21】 第1のソース・フィールド、第2のソ
    ース・フィールド、宛先フィールド、第1の結果フィー
    ルド、および第2の結果フィールドがレジスタ名を含む
    請求項20に記載のシステム。
  22. 【請求項22】 コンパレータのグループが、 第1の結果フィールドのレジスタ名とそれぞれ第1の命
    令レジスタおよび第2の命令レジスタのソース・フィー
    ルドおよび宛先フィールドのレジスタ名とを比較するた
    めに接続された第1の組のコンパレータと、 第2の結果フィールドのレジスタ名とそれぞれ第1の命
    令レジスタおよび第2の命令レジスタのソース・フィー
    ルドおよび宛先フィールドのレジスタ名とを比較するた
    めに接続された第2の組のコンパレータとを含む請求項
    21に記載のシステム。
  23. 【請求項23】 コンパレータが、フィールド中に記憶
    されたデータ値の1つのレジスタから他のレジスタへの
    転送を制御する請求項22に記載のシステム。
  24. 【請求項24】 第1の命令と第2の命令が互いに適切
    な順序で実行することを保証するためにそれぞれ第1お
    よび第2の命令のレジスタ名と第2の命令の宛先名とを
    比較するために接続された第3の組のコンパレータをさ
    らに含む請求項22に記載のシステム。
  25. 【請求項25】 命令フェッチ・ユニットと、 レジスタ・ファイルと、 命令フェッチ・ユニットとレジスタ・ファイルとの間に
    接続され、それぞれ複数のステージを含む少なくとも第
    1のパイプライン、第2のパイプライン、および第3の
    パイプラインとを含み、 第1のパイプラインの各ステージが第1の命令を記憶す
    る第1の命令レジスタおよび第2の命令を記憶する第2
    の命令レジスタを含み、 第2のパイプラインの各ステージが第3の命令を記憶す
    る第3の命令レジスタおよび第4の命令を記憶する第4
    の命令レジスタを含み、 第3のパイプラインの各ステージが結果を記憶する第1
    の結果レジスタを含み、 命令がそれぞれ第1のパイプラインおよび第2のパイプ
    ライン中で第1の方向でステージからステージに転送さ
    れ、かつ結果が第3のパイプライン中で反対の方向でス
    テージからステージに転送されるコンピュータ・システ
    ム・アーキテクチャ。
JP12563598A 1997-05-09 1998-05-08 多重発行/複数逆流パイプライン・プロセッサ Expired - Lifetime JP3833825B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/853,970 US5838939A (en) 1997-05-09 1997-05-09 Multi-issue/plural counterflow pipeline processor
US08/853970 1997-05-09

Publications (3)

Publication Number Publication Date
JPH1124927A true JPH1124927A (ja) 1999-01-29
JPH1124927A5 JPH1124927A5 (ja) 2005-09-29
JP3833825B2 JP3833825B2 (ja) 2006-10-18

Family

ID=25317388

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12563598A Expired - Lifetime JP3833825B2 (ja) 1997-05-09 1998-05-08 多重発行/複数逆流パイプライン・プロセッサ

Country Status (3)

Country Link
US (1) US5838939A (ja)
EP (1) EP0877317A3 (ja)
JP (1) JP3833825B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69827755T2 (de) * 1997-07-21 2005-11-03 Koninklijke Philips Electronics N.V. Verfahren zum betreiben eines kommunikationskanals in einer gemischten master-/slave-teilnehmerumgebung durch eine dynamische schliess- und/oder öffnungsoperation und system zur durchführung des verfahrens
US6006206A (en) * 1997-09-08 1999-12-21 Reuters Limited Data health monitor for financial information communications networks
US6163839A (en) * 1998-09-30 2000-12-19 Intel Corporation Non-stalling circular counterflow pipeline processor with reorder buffer
US6918028B1 (en) * 2000-03-28 2005-07-12 Analog Devices, Inc. Pipelined processor including a loosely coupled side pipe
GB2395298B (en) * 2002-09-17 2007-02-14 Micron Technology Inc Flexible results pipeline for processing element
US20050138297A1 (en) * 2003-12-23 2005-06-23 Intel Corporation Register file cache

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6015746A (ja) * 1983-07-08 1985-01-26 Hitachi Ltd デ−タ処理装置
US5187800A (en) * 1985-01-04 1993-02-16 Sun Microsystems, Inc. Asynchronous pipelined data processing system
EP0293517B1 (de) * 1987-06-02 1992-11-25 Deutsche ITT Industries GmbH Steuerprozessor
CA2016068C (en) * 1989-05-24 2000-04-04 Robert W. Horst Multiple instruction issue computer architecture
US5488729A (en) * 1991-05-15 1996-01-30 Ross Technology, Inc. Central processing unit architecture with symmetric instruction scheduling to achieve multiple instruction launch and execution
US5416913A (en) * 1992-07-27 1995-05-16 Intel Corporation Method and apparatus for dependency checking in a multi-pipelined microprocessor
US5758139A (en) * 1993-10-21 1998-05-26 Sun Microsystems, Inc. Control chains for controlling data flow in interlocked data path circuits
EP0650117B1 (en) * 1993-10-21 2002-04-10 Sun Microsystems, Inc. Counterflow pipeline

Also Published As

Publication number Publication date
EP0877317A2 (en) 1998-11-11
US5838939A (en) 1998-11-17
JP3833825B2 (ja) 2006-10-18
EP0877317A3 (en) 1999-02-03

Similar Documents

Publication Publication Date Title
CN109215728B (zh) 用于分布式存储器危险检测和错误恢复的存储器电路和方法
JP3906003B2 (ja) プロセッサおよびその命令処理方法
US7437521B1 (en) Multistream processing memory-and barrier-synchronization method and apparatus
Fridman et al. The tigersharc DSP architecture
US7000097B2 (en) System and method for handling load and/or store operations in a superscalar microprocessor
US6230254B1 (en) System and method for handling load and/or store operators in a superscalar microprocessor
Molnar et al. Counterflow pipeline processor architecture
US5710902A (en) Instruction dependency chain indentifier
TW417063B (en) Improvements for a microprocessor with pipeline synchronization
CN111512292A (zh) 用于可配置空间加速器中的非结构化数据流的装置、方法和系统
KR100507415B1 (ko) 마이크로프로세서내의공유데이터경로를통해정수데이터및부동소수점데이터를통신하기위한장치및그통신방법
CN104011705A (zh) 多形异构性多核架构
JP2000122864A (ja) デ―タ処理システムおよび集合化を用いた命令システム
WO2017021678A1 (en) An apparatus and method for transferring a plurality of data structures between memory and a plurality of vector registers
JP2000330790A (ja) コンピュータシステム動作方法、コンピュータシステムにおける命令スケジューリング方法およびコンピュータシステム
JPH07191846A (ja) プロセッサ
JPH063584B2 (ja) 情報処理装置
US6820190B1 (en) Method and computer system for decomposing macroinstructions into microinstructions and forcing the parallel issue of at least two microinstructions
WO2014190699A1 (zh) 一种cpu指令处理方法和处理器
JPH1124927A (ja) 多重発行/複数逆流パイプライン・プロセッサ
JP2022546034A (ja) マイクロプロセッサ内におけるレジスタ結果の累積のための命令ハンドリング
Hicks et al. POWER2 floating-point unit: Architecture and implementation
EP1315083A2 (en) Processor and method of pipelining
EP0874308A2 (en) Store instruction forwarding technique with increased forwarding probability
US6336182B1 (en) System and method for utilizing a conditional split for aligning internal operation (IOPs) for dispatch

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050509

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050509

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060314

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060523

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: 20060620

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060720

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: 20090728

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100728

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110728

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110728

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120728

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120728

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130728

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term