JPH11272482A - 順次命令ストリ―ム処理方法、コンピュ―タ・システムおよびマイクロプロセッサ - Google Patents
順次命令ストリ―ム処理方法、コンピュ―タ・システムおよびマイクロプロセッサInfo
- Publication number
- JPH11272482A JPH11272482A JP11005973A JP597399A JPH11272482A JP H11272482 A JPH11272482 A JP H11272482A JP 11005973 A JP11005973 A JP 11005973A JP 597399 A JP597399 A JP 597399A JP H11272482 A JPH11272482 A JP H11272482A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- processing element
- instruction
- computer system
- instruction stream
- 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.)
- Pending
Links
Landscapes
- Multi Processors (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】
【課題】 第1および第2の処理要素を有するコンピュ
ータ・システム内で順次命令ストリームを処理するため
の改善された方法を提供すること。 【解決手段】 前記処理要素のそれぞれはそれ自体の汎
用レジスタおよび制御レジスタの設定によって決定され
るそれ自体の状態を有する。前記第1の処理要素による
前記順次命令ストリームの処理中の任意の時点におい
て、同じ順次命令ストリームの連続処理を前記第2の処
理要素に引き継がせることが利益になる場合、第1およ
び第2の処理要素は、順次命令ストリームを処理し、全
く同じ命令を実行している可能性があるが、前記第1お
よび第2の処理要素の状態の組合せによって決定される
前記コンピュータ・システムの全体的なアーキテクチャ
状態を変更することができるのは、前記処理要素の一方
だけになる。
ータ・システム内で順次命令ストリームを処理するため
の改善された方法を提供すること。 【解決手段】 前記処理要素のそれぞれはそれ自体の汎
用レジスタおよび制御レジスタの設定によって決定され
るそれ自体の状態を有する。前記第1の処理要素による
前記順次命令ストリームの処理中の任意の時点におい
て、同じ順次命令ストリームの連続処理を前記第2の処
理要素に引き継がせることが利益になる場合、第1およ
び第2の処理要素は、順次命令ストリームを処理し、全
く同じ命令を実行している可能性があるが、前記第1お
よび第2の処理要素の状態の組合せによって決定される
前記コンピュータ・システムの全体的なアーキテクチャ
状態を変更することができるのは、前記処理要素の一方
だけになる。
Description
【0001】
【発明の属する技術分野】本発明は、コンピュータ・シ
ステムに関し、特に、パイプライン同期によりシステム
・パフォーマンスを改善するための結合コプロセッサを
備えたマイクロプロセッサ・コンピュータ・システムの
ための方法に関する。また、本発明は、コンピュータ・
システムに関し、特に、システム・パフォーマンスを改
善し、改良されたマイクロプロセッサ・サポートを備え
たマイクロプロセッサを提供するために結合されたマイ
クロプロセッサとコプロセッサとを備えたコンピュータ
・システムに関する。
ステムに関し、特に、パイプライン同期によりシステム
・パフォーマンスを改善するための結合コプロセッサを
備えたマイクロプロセッサ・コンピュータ・システムの
ための方法に関する。また、本発明は、コンピュータ・
システムに関し、特に、システム・パフォーマンスを改
善し、改良されたマイクロプロセッサ・サポートを備え
たマイクロプロセッサを提供するために結合されたマイ
クロプロセッサとコプロセッサとを備えたコンピュータ
・システムに関する。
【0002】
【従来の技術】現行のマイクロプロセッサのパフォーマ
ンスは、重要な作業負荷の大部分に関する有限キャッシ
ュ効果によって厳密に制限されている。有限キャッシュ
効果としては、マイクロプロセッサの第1レベルのキャ
ッシュが無限に大きくなっていれば解消すると思われる
パフォーマンス劣化のすべての誘因を含む。オフチップ
記憶域からのオペランド・データを待っている間にマイ
クロプロセッサが機能停止する時間の量は、多くの場合
に命令の実行に費やす時間と等しい。これは、データベ
ースおよびトランザクション処理を含む作業負荷の場合
に特に言えることである。
ンスは、重要な作業負荷の大部分に関する有限キャッシ
ュ効果によって厳密に制限されている。有限キャッシュ
効果としては、マイクロプロセッサの第1レベルのキャ
ッシュが無限に大きくなっていれば解消すると思われる
パフォーマンス劣化のすべての誘因を含む。オフチップ
記憶域からのオペランド・データを待っている間にマイ
クロプロセッサが機能停止する時間の量は、多くの場合
に命令の実行に費やす時間と等しい。これは、データベ
ースおよびトランザクション処理を含む作業負荷の場合
に特に言えることである。
【0003】多くの現行のマイクロプロセッサ設計は、
有限キャッシュの不利益の低減を目指している。大規模
キャッシュ、複数レベルのキャッシュ、高速マルチチッ
プ・モジュール、順不同実行、命令事前取出しは広く使
用されており、最も有用であると考えられている。オペ
ランドの事前取出しも、従来の順不同処理の有無にかか
わらず、所与の作業負荷に正常に使用されている。しか
し、オペランドの事前取出しは、データベースおよびト
ランザクション作業負荷には特に効果的なわけではな
い。大規模キャッシュは有限キャッシュ効果の低減をも
たらすが、この領域のさらなる改良は、ダイのサイズま
たはチップ・カウントの増加が示すコスト・パフォーマ
ンス上の意味によって制限されている。現行の順不同実
行技法は、有限キャッシュ効果の大幅な低減をもたらす
が、プロセッサ・クロック周波数の低減および設計の複
雑さの増大という形の不利益を伴う。したがって、以前
は好ましいと考えられていた順不同実行設計を実現する
コストを大幅に削減できるようなマイクロプロセッサ設
計の改良を提供する必要がある。
有限キャッシュの不利益の低減を目指している。大規模
キャッシュ、複数レベルのキャッシュ、高速マルチチッ
プ・モジュール、順不同実行、命令事前取出しは広く使
用されており、最も有用であると考えられている。オペ
ランドの事前取出しも、従来の順不同処理の有無にかか
わらず、所与の作業負荷に正常に使用されている。しか
し、オペランドの事前取出しは、データベースおよびト
ランザクション作業負荷には特に効果的なわけではな
い。大規模キャッシュは有限キャッシュ効果の低減をも
たらすが、この領域のさらなる改良は、ダイのサイズま
たはチップ・カウントの増加が示すコスト・パフォーマ
ンス上の意味によって制限されている。現行の順不同実
行技法は、有限キャッシュ効果の大幅な低減をもたらす
が、プロセッサ・クロック周波数の低減および設計の複
雑さの増大という形の不利益を伴う。したがって、以前
は好ましいと考えられていた順不同実行設計を実現する
コストを大幅に削減できるようなマイクロプロセッサ設
計の改良を提供する必要がある。
【0004】用語集 CPIは、命令当たりのマシン・サイクル数を意味す
る。
る。
【0005】SFEは、本発明が提供する推論取出しエ
ンジンである。
ンジンである。
【0006】uPCoreは、サイクル時間と設計の複雑さと
無限L1キャッシュのCPIとの兼ね合いに関してバラ
ンスを取ったマイクロプロセッサ設計を表す。
無限L1キャッシュのCPIとの兼ね合いに関してバラ
ンスを取ったマイクロプロセッサ設計を表す。
【0007】
【発明が解決しようとする課題】本発明は、マイクロプ
ロセッサ・コンピュータ・システムを設計するための方
法を提供し、詳細には、パイプライン同期によりシステ
ム・パフォーマンスを改善するための結合コプロセッサ
を備えたマイクロプロセッサ・コンピュータ・システム
のための方法を提供する。本発明では、順不同サポート
を改善し、大規模キャッシュおよびマルチレベル・キャ
ッシュを使用する能力をコンピュータ・システムに提供
し、特に、マイクロプロセッサと結合コプロセッサとを
備え、有限キャッシュの不利益の低減を達成し、それに
よりシステム・パフォーマンスの向上をもたらす推論エ
ンジンを提供するコンピュータ・システムを提供する。
ロセッサ・コンピュータ・システムを設計するための方
法を提供し、詳細には、パイプライン同期によりシステ
ム・パフォーマンスを改善するための結合コプロセッサ
を備えたマイクロプロセッサ・コンピュータ・システム
のための方法を提供する。本発明では、順不同サポート
を改善し、大規模キャッシュおよびマルチレベル・キャ
ッシュを使用する能力をコンピュータ・システムに提供
し、特に、マイクロプロセッサと結合コプロセッサとを
備え、有限キャッシュの不利益の低減を達成し、それに
よりシステム・パフォーマンスの向上をもたらす推論エ
ンジンを提供するコンピュータ・システムを提供する。
【0008】
【課題を解決するための手段】好ましい実施例の改良点
は、複数のパイプラインの同期によるレジスタ管理を介
してマイクロプロセッサ・サポートを改善する。このよ
うな改良点は、(必要に応じて先取出しおよび同時ロー
ドの実行などのスーパスカラ技法を処理できるようにな
っている間に)本質的に適正順序で命令を処理するコア
・マイクロプロセッサと協力して動作する複数の実行要
素を有する推論取出しエンジン(SFE)と、順不同実
行のための方法と、複数のマイクロプロセッサとの同期
を取る方法と、SFEとマイクロプロセッサ・コア(uP
Core)の両方によって共用される記憶階層への推論メモ
リ参照の生成を可能にするレジスタ管理プロセスとを提
供することによって達成される。
は、複数のパイプラインの同期によるレジスタ管理を介
してマイクロプロセッサ・サポートを改善する。このよ
うな改良点は、(必要に応じて先取出しおよび同時ロー
ドの実行などのスーパスカラ技法を処理できるようにな
っている間に)本質的に適正順序で命令を処理するコア
・マイクロプロセッサと協力して動作する複数の実行要
素を有する推論取出しエンジン(SFE)と、順不同実
行のための方法と、複数のマイクロプロセッサとの同期
を取る方法と、SFEとマイクロプロセッサ・コア(uP
Core)の両方によって共用される記憶階層への推論メモ
リ参照の生成を可能にするレジスタ管理プロセスとを提
供することによって達成される。
【0009】uPCoreとSFEはどちらも処理要素と見な
される。システムは、第1および第2の処理要素を有す
るコンピュータ・システム内で順次命令ストリームを処
理し、それぞれの処理要素はそれ自体の汎用レジスタお
よび制御レジスタの設定によって決定されるそれ自体の
状態を有する。処理中の任意の時点において、同じ順次
命令ストリームの連続処理を第2の処理要素に引き継が
せることが利益になる場合、第1および第2の処理要素
は、順次命令ストリームを処理し、全く同じ命令を実行
している可能性があるが、第1および第2の処理要素の
状態の組合せによって決定される前記コンピュータ・シ
ステムの全体的なアーキテクチャ状態を変更することが
できるのは、前記処理要素の一方だけ(好ましい実施例
ではこれはuPCoreになる)になる。
される。システムは、第1および第2の処理要素を有す
るコンピュータ・システム内で順次命令ストリームを処
理し、それぞれの処理要素はそれ自体の汎用レジスタお
よび制御レジスタの設定によって決定されるそれ自体の
状態を有する。処理中の任意の時点において、同じ順次
命令ストリームの連続処理を第2の処理要素に引き継が
せることが利益になる場合、第1および第2の処理要素
は、順次命令ストリームを処理し、全く同じ命令を実行
している可能性があるが、第1および第2の処理要素の
状態の組合せによって決定される前記コンピュータ・シ
ステムの全体的なアーキテクチャ状態を変更することが
できるのは、前記処理要素の一方だけ(好ましい実施例
ではこれはuPCoreになる)になる。
【0010】好ましい実施例では、第2のプロセッサ
は、順不同実行を可能にし、それにより、有限キャッシ
ュの不利益を低減してパフォーマンスを向上するため
に、第1の適正順序処理要素より多くのパイプライン・
ステージを有することになる。第2の処理要素の結果を
処理して格納しても、好ましい実施例ではコンピュータ
・システムのアーキテクチャ状態を変更することはな
い。結果は、その汎用レジスタまたはその個人用記憶バ
ッファ内に格納される。2つの処理要素の状態の再同期
化は、無効命令、機能停止、または順不同コプロセッサ
(SFE)としてコプロセッサとともに処理することに
対する計算固有の利益が発生したときに行われる。
は、順不同実行を可能にし、それにより、有限キャッシ
ュの不利益を低減してパフォーマンスを向上するため
に、第1の適正順序処理要素より多くのパイプライン・
ステージを有することになる。第2の処理要素の結果を
処理して格納しても、好ましい実施例ではコンピュータ
・システムのアーキテクチャ状態を変更することはな
い。結果は、その汎用レジスタまたはその個人用記憶バ
ッファ内に格納される。2つの処理要素の状態の再同期
化は、無効命令、機能停止、または順不同コプロセッサ
(SFE)としてコプロセッサとともに処理することに
対する計算固有の利益が発生したときに行われる。
【0011】SFEはuPCoreとのインタフェースを取
り、したがって、本発明は同じシリコン・チップ上に設
けたSFEと第1のプロセッサuPCoreによって、より容
易に実施される。また、マルチチップ実施態様も可能で
あり、本発明の現行実施例と一貫するものである。uPCo
reは従来の構造を有し、好ましい実施例では複合システ
ムのアーキテクチャ状態を維持するが、汎用ミラー・バ
ージョンではアーキテクチャ状態を維持する責任は交互
に果たされるかまたは両者によって共用される。SFE
によって呼び出されたアクションは、好ましい実施例で
は、uPCoreのアーキテクチャ状態を直接変更することは
ない。SFEは、uPCoreがそれを使用する前に複合シス
テムのキャッシュを命令およびオペランド・データで満
たす記憶参照を生成するために使用する。このような改
良点は、米国特許第4901233号(以下Liptayとい
う)および米国特許第4574349号で開発されたも
のなどの従来のレジスタ・リネーム方式によって可能に
なったシステム・パフォーマンスを拡張する。
り、したがって、本発明は同じシリコン・チップ上に設
けたSFEと第1のプロセッサuPCoreによって、より容
易に実施される。また、マルチチップ実施態様も可能で
あり、本発明の現行実施例と一貫するものである。uPCo
reは従来の構造を有し、好ましい実施例では複合システ
ムのアーキテクチャ状態を維持するが、汎用ミラー・バ
ージョンではアーキテクチャ状態を維持する責任は交互
に果たされるかまたは両者によって共用される。SFE
によって呼び出されたアクションは、好ましい実施例で
は、uPCoreのアーキテクチャ状態を直接変更することは
ない。SFEは、uPCoreがそれを使用する前に複合シス
テムのキャッシュを命令およびオペランド・データで満
たす記憶参照を生成するために使用する。このような改
良点は、米国特許第4901233号(以下Liptayとい
う)および米国特許第4574349号で開発されたも
のなどの従来のレジスタ・リネーム方式によって可能に
なったシステム・パフォーマンスを拡張する。
【0012】上記その他の改良点については以下の詳細
な説明に示す。特に本出願人が最初に開発し広く実施さ
れている従来の設計を上回る利点および特徴を備えた本
発明をさらに理解するために、以下の説明および後述す
る図面を参照されたい。
な説明に示す。特に本出願人が最初に開発し広く実施さ
れている従来の設計を上回る利点および特徴を備えた本
発明をさらに理解するために、以下の説明および後述す
る図面を参照されたい。
【0013】
【発明の実施の形態】好ましい実施例を詳細に検討する
前に、一例として、最初に本出願人によって開発され、
Liptay特許である米国特許第4901233号に記載さ
れている典型的な従来技術の順不同マイクロプロセッサ
設計を例示することは価値のあることだろう。図1およ
び図2は、最初はレジスタ管理システム(RMS)の使
用を教示する米国特許第4901233号に記載され
た、このような典型的な従来技術の順不同マイクロプロ
セッサ設計を示している。RMSにより、アーキテクチ
ャ・システム内で命名されている以上の物理レジスタを
汎用ならびに精密な分岐後回復の両方に使用できるよう
になる。レジスタ管理システムの使用は順不同実行を使
用可能にするために本質的なものである。順不同実行に
より、本発明の焦点である有限キャッシュの不利益を大
幅に低減できることが分かっている。米国特許第490
1233号に記載された好ましい実施例は、従来技術の
適正順序プロセッサ設計の基本パイプラインの変更を含
む。このような変更は、全体的なシステムにRMSを統
合する必要があり、その結果、長い、すなわち、ステー
ジ数が多い命令パイプラインになるか、または適正順序
設計の命令パイプラインよりステージ当たりの論理数が
多い命令パイプラインになる。米国特許第490123
3号の好ましい実施例により、従来の適正順序設計に対
する無限L1キャッシュCPIと有限キャッシュCPI
の両方の改良が可能になる。本発明は、無限L1CPI
を改善するための順不同技法の使用を排除するものでは
ないが、主命令実行パイプラインにおける順不同サポー
トと設計の複雑さとのより良いバランスを達成するため
にその使用を制限することができる。本発明は、uPCore
パイプライン長またはパイプライン内の各ステージの長
さを増加せずに有限L1 CPI加算器を低減するため
の順不同技法の使用に集中するものである。全体的な結
果として、米国特許第4901233号よりシステム・
パフォーマンスが向上する。というのは、データベース
およびトランザクション作業負荷の場合、サイクル時間
の改善によって、米国特許第4901233号によって
得られる無限L1キャッシュCPIの小規模の改善に比
べ、パフォーマンスが向上するからである。さらに、本
発明は、uPCoreを適正順序設計として実現する場合にレ
ジスタ管理システムを主命令処理パイプラインから分離
することにより、順不同命令処理に関連するすべての問
題について設計の複雑さの大幅低減を見込んでいる。こ
のような検討により、米国特許第4901233号によ
って実現された図1および図2について説明する。
前に、一例として、最初に本出願人によって開発され、
Liptay特許である米国特許第4901233号に記載さ
れている典型的な従来技術の順不同マイクロプロセッサ
設計を例示することは価値のあることだろう。図1およ
び図2は、最初はレジスタ管理システム(RMS)の使
用を教示する米国特許第4901233号に記載され
た、このような典型的な従来技術の順不同マイクロプロ
セッサ設計を示している。RMSにより、アーキテクチ
ャ・システム内で命名されている以上の物理レジスタを
汎用ならびに精密な分岐後回復の両方に使用できるよう
になる。レジスタ管理システムの使用は順不同実行を使
用可能にするために本質的なものである。順不同実行に
より、本発明の焦点である有限キャッシュの不利益を大
幅に低減できることが分かっている。米国特許第490
1233号に記載された好ましい実施例は、従来技術の
適正順序プロセッサ設計の基本パイプラインの変更を含
む。このような変更は、全体的なシステムにRMSを統
合する必要があり、その結果、長い、すなわち、ステー
ジ数が多い命令パイプラインになるか、または適正順序
設計の命令パイプラインよりステージ当たりの論理数が
多い命令パイプラインになる。米国特許第490123
3号の好ましい実施例により、従来の適正順序設計に対
する無限L1キャッシュCPIと有限キャッシュCPI
の両方の改良が可能になる。本発明は、無限L1CPI
を改善するための順不同技法の使用を排除するものでは
ないが、主命令実行パイプラインにおける順不同サポー
トと設計の複雑さとのより良いバランスを達成するため
にその使用を制限することができる。本発明は、uPCore
パイプライン長またはパイプライン内の各ステージの長
さを増加せずに有限L1 CPI加算器を低減するため
の順不同技法の使用に集中するものである。全体的な結
果として、米国特許第4901233号よりシステム・
パフォーマンスが向上する。というのは、データベース
およびトランザクション作業負荷の場合、サイクル時間
の改善によって、米国特許第4901233号によって
得られる無限L1キャッシュCPIの小規模の改善に比
べ、パフォーマンスが向上するからである。さらに、本
発明は、uPCoreを適正順序設計として実現する場合にレ
ジスタ管理システムを主命令処理パイプラインから分離
することにより、順不同命令処理に関連するすべての問
題について設計の複雑さの大幅低減を見込んでいる。こ
のような検討により、米国特許第4901233号によ
って実現された図1および図2について説明する。
【0014】Liptayの発明は、汎用レジスタ、たとえ
ば、n個の汎用レジスタなどの指定の複数のアドレス可
能(論理)レジスタのアーキテクチャ設計要件を有する
コンピュータ・システム用のレジスタ管理システムであ
った。Liptay設計の要素の多くは、以下に説明するよう
に本システムでも使用する。m個のレジスタを有するレ
ジスタ・アレイ(RA)は、n個の汎用レジスタの諸機
能を果たすために設けられており、mはnより大きい。
例示の実施例として、米国特許第4901233号には
16個のGPRを有する周知のIBMシステム/370
アーキテクチャによるシステムが記載されており、この
システムは現在でも現行のS/390マシンに使用され
ている。RAは、アーキテクチャ・レジスタの諸機能を
果たすために特定のRAの動的割当てを行う。特定のレ
ジスタ割当ての機能が完了すると、RA内のその位置は
解放され、やがて同じかまたは他のアーキテクチャGP
Rとして再割当て可能になる。
ば、n個の汎用レジスタなどの指定の複数のアドレス可
能(論理)レジスタのアーキテクチャ設計要件を有する
コンピュータ・システム用のレジスタ管理システムであ
った。Liptay設計の要素の多くは、以下に説明するよう
に本システムでも使用する。m個のレジスタを有するレ
ジスタ・アレイ(RA)は、n個の汎用レジスタの諸機
能を果たすために設けられており、mはnより大きい。
例示の実施例として、米国特許第4901233号には
16個のGPRを有する周知のIBMシステム/370
アーキテクチャによるシステムが記載されており、この
システムは現在でも現行のS/390マシンに使用され
ている。RAは、アーキテクチャ・レジスタの諸機能を
果たすために特定のRAの動的割当てを行う。特定のレ
ジスタ割当ての機能が完了すると、RA内のその位置は
解放され、やがて同じかまたは他のアーキテクチャGP
Rとして再割当て可能になる。
【0015】レジスタ管理システムは、全体的なコンピ
ュータ・アーキテクチャに依存しておらず、現行のマイ
クロプロセッサ設計で使用されているように、様々な環
境で実現することができる。したがって、それがメイン
フレーム・プロセッサであるかマイクロプロセッサであ
るかにかかわらず、図1および図2に示すコンピュータ
・システム10は、キャッシュ・メモリ・システム14
に接続されたメイン・メモリ12を有する。キャッシュ
・メモリ・システム14は、任意の数の容認できる状態
に編成することができるが、この例では命令操作とデー
タ操作をそれぞれ別々に処理するために命令キャッシュ
16とデータ・キャッシュ18がともにメイン・メモリ
12に接続された状態で示されている。階層メモリ設計
はカスケード配置においてメモリ・サイズとメモリ速度
という両方の利点をもたらすためにキャッシュ・メモリ
に複数のレベルを設けるものであり、このようなメモリ
設計は、図1および図2には示されていないが、図3に
示すように本発明と一貫するものである。
ュータ・アーキテクチャに依存しておらず、現行のマイ
クロプロセッサ設計で使用されているように、様々な環
境で実現することができる。したがって、それがメイン
フレーム・プロセッサであるかマイクロプロセッサであ
るかにかかわらず、図1および図2に示すコンピュータ
・システム10は、キャッシュ・メモリ・システム14
に接続されたメイン・メモリ12を有する。キャッシュ
・メモリ・システム14は、任意の数の容認できる状態
に編成することができるが、この例では命令操作とデー
タ操作をそれぞれ別々に処理するために命令キャッシュ
16とデータ・キャッシュ18がともにメイン・メモリ
12に接続された状態で示されている。階層メモリ設計
はカスケード配置においてメモリ・サイズとメモリ速度
という両方の利点をもたらすためにキャッシュ・メモリ
に複数のレベルを設けるものであり、このようなメモリ
設計は、図1および図2には示されていないが、図3に
示すように本発明と一貫するものである。
【0016】図1および図2のように、命令は命令キャ
ッシュ16から命令バッファ・ユニット20を通って命
令レジスタ・ユニット22に伝わる。例示のため、命令
レジスタ・ユニット22は複数の別々の命令レジスタを
有し、このような命令レジスタの望ましい数は2個、3
個、または4個である。
ッシュ16から命令バッファ・ユニット20を通って命
令レジスタ・ユニット22に伝わる。例示のため、命令
レジスタ・ユニット22は複数の別々の命令レジスタを
有し、このような命令レジスタの望ましい数は2個、3
個、または4個である。
【0017】実行ユニットとして機能する汎用ユニット
は、算術または論理、スカラまたはベクトル、スカラま
たは浮動小数点など、実行される機能のタイプに沿って
設計することができる。汎用実行ユニットがこのような
配置がどのようなものでも汎用レジスタ(GPR)を使
用するので、本発明は、コンピュータ内の汎用実行ユニ
ットの数、機能配置、設計の点で多くの変形態様に応用
可能である。
は、算術または論理、スカラまたはベクトル、スカラま
たは浮動小数点など、実行される機能のタイプに沿って
設計することができる。汎用実行ユニットがこのような
配置がどのようなものでも汎用レジスタ(GPR)を使
用するので、本発明は、コンピュータ内の汎用実行ユニ
ットの数、機能配置、設計の点で多くの変形態様に応用
可能である。
【0018】例示のため、Liptayシステムは、それぞれ
24および26として示されている汎用実行ユニット
(GPE)1および2とともに示されている。汎用ユニ
ット24ではその出力がストア・バッファ・ユニット2
8に接続され、そのユニットの出力はデータ・キャッシ
ュ18に接続されている。汎用ユニット24は、実際に
は単一実行ユニットである場合もあれば、複数ユニット
の組合せである場合もあり、この実施例に示すように、
ユニット24はストア・バッファ28に送られる結果を
生成するが、その結果は命令完了までそのバッファ内に
保持され、その後、メモリに格納することができる。汎
用ユニット26では、その出力が本発明による汎用レジ
スタ・アレイ(RA)30に接続されている。GPE2
6は命令について操作して結果を生成するが、その結果
は、直ちに格納するのではなく、レジスタ内で使用可能
である必要がある。命令スタックまたは待ち行列31
は、命令レジスタ・ユニット22から命令を受け取っ
て、それをGPE24または26に適切に向けるために
設けられている。単一RAおよびレジスタ管理システム
とともに様々なタイプの複数の実行ユニットを使用する
ことができる。RA30は、このアーキテクチャによっ
て認識される16個のGPRの諸機能を果たすために3
2個の動的割当て可能な実(物理)レジスタを含む。
24および26として示されている汎用実行ユニット
(GPE)1および2とともに示されている。汎用ユニ
ット24ではその出力がストア・バッファ・ユニット2
8に接続され、そのユニットの出力はデータ・キャッシ
ュ18に接続されている。汎用ユニット24は、実際に
は単一実行ユニットである場合もあれば、複数ユニット
の組合せである場合もあり、この実施例に示すように、
ユニット24はストア・バッファ28に送られる結果を
生成するが、その結果は命令完了までそのバッファ内に
保持され、その後、メモリに格納することができる。汎
用ユニット26では、その出力が本発明による汎用レジ
スタ・アレイ(RA)30に接続されている。GPE2
6は命令について操作して結果を生成するが、その結果
は、直ちに格納するのではなく、レジスタ内で使用可能
である必要がある。命令スタックまたは待ち行列31
は、命令レジスタ・ユニット22から命令を受け取っ
て、それをGPE24または26に適切に向けるために
設けられている。単一RAおよびレジスタ管理システム
とともに様々なタイプの複数の実行ユニットを使用する
ことができる。RA30は、このアーキテクチャによっ
て認識される16個のGPRの諸機能を果たすために3
2個の動的割当て可能な実(物理)レジスタを含む。
【0019】RA30は、状況情報によって制御され、
制御バス34を介してレジスタ管理システム(RMS)
32に状況情報を供給する。RMS32は、様々なタイ
プの状況情報を受け取って供給するために他のいくつか
のシステムに接続されている。割込み制御要素36は、
命令レジスタ22、RMS32、RA30に接続され、
割込みの適切な処理を行い、必要な状況情報を保存す
る。
制御バス34を介してレジスタ管理システム(RMS)
32に状況情報を供給する。RMS32は、様々なタイ
プの状況情報を受け取って供給するために他のいくつか
のシステムに接続されている。割込み制御要素36は、
命令レジスタ22、RMS32、RA30に接続され、
割込みの適切な処理を行い、必要な状況情報を保存す
る。
【0020】発行から実行まで命令に従い、入力オペラ
ンドおよび出力オペランド用にレジスタを割り当てるた
めに、RMS32は命令レジスタ・ユニット22とGP
E24および26に接続されている。
ンドおよび出力オペランド用にレジスタを割り当てるた
めに、RMS32は命令レジスタ・ユニット22とGP
E24および26に接続されている。
【0021】図1および図2のコンピュータは、命令レ
ジスタ・ユニット22から命令を受け取るために接続さ
れ、命令アドレス計算要素(I−ACE)52への出力
を有する命令待ち行列50を有する。また、I−ACE
52は、RA30から入力を直接受け取るためにも接続
され、命令キャッシュ16に接続された出力を有する。
命令待ち行列50は、状況情報を供給するためにRMS
32に接続されている。
ジスタ・ユニット22から命令を受け取るために接続さ
れ、命令アドレス計算要素(I−ACE)52への出力
を有する命令待ち行列50を有する。また、I−ACE
52は、RA30から入力を直接受け取るためにも接続
され、命令キャッシュ16に接続された出力を有する。
命令待ち行列50は、状況情報を供給するためにRMS
32に接続されている。
【0022】図1および図2のコンピュータは、命令レ
ジスタ・ユニット22からの出力を受け取るために接続
されたアドレス待ち行列60を有する。アドレス待ち行
列60の出力は、データ・アドレス計算要素(D−AC
E)62への入力として接続されている。D−ACE6
2へのもう一方の入力はRA30からのものである。D
−ACE62は、状況情報を供給するためにRMS32
に接続されている。
ジスタ・ユニット22からの出力を受け取るために接続
されたアドレス待ち行列60を有する。アドレス待ち行
列60の出力は、データ・アドレス計算要素(D−AC
E)62への入力として接続されている。D−ACE6
2へのもう一方の入力はRA30からのものである。D
−ACE62は、状況情報を供給するためにRMS32
に接続されている。
【0023】D−ACE62の出力はアドレス取出し待
ち行列64に接続され、この待ち行列はデータ・キャッ
シュ18への入力として接続された第1の出力と、アド
レス・ストア待ち行列66への入力として接続された第
2の出力とを有する。アドレス・ストア待ち行列は、デ
ータ・キャッシュ18に接続された出力を有し、状況情
報を供給するためにRMS32との接続を有する。
ち行列64に接続され、この待ち行列はデータ・キャッ
シュ18への入力として接続された第1の出力と、アド
レス・ストア待ち行列66への入力として接続された第
2の出力とを有する。アドレス・ストア待ち行列は、デ
ータ・キャッシュ18に接続された出力を有し、状況情
報を供給するためにRMS32との接続を有する。
【0024】このコンピュータは、同じく状況情報を供
給するためにRMS32に接続された浮動小数点演算ユ
ニット70を有する。以下に説明するように、RMS3
2がRA30とは無関係のユニットおよびレジスタとと
もに機能できることは重要なことである。たとえば、1
つのRMSは複数のレジスタ・アレイとともに機能する
ことができる。より具体的には、1つのRMSが2つの
RAを制御し、そのRAを同じかまたは異なるタイプの
複数の実行ユニットに接続することができる。
給するためにRMS32に接続された浮動小数点演算ユ
ニット70を有する。以下に説明するように、RMS3
2がRA30とは無関係のユニットおよびレジスタとと
もに機能できることは重要なことである。たとえば、1
つのRMSは複数のレジスタ・アレイとともに機能する
ことができる。より具体的には、1つのRMSが2つの
RAを制御し、そのRAを同じかまたは異なるタイプの
複数の実行ユニットに接続することができる。
【0025】浮動小数点ユニット(FPU)70の入力
は、浮動小数点命令待ち行列72および浮動小数点デー
タ・レジスタ・ユニット74によって供給される。浮動
小数点命令待ち行列72はI−REG22からその入力
を受け取る。浮動小数点データ・レジスタ・ユニット7
4は、データ・キャッシュ18およびFPU70からそ
の入力を受け取る。浮動小数点ユニット70の出力はス
トア・バッファ・ユニット76に接続され、そのユニッ
トの出力はデータ・キャッシュ18への入力として接続
されている。
は、浮動小数点命令待ち行列72および浮動小数点デー
タ・レジスタ・ユニット74によって供給される。浮動
小数点命令待ち行列72はI−REG22からその入力
を受け取る。浮動小数点データ・レジスタ・ユニット7
4は、データ・キャッシュ18およびFPU70からそ
の入力を受け取る。浮動小数点ユニット70の出力はス
トア・バッファ・ユニット76に接続され、そのユニッ
トの出力はデータ・キャッシュ18への入力として接続
されている。
【0026】次に本発明をより詳細に検討すると、図3
に示すように大規模キャッシュおよび複数レベルのキャ
ッシュを設けることができる場合に使用するために、後
述する本システムが有効であることが分かるだろう。本
発明は既存のキャッシュのパフォーマンスに改良を加え
るものであり、推論取出しは各レベルのキャッシュのミ
ス率を改善することになるだろう。全パフォーマンス上
の利益は、多くの場合にSFEのシリコン・サイズによ
ってオンチップ・キャッシュが増加した場合に得られた
はずのものと比較して評価しなければならない。L1キ
ャッシュの場合のように、この比較が必ずしも有効では
ない場合がある。というのは、領域ではなくサイクル時
間の制約が通常、L1キャッシュにとって重要であるか
らである。予備的な結果によれば、オンチップの2次キ
ャッシュのサイズの約1/4〜1/2であるSFEを使
用して、15〜20%のパフォーマンスの改善が得られ
る可能性がある。
に示すように大規模キャッシュおよび複数レベルのキャ
ッシュを設けることができる場合に使用するために、後
述する本システムが有効であることが分かるだろう。本
発明は既存のキャッシュのパフォーマンスに改良を加え
るものであり、推論取出しは各レベルのキャッシュのミ
ス率を改善することになるだろう。全パフォーマンス上
の利益は、多くの場合にSFEのシリコン・サイズによ
ってオンチップ・キャッシュが増加した場合に得られた
はずのものと比較して評価しなければならない。L1キ
ャッシュの場合のように、この比較が必ずしも有効では
ない場合がある。というのは、領域ではなくサイクル時
間の制約が通常、L1キャッシュにとって重要であるか
らである。予備的な結果によれば、オンチップの2次キ
ャッシュのサイズの約1/4〜1/2であるSFEを使
用して、15〜20%のパフォーマンスの改善が得られ
る可能性がある。
【0027】図3の好ましい実施例 図3に示す好ましい実施例に示すように、諸要素の相互
接続は、uPCore(200)と同期ユニット(SU 20
1)、SFE(202)、命令およびデータ・キャッシ
ュ(203)とのインタフェースなどの様々なインタフ
ェースによって行われる。キャッシュ・メモリ・システ
ムは、任意の数の容認できる状態に編成することができ
るが、この例ではこの階層メモリのメイン・メモリ20
4に接続された複合命令およびデータ・キャッシュ20
3によって示されており、この階層メモリはカスケード
配置においてメモリ・サイズとメモリ速度という両方の
利点をもたらすためにキャッシュ・メモリに複数のレベ
ル(たとえば、203’・・・203”)を設けるもの
であり、このようなメモリ設計は本発明と一貫するもの
である。また、分割された命令キャッシュとデータ・キ
ャッシュも本発明と一貫するものである。
接続は、uPCore(200)と同期ユニット(SU 20
1)、SFE(202)、命令およびデータ・キャッシ
ュ(203)とのインタフェースなどの様々なインタフ
ェースによって行われる。キャッシュ・メモリ・システ
ムは、任意の数の容認できる状態に編成することができ
るが、この例ではこの階層メモリのメイン・メモリ20
4に接続された複合命令およびデータ・キャッシュ20
3によって示されており、この階層メモリはカスケード
配置においてメモリ・サイズとメモリ速度という両方の
利点をもたらすためにキャッシュ・メモリに複数のレベ
ル(たとえば、203’・・・203”)を設けるもの
であり、このようなメモリ設計は本発明と一貫するもの
である。また、分割された命令キャッシュとデータ・キ
ャッシュも本発明と一貫するものである。
【0028】任意の数のSFE202・・・202’・
・・202”とともに、任意の数のuPCore200・・・
200’・・・200”を使用することができる。SF
Eは、所与の時点で単一のuPCoreに関連付けることがで
きるが、同期機能が実行された後で他のuPCoreとの関連
付けを変更することができる。各SFEは、1つのスト
ア・バッファおよび1つのSUに関連付けられている。
たとえば、必要なSFE機能を提供するために201’
と202’と205’とをまとめて使用する。任意の数
のSFEを単一のuPCoreに同時に関連付けることができ
る。好ましい実施例は、単一のSFEと複数のuPCoreと
を有する。
・・202”とともに、任意の数のuPCore200・・・
200’・・・200”を使用することができる。SF
Eは、所与の時点で単一のuPCoreに関連付けることがで
きるが、同期機能が実行された後で他のuPCoreとの関連
付けを変更することができる。各SFEは、1つのスト
ア・バッファおよび1つのSUに関連付けられている。
たとえば、必要なSFE機能を提供するために201’
と202’と205’とをまとめて使用する。任意の数
のSFEを単一のuPCoreに同時に関連付けることができ
る。好ましい実施例は、単一のSFEと複数のuPCoreと
を有する。
【0029】しかし、好ましい実施例のハードウェアの
詳細説明に入る前に、図3では、uPCoreが代わりに動作
可能な代替汎用実施例も分かるだろう。図3の汎用実施
例では、ここに示し説明する諸機能を2重にしている
が、アーキテクチャ制御は200、200’、200”
と202、202’、202”との間で交互に行われ、
詳細に説明するもののミラー・イメージとして同じ機能
が実行される。
詳細説明に入る前に、図3では、uPCoreが代わりに動作
可能な代替汎用実施例も分かるだろう。図3の汎用実施
例では、ここに示し説明する諸機能を2重にしている
が、アーキテクチャ制御は200、200’、200”
と202、202’、202”との間で交互に行われ、
詳細に説明するもののミラー・イメージとして同じ機能
が実行される。
【0030】したがって、この好ましい実施例は代替汎
用実施例の具体的な好ましい例であり、代わりにマシン
のアーキテクチャ状態を制御しながら、第1の従来の処
理要素uPCore200、200’、200”と第2の処理
要素SFE202、202’、202”が協力して動作
する。図3に示す好ましい実施例では、第1の処理要素
は、順次命令ストリームのほとんどの命令を適正順序で
処理し、アーキテクチャ状態を制御する。したがって、
一般に、それぞれの処理要素がそれ自体の汎用レジスタ
および制御レジスタの設定によって決定されるそれ自体
の状態を有するような、第1および第2の処理要素を有
するコンピュータ・システム内で順次命令ストリームを
処理するための方法は、前記処理要素の第1のもの、た
とえば、200に前記順次命令ストリームの初期命令を
向けることから開始する。前記順次命令ストリームの処
理は、コンピュータ・システムのアーキテクチャ状態の
変化を前記第2の処理要素に転送する前記処理要素の第
1のものを使用して続行される。しかし、前記第1の処
理要素、たとえば、uPCore200による前記順次命令ス
トリームの処理中の任意の時点において、同じ順次命令
ストリームの連続処理を前記第2の処理要素、たとえ
ば、SFE202に開始させることが利益になる場合、
コンピュータ・システムの第2の処理要素は、転送され
た状態を復元し、第2の処理要素によって順次命令スト
リームを処理することにより、同じ順次命令ストリーム
の連続処理を開始する。
用実施例の具体的な好ましい例であり、代わりにマシン
のアーキテクチャ状態を制御しながら、第1の従来の処
理要素uPCore200、200’、200”と第2の処理
要素SFE202、202’、202”が協力して動作
する。図3に示す好ましい実施例では、第1の処理要素
は、順次命令ストリームのほとんどの命令を適正順序で
処理し、アーキテクチャ状態を制御する。したがって、
一般に、それぞれの処理要素がそれ自体の汎用レジスタ
および制御レジスタの設定によって決定されるそれ自体
の状態を有するような、第1および第2の処理要素を有
するコンピュータ・システム内で順次命令ストリームを
処理するための方法は、前記処理要素の第1のもの、た
とえば、200に前記順次命令ストリームの初期命令を
向けることから開始する。前記順次命令ストリームの処
理は、コンピュータ・システムのアーキテクチャ状態の
変化を前記第2の処理要素に転送する前記処理要素の第
1のものを使用して続行される。しかし、前記第1の処
理要素、たとえば、uPCore200による前記順次命令ス
トリームの処理中の任意の時点において、同じ順次命令
ストリームの連続処理を前記第2の処理要素、たとえ
ば、SFE202に開始させることが利益になる場合、
コンピュータ・システムの第2の処理要素は、転送され
た状態を復元し、第2の処理要素によって順次命令スト
リームを処理することにより、同じ順次命令ストリーム
の連続処理を開始する。
【0031】次にこの第2の処理要素は、第1の処理要
素が要求するコンピュータ・システムのアーキテクチャ
状態の変化を第1の処理要素に転送する。
素が要求するコンピュータ・システムのアーキテクチャ
状態の変化を第1の処理要素に転送する。
【0032】交互に制御する代替実施例と好ましい実施
例のいずれでも、第1のプロセッサと第2のプロセッサ
は全く同じ命令を実行している可能性があるが、前記第
1および第2の処理要素の状態の組合せによって決定さ
れる前記コンピュータ・システムの全体的なアーキテク
チャ状態を変更できるのは、前記処理要素の一方だけに
なる。好ましい実施例では、この組合せは第1の処理要
素によって決定される。第2の処理SFEのアクション
はシステムのアーキテクチャ状態を変更することはな
く、好ましい実施例では、また代替実施例でも、システ
ムのアーキテクチャ状態は第2の処理要素の状態によっ
て全部または一部が決定される可能性がある。好ましい
実施例では、uPCoreパイプラインがほとんどすべての順
次命令を適正順序で処理し、uPCoreとSFEによって共
用されるキャッシュを準備するために使用する命令はS
FEが前処理し、アーキテクチャ状態を制御するuPCore
との再同期化を可能な限り頻繁に取り、SFEの結果が
別々の個人用ストア・バッファに格納されるときにSF
Eが命令を前処理すると、有限キャッシュの不利益が低
減される。
例のいずれでも、第1のプロセッサと第2のプロセッサ
は全く同じ命令を実行している可能性があるが、前記第
1および第2の処理要素の状態の組合せによって決定さ
れる前記コンピュータ・システムの全体的なアーキテク
チャ状態を変更できるのは、前記処理要素の一方だけに
なる。好ましい実施例では、この組合せは第1の処理要
素によって決定される。第2の処理SFEのアクション
はシステムのアーキテクチャ状態を変更することはな
く、好ましい実施例では、また代替実施例でも、システ
ムのアーキテクチャ状態は第2の処理要素の状態によっ
て全部または一部が決定される可能性がある。好ましい
実施例では、uPCoreパイプラインがほとんどすべての順
次命令を適正順序で処理し、uPCoreとSFEによって共
用されるキャッシュを準備するために使用する命令はS
FEが前処理し、アーキテクチャ状態を制御するuPCore
との再同期化を可能な限り頻繁に取り、SFEの結果が
別々の個人用ストア・バッファに格納されるときにSF
Eが命令を前処理すると、有限キャッシュの不利益が低
減される。
【0033】好ましい実施例には当てはまらないが、交
互に制御する実施例では、アーキテクチャ状態の制御は
前後に切り替わる。
互に制御する実施例では、アーキテクチャ状態の制御は
前後に切り替わる。
【0034】汎用方法では、それ自体の汎用レジスタお
よび制御レジスタの設定によって決定されるそれ自体の
状態を有する前記処理要素のそれぞれと、前記順次命令
ストリームの前記処理中の第1および第2の処理要素の
それぞれは、全く同じ命令を実行している可能性がある
が、前記第1および第2の処理要素の状態の一部の組合
せによって決定される前記コンピュータ・システムの全
体的なアーキテクチャ状態を変更できるのは、前記処理
要素の一方だけになるが、アーキテクチャ状態を制御す
る方が第1の処理要素から第2の処理要素へ変更し、第
2の処理要素から第1の処理要素に戻すことができる。
このプロセスは、まず第1に前記処理要素のうちの前記
第1のものを使用して順次命令ストリームを処理し、第
2の処理要素が要求するコンピュータ・システムのアー
キテクチャ状態の変化を前記第2の処理要素に転送し、
将来の時点で前記第2の処理要素用のアーキテクチャ状
況に使用するためにこのように転送された変化を蓄積す
るはずである。次に、前記第1の処理要素による前記順
次命令ストリームの処理中の任意の時点において、同じ
順次命令ストリームの連続処理を前記第2の処理要素に
引き継がせることが利益になると判定された場合、第2
の処理要素は、前記第1の処理要素から前に転送された
蓄積アーキテクチャ状態を復元し、前記第2の処理要素
によって前記順次命令ストリームを処理することによ
り、同じ順次命令ストリームの連続処理を引き継ぐ。第
2の処理要素が順次命令ストリームの処理を制御してい
る間、それは、将来の時点で使用すべきアーキテクチャ
状態に関する前記変化の蓄積と使用のために、第1の処
理要素が要求するコンピュータ・システムのアーキテク
チャ状態の変化を第1の処理要素に転送する。次に、も
う一度、制御を変更することができ、前記第2の処理要
素による前記順次命令ストリームの処理中の任意の時点
において、第1の処理要素に制御を再開させ、同じ順次
命令ストリームの連続処理を第1の処理要素に引き継が
せることが利益になる場合、第1の処理要素は、前記第
2の処理要素から前に転送された蓄積アーキテクチャ状
態を復元し、第1の処理要素によって前記順次命令スト
リームを処理することにより、同じ順次命令ストリーム
の連続処理を引き継ぐ。
よび制御レジスタの設定によって決定されるそれ自体の
状態を有する前記処理要素のそれぞれと、前記順次命令
ストリームの前記処理中の第1および第2の処理要素の
それぞれは、全く同じ命令を実行している可能性がある
が、前記第1および第2の処理要素の状態の一部の組合
せによって決定される前記コンピュータ・システムの全
体的なアーキテクチャ状態を変更できるのは、前記処理
要素の一方だけになるが、アーキテクチャ状態を制御す
る方が第1の処理要素から第2の処理要素へ変更し、第
2の処理要素から第1の処理要素に戻すことができる。
このプロセスは、まず第1に前記処理要素のうちの前記
第1のものを使用して順次命令ストリームを処理し、第
2の処理要素が要求するコンピュータ・システムのアー
キテクチャ状態の変化を前記第2の処理要素に転送し、
将来の時点で前記第2の処理要素用のアーキテクチャ状
況に使用するためにこのように転送された変化を蓄積す
るはずである。次に、前記第1の処理要素による前記順
次命令ストリームの処理中の任意の時点において、同じ
順次命令ストリームの連続処理を前記第2の処理要素に
引き継がせることが利益になると判定された場合、第2
の処理要素は、前記第1の処理要素から前に転送された
蓄積アーキテクチャ状態を復元し、前記第2の処理要素
によって前記順次命令ストリームを処理することによ
り、同じ順次命令ストリームの連続処理を引き継ぐ。第
2の処理要素が順次命令ストリームの処理を制御してい
る間、それは、将来の時点で使用すべきアーキテクチャ
状態に関する前記変化の蓄積と使用のために、第1の処
理要素が要求するコンピュータ・システムのアーキテク
チャ状態の変化を第1の処理要素に転送する。次に、も
う一度、制御を変更することができ、前記第2の処理要
素による前記順次命令ストリームの処理中の任意の時点
において、第1の処理要素に制御を再開させ、同じ順次
命令ストリームの連続処理を第1の処理要素に引き継が
せることが利益になる場合、第1の処理要素は、前記第
2の処理要素から前に転送された蓄積アーキテクチャ状
態を復元し、第1の処理要素によって前記順次命令スト
リームを処理することにより、同じ順次命令ストリーム
の連続処理を引き継ぐ。
【0035】次に、第1の処理要素と第2の処理要素は
マルチプロセッサとして機能することができる。また、
200、200’、200”によって示すように、第1
のプロセッサは、単一のSFEまたは複数のSFEとと
もにマルチプロセッサとして機能する複数の第1の処理
要素を含むことができる。しかし、複数のSFEは、単
一のuPCoreとともに使用されないはずである。すなわ
ち、マルチプロセッサは、1組の1つまたは複数の第1
の処理要素と少なくとも1つの第2の処理要素との組合
せとともに機能することができる。好ましい実施例で
は、第2の処理要素のそれぞれについて、1つの同期ユ
ニットSU 201、201’、201”という形の同
期機能が設けられている。このSUは、それとともに命
令ストリームを処理する第1の処理要素uPCoreによって
処理されているものと同じ命令の処理を第2の処理要素
SFE202、202’、202”が開始する時期を決
定する。したがって、各SFEごとに1つの同期ユニッ
トが設けられ、SUは、制御中のuPCoreによって処理さ
れている処理ストリームのうちの同じ命令または次の命
令の処理をSFEが開始する時期を決定する。また、S
Uは、SFE処理要素による命令の処理を停止または無
視すべき時期を決定する。この決定は、第1および第2
の処理要素から同期ユニットに供給される入力を使用し
て、コンピュータ・システム全体の計算済み利益判定に
よって行われる。カウンタ407および408が情報を
供給する図5のように、この入力はその時点でまたはシ
ステム内に格納された情報から同期ユニットに供給する
ことができる。
マルチプロセッサとして機能することができる。また、
200、200’、200”によって示すように、第1
のプロセッサは、単一のSFEまたは複数のSFEとと
もにマルチプロセッサとして機能する複数の第1の処理
要素を含むことができる。しかし、複数のSFEは、単
一のuPCoreとともに使用されないはずである。すなわ
ち、マルチプロセッサは、1組の1つまたは複数の第1
の処理要素と少なくとも1つの第2の処理要素との組合
せとともに機能することができる。好ましい実施例で
は、第2の処理要素のそれぞれについて、1つの同期ユ
ニットSU 201、201’、201”という形の同
期機能が設けられている。このSUは、それとともに命
令ストリームを処理する第1の処理要素uPCoreによって
処理されているものと同じ命令の処理を第2の処理要素
SFE202、202’、202”が開始する時期を決
定する。したがって、各SFEごとに1つの同期ユニッ
トが設けられ、SUは、制御中のuPCoreによって処理さ
れている処理ストリームのうちの同じ命令または次の命
令の処理をSFEが開始する時期を決定する。また、S
Uは、SFE処理要素による命令の処理を停止または無
視すべき時期を決定する。この決定は、第1および第2
の処理要素から同期ユニットに供給される入力を使用し
て、コンピュータ・システム全体の計算済み利益判定に
よって行われる。カウンタ407および408が情報を
供給する図5のように、この入力はその時点でまたはシ
ステム内に格納された情報から同期ユニットに供給する
ことができる。
【0036】図8の709のように、第1の処理要素に
よる命令の処理中に機能停止判定が行われた場合、同期
ユニットは、それが処理しているものと同じ命令の処理
を第2の処理要素が開始する時期を決定する。第1の処
理要素による命令の処理中に第2の処理要素が処理する
よう設計されていない操作がある場合、すなわち、有効
命令が一切使用可能になっていない場合(707)、同
期ユニットは、好ましい実施例ではSFEとuPCoreの状
態の再同期化による、第2の処理要素の状態とコンピュ
ータ・システムのアーキテクチャ状態との再同期化を行
う時期を決定する。命令ストリームの処理中に第2の処
理要素がコンピュータ・システムに対していかなる利益
ももたらさないと判定された場合(特定利益判定20
8)、同期ユニットは、第2の処理要素の状態とコンピ
ュータ・システムのアーキテクチャ状態との再同期化を
行う時期を決定する。図8に示すすべての判定707、
708、709では、同期ユニットによって再同期化を
行うべき時期を決定するだけでなく、どの処理要素との
状態の再同期化を行うべきかも決定する。命令を前処理
しているプロセッサ、すなわち、SFEは、その結果を
それ専用の結合済み個人用gprまたはストア・バッフ
ァ205、205’、205”に格納する。この格納は
他の処理要素のアーキテクチャ状態に影響しないので、
このように別々に同期化することによってSFEは順次
ストリームのほとんどの命令を処理するプロセッサのパ
フォーマンスを改善することができ、SFEは前記第1
の処理要素によって処理されている処理ストリームのう
ちの次の命令または同じ命令を処理することができ、S
Uは前記第2の処理要素による命令の処理を停止または
無視すべき時期を決定することができる。第1の処理要
素は、取出しのために前記第1および第2の処理要素の
両方によって共用されるデータおよび命令キャッシュか
らデータを取り出す。
よる命令の処理中に機能停止判定が行われた場合、同期
ユニットは、それが処理しているものと同じ命令の処理
を第2の処理要素が開始する時期を決定する。第1の処
理要素による命令の処理中に第2の処理要素が処理する
よう設計されていない操作がある場合、すなわち、有効
命令が一切使用可能になっていない場合(707)、同
期ユニットは、好ましい実施例ではSFEとuPCoreの状
態の再同期化による、第2の処理要素の状態とコンピュ
ータ・システムのアーキテクチャ状態との再同期化を行
う時期を決定する。命令ストリームの処理中に第2の処
理要素がコンピュータ・システムに対していかなる利益
ももたらさないと判定された場合(特定利益判定20
8)、同期ユニットは、第2の処理要素の状態とコンピ
ュータ・システムのアーキテクチャ状態との再同期化を
行う時期を決定する。図8に示すすべての判定707、
708、709では、同期ユニットによって再同期化を
行うべき時期を決定するだけでなく、どの処理要素との
状態の再同期化を行うべきかも決定する。命令を前処理
しているプロセッサ、すなわち、SFEは、その結果を
それ専用の結合済み個人用gprまたはストア・バッフ
ァ205、205’、205”に格納する。この格納は
他の処理要素のアーキテクチャ状態に影響しないので、
このように別々に同期化することによってSFEは順次
ストリームのほとんどの命令を処理するプロセッサのパ
フォーマンスを改善することができ、SFEは前記第1
の処理要素によって処理されている処理ストリームのう
ちの次の命令または同じ命令を処理することができ、S
Uは前記第2の処理要素による命令の処理を停止または
無視すべき時期を決定することができる。第1の処理要
素は、取出しのために前記第1および第2の処理要素の
両方によって共用されるデータおよび命令キャッシュか
らデータを取り出す。
【0037】好ましい実施例のこの方法により、第1の
処理要素用のキャッシュを満たし、順不同プロセッサと
して前処理を処理するために、SFEを使用して前記順
次命令ストリームを前処理することができる。再同期化
中および前記第2の処理要素による命令の処理を停止ま
たは無視すべき場合、第2の処理要素は、再同期化の前
に第1の処理要素用の命令ストリームの前処理のすべて
の結果と部分結果を除去する。
処理要素用のキャッシュを満たし、順不同プロセッサと
して前処理を処理するために、SFEを使用して前記順
次命令ストリームを前処理することができる。再同期化
中および前記第2の処理要素による命令の処理を停止ま
たは無視すべき場合、第2の処理要素は、再同期化の前
に第1の処理要素用の命令ストリームの前処理のすべて
の結果と部分結果を除去する。
【0038】したがって、好ましい実施例では、SF
E、同期ユニット、2つの(複数を表す)uPCore、なら
びにSFE202用の個人用ストア・バッファ(複数も
可)205が前述し図8に示す方法で使用されることが
分かるだろう。同期ユニット201は、図8に示すよう
にSFE202の状態を含む。許容できる状態は、動作
中(A)、除去中(B)、SFEとuPCore200との再
同期化中(C)、SFEとuPCore200’との再同期化
中(D)である。初期のSFE状態は(C)である。状
態Cでは、SFEは、そのアドレスで順不同実行を開始
するための用意としてuPCore200から最新のリタイヤ
された命令アドレスを受け取る。同期ユニット201
は、キャッシュ・ミスのためにuPCoreが機能停止したこ
とを示す表示の有無について、SFEとともに機能する
各uPCoreによって、uPCoreとのSUのインタフェースを
連続的に監視する。uPCoreは動作中であり、インタフェ
ース210によりキャッシュ記憶域および主記憶域を連
続的に参照している。命令およびオペランド・データ
は、命令およびデータ・キャッシュ203からインタフ
ェースによりuPCoreに返される。
E、同期ユニット、2つの(複数を表す)uPCore、なら
びにSFE202用の個人用ストア・バッファ(複数も
可)205が前述し図8に示す方法で使用されることが
分かるだろう。同期ユニット201は、図8に示すよう
にSFE202の状態を含む。許容できる状態は、動作
中(A)、除去中(B)、SFEとuPCore200との再
同期化中(C)、SFEとuPCore200’との再同期化
中(D)である。初期のSFE状態は(C)である。状
態Cでは、SFEは、そのアドレスで順不同実行を開始
するための用意としてuPCore200から最新のリタイヤ
された命令アドレスを受け取る。同期ユニット201
は、キャッシュ・ミスのためにuPCoreが機能停止したこ
とを示す表示の有無について、SFEとともに機能する
各uPCoreによって、uPCoreとのSUのインタフェースを
連続的に監視する。uPCoreは動作中であり、インタフェ
ース210によりキャッシュ記憶域および主記憶域を連
続的に参照している。命令およびオペランド・データ
は、命令およびデータ・キャッシュ203からインタフ
ェースによりuPCoreに返される。
【0039】再同期化中からSFE動作中(状態A)へ
の状態変化は、SFEのレジスタ管理システムがuPCore
に関連するSRALの内容をSFEのDRALにロード
したときに発生する。SFE動作中状態に入ると、SF
Eは、uPCoreからインタフェース206により受け取っ
た最新の命令アドレスで命令取出しと実行を開始する。
SFEのGPR状態は、同じ命令アドレスによって指し
示された命令のリタイヤ時にuPCoreが持っていたのと同
じ状態を反映する。SFEが動作中である間に、インタ
フェース206により受け取ったGPR結果を汎用レジ
スタ・アレイに書き込み続けるが、レジスタ管理システ
ムはそれを同期レジスタ割当てリストに関連付ける。そ
れらは、同期事象後にSFE内で実行される命令のみが
使用することになる。このため、SFEは、それが関連
付けられている各uPCoreのGPR状態の個別のイメージ
を維持し、SFEはそれに対して後でアクセスすること
ができる。一方、SFEのRMSは、SFEによる命令
ストリームの実行に使用するGPRのイメージを更新す
るために、SFEの実行結果のみを使用する。
の状態変化は、SFEのレジスタ管理システムがuPCore
に関連するSRALの内容をSFEのDRALにロード
したときに発生する。SFE動作中状態に入ると、SF
Eは、uPCoreからインタフェース206により受け取っ
た最新の命令アドレスで命令取出しと実行を開始する。
SFEのGPR状態は、同じ命令アドレスによって指し
示された命令のリタイヤ時にuPCoreが持っていたのと同
じ状態を反映する。SFEが動作中である間に、インタ
フェース206により受け取ったGPR結果を汎用レジ
スタ・アレイに書き込み続けるが、レジスタ管理システ
ムはそれを同期レジスタ割当てリストに関連付ける。そ
れらは、同期事象後にSFE内で実行される命令のみが
使用することになる。このため、SFEは、それが関連
付けられている各uPCoreのGPR状態の個別のイメージ
を維持し、SFEはそれに対して後でアクセスすること
ができる。一方、SFEのRMSは、SFEによる命令
ストリームの実行に使用するGPRのイメージを更新す
るために、SFEの実行結果のみを使用する。
【0040】SFEは動作中状態に入った直後に順不同
命令の実行を開始することになるが、uPCoreはそれ自体
のペースで実行を続行し、uPCoreの従来の処理要素がそ
れらを使用する前に命令およびオペランド・データのキ
ャッシュ記憶域203に供給されるものであって推論エ
ンジン処理要素SFEの記憶域が参照するものを含むキ
ャッシュ203からその命令を取り出す。好ましい実施
例のuPCoreは、適正順序プロセッサとして排他的に設計
するか、または適正順序処理のために最適化するか、ま
たはすべての命令の実質的に95%未満が予測から利益
を得られない場合に命令の処理を扱えるものにすること
ができる。したがって、それは、L1キャッシュ・ミス
の場合にパイプライン機能停止を経験する可能性があ
る。SFEは、順不同実行を行うことができるので、機
能停止を発生した命令以降も続行することができる。S
FEは、動作中である間に、インタフェース207によ
り命令およびデータ・キャッシュと、インタフェース2
08によりストア・バッファの両方に送られる取出し参
照を生成する。キャッシュとストア・バッファの両方が
所望のデータを持っていない場合にキャッシュ・ミスが
検出される。命令およびオペランドは、ストア・バッフ
ァ内に関連項目がない場合にはインタフェース207に
よりSFEに返され、ストア・バッファ内に関連項目が
ある場合にはインタフェース208により返される。S
FEストア参照は、命令およびデータ・キャッシュには
送られず、むしろストア・バッファに送られる。このた
め、SFEストア命令の結果は、uPCoreおよびキャッシ
ュのアーキテクチャ状態を変更せずにSFE上で実行さ
れる後続命令に使用可能なものにすることができる。す
べてのSFEストアは、ストア・バッファ内に保持され
る。
命令の実行を開始することになるが、uPCoreはそれ自体
のペースで実行を続行し、uPCoreの従来の処理要素がそ
れらを使用する前に命令およびオペランド・データのキ
ャッシュ記憶域203に供給されるものであって推論エ
ンジン処理要素SFEの記憶域が参照するものを含むキ
ャッシュ203からその命令を取り出す。好ましい実施
例のuPCoreは、適正順序プロセッサとして排他的に設計
するか、または適正順序処理のために最適化するか、ま
たはすべての命令の実質的に95%未満が予測から利益
を得られない場合に命令の処理を扱えるものにすること
ができる。したがって、それは、L1キャッシュ・ミス
の場合にパイプライン機能停止を経験する可能性があ
る。SFEは、順不同実行を行うことができるので、機
能停止を発生した命令以降も続行することができる。S
FEは、動作中である間に、インタフェース207によ
り命令およびデータ・キャッシュと、インタフェース2
08によりストア・バッファの両方に送られる取出し参
照を生成する。キャッシュとストア・バッファの両方が
所望のデータを持っていない場合にキャッシュ・ミスが
検出される。命令およびオペランドは、ストア・バッフ
ァ内に関連項目がない場合にはインタフェース207に
よりSFEに返され、ストア・バッファ内に関連項目が
ある場合にはインタフェース208により返される。S
FEストア参照は、命令およびデータ・キャッシュには
送られず、むしろストア・バッファに送られる。このた
め、SFEストア命令の結果は、uPCoreおよびキャッシ
ュのアーキテクチャ状態を変更せずにSFE上で実行さ
れる後続命令に使用可能なものにすることができる。す
べてのSFEストアは、ストア・バッファ内に保持され
る。
【0041】同期ユニットは、インタフェース209に
よりSFEの活動を監視する。SFEが実行すべきサポ
ート済み命令を実行し尽くすかまたは処理するように設
計されていない割込みまたは例外あるいはそれ以外の点
で無効の割込みまたは例外を検出した場合、これはイン
タフェース209上に示される。その場合、同期ユニッ
トはSFEを図8の除去中状態(B)に送る。また、同
期ユニットは、uPCoreによる命令のデコードとSFEに
よる命令のリタイヤの進行状況も監視する。有効な命令
707がそれ以上存在しない場合またはSFEが推論事
前取出し利益708をもたらさないと判定された場合、
SFEは、uPCore実行よりはるかに遅れていると想定さ
れ、この場合も除去中状態(B)に移行する。現在SF
Eに関連付けられているuPCoreが依然として判断点(7
09)で機能停止している場合、除去中状態への移行は
ブロックされ、SFEは引き続き動作中状態になる。S
FEの利益を示す他の多くの指示は、SFEが除去中状
態に入るべき時期を決定するために使用することができ
るが、本発明と一貫するものである。
よりSFEの活動を監視する。SFEが実行すべきサポ
ート済み命令を実行し尽くすかまたは処理するように設
計されていない割込みまたは例外あるいはそれ以外の点
で無効の割込みまたは例外を検出した場合、これはイン
タフェース209上に示される。その場合、同期ユニッ
トはSFEを図8の除去中状態(B)に送る。また、同
期ユニットは、uPCoreによる命令のデコードとSFEに
よる命令のリタイヤの進行状況も監視する。有効な命令
707がそれ以上存在しない場合またはSFEが推論事
前取出し利益708をもたらさないと判定された場合、
SFEは、uPCore実行よりはるかに遅れていると想定さ
れ、この場合も除去中状態(B)に移行する。現在SF
Eに関連付けられているuPCoreが依然として判断点(7
09)で機能停止している場合、除去中状態への移行は
ブロックされ、SFEは引き続き動作中状態になる。S
FEの利益を示す他の多くの指示は、SFEが除去中状
態に入るべき時期を決定するために使用することができ
るが、本発明と一貫するものである。
【0042】SFEは、いったん除去中状態(B)に入
ると、すべての命令、命令の一部、ならびに部分結果が
SFEのデータ経路および制御構造からクリアされるま
で、この状態から出ない。この間、いかなる要求も命令
またはデータ・キャッシュに送られない。706でこれ
が実施されるとSFEは除去中状態を出て、2通りの状
態のうちの一方CまたはDに移行することができる。S
FEは、uPCore200またはuPCore200’のいずれか
一方との再同期化を行うことができる。このような2通
りのアクション間でSFEによって決定される選択70
4は様々な要素に基づくことができ、そのすべては本発
明と一貫するものである。好ましい実施例では、どのuP
Coreが最後にSFEと同期化されたかを示す単純な指示
を使用しているが、その場合、SFEはもう一方のuPCo
reを使用してこの同期化を行うことになる。他のアルゴ
リズムを使用すると、判断点704により同じuPCoreが
何回も選択される可能性がある。再同期化が完了する
と、状態はもう一度動作中に戻され、サイクルが再び始
まる。
ると、すべての命令、命令の一部、ならびに部分結果が
SFEのデータ経路および制御構造からクリアされるま
で、この状態から出ない。この間、いかなる要求も命令
またはデータ・キャッシュに送られない。706でこれ
が実施されるとSFEは除去中状態を出て、2通りの状
態のうちの一方CまたはDに移行することができる。S
FEは、uPCore200またはuPCore200’のいずれか
一方との再同期化を行うことができる。このような2通
りのアクション間でSFEによって決定される選択70
4は様々な要素に基づくことができ、そのすべては本発
明と一貫するものである。好ましい実施例では、どのuP
Coreが最後にSFEと同期化されたかを示す単純な指示
を使用しているが、その場合、SFEはもう一方のuPCo
reを使用してこの同期化を行うことになる。他のアルゴ
リズムを使用すると、判断点704により同じuPCoreが
何回も選択される可能性がある。再同期化が完了する
と、状態はもう一度動作中に戻され、サイクルが再び始
まる。
【0043】推論エンジン(SFE) SFEは、従来の順不同処理を使用し、さらに、推論オ
ペランドおよび命令取出しを生成するためにスーパスカ
ラ技法と呼ばれる所与の機能または技法を使用する。こ
のような技法としては、レジスタのリネーム、命令のリ
オーダ、完了スコアボードなどを含む。SFEの実施態
様としては広範な実施態様が考えられる。最適設計の基
準は、現世代の順不同設計とは全く異なるようなサイク
ル時間および領域上の制約を含むことになる。図4は、
SFEと、システムの他の要素とのインタフェースの詳
細を示している。この単純化しすぎた図は、新規のレジ
スタ管理システムと汎用レジスタ・アレイおよび命令処
理パイプラインとの対話を強調するためのものである。
これは図1および図2と似ているが、重要な違いがあ
る。第1に、GPRとuPCoreとの間のインタフェース2
06の一部を形成する追加のインタフェース306が存
在する。このインタフェースは、uPCoreのGPRの更新
をSFEに伝達するために使用する。第2は、同期レジ
スタ割当てリスト(SRAL)の使用を含むように本発
明のRMS301が変更されていることである。第3
は、Liptay他の米国特許第4901233号に示すよう
に、メモリ階層へのストアが命令およびデータ・キャッ
シュではなく、ストア・バッファ205に送られること
である。SFE内のデータ・フローは、図4に示すLipt
ay他の米国特許第4901233号から図1および図2
に示すように通過し続け、ストア・バッファ205に到
達する。
ペランドおよび命令取出しを生成するためにスーパスカ
ラ技法と呼ばれる所与の機能または技法を使用する。こ
のような技法としては、レジスタのリネーム、命令のリ
オーダ、完了スコアボードなどを含む。SFEの実施態
様としては広範な実施態様が考えられる。最適設計の基
準は、現世代の順不同設計とは全く異なるようなサイク
ル時間および領域上の制約を含むことになる。図4は、
SFEと、システムの他の要素とのインタフェースの詳
細を示している。この単純化しすぎた図は、新規のレジ
スタ管理システムと汎用レジスタ・アレイおよび命令処
理パイプラインとの対話を強調するためのものである。
これは図1および図2と似ているが、重要な違いがあ
る。第1に、GPRとuPCoreとの間のインタフェース2
06の一部を形成する追加のインタフェース306が存
在する。このインタフェースは、uPCoreのGPRの更新
をSFEに伝達するために使用する。第2は、同期レジ
スタ割当てリスト(SRAL)の使用を含むように本発
明のRMS301が変更されていることである。第3
は、Liptay他の米国特許第4901233号に示すよう
に、メモリ階層へのストアが命令およびデータ・キャッ
シュではなく、ストア・バッファ205に送られること
である。SFE内のデータ・フローは、図4に示すLipt
ay他の米国特許第4901233号から図1および図2
に示すように通過し続け、ストア・バッファ205に到
達する。
【0044】インタフェース302、303、304、
305は、インタフェース209の一部を含み、同期ア
ドレス、除去インジケータ、再同期化指示、デコード済
み命令指示をそれぞれ伝達する。同期アドレスは、SF
EとuPCoreのアーキテクチャ状態との再同期化が行われ
た直後に命令取出しおよび実行のための開始点としてS
FEが使用する。SFE除去指示により、SFEはすべ
ての命令結果と部分結果を廃棄して、SFEのストア・
バッファの内容を除去する。再同期化指示は、SFEが
どのuPCoreとの同期を取るべきかならびに再同期化を行
う時期を決定するためにSFEが使用する。SFEは、
命令完了インタフェースを使用して、命令が正常にデコ
ードされたことをSUに示す。SUは、SFEが推論取
出し利益をもたらすかどうかを判定する際にこの情報を
使用する。SFEは、インタフェース307により命令
およびデータ・キャッシュと、インタフェース308に
よりストア・バッファとの両方に命令およびオペランド
取出し要求を送る。インタフェース307により送られ
た推論取出しは、機能停止後に実行を再開するときにuP
Coreが同じ取出し要求を行う前にSFEによって行われ
る。それにより、uPCoreは、このような取出し要求の待
ち時間の改善を経験することになる。というのは、所望
の線が最近アクセスされ、最も近いレベルのキャッシュ
にインストールされたからである。
305は、インタフェース209の一部を含み、同期ア
ドレス、除去インジケータ、再同期化指示、デコード済
み命令指示をそれぞれ伝達する。同期アドレスは、SF
EとuPCoreのアーキテクチャ状態との再同期化が行われ
た直後に命令取出しおよび実行のための開始点としてS
FEが使用する。SFE除去指示により、SFEはすべ
ての命令結果と部分結果を廃棄して、SFEのストア・
バッファの内容を除去する。再同期化指示は、SFEが
どのuPCoreとの同期を取るべきかならびに再同期化を行
う時期を決定するためにSFEが使用する。SFEは、
命令完了インタフェースを使用して、命令が正常にデコ
ードされたことをSUに示す。SUは、SFEが推論取
出し利益をもたらすかどうかを判定する際にこの情報を
使用する。SFEは、インタフェース307により命令
およびデータ・キャッシュと、インタフェース308に
よりストア・バッファとの両方に命令およびオペランド
取出し要求を送る。インタフェース307により送られ
た推論取出しは、機能停止後に実行を再開するときにuP
Coreが同じ取出し要求を行う前にSFEによって行われ
る。それにより、uPCoreは、このような取出し要求の待
ち時間の改善を経験することになる。というのは、所望
の線が最近アクセスされ、最も近いレベルのキャッシュ
にインストールされたからである。
【0045】SFEはuPCoreのアーキテクチャ状態とは
無関係なので、順不同命令処理の実施態様は多くのアー
キテクチャ上の懸念を免れる。このため、スケジュール
が改善され、全体的な設計のサイクル時間に及ぼす影響
が低減される。SFEに関連する実施上のリスクは、uP
Coreから完全に切り離すことができる。SFEは、大規
模かつ様々な命令セットの必要性を満たす必要があるuP
Coreにとって不可能なやり方で推論取出しを生成するた
めに最適化することができる。SFEは、たまに使用す
る命令、例外処理操作、または回復アルゴリズムを実現
する必要はない。このようなめったに起こらない事象の
場合、SFEは、命令ストリームの実行を停止し、これ
を同期ユニットに指示することになる。uPCoreは、結
局、機能停止状態から出るが、このめったに起こらない
事象が持続する場合は、適正順序設計のかなり単純な手
法によりそれを処理することになる。
無関係なので、順不同命令処理の実施態様は多くのアー
キテクチャ上の懸念を免れる。このため、スケジュール
が改善され、全体的な設計のサイクル時間に及ぼす影響
が低減される。SFEに関連する実施上のリスクは、uP
Coreから完全に切り離すことができる。SFEは、大規
模かつ様々な命令セットの必要性を満たす必要があるuP
Coreにとって不可能なやり方で推論取出しを生成するた
めに最適化することができる。SFEは、たまに使用す
る命令、例外処理操作、または回復アルゴリズムを実現
する必要はない。このようなめったに起こらない事象の
場合、SFEは、命令ストリームの実行を停止し、これ
を同期ユニットに指示することになる。uPCoreは、結
局、機能停止状態から出るが、このめったに起こらない
事象が持続する場合は、適正順序設計のかなり単純な手
法によりそれを処理することになる。
【0046】SFEの設計は、必ずしも無限CPIのた
めだけでなく、多数の命令を迅速にデコードし発行する
ために最適化しなければならない。SFEは、従来の設
計に比べ、無限L1キャッシュ・パフォーマンスに及ぼ
す影響について同じように考慮せずに、命令パイプライ
ンをより長くして設計することができる。システム全
体、すなわち、SFEとuPCoreの両方の無限L1キャッ
シュ・パフォーマンスは、SFEではなく、uPCoreのパ
イプラインのみに依存する。
めだけでなく、多数の命令を迅速にデコードし発行する
ために最適化しなければならない。SFEは、従来の設
計に比べ、無限L1キャッシュ・パフォーマンスに及ぼ
す影響について同じように考慮せずに、命令パイプライ
ンをより長くして設計することができる。システム全
体、すなわち、SFEとuPCoreの両方の無限L1キャッ
シュ・パフォーマンスは、SFEではなく、uPCoreのパ
イプラインのみに依存する。
【0047】本発明の設計では、uPCoreによってオペラ
ンド事前取出しを行う必要はなく、したがって、SFE
システムを使用すると、この機構およびそれに関連する
複雑さが必要に応じてuPCoreから除去される。場合によ
っては、オペランド事前取出しをuPCore内に保持する必
要があるが、これは本発明と一貫するものである。
ンド事前取出しを行う必要はなく、したがって、SFE
システムを使用すると、この機構およびそれに関連する
複雑さが必要に応じてuPCoreから除去される。場合によ
っては、オペランド事前取出しをuPCore内に保持する必
要があるが、これは本発明と一貫するものである。
【0048】RMSに対して行った革新的な変更の詳細
を図6に示すが、同図では好ましい実施例により、SF
EはSFEに関連する各uPCoreごとに同期レジスタ割当
てリスト(SRAL)を維持する。本発明のレジスタ管
理システムは、SRALを使用するための拡張を含み、
全体的なコンピュータ・アーキテクチャに依存せず、様
々な環境で実現することができる。したがって、本発明
の範囲を制限せずに、本発明による図4に示すSFE
は、IBMシステム390アーキテクチャによれば、1
6個の汎用レジスタ(GPR)を有するものとして記載
されている。GPRレジスタ・アレイ(RA)はRMS
とともに、アーキテクチャ・レジスタの諸機能を果たす
ために、特定のRA位置の特定のレジスタ割当ての動的
割当てを行う。特定のレジスタの機能が完了すると、R
A内のその位置は解放され、やがて同じかまたは他のG
PRとして再割当て可能になる。
を図6に示すが、同図では好ましい実施例により、SF
EはSFEに関連する各uPCoreごとに同期レジスタ割当
てリスト(SRAL)を維持する。本発明のレジスタ管
理システムは、SRALを使用するための拡張を含み、
全体的なコンピュータ・アーキテクチャに依存せず、様
々な環境で実現することができる。したがって、本発明
の範囲を制限せずに、本発明による図4に示すSFE
は、IBMシステム390アーキテクチャによれば、1
6個の汎用レジスタ(GPR)を有するものとして記載
されている。GPRレジスタ・アレイ(RA)はRMS
とともに、アーキテクチャ・レジスタの諸機能を果たす
ために、特定のRA位置の特定のレジスタ割当ての動的
割当てを行う。特定のレジスタの機能が完了すると、R
A内のその位置は解放され、やがて同じかまたは他のG
PRとして再割当て可能になる。
【0049】RAは、本発明のこの実施例のアーキテク
チャによって認識される16個のGPRの諸機能を果た
すために48個の動的割当て可能な実(物理)レジスタ
を含む。GPR割当てをRA割当てに変換するために命
令をデコードする場合、デコード・レジスタ割当てリス
ト(DRAL)を使用する。各命令をデコードすると、
その命令が参照するGPRをDRALで調べ、どのRA
位置がGPRに割り当てられているかを判定し、結果を
受け取るために新しいRA位置が割り当てられると、こ
のような割当てを反映するためにDRALが更新され
る。このため、GPRを使用する各命令は、そのGPR
を参照するために最新の命令に割り当てられているRA
位置を見つけるよう、DRALによって指示される。
チャによって認識される16個のGPRの諸機能を果た
すために48個の動的割当て可能な実(物理)レジスタ
を含む。GPR割当てをRA割当てに変換するために命
令をデコードする場合、デコード・レジスタ割当てリス
ト(DRAL)を使用する。各命令をデコードすると、
その命令が参照するGPRをDRALで調べ、どのRA
位置がGPRに割り当てられているかを判定し、結果を
受け取るために新しいRA位置が割り当てられると、こ
のような割当てを反映するためにDRALが更新され
る。このため、GPRを使用する各命令は、そのGPR
を参照するために最新の命令に割り当てられているRA
位置を見つけるよう、DRALによって指示される。
【0050】バックアップ・レジスタ割当てリストによ
り、待機せずに、1つ、2つ、または3つの条件付き分
岐をそれぞれ処理することができる。これは、DRAL
と同じ構造を有し、1サイクル中にDRALの内容全体
をBRALにコピーするかまたはその逆を行えるように
それに接続されている。このような転送は論理ユニット
505によって制御される。これは、たとえば、分岐を
行うかどうかの推測が間違っていると分かった場合にD
RALの内容を保管するために条件付き分岐を検出した
ときに使用する。
り、待機せずに、1つ、2つ、または3つの条件付き分
岐をそれぞれ処理することができる。これは、DRAL
と同じ構造を有し、1サイクル中にDRALの内容全体
をBRALにコピーするかまたはその逆を行えるように
それに接続されている。このような転送は論理ユニット
505によって制御される。これは、たとえば、分岐を
行うかどうかの推測が間違っていると分かった場合にD
RALの内容を保管するために条件付き分岐を検出した
ときに使用する。
【0051】アレイ制御リスト(ACL)は、RAおよ
びSFEの残りから状況情報を受け取って制御情報を送
るように接続されている。論理ユニット505は、AC
Lを制御し、ACL、DRAL、BRALの動作を調整
する。GPRをサポートするRAのそれぞれについて、
そのRAに関連する状況情報を記憶するACLレジスタ
が1つずつ存在する。また、アレイの各レジスタ位置ご
とに項目が1つずつ存在する。
びSFEの残りから状況情報を受け取って制御情報を送
るように接続されている。論理ユニット505は、AC
Lを制御し、ACL、DRAL、BRALの動作を調整
する。GPRをサポートするRAのそれぞれについて、
そのRAに関連する状況情報を記憶するACLレジスタ
が1つずつ存在する。また、アレイの各レジスタ位置ご
とに項目が1つずつ存在する。
【0052】レジスタ管理システムにSRALを追加す
ることは、SFEの機能にとって、したがって、本発明
にとってきわめて重要である。SRALは、DRALと
同じ構造を有し、1サイクル中にSRALの内容全体を
DRALにコピーできるようにそれに接続されている。
ることは、SFEの機能にとって、したがって、本発明
にとってきわめて重要である。SRALは、DRALと
同じ構造を有し、1サイクル中にSRALの内容全体を
DRALにコピーできるようにそれに接続されている。
【0053】SFEが関連付けられている各uPCoreごと
に、SRALが1つずつ用意されている。uPCoreがGP
RおよびCR更新を生成すると、その更新はインタフェ
ース206によりSFEに転送される。uPCoreに対する
サイクル時間の影響を最小限にするために、その結果は
1サイクル分、遅延することができる。GPR更新はR
Aに書き込まれ、ソースuPCoreに関連するSRALはR
A位置を指し示すように更新される。本実施例のuPCore
は通常、適正順序実行設計として機能するので、インタ
フェース206上のGPR更新はリタイヤした命令に関
するGPR更新を反映し、したがって、SRALが現在
示しているのと同じRAに必ず書き込むことができる。
uPCoreからの連続更新を収容できることを保証するため
に、再同期化動作中にSRALには16個の新しいRA
項目を用意しなければならない。本実施例では、これは
問題ではない。というのは、再同期化動作の前に必ず、
SRALに関連するもの以外のすべてのRA項目を解放
するSFE除去が行われるからである。SRAL内のS
FEコピーにおけるuPCoreのGPR状態は、必ず、最低
1サイクル遅延している。SFEがuPCoreとの同期を取
る必要がある場合、SRALの内容をDRALに移動す
るだけで、このタスクが達成される。この動作は、予測
ミス分岐の場合にマイクロプロセッサの状態を復元する
ためにLiptayでBRALを使用する方法に似ている。
に、SRALが1つずつ用意されている。uPCoreがGP
RおよびCR更新を生成すると、その更新はインタフェ
ース206によりSFEに転送される。uPCoreに対する
サイクル時間の影響を最小限にするために、その結果は
1サイクル分、遅延することができる。GPR更新はR
Aに書き込まれ、ソースuPCoreに関連するSRALはR
A位置を指し示すように更新される。本実施例のuPCore
は通常、適正順序実行設計として機能するので、インタ
フェース206上のGPR更新はリタイヤした命令に関
するGPR更新を反映し、したがって、SRALが現在
示しているのと同じRAに必ず書き込むことができる。
uPCoreからの連続更新を収容できることを保証するため
に、再同期化動作中にSRALには16個の新しいRA
項目を用意しなければならない。本実施例では、これは
問題ではない。というのは、再同期化動作の前に必ず、
SRALに関連するもの以外のすべてのRA項目を解放
するSFE除去が行われるからである。SRAL内のS
FEコピーにおけるuPCoreのGPR状態は、必ず、最低
1サイクル遅延している。SFEがuPCoreとの同期を取
る必要がある場合、SRALの内容をDRALに移動す
るだけで、このタスクが達成される。この動作は、予測
ミス分岐の場合にマイクロプロセッサの状態を復元する
ためにLiptayでBRALを使用する方法に似ている。
【0054】本発明のSRALの機能は、LiptayのBR
ALとは相当異なっている。第1に、SRALには、uP
Coreの場合のように他の命令処理パイプラインからのG
PR更新が書き込まれることである。
ALとは相当異なっている。第1に、SRALには、uP
Coreの場合のように他の命令処理パイプラインからのG
PR更新が書き込まれることである。
【0055】第2に、SRALの内容をDRALに移動
させるトリガが、LiptayでBRALの内容をDRALに
移動させるトリガとは非常に異なることである。Liptay
では、予測ミス分岐がトリガになる。本発明では、事前
取出し利益が一切ないという指示をトリガとして使用
し、したがって、米国特許第4901233号とその商
用実施例は本発明によるSRALの機能とは全く異なる
ことが分かるだろう。BRALはこの目的には使用でき
ないが、本発明では、Liptayによって導入されたものと
同じ機能、すなわち、分岐推測指示が間違っているとい
う判定後にプロセッサ状態を復元するために使用する。
第3の重要な違いは、SRALの内容をDRALに移動
したときに、SRAL内のすべての項目が16個の新し
いRA位置を指し示すように直ちに変更されることであ
る。Liptayでは、未解決の分岐をデコードする場合に、
BRALがDRALから直接ロードされる。
させるトリガが、LiptayでBRALの内容をDRALに
移動させるトリガとは非常に異なることである。Liptay
では、予測ミス分岐がトリガになる。本発明では、事前
取出し利益が一切ないという指示をトリガとして使用
し、したがって、米国特許第4901233号とその商
用実施例は本発明によるSRALの機能とは全く異なる
ことが分かるだろう。BRALはこの目的には使用でき
ないが、本発明では、Liptayによって導入されたものと
同じ機能、すなわち、分岐推測指示が間違っているとい
う判定後にプロセッサ状態を復元するために使用する。
第3の重要な違いは、SRALの内容をDRALに移動
したときに、SRAL内のすべての項目が16個の新し
いRA位置を指し示すように直ちに変更されることであ
る。Liptayでは、未解決の分岐をデコードする場合に、
BRALがDRALから直接ロードされる。
【0056】複数のSRALを使用すると、SFEは複
数のuPCoreとの同期を取ることができるようになる。2
つまたはそれ以上のuPCoreが同じSFEを使用して事前
取出し利益をもたらすことができるが、両方が同時にそ
のSFEを使用することはできない。それぞれの追加の
SRALは、同期化のために関連のuPCoreのGPR結果
バスならびに関連のストア・バッファを伴わなければな
らない。
数のuPCoreとの同期を取ることができるようになる。2
つまたはそれ以上のuPCoreが同じSFEを使用して事前
取出し利益をもたらすことができるが、両方が同時にそ
のSFEを使用することはできない。それぞれの追加の
SRALは、同期化のために関連のuPCoreのGPR結果
バスならびに関連のストア・バッファを伴わなければな
らない。
【0057】uPCore この好ましい実施例のuPCore設計は、従来のマイクロプ
ロセッサ(好ましいことにMotorolaおよびIBMから販
売されたPowerPC 601などの現行のスーパスカラ設計の
1つであるが、Intel 286などのさらに古い設計でもよ
い)である。コンピュータ設計の分野では、1つのシス
テムが複数の汎用実行ユニットを有することは既知のこ
とである。たとえば、汎用ユニットは、実行する機能の
タイプに沿って設計することができる。このuPCore内に
はこのような汎用実行ユニットが2つだけ示されている
が、汎用実行ユニットをいくつ使用してもその使用は本
発明と一貫するものである。本発明のuPCore部分は、図
7に示すものを除き、従来のマイクロプロセッサ設計に
対する特定の変更を必要としない。図7は、最新のリタ
イヤ済み命令のアドレスを604でどのようにラッチ
し、インタフェース604’によりSFEに誘導するか
を示している。汎用実行ユニット601および602か
らのGPR結果バスも603でラッチされ、そのインタ
フェイス603’によりSFEに誘導される。図7に示
すuPCoreは適正順序設計であるが、マイクロプロセッサ
として現在商業使用されているものなどの順不同設計要
素の使用も本発明の設計と一貫するものである。
ロセッサ(好ましいことにMotorolaおよびIBMから販
売された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は、状態マシンと、関連の入力レジスタ40
4、405、406とからなる。状態マシンの出力は、
除去機能およびレジスタ管理システムへの入力を制御す
るようなSFEへのインタフェース209からなる。R
MSへの線は、同期動作の場合にDRALへのSRAL
のロードを制御する。
対話を制御するために必要な論理機能のすべてを含んで
いる。SUは、状態マシンと、関連の入力レジスタ40
4、405、406とからなる。状態マシンの出力は、
除去機能およびレジスタ管理システムへの入力を制御す
るようなSFEへのインタフェース209からなる。R
MSへの線は、同期動作の場合にDRALへのSRAL
のロードを制御する。
【0059】同期ユニットは、SFEがシステム全体に
事前取出し利益をもたらすかどうかを判定するために使
用する論理機能を含んでいる。この実施例では、2つの
命令カウンタ408、407を使用して、この機能を提
供する。第1のカウンタ408は、uPCoreが命令をリタ
イヤするたびに増分される。第2のカウンタ407は、
SFEが命令をデコードするたびに増分する。両方のカ
ウンタは、再同期化動作中にゼロにリセットされる。再
同期化後、両方のカウンタの比較を使用して、SFEが
uPCoreに役立つような推論取出し参照を生成する機会を
有するかどうかを判定する。uPCoreの実行より十分先だ
ってSFEが命令をデコードしていない場合、利益を得
る可能性は全くない。2つのカウンタを比較すると、図
8の特定利益判断点708への入力として、利益を得る
可能性を示す不正確だが十分な指示が得られる。本実施
例では、この用途のために10というしきい値を使用す
る。SFEデコード・カウントがuPCoreリタイヤ・カウ
ントより少なくとも10大きくない場合、同期ユニット
はいかなる利益も示さないことになる。
事前取出し利益をもたらすかどうかを判定するために使
用する論理機能を含んでいる。この実施例では、2つの
命令カウンタ408、407を使用して、この機能を提
供する。第1のカウンタ408は、uPCoreが命令をリタ
イヤするたびに増分される。第2のカウンタ407は、
SFEが命令をデコードするたびに増分する。両方のカ
ウンタは、再同期化動作中にゼロにリセットされる。再
同期化後、両方のカウンタの比較を使用して、SFEが
uPCoreに役立つような推論取出し参照を生成する機会を
有するかどうかを判定する。uPCoreの実行より十分先だ
ってSFEが命令をデコードしていない場合、利益を得
る可能性は全くない。2つのカウンタを比較すると、図
8の特定利益判断点708への入力として、利益を得る
可能性を示す不正確だが十分な指示が得られる。本実施
例では、この用途のために10というしきい値を使用す
る。SFEデコード・カウントがuPCoreリタイヤ・カウ
ントより少なくとも10大きくない場合、同期ユニット
はいかなる利益も示さないことになる。
【0060】また、同期ユニットは、SFEが現在どの
uPCoreに関連付けられているかを示す指示も保持する。
各SFEは単一の同期ユニットを有するが、各SFEは
いくつのuPCoreにも関連付けることができる。本実施例
では、1つのSFEが2つのuPCoreに関連付けられてい
る。
uPCoreに関連付けられているかを示す指示も保持する。
各SFEは単一の同期ユニットを有するが、各SFEは
いくつのuPCoreにも関連付けることができる。本実施例
では、1つのSFEが2つのuPCoreに関連付けられてい
る。
【0061】CPとSEとの対話の代替拡張 CPとSEとの対話の拡張として可能なものが他にもあ
る。一例としては、SEとCPの両方によって共用され
る分岐予測テーブルをSEに更新させることを含むだろ
う。また、SEは、CPがパイプライン崩壊を回避でき
るような潜在的な命令例外または他の条件に関するヒン
トもCPに提供できるだろう。SFE取出し要求に応答
して取り出された命令およびオペランド・データは、uP
Coreに直接転送することができる。したがって、データ
は、推論要求が正確である場合、uPCoreの汎用実行ユニ
ットおよび命令デコード論理回路により近いものにな
る。このため、実施態様によっては、有限キャッシュの
不利益をさらに低減することができる。
る。一例としては、SEとCPの両方によって共用され
る分岐予測テーブルをSEに更新させることを含むだろ
う。また、SEは、CPがパイプライン崩壊を回避でき
るような潜在的な命令例外または他の条件に関するヒン
トもCPに提供できるだろう。SFE取出し要求に応答
して取り出された命令およびオペランド・データは、uP
Coreに直接転送することができる。したがって、データ
は、推論要求が正確である場合、uPCoreの汎用実行ユニ
ットおよび命令デコード論理回路により近いものにな
る。このため、実施態様によっては、有限キャッシュの
不利益をさらに低減することができる。
【0062】本発明の好ましい実施例について記載して
きたが、当業者であれば、現在ならびに将来、本出願人
の開発の範囲内に該当する様々な改良および強化を行う
ことができることが分かるだろう。
きたが、当業者であれば、現在ならびに将来、本出願人
の開発の範囲内に該当する様々な改良および強化を行う
ことができることが分かるだろう。
【0063】様々な改良を行う人は、順不同(または順
序)実行は無限L1キャッシュCPIの低減に比べ、有
限L1キャッシュCPIの低減の際により大きい利益を
もたらすことが本出願人のパフォーマンス分析によって
示されていることが分かるだろう。現行技術は、有限キ
ャッシュ効果が迅速に拡大し、それにより、有限L1C
PIの利益が無限L1 CPIの利益よりはるかに大き
くなることを示す傾向にある。
序)実行は無限L1キャッシュCPIの低減に比べ、有
限L1キャッシュCPIの低減の際により大きい利益を
もたらすことが本出願人のパフォーマンス分析によって
示されていることが分かるだろう。現行技術は、有限キ
ャッシュ効果が迅速に拡大し、それにより、有限L1C
PIの利益が無限L1 CPIの利益よりはるかに大き
くなることを示す傾向にある。
【0064】これまで詳述したように、コア・マイクロ
プロセッサをサポートする推論取出しエンジン(SF
E)を設けることと、一致アクションのアーキテクチャ
状態を維持しながら、SFEとマイクロプロセッサ・コ
ア(uPCore)の両方によって共用される記憶階層への推
論メモリ参照を可能にするようにコア・マイクロプロセ
ッサと協力して対話することにより、順不同実行を使用
する従来技術の設計の大幅な単純化を希望するか、また
は順不同実行を使用しない従来技術の設計に対する大幅
なパフォーマンスの改善を希望する人に利益をもたらす
だろう。理論的には、本発明は、システム・パフォーマ
ンスの向上を追求して順不同実行の使用に関連する設計
上の兼ね合いをさらに最適化できるようにするものであ
る。また、本発明では、最近の設計の一部で使用してい
るステージがますます深くなるのとは対照的に、メイン
・パイプラインに対して順不同実行の複雑さを大幅に増
加せずに、周波数が高く、複雑さが低く、無限L1キャ
ッシュCPIが低くなるようにマイクロプロセッサの設
計を最適化することができる。
プロセッサをサポートする推論取出しエンジン(SF
E)を設けることと、一致アクションのアーキテクチャ
状態を維持しながら、SFEとマイクロプロセッサ・コ
ア(uPCore)の両方によって共用される記憶階層への推
論メモリ参照を可能にするようにコア・マイクロプロセ
ッサと協力して対話することにより、順不同実行を使用
する従来技術の設計の大幅な単純化を希望するか、また
は順不同実行を使用しない従来技術の設計に対する大幅
なパフォーマンスの改善を希望する人に利益をもたらす
だろう。理論的には、本発明は、システム・パフォーマ
ンスの向上を追求して順不同実行の使用に関連する設計
上の兼ね合いをさらに最適化できるようにするものであ
る。また、本発明では、最近の設計の一部で使用してい
るステージがますます深くなるのとは対照的に、メイン
・パイプラインに対して順不同実行の複雑さを大幅に増
加せずに、周波数が高く、複雑さが低く、無限L1キャ
ッシュCPIが低くなるようにマイクロプロセッサの設
計を最適化することができる。
【0065】同時に、このコプロセッサは、マイクロプ
ロセッサとコプロセッサの両方に関する有限キャッシュ
効果の低減を追求して、かなりの程度まで順不同実行技
法を使用することができる。コプロセッサ内の順不同実
行の複雑さは、コプロセッサがアーキテクチャ化命令の
フルセットまたは命令実行に関連する例外および割込み
のフルセットをサポートする必要がないことによって軽
減される。上記の請求の範囲は、さらなる改良点を包含
し、最初に開示した本発明の適切な保護を維持するもの
と解釈しなければならない。
ロセッサとコプロセッサの両方に関する有限キャッシュ
効果の低減を追求して、かなりの程度まで順不同実行技
法を使用することができる。コプロセッサ内の順不同実
行の複雑さは、コプロセッサがアーキテクチャ化命令の
フルセットまたは命令実行に関連する例外および割込み
のフルセットをサポートする必要がないことによって軽
減される。上記の請求の範囲は、さらなる改良点を包含
し、最初に開示した本発明の適切な保護を維持するもの
と解釈しなければならない。
【0066】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0067】(1)第1および第2の処理要素を有する
コンピュータ・システム内で順次命令ストリームを処理
するための方法であって、前記処理要素のそれぞれがそ
れ自体の汎用レジスタおよび制御レジスタの設定によっ
て決定されるそれ自体の状態を有し、前記処理要素の第
1のものに前記順次命令ストリームの初期命令を向ける
ステップと、前記処理要素の第1のものを使用して前記
順次命令ストリームの処理を続行し、前記コンピュータ
・システムのアーキテクチャ状態の変化を前記第2の処
理要素に転送するステップと、前記第1の処理要素によ
る前記順次命令ストリームの処理中の任意の時点におい
て、同じ順次命令ストリームの連続処理を前記第2の処
理要素に引き継がせることが利益になる場合、転送され
た状態を前記第2の処理要素によって復元し、前記第2
の処理要素によって前記順次命令ストリームを処理する
ことにより、同じ順次命令ストリームの連続処理を引き
継ぐステップとを含み、次に前記第2の処理要素が、前
記第2の処理要素による前記順次命令ストリームの処理
中に、前記コンピュータ・システムのアーキテクチャ状
態の変化を前記第1の処理要素に転送し、それにより、
前記第1および第2の処理要素が、前記順次命令ストリ
ームの前記処理中に、全く同じ命令を実行している可能
性があるが、前記第1および第2の処理要素の状態の組
合せによって決定される前記コンピュータ・システムの
全体的なアーキテクチャ状態を変更することができるの
は、前記処理要素の一方だけになる方法。 (2)前記第1の処理要素が、マルチプロセッサとして
機能する複数の第1の処理要素を含む、上記(1)に記
載の方法。 (3)前記状態の組合せが前記第1の処理要素によって
決定される、上記(1)に記載の方法。 (4)前記第1および第2の処理要素の前記状態の組合
せが前記第1の処理要素によって決定され、1つまたは
複数の第1の処理要素と少なくとも1つの第2の処理要
素からなるセットがマルチプロセッサとして機能する、
上記(1)に記載の方法。 (5)前記第2の処理要素のそれぞれについて1つの同
期ユニットが設けられている、上記(4)に記載の方
法。 (6)前記第2の処理要素のそれぞれについて1つの同
期ユニットが設けられ、それが前記第1の処理要素によ
って処理されているものと同じ命令の処理を前記第2の
処理要素が開始する時期を決定する、上記(4)に記載
の方法。 (7)前記第2の処理要素のそれぞれについて1つの同
期ユニットが設けられ、それが前記第1の処理要素によ
って処理されている処理ストリームのうちの次の命令ま
たは同じ命令の処理を前記第2の処理要素が開始する時
期を決定する、上記(4)に記載の方法。 (8)前記第2の処理要素のそれぞれについて1つの同
期ユニットが設けられ、それが前記第1の処理要素によ
って処理されている処理ストリームのうちの次の命令ま
たは同じ命令の処理を前記第2の処理要素が開始する時
期を決定し、前記第2の処理要素による命令の処理を停
止または無視すべき時期を決定する、上記(4)に記載
の方法。 (9)前記第2の処理要素による命令の処理を停止また
は無視すべき時期の決定が、前記第1および第2の処理
要素から前記同期ユニットに供給される入力を使用し
て、前記コンピュータ・システム全体の計算済み利益判
定に基づいて行われる、上記(8)に記載の方法。 (10)前記同期ユニットに供給される前記入力が、前
記システム内で現在決定されるかまたは格納されている
情報を含む、上記(9)に記載の方法。 (11)前記同期ユニットの命令カウンタ内に格納され
ている、上記(10)に記載の方法。 (12)前記第1の処理要素による命令の処理中に機能
停止が発生した場合、前記同期ユニットが前記第1の処
理要素によって処理されているものと同じ命令の処理を
前記第2の処理要素が開始する時期を決定する、上記
(6)に記載の方法。 (13)前記第1の処理要素による命令の処理中に前記
第2の処理要素が処理するよう設計されていない操作が
ある場合、前記同期ユニットが前記第2の処理要素の状
態と前記アーキテクチャ状態との再同期化を行う時期を
決定する、上記(6)に記載の方法。 (14)前記命令ストリームの処理中に前記第2の処理
要素が前記コンピュータ・システムに対していかなる利
益ももたらさないと判定された場合、前記同期ユニット
が前記第2の処理要素の状態と前記アーキテクチャ状態
との再同期化を行う時期を決定する、上記(6)に記載
の方法。 (15)前記第1の処理要素による命令の処理中に機能
停止が発生した場合、前記同期ユニットが前記第1の処
理要素によって処理されているものと同じ命令の処理を
前記第2の処理要素が開始する時期ならびに前記第1の
処理要素のうちのどの処理要素とともに開始するかを決
定する、上記(6)に記載の方法。 (16)前記第1の処理要素による命令の処理中に前記
第2の処理要素が処理するよう設計されていない操作が
ある場合、前記同期ユニットが前記第2の処理要素の状
態と前記アーキテクチャ状態との再同期化を行う時期な
らびに前記第1の処理要素のうちのどの処理要素ととも
に行うかを決定する、上記(6)に記載の方法。 (17)前記命令ストリームの処理中に前記第2の処理
要素が前記コンピュータ・システムに対していかなる利
益ももたらさないと判定された場合、前記同期ユニット
が前記第2の処理要素の状態と前記アーキテクチャ状態
との再同期化を行う時期ならびに前記第1の処理要素の
うちのどの処理要素とともに行うかを決定する、上記
(6)に記載の方法。 (18)前記第2の処理要素の結果のストアがその個人
用汎用レジスタまたはストア・バッファに対して行われ
る、上記(6)に記載の方法。 (19)前記第2の処理要素に1つの同期ユニットが設
けられ、それが前記第1の処理要素によって処理されて
いる処理ストリームのうちの次の命令または同じ命令の
処理を前記第2の処理要素が開始する時期を決定し、前
記第2の処理要素による命令の処理を停止または無視す
べき時期を決定する、上記(1)に記載の方法。 (20)前記第2の処理要素が、前記順次命令ストリー
ムの命令の処理時に、前記第2の処理要素に結合された
その個人用汎用レジスタまたは個人用ストア・バッファ
に結果を格納し、前記第1の処理要素が、取出しのため
に前記第1および第2の処理要素の両方によって共用さ
れるデータおよび命令キャッシュからデータを取り出
す、上記(1)に記載の方法。 (21)前記第1の処理要素によって処理される命令ス
トリームの同じ命令のうちの一部を処理するために前記
第2の処理要素を使用する、上記(20)に記載の方
法。 (22)前記第2の処理要素が順不同プロセッサであ
る、上記(21)に記載の方法。 (23)機能停止後に前記第1および第2のプロセッサ
の再同期化を行い、再同期化中に前記第2の処理要素が
再同期化前に前記第1の処理要素用の命令ストリームの
前処理のすべての結果と部分結果を除去する、上記(1
5)に記載の方法。 (24)再同期化中に前記第2の処理要素が再同期化前
に前記第1の処理要素用の命令ストリームの前処理のす
べての結果と部分結果を除去する、上記(16)に記載
の方法。 (25)再同期化中に前記第2の処理要素が再同期化前
に前記第1の処理要素用の命令ストリームの前処理のす
べての結果と部分結果を除去する、上記(17)に記載
の方法。 (26)第1および第2の処理要素を有するコンピュー
タ・システム内で順次命令ストリームを処理するための
方法であって、前記処理要素のそれぞれがそれ自体の汎
用レジスタおよび制御レジスタの設定によって決定され
るそれ自体の状態を有し、前記処理要素の第1のものに
前記順次命令ストリームの初期命令を向けるステップ
と、前記処理要素の第1のものを使用して前記順次命令
ストリームの処理を続行し、前記第2の処理要素が要求
する前記コンピュータ・システムのアーキテクチャ状態
の変化を前記第2の処理要素に転送し、将来の時点で前
記第2の処理要素用のアーキテクチャ状況に使用するた
めに前記転送された変化を蓄積し、前記第1の処理要素
による前記順次命令ストリームの処理中の任意の時点に
おいて、同じ順次命令ストリームの連続処理を前記第2
の処理要素に引き継がせることが利益になる場合、前記
第2の処理要素によって前記第1の処理要素から前に転
送された前記蓄積アーキテクチャ状態を復元し、前記第
2の処理要素によって前記順次命令ストリームを処理す
ることにより、同じ順次命令ストリームの連続処理を引
き継ぐステップとを含み、次に前記第2の処理要素が、
前記順次命令ストリームの処理中に、将来の時点で使用
すべきアーキテクチャ状態に関する変化の蓄積と使用の
ために、前記第1の処理要素が要求する前記コンピュー
タ・システムのアーキテクチャ状態の変化を前記第1の
処理要素に転送し、それにより、前記第1および第2の
処理要素が、前記順次命令ストリームの前記処理中に、
全く同じ命令を実行している可能性があるが、前記第1
および第2の処理要素の状態の一部の組合せによって決
定される前記コンピュータ・システムの全体的なアーキ
テクチャ状態を変更することができるのは、前記処理要
素の一方だけになる方法。 (27)前記第2の処理要素による前記順次命令ストリ
ームの処理中の任意の時点において、同じ順次命令スト
リームの連続処理を前記第1の処理要素に引き継がせる
ことが利益になる場合、前記第1の処理要素によって前
記第2の処理要素から前に転送された前記蓄積アーキテ
クチャ状態を復元し、前記第1の処理要素によって前記
順次命令ストリームを処理することにより、同じ順次命
令ストリームの連続処理を引き継ぎ、前記第1の処理要
素がマルチプロセッサとして機能する複数の第1の処理
要素を含む、上記(26)に記載の方法。 (28)命令およびデータ用のキャッシュ記憶域を備え
た階層メモリを有するコンピュータ・システムであっ
て、パイプライン・ステージごとに定義された長さと定
義された遅延を有する少なくとも1つの命令パイプライ
ンによって命令を処理するための少なくとも1つの従来
の処理要素と、順不同処理から有限キャッシュ改良を導
出する命令シーケンスに関し、順不同命令を含む命令を
処理するための追加の推論エンジン処理要素とを含み、
前記追加の推論エンジン処理要素と前記従来の処理要素
が、命令ストリームを処理するために協力して動作する
ように結合され、前記従来の処理要素がそのパイプライ
ン・ハンドルによって一致アクションのアーキテクチャ
状態を維持し、前記推論エンジン処理要素が推論プロセ
スを処理し、その結果は前記コンピュータ・システムの
アーキテクチャ状態を変更する可能性はないが、前記従
来の処理要素によって検出された有限キャッシュの不利
益を改善する、コンピュータ・システム。 (29)前記推論処理要素が、中央処理領域内のm個の
レジスタであって、mは1つの命令の1つまたは複数の
2進フィールドによって識別される命令アドレス可能G
PRの所定の個数nより大きいレジスタと、順不同命令
実行のための備えであって、分岐方向推測に基づいて条
件付き分岐命令を処理するための備えとを含む、上記
(28)に記載のコンピュータ・システム。 (30)前記従来の処理要素が、前記従来の処理要素に
よって検出された記憶参照の順序を改善するために独立
して命令を事前取出しして実行するために前記追加の推
論エンジン処理要素を提供するコプロセッサに結合さ
れ、前記システムが、前記追加の推論エンジン処理要素
と前記従来の処理要素の両方に結合され、その両方によ
って共用される前記命令およびデータキャッシュを含む
前記記憶階層への推論メモリ参照の生成を可能にするレ
ジスタ管理プロセスを使用する、上記(28)に記載の
コンピュータ・システム。 (31)命令およびデータを取り出すために、前記従来
の順不同処理要素と、前記追加の推論エンジン処理要素
を提供する前記コプロセッサとの両方に結合された命令
およびデータ・キャッシュと、前記追加の推論エンジン
処理要素のストアおよび取出しコマンドに応答して命令
およびデータを双方向転送するための独立ストア・バッ
ファとをさらに含む、上記(30)に記載のコンピュー
タ・システム。 (32)前記従来の処理要素と前記追加の推論エンジン
処理要素との同期を取るために、前記従来の処理要素
と、前記追加の推論エンジン処理要素を提供する前記コ
プロセッサとの両方に結合された同期ユニットをさらに
含む、上記(31)に記載のコンピュータ・システム。 (33)前記追加の推論エンジン処理要素を提供するコ
プロセッサが、前記従来の順不同処理要素および前記命
令およびデータ・キャッシュのアーキテクチャ状態を変
更せずに、前記追加の推論エンジン処理要素上で実行さ
れる後続命令に使用可能なものにするために、命令およ
びデータ・キャッシュに送られず、むしろストア・バッ
ファに送られるストア参照を生成し、すべての追加の推
論エンジン処理要素ストアが前記独立ストア・バッファ
に対して行われる、上記(31)に記載のコンピュータ
・システム。 (34)前記キャッシュと前記ストア・バッファの両方
が所望のデータを持っていない場合に推論コプロセッサ
・キャッシュ・ミスが検出され、命令およびオペランド
は、前記ストア・バッファ内に関連項目がない場合には
第1のインタフェースにより前記追加の推論エンジン処
理要素に返され、前記ストア・バッファ内に関連項目が
ある場合には第2のインタフェースにより返される、上
記(33)に記載のコンピュータ・システム。 (35)GPRインタフェースにより前記従来の順不同
処理要素の更新を前記追加の推論エンジン処理要素に伝
達するために、前記従来の順不同処理要素の汎用アーキ
テクチャ・レジスタ間のGPRインタフェースをさらに
含む、上記(31)に記載のコンピュータ・システム。 (36)前記GPRインタフェースにより前記従来の処
理要素と追加の推論エンジン処理要素の前記パイプライ
ン・ステージの同期を取るために同期レジスタ割当てリ
ストを有するレジスタ管理システムをさらに含む、上記
(31)に記載のコンピュータ・システム。 (37)前記GPRインタフェースによる前記追加の推
論エンジン処理要素から前記メモリ階層へのストアが、
前記命令およびデータ・キャッシュではなく、そのスト
ア・バッファに送られる、上記(31)に記載のコンピ
ュータ・システム。 (38)前記GPRインタフェースによる前記追加の推
論エンジン処理要素から前記メモリ階層へのストアが、
前記命令およびデータ・キャッシュではなく、そのスト
ア・バッファに送られ、前記GPRインタフェースによ
り前記従来の順不同処理要素の更新を前記追加の推論エ
ンジン処理要素に伝達するために、前記従来の順不同処
理要素の汎用アーキテクチャ・レジスタ間のGPRイン
タフェースが設けられ、前記GPRインタフェースによ
り前記従来の処理要素と追加の推論エンジン処理要素の
前記パイプライン・ステージの同期を取るために同期レ
ジスタ割当てリストを有するレジスタ管理システムが設
けられている、上記(31)に記載のコンピュータ・シ
ステム。 (39)前記追加の推論エンジン処理要素が命令を処理
するためにパイプライン・ステージごとに定義された長
さと定義された遅延を有する1つまたは複数のパイプラ
インからなる命令パイプラインを有し、前記従来の処理
要素が前記推論エンジン処理要素より少ないパイプライ
ン・ステージを有するが、前記追加の推論エンジン処理
要素による順不同処理から有限キャッシュ改良を導出し
ない命令シーケンスの場合にパイプラインの各ステージ
ごとに等しい遅延が存在する、上記(28)に記載のコ
ンピュータ・システム。 (40)前記従来の処理要素が命令を処理するためにパ
イプライン・ステージごとに定義された長さと定義され
た遅延を有する1つまたは複数のパイプラインからなる
命令パイプラインを有し、前記従来の処理要素が前記推
論エンジン処理要素コプロセッサより少ないパイプライ
ン・ステージを有するが、前記追加の推論エンジン処理
要素による順不同処理から有限キャッシュ改良を導出し
ない命令シーケンスの場合にパイプラインの各ステージ
ごとに等しい遅延が存在する、上記(31)に記載のコ
ンピュータ・システム。 (41)命令およびデータ用のキャッシュ記憶域を備え
た階層メモリを有するマイクロプロセッサであって、パ
イプライン・ステージごとに定義された長さと定義され
た遅延を有する複数のパイプラインによって命令を処理
するための少なくとも1つの従来の処理要素と、順不同
処理から有限キャッシュ・サポートを導出する命令シー
ケンスに関し、順不同命令を含む命令を処理するための
追加の推論エンジン処理要素とを含み、前記追加の推論
エンジン処理要素と前記従来の処理要素が、命令ストリ
ームを処理するために協力して動作するように結合さ
れ、前記従来の処理要素がそのパイプライン・ハンドル
によって一致アクションのアーキテクチャ状態を維持
し、前記推論エンジン処理要素が推論プロセスを処理
し、その結果は前記コンピュータ・システムのアーキテ
クチャ状態を変更する可能性はないが、レジスタ管理お
よび前記複数のパイプラインの同期により前記従来の処
理要素によって検出された有限キャッシュの不利益を改
善する、マイクロプロセッサ。
コンピュータ・システム内で順次命令ストリームを処理
するための方法であって、前記処理要素のそれぞれがそ
れ自体の汎用レジスタおよび制御レジスタの設定によっ
て決定されるそれ自体の状態を有し、前記処理要素の第
1のものに前記順次命令ストリームの初期命令を向ける
ステップと、前記処理要素の第1のものを使用して前記
順次命令ストリームの処理を続行し、前記コンピュータ
・システムのアーキテクチャ状態の変化を前記第2の処
理要素に転送するステップと、前記第1の処理要素によ
る前記順次命令ストリームの処理中の任意の時点におい
て、同じ順次命令ストリームの連続処理を前記第2の処
理要素に引き継がせることが利益になる場合、転送され
た状態を前記第2の処理要素によって復元し、前記第2
の処理要素によって前記順次命令ストリームを処理する
ことにより、同じ順次命令ストリームの連続処理を引き
継ぐステップとを含み、次に前記第2の処理要素が、前
記第2の処理要素による前記順次命令ストリームの処理
中に、前記コンピュータ・システムのアーキテクチャ状
態の変化を前記第1の処理要素に転送し、それにより、
前記第1および第2の処理要素が、前記順次命令ストリ
ームの前記処理中に、全く同じ命令を実行している可能
性があるが、前記第1および第2の処理要素の状態の組
合せによって決定される前記コンピュータ・システムの
全体的なアーキテクチャ状態を変更することができるの
は、前記処理要素の一方だけになる方法。 (2)前記第1の処理要素が、マルチプロセッサとして
機能する複数の第1の処理要素を含む、上記(1)に記
載の方法。 (3)前記状態の組合せが前記第1の処理要素によって
決定される、上記(1)に記載の方法。 (4)前記第1および第2の処理要素の前記状態の組合
せが前記第1の処理要素によって決定され、1つまたは
複数の第1の処理要素と少なくとも1つの第2の処理要
素からなるセットがマルチプロセッサとして機能する、
上記(1)に記載の方法。 (5)前記第2の処理要素のそれぞれについて1つの同
期ユニットが設けられている、上記(4)に記載の方
法。 (6)前記第2の処理要素のそれぞれについて1つの同
期ユニットが設けられ、それが前記第1の処理要素によ
って処理されているものと同じ命令の処理を前記第2の
処理要素が開始する時期を決定する、上記(4)に記載
の方法。 (7)前記第2の処理要素のそれぞれについて1つの同
期ユニットが設けられ、それが前記第1の処理要素によ
って処理されている処理ストリームのうちの次の命令ま
たは同じ命令の処理を前記第2の処理要素が開始する時
期を決定する、上記(4)に記載の方法。 (8)前記第2の処理要素のそれぞれについて1つの同
期ユニットが設けられ、それが前記第1の処理要素によ
って処理されている処理ストリームのうちの次の命令ま
たは同じ命令の処理を前記第2の処理要素が開始する時
期を決定し、前記第2の処理要素による命令の処理を停
止または無視すべき時期を決定する、上記(4)に記載
の方法。 (9)前記第2の処理要素による命令の処理を停止また
は無視すべき時期の決定が、前記第1および第2の処理
要素から前記同期ユニットに供給される入力を使用し
て、前記コンピュータ・システム全体の計算済み利益判
定に基づいて行われる、上記(8)に記載の方法。 (10)前記同期ユニットに供給される前記入力が、前
記システム内で現在決定されるかまたは格納されている
情報を含む、上記(9)に記載の方法。 (11)前記同期ユニットの命令カウンタ内に格納され
ている、上記(10)に記載の方法。 (12)前記第1の処理要素による命令の処理中に機能
停止が発生した場合、前記同期ユニットが前記第1の処
理要素によって処理されているものと同じ命令の処理を
前記第2の処理要素が開始する時期を決定する、上記
(6)に記載の方法。 (13)前記第1の処理要素による命令の処理中に前記
第2の処理要素が処理するよう設計されていない操作が
ある場合、前記同期ユニットが前記第2の処理要素の状
態と前記アーキテクチャ状態との再同期化を行う時期を
決定する、上記(6)に記載の方法。 (14)前記命令ストリームの処理中に前記第2の処理
要素が前記コンピュータ・システムに対していかなる利
益ももたらさないと判定された場合、前記同期ユニット
が前記第2の処理要素の状態と前記アーキテクチャ状態
との再同期化を行う時期を決定する、上記(6)に記載
の方法。 (15)前記第1の処理要素による命令の処理中に機能
停止が発生した場合、前記同期ユニットが前記第1の処
理要素によって処理されているものと同じ命令の処理を
前記第2の処理要素が開始する時期ならびに前記第1の
処理要素のうちのどの処理要素とともに開始するかを決
定する、上記(6)に記載の方法。 (16)前記第1の処理要素による命令の処理中に前記
第2の処理要素が処理するよう設計されていない操作が
ある場合、前記同期ユニットが前記第2の処理要素の状
態と前記アーキテクチャ状態との再同期化を行う時期な
らびに前記第1の処理要素のうちのどの処理要素ととも
に行うかを決定する、上記(6)に記載の方法。 (17)前記命令ストリームの処理中に前記第2の処理
要素が前記コンピュータ・システムに対していかなる利
益ももたらさないと判定された場合、前記同期ユニット
が前記第2の処理要素の状態と前記アーキテクチャ状態
との再同期化を行う時期ならびに前記第1の処理要素の
うちのどの処理要素とともに行うかを決定する、上記
(6)に記載の方法。 (18)前記第2の処理要素の結果のストアがその個人
用汎用レジスタまたはストア・バッファに対して行われ
る、上記(6)に記載の方法。 (19)前記第2の処理要素に1つの同期ユニットが設
けられ、それが前記第1の処理要素によって処理されて
いる処理ストリームのうちの次の命令または同じ命令の
処理を前記第2の処理要素が開始する時期を決定し、前
記第2の処理要素による命令の処理を停止または無視す
べき時期を決定する、上記(1)に記載の方法。 (20)前記第2の処理要素が、前記順次命令ストリー
ムの命令の処理時に、前記第2の処理要素に結合された
その個人用汎用レジスタまたは個人用ストア・バッファ
に結果を格納し、前記第1の処理要素が、取出しのため
に前記第1および第2の処理要素の両方によって共用さ
れるデータおよび命令キャッシュからデータを取り出
す、上記(1)に記載の方法。 (21)前記第1の処理要素によって処理される命令ス
トリームの同じ命令のうちの一部を処理するために前記
第2の処理要素を使用する、上記(20)に記載の方
法。 (22)前記第2の処理要素が順不同プロセッサであ
る、上記(21)に記載の方法。 (23)機能停止後に前記第1および第2のプロセッサ
の再同期化を行い、再同期化中に前記第2の処理要素が
再同期化前に前記第1の処理要素用の命令ストリームの
前処理のすべての結果と部分結果を除去する、上記(1
5)に記載の方法。 (24)再同期化中に前記第2の処理要素が再同期化前
に前記第1の処理要素用の命令ストリームの前処理のす
べての結果と部分結果を除去する、上記(16)に記載
の方法。 (25)再同期化中に前記第2の処理要素が再同期化前
に前記第1の処理要素用の命令ストリームの前処理のす
べての結果と部分結果を除去する、上記(17)に記載
の方法。 (26)第1および第2の処理要素を有するコンピュー
タ・システム内で順次命令ストリームを処理するための
方法であって、前記処理要素のそれぞれがそれ自体の汎
用レジスタおよび制御レジスタの設定によって決定され
るそれ自体の状態を有し、前記処理要素の第1のものに
前記順次命令ストリームの初期命令を向けるステップ
と、前記処理要素の第1のものを使用して前記順次命令
ストリームの処理を続行し、前記第2の処理要素が要求
する前記コンピュータ・システムのアーキテクチャ状態
の変化を前記第2の処理要素に転送し、将来の時点で前
記第2の処理要素用のアーキテクチャ状況に使用するた
めに前記転送された変化を蓄積し、前記第1の処理要素
による前記順次命令ストリームの処理中の任意の時点に
おいて、同じ順次命令ストリームの連続処理を前記第2
の処理要素に引き継がせることが利益になる場合、前記
第2の処理要素によって前記第1の処理要素から前に転
送された前記蓄積アーキテクチャ状態を復元し、前記第
2の処理要素によって前記順次命令ストリームを処理す
ることにより、同じ順次命令ストリームの連続処理を引
き継ぐステップとを含み、次に前記第2の処理要素が、
前記順次命令ストリームの処理中に、将来の時点で使用
すべきアーキテクチャ状態に関する変化の蓄積と使用の
ために、前記第1の処理要素が要求する前記コンピュー
タ・システムのアーキテクチャ状態の変化を前記第1の
処理要素に転送し、それにより、前記第1および第2の
処理要素が、前記順次命令ストリームの前記処理中に、
全く同じ命令を実行している可能性があるが、前記第1
および第2の処理要素の状態の一部の組合せによって決
定される前記コンピュータ・システムの全体的なアーキ
テクチャ状態を変更することができるのは、前記処理要
素の一方だけになる方法。 (27)前記第2の処理要素による前記順次命令ストリ
ームの処理中の任意の時点において、同じ順次命令スト
リームの連続処理を前記第1の処理要素に引き継がせる
ことが利益になる場合、前記第1の処理要素によって前
記第2の処理要素から前に転送された前記蓄積アーキテ
クチャ状態を復元し、前記第1の処理要素によって前記
順次命令ストリームを処理することにより、同じ順次命
令ストリームの連続処理を引き継ぎ、前記第1の処理要
素がマルチプロセッサとして機能する複数の第1の処理
要素を含む、上記(26)に記載の方法。 (28)命令およびデータ用のキャッシュ記憶域を備え
た階層メモリを有するコンピュータ・システムであっ
て、パイプライン・ステージごとに定義された長さと定
義された遅延を有する少なくとも1つの命令パイプライ
ンによって命令を処理するための少なくとも1つの従来
の処理要素と、順不同処理から有限キャッシュ改良を導
出する命令シーケンスに関し、順不同命令を含む命令を
処理するための追加の推論エンジン処理要素とを含み、
前記追加の推論エンジン処理要素と前記従来の処理要素
が、命令ストリームを処理するために協力して動作する
ように結合され、前記従来の処理要素がそのパイプライ
ン・ハンドルによって一致アクションのアーキテクチャ
状態を維持し、前記推論エンジン処理要素が推論プロセ
スを処理し、その結果は前記コンピュータ・システムの
アーキテクチャ状態を変更する可能性はないが、前記従
来の処理要素によって検出された有限キャッシュの不利
益を改善する、コンピュータ・システム。 (29)前記推論処理要素が、中央処理領域内のm個の
レジスタであって、mは1つの命令の1つまたは複数の
2進フィールドによって識別される命令アドレス可能G
PRの所定の個数nより大きいレジスタと、順不同命令
実行のための備えであって、分岐方向推測に基づいて条
件付き分岐命令を処理するための備えとを含む、上記
(28)に記載のコンピュータ・システム。 (30)前記従来の処理要素が、前記従来の処理要素に
よって検出された記憶参照の順序を改善するために独立
して命令を事前取出しして実行するために前記追加の推
論エンジン処理要素を提供するコプロセッサに結合さ
れ、前記システムが、前記追加の推論エンジン処理要素
と前記従来の処理要素の両方に結合され、その両方によ
って共用される前記命令およびデータキャッシュを含む
前記記憶階層への推論メモリ参照の生成を可能にするレ
ジスタ管理プロセスを使用する、上記(28)に記載の
コンピュータ・システム。 (31)命令およびデータを取り出すために、前記従来
の順不同処理要素と、前記追加の推論エンジン処理要素
を提供する前記コプロセッサとの両方に結合された命令
およびデータ・キャッシュと、前記追加の推論エンジン
処理要素のストアおよび取出しコマンドに応答して命令
およびデータを双方向転送するための独立ストア・バッ
ファとをさらに含む、上記(30)に記載のコンピュー
タ・システム。 (32)前記従来の処理要素と前記追加の推論エンジン
処理要素との同期を取るために、前記従来の処理要素
と、前記追加の推論エンジン処理要素を提供する前記コ
プロセッサとの両方に結合された同期ユニットをさらに
含む、上記(31)に記載のコンピュータ・システム。 (33)前記追加の推論エンジン処理要素を提供するコ
プロセッサが、前記従来の順不同処理要素および前記命
令およびデータ・キャッシュのアーキテクチャ状態を変
更せずに、前記追加の推論エンジン処理要素上で実行さ
れる後続命令に使用可能なものにするために、命令およ
びデータ・キャッシュに送られず、むしろストア・バッ
ファに送られるストア参照を生成し、すべての追加の推
論エンジン処理要素ストアが前記独立ストア・バッファ
に対して行われる、上記(31)に記載のコンピュータ
・システム。 (34)前記キャッシュと前記ストア・バッファの両方
が所望のデータを持っていない場合に推論コプロセッサ
・キャッシュ・ミスが検出され、命令およびオペランド
は、前記ストア・バッファ内に関連項目がない場合には
第1のインタフェースにより前記追加の推論エンジン処
理要素に返され、前記ストア・バッファ内に関連項目が
ある場合には第2のインタフェースにより返される、上
記(33)に記載のコンピュータ・システム。 (35)GPRインタフェースにより前記従来の順不同
処理要素の更新を前記追加の推論エンジン処理要素に伝
達するために、前記従来の順不同処理要素の汎用アーキ
テクチャ・レジスタ間のGPRインタフェースをさらに
含む、上記(31)に記載のコンピュータ・システム。 (36)前記GPRインタフェースにより前記従来の処
理要素と追加の推論エンジン処理要素の前記パイプライ
ン・ステージの同期を取るために同期レジスタ割当てリ
ストを有するレジスタ管理システムをさらに含む、上記
(31)に記載のコンピュータ・システム。 (37)前記GPRインタフェースによる前記追加の推
論エンジン処理要素から前記メモリ階層へのストアが、
前記命令およびデータ・キャッシュではなく、そのスト
ア・バッファに送られる、上記(31)に記載のコンピ
ュータ・システム。 (38)前記GPRインタフェースによる前記追加の推
論エンジン処理要素から前記メモリ階層へのストアが、
前記命令およびデータ・キャッシュではなく、そのスト
ア・バッファに送られ、前記GPRインタフェースによ
り前記従来の順不同処理要素の更新を前記追加の推論エ
ンジン処理要素に伝達するために、前記従来の順不同処
理要素の汎用アーキテクチャ・レジスタ間のGPRイン
タフェースが設けられ、前記GPRインタフェースによ
り前記従来の処理要素と追加の推論エンジン処理要素の
前記パイプライン・ステージの同期を取るために同期レ
ジスタ割当てリストを有するレジスタ管理システムが設
けられている、上記(31)に記載のコンピュータ・シ
ステム。 (39)前記追加の推論エンジン処理要素が命令を処理
するためにパイプライン・ステージごとに定義された長
さと定義された遅延を有する1つまたは複数のパイプラ
インからなる命令パイプラインを有し、前記従来の処理
要素が前記推論エンジン処理要素より少ないパイプライ
ン・ステージを有するが、前記追加の推論エンジン処理
要素による順不同処理から有限キャッシュ改良を導出し
ない命令シーケンスの場合にパイプラインの各ステージ
ごとに等しい遅延が存在する、上記(28)に記載のコ
ンピュータ・システム。 (40)前記従来の処理要素が命令を処理するためにパ
イプライン・ステージごとに定義された長さと定義され
た遅延を有する1つまたは複数のパイプラインからなる
命令パイプラインを有し、前記従来の処理要素が前記推
論エンジン処理要素コプロセッサより少ないパイプライ
ン・ステージを有するが、前記追加の推論エンジン処理
要素による順不同処理から有限キャッシュ改良を導出し
ない命令シーケンスの場合にパイプラインの各ステージ
ごとに等しい遅延が存在する、上記(31)に記載のコ
ンピュータ・システム。 (41)命令およびデータ用のキャッシュ記憶域を備え
た階層メモリを有するマイクロプロセッサであって、パ
イプライン・ステージごとに定義された長さと定義され
た遅延を有する複数のパイプラインによって命令を処理
するための少なくとも1つの従来の処理要素と、順不同
処理から有限キャッシュ・サポートを導出する命令シー
ケンスに関し、順不同命令を含む命令を処理するための
追加の推論エンジン処理要素とを含み、前記追加の推論
エンジン処理要素と前記従来の処理要素が、命令ストリ
ームを処理するために協力して動作するように結合さ
れ、前記従来の処理要素がそのパイプライン・ハンドル
によって一致アクションのアーキテクチャ状態を維持
し、前記推論エンジン処理要素が推論プロセスを処理
し、その結果は前記コンピュータ・システムのアーキテ
クチャ状態を変更する可能性はないが、レジスタ管理お
よび前記複数のパイプラインの同期により前記従来の処
理要素によって検出された有限キャッシュの不利益を改
善する、マイクロプロセッサ。
【図1】本出願人のLiptayの米国特許第4901233
号が示すものと同じ記述内容を示す図であり、本出願人
の開発後に本出願人の従来のメインフレームや、Intel
のPentiumマイクロプロセッサ、Digital社のAlpha、Sun
Microsystem社のUltraSparcマイクロプロセッサなどの
マイクロプロセッサにおいて広く使用されてきた従来の
努力の限界を示す図である。
号が示すものと同じ記述内容を示す図であり、本出願人
の開発後に本出願人の従来のメインフレームや、Intel
のPentiumマイクロプロセッサ、Digital社のAlpha、Sun
Microsystem社のUltraSparcマイクロプロセッサなどの
マイクロプロセッサにおいて広く使用されてきた従来の
努力の限界を示す図である。
【図2】本出願人のLiptayの米国特許第4901233
号が示すものと同じ記述内容を示す図であり、本出願人
の開発後に本出願人の従来のメインフレームや、Intel
のPentiumマイクロプロセッサ、Digital社のAlpha、Sun
Microsystem社のUltraSparcマイクロプロセッサなどの
マイクロプロセッサにおいて広く使用されてきた従来の
努力の限界を示す図である。
号が示すものと同じ記述内容を示す図であり、本出願人
の開発後に本出願人の従来のメインフレームや、Intel
のPentiumマイクロプロセッサ、Digital社のAlpha、Sun
Microsystem社のUltraSparcマイクロプロセッサなどの
マイクロプロセッサにおいて広く使用されてきた従来の
努力の限界を示す図である。
【図3】好ましい実施例の概要を示す概略図である。
【図4】SFEの詳細と、SFEとストア・バッファ、
キャッシュ、uPCoreとのインタフェースを示す図であ
る。また、SFEとuPCoreによって共用されるキャッシ
ュによりSFEの命令およびオペランド取出しを経路指
定するための好ましいハードウェアも示す。
キャッシュ、uPCoreとのインタフェースを示す図であ
る。また、SFEとuPCoreによって共用されるキャッシ
ュによりSFEの命令およびオペランド取出しを経路指
定するための好ましいハードウェアも示す。
【図5】uPCoreとSFEとの間の同期ユニットをより詳
細に示す図である。
細に示す図である。
【図6】uPCoreとSFEとの同期に対応するためにLipt
ayのレジスタ・リネーム発明に対して行った改良をより
詳細に示す図である。
ayのレジスタ・リネーム発明に対して行った改良をより
詳細に示す図である。
【図7】uPCoreの好ましいハードウェアを示す図であ
る。
る。
【図8】パフォーマンスを改善するために使用する方法
Iを示すために、推論エンジンとマイクロプロセッサuP
Coreとの対話をデータ・フロー図としてより詳細に示す
図である。 (注: 例示の便宜上、図を各部に分離している可能性
があるが、複数の用紙を使用する場合、慣例として、図
の最上部を1枚目として配置し、後続の用紙は順に下方
および反対側に移行してその図を示すものとする。)
Iを示すために、推論エンジンとマイクロプロセッサuP
Coreとの対話をデータ・フロー図としてより詳細に示す
図である。 (注: 例示の便宜上、図を各部に分離している可能性
があるが、複数の用紙を使用する場合、慣例として、図
の最上部を1枚目として配置し、後続の用紙は順に下方
および反対側に移行してその図を示すものとする。)
200 マイクロプロセッサ・コア(uPCore) 200’ マイクロプロセッサ・コア(uPCore) 200” マイクロプロセッサ・コア(uPCore) 201 同期ユニット(SU) 201’ 同期ユニット(SU) 201” 同期ユニット(SU) 202 推論取出しエンジン(SFE) 202’ 推論取出しエンジン(SFE) 202” 推論取出しエンジン(SFE) 203 命令およびデータ・キャッシュ 203’ 命令およびデータ・キャッシュ 203” 命令およびデータ・キャッシュ 204 メイン・メモリ 205 ストア・バッファ 205’ ストア・バッファ 205” ストア・バッファ 206 インタフェース 207 インタフェース 208 インタフェース 209 インタフェース 210 インタフェース
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ウィリアム・トッド・ボイド アメリカ合衆国12603 ニューヨーク州ポ ーキープシー カーメン・ドライブ 37
Claims (37)
- 【請求項1】第1および第2の処理要素を有するコンピ
ュータ・システム内で順次命令ストリームを処理するた
めの方法であって、前記処理要素のそれぞれがそれ自体
の汎用レジスタおよび制御レジスタの設定によって決定
されるそれ自体の状態を有し、 前記処理要素の第1のものに前記順次命令ストリームの
初期命令を向けるステップと、 前記処理要素の第1のものを使用して前記順次命令スト
リームの処理を続行し、前記コンピュータ・システムの
アーキテクチャ状態の変化を前記第2の処理要素に転送
するステップと、 前記第1の処理要素による前記順次命令ストリームの処
理中の任意の時点において、同じ順次命令ストリームの
連続処理を前記第2の処理要素に引き継がせることが利
益になる場合、 転送された状態を前記第2の処理要素によって復元し、
前記第2の処理要素によって前記順次命令ストリームを
処理することにより、同じ順次命令ストリームの連続処
理を引き継ぐステップとを含み、 次に前記第2の処理要素が、前記第2の処理要素による
前記順次命令ストリームの処理中に、前記コンピュータ
・システムのアーキテクチャ状態の変化を前記第1の処
理要素に転送し、 それにより、前記第1および第2の処理要素が、前記順
次命令ストリームの前記処理中に、全く同じ命令を実行
している可能性があるが、前記第1および第2の処理要
素の状態の組合せによって決定される前記コンピュータ
・システムの全体的なアーキテクチャ状態を変更するこ
とができるのは、前記処理要素の一方だけになる方法。 - 【請求項2】前記第1の処理要素が、マルチプロセッサ
として機能する複数の第1の処理要素を含む、請求項1
に記載の方法。 - 【請求項3】前記状態の組合せが前記第1の処理要素に
よって決定される、請求項1に記載の方法。 - 【請求項4】前記第1および第2の処理要素の前記状態
の組合せが前記第1の処理要素によって決定され、1つ
または複数の第1の処理要素と少なくとも1つの第2の
処理要素からなるセットがマルチプロセッサとして機能
する、請求項1に記載の方法。 - 【請求項5】前記第2の処理要素のそれぞれについて1
つの同期ユニットが設けられている、請求項4に記載の
方法。 - 【請求項6】前記第2の処理要素のそれぞれについて1
つの同期ユニットが設けられ、それが前記第1の処理要
素によって処理されているものと同じ命令の処理を前記
第2の処理要素が開始する時期を決定する、請求項4に
記載の方法。 - 【請求項7】前記第2の処理要素のそれぞれについて1
つの同期ユニットが設けられ、それが前記第1の処理要
素によって処理されている処理ストリームのうちの次の
命令または同じ命令の処理を前記第2の処理要素が開始
する時期を決定する、請求項4に記載の方法。 - 【請求項8】前記第2の処理要素のそれぞれについて1
つの同期ユニットが設けられ、それが前記第1の処理要
素によって処理されている処理ストリームのうちの次の
命令または同じ命令の処理を前記第2の処理要素が開始
する時期を決定し、前記第2の処理要素による命令の処
理を停止または無視すべき時期を決定する、請求項4に
記載の方法。 - 【請求項9】前記第2の処理要素による命令の処理を停
止または無視すべき時期の決定が、前記第1および第2
の処理要素から前記同期ユニットに供給される入力を使
用して、前記コンピュータ・システム全体の計算済み利
益判定に基づいて行われる、請求項8に記載の方法。 - 【請求項10】前記第1の処理要素による命令の処理中
に機能停止が発生した場合、前記同期ユニットが前記第
1の処理要素によって処理されているものと同じ命令の
処理を前記第2の処理要素が開始する時期を決定する、
請求項6に記載の方法。 - 【請求項11】前記第1の処理要素による命令の処理中
に前記第2の処理要素が処理するよう設計されていない
操作がある場合、前記同期ユニットが前記第2の処理要
素の状態と前記アーキテクチャ状態との再同期化を行う
時期を決定する、請求項6に記載の方法。 - 【請求項12】前記命令ストリームの処理中に前記第2
の処理要素が前記コンピュータ・システムに対していか
なる利益ももたらさないと判定された場合、前記同期ユ
ニットが前記第2の処理要素の状態と前記アーキテクチ
ャ状態との再同期化を行う時期を決定する、請求項6に
記載の方法。 - 【請求項13】前記第1の処理要素による命令の処理中
に機能停止が発生した場合、前記同期ユニットが前記第
1の処理要素によって処理されているものと同じ命令の
処理を前記第2の処理要素が開始する時期ならびに前記
第1の処理要素のうちのどの処理要素とともに開始する
かを決定する、請求項6に記載の方法。 - 【請求項14】前記第1の処理要素による命令の処理中
に前記第2の処理要素が処理するよう設計されていない
操作がある場合、前記同期ユニットが前記第2の処理要
素の状態と前記アーキテクチャ状態との再同期化を行う
時期ならびに前記第1の処理要素のうちのどの処理要素
とともに行うかを決定する、請求項6に記載の方法。 - 【請求項15】前記命令ストリームの処理中に前記第2
の処理要素が前記コンピュータ・システムに対していか
なる利益ももたらさないと判定された場合、前記同期ユ
ニットが前記第2の処理要素の状態と前記アーキテクチ
ャ状態との再同期化を行う時期ならびに前記第1の処理
要素のうちのどの処理要素とともに行うかを決定する、
請求項6に記載の方法。 - 【請求項16】前記第2の処理要素に1つの同期ユニッ
トが設けられ、それが前記第1の処理要素によって処理
されている処理ストリームのうちの次の命令または同じ
命令の処理を前記第2の処理要素が開始する時期を決定
し、前記第2の処理要素による命令の処理を停止または
無視すべき時期を決定する、請求項1に記載の方法。 - 【請求項17】前記第2の処理要素が、前記順次命令ス
トリームの命令の処理時に、前記第2の処理要素に結合
されたその個人用汎用レジスタまたは個人用ストア・バ
ッファに結果を格納し、前記第1の処理要素が、取出し
のために前記第1および第2の処理要素の両方によって
共用されるデータおよび命令キャッシュからデータを取
り出す、請求項1に記載の方法。 - 【請求項18】前記第1の処理要素によって処理される
命令ストリームの同じ命令のうちの一部を処理するため
に前記第2の処理要素を使用する、請求項17に記載の
方法。 - 【請求項19】機能停止後に前記第1および第2のプロ
セッサの再同期化を行い、再同期化中に前記第2の処理
要素が再同期化前に前記第1の処理要素用の命令ストリ
ームの前処理のすべての結果と部分結果を除去する、請
求項13に記載の方法。 - 【請求項20】再同期化中に前記第2の処理要素が再同
期化前に前記第1の処理要素用の命令ストリームの前処
理のすべての結果と部分結果を除去する、請求項14に
記載の方法。 - 【請求項21】再同期化中に前記第2の処理要素が再同
期化前に前記第1の処理要素用の命令ストリームの前処
理のすべての結果と部分結果を除去する、請求項15に
記載の方法。 - 【請求項22】第1および第2の処理要素を有するコン
ピュータ・システム内で順次命令ストリームを処理する
ための方法であって、前記処理要素のそれぞれがそれ自
体の汎用レジスタおよび制御レジスタの設定によって決
定されるそれ自体の状態を有し、 前記処理要素の第1のものに前記順次命令ストリームの
初期命令を向けるステップと、 前記処理要素の第1のものを使用して前記順次命令スト
リームの処理を続行し、前記第2の処理要素が要求する
前記コンピュータ・システムのアーキテクチャ状態の変
化を前記第2の処理要素に転送し、将来の時点で前記第
2の処理要素用のアーキテクチャ状況に使用するために
前記転送された変化を蓄積し、前記第1の処理要素によ
る前記順次命令ストリームの処理中の任意の時点におい
て、同じ順次命令ストリームの連続処理を前記第2の処
理要素に引き継がせることが利益になる場合、 前記第2の処理要素によって前記第1の処理要素から前
に転送された前記蓄積アーキテクチャ状態を復元し、前
記第2の処理要素によって前記順次命令ストリームを処
理することにより、同じ順次命令ストリームの連続処理
を引き継ぐステップとを含み、 次に前記第2の処理要素が、前記順次命令ストリームの
処理中に、将来の時点で使用すべきアーキテクチャ状態
に関する変化の蓄積と使用のために、前記第1の処理要
素が要求する前記コンピュータ・システムのアーキテク
チャ状態の変化を前記第1の処理要素に転送し、 それにより、前記第1および第2の処理要素が、前記順
次命令ストリームの前記処理中に、全く同じ命令を実行
している可能性があるが、前記第1および第2の処理要
素の状態の一部の組合せによって決定される前記コンピ
ュータ・システムの全体的なアーキテクチャ状態を変更
することができるのは、前記処理要素の一方だけになる
方法。 - 【請求項23】前記第2の処理要素による前記順次命令
ストリームの処理中の任意の時点において、同じ順次命
令ストリームの連続処理を前記第1の処理要素に引き継
がせることが利益になる場合、前記第1の処理要素によ
って前記第2の処理要素から前に転送された前記蓄積ア
ーキテクチャ状態を復元し、前記第1の処理要素によっ
て前記順次命令ストリームを処理することにより、同じ
順次命令ストリームの連続処理を引き継ぎ、前記第1の
処理要素がマルチプロセッサとして機能する複数の第1
の処理要素を含む、請求項22に記載の方法。 - 【請求項24】命令およびデータ用のキャッシュ記憶域
を備えた階層メモリを有するコンピュータ・システムで
あって、 パイプライン・ステージごとに定義された長さと定義さ
れた遅延を有する少なくとも1つの命令パイプラインに
よって命令を処理するための少なくとも1つの従来の処
理要素と、 順不同処理から有限キャッシュ改良を導出する命令シー
ケンスに関し、順不同命令を含む命令を処理するための
追加の推論エンジン処理要素とを含み、 前記追加の推論エンジン処理要素と前記従来の処理要素
が、命令ストリームを処理するために協力して動作する
ように結合され、前記従来の処理要素がそのパイプライ
ン・ハンドルによって一致アクションのアーキテクチャ
状態を維持し、前記推論エンジン処理要素が推論プロセ
スを処理し、その結果は前記コンピュータ・システムの
アーキテクチャ状態を変更する可能性はないが、前記従
来の処理要素によって検出された有限キャッシュの不利
益を改善する、コンピュータ・システム。 - 【請求項25】前記推論処理要素が、 中央処理領域内のm個のレジスタであって、mは1つの
命令の1つまたは複数の2進フィールドによって識別さ
れる命令アドレス可能GPRの所定の個数nより大きい
レジスタと、 順不同命令実行のための備えであって、分岐方向推測に
基づいて条件付き分岐命令を処理するための備えとを含
む、請求項24に記載のコンピュータ・システム。 - 【請求項26】前記従来の処理要素が、 前記従来の処理要素によって検出された記憶参照の順序
を改善するために独立して命令を事前取出しして実行す
るために前記追加の推論エンジン処理要素を提供するコ
プロセッサに結合され、前記システムが、前記追加の推
論エンジン処理要素と前記従来の処理要素の両方に結合
され、その両方によって共用される前記命令およびデー
タキャッシュを含む前記記憶階層への推論メモリ参照の
生成を可能にするレジスタ管理プロセスを使用する、請
求項24に記載のコンピュータ・システム。 - 【請求項27】命令およびデータを取り出すために、前
記従来の順不同処理要素と、前記追加の推論エンジン処
理要素を提供する前記コプロセッサとの両方に結合され
た命令およびデータ・キャッシュと、前記追加の推論エ
ンジン処理要素のストアおよび取出しコマンドに応答し
て命令およびデータを双方向転送するための独立ストア
・バッファとをさらに含む、請求項26に記載のコンピ
ュータ・システム。 - 【請求項28】前記従来の処理要素と前記追加の推論エ
ンジン処理要素との同期を取るために、前記従来の処理
要素と、前記追加の推論エンジン処理要素を提供する前
記コプロセッサとの両方に結合された同期ユニットをさ
らに含む、請求項27に記載のコンピュータ・システ
ム。 - 【請求項29】前記追加の推論エンジン処理要素を提供
するコプロセッサが、前記従来の順不同処理要素および
前記命令およびデータ・キャッシュのアーキテクチャ状
態を変更せずに、前記追加の推論エンジン処理要素上で
実行される後続命令に使用可能なものにするために、命
令およびデータ・キャッシュに送られず、むしろストア
・バッファに送られるストア参照を生成し、すべての追
加の推論エンジン処理要素ストアが前記独立ストア・バ
ッファに対して行われる、請求項27に記載のコンピュ
ータ・システム。 - 【請求項30】前記キャッシュと前記ストア・バッファ
の両方が所望のデータを持っていない場合に推論コプロ
セッサ・キャッシュ・ミスが検出され、命令およびオペ
ランドは、前記ストア・バッファ内に関連項目がない場
合には第1のインタフェースにより前記追加の推論エン
ジン処理要素に返され、前記ストア・バッファ内に関連
項目がある場合には第2のインタフェースにより返され
る、請求項29に記載のコンピュータ・システム。 - 【請求項31】GPRインタフェースにより前記従来の
順不同処理要素の更新を前記追加の推論エンジン処理要
素に伝達するために、前記従来の順不同処理要素の汎用
アーキテクチャ・レジスタ間のGPRインタフェースを
さらに含む、請求項27に記載のコンピュータ・システ
ム。 - 【請求項32】前記GPRインタフェースにより前記従
来の処理要素と追加の推論エンジン処理要素の前記パイ
プライン・ステージの同期を取るために同期レジスタ割
当てリストを有するレジスタ管理システムをさらに含
む、請求項27に記載のコンピュータ・システム。 - 【請求項33】前記GPRインタフェースによる前記追
加の推論エンジン処理要素から前記メモリ階層へのスト
アが、前記命令およびデータ・キャッシュではなく、そ
のストア・バッファに送られる、請求項27に記載のコ
ンピュータ・システム。 - 【請求項34】前記GPRインタフェースによる前記追
加の推論エンジン処理要素から前記メモリ階層へのスト
アが、前記命令およびデータ・キャッシュではなく、そ
のストア・バッファに送られ、前記GPRインタフェー
スにより前記従来の順不同処理要素の更新を前記追加の
推論エンジン処理要素に伝達するために、前記従来の順
不同処理要素の汎用アーキテクチャ・レジスタ間のGP
Rインタフェースが設けられ、前記GPRインタフェー
スにより前記従来の処理要素と追加の推論エンジン処理
要素の前記パイプライン・ステージの同期を取るために
同期レジスタ割当てリストを有するレジスタ管理システ
ムが設けられている、請求項27に記載のコンピュータ
・システム。 - 【請求項35】前記追加の推論エンジン処理要素が命令
を処理するためにパイプライン・ステージごとに定義さ
れた長さと定義された遅延を有する1つまたは複数のパ
イプラインからなる命令パイプラインを有し、前記従来
の処理要素が前記推論エンジン処理要素より少ないパイ
プライン・ステージを有するが、前記追加の推論エンジ
ン処理要素による順不同処理から有限キャッシュ改良を
導出しない命令シーケンスの場合にパイプラインの各ス
テージごとに等しい遅延が存在する、請求項24に記載
のコンピュータ・システム。 - 【請求項36】前記従来の処理要素が命令を処理するた
めにパイプライン・ステージごとに定義された長さと定
義された遅延を有する1つまたは複数のパイプラインか
らなる命令パイプラインを有し、前記従来の処理要素が
前記推論エンジン処理要素コプロセッサより少ないパイ
プライン・ステージを有するが、前記追加の推論エンジ
ン処理要素による順不同処理から有限キャッシュ改良を
導出しない命令シーケンスの場合にパイプラインの各ス
テージごとに等しい遅延が存在する、請求項27に記載
のコンピュータ・システム。 - 【請求項37】命令およびデータ用のキャッシュ記憶域
を備えた階層メモリを有するマイクロプロセッサであっ
て、 パイプライン・ステージごとに定義された長さと定義さ
れた遅延を有する複数のパイプラインによって命令を処
理するための少なくとも1つの従来の処理要素と、 順不同処理から有限キャッシュ・サポートを導出する命
令シーケンスに関し、順不同命令を含む命令を処理する
ための追加の推論エンジン処理要素とを含み、 前記追加の推論エンジン処理要素と前記従来の処理要素
が、命令ストリームを処理するために協力して動作する
ように結合され、前記従来の処理要素がそのパイプライ
ン・ハンドルによって一致アクションのアーキテクチャ
状態を維持し、前記推論エンジン処理要素が推論プロセ
スを処理し、その結果は前記コンピュータ・システムの
アーキテクチャ状態を変更する可能性はないが、レジス
タ管理および前記複数のパイプラインの同期により前記
従来の処理要素によって検出された有限キャッシュの不
利益を改善する、マイクロプロセッサ。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US09/008792 | 1998-01-20 | ||
| US09/009,828 US6047367A (en) | 1998-01-20 | 1998-01-20 | Microprocessor with improved out of order support |
| US09/008,792 US6052771A (en) | 1998-01-20 | 1998-01-20 | Microprocessor with pipeline synchronization |
| US09/009828 | 1998-01-20 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000126367A Division JP3564041B2 (ja) | 1998-01-20 | 2000-04-26 | コンピュータ・システム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH11272482A true JPH11272482A (ja) | 1999-10-08 |
Family
ID=26678631
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP11005973A Pending JPH11272482A (ja) | 1998-01-20 | 1999-01-13 | 順次命令ストリ―ム処理方法、コンピュ―タ・システムおよびマイクロプロセッサ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH11272482A (ja) |
-
1999
- 1999-01-13 JP JP11005973A patent/JPH11272482A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6052771A (en) | Microprocessor with pipeline synchronization | |
| US6047367A (en) | Microprocessor with improved out of order support | |
| EP1236107B1 (en) | Method and apparatus for disabling a clock signal within a multithreaded processor | |
| JP3548132B2 (ja) | マルチスレッド・プロセッサ内でのパイプライン・ステージのフラッシュ方法および装置 | |
| US7698707B2 (en) | Scheduling compatible threads in a simultaneous multi-threading processor using cycle per instruction value occurred during identified time interval | |
| US5588113A (en) | Register file backup queue | |
| EP1238341B1 (en) | Method, apparatus, medium and program for entering and exiting multiple threads within a multithreaded processor | |
| EP1238332A1 (en) | Method and apparatus for processing an event occurrence within a multithreaded processor | |
| WO2005093563A2 (en) | Method and apparatus for dynamically adjusting the mode of an execute-ahead processor | |
| JP3871336B2 (ja) | 複数の未解決命令を追跡するための方法、完了テーブルおよびプロセッサ | |
| US6275903B1 (en) | Stack cache miss handling | |
| US20050273583A1 (en) | Method and apparatus for enforcing membar instruction semantics in an execute-ahead processor | |
| CN1116638C (zh) | 使用基本块高速缓存的微处理器、系统及指令执行方法 | |
| US7603543B2 (en) | Method, apparatus and program product for enhancing performance of an in-order processor with long stalls | |
| US20040133767A1 (en) | Performing hardware scout threading in a system that supports simultaneous multithreading | |
| EP1999575B1 (en) | Method and apparatus for simultaneous speculative threading | |
| US7293160B2 (en) | Mechanism for eliminating the restart penalty when reissuing deferred instructions | |
| US6473850B1 (en) | System and method for handling instructions occurring after an ISYNC instruction | |
| US6170050B1 (en) | Length decoder for variable length data | |
| JP2620505B2 (ja) | スーパースカラ・プロセッサ・システムの同期化効率を向上させる方法およびシステム | |
| JPH11272482A (ja) | 順次命令ストリ―ム処理方法、コンピュ―タ・システムおよびマイクロプロセッサ | |
| JP2000347859A (ja) | パイプライン同期によりシステム・パフォーマンスを改善コンピュータ・システム | |
| GB2365583A (en) | Pipeline decoupling buffer for handling early data and late data | |
| JP4423757B2 (ja) | 例外処理システム及び方法、並びに、プロセッサ | |
| MXPA99000024A (en) | Improvements for a microprocessor with synchronization in cascade or simula |