(57)【要約】  【課題】  スヌープリトライの性能を改善するマルチプロセッサシステム制御装置、スケーラブルノード、スケーラブルマルチプロセッサシステム、マルチプロセッサシステム制御方法を提供する。  【解決手段】  自ノードからのデータの要求を保持する複数のローカルポートと、ローカルスヌープを行うローカルスヌープ部と、ローカルスヌープの結果、要求データが処理できない場合に、要求を他ノードへブロードキャストするブロードキャストキューと、他ノードからブロードキャストされた要求を保持する複数のグローバルポートと、グローバルスヌープを行うグローバルスヌープ部と、グローバルスヌープの結果、要求データが処理できない場合のリトライ指示において、所定の条件に従ってグローバルリトライモードとローカルリトライモードを切り替える、複数のリトライモード制御部１３とを備えた。  【選択図】  図２
2006120029.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードを備えたスケーラブルマルチプロセッサシステムにおいて、各ノードに備えられ、データの要求に対する処理を行うマルチプロセッサシステム制御装置であって、
自ノードからのデータの要求を保持する複数のローカルポートと、
前記ローカルポートに保持された要求についてのスヌープであるローカルスヌープを行うローカルスヌープ部と、
前記ローカルスヌープの結果、要求データが処理できない場合に、前記ローカルスヌープを行った要求を保持し、他ノードへブロードキャストするブロードキャストキューと、
他ノードからブロードキャストされた要求を保持する複数のグローバルポートと、
前記グローバルポートに保持された要求についてのスヌープであるグローバルスヌープを行うグローバルスヌープ部と、
前記グローバルスヌープの結果として要求データが処理できない場合に出すリトライ指示について、前記グローバルポートへリトライ指示を出すグローバルリトライモードと前記ローカルポートへリトライ指示を出すローカルリトライモードの２つのリトライモードを持ち、所定の条件に従って前記２つのリトライモードを切り替える、複数のリトライモード制御部と、
を備えてなるマルチプロセッサシステム制御装置。
【請求項２】
請求項１に記載のマルチプロセッサシステム制御装置において、
前記ローカルポートは、前記ローカルスヌープにより要求データが解決するか、前記グローバルスヌープにより要求データが解決するまで、前記自ノードからのデータの要求を保持することを特徴とするマルチプロセッサシステム制御装置。
【請求項３】
請求項１または請求項２に記載のマルチプロセッサシステム制御装置と、
前記マルチプロセッサシステム制御装置にデータの要求を行う複数のＣＰＵと、
データを保持し、前記マルチプロセッサシステム制御装置からの要求に応じて保持したデータを読み出すメインメモリと、
を備えてなるスケーラブルノード。
【請求項４】
請求項３に記載のスケーラブルノードを複数備えてなるスケーラブルマルチプロセッサシステム。
【請求項５】
複数のノードを備えたスケーラブルマルチプロセッサシステムにおいて、各ノードでのデータの要求に対する処理を行うマルチプロセッサシステム制御方法であって、
自ノードからのデータの要求を保持する複数のローカルポートステップと、
前記ローカルポートステップで保持された要求についてのスヌープであるローカルスヌープを行うローカルスヌープステップと、
前記ローカルスヌープの結果、要求データが処理できない場合に、前記ローカルスヌープを行った要求を保持し、他ノードへブロードキャストするブロードキャストステップと、
他ノードからブロードキャストされた要求を保持する複数のグローバルポートステップと、
前記グローバルポートステップで保持された要求についてのスヌープであるグローバルスヌープを行うグローバルスヌープステップと、
前記グローバルスヌープの結果として要求データが処理できない場合に出すリトライ指示について、前記グローバルポートステップへのリトライ指示を出すグローバルリトライモードと前記ローカルポートステップへのリトライ指示を出すローカルリトライモードの２つのリトライモードを持ち、所定の条件に従って前記２つのリトライモードを切り替える、複数のリトライモード制御ステップと、
を備えてなるマルチプロセッサシステム制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スケーラブルマルチプロセッサシステムのスヌープ処理の性能改善を図るマルチプロセッサシステム制御装置、スケーラブルノード、スケーラブルマルチプロセッサシステム、マルチプロセッサシステム制御方法に関するものである。
【背景技術】
【０００２】
図９は、従来のスケーラブルマルチプロセッサシステムの構成の一例を示すブロック図である。従来のスケーラブルマルチプロセッサシステムは、直接または間接的に相互接続可能なスケーラブルノードであるノード１０１を複数備える。図９（ａ）は直接接続の場合を示しており、ノード間は直接接続される。図９（ｂ）は間接接続の場合を示しており、ノード１０１間はＸＢ（Cross Bar）２で接続される。
【０００３】
図１０は、従来のノードの構成の一例を示すブロック図である。従来のスケーラブルマルチプロセッサシステムにおけるノード１０１は、ＣＰＵ（Central Processing Unit）３、ＩＯ（Input/Output）４、ＳＣ（System Controller）１０５、ＭＡＣ（Memory Access Controller）６、メインメモリ７からなる。ＳＣ１０５はローカルノードのＣＰＵ３、ＩＯ４、ＭＡＣ６に接続されるとともに、他ノードのＳＣ１０５またはＸＢ２に接続される。また、ＳＣ１０５はスヌープ処理を行うためのスヌープ処理部１１２を備える。ＭＡＣ６はメインメモリ７に接続される。
【０００４】
ノード間でメモリを共有する例として、ＣＣ−ＮＵＭＡ（Cache Coherent Non-Uniform Memory Access）が挙げられる。ここで、ＣＣ−ＮＵＭＡの動作の概要について説明する。ＣＰＵ３やＩＯ４からデータの要求が発行されると、まずスヌープ処理部１１２はローカルノード内の他のＣＰＵ３のキャッシュやメインメモリ７に要求データが存在するかどうかのスヌープ処理を行う。これをローカルスヌープと呼ぶ。
【０００５】
ローカルスヌープの結果、ローカルノード内に要求データが存在しない場合、もしくはビジー等によりデータの応答が不可能である場合、スヌープ処理部１１２は全ノード１０１に対して要求をブロードキャストし、全ノード同時にスヌープを行う。これをグローバルスヌープと呼ぶ。
【０００６】
なお、本発明の関連ある従来技術として、例えば、下記に示す特許文献１が知られている。
【特許文献１】特開平７−２８７４８号公報  （第３−４頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述したグローバルスヌープにおいて、要求のアクセス先のアドレス領域が先行の要求によりビジーとなっている場合、先行の要求が終わるまでグローバルスヌープのリトライを繰り返していた。従って、特定のアドレス領域に要求が集中すると、処理に時間がかかっていた。
【０００８】
さらに、グローバルスヌープを待つためのキューは有限であるため、このキューが満杯の場合、後続の要求はブロードキャストすることができなくなる。従って、アクセス先のアドレス領域がビジーでない要求であっても、グローバルスヌープのキューが満杯だと待たされてしまう。つまり、アクセスが集中していないアドレス領域に対する処理が、アクセスが集中するアドレス領域の処理のために、遅くなるという問題があった。
【０００９】
本発明は上述した問題点を解決するためになされたものであり、スヌープリトライの性能を改善するマルチプロセッサシステム制御装置、スケーラブルノード、スケーラブルマルチプロセッサシステム、マルチプロセッサシステム制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決するため、本発明は、複数のノードを備えたスケーラブルマルチプロセッサシステムにおいて、各ノードに備えられ、データの要求に対する処理を行うマルチプロセッサシステム制御装置であって、自ノードからのデータの要求を保持する複数のローカルポートと、前記ローカルポートに保持された要求についてのスヌープであるローカルスヌープを行うローカルスヌープ部と、前記ローカルスヌープの結果、要求データが処理できない場合に、前記ローカルスヌープを行った要求を保持し、他ノードへブロードキャストするブロードキャストキューと、他ノードからブロードキャストされた要求を保持する複数のグローバルポートと、前記グローバルポートに保持された要求についてのスヌープであるグローバルスヌープを行うグローバルスヌープ部と、前記グローバルスヌープの結果として要求データが処理できない場合に出すリトライ指示について、前記グローバルポートへリトライ指示を出すグローバルリトライモードと前記ローカルポートへリトライ指示を出すローカルリトライモードの２つのリトライモードを持ち、所定の条件に従って前記２つのリトライモードを切り替える、複数のリトライモード制御部とを備えたものである。
【００１１】
また、本発明に係るマルチプロセッサシステム制御装置において、前記ローカルポートは、前記ローカルスヌープにより要求データが解決するか、前記グローバルスヌープにより要求データが解決するまで、前記自ノードからのデータの要求を保持することを特徴とするものである。
【００１２】
また、本発明は、スケーラブルノードであって、本発明に係るマルチプロセッサシステム制御装置と、前記マルチプロセッサシステム制御装置にデータの要求を行う複数のＣＰＵと、データを保持し、前記マルチプロセッサシステム制御装置からの要求に応じて保持したデータを読み出すメインメモリとを備えたものである。
【００１３】
また、本発明は、スケーラブルマルチプロセッサシステムであって、上述した本発明に係るスケーラブルノードを複数備えたものである。
【００１４】
また、本発明は、複数のノードを備えたスケーラブルマルチプロセッサシステムにおいて、各ノードでのデータの要求に対する処理を行うマルチプロセッサシステム制御方法であって、自ノードからのデータの要求を保持する複数のローカルポートステップと、前記ローカルポートステップで保持された要求についてのスヌープであるローカルスヌープを行うローカルスヌープステップと、前記ローカルスヌープの結果、要求データが処理できない場合に、前記ローカルスヌープを行った要求を保持し、他ノードへブロードキャストするブロードキャストステップと、他ノードからブロードキャストされた要求を保持する複数のグローバルポートステップと、前記グローバルポートステップで保持された要求についてのスヌープであるグローバルスヌープを行うグローバルスヌープステップと、前記グローバルスヌープの結果として要求データが処理できない場合に出すリトライ指示について、前記グローバルポートステップへのリトライ指示を出すグローバルリトライモードと前記ローカルポートステップへのリトライ指示を出すローカルリトライモードの２つのリトライモードを持ち、所定の条件に従って前記２つのリトライモードを切り替える、複数のリトライモード制御ステップとを備えたものである。
【００１５】
なお、ローカルスヌープ部とは実施の形態におけるローカルスヌープパイプライン３０のことである。また、グローバルスヌープ部とは実施の形態におけるグローバルスヌープパイプライン６０のことである。
【発明の効果】
【００１６】
本発明によれば、グローバルスヌープ待ちのキューを空け、後続の要求のグローバルスヌープを可能とすることにより、後続の要求の遅延を防ぐことができ、結果としてメモリアクセスの性能を向上させることがきる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態について図面を参照しつつ説明する。
【００１８】
図１は、本発明に係るスケーラブルマルチプロセッサシステムの構成の一例を示すブロック図である。図９と同様、図１（ａ）は直接接続の場合、図１（ｂ）は間接接続の場合を示す。本発明に係るスケーラブルマルチプロセッサシステムは、図９におけるノード１０１の代わりにノード１を備える。
【００１９】
図２は、本発明に係るノードの構成の一例を示すブロック図である。本発明に係るノード１は、図１０におけるＳＣ１０５の代わりにＳＣ５を備える。また、本発明に係るＳＣ５は、図１０におけるスヌープ処理部１１２の代わりにスヌープ処理部１２を備える。また、本発明に係るＳＣ５は、新たに複数のリトライモード制御部１３を備える。リトライモード制御部１３はノード毎に対応するため、スケーラブルマルチプロセッサシステムにおけるノード数ｎだけ用意する。
【００２０】
図３は、本発明に係るスヌープ処理部の構成の一例を示すブロック図である。スヌープ処理部１２は、複数のローカルポート２１、プライオリティ決定部２２、ローカルスヌープパイプライン３０、複数のブロードキャストキュー４１、プライオリティ決定部４２，複数のグローバルポート群５０、プライオリティ決定部５３、グローバルスヌープパイプライン６０で構成される。ここで、グローバルポート群５０の数はノード毎に対応するため、ノード数ｎである。１つのグローバルポート群５０は、複数のグローバルポート５１、プライオリティ決定部５２で構成される。グローバルポート５１はノード毎にｇ個ずつ用意されており、全部でｇ×ｎ個用意されている。
【００２１】
次に、スヌープ処理部１２の動作について説明する。図４は、本発明に係るスヌープ処理部の動作の一例を示すフローチャートである。ここでは、データの要求の発行元のノードにおけるスヌープ処理部１２の動作に従って説明する。また、リトライモード制御部１３は、スヌープ処理部１２にリトライモードの指示を渡す。リトライモードとして、グローバルリトライモードとローカルリトライモードがあり、初期状態をグローバルリトライモードとする。また、スヌープ処理部１２は、リトライモード制御部１３に状態変数を渡す。
【００２２】
ＣＰＵ３からＳＣ５へのデータの要求は、まずローカルポート２１と呼ばれる、ローカルスヌープ待ちのキューにセットされる。プライオリティ決定部２２は、ローカルポート２１にセットされた要求に対してプライオリティを決定し、プライオリティを獲得した要求を、ローカルスヌープを実行するためのパイプラインであるローカルスヌープパイプライン３０に投入し、ローカルスヌープを行う（Ｓ２）。
【００２３】
次に、ローカルスヌープの結果、ローカル解決をしたか否かの判断を行う（Ｓ３）。ローカル解決をしていれば（Ｓ３，Ｙ）、このフローを終了する。一方、ローカル解決をしていなければ（Ｓ３，Ｎ）、ブロードキャスト待ちの要求を保持するためのブロードキャストキュー４１に、要求をセットする。ここで、ローカルポート２１は要求を保持し続ける。グローバルスヌープの処理が確定した段階でグローバルスヌープパイプライン６０からリセット指示が出るので、このときローカルポート２１は解放される。ローカルポート２１に長時間、要求を保持することから、ローカルポート２１が満杯となってＣＰＵ３やＩＯ４からの後続の要求が送出できなくなることを防ぐために、ローカルポートの個数はＣＰＵ３、ＩＯ４の要求発行可能数と等しくする。
【００２４】
次に、ローカルスヌープで処理を確定できない要求は、ブロードキャストキュー４１においてプライオリティ決定部４２によりプライオリティを獲得後、すべてのノード１のＳＣ５にブロードキャストされる（Ｓ５）。要求がブロードキャストされると、ブロードキャストキュー４１は解放される。
【００２５】
他のＳＣからブロードキャストされて受信した要求は、グローバルスヌープの実行を待つ要求を保持するためのグローバルポート５１にセットされる。プライオリティ決定部５２は、１つのグローバルポート群５１の中のすべてのグローバルポート５１からの出力にプライオリティを与える。プライオリティ決定部５３はすべてのグローバルポート群５１からの出力にプライオリティを与え、プライオリティを獲得した要求を、グローバルスヌープを実行するためのパイプラインであるグローバルスヌープパイプライン６０に投入し、グローバルスヌープを行う（Ｓ７）。グローバルスヌープはすべてのＳＣで同時に実行される。グローバルスヌープの結果、要求データが処理可能か否かの判断を行う（Ｓ８）。
【００２６】
要求データが処理可能であれば（Ｓ８，Ｙ）、グローバルスヌープパイプライン６０からのリセット指示に従って、グローバルポート５１は解放され、このフローは終了する。このとき、要求を発行したノードのＳＣでは、グローバルスヌープパイプライン６０からのリセット指示に従って、ローカルポート２１に保持されている同一の要求も解放される。
【００２７】
一方、要求データが先行の要求によるビジーのため処理できない場合（Ｓ８，Ｎ）、リトライモードがローカルリトライモードであるか否かの判断を行う（Ｓ１１）。
【００２８】
ローカルリトライモードでない、すなわちグローバルリトライモードである場合（Ｓ１１，Ｎ）、処理Ｓ７へ戻り、グローバルポート５１からグローバルスヌープのためのプライオリティにリトライし、再びグローバルスヌープパイプライン６０に投入される。
【００２９】
一方、ローカルリトライモードである場合（Ｓ１１，Ｙ）、グローバルスヌープパイプライン６０からリトライ指示が出されると、グローバルポート５１からリトライせず、リトライ指示に対応するグローバルポート５１を解放する。
【００３０】
一方、リトライ指示を受けた要求の発行元ノードのＳＣでは、処理Ｓ２に戻り、ローカルポート２１に保持されている要求をリトライする。
【００３１】
リトライ指示に対応するグローバルポートが解放されたことにより、ブロードキャストキューでグローバルポートが解放されるのを待っていた後続の要求がブロードキャストされて、グローバルポートにセットされてグローバルスヌープが実行される。
【００３２】
図５は、本発明に係るリトライモード制御部の動作の一例を示すフローチャートである。上述したように、初期状態はグローバルリトライモードとする（Ｓ２１）。
【００３３】
次に、１つのノードに対応するグローバルポート群５２の、すべてのグローバルポート５１が満杯になったか否かの判断を行う（Ｓ２２）。満杯になっていない場合（Ｓ２２，Ｎ）、処理Ｓ２１に戻る。一方、満杯になった場合（Ｓ２２，Ｙ）、満杯になったすべての要求がリトライを繰り返すという状況が所定の期間続くか否かの判断を行う（Ｓ２３）。所定の期間続いていない場合（Ｓ２３，Ｎ）、処理Ｓ２１に戻る。一方、所定の期間続いた場合（Ｓ２３，Ｙ）、グローバルリトライモードからローカルリトライモードに移行する（Ｓ２４）。次に、ローカルリトライモードが所定の期間続いたか否かの判断を行う（Ｓ２５）。所定の期間続いていない場合（Ｓ２５，Ｎ）、処理Ｓ２４へ戻る。一方、所定の期間続いた場合（Ｓ２５，Ｙ）、このフローを終了し、再びこのフローを実行する、すなわちグローバルリトライモードとなる。
【００３４】
次に、上述したリトライモード制御部の動作を実現するための構成の具体例について説明する。図６は、本発明に係るリトライモード制御部の構成の一例を示す回路図である。この回路は、リトライモード（ＲＥＴＲＹ＿ＭＯＤＥ信号）の状態を示す1bitのフリップフロップ８１と、グローバルポートが満杯の状態である期間とローカルリトライモードの期間とをカウントするための（Ｓ＋１）ビットのカウンター値（ＣＴ［Ｓ：０］）を示すフリップフロップ８２とを備える。
【００３５】
次に、図６に示すリトライモード制御部の動作について説明する。フリップフロップ８１のリトライモードが、”０”のときはグローバルリトライモードであり、”１”のときがローカルリトライモードである。パワーオンリセット直後はフリップフロップ８１のリトライモード、フリップフロップ８２のカウンター値、ともに”０”であり、グローバルリトライモードである。グローバルポートすべてに要求がセットされるとカウンター値のインクリメントが開始される。グローバルポートのいずれかがリセットされると、カウンター値はリセットされる。カウンター値がリセットされずに、設定された値に達すると、リトライモードのビットを反転し、ローカルリトライモードに移行する。このときカウンター値はリセットされる。
【００３６】
ローカルリトライモードのときは、カウンターは常時インクリメントされ、設定された値に達すると、リトライモードのビットを反転し、再びグローバルリトライモードに戻る。このときもカウンターはリセットされる。
【００３７】
上述したリトライモード制御部１３がスヌープ処理部１２の状態を知るために、ローカルポート２１とグローバルポート５１のそれぞれに（ＶＡＬＩＤ，ＨＯＬＤ）のビットを設け、ポートの状態を示し、これらの状態変数を対応するリトライモード制御部１３へ渡す。ローカルポート２１における（ＶＡＬＩＤ，ＨＯＬＤ）を（ＬＶ，ＬＨ）と呼び、グローバルポート５１における（ＶＡＬＩＤ，ＨＯＬＤ）を（ＧＶ，ＧＨ）と呼ぶことにする。ＬＶはローカルポート２１のＶＡＬＩＤビットでローカルポート２１に有効な要求がセットされていることを示す。ＬＨはローカルポート２１のＨＯＬＤビットでローカルスヌープパイプライン３０に投入済みであることを示す。ＧＶはグローバルポート５１のＶＡＬＩＤビットでグローバルポート５１に有効な要求がセットされていることを示す。ＧＨはグローバルポート５１のＨＯＬＤビットでグローバルスヌープ実行中であることを示す。
【００３８】
このうち、ＬＶ、ＧＶ、ＧＨは、従来のローカルポートとグローバルポートにも用いられていたビットであり、ＬＨは本発明のローカルリトライ制御を実現するために新たに設けられたビットである。
【００３９】
ローカルポート２１とグローバルポート５１はそれぞれ、上述した状態変数（ＶＡＬＩＤ，ＨＯＬＤ）を制御するための状態変数制御回路を備える。図７は、本発明に係る状態変数制御回路の構成の一例を示す回路図である。初期状態は（ＶＡＬＩＤ，ＨＯＬＤ）＝（０，０）である。ポートに要求をセットする際、ＳＥＴ信号でフリップフロップ９１の出力であるＶＡＬＩＤをセットする。また、スヌープのためのプライオリティを獲得したことを示すＰＲＩＯ＿ＴＫＮ信号を受け取ると、フリップフロップ９２の出力であるＨＯＬＤをセットする。また、リトライを示すＲＥＴＲＹ信号を受け取ると、ＨＯＬＤ信号をリセットする。パワーオンリセット等によりＲＥＳＥＴ信号を受け取ると、ＶＡＬＩＤとＨＯＬＤを共にリセットする。
【００４０】
次に、要求毎の状態変数（ＬＶ，ＬＨ，ＧＶ，ＧＨ）の遷移について説明する。図８は、本発明に係る状態変数（ＬＶ，ＬＨ，ＧＶ，ＧＨ）の遷移の一例を表す状態遷移図である。まず、パワーオンリセット後は（０，０，０，０）である。ＣＰＵ３またはＩＯ４からＳＣ５へ要求が発行され、ローカルポート２１にセットされると、ＬＶがセットされ状態変数は（１，０，０，０）になる。要求がローカルスヌープのプライオリティを獲得するとＬＨがセットされ状態変数は（１，１，０，０）になる。
【００４１】
ローカルスヌープでローカル解決した場合、ＬＶとＬＨはリセットされ、状態変数は（０，０，０，０）になり処理が完了する。一方、ローカルスヌープでローカル解決できない場合、要求はブロードキャストされ、グローバルポート５１にセットされる。このときＧＶをセットするので状態変数は（１，１，１，０）となる。その後、要求がグローバルスヌープのプライオリティを獲得するとＧＨがセットされ、状態変数は（１，１，１，１）になる。
【００４２】
グローバルスヌープにより要求の処理が確定するとローカルポート２１、グローバルポート５１ともに（ＶＡＬＩＤ，ＨＯＬＤ）がリセットされ、状態変数は（０，０，０，０）となる。
【００４３】
グローバルスヌープでのビジーによりリトライが指示された場合、グローバルリトライモードであれば、ＧＨをリセットし、グローバルスヌープのプライオリティに再び参加する。このとき状態変数は（１，１，１，０）になる。ローカルリトライモードであれば、グローバルポートの（ＶＡＬＩＤ，ＨＯＬＤ）とローカルポートのＨＯＬＤをリセットし、ローカルスヌープの手前から処理をやり直す。このときの状態変数は（１，０，０，０）である。
【００４４】
なお、本発明においてローカルスヌープの機構は必須ではなく、ＣＰＵ３からの要求を直接ブロードキャストするようなシステムにも適用可能である。このようなシステムにおいて、ローカルポート２１の代わりにブロードキャストキュー４１が要求を保持し、ローカルリトライモードでグローバルスヌープパイプライン６０からリトライ指示が出されると、ブロードキャストキュー４１に保持されている要求のブロードキャストをリトライする。
【００４５】
（付記１）  複数のノードを備えたスケーラブルマルチプロセッサシステムにおいて、各ノードに備えられ、データの要求に対する処理を行うマルチプロセッサシステム制御装置であって、
自ノードからのデータの要求を保持する複数のローカルポートと、
前記ローカルポートに保持された要求についてのスヌープであるローカルスヌープを行うローカルスヌープ部と、
前記ローカルスヌープの結果、要求データが処理できない場合に、前記ローカルスヌープを行った要求を保持し、他ノードへブロードキャストするブロードキャストキューと、
他ノードからブロードキャストされた要求を保持する複数のグローバルポートと、
前記グローバルポートに保持された要求についてのスヌープであるグローバルスヌープを行うグローバルスヌープ部と、
前記グローバルスヌープの結果として要求データが処理できない場合に出すリトライ指示について、前記グローバルポートへリトライ指示を出すグローバルリトライモードと前記ローカルポートへリトライ指示を出すローカルリトライモードの２つのリトライモードを持ち、所定の条件に従って前記２つのリトライモードを切り替える、複数のリトライモード制御部と、
を備えてなるマルチプロセッサシステム制御装置。
（付記２）  付記１に記載のマルチプロセッサシステム制御装置において、
前記ローカルポートは、前記ローカルスヌープにより要求データが解決するか、前記グローバルスヌープにより要求データが解決するまで、前記自ノードからのデータの要求を保持することを特徴とするマルチプロセッサシステム制御装置。
（付記３）  付記１または付記２に記載のマルチプロセッサシステム制御装置において、
前記ローカルポートの数は、自ノード内のＣＰＵやＩＯからの要求発行可能数に等しいことを特徴とするマルチプロセッサシステム制御装置。
（付記４）  複数のノードを備えたスケーラブルマルチプロセッサシステムにおいて、各ノードに備えられ、データの要求に対する処理を行うマルチプロセッサシステム制御装置であって、
自ノードからのデータの要求を保持し、他ノードへブロードキャストするブロードキャストキューと、
他ノードからの要求を保持する複数のグローバルポートと、
前記グローバルポートに保持された要求についてスヌープを行うグローバルスヌープ部と、
前記グローバルスヌープの結果として要求データが処理できない場合に出すリトライ指示について、前記グローバルポートへリトライ指示を出すグローバルリトライモードと前記ブロードキャストキューへリトライ指示を出すローカルリトライモードの２つのリトライモードを持ち、所定の条件に従って前記２つのリトライモードを切り替える、複数のリトライモード制御部と、
を備えてなるマルチプロセッサシステム制御装置。
（付記５）  付記４に記載のマルチプロセッサシステム制御装置において、
前記ブロードキャストキューは、前記ローカルスヌープにより要求データが解決するか、前記グローバルスヌープにより要求データが解決するまで、前記自ノードからのデータの要求を保持することを特徴とするマルチプロセッサシステム制御装置。
（付記６）  付記１乃至付記５のいずれかに記載のマルチプロセッサシステム制御装置において、
前記リトライモード制御部は、前記グローバルスヌープモードにおいて、１つのノードに対応するすべてのグローバルポートが使用中でリトライを行う状態が所定の期間続いた場合に、前記ローカルスヌープモードに移行することを特徴とするマルチプロセッサシステム制御装置。
（付記７）  付記１乃至付記６のいずれかに記載のマルチプロセッサシステム制御装置において、
前記リトライモード制御部は、前記ローカルスヌープモードが所定の期間続いた場合に、前記グローバルスヌープモードに移行することを特徴とするマルチプロセッサシステム制御装置。
（付記８）  付記１乃至付記７のいずれかに記載のマルチプロセッサシステム制御装置において、
前記リトライモード制御部の数は、ノード数と等しいことを特徴とするマルチプロセッサシステム制御装置。
（付記９）  付記１乃至付記８のいずれかに記載のマルチプロセッサシステム制御装置と、
前記マルチプロセッサシステム制御装置にデータの要求を行う複数のＣＰＵと、
データを保持し、前記マルチプロセッサシステム制御装置からの要求に応じて保持したデータを読み出すメインメモリと、
を備えてなるスケーラブルノード。
（付記１０）  付記９に記載のスケーラブルノードを複数備えてなるスケーラブルマルチプロセッサシステム。
（付記１１）  複数のノードを備えたスケーラブルマルチプロセッサシステムにおいて、各ノードでのデータの要求に対する処理を行うマルチプロセッサシステム制御方法であって、
自ノードからのデータの要求を保持する複数のローカルポートステップと、
前記ローカルポートステップで保持された要求についてのスヌープであるローカルスヌープを行うローカルスヌープステップと、
前記ローカルスヌープの結果、要求データが処理できない場合に、前記ローカルスヌープを行った要求を保持し、他ノードへブロードキャストするブロードキャストステップと、
他ノードからブロードキャストされた要求を保持する複数のグローバルポートステップと、
前記グローバルポートステップで保持された要求についてのスヌープであるグローバルスヌープを行うグローバルスヌープステップと、
前記グローバルスヌープの結果として要求データが処理できない場合に出すリトライ指示について、前記グローバルポートステップへのリトライ指示を出すグローバルリトライモードと前記ローカルポートステップへのリトライ指示を出すローカルリトライモードの２つのリトライモードを持ち、所定の条件に従って前記２つのリトライモードを切り替える、複数のリトライモード制御ステップと、
を備えてなるマルチプロセッサシステム制御方法。
（付記１２）  付記１１に記載のマルチプロセッサシステム制御方法において、
前記ローカルポートステップは、前記ローカルスヌープにより要求データが解決するか、前記グローバルスヌープにより要求データが解決するまで、前記自ノードからのデータの要求を保持することを特徴とするマルチプロセッサシステム制御方法。
（付記１３）  付記１１または付記１２に記載のマルチプロセッサシステム制御方法において、
前記ローカルポートステップの数は、自ノード内のＣＰＵやＩＯからの要求発行可能数に等しいことを特徴とするマルチプロセッサシステム制御方法。
（付記１４）  複数のノードを備えたスケーラブルマルチプロセッサシステムにおいて、各ノードでのデータの要求に対する処理を行うマルチプロセッサシステム制御方法であって、
自ノードからのデータの要求を保持し、他ノードへブロードキャストするブロードキャストステップと、
他ノードからの要求を保持する複数のグローバルポートステップと、
前記グローバルポートステップで保持された要求についてのスヌープであるグローバルスヌープを行うグローバルスヌープステップと、
前記グローバルスヌープの結果として要求データが処理できない場合に出すリトライ指示について、前記グローバルポートステップへのリトライ指示を出すグローバルリトライモードと前記ブロードキャストステップへのリトライ指示を出すローカルリトライモードの２つのリトライモードを持ち、所定の条件に従って前記２つのリトライモードを切り替える、複数のリトライモード制御ステップと、
を備えてなるマルチプロセッサシステム制御方法。
（付記１５）  付記１４に記載のマルチプロセッサシステム制御方法において、
前記ブロードキャストステップは、前記ローカルスヌープにより要求データが解決するか、前記グローバルスヌープにより要求データが解決するまで、前記自ノードからのデータの要求を保持することを特徴とするマルチプロセッサシステム制御方法。
（付記１６）  付記１１乃至付記１５のいずれかに記載のマルチプロセッサシステム制御方法において、
前記リトライモード制御ステップは、前記グローバルスヌープモードにおいて、１つのノードに対応するすべてのグローバルポートステップが使用中でリトライを行う状態が所定の期間続いた場合に、前記ローカルスヌープモードに移行することを特徴とするマルチプロセッサシステム制御方法。
（付記１７）  付記１１乃至付記１６のいずれかに記載のマルチプロセッサシステム制御方法において、
前記リトライモード制御ステップは、前記ローカルスヌープモードが所定の期間続いた場合に、前記グローバルスヌープモードに移行することを特徴とするマルチプロセッサシステム制御方法。
（付記１８）  付記１１乃至付記１７のいずれかに記載のマルチプロセッサシステム制御方法において、
前記リトライモード制御ステップの数は、ノード数と等しいことを特徴とするマルチプロセッサシステム制御方法。
【図面の簡単な説明】
【００４６】
【図１】本発明に係るスケーラブルマルチプロセッサシステムの構成の一例を示すブロック図である。
【図２】本発明に係るノードの構成の一例を示すブロック図である。
【図３】本発明に係るスヌープ処理部の構成の一例を示すブロック図である。
【図４】本発明に係るスヌープ処理部の動作の一例を示すフローチャートである。
【図５】本発明に係るリトライモード制御部の動作の一例を示すフローチャートである。
【図６】本発明に係るリトライモード制御部の構成の一例を示す回路図である。
【図７】本発明に係る状態変数制御回路の構成の一例を示す回路図である。
【図８】本発明に係る状態変数（ＬＶ，ＬＨ，ＧＶ，ＧＨ）の遷移の一例を表す状態遷移図である。
【図９】従来のスケーラブルマルチプロセッサシステムの構成の一例を示すブロック図である。
【図１０】従来のノードの構成の一例を示すブロック図である。
【符号の説明】
【００４７】
１，１０１  ノード、２  ＸＢ、３  ＣＰＵ、４  ＩＯ、５，１０５  ＳＣ、６  ＭＡＣ、７  メインメモリ、１２，１１２  スヌープ処理部、１３  リトライモード制御部、２１  ローカルポート、２２，４２，５２，５３  プライオリティ決定部、３０  ローカルスヌープパイプライン、４１  ブロードキャストキュー、５０  グローバルポート群、５１  グローバルポート、６０  グローバルスヌープパイプライン、８１，８２，９１，９２  フリップフロップ。
【図１】
2006120029.tif 000003
【図２】
2006120029.tif 000004
【図３】
2006120029.tif 000005
【図４】
2006120029.tif 000006
【図５】
2006120029.tif 000007
【図６】
2006120029.tif 000008
【図７】
2006120029.tif 000009
【図８】
2006120029.tif 000010
【図９】
2006120029.tif 000011
【図１０】
2006120029.tif 000012