(57)【特許請求の範囲】
【請求項１】
複数のタスクを同時に実行できる複数の実行ユニットと、
複数のタスクについて独立に制御可能であって、複数組の第１のレジスタから命令を取り出し、取り出した命令を要求したタスクを識別するタスク・タグを取り出した命令に添付する、順次フェッチャと、
順次フェッチャからのタスク・タグをタスクごとに維持する、複数組の第２のレジスタと、
取り出した命令とそれに添付されたタスク・タグを、複数組の第２レジスタから実行のための複数の実行ユニットのうちの１つに送るディスパッチ・ユニットとを含み、
取り出した命令とそれに添付されたタスク・タグを、複数の実行ユニットへの割り当てとして複数組の第３のレジスタに維持することによって、何れかの実行ユニットで命令が実行中、異なる実行ユニットが異なるタスクからの命令を実行できる
並列マルチタスキング・プロセッサ。
【請求項２】
複数の実行ユニットが、第３のレジスタに維持されるタスク・タグをロードし記憶するロード／記憶ユニットを含むことを特徴とする請求項１に記載の並列マルチタスキング・プロセッサ。
【請求項３】
プロセッサ内でタスクが例外を発生したのに応答して、例外を発生したタスクを識別するタスク・タグが添付された命令だけの実行を停止し、例外を発生したタスクを識別するタスク・タグを維持する第３のレジスタ内に含まれるデータだけを現在の状態として保存することを特徴とする請求項１に記載の並列マルチタスキング・プロセッサ。
【請求項４】
タスクが誤予測された分岐を実行したのに応答して、誤予測された分岐を実行したタスクを識別するタスク・タグが添付された命令だけをフラッシュし、フラッシュされた命令によって解放された実行ユニットのうちの一つを他のタスクに割り当てることができるようにする、分岐処理ユニットをさらに含むことを特徴とする請求項１に記載の並列マルチタスキング・プロセッサ。
【請求項５】
請求項１〜４の何れかの請求項に記載の並列マルチタスキング・プロセッサ内で、
実行中のタスクからの要求に応答して、１つまたは複数の命令を受け取る段階と、
受け取った命令と、命令を要求したタスクを識別するタスク・タグを関連付ける段階と、
受け取った命令に関連するタスク・タグを、受け取った命令の実行によって得た結果データと関連付ける段階とを含むことを特徴とする、並列マルチタスキング・プロセッサにおける並列マルチタスキング方法。
【請求項６】
請求項１〜４の何れかの請求項に記載の並列マルチタスキング・プロセッサ内で、並列マルチタスキングを提供するシステムであって、
受け取った命令に関連するタスク・タグを、受け取った命令の実行によって得た結果データと関連付ける手段を含むことを特徴とする、並列マルチタスキング・プロセッサにおいて並列マルチタスキングを提供するシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に改良型ユニプロセッサに関し、詳細には、マルチタスク機能を備えた改良型ユニプロセッサに関する。さらに詳細には、本発明は、並列マルチタスキング処理を提供するユニプロセッサに関する。
【０００２】
【従来の技術】
コンピュータ内のマルチタスキングは、コンピュータが複数のタスクを同時に実行する、オペレーティング・システムによって提供される動作モードである。それぞれのタスクは、関連するプロセスを有し、したがって、いくつかのプロセスが、単一のプロセッサすなわちユニプロセッサによって実行されるが、所与の時間に１つのプロセスだけがプロセッサを制御する。マルチタスキングは、プロセス間でクロック・サイクルをタイム・スライス式に共用することによって達成され、それぞれのタスクには、そのプロセスを実行するためにマイクロプロセッサのクロック・サイクルの一部が与えられる。順序を維持するために、タスクは優先順位に従ってあるいは順次処理される。
【０００３】
ユニプロセッサ内のマルチタスキングは、効率が非常に悪いことがある。プロセッサが、複数のタスク間でマルチタスクを実行しているので、タスクが切り替えられるときに、各タスクごとにプロセッサの現在の状態がロードされ記憶されなければならない。このプロセッサの制御の切り換えは、貴重なプロセッサ・サイクルを消費する。また、もう１つの非効率な状況は、単一のタスクを（できる限り）並列に実行するため複数の実行ユニットを有するスーパースカラー・ユニプロセッサ・アーキテクチャにおいて、現行タスクのプログラム・フローに応じて、特定タスクの間にプロセッサ・リソースの大きなブロックが十分に利用されずあるいはまったく利用されていないときに生じる。さらに、ユニプロセッサにおけるもう１つの非効率な状況は、分岐が誤予測され、タスクのプログラム・ストリームがリセットされて正しい分岐の新しい命令ストリームが開始されたのに、プロセッサのリソースがアイドル状態のままであるときに生じる。これらの各状況では、ユニプロセッサは、別のタスクの実行に利用できる貴重なリソース及びクロック・サイクルを浪費する。
【０００４】
【発明が解決しようとする課題】
プロセッサ・リソース利用における前述の非効率さなしに並列マルチタスキングを実行できるユニプロセッサを提供することが必要なことは明らかである。
【０００５】
【課題を解決するための手段】
本発明によれば、並列マルチスク処理を実行するプロセッサが提供される。このプロセッサは、複数のタスクを同時に実行できる複数の実行ユニットと、所与のタスクのためにメモリから命令を取り出し、取り出した命令に、その取り出した命令を要求したタスクを識別するタスク・タグを添付する命令フェッチャと、各組のレジスタがそれぞれ、関連するタスクを有し、その関連するタスクを実行するために命令フェッチャと実行ユニットによって利用され、関連するタスクを識別するタスク・タグを維持する、複数組のレジスタと、取り出した命令とそれに添付されたタスク・タグを、実行のために複数の実行ユニットのうちの１つに送るディスパッチ・ユニットとを含む。タスクからの要求に応答して、要求された命令が命令フェッチャによってフェッチされ、取り出された命令にタスク・タグが添付される。命令が実行ユニット内で実行されているとき、実行ユニットは、１組のレジスタを利用して、実行命令に添付されたタスク・タグと同等なタスク・タグを維持する。次に、命令のタスク・タグが、命令の実行によって得られた結果データと関連付けられる。本発明の上記ならびにその他の目的、機能及び利点は、以下の詳細に述べた説明を読めば明らかになるであろう。
【０００６】
【発明の実施の形態】
次に、図面、特に図１を参照すると、本発明の好ましい実施形態による情報を処理するプロセッサ１０のブロック図が示されている。図の実施形態において、プロセッサ１０は、１プロセッサ・サイクルで多数の命令を実行することができる単一集積回路のスーパースカラー・マイクロプロセッサを含む。したがって、後で論じるように、プロセッサ１０は、様々な実行ユニット、レジスタ、バッファ、メモリ、その他の機能ユニットを含み、それらはすべて集積回路によって形成されている。
【０００７】
図１に示したように、プロセッサ１０は、プロセッサ１０内のバス・インターフェ−ス・ユニット（ＢＩＵ）１２を介してシステム・バス１１に結合される。ＢＩＵ１２は、プロセッサ１０と、メイン・メモリ（図示せず）などのシステム・バス１１に結合された他のデバイスとの間での情報の転送を制御する。プロセッサ１０、システム・バス１１、及びシステム・バス１１に結合されたその他のデバイスは全体としてホスト・データ処理システムを構成する。ＢＩＵ１２は、プロセッサ１０内の命令キャッシュ１４とデータ・キャッシュ１６に結合される。命令キャッシュ１４やデータ・キャッシュ１６などの高速キャッシュにより、プロセッサ１０が、以前にメイン・メモリから高速キャッシュに転送済みのデータまたは命令のサブセットに対して比較的高速にアクセスすることが可能になり、それにより、ホスト・データ処理システムの動作速度が改善される。さらに、命令キャッシュ１４は、実行のために命令キャッシュ１４から命令をフェッチする順次フェッチャ１７にも結合される。
【０００８】
順次フェッチャ１７は、実行のために分岐命令を分岐処理ユニット（ＢＰＵ）１８に転送し、順次命令を、プロセッサ１０内の他の実行回路によって実行される前に一時記憶のために命令待ち行列１９に転送する。ＢＰＵ１８は、コンピュータ・プログラム内の命令を実行する順序を変更する分岐命令を実行し、未解決の条件付き分岐の静的または動的分岐予測を行って、見込みのある命令をフェッチし実行できるようにする。予測した分岐より発行された命令は、分岐が解決されるまで実行が完了せず、順次実行のプログラミング・モデルが保存される。順次命令は、命令待ち行列１９からディスパッチ・ユニット２０に転送されてそれぞれ当該の実行ユニットにディスパッチされ、ディスパッチの速度は、実行ユニットのビジー状態、リネーム・バッファ及び完了バッファの使用可能度、及びいくつかの命令の直列化挙動による。ディスパッチ・ユニット２０は、並列にまたは順序外れでディスパッチされた命令に対してソース及び宛先レジスタ依存性の検査とリネーム処理を行う。完了ユニット４０は、ディスパッチから実行まで命令を追跡し、再試行するかまたはそれらの命令をプログラム順に「完了」する。命令が完了すると、プロセスは、その命令によって引き起こされるレジスタのアーキテクチャ変化に付される。順序通りに完了することによって、マイクロプロセッサが、誤予測された分岐または例外から回復しなければならないときに、正しいアーキテクチャ状態が保証される。
【０００９】
図の実施形態において、プロセッサ１０の実行回路は、ＢＰＵ１８の他にも、固定小数点ユニット（ＦＸＵ）２２、ロード／記憶ユニット（ＬＳＵ）２８、及び浮動小数点ユニット（ＦＰＵ）３０を含めて多数の実行ユニットを含む。これらの実行ユニットは、単一のプロセッサ・サイクルの間に複数の命令を同時に実行することができる。実行ユニット１８、２２、２８及び３０はそれぞれ、特定の命令クラスに含まれる１つまたは複数の命令を実行することができる。たとえば、ＦＸＵ２２は、指定された汎用レジスタ（ＧＰＲ）３２またはＧＰＲリネーム・バッファ３３から受け取ったソース・オペランドを使って、加算、減算、ＡＮＤ演算、ＯＲ演算、ＸＯＲ演算などの固定小数点算術演算を実行する。固定小数点命令を実行した後で、ＦＸＵ２２は、命令の結果データをＧＰＲリネーム・バッファ３３に出力し、ＧＰＲリネーム・バッファ３３は、結果データをＧＰＲリネーム・バッファ３３から１つまたは複数のＧＰＲ３２に転送することにより命令が完了するまで、結果データを一時的に記憶する。一方、ＦＰＵ３０は、浮動小数点レジスタ（ＦＰＲ）３６またはＦＰＲリネーム・バッファ３７から受け取ったソース・オペランドに対して、浮動小数点乗算や除算などの浮動小数点演算を実行する。ＦＰＵ３０は、浮動小数点命令の実行の結果得られたデータを、選択されたＦＰＲリネーム・バッファ３７に出力し、そのＦＰＲリネーム・バッファ３７は、その結果データをＦＰＲリネーム・バッファ３７から選択されたＦＰＲ３６に転送することにより命令が完了するまで、結果データを一時的に記憶する。ＬＳＵ２８は、浮動小数点命令または固定小数点命令を実行して、メモリ（たとえば、データ・キャッシュ１６やメイン・メモリ）からのデータを選択されたＧＰＲ３２またはＦＰＲ３６にロードするか、あるいはＧＰＲ３２、ＧＰＲリネーム・バッファ３３、ＦＰＲ３６、またはＦＰＲリネーム・バッファ３７のうちの選択した１つからのデータをメモリに記憶する。
【００１０】
プロセッサ１０は、スーパースカラー・アーキテクチャの性能をさらに改善するために、命令のパイプライン処理と順序外れの実行の両方を利用する。したがって、データ依存性があるかぎり、命令を、ＦＸＵ２２、ＬＳＵ２８及びＦＰＵ３０によって任意の順序で実行することができる。さらに、命令は、ＦＸＵ２２、ＬＳＵ２８及びＦＰＵ３０のそれぞれによって、一連のパイプライン段で処理される。通常の高性能プロセッサと同じように、それぞれの命令は、５つの別々のパイプライン段、すなわち、フェッチ段、デコード／ディスパッチ段、実行段、終了段、完了段で処理される。
【００１１】
フェッチ段の間、順次フェッチャ１７は、命令キャッシュ１４から、１つまたは複数のメモリ・アドレスに関連する１つまたは複数の命令を取り出す。命令キャッシュ１４からフェッチされた順次命令は、順次フェッチャ１７によって命令待ち行列１９内に記憶される。フェッチされた分岐命令は、命令ストリームから取り出され、実行のためにＢＰＵ１８に送られる。ＢＰＵ１８は、分岐が行われるかどうか予測することによってＢＰＵ１８が未解決の条件付き分岐命令を推論的に実行できるようにする、分岐履歴テーブルなどの分岐予測機構を含む。
【００１２】
デコード／ディスパッチ段の間、ディスパッチ・ユニット２０は、命令待ち行列１９からの１つまたは複数の命令をデコードして、実行ユニット２２、２８及び３０のうちの適切な１つにディスパッチする。また、デコード／ディスパッチ段の間、ディスパッチ・ユニット２０は、ＧＰＲリネーム・バッファ３３またはＦＰＲリネーム・バッファ３７のうちの一つのリネーム・バッファを、ディスパッチされた各命令の結果データ用に割り振る。本発明の好ましい実施形態によれば、プロセッサ１０は、命令をプログラム順にディスパッチし、固有の命令識別子を利用して、順序外れの実行の間にディスパッチされた命令のプログラム順序を追跡する。プロセッサ１０の実行パイプライン内の命令はそれぞれ、命令識別子の他にも、命令のＡオペランドとＢオペランドのソースを示すｒＡタグとｒＢタグ、及びＧＰＲリネーム・バッファ３３またはＦＰＲリネーム・バッファ３７内の、命令の結果データ用の宛先リネーム・バッファを示すｒＤタグを有する。
【００１３】
実行段の間、実行ユニット２２、２８及び３０は、指示された演算用のオペランドと実行リソースが使用可能なとき、ディスパッチ・ユニット２０から受け取った命令を便宣的に実行する。実行が終了した後、実行ユニット２２、２８及び３０は、命令のタイプに応じてＧＰＲリネーム・バッファ３３またはＦＰＲリネーム・バッファ３７に結果データを記憶する。次に、実行ユニット２２、２８及び３０は、命令の実行が終了したことを完了ユニット４０に通知する。最後に、結果データが、ＧＰＲリネーム・バッファ３３とＦＰＲリネーム・バッファ３７からＧＰＲ３２とＦＰＲ３６にそれぞれ転送されて、完了ユニット４０によって命令がプログラム順に完了される。
【００１４】
次に、図２を参照すると、本発明の好ましい実施形態による図１のプロセッサのデータ流れ図が示してある。マイクロプロセッサ１０は、それぞれタスク１、タスク２及びタスクｎと示した複数のプロセッサ４２〜４６の並列マルチタスキングを提供する。ここでは、３つのタスクを並列に実行するシステムについて説明するが、本発明は、任意の数のタスクを並列に実行するシステムにも同様に適用できることを理解されたい。それぞれのタスク４２〜４６は、順次フェッチャ１７内で、プログラム・カウンタ・レジスタ４８〜５２にそれぞれ含まれる関連する命令ポインタ（ＩＰ）を有する。所与のタスクの命令ポインタが増分されると、順次フェッチャ１７は、命令メモリ管理ユニット（ＩＭＭＵ）１３に命令要求を送ってその処理の次の命令を要求する。したがって、プログラム・カウンタ・レジスタが別々にあるため、順次フェッチャ１７は、複数のタスクのためにプログラム・ストリームのフェッチを独立に制御することができる。
【００１５】
ＩＭＭＵ１３は、要求時ページング式仮想メモリを支援し、オペレーティング・システムによって管理され、セグメント・レジスタ、ＢＡＴレジスタ、及びページ・テーブル・レジスタを含むＩＭＭＵレジスタをプログラムする。ＩＭＭＵはこれらのメモリ制御レジスタを利用して、命令要求のアドレス変換を行う。図２に示したように、ＩＭＭＵ１３は、プロセッサ内で実行中のタスクごとに完全な１組のメモリ制御レジスタを維持し、そのため、メモリ制御レジスタ５４、５６及び５８の各組が、それぞれタスク１、タスク２及びタスクｎ専用となる。各命令要求が順次フェッチャ１７に戻されるとき、命令をフェッチしたタスクを識別するタスクＩＤが命令に添付される。次に、タスクＩＤと命令が、順次フェッチャ１７から命令待ち行列１９に一緒にロードされる。（別法として、図２に示したように、関連するタスク・タグをＩＭＭＵからロードしたり、命令を命令キャッシュから直接ロードしたりすることもできる）。各タスクごとに維持される個々のプログラム・アドレス・レジスタ及び個々のメモリ制御レジスタによって、各タスクを命令待ち行列１９に別々にロードできることは理解されよう。
【００１６】
ディスパッチ・ユニット２０は、命令を、命令待ち行列１９から適切な実行ユニット２２、３０または２８にディスパッチする。図２に示したように、ディスパッチされた命令とそれに添付されたタスク・タグは、実行中、実行ユニット２２、２８及び３０によって保持される。レジスタ６０〜６４の各組は、特定のタスクに専用の１組のアーキテクチャ化レジスタである（レジスタ６０〜６４は、ＧＰＲ３２とＦＰＲ３６を含む）。図２に示したように、レジスタ６０（レジスタ１）がタスク１に割り当てられ、レジスタ６２（レジスタ２）がタスク２に割り当てられ、レジスタ６４（レジスタｎ）がタスクｎに割り当てられている。実行ユニット２２、３０及び２８内で命令が実行中なので、実行に必要な任意のオペランド・データが、適切な１組の汎用浮動小数点レジスタ６０〜６４から取り出される。実行ユニット２２、３０及び２８内で実行中の命令に関連するタスク・タグは、レジスタの組のうちの１組に関連するタスク・タグと一致する。
【００１７】
実行ユニット２２、３０内での命令の実行による結果データは、レジスタ・ファイル６６にロードされる（レジスタ・ファイル６６は、ＧＰＲリネーム・バッファ３３とＦＰＲリネーム・バッファ３７を含む）。また、その結果を生成したタスクを識別するタスク・タグもレジスタ・ファイルにロードされ、その結果と関連して維持される。たとえば、レジスタ・ファイル６６内には５つの結果が記憶される。一番上のリネーム・レジスタは、タスクｎ（ＩＤｎ）を示すタスク・タグを有するレジスタＡの第１の結果を示す。次の結果は、タスク１（ＩＤ１）用のレジスタＢの第１の結果を示す。次のリネーム・バッファは、添付されたタスク・タグＩＤ２によって示されるように、タスク２に属するレジスタＡの結果を保持する。次のリネーム・バッファのエントリは、タスク１（ＩＤ１）に属するレジスタＡ用のプログラム・フロー中の第２の値であり、最後のリネーム・レジスタは、タスク１用のレジスタＡの第１の結果を示す。タスク１のプログラム・フローは順序外れで実行されており、したがって、値Ａ１．０は、Ａ１．１を保持するリネーム・バッファよりも前にレジスタ６０のレジスタＡに専用化される。その後、完了ユニット４０が命令を完了し、命令の結果をアーキテクチャ化レジスタに専用化すると、その結果が、レジスタ・ファイルのタスク・タグによって識別されるタスクに関連する適切な１組のレジスタ６０〜６４にロードされる。レジスタ６０〜６４はそれぞれ、システム内で実行中の各タスクに固有の１組のレジスタを提供することを理解されたい。したがって、各タスクは、他のタスクの影響をうけないそれ自体のレジスタＡ、レジスタＢなどを有することになる。
【００１８】
命令を実行ユニット２２、３０にディスパッチする代わりに、ロード命令または記憶命令がＬＳＵ２８にディスパッチされた場合は、図２に示したように、その命令とそれに添付されたタスク・タグが共に、ディスパッチ・ユニット２０によってディスパッチされ、ＬＳＵ２８によって保持される。ＬＳＵ２８は、ロード要求または記憶要求を、要求時ページング式仮想メモリ装置であるデータ・メモリ管理ユニット（ＤＭＭＵ）１８に渡す。ＤＭＭＵ１８は、ロード及び記憶の有効アドレスをデータ・キャッシュ２１における物理アドレスに変換する。このアドレス変換を行うために、セグメント・レジスタ、ＢＡＴレジスタ、ページ・テーブル・レジスタなど独立した１組のメモリ制御レジスタが、プロセッサ内で実行中の各タスクごとに維持される。図２に示したように、独立した１組のメモリ制御レジスタ６８、７０及び７２は、それぞれタスク１、タスク２及びタスクｎ専用となる。
【００１９】
ＬＳＵ２８内で実行中の命令が記憶命令である場合、その命令のタスク・タグが適切なメモリ制御レジスタと突き合わされて、レジスタ６０〜６４内の適切なデータをアドレス指定する。命令がロード命令である場合、アドレスされたデータは、ＤＭＭＵ１８からのタスク・タグと共に、データ・キャッシュ２１からレジスタ・ファイル６６にロードされる。その後、ロードされたデータは、レジスタ・ファイル６６内の添付されたタスク・タグによって識別されるタスクに関連する１組のアーキテクチャ化レジスタ６０〜６４に専用化される。レジスタ・ファイル６６は、レジスタ・ファイル自体の中で各レジスタごとにタスク・タグを維持することができるが、レジスタ・ファイル内のタスクＩＤをロードするのではなく、リネーム・バッファに対応する別個のルックアップ・テーブル６７内にタスク・タグを維持することもできることを理解されたい。
【００２０】
タスク・プログラム内で分岐が誤予測されたときは、プログラム・ストリームがリセットされ、新しい命令ストリームが再開される。従来技術においては、命令ストリームがロードされ再開されても、実行ユニットはすべてアイドル状態に留まる。本発明においては、分岐処理ユニット１８が、誤予測したタスクのタスクＩＤを有する実行ユニット内の命令だけを削除または「フラッシュ」する。同じ実行ユニットまたは他の実行ユニット内で実行中の他のタスクはすべて、引き続き実行することができる。
【００２１】
同様に、オペレーティング・システムによる例外処理は、例外を発生したタスクに関連するリソースだけをロックし、例外を発生したタスクのタスク・タグと同等なタスク・タグを有するレジスタの現在の状態だけを保存することによって行われる。タスクが再開されるとき、そのタスクＩＤを有するレジスタだけが再開される。割り込みは、進行中のすべてのタスクの停止と、割り込みを発生した機能への切換えを要求することによって処理される。
【００２２】
本発明のマイクロプロセッサは、マイクロプロセッサ内で並列に実行中の各タスクごとに完全な１組のプログラムとメモリ制御レジスタを維持し、プログラム・フローの独立制御を可能にすることを理解されたい。プログラム・フロー及びマルチタスキング支援用のレジスタ・ファイルにタスク・タグ情報を追加することにより、実行リソースの利用とプログラムの一貫性が改善され、それにより、スーパースカラー・ユニプロセッサにおける並列マルチタスキングが大幅に改善される。複数のタスクが独立に制御されるため、スーパースカラー・プロセッサの異なる実行ユニットが、異なるタスクからの命令を実行できることを理解されたい。タスクは、同時にかつ実質上他のプロセスから独立して実行され、マイクロプロセッサにおける真の並列マルチタスキングが可能になる。単一のタスクが、特定のタイムスライス期間中にすべての実行ユニットを制御するタイムスライス式マルチタスキングを提供する従来の技術と異なり、本発明は、所与のタイムスライス期間中に複数のタスクに多数の実行ユニットへの同時アクセスを提供する。したがって、特定タスクの期間中に従来はフルに使用されずまたは全く使用されていなかったマイクロプロセッサの実行ユニット及び処理リソースが、タスクの同時実行によりさらに十分に利用されるので、本発明によって性能が向上する。また、本発明では、複数のタスクの切換えが不要なので、各タスクが切り換えられるときにプロセッサの現在の状態をロードし記憶することによって生じる非効率さがなくなる。
【００２３】
本発明を特定の実施形態に関して詳細に示し説明したが、本発明の趣旨及び範囲から逸脱せずに本発明の形態及び細部に様々な変更を行えることが当業者には理解されよう。たとえば、スーパースカラー・プロセッサを使用することでさらなる性能上の利点が得られるが、本発明を実施するために他のタイプのプロセッサも使用できることを理解されたい。また、マルチプロセッサ・システムの性能をさらに高めるために、マルチプロセッサ・システムの１つまたは複数のプロセッサにおいて本発明を実施できることが、当業者には理解されよう。
【００２４】
まとめとして、本発明の構成に関して以下の事項を開示する。
【図面の簡単な説明】
【図１】本発明の好ましい実施形態による情報を処理するプロセッサのブロック図である。
【図２】本発明の好ましい実施形態による図１のプロセッサのデータ流れ図である。
【符号の説明】
１０  プロセッサ
１２  バス・インターフェ−ス・ユニット（ＢＩＵ）
１４  命令キャッシュ
１６  データ・キャッシュ
１８  分岐処理ユニット（ＢＰＵ）
２０  ディスパッチ・ユニット
２２  固定小数点ユニット（ＦＸＵ）
２８  ロード／記憶ユニット（ＬＳＵ）
３０  浮動小数点ユニット（ＦＰＵ）
３２  汎用レジスタ（ＧＰＲ）
３３  ＧＰＲリネーム・バッファ
３６  浮動小数点レジスタ（ＦＰＲ）
３７  ＦＰＲリネーム・バッファ
４０  完了ユニット
４２  プロセッサ
４４  プロセッサ
４６  プロセッサ
４８  プログラム・カウンタ・レジスタ
５０  プログラム・カウンタ・レジスタ
５２  プログラム・カウンタ・レジスタ
５４  メモリ制御レジスタ
５６  メモリ制御レジスタ
５８  メモリ制御レジスタ
６０  浮動小数点レジスタ
６２  浮動小数点レジスタ
６４  浮動小数点レジスタ
６６  レジスタ・ファイル
【図１】
0003580657.tif 000002
【図２】
0003580657.tif 000003