(57)【要約】本発明の基本概念は、スイッチを開く／閉じることによってバスをより小さい独立セグメントに分割するために、バスに沿って前記スイッチを追加することである。クラスタ化命令レベル並列処理プロセッサが、少なくとも１つのレジスタ・ファイル（ＲＦ）および少なくとも１つの機能単位（ＦＵ）をそれぞれ有する複数のクラスタ（Ｃ１〜Ｃ６）と、前記クラスタ（Ｃ１〜Ｃ６）を接続するバス手段（１００）とを有し、前記バス（１００）は、複数のバス・セグメント（１００ａ、１００ｂ、１００ｃ）と、隣接するバス・セグメント（１００ａ、１００ｂ、１００ｃ）間に配置されたスイッチング手段（２００）とを有する。前記スイッチング手段（２００）は、隣接するバス・セグメント（１００ａ、１００ｂ、１００ｃ）を接続または切断するのに使用される。さらに、クラスタ化命令レベル並列処理プロセッサ中のバス（１００）にアクセスする方法が示される。前記バス（１００）は、前記バス（１００）に沿った少なくとも１つのスイッチング手段（２００）を有する。クラスタは、ソース・レジスタおよび転送ワードに基づく送信オペレーション、または指定ソース・レジスタおよび転送ワードに基づく受信オペレーションを実施することができる。次いで前記スイッチング手段が、前記転送ワードに従って開かれる／閉じられる。
2006512655.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのレジスタ・ファイルおよび少なくとも１つの機能単位をそれぞれ含む複数のクラスタと、
前記クラスタを接続するバス手段であって、複数のバス・セグメントを含むバス手段と、
隣接するバス・セグメント間に配置され、隣接するバス・セグメントを接続または切断するスイッチング手段とを備えたクラスタ化命令レベル並列処理プロセッサ。
【請求項２】
前記クラスタの各々が少なくとも１つの前記バス・セグメントに結合される請求項１に記載のプロセッサ。
【請求項３】
２つ以上のクラスタが同じバス・セグメントに結合される請求項１または請求項２に記載のプロセッサ。
【請求項４】
前記バス手段が、少なくとも２つのバスを含むマルチバスである請求項１から請求項３のいずれかに記載のプロセッサ。
【請求項５】
クラスタ化命令レベル並列処理プロセッサ内のバスにアクセスする方法において、前記バスは、前記バスに沿った少なくとも１つのスイッチング手段を備え、
当該方法は、
ソース・レジスタおよび転送ワードに基づく送信オペレーションを実施するステップ、および／または、
指定ソース・レジスタおよび転送ワードに基づく受信オペレーションを実施するステップと、
前記転送ワードに従って前記スイッチング手段を開く／閉じるステップとを含む方法。
【請求項６】
前記転送ワードは、前記送信オペレーションについての送信方向と前記受信オペレーションについての受信方向を表す請求項５に記載の方法。
【請求項７】
前記スイッチング手段のデフォルト状態は閉じた状態である請求項６に記載の方法。
【請求項８】
前記送信方向または前記受信方向と反対の方向に前記送信オペレーションまたは前記受信オペレーションを実施するクラスタに最も近い前記スイッチング手段のうちの１つが開かれる請求項７に記載の方法。
【請求項９】
前記送信方向または前記受信方向が、左（ｌｅｆｔ）、右（ｒｉｇｈｔ）、または全て（ａｌｌ）である請求項６に記載の方法。
【請求項１０】
前記送信方向または受信方向が全て（ａｌｌ）である場合、スイッチング手段は開かれない請求項９に記載の方法。
【請求項１１】
前記転送ワードはスイッチ構成ワードを表し、前記スイッチング手段は、前記構成ワードに従って開かれる／閉じられる請求項５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラスタ化された命令レベル並列処理プロセッサと、クラスタ化命令レベル並列処理プロセッサにおけるバスにアクセスする方法とに関する。
【背景技術】
【０００２】
命令レベル並列処理（ＩＬＰ）プロセッサの領域での１つの主な問題は、レジスタ・ファイル資源のスケーラビリティである。過去には、現在実行中のすべての並列演算の結果を維持する多数のレジスタの必要性をカバーするために、集中型資源（centralised resources）の周辺にＩＬＰアーキテクチャが設計された。集中型レジスタ・ファイルの使用により、機能単位間のデータ共有が容易となり、レジスタ割振りおよびスケジューリングが単純化される。しかし、多数のポートを有する巨大なモノリシック・レジスタ・ファイルは構築するのが難しく、プロセッサのサイクル・タイムを制限するので、このような単一の集中型レジスタのスケーラビリティは限られている。
【０００３】
ＶＬＳＩ技術およびコンピュータ・アーキテクチャの領域での最近の発展により、ある分野では非集中型の編成が好ましい場合があることが提唱されている。将来のプロセッサの性能は計算上の制約よりも通信上の制約によって制限されることが予見される。この問題に対する一解決策は、資源を分割し、こうした資源をプロセッサの上に物理的に分散させ、通信速度ならびに待ち時間に対して悪影響を有する長いワイヤを回避することである。これはクラスタ化によって達成することができる。クラスタ化プロセッサのいくつかの資源では、同様の機能単位およびレジスタ・ファイルが別々のクラスタにわたって分散されている。具体的にはクラスタ化ＩＬＰアーキテクチャでは、各クラスタが１組の機能単位およびローカル・レジスタを備えている。クラスタ化プロセッサの背後にある主なアイデアは、頻繁に対話する計算の部分を同一クラスタ上に割り振り、一方で、まれにしか通信しない部分または重要でない通信を異なるクラスタ上に割り振られるというものである。しかし問題は、クラスタ間通信ＩＣＣをどのようにハードウェア・レベル（ワイヤおよびロジック）ならびにソフトウェア・レベル（変数をレジスタに割り振ること、およびスケジューリング）で処理するかである。
【０００４】
最も広く用いられているＩＣＣ方式は、完全なポイントツーポイント接続性トポロジを有する。すなわち、それぞれの２つのクラスタがデータの交換を可能にする専用配線を有する。一方では、完全な接続性を有するポイントツーポイントＩＣＣは命令スケジューリングを単純化するが、他方では、必要な配線量Ｎ（Ｎ−１）のためにスケーラビリティが制限される。ここでＮはクラスタ数である。したがって、配線の２次的増大により、スケーラビリティが２〜１０クラスタに制限される。
【０００５】
さらに、ポイントツーポイントＩＣＣに関して部分接続ネットワークを使用することも可能である。ここで、クラスタは他のすべてのクラスタとは接続（完全接続）されておらず、例えば単に隣接するクラスタと接続されるだけである。配線の複雑さは低減されるが、プロセッサをプログラミングする問題が増大し、その問題は、既存の自動スケジューリングおよび割振りツールでは満足に解決されない。
【０００６】
さらに別のＩＣＣ方式はグローバル・バス接続性である。完全なポイントツーポイント接続性トポロジを有する上記ＩＣＣ方式と比較して必要なハードウェア資源はずっと少ないが、クラスタがバスを介して互いに完全に接続される。さらに、この方式は値マルチキャストを可能にする。すなわち、同じ値をいくつかのクラスタに同時に送ることができ、または言い換えれば、いくつかのクラスタがバスを同時に読み取ることによって同じ値を取得することができる。この方式はさらに、静的スケジューリングに基づく。したがって、アービタも、どんな制御信号も不要である。バスは共有資源を構成するので、１サイクル当たり実施することが可能な転送は１つだけであり、通信帯域幅が非常に低い状態に制限される。さらに、バスの伝播遅延によりＩＣＣの待ち時間が増大する。クラスタ数の増加と共に待ち時間はさらに増大し、そのようなＩＣＣ方式のプロセッサのスケーラビリティが制限される。
【０００７】
通信帯域幅が制限されることに伴う問題は、マルチバスを使用することによって部分的に克服することができる。マルチバスでは、ＩＣＣに対して１つのバスではなく、２つのバスが使用される。これにより通信帯域幅が向上するが、バスの待ち時間を低減することなくハードウェア・オーバヘッドも増大する。
【０００８】
別のＩＣＣ通信方式では、ローカル・バスが使用される。このＩＣＣ方式は、部分接続通信方式である。したがって、ローカル・バスは、単に一定量のクラスタを接続するだけで、すべてを一度に接続するわけではない。この方式の欠点は、例えば異なるローカル・バスに接続されたクラスタ間で値を送るべき場合、１サイクル内で直接送ることができず、少なくとも２サイクルが必要であるので、プログラムが難しいことである。
【０００９】
したがって、既知のＩＣＣ方式の利点および欠点は以下のように要約することができる。ポイントツーポイント・トポロジは高い帯域幅を有するが、配線の複雑さがクラスタ数の２乗に従って増大する。マルチキャスト、すなわちいくつかの他のクラスタに値を送ることが不可能である。一方、バス・トポロジは、複雑さがクラスタ数に比例して増大するので複雑さが少なく、マルチキャストを可能にするが、帯域幅が低い。ＩＣＣ方式を完全に接続することができ、または部分的に接続することができる。完全に接続する方式は高い帯域幅を有し、ソフトウェアの複雑さが少ないが、配線の複雑さが増大し、あまりスケーラブルではない。部分的に接続する方式は、良好なスケーラビリティとハードウェアの複雑さが少ないことを結びつけるが、帯域幅が低く、ソフトウェアが複雑である。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
したがって、本発明の目的は、クラスタ化ＩＬＰプロセッサのためのＩＣＣ方式内でバスの帯域幅を改善すると共に、基礎となるプログラミング・システムの複雑さを過度に増すことなく上記バスの待ち時間を低減することである。
【課題を解決するための手段】
【００１１】
この問題は、請求項１に記載のＩＬＰプロセッサと、請求項５に記載のクラスタ化命令レベル並列処理プロセッサ内のバスにアクセスする方法とによって解決される。
【００１２】
本発明の基本概念は、スイッチを開／閉によってバスをより小さい独立セグメントに分割するために、バスに沿って上記スイッチを追加することである。
【００１３】
本発明によれば、クラスタ化命令レベル並列処理プロセッサが、複数のクラスタＣ１〜Ｃ４と、複数のバス・セグメント１００ａ、１００ｂ、１００ｃを有するバス手段１００と、隣接するバス・セグメント１００ａ、１００ｂ、１００ｃの間に配置されたスイッチング手段２００ａ、２００ｂとを備える。上記バス手段１００は、上記クラスタＣ１〜Ｃ４を接続するために使用され、上記クラスタＣ１〜Ｃ４は、それぞれ少なくとも１つのレジスタ・ファイルＲＦおよび少なくとも１つの機能単位ＦＵを備える。上記スイッチング手段２００は、隣接するバス・セグメント１００ａ、１００ｂ、１００ｃを接続または切断するために使用される。
【００１４】
バス１００を異なるセグメントに分割することにより、１つのバス・セグメント内のバスの待ち時間が改善される。それでも、バス全体、すなわち閉じたすべてのスイッチの全待ち時間がクラスタ数に比例して増大するが、ローカル・クラスタまたは隣接するクラスタ間のデータ移動の待ち時間を、異なるバス・セグメント、すなわち異なるスイッチを介する移動よりも短くすることができる。バスＩＣＣのグローバル相互接続要件による、ローカル通信、すなわち隣接するクラスタ間の通信のスローダウンは、スイッチを開くことによって回避することができ、その結果、待ち時間のより少ない、より短いバス、すなわちバス・セグメントを達成することができる。さらに、スイッチを取り込むことは、実施するのが安価かつ容易であると共に、完全接続ＩＣＣを断念することなく、バスの利用可能な帯域幅が向上し、長いバスによって引き起こされる待ち時間問題が低減される。
【００１５】
本発明の一態様によれば、上記バス手段１００は、少なくとも２つのバスを含むマルチバスであり、それにより通信帯域幅が改善される。
【００１６】
本発明はまた、クラスタ化命令レベル並列処理プロセッサ中のバス１００にアクセスする方法に関する。上記バス１００は、上記バス１００に沿った少なくとも１つのスイッチング手段２００を備える。クラスタＣ１〜Ｃ４は、ソース・レジスタおよび転送ワードに基づく送信オペレーション、並びに、指定ソース・レジスタおよび転送ワードに基づく受信オペレーションのいずれをも実施することができる。次いで上記スイッチング手段２００は、上記転送ワードに従って開く／閉じる。
【００１７】
ソフトウェアの観点からは、分割バスまたはセグメント化バスのスケジューリングは、グローバル・バスＩＣＣよりもあまり複雑ではなく、スイッチを制御するために必要なのは、ほんの少数の論理ゲートだけである。
【００１８】
本発明の別の態様によれば、上記転送ワードは、送信オペレーションについての送信方向と受信オペレーションについての受信方向とを表し、データ移動方向に従ったスイッチの制御が可能となる。
【発明を実施するための最良の形態】
【００１９】
次に、図面を参照しながら本発明をより詳細に説明する。
【００２０】
最も広く用いられているＩＣＣ方式は、完全なポイントツーポイント接続性トポロジである。すなわち、それぞれの２つのクラスタがデータの交換を可能にする専用配線を有する。４つのクラスタを有する代表的なＩＬＰプロセッサを図１に示す。
【００２１】
図２に、グローバル・バス接続性を有する別のＩＣＣ方式を示す。図１に示すＩＣＣ方式と比べて必要なハードウェア資源がずっと少ないが、クラスタが、バスを介して互いに完全に接続される。さらに、この方式は値マルチキャストを可能にする。すなわち、同じ値をいくつかのクラスタに同時に送ることができ、即ち、言い換えれば、いくつかのクラスタがバスを同時に読み取ることによって同じ値を取得することができる。
【００２２】
通信帯域幅が制限されることに伴う問題は、図３に示すマルチバスを使用することによって部分的に克服することができる。図３に示すマルチバスでは、ＩＣＣに対して１つのバスではなく、２つのバスが使用される。これにより通信帯域幅が向上するが、バスの待ち時間を低減することなくハードウェア・オーバヘッドも増大する。
【００２３】
図４に、ローカル・バスを使用する別のＩＣＣ通信方式を示す。ＩＣＣ方式は部分接続通信方式である。したがって、ローカル・バスは、単に一定量のクラスタを接続するだけで、すべてを一度に接続するわけではない。例えば、クラスタ１から３が第１ローカル・バスに接続され、クラスタ２から４が第２ローカル・バスに接続される。この方式の欠点は、例えばクラスタ１からクラスタ４に値を送るべき場合、１サイクル内で直接送ることができず、少なくとも２サイクルが必要であるので、プログラムすることが難しいことである。
【００２４】
図５に、第１実施形態によるセグメント化バスを介するクラスタ間通信ＩＣＣ方式を示す。上記ＩＣＣ方式をＶＬＩＷプロセッサに組み込んでもよい。この方式は、バス１００を介して互いに接続された４つのクラスタＣ１〜Ｃ４と、バスをセグメント化する１つのスイッチ２００とを備える。スイッチ２００が開いているとき、クラスタ１  Ｃ１とクラスタ２  Ｃ２との間の或るデータ移動、および／またはクラスタ３  Ｃ３とクラスタ４  Ｃ４との間の別のデータ移動を１サイクル内で実施することができる。一方、スイッチ２００が閉じるとき、クラスタ１  Ｃ１またはクラスタ２  Ｃ２からクラスタ３  Ｃ３またはクラスタ４  Ｃ４に１サイクル内でデータを移動させることができる。
【００２５】
この方式では、クラスタ数およびスイッチ数のようなハードウェア資源のスケーラビリティが、図２に示す既知のＩＣＣの場合と同様に線形である。
【００２６】
第１実施形態によるＩＣＣ方式は単一のバス１００だけを示すが、本発明の原理は、図３に示すマルチバスＩＣＣ方式と、図４に示すローカル・バスを使用するＩＣＣ方式とに容易に適用することができる。分割バスまたはセグメント化バスを達成するためには、単にいくつかのスイッチ２００をマルチバスまたはローカル・バスに組み込む必要があるだけである。
【００２７】
図６に、第２実施形態によるセグメント化バスを介するクラスタ間通信ＩＣＣ方式を示す。ここでは、クラスタＣ１〜Ｃ４ならびにスイッチ制御がより詳細に示されている。各クラスタＣ１〜Ｃ４は、レジスタ・ファイルＲＦおよび少なくとも１つの機能単位ＦＵを備え、ビット当たりわずか３つのＯＲゲートＧから構成されるインターフェースを介して１ビット・バス１００に接続される。代替的に、ＡＮＤ、ＮＡＮＤ、またはＮＯＲゲートＧをインタフェースとして使用することもできる。しかし、各クラスタＣ１〜Ｃ４は、明らかに１つより多数のレジスタ・ファイルＲＦおよび１つより多数の機能単位ＦＵを有することができる。これらの機能単位ＦＵは、何らかのバス・オペレーション専用の特別な機能単位ＦＵでよい。さらに、バスに書込みをするいくつかの機能単位が存在してよい。
【００２８】
レジスタ・ファイルのバイパス論理の表現は、本発明による分割バスまたはセグメント化バスを理解する上で重要ではないので省略してある。１ビットのバス・ワードだけを示しているが、バスが所望のワード・サイズを有することができることは明らかである。さらに、第２実施形態によるバスは、ビット当たり２本のワイヤで実装される。一方のワイヤは、バスのｌｅｆｔ  ｔｏ  ｒｉｇｈｔ値を搬送し、他方のワイヤは、ｒｉｇｈｔ  ｔｏ  ｌｅｆｔ値を搬送する。しかし、他のバスの実装も可能である。
【００２９】
バス線ごとにわずか数個のＭＯＳトランジスタＭ１、Ｍ２を用いてバス分割スイッチを実装することができる。
【００３０】
バスのアクセス制御は、クラスタＣ１〜Ｃ４により、ｌｏｃａｌ＿ｍｏｖまたはｇｌｏｂａｌ＿ｍｏｖオペレーションを発することによって実施することができる。こうしたオペレーションの引数（arguments）は、ソース・レジスタとターゲット・レジスタである。ｌｏｃａｌ＿ｍｏｖオペレーションは、バス分割スイッチを開くことによって単にバスのセグメントを使用するだけであるが、ｇｌｏｂａｌ＿ｍｏｖは、バス分割スイッチ２００を閉じることによってバス１００の全体を使用する。
【００３１】
代替的に、マルチキャストを可能にするために、データを移動するオペレーションは、異なるクラスタＣ１〜Ｃ４に属する複数のターゲット・レジスタ、すなわちターゲット・レジスタのリストを受け取ってもよい。これもまた、１ビット・ベクトル中のレジスタ／クラスタ・マスクにより実施することができる。
【００３２】
図７に、本発明の第３実施形態によるセグメント化バスを介するクラスタ間通信ＩＣＣ方式を示す。図７は、６個のクラスタＣ１〜Ｃ６と、３つのセグメント１００ａ、１００ｂ、１００ｃを備えたバス１００と、２つのスイッチ２００ａ、２００ｂとを示す。すなわち、２つのクラスタが各バス・セグメントに関連付けられる。明らかに、クラスタ、スイッチ、バス・セグメントの数はこの例から変わってもよい。クラスタＣ１〜Ｃ６、クラスタとバス１００のインタフェース、ならびにスイッチ２００は、図６を参照しながら第２実施形態で説明したのと同様に実施することができる。第３実施形態では、スイッチがデフォルトで閉じているとみなされる。
【００３３】
クラスタＣ１〜Ｃ６により、送信オペレーションまたは受信オペレーションによってバス・アクセスを実施することができる。クラスタがデータを送信する必要がある場合、すなわちバスを介して他のクラスタへのデータ移動を実施する必要がある場合、上記クラスタは送信オペレーションを実施し、上記送信オペレーションは２つの引数、すなわちソース・レジスタと、送信方向すなわちデータを送信すべき方向とを有する。送信方向は「ｌｅｆｔ」または「ｒｉｇｈｔ」でよく、マルチキャストを実現するために、「ａｌｌ」、すなわち「ｌｅｆｔ」および「ｒｉｇｈｔ」でもよい。
【００３４】
例えば、クラスタ３  Ｃ３がデータをクラスタ１  Ｃ１に移動する必要がある場合、クラスタ３  Ｃ３は、ソース・レジスタ、すなわち移動すべきデータが格納されているクラスタ３  Ｃ３のレジスタの１つと、データを移動すべき方向を示す送信方向とを引数として送信オペレーションを発する。ここでは送信方向は左である。したがって、クラスタ５および６  Ｃ５、Ｃ６を備えたバス・セグメント２００ｂはこのデータ移動について不要であるので、クラスタ４  Ｃ４とクラスタ５  Ｃ５との間のスイッチ２００ｂが開く。あるいは、他のより一般的な言葉では、クラスタが送信オペレーションを発したとき、送信方向の反対側の最も近くに配置されるスイッチが開き、それによってバスの使用が、データ移動を実施するのに実際に必要なセグメント、すなわち送信側クラスタと受信側クラスタの間のセグメントだけに限定される。
【００３５】
クラスタ３  Ｃ３が同一のデータをクラスタ１および６  Ｃ１、Ｃ６に送信する必要がある場合、すなわちマルチキャストをする必要がある場合、送信方向は「ａｌｌ」となる。したがって、クラスタ３とクラスタ１の間のすべてのスイッチ２００ａ、ならびにクラスタ３および６の間のすべてのスイッチ２００ｂが閉じたままとなる。
【００３６】
別の例によれば、クラスタ３  Ｃ３がクラスタ１  Ｃ１からデータを受信する必要がある場合、クラスタ３  Ｃ３は、宛先レジスタ、すなわち受信したデータを格納すべきクラスタ３  Ｃ３のレジスタの１つと、データを受信すべき方向を示す受信方向とを引数として受信オペレーションを発する。ここでは受信方向は左である。したがってクラスタ５および６  Ｃ５、Ｃ６を有するバス・セグメント１００ｃはこのデータ移動について不要であるので、クラスタ４とクラスタ５  Ｃ４、Ｃ５の間のスイッチ２００ｂが開く。あるいは、他のより一般的な言葉では、クラスタが受信オペレーションを発したとき、受信方向の反対側の最も近くに配置されるスイッチが開き、それによってバスの使用が、データ移動を実施するのに実際に必要なセグメント、すなわち送信側クラスタと受信側クラスタの間のセグメントだけに限定される。
【００３７】
マルチキャストを実現するために、受信方向は未指定でもよい。したがって、すべてのスイッチが閉じられたままとなる。
【００３８】
第３実施形態に基づく第４実施形態によれば、スイッチはデフォルト状態を有さない。さらに、スイッチ２００をプログラミングするためにスイッチ構成ワードが提供される。上記スイッチ構成ワードは、どのスイッチ２００が開き、どのスイッチ２００が閉じるかを決定する。スイッチ構成ワードは、送信／受信オペレーションのような通常のオペレーションの場合のように、各サイクルで発することができる。したがって、第３実施形態による前述の送信／受信方向を引数とする送信／受信オペレーションによるバス・アクセスとは対照的に、バス・アクセスが、送信／受信オペレーションおよびスイッチ構成ワードによって実施される。
【図面の簡単な説明】
【００３９】
【図１】ポイントツーポイント・クラスタ間通信ＩＣＣ方式を示す図である。
【図２】バスを介するＩＣＣ方式を示す図である。
【図３】マルチバスを介するＩＣＣ方式を示す図である。
【図４】ローカル・バスを介するＩＣＣ方式を示す図である。
【図５】第１の実施形態によるセグメント化バスを介するＩＣＣ方式を示す図である。
【図６】第２の実施形態によるセグメント化バスを介するＩＣＣ方式を示す図である。
【図７】第３の実施形態によるセグメント化バスを介するＩＣＣ方式を示す図である。
【図１】
2006512655.tif 000003
【図２】
2006512655.tif 000004
【図３】
2006512655.tif 000005
【図４】
2006512655.tif 000006
【図５】
2006512655.tif 000007
【図６】
2006512655.tif 000008
【図７】
2006512655.tif 000009
【国際調査報告】
2006512655.tif 000010
2006512655.tif 000011