(57)【特許請求の範囲】
【請求項１】
少なくとも一つのプロセッサと、少なくとも一つのメモリモジュールと、前記プロセッサと前記メモリモジュールとの間を接続するセル制御回路とを含むセルを複数有し、前記複数のセルのうち少なくとも一つのセルのメモリモジュールの少なくとも１つが前記複数のセルの共有メモリであるマルチプロセッサシステムにおいて、
前記セル制御回路は、
複数のエントリから成り、各エントリにおいて対応するアドレスに係るメモリモジュールの存在するセルの番号を保持するアドレス解決テーブルと、
アクセスの要求されたアドレスによって前記アドレス解決テーブルを検索してそのアドレスに係るメモリモジュールの存在するセルが他のセルであれば当該他のセルにアクセスする手段と、
他のセルからの前記共有メモリに対するライトアクセスを許容するか否かを指示するライト保護フラグと、
他のセルからのアクセスが自らのセルに存在する前記共有メモリに対するライトアクセスである場合において、前記ライト保護フラグが他セルからのライトアクセスを許容しない旨を指示していればアクセス例外を検出する手段とを含み、
前記アドレス解決テーブルおよびライト保護フラグは、システムの立ち上げ時に初期設定されてなることを特徴とするマルチプロセッサシステム。
【請求項２】
前記アドレス解決テーブルの各エントリは、対応するアドレスに係るメモリモジュールのセル内における識別番号をさらに保持し、
前記セルに含まれるメモリモジュールは前記セル内識別番号により識別されることを特徴とする請求項１記載のマルチプロセッサシステム。
【請求項３】
前記アドレス解決テーブルの少なくとも一つのエントリは、対応するアドレスに係るメモリモジュールの存在するセルの番号として自分以外のセルの番号を保持することを特徴とする請求項１記載のマルチプロセッサシステム。
【請求項４】
全てのセルにおける前記アドレス解決テーブルにおいて全ての対応するエントリに同一のセルの番号を設定したことを特徴とする請求項１記載のマルチプロセッサシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マルチプロセッサシステム及びそのアドレス解決方法に関し、特に分散共有メモリ型アーキテクチャを有するマルチプロセッサシステム及びそのアドレス解決方法に関する。
【０００２】
【従来の技術】
メモリをプロセッサの近傍に分散配置する分散共有メモリアーキテクチャは、全てのメモリを集中配置したシステムと比較して、ローカルなメモリへのアクセスが高速であるという特徴がある。一方、分散共有メモリ構成において異なる物理位置にあるメモリを単一のメモリ空間に編成する場合、メモリアクセスがローカルなメモリかリモートのメモリかを判別し、リモートである場合には転送を行なう必要が生じる。このためには、アドレスを解決するための何らかの手段（例えば、アドレス変換テーブル）が必要となる。
【０００３】
また、典型的な分散共有メモリ構成のシステムでは、プロセッサ、メモリ、その他コンピュータの主要構成要素を具備する構成単位（以下、セルという。）を複数個実装し、これらセルをネットワークによって相互接続することにより、大規模システムを構成する方式が採用されることが多い。この場合、それぞれの構成単位を切り離して独立したコンピュータとして運転することが比較的容易に実現できる。このような切り離しをパーティショニングといい、この場合の切り離されたセルを特にパーティションという。このような構成を採用すれば、集中メモリ型のシステムよりも大規模システムを実現しやすいというメリットがある。
【０００４】
一方、多数個のプロセッサでメモリを共有する大規模な対象型マルチプロセッサ構成のコンピュータでは、ソフトウェア上の制約や資源の競合などのためにプロセッサの個数に比例して性能を上げること（スケーラビリティの向上）が困難であり、またプロセッサの数を増やすには物理的限界もある。そのため、複数のコンピュータを相互接続して大規模な処理能力を実現する手段が採用される場合がある。そのようなシステムをクラスタシステムという。クラスタシステムを構成する個々の独立したコンピュータを特にノードという。クラスタシステムを採用することの利点は、システム規模の限界の打破のみならず、可用性にすぐれるという利点も有する。すなわち、複数のコンピュータが独立して動作することにより、一箇所で発生した故障やクラッシュがシステム全体に波及しにくくなる。そのため、クラスタシステムは、高信頼度システムの実現にもしばしば用いられる。
【０００５】
【発明が解決しようとする課題】
しかし、上述のクラスタシステムは、同規模の単一コンピュータシステムと比較してセットアップや管理が複雑となるほか、筐体や相互接続ケーブルなどの付加コストがかかるという問題がある。このため複数の小型コンピュータを１つの筐体に入れ、必要な相互接続を筐体内で行なうほか、セットアップや試験なども済ませて出荷する、いわゆる筐体内クラスタシステム（Ｃｌｕｓｔｅｒ−Ｉｎ−Ａ−Ｂｏｘ）も市場に出始めている。しかし、このような製品も含め、既存のクラスタシステムではコンピュータの相互接続にネットワークを使用するため、通信オーバヘッドが大きく、ノード数の増加に比例した性能向上が困難な場合がある。
【０００６】
一方、大規模な単一コンピュータシステムは、処理内容によってはプロセッサの数を増やしても性能向上効果が得にくい場合があり、また同規模のクラスタシステムと比較して、単一の故障やトラブルがシステム全体に波及しやすいという問題がある。
【０００７】
本発明の目的は、同一の分散共有メモリアーキテクチャのシステムを、選択的に単一の対象型マルチプロセッサコンピュータとして、または、筐体内クラスタシステムとして運用できるようにすることで、処理内容に応じて両方式の問題点を解決し、それぞれの利点を発揮できる柔軟なコンピュータシステムを提供することにある。
【０００８】
【課題を解決するための手段】
上記課題を解決するために本発明のマルチプロセッサシステムは、少なくとも一つのプロセッサ及びメモリを含むセルを複数有するマルチプロセッサシステムにおいて、指定されたアドレスがいずれのセルに含まれるメモリを指すものであるかを判別し、異なるセルに対するライトであれば抑止する。
【０００９】
本発明の他のマルチプロセッサシステムは、少なくとも一つのプロセッサと、少なくとも一つのメモリモジュールと、前記プロセッサと前記メモリモジュールとの間を接続するセル制御回路とを含むセルを複数有するマルチプロセッサシステムであって、前記セル制御回路は、複数のエントリから成り、各エントリにおいて対応するアドレスに係るメモリモジュールの存在するセルの番号を保持するアドレス解決テーブルと、アクセスの要求されたアドレスによって前記アドレス解決テーブルを検索してそのアドレスに係るメモリモジュールの存在するセルが他のセルであれば当該他のセルにアクセスする手段と、他のセルからのライトアクセスを許容するか否かを指示するライト保護フラグと、他のセルからのアクセスがライトアクセスである場合において、前記ライト保護フラグが他セルからのライトアクセスを許容しない旨を指示していればアクセス例外を検出する手段とを含む。
【００１０】
本発明の他のマルチプロセッサシステムにおいて、前記アドレス解決テーブルの各エントリは、対応するアドレスに係るメモリモジュールのセル内における識別番号をさらに保持し、前記セルに含まれるメモリモジュールは前記セル内識別番号により識別される。
【００１１】
本発明の他のマルチプロセッサシステムにおいて、前記アドレス解決テーブルの少なくとも一つのエントリは、対応するアドレスに係るメモリモジュールの存在するセルの番号として自分以外のセルの番号を保持する。
【００１２】
本発明の他のマルチプロセッサシステムにおいて、前記ライト保護フラグは、他のセルからのライトアクセスを許容しない旨を指示するよう設定される。
【００１３】
本発明の他のマルチプロセッサシステムにおいて、前記ライト保護フラグの設定に拘わらず、特定のセルからのライトアクセスは許容する。
【００１４】
本発明の他のマルチプロセッサシステムにおいて、少なくともいずれか２つのセルの前記アドレス解決テーブルにおいて少なくとも１つの対応するエントリに同一のセルの番号を設定される。
【００１５】
本発明の他のマルチプロセッサシステムにおいて、全てのセルにおける前記アドレス解決テーブルにおいて全ての対応するエントリに同一のセルの番号を設定される。
【００１６】
本発明の他のマルチプロセッサシステムにおけるセル制御回路は、少なくとも一つのプロセッサと、少なくとも一つのメモリモジュールと、前記プロセッサと前記メモリモジュールとの間を接続するセル制御回路とを含むセルを複数有するマルチプロセッサシステムにおける前記セル制御回路であって、複数のエントリから成り、各エントリにおいて対応するアドレスに係るメモリモジュールの存在するセルの番号を保持するアドレス解決テーブルと、アクセスの要求されたアドレスによって前記アドレス解決テーブルを検索してそのアドレスに係るメモリモジュールの存在するセルが他のセルであれば当該他のセルにアクセスする手段と、他のセルからのライトアクセスを許容するか否かを指示するライト保護フラグと、他のセルからのアクセスがライトアクセスである場合において、前記ライト保護フラグが他セルからのライトアクセスを許容しない旨を指示していればアクセス例外を検出する手段とを含む。
【００１７】
本発明の他のマルチプロセッサシステムにおけるセル制御回路において、前記アドレス解決テーブルの各エントリは、対応するアドレスに係るメモリモジュールのセル内における識別番号をさらに保持し、前記セルに含まれるメモリモジュールは前記セル内識別番号により識別される。
【００１８】
本発明のマルチプロセッサシステムにおけるアドレス解決方法は、少なくとも一つのプロセッサ及びメモリを含むセルを複数有するマルチプロセッサシステムにおいて、前記セルの各々は各エントリにおいて対応するアドレスに係るメモリモジュールの存在するセルの番号を保持するアドレス解決テーブルを含み、前記アドレス解決テーブルを索引するステップと、指定されたアクセスが他のセルからライトか否かを判別するステップと、前記指定されたアクセスが他セルからのライトであると判別された場合において、他セルからのライトを許容しないように設定されていればアクセス例外を検出するステップとを含む。
【００１９】
【発明の実施の形態】
次に本発明のマルチプロセッサシステムの実施の形態について図面を参照して詳細に説明する。
【００２０】
図１を参照すると、本発明のマルチプロセッサシステムの実施の形態は、複数のセル４００をネットワーク５００により相互接続することにより構成される。ここで、システムは４つのセル４００を有するものとし、それぞれのセル４００はそれぞれ４つのプロセッサ２００、メモリ３００、及び、セル制御回路１００を有するものと仮定する。但し、この数はシステムの要求に応じて任意に設定することができる。
【００２１】
メモリ３００は、各セル４００に分散して存在しており、プロセッサ２００から見るとセル内のメモリと他セルのメモリとでは距離が異なる。すなわち、アクセス時間が異なる。このような構成は、物理的側面から分散共有メモリアーキテクチャとよばれ、また時間的側面から不均一メモリアクセスアーキテクチャと呼ばれる。一方、分散共有メモリ構成であっても、論理的には全てのメモリを集めて１つの大きな空間としてソフトウェアに提供することが可能であり、ソフト見えはメモリが全てのプロセッサから等距離の場所に集中して配置されているかのように見せることができる。すなわち、いずれのプロセッサから見てもシステムが同じように見えるように構成することができる。この意味で、本トポロジのシステムも対象型マルチプロセシングコンピュータの一形態と言える。
【００２２】
このような構成をとる情報処理システムにおいては、システム全体を一つの対象型マルチプロセッサコンピュータとして使用することも可能であり、また僅かな付加機構を加えることによって複数のより小規模なコンピュータに分割して使用することも可能である。
【００２３】
図２を参照すると、各セル内のセル制御回路１００は、アドレスレジスタ１１０と、アドレス解決テーブル１２０と、ライト保護フラグ１３０と、セル番号レジスタ１４１と、アクセス種別レジスタ１４２と、比較器１５０と、論理積回路１６０とを含む。
【００２４】
アドレス解決テーブル１２０は、システムの立ち上げ時に初期設定される。本アドレス解決テーブル１２０により、各セルに分散して存在するメモリ３００はアドレスが重複しない単一のメモリ空間に構成される。プロセッサ２００が要求したメモリアドレスは、アドレス解決テーブル１２０を索引することにより、どの物理セルへのアクセスかが判明する。アドレス解決テーブル１２０は、複数のエントリを有し、アドレスレジスタ１１０に保持されたプロセッサ２００又はネットワーク５００からのアドレスの中のモジュールアドレス１１１により索引される。各エントリは、有効ビット１２１、セル番号１２２、及び、セル内モジュール番号１２３を保持する。有効ビット１２１は、当該エントリが有効か否かを指示する。例えば、”０”であれば有効ではなく、”１”であれば有効であることを意味する。セル番号１２２は、当該アドレスに相当するメモリモジュールが存在するセルの番号を表示する。ここにいうセルの番号は、システム全体に物理的に付与された番号でもよく、また、例えば自己のセルを”０”で表す等の相対的に付与された番号でもよい。従って、「セルの番号が同一」とは、表現上の同一ではなく実質的に同一のセルを指し示すことを意味する。セル内モジュール番号１２３は、当該アドレスに相当するメモリモジュールがセル内のいずれのメモリ３００であるかを表示する。セル内モジュール番号１２３とモジュール内アドレスオフセット１１２とを繋げたものがセル内アドレス１９１となる。
【００２５】
ライト保護フラグ１３０は、他のセルからのアクセスがライトであった場合にそのライトを許可するか否かを指示する。例えば、”０”のときは他のセルからのライトを許容するが、”１”のときは他のセルからのライトは許容せずにアクセス例外とする。
【００２６】
セル番号レジスタ１４１は、アクセスリクエストを発行したプロセッサ２００の存在するセルのセル番号を格納するためのレジスタである。アクセス種別レジスタ１４２はアクセスリクエストの種別を表す。例えば、”１”の場合にライトを意味するものとする。比較器１５０は、セル番号レジスタ１４１の内容とアドレス解決テーブル１２０から読み出したセル番号１２２とを比較する。論理積回路１６０は、アドレス解決テーブル１２０の有効ビット１２１が有効を示し、アクセス種別がライトであり、ライト保護フラグ１３０がライトを許容せず、且つ、アドレス解決テーブル１２０から読み出したセル番号１２２がセル番号レジスタ１４１の値と一致しない場合にはアクセス例外発生信号１６１を出力する。これにより、クラスタ構成におけるノード間の独立性を高め、エラー伝搬を防止することができる。
【００２７】
次に本発明の実施の形態の動作について図面を参照して説明する。
【００２８】
図１から図３を参照すると、プロセッサ２００からメモリアクセスがあると、モジュールアドレス１１１によってアドレス解決テーブル１２０を索引する（ステップＳ３０１）。その結果、有効フラグ１２１が”無効”を示していれば（ステップＳ３０２）、当該アクセスは存在しないアドレスにされたものであるとしてアドレス不在例外を発生する。また、他のセルに存在するメモリアドレスであることが判明すると（ステップＳ３０３）、ネットワーク５００を介して当該他のセルでアクセスが行われる。また、自セルに存在するメモリアドレスであれば、自セル内の該当するメモリモジュールにアクセスする（ステップＳ３０３）。
【００２９】
また、他のセルからアクセスがあった場合、そのアクセスがライトでなければ（ステップＳ３１１）自セルの場合と同様に該当するメモリモジュールにアクセスする（ステップＳ３０４）。これに対し、他のセルからのアクセスがライトの場合にはライト保護フラグ１３０をチェックし（ステップＳ３１２）、他のセルからのライトを許容する旨を指示していれば該当するメモリモジュールにアクセスし（ステップＳ３０３）他のセルからのライトを許容しない旨を指示していればアクセス例外を検出する。
【００３０】
次に、本発明の実施の形態によるメモリ構成例について説明する。
【００３１】
各ノード＃０から＃３のアドレス解決テーブル１２０の設定を図４のようにした場合、図５のメモリ構成が実現される。図５において、実線部分は各ノードに物理的に搭載されたメモリである。ここでは全ノードが同量のメモリを備えると仮定しているが実際は同じでなくて良い。また、縦軸はそれぞれのノードから見たメモリアドレスを示し、全ノードとも０番地から始まる空間を持つと仮定している。なお、図４のテーブルでは第０番地が上に描かれているのに対して、図５では通例に従い第０番地を一番下に置いている。
【００３２】
このメモリ構成例では、各ノードのモジュールアドレスｘ０からｘ２は、それぞれのノードのローカルメモリにマップされ、互いに独立である（セル固有メモリ）。一方、モジュールアドレスｘ３からｘ６は、各セルのメモリモジュールをアドレスが異なるように組み合わされ、共通のアドレスによる相互アクセスが可能となっている（共有通信エリア）。なお、この構成例では、各ノードの論理アドレス空間の半分以上が共有空間となっているが、これは各セルのメモリを４モジュール構成と便宜上したためであり、実用的な構成では、共有エリアの固有エリアに対する比率は、本実施例よりも小さくすることができる。
【００３３】
各ノード＃０から＃３のアドレス解決テーブル１２０の設定を図６のようにした場合、図７のメモリ構成が実現される。この図７の例では、セル＄０とセル＄１が対象型マルチプロセッサ構成の独立したコンピュータを構成し、２つで１つのノードとして、セル＄２（ノード＃２）、セル＄３（ノード＃３）とともに３ノードのクラスタシステムを構成する。ノード＃０においては、セル＃０の物理メモリ全部とセル＄１のメモリモジュールｘ０からｘ２の合計７モジュールが、ローカルメモリとしてセル＄０及びセル＄１から共通にアクセスできるように構成されている。セル＄１のモジュールｘ３は、クラスタ共有メモリ（通信エリア）としてノード間で共有されている。セル＄２及びセル＄３のメモリマップは、図５のものと本質的に同じであり、共有メモリに設定している各メモリモジュールｘ３のアドレスのみが異なっている。
【００３４】
この図６の設定の場合、ライト保護フラグ１３０は、他のクラスタからのライトアクセスを許容するか否かを指示することを意味する。すなわち、セルに跨るライトアクセスであってもノード内ならばライトアクセスを許容することになる。従って、この設定を採用する場合には、特定のセル（同じノードを構成するセル）からのライトアクセスを許容する必要がある。
【００３５】
各ノード＃０から＃３のアドレス解決テーブル１２０の設定を図８のようにした場合、図９のメモリ構成が実現される。この構成例では、ある一つのノードにあるメモリのみをノード間で共有する。但し、この構成の場合は、ライト保護フラグ１３０は、他のセルからのライトを許容する状態に設定しておく必要がある。これにより、ノード＃０に物理的に存在するメモリに全ノードから書き込めるようになり、これを通信手段として使用できる。一方、この場合、ノード＃０に障害があるとノード間通信が一切不能となってシステム全体のダウンにつながるおそれもある。従って、メモリのサイズと通信量とを考慮して選択する必要がある。
【００３６】
各ノード＃０から＃３のアドレス解決テーブル１２０の設定を図１０のようにした場合、図１１のメモリ構成が実現される。これは、対象型マルチプロセッサを模擬したものである。各ノードのメモリはノード＃０からアドレスの順に積み上げられ、全体として１６モジュール分の容量をもつ１つのメモリ空間に再構成される。そして、全ノードから全てのメモリが同じようにアクセスされる。
【００３７】
なお、上述の説明では、アドレス解決手段の例としてアドレス変換テーブルを示したが、実際にアクセス源で最小限必要とするのは、セル間アクセスをフォワードするために必要なルーティング情報だけであり、相手セル内のメモリロケーションを特定するのに必要な情報などは相手セル内など他の場所に持つことも可能である。
【００３８】
このように、本発明の実施の形態によれば、アドレス解決テーブル１２０によって当該アドレスがいずれのセルに存在するかを判断し、且つ、ライト保護フラグ１３０により他セルからのライトを抑止するか否かを指定することによって、マルチプロセッサシステムにおける種々のメモリ構成を実現するとともに、あるセルの故障による影響を他のセルに波及させないようにすることができる。
【００３９】
【発明の効果】
以上の説明で明らかなように、本発明によると、アクセスしようとするアドレスがいずれのセルに存在するかを判断し、且つ、他セルからのライトを抑止するモードを設けることによって、種々のメモリ構成により柔軟にマルチプロセッサシステムを運用することができるとともに、セル間の独立性を高めて、あるセルの故障による影響を他のセルに波及させないようにすることができる。
【図面の簡単な説明】
【図１】本発明のマルチプロセッサシステムの実施の形態の構成を示すブロック図である。
【図２】本発明の実施の形態におけるセル制御回路の構成を示す図である。
【図３】本発明の実施の形態における動作を説明するための流れ図である。
【図４】本発明によるメモリ構成の第１の例を実現するためのアドレス解決テーブルの設定例である。
【図５】本発明によるメモリ構成の第１の例のメモリマップを示す図である。
【図６】本発明によるメモリ構成の第２の例を実現するためのアドレス解決テーブルの設定例である。
【図７】本発明によるメモリ構成の第２の例のメモリマップを示す図である。
【図８】本発明によるメモリ構成の第３の例を実現するためのアドレス解決テーブルの設定例である。
【図９】本発明によるメモリ構成の第３の例のメモリマップを示す図である。
【図１０】本発明によるメモリ構成の第４の例を実現するためのアドレス解決テーブルの設定例である。
【図１１】本発明によるメモリ構成の第４の例のメモリマップを示す図である。
【符号の説明】
１００  セル制御回路
１１０  アドレスレジスタ
１２０  アドレス解決テーブル
１３０  ライト保護フラグ
１４１  セル番号レジスタ
１４２  アクセス種別レジスタ
１５０  比較器
１６０  論理積回路
２００  プロセッサ
３００  メモリ
４００  セル
５００  ネットワーク
【図１】
0003720981.tif 000002
【図２】
0003720981.tif 000003
【図３】
0003720981.tif 000004
【図４】
0003720981.tif 000005
【図５】
0003720981.tif 000006
【図６】
0003720981.tif 000007
【図７】
0003720981.tif 000008
【図８】
0003720981.tif 000009
【図９】
0003720981.tif 000010
【図１０】
0003720981.tif 000011
【図１１】
0003720981.tif 000012