(57)【要約】本発明は、異なる複数のサイクルからの動作を１つの命令で特定し、その結果、離れたクラスタに対する制御接続をパイプライン化するという考えに基づいている。したがって、データ処理システムが提供される。上記システムは、それぞれが少なくとも１つのレジスタファイルと少なくとも１つの機能ユニットとを備える複数のクラスタを有するクラスタ化されたＩＬＰプロセッサと、上記プロセッサのクラスタに対して制御信号を発する命令ユニットとを備えている。命令ユニットは、対応する制御接続を介して上記各クラスタに対して接続されている。また、上記制御接続には、上記命令ユニットと上記クラスタとの間の距離にしたがって、１または複数の更なるパイプラインレジスタを配置することができる。
2006522399.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが少なくとも１つのレジスタファイルと少なくとも１つの機能ユニットとを含む複数のクラスタを備えるクラスタ化された命令レベル並列プロセッサと、
前記クラスタに対して制御信号を発し、対応する制御接続を介して前記各クラスタに対して接続される命令ユニットと、
を備え、
前記制御接続には、前記命令ユニットと前記クラスタとの間の距離に応じて、１または複数の更なるパイプラインレジスタが設けられている、データ処理システム。
【請求項２】
前記クラスタが二地点間接続を介して互いに接続されている、請求項１に記載のデータ処理システム。
【請求項３】
前記クラスタがバス接続を介して互いに接続されている、請求項１に記載のデータ処理システム。
【請求項４】
前記制御接続がバスとして実施される、請求項３に記載のデータ処理システム。
【請求項５】
それぞれが少なくとも１つのレジスタファイルと少なくとも１つの機能ユニットとを備える複数のクラスタと、
前記クラスタに対して制御信号を発する命令ユニットと、
を備え、
前記命令ユニットは、対応する制御接続を介して前記各クラスタに対して接続され、
前記制御接続には、前記命令ユニットと前記クラスタとの間の距離に応じて、１または複数の更なるパイプラインレジスタが設けられている、クラスタ化された命令レベル並列プロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラスタ化されたＩＬＰプロセッサを有するデータ処理システム、および、クラスタ化された命令レベル並列プロセッサに関する。
【背景技術】
【０００２】
命令レベル並列（ＩＬＰ）プロセッサの分野における１つの主要な問題は、レジスタファイルリソースのスケーラビリティ（拡張性）である。従来、ＩＬＰアーキテクチャは、現在実行されている全ての並列処理の結果を維持するための多数のレジスタの必要性をカバーするように集中型リソースの周囲で設計されてきた。集中型レジスタファイルの使用により、機能ユニット間でのデータの共有が容易になるとともに、レジスタ割り付けおよびスケジューリングが簡略化される。しかしながら、多数のポートを有する巨大なモノリシックレジスタファイルを形成してプロセッサのサイクル時間を制限することは難しいため、そのような１つの集中型レジスタファイルのスケーラビリティは制限される。特に、加算機能ユニットは、相互接続を長くするとともに、余分なレジスタファイルポートに起因してレジスタファイルの面積および遅延を急激に増大させる。したがって、この手法のスケーラビリティは限られる。
【０００３】
ＶＬＳＩ技術およびコンピュータアーキテクチャの分野における最近の発達は、分散的機構が特定の領域において好ましい場合があることを示唆している。今後のプロセッサの性能は、演算処理の抑制によってではなく、通信の抑制によって制限されるであろうことが予想される。この問題に対する１つの解決策は、リソースを分割することであり、また、これらのリソースをプロセッサにわたって物理的に分配することにより、通信速度および待ち時間に悪影響を及ぼす長い配線を回避することである。これは、クラスタリング（クラスタ化）によって達成することができる。多くの現代のマイクロプロセッサは、超長命令語（ＶＬＩＷ）概念の形態を成す命令レベル並列（ＩＬＰ）を利用する。クラスタ化されたＶＬＩＷ概念は、ＨＰ／ＳＴＭ  Ｌｘ，ＴＩ  ＴＭＳ３２０Ｃ６ｘｘｘ，Ｓｕｎ  ＭＡＪＣ，Ｅｑｕａｔｏｒ  ＭＡＰ−ＣＡ，ＢＯＰＳ  ＭａｎＡｒｒａｙなど、多くの業務用プロセッサにおいて実現された。クラスタ化されたプロセッサにおいて、機能ユニットやレジスタファイル等のリソースは、別個のクラスタにわたって分配される。特に、クラスタ化されたＩＬＰアーキテクチャの場合、各クラスタは、機能ユニットとローカルレジスタファイルとから成る組を備えている。クラスタは、１つのプログラムカウンタの下、ロックステップで動作する。クラスタ化されたプロセッサの背後にある主な考え方は、頻繁にやりとりする演算部分を同じクラスタ上で割り当て、一方、滅多に通信しない或いは通信が重大ではない演算部分を異なる複数のクラスタにわたって広げることである。しかしながら、問題は、クラスタ間通信（ＩＣＣ）をハードウェアレベル（配線および論理）およびソフトウェアレベル（レジスタに対する変数の割り当ておよびスケジューリング）でどのように扱うかである。
【０００４】
既知のＶＬＩＷアーキテクチャは、完全二地点間接続（フルポイントツーポイント接続）トポロジを有している。すなわち、２つの各クラスタは、データのやりとりを可能にする専用の配線を有している。一方で、完全な接続性を有する二地点間ＩＣＣは、命令スケジューリングを簡略化するが、他方で、必要な配線の量Ｎ（Ｎ−１）（Ｎはクラスタの数）に起因してスケーラビリティが制限される。したがって、配線の二次成長は、スケーラビリティを２〜１０個のクラスタに制限する。そのようなアーキテクチャは、４つのクラスタ、すなわち、互いに完全に接続されるクラスタＡ，Ｂ，Ｃ，Ｄを含んでいても良い。したがって、任意の２つのクラスタ同士の間には、専用の直接的な接続が常に存在している。データのクラスタ間転送の待ち時間は、チップ上のクラスタ間の実際の距離とは無関係に、全てのクラスタ間接続において常に同じである。クラスタＡ，Ｃ間およびクラスタＢ，Ｄ間のチップ上における実際の距離は、クラスタＡ，Ｄ間、クラスタＡ，Ｂ間、クラスタＢ，Ｃ間、クラスタＣ，Ｄ間の距離よりも長いと考えられる。また、２つの各クラスタ間にパイプラインレジスタが配置されても良い。
【０００５】
前述したＶＬＩＷアーキテクチャにおいては、制御信号におけるワイヤ遅延の問題が依然として存在する。制御信号は、各クラスタの機能ユニットおよびレジスタファイルに対して動作（演算）情報を分配するために使用される。ここで、ＶＬＩＷ命令は同じサイクルで実行される。したがって、各クラスタに対する全ての制御信号は、同じサイクル内のこれらのクラスタに到達しなければならない。これにより、全てのクラスタに対して制御信号を発する命令フェッチ／ディスパッチ（dispatch）ユニットから遠く離れたＶＬＩＷプロセッサのフロアプラン上にこれらのクラスタの一部が配置されても良い場合には、１つの問題が生じる。前述の場合において、クラスタＤ，ＣがクラスタＡ，Ｂおよび命令ユニットから遠く離れていると、プロセッサのサイクル時間は、命令フェッチ／ディスパッチユニットからの制御信号が最も離れたクラスタに到達するまでに必要な時間によって決まってしまう。
【０００６】
他のＩＣＣ方式は、汎用バス接続性である。クラスタはバスを介して互いに完全に接続されるが、ハードウェアリソースは、完全二地点間接続（フルポイントツーポイント接続）トポロジを有する前述したＩＣＣほど多く必要としない。このバス接続により、マルチキャストを簡単に実施することができる。また、この方式は静的スケジューリングに基づいている。すなわち、バスのためのアービタも制御信号も全く不要である。バスを追加することによりＩＣＣ帯域幅を容易に大きくすることができる。また、バスの伝播遅延によりＩＣＣの待ち時間が増大する。待ち時間は、クラスタの数を増やしてそのようなＩＣＣ方式を用いたプロセッサのスケーラビリティを制限することにより更に増大する。その結果、クラスタＡ，Ｄ等の離れたクラスタ同士を中央汎用バスを介して接続することにより、クロック周波数が制限される場合がある。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
したがって、本発明の目的は、クラスタ化されたＩＬＰプロセッサにおけるＩＣＣ方式での命令および制御信号の待ち時間の不具合を改善することである。
【課題を解決するための手段】
【０００８】
この目的は、請求項１に係るデータ処理システムおよび請求項５に係るクラスタ化された命令レベル並列プロセッサによって解決される。
【０００９】
本発明は、異なる複数のサイクルからの動作を１つのＶＬＩＷ命令で特定し、その結果、離れたクラスタに対する制御接続をパイプライン化するという考えに基づいている。
【００１０】
したがって、データ処理システムが提供される。上記システムは、それぞれが少なくとも１つのレジスタファイルと少なくとも１つの機能ユニットとを備える複数のクラスタを有するクラスタ化されたＩＬＰプロセッサと、上記プロセッサのクラスタに対して制御信号を発する命令ユニットとを備えている。命令ユニットは、対応する制御接続を介して上記各クラスタに対して接続されている。また、上記制御接続には、上記命令ユニットとクラスタとの間の距離にしたがって、１または複数のパイプラインレジスタを配置することができる。
【００１１】
この命令セットアーキテクチャにおいては、更に高いクロック周波数を得ることができる。これは、命令ユニットと最も離れたクラスタとの間の最長距離に起因する制御信号の最も長い遅延によりクロック周期が制限されるからである。すなわち、離れたクラスタに対する制御配線における長い遅延を採用することができる。
【００１２】
本発明の更なる態様において、クラスタは、二地点間接続を介して互いに接続される。この二地点クラスタ間通信方式により、命令スケジューリングが簡略化される。
【００１３】
本発明の更なる態様において、クラスタは、バス接続を介して互いに接続される。そのようなＩＣＣ方式は、ハードウェアリソースをほとんど必要としないため有益である。
【００１４】
本発明の他の態様においては、制御接続がバスとして実施される。
【００１５】
また、本発明は、それぞれが少なくとも１つのレジスタファイルと少なくとも１つの機能ユニットとを備える複数のクラスタと、上記クラスタに対して制御信号を発する命令ユニットとを備えるクラスタ化されたＩＬＰプロセッサに関する。上記命令ユニットは、対応する制御接続を介して上記各クラスタに対して接続されている。上記制御接続には、上記命令ユニットと上記クラスタとの間の距離に応じて、１または複数の更なるパイプラインレジスタを設けることができる。
【発明を実施するための最良の形態】
【００１６】
ここで、添付図面を参照しながら、本発明について更に詳細に説明する。
【００１７】
図面の全体にわたって、破線は制御配線を示し、一方、実線はデータ信号接続を示している。
【００１８】
図１には、完全二地点間接続（フルポイントツーポイント接続）トポロジを有する第１の実施形態に係るクラスタ化されたＶＬＩＷアーキテクチャが示されている。このアーキテクチャは、４つのクラスタ、すなわち、互いに完全に接続されたクラスタＡ，Ｂ，Ｃ，Ｄと、制御接続経路ＣＡ〜ＣＤを介して各クラスタＡ〜Ｄに接続されたフェッチ／ディスパッチユニットＩＦＤとを有している。したがって、任意の２つのクラスタ同士の間には、これらの間にパイプラインレジスタＰが配置された状態で、専用の直接的なデータ信号接続が常に存在している。データのクラスタ間転送の待ち時間は、チップ上のクラスタ間の実際の距離とは無関係に、全てのクラスタ間接続において常に同じである。クラスタＡ，Ｃ間およびクラスタＢ，Ｄ間のチップ上における実際の距離は、クラスタＡ，Ｄ間、クラスタＡ，Ｂ間、クラスタＢ，Ｃ間、クラスタＣ，Ｄ間の距離よりも長いと考えられる。したがって、離れているクラスタ（リモートクラスタ）Ｃ，Ｄに対して制御信号をパイプラインで送るために、パイプラインレジスタＰが制御接続経路ＣＣ，ＣＤ内に配置される。
【００１９】
２つの発行スロットを有する従来技術のシングルクラスタＶＬＩＷプロセッサのための命令は、以下のように実施することができる。
ｏｐ１  ｒ１，ｒ２→ｒ３                  ｎｏｐ；
ｎｏｐ                                    ｏｐ２  ｒ３，ｒ１０→１１；
【００２０】
２つのクラスタＶＬＩＷプロセッサにおける同じ演算は、以下のように実施される。
ｏｐ１  ｒ１，ｒ２→ｒ３                  ｎｏｐ；
ｃｏｐｙ  ｒ３→ｒ３［Ｂ］    ｎｏｐ；        ／／ｒ３をクラスタＡからクラスタＢのｒ３へコピー
ｎｏｐ                                    ｏｐ２  ｒ３，ｒ１０→１１；
【００２１】
第１の実施形態にしたがって同じコードが実施される。すなわち、クラスタＤは、離れており、したがって、以下のように演算配信のために１つの余計なサイクルを必要とする。
ｏｐ１  ｒ１，ｒ２→ｒ３                  ｎｏｐ；
ｃｏｐｙ  ｒ３→ｒ３［Ｄ］    ｏｐ２  ｒ３，ｒ１０→１１；
【００２２】
このスケジューリングは、ｏｐ２がサイクル３においてのみ実行されることから、ｏｐ２が次のＶＬＩＷ命令中に置かれている場合でも有効である点に注目されたい。したがって、様々なサイクルからの演算が１つのＶＬＩＷ命令中に集約される。以下の表１は、クラスタＡおよびクラスタＤのための幾つかの命令を示している。この場合、クラスタＤはクラスタＡから離れている。
【表１】
2006522399.tif 000003
【００２３】
このように、命令１は、サイクル１，２でそれぞれ実行されるｏｐ１およびｏｐ３を含んでいる。命令２は、サイクル２，３でそれぞれ実行されるｏｐ２およびｏｐ４を含んでいる。命令３は、サイクル３，４でそれぞれ実行されるｏｐ４およびｎｏｐを含んでいる。遠隔にあるリモートクラスタＤにおける演算の実行は、近接するクラスタＡにおける演算に隠れた１つのサイクルである。すなわち、同じサイクルで実行される演算は、幾分偏ったＶＬＩＷ命令である。
【００２４】
この命令セットアーキテクチャＩＳＡは、リモートクラスタＤ，Ｃに対して制御接続をパイプラインで繋ぐことにより実施される。そのようなＩＳＡは、３つを上回るクラスタを有するクラスタ化されたＩＬＰプロセッサにおいて特に有利である。
【００２５】
上記ＩＳＡの実施により、離れたクラスタに対する制御分配の余計な待ち時間に起因して、サイクルカウントが増加されても良い。また、図１にしたがってＶＬＩＷ命令の演算を適切に処理するために、コンパイラの一部である命令スケジュールにおける僅かな変更が必要とされても良い。通常、ＩＣＣは、クラスタ間コピー演算によって実施される。コンパイラの命令スケジューラは、２つの演算間のコピーをスケジュールすることができるかどうかを決定する。好ましくは、パイプライン型の制御分配を伴うプロセッサにおけるコンパイラは、ＶＬＩＷ命令ではなく消費者演算が実行されるサイクルを考慮しなければならない。
【００２６】
図２に示されるように、第２の実施形態に係る他のＩＣＣ方式は、汎用バス接続性である。クラスタＡ，Ｂ，Ｃ，Ｄはバス１００を介して互いに完全に接続されているが、図１に示されるＩＣＣ方式と比べて必要なハードウェアリソースが少ない。また、この方式は、制御相互接続１１０を介して全てのクラスタＡ〜Ｄに接続される命令フェッチ／ディスパッチユニットＩＦＤを備えている。パイプラインレジスタＰは、クラスタＢ，Ｃ間の制御相互接続１１０中に配置されている。この場合、クラスタＣ，Ｄは、クラスタＡ，Ｂからの任意のためのものである。このパイプラインレジスタＰは、実プロセッサの複数の制御信号の実際の実施において複数のインスタンスを必要としても良い。したがって、第１の実施形態において、ＩＳＡは、制御相互接続１１０をリモートクラスタに対してパイプライン接続することにより実現される。
【００２７】
図３は、第３の実施形態に係る二地点間（ポイントツーポイント）クラスタ化ＶＬＩＷアーキテクチャを示している。このアーキテクチャは、図１に係るクラスタ化されたＶＬＩＷアーキテクチャの構造とかなり類似している。このアーキテクチャは、直接的な二地点間接続により互いに完全に接続された同期作動する４つのクラスタＡ，Ｂ，Ｃ，Ｄを有している。したがって、任意の２つのクラスタ間には、専用の直接接続が常に存在し、それにより、デッドロックが無いＩＣＣが行なわれる。
【００２８】
また、このアーキテクチャは、制御接続経路ＣＡ〜ＣＤのそれぞれを介して各クラスタＡ〜Ｄに接続される命令フェッチ／ディスパッチユニットＩＦＤを備えている。クラスタＡ，Ｃ間およびクラスタＢ，Ｄ間のチップ上における実際の距離は、クラスタＡ，Ｄ間、クラスタＡ，Ｂ間、クラスタＢ，Ｃ間、クラスタＣ，Ｄ間の距離よりも長いと考えられる。クラスタＡ，Ｂ間、クラスタＢ，Ｃ間、クラスタＣ，Ｄ間、クラスタＤ，Ａ間には１つのパイプラインレジスタＰが配置され、一方、離れているクラスタＡ，Ｃ間および離れているクラスタＢ，Ｄ間には２つのパイプラインレジスタＰが配置されている。したがって、クラスタ間のパイプラインレジスタＰの数は、各クラスタ間の距離に比例し或いは当該距離によって決まり得る。また、制御経路ＣＣ，ＣＤには１または複数のパイプラインレジスタＰが設けられている。あるいは、リモートクラスタＣ，Ｄに対して制御信号をパイプラインで送るため、１または複数のパイプラインレジスタＰが各制御経路ＣＣ，ＣＤに設けられる。
【００２９】
このアーキテクチャは、完全に接続された待ち時間が不均一なクラスタ間ネットワークを有するクラスタ化されたＶＬＩＷアーキテクチャである。特に、ＩＣＣ接続の待ち時間は均一ではない。これは、この待ち時間が、チップの最終的なレイアウトにおける各クラスタ間の実際の距離によって決まるからである。この態様に関して、本発明のアーキテクチャは、図１に係るクラスタ化されたＶＬＩＷアーキテクチャの構造と異なる。これは、離れているクラスタ同士の間のクラスタ間接続をディープパイプライン（deep pipelining）処理することによりワイヤ遅延の不具合が減少するという利点を有している。第１の実施形態に係るクラスタ化されたＶＬＩＷアーキテクチャを超える第３の実施形態に係るＶＬＩＷアーキテクチャの利点は、不均一な待ち時間を与えることによりワイヤ遅延の不具合が改善されるという点である。しかし、その一方で、スケジューリングは、クラスタ化されたＶＬＩＷアーキテクチャにおける場合よりも複雑になる。なぜなら、コンパイラは、不均一な待ち時間をもってネットワークのＩＣＣをスケジュールしなければならないからである。しかしながら、ＩＳＡは、表１に関して第１の実施形態で前述したように実施される。
【００３０】
図４は、本発明の第４の実施形態に係るバスを基本とするクラスタ化されたＶＬＩＷアーキテクチャを示している。この第４の実施形態のアーキテクチャは、図２に係るバスを基本とするクラスタ化されたＶＬＩＷアーキテクチャの構造と類似している。クラスタＡ，Ｄ等の離れたクラスタは、中央バスまたは汎用バス１００を介して互いに接続される。しかしながら、これにより、クロック周波数が制限される。この欠点は、第１の実施形態に係る前述したＶＬＩＷアーキテクチャを設けることによって解消することができる。特に、バス１００がパイプライン化され、クラスタ間通信の待ち時間は、不均一にされるとともに、クラスタ間の距離に依存する。例えば、クラスタＡがデータをクラスタＢに送る場合には、１つのサイクルが必要となり、一方、クラスタＡとリモートクラスタＤとの間でデータが移動する場合には、データがクラスタＢ，Ｄ間に設けられた更なるパイプラインレジスタＰを通らなければならないため、２つのサイクルが必要となる。
【００３１】
また、制御相互接続１１０を介して各クラスタＡ〜Ｄに接続される命令フェッチ／ディスパッチユニットＩＦＤが設けられている。特に、クラスタＢ，Ｃ間、すなわち、近くにあるクラスタＡ，Ｂと離れたクラスタＣ，Ｄとの間には、パイプラインレジスタＰが配置されている。しかしながら、このバスを基本とするクラスタ化されたＶＬＩＷアーキテクチャの命令スケジューリングは、第１の実施形態に係る二地点間（ポイントツーポイント）を基本とするクラスタ化されたＶＬＩＷアーキテクチャのスケジューリングに対応している。
【００３２】
図５は、全てのクラスタにおいて同一の既知のパイプラインフローチャートを示している。ステップＳ１では、命令フェッチ動作が行なわれ、ステップＳ２では、命令デコード動作が行なわれる。ステップＳ３では、レジスタが読み取られ、また、各動作がステップＳ４で実行される。最後に、ステップＳ５において、ライトバックが行なわれる。
【００３３】
図６は、本発明の原理にしたがったパイプラインフローチャートを示している。本発明は、パイプラインアーキテクチャが近くにあるクラスタと離れたクラスタとにおいて異なるという考えに基づいている。したがって、命令フェッチ／ディスパッチユニットＩＦＤに近いクラスタにおいては、図６の左側にあるステップＳ１〜Ｓ５によって実施されるパイプラインが、従来技術に係るパイプラインすなわち図５に示されるパイプラインと同一である。しかしながら、離れたクラスタにおけるパイプライン（図６の右側）は、ＩＦＤからクラスタへ制御信号を転送するための更なるパイプラインステージすなわちステップＳ２ａを組み込んでいる。なお、しかしながら、命令フェッチステージおよび命令デコードステージであるステップＳ１，Ｓ２を含むパイプライン初期段階は、近くにあるクラスタおよび離れたクラスタにおいて共有されている。また、パイプラインが近くにあるクラスタと離れたクラスタとにおいて異なるという考えを変えることなく、図示の各パイプラインステージが幾つかのサブステージを含んでいても良い。
【００３４】
なお、本発明の原理は、ＶＬＩＷプロセッサおよびＥＰＩＣ（明示的並列命令セットコンピューティング）プロセッサに適用されても良いが、異なる命令セットアーキテクチャを有するスーパスカラプロセッサには適用されない。
【図面の簡単な説明】
【００３５】
【図１】第１の実施形態に係るクラスタ化されたＶＬＩＷアーキテクチャを示している。
【図２】第２の実施形態に係るバスを基本とするクラスタ化されたＶＬＩＷアーキテクチャを示している。
【図３】第３の実施形態に係る二地点間クラスタ化ＶＬＩＷアーキテクチャを示している。
【図４】第４の実施形態に係るバスを基本とするクラスタ化されたＶＬＩＷアーキテクチャを示している。
【図５】従来技術に係るパイプラインフローチャートを示している。
【図６】本発明に係るパイプラインフローチャートを示している。
【図１】
2006522399.tif 000004
【図２】
2006522399.tif 000005
【図３】
2006522399.tif 000006
【図４】
2006522399.tif 000007
【図５】
2006522399.tif 000008
【図６】
2006522399.tif 000009
【国際調査報告】
2006522399.tif 000010
2006522399.tif 000011
2006522399.tif 000012