(57)【特許請求の範囲】
【請求項１】
相互結合網で接続される複数の要素プロセッサを有し、該各要素プロセッサが個別に主記憶を所有し、これを管理する分散メモリ方式をとる並列計算機において、
各々の要素プロセッサの記憶制御装置は、
複数のエントリを有し、各エントリが、エントリの有効無効を示すフィールドと、任意の主記憶アドレス領域の先頭アドレス値をミラーページの先頭アドレス値として保持するフィールドと、前記ミラーページに対応する識別名を記録するフィールドとを有する参照表と、
主記憶書き込み要求に含まれるアドレス情報と前記参照表に保持された先頭アドレス値との比較により、前記主記憶書き込み要求が前記ミラーページへの書き込み要求であることを検出する機構と、
前記主記憶書き込み要求がミラーページへの書き込み要求であることを検出した際に、該主記憶書き込み要求を主記憶に送出するとともに、該ミラーページに対応する識別名情報を有する他の要素プロセッサ向けの放送メッセージとして前記相互結合網に送出する機構と、
相互結合網から受信したメッセージが前記参照表の有効なエントリのいずれかに記録された識別名と一致する識別名情報を有することを検出した際に、該識別名に対応するミラーページへの外部からの書き込み要求を示すメッセージとして処理する機構とを有し、
もって同じ識別名を有するミラーページを所有する要素プロセッサは同じグループとして定義され、該グループの同じ識別名を有するミラーページは、各々の要素プロセッサの主記憶上での存在するアドレスが異なっていても、該識別名によって一意に認識され、該グループの同じ識別名を有する全てのミラーページが同じ内容を維持するように制御されることを特徴とする並列計算機。
【請求項２】
請求項１記載の並列計算機において、
前記要素プロセッサの記憶制御装置が前記ミラーページへの主記憶書き込み要求を検出し、前記相互結合網へのインタフェース装置を介して該書き込み要求を要素プロセッサから相互結合網に送出する際に、該相互結合網に接続される全ての要素プロセッサを対象として放送メッセージ機能を使用することを特徴とする並列計算機。
【請求項３】
請求項２記載の並列計算機において、
前記放送メッセージ機能を使用する際に、通常の放送メッセージ機能と区別するために、該放送メッセージのメッセージ形式の中に特殊モードビットフィールドを設け、
前記要素プロセッサの記憶制御装置が前記ミラーページへの主記憶書き込み要求を検出し、前記相互結合網へのインタフェース装置を介して該書き込み要求を該要素プロセッサから該相互結合網へ送出する際には、該メッセージの該特殊モードビットフィールドを有効化し、該メッセージに主記憶への書き込みバイト位置を示す情報、書き込み先領域での相対アドレス、前記識別名、書き込みデータ、および、書き込みデータ長を登録することを特徴とする並列計算機。
【請求項４】
請求項３記載の並列計算機において、
前記相互結合網へのインタフェース装置は、前記記憶制御装置に備えた前記参照表と同一構造で同一の内容を保持する第２の参照表を備え、かつ前記特殊モードの放送メッセージを受信した際に、該メッセージ中の識別名情報を取り出し、前記第２の参照表から識別名が一致するエントリを探索し、一致するエントリが存在しなければ、該メッセージを破棄し、一致するエントリが存在すれば、該エントリから先頭アドレス値を読み取り、該メッセージ中の書き込み先領域での相対アドレスと組み合わせて書き込みアドレスを作成し、該メッセージ中の書き込みデータ、書き込みデータ長、書き込みバイト位置を示す情報を組み合わせて主記憶アクセス要求を作成し、これを前記記憶制御装置に送出する機構を有することを特徴とする並列計算機。
【請求項５】
請求項４記載の並列計算機において、
前記相互結合網へのインタフェース装置は、前記特殊モードの放送メッセージを受信した際に、該メッセージから主記憶への書き込みバイト位置を示す情報、前記書き込み先領域での相対アドレス、前記識別名、書き込みデータ、および、書き込みデータ長を取り出し、これらを外部からのミラーページへの書き込み要求として前記記憶制御装置に送出する機構を有し、
前記記憶制御装置は、該外部からのミラーページへの書き込み要求を前記相互結合網へのインタフェース装置から受け取ると、該要求中の識別名情報を取り出し、該記憶制御装置が有する参照表から該識別名が一致するエントリを探索し、一致するエントリが存在しなければ、該要求を破棄し、一致するエントリが存在すれば、該エントリから先頭アドレス値を読み取り、該要求中の書き込み先領域での相対アドレス情報と組み合わせて書き込みアドレスを作成し、その他、該要求中の書き込みデータ、書き込みデータ長、書き込みバイト位置を示す情報を組み合わせて主記憶アクセス要求を作成し、これを該主記憶に送出する機構を有することを特徴とする並列計算機。
【請求項６】
請求項１記載の並列計算機において、
前記要素プロセッサの記憶制御装置が前記ミラーページへの主記憶書き込み要求を検出し、前記相互結合網へのインタフェース装置を介して該書き込み要求を要素プロセッサから該相互結合網へ送出する際に、特定のグループとして定義された複数の要素プロセッサの総てを対象とした放送メッセージの転送を行うグループ内放送メッセージ機能を使用することを特徴とする並列計算機。
【請求項７】
請求項６記載の並列計算機において、
前記グループ内放送メッセージ機能を使用する際に、通常のグループ内放送メッセージ機能と区別するために、該グループ内放送メッセージのメッセージ形式の中に特殊モードビットフィールドを設け、
前記要素プロセッサの記憶制御装置が前記ミラーページへの主記憶書き込み要求を検出し、前記相互結合網へのインタフェース装置を介して該書き込み要求を該要素プロセッサから該相互結合網へメッセージを送出する際には、該メッセージの該特殊モードビットフィールドを有効化し、該メッセージに主記憶への書き込みバイト位置を示す情報、書き込み先領域での相対アドレス、前記識別名、書き込みデータ、および、書き込みデータ長を登録することを特徴とする並列計算機。
【請求項８】
請求項７記載の並列計算機において、
前記相互結合網へのインタフェース装置は、前記記憶制御装置に備えた前記参照表と同一構造で同一の内容を保持する第２の参照表を備え、かつ前記特殊モードのグループ内放送メッセージを受信した際に、該メッセージ中の識別名情報を取り出し、前記第２の参照表から該識別名が一致するエントリを探索し、一致するエントリが存在しなければ、該メッセージを破棄し、一致するエントリが存在すれば、該エントリから先頭アドレス値を読み取り、該メッセージ中の該書き込み先領域での相対アドレス情報と組み合わせて書き込みアドレスを作成し、その他、該メッセージ中の書き込みデータ、書き込みデータ長、書き込みバイト位置を示す情報を組み合わせて主記憶アクセス要求を作成し、これを前記記憶制御装置に送出する機構を有することを特徴とする並列計算機。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、分散メモリ方式の並列計算機のメモリ機構に係わり、特に、並列計算機を構成する各要素プロセッサ間での主記憶内容の共有を実現するためのメモリ機構に関する。
【０００２】
【従来の技術】
計算機に対する高速処理性能への要求は、演算プロセッサを複数台連携して使用する並列計算機の登場を促した。
科学技術計算などのいわゆるスーパーコンピューティング分野への適用を目的とする並列計算機は、数百から数千台の演算プロセッサを有し、その演算プロセッサが相互結合網で接続されるという形態をとる。
また、この形態の並列計算機は、各演算プロセッサがそれぞれ主記憶を有し、それを管理するという構成方式（一般に分散メモリ方式と呼ぶ）をとる。
分散メモリ方式の並列計算機では、各演算プロセッサが他の演算プロセッサが管理する主記憶上のデータを参照したい場合に、演算プロセッサ間の相互結合網を介したデータ転送によってこれを実現する。
【０００３】
分散メモリ方式の並列計算機は、このデータ転送の実現方法の違いによって、分散共有メモリ型とメッセージパッシング型の２種類に分類される。
分散共有メモリ型の並列計算機では、他演算プロセッサの主記憶領域を指すアドレスへのロード／ストア命令（機械語命令）の実行によって自動的にデータ転送が発生する。
この時のデータ転送量は、ロード／ストア命令が対象とするワード（方式によっては数十ワード）程度である。
一方、メッセージパッシング型の並列計算機では、プログラム上の手続き（関数）により明示的にデータ転送機構を動作させてデータ転送を実現する。
この時のデータ転送量は、ハードウェア的な限界があるものの、その限界までの範囲内で任意であり、数キロワード以上といった多量のデータ転送も実現できる。
【０００４】
上述のとおり、分散共有メモリ型とメッセージパッシング型では、データ転送起動のメカニズムや転送データ量に相違があるが、さらに演算プロセッサがキャッシュメモリを有する場合の制御機構が大幅に異なる。
分散共有メモリ型の並列計算機では、バス結合のマルチプロセッサ（シンメトリックマルチプロセッサ：ＳＭＰ）と同様に、データ転送にともなって、キャッシュメモリと主記憶との内容一致制御（コヒーレンス制御）をハードウェアによって自動的に行う。
例えば、米国Ｓｔａｎｆｏｒｄ大学のＤａｓｈという分散共有メモリ型の並列計算機では、ディレクトリ方式という方式でコヒーレンス制御を実現している。
しかし、このような制御機構を実現するのは、ハードウェアコストの面からは不利である。
【０００５】
【発明が解決しようとする課題】
主記憶内容の共有に関しては、科学技術計算のような定型的な処理ではそれほど要求がなかった。
しかし、並列計算機の適用分野を広げるという面では、主記憶内容の共有が必要となる応用も考えられる。
また、並列計算機のＯＳは、基本的に各要素プロセッサ上で個別に動作し、個々の要素プロセッサの資源や状態を管理しており、システム全体の資源や状態に関する情報が必要な時には、各要素プロセッサ上のＯＳ間で相互に情報を交換してデータベースを構築し、その情報を元に資源の割り当てやプロセス（ジョブ）のスケジューリングを行う。
例えば、ＩＢＭの並列計算機であるＳＰ２のＯＳは、ロードレベラーという機能を提供し、各要素プロセッサの負荷状況を示すデータベースを構築し、その情報に基づいた負荷分散によって要素プロセッサ毎の負荷の均等化を実現する。
このような処理では、各要素プロセッサ上のＯＳ間で多量の通信が発生するため、処理オーバヘッドが大きい。
この問題に対しても主記憶内容の共有が可能であれば、その共有領域にデータベースを構築することで上記のＯＳ間通信による処理オーバヘッドが削減できる。
上記の主記憶内容の共有機構を、先述の米国Ｓｔａｎｆｏｒｄ大学のＤａｓｈに代表されるような従来の分散共有メモリ機構ほどのハードウェアコストをかけずに実現するというのが本発明が解決しようとする課題である。
【０００６】
【課題を解決するための手段】
上記課題を解決するために、本発明は、
相互結合網で接続される複数の要素プロセッサを有し、該各要素プロセッサが個別に主記憶を所有し、これを管理する分散メモリ方式をとる並列計算機において、
該要素プロセッサの記憶制御装置が、特定のアドレス領域への主記憶書き込み要求を検出する機構を持ち、該要素プロセッサの該記憶制御装置が、該特定アドレス領域への主記憶書き込み要求を検出した際に、該書き込み要求を主記憶に送出すると同時に、相互結合網へのインタフェース装置を介して、該書き込み要求を該要素プロセッサから相互結合網に送出する機構を備えるようにしている。
さらに、前記要素プロセッサの記憶制御装置が、前記特定アドレス領域への主記憶書き込み要求を検出するための該特定アドレス領域の先頭アドレス値を登録した参照表を備えるようにしている。
さらに、前記参照表は複数のエントリからなり、
各エントリは、エントリの有効／無効を示すフィールドと、前記特定アドレス領域の先頭アドレス値を示すフィールドと、該特定アドレス領域に対応する識別名を示すフィールドを有し、
該識別名は、システム全体で一元的に管理され、同じ識別名を有する特定アドレス領域を所有する該要素プロセッサは、同グループとして定義され、該グループの同じ識別名を有する特定アドレス領域は、該各要素プロセッサの主記憶上での存在するアドレスが異なっていても、該識別名によって一意に認識され、該要素プロセッサの記憶制御装置が前記特定アドレス領域への主記憶書き込み要求を検出し、前記相互結合網へのインタフェース装置を介して該書き込み要求を要素プロセッサ外に伝える機構によって、該グループの同じ該識別名を有する全該特定アドレス領域が同じ内容を維持するように制御されるようにしている。
【０００７】
また、前記要素プロセッサの記憶制御装置が前記特定アドレス領域への主記憶書き込み要求を検出し、前記相互結合網へのインタフェース装置を介して該書き込み要求を要素プロセッサから相互結合網に送出する際に、該相互結合網に接続される全該要素プロセッサを対象として放送メッセージ機能を使用するようにしている。
さらに、前記放送メッセージ機能を使用する際に、通常の放送メッセージ機能と区別するために、該放送メッセージのメッセージ形式の中に特殊モードビットフィールドを設け、
前記要素プロセッサの記憶制御装置が前記特定アドレス領域への主記憶書き込み要求を検出し、前記相互結合網へのインタフェース装置を介して該書き込み要求を該要素プロセッサから該相互結合網へ送出する際には、該メッセージの該特殊モードビットフィールドを有効化し、該メッセージに主記憶への書き込みバイト位置を示す情報、書き込み先領域での相対アドレス、前記識別名、書き込みデータ、および、書き込みデータ長を登録するようにしている。
さらに、前記相互結合網へのインタフェース装置は、
複数のエントリからなり、各エントリはエントリの有効／無効を示すフィールドと、前記特定アドレス領域の先頭アドレス値を示すフィールドと、該特定アドレス領域に対応する識別名を示すフィールドを持つ参照表を有し、
前記特殊モードの放送メッセージを受信した際に、該メッセージ中の識別名情報を取り出し、該参照表から該識別名が一致するエントリを探索し、一致するエントリが存在しなければ、該メッセージを破棄し、一致するエントリが存在すれば、該エントリから該特定アドレス領域の先頭アドレス値を読み取り、該メッセージ中の該書き込み先領域での相対アドレス情報と組み合わせて書き込みアドレスを作成し、その他、該メッセージ中の書き込みデータ、書き込みデータ長、書き込みバイト位置を示す情報を組み合わせて主記憶アクセス要求を作成し、これを前記記憶制御装置に送出する機構を有するようにしている。
さらに、前記相互結合網へのインタフェース装置は、前記特殊モードの放送メッセージを受信した際に、該メッセージから主記憶への書き込みバイト位置を示す情報、前記書き込み先領域での相対アドレス、前記識別名、書き込みデータ、および、書き込みデータ長といった情報を取り出し、これらを外部からの該特定アドレス領域への書き込み要求として前記記憶制御装置に送出する機構を有し、
前記記憶制御装置は、該外部からの特定アドレス領域への書き込み要求を前記相互結合網へのインタフェース装置から受け取ると、該要求中の識別名情報を取り出し、該記憶制御装置が有する参照表から該識別名が一致するエントリを探索し、一致するエントリが存在しなければ、該要求を破棄し、一致するエントリが存在すれば、該エントリから該特定アドレス領域の先頭アドレス値を読み取り、該要求中の書き込み先領域での相対アドレス情報と組み合わせて書き込みアドレスを作成し、その他、該要求中の書き込みデータ、書き込みデータ長、書き込みバイト位置を示す情報を組み合わせて主記憶アクセス要求を作成し、これを該主記憶に送出する機構を有するようにしている。
【０００８】
また、前記要素プロセッサの記憶制御装置が前記特定アドレス領域への主記憶書き込み要求を検出し、前記相互結合網へのインタフェース装置を介して該書き込み要求を要素プロセッサから該相互結合網へ送出する際に、特定のグループとして定義された複数の要素プロセッサの総てを対象とした放送メッセージの転送を行うグループ内放送メッセージ機能を使用するようにしている。
さらに、該グループ内放送メッセージ機能を使用する際に、通常のグループ内放送メッセージ機能と区別するために、該グループ内放送メッセージのメッセージ形式の中に特殊モードビットフィールドを設け、
該要素プロセッサの該記憶制御装置が前記特定アドレス領域への主記憶書き込み要求を検出し、前記相互結合網へのインタフェース装置を介して該書き込み要求を該要素プロセッサから該相互結合網へ送出する際には、該メッセージの該特殊モードビットフィールドを有効化し、該メッセージに主記憶への書き込みバイト位置を示す情報、書き込み先領域での相対アドレス、前記識別名、書き込みデータ、および、書き込みデータ長を登録するようにしている。
さらに、前記相互結合網へのインタフェース装置は、
複数のエントリからなり、各エントリはエントリの有効／無効を示すフィールドと、前記特定アドレス領域の先頭アドレス値を示すフィールドと、該特定アドレス領域に対応する識別名を示すフィールドを持つ参照表を有し、
前記特殊モードのグループ内放送メッセージを受信した際に、該メッセージ中の識別名情報を取り出し、該参照表から該識別名が一致するエントリを探索し、一致するエントリが存在しなければ、該メッセージを破棄し、一致するエントリが存在すれば、該エントリから該特定アドレス領域の先頭アドレス値を読み取り、該メッセージ中の該書き込み先領域での相対アドレス情報と組み合わせて書き込みアドレスを作成し、その他、該メッセージ中の書き込みデータ、書き込みデータ長、書き込みバイト位置を示す情報を組み合わせて主記憶アクセス要求を作成し、これを前記記憶制御装置に送出する機構を有するようにしている。
さらに、前記相互結合網へのインタフェース装置は、前記特殊モードの放送メッセージを受信した際に、該メッセージから主記憶への書き込みバイト位置を示す情報、前記書き込み先領域での相対アドレス、前記識別名、書き込みデータ、および、書き込みデータ長といった情報を取り出し、これらを外部からの該特定アドレス領域への書き込み要求として前記記憶制御装置に送出する機構を有し、
前記記憶制御装置は、該外部からの特定アドレス領域への書き込み要求を前記相互結合網へのインタフェース装置から受け取ると、該要求中の識別名情報を取り出し、該記憶制御装置が有する参照表から該識別名が一致するエントリを探索し、一致するエントリが存在しなければ、該要求を破棄し、一致するエントリが存在すれば、該エントリから該特定アドレス領域の先頭アドレス値を読み取り、該要求中の書き込み先領域での相対アドレス情報と組み合わせて書き込みアドレスを作成し、その他、該要求中の書き込みデータ、書き込みデータ長、書き込みバイト位置を示す情報を組み合わせて主記憶アクセス要求を作成し、これを該主記憶に送出する機構を有するようにしている。
【０００９】
また、それぞれが主記憶を有する複数のプロセッサと、該複数のプロセッサを相互接続する相互結合網とを有する並列計算機において、
該プロセッサの記憶装置は、特定領域への主記憶書き込み要求を検出する機構と、該特定領域への主記憶書き込み要求を検出した際に、該書き込み要求を主記憶および該相互結合網へ送出する機構と、該書き込み要求を該相互結合網から伝えられた際に、該伝えられた書き込み要求に従って、該書き込み要求を伝えられたプロセッサの主記憶の特定領域を、該書き込み要求を送信したプロセッサの主記憶の特定領域と同じ内容にする機構とを有するようにしている。
さらに、前記並列計算機は、前記特定領域と対応する識別子を有し、前記記憶制御装置は、該識別子を参照して、前記書き込み要求の送信側の主記憶の特定領域の内容と該書き込み要求の受信側の主記憶の特定領域の内容を同じにし、前記各プロセッサの主記憶上での該特定領域は任意の主記憶のアドレスであるようにしている。
【００１０】
【発明の実施の形態】
（実施の形態１）
本発明の実施の形態を図を用いながら説明する。
図２は、並列計算機の概略構成を示している。
並列計算機は、数十から数百、数千といった台数の要素プロセッサ２０１で構成され、要素プロセッサ２０１各々は、相互結合網２０２に接続し、その相互結合網２０２を介して他の要素プロセッサ２０１とデータの授受を行う。
相互結合網２０２の構成方法は様々であるが、本発明ではこの相互結合網２０２の構成方法を特に限定しない。
また、本発明が対象とする並列計算機は、先述のメッセージパッシング型を基本とする。
【００１１】
要素プロセッサ２０１の構成方法もまた多種多様になるが、その一例を図３で概略的に示す。
要素プロセッサ２０１の主な構成要素は、命令プロセッサ１０１、命令プロセッサ１０１に付随するキャッシュメモリ（単にキャッシュと呼ぶ場合もある）３０２、命令プロセッサ１０１や後述のネットワークインタフェース１０８およびＩ／Ｏインタフェース３０３から発行されるデータアクセス要求にしたがって適当な記憶デバイスにアクセスを行うストレージコントローラ１０２、ストレージコントローラ１０２で制御される主記憶１１８、相互結合網２０２に接続しデータ転送を制御するネットワークインタフェース１０８、および、ストレージコントローラ１０２からの要求によってＩ／Ｏ装置にアクセスを行うＩ／Ｏインタフェース３０３などである。
なお、Ｉ／Ｏインタフェース３０３は構成によっては存在しないケースも考えられる。
【００１２】
要素プロセッサ２０１中、命令プロセッサ１０１は、プログラム処理を行うユニットであり、ネットワークインタフェース１０８は、命令プロセッサ１０１からの指令にしたがって、メッセージパッシング型の並列計算機の特徴であるデータ転送（メッセージパッシング）を命令プロセッサ１０１のプログラム処理とは独立に行うユニットである。
命令プロセッサ１０１とネットワークインタフェース１０８が独立に動作するため、ストレージコントローラ１０２は、命令プロセッサ１０１からの主記憶１１８のアクセスを処理すると同時に、ネットワークインタフェース１０８からのデータ転送にともなう主記憶１１８へのアクセスも処理する。
本発明は、上記ストレージコントローラ１０２およびネットワークインタフェース１０８内に実現する機構に係わる。
本実施の形態では、ストレージコントローラ１０２およびネットワークインタフェース１０８内で実現する主記憶内容の共有機構について図１に基づき説明する。
なお、以降の記述において、Ｉ／Ｏインタフェース３０３がらみの動作は特に主題とする内容とは関係が無いため省略する。
また、図１についてもＩ／Ｏインタフェース３０３がらみの処理要素については記述を省略した。
【００１３】
本発明に係わるストレージコントローラ１０２の主要構成要素は、命令プロセッサインタフェース１０３、アドレス解析部１０４、ミラーテーブル１０５、主記憶アクセスインタフェース１０６、および、データ転送インタフェース１０７である。
命令プロセッサインタフェース１０３は、命令プロセッサ１０１からの主記憶アクセスやネットワークインタフェース１０８へのコマンド発行（通常、ネットワークインタフェース１０８内の制御レジスタへのアクセスという形で実現する。制御レジスタとして、複数本のレジスタが設けられており、該レジスタをアクセスすることにより、データ転送を起動するとか、ステータスを確認するなどの処理が行われる。）というトランザクションをＬ１０１より受け取り、トランザクションへの返答（例えば主記憶読み出し結果など）や、ストレージコントローラ１０２やネットワークインタフェース１０８で検出した割り込み要因、および、データ転送に係わるキャッシュ制御コマンドなどをL１０２を介して命令プロセッサ１０１に伝える。
【００１４】
アドレス解析部１０４は、命令プロセッサインタフェース１０３から伝えられた主記憶アクセス要求や、ネットワークインタフェース１０８へのコマンド（形式は主記憶アクセスと同様）を受け取り、そのアクセス先アドレスを解析して、主記憶アクセスはL１０４を介して主記憶アクセスインタフェース１０６へ伝え、ネットワークインタフェース１０８へのコマンドはL１０７を介してデータ転送インタフェース１０７へ伝える。
また、アドレス解析部１０４は、本発明の主記憶内容の共有機構（以降、ミラーページ機構と呼ぶ）を実現するための機能を持つ。
ミラーテーブル１０５は、アドレス解析部１０４がミラーページ機構サポート機能を実現する際に参照されるテーブルである。
【００１５】
主記憶アクセスインタフェース１０６は、アドレス解析部１０４からの主記憶アクセスをL１０４を介して受理し、これをL１０５を介して主記憶１１８に伝える。
アクセスタイプが主記憶読み出しであった時には、読み出し結果がL１０６を介して主記憶１１８から伝えられる。
主記憶アクセスインタフェース１０６は、この読み出し結果を受け取り、L１０８を介して命令プロセッサインタフェース１０３に読み出し結果を伝える。
この読み出し結果は、L１０２を介して命令プロセッサ１０１に伝わる。
【００１６】
さらに、主記憶インタフェース１０６は、データ転送に係わる主記憶アクセスも処理する。
データ転送に係わる主記憶アクセスは、データ転送インタフェース１０７からL１１０を介して伝えられる。
主記憶アクセスインタフェース１０６は、アドレス解析部１０４から主記憶アクセス要求が伝えられた時と同様に主記憶アクセスを主記憶１１８に対して発行し、読み出しアクセスに対しては、読み出し結果をL１１１を介してデータ転送インタフェース１０７に返送する。
【００１７】
データ転送インタフェース１０７は、アドレス解析部１０４からL１０７を介して伝えられるネットワークインタフェース１０８へのコマンドを受け取り、これをL１１２を介してネットワークインタフェース１０８に伝える。
ネットワークインタフェース１０８からは、L１１３を介して前記コマンドに対する返答や、データ転送に係わる主記憶アクセス要求が伝わる。
データ転送インタフェース１０７は、前記コマンドに対する返答については、L１０９を介して命令プロセッサインタフェース１０３に伝え（さらにこれがL１０２を介して命令プロセッサ１０１に伝えられる）、主記憶アクセス要求については、L１１０を介して主記憶アクセスインタフェース１０６に伝える。
主記憶読み出し結果は、L１１１を介してデータ転送インタフェース１０７に伝わるので、データ転送インタフェース１０７は、これをL１１２を介してネットワークインタフェース１０８に伝える。
また、データ転送インタフェース１０７は、ネットワークインタフェース１０８内で発生した割り込み伝達要求を受ける場合もある。
この場合、その割り込み伝達要求は、L１０９を介して命令プロセッサインタフェース１０３に伝わり、そこから命令プロセッサ１０１に伝えられる。
【００１８】
ストレージコントローラ１０２の中で、ミラーページ機構を実現する主な要素は、アドレス解析部１０４、ミラーテーブル１０５、およびデータ転送インタフェース１０７である。
これらの連携動作を説明する前に、本発明による主記憶内容の共有方式を説明する。
本発明では、共有主記憶（分散共有メモリ）を提供することで主記憶内容の共有を実現するというアプローチは採らない。
本発明では、同じ記憶内容を持つ主記憶ページ（本ページをミラーページと呼ぶ）を主記憶内容の共有を行いたい全プロセッサ（この全プロセッサをミラーグループとして定義し、それぞれのグループをｉｄで識別する）に用意する。
個々のプロセッサ内での当該ミラーページに対する書き込みは、自らの主記憶に対して反映されると同時に、相互結合網２０２を介して前記ミラーグループ内の全プロセッサに対してブロードキャストされ、ミラーグループ内全プロセッサにおける各ミラーページに同じ書き込みとして反映される。
これによって、ミラーグループ内全プロセッサにおけるミラーページとして定義された主記憶領域が常に同じ内容をとるようになり、結果として記憶内容を共有しているのと同じ効果が得られる。
各ミラーページのページ先頭物理アドレスは、各要素プロセッサ毎に異なっていてもよい。
ミラーページの特定は、上記グループｉｄによって行われる。
【００１９】
ストレージコントローラ１０２内の上記ミラーページ機構を実現するためのアドレス解析部１０４、ミラーテーブル１０５、およびデータ転送インタフェース１０７の連携動作を以下に示す。
まず、ミラーテーブル１０５の構造を説明する。
ミラーテーブル１０５は、例えば図４に示す構造をとる。
本テーブルの主要フィールドは、有効ビットフィールド４０１、アドレスフィールド４０２、および、ｉｄフィールド４０３である。
有効ビットフィールド４０１は、当該テーブルエントリが有効な情報を持つことを示す。
アドレスフィールド４０２は、ミラーページとして定義した主記憶ページの先頭アドレスを示す。
ｉｄフィールド４０３は、同列のアドレスフィールド４０２が示すページが属するミラーグループのグループｉｄを示す。
【００２０】
アドレス解析部１０４は、命令プロセッサインタフェース１０３から主記憶書き込み要求を受け取ると、そのアクセス先アドレスに関して、ミラーテーブル１０５の有効エントリ（有効ビットフィールド４０１が「有効」を示しているエントリ）のアドレスフィールド４０２を検査し、ミラーページ領域に対するアクセスでないかどうかを調べる。
その検査結果に係わらず、主記憶書き込み要求は、主記憶アクセスインタフェース１０６に対して発行される。
【００２１】
一方、検査の結果、当該主記憶書き込み要求がミラーページ領域に対するアクセスであった場合、アドレス解析部１０４は、アドレス領域が一致したミラーテーブル１０５のエントリのｉｄフィールド４０３の内容を取り出し、当該書き込み要求とそのｉｄ情報を組とし、これをミラー要求としてデータ転送インタフェース１０７に伝える。
ミラー要求を受け取ったデータ転送インタフェース１０７は、これをミラー要求コマンドとしてネットワークインタフェース１０８に伝える。
この時、伝えられる内容は、ミラー要求コマンド、書き込みデータ、書き込みデータ長および書き込みバイトマーク（例えば、単位書き込み長が８バイトであった場合に、８バイトのどのバイト位置に書き込みを反映させるかを示す情報）、主記憶書き込み要求の指定アドレスのうちのページ内アドレス（ページの先頭からの相対アドレス）、および、ｉｄ情報（ミラーグループｉｄ）である。
書き込み先ページの先頭アドレスは、各要素プロセッサ毎にｉｄ情報に基づいて決定されるため、伝達する必要がない。
【００２２】
次に、本発明に係わるネットワークインタフェース１０８の構成を説明する。
本発明に係わるネットワークインタフェース１０８の主要な構成要素は、コマンド受信部１０９、コマンド送出部１１０、ミラー要求作成部１１１、メッセージ送信・コマンド処理部１１２、メッセージ受信部１１３、ミラー処理部１１４、ミラーテーブル１１５、パケット送信部１１６、および、パケット受信部１１７である。
コマンド受信部１０９は、ストレージコントローラ１０２からL１１２を介して、ネットワークインタフェース１０８内の制御レジスタへのアクセス、ミラー要求コマンド、および、ネットワークインタフェース１０８から要求した主記憶読み出し結果などを受け取る。
主記憶読み出し結果は、L１１５を介してメッセージ送信・コマンド処理部１１２に伝えられ、ネットワークインタフェース１０８の動作制御用データとしてネットワークインタフェース１０８内の制御レジスタにセットされたり、メッセージ送信のためのパケット作成データあるいは転送データそのものとして使用される。
ネットワークインタフェース１０８内の制御レジスタへのアクセスは、L１１５を介してメッセージ送信・コマンド処理部１１２に伝えられる。
そのアクセスが読み出しであった場合には、読み出し結果をL１１６を介してコマンド送出部１１０に伝える（この読み出し結果は、L１１３を介してストレージコントローラ１０２に伝わり、さらに、命令プロセッサ１０１に伝えられる）。
【００２３】
アクセスが書き込みであった場合には、その書き込みはメッセージ送信・コマンド処理部１１２で処理される。メッセージ送信を起動するための書き込みコマンドも存在する。
そのようなコマンドを受け取ったメッセージ送信・コマンド処理部１１２は、メッセージ送信処理を開始する。
また、ミラー要求コマンドは、L１１４を介してミラー要求作成部１１１に伝わる。
メッセージ送信・コマンド処理部１１２は、コマンド受信部１０９から要求のあるネットワークインタフェース１０８内の制御レジスタへのアクセスと、メッセージ送信処理を行う。
制御レジスタ読み出しアクセスを受けた場合、メッセージ送信・コマンド処理部１１２は、読み出し結果をL１１６を介してコマンド送出部１１０に伝える。
レジスタ書き込みアクセスを受けた場合、メッセージ送信・コマンド処理部１１２は、その書き込みを実行する。
また、メッセージ送信・コマンド処理部１１２は、メッセージ送信処理を行う。
【００２４】
メッセージ送信処理は、上記レジスタ書き込みアクセスがメッセージ送信起動用の制御レジスタを対象にした際に始まる。
メッセージ送信処理では、メッセージのヘッダを作成するための情報および転送データそのものを得るために主記憶アクセス要求が発生する。この主記憶アクセス要求はL１１６を介してコマンド送出部１１０に伝わる。
主記憶読み出し結果は、コマンド受信部１０９を介してストレージコントローラ１０２から受け取る。
メッセージ送信・コマンド処理部１１２は、主記憶読み出し結果から作成したメッセージのヘッダや転送データをL１２０を介してパケット送信部１１６に伝える。
【００２５】
ミラー要求作成部１１１は、ミラー要求コマンドを受け取ると、コマンドのパラメータとして引き渡される書き込みデータ、書き込みデータ長、書き込みバイトマーク、書き込み先ページ内相対アドレス、および、ｉｄ情報（ミラーグループｉｄ）を元にして、ミラー用ブロードキャストメッセージを作成する。
このミラー用ブロードキャストメッセージは、分散メモリ型並列計算機に一般的に提供されるブロードキャストメッセージと基本的には同形であり、その１タイプとして実装する。
具体的には、メッセージヘッダ中に、「ミラー用」を示す情報フィールドを追加し、ミラー用ブロードキャストメッセージの場合には、この「ミラー用」フィールドを有効化する。
そして、通常のブロードキャストメッセージでは書き込み先アドレスが指定されているフィールドに、書き込みバイトマーク、書き込み先ページ内相対アドレスやミラーグループｉｄといったミラー用ブロードキャストメッセージ固有の情報を指定する。
書き込みデータ、および、書き込みデータ長は本来のブロードキャストメッセージと同様に指定する。
作成したミラー用ブロードキャストメッセージは、Ｌ１１９を介してパケット送信部１１６に伝える。
【００２６】
ここで、上記ブロードキャスト機能について、さらに説明を加える。
本実施例において想定しているブロードキャスト機能は、並列計算機を構成する全要素プロセッサを対象とするものである。
これに対して、あらかじめグループ化した要素プロセッサ群のみを対象としてブロードキャストを実行する部分ブロードキャスト（あるいはグループ内ブロードキャスト）というハードウェア機能を持つ並列計算機も存在する。
例えば、日立のＳＲ２２０１という並列計算機は、分割運転機能の一機能としてこの機能をサポートしている。
本実施例に関しては、上記ミラーグループと、グループ内ブロードキャストのグループを一致させれば、ミラーページ機能が効率良く実装できる。
全要素プロセッサを対象とするブロードキャスト機能を利用した場合の非効率な点は、ミラーグループ以外の要素プロセッサにもミラー用ブロードキャストメッセージが届いてしまい、これをその要素プロセッサが破棄する（詳細は後述するが、ネットワークインタフェース１０８内のミラーテーブル１１５を用いて、ｉｄを照合することで実現する）必要がある点である。
グループ内ブロードキャスト機能を利用すれば、このような非効率な動作をする要素プロセッサを減らす（場合によっては無くす）ことができる。
グループ内ブロードキャスト機能を利用する場合のミラー用ブロードキャストメッセージの実装方法も、上記ブロードキャスト機能を利用する場合と同様である（グループ内ブロードキャストメッセージのフォーマットを上記と同様に変更する）。
【００２７】
次に、パケット送信部１１６について説明する。
パケット送信部１１６は、メッセージ送信・コマンド処理部１１２およびミラー要求作成部１１１からのメッセージ送信要求を受けて、伝えられたメッセージをＬ１２３を介して相互結合網２０２に送出する。
送出されたメッセージは、相互結合網２０２を介し、メッセージのヘッダ情報に基づいて宛先に転送される。
メッセージ送信・コマンド処理部１１２およびミラー要求作成部１１１からの要求は、それぞれの起動要求（コマンド）がネットワークインタフェース１０８に届いた順序にシリアライズされて処理される。
【００２８】
パケット受信部１１７は、Ｌ１２４を介して相互結合網２０２からメッセージを受け取る。
パケット受信部１１７は、受け取ったメッセージのヘッダを解析し、そのメッセージの種類に応じてメッセージ受信部１１３またはミラー処理部１１４にメッセージを引き渡す。
メッセージの種類が通常のメッセージ（上記メッセージ送信・コマンド処理部１１２によって作成されたメッセージ）であれば、そのメッセージはL１２１を介してメッセージ受信部１１３に伝わる。
一方、メッセージの種類がミラー用ブロードキャストメッセージであれば、そのメッセージはL１２２を介してミラー処理部１１４に伝わる。
【００２９】
メッセージ受信部１１３は、受信したメッセージの主記憶１１８への書き込み要求を発行する。
本処理部は、先述の日立ＳＲ２２０１などのメッセージパッシング型の分散メモリ方式並列計算機で一般に採用されている公知の技術によって実現可能であるため、本実施例では詳細な構成および動作説明を省略する。
メッセージ受信部１１３は、発行した主記憶書き込み要求をL１１７を介してコマンド送出部１１０に伝える。
【００３０】
ミラー処理部１１４は、その処理においてミラーテーブル１１５を参照する。
ミラーテーブル１１５は、先に説明したストレージコントローラ１０２内のミラーテーブル１０５と同じ構造であり、同じ要素プロセッサ２０１内のストレージコントローラ１０２内ミラーテーブル１０５とネットワークインタフェース１０８内ミラーテーブル１１５は同じ内容となる。
ミラー処理部１１４は、ミラー用ブロードキャストメッセージを受け取ると、メッセージヘッダからミラーグループｉｄ情報を取り出し、このｉｄ情報とミラーテーブル１１５の有効な（有効ビットフィールド４０１が「有効」を示している）エントリのｉｄフィールド４０３の値を照合する。
ｉｄが一致するエントリが存在しなかった場合、そのミラー用ブロードキャストメッセージは当該要素プロセッサ２０１を対象としたものでないと判断し、破棄する。
ｉｄが一致するエントリが存在した場合、ミラー処理部１１４は、そのエントリのアドレスフィールド４０２からミラーページの先頭アドレスを取り出し、ミラー用ブロードキャストメッセージ中の書き込み先ページ内相対アドレスと組み合わせて主記憶書き込み要求のターゲットアドレスを決定し、その他、ミラー用ブロードキャストメッセージ中の書き込みデータ、書き込みデータ長、書き込みバイトマークの各情報と組み合わせてストレージコントローラ１０２への主記憶書き込み要求を生成し、これをＬ１１８を介してコマンド送出部１１０に伝える。
この主記憶書き込み要求は、メッセージ受信部１１３で発行される要求と同形式である。
【００３１】
コマンド送出部１１０は、Ｌ１１６を介して伝わるネットワークインタフェース１０８内の制御レジスタ読み出し結果、ネットワークインタフェース１０８の動作制御に係わる情報の主記憶１１８からの読み出し要求、および、メッセージ送信処理に伴う主記憶１１８の読み出し要求、Ｌ１１７およびＬ１１８を介して伝わる主記憶１１８への書き込み要求、さらには、ネットワークインタフェース１０８内で発生した割り込み要求をL１１３を介してストレージコントローラ１０２に伝える（ストレージコントローラ１０２に要求が伝わってからの処理は既に説明したとおりである）。
以上が本発明に係わる構成要素についての説明である。
【００３２】
続いて、本発明のミラーページ機構に関する基本的な動作のフローを説明する。
まず、本機構を使用するにあたってのソフトウェア的な準備手続きについて説明する。
第一に、主記憶内容を共有したい要素プロセッサ２０１間で、ミラーグループを定義する。
ミラーグループは、ミラーグループｉｄによって認識されるが、このミラーグループｉｄの割り当ては、並列計算機全体でＯＳ（特定のサーバ）が一元的に管理する。
ミラーグループを形成すべくミラーグループｉｄを取得した各要素プロセッサ２０１のＯＳは、それぞれミラーページとして使用させる主記憶１１８上のページを用意し、これを初期化する。
そしてそのページの先頭アドレスをミラーグループｉｄとともにミラーテーブル１０５および１１５の空きエントリに登録する。
このミラーテーブル１０５および１１５への登録にあたっては、ページの先頭アドレスをアドレスフィールド４０２に、ミラーグループｉｄをｉｄフィールド４０３にそれぞれ登録し、当該エントリの有効ビットフィールド４０１を「有効」を示す内容にセットする。
以上でミラーページが定義できたことになる。
各要素プロセッサ２０１上の同じミラーグループで定義されるミラーページの主記憶１１８上の先頭アドレスは、各要素プロセッサ２０１毎に異なっていても構わない。
これらは、ミラーグループｉｄによって同じミラーページとして認識される。
【００３３】
次に、ハードウェアの動作を説明する。
本機構が動作を開始するトリガとなるのが、要素プロセッサ２０１におけるミラーページを対象とした主記憶書き込み要求の発生である。
この主記憶書き込み要求は、命令プロセッサ１０１からL１０１を介して、ストレージコントローラ１０２内の命令プロセッサインタフェース１０３に伝わり、そこからL１０３を介してアドレス解析部１０４に到達する。
アドレス解析部１０４は、受け取った主記憶書き込み要求をL１０４を介して主記憶アクセスインタフェース１０６に伝える（その後、本要求はL１０５を介して主記憶１１８に伝えられ、書き込みが反映される）と同時に、受け取った主記憶書き込み要求のターゲットアドレスに関して、ミラーテーブル１０５を検査する。
検査の結果、主記憶書き込み要求のターゲットアドレスと一致する（ページ境界アドレスで比較する）値のアドレスフィールド４０２を持つエントリが存在すれば（このエントリの有効ビットフィールド４０１は、「有効」を示す）、そのエントリのｉｄフィールド４０３の値（ミラーグループｉｄ）を取り出す。
さらに、主記憶書き込み要求のターゲットアドレスを元にページ境界アドレスからの相対アドレスを求め、このミラーグループｉｄ、相対アドレス、さらに、主記憶書き込み要求の書き込みデータ、書き込みデータ長、書き込みバイトマークを組としてミラー要求コマンドを生成する。
【００３４】
ミラー要求コマンドは、L１０７を介してデータ転送インタフェース１０７に伝えられ、さらにL１１２を介してネットワークインタフェース１０８内のコマンド受信部１０９に伝えられる。
コマンド受信部１０９では、コマンドタイプがミラー要求コマンドであることを認識すると、L１１４を介してミラー要求作成部１１１にそのコマンドを伝達する。
ミラー要求作成部１１１では、ミラー要求コマンドを受け取ると、そのコマンドのパラメータであるミラーグループｉｄ、相対アドレス、主記憶書き込み要求の書き込みデータ、書き込みデータ長、および書き込みバイトマークを用いてミラー用ブロードキャストメッセージを生成し、これをL１１９を介してパケット送信部１１６に伝える。
パケット送信部１１６は、L１２３を介してミラー用ブロードキャストメッセージを相互結合網２０２に送出する。
相互結合網２０２は、ブロードキャスト機能（あるいはグループ内ブロードキャスト機能）を使用して、全要素プロセッサ２０１（グループ内ブロードキャスト機能を用いた場合にはグループ内全要素プロセッサ２０１）に対してミラー用ブロードキャストメッセージを配布する。
【００３５】
各要素プロセッサ２０１は、L１２４を介してネットワークインタフェース１０８内のパケット受信部１１７で上記ミラー用ブロードキャストメッセージを受け取り、パケット受信部１１７は、これをミラー処理部１１４に伝える。
ミラー処理部１１４は、ミラー用ブロードキャストメッセージを受け取ると、メッセージヘッダからミラーグループｉｄ情報を取り出し、このｉｄ情報とミラーテーブル１１５の有効な（有効ビットフィールド４０１が「有効」を示している）エントリのｉｄフィールド４０３の値を照合する。
ｉｄが一致するエントリが存在しなかった場合、そのミラー用ブロードキャストメッセージは当該要素プロセッサ２０１を対象としたものでないと判断し、破棄する。
ｉｄが一致するエントリが存在した場合、ミラー処理部１１４は、そのエントリのアドレスフィールド４０２からミラーページの先頭アドレスを取り出し、ミラー用ブロードキャストメッセージ中の書き込み先ページ内相対アドレスと組み合わせて主記憶書き込み要求のターゲットアドレスを決定し、その他、ミラー用ブロードキャストメッセージ中の書き込みデータ、書き込みデータ長、書き込みバイトマークの各情報と組み合わせてストレージコントローラ１０２へのミラーページ処理に係わる主記憶書き込み要求を生成し、これをＬ１１８を介してコマンド送出部１１０に伝える。
コマンド送出部１１０は、Ｌ１１８を介して伝わる主記憶１１８への書き込み要求をL１１３を介してストレージコントローラ１０２内のデータ転送インタフェース１０７に伝える。
【００３６】
データ転送インタフェース１０７は、受理したミラーページ処理に係わる主記憶書き込み要求をL１１０を介して主記憶アクセスインタフェース１０６に伝える。
その後、この要求は、L１０５を介して主記憶１１８に伝わり、主記憶１１８のミラーページに対して書き込みが反映される。
以上の一連の動作によって、ミラーグループで定義したミラーページに対するミラーグループ内の任意の要素プロセッサ２０１での主記憶１１８への書き込み処理が、その書き込み処理が発生した要素プロセッサ２０１の主記憶１１８だけでなく、ミラーグループ内全要素プロセッサ２０１の主記憶１１８のミラーページに対して反映され、これによって、論理的な主記憶内容の共有が実現できる。
【００３７】
説明の都合上、最後の記述となったが、本発明では、命令プロセッサ１０１に付随するキャッシュメモリ３０２の制御に関して２つの想定をしている。
１つ目の想定は、命令プロセッサ１０１内でのキャッシュメモリ３０２への書き込みを同時に主記憶１１８にも反映させるストアスルー方式をとる点である。
これまでに説明したとおり、本発明のミラーページ機構は、ミラーページを対象とした主記憶書き込み要求がストレージコントローラ１０２に伝わってはじめて動作を開始する。
したがって、主記憶１１８への書き込みがキャッシュメモリ３０２のみに反映され、キャッシュメモリ３０２からそのアドレス領域が追い出されるまでその書き込み内容が主記憶１１８に反映されないストアイン方式では、ミラーページアクセスに関する処理効率および使い勝手が低下する。
ストアイン方式を採る場合、主記憶１１８のミラーページへの書き込みが発生する度（あるいは一定のタイミング毎）に、ソフトウェア手段によってキャッシュメモリ３０２の内容を主記憶１１８に反映させるコマンドを発行することで、本発明のミラーページ機構を活用できる。
【００３８】
次に、２つ目の想定について説明する。
ネットワークインタフェース１０８からの主記憶書き込み要求は、命令プロセッサ１０１の動作とは独立に行われる。
したがって、ネットワークインタフェース１０８からの主記憶書き込み要求が対象とするアドレス領域が、命令プロセッサ１０１に付随するキャッシュメモリ３０２に存在した場合、通常、命令プロセッサ１０１では、このネットワークインタフェース１０８からの主記憶書き込みを知ることができず、古い情報を参照し続けることになる。
この問題は、従来のメッセージパッシングにおけるメッセージ受信に関しても存在した。
例えば、日立の並列計算機ＳＲ２２０１では、ストレージコントローラ１０２内のデータ転送インタフェース１０７に相当する部分で、メッセージ受信に伴う主記憶書き込み要求に対して、対象とするアドレス領域に関して自動的にキャッシュ制御コマンドを命令プロセッサ１０１に対して発行する機構を実現してこの問題を解消している（（社）電子情報通信学会・信学技報ＣＰＳＹ９６−４７「並列計算機ＳＲ２２０１の方式と評価」参照）。
本発明においても、同様の機構をデータ転送インタフェース１０７が有し、ミラーページへの書き込み要求も含めて、主記憶１１８への書き込み要求を受け付けると、命令プロセッサ１０１に対して、書き込み要求が対象とするアドレス領域に関するキャッシュ制御コマンドを発行することを想定した。
ただし、この２点目の想定も、１点目の想定同様、効率を気にしなければソフトウェア手段で回避可能である。
以上が、本発明に関わる実施の形態である。
【００３９】
（実施の形態１の変形例１）
本発明の実施の形態１では、同じ要素プロセッサ２０１のストレージコントローラ１０２とネットワークインタフェース１０８の中に同じ構造でかつ同じ内容のミラーテーブル１０５および１１５を有していた。
本変形例１では、この２つのミラーテーブルのうちネットワークインタフェース１０８中のミラーテーブル１１５を用意しない場合の実施の形態を述べる。
図５を用いて本実施の形態を説明する。
本実施の形態において、図１で説明した実施の形態１と異なる部分は、ネットワークインタフェース１０８内のミラー処理部５１４およびコマンド送出部５１０と、ストレージコントローラ１０２内のデータ転送インタフェース５０７のみである。
これ以外の部分は、実施の形態１と全く同じである。
動作的には、ミラー用ブロードキャストメッセージをミラー処理部５１４が受理してから、ミラーページ処理に係わる主記憶１１８への書き込み要求がデータ転送インタフェース５０７から発行されるまでの動作および各動作ユニット間のインタフェースが異なっている。
本実施の形態では、以上の相違点についてのみ記述する。
【００４０】
ミラー処理部５１４は、ミラー用ブロードキャストメッセージを受け取ると、ミラーグループｉｄ、書き込み先ページ内相対アドレス、書き込みデータ、書き込みデータ長、書き込みバイトマークといった情報をメッセージから取り出し、これらを組としてミラー書き込み要求コマンドを生成する。
ミラー書き込み要求コマンドは、L５１８を介してコマンド送出部５１０に伝わる。
コマンド送出部５１０は、実施の形態１には存在しなかったミラー書き込み要求コマンドを受け取り、これをL５１３を介してストレージコントローラ１０２内のデータ転送インタフェース５０７に伝える。
この点を除くと、コマンド送出部５１０の構成および動作は、実施の形態１と同じである。
データ転送インタフェース５０７は、ミラー書き込み要求コマンドを受け取ると、そのコマンドのパラメータであるミラーグループｉｄ情報を取り出し、このｉｄ情報とミラーテーブル１０５の有効な（有効ビットフィールド４０１が「有効」を示している）エントリのｉｄフィールド４０３の値を照合する。
ｉｄが一致するエントリが存在しなかった場合、そのミラー書き込み要求コマンドは当該要素プロセッサ２０１を対象としたものでないと判断し、破棄する。
ｉｄが一致するエントリが存在した場合、データ転送インタフェース５０７は、そのエントリのアドレスフィールド４０２からミラーページの先頭アドレスを取り出し、ミラー書き込み要求コマンドのパラメータである書き込み先ページ内相対アドレスと組み合わせて主記憶書き込み要求のターゲットアドレスを決定し、このアドレスとミラー書き込み要求コマンドのその他のパラメータである、書き込みデータ、書き込みデータ長、書き込みバイトマークの各情報とを組み合わせて主記憶書き込み要求を生成し、これをＬ１１０を介して主記憶アクセスインタフェース１０６に伝える。
データ転送インタフェース５０７の上記以外の構成および動作については実施の形態１と同じである。
ミラーページ機構に関する動作フローについても、上記のとおり、ミラー用ブロードキャストメッセージをミラー処理部５１４が受理してから、ミラーページ処理に係わる主記憶１１８への書き込み要求がデータ転送インタフェース５０７から発行されるまでの部分が実施の形態１と異なるだけである。
以上が、本発明に関わる実施の形態１に対する変形例１である。
【００４１】
【発明の効果】
本発明によれば、分散メモリ方式の並列計算機において、主記憶内容の共有を低コストで実現できる。
また、主記憶内容の共有機構を提供したことで、要素プロセッサ間の連携処理の効率向上や、適用アプリケーションの拡大が可能となる。
【図面の簡単な説明】
【図１】本発明に係わるストレージコントローラおよびネットワークインタフェースの構成を示す図である。
【図２】本発明に係わるメッセージパッシング型の分散メモリ方式並列計算機の概略構成を示す図である。
【図３】本発明に係わる要素プロセッサの概略構成を示す図である。
【図４】本発明に係わるミラーテーブルの構成を示す図である。
【図５】本発明に係わるストレージコントローラおよびネットワークインタフェースの他の構成を示す図である。
【符号の説明】
１０１  命令プロセッサ
１０２  ストレージコントローラ
１０３  命令プロセッサインタフェース
１０４  アドレス解析部
１０５、１１５  ミラーテーブル
１０６  主記憶アクセスインタフェース
１０７、５０７  データ転送インタフェース
１０８  ネットワークインタフェース
１０９  コマンド受信部
１１０、５１０  コマンド送信部
１１１  ミラー要求作成部
１１２  メッセージ送信・コマンド処理部
１１３  メッセージ受信部
１１４、５１４  ミラー処理部
１１６  パケット送信部
１１７  パケット受信部
１１８  主記憶
２０１ａ〜２０１ｎ  要素プロセッサ
２０２  相互結合網
３０２  キャッシュメモリ
【図１】
0003877186.tif 000002
【図２】
0003877186.tif 000003
【図３】
0003877186.tif 000004
【図４】
0003877186.tif 000005
【図５】
0003877186.tif 000006