(57)【要約】【課題】物理的に離れたプロセッサの間の通信の待ち時間を減らし、バス帯域幅消費を減らし、プロセッサおよび階層メモリ・システムの間の一般データ転送のためにバス帯域幅を解放する、改善されたデータ処理システム・アーキテクチャを提供すること。【解決手段】。各プロセッサ通信レジスタ（ＰＣＲ）に、パイプライン化されたマルチプロセッシングまたは並列マルチプロセッシングに有用な同一のプロセッサ通信情報がストアされる。各プロセッサは、すべてのＰＣＲ内のその排他的なセクタを更新し、他のすべてのプロセッサがＰＣＲデータ内の変更を即座に見られるようにし、キャッシュ・サブシステムを迂回する。情報へのアクセスを一時的に制限するか、すべてのプロセッサに継続的に競争することを強制し、すべてのプロセッサに即座に転送されるプロセッサ通信を提供することによって、マルチプロセッサ・システムで効率が高められる。【選択図】図１
2004192619.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサを含むマルチプロセッサ・システムでのプロセッサ通信の方法であって、前記複数のプロセッサの少なくとも１つのプロセッサが、前記少なくとも１つのプロセッサにプロセッサ通信レジスタ（ＰＣＲ）内にストアされた情報への継続的アクセスを提供する前記ＰＣＲを含み、前記方法が、
前記複数のプロセッサのプロセッサに含まれるＰＣＲの１つまたは複数のセクタから情報を検索するステップであって、前記セクタの１つが、前記複数のプロセッサの関連する１つだけによってストアされるように割り振られる、ステップと、
前記複数のプロセッサの各ＰＣＲ内の関連するセクタに前記関連するプロセッサからの情報をストアするステップと
を含む方法。
【請求項２】
さらに、前記複数のプロセッサの少なくとも２つのプロセッサが、めいめいのＰＣＲから同時に情報を検索する、請求項１に記載の方法。
【請求項３】
さらに、同一の情報が、前記複数のプロセッサに含まれる各めいめいのＰＣＲに含まれる、請求項１に記載の方法。
【請求項４】
さらに、前記情報が、パイプライン化されたマルチプロセッシングまたは並列マルチプロセッシングを調整する際に前記複数のプロセッサにとって有用である、請求項１に記載の方法。
【請求項５】
さらに、前記１つまたは複数のセクタのセクタのそれぞれが、前記複数のプロセッサの前記関連する１つだけによるストアのために排他的に割り振られる、請求項１に記載の方法。
【請求項６】
さらに、前記１つまたは複数のセクタのセクタのそれぞれが、４バイトである、請求項１に記載の方法。
【請求項７】
さらに、前記複数のプロセッサの各プロセッサが、それ自体のＰＣＲに保管された情報をシステム・メモリからロードすることなく、そのような情報へのアクセスを有するように、各ＰＣＲ内の各セクタを継続的に更新するステップを含む、請求項１に記載の方法。
【請求項８】
複数のプロセッサを含むマルチプロセッサ・システム内のプロセッサであって、
複数のセクタを有するプロセッサ通信レジスタ（ＰＣＲ）であって、前記プロセッサが、前記ＰＣＲへのアクセスを有し、前記複数のセクタの各セクタにストアされた情報を検索することができ、前記ＰＣＲ内の前記複数のセクタのセクタの１つが、前記１つのセクタがそれに関連するプロセッサによって更新される時に、前記プロセッサが更新される情報へのアクセスを可能にされるように、前記複数のプロセッサの前記関連するプロセッサによってのみストアされるために割り振られる、ＰＣＲ
を含むプロセッサ。
【請求項９】
前記情報が、パイプライン化されたマルチプロセッシングまたは並列マルチプロセッシングを調整する際に前記複数のプロセッサにとって有用である、請求項８に記載のプロセッサ。
【請求項１０】
前記複数のセクタのセクタのそれぞれが、前記複数のプロセッサの前記関連するプロセッサだけによるストアのために割り振られる、請求項８に記載のプロセッサ。
【請求項１１】
前記複数のセクタのセクタのそれぞれが、４バイトである、請求項８に記載のプロセッサ。
【請求項１２】
前記プロセッサが、前記複数のセクタ内の関連するセクタを有し、さらに、前記複数のプロセッサの各プロセッサが、各更新されるセクタにストアされる情報をシステム・メモリから検索せずに、そのような情報へのアクセスを有するように、前記複数のプロセッサ内の前記プロセッサに関連する各ＰＣＲ内の各セクタを更新する手段を含む、請求項８に記載のプロセッサ。
【請求項１３】
前記ＰＣＲにストアされる前記情報が、前記複数のプロセッサに含まれるすべてのＰＣＲに含まれる同一の情報である、請求項８に記載のプロセッサ。
【請求項１４】
マルチプロセッサ・システムであって、
複数のプロセッサであって、各プロセッサが、複数のセクタを有するプロセッサ通信レジスタ（ＰＣＲ）を含み、各プロセッサが、前記ＰＣＲ内の前記複数のセクタの各セクタにストアされた情報を検索するためのアクセスを有し、前記複数のプロセッサ内の各ＰＣＲ内の前記複数のセクタのセクタが、前記複数のプロセッサの関連するプロセッサだけによるストアのために割り振られ、セクタがそれに関連するプロセッサによって更新される時に、ＰＣＲを含む各プロセッサが更新された情報へのアクセスを使用可能にされるように、前記複数のプロセッサの各プロセッサが、各ＰＣＲ内の前記複数のセクタ内の関連するセクタを更新する、プロセッサ
を含むマルチプロセッサ・システム。
【請求項１５】
前記情報が、パイプライン化されたマルチプロセッシングまたは並列マルチプロセッシングを調整する際に前記複数のプロセッサにとって有用である、請求項１４に記載のマルチプロセッサ・システム。
【請求項１６】
前記複数のセクタのセクタのそれぞれが、前記複数のプロセッサの前記関連するプロセッサだけによるストアのために排他的に割り振られる、請求項１４に記載のマルチプロセッサ・システム。
【請求項１７】
前記複数のセクタのセクタのそれぞれが、４バイトである、請求項１４に記載のマルチプロセッサ・システム。
【請求項１８】
ＰＣＲを含む前記複数のプロセッサの各プロセッサが、前記複数のセクタの各更新されたセクタにストアされた情報をシステム・メモリから検索せずに、そのような情報へのアクセスを有するように、前記複数のプロセッサの各プロセッサが、そのプロセッサに関連する前記複数のプロセッサ内の各ＰＣＲ内の各セクタを更新する、請求項１４に記載のマルチプロセッサ・システム。
【請求項１９】
さらに、前記複数のプロセッサの少なくとも２つのプロセッサが、めいめいのＰＣＲから情報を同時に検索する、請求項１４に記載のマルチプロセッサ・システム。
【請求項２０】
同一の情報が、前記複数のプロセッサに含まれる各めいめいのＰＣＲに含まれる、請求項１４に記載のマルチプロセッサ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的にはデータ処理システムに関し、具体的には、データ処理システム内のプロセッサ間の通信に関する。さらに具体的には、本発明は、マルチプロセッサ・データ処理システム内のプロセッサ通信および調整の方法、処理ユニット、およびシステムに関する。
【背景技術】
【０００２】
コンピュータ技術で、複数の個々のプロセッサの処理能力を連繋して利用することによって、より高いコンピュータ・システム性能を達成できることが周知である。マルチプロセッサ（ＭＰ）コンピュータ・システムを、複数の異なるアーキテクチャで設計することができ、このさまざまなアーキテクチャは、所期の設計点、システムの性能要件、および各アプリケーションのソフトウェア環境に応じて、特定のアプリケーションにより適する場合がある。既知のＭＰアーキテクチャには、たとえば、対称型マルチプロセッサ（ＳＭＰ）、およびＮＵＭＡ（non-uniform memory access）が含まれる。
【０００３】
共用メモリ・マルチプロセッサ・データ処理システムでは、システム内の複数のプロセッサのそれぞれが、共用メモリにストアされたデータにアクセスし、修正することができる。複数のプロセッサの間で特定の粒度（たとえばキャッシュ・ライン）のメモリへのアクセスを同期化するために、プログラミング・モデルによって、プロセッサが、粒度を修正する前に粒度に関連するロックを獲得し、修正の後にロックを解放することが要求されることがしばしばである。
【０００４】
ＳＭＰアーキテクチャでは、マルチプロセッサが、共用メモリ内のキャッシュ可能メモリ要素への「ロード」および「ストア」を使用する相互接続バスを介して互いに通信する。マルチプロセッサ・システムを同期化して、パイプライン化された処理または並列処理を実行する時に、通信情報が、プロセッサ間で常に転送されて、各プロセッサがその処理で実行中の他のプロセッサと調整できるようになる。プロセッサは、プロセッサの状態またはプロセスの状況などの固有のプロセッサ情報を、キャッシュ・サブ・システム内のロードおよびストアを介して通信する。プロセッサが、状況情報を更新し、他のプロセッサに通信する必要がある状態に達した時に、そのプロセッサは、データを変更するために、そのデータに対するロックを獲得することによって、情報に対する排他的制御を得る。これによって、この情報を保持する他のプロセッサが、そのプロセッサのコピーを無効化し、その後、第１のプロセッサが情報に対する更新をストアした後に、メモリから状況情報をもう一度ロードする。このプロセッサ通信機構は、非効率的である。というのは、プロセッサが、常に情報に対する制御について競争する必要があり、変更が行われた後にもう一度再ロードするだけのために他のプロセッサから情報をフラッシュする必要があり、あるプロセッサが情報をストアし、他のプロセッサが情報の更新を待ってストールする時に、必ず、パイプライン化された処理または並列処理が低速になるからである。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明では、これらの非効率性によって、プロセッサ間通信および相互接続によって結合されるプロセッサの間で通信される他のトランザクションの小さい比率および小さいサイズに関して、大量の相互接続帯域幅が消費され、極度に大きい通信待ち時間が生じることが認識されている。たとえば、２つのノードのそれぞれに存在する４つのプロセッサが上レベル・バスによって結合され、２つのノード自体が下レベル・バスによって結合される、８ウェイＳＭＰシステムの比較的単純な例であっても、異なるノードのプロセッサ間のデータ要求の通信が、３つのバスのそれぞれでのバス獲得および他のトランザクションに関連する待ち時間をこうむる。同一ノード内のプロセッサの間のプロセッサ間通信であっても、上レベル・バス帯域幅を消費し、バス待ち時間をこうむらなければならない。そのような待ち時間は、相互接続階層の深さを増やすことによって悪化するだけなので、本発明では、物理的に離れたプロセッサの間の通信の待ち時間を減らし、バス帯域幅消費を減らし、これによって、プロセッサおよび階層メモリ・システムの間の一般データ転送のためにバス帯域幅を解放する、改善されたデータ処理システム・アーキテクチャを提供することが、望ましく、有利であることが認識されている。
【課題を解決するための手段】
【０００６】
好ましい実施形態によれば、複数のプロセッサの少なくとも１つのプロセッサに、そこにストアされた情報への継続的アクセスを提供するプロセッサ通信レジスタ（ＰＣＲ）が含まれる、プロセッサ通信の方法、プロセッサ、およびマルチプロセッサ・システムが提供される。プロセッサは、複数のプロセッサの１プロセッサに含まれるＰＣＲの１つまたは複数のセクタから情報を検索し、セクタの１つは、複数のプロセッサのうちの関連する１つだけによるストアのために割り振られ、複数のプロセッサの各ＰＣＲ内のそれに関連するセクタに関連プロセッサからの情報がストアされる。
【０００７】
代替実施形態では、複数のプロセッサの少なくとも２つのプロセッサが、めいめいのＰＣＲから同時に情報を検索する。もう１つの好ましい実施形態では、同一の情報が、複数のプロセッサに含まれる各めいめいのＰＣＲに含まれる。もう１つの好ましい実施形態では、情報が、パイプライン化されたマルチプロセッシングまたは並列マルチプロセッシングを調整する際に、複数のプロセッサに有用である。もう１つの好ましい実施形態では、１つまたは複数のセクタのセクタのそれぞれが、複数のプロセッサの関連する１つだけによるストアのために排他的に割り振られる。もう１つの好ましい実施形態では、１つまたは複数のセクタのセクタのそれぞれが、４バイトである。もう１つの好ましい実施形態では、プロセッサが、各ＰＣＲ内の各セクタを継続的に更新し、複数のプロセッサの各プロセッサが、システム・メモリから情報をロードすることなく、それ自体のＰＣＲにストアされた情報にアクセスできる。
【発明を実施するための最良の形態】
【０００８】
ここで、図面、具体的には図１に関して、本発明の好ましい実施形態による、マイクロプロセッサ通信をサポートするマルチプロセッサ（ＭＰ）データ処理システムの高水準ブロック図が示されている。図からわかるように、データ処理システム８には、通信のためにシステムの相互接続１２によって結合された、複数（たとえば６４個）の処理ユニット１０が含まれる。図１の実施形態に示されているように、処理ユニット１０には、例示のために４つのプロセッサ・ユニット１から４が含まれるが、好ましい実施形態は、処理ユニットのどの個数にも制限されず、本発明は、任意の数またはタイプのプロセッサ・ユニットをサポートする。本発明は、たとえば、２個、４個、８個、１６個、３２個などの、マルチプロセッサ・システム内のプロセッサを含む、任意の数のプロセッサ・ユニットを有するデータ処理システムで実施することができる。各処理ユニット１０は、１つまたは複数のプロセッサ・コア１４を含む集積回路である。プログラム命令を実行するのに使用されるレジスタ、命令フロー論理、および実行ユニットのほかに、プロセッサ・コア１４のそれぞれに、関連するレベル１（Ｌ１）命令キャッシュ１６およびＬ１データ・キャッシュ１８が含まれ、このそれぞれによって、関連するプロセッサ・コア１４によってアクセスされる可能性が高い命令およびオペランド・データが一時的にバッファリングされる。
【０００９】
さらに図１からわかるように、データ処理システム８のメモリ階層に、物理メモリ２１も含まれ、この物理メモリ２１には、メモリ階層の最下位レベルの揮発性データ・ストレージを形成する１つまたは複数のメモリ・モジュール（メモリ・モジュール３６、３８、および４０として図示）が含まれ、データ処理システム８のメモリ階層に、オンチップ・レベル２（Ｌ２）キャッシュ２０などの１つまたは複数の下位レベルのキャッシュ・メモリが含まれ、このオンチップＬ２キャッシュ２０は、物理メモリ２１からプロセッサ・コア１４への命令およびオペランド・データをステージングするのに使用される。当業者が理解するとおり、メモリ階層の各連続する下位レベルは、通常は、上位レベルより大量のデータをストアすることができるが、より大きいアクセス待ち時間を有する。図からわかるように、物理メモリ２１は、メモリ・コントローラ３０、３２、および３４によって相互接続１２にインターフェースされるが、物理メモリ２１に、１つまたは複数のオペレーティング・システムおよび１つまたは複数のアプリケーション・プログラムのオペランド・データおよび諸部分をストアすることができる。メモリ・コントローラ３０、３２、および３４は、それぞれ、対応するメモリ・モジュール３６、３８、および４０に結合され、これらを制御する。
【００１０】
入出力コネクタ５２も図示されているが、この入出力コネクタ５２は、メモリ・システムへの直接メモリ・アクセス動作を実行する時に、処理ユニット１０に似た形で動作する。諒解されるとおり、このシステムは、入出力コネクタ５２と等しい、相互接続１２に接続された追加の入出力コネクタを有することができる。ディスク・ドライブおよびビデオ・モニタなどのさまざまな入出力装置が、ＰＣＩバス５８（または他の類似する接続されたバス）に追加され、除去される時に、入出力コネクタ５２は、ＰＣＩバス５８と相互接続１２の間でブリッジ５４を介してデータを転送するように動作する。
【００１１】
当業者は、データ処理システム８に、入出力アダプタ、相互接続ブリッジ、不揮発性ストレージ、ネットワークまたは接続された装置への接続用のポートなど、多数の追加の図示されていない構成要素を含められることを諒解するであろう。そのような追加構成要素は、本発明の理解に必要でないので、図１に図示せず、本明細書ではこれ以上説明しない。しかし、本発明によって提供される機能強化が、あらゆるアーキテクチャのデータ処理装置に適用可能であり、図１に示された一般化されたＭＰアーキテクチャに全く制限されないことも理解されたい。
【００１２】
好ましい実施形態によれば、プロセッサ・ユニット１から４のそれぞれに、プロセッサ通信レジスタ（ＰＣＲ）２２、２４、２６、および２８が含まれる。各ＰＣＲ２２から２８には、パイプライン化されたマルチプロセッシングまたは並列マルチプロセッシングを調整するのに使用されるプロセッサ通信情報など、マルチプロセッサ・システムのプロセッサに有用な同一の情報がストアされる。各ＰＣＲ２２から２８は、関連するプロセッサ・ユニットが読み取ることのできる４バイト・レジスタであるが、４つのバイトのそれぞれは、４つのプロセッサ・ユニット１から４の関連する１つだけによるストアのために排他的に割り振られる（代替実施形態では、ＰＣＲが、それぞれが４バイト幅の３２個のセクタを有する）。動作中に、各プロセッサ・ユニット１から４は、それ自体のＰＣＲの内容に継続的にアクセスでき、それ自体のＰＣＲおよび他のＰＣＲのそれぞれの排他的なセクタに、ストアスルーすることができる。言い換えると、データ処理システム内の各プロセッサ・ユニットは、プロセッサ・ユニットのそれぞれに含まれる各ＰＣＲに書き込むが、ＰＣＲのそのプロセッサ・ユニット専用の部分だけに書き込む。プロセッサ・ユニットの動作によって、各ＰＣＲ２２から２８が、ＰＣＲのすべての各プロセッサのセクタを更新する各プロセッサによって継続的に更新され、これによって、プロセッサ・ユニット１から４のそれぞれが、ＰＣＲデータ内の変化を即座に見られるようになる。たとえば、本発明の一実施形態では、プロセッサ・ユニット１が、それ自体のＰＣＲ２２に含まれるデータを変更することと、その後、プロセッサ・ユニット２から４のそれぞれのＰＣＲに向けられたライトスルー・コマンドを、キャッシュ・サブシステム（Ｌ１キャッシュおよびＬ２キャッシュを含む）を完全にバイパスして、相互接続１２を介して送ることによって、ＰＣＲ内のそのセクタに対する変更を行う。プロセッサ・ユニット１のストアスルー・コマンドは、それに割り振られたセクタだけをアドレッシングし、このアドレスは、各ＰＣＲ２２から２８の４バイトの最初のバイトである。たとえば、プロセッサ・ユニット３は、他のプロセッサ・ユニット１、２、および４のそれぞれにストアスルー・コマンドを送り、このコマンドは、各ＰＣＲ内で３番目のバイトにアドレッシングされる。ＰＣＲ２２から２８が、レジスタに保持される特定のバイト数または特定のプロセッサに割り振られる特定の数のレジスタ・バイトに制限されないことと、代替実施形態で、ＰＣＲ２２から２８が、任意のバイト数を保持でき、あるいは特定のプロセッサに任意の数のレジスタ・バイトを割り振ることができることを諒解されたい。
【００１３】
諒解されるとおり、本発明は、情報へのアクセスを一瞬制限するか、すべてのプロセッサに同一のキャッシュ・ラインについて継続的に競争させる（通常は、ロード・コマンド、ストア・コマンド、および無効化コマンドの絶え間ない嵐で相互接続およびメモリ・システムを圧倒する）ことなく、プロセッサ通信をすべてのプロセッサに即座に転送できるようにすることによって、マルチプロセッサ・システム内での効率を実質的に高める。
【００１４】
好ましい実施形態は、マルチプロセッサ・システムがパイプライン化された処理または並列処理を実行しているアプリケーションに特に有用である。たとえば、従来技術では、プロセッサが、パイプライン処理のそのプロセッサの部分を完了した時に、処理のそのステージを完了したことを示すプロセッサ通信情報を、キャッシュ・サブシステムにストアする。パイプラインの次のマイクロプロセッサは、そのキャッシュ・サブシステムを継続的にポーリングし、更新された状況情報を待つ。前のプロセッサが、排他的アクセスを獲得し、キャッシュの状況情報を無効化する時に、次のプロセッサは、メモリまたは前のプロセッサのキャッシュから更新された状況情報を検索し、適当なフラグを検査して、その処理がそのステージの準備ができているかどうかを判定する。諒解されるとおり、相互接続帯域幅のかなりの量が、プロセッサ間通信によって消費される。というのは、すべてのマルチプロセッサが、通信し、処理を調整するために、キャッシュ内のパイプラインに関するプロセッサ通信情報の同一のバイトをロードし、ストアしているからである。
【００１５】
図２に関して、本発明の好ましい実施形態による、データ処理システム８の単純化された図でＰＣＲのそれぞれを相互接続するスターベースのバス構造が示されている。好ましい実施形態では、各ＰＣＲ２２から２８が、４つのセクタに分割され、各セクタが、データ処理システム８内の４つのプロセッサの１つに指定され、各セクタに、１バイトの情報が含まれる。諒解されるとおり、ＰＣＲ２２から２８を、データ処理システムのプロセッサ・ユニットと同一の数を含む、任意の数（たとえば、２個、４個、８個、１６個、３２個、６４個など）のセクタに分割することができる。さらに、ＰＣＲ２２から２８内でセクタごとに割り振られるバイト数は、好ましい実施形態で示されているように１バイトだけに制限されるのではなく、所与のアーキテクチャでプロセッサ通信を提供するのに必要と思われるバイト数に設定することができる。
【００１６】
図２からわかるように、プロセッサ・ユニット１は、いつでもＰＣＲ２２全体を読み取ることができ、これによって、システム内のすべてのプロセッサからのプロセッサ通信情報への即座のアクセスを有する。同様に、プロセッサ・ユニット２は、ＰＣＲ２４全体をいつでも読み取ることができ、プロセッサ・ユニット３は、ＰＣＲ２６全体をいつでも読み取ることができ、プロセッサ・ユニット４は、ＰＣＲ２８全体をいつでも読み取ることができる。一実施形態では、すべてのＰＣＲ内のセクタＰ１が、プロセッサ・ユニット１によって制御され、すべてのＰＣＲ内のセクタＰ２が、プロセッサ・ユニット２によって制御され、すべてのＰＣＲ内のセクタＰ３が、プロセッサ・ユニット３によって制御され、すべてのＰＣＲ内のセクタＰ４が、プロセッサ・ユニット４によって制御される。セクタを制御するプロセッサ・ユニットだけが、ＰＣＲ内のそのセクタの更新、修正、またはストアを行うことができる。したがって、たとえば、プロセッサ・ユニット１だけが、ＰＣＲ２２から２８内のセクタＰ１に書き込むことができる。同様に、プロセッサ・ユニット２は、セクタＰ２を制御し、システム内で、ＰＣＲ２２から２８内のセクタＰ２に書き込むことができる唯一のプロセッサである。同様に、セクタＰ３およびＰ４は、それぞれプロセッサ・ユニット３および４によって制御され、制御するプロセッサ・ユニットだけが、ＰＣＲ２２から２８内の特定のセクタに書き込むことができる。しかし、すべてのプロセッサ・ユニット１から４が、そのプロセッサ・ユニット内に含まれるＰＣＲ内のすべてのセクタを読み取ることができる。
【００１７】
図２からわかるように、相互接続２００から２０６（集合的に相互接続バスとして働く）は、メモリ・システムによって使用される相互接続１２をバイパスする、独立である、プロセッサ・ユニット１から４のそれぞれの間の直接バス・リンクである。プロセッサ・ユニット１は、そのＰＣＲ２２のセクタＰ１に直接に書き込んで、それ自体のプロセッサ通信情報を更新する。プロセッサ・ユニット１は、相互接続２００を介する、他のプロセッサ・ユニット２から４への直接通信リンクも有する。そのプロセッサ通信情報を更新するために書き込む時に、プロセッサ・ユニット１は、相互接続２００を介してＰＣＲ２４から２８にライト・スルーし、この相互接続２００が、書き込まれたデータを対応するレジスタのＰ１セクタに直接に移植する。類似する形で、プロセッサ・ユニット２は、プロセッサ情報をそれ自体のＰＣＲ２４内のセクタＰ２にライト・スルーし、プロセッサ通信情報を、相互接続２０２を介してＰＣＲ２２、２６、および２８のＰ２セクタにも直接に送る。プロセッサ・ユニット３は、プロセッサ情報をそれ自体のＰＣＲ２６内のセクタＰ３にライト・スルーし、プロセッサ通信情報を、相互接続２０４を介してＰＣＲ２２、２４、および２８のＰ３セクタにも直接に送る。プロセッサ・ユニット４は、プロセッサ情報をそれ自体のＰＣＲ２８内のセクタＰ４にライト・スルーし、プロセッサ通信情報を、相互接続２０６を介してＰＣＲ２２、２４、および２６のＰ４セクタにも直接に送る。
【００１８】
スターベースのプロセッサ通信相互接続のさまざまな実施形態を、プロセッサ・ユニットのそれぞれのＰＣＲセクタの読取および書込を提供するために実施することができる。図２からわかるように、プロセッサ・ユニットのそれぞれは、ＰＣＲ内のそのユニットに割り振られたセクタに書き込むことだけができる。これは、これらのセクタだけがプロセッサ・ユニットによってアクセス可能になるように、相互接続２００から２０６の直接ハードワイヤリングを介して実施することができる。その代わりに、相互接続２００から２０６を、データおよびデータのターゲット・アドレスの両方を供給する単一の通信バスまたは複数の通信バスとすることができ、各プロセッサ・ユニットが、レジスタ内の特定のバイトだけをターゲットにすることができるようにする。たとえば、プロセッサ２が、ＰＣＲ２２から２８のそれぞれの第２バイトへの書込の権限だけを有する。情報を読み取るために、各プロセッサ・ユニット１から４は、それ自体の内部ＰＣＲを読み取る能力を有する。しかし、諒解されるとおり、システム内のプロセッサ・ユニットの数が増えると、相互接続バス・システムの複雑さが、追加されるプロセッサ・ユニットのそれぞれに伴って増える。代替実施形態では、マルチプロセッサ・システム内の他のプロセッサ・ユニットを、スターベースのネットワークに結び付け、プロセッサが別のプロセッサ・ユニットのＰＣＲを読み取れるようにする。たとえば、新しいプロセッサ・ユニット５（図示せず）を、スターベースのネットワークに配線して、レジスタ２８を読み取り、プロセッサ・ユニット１から４が使用するものと同一のプロセッサ通信情報を得ることができる。
【００１９】
図３に関して、本発明の好ましい実施形態による、データ処理システム８の単純化された図でＰＣＲのそれぞれを相互接続するリング・バス構造が示されている。リング・バス２１０は、マルチプロセッサ・システム内のプロセッサ・ユニットが、ＰＣＲ２２から２８にストアされた特殊なプロセッサ通信情報を通信できるようにする特殊な通信相互接続である。リング・バス２１０は、相互接続１２によってプロセッサ・ユニット１から４に接続される階層メモリ・システムとは独立である。リング・バス実施形態では、データが、パッケージで渡され、当業者に周知の、トークンパッシング・リングベース・ネットワークが使用される。諒解されるとおり、リング・バスの使用は、非常にスケーラブルであり、データ処理システムに含めることができるプロセッサ・ユニットの数が制限されない。しかし、スターベース相互接続は、各プロセッサが互いに直接に接続されるので、リング・バスより短い待ち時間を有する。
【００２０】
各プロセッサ・ユニット１から４が、ＰＣＲ２２から２８のそのユニットのセクタを更新する必要がある時に、対応するプロセッサは、リング・バス２１０を介して移送される「パッケージ」でストア・コマンドを発行する。パッケージは、相互接続２１０のリングを通り、リング・バスに接続された他のプロセッサ・ユニット１から４のそれぞれによって受け取られる。リング・バス２１０を介してパッケージを受け取る各プロセッサ・ユニットは、パッケージに含まれるアドレスをデコードし、ＰＣＲの関連するセクタに情報をストアするか、その代わりに、パッケージに含まれる情報に基づいて、どのプロセッサ・ユニットがストア命令を発行したかに関する判断を行い、ストアしたプロセッサに関連するＰＣＲセクタを更新する。リング・バス２１０での破壊を避けるために、プロセッサ・ユニット１から４は、他のプロセッサからのパッケージにリング・バスを通過させ、その後、パッケージの末尾にペイロードを付加する。
【００２１】
図４および５に関して、それぞれ、本発明の好ましい実施形態による、マルチプロセッサ・システム内のパイプライン処理および並列処理を容易にするのにＰＣＲを使用する例が示されている。パイプライン処理を実行する時に、プロセッサ・ネットワーク内の各プロセッサは、計算の一部に関連する特定のアルゴリズムを実行する責任を負う。通常、パイプライン化された処理では、プロセッサ・ユニットは、前のプロセッサによって処理された情報を受け取り、そのデータに対して処理機能を実行し、その後、処理されたデータを、パイプライン内の次のプロセッサに渡して、データをさらに処理させる。たとえば、データ処理システム８が、１６キロバイトのオーディオ・ファイルを処理して、オーディオ・ファイルに対するさまざまな処理ルーチンを実行することができる。たとえば、あるプロセッサが、音量を正規化するルーチンを実行しており、別のプロセッサがピッチを正規化する機能を実施しており、もう１つのプロセッサがオーディオファイルを暗号化している場合がある。そのようなタスクは、パイプライン処理に向いている。
【００２２】
図４には、ＰＣＲの内容が示され、各行に、選択された時刻のセクタ（Ｐ１、Ｐ２、Ｐ３、およびＰ４）の内容が示され、各連続する行によって、異なる時点（ｔ１、ｔ２、ｔ３、およびｔ４）のセクタが表される。時刻ｔ１に、各プロセッサ・ユニット１から４は、セクタＰ１によって、プロセッサ・ユニット１が現在符号「Ｆ」のデータを処理していることが示されることを知る。同様に、Ｐ２によって、現在符号「Ｅ」のデータが処理されていることが示され、Ｐ３によって、現在符号「Ｄ」のデータが処理されていることが示され、Ｐ４によって、現在符号「Ｃ」のデータが処理されていることが示され、図４に示されたバイトは、１６進表現によって表されている。時刻ｔ２に、Ｐ１によって、プロセッサ・ユニット１がまだＦによって表されるデータを処理していることが示されるが、それぞれＥ’およびＤ’によって表されるように、プロセッサ・ユニット２および３は、ＰＣＲのＰ２およびＰ３を更新して、データＥおよびＤの処理を完了したことを示している。Ｐ４は、更新されていないものとして示され、これによって、プロセッサ・ユニット４が、まだＣに関連するデータを処理していることが示される。
【００２３】
時刻ｔ３に、プロセッサ・ユニット１が、ＰＣＲのＰ１を更新して、「０」に関連するデータの処理を開始したことを示す。ＰＣＲ内のＰ１の更新を見た時に、プロセッサ・ユニット２は、プロセッサ・ユニット１が、Ｆに関連するデータ・セットに対するルーチンを完了したことを知り、そのデータに対するルーチンを開始できることを知る。プロセッサ・ユニット２は、Ｆを示すようにＰＣＲのセクタＰ２を更新し、ルーチンを開始するために、キャッシュ・サブシステムから関連するデータを検索する。同様に、プロセッサ・ユニット３は、プロセッサ・ユニット２が、データ・セットＥに対するルーチンを完了し、その制御を解放したことを知り、ＰＣＲのセクタＰ３を更新して、データ・セットＥに対する作業を開始したことを示す。プロセッサ・ユニット４は、時刻ｔ３に、プロセッサ・ユニット３がデータ・セットＤに対する作業を完了したことを知ることができるが、データ・セットＣに対するルーチンを完了しておらず、ＰＣＲを更新していない。時刻ｔ４に、プロセッサ・ユニット１は、データ・セット１を扱っていることを示すようにＰＣＲのセクタＰ１を更新したことによって示されるとおり、データ・セット０に対するルーチンを完了し、データ・セット１の処理を開始している。同様に、プロセッサ・ユニット２は、データ・セットＦに対する作業を完了し、データ・セット０に対する機能の実行を開始している。というのは、プロセッサ・ユニット１によるＰＣＲ内のセクタＰ１に対する更新によって、プロセッサ・ユニット１がデータ・セット０に対する作業を完了したことがわかるからである。時刻ｔ４に、プロセッサ・ユニット３は、データ・セットＥに対するルーチンを完了しておらず、したがって、ＰＣＲ内のセクタＰ３は、更新されていない。プロセッサ・ユニット４は、Ｄ’によって示されるように、データ・セットＤに対する動作を完了している。プロセッサ３が、まだデータ・セットＥに対する処理を完了していないので、プロセッサ４は、そのデータ・セットに対する作業を開始することができず、したがって、ＰＣＲを更新していない。
【００２４】
この説明からわかるように、本発明の好ましい実施形態では、システム内の各プロセッサ・ユニットが、他のプロセッサからの、特定のデータ・セットに対する処理を実行している各プロセッサの現在の状況を示すプロセッサ通信情報に即座にアクセスできるようにすることによって、パイプライン処理が容易になる。これによって、データ・セットのパイプライン処理と並行の効率的なプロセッサ通信を介するプロセッサの効率的な調整がもたらされる。
【００２５】
図５に関して、本発明の好ましい実施形態による、並列処理でＰＣＲを使用する例が示されている。この例では、データ処理システム８内の各処理ユニットが、同一の問題の異なる相互関係のある部分を扱っているが、処理されるデータ・セットの間のデータ依存性によって、これらを並列に実行することが必要であり、これによって、データを処理する際の処理ユニット間の調整が必要になる。図５からわかるように、時刻ｔ１に、各処理ユニット１から４が、ＰＣＲ内のセクタを更新して、現在「０」によって表されるデータ・セットを処理していることを示す。時刻ｔ２に、Ｐ１、Ｐ２、およびＰ４が、更新されて、処理ユニット１、２、および４が、データ・セット１を処理する準備ができたことが示されるが、Ｐ３から、処理ユニット３がデータ・セットの処理を継続していることが示される。時刻ｔ３の直前に、処理ユニット３がＰ３を更新して、データ・セット０の処理を完了したことを示す。その時点で、各処理ユニット１から４が、データ・セット１を並列に処理し始める。時刻ｔ４に、Ｐ１によって、処理ユニット１がデータ・セット１の処理を完了し、データ・セット２の処理を開始する準備ができたことが示される。Ｐ２およびＰ３からは、処理ユニット２および３がデータ・セット１の処理を継続していることが示される。Ｐ４から、処理ユニット４が、データ・セット１の処理を完了し、データ・セット２の処理を開始する準備ができたことが示される。時刻ｔ５に、処理ユニット２および３が、データ・セット１の処理を完了し、ＰＣＲを更新して、データ・セット２を処理し始める準備ができたことを示す。その時点で、各処理ユニット１から４が、データ・セット２の並列の処理を開始する。諒解されるとおり、ＰＣＲを用いると、処理ユニット１から４のそれぞれが、ＰＣＲのそれぞれにストアされたプロセッサ通信情報に即座にアクセスできることによって、処理ユニットのそれぞれに関する並列処理を更新し、調整するためにキャッシュ・サブシステム相互接続の帯域幅を消費せずに、データ・セットの並列処理を同期化できるようになる。
【００２６】
図６に関して、本発明の好ましい実施形態による、改善されたプロセッサ通信を有するクラスタベースのデータ処理ネットワークが示されている。データ処理システム４００には、ネットワーク４２０によって相互接続されたクラスタ１（Ｃ１）、クラスタ２（Ｃ２）、およびクラスタ３（Ｃ３）が含まれる。各クラスタＣ１からＣ３には、リング・バス４１０によって相互接続された４つのプロセッサ・ユニット４０１から４０４が含まれる。各プロセッサ・ユニット４０１から４０４には、それぞれ、１２バイトのプロセッサ通信情報を含むＰＣＲ４２２から４２８が含まれる。各クラスタＣ１からＣ３には、リング・バス４１０に接続され、ネットワーク４２０へのクラスタの相互接続を行うネットワーク・カード４０６が含まれる。ネットワーク４２０は、好ましい実施形態のプロセッサ通信に使用されるＰＣＲの間の相互接続を提供するために、少なくとも３つの異なる実施形態すなわち、（１）特殊なデータ・パケットをクラスタの間で伝送できるようにする専用プロトコルを有する標準データ・ネットワーク、（２）ＰＣＲにデータをストアするためにのみ使用される独自のインターネット・プロトコル・アドレスを伝送する標準データ・ネットワーク、および（３）ＰＣＲへのプロセッサ通信情報の伝送専用の別々のデータ・ネットワークで実施することができる。
【００２７】
ネットワーク４２０の好ましい実施形態では、ネットワーク４２０が、ローカル・エリア・ネットワーク（ＬＡＮ）またはインターネットなどのコンピュータ・システム・データ・ネットワーク内のギガビット・イーサネット（Ｒ）・プロトコルまたはＩＰベース・プロトコルなど、標準ネットワーク・プロトコルの上に階層化された専用プロトコルを使用して実施される。クラスタ・プロセッサと、異なるクラスタに配置された他のプロセッサとの間の通信を提供するために、専用プロトコルを使用する、ポイントツーブロードキャスト・タイプの特殊なパケットが、システム・ネットワークを介して伝送される。好ましい実施形態で使用される際に、ネットワーク４２０では、一般に、伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）などの通信プロトコルを使用して、クラスタＣ１からＣ３のそれぞれの間でのデータおよび命令の通信を提供する。ネットワーク・カード４０６では、クラスタ間通信の受信および送信に、そのクラスタを識別する独自のＩＰアドレスを使用する。
【００２８】
ＰＣＲを更新するために、更新するプロセッサは、リング・バス４１０を介してストアスルー・コマンドを送って、各ＰＣＲのそのプロセッサのセクタを更新する。クラスタ内の他のプロセッサは、プロセッサによって送られるパケット内のアドレスにインデクシングすることによって、それ自体のＰＣＲを更新する。ネットワーク・ユニット４０６は、コマンドを受け取り、データ処理システム４００内の他のクラスタのＩＰアドレスにアドレッシングされた特殊な専用プロトコルＴＣＰ／ＩＰパケットに挿入する。特殊なＰＣＲパケットは、ネットワーク４２０を介して伝送され、他のクラスタのネットワーク・ユニット４０６によって受け取られる。ペイロードは、ＴＣＰ／ＩＰプロトコル・スタックを迂回するという点で他の標準パケットと異なる形でデコードされ、ペイロードは、その代わりに、パケットから単にはぎ取られ、ＰＣＲ４２２から４２８内のアドレッシングされたセクタ（または、ペイロードにセクタの複数の更新が含まれる場合には複数のセクタ）を更新するために、ストアスルー・コマンドとしてリング・バス４１０を介してプロセッサ・ユニット４０１から４０４に転送される。ＰＣＲ内のセクタのそれぞれは、図７に示されているように、プロセッサ通信情報を更新する送信元クラスタの１つまたは複数のプロセッサ・ユニットに関連する１つまたは複数のセクタにインデクシングすることによってアドレッシングされる。この形で、クラスタＣ１からＣ３によって使用される特殊なタイプのＩＰパケットによって、他のクラスタに含まれるすべてのＰＣＲの更新がもたらされる。
【００２９】
図７に関して、本発明の好ましい実施形態による、クラスタＣ１からＣ３のすべてのプロセッサ・ユニットに含まれるＰＣＲのデータ・フォーマットが示されている。各プロセッサ・ユニット４０１から４０４に、それぞれＰＣＲ４２２から４２８が含まれ、これらのＰＣＲには、１２バイトのデータが含まれ、これらのデータのそれぞれが、図７に示されているように、指定されたクラスタＣ１からＣ３のめいめいのプロセッサＰ１からＰ４によって制御される。各プロセッサ・ユニットが、そのＰＣＲに同一のプロセッサ通信情報のそれ自体のコピーを保存するので、最新のプロセッサ通信情報が、すべてのクラスタＣ１からＣ３から即座に継続的に使用可能である。あるクラスタのプロセッサ・ユニットが、ネットワーク全体のＰＣＲに含まれるそのユニットのプロセッサ通信情報の更新を必要とする時に、そのプロセッサは、ＰＣＲ４２２から４２８内のそれに割り振られたバイトにアドレッシングされる特殊なライトスルー命令をリング・バス４１０で発行することによって、ＰＣＲ内のそのプロセッサが制御するバイトを更新する。たとえば、クラスタＣ２内で、プロセッサ・ユニット３が、ＰＣＲ４２２から４２８内の第７バイトにストアスルーする。クラスタＣ２内の他のプロセッサ・ユニットのそれぞれ（プロセッサ・ユニット１、２、および４）は、対応するＰＣＲ内の第７バイトの更新を行う。ネットワーク・カード４０６は、プロセッサ・ユニット３からストアスルー要求を受け取る時に、コマンドをパッケージ化し（必要な場合に）、クラスタＣ１およびＣ３のＩＰアドレスにアドレッシングされたストアスルー・コマンドを、ネットワーク４２０を介して送信する（実施形態に応じて、１つまたは複数のパケットで）。クラスタＣ１およびＣ３のそれぞれは、送信元クラスタＣ２のＩＰアドレスを使用することによってストア要求をデコードして、クラスタＣ２の第３のプロセッサ・ユニット３（Ｐ３）がＰＣＲの第７バイトを更新したことを判定する。
【００３０】
図６に戻ると、ネットワーク４２０のもう１つの好ましい実施形態では、ネットワーク４２０が、標準ネットワーク・プロトコルの上に階層化された専用プロトコルを使用して実施されるが、各クラスタＣ１からＣ３は、ＰＣＲの更新だけに使用され、ネットワーク４２０によってクラスタとの通信に使用される汎用ＩＰアドレスとは独立の独自のＩＰアドレスを有する。ＰＣＲを更新するために、更新するプロセッサは、リング・バス４１０を介してストアスルー・コマンドを送出して、ＰＣＲのセクタを更新する。クラスタ内の、リング・バス４１０に接続された他のプロセッサは、プロセッサによって送られたパケットのアドレスにインデクシングすることによって、それ自体のＰＣＲを更新する。ネットワーク・ユニット４０６は、コマンドを受け取り、データ処理システム４００の他のクラスタ内のＰＣＲの更新用にとっておかれた独自のＩＰアドレスにアドレッシングされたＴＣＰ／ＩＰパケットに、そのコマンドを挿入する。この特殊なＰＣＲパケットは、ネットワーク４２０を介して伝送され、ＰＣＲの独自のＩＰアドレスに基づいて、他のクラスタのネットワーク・ユニット４０６によって受け取られる。ペイロードは、デコードされ、ＰＣＲ４２２から４２８内のアドレッシングされたセクタ（または、ペイロードにセクタの複数の更新が含まれる場合には複数のセクタ）を更新するために、ストアスルー・コマンドとしてリング・バス４１０を介してプロセッサ・ユニット４０１から４０４に転送される。ＰＣＲ内のセクタのそれぞれは、図７に示されているように、プロセッサ通信情報を更新する送信元クラスタの１つまたは複数のプロセッサ・ユニットに関連する１つまたは複数のセクタにインデクシングすることによってアドレッシングされる。
【００３１】
ネットワーク４２０のもう１つの好ましい実施形態では、ネットワーク４２０が、ＰＣＲ更新専用の別々の専用ネットワークを使用して実施され、この専用ネットワークは、クラスタを相互接続する標準ネットワークと独立である。専用のネットワーク４２０の１つの好ましい実施形態では、相互接続が、クラスタのそれぞれを互いに相互接続する別々のポイントツーポイント・バスを使用して実施される。ネットワーク・ユニット４０６は、直接通信を調整し、他のクラスタからのストアスルーを、それに関連するリング・バス４１０に転送する。専用のネットワーク４２０のもう１つの好ましい実施形態では、相互接続が、クラスタと通信するための、パケットベース・ネットワークおよび専用プロトコルを使用して実施される。この実施形態では、ギガビット・イーサネット（Ｒ）・プロトコルまたはＩＰベース・プロトコルなどの標準プロトコル、あるいはそのカスタマイズされた変形も使用することができる。この実施形態でＰＣＲを更新するために、更新するプロセッサが、リング・バス４１０を介してストアスルー・コマンドを送出して、ＰＣＲのセクタを更新する。リング・バス４１０に接続されたクラスタ内の他のプロセッサは、プロセッサによって送られるパケット内のアドレスにインデクシングすることによって、それ自体のＰＣＲを更新する。ネットワーク・ユニット４０６は、コマンドを受け取り、データ処理システム４００内の他のクラスタのＰＣＲ更新用にとっておかれた独自のＩＰアドレスにアドレッシングされたパケットにそのコマンドを挿入する。特殊なＰＣＲパケットは、専用のネットワーク４２０を介して伝送され、他のクラスタのネットワーク・ユニット４０６によって受け取られる。ペイロードは、デコードされ、ＰＣＲ４２２から４２８内のアドレッシングされたセクタ（または、ペイロードにセクタの複数の更新が含まれる場合には複数のセクタ）を更新するために、ストアスルー・コマンドとしてリング・バス４１０を介してプロセッサ・ユニット４０１から４０４に転送される。ＰＣＲ内のセクタのそれぞれは、図７に示されているように、プロセッサ通信情報を更新する送信元クラスタの１つまたは複数のプロセッサ・ユニットに関連する１つまたは複数のセクタにインデクシングすることによってアドレッシングされる。
【００３２】
図８に関して、本発明の好ましい実施形態による、改善されたプロセッサ通信を提供するのに独立の無線ネットワークを使用するデータ処理システムが示されている。データ処理システム５００は、複雑なコンピューティングおよび／またはデータ集中型コンピューティングを集合的に実行するために同一位置に配置された複数の相互接続されたサーバ・コンピュータ（一般に、サーバ・ファームと称する）を有する。図８の例では、サーバ・ファーム５００が、６つのサーバ（サーバ１から６）からなる。各サーバ１から６に、複数のサーバ・ブレード５０２および５０４を含む２つの「ドロワ」が含まれる。諒解されるとおり、各サーバ・ブレード５０２および５０４に、複数の対称型マルチプロセッサを含めることができる。好ましい実施形態では、各サーバ・ブレード５０２および５０４が、たとえば、図１に示されたデータ処理システム８などのデータ処理システムを用いて構成され、このデータ処理システムは、サーバ・ブレードの各プロセッサに含まれる各プロセッサ通信レジスタ間の通信にリングベースの相互接続を使用する（たとえば、図３に示されているように）複数のプロセッサを用いて構成される。諒解されるとおり、サーバ・ファーム５００は、例示のみのために６つのサーバを有するものとして示されているが、サーバの特定の台数に制限されない。さらに諒解されるとおり、各サーバ・ブレード５０２および５０４に、任意の個数のプロセッサ（たとえば、２個、４個、８個、１６個、３２個など）を含めることができ、図３に示されている４つのプロセッサには制限されない。
【００３３】
本発明の好ましい実施形態によれば、サーバ１から６のサーバ・ブレード５０２は、図６に示された、プロセッサ・ユニット４０１から４０４内のＰＣＲおよびネットワーク・カード４０６がリング・バス４１０によって相互接続されるのと同一の形で、サーバ・ブレード５０２内のプロセッサ・ユニット（図示せず）のそれぞれに含まれるＰＣＲ（図示せず）を無線ネットワーク・カード５０６に相互接続するリングベース・バス（図示せず）を有する。無線ネットワーク・カード５０６は、サーバ・ファーム５００内の無線ネットワーク・カード５０６および５１０を、アンテナ５０８を介する伝送を介して無線ネットワーク５１４上で相互接続することを除いて、図６のネットワーク・カード４０６と同一の形で動作する。同様に、サーバ・ブレード５０４は、サーバ・カード・プロセッサ内のＰＣＲのそれぞれを相互接続するリング・ネットワークを使用して無線ネットワーク・カード５１０と相互接続される。無線ネットワーク・カード５１０は、アンテナ５１２を介して無線ネットワーク５１４と無線通信する。同一の形で、サーバ１から６のサーバ・ブレード５０２および５０４のそれぞれが、無線ネットワーク５１４に相互接続されて、１２個の別々のクラスタ（１２個のサーバ・ドロワからなる）を有するクラスタベース・ネットワークが作成される。
【００３４】
サーバ・ファーム５００内の各クラスタは、ネットワークのクラスタ４００と同一の形で、ＰＣＲに含まれるめいめいのプロセッサ通信情報を更新する。しかし、この場合には、ＰＣＲ内のプロセッサ通信情報を更新するクラスタのそれぞれの通信が、無線ネットワークを介して行われる。各無線ネットワーク・カード５０６および５１０は、すべての指定された周波数をｌｉｓｔｅｎし、サーバ・ファーム５００内の別のクラスタによるＰＣＲに対する更新を待つ。周波数分割多重（ＦＤＭ）を使用する実施形態では、クラスタが、そのＰＣＲを更新するために他のクラスタにライトスルーする必要がある時に、そのクラスタの独自の周波数でストアスルー情報を送信する。サーバ・ファーム５００内の他のクラスタは、その特定の周波数で送信せず、これによって、ＰＣＲのセクタに書き込む権限を有する特定のクラスタ内の特定のプロセッサが一意に識別され、複雑なＩＰベースのアドレッシングおよびプロトコルは不要である。たとえば、好ましい実施形態では、各無線ネットワーク・カード５０６および５１０のそれぞれが、直交ＦＤＭを使用するＩＥＥＥ  ８０２．１１（ａ）プロトコルなどの標準無線ネットワーク・プロトコルを使用して互いに通信する。代替の好ましい実施形態では、無線ネットワークで、時分割多重（ＴＤＭ）伝送システムまたは符号分割多重（ＣＤＭ）伝送システムが使用される。
【００３５】
代替の好ましい実施形態では、各サーバ・ブレード５０２および５０４自体に、無線ネットワーク・カードが含まれ、この無線ネットワーク・カードは、リング・バスを介してサーバ・ブレードのプロセッサに相互接続され、無線ネットワーク５１４介して無線でサーバ・ファーム５００内の他のすべてのサーバ・ブレードと通信する。たとえば、各サーバ・ブレード５０２および５０４は、図６に示されたクラスタＣ１として構成されるが、ネットワーク・カード４０６が、無線機能を使用可能にされて、ネットワーク４２０を介する他のクラスタとの相互接続通信をもたらす。諒解されるとおり、無線ネットワーク接続を使用して、プロセッサ通信情報を提供するサーバ・ファーム実施形態では、複雑なプロトコル・スタックおよびリングベースのクラスタ・ネットワークの待ち時間遅延を迂回することによって、ＰＣＲ更新処理の速度がかなり高くなる。
【００３６】
本発明を、好ましい実施形態に関して具体的に図示し、説明してきたが、当業者は、本発明の趣旨および範囲から逸脱せずに、形態および詳細においてさまざまな変更を行えることを理解するであろう。
【００３７】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００３８】
（１）複数のプロセッサを含むマルチプロセッサ・システムでのプロセッサ通信の方法であって、前記複数のプロセッサの少なくとも１つのプロセッサが、前記少なくとも１つのプロセッサにプロセッサ通信レジスタ（ＰＣＲ）内にストアされた情報への継続的アクセスを提供する前記ＰＣＲを含み、前記方法が、
前記複数のプロセッサのプロセッサに含まれるＰＣＲの１つまたは複数のセクタから情報を検索するステップであって、前記セクタの１つが、前記複数のプロセッサの関連する１つだけによってストアされるように割り振られる、ステップと、
前記複数のプロセッサの各ＰＣＲ内の関連するセクタに前記関連するプロセッサからの情報をストアするステップと
を含む方法。
（２）さらに、前記複数のプロセッサの少なくとも２つのプロセッサが、めいめいのＰＣＲから同時に情報を検索する、上記（１）に記載の方法。
（３）さらに、同一の情報が、前記複数のプロセッサに含まれる各めいめいのＰＣＲに含まれる、上記（１）に記載の方法。
（４）さらに、前記情報が、パイプライン化されたマルチプロセッシングまたは並列マルチプロセッシングを調整する際に前記複数のプロセッサにとって有用である、上記（１）に記載の方法。
（５）さらに、前記１つまたは複数のセクタのセクタのそれぞれが、前記複数のプロセッサの前記関連する１つだけによるストアのために排他的に割り振られる、上記（１）に記載の方法。
（６）さらに、前記１つまたは複数のセクタのセクタのそれぞれが、４バイトである、上記（１）に記載の方法。
（７）さらに、前記複数のプロセッサの各プロセッサが、それ自体のＰＣＲに保管された情報をシステム・メモリからロードすることなく、そのような情報へのアクセスを有するように、各ＰＣＲ内の各セクタを継続的に更新するステップを含む、上記（１）に記載の方法。
（８）複数のプロセッサを含むマルチプロセッサ・システム内のプロセッサであって、
複数のセクタを有するプロセッサ通信レジスタ（ＰＣＲ）であって、前記プロセッサが、前記ＰＣＲへのアクセスを有し、前記複数のセクタの各セクタにストアされた情報を検索することができ、前記ＰＣＲ内の前記複数のセクタのセクタの１つが、前記１つのセクタがそれに関連するプロセッサによって更新される時に、前記プロセッサが更新される情報へのアクセスを可能にされるように、前記複数のプロセッサの前記関連するプロセッサによってのみストアされるために割り振られる、ＰＣＲ
を含むプロセッサ。
（９）前記情報が、パイプライン化されたマルチプロセッシングまたは並列マルチプロセッシングを調整する際に前記複数のプロセッサにとって有用である、上記（８）に記載のプロセッサ。
（１０）前記複数のセクタのセクタのそれぞれが、前記複数のプロセッサの前記関連するプロセッサだけによるストアのために割り振られる、上記（８）に記載のプロセッサ。
（１１）前記複数のセクタのセクタのそれぞれが、４バイトである、上記（８）に記載のプロセッサ。
（１２）前記プロセッサが、前記複数のセクタ内の関連するセクタを有し、さらに、前記複数のプロセッサの各プロセッサが、各更新されるセクタにストアされる情報をシステム・メモリから検索せずに、そのような情報へのアクセスを有するように、前記複数のプロセッサ内の前記プロセッサに関連する各ＰＣＲ内の各セクタを更新する手段を含む、上記（８）に記載のプロセッサ。
（１３）前記ＰＣＲにストアされる前記情報が、前記複数のプロセッサに含まれるすべてのＰＣＲに含まれる同一の情報である、上記（８）に記載のプロセッサ。
（１４）マルチプロセッサ・システムであって、
複数のプロセッサであって、各プロセッサが、複数のセクタを有するプロセッサ通信レジスタ（ＰＣＲ）を含み、各プロセッサが、前記ＰＣＲ内の前記複数のセクタの各セクタにストアされた情報を検索するためのアクセスを有し、前記複数のプロセッサ内の各ＰＣＲ内の前記複数のセクタのセクタが、前記複数のプロセッサの関連するプロセッサだけによるストアのために割り振られ、セクタがそれに関連するプロセッサによって更新される時に、ＰＣＲを含む各プロセッサが更新された情報へのアクセスを使用可能にされるように、前記複数のプロセッサの各プロセッサが、各ＰＣＲ内の前記複数のセクタ内の関連するセクタを更新する、プロセッサ
を含むマルチプロセッサ・システム。
（１５）前記情報が、パイプライン化されたマルチプロセッシングまたは並列マルチプロセッシングを調整する際に前記複数のプロセッサにとって有用である、上記（１４）に記載のマルチプロセッサ・システム。
（１６）前記複数のセクタのセクタのそれぞれが、前記複数のプロセッサの前記関連するプロセッサだけによるストアのために排他的に割り振られる、上記（１４）に記載のマルチプロセッサ・システム。
（１７）前記複数のセクタのセクタのそれぞれが、４バイトである、上記（１４）に記載のマルチプロセッサ・システム。
（１８）ＰＣＲを含む前記複数のプロセッサの各プロセッサが、前記複数のセクタの各更新されたセクタにストアされた情報をシステム・メモリから検索せずに、そのような情報へのアクセスを有するように、前記複数のプロセッサの各プロセッサが、そのプロセッサに関連する前記複数のプロセッサ内の各ＰＣＲ内の各セクタを更新する、上記（１４）に記載のマルチプロセッサ・システム。
（１９）さらに、前記複数のプロセッサの少なくとも２つのプロセッサが、めいめいのＰＣＲから情報を同時に検索する、上記（１４）に記載のマルチプロセッサ・システム。
（２０）同一の情報が、前記複数のプロセッサに含まれる各めいめいのＰＣＲに含まれる、上記（１４）に記載のマルチプロセッサ・システム。
【図面の簡単な説明】
【００３９】
【図１】本発明の好ましい実施形態による、マイクロプロセッサ通信をサポートするマルチプロセッサ・データ処理システムの高水準ブロック図である。
【図２】本発明の好ましい実施形態による、データ処理システムの単純化された図でＰＣＲのそれぞれを相互接続するスターベースのバス構造を示す図である。
【図３】本発明の好ましい実施形態による、データ処理システムの単純化された図でＰＣＲのそれぞれを相互接続するリングベースのバス構造を示す図である。
【図４】本発明の好ましい実施形態による、マルチプロセッサ・システム内のパイプライン処理を容易にするのにＰＣＲを使用する例を示す図である。
【図５】本発明の好ましい実施形態による、マルチプロセッサ・システム内の並列処理を容易にするのにＰＣＲを使用する例を示す図である。
【図６】本発明の好ましい実施形態による、改善されたプロセッサ通信を有するクラスタベースのデータ処理ネットワークを示す図である。
【図７】本発明の好ましい実施形態による、クラスタＣ１からＣ３のすべてのプロセッサ・ユニットに含まれるプロセッサ通信レジスタのデータ・フォーマットを示す図である。
【図８】本発明の好ましい実施形態による、改善されたプロセッサ通信を提供するのに独立の無線ネットワークを使用するデータ処理システムを示す図である。
【符号の説明】
【００４０】
１２  相互接続
２２  プロセッサ通信レジスタ（ＰＣＲ）
２４  プロセッサ通信レジスタ（ＰＣＲ）
２６  プロセッサ通信レジスタ（ＰＣＲ）
２８  プロセッサ通信レジスタ（ＰＣＲ）
３０  メモリ・コントローラ
３２  メモリ・コントローラ
３４  メモリ・コントローラ
３６  メモリ・モジュール
３８  メモリ・モジュール
４０  メモリ・モジュール
２００  相互接続
２０２  相互接続
２０４  相互接続
２０６  相互接続
２１０  リング・バス
【図１】
2004192619.tif 000003
【図２】
2004192619.tif 000004
【図３】
2004192619.tif 000005
【図４】
2004192619.tif 000006
【図５】
2004192619.tif 000007
【図６】
2004192619.tif 000008
【図７】
2004192619.tif 000009
【図８】
2004192619.tif 000010