(57)【要約】【課題】クラスタ化スーパスカラプロセッサにおけるレジスタ・キャッシュのミス率を低下させることにより、ミス・ペナルティを被る確率が低下し、性能が向上するクラスタ化スーパスカラプロセッサ及びクラスタ化スーパスカラプロセッサにおけるクラスタ間の通信制御方法を提供する。【解決手段】命令を命令ウィンドウに書き込む前に、該命令ウィンドウ中の先行命令に依存関係がないかをチェックし、依存関係がある場合には、その命令に対し、自身が割り当てられるクラスタにデータ通信するように要求を出す。要求された命令の実行結果は、命令の実行終了後に、指定されたクラスタのレジスタ・キャッシュに選択的に広域通信する。【選択図】      図２
2006072625.tif 000002
【特許請求の範囲】
【請求項１】
命令が格納される命令ウィンドウと、該命令ウィンドウから読み出された命令に従ってレジスタ値を出力するとともに命令の実行結果が格納される上位レジスタ・ファイルと、命令を実行する機能ユニットとを備える複数のクラスタと、
全ての前記機能ユニットの実行結果が格納される下位レジスタ・ファイルと、
前記各クラスタ間の通信に用いられるバイパス経路と、
前記バイパス経路を介して前記機能ユニットの実行結果を出力したクラスタから別のクラスタにデータ通信させる広域通信を行う制御ユニットと
を備えたクラスタ化スーパスカラプロセッサ。
【請求項２】
前記制御ユニットは、命令のデータ依存関係に基づいて前記実行結果を、当該実行結果を必要とするクラスタに対し選択的に広域通信させる請求項１に記載のクラスタ化スーパスカラプロセッサ。
【請求項３】
前記制御ユニットは、命令を前記命令ウィンドウに書き込む前に該命令ウィンドウ中の先行命令に依存関係がないかをチェックし、依存関係がある場合には前記先行命令が割り当てられたクラスタに選択的に広域通信を実施するように要求し、該クラスタは前記割り当てられた先行命令の実行後にその実行結果を選択的に広域通信する請求項２に記載のクラスタ化スーパスカラプロセッサ。
【請求項４】
前記制御ユニットは、命令が前記命令ウィンドウから発行されるときに、他の命令ウィンドウ中にその命令の実行結果を参照する後続命令がないかをチェックし、参照する後続命令がある場合には、その後続命令が割り当てられているクラスタに前記命令の実行結果を選択的に広域通信させる請求項２に記載のクラスタ化スーパスカラプロセッサ。
【請求項５】
前記制御ユニットは、前記実行結果に対する他のクラスタからの過去の参照回数に基づいて該実行結果を広域通信させる請求項１記載のクラスタ化スーパスカラプロセッサ。
【請求項６】
命令が格納される命令ウィンドウと、該命令ウィンドウから読み出された命令に従ってレジスタ値を出力するとともに命令の実行結果が格納される上位レジスタ・ファイルと、命令を実行する機能ユニットとを備える複数のクラスタと、全ての前記機能ユニットの実行結果が格納される下位レジスタ・ファイルと、
前記各クラスタ間の通信に用いられるバイパス経路と
を備えたクラスタ化スーパスカラプロセッサにおけるクラスタ間の通信制御方法において、
前記バイパス経路を介して前記機能ユニットの実行結果を出力したクラスタから別のクラスタにデータ通信させる広域通信を行うようにしたクラスタ化スーパスカラプロセッサにおけるクラスタ間の通信制御方法。
【請求項７】
命令のデータ依存関係に基づいて前記実行結果を、当該実行結果を必要とするクラスタに対し選択的に広域通信させる請求項６に記載のクラスタ化スーパスカラプロセッサにおけるクラスタ間の通信制御方法。
【請求項８】
命令を前記命令ウィンドウに書き込む前に該命令ウィンドウ中の先行命令に依存関係がないかをチェックし、依存関係がある場合には前記先行命令が割り当てられたクラスタに選択的に広域通信を実施するように要求し、該クラスタは前記割り当てられた先行命令の実行後にその実行結果を選択的に広域通信する請求項７に記載のクラスタ化スーパスカラプロセッサにおけるクラスタ間の通信制御方法。
【請求項９】
命令が前記命令ウィンドウから発行されるときに、他の命令ウィンドウ中にその命令の実行結果を参照する後続命令がないかをチェックし、参照する後続命令がある場合には、その後続命令が割り当てられているクラスタに前記命令の実行結果を選択的に広域通信させる請求項７に記載のクラスタ化スーパスカラプロセッサにおけるクラスタ間の通信制御方法。
【請求項１０】
前記実行結果に対する他のクラスタからの過去の参照回数に基づいて該実行結果を広域通信させる請求項６に記載のクラスタ化スーパスカラプロセッサにおけるクラスタ間の通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラスタ化スーパスカラプロセッサ及びクラスタ化スーパスカラプロセッサにおけるクラスタ間の通信制御方法に関する。
【背景技術】
【０００２】
従来、プロセッサの性能向上を目的とした命令の並列実行とそれに伴う問題点を解決するために、例えば、非特許文献１に記載されたクラスタ化スーパスカラプロセッサが知られている。なお、このスーパスカラプロセッサのクラスタ化技術は、命令の実行を行う機能ユニットや命令を一時格納しておく命令ウィンドウをクラスタと呼ばれる塊に分割する技術である。各クラスタは、機能ユニットと、命令ウィンドウと、演算の実行結果を記憶するレジスタ・ファイルとを備えている。全てのクラスタに含まれるレジスタ・ファイルには、全てのクラスタに含まれる機能ユニットにおける実行結果が書き込まれる。即ち、各クラスタに含まれるレジスタ・ファイルは、同一の内容を保持する。図１２に、クラスタ化スーパスカラプロセッサの構成を示す。
【０００３】
プロセッサ１００の命令処理に際しては、まず、メインメモリ（図示略）から命令キャッシュ１１０に命令が格納される。そして、この命令は、フェッチ・ユニット１２０によって読み出され、デコーダ１３０によってデコードされた後、ステアリング・ユニット１４０によって各命令におけるデータの依存関係が解析され、その依存関係に応じて命令が各クラスタ１５０、１６０の命令ウィンドウ１５１、１６１に割り当てられる。そして、該命令ウィンドウ１５１、１６１ではデータ依存関係を満たした命令が読み出され、命令の実行に使用されるデータはレジスタ・ファイル１５２、１６２から読み出され、機能ユニット１５３、１５４、１６３、１６４によって命令が実行される。そして、この命令の実行結果は、レジスタ・ファイル１５２、１６２に書き込まれる。命令の実行に際しては、必要に応じてメインメモリやデータ・キャッシュ１７０からデータが読み出される。
【０００４】
また、機能ユニット１５３、１５４、１６３、１６４によって実行された実行結果を直後の命令で使用する場合には、実行結果はレジスタ・ファイル１５２、１６２に書き込まれる前に後続命令に転送される。この転送経路を、以下、バイパス経路と呼ぶ。なお、このバイパス経路は、クラスタ内のバイパス経路を形成するクラスタ内バイパスＣＩＢとクラスタ間のバイパス経路を形成するクラスタ間バイパスＣＢＢとから構成される。
【０００５】
このように、スーパスカラプロセッサのクラスタ化を行うことで、クラスタ化していないスーパスカラプロセッサと比較して、各クラスタ内の機能ユニット数を減少させることができる。そして、機能ユニット数が減少することで、クラスタ内バイパス経路の配線長は短くなり、配線遅延は短縮される。
【０００６】
しかし、クラスタ化したプロセッサにおいても各クラスタで必要なレジスタ・ファイルの大きさはクラスタ化していないプロセッサと実質的に同じであるため、レジスタ・ファイルの配線は短縮されず、配線遅延は短縮されない。
【０００７】
このレジスタ・ファイルの遅延を削除する技術として、例えば、非特許文献２に記載された階層化レジスタ・ファイルがある。図１３は、この階層化レジスタ・ファイルを組み込んだプロセッサの構成を示す。階層化レジスタ・ファイルは、レジスタ・キャッシュＲＣ（上位レジスタ・ファイル）とメイン・レジスタ・ファイルＭＲＦ（下位レジスタ・ファイル）とから構成され、レジスタ・キャッシュＲＣはデータパス中に組み込まれている。レジスタ・キャッシュＲＣは容量がメイン・レジスタ・ファイルＭＲＦに比べて小さく、高速なアクセスが可能である。メイン・レジスタ・ファイルＭＲＦは機能ユニット２５１〜２５４の全ての演算結果を保持し、レジスタ・キャッシュＲＣはメイン・レジスタ・ファイルＭＲＦの一部の値を保持する。
【０００８】
ここで、命令に必要とする値がレジスタ・キャッシュＲＣに存在すれば、機能ユニット２５１、２５２、２５３、２５４はメイン・レジスタ・ファイルＭＲＦをアクセスする場合に比べて短いアクセス時間でレジスタ値を得ることができる。必要とする値がレジスタ・キャッシュＲＣに存在しなければ、レジスタ値は、メイン・レジスタ・ファイルＭＲＦからレジスタ・キャッシュＲＣにレジスタ値を読み込んだ後でなければ得ることができず、長いアクセス時間を要する。
【０００９】
なお、ここで前者のようにプロセッサから要求されたデータがレジスタ・キャッシュＲＣに存在する場合をヒットと呼び、レジスタ・キャッシュＲＣに存在しない場合をミスと呼ぶ。また、アクセスしたデータがレジスタ・キャッシュＲＣで見つかる割合をヒット率といい、アクセスしたデータがレジスタ・キャッシュＲＣで見つからない割合をミス率という。また、レジスタ・キャッシュＲＣのアクセスにかかる時間をヒット時間と呼ぶ。一方、メイン・レジスタ・ファイルＭＲＦをアクセスするのにかかる参照時間をミス・ペナルティと呼ぶ。
【００１０】
レジスタ・キャッシュＲＣは小さくて高速であるため、ヒット時間（例えば、１クロックサイクル）は階層化前のレジスタ・ファイルのアクセス時間よりも短くなる。
【非特許文献１】Ｓ．Ｐａｌａｃｈａｒｌａ，Ｎ．Ｐ．Ｊｏｕｐｐｉ，ａｎｄ  Ｊ．Ｅ．Ｓｍｉｔｈ，“Ｃｏｍｐｌｅｘｉｔｙ−Ｅｆｆｅｃｔｉｖｅ  Ｓｕｐｅｒｓｃａｌａｒ  Ｐｒｏｃｅｓｓｏｒｓ，”Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ２４ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ，ｐｐ．２０６−２１８，Ｊｕｎｅ  １９９７．
【非特許文献２】Ｊ．Ｌ．Ｃｒｕｚ，Ａ．Ｇｏｎｚａｌｅｚ，Ｍ．Ｖａｌｅｒｏ，ａｎｄ  Ｎ．Ｐ．Ｔｏｐｈａｎ，“Ｍｕｌｔｉｐｌｅ−Ｂａｎｋｅｄ  Ｒｅｇｉｓｔｅｒ  Ｆｉｌｅ  Ａｒｃｈｉｔｅｃｔｕｒｅｓ，”Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ２７ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ，ｐｐ．３１６−３２５，Ｊｕｎｅ  ２０００．
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ところで、レジスタ・ファイルのアクセス時間短縮のために、上述の階層化レジスタ・ファイルとクラスタ化スーパスカラプロセッサとを組み合わせることが考えられる。即ち、図１２に示すプロセッサ１００にメイン・レジスタ・ファイルＭＲＦを備えるとともに、各クラスタ１５０，１６０のレジスタ・ファイル１５２，１６２をレジスタ・キャッシュＲＣに変更する。しかしながら、単に上述の階層化レジスタ・ファイルを当該クラスタ化スーパスカラプロセッサに組み込むと、以下のような問題が生ずる。
【００１２】
従来の方法では、命令の実行結果は、すべてのクラスタのレジスタ・キャッシュＲＣに書き込まれる。ここで、レジスタ・キャッシュＲＣはメイン・レジスタ・ファイルＭＲＦの一部の値しか保持できないため、有効にレジスタ・キャッシュＲＣを利用するためには、この先に実行される命令が必要とするレジスタ値のみを保持することが望ましい。一般に、命令の実行結果は、ごく少数の演算にしか参照されないことが知られている。従って、クラスタ数分コピーされた実行結果の一部しか参照されないこととなり、他は無駄にレジスタ・キャッシュＲＣの記憶領域を消費することとなる。
【００１３】
これにより、レジスタ・キャッシュＲＣに記憶され参照される可能性のあった有用なレジスタ値が消去される可能性が高まる。これは、レジスタ・キャッシュＲＣのミス率を上昇させ、ミス・ペナルティにより性能を低下させることとなっていた。
【００１４】
本発明は、こうした実情に鑑みてなされたものであって、その目的は、レジスタ・キャッシュのミス率を低下させ、性能を向上させることができるクラスタ化スーパスカラプロセッサ及びクラスタ化スーパスカラプロセッサにおけるクラスタ間の通信制御方法を提供することにある。
【課題を解決するための手段】
【００１５】
上記課題を解決するため、請求項１に記載の発明は、命令が格納される命令ウィンドウと、該命令ウィンドウから読み出された命令に従ってレジスタ値を出力するとともに命令の実行結果が格納される上位レジスタ・ファイルと、命令を実行する機能ユニットとを備える複数のクラスタと、全ての前記機能ユニットの実行結果が格納される下位レジスタ・ファイルと、前記各クラスタ間の通信に用いられるバイパス経路と、前記バイパス経路を介して前記機能ユニットの実行結果を出力したクラスタから別のクラスタにデータ通信させる広域通信を行う制御ユニットとを備えたことをその要旨とする。ここで、広域通信とは、あるクラスタで出力された実行結果を別のクラスタの上位レジスタ・ファイルにデータ通信することをいう。
【００１６】
このような構成によれば、階層的（上位、下位）レジスタ・ファイルを備え、小さくて高速な上位レジスタ・ファイルを積極的に参照することで、レジスタ・ファイルのアクセス時間を短くすることができる。
【００１７】
また、制御ユニットは、あるクラスタで生成される値が、別のクラスタで使用される場合を見つけて、前記あるクラスタで生成される値（実行結果）を他のクラスタへ通信させることで、クラスタに備えられた上位レジスタ・ファイル（レジスタ・キャッシュ）には有効な値が保持される確率が高くなる。このことで広域通信させることでクラスタ化スーパスカラプロセッサにおけるレジスタ・キャッシュのミス率を低下させることにより、ミス・ペナルティを被る確率が低下し、性能が向上する。
【００１８】
また、請求項２に記載の発明は、前記制御ユニットは、命令のデータ依存関係に基づいて前記実行結果を、当該実行結果を必要とするクラスタに対し選択的に広域通信させることをその要旨とする。
【００１９】
このような構成によれば、制御ユニットは、命令ウィンドウ中の命令のデータ依存を解析してクラスタ間の広域通信を判断する。このように、データ依存を解析して選択的に広域通信を行うため、命令ウィンドウ中の命令のデータ依存に関しては、命令の実行結果をその実行結果を必要とする他のクラスタに送信することができる。
【００２０】
また、請求項３に記載の発明は、前記制御ユニットは、命令を前記命令ウィンドウに書き込む前に該命令ウィンドウ中の先行命令に依存関係がないかをチェックし、依存関係がある場合には前記先行命令が割り当てられたクラスタに選択的に広域通信を実施するように要求し、該クラスタは前記割り当てられた先行命令の実行後にその実行結果を選択的に広域通信することをその要旨とする。
【００２１】
このような構成によれば、制御ユニットは、今後、確実に結果を使用するクラスタの前記上位レジスタ・ファイルのみにデータ通信するため、不要な値が上位レジスタ・ファイルに格納されるといった事態を防ぎ、効率よく上位レジスタ・ファイルを使用することができる。
【００２２】
また、請求項４に記載の発明は、前記制御ユニットは、命令が前記命令ウィンドウから発行されるときに、他の命令ウィンドウ中にその命令の実行結果を参照する後続命令がないかをチェックし、参照する後続命令がある場合には、その後続命令が割り当てられているクラスタに前記命令の実行結果を選択的に広域通信させることをその要旨とする。
【００２３】
このような構成によっても、制御ユニットは、今後、確実に結果を使用するクラスタの前記上位レジスタ・ファイルのみにデータ通信するため、不要な値が上位レジスタ・ファイルに格納されるといった事態を防ぎ、効率よく上位レジスタ・ファイルを使用することができる。
【００２４】
また、請求項５に記載の発明は、前記制御ユニットは、前記実行結果に対する他のクラスタからの過去の参照回数に基づいて該実行結果を広域通信させることをその要旨とする。
【００２５】
このような構成によれば、制御ユニットは、過去の履歴に従って広域通信予測を行うため、時間的に（順序的に）離れた命令間のデータ依存に関してもクラスタ間の広域通信を行うことができる。
【００２６】
また、請求項６に記載の発明は、命令が格納される命令ウィンドウと、該命令ウィンドウから読み出された命令に従ってレジスタ値を出力するとともに命令の実行結果が格納される上位レジスタ・ファイルと、命令を実行する機能ユニットとを備える複数のクラスタと、全ての前記機能ユニットの実行結果が格納される下位レジスタ・ファイルと、前記各クラスタ間の通信に用いられるバイパス経路とを備えたクラスタ化スーパスカラプロセッサにおけるクラスタ間の通信制御方法において、前記バイパス経路を介して前記機能ユニットの実行結果を出力したクラスタから別のクラスタにデータ通信させる広域通信を行うようにしたクラスタ化スーパスカラプロセッサにおけるクラスタ間の通信制御方法。
【００２７】
このような方法によれば、あるクラスタで生成される値が、別のクラスタで使用される場合を見つけて、前記あるクラスタで生成される値を他のクラスタへ広域通信させることで、クラスタに備えられた上位レジスタ・ファイル（レジスタ・キャッシュ）には有効な値が保持される確率が高くなる。このことでクラスタ化スーパスカラプロセッサにおけるレジスタ・キャッシュのミス率を低下させることにより、ミス・ペナルティを被る確率が低下し、性能が向上する。
【００２８】
また、請求項７に記載の発明は、命令のデータ依存関係に基づいて前記実行結果を、当該実行結果を必要とするクラスタに対し選択的に広域通信させることをその要旨とする。
このような方法によれば、命令ウィンドウ中の命令のデータ依存を解析してクラスタ間の広域通信を判断する。このように、データ依存を解析して選択的に広域通信を行うため、命令ウィンドウ中の命令のデータ依存に関しては、命令の実行結果をその実行結果を必要とする他のクラスタに送信することができる。
【００２９】
また、請求項８に記載の発明は、命令を前記命令ウィンドウに書き込む前に該命令ウィンドウ中の先行命令に依存関係がないかをチェックし、依存関係がある場合には前記先行命令が割り当てられたクラスタに選択的に広域通信を実施するように要求し、該クラスタは前記割り当てられた先行命令の実行後にその実行結果を選択的に広域通信することをその要旨とする。
【００３０】
このような方法によれば、前記広域通信を好適に実現することができる。また、こうした通信制御方法を採用することで、今後、確実に結果を使用するクラスタの前記上位レジスタ・ファイルのみにデータ通信するため、不要な値が上位レジスタ・ファイルに格納されるといった事態を防ぎ、効率よく上位レジスタ・ファイルを使用することができる。
【００３１】
また、請求項９に記載の発明は、命令が前記命令ウィンドウから発行されるときに、他の命令ウィンドウ中にその命令の実行結果を参照する後続命令がないかをチェックし、参照する後続命令がある場合には、その後続命令が割り当てられているクラスタに前記命令の実行結果を選択的に広域通信させることをその要旨とする。
【００３２】
このような方法によっても、前記広域通信を好適に実現することができる。また、こうした通信制御方法を採用することで、今後、確実に結果を使用するクラスタの前記上位レジスタ・ファイルのみにデータ通信するため、不要な値が上位レジスタ・ファイルに格納されるといった事態を防ぎ、効率よく上位レジスタ・ファイルを使用することができる。
【００３３】
また、請求項１０に記載の発明は、前記実行結果に対する他のクラスタからの過去の参照回数に基づいて該実行結果を広域通信させることをその要旨とする。
このような方法によっても、前記広域通信を好適に実現することができる。また、こうした通信制御方法を採用することで、過去の履歴に従って広域通信予測を行うため、時間的に（順序的に）離れた命令間のデータ依存に関してもクラスタ間の広域通信を行うことができる。
【発明の効果】
【００３４】
本発明によれば、クラスタ化スーパスカラプロセッサにおけるレジスタ・キャッシュのミス率を低下させることにより、ミス・ペナルティを被る確率が低下し、性能が向上する。
【発明を実施するための最良の形態】
【００３５】
（第１の実施形態）
以下、本発明を具体化した第１の実施形態を図面に従って説明する。
はじめに、図１を参照して、このスーパスカラプロセッサの構成について説明する。図１は、本発明にかかるクラスタ化スーパスカラプロセッサの一例を示すブロック図である。
【００３６】
同図１に示すように、階層化レジスタ・ファイルを組み込んだクラスタ化スーパスカラプロセッサ１は、非特許文献１（図１２）では各クラスタに設けられていたレジスタ・ファイルの代わりに、各クラスタにレジスタ・キャッシュＲＣを設ける。そして、メイン・レジスタ・ファイルＭＲＦは全体に１つだけ置き、すべてのレジスタ値を保持する。そして、命令結果が出力されたときは、必ずメイン・レジスタ・ファイルＭＲＦに書き込むようにする。
【００３７】
なお、レジスタ・キャッシュＲＣには後述するように、様々な書き込みポリシーのもとに書き込むことになる。このレジスタ・キャッシュＲＣへの書き込みは、結果を出した命令の属するクラスタのレジスタ・キャッシュＲＣへの書き込みと、それとは異なるクラスタのレジスタ・キャッシュＲＣへの書き込みに分けることができる。
【００３８】
図１に示すように、プロセッサ１は階層化レジスタ・ファイルを組み込んだクラスタ化スーパスカラプロセッサであり、命令キャッシュ１０、フェッチ・ユニット２０、デコーダ３０、ステアリング・ユニット４０、複数（図１では２つ）のクラスタ５０、６０、メイン・レジスタ・ファイルＭＲＦ、データ・キャッシュ７０を備えている。クラスタ５０は命令ウィンドウ５１と、レジスタ・キャッシュＲＣと、機能ユニット５２、５３を備えている。同様に、クラスタ６０は命令ウィンドウ６１と、レジスタ・キャッシュＲＣと、機能ユニット６２、６３を備えている。
【００３９】
そして、プロセッサ１の命令処理に際しては、該プロセッサ１のメインメモリ（図示略）へのアクセスに基づいて、命令がメインメモリから命令キャッシュ１０に書き込まれる。そして、この命令は、フェッチ・ユニット２０によって読み出され（命令フェッチ）、デコーダ３０によってデコード（復号化）される。そしてこのデコードされた命令は、ステアリング・ユニット４０によって、命令間の依存関係（データ依存関係：ある実行結果を出力する先行命令と、その実行結果を用いる後続命令の関係）が解析され、その依存関係に応じてこの命令が各クラスタ５０、６０の命令ウィンドウ５１、６１に割り当てられる。
【００４０】
そして、該命令ウィンドウ５１、６１ではデータ依存関係を満たした命令が読み出され、この命令の実行に使用されるデータはレジスタ・キャッシュＲＣから読み出され、機能ユニット５２、５３、６２、６３によって命令が実行される。そして、この実行結果は、レジスタ・キャッシュＲＣとメイン・レジスタ・ファイルＭＲＦに書き込まれることとなる。
【００４１】
命令の実行に際しては、必要に応じてデータ・キャッシュ７０からデータが読み出され、演算が実行された後、その演算結果は、レジスタ・キャッシュＲＣとメイン・レジスタ・ファイルＭＲＦに書き込まれることとなる。また、機能ユニット５２、５３、６２、６３によって演算された実行結果を直後の演算で使用する場合には、実行結果はレジスタ・キャッシュＲＣに書き込まれる前にバイパス経路によって、後続命令に転送される。このバイパス経路は、クラスタ内のバイパス経路を形成するクラスタ内バイパスＣＩＢとクラスタ間のバイパス経路を形成するクラスタ間バイパスＣＢＢとから構成される。
【００４２】
ステアリング・ユニット４０は命令の依存関係を考慮して命令を各クラスタ５０、６０の命令ウィンドウ５１、６１に分配して登録する。この命令の依存関係を考慮した分配方法の例をあげる。
【００４３】
まず、ステアリング・ユニット４０にデスティネーション物理レジスタ番号（ｄｓｔ）でインデクスされた表を持つ。この表の内容は、そのｄｓｔに実行結果を出力する命令が登録されたクラスタ番号である。ステアリング・ユニット４０に送られた命令は、まず、命令の第１ソース・オペランド（ｓｒｃ１）で表を引き、表よりｓｒｃ１の値が出力されるクラスタの番号を得る。もし、そのクラスタの命令ウィンドウにその命令を登録できるならば、そのクラスタに登録を行う。そのクラスタへの登録が行えない場合は、第２ソース・オペランド（ｓｒｃ２）を用いて同様のことを行う。ｓｒｃ２を用いた場合でも登録するクラスタが決まらない場合は、命令ウィンドウの空いているクラスタに登録する。最後に、登録された命令のデスティネーション・オペランドに対応する表のエントリ（登録項目）に、その命令が登録されたクラスタ番号を書き込む。
【００４４】
なお、レジスタ・キャッシュＲＣの容量は小さいため、有効な値を保持しなければレジスタ・キャッシュミスが増加し、性能低下を引き起こす。従って、どの値をレジスタ・キャッシュＲＣに書き込むかが重要になる。
【００４５】
なお、ここで前記上位レジスタ・ファイルの最も単純な書き込みポリシーは、すべての結果をすべての上位レジスタ・ファイルに書き込むものである。ただし、この方法は不必要な値も書き込むために、必要な値を上位レジスタ・ファイルから失う確率が高くなり、レジスタ・キャッシュミスの増加によって性能が低下してしまう。そこで、結果の中から、あるクラスタで生成される値が、別のクラスタで使用される場合を見つけ、その値のみを広域通信する。
【００４６】
ここで、本実施形態の選択的広域通信では、命令ウィンドウ５１、６１は、現在の状況をみて、命令の結果が出る前に、その結果に依存している命令が別のクラスタに存在するかをチェックし、存在する場合は、そのクラスタのレジスタ・キャッシュＲＣに結果を広域通信する。この方法は、今後、確実に結果を使用するクラスタのレジスタ・キャッシュＲＣのみに広域通信するため、不要な値でレジスタ・キャッシュＲＣが汚染される（クラスタ内の機能ユニットに使用されないデータ、つまり不要なデータがレジスタ・キャッシュＲＣに書き込まれる）ことを防ぎ、効率よくレジスタ・キャッシュＲＣを使用することができる。以後、この方法を「ｏｎ−ｔｈｅ−ｆｌｙ（その場で）」と呼ぶこととする。本実施形態では、「ｏｎ−ｔｈｅ−ｆｌｙ」を実現するために、「ｒｅｑｕｅｓｔ＆ｗｒｉｔｅ（要求と書き込み）」という方法で選択的広域通信を行った。
【００４７】
次に、図２、図３を併せ参照して、「ｒｅｑｕｅｓｔ＆ｗｒｉｔｅ」について説明する。なお、図２（ａ）は、命令の登録方法示すハードウェア構造図、図２（ｂ）は、広域通信要求の登録方法を示すハードウェア構造図であり、図３は、「ｒｅｑｕｅｓｔ＆ｗｒｉｔｅ」の処理手順を説明するフローチャートである。
【００４８】
はじめに、「ｒｅｑｕｅｓｔ＆ｗｒｉｔｅ」の概要について説明する。この「ｒｅｑｕｅｓｔ＆ｗｒｉｔｅ」では、制御ユニットは、命令を命令ウィンドウ５１、６１に書き込む前に、該命令ウィンドウ５１、６１中の先行命令に依存関係がないかをチェックする（後述するステップＳ１０２）。そして、該命令が登録されるクラスタとは異なるクラスタに存在する先行命令に依存関係がある場合には、命令ウィンドウ中の先行命令を特定し（後述するステップＳ１０４）、その命令に対し、自身が割り当てられるクラスタに広域通信するように要求を出す（後述するステップＳ１０５）。この要求された命令の実行結果は、命令の実行終了後に、指示されたクラスタのレジスタ・キャッシュＲＣに広域通信される（後述するステップＳ１０６）。
【００４９】
「ｒｅｑｕｅｓｔ＆ｗｒｉｔｅ」では、「ｏｎ−ｔｈｅ−ｆｌｙ」を実現するため、まず、図２（ａ）の左図に示すように、デスティネーション物理レジスタ番号を索引とするクラスタ番号表を準備する。クラスタ番号表の各要素は、結果が出力されるクラスタ番号からなる。また、各クラスタの命令ウィンドウの各エントリ（登録項目）に広域通信先を示すフラグを追加する。これは、クラスタ番号表に対応するビットベクタ（ｎ個のビット列からなるデータ構造）である。さらに、広域通信先フラグの更新のため、命令ウィンドウ中のデスティネーション物理レジスタ番号のエントリをＣＡＭ（連想メモリ）にする。ここで、連想メモリとは、メモリに記憶されているデータの位置をアドレス（番地）で示すのではなく、内容で示す記憶方法である。この連想メモリは、入力されるデータと一致する値を持つエントリを探し出す。以下、これを連想検索と呼ぶ。
【００５０】
ここで、クラスタ番号表と広域通信先フラグとを用いて「ｏｎ−ｔｈｅ−ｆｌｙ」により選択的広域通信する手順を図２、図３に示す。
まず、図２（ａ）に示すように、命令を命令ウィンドウに登録するとき、その命令のデスティネーション物理レジスタ番号（ｄｓｔ）に対応するクラスタ番号表のエントリに命令が登録されるクラスタ番号を書き、命令ウィンドウの広域通信先フラグをすべて０とする（前処理：ステップＳ１０１）。
【００５１】
同時に、図２（ｂ）に示すように、ソース物理レジスタ番号（ｓｒｃ）でクラスタ番号表を参照し、読み出されたクラスタ番号（ソース側）と当該命令が登録されるクラスタ番号（デスティネーション側）とが等しいかどうかを比較器Ｃによって、比較する（ステップＳ１０２）。
【００５２】
ここで、クラスタ番号が同じであれば（ステップＳ１０２が「ＹＥＳ」）、命令ウィンドウは、依存関係にある先行命令が同じクラスタの命令ウィンドウ中に存在すると判断して、広域通信は行わない（ステップＳ１０３）。
【００５３】
一方、もしクラスタ番号が一致しなければ（ステップＳ１０２が「ＮＯ」）、命令ウィンドウ中の先行命令を探すために、ソース物理レジスタ番号で命令ウィンドウを連想検索する（ステップＳ１０４）。そして、命令ウィンドウは、依存関係にある先行命令が他のクラスタの命令ウィンドウ中に存在すると判断して、先行命令の広域通信フラグのうち、当該命令のクラスタに対応するフラグ（Ｆｌａｇ）を立てる（ステップＳ１０５）。そして、命令ウィンドウから命令が発行される時に命令ウィンドウ中の広域通信先フラグを参照し、フラグの立っているクラスタへ結果を広域通信する（ステップＳ１０６）。
【００５４】
以上説明した第１の実施形態によれば、以下のような効果を得ることができる。
（１）クラスタで生成される値が、別のクラスタで使用される場合を見つけて、あるクラスタで生成される値を他のクラスタへ選択的に広域通信するようにした。このように広域通信することでクラスタに備えられたレジスタ・キャッシュＲＣには有効な値が保持される確率が高くなる。このことでクラスタ化スーパスカラプロセッサにおけるレジスタ・キャッシュＲＣのミス率を低下させることにより、ミス・ペナルティを被る確率が低下し、性能が向上する。
【００５５】
（２）命令ウィンドウ５１、６１中の命令のデータ依存を解析して広域通信を判断した。このように、データ依存を解析して選択的に広域通信を行うため、命令ウィンドウ５１、６１中の命令のデータ依存に関しては、命令の実行結果を、その実行結果を必要とする他のクラスタに送信することができる。
【００５６】
（３）今後、確実に結果を使用するクラスタのレジスタ・キャッシュＲＣのみに広域通信するため、不要な値によってレジスタ・キャッシュＲＣが汚染されるといった事態を防ぎ、効率よくレジスタ・キャッシュＲＣを使用することができる。
【００５７】
なお、本発明の実施形態は、以下のように変更してもよい。
・上記実施形態では、クラスタ数は２つであるとしたが、このクラスタ数は３つ以上であってもよい。このようにクラスタ数が複数であっても、依存関係のある先行命令が他のクラスタの命令ウィンドウ中にあると判断したときは、そのクラスタに対して選択的に広域通信を行うことで、レジスタ・キャッシュＲＣのミス率を減らし、性能を向上させることができる。
【００５８】
・上記実施の形態では、プロセッサの構成を例示したが、上述した構成に限定されるものではない。要は、
（ａ）命令が格納される命令ウィンドウと、該命令ウィンドウから読み出された命令に従ってレジスタ値を出力するとともに命令の実行結果が格納される上位レジスタ・ファイルと、命令を実行する機能ユニットとを備える複数のクラスタ。
（ｂ）全ての前記機能ユニットの実行結果が格納される下位レジスタ・ファイル。
（ｃ）前記各クラスタ間の通信に用いられるバイパス経路。
（ｄ）前記バイパス経路を介して前記機能ユニットの実行結果を出力したクラスタから別のクラスタにデータ通信させる広域通信を行う制御ユニット。
を備えていればよい。
【００５９】
（第２の実施形態）
次に、本発明を具体化した第２の実施形態を図面に従って説明する。
第２の実施形態では、上記第１の実施形態で説明した「ｏｎ−ｔｈｅ−ｆｌｙ」の別の実現方法「ｃｈｅｃｋ＆ｗｒｉｔｅ（チェックと書き込み）」について説明する。
【００６０】
ここで、図４、図５を参照して、「ｃｈｅｃｋ＆ｗｒｉｔｅ」について第１の実施形態を参照しながら説明する。なお、図４は、「ｃｈｅｃｋ＆ｗｒｉｔｅ」の動作を説明するハードウェア構造図である。図５は、「ｃｈｅｃｋ＆ｗｒｉｔｅ」の処理手順を説明するフローチャートである。
【００６１】
はじめに、「ｃｈｅｃｋ＆ｗｒｉｔｅ」の概要について説明する。この「ｃｈｅｃｋ＆ｗｒｉｔｅ」では、制御ユニットは、命令が命令ウィンドウ５１、６１から発行されるときに、他の命令ウィンドウ５１、６１中にその命令の実行結果を参照する命令がないかをチェックする（後述するステップＳ２０１）。そして、参照する命令がある場合には（後述するステップＳ２０２が「ＹＥＳ」）、その命令が割り当てられているクラスタのレジスタ・キャッシュＲＣに実行結果を広域通信させる。
【００６２】
この「ｃｈｅｃｋ＆ｗｒｉｔｅ」では、「ｏｎ−ｔｈｅ−ｆｌｙ」を実現するために、図４に示すように、各クラスタにレジスタ・キャッシュＲＣ（図１）の書き込み許可表を設ける。これは、各物理レジスタに対して、そのクラスタのレジスタ・キャッシュＲＣへの書き込み許可を示す表である。なお、表のインデックスは物理レジスタ番号、エントリ内容は書き込み許可を示す１ビットのフラグである。このレジスタ・キャッシュＲＣの書き込み許可表を用いて、「ｏｎ−ｔｈｅ−ｆｌｙ」により選択的広域通信する手順を説明する。
【００６３】
まず、命令ウィンドウには、他のクラスタから命令の実行結果が送られてくる１サイクル以上前に、その結果が使用可能となることを示すタグが送られている。このタグは実行結果が格納される物理レジスタ番号がよく用いられる。タグは命令ウィンドウに送られ、命令ウィンドウ内の例えば上述の第１ソース・オペランドｓｒｃ１および第２ソース・オペランドｓｒｃ２と比較される（ステップＳ２０１）。もし、その結果を使用する命令があるならば、タグは一致し（ステップＳ２０２が「ＹＥＳ」）、対応するｒｅａｄｙビットをセット（ステップＳ２０３）することになる。逆にいえば、命令ウィンドウ内でタグの一致がなければ、その命令ウィンドウ内には結果を必要とする命令が存在しないことになる。よって、命令ウィンドウ内でタグの一致があった場合はそのクラスタのレジスタ・キャッシュＲＣに結果を書き込み（ステップＳ２０４）、一致がなければ書き込まない（ステップＳ２０５）ようにすれば、「ｏｎ−ｔｈｅ−ｆｌｙ」を実現できる。
【００６４】
レジスタ・キャッシュＲＣ書き込み許可表のタグに対応するエントリには、命令ウィンドウのエントリのタグの全比較結果（例えば、ｓｒｃ１＿ｍａｔｃｈ、ｓｒｃ２＿ｍａｔｃｈ）のＯＲを取った結果を書き込む。
【００６５】
そして、他のクラスタから広域通信された結果は、このレジスタ・キャッシュＲＣの書き込み許可表のフラグ（Ｆｌａｇ）を参照し、そのクラスタのレジスタ・キャッシュＲＣへの書き込みを決定する。
【００６６】
以上説明した第２の実施形態によっても、先の第１の実施形態による上記（１）〜（３）の効果と同様の効果もしくはそれに準じた効果を得ることができる。
（第３の実施形態）
次に、本発明を具体化した第３の実施形態を図面に従って説明する。
【００６７】
第３の実施形態では、上記第１の実施形態および第２の実施形態で説明した「ｏｎ−ｔｈｅ−ｆｌｙ」とは異なる方法を用いてクラスタ間を選択的に広域通信する方法（「広域通信予測」）について説明する。
【００６８】
広域通信予測とは、過去にある命令の実行結果が、他のクラスタから参照された回数を数え、その回数から、次に同一の命令が実行されるときに広域通信するかどうかを判断する方法である。
【００６９】
ここで、図面を参照して、広域通信予測について説明する。なお、図６（ａ）は広域通信判定表を示すハードウェア構造図、図６（ｂ）は広域通信要求表を示すハードウェア構造図である。
【００７０】
まず、図６（ａ）に示すように、どの命令に広域通信するか示す広域通信判定表を用意する。この表は、命令アドレスの下位ビットを索引とし、命令識別のためのタグ、広域通信の可否を判断するための２ビット飽和カウンタ（２ｂｃ）、前回の命令の命令ウィンドウ登録後に２ｂｃの更新があったかどうかを示す更新フラグ（Ｆｌａｇ）を持つ。命令識別のためのタグは命令アドレスのうち、索引として用いなかった上位ビットを使用する。また、図６（ｂ）に示すように、ある物理レジスタに対する広域通信要求を広域通信判定表に反映するために、広域通信要求表を用意する。この表は、物理レジスタ番号を索引とし、命令アドレス、クラスタ番号（ｃｌｓ）を登録する。
【００７１】
以下、広域通信の判断方法および広域通信判定表と広域通信要求表の更新手順を説明する。
まず、図７〜図９を参照して命令の命令ウィンドウ登録時における、広域通信の判断方法および広域通信判定表と広域通信要求表の更新手順について説明する。なお、図７は、命令の命令ウィンドウ登録時における処理手順を説明するハードウェア構造図、図８は、２ビット飽和カウンタ（２ｂｃ）の更新手順を説明するハードウェア構造図、図９は、命令の命令ウィンドウ登録時における、処理手順を説明するフローチャートである。ちなみに、この処理は命令が命令ウィンドウに入力される度に行われる。ここで、２ビット飽和カウンタ（２ｂｃ）の初期値を２とし、フラグ（Ｆｌａｇ）の初期値を０とする。
【００７２】
まず、命令アドレスの下位ビットで広域通信判定表を引き、命令アドレスの上位ビットとタグとを比較する（ステップＳ３０１）。図７に示すように、この比較に際しては、例えば比較器Ｃが用いられる。そして、命令アドレスとタグとが一致するか否かを判断する（ステップＳ３０２）。命令アドレスとタグとが一致すれば（ステップＳ３０２が「ＹＥＳ」）、次に前回の命令登録後に広域通信があったか否かを判断する（ステップＳ３０３）。ここで、前回の命令登録後に広域通信があれば（Ｆｌａｇが１：ステップＳ３０３が「ＹＥＳ」）、広域通信判定表の２ビット飽和カウンタ（２ｂｃ）の値は変化させない（ステップＳ３０４）。
【００７３】
一方、前回の命令登録後に広域通信がなければ（Ｆｌａｇが０：ステップＳ３０３が「ＮＯ」）、広域通信判定表の２ｂｃをデクリメント（減少）させる。すなわち、図８に示すように、例えば減算器Ｓを用いて２ｂｃの値を１減少させる（例えば、２ｂｃの値が初期値の２であれば、２ｂｃの値は１となる）。そして、この減算器Ｓによって減算した値と、減算する前の値とをマルチプレクサ（データセレクタ）ｍｕｘに入力する。そして、このマルチプレクサｍｕｘには、例えばＦｌａｇの値に基づく制御信号が送られ、上記入力された値の中から１つを選択する。このような構成とすることで、２ｂｃの更新が可能となる。
【００７４】
次に、この２ｂｃの値を用いて広域通信予測を行う（ステップＳ３０６）。この広域通信予測は、この２ｂｃの値と、２の値とをマルチプレクサｍｕｘに入力し、例えば比較器Ｃの比較結果に基づく制御信号がマルチプレクサｍｕｘに送られ、上記入力された値の中から１つを選択して予測値としている。そして、広域通信予測が行われた後、Ｆｌａｇを初期値の０に戻して（ステップＳ３０７）、図７に示すように、広域通信要求表のデスティネーション物理レジスタ番号に対応するエントリに、命令アドレスと命令が登録されるクラスタ番号ｃｌｓを書く（ステップＳ３０８）。
【００７５】
他方、命令アドレスとタグとが一致しなければ（ステップＳ３０２が「ＮＯ」）、次に、広域通信判定表にタグ、２ｂｃの初期値（広域通信すると弱く予測）、Ｆｌａｇの初期値０を書き込む（ステップＳ３０９）。そして、２ｂｃの初期値２に準じ、広域通信を行うものとする（ステップＳ３１０）。広域通信を行った後は、上述のステップＳ３０８の処理を行う。
【００７６】
次に、図１０、図１１を参照して後続命令による広域通信要求の登録について説明する。なお、図１０は広域通信要求の登録処理を説明するハードウェア構造図、図１１は後続命令による広域通信要求の登録の処理手順を説明するフローチャートである。ちなみに、この処理は命令が命令ウィンドウに入力される度に行われる。
【００７７】
まず、ソース物理レジスタ番号で広域通信要求表を引き、表から得られた命令アドレスの下位ビットで広域通信判定表を引き、命令アドレスの上位ビットとを比較する（ステップＳ４０１）。図１０に示すように、この比較に際しては、例えば比較器Ｃ１が用いられる。そして、命令アドレスの上位ビットとタグとが一致するか否かが判断される（ステップＳ４０２）。ここで、命令アドレスの上位ビットとタグとが一致すれば（ステップＳ４０２が「ＹＥＳ」）、次に、広域通信要求表から得られたクラスタ番号（ｃｌｓ）と命令が登録されるクラスタ番号とを比較する（ステップＳ４０３）。同じくこの比較に際しては、例えば比較器Ｃ２が用いられる。そして、広域通信要求表から得られたクラスタ番号（ｃｌｓ）と命令が登録されるクラスタ番号とが異なるか否かが判断される（ステップＳ４０４）。ここで、広域通信要求表から得られたクラスタ番号（ｃｌｓ）と命令が登録されるクラスタ番号とが異なる（ステップＳ４０４が「ＹＥＳ」）ことと、上記命令アドレスの上位ビットとタグとが一致する（ステップＳ４０２が「ＹＥＳ」）こととのＡＮＤ条件に基づいて、広域通信判定表の２ｂｃをインクリメント（増加）させる。すなわち、図１０に示すように、例えば加算器Ａを用いて２ｂｃの値を１増加させる。また、Ｆｌａｇを１にする（ステップＳ４０６）。
【００７８】
一方、上記ＡＮＤ条件が成立する以外場合（ステップＳ４０２、ステップＳ４０４のうち少なくとも一方が「ＮＯ」）、すなわち、データ依存元が表に登録されていないか、あるいはデータ依存があっても結果が同一クラスタで生成されるような場合には、広域通信判定表の２ｂｃの更新を行わない（ステップＳ４０７）。
【００７９】
このように、過去に他のクラスタから参照された情報を広域通信判定表のＦｌａｇとして記憶し（ステップＳ４０６）、このＦｌａｇを基に、広域通信の可否を判断するための２ビット飽和カウンタ（２ｂｃ）を制御する（ステップＳ３０４またはステップＳ３０５）。そして、この２ｂｃの値を用いて広域通信を行う。この広域通信は、２ｂｃが０あるいは１であれば、例えば広域通信しない。２ｂｃが例えば２あるいは３であれば、広域通信する等々の情報を予め決めておくことで、実際の広域通信を実行することが可能となる。
【００８０】
以上説明した第３の実施形態によっても、先の第１の実施形態による上記（１）の効果と同様の効果もしくはそれに準じた効果を得ることができるとともに、新たに次のような効果を得ることもできる。
【００８１】
（４）過去の履歴に従って広域通信予測を行うこととしたため、時間的に（順序的に）離れた命令間のデータ依存に関してもクラスタ間の広域通信を行うことができる。
次に、以上の実施形態から把握することのできる請求項以外の技術的思想を記載する。
【００８２】
（イ）命令が格納される命令ウィンドウと、該命令ウィンドウから読み出された命令に従ってレジスタ値を出力するとともに命令の実行結果が格納される上位レジスタ・ファイルと、命令を実行する機能ユニットとを備える複数のクラスタと、全ての前記機能ユニットの実行結果が格納される下位レジスタ・ファイルと、前記各クラスタ間の通信に用いられるバイパス経路とを備えた通信制御方式において、前記実行結果が、別のクラスタで使用される場合を見つけるステップと、前記バイパス経路を介して前記あるクラスタで生成される値を他のクラスタへ広域通信させるステップと、を実行することを特徴とする通信制御方式。
【００８３】
（ロ）命令の実行結果が出る前に、その結果に依存している命令が別のクラスタに存在するかをチェックするステップと、存在する場合には、そのクラスタに実行結果を選択的に広域通信させるステップと、を実行する（イ）に記載の通信制御方式。
【００８４】
（ハ）命令を前記命令ウィンドウに書き込む前に、該命令ウィンドウ中の先行命令に依存関係がないかをチェックするステップと、依存関係がある場合には、その命令に対し、自身が割り当てられるクラスタにデータ通信するように要求を出すステップと、該要求された命令の実行結果は、命令の実行終了後に、指示されたクラスタの前記上位レジスタ・ファイルに選択的に広域通信されるステップと、を実行する（ロ）に記載の通信制御方式。
【００８５】
（二）命令が前記命令ウィンドウから発行されるときに、他の命令ウィンドウ中にその命令の実行結果を参照する命令がないかをチェックするステップと、参照する命令がある場合には、その命令が割り当てられているクラスタの前記上位レジスタ・ファイルに実行結果を選択的に広域通信させるステップと、を実行する（ロ）に記載の通信制御方式。
【００８６】
（ホ）ある命令が実行結果のデータ通信が必要だったか否かという履歴をとるステップと、その履歴からその命令の実行時にデータ通信が必要か否かを決定するステップと、必要と判断した場合のみ、全てのクラスタの前記上位レジスタ・ファイルに広域通信させるステップと、を実行する（イ）に記載の通信制御方式。
【図面の簡単な説明】
【００８７】
【図１】本発明にかかるクラスタ化スーパスカラプロセッサの一例を示すブロック図。
【図２】第１の実施形態の選択的広域通信を説明する、（ａ）は命令の登録方法示すハードウェア構造図、（ｂ）は広域通信要求の登録方法を示すハードウェア構造図。
【図３】同第１の実施形態の選択的広域通信について、その処理手順を説明するフローチャート。
【図４】第２の実施形態の選択的広域通信を説明するハードウェア構造図。
【図５】同第２の実施形態の選択的広域通信について、その処理手順を説明するフローチャート。
【図６】第３の実施形態の選択的広域通信について、（ａ）は広域通信判定表を示すハードウェア構造図、（ｂ）は広域通信要求表を示すハードウェア構造図。
【図７】同第３の実施形態について、命令の命令ウィンドウ登録時における処理手順を説明するハードウェア構造図。
【図８】同第３の実施形態について、２ビット飽和カウンタ（２ｂｃ）の更新手順を説明するハードウェア構造図。
【図９】同第３の実施形態について、命令の命令ウィンドウ登録時における、処理手順を説明するフローチャート。
【図１０】同第３の実施形態について、広域通信要求の登録処理を説明するハードウェア構造図。
【図１１】同第３の実施形態について、後続命令による広域通信要求の登録の処理手順を説明するフローチャート。
【図１２】従来のクラスタ化スーパスカラプロセッサの一例を示すブロック図。
【図１３】従来の階層化レジスタ・ファイルを組み込んだプロセッサの一例を示すブロック図。
【符号の説明】
【００８８】
１…プロセッサ、１０…命令キャッシュ、２０…フェッチ・ユニット、３０…デコーダ、４０…ステアリング・ユニット、５０、６０…クラスタ、５１、６１…命令ウィンドウ、５２、５３、６２、６３…機能ユニット、７０…データ・キャッシュ、Ａ…加算器、Ｃ…比較器、ＣＩＢ…クラスタ内バイパス、ＣＢＢ…クラスタ間バイパス、ＭＲＦ…メイン・レジスタ・ファイル（上位レジスタ・ファイル）、ｍｕｘ…マルチプレクサ（データセレクタ）、ＲＣ…レジスタ・キャッシュ（下位レジスタ・ファイル）、Ｓ…減算器。
【図１】
2006072625.tif 000003
【図２】
2006072625.tif 000004
【図３】
2006072625.tif 000005
【図４】
2006072625.tif 000006
【図５】
2006072625.tif 000007
【図６】
2006072625.tif 000008
【図７】
2006072625.tif 000009
【図８】
2006072625.tif 000010
【図９】
2006072625.tif 000011
【図１０】
2006072625.tif 000012
【図１１】
2006072625.tif 000013
【図１２】
2006072625.tif 000014
【図１３】
2006072625.tif 000015