【手続補正書】
【提出日】平成17年10月5日(2005.10.5)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】  共用メモリとスイッチを経て接続された複数のマルチプロセッサノードとを備え、これら複数のマルチプロセッサノードの各々が少なくとも１つのプロセッサを更に含んでいるマルチ処理システムにおいて、
各マルチプロセッサノード内にあって、複数のブロックに配分された前記の共用メモリの部分と、
共用メモリの複数のブロックに対応する数の複数のエントリを有するディレクトリと
このディレクトリへ結合されたシリアル化ポイントと
を備え、
前記のディレクトリの各エントリは、前記の複数のマルチプロセッサノードのどれがデータブロックのコピーを記憶するか識別するためのものであり、前記のシリアル化ポイントは前記の複数のブロックへのアクセスを順序付け、それにより複数のブロック各々への多数の参照をマルチ処理システムに実質的に同時に実行させるようにすることを特徴とするマルチ処理システム。
【請求項２】  複数のブロックの各々への多数の参照は、そのブロックの少なくとも１つのバージョンの異なるものに実質的に同時に行う請求項１に記載のマルチ処理システム。
【請求項３】  そのブロックの少なくとも１つのバージョンの各々は、ブロックへの書き込み動作の結果を表わしている請求項２に記載のマルチ処理システム。
【請求項４】  複数のブロックの１つへの参照毎に一度だけ前記のディレクトリはアクセスされる請求項１に記載のマルチ処理システム。
【請求項５】  参照の完了の際にメモリの関連ブロックの状態を前記のディレクトリが反映するように参照の完了の前に原子的に前記のディレクトリはアクセスされる請求項４に記載のマルチ処理システム。
【請求項６】  参照の１つはメモリのブロックの１つを読み取るための調査型参照であり、そして参照の１つはメモリのブロックにデータを書き込むための更新型動作であり、そしてマルチ処理システムの各ノードは、調査型動作と更新型動作のシリアル化順序を決定するための手段を含んでいる請求項５に記載のマルチ処理システム。
【請求項７】  所与のブロックへの更新型参照の後にシリアル化された所与のブロックへの調査型参照は、更新型参照に関連したデータが少なくとも１つのプロセッサへ返送される前にマルチプロセッサノードの少なくとも１つのプロセッサに受け取られ、そしてマルチプロセッサノードは、以前にシリアル化された更新型参照が完了するまで調査型参照をストールする手段を備えている請求項６に記載のマルチ処理システム。
【請求項８】  所与のブロックへの調査型参照は、所与のブロックへの更新型参照の前にシリアル化され、更新型参照に関連したデータは、調査型参照の実行の前に受け取られ、そしてマルチプロセッサノードは、更新型参照に関連したデータを用いて調査型参照を選択的に実行する手段を備えた請求項６に記載のマルチ処理システム。
【請求項９】  ディレクトリを原子的にアクセスした参照の完了を保証する手段を更に備えた請求項５に記載のマルチ処理システム。
【請求項１０】  完了を保証する手段は、
複数のマルチプロセッサノード各々の少なくとも１つのプロセッサ各々にあって、各変更されたブロックが共用メモリに書き込まれるまで、そしてその変更ブロックに関連した更新型参照の前にシリアル化された変更ブロックへの全ての調査型参照が完了するまで、共用メモリの変更ブロックのサブセットを一時的に記憶するための手段を更に含む請求項９に記載のマルチ処理システム。
【請求項１１】  完了を保証する手段は、
複数のマルチプロセッサノードの各々にあって、各変更されたブロックが共用メモリに書き込まれるまで、そしてその変更ブロックに関連した更新型参照前にシリアル化される変更ブロックへの全ての調査型参照が完了するまで、共用メモリの変更ブロックのサブセットを一時的に記憶するための手段を更に含む請求項９に記載のマルチ処理システム。
【請求項１２】  各参照は複数のトランザクションを含み、そして各参照のトランザクションの各々は、マルチ処理システム内の複数のチャンネルの対応する１つに送られ、そしてシリアル化順序を決定する手段は、複数のチャンネルの少なくとも１つにおいて参照のトランザクションの順序を維持する手段を備えている請求項６に記載のマルチ処理システム。
【請求項１３】  複数のチャンネルの順序付けされたチャンネルは、更新型参照と調査型参照の相対的な動作状態を示す情報を搬送する請求項１２に記載のマルチ処理システム。
【請求項１４】  保証手段は更に、
複数のマルチプロセッサノードの各々にあって、共用メモリのブロックの所望のバージョンがマルチプロセッサノードへ返送されるまで多数の参照の１つを遅延する手段を備えた請求項９に記載のマルチ処理システム。
【請求項１５】  保証手段は更に、
複数のマルチプロセッサノードの各々にあって、共用メモリのブロックの所望のバージョンがマルチプロセッサノードへ返送されるまで多数の参照の１つの実行を遅延する手段を備えた請求項９に記載のマルチ処理システム。
【請求項１６】  多数の参照の各々は複数の段階のトランザクションを含み、そして保証手段は、各参照のトランザクションの段階を指示する手段を更に含む請求項９に記載のマルチ処理システム。
【請求項１７】  トランザクションの各段階は、異なるチャンネルを経て送られ、そして参照のトランザクションの段階を指示する手段は、トランザクションの段階に関連したチャンネルを経て、参照の完了を待機しているマルチプロセッサノードへパケットを送信する手段を備えている請求項１６に記載のマルチ処理システム。
【請求項１８】  参照は、マルチプロセッサノードの第１ノードからマルチプロセッサノードの第２ノードのディレクトリへ送られる読み取り参照であり、そしてパケットは、読み取り参照がマルチプロセッサノードの第２ノードのディレクトリをアクセスしたことを指示するマーカーパケットである請求項１７に記載のマルチ処理システム。
【請求項１９】  共用メモリの複数のブロックのサブセットが共用メモリへ書き込まれるまで共用メモリの複数のブロックのサブセットを一時的に記憶しているビクティムキャッシュを備え、サブセットの複数のブロックの各々は、マルチプロセッサノードの少なくとも１つのプロセッサの１つにより更新されることを特徴とする請求項１に記載のマルチ処理システム。
【請求項２０】  マルチ処理システムにおいて共用メモリの共通ブロックへの多数の参照を同時に実行できるようにする方法であって、当該マルチ処理システムは、スイッチを経て接続された複数のマルチプロセッサノードを備え、これら複数のマルチプロセッサノードの各々は、少なくとも１つのプロセッサと、複数のブロックに配分された共用メモリの一部分と、シリアル化ユニットとを更に含み、そしてこのシリアル化ユニットは、共用メモリの部分の複数のブロックに数が対応している複数のエントリを備えている方法において、
共通ブロックへの全ての参照を、その共通ブロックに関連したマルチプロセッサノードのシリアル化ユニットにおいてそれらが受け取られるときに順序付けし、各参照は実行中に一度だけシリアル化ユニットを訪れ、そして
行先に記憶された共通ブロックへの参照の完了を、共用メモリのブロックの所望バージョンが行先に返送されるまで遅延する
段階を含むことを特徴とする方法。
【請求項２１】  複数のブロック各々への多数の参照は、ブロックの少なくとも１つのバージョンの異なるものに実質的に同時に作用する請求項２０に記載の方法。
【請求項２２】  ブロックの少なくとも１つのバージョンの各々が、ブロックへの書き込み動作の結果を表わす請求項２１に記載の方法。
【請求項２３】  複数のブロックの１つへ参照毎に一度だけディレクトリにアクセスする請求項２０に記載の方法。
【請求項２４】  参照の完了の前に原子的にディレクトリにアクセスして、参照の完了時にメモリの関連ブロックの状態を反映するようにした請求項２３に記載の方法。
【請求項２５】  参照の１つはメモリのブロックの１つを読み取るための調査型参照であり、参照の１つはメモリのブロックにデータを書き込むための更新型動作であり、そして前記の方法は、マルチ処理ノードの各々が各ノードにおける調査型動作と更新型動作のシリアル化順序を決定する段階を含んでいる請求項２０に記載の方法。
【請求項２６】  所与のブロックへの更新型参照の後にシリアル化される所与のブロックへの調査型参照は、更新型参照に関連したデータが少なくとも１つのプロセッサへ返送される前にマルチプロセッサノードの少なくとも１つのプロセッサに受け取られ、そして前記の方法は、既にシリアル化された更新型参照が完了するまで調査型参照をストールする段階を含む請求項２５に記載の方法。
【請求項２７】  所与のブロックへの調査型参照は、所与のブロックへの更新型参照の前にシリアル化され、更新型参照に関連したデータは、調査型参照の実行の前に受け取られ、そして前記の方法は、更新型参照に関連したデータを用いて調査型参照を選択的に実行する段階を含んでいる請求項２５に記載の方法。
【請求項２８】  ディレクトリを原子的にアクセスした参照の完了を保証する段階を更に含んでいる請求項２４に記載の方法。
【請求項２９】  完了を保証する段階は、
各変更されたブロックが共用メモリに書き込まれるまで、そしてその変更ブロックに関連した更新型参照の前にシリアル化された変更ブロックへの全ての調査型参照が完了するまで、共用メモリの変更ブロックのサブセットを一時的に、複数のマルチプロセッサノード各々の少なくとも１つのプロセッサの各々において、記憶する段階を更に含んでいる請求項２８に記載の方法。
【請求項３０】  完了を保証する段階は、
各変更されたブロックが共用メモリに書き込まれるまで、そしてその変更ブロックに関連した更新型参照の前にシリアル化された変更ブロックへの全ての調査型参照が完了するまで、共用メモリの変更ブロックのサブセットを一時的に、複数のマルチプロセッサノードの各々において、記憶する段階を更に含んでいる請求項２８に記載の方法。
【請求項３１】  共用メモリの複数のブロックのサブセットが共用メモリに書き込まれるまで、マルチプロセッサノードの対応する少なくとも１つのプロセッサにより変更された共用メモリの複数のメモリのサブセットを、複数のマルチプロセッサノードの各々において、一時的に記憶する段階を更に含んでいる請求項２８に記載の方法。
【請求項３２】  多数の参照の各々は、複数の段階のトランザクションを含み、そして前記の方法は、各参照のトランザクションの段階を指示する段階を更に含んでいる請求項２０に記載の方法。
【請求項３３】  トランザクションの各段階は異なるチャンネルを経て送られ、そして参照のトランザクションの段階を指示する段階は、トランザクションの段階に関連したチャンネルを経て、参照の完了を待機しているマルチプロセッサノードへパケットを送信する段階を含んでいる請求項３２に記載の方法。
【請求項３４】  参照はマルチプロセッサノードの第１ノードからマルチプロセッサノードの第２ノードのシリアル化ユニットへ送られる読み取り参照であり、そしてパケットは、読み取り参照がマルチプロセッサノードの第２ノードのシリアル化ユニットをアクセスしたことを指示するマーカーパケットである請求項３３に記載の方法。