JP3564041B2 - コンピュータ・システム - Google Patents

コンピュータ・システム Download PDF

Info

Publication number
JP3564041B2
JP3564041B2 JP2000126367A JP2000126367A JP3564041B2 JP 3564041 B2 JP3564041 B2 JP 3564041B2 JP 2000126367 A JP2000126367 A JP 2000126367A JP 2000126367 A JP2000126367 A JP 2000126367A JP 3564041 B2 JP3564041 B2 JP 3564041B2
Authority
JP
Japan
Prior art keywords
processing element
sfe
processing
instruction
upcore
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000126367A
Other languages
English (en)
Other versions
JP2000347859A (ja
Inventor
トーマス・ジェイ・ヘラー・ジュニア
ウィリアム・トッド・ボイド
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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
Priority claimed from US09/008,792 external-priority patent/US6052771A/en
Priority claimed from US09/009,820 external-priority patent/US5954546A/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2000347859A publication Critical patent/JP2000347859A/ja
Application granted granted Critical
Publication of JP3564041B2 publication Critical patent/JP3564041B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、コンピュータ・システムに関し、特に、システム・パフォーマンスを改善し、改良されたマイクロプロセッサ・サポートを備えたマイクロプロセッサを提供するよう、互いに結合されたマイクロプロセッサとコプロセッサとを備えたコンピュータ・システムに関する。
【0002】
【従来の技術】
現行のマイクロプロセッサのパフォーマンスは、重要な作業負荷の大部分に関する有限キャッシュ効果によって厳密に制限されている。有限キャッシュ効果は、マイクロプロセッサの第1レベルのキャッシュが無限に大きくなっていれば解消するであろうパフォーマンス劣化のすべての誘因を含む。オフチップ記憶域からのオペランド・データを待っている間にマイクロプロセッサが機能停止する時間の量は、多くの場合に命令の実行に費やす時間と等しい。これは、データベースおよびトランザクション処理を含む作業負荷の場合に特に言えることである。
【0003】
多くの現行のマイクロプロセッサ設計は、有限キャッシュの不利益の低減を目指している。大規模キャッシュ、複数レベルのキャッシュ、高速マルチチップ・モジュール、順不同 out-of-order 実行、命令事前取出しは広く使用されており、最も有用であると考えられている。オペランドの事前取出しも、通常の順不同処理の有無にかかわらず、所与の作業負荷に正常に使用されている。しかし、オペランドの事前取出しは、データベースおよびトランザクション作業負荷には特に効果的なわけではない。大規模キャッシュは有限キャッシュ効果の低減をもたらすが、この領域のさらなる改良は、ダイのサイズまたはチップ・カウントの増加が示すコスト・パフォーマンス上の意味によって制限されている。現行の順不同実行技法は、有限キャッシュ効果の大幅な低減をもたらすが、プロセッサ・クロック周波数の低減および設計の複雑さの増大という形の不利益を伴う。したがって、以前は好ましいと考えられていた順不同実行設計を実現するコストを大幅に削減できるようなマイクロプロセッサ設計の改良を提供する必要がある。
【0004】
用語集
CPIは、命令当たりのマシン・サイクル数を意味する。
【0005】
SFEは、本発明が提供する推論取出しエンジンである。
【0006】
uPCoreは、サイクル時間と設計の複雑さと無限キャッシュCPIとの兼ね合いに関してバランスを取ったマイクロプロセッサ設計を表す。
【0007】
【発明が解決しようとする課題】
本発明は、コンピュータ・システムを設計するための方法を提供し、詳細には、順不同サポートを改善し、大規模キャッシュおよびマルチレベル・キャッシュを使用する能力をコンピュータ・システムに提供し、特に、マイクロプロセッサとこれに結合されたコプロセッサとを備え、当該コプロセッサの推論取出しエンジンを使用して、有限キャッシュの不利益の低減を達成し、それによりシステム・パフォーマンスの向上をもたらすコンピュータ・システムを提供する。
【0008】
【課題を解決するための手段】
好ましい実施例の改良点は、複数のパイプラインの同期によるレジスタ管理を介してマイクロプロセッサ・サポートを改善する。このような改良点は、(必要に応じて先取出しおよび同時ロードの実行などのスーパスカラ技法を処理できるようになっている)本質的に適正順序 in-order で命令を処理するマイクロプロセッサ・コアと協力して動作する複数の実行要素を有する推論取出しエンジン(SFE)と、順不同実行のための方法と、複数のマイクロプロセッサとの同期を取る方法と、SFEとマイクロプロセッサ・コア(uPCore)の両方によって共用される記憶階層への推論メモリ参照の生成を可能にするレジスタ管理プロセスとを提供することによって達成される。
【0009】
uPCoreとSFEはどちらも処理要素と見なされる(この意味で、uPCoreを「第1の処理要素」ともいい、SFEを「第2の処理要素」または「コプロセッサ」ともいう)。第1および第2の処理要素を有するコンピュータ・システムは、そので順次命令ストリームを処理し、第1および第2の処理要素の各々はそれ自体の汎用レジスタおよび制御レジスタの設定によって決定されるそれ自体の状態を有する。処理中の任意の時点において、同じ順次命令ストリームの連続処理を第2の処理要素に引き継がせることが利益になる場合、第1および第2の処理要素は、順次命令ストリームを処理し、全く同じ命令を実行している可能性があるが、第1および第2の処理要素の状態の組合せによって決定される前記コンピュータ・システムの全体的なアーキテクチャ状態を変更することができるのは、第1および第2の処理要素の一方だけ(好ましい実施例ではuPCore)になる。
【0010】
好ましい実施例では、第2の処理要素は、順不同実行を可能にし、それにより、有限キャッシュの不利益を低減してパフォーマンスを向上するために、適正順序処理用の第1の処理要素より多くのパイプライン・ステージを有する。第2の処理要素の結果を格納しても、好ましい実施例ではコンピュータ・システムのアーキテクチャ状態を変更することはない。結果は、その汎用レジスタまたはその専用ストア・バッファ内に格納される。2つの処理要素の状態の再同期化は、無効命令、機能停止、または順不同コプロセッサ(SFE)による処が計済みの特定の利益をもたらすときに行われる。
【0011】
SFEはuPCoreとインタフェース、したがって、本発明は同じシリコン・チップ上に設けたSFEと第1の処理要素であるuPCoreによって、より容易に実施される。また、マルチチップ実施態様も可能であり、本発明の現行実施例と一貫するものである。uPCoreは通常の構造を有し、好ましい実施例では複合システムのアーキテクチャ状態を維持する。しかし、一般化されたミラー・バージョンではアーキテクチャ状態を維持する責任は交互に果たされるかまたは両者によって共用される。SFEによって呼び出されたアクションは、好ましい実施例では、uPCoreのアーキテクチャ状態を直接変更することはない。SFEは、uPCoreがそれを使用する前に複合システムのキャッシュを命令およびオペランド・データで満たす記憶参照を生成するために使用する。このような改良点は、米国特許第4901233号(以下Liptay特許」という)および米国特許第4574349号で開発されたものなどの従来のレジスタ・リネーム方式によって可能になったシステム・パフォーマンスを拡張する。
【0012】
上記その他の改良点については以下の詳細な説明に示す。特に本出願人が最初に開発し広く実施されている従来の設計を上回る利点および特徴を備えた本発明をさらに理解するために、以下の説明および後述する図面を参照されたい。
【0013】
【発明の実施の形態】
好ましい実施例を詳細に検討する前に、一例として、Liptay特許に記載されている典型的な従来技術の順不同マイクロプロセッサ設計を例示することは価値のあることだろう。図1および図2は、レジスタ管理システム(RMS)32の使用を教示するLiptay許に記載された、典型的な従来技術の順不同マイクロプロセッサ設計を示している。RMS32により、アーキテクチャで定義されている以上の物理レジスタを汎用レジスタならびに精密な分岐後回復の両方に使用できるようになる。RMS32の使用は順不同実行を使用可能にするために本質的なものである。順不同実行により、本発明の焦点である有限キャッシュの不利益を大幅に低減できることが分かっている。Liptay許の好ましい実施例は、従来技術の適正順序実行用のプロセッサ設計の基本パイプラインの変更を含む。このような変更は、全体的なシステムにRMSを統合する必要があり、その結果、長い、すなわち、ステージ数が多い命令パイプラインになるか、または適正順序設計の命令パイプラインよりステージ当たりの論理数が多い命令パイプラインになる。Liptay許の好ましい実施例により、従来の適正順序設計に対する無限キャッシュCPIと有限キャッシュCPIの両方の改良が可能になる。本発明は、無限キャッシュCPIを改善するための順不同技法の使用を排除するものではないが、主命令実行パイプラインにおける順不同サポートと設計の複雑さとのより良いバランスを達成するためにその使用を制限することができる。本発明は、uPCoreパイプライン長またはパイプライン内の各ステージの長さを増加せずに限キャッシュCPIを低減するための順不同技法の使用に集中するものである。全体的な結果として、Liptay許よりシステム・パフォーマンスが向上する。というのは、データベースおよびトランザクション作業負荷の場合、サイクル時間の改善によって、Liptay許によって得られる無限キャッシュCPIの小規模の改善に比べ、パフォーマンスが向上するからである。さらに、本発明は、uPCoreを適正順序設計として実現する場合にRMS32を主命令処理パイプラインから分離することにより、順不同命令処理に関連するすべての問題について設計の複雑さの大幅低減を見込んでいる。このような検討事項を念頭に置いて、Liptay よって実現された図1および図2について説明する。
【0014】
Liptay特許の発明は、たとえば、n個の汎用レジスタ(GPR)などの指定の複数のアドレス可能(論理)レジスタのアーキテクチャ設計要件を有するコンピュータ・システム用のレジスタ管理システム(RMS)32であった。Liptay特許における設計の要素の多くは、後述するように本システムでも使用する。m個のレジスタを有する汎用レジスタ・アレイ(RA)30は、n個のGPRの諸機能を果たすために設けられている(但し、mはnより大きい。例示の実施例として、Liptay許に16個のGPRを有する周知のIBMシステム/370アーキテクチャに従ったシステムが記載されており、このシステムは現在でも現行のIBMシステム/390マシンに使用されている。RA30は、GPRの諸機能を果たすために特定のRA位置の動的割当てを提供する。特定のレジスタ割当ての機能が完了すると、RA30内のその位置は解放され、やがて同じかまたは他のGPRとして再割当て可能になる。
【0015】
レジスタ管理システム(RMS)32は、全体的なコンピュータ・アーキテクチャに依存しておらず、現行のマイクロプロセッサ設計で使用されているように、様々な環境で実現することができる。したがって、メインフレーム・プロセッサであるかマイクロプロセッサであるかにかかわらず、図1および図2に示すコンピュータ・システム10は、キャッシュ・メモリ14に接続されたメイン・メモリ12を有する。キャッシュ・メモリ14は、任意の数の容認できる方法で編成することができるが、この例では命令作とデータ作をそれぞれ別々に処理するために命令キャッシュ16とデータ・キャッシュ18がともにメイン・メモリ12に接続された状態で示されている。階層メモリ設計はカスケード配置においてメモリ・サイズとメモリ速度という両方の利点をもたらすためにキャッシュ・メモリに複数のレベルを設けるものであり、このようなメモリ設計は、図1および図2には示されていないが、図3に示すように本発明と一貫するものである。
【0016】
図1および図2のように、命令は命令キャッシュ16から命令バッファ20を通って命令レジスタ22に伝わる。例示のため、命令レジスタ22は複数の別々の命令レジスタを有し、このような命令レジスタの望ましい数は2個ないし4個である。
【0017】
実行ユニットとして機能する汎用実行ユニットは、算術または論理、スカラまたはベクトル、スカラまたは浮動小数点など、実行される機能のタイプに沿って設計することができる。その機能がどのようなものであれ、汎用実行ユニットは汎用レジスタ(GPR)を使用するので、この発明は、コンピュータ内の汎用実行ユニットの数、機能、設計の点で多くの変形態様に応用可能である。
【0018】
例示のため、Liptay特許のシステムは、それぞれ24および26という参照番号を付した汎用実行ユニット1および2とともに示されている。汎用実行ユニット24の出力ストア・バッファ28に接続され、当該ストア・バッファの出力はデータ・キャッシュ18に接続されている。汎用実行ユニット24は、実際には単一実行ユニットである場合もあれば、複数の実行ユニットの組合せである場合もある。この実施例に示すように、汎用実行ユニット24はストア・バッファ28に送られる結果を生成するが、その結果は命令完了までストア・バッファ28内に保持され、その後、メモリに格納することができる。他方、汎用実行ユニット26の出力は、この発明による汎用レジスタ・アレイ(RA)30に接続されている。汎用実行ユニット26は命令について作して結果を生成するが、その結果は、直ちに格納するのではなく、レジスタ内で使用可能である必要がある。命令待ち行列31は、命令レジスタ22から命令を受け取って、それを汎用実行ユニット24または26に適切に向けるために設けられている。単一RA30およびレジスタ管理システム(RMS)32とともに様々なタイプの複数の実行ユニットを使用することができる。RA30は、このアーキテクチャによって認識される16個のGPRの諸機能を果たすために、動割当て可能な32個の実(物理)レジスタを含む。
【0019】
RA30は、状況情報によって制御され、制御バス34を介してレジスタ管理システム(RMS)32に状況情報を供給する。RMS32は、様々なタイプの状況情報を受け取ってこれを供給するようにシステムの他のつかの要素に接続されている。割込み制御要素36は、命令レジスタ22、RMS32、RA30に接続され、割込みの適切な処理を行い、必要な状況情報を保存する。
【0020】
RMS32は、発行から実行まで命令に従い、入力オペランドおよび出力オペランド用にレジスタを割り当てるために、命令レジスタ22と汎用実行ユニット24および26に接続されている。
【0021】
2の命令待ち行列50は、命令レジスタ22から命令を受け取るように接続され、命令アドレス計算要素52への出力を有する。また、命令アドレス計算要素52は、RA30から入力を直接受け取るように接続され、命令キャッシュ16に接続された出力を有する。命令待ち行列50は、状況情報を供給するようにRMS32に接続されている。
【0022】
2のアドレス待ち行列60は、命令レジスタ22からの出力を受け取るように接続されている。アドレス待ち行列60の出力は、データ・アドレス計算要素62への入力として接続されている。データ・アドレス計算要素62へのもう一方の入力はRA30からのものである。データ・アドレス計算要素62は、状況情報を供給するようにRMS32に接続されている。
【0023】
データ・アドレス計算要素62の出力はアドレス取出し待ち行列64に接続され、この待ち行列はデータ・キャッシュ18への入力として接続された第1の出力と、アドレス・ストア待ち行列66への入力として接続された第2の出力とを有する。アドレス・ストア待ち行列66は、データ・キャッシュ18に接続された出力を有し、状況情報を供給するようにRMS32との接続を有する。
【0024】
浮動小数点(演算)ユニット70は、同じく状況情報を供給するようにRMS32に接続されている。後述するように、RMS32がRA30とは関連していないユニットおよびレジスタとともに機能できることは重要なことである。たとえば、1つのRMSは複数のRAとともに機能することができる。より具体的には、1つのRMSが2つのRAを制御し、これらのRAを同じかまたは異なるタイプの複数の実行ユニットに接続することができる。
【0025】
浮動小数点ユニット70の入力は、浮動小数点命令待ち行列72および浮動小数点データ・レジスタ74によって供給される。浮動小数点命令待ち行列72は、命令レジスタ22からその入力を受け取る。浮動小数点データ・レジスタ74は、データ・キャッシュ18および浮動小数点ユニット70からその入力を受け取る。浮動小数点ユニット70の出力は、ストア・バッファ76に接続され、当該ストア・バッファの出力はデータ・キャッシュ18への入力として接続されている。
【0026】
次に本発明をより詳細に検討すると、図3に示すように大規模キャッシュおよび複数レベルのキャッシュを設けることができる場合に使用するために、後述する本システムが有効である。本発明は既存のキャッシュのパフォーマンスに改良を加えるものであり、その推論取出しは各レベルのキャッシュのミス率を改善することになる。全パフォーマンス上の利益は、多くの場合にSFEのシリコン・サイズによってオンチップ・キャッシュが増加した場合に得られたはずのものと比較して評価しなければならない。L1キャッシュの場合のように、この比較が必ずしも有効ではない場合がある。というのは、L1キャッ シュにとっては、領域ではなくサイクル時間の制約が重要であるのが通常であるからである。予備的な結果によれば、オンチップの2次キャッシュのサイズの約1/4〜1/2であるSFEを使用して、15〜20%のパフォーマンスの改善が得られる可能性がある。
【0027】
図3の好ましい実施例
図3好ましい実施例に示すように、諸要素の相互接続は、様々なインタフェース、たとえばuPCore(200)と同期ユニット(SU 201)、SFE(202)、命令およびデータ・キャッシュ(203)との間のインタフェースによって行われる。キャッシュ・メモリは、任意の数の容認できる方法で編成することができるが、この例ではこの階層メモリのメイン・メモリ204に接続された複合式の命令およびデータ・キャッシュ(以下単に「キャッシュ」ともいう)203によって示されている。この階層メモリはカスケード配置においてメモリ・サイズとメモリ速度という両方の利点をもたらすためにキャッシュ・メモリに複数のレベル(たとえば、203’203”)を設けるものであり、このようなメモリ設計は本発明と一貫するものである。また、分割式の命令キャッシュとデータ・キャッシュも本発明と一貫するものである。
【0028】
任意の数のSFE 202202’202”とともに、任意の数のuPCore 200200’200”を使用することができる。与の時点では、一のSFEを単一のuPCoreに関連付けることができるが、同期機能が実行された後は、他のuPCoreとの関連付け変更することができる。各SFEは、1つのストア・バッファおよび1つのSUに関連付けられている。たとえば、必要なSFE機能を提供するために、SU 201’とSFE 202’とストア・バッファ205’とをまとめて使用する。任意の数のSFEを単一のuPCoreに同時に関連付けることができる。好ましい実施例は、単一のSFEと複数のuPCoreとを有する。
【0029】
しかし、好ましい実施例のハードウェアの詳細説明に入る前に、図3では、一般化された代替実施例(すなわち、uPCoreがコンピュータ・システムのアーキテクチャ状態を交互に制御するように動作可能であるというもの)認識することができるであろう。図3の一般化された代替実施例では、ここに示し説明する諸機能を2重にしているが、アーキテクチャ状態の制御、uPCore 200、200’、200”とSFE 202、202’、202”との間で交互に切り替わり以下で詳述るミラー・イメージとして同じ機能が実行される。
【0030】
したがって、この好ましい実施例は、一般化された替実施例の具体的な好ましい例である。後者の代替実施例では、1の処理要素であるuPCore 200、200’、200”と第2の処理要素であるSFE 202、202’、202”とは、協力して動作しつつ、コンピュータ・システムのアーキテクチャ状態の制御権を交互に有する。これに対し、図3に示す好ましい実施例では、第1の処理要素が、アーキテクチャ状態の制御権を有し、順次命令ストリームのほとんどの命令を適正順序で処理する。したがって、一般に、第1および第2の処理要素を有し且つそれぞれの処理要素がそれ自体の汎用レジスタおよび制御レジスタの設定によって決定されるそれ自体の状態を有するようなコンピュータ・システム内で順次命令ストリームを処理するための方法は、第1の処理要素(たとえば、uPCore 200)に順次命令ストリームの初期命令を向けることから開始する。次命令ストリームの処理は、第1の処理要素を使用して続行され、そして当該第1の処理要素は、コンピュータ・システムのアーキテクチャ状態の任意の変化を第2の処理要素に転送する。しかし、第1の処理要素たとえば、uPCore 200による順次命令ストリームの処理中の任意の時点において、同じ順次命令ストリームの連続処理を第2の処理要素たとえば、SFE 202に開始させることが利益になる場合、第2の処理要素は、転送された状態を復元し、同じ順次命令ストリームの連続処理を開始する。
【0031】
次に第2の処理要素は、第1の処理要素が必要とするコンピュータ・システムのアーキテクチャ状態の任意の変化を第1の処理要素に転送する。
【0032】
権が交互に切り替わる代替実施例と好ましい実施例のいずれでも、第1および第2の処理要素は全く同じ命令を実行している可能性があるが、第1および第2の処理要素の状態の組合せによって決定されるコンピュータ・システムの全体的なアーキテクチャ状態を変更できるのは、第1および第2の処理要素の一方だけになる。好ましい実施例では、この組合せは第1の処理要素によって決定され、第2の処理要素であるSFEのアクションはコンピュータ・システムのアーキテクチャ状態を変更することはない。これに対し、代替実施例では、コンピュータ・システムのアーキテクチャ状態は第2の処理要素の状態によって全部または一部が決定される可能性がある。好ましい実施例において有限キャッシュの不利益が低減されるのは、uPCore(のパイプラインがほとんどすべての順次命令を適正順序で処理し、SFEがuPCoreとSFEによって共用されるキャッシュを準備するために使用する命令を前処理し、アーキテクチャ状態制御権を有するuPCoreとの再同期化を可能な限り頻繁に取り、SFEの結果が当該SFEに関連付けられたストア・バッファ205に格納されるようにSFEが命令を前処理する場合である。
【0033】
好ましい実施例には当てはまらないが、代替実施例では、アーキテクチャ状態の制御交互に切り替わる。
【0034】
代替実施例では、第1および第2の処理要素の各々は、それ自体の汎用レジスタおよび制御レジスタの設定によって決定されるそれ自体の状態を有し、順次命令ストリームの処理中に全く同じ命令を実行している可能性があるが、第1および第2の処理要素の状態の一部の組合せによって決定されるコンピュータ・システムの全体的なアーキテクチャ状態を変更できるのは、第1および第2の処理要素の一方だけでありまたアーキテクチャ状態を制御する主体が第1の処理要素から第2の処理要素に切り替わりその後に第2の処理要素から第1の処理要素に切り替わることができる。このプロセスは、まず第1処理要素を使用して順次命令ストリーム処理を開始し、第2の処理要素が必要とするコンピュータ・システムのアーキテクチャ状態の変化を第2の処理要素に転送し、将来の時点で第2の処理要素アーキテクチャ状態を制御するためにこのように転送された変化を蓄積することを含む。次に、第1の処理要素による順次命令ストリームの処理中の任意の時点において、同じ順次命令ストリームの連続処理を第2の処理要素に引き継がせることが利益になると判定された場合、第2の処理要素は、第1の処理要素から前に転送された蓄積済みのアーキテクチャ状態を復元し、順次命令ストリームを処理することにより、同じ順次命令ストリームの連続処理を引き継ぐ。第2の処理要素は、順次命令ストリームの処理制御権を有している間、将来の時点で使用すべきアーキテクチャ状態に関する変化の蓄積と使用のために、第1の処理要素が必要とするコンピュータ・システムのアーキテクチャ状態の変化を第1の処理要素に転送する。次に、もう一度、制御切り替えることができる。すなわち、第2の処理要素による順次命令ストリームの処理中の任意の時点において、第1の処理要素に制御戻し、同じ順次命令ストリームの連続処理を第1の処理要素に引き継がせることが利益になる場合、第1の処理要素は、第2の処理要素から前に転送された蓄積済みのアーキテクチャ状態を復元し、順次命令ストリームを処理することにより、同じ順次命令ストリームの連続処理を引き継ぐ。
【0035】
ここで、第1および第2の処理要素はマルチプロセッサとして機能することができる。また、参照番号200、200’、200”によって示すように、第1の処理要素は、1つ以上のSFEとともにマルチプロセッサとして機能する複数の第1の処理要素を含むことができる。しかし、複数のSFEは、単一のuPCoreとともに使用されないはず
である。すなわち、マルチプロセッサは、1以上の第1の処理要素と少なくとも1つの第2の処理要素との組合せで以て機能することができるからである。好ましい実施例では、第2の処理要素の各々ごとに、1つの同期ユニットSU 201、201’、201”という形の同期機能が設けられている。このSUは、第1の処理要素であるuPCoreによって処理されている命令ストリームのうちの同じ命令の処理を第2の処理要素SFE 202、202’、202”が開始する時期を決定する。したがって、各SFEごとに1つの同期ユニットが設けられ、この同期ユニットは、制御権を有しているuPCoreによって処理されている順次命令ストリームのうちの同じ命令または次の命令の処理を関連するSFEが開始する時期を決定する。また、この同期ユニットは、関連するSFEによる命令の処理を停止または無視すべき時期を決定する。この決定は、第1および第2の処理要素からこの同期ユニットに供給される入力を使用して、コンピュータ・システム全体の計算済み利益判定によって行われる。これらの入力は、その時点でこの同期ユニットに供給することができるか、または図5のカウンタ407および408のように、システム内に格納された情報からこの同期ユニットに供給することができる。
【0036】
図8のステップ709のように、第1の処理要素による命令の処理中に機能停止判定が行われた場合、同期ユニットは、第1の処理要素が処理しているものと同じ命令の処理を第2の処理要素が開始する時期を決定する。第1の処理要素による命令の処理中に第2の処理要素が処理するよう設計されていない作がある場合、すなわち、有効命令が使用可能でない場合(ステップ707)、同期ユニットは、第2の処理要素の状態とコンピュータ・システムのアーキテクチャ状態との再同期化(好ましい実施例では、SFEとuPCoreの状態の再同期化)を行う時期を決定する。命令ストリームの処理中に第2の処理要素がコンピュータ・システムに対していかなる利益ももたらさないと判定された場合(ステップ708)、同期ユニットは、第2の処理要素の状態とコンピュータ・システムのアーキテクチャ状態との再同期化を行う時期を決定する。図8に示すすべての判定ステップ707、708、709では、同期ユニットによって再同期化を行うべき時期を決定するだけでなく、どの処理要素との状態の再同期化を行うべきかも決定する。命令を前処理している第2の処理要素、すなわち、SFEは、その結果をそれ専用の結合済みストア・バッファ205、205’、205”に格納する。この格納は他の処理要素のアーキテクチャ状態に影響しないので、これらの別々同期化によってSFEは順次命令ストリームのほとんどの命令を処理する第1の処理要素のパフォーマンスを改善することができる。一方、SFEは、第1の処理要素によって処理されている順次命令ストリームのうちの次の命令または同じ命令を処理することができ、SUは、第2の処理要素による命令の処理を停止または無視すべき時期を決定することができる。第1の処理要素は、取出しのために第1および第2の処理要素の両方によって共用されるデータおよび命令キャッシュからデータを取り出す。
【0037】
好ましい実施例によれば、第1の処理要素のためにキャッシュを満たし、順不同処理要素として前処理を行うために、SFEを使用して順次命令ストリームを前処理することができる。再同期化中および第2の処理要素による命令の処理を停止または無視すべき場合、第2の処理要素は、再同期化の前に第1の処理要素用の命令ストリームの前処理のすべての結果と部分結果を除去する。
【0038】
したがって、好ましい実施例では、SFE、同期ユニット、2つ以上のuPCore、ならびにSFE用の1つ以上の専用ストア・バッファ205が図8に示す方法で使用されることが分かるだろう。同期ユニット201は、図8に示すようにSFE 202の状態を保持する。許容できる状態は、動作中(A)、除去中(B)、SFEとuPCore 200との再同期化中(C)、SFEとuPCore 200’との再同期化中(D)である。SFEの期状態は(C)である。状態Cでは、SFEは、uPCore 200から最新のリタイヤ済み命令のアドレスを受け取り、そのアドレスで順不同実行を開始するための用意をする。同期ユニット201は、キャッシュ・ミスのためにuPCoreが機能停止したことを示す表示の有無について、SFEとともに機能する各uPCoreごとに、当該uPCoreとのSUのインタフェースを連続的に監視する。このuPCoreは動作中であり、インタフェース210を介してキャッシュ203およびメイン・メモリ204を連続的に参照している。命令およびオペランド・データは、キャッシュ203からインタフェース210を介してこのuPCoreにされる。
【0039】
再同期化中状態ら動作中(A状態への状態変化は、SFEのレジスタ管理システム(RMS)301がuPCoreに関連する同期レジスタ割当てリスト(SRALの内容をSFEのデコード・レジスタ割当てリスト(DRALにロードしたときに発生する。作中(A)状態に入ると、SFEは、uPCoreからインタフェース206を介して受け取った最新の命令アドレスで命令取出しと実行を開始する。SFEのGPR状態は、同じ命令アドレスによって指し示された命令のリタイヤ時にuPCoreが持っていたのと同じ状態を反映する。SFEが動作中である間に、インタフェース206を介して受け取ったGPR結果はSFEの汎用レジスタ・アレイ(RA)継続的に書き込まれるが、レジスタ管理システムは当該GPR結果を同期レジスタ割当てリスト(SRAL)に関連付ける。当該GPR結果は、同期事象後にSFE内で実行される命令のみが使用することになる。このようにして、SFEは、それが関連付けられている各uPCoreのGPR状態の個別のイメージを維持し、このイメージを後でアクセスすることができる。一方、SFEのRMS301は、SFEによる命令ストリームの実行に使用するGPRのイメージを更新するために、SFEの実行結果のみを使用する。
【0040】
SFEは動作中(A)状態に入った直後に順不同命令の実行を開始することになるが、その間、uPCoreはそれ自体のペースで実行を続行し、その命令を取り出す。これらの命令は、uPCoreが使用する前にキャッシュ203に供給される、SFEの記憶参に応じた命令を含む。好ましい実施例のuPCoreは、適正順序処理のための処理要素として排他的に設計するか、または適正順序処理のために最適化するか、またはすべての命令の実質的に95%未満が予測から利益を得られない場合に命令の処理を扱えるものにすることができる。したがって、uPCoreは、L1キャッシュ・ミスの場合にパイプライン機能停止を経験する可能性がある。SFEは、順不同実行を行うことができるので、機能停止を発生した命令以降も続行することができる。SFEは、動作中である間に取出し参照を生成し、これをインタフェース207を介してキャッシュ203に送るとともに、インタフェース208を介してストア・バッファ205に送る。キャッシュ203とストア・バッファ205の両方が所望のデータを持っていない場合にキャッシュ・ミスが検出される。命令およびオペランドは、ストア・バッファ205内に関連項目がない場合にはインタフェース207を介してSFEにされ、ストア・バッファ205内に関連項目がある場合にはインタフェース208を介して戻される。SFEストア参照は、キャッシュ203には送られず、むしろストア・バッファ205に送られる。このようにして、SFEストア命令の結果は、uPCoreのアーキテクチャ状態およびキャッシュ203を変更せずにSFE上で実行される後続命令に使用可能なものにすることができる。FEのすべてのストア命令の結果は、ストア・バッファ205内に保持される。
【0041】
同期ユニットは、インタフェース209を介してSFEの活動を監視する。SFEが実行すべきサポート済み命令を実行し尽くすかまたは処理するように設計されていない割込みまたは例外あるいはそれ以外の点で無効の割込みまたは例外を検出した場合、これはインタフェース209上に示される。その場合、同期ユニットはSFEを図8の除去中(B)状態に移行させる。また、同期ユニットは、uPCoreによる命令のデコードとSFEによる命令のリタイヤの進行状況も監視する。有効な命令がそれ以上存在しない場合(ステップ707)、またはSFEが推論事前取出しによる益をもたらさないと判定された場合(ステップ708)、SFEは、uPCore実行よりはるかに遅れていると想定され、この場合も除去中(B)状態に移行する。現在このSFEに関連付けられているuPCoreが依然として判断点(ステップ709)で機能停止している場合、除去中(B)状態への移行はブロックされ、SFEは引き続き動作中(A)状態になる。SFEの利益を示す他の多くの指示は、SFEが除去中(B)状態に入るべき時期を決定するために使用することができるが、本発明と一貫するものである。
【0042】
SFEは、いったん除去中(B)状態に入ると、すべての命令、命令の一部、ならびに部分結果がSFEのデータ経路および制御構造からクリアされるまで、この状態から出ない。この間、いかなる要求もキャッシュ203に送られない。ステップ706でこれが実施されるとSFEは除去中(B)状態を出て、2通りの再同期化中(CおよびD)態のうちの一方に移行することができる。SFEは、uPCore 200またはuPCore 200’のいずれか一方との再同期化を行うことができる。このような2通りのアクション間でSFEによって決定される選択(ステップ704は様々な要素に基づくことができ、そのすべては本発明と一貫するものである。好ましい実施例では、どのuPCoreが最後にSFEと同期化されたかを示す単純な指示を使用しているが、その場合、SFEはもう一方のuPCoreを使用してこの同期化を行うことになる。他のアルゴリズムを使用すると、判断点(ステップ704により同じuPCoreが何回も選択される可能性がある。再同期化が完了すると、状態はもう一度動作中(A)状態に戻され、サイクルが再び始まる。
【0043】
推論取出しエンジン(SFE)
SFEは、通常の順不同処理を使用し、さらに、推論的(投機的)なオペランドおよび命令取出しを生成するためにスーパスカラ技法と呼ばれる所与の機能または技法を使用する。このような技法は、レジスタのリネーム、命令のリオーダ、完了スコアボードなどを含む。SFEの実施態様としては広範な実施態様が考えられる。最適設計の基準は、現世代の順不同設計とは全く異なるようなサイクル時間および領域上の制約を含むことになる。図4は、SFEと、システムの他の要素とのインタフェースを示している。図4が単純化されているのは、新規のレジスタ管理システム(RMS)301と汎用レジスタ・アレイ(RA)および命令処理パイプラインとの対話を強調するためである。図4は図1および図2と似ているが、重要な違いがある。第1に、GPRおよびuPCoreとの間のインタフェース206の一部を形成する追加のインタフェース306が存在する。このインタフェース306は、uPCoreのGPR更コピーをSFEに伝達するために使用する。第2は、同期レジスタ割当てリスト(SRAL)の使用を含むように本発明のRMS301が変更されていることである。第3は、Liptay特許に示すように、メモリ階層へのストアがキャッシュ203ではなく、ストア・バッファ205に送られることである。SFE内のデータ・フローは、図4に示すように通過して、ストア・バッファ205に到達する。
【0044】
インタフェース302ないし305は、インタフェース209の一部を構成し、同期命令アドレス、SFE除去指示、再同期化指示、命令デコード済み指示をそれぞれ伝達する。インタフェース302上の同期命令アドレスは、SFEとuPCoreのアーキテクチャ状態との再同期化が行われた直後に命令取出しおよび実行のための開始点としてSFEが使用する。インタフェース303上のSFE除去指示により、SFEはすべての命令結果と部分結果を廃棄して、SFEのストア・バッファ205の内容を除去する。インタフェース304上の再同期化指示は、SFEがどのuPCoreとの同期を取るべきかならびに再同期化を行う時期を決定するためにSFEが使用する。SFEは、インタフェース305上の命令デコード済み指示を使用して、命令が正常にデコードされたことをSUに示す。SUは、この情報を使用して、SFEが推論取出しによる利益をもたらすかどうかを判定する。SFEは、インタフェース307および308を介してキャッシュ203 およびストア・バッファ205の両方に命令およびオペランド取出し要求を送る。インタフェース307を介して送られ推論取出し要求は、機能停止後に実行を再開するときにuPCoreが同じ取出し要求を生成する前にSFEによって生成される。その結果、uPCoreは、このような取出し要求の待ち時間の改善を経験することになる。というのは、所望のラインが最近アクセスされ、最も近いレベルのキャッシュにインストールされたからである。
【0045】
SFEはuPCoreのアーキテクチャ状態とは無関係なので、その順不同命令処理の実施態様は多くのアーキテクチャ上の問題を免れる。このため、スケジュールが改善され、全体的な設計のサイクル時間に及ぼす影響が低減される。SFEに関連する実施上のリスクは、uPCoreから完全に切り離すことができる。SFEは、大規模かつ様々な命令セットの必要性を満たす必要があるuPCoreにとって不可能なやり方で推論取出し要求を生成するように最適化することができる。SFEは、たまに使用頻度の少ない命令、例外処理作、または回復アルゴリズムを実現する必要はない。このようなめったに起こらない事象の場合、SFEは、命令ストリームの実行を停止し、これを同期ユニットに指示することになる。uPCoreは、結局、機能停止状態から出るが、このめったに起こらない事象が持続する場合は、適正順序設計のかなり単純な手法によりそれを処理することになる。
【0046】
SFEの設計は、必ずしも無限キャッシュCPIのためだけでなく、多数の命令を迅速にデコードし発行するように最適化されなければならない。SFEは、従来の設計に比べ、無限キャッシュ・パフォーマンスに及ぼす影響について同じように考慮せずに、命令パイプラインをより長くして設計することができる。システム全体、すなわち、SFEとuPCoreの両方の無限キャッシュ・パフォーマンスは、SFEではなく、uPCoreのパイプラインのみに依存する。
【0047】
本発明の設計では、uPCoreによってオペランド事前取出しを行う必要はない。したがって、SFEを使用すると、この機構およびそれに関連する複雑さが必要に応じてuPCoreから除去される。場合によっては、オペランド事前取出しをuPCore内に保持する必要があるが、これは本発明と一貫するものである。
【0048】
図6には、レジスタ管理システム(RMSに対して行った革新的な変更の詳細が示されている。好ましい実施例により、SFEは、当該SFEに関連する各uPCoreごとに同期レジスタ割当てリスト(SRAL)を維持する。本発明のRMS301は、SRALを使用するための拡張を含み、全体的なコンピュータ・アーキテクチャに依存せず、様々な環境で実現することができる。したがって、図SFEは、IBMシステム390アーキテクチャに従って、16個の汎用レジスタ(GPR)に対応するものとして記載されている。汎用レジスタ・アレイ(RA)はRMS301とともに、GPRの諸機能を果たすために、特定のRA位置特定のGRPとして動割当てる。特定のGPRの機能が完了すると、RA内のその位置は解放され、やがて同じかまたは他のGPRとして再割当て可能になる。
【0049】
RAは、好ましい実施例のアーキテクチャによって認識される16個のGPRの諸機能を果たすために48個の動的割当て可能な実(物理)レジスタを含む。GPR割当てをRA割当てに変換するために命令をデコードする場合、デコード・レジスタ割当てリスト(DRAL)を使用する。各命令をデコードすると、その命令が参照するGPRをDRALで調べ、どのRA位置がGPRに割り当てられているかを判定し、結果を受け取るために新しいRA位置が割り当てられると、このような割当てを反映するようにDRALが更新される。このようにして、GPRを使用する各命令は、そのGPRを参照すべき最新の命令に割り当てられているRA位置を見つけるよう、DRALによって指示される。
【0050】
バックアップ・レジスタ割当てリスト(BRAL)により、待機せずに、1つないし3つの条件付き分岐をそれぞれ処理することができる。BRALは、DRALと同じ構造を有し、1サイクル中にDRALの内容全体をBRALにコピーするかまたはその逆を行えるように、DRALに接続されている。このような転送は論理ユニット505によって制御される。BRALは、たとえば、分岐を行うかどうかの測が間違っていると分かった場合に備えてDRALの内容を保管するような条件付き分岐を検出したときに使用する。
【0051】
アレイ制御リスト(ACL)は、RAおよびSFEの残りから状況情報を受け取って制御情報を送るように接続されている。論理ユニット505は、ACLを制御し、ACL、DRAL、BRALの動作を調整する。GPRをサポートするRAの各々ごとに、当該RAに関連する状況情報を記憶するACLレジスタが1つずつ存在する。また、当該RAの各レジスタ位置ごとに項目が1つずつ存在する。
【0052】
レジスタ管理システム(RMS)301にSRALを追加することは、SFEの機能にとって、したがって、本発明にとってめて重要である。SRALは、DRALと同じ構造を有し、1サイクル中にSRALの内容全体をDRALにコピーできるように、DRALに接続されている。
【0053】
SFEが関連付けられている各uPCoreごとに、SRALが1つずつ用意されている。uPCoreがGPRおよびCR更新コピーを生成すると、その更新コピーはインタフェース206を介してSFEに転送される。uPCoreに対するサイクル時間の影響を最小限にするために、その結果は1サイクル分、遅延することができる。GPR更新コピーはRAに書き込まれ、(当該GPR更新コピーのソースである)uPCoreに関連するSRALはRA位置を指し示すように更新される。本実施例のuPCoreは通常、適正順序実行用の処理要素として機能するので、インタフェース206上のGPR更新コピーはリタイヤした命令に関するGPR更新コピーを反映し、したがって、SRALが現在示しているのと同じRA位置に必ず書き込むことができる。uPCoreからの連続更新コピーを収容できることを保証するために、再同期化動作中にSRALには16個の新しいRA項目を用意しなければならない。本実施例では、これは問題ではない。というのは、再同期化動作の前に必ず、SRALに関連するもの以外のすべてのRA項目を解放するSFE除去が行われるからである。SRAL内のSFEコピーにおけるuPCoreのGPR状態は、必ず、最低1サイクル遅延している。SFEがuPCoreとの同期を取る必要がある場合、SRALの内容をDRALに移動するだけで、このタスクが達成される。この動作は、分岐予測が間違っていた場合にマイクロプロセッサの状態を復元するためにLiptay特許のBRALを使用する方法に似ている。
【0054】
本発明のSRALの機能は、Liptay特許のBRALとは相当異なっている。第1に、SRALには、uPCoreの場合のように他の命令処理パイプラインからのGPR状態が書き込まれることである。
【0055】
第2に、SRALの内容をDRALに移動させるトリガが、BRALの内容をDRALに移動させるLiptay特許のトリガとは非常に異なることである。Liptay特許では、分岐予測の間違いがトリガになる。本発明では、事前取出し利益が一切ないという指示をトリガとして使用し、したがって、Liptay特許とその実施例は本発明によるSRALの機能とは全く異なることが分かるだろう。BRALはこの目的には使用できないが、本発明では、Liptay特許によって導入されたものと同じ機能、すなわち、分岐指示が間違っているという判定後にプロセッサ状態を復元するために使用する。第3の重要な相違点は、SRALの内容をDRALに移動したときに、SRAL内のすべての項目が16個の新しいRA位置を指し示すように直ちに変更されることである。Liptay特許では、未解決の分岐をデコードする場合に、BRALがDRALから直接ロードされる。
【0056】
複数のSRALを使用すると、SFEは複数のuPCoreとの同期を取ることができるようになる。2つ以上のuPCoreが同じSFEを使用して事前取出し利益をもたらすことができるが、両方のuPCoreが同時にそのSFEを使用することはできない。加のSRALは、同期化のために関連するuPCoreのGPR結果バスおよび関連するストア・バッファを伴わなければならない。
【0057】
uPCore
ましい実施例のuPCore設計は、通常のマイクロプロセッサ PowerPC 601などの現行のスーパスカラ設計の1つであることが好ましいが、Intel 286などのさらに古い設計でもよい)である。コンピュータ設計の分野では、1つのシステムが複数の汎用実行ユニットを有することは既知のことである。たとえば、汎用実行ユニットは、実行する機能のタイプに沿って設計することができる。本発明のuPCore内にはこのような汎用実行ユニットが2つだけ示されているが、汎用実行ユニットをつ使用してもその使用は本発明と一貫するものである。本発明のuPCore部分は、図7に示すものを除き、通常のマイクロプロセッサ設計に対する特定の変更を必要としない。図7は、最新のリタイヤ済み命令のアドレスを604でどのようにラッチし、インタフェース604’を介してSFEに駆動するかを示している。汎用実行ユニット601および602からのGPR結果バスも603でラッチされ、そのインタフェス603’を介してSFEに駆動される。図7に示すuPCoreは適正順序設計であるが、マイクロプロセッサとして現在商業使用されているものなどの順不同設計要素の使用も本発明の設計と一貫するものである。
【0058】
同期ユニット
同期ユニット(SU 201)は、uPCoreとSFEとの対話を制御するために必要な論理機能のすべてを含んでいる。SUは、状態マシンと、関連する入力レジスタ404、405、406とからなる。状態マシンの出力は、除去機能およびレジスタ管理システム(RMS)301への入力を制御するようなSFEへのインタフェース209からなる。RMS301への線は、同期動作の場合に、SRALからDRALへのロードを制御する。
【0059】
同期ユニットは、SFEがシステム全体に事前取出し利益をもたらすかどうかを判定するために使用する論理機能を含んでいる。この実施例では、2つの命令カウンタ408、407を使用して、この機能を提供する。第1のカウンタ408は、uPCoreが命令をリタイヤするたびに増分される。第2のカウンタ407は、SFEが命令をデコードするたびに増分する。両方のカウンタは、再同期化動作中にゼロにリセットされる。再同期化後、両方のカウンタの比較を使用して、SFEがuPCoreに役立つような推論取出し参照を生成する機会を有するかどうかを判定する。uPCoreの実行より十分先だってSFEが命令をデコードしていない場合、利益を得る可能性は全くない。2つのカウンタを比較すると、図8の特定利益判断点(ステップ708への入力として、利益を得る可能性を示す不正確だが十分な指示が得られる。本実施例では、この用途のために10というしきい値を使用する。SFEデコード・カウント(407)がuPCoreリタイヤ・カウント(408)より少なくとも10大きくない場合、同期ユニットはいかなる利益も示さないことになる。
【0060】
また、同期ユニットは、SFEが現在どのuPCoreに関連付けられているかを示す指示も保持する。各SFEは単一の同期ユニットを有するが、各SFEはつのuPCoreにも関連付けることができる。本実施例では、1つのSFEが2つのuPCoreに関連付けられている。
【0061】
CPとSEとの対話の代替的な拡張
CPとSEとの対話の拡張として可能なものが他にもある。一例としては、SEとCPの両方によって共用される分岐予測テーブルをSEに更新させることを含むだろう。また、SEは、CPがパイプライン崩壊を回避できるような潜在的な命令例外または他の条件に関するヒントもCPに提供できるだろう。SFE取出し要求に応答して取り出された命令およびオペランド・データは、uPCoreに直接転送することができる。したがって、データは、推論要求が正確である場合、uPCoreの汎用実行ユニットおよび命令デコード論理回路により近いものになる。このため、実施態様によっては、有限キャッシュの不利益をさらに低減することができる。
【0062】
本発明の好ましい実施例について記載してきたが、当業者であれば、現在ならびに将来、本発明の範囲内に該当する様々な改良および強化を行うことができることが分かるだろう。
【0063】
様々な改良を行う当業者は、順不同(または適正順序)実行は無限キャッシュCPIの低減に比べ、有限キャッシュCPIの低減の際により大きい利益をもたらすことが本発明者のパフォーマンス分析によって示されていることが分かるだろう。現行技術は、有限キャッシュ効果が迅速に拡大し、それにより、有限キャッシュCPIの利益が無限キャッシュCPIの利益よりはるかに大きくなることを示す傾向にある。
【0064】
これまで詳述したように、マイクロプロセッサ・コア(uPCore)をサポートする推論取出しエンジン(SFE)を設けることと、協力アクションを通してアーキテクチャ状態を維持しながら、SFEとuPCoreの両方によって共用される記憶階層への推論メモリ参照を可能にするようにコア・マイクロプロセッサと協力して対話することを要点とする本発明は、順不同実行を使用する従来技術の設計の大幅な単純化を希望するか、または順不同実行を使用しない従来技術の設計に対する大幅なパフォーマンスの改善を希望する当業者に利益をもたらすだろう。理論的には、本発明は、システム・パフォーマンスの向上を追求して順不同実行の使用に関連する設計上の兼ね合いをさらに最適化できるようにするものである。また、本発明では、最近の設計の一部で使用しているステージがますます深くなるのとは対照的に、メイン・パイプラインに対して順不同実行の複雑さを大幅に増加せずに、周波数が高く、複雑さが低く、無限キャッシュCPIが低くなるようにマイクロプロセッサの設計を最適化することができる。
【0065】
同時に、このコプロセッサは、マイクロプロセッサとコプロセッサの両方に関する有限キャッシュ効果の低減を追求して、かなりの程度まで順不同実行技法を使用することができる。コプロセッサ内の順不同実行の複雑さは、コプロセッサがアーキテクチャ化命令のフルセットまたは命令実行に関連する例外および割込みのフルセットをサポートする必要がないことによって軽減される
【図面の簡単な説明】
【図1】iptay特許(米国特許第4901233号が示すものと同じ記述内容を示す図であり、従来のメインフレームや、マイクロプロセッサにおいて広く使用されてきた従来の努力の限界を示す図である。
【図2】iptay特許が示すものと同じ記述内容を示す図であり、従来のメインフレームや、マイクロプロセッサにおいて広く使用されてきた従来の努力の限界を示す図である。
【図3】好ましい実施例の概要を示す概略図である。
【図4】推論取出しエンジン(SFE)の詳細と、SFEとストア・バッファ、キャッシュ、マイクロプロセッサ・コア(uPCoreとのインタフェースを示す図である。また、SFEとuPCoreによって共用されるキャッシュによりSFEの命令およびオペランド取出しを経路指定するための好ましいハードウェアも示す。
【図5】uPCoreとSFEとの間の同期ユニットをより詳細に示す図である。
【図6】uPCoreとSFEとの同期に対応するために Liptay特許のレジスタ・リネーム方式に対して行った改良をより詳細に示す図である。
【図7】uPCoreの好ましいハードウェアを示す図である。
【図8】パフォーマンスを改善するために使用する方法を示すために、SFEとuPCoreとの対話をデータ・フロー図としてより詳細に示す図である

Claims (3)

  1. 命令およびデータ用のキャッシュ・メモリを備えた階層メモリを有するコンピュータ・システムであって、
    パイプライン・ステージごとに定義された長さと定義された遅延を有する少なくとも1つの命令パイプラインによって適正順序で命令を処理するための少なくとも1つの第1の処理要素と、
    順不同で命令を処理することができる第2の処理要素とを備え、
    前記第1の処理要素と前記第2の処理要素が、命令およびデータを取り出すために前記キャッシュ・メモリにそれぞれ結合され、
    前記第1の処理要素と前記第2の処理要素が、一の命令ストリームを処理するために協力して動作するように結合され、前記第1の処理要素がキャッシュ・ミスにより機能停止すると、前記第2の処理要素が前記第1の処理要素のリタイヤした命令から順不同で前記命令ストリームの前処理を開始し、前記第2の処理要素による前記命令ストリームの前処理の結果として前記キャッシュ・メモリに必要なデータが格納されると、前記第1の処理要素が前記データを使用して処理を再開することを特徴とする、コンピュータ・システム。
  2. 前記第1の処理要素と前記第2の処理要素との同期を取るために、前記第1の処理要素と前第2の処理要素との両方に結合された同期ユニットをさらに備える、請求項に記載のコンピュータ・システム。
  3. 第1の処理要素内にある汎用レジスタの更新コピーを前記第2の処理要素に伝達するために、当該汎用レジスタと前記第2の処理要素との間に汎用レジスタ・インタフェースが設けられ、当該汎用レジスタ・インタフェースを介して前記第1の処理要素と前記第2の処理要素の前記パイプライン・ステージの同期を取るために同期レジスタ割当てリストを有するレジスタ管理システムが設けられている、請求項に記載のコンピュータ・システム。
JP2000126367A 1998-01-20 2000-04-26 コンピュータ・システム Expired - Fee Related JP3564041B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US09/008,792 US6052771A (en) 1998-01-20 1998-01-20 Microprocessor with pipeline synchronization
US09/008792 1998-01-20
US09/009,820 US5954546A (en) 1996-09-23 1998-01-20 Electrical connector
US09/009820 1998-01-20

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP11005973A Division JPH11272482A (ja) 1998-01-20 1999-01-13 順次命令ストリ―ム処理方法、コンピュ―タ・システムおよびマイクロプロセッサ

Publications (2)

Publication Number Publication Date
JP2000347859A JP2000347859A (ja) 2000-12-15
JP3564041B2 true JP3564041B2 (ja) 2004-09-08

Family

ID=26678630

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000126367A Expired - Fee Related JP3564041B2 (ja) 1998-01-20 2000-04-26 コンピュータ・システム

Country Status (1)

Country Link
JP (1) JP3564041B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4901233A (en) * 1987-07-20 1990-02-13 International Business Machines Corporation Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries
EP0312764A3 (en) * 1987-10-19 1991-04-10 International Business Machines Corporation A data processor having multiple execution units for processing plural classes of instructions in parallel
JPH01243167A (ja) * 1988-03-25 1989-09-27 Hitachi Ltd データ処理装置
JPH05108352A (ja) * 1991-10-15 1993-04-30 Matsushita Electric Ind Co Ltd プロセツサ
JP2549256B2 (ja) * 1992-12-01 1996-10-30 インターナショナル・ビジネス・マシーンズ・コーポレイション 浮動小数点プロセッサへデータを転送する方法及び装置
JPH07219913A (ja) * 1994-01-28 1995-08-18 Fujitsu Ltd マルチプロセッサシステムの制御方法及び装置

Also Published As

Publication number Publication date
JP2000347859A (ja) 2000-12-15

Similar Documents

Publication Publication Date Title
US6052771A (en) Microprocessor with pipeline synchronization
JP3548132B2 (ja) マルチスレッド・プロセッサ内でのパイプライン・ステージのフラッシュ方法および装置
US6047367A (en) Microprocessor with improved out of order support
Chaudhry et al. Rock: A high-performance sparc cmt processor
KR100305310B1 (ko) 멀티스레드프로세서의명령어및연관된인출요청의백그라운드완료
US6061710A (en) Multithreaded processor incorporating a thread latch register for interrupt service new pending threads
Zhou Dual-core execution: Building a highly scalable single-thread instruction window
JP4642305B2 (ja) マルチスレッド・プロセッサ内の複数のスレッドに入り、出る方法と装置
JP3871336B2 (ja) 複数の未解決命令を追跡するための方法、完了テーブルおよびプロセッサ
US5931957A (en) Support for out-of-order execution of loads and stores in a processor
US6192466B1 (en) Pipeline control for high-frequency pipelined designs
US7603543B2 (en) Method, apparatus and program product for enhancing performance of an in-order processor with long stalls
KR100745904B1 (ko) 동시적 멀티스레드 프로세서에서 파이프라인 길이를변경하기 위한 방법 및 회로
US5664137A (en) Method and apparatus for executing and dispatching store operations in a computer system
JPH08147165A (ja) マルチコンテキストをサポートするプロセッサおよび処理方法
WO2004023290A1 (en) Synchronisation between pipelines in a data processing apparatus
JP2002268878A (ja) スレッド間優先度可変プロセッサ
JP2004326748A (ja) 例外条件を解消するために同時マルチスレッド・プロセッサでディスパッチ・フラッシュを使用する方法
GB2527927A (en) Control of switching between execution mechanisms
WO2004062339A1 (en) Method and apparatus to handle window management instructions without post serialization in an out of order multi-issue processor supporting multiple strands
EP1999575B1 (en) Method and apparatus for simultaneous speculative threading
EP0962857A2 (en) Distributed instruction completion logic
JPH08234981A (ja) 非プログラム順序実行スーパスカラ・マルチプロセッサにおける効率的確定一貫性サポート機構
US6473850B1 (en) System and method for handling instructions occurring after an ISYNC instruction
JP3564041B2 (ja) コンピュータ・システム

Legal Events

Date Code Title Description
A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040206

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040212

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040408

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040408

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040604

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20080611

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090611

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100611

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110611

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110611

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120611

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120611

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130611

Year of fee payment: 9

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees