説明

アドレススヌープ方法及びマルチプロセッサシステム

【課題】本発明は、アドレススヌープ方法及びマルチプロセッサシステムに関し、多数のI/Oブロックをプロセッサブロックから独立させてマルチプロセッサシステムに容易に実装可能とすると共に、マルチプロセッサシステムの性能の上限の低下(レイテンシの増加)を防止可能とすることを目的とする。
【解決手段】複数のプロセッサと複数のメモリからなるプロセッサブロックが複数個アドレス結合装置を介して複数のI/Oブロックと接続された構成のマルチプロセッサシステムにおけるアドレススヌープ方法において、任意の1つのプロセッサブロックからアクセスリクエストが発生したときに、前記アクセスリクエストに対して応答するか否かを判断するアドレススヌープ処理を、各I/Oブロックに代わって前記アドレス結合装置において行うように構成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アドレススヌープ方法及びマルチプロセッサシステムに係り、特に複数のプロセッサブロックと複数の入出力(I/O)ブロックとが結合装置を介して接続されたマルチプロセッサシステムにおけるアドレススヌープ処理を行うアドレススヌープ方法と、そのようなアドレススヌープ方法を用いるマルチプロセッサシステムに関する。
【背景技術】
【0002】
マルチプロセッサシステムは、複数のプロセッサブロックと複数のI/Oブロックとが結合装置を介して接続された構成を有する。各プロセッサブロックは、複数のプロセッサと複数のメモリとからなる。他方、各I/Oブロックは、ディスク装置等の記憶装置を含む。以下の説明では、便宜上、各プロセッサブロックが、複数のCPUと複数のキャッシュメモリとからなるCPUブロックで構成されているものとする。
【0003】
従来のマルチプロセッサシステムでは、I/OブロックがCPUブロックと1対1で併設されるか、或いは、I/Oブロックが独立していても少数のI/Oブロックが複数のCPUブロックから共用される構成になっている。しかし、CPUブロック数に比例してキャッシュメモリ間のアクセスは増加し、CPUブロック数を増加させることは必ずしもマルチプロセッサシステムの性能向上には結びつかない。そこで、CPUブロックをI/Oブロックを介してインタコネクト(Interconnect)し、マルチプロセッサシステムの性能を増加させる方式が提案されている。
【0004】
ところが、このような提案方式を採用しても、従来のマルチプロセッサシステムのようにCPUブロック数当たりのI/Oブロック数が制限されていたり、複数のCPUブロックでI/Oブロックを共用していると、マルチプロセッサシステムの性能は大幅に制限され、このような提案方式を採用する意味が無くなってしまう。
【0005】
このため、I/Oブロックを多数実装し、各CPUブロックで使用可能なI/Oブロック数を増加させ、CPUブロックとI/Oブロックをフレキシブルに組み合わせて使用できる構成が望まれている。
【0006】
プロセッサユニットが出力するメモリアクセスをインタコネクトネットワークを用いて他のキャッシュが監視する構成のマルチプロセッサシステムは、例えば特許文献1に記載されている。転送先ポートが異なる複数のユニキャストを同時に実行する機構を有するマルチプロセッサシステムは、例えば特許文献2に記載されている。又、ノード間相互結合ネットワークで接続されたマルチプロセッサシステムは、例えば特許文献3に記載されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平9−138782号公報
【特許文献2】特開平9−138783号公報
【特許文献3】特開2001−184321号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
I/OブロックをCPUブロックから独立させてマルチプロセッサシステムに多数実装すると、各I/Oブロックで個別にアドレスをスヌープする必要が生じる。この場合、アドレス結合装置から各I/Oブロックに対して、アドレススヌープ処理に必要な信号を供給しなければならない。しかし、各I/Oブロックにアドレススヌープ処理に必要な信号を供給するためには、アドレス結合装置のLSI当たりのピン数を増加させたり、複数のLSIに機能を分割する等の実装上の工夫が必要になるので、実装を困難にすると共にコストの増加も招くという問題があった。又、マルチプロセッサシステム(特にアドレス結合装置及びI/Oブロック)の構成も複雑になるため、配線長の増加及び伝送遅延を招き、マルチプロセッサシステムの性能の上限を低下させる(レイテンシを増加させる)原因になるという問題もあった。
【0009】
そこで、本発明は、多数のI/Oブロックをプロセッサブロックから独立させてマルチプロセッサシステムに容易に実装可能とすると共に、マルチプロセッサシステムの性能の上限の低下(レイテンシの増加)を防止可能なアドレススヌープ方法及びマルチプロセッサシステムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記の課題は、複数のプロセッサと複数のメモリからなるプロセッサブロックが複数個アドレス結合装置を介して複数のI/Oブロックと接続された構成のマルチプロセッサシステムにおけるアドレススヌープ方法であって、任意の1つのプロセッサブロックからアクセスリクエストが発生したときに、該アクセスリクエストに対して応答するか否かを判断するアドレススヌープ処理を、各I/Oブロックに代わって該アドレス結合装置において行うことを特徴とするアドレススヌープ方法によって達成できる。
【0011】
上記の課題は、複数のプロセッサと複数のメモリからなるプロセッサブロックが複数個アドレス結合装置を介して複数のI/Oブロックと接続された構成のマルチプロセッサシステムであって、任意の1つのプロセッサブロックからアクセスリクエストが発生したときに、該アクセスリクエストに対して応答するか否かを判断するアドレススヌープ処理を、各I/Oブロックに代わって該アドレス結合装置において行うことを特徴とするマルチプロセッサシステムによっても達成できる。
【発明の効果】
【0012】
本発明によれば、多数のI/Oブロックをプロセッサブロックから独立させてマルチプロセッサシステムに容易に実装可能であると共に、マルチプロセッサシステムの性能の上限の低下(レイテンシの増加)を防止可能なアドレススヌープ方法及びマルチプロセッサシステムを実現することができる。
【図面の簡単な説明】
【0013】
【図1】本発明になるマルチプロセッサシステムの一実施例の要部を示すブロック図である。
【図2】マルチプロセッサシステムのパーティション構成を説明する図である。
【図3】アドレススヌープ回路の要部を含むアドレス結合装置の構成を示すブロック図である。
【図4】コンフィグレーションアクセスを行う場合のCPUブロックの管理ソフトウェアとアドレス結合装置との関係を説明するブロック図である。
【図5】マルチプロセッサシステムの処理を説明するフローチャートである。
【発明を実施するための形態】
【0014】
一般的なマルチプロセッサシステムのI/Oブロックには、マルチプロセッサシステム全体でコンシステンシを保つ必要のあるキャッシュメモリが実装されていないのが通常であり、スヌープしたアドレスに対して応答するキャッシュステータスの生成処理は、プロセッサブロックのアクセスに比べて単純である。本発明ではこの点に着目し、アドレス結合装置にI/Oブロックでキャッシュステータスを生成するのに必要な情報のコピーを保持し、I/Oブロックに対するアドレススヌープ処理をI/Oブロックに代わってアドレス結合装置で行うように構成する。
【0015】
I/Oブロックには、そのI/Oブロックに対するアクセスが確定した場合だけそのアドレス情報を通知することにより、I/Oブロックとアドレス結合装置間の接続端子数を削減することができる。つまり、多数のI/Oブロックを接続可能なマルチプロセッサシステムを、アドレス結合装置内のLSI当たりのピン数を増加させずに実現することができる。このようにして、アドレス結合装置とI/Oブロックとの間の接続端子数や配線数及び配線長を減少させることができるので、多数のI/Oブロックの接続と、高密度な実装及びそれによる伝送遅延削減の両方を実現可能となる。
【0016】
以下に、本発明になるアドレススヌープ方法及びマルチプロセッサシステムの各実施例を、図面と共に説明する。
【実施例】
【0017】
図1は、本発明になるマルチプロセッサシステムの一実施例の要部を示すブロック図である。マルチプロセッサの本実施例は、本発明になるアドレススヌープ方法の一実施例を採用する。同図中、マルチプロセッサシステム1は、複数のCPUブロック11−1〜11−Lと、データ結合装置12と、アドレス結合装置13と、複数のI/Oブロック14−1〜14−Mからなる。ここで、L,Mは2以上の整数であり、本実施例では説明の便宜上L=M=8であるものとする。
【0018】
各CPUブロック11−i(i=1〜L)は、複数のCPU110−1〜110−N、複数のキャッシュメモリ111−1〜111−O等からなる周知の構成を有する。ここで、N,Oは、2以上の整数であり、本実施例では説明の便宜上N=2,O=4である。尚、キャッシュ制御部等の図示は省略する。
【0019】
データ結合装置12は、CPUブロック11−1〜11−LとI/Oブロック14−1〜15−M間のデータのやり取りを制御する周知の構成を有し、デコード部121,122等からなる。
【0020】
アドレス結合装置13は、CPUブロック11−1〜11−LとI/Oブロック14−1〜15−M間のアドレスのやり取りを制御する構成を有し、キュー部131、M個のスヌープ回路132−1〜132−M等からなる。アドレス結合装置13のより詳細な構成については、図3と共に後述する。
【0021】
各I/Oブロック14−1〜14−Mは、ディスク装置等の記憶装置等からなる周知の構成を有する。
【0022】
本実施例では、各I/Oブロック14−1〜14−Mに対するアドレススヌープ処理は、全てアドレス結合装置13内で処理される。又、スヌープ回路132−1〜132−Mがアドレス結合装置13内に設けられているので、各I/Oブロック14−1〜14−M内にスヌープ回路を設ける場合と比較すると、アドレス結合装置13とI/Oブロック14−1〜14−Mとの間は少ない配線数で結合されている。
【0023】
データ結合装置12は、アドレス結合装置13とは並列に接続されている。アドレス結合装置13により転送先の確定したデータは、データ結合装置12を介して転送先に送られる。各CPUブロック11−1〜11−Lとデータ結合装置12との間のバス上を流れるデータと、各I/Oブロック14−1〜14−Mとデータ結合装置12との間のバス上を流れるデータとは、いずれもヘッダ及びデータ本体からなるデータ構造を有する。ヘッダに書かれた転送先及びデータ長に従って、後続のデータ部に書かれたデータが転送されるようになっている。
【0024】
上記の如き構成のマルチプロセッサ1では、データ結合装置12及びアドレス結合装置13により、CPUブロックとI/Oブロック間だけではなく、CPUブロック間及びI/Oブロック間も接続される。
【0025】
図2は、マルチプロセッサシステム1のパーティション構成を説明する図である。同図中、図1と同一部分には同一符号を付し、その説明は省略する。
【0026】
各CPUブロック11−1〜11−LとI/Oブロック14−1〜14−Mとは、任意の組み合わせでパーティションを構成可能である。異なるパーティション間でのアクセスは行われない。図2は、パーティションP0がCPUブロック11−1とI/Oブロック14−1,14−2の組み合わせで構成され、パーティションP1がCPUブロック11−2,11−3とI/Oブロック14−3の組み合わせで構成されている場合を示す。尚、パーティションP0には、アドレス結合装置13内の対応する2つのスヌープ回路132−1,132−2が含まれ、パーティションP1には、アドレス結合装置13内の対応する1つのスヌープ回路132−3が含まれる。
【0027】
スヌープ回路132−1〜132−Mがアドレス結合装置13内に設けられているので、各I/Oブロック14−1〜14−M内にスヌープ回路を設ける場合と比較すると、アドレス結合装置13とI/Oブロック14−1〜14−Mとの間が少ない配線数で結合されているものの、パーティションを構成するCPUブロックとI/Oブロックの組み合わせをより大きな自由度で選択することができる。
【0028】
図3は、アドレススヌープ回路132−jの要部を含むアドレス結合装置の構成を示すブロック図である。説明の便宜上、図3は、任意のCPUブロック11−jとI/Oブロック14−jに関わるアドレス結合装置13の要部を示す。
【0029】
図3に示すように、アドレス結合装置13は、スヌープ回路132−j、バッファ134,135、選択回路136、キャッシュステータス合成部137、コマンドチェック部138及び動作オン・オフ部139からなる。バッファ134,135及び選択回路136は、図1に示すキュー部131を構成する。スヌープ回路132−jは、アドレスチェック部201、キャッシュステータス生成部202及びI/Oブロック向けリクエスト生成部203からなる。
【0030】
本実施例では、例えば1つのCPUブロック11−jとアドレス結合装置13との間が95ビット幅の信号線(ECCを含む)で接続されている。95ビット幅のうち、アドレス結合装置13へのアドレスが16ビット、CPUブロック11−jへのスヌープアドレスが48ビット、アドレス結合装置13へのキャッシュステータスが13ビット、CPUブロック11−jへの合成されたキャッシュステータスが18ビットである。他方、1つのI/Oブロック14−jとアドレス結合装置13との間は、26ビット幅の信号線(ECCを含む)で接続されている。26ビット幅のうち、アドレス結合装置13へのアドレスが13ビット、I/Oブロック14−jへのリクエストが13ビットである。
【0031】
基本的には、スヌープ回路132−jをI/Oブロック14−j内ではなくアドレス結合装置13に設けた構成となっており、更に、I/Oブロック14−jに対するアクセスが確定したリクエストを通知する機能がスヌープ回路132−jに追加されている。
【0032】
CPUブロック11−j及びI/Oブロック14−jから入力されたアドレスは、ブロック毎に一旦対応するバッファ134,135内のキューに保存される。これらのアドレスは選択回路136により順次選択され、スヌープアドレスとして全CPUブロック11−1〜11−L及びアドレス結合装置13内に包含された全スヌープ回路132−1〜132−Mにブロードキャストされる。CPUブロック11−jは、スヌープアドレスからアクセスに必要な情報を得る。
【0033】
I/Oブロック14−jが処理を行うのに必要な情報は、スヌープアドレスをスヌープ回路132−j内に保持しておいて生成する。I/Oブロック14−j宛てのリクエストは、スヌープアドレス全体ではなく、必要なアドレス情報部分のみを送れば良い。しかし、I/Oブロック14−jで処理が必要なアクセスの割合は全体から見て少ないため、簡単化のためにI/Oブロック14−jに送信する可能性のある全てのコマンドのデータを一度に包含できるコマンドフォーマットを用いることが望ましい。
【0034】
I/Oブロック14−jは、数種類のコマンドフォーマットのリクエストを受け取るが、一般的なコマンドは例えば160ビットの情報からなる。このような一般的なコマンドを例えば10サイクルかけてアドレス結合装置13とI/Oブロック14−j間を伝送させる。コマンドがアドレス結合装置13内のスヌープアドレスバスを流れるときは、例えば150ビットのコマンドとなる。
【0035】
スヌープ回路132−jの動作開始及び停止の指示は、I/Oブロック14−jから出されるコマンドに従って、コマンドチェック部138及び動作オン・オフ部139を介して設定される。このコマンドは、スヌープ動作のオン・オフを設定するのみで、バッファ135内のアドレスキューには保持されない。コマンドチェック部138は、I/Oブロック14−jから出力されるコマンドをチェックすることで、スヌープ回路132−jの動作開始又は動作停止の指示であるか否かを判定する。動作オン・オフ部139は、コマンドチェック部138によるコマンドのチェックの結果、動作開始の指示であればスヌープ回路132−jの動作開始を指示し、動作停止の指示であればスヌープ回路132−jの動作停止を指示する。
【0036】
動作開始が指示されたスヌープ回路132−j内では、アドレスチェック部201がスヌープアドレスをチェックし、キャッシュステータス生成部202がI/Oブロック14−jに割り当てられたアドレス範囲の設定に従って、同じパーティションに属するCPUブロックに対するデータキャッシュの状態、即ち、アクセスがヒット(Hit)したか否かを示すキャッシュステータスを生成する。このI/Oブロック14−jから見たキャッシュステータスは、キャッシュステータス合成部137へ出力される。キャッシュステータス合成部137へは、I/Oブロック14−jと同じパーティションに属するCPUブロック(この場合、CPUブロック11−j等)からも、CPUブロックから見たキャッシュステータスが返される。
【0037】
キャッシュステータス合成部137で合成されたキャッシュステータスは、全てのCPUブロック11−1〜11−L及びアドレス結合装置13内の全てのスヌープ回路132−1〜132−Mに再度ブロードキャストされる。合成されたキャッシュステータスは、各スヌープ回路132−1〜132−M内のI/Oブロック向けリクエスト生成部203に入力される。例えばI/Oブロック14−jで処理を行う必要がある場合は、アドレス結合装置13内のスヌープ回路132−jにおいてI/Oブロック向けリクエスト生成部203がそのリクエストを生成し、I/Oブロック14−jに転送する。
【0038】
この場合、CPU11−jからのキャッシュステータスがアドレス結合装置13に再度入力されるまでは、スヌープアドレスは図3中太い破線で示すようにスヌープ回路132−j内に保持されている。具体的には、スヌープアドレスは、アドレスチェック部201内のレジスタ、I/Oブロック向けリクエスト生成部203内のレジスタ、又はスヌープ回路132−j内に別途設けられたレジスタ等に保持される。これは、最終的にスヌープ回路132−j内のI/Oブロック向けリクエスト生成部203がI/Oブロック14−jに対してリクエストを発行するときに、スヌープアドレスの情報が必要になるためである。尚、スヌープアドレスの入力から合成されたキャッシュステータスが入力されるまでの時間が、全CPUブロック11−1〜11−Lで固定サイクルになるように設計されている。
【0039】
データ転送が発生する場合は、データ結合装置12を介して処理が継続するが、データ転送自体は本発明の要旨と直接関係がないので、周知のデータ転送技術を採用可能であるため、その説明は省略する。
【0040】
本実施例では、スヌープ回路132−jからI/Oブロック14−jに対して発行するリクエストは、アドレスのフォーマットとは若干異なっており、I/Oブロック11−j等が必要とする情報のみを通知して配線数を削減している。I/Oブロック14−jからアドレス結合装置13への接続に関しても同様で、I/Oブロック14−jが発行しないコマンドのサポートは不要であるため、フォーマットを最適化して信号数を削減している。
【0041】
次に、コンフィグレーションアクセスを行う場合のCPUブロックの管理ソフトウェアとアドレス結合装置13との関係について、図4と共に説明する。図4は、コンフィグレーションアクセスを行う場合のCPUブロックの管理ソフトウェアとアドレス結合装置13との関係を説明するブロック図である同図中、図3と同一部分には同一符号を付し、その説明は省略する。
【0042】
通常のデータ転送は、データ結合装置12を介して行われるが、コンフィギュレーションアクセスを行うためのスヌープアドレスは、その中にデータを包含する形式になっている。
【0043】
各CPUブロック11−1〜11−L(各CPU110−1〜110−N)の管理ソフトウェアは、アドレス結合装置13の構成を気にする必要は無い。本来、スヌープ回路は、I/Oブロック内に設けられるので、管理ソフトウェアは、各I/Oブロック14−1〜14−Mに対してアドレス範囲を通知するコンフィギュレーションアクセスを行う。このとき、本実施例では、各スヌープ回路132−1〜132−Mはアドレス結合装置13内に設けられているので、自回路内でアドレススヌープ処理を行うのに必要なデータが流れると、そのデータを保持、或いは、コピーして保持して、それ以降のアドレス範囲のチェックの際に使用する。保持、或いは、コピーして保持するデータは、アドレスチェック部201内のレジスタ、I/Oブロック向けリクエスト生成部203内のレジスタ、又はスヌープ回路132−j内に別途設けられたレジスタ等に保持される。図4は、I/Oブロック向けリクエスト生成部203内にデータのコピーが保持され、アドレスチェック部201におけるアドレス範囲のチェックの際にアドレス情報204として使用される場合を示す。
【0044】
尚、I/Oブロック11−1〜11−Lに対するコンフィギュレーションアクセス自体は実行され、I/Oブロック14−1〜14−Mはそのコンフィギュレーションアクセスの情報を保持する。
【0045】
このように、本実施例では、管理ソフトウェアを変更することなく、スヌープ回路がI/Oブロック内に設けられた構成のマルチプロセッサシステム用の管理ソフトウェアをそのまま使用することができる。
【0046】
次に、マルチプロセッサシステム1の処理を、図5と共に説明する。図5は、マルチプロセッサシステム1の処理を説明するフローチャートである。尚、図5はある1つのスヌープアドレスに対する処理を表しているが、実際には各処理はパイプラインになっており、複数のスヌープアドレスが1つのスヌープ回路内を流れ行くこともあり得る。
【0047】
図5中、ステップS1〜S8はスヌープ回路で実行される処理を示し、ステップS11,S12はCPUブロック又はI/Oブロックで実行される処理を示す。
【0048】
例えば図3に示す場合のように、CPUブロック11−j及びI/Oブロック14−jからアドレス結合装置13に入力されたアドレスのうち1つが選択されると、スヌープアドレスとしてCPUブロック11−jに出力されると共に、スヌープ回路132−jに入力される。ステップS1は、このスヌープアドレスを入力する。ステップS2は、入力されたスヌープアドレスのコマンド種と、スヌープ回路132−j内に保持されているアドレス情報から、そのアクセスに対してI/Oブロック14−jが応答するべきであるか否か、即ち、アクセスがヒット(Hit)したか否かを判定する。I/Oブロック14−jが応答する必要が無く、ステップS2の判定結果がNOであると、ステップS3はキャッシュステータスとしてノーヒット(No Hit)応答をキャッシュステータス合成部137を介してCPUブロック11−jへ出力し、処理はステップS1へ戻る。
【0049】
他方、アクセスがヒットしてステップS2の判定結果がYESであると、ステップS4はキャッシュステータスとしてヒット(Hit)応答をキャッシュステータス合成部137を介してCPUブロック11−jへ出力する。又、ステップS5は、該当I/Oブロック11−jに対してヒット応答をしたキャッシュステータスに対して、他のCPUブロックからのアクセス抑止がないか否か、即ち、グローバルヒット(Global Hit)であるか否かを判定する。他のCPUブロックからのアクセス抑止があり(グローバルヒットではなく)ステップS5の判定結果がNOであると、処理はステップS1へ戻る。他のCPUブロックからのアクセス抑止がなく(グローバルヒット)ステップS5の判定結果がYESであると、ステップS6は該当I/Oブロック14−j向けのリクエストを生成して実際にこのI/Oブロック14−jに対して出力する。
【0050】
ステップS7は、生成したリクエストがアドレススヌープ処理に関わるデータを含むコンフィギュレーションアクセスであるか否かを判定する。ステップS7の判定結果がYESであると、ステップS8はスヌープ回路132−j内にそのデータを保持、或いは、コピーして保持し、処理はステップS1へ戻る。以降のアドレススヌープ処理は、ステップS8で保持されたデータによる新しい設定に従って行われる。
【0051】
ステップS7の判定結果がNOであると、ステップS11及びS12の処理はアドレス結合装置13ではなく、CPUブロック11−j又はI/Oブロック14−jが判断して行われる。この判断は、CPUブロック11−jの場合はキャッシュステータスの受信時、I/Oブロック14−jの場合はリクエスト受信時に行われ、図5に示す処理におけるコンフィギュレーション操作との間で処理順序は関係無い。
【0052】
ステップS11は、コマンドの内容をデコードし、データ転送が必要であるか否かを判定する。ステップS11の判定結果がNOであると、処理はステップS1へ戻る。他方、ステップS11の判定結果がYESであると、ステップS12はデータを持っている側のブロックからデータ結合装置13に出力操作を行う。つまり、リードコマンドであればデータを読み出される側のブロックがデータを出力し、ライトコマンドであればデータを書き込む側のブロックがデータを出力する。
【0053】
コマンドの中には、リクエスト(パケット)内にデータを含むものもあり、そのようなコマンドの場合にはデータ結合装置12を使ったデータ転送は発生しない。コンフィギュレーションアクセスは、この種のコマンドに該当する。
【0054】
本発明は、多数のI/Oブロックをプロセッサブロックから独立させてマルチプロセッサシステムに実装する場合に好適である。
【0055】
尚、本発明は、以下に付記する発明をも包含するものである。
(付記1)
複数のプロセッサと複数のメモリからなるプロセッサブロックが複数個アドレス結合装置を介して複数のI/Oブロックと接続された構成のマルチプロセッサシステムにおけるアドレススヌープ方法であって、
任意の1つのプロセッサブロックからアクセスリクエストが発生したときに、該アクセスリクエストに対して応答するか否かを判断するアドレススヌープ処理を、各I/Oブロックに代わって該アドレス結合装置において行うことを特徴とする、アドレススヌープ方法。
(付記2)
該任意の1つのプロセッサブロック及び任意の1つのI/Oブロックから該アドレス結合装置に入力されたアドレスのうち1つを選択してスヌープアドレスとして該任意の1つのプロセッサブロックに出力し、
該スヌープアドレスのコマンド種と、該アドレス結合装置内に保持されているアドレス情報から、該アクセスリクエストに対して該任意の1つのI/Oブロックが応答するべきであるか否かを判定することを特徴とする、付記1記載のアドレススヌープ方法。
(付記3)
該任意の1つのI/Oブロックが応答する必要が無いと、キャッシュステータスとしてノーヒット応答を該任意の1つのプロセッサブロックへ出力し、
該任意の1つのI/Oブロックが応答する必要があると、キャッシュステータスとしてヒット応答を該任意の1つのプロセッサブロックへ出力することを特徴とする、付記2記載のアドレススヌープ方法。
(付記4)
該当I/Oブロックに対してヒット応答をしたキャッシュステータスに対して、他のプロセッサブロックからのアクセス抑止がないか否かを判定し、
該他のCPUブロックからのアクセス抑止がないと、該当I/Oブロック向けのリクエストを生成して該当I/Oブロックに対して出力することを特徴とする、付記3記載のアドレススヌープ方法。
(付記5)
生成したリクエストがアドレススヌープ処理に関わるデータを含むコンフィギュレーションアクセスであると該アドレス結合装置内にそのデータを保持、或いは、コピーして保持し、以降のアドレススヌープ処理を保持されたデータによる新しい設定に従って行うことを特徴とする、付記4記載のアドレススヌープ方法。
(付記6)
該アドレス結合装置内にアドレススヌープ処理を行うアドレススヌープ回路を該I/Oブロックの数だけ対応させて設け、
各パーティションを、少なくとも1つのプロセッサブロックと、少なくとも1つのI/Oブロックと、該少なくとも1つのI/Oに対応する各アドレススヌープ回路とで構成可能としたことを特徴とする、付記1〜5のいずれか1項記載のアドレススヌープ方法。
(付記7)
複数のプロセッサと複数のメモリからなるプロセッサブロックが複数個アドレス結合装置を介して複数のI/Oブロックと接続された構成のマルチプロセッサシステムであって、
任意の1つのプロセッサブロックからアクセスリクエストが発生したときに、該アクセスリクエストに対して応答するか否かを判断するアドレススヌープ処理を、各I/Oブロックに代わって該アドレス結合装置において行うことを特徴とする、マルチプロセッサシステム。
(付記8)
該アドレス結合装置は、
該任意の1つのプロセッサブロック及び任意の1つのI/Oブロックから該アドレス結合装置に入力されたアドレスのうち1つを選択してスヌープアドレスとして該任意の1つのプロセッサブロックに出力するキャッシュステータス生成手段と、
該スヌープアドレスのコマンド種と、該アドレス結合装置内に保持されているアドレス情報から、該アクセスリクエストに対して該任意の1つのI/Oブロックが応答するべきであるか否かを判定する手段とを備えたことを特徴とする、付記7記載のマルチプロセッサシステム。
(付記9)
該キャッシュステータス生成手段は、該任意の1つのI/Oブロックが応答する必要が無いとキャッシュステータスとしてノーヒット応答を該任意の1つのプロセッサブロックへ出力し、該任意の1つのI/Oブロックが応答する必要があるとキャッシュステータスとしてヒット応答を該任意の1つのプロセッサブロックへ出力することを特徴とする、付記8記載のマルチプロセッサシステム。
(付記10)
該キャッシュステータス生成手段は、該当I/Oブロックに対してヒット応答をしたキャッシュステータスに対して他のプロセッサブロックからのアクセス抑止がないか否かを判定し、該他のCPUブロックからのアクセス抑止がないと該当I/Oブロック向けのリクエストを生成して該当I/Oブロックに対して出力することを特徴とする、付記9記載のマルチプロセッサシステム。
(付記11)
該アドレス結合装置は、
生成したリクエストがアドレススヌープ処理に関わるデータを含むコンフィギュレーションアクセスであると該アドレス結合装置内にそのデータを保持、或いは、コピーして保持する手段を備え、
以降のアドレススヌープ処理を保持されたデータによる新しい設定に従って行うことを特徴とする、付記10記載のマルチプロセッサシステム。
(付記12)
該アドレス結合装置は、
アドレススヌープ処理を行うアドレススヌープ回路を該I/Oブロックの数だけ対応させて備え、
各パーティションを、少なくとも1つのプロセッサブロックと、少なくとも1つのI/Oブロックと、該少なくとも1つのI/Oに対応する各アドレススヌープ回路とで構成可能としたことを特徴とする、付記7〜11のいずれか1項記載のマルチプロセッサシステム。
【0056】
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、種々の変形及び改良が可能であることは、言うまでもない。
【符号の説明】
【0057】
1 マルチプロセッサシステム
11−1〜11−L CPUブロック
12 データ結合装置
13 アドレス結合装置
14−1〜14−M I/Oブロック
132−1〜132−M スヌープ回路
201 アドレスチェック部
202 キャッシュステータス生成部
203 I/Oブロック向けリクエスト生成部

【特許請求の範囲】
【請求項1】
複数のプロセッサと複数のメモリからなるプロセッサブロックが複数個アドレス結合装置を介して複数のI/Oブロックと接続された構成のマルチプロセッサシステムにおけるアドレススヌープ方法であって、
任意の1つのプロセッサブロックからアクセスリクエストが発生したときに、該アクセスリクエストに対して応答するか否かを判断するアドレススヌープ処理を、各I/Oブロックに代わって該アドレス結合装置において行うことを特徴とする、アドレススヌープ方法。
【請求項2】
該任意の1つのプロセッサブロック及び任意の1つのI/Oブロックから該アドレス結合装置に入力されたアドレスのうち1つを選択してスヌープアドレスとして該任意の1つのプロセッサブロックに出力し、
該スヌープアドレスのコマンド種と、該アドレス結合装置内に保持されているアドレス情報から、該アクセスリクエストに対して該任意の1つのI/Oブロックが応答するべきであるか否かを判定することを特徴とする、請求項1記載のアドレススヌープ方法。
【請求項3】
該任意の1つのI/Oブロックが応答する必要が無いと、キャッシュステータスとしてノーヒット応答を該任意の1つのプロセッサブロックへ出力し、
該任意の1つのI/Oブロックが応答する必要があると、キャッシュステータスとしてヒット応答を該任意の1つのプロセッサブロックへ出力することを特徴とする、請求項2記載のアドレススヌープ方法。
【請求項4】
該当I/Oブロックに対してヒット応答をしたキャッシュステータスに対して、他のプロセッサブロックからのアクセス抑止がないか否かを判定し、
該他のCPUブロックからのアクセス抑止がないと、該当I/Oブロック向けのリクエストを生成して該当I/Oブロックに対して出力することを特徴とする、請求項3記載のアドレススヌープ方法。
【請求項5】
生成したリクエストがアドレススヌープ処理に関わるデータを含むコンフィギュレーションアクセスであると該アドレス結合装置内にそのデータを保持、或いは、コピーして保持し、以降のアドレススヌープ処理を保持されたデータによる新しい設定に従って行うことを特徴とする、請求項4記載のアドレススヌープ方法。
【請求項6】
複数のプロセッサと複数のメモリからなるプロセッサブロックが複数個アドレス結合装置を介して複数のI/Oブロックと接続された構成のマルチプロセッサシステムであって、
任意の1つのプロセッサブロックからアクセスリクエストが発生したときに、該アクセスリクエストに対して応答するか否かを判断するアドレススヌープ処理を、各I/Oブロックに代わって該アドレス結合装置において行うことを特徴とする、マルチプロセッサシステム。
【請求項7】
該アドレス結合装置は、
該任意の1つのプロセッサブロック及び任意の1つのI/Oブロックから該アドレス結合装置に入力されたアドレスのうち1つを選択してスヌープアドレスとして該任意の1つのプロセッサブロックに出力するキャッシュステータス生成手段と、
該スヌープアドレスのコマンド種と、該アドレス結合装置内に保持されているアドレス情報から、該アクセスリクエストに対して該任意の1つのI/Oブロックが応答するべきであるか否かを判定する手段とを備えたことを特徴とする、請求項6記載のマルチプロセッサシステム。
【請求項8】
該キャッシュステータス生成手段は、該任意の1つのI/Oブロックが応答する必要が無いとキャッシュステータスとしてノーヒット応答を該任意の1つのプロセッサブロックへ出力し、該任意の1つのI/Oブロックが応答する必要があるとキャッシュステータスとしてヒット応答を該任意の1つのプロセッサブロックへ出力することを特徴とする、請求項7記載のマルチプロセッサシステム。
【請求項9】
該キャッシュステータス生成手段は、該当I/Oブロックに対してヒット応答をしたキャッシュステータスに対して他のプロセッサブロックからのアクセス抑止がないか否かを判定し、該他のCPUブロックからのアクセス抑止がないと該当I/Oブロック向けのリクエストを生成して該当I/Oブロックに対して出力することを特徴とする、請求項8記載のマルチプロセッサシステム。
【請求項10】
該アドレス結合装置は、
アドレススヌープ処理を行うアドレススヌープ回路を該I/Oブロックの数だけ対応させて備え、
各パーティションを、少なくとも1つのプロセッサブロックと、少なくとも1つのI/Oブロックと、該少なくとも1つのI/Oに対応する各アドレススヌープ回路とで構成可能としたことを特徴とする、請求項6〜9のいずれか1項記載のマルチプロセッサシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2011−154735(P2011−154735A)
【公開日】平成23年8月11日(2011.8.11)
【国際特許分類】
【出願番号】特願2011−112553(P2011−112553)
【出願日】平成23年5月19日(2011.5.19)
【分割の表示】特願2005−62661(P2005−62661)の分割
【原出願日】平成17年3月7日(2005.3.7)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】