(57)【要約】本発明の基本概念は、待ち時間が非一様の完全接続クラスタ間ネットワークに基づくクラスタ化ＩＬＰプロセッサを提供することである。クラスタ化命令レベル並列処理プロセッサが提供される。前記プロセッサは、少なくとも１つのレジスタ・ファイル（ＲＦ）および少なくとも１つの機能単位（ＦＵ）をそれぞれ有する複数のクラスタ（Ｃ１〜Ｃ６）を有し、前記クラスタ（Ｃ１〜Ｃ６）が互いに完全に接続され、前記クラスタ（Ｃ１〜Ｃ６）間の接続の待ち時間が、前記クラスタ（Ｃ１〜Ｃ６）間の距離に依存する。
2006512659.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのレジスタ・ファイルおよび少なくとも１つの機能単位をそれぞれ備えた複数のクラスタを含むクラスタ化命令レベル並列処理プロセッサであって、
前記クラスタは互いに完全接続され、
前記クラスタ間の接続の待ち時間は、前記クラスタ間の距離に依存するクラスタ化命令レベル並列処理プロセッサ。
【請求項２】
それぞれの２つのクラスタ間に配置された少なくとも１つのパイプライン・レジスタを備えた請求項１に記載のプロセッサ。
【請求項３】
２つのクラスタ間のパイプライン・レジスタ数が、前記２つのクラスタ間の距離に依存する請求項２に記載のプロセッサ。
【請求項４】
前記クラスタは、ポイントツーポイント接続を介して互いに接続される請求項１に記載のプロセッサ。
【請求項５】
前記クラスタは、バス接続を介して互いに接続される請求項１に記載のプロセッサ。
【請求項６】
前記バス接続は、前記クラスタを接続するように適合され、複数のバス・セグメントを備え、
該プロセッサは、
隣接するバス・セグメントを接続または切断するために、隣接するバス・セグメント間に配置されたスイッチング手段をさらに含む請求項５に記載のプロセッサ。
【請求項７】
前記バス接続は、少なくとも２つのバスを含むマルチバスである請求項６に記載のプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラスタ化された命令レベル並列処理プロセッサに関する。
【背景技術】
【０００２】
命令レベル並列処理（ＩＬＰ）プロセッサの領域での１つの主な問題は、レジスタ・ファイル資源のスケーラビリティである。過去には、現在実行中のすべての並列演算の結果を維持する多数のレジスタの必要性をカバーするために、集中型資源（centralised resources）の周辺にＩＬＰアーキテクチャが設計された。集中型レジスタ・ファイルの使用により、機能単位間のデータ共有が容易となり、レジスタ割振りおよびスケジューリングが単純化される。しかし、多数のポートを有する巨大なモノリシック・レジスタ・ファイルは構築するのが難しく、プロセッサのサイクル・タイムを制限するので、このような単一の集中型レジスタのスケーラビリティは限られている。特に、機能単位を追加することにより相互接続が延長され、余分なレジスタ・ファイル・ポートのためにレジスタ・ファイルのエリアおよび遅延が指数関数的に増大する。したがってこの手法のスケーラビリティは限られている。
【０００３】
ＶＬＳＩ技術およびコンピュータ・アーキテクチャの分野での最近の発展により、ある分野では非集中型の構成が好ましい場合があることが提唱されている。将来のプロセッサの性能は計算上の制約よりも通信上の制約によって制限されることが予見される。この問題に対する一解決策は、資源を分割し、こうした資源をプロセッサの上に物理的に分散させ、通信速度ならびに待ち時間に対して悪影響を有する長いワイヤを回避することである。これはクラスタ化によって達成することができる。現代の多くのマイクロプロセッサは、超長命令語（ＶＬＩＷ）概念の形態の命令レベル並列処理（ＩＬＰ）を利用する。クラスタ化されたＶＬＩＷ概念は、ＨＰ／ＳＴＭ  Ｌｘ、ＴＩ  ＴＭＳ３２０Ｃ６ｘｘｘ、Ｓｕｎ  ＭＡＪＣ、Ｅｑｕａｔｏｒ  ＭＡＰ−ＣＡ、ＢＯＰＳ  ＭａｎＡｒｒａｙなどの多くの市販のプロセッサで実現された。クラスタ化プロセッサ資源では、同様の機能単位およびレジスタ・ファイルが別々のクラスタにわたって分散されている。具体的にはクラスタ化ＩＬＰアーキテクチャでは、各クラスタが１組の機能単位およびローカル・レジスタを備えている。クラスタは、１つのプログラム・カウンタに基づきロック・ステップで動作する。クラスタ化プロセッサの背後にある主なアイデアは、頻繁に対話する計算の部分を同一クラスタ上に割り振り、一方で、まれにしか通信しない部分または重要でない通信は異なるクラスタ上に割り振られるというものである。しかし問題は、クラスタ間通信ＩＣＣをどのようにハードウェア・レベル（ワイヤおよびロジック）ならびにソフトウェア・レベル（変数をレジスタに割り振ること、およびスケジューリング）で処理するかである。
【０００４】
既知のＶＬＩＷアーキテクチャは、完全なポイントツーポイント接続性トポロジを有する。すなわち２つのクラスタそれぞれがデータの交換を可能にする専用配線を有する。一方では、完全な接続性を有するポイントツーポイントＩＣＣは命令スケジューリングを単純化するが、他方では、必要な配線量Ｎ（Ｎ−１）のためにスケーラビリティが制限される。ここでＮはクラスタ数である。したがって、配線の２次的増大により、スケーラビリティが２〜１０クラスタに制限される。このようなアーキテクチャは、互いに完全に接続された４つのクラスタ、すなわちクラスタＡ、Ｂ、Ｃ、およびＤを含むことができる。したがって、任意の２つのクラスタ間には常に専用直接接続が存在する。データのクラスタ間転送の待ち時間は、チップ上のクラスタ間の実際の距離とは無関係に、あらゆるクラスタ間接続について常に同じである。クラスタＡとＣとの間、ならびにクラスタＢとＤとの間のチップ上の実際の距離は、クラスタＡとＤとの間、ＡとＢとの間、ＢとＣとの間、ならびにＣとＤとの間の距離よりも長いと考えられる。さらに、パイプライン・レジスタがそれぞれの２つのクラスタ間に配置される。
【０００５】
さらに、ポイントツーポイントＩＣＣ方式についての部分的に接続されたネットワークの一例、いわゆるＲＡＷアーキテクチャが、W.Lee、R.Baruna等による、「Space-Time scheduling of  Instruction-Level Parallelism on a Raw Machine」、In proceedings of the Eighth International Conference on Architectural Support for Programming Language and Operation System、カリフォルニア州サンノゼ、１９９８年１０月に詳細に記載されている。ここで、クラスタは他のすべてのクラスタとは接続（完全接続）されておらず、例えば単に隣接するクラスタと接続されるだけである。隣接しないクラスタと通信するためには、いくつかのクラスタ間のコピー動作が必要である。例えば、クラスタＡとクラスタＣとの間の通信は、クラスタＡからクラスタＢにデータをコピーし、次いでクラスタＢからクラスタＣにデータをコピーすることによって行われる。コピー動作は、コンパイラによって静的にスケジューリングされ、クラスタのスイッチによって実行され、データは、１サイクル内で、あるクラスタから次のクラスタまでしか移動することができない。したがって、隣接するクラスタ間と隣接しないクラスタ間の通信の待ち時間は、異なることになり、こうしたクラスタ間の実際の距離に依存し、結果としてクラスタ間待ち時間が一様でなくなる。配線の複雑さは低減されるが、プロセッサをプログラミングする問題が増大する。そのようなＩＣＣ方式のコンパイルは、クラスタ化されたＶＬＩＷアーキテクチャのコンパイルよりも複雑だからである。コンパイル中の主な難点は、ＩＣＣ経路のスケジューリングおよびデッドロックの回避である。
【０００６】
さらに別のＩＣＣ方式はグローバル・バス接続性である。完全なポイントツーポイント接続性トポロジを有する上記ＩＣＣと比較して必要なハードウェア資源はずっと少ないが、クラスタがバスを介して互いに完全に接続される。さらに、この方式は値マルチキャストを可能にする。すなわち、同じ値をいくつかのクラスタに同時に送ることができ、または言い換えれば、いくつかのクラスタがバスを同時に読み取ることによって同じ値を取得することができる。この方式はさらに、静的スケジューリングに基づく。したがって、アービタも、どんな制御信号も不要である。バスは共有資源を構成するので、１サイクル当たり実施することが可能な転送は１つだけであり、通信帯域幅が非常に低い状態に制限される。さらに、バスの伝播遅延によりＩＣＣの待ち時間が増大する。クラスタ数の増加と共に待ち時間はさらに増大し、そのようなＩＣＣ方式のプロセッサのスケーラビリティを制限する。したがって、中央グローバル・バスを介してクラスタＡおよびＤのような離れたクラスタを接続することにより、クロック周波数が制限される可能性がある。
【０００７】
別のＩＣＣ通信方式では、ローカル・バスが使用される。このＩＣＣ方式はいわゆるＲｅＭｏｖｅアーキテクチャであり、部分的に接続されたバス・ベースの通信方式である。このようなアーキテクチャについてのより詳しい情報は、S.Roos、H.Corporaal、R.Lamberts、「Clustering on the Move」、4th  International Conference on Massively Parallel Computing System、２００２年４月、Ischia、イタリアを参照されたい。ローカル・バスは、単に一定量のクラスタを接続するだけで、すべてを一度に接続するわけではない。例えば、クラスタＡからＣが１つのローカル・バスに接続され、クラスタＢからＤが第２ローカル・バスに接続される。この方式の欠点は、デッドロックを回避するためにより複雑なスケジューリングを行うコンパイラが必要であるので、プログラムが難しいことである。例えば、値をクラスタＡからクラスタＤに送るべき場合、１サイクル内で直接送ることはできず、少なくとも２サイクル必要である。
【０００８】
したがって、既知のＩＣＣ方式の利点および欠点は以下のように要約することができる。ポイントツーポイント・トポロジは高い帯域幅を有するが、配線の複雑さがクラスタ数の２乗に従って増大する。さらに、マルチキャスト、すなわちいくつかの他のクラスタに値を送ることが不可能である。一方、バス・トポロジは、複雑さがクラスタ数に比例して増大するので複雑さが少なく、マルチキャストを可能にするが、帯域幅が低い。ＩＣＣ方式を完全に接続することができ、または部分的に接続することができる。完全に接続する方式は高い帯域幅を有し、ソフトウェアの複雑さが少ないが、配線の複雑さが増大し、あまりスケーリングできない。部分的に接続する方式は、良好なスケーラビリティとハードウェアの複雑さが少ないことを結びつけるが、帯域幅が低く、ソフトウェアが複雑である。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
したがって、本発明の目的は、クラスタ化ＩＬＰプロセッサについてＩＣＣ方式の待ち時間問題を改善することである。
【課題を解決するための手段】
【００１０】
この目的は、請求項１に従ったクラスタ化命令レベル並列処理プロセッサによって解決される。
【００１１】
本発明の基本概念は、待ち時間が非一様の完全接続クラスタ間ネットワークに基づくクラスタ化ＩＬＰプロセッサを提供することである。
【００１２】
本発明によれば、クラスタ化命令レベル並列処理プロセッサが提供される。前記プロセッサは、少なくとも１つのレジスタ・ファイルＲＦおよび少なくとも１つの機能単位ＦＵをそれぞれ有する複数のクラスタＡ、Ｂ、Ｃ、Ｄを備え、前記クラスタＡ、Ｂ、Ｃ、Ｄが互いに完全に接続され、前記クラスタＡ、Ｂ、Ｃ、Ｄ間の接続の待ち時間が、前記クラスタＡ、Ｂ、Ｃ、Ｄ間の距離に依存する。
【００１３】
離隔または遠隔クラスタの通信であっても、直接のポイントツーポイント接続が設けられ、その結果、完全にデッドロック・フリーのＩＣＣネットワークが提供される。さらに、一様でない待ち時間を有するＩＣＣネットワークを設けることにより、遠隔または離隔クラスタ間の接続のより深いパイプライン化が達成される。
【００１４】
本発明の一態様によれば、ポイントツーポイント接続またはバス接続１００を介してクラスタＡ、Ｂ、Ｃ、Ｄを互いに接続することができ、プロセッサ設計中の自由度を増加させることが可能となる。
【００１５】
本発明の好ましい一態様によれば、前記バス接続１００は、複数のバス・セグメント１００ａ、１００ｂ、１００ｃを備えている。前記プロセッサはスイッチング手段２００をさらに備え、スイッチング手段２００は、隣接するバス・セグメント１００ａ、１００ｂ、１００ｃ間に配置され、隣接するバス・セグメント１００ａ、１００ｂ、１００ｃを接続または切断するために使用される。
【００１６】
バス１００を異なるセグメント１００ａ、１００ｂ、１００ｃに分割することにより、１つのバス・セグメント１００ａ、１００ｂ、１００ｃ内のバスの待ち時間が改善される。それでも、バス全体、すなわち閉じたすべてのスイッチ２００の全待ち時間がクラスタ数に比例して増大するが、ローカル・クラスタまたは隣接するクラスタ間のデータ移動の待ち時間を、複数のバス・セグメント、すなわちいくつかのスイッチ２００ａ、２００ｂを介する移動よりも短くすることができる。バスＩＣＣのグローバル相互接続要求による、ローカル通信、すなわち隣接するクラスタ間の通信のスローダウンは、スイッチ２００を開くことによって回避することができ、その結果、待ち時間のより少ない、より短いバス・セグメント１００ａ、１００ｂ、１００ｃを達成することができる。さらに、スイッチを組み込むことは、実施するのが安価かつ容易であると共に、完全接続ＩＣＣを断念することなく、バスの利用可能な帯域幅が向上し、長いバスによって引き起こされる待ち時間問題が低減される。
【００１７】
次に、図面を参照しながら本発明をより詳細に説明する。
【発明を実施するための最良の形態】
【００１８】
図１には、完全なポイントツーポイント接続性トポロジを備えたクラスタ化ＶＬＩＷアーキテクチャが図示されている。このアーキテクチャは、互いに完全に接続された４つのクラスタ、すなわちクラスタＡ、Ｂ、Ｃ、およびＤを含む。したがって、任意の２つのクラスタ間には常に専用直接接続が存在する。データのクラスタ間転送の待ち時間は、チップ上のクラスタ間の実際の距離とは無関係に、あらゆるクラスタ間接続について常に同じである。クラスタＡとＣとの間、ならびにクラスタＢとＤとの間のチップ上の実際の距離は、クラスタＡとＤとの間、ＡとＢとの間、ＢとＣとの間、ならびにＣとＤとの間の距離よりも長いと考えられる。さらに、パイプライン・レジスタＰがそれぞれの２つのクラスタ間に配置される。
【００１９】
図２では、ポイントツーポイントＩＣＣのための可能な別の部分接続ネットワークが示されている。このようなＩＣＣ方式の一例は、上述のいわゆるＲＡＷアーキテクチャである。ここで、クラスタＡ、Ｂ、Ｃ、Ｄは他のすべてのクラスタとは接続（完全接続）されておらず、例えば単に隣接するクラスタと接続されているだけである。隣接しないクラスタＡ、Ｂ、Ｃ、Ｄと通信するためには、いくつかのクラスタ間コピー・オペレーションが必要である。例えば、クラスタＡとクラスタＣとの間の通信は、クラスタＡからクラスタＢにデータをコピーし、次いでクラスタＢからクラスタＣにデータをコピーすることによって行われる。コピー・オペレーションは、コンパイラによって静的にスケジューリングされ、クラスタのスイッチによって実行され、データは、１サイクル内で、あるクラスタから次のクラスタまでしか移動することができない。したがって、隣接するクラスタ間と隣接しないクラスタ間の通信の待ち時間は異なることになり、こうしたクラスタ間の実際の距離に依存し、結果としてクラスタ間待ち時間が一様でなくなる。
【００２０】
さらに別のＩＣＣ方式は、図３に示すグローバル・バス接続性である。図１に示すＩＣＣ方式と比べて必要なハードウェア資源がずっと少ないが、クラスタＡ、Ｂ、Ｃ、Ｄがバス１００を介して互いに完全に接続される。さらに、この方式は値マルチキャストを可能にする。すなわち、同じ値をいくつかのクラスタＡ、Ｂ、Ｃ、Ｄに同時に送ることができ、または言い換えれば、いくつかのクラスタがバスを同時に読み取ることによって同じ値を取得することができる。
【００２１】
別のＩＣＣ通信方式では、図４に示すようにローカル・バスが使用される。このＩＣＣ方式はいわゆるＲｅＭｏｖｅアーキテクチャであり、部分的に接続されたバス・ベースの通信方式である。ローカル・バス１１０、１２０、１３０、１４０は、単に一定量のクラスタＡ、Ｂ、Ｃ、Ｄを接続するだけで、すべてを一度に接続するわけではない。例えば、クラスタＡからＣが１つのローカル・バス１２０に接続され、クラスタＢからＤが第２ローカル・バス１３０に接続される。
【００２２】
図５に、本発明の第１の実施形態によるポイントツーポイント・クラスタ化ＶＬＩＷアーキテクチャを示す。このアーキテクチャは、図１によるクラスタ化ＶＬＩＷアーキテクチャのアーキテクチャと非常に似ている。このアーキテクチャは、４つの同期式に動作するクラスタＡ、Ｂ、Ｃ、およびＤを含み、直接ポイントツーポイント接続を介して互いに完全に接続される。したがって、任意の２つのクラスタ間には常に専用直接接続が存在し、それによりデッドロックの無いＩＣＣが実現される。クラスタＡとＣとの間、ならびにクラスタＢとＤとの間のチップ上の実際の距離は、クラスタＡとＤとの間、ＡとＢとの間、ＢとＣとの間、ならびにＣとＤとの間の距離よりも長いと考えられる。さらに、１つのパイプライン・レジスタＰがクラスタＡとＢとの間、ＢとＣとの間、ＣとＤとの間、ならびにＤとＡとに配置され、２つのパイプライン・レジスタＰがクラスタＡとＣとの間、ならびに遠隔クラスタＢとＤとの間に配置される。したがって、パイプライン・レジスタＰの数は、それぞれのクラスタ間の距離に比例または依存し得る。
【００２３】
第１実施形態によるアーキテクチャは、スーパークラスタＶＬＩＷアーキテクチャ、すなわち完全接続非均一待ち時間クラスタ間ネットワーク（a fully connected non-uniform latency inter-cluster network）を備えたクラスタ化ＶＬＩＷアーキテクチャと呼ぶことができる。このアーキテクチャのスケーラビリティは、図１に示すクラスタ化ＶＬＩＷアーキテクチャのスケーラビリティと図２に示すＲＡＷ状アーキテクチャのスケーラビリティの間にある。より詳細には、ＩＣＣ接続の待ち時間は、チップの最終レイアウト上のそれぞれのクラスタ間の実際の距離に依存するので均一ではない。この態様に関して、本発明のアーキテクチャは、図１による従来技術のクラスタ化ＶＬＩＷアーキテクチャのアーキテクチャとは異なる。これは、リモート・クラスタ間のより深いパイプライン化クラスタ間接続によってワイヤ遅延問題が低減するという利点を有する。クラスタ化ＶＬＩＷアーキテクチャに勝るこのスーパークラスタ化ＶＬＩＷアーキテクチャの利点は、非均一な待ち時間を提供することによってワイヤ遅延問題が改善されることである。しかし一方では、コンパイラが非均一待ち時間を備えたネットワークでＩＣＣをスケジュールしなければならないので、スケジューリングがクラスタ化ＶＬＩＷアーキテクチャよりも複雑となる。
【００２４】
本発明によるアーキテクチャは、それが完全接続クラスタ間ネットワークであるという点で図２によるＲＡＷ状アーキテクチャとは異なる。一方、ＲＡＷ状アーキテクチャは単に、部分接続ネットワークに基づくに過ぎず、すなわちクラスタがそれに隣接するクラスタに接続されるだけである。ＲＡＷアーキテクチャに勝るスーパークラスタ化ＶＬＩＷアーキテクチャの利点は、スイッチング命令が不要であり、かつデッドロックが発生する可能性がないので、よりコンパクトなコードを提供することができることである。一方、スーパークラスタ化ＶＬＩＷアーキテクチャが完全に接続されるので、ハードウェア資源が、配線と同様にクラスタ数の２乗に従って増加する。
【００２５】
図６に、本発明の第２の実施形態によるバス・ベースのクラスタ化ＶＬＩＷアーキテクチャを示す。第２の実施形態のアーキテクチャは、図３によるバス・ベースのクラスタ化ＶＬＩＷアーキテクチャと似ている。クラスタＡとＤとのような離れたクラスタが、中央またはグローバル・バス１００を介して互いに接続される。しかし、これによりクロック周波数が制限される。この欠点は、上述の第１実施形態によるスーパークラスタ化ＶＬＩＷアーキテクチャを提供することによって克服することができる。より詳細には、バス１００は、パイプライン化され、クラスタ間通信の待ち時間が非均一にされ、クラスタ間の距離に依存するようにされる。
【００２６】
例えば、クラスタＡがクラスタＢにデータを送る場合は、１サイクルを必要とし、クラスタＡと遠隔クラスタＤとの間のデータ移動は、クラスタＢとＤとの間に配置された追加のパイプライン・レジスタＰをデータが通過しなければならないので２サイクルを必要とする。しかし、このバス・ベースのスーパークラスタＶＬＩＷアーキテクチャの命令スケジューリングは、第１実施形態によるポイントツーポイントに基づくスーパークラスタＶＬＩＷアーキテクチャのスケジューリングに対応する。
【表１】
2006512659.tif 000003
【００２７】
表１からわかるように、特定のアーキテクチャ、すなわちＶＬＩＷ、クラスタ化ＶＬＩＷ、スーパークラスタ化ＶＬＩＷ、ＲｅＭｏｖｅ、またはＲＡＷの選択は、特定の応用に対して必要なクラスタ数に依存する。ここでＮはクラスタ数である。例えば、マルチメディアへの応用および汎用コードは比較的不規則な応用であり、１命令当たり最大約１６オペレーションのＩＬＰレートを提供する。１クラスタ当たり２〜４の機能単位を使用する場合、クラスタ数を少なくすべきではないことが最近の研究によって示されており、結果として４〜８クラスタとなる。したがって、そうした応用例に対してスーパークラスタ化ＶＬＩＷアーキテクチャが良く適していると思われる。
【００２８】
図７に、第３の実施形態によるセグメント化バスを介するクラスタ間通信ＩＣＣ方式を示す。さらに、前記ＩＣＣ方式を、第２の実施形態によるスーパークラスタ化ＶＬＩＷプロセッサに組み込んでもよい。この方式は、バス１００とバス１００をセグメント化する１つのスイッチ２００とを介して互いに接続された４つのクラスタＣ１〜Ｃ４を有する。スイッチ２００が開いているとき、クラスタ１  Ｃ１とクラスタ２  Ｃ２との間の或るデータ移動、および／またはクラスタ３  Ｃ３とクラスタ４  Ｃ４との間の別のデータ移動を１サイクル内で実施することができる。一方、スイッチ２００が閉じているとき、クラスタ１  Ｃ１またはクラスタ２  Ｃ２からクラスタ３  Ｃ３またはクラスタ４  Ｃ４に１サイクル内でデータを移動させることができる。
【００２９】
第３の実施形態によるＩＣＣ方式は単一バス１００だけを示すが、本発明の原理は、マルチバスＩＣＣ方式およびローカル・バスを使用するＩＣＣ方式に容易に適用することができる。分割バスまたはセグメント化バスを達成するためには、単にいくつかのスイッチをマルチバスまたはローカル・バスに組み込む必要があるだけである。
【００３０】
図８に、上記第３の実施形態に基づく、第４の実施形態によるセグメント化バスを介するクラスタ間通信ＩＣＣ方式を示す。さらに、上記ＩＣＣ方式を、第２の実施形態によるスーパークラスタ化ＶＬＩＷプロセッサに組み込んでもよい。ここでは、クラスタＣ１〜Ｃ４ならびにスイッチ制御がより詳細に示されている。各クラスタＣ１〜Ｃ４は、レジスタ・ファイルＲＦおよび機能単位ＦＵを備え、ビット当たりわずか３つのＯＲゲートＧから構成されるインターフェースを介して１ビット・バス１００に接続される。代替的に、ＡＮＤ、ＮＡＮＤ、またはＮＯＲゲートＧをインターフェースとして使用することもできる。しかし、各クラスタＣ１〜Ｃ４は、明らかに１つより多数のレジスタ・ファイルＲＦおよび１つより多数の機能単位ＦＵを備えることができる。それらの機能単位ＦＵは、何らかのバス・オペレーション専用の特別な機能単位でよい。さらに、バスに書込みをするいくつかの機能単位が存在することができる。
【００３１】
レジスタ・ファイルのバイパス論理の表現は、本発明による分割バスまたはセグメント化バスを理解する上で重要ではないので省略してある。１ビットのバス・ワードだけを示しているが、バスが所望のワード・サイズを有することができることは明らかである。さらに、第２の実施形態によるバスは、ビット当たり２本のワイヤで実装される。一方のワイヤは、バスのｌｅｆｔ  ｔｏ  ｒｉｇｈｔ値を搬送し、他方のワイヤは、ｒｉｇｈｔ  ｔｏ  ｌｅｆｔ値を搬送する。しかし、他のバスの実装も可能である。
【００３２】
バス線ごとにいくつかのＭＯＳトランジスタＭ１、Ｍ２を用いてバス分割スイッチ２００を実装することができる。
【００３３】
バスのアクセス制御は、クラスタＣ１〜Ｃ４により、ｌｏｃａｌ＿ｍｏｖまたはｇｌｏｂａｌ＿ｍｏｖオペレーションを発することによって実施することができる。こうしたオペレーションの引数（arguments）は、ソース・レジスタとターゲット・レジスタである。ｌｏｃａｌ＿ｍｏｖオペレーションは、バス分割スイッチを開くことによって単にバスのセグメントを使用するだけであるが、ｇｌｏｂａｌ＿ｍｏｖは、バス分割スイッチを閉じることによってバス全体を使用する。
【００３４】
代替的に、マルチキャストを可能にするために、データを移動するオペレーションは、異なるクラスタＣ１〜Ｃ４に属する複数のターゲット・レジスタ、すなわちターゲット・レジスタのリストを受け取ってもよい。これもまた、１ビット・ベクトル中のレジスタ／クラスタ・マスクにより実施することができる。
【００３５】
図９に、上記第３の実施形態に基づく、本発明の第５の実施形態によるセグメント化バスを介するクラスタ間通信ＩＣＣ方式を示す。さらに、上記ＩＣＣ方式を、第２の実施形態によるスーパークラスタ化ＶＬＩＷプロセッサに組み込んでもよい。図７は、６つのクラスタＣ１〜Ｃ６と、３つのセグメント１００ａ、１００ｂ、１００ｃを備えたバス１００と、２つのスイッチ２００ａ、２００ｂとを示す。すなわち、２つのクラスタが各バス・セグメントに関連付けられる。明らかに、クラスタ、スイッチおよびバス・セグメントの数はこの例から変わってもよい。クラスタ、クラスタとバスのインターフェース、ならびにスイッチは、図８を参照しながら第４の実施形態で説明したのと同様に実施することができる。第５の実施形態では、スイッチがデフォルトで閉じているとみなされる。
【００３６】
クラスタにより、送信オペレーションまたは受信オペレーションによってバス・アクセスを実施することができる。クラスタがデータを送信する必要がある場合、すなわちバスを介して他のクラスタへのデータ移動を実施する必要がある場合、上記クラスタは送信オペレーションを実施し、上記送信オペレーションは２つの引数、すなわちソース・レジスタと、送信方向すなわちデータを送信すべき方向とを有する。送信方向は「ｌｅｆｔ」または「ｒｉｇｈｔ」でよく、マルチキャストを実現するために、「ａｌｌ」、すなわち「ｌｅｆｔ」および「ｒｉｇｈｔ」でもよい。
【００３７】
例えば、クラスタ３  Ｃ３がデータをクラスタ１  Ｃ１に移動する必要がある場合、クラスタ３  Ｃ３は、ソース・レジスタ、すなわち移動すべきデータが格納されているクラスタ３  Ｃ３のレジスタの１つと、データを移動すべき方向を示す送信方向とを引数として送信オペレーションを発する。ここでは送信方向は左である。したがって、クラスタ５および６  Ｃ５、Ｃ６を備えたバス・セグメント１００ｃはこのデータ移動について不要であるので、クラスタ４  Ｃ４とクラスタ５  Ｃ５との間のスイッチ２００ｂが開く。あるいは、他のより一般的な言葉では、クラスタが送信オペレーションを発したとき、送信方向の反対側の最も近くに配置されるスイッチが開き、それによってバスの使用が、データ移動を実施するのに実際に必要なセグメント、すなわち送信側クラスタと受信側クラスタとの間のセグメントだけに限定される。
【００３８】
クラスタ３  Ｃ３が同一のデータをクラスタ１および６  Ｃ１、Ｃ６に送信する必要がある場合、すなわちマルチキャストをする必要がある場合、送信方向は「ａｌｌ」となる。したがって、クラスタ３  Ｃ３とクラスタ１  Ｃ１の間のすべてのスイッチ、ならびにクラスタ３および６  Ｃ３、Ｃ６の間のすべてのスイッチが閉じたままとなる。
【００３９】
別の例によれば、クラスタ３  Ｃ３がクラスタ１  Ｃ１からデータを受信する必要がある場合、クラスタ３  Ｃ３は、宛先レジスタ、すなわち受信したデータを格納すべきクラスタ３  Ｃ３のレジスタの１つと、データを受信すべき方向を示す受信方向とを引数として受信オペレーションを発する。ここでは受信方向は左である。したがってクラスタ５および６  Ｃ５、Ｃ６を有するバス・セグメントはこのデータ移動について不要であるので、クラスタ４とクラスタ５  Ｃ４、Ｃ５の間のスイッチが開く。あるいは、他のより一般的な言葉では、クラスタが受信オペレーションを発したとき、受信方向の反対側の最も近くに配置されるスイッチが開き、それによってバスの使用が、データ移動を実施するのに実際に必要なセグメント、すなわち送信側クラスタと受信側クラスタとの間のセグメントだけに限定される。
【００４０】
マルチキャストを提供するために、受信方向は未指定でもよい。したがって、すべてのスイッチが閉じられたままとなる。
【００４１】
第３の実施形態に基づく第６の実施形態によれば、スイッチはデフォルト状態を有さない。さらに、スイッチ２００をプログラミングするためにスイッチ構成ワードが提供される。上記スイッチ構成ワードは、どのスイッチ２００が開き、どのスイッチ２００が閉じるかを決定する。スイッチ構成ワードは、送信／受信オペレーションのような通常のオペレーションの場合のように、各サイクルで発することができる。したがって、第５の実施形態による前述の送信／受信方向を引数とする送信／受信オペレーションによるバス・アクセスとは対照的に、バス・アクセスは、送信／受信オペレーションおよびスイッチ構成ワードによって実施される。さらに、上記ＩＣＣ方式を、第２の実施形態によるスーパークラスタ化ＶＬＩＷプロセッサに組み込んでもよい。
【図面の簡単な説明】
【００４２】
【図１】クラスタ化ＶＬＩＷアーキテクチャを示す図である。
【図２】ＲＡＷ状アーキテクチャを示す図である。
【図３】バス・ベースのクラスタ化アーキテクチャを示す図である。
【図４】ＲｅＭｏｖｅアーキテクチャを示す図である。
【図５】第１実施形態によるポイント−ポイント・クラスタ化ＶＬＩＷアーキテクチャを示す図である。
【図６】第２実施形態によるバス・ベースのクラスタ化ＶＬＩＷアーキテクチャを示す図である。
【図７】第３実施形態によるセグメント化バスを介するＩＣＣ方式を示す図である。
【図８】第４実施形態によるセグメント化バスを介するＩＣＣ方式を示す図である。
【図９】第５実施形態によるセグメント化バスを介するＩＣＣ方式を示す図である。
【図１】
2006512659.tif 000004
【図２】
2006512659.tif 000005
【図３】
2006512659.tif 000006
【図４】
2006512659.tif 000007
【図５】
2006512659.tif 000008
【図６】
2006512659.tif 000009
【図７】
2006512659.tif 000010
【図８】
2006512659.tif 000011
【図９】
2006512659.tif 000012
【国際調査報告】
2006512659.tif 000013
2006512659.tif 000014
2006512659.tif 000015