(57)【特許請求の範囲】
【請求項１】
メモリシステム（５９ａ〜５９ｄ）であって、該メモリシステムの各々は、メモリ（８５ａ〜８５ｄ）と、データを記憶し且つ検索するためのメモリコントローラ（８２ａ〜８２ｄ）とを有する、メモリシステムと、
データ値の書込み要求を伝達するように構成された少なくとも１つのプロセッサ（６２）であって、前記要求は、バスアドレスを含むことからなる、少なくとも１つのプロセッサと、
前記バスアドレスをメモリアドレスにマッピングするよう構成された第１のマッパ（７６）であって、
前記メモリアドレスの各々は、前記メモリシステムのうちの１つの中のメモリロケーションを識別し、
前記第１のマッパは、
バスアドレスの連続するセットをマッピングするよう構成され、これにより、該バスアドレスの連続するセットからマッピングされたメモリアドレスが、複数の前記メモリシステムにわたってインタリーブされ、
前記複数のメモリシステムの各々を識別する複数のチェックサムシステム識別子を、前記要求に応答して識別するように更に構成され、
前記チェックサムシステム識別子を利用して、前記データ値に基づいて更新されるチェックサム値の位置を示すように構成され、
複数のエントリを有し、前記メモリシステム内における隣接するメモリのブロックのそれぞれを、該エントリの各々が識別し、
前記エントリの各々によって識別されたそれぞれのメモリブロック内におけるメモリアドレスに前記第１のマッパによってマッピングされる複数の前記バスアドレスのそれぞれに、前記エントリの各々をマッピングするよう構成されることからなる、第１のマッパと、
複数のアクセスキーを有する第２のマッパ（７１）であって、複数の異なるバスアドレスを、前記アクセスキーのうちの異なるものにマッピングするよう構成され、該複数の異なるバスアドレスは、前記第１のマッパによる前記エントリのうちの同じものにマッピングされ、これにより、前記アクセスキーのうちの前記異なるものの各々が、該第２のマッパによって、全ての前記複数の異なるバスアドレスよりも少なくマッピングされることになることからなる、第２のマッパ
とを備える、処理システム（５０）。
【請求項２】
前記複数のチェックサムシステム識別子の各々は、前記要求のうちの各々の１つに応答して、前記第１のマッパによって識別され、且つ、該１つの要求に関連付けられたデータ値に基づいて更新されるチェックサム値を記憶する前記メモリシステムのうちの１つを識別する、請求項１に記載の処理システム。
【請求項３】
前記第２のマッパは、前記バスアドレスのうちの１つからマッピングされた前記アクセスキーのうちの１つを、前記１つのバスアドレスからマッピングされた前記メモリアドレスのうちの１つと共に、伝達するように構成され、
前記１つのメモリアドレスによって識別された前記メモリシステムのうちの１つは、前記１つのメモリアドレスからマッピングされた前記１つのアクセスキーに基づいて、前記１つのメモリアドレスによって識別されたメモリロケーションへの記憶を許可するように構成されることからなる、請求項１に記載の処理システム。
【請求項４】
メモリシステムにわたってデータ値とチェックサムとをインタリーブするための方法であって、
メモリシステム（５９ａ〜５９ｄ）を提供し、該メモリシステムの各々が、メモリと、データを記憶し且つ検索するためのメモリコントローラ（８２ａ〜８２ｄ）とを有し、
データ値の書込み要求を受け取り、該要求は、連続するバスアドレスを含み、
前記連続するバスアドレスをメモリアドレスにマッピングし、該マッピングすることが、前記連続するバスアドレスを、マッパにおける異なるエントリにマッピングすることを含み、該エントリの各々が、前記メモリシステムのうちの各々の１つの中における隣接するメモリロケーションのブロックを識別し、
複数の異なるバスアドレスを、複数の異なるアクセスキーにマッピングし、該複数の異なるバスアドレスは、前記エントリのうちの同じものにマッピングされ、これにより、前記複数の異なるアクセスキーの各々が、全ての前記複数の異なるバスアドレスよりも少なくマッピングされることになり、
前記メモリアドレスに基づいて、前記メモリシステムの各々を識別し、
データ値の前記書込み要求に応答して、チェックサムシステム識別子を選択し、
前記チェックサムシステム識別子に基づいて、前記複数の前記メモリシステムの各々を識別し、及び、
前記チェックサム識別子に基づいて、前記複数の前記メモリシステムの各々の中に記憶されたチェックサム値を更新する
ことを含む、方法。
【請求項５】
前記メモリアドレスに基づいて、前記メモリシステム内に前記データ値を記憶し、及び、
前記更新することにおいて、前記チェックサム値を更新するために、前記データ値を利用する
ことを更に含むことからなる、請求項４に記載の方法。
【請求項６】
前記チェックサム値のうちの１つに基づいて、前記データ値のうちの１つを回復させることを更に含むことからなる、請求項４に記載の方法。
【請求項７】
メモリシステム（５９ａ〜５９ｄ） を提供し、該メモリシステムの各々は、メモリ（８５ａ〜８５ｄ）と、データを記憶し且つ検索するためのメモリコントローラ（８２ａ〜 ８２ｄ）とを有し、
データ値の書込み要求を受け取り、該要求は、連続するバスアドレスを含み、
前記連続するバスアドレスをメモリアドレスにマッピングし、該マッピングすることが、前記連続するバスアドレスを、マッパにおける異なるエントリにマッピングすることを含み、該エントリの各々が、前記メモリシステムのうちの各々の１つの中における隣接するメモリロケーションのブロックを識別し、
複数の異なるバスアドレスを、複数の異なるアクセスキーにマッピングし、該複数の異なるバスアドレスは、前記エントリのうちの同じものにマッピングされ、これにより、前記複数の異なるアクセスキーの各々が、全ての前記複数の異なるバスアドレスよりも少なくマッピングされることになり、
前記メモリシステムの各々にわたって前記メモリアドレスをインタリーブし、
前記メモリアドレスに基づいて、前記データ値を記憶し、
チェックサムシステム識別子に、前記メモリアドレスを関連付け、該チェックサムシステム識別子の各々は、前記メモリアドレスのうちの１つに記憶されたデータ値に基づいて、チェックサムを記憶する前記メモリシステムのうちの１つを識別し、及び、
前記メモリシステムの各々にわたって前記チェックサム識別子をインタリーブする
ことを含む、方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、概してデータ処理技術に関し、特に１つまたは複数の処理ユニットによって生成されるデータを効率よく記憶するシステムおよび方法に関する。
【０００２】
【従来の技術】
大型コンピュータシステム（またはサーバ）は、しばしば、種々のアプリケーションに十分な命令およびデータメモリを提供するために複数のメモリユニットを採用する。各メモリユニットは、データを記憶することができる１つまたは複数のビットの多数のメモリロケーションを有し、各メモリロケーションは、特定のメモリアドレス（以降、「メモリユニットアドレス」と呼ぶ）に関連付けられそれによって識別される。データを記憶する命令が実行されると、データが実際に記憶されるメモリロケーションを識別するメモリユニットアドレスを取得するために、命令によって定義されるバスアドレスが使用される。これに関して、バスアドレスを、バスアドレスと異なる値を有するメモリユニットアドレスにマップするかまたは変換する、マッパがしばしば採用される。異なるメモリユニットアドレスにマップされるバスアドレスの利用に関連して種々の利点がある。
【０００３】
たとえば、多くのコンピュータアプリケーションは、バスアドレスが連続的に使用されるようにプログラムされる。言い換えれば、バスアドレスの１つが、データを記憶するために最初に使用されるバスアドレスとして選択される。データを記憶するために新たなバスアドレスが利用される場合、新たなバスアドレスは、以前に使用されたバスアドレスをインクリメントすることによって取得される。
【０００４】
連続的なバスアドレスが、同じメモリユニットのメモリユニットアドレスにマップされる場合、非効率が発生する可能性がある。これに関して、メモリユニットに対しデータを記憶し検索するために要求される時間は限られている。２つの連続的なデータ記憶が同じメモリユニットに対して発生する場合、第２のデータ記憶は、発生する前に第１のデータ記憶が完了するまで待たなければならない場合がある。しかしながら、２つの連続的なデータ記憶が異なるメモリユニットにおいて発生する場合、第２のデータ記憶は、第１のデータ記憶が完了する前に開始してよい。メモリ待ち時間を最小化しメモリ帯域幅を最大化するために、連続的なバスアドレスは可能な限り多くのメモリユニットにアクセスするべきである。これは、メモリインタリーブを最大化すると言える。
【０００５】
結果として、上述したマッパは、しばしば、各連続的なバスアドレスが異なるメモリユニットのメモリユニットアドレスに変換されるよう、バスアドレスをメモリユニットアドレスにマップするように設計される。たとえば、第１の値を有するバスアドレスは、第１のメモリユニットのロケーションを識別するメモリユニットアドレスにマップされ、次の最高値を有するバスアドレスは、第２のメモリユニットのロケーションを識別するメモリユニットアドレスにマップされる。したがって、１つのコンピュータアプリケーションからの２つの連続的なデータ記憶は、同じメモリユニットにおいて発生しない可能性が高い。言い換えれば、コンピュータアプリケーションからの連続的なデータ記憶は、メモリユニットにわたってインタリーブされる可能性が高い。
【０００６】
メモリユニットのうちの１つの故障時にデータの回復を可能とするために、しばしばバックアップシステムが採用される。たとえば、引用をもってその開示内容がすべて本明細書内に包含されたものとする米国特許第４，８４９，９７８号は、故障したメモリユニットのデータを回復するために使用されてよいチェックサムバックアップシステムを述べている。これに関し、メモリユニットの１つは、チェックサムメモリユニットに指定される。チェックサムメモリユニットの各アドレスは、０に初期化され、他の非チェックサムメモリユニットの各々のアドレスと相関される。非チェックサムメモリユニットのうちの１つのアドレスに記憶される各データ値は、そのアドレスに予め記憶されたデータ値と排他的論理和がとられる。そして、この排他的論理和演算の結果は、チェックサムメモリユニットの相関するアドレスの値（「チェックサム値」と呼ぶ）と排他的論理和がとられる。そして、この排他的論理和演算の結果は、チェックサムメモリユニットの上記相関するアドレスに、新たなチェックサム値として記憶される。
【０００７】
【発明が解決しようとする課題】
メモリユニットが故障した場合、故障したメモリユニットのアドレスの値は、チェックサムメモリユニットの相関するアドレスのチェックサム値を、そのチェックサム値と相関される他のメモリユニットの値の各々と排他的論理和をとることにより、回復することができる。チェックサムバックアップシステムは、故障したメモリユニットからのデータの回復を可能にするが、チェックサム値を保持するプロセスによりいくつかの非効率をもたらす可能性がある。それは、チェックサムメモリユニットが、非チェックサムメモリユニットにおいて発生するデータ記憶毎に更新されなければならないためである。
【０００８】
このため、本業界では、より効率的なデータ記憶システムおよび方法を提供する必要があるが、それは今まで取り扱われていない。データ記憶システムおよび方法が、そのデータ記憶システムおよび方法のパフォーマンス全体に対する悪影響が最小であるバックアップシステムを含むことが望ましい。
【０００９】
【課題を解決するための手段】
本発明は、上述したような従来技術の欠点および欠陥を克服する。概して、本発明は、連続的なバスアドレスに関連するデータ値およびチェックサム値記憶がインタリーブ方式で発生するように、バスアドレスをメモリユニットアドレスにマップするデータ記憶システムおよび方法を提供する。
【００１０】
本発明のデータ記憶システムは、構造上、少なくとも１つのプロセッサにおける複数のメモリシステムとマッピングシステムとを利用する。メモリシステムの各々は、メモリとデータを記憶し検索するメモリコントローラとを有する。プロセッサは、データ値を書込む要求を送信する。これら要求は、バスアドレスを含む。マッピングシステムは、バスアドレスを、上述したメモリユニットアドレス等のメモリアドレスにマップする。マッピングシステムは、連続したバスアドレスからマップされるメモリアドレスが複数のメモリシステムにわたってインタリーブされるように、連続したバスアドレスをマップする。プロセッサからの上記要求に応じて、マッピングシステムは、上述したデータ値に基づいて更新されるチェックサム値が記憶されるロケーションを識別するチェックサムシステム識別子を識別する。チェックサムシステム識別子は、好ましくは、チェックサム識別子と、故にこれらチェックサム識別子に基づいて発生するチェックサム更新と、がこれらメモリシステムにわたってインタリーブされるように、複数のマッピングシステムの各々を識別する。
【００１１】
本発明の他の特徴によれば、マッピングシステムは、任意に、しかし好ましくは、２つのマッパを含む。一方のマッパは、上述したように、バスアドレスをメモリアドレスにマップする。他方のマッパは、バスアドレスを無許可のデータアクセスを防止するために使用されてよいアクセスキーにマップする。この任意の特徴により、メモリシステムのメモリはより効率的に割付けされることが可能になる。
【００１２】
また、本発明は、メモリシステムにわたってデータ値およびチェックサムをインタリーブする方法を提供するものと見ることができる。本方法は、以下のステップによって広く概念化されることが可能である。すなわち、各々がメモリとデータを記憶し検索するメモリコントローラとを有するメモリシステムを提供するステップと、連続的なバスアドレスを含む、データ値を書込む要求を受取るステップと、連続的なバスアドレスをメモリアドレスにマップするステップと、メモリアドレスに基づいて複数のメモリシステムの各々を識別するステップと、データ値を書込む要求に応じてチェックサムシステム識別子を選択するステップと、チェックサムシステム識別子に基づいて複数のメモリシステムの各々を識別するステップと、チェックサム識別子に基づいて複数のメモリシステムの各々に記憶されたチェックサム値を更新するステップと、である。
【００１３】
本発明の他の特徴および利点は、当業者には、以下の詳細な説明を添付の図面と共に読んで考察することにより明らかとなろう。かかる特徴および利点はすべて、本明細書において本発明の範囲内に含まれ特許請求の範囲によって保護される、ということが意図されている。
【００１４】
本発明は、以下の図面を参照してよりよく理解することができる。図面の要素は、必ずしも一定の比率で縮小されていず、本発明の原理を明確に例示することに重きがおかれている。さらに、各図面を通して同じ参照番号は対応する部分を示している。
【００１５】
【発明の実施の形態】
図１は、複数のメモリシステム１９ａ〜１９ｃに連結された複数の処理ユニット１７ａ〜１７ｅを含む従来の処理システム１５を示す。図２に示すように、各処理ユニット１７ａ〜１７ｅは、本技術分野においてよく知られている技術を介して命令を実行するように構成された１つまたは複数のプロセッサ２２を含む。実行中は、しばしばデータを検索および記憶することが必要である。
【００１６】
プロセッサ２２のうちの１つによる命令の実行に応じてデータ値が記憶される時、プロセッサ２２は、記憶要求をマッパ２６に送信する。記憶要求は、記憶されるデータ値と、上記データ値が記憶される場所を示すバスアドレスと、を含む。マッパ２６は、バスアドレスを、メモリシステム識別子とメモリユニットオフセットとを含むメモリユニットアドレスにマップするように構成されている。メモリシステム識別子は、メモリシステム１９ａ〜１９ｃのうちの１つを識別する。マッパ２６は、書込み要求をメモリシステム１９ａ〜１９ｃの各々に送信するように構成されている。書込み要求は、記憶されるデータ値、メモリシステム識別子およびメモリユニットオフセットを含み、かつそれらによって定義される。
【００１７】
図３に示すように、メモリシステム１９ａ〜１９ｃの各々は、それぞれメモリコントローラ３２ａ〜３２ｃとそれぞれメモリユニット３５ａ〜３５ｃとを含む。メモリユニット３５ａ〜３５ｃの各々は、データを記憶し検索することができる複数のメモリロケーションを含む。書込み要求の上述したメモリシステム識別子によって識別されるメモリシステム１９ａ、１９ｂまたは１９ｃのメモリコントローラ３２ａ、３２ｂまたは３２ｃは、書込み要求のデータ値（すなわち、上述した記憶要求に応じて記憶されるデータ値）を、メモリユニットオフセットに基づいて識別されたメモリシステム１９ａ、１９ｂまたは１９ｃのメモリユニット３５ａ、３５ｂまたは３５ｃに記憶するように構成されている。これに関し、メモリユニットオフセットは、メモリユニット３５ａ〜３５ｃの各々のロケーションに対応し、識別されたメモリシステム１９ａ、１９ｂまたは１９ｃのメモリコントローラ３２ａ、３２ｂまたは３２ｃは、受取った書込み要求のデータ値をメモリユニットオフセットに対応するメモリユニットロケーションに記憶するように構成されている。
【００１８】
処理システム１５のパフォーマンスを向上させるために、マッパ２６は、連続的するバスアドレスを異なるメモリシステム１９ａ〜１９ｃにわたってインタリーブ方式でマップするように構成されている。たとえば、プロセッサ２２からの各バスアドレスは、８ビットの２進情報であり、００００００００から１１１１１１１１までの範囲に亙ることができる、と仮定する。最初の４つの連続したメモリアドレスは、００００００００、０００００００１、００００００１０および００００００１１である。プログラマは、一般に、メモリアドレスを連続した順序で利用する。したがって、データ値を記憶するために最初にアドレス００００００００が使用される場合、アドレス０００００００１が、データを記憶するために使用される次の新たなバスアドレスとなる可能性が高い。そして、アドレス００００００１０が使用された後にアドレス００００００１１が続く可能性が高い。このパターンは、それ以上新たなバスアドレスが必要とされなくなるか、またはバスアドレスのすべてが使用されるまで続けられる可能性が高い。
【００１９】
上記連続したバスアドレスをメモリシステム１９ａ〜１９ｃにわたってインタリーブ方式でマップするために、マッパ２６は、第１のバスアドレス（００００００００）を、メモリシステム１９ａを識別するメモリシステム識別子を有するメモリユニットアドレスにマップする場合がある。そして、マッパ２６は、第２のバスアドレス（０００００００１）を、メモリシステム１９ｂを識別するメモリシステム識別子を有するメモリユニットアドレスにマップする場合がある。次いで、マッパ２６は、第３のバスアドレス（００００００１０）を、残りのメモリシステム１９ｃを識別するメモリシステム識別子を有するメモリユニットアドレスにマップする場合がある。このプロセスは、新たなバスアドレスがマッパ２６によって受取られる毎に繰返される。たとえば、マッパ２６は、第４のバスアドレス（００００００１１）を含む記憶要求を受取ると、第４のバスアドレスを、メモリシステム１９ａを識別するメモリシステム識別子を有するメモリユニットアドレスにマップする。
【００２０】
同じメモリシステム１９ａ、１９ｂまたは１９ｃにマップされる各バスアドレスは、好ましくは異なるメモリユニットオフセットを有するメモリユニットアドレスにマップされる。したがって、バスアドレスのセットが同じメモリシステム１９ａ、１９ｂまたは１９ｃにマップされても、それらバスアドレスの各々は一意のメモリユニットアドレスにマップされる。それに応じて、上記セットの各バスアドレスは、同じメモリシステム３９ａ、３９ｂまたは３９ｃの異なるロケーションにマップされる。
【００２１】
ここで上述した技術と同様の技術によって、データは、メモリシステム１９ａ〜１９ｃから検索されてよい。これに関して、プロセッサ２２のうちの１つがデータを検索する命令を実行すると、検索要求は、プロセッサ２２によりプロセッサ２２に連結されたマッパ２６に送信される。検索要求は、データが検索される場所を示すバスアドレスを含む。マッパ２６は、バスアドレスを、メモリシステム識別子とメモリユニットオフセットとを含むメモリユニットアドレスにマップする。メモリシステム識別子は、要求されたデータを記憶しているメモリシステム１９ａ、１９ｂまたは１９ｃを識別し、メモリユニットオフセットは、データが実際に記憶されている識別されたメモリシステム１９ａ、１９ｂまたは１９ｃのメモリユニット３５ａ、３５ｂまたは３５ｃ内のロケーションに対応する。
【００２２】
マッパ２６は、検索要求に応じて読出し要求をメモリシステム１９ａ〜１９ｃの各々に送信する。読出し要求は、検索要求のバスアドレスから変換された上記メモリユニットアドレスを含み、かつそれによって定義される。読出し要求のメモリシステム識別子によって識別されるメモリシステム１９ａ、１９ｂまたは１９ｃのメモリコントローラ３２ａ、３２ｂまたは３２ｃは、読出し要求のメモリユニットオフセットに対応するロケーションにおいて、関連するメモリユニット３５ａ、３５ｂまたは３５ｃでデータ値を検索する。そして、識別されたメモリシステム１９ａ、１９ｂまたは１９ｃは、検索されたデータ値を、要求している処理ユニット１７ａ、１７ｂ、１７ｃ、１７ｄまたは１７ｅに送信する。これに関し、メモリコントローラ３２ａ、３２ｂまたは３２ｃは、検索されたデータ値をマッパ２６に返し、マッパ２６がこのデータ値を、要求しているプロセッサ２２（すなわち、上述した検索要求を発行したプロセッサ２２）に送信してよく、あるいは、メモリコントローラ３２ａ、３２ｂまたは３２ｃが、データ値を、要求しているプロセッサ２２にマッパ２６を利用せずに送信してもよい。
【００２３】
図１に示すように、処理システム１５はまた、処理ユニット１７ａ〜１７ｅに連結されたチェックサムメモリシステム３９を含む。図３に示すように、チェックサムメモリシステム３９は、構造上、他のメモリシステム１９ａ〜１９ｃと同様に構成されている。より詳細には、チェックサムメモリシステム３９は、チェックサムメモリコントローラ４１とチェックサムメモリユニット４３とを含む。チェックサムメモリコントローラ４１は、チェックサムメモリシステム３９によって受取られるメモリユニットアドレスに基づいてデータを記憶し検索するように設計されている。同じメモリユニットオフセットに対応するメモリシステム１９ａ〜１９ｃの各メモリユニットロケーションのチェックサムは、上記メモリユニットオフセットに対応するチェックサムメモリユニット３９のメモリユニットロケーションに保持される。
【００２４】
これに関して、チェックサムメモリユニット４３の値は、０に初期化される。処理ユニット１７ａ〜１７ｅのいずれによって送信される各書込み要求は、他のメモリシステム１９ａ〜１９ｃに送信される。上述したように、送信された書込み要求のメモリユニットアドレスによって識別されるメモリシステム１９ａ、１９ｂまたは１９ｃのメモリコントローラ３２ａ、３２ｂまたは３２ｃは、書込み要求のデータ値を、メモリユニットアドレスのメモリユニットオフセットに対応するメモリユニットロケーションに記憶するように構成されている。また、識別されるメモリシステム１９ａ、１９ｂまたは１９ｃのメモリコントローラ３２ａ、３２ｂまたは３２ｃは、書込み要求の上記データ値を、上記メモリロケーションに予め記憶されているデータ値（すなわち、書込み要求に応じて上書きされたデータ値）と排他的論理和をとるように設計されている。そして、上記メモリコントローラ３２ａ、３２ｂまたは３２ｃは、チェックサムメモリシステム３９に対し、この排他的論理演算の結果と上記メモリロケーション（すなわち、書込み要求に応じてアクセスされる、識別されたメモリシステム１９ａ、１９ｂまたは１９ｃのロケーション）と相関されているメモリユニットオフセットとを送信する。
【００２５】
チェックサムコントローラ４１は、この結果を、受取ったメモリユニットオフセット（すなわち、書込み要求に含まれるメモリユニットオフセット）に対応するチェックサムメモリユニットロケーションに予め記憶されているデータ値と排他的論理和をとるように構成されている。そして、チェックサムメモリコントローラ４１は、この排他的論理和演算の結果を、チェックサムメモリユニット４３の上記ロケーション（すなわち、受取ったメモリユニットオフセットに対応するチェックサムメモリユニットロケーション）に記憶する。これに応じて、特定のメモリユニットオフセットに対応するチェックサムメモリユニット４３のロケーションは、特定のメモリユニットオフセットに対応するメモリユニット３５ａ〜３５ｃのロケーションに現在記憶されているデータ値のチェックサムを記憶していなければならない。
【００２６】
メモリシステム１９ａ〜１９ｃのいずれが故障しても、故障したメモリシステム１９ａ、１９ｂまたは１９ｃに記憶されたデータ値を、チェックサムメモリシステム３９のデータ値を使用することによって回復することができる。故障したメモリシステム１９ａ、１９ｂまたは１９ｃに記憶されているデータ値を回復するために、同じメモリユニットオフセットに対応するメモリユニットロケーションの他の使用可能なメモリシステム１９ａ〜１９ｃの各々の各データ値が、チェックサムメモリユニット３９の上記メモリユニットオフセットに対応するロケーションに記憶されたチェックサムデータ値と排他的論理和がとられる。これら排他的論理和演算の結果は、故障したメモリシステム１９ａ、１９ｂまたは１９ｃの同じメモリユニットオフセットに対応するメモリユニットロケーションに記憶されたデータ値でなければならない。したがって、各メモリユニットオフセットに対して上記排他的論理和演算を実行することにより、故障したメモリシステム１９ａ、１９ｂまたは１９ｃに記憶されたデータ値の各々を回復することができる。故障したメモリシステムからデータ値を回復するためにチェックサム値を使用することは、本技術分野においてよく知られている。
【００２７】
しばしば、処理ユニット１７ａ〜１７ｅは、それら処理ユニット１７ａ〜１７ｅで実行中のアプリケーションによって生成されるデータを保護するために保護領域にグループ化される。後により詳細に説明するように、１つの保護領域にグループ化される第１の処理ユニットは、一般に、メモリロケーションの所定のセットのデータのみにアクセスすることが許可され、他の保護領域にグループ化される第２の処理ユニットは、一般に、メモリロケーションの他のセットのデータのみにアクセスすることが許可される。このため、２つの処理ユニットを異なる保護領域に割当てることによって、第１の処理ユニットが、第２の処理ユニットによって記憶されたデータにアクセスしないようにすることができる。
【００２８】
たとえば、処理ユニット１７ａおよび１７ｂの２つは、１つの保護領域（ＰＤ１）に割当てられ、１つのオペレーティングシステムで実行中のアプリケーションからの命令を実行することができ、他の処理ユニット１７ｃは、他の保護領域（ＰＤ２）に割当てられ、他のオペレーティングシステムで実行中のアプリケーションからの命令を実行することができる。同様に、処理ユニット１７ｄおよび１７ｅは、それぞれ、２つの保護領域（ＰＤ３およびＰＤ４）に割当てられ、他のオペレーティングシステムで実行中のアプリケーションからの命令を実行することができる。処理システム１５は、多数の処理ユニットおよび保護領域を含んでよい。しかしながら、各処理ユニット１７ａ〜１７ｅは、通常、１つの保護領域のみに割当てられる。
【００２９】
また、メモリユニット３５ａ〜３５ｃのデータロケーションも、保護領域に割当てられ、１つの保護領域に割当てられた処理ユニット１７ａ、１７ｂ、１７ｃ、１７ｄまたは１７ｅは、同じ保護領域にある場合にのみ特定のデータロケーションにアクセスすることができる。概して、１つの処理ユニット１７ａ、１７ｂ、１７ｃ、１７ｄまたは１７ｅで実行中のアプリケーションが、他の処理ユニット１７ａ、１７ｂ、１７ｃ、１７ｄまたは１７ｅで実行中の他のアプリケーションによって生成されるデータ値にアクセスしないようにすることが、しばしば望ましい。これは、他の処理ユニット１７ａ、１７ｂ、１７ｃ、１７ｄまたは１７ｅが同じ保護領域に割当てられていないと仮定して、１つの処理ユニット１７ａ、１７ｂ、１７ｃ、１７ｄまたは１７ｅと同じ保護領域に割当てられるロケーションにデータ値を記憶することによって、達成されてよい。無許可のデータアクセスを防止するために保護領域をデータロケーションおよび処理ユニットに割当てるという概念は、概して本技術分野においてよく知られている。
【００３０】
図４は、メモリシステム１９ａ〜１９ｃの各々からの各メモリユニット３５ａ〜３５ｃを示す。図４により示されているように、メモリユニット３５ａ〜３５ｃの各々は、隣接したメモリのブロックを含む。メモリユニット３５ａ〜３５ｃのメモリブロックの各々は、特定の保護領域に割当てられる。たとえば、上述したように、処理システム１５が、４つの保護領域（ＰＤ１〜ＰＤ４）をサポートするように構成されていると仮定する。この例では、処理ユニット１７ａおよび１７ｂの２つが保護領域の１つ（ＰＤ１）に関連付けされ、処理ユニット１７ｃ〜１７ｅがそれぞれ他の３つの保護領域（ＰＤ２〜ＰＤ４）に関連付けられていると仮定する。
【００３１】
図４に示すように、メモリユニット３５ａ〜３５ｃの各々は、各保護領域に対して排他的に割当てられた少なくとも１つのメモリのブロックを含む。本明細書で使用するように、「メモリブロック」は、１つのメモリロケーションであっても、または隣接するメモリロケーションのセットであってもよい。なお、メモリブロックが複数のメモリロケーションを含む場合、ブロックの各メモリロケーションは、異なるメモリユニットオフセットに対応しなければならない。さらに、いずれのメモリユニット３５ａ、３５ｂまたは３５ｃの２つのメモリロケーションも、同じメモリユニットオフセットに対応してはならない。
【００３２】
特定の保護領域からの処理ユニット１７ａ、１７ｂ、１７ｃ、１７ｄまたは１７ｅのみが、同じ保護領域に割当てられたメモリのブロックのロケーションにアクセスしてよい。したがって、処理ユニット１７ａおよび１７ｂは、たとえば、ＰＤ１に割当てられたメモリのブロックに対しデータを記憶するかまたは読出してよいが、ＰＤ２〜ＰＤ４に割当てられたメモリのブロックに対してはデータを記憶および読出しはいけない。その結果、保護領域ＰＤ１〜ＰＤ４の１つに割当てられたメモリブロックに記憶されたデータは、他の保護領域における処理ユニット１７ａ、１７ｂ、１７ｃ、１７ｄまたは１７ｅによる破損から保護される。
【００３３】
また、メモリユニット３５ａ〜３５ｃの各々は、グローバル保護領域（ｇｌｏｂａｌ  ｐｒｏｔｅｃｔｉｏｎ  ｄｏｍａｉｎ（ＧＰＤ））に割当てられる少なくとも１つのメモリのブロックを含む。処理ユニット１７ａ〜１７ｅのいずれもが、ＧＰＤに割当てられたメモリブロックのロケーションのいずれにもアクセスすることができる。言い換えれば、ＧＰＤに割当てられる各メモリブロックは、共有されるメモリである。したがって、処理ユニット１７ａ〜１７ｅのいずれもが、ＧＰＤに割当てられるメモリブロックのいずれのロケーションのデータに対しても記憶または読出しを行うことができる。処理ユニット１７ａ〜１７ｅのいずれもが、ＧＰＤに割当てられたメモリブロックのメモリロケーションにアクセスしてよいため、処理ユニット１７ａ〜１７ｅは、異なる保護領域において処理ユニット１７ａ〜１７ｅによってアクセスされ得るグローバルデータを、これらメモリブロックに記憶するだけでよい。
【００３４】
上述したように、各マッパ２６は、通常、ＧＰＤ以外に１つの保護領域のみに割当てられる。したがって、各処理ユニット１７ａ〜１７ｅの各マッパ２６は、マッパ２６の処理ユニット１７ａ、１７ｂ、１７ｃ、１７ｄまたは１７ｅと同じ保護領域に割当てられるメモリユニットロケーションを識別するメモリユニットアドレスに、バスアドレスをマップすることのみを必要とする。したがって、各マッパ２６におけるマッピングの数は、メモリユニット３５ａ〜３５ｃのすべてにおけるロケーションの数より大幅に少ない。
【００３５】
上述した技術によりメモリシステム１９ａ〜１９ｃに亙る連続するバスアドレスのインタリービングを維持するために、同じメモリユニットオフセットに対応するメモリユニット３５ａ〜３５ｃのメモリロケーションは、同じ保護領域に割当てられる。したがって、図４における同じ保護領域に割当てられるメモリブロックは、サイズが同じであり同じメモリユニットオフセットに対応するメモリユニットロケーションを含まなければならない。これは、追加のメモリシステム（図示せず）と故にメモリユニット（図示せず）とが処理システム１５に追加される時にあてはまる。追加のメモリユニットによって提供される追加のメモリ空間が必要である保護領域もある一方で、必要でない保護領域もある。したがって、追加のメモリユニットをシステム１５に含めることは、追加のメモリ空間を必要としない保護領域に不必要に大量のメモリを割付ける可能性がある。
【００３６】
さらに、マッパ２６に記憶されるデータの量を低減するために、各マッパ２６は、バスアドレスからメモリユニットアドレスを計算するかまたは導出するように設計されてよい。たとえば、各マッパ２６は複数のエントリを含んでよく、そこでは、各エントリが、メモリユニット３５ａ、３５ｂまたは３５ｃのうちの１つの隣接するメモリのブロックに関連付けられる。このため、１つの保護領域に割当てられる隣接するメモリのブロックのうちの特定の１つに相関されるエントリは、メモリの特定のブロックがあるメモリシステム１９ａ、１９ｂまたは１９ｃを識別するメモリシステム識別子を含む。また、エントリは、隣接するメモリのブロックのメモリロケーションのうちの１つ（たとえば、第１のメモリロケーション）に対応するメモリユニットオフセットを含む。バスアドレスを、隣接するメモリのブロック内の他のロケーションを識別するメモリユニットアドレスに変換する際、エントリに記憶される上記メモリユニットオフセットを使用して、バスアドレスに基づき、アクセスされる他のロケーションのメモリユニットオフセットを計算しまたは導出してよい。このように、隣接するメモリのブロックにおける各ロケーションのメモリユニットアドレスが、マッパ２６に記憶される必要がない。
【００３７】
また、各エントリは、隣接するメモリのブロックに割当てられる保護領域に一意のアクセスキーを含んでよい。エントリのアクセスキーは、同じエントリを介して変換されるメモリユニットアドレスと共に送信される。このように、メモリロケーションにアクセスする要求を受取ると、メモリコントローラ３２ａ、３２ｂまたは３２ｃは、アクセスされるロケーションのメモリユニットアドレスを受取らなければならないだけでなく、アクセスされるロケーションに割当てられる保護領域に一意のアクセスキーも受取らなければならない。メモリコントローラ３２ａ、３２ｂまたは３２ｃは、いずれの隣接するメモリのブロックがいずれの保護領域に割当てられたかを知り、メモリユニットアドレスと共に受取られるアクセスキーが、メモリユニットアドレスによって識別されるロケーションの保護領域を識別しない場合、上記ロケーションにアクセスしない。このため、メモリユニットアドレスと共に受取られるアクセスキーの分析は、無許可のデータアクセスが発生しないことを確実にするのを助ける。
【００３８】
図５は、本発明による改良された処理システム５０を示す。従来の処理システム１５と同様に、処理システム５０は、１つまたは複数の処理ユニット５７ａ〜５７ｅを含む。処理ユニット５７ａ〜５７ｅの各々は、好ましくは、複数のメモリシステム５９ａ〜５９ｄの各々に結合されている。図６に示すように、各処理ユニット５７ａ〜５７ｅは、本技術分野においてよく知られている技術により命令を実行するように構成された１つまたは複数のプロセッサ６２を含む。実行中は、しばしばデータを検索し記憶する必要がある。
【００３９】
プロセッサ６２のうちの１つによる命令の実行に応じてデータが記憶される時、プロセッサ６２は、記憶要求をマッピングシステム６８に送信する。マッピングシステム６８は、好ましくは、システムアドレスマッパ（ＳＡＭ）７１とマッパ７６とを含む。記憶要求は、記憶されるデータ値と上記データが記憶される場所を示すバスアドレスとを含む。
【００４０】
ＳＡＭ７１は、好ましくは、マッパ７６より多くのエントリを含む。マッパ７６については後により詳細に説明する。ＳＡＭ７１の各エントリは、保護領域のうちの１つを識別するアクセスキーを含む。各受信された記憶要求のバスアドレスは、好ましくは、ＳＡＭ７１のエントリのうちの１つにマップされる。同じメモリユニットオフセットを有するメモリユニットアドレスに変換されるバスアドレスは、好ましくは、同じエントリにマップされる。記憶要求に応じて、ＳＡＭ７１は、記憶要求のバスアドレスからマップされるアクセスキーを送信するように構成される。
【００４１】
ＳＡＭ７１は、さらに、記憶要求をマッパ７６に送信するように構成される。マッパ７６は、従来のマッパ２６と同様に、記憶要求のバスアドレスを、メモリシステム５９ａ、５９ｂ、５９ｃまたは５９ｄのうちの１つのメモリユニットロケーションを識別するメモリユニットアドレスにマップするように構成される。より詳細には、メモリユニットアドレスは、メモリシステム５９ａ、５９ｂ、５９ｃまたは５９ｄのうちの１つを識別するメモリシステム識別子と、識別されたメモリシステム５９ａ、５９ｂ、５９ｃまたは５９ｄのメモリユニットロケーションに対応するメモリユニットオフセットと、を含む。マッパ７６は、従来のマッパ２６と同様に、記憶されるデータ値、メモリシステム識別子およびメモリユニットオフセットを、メモリシステム５９ａ〜５９ｄの各々に同時に送信するように構成される。さらに、ＳＡＭ７１は、マッパ７６によって送信されるメモリシステム識別子、メモリユニットオフセットおよびデータ値と共に、上記アクセスキーをメモリシステム５９ａ〜５９ｄの各々に送信するように構成される。
【００４２】
好ましい実施の形態では、上記メモリシステム識別子、メモリユニットオフセットおよび記憶されるデータ値は、送信している処理ユニット５７ａ、５７ｂ、５７ｃ、５７ｄまたは５７ｅからの書込み要求として、メモリシステム５９ａ〜５９ｄに同時に（すなわち、同じクロックサイクル中に）送信される。この書込み要求には、チェックサムシステム識別子が含まれるが、それについては後により詳細に説明する。
【００４３】
さらに、マッパ７６は、従来からの技術を利用してバスアドレスをメモリユニットアドレスに変換してよい。これに関して、マッパ７６に記憶されるデータの量を低減するために、マッパ７６は、好ましくはバスアドレスからメモリユニットオフセットを計算するかまたは導出するように設計される。たとえば、マッパ７６は、好ましくは複数のエントリを含み、そこでは、各エントリが、メモリユニット８５ａ、８５ｂ、８５ｃまたは８５ｄのうちの１つの隣接するメモリのブロックに関連する。このため、隣接するメモリのブロックのうちの特定の１つに相関されるエントリは、メモリの特定のブロックがあるメモリシステム５９ａ、５９ｂ、５９ｃまたは５９ｄを識別するメモリシステム識別子を含む。また、エントリは、隣接するメモリのブロックのメモリロケーションのうちの１つ（たとえば、第１のメモリロケーション）に対応するメモリユニットオフセットを含む。バスアドレスを、隣接するメモリのブロック内の他のロケーションを識別するメモリユニットアドレスに変換する際、上記エントリに記憶される上記メモリユニットオフセットを使用して、バスアドレスに基づき、アクセスされる他のロケーションのメモリユニットオフセットを計算するかまたは導出してよい。このように、隣接するメモリのブロックにおける各ロケーションのメモリユニットオフセットが、マッパ７６に記憶される必要がない。
【００４４】
図７に示すように、メモリシステム５９ａ 〜５９ｄの各々は、それぞれメモリコントローラ８２ａ 〜８２ｄとそれぞれメモリユニット８５ａ〜８５ｄとを含む。メモリユニット８５ａ〜８５ｄの各々は、データを記憶し検索することができる複数のメモリロケーションを含む。上述した書込み要求のメモリシステム識別子によって識別されるメモリシステム５９ａ、５９ｂ、５９ｃまたは５９ｄのメモリコントローラ８２ａ、８２ｂ、８２ｃまたは８２ｄは、書込み要求のデータ値（すなわち、上記記憶要求に応じて記憶されるデータ値）を、メモリユニットオフセットに基づいて、識別されたメモリシステム５９ａ、５９ｂ、５９ｃまたは５９ｄのメモリユニット８５ａ、８５ｂ、８５ｃまたは８５ｄに記憶するように構成される。これに関して、メモリユニットオフセットは、メモリユニット８５ａ〜８５ｄの各々のロケーションに対応し、識別されたメモリシステム５９ａ、５９ｂ、５９ｃまたは５９ｄのメモリコントローラ８２ａ、８２ｂ、８２ｃまたは８２ｄは、上記メモリユニット８５ａ、８５ｂ、８５ｃまたは８５ｄのメモリユニットオフセットに対応するメモリユニットロケーションに書込み要求のデータ値を記憶するように構成される。
【００４５】
本発明のマッパ７６は、従来のマッパ２６と同様に、連続するバスアドレスを異なるメモリシステム５９ａ〜５９ｄにわたってインタリーブ方式でマップするように構成される。しかしながら、本発明のマッパ７６は、従来のマッパ２６と異なり、さらに、異なるメモリシステム５９ａ〜５９ｄにわたってチェックサムを同様にインタリーブ方式でマップするように構成される。
【００４６】
上述したことがどのように達成され得るかを示すために、図８を参照する。図８は、メモリシステム５９ａ〜５９ｄのメモリユニット８５ａ〜８５ｄそれぞれのより詳細な図を示す。処理ユニット５７ａおよび５７ｂのプロセッサ６２は、第１の保護領域（ＰＤ１）に関連しまたは割当てられ、処理ユニット５７ｃのプロセッサ６２は、第２の保護領域（ＰＤ２）に関連しまたは割当てられ、処理ユニット５７ｄのプロセッサ６２は、第３の保護領域（ＰＤ３）に関連しまたは割当てられ、処理ユニット５７ｅのプロセッサ６２は、第４の保護領域（ＰＤ４）に関連しまたは割当てられる、と仮定する。図８に示すように、各メモリユニット８５ａ〜８５ｄは、４つの保護領域の各々に割付けられる少なくとも１つのメモリのブロックを含み、グローバル保護領域に割付けられる１つまたは複数のメモリのブロックを含んでよい。また、各メモリユニット８５ａ〜８５ｄは、後により詳細に述べるように、チェックサム記憶に対して割付けられる少なくとも１つのメモリのブロック（以下、「チェックサムメモリブロック」と呼ぶ）を含む。
【００４７】
第１の保護領域（ＰＤ１）においてプロセッサ６２によって利用されＳＡＭ７１に送信される最初の４つの連続するバスアドレスは、００００００００、０００００００１、００００００１０および００００００１１である。マッパ７６は、メモリシステム５９ａ〜５９ｄにわたってバスアドレスをインタリーブするように、または言い換えれば、異なるメモリユニット８５ａ〜８５ｄのＰＤ１メモリブロックに上記バスアドレスの各々をマップするように、構成される。さらに、マッパ７６は、対応するチェックサムが記憶されるメモリシステム５９ａ〜５９ｄを識別して、上記バスアドレスをチェックサムシステム識別子にそれぞれマップするようにも構成される。したがって、特定のメモリシステム５９ａ、５９ｂ、５９ｃまたは５９ｄの特定のメモリユニット８５ａ〜８５ｄにマップされる各バスアドレスに対し、同じバスアドレスからマップされるチェックサムシステム識別子は、異なるメモリシステム５９ａ、５９ｂ、５９ｃまたは５９ｄを識別する。
【００４８】
たとえば、上述したように、簡単のために、特定のメモリユニットロケーションに関連するチェックサムを、その特定のメモリユニットロケーションと同じメモリユニットオフセットに対応するチェックサムメモリユニットロケーションに記憶することが望ましい。したがって、図８において、特定のメモリユニットオフセットに対応するロケーションのメモリブロック１０７〜１０９に記憶される値のチェックサムは、好ましくは、メモリユニット８５ａの同じメモリユニットオフセットに対応するロケーションのチェックサムメモリブロック１１２に記憶される。さらに、特定のメモリユニットオフセットに対応するロケーションのメモリユニットブロック１１５〜１１７に記憶される値のチェックサムは、好ましくはメモリユニット８５ｂの同じメモリユニットオフセットに対応するロケーションのチェックサムメモリブロック１１９に記憶される。特定のメモリユニットオフセットに対応するロケーションのメモリユニットブロック１２１〜１２３に記憶される値のチェックサムは、好ましくはメモリユニット８５ｃの同じメモリユニットオフセットに対応するロケーションのチェックサムメモリブロック１２５に記憶される。さらに、特定のメモリユニットオフセットに対応するロケーションのメモリユニットブロック１２７〜１２９に記憶されるロケーションに記憶される値のチェックサムは、好ましくは、メモリユニット８５の同じメモリユニットオフセットに対応するロケーションのチェックサムメモリブロック１３２に記憶される。同様に、メモリユニットブロック１４１〜１４３、１５１〜１５３、１６１〜１６３および１７１〜１７３に記憶される値のチェックサムは、好ましくはそれぞれチェックサムメモリブロック１４５、１５５、１６５および１７５に記憶される。メモリシステム５９ａ〜５９ｄのうちの１つが故障した時に、異なるメモリユニット８５ａ〜８５ｄに記憶される値が、本明細書で述べる技術によって回復することができるように、チェックサムメモリブロック１１２、１１９、１２５、１４５、１５５、１６５、１７５および１３２のロケーションの各々のデータ値は、初期化時に０に設定されなければならない。
【００４９】
上記概念をよりよく説明するために、マッパ７６は、第１の保護領域のプロセッサ６２からの第１のバスアドレス（すなわち、アドレス００００００００）をメモリブロック１０７にマップすると仮定する。上記プロセッサ６２のうちの１つからの、バスアドレス００００００００にデータ値を記憶する記憶要求に応じて、マッパ７６は、書込み要求をメモリシステム５９ａ〜５９ｄの各々に送信する。書込み要求は、上記データ値と、メモリシステム５９ｂを識別するメモリシステム識別子を有するメモリユニットアドレスと、を含む。また、書込み要求のメモリユニットアドレスは、データ値が記憶されるメモリブロック１０７内のロケーションに対応するメモリユニットオフセットを含む。また、書込み要求は、メモリブロック１０７の上記メモリユニットロケーションに関連するチェックサムが存在するチェックサムメモリブロック１１２を有するメモリシステム５９ａを識別するチェックサムシステム識別子も含む。
【００５０】
メモリシステム５９ｂは、上記書込み要求を受信する。書込み要求のメモリシステム識別子がメモリシステム５９ｂを識別するため、メモリシステム５９ｂのメモリコントローラ８２ｂは、メモリユニットオフセットに対応するロケーションのメモリブロック１０７に上述したデータ値を記憶する。
【００５１】
また、メモリコントローラ８２ｂは、識別されたメモリロケーションに上述したデータ値を記憶することに加えて、上述したデータ値を識別されたメモリロケーションに予め存在するデータ値と排他的論理和をとる。そして、メモリコントローラ８２ｂは、新たな書込み要求として、この排他的論理和演算の結果を、マッパ７６からの書込み要求において受信されたチェックサムシステム識別子とメモリユニットオフセットと共に、他のメモリシステム５９ａ、５９ｃおよび５９ｄに送信する。これに応じて、チェックサムシステム識別子によって識別されるメモリシステム５９ａのメモリコントローラ８２ａは、対応するメモリユニット８５ａの、新たな書込み要求のメモリユニットオフセットに対応するロケーションに位置するチェックサム値を更新するように構成される。言い換えれば、メモリコントローラ８２ａは、メモリシステム５９ｂによって記憶されたばかりのデータ値に対応するチェックサム値を更新する。
【００５２】
チェックサム値を更新する際、メモリコントローラ８２ａは、チェックサム値を、新たな書込み要求に含まれる排他的論理和演算結果と排他的論理和をとる。そして、メモリコントローラ８２ａは、メモリユニット８５ａのチェックサム値を、メモリコントローラ８２ａによって実行されるこの排他的論理和演算の結果で上書きする。これにより、更新されたチェックサム値を本明細書で述べる技術によって使用することにより、他のいずれのメモリユニット８５ｂ〜８５ｄの、同じメモリユニットオフセットに対応するロケーションに現在記憶されているいずれのデータ値をも回復することができる。言い換えれば、更新されたチェックサム値は、メモリブロック１０７に記憶されている上述したデータ値に対して更新される際に、メモリユニット８５ｂ〜８５ｄの同じメモリユニットオフセットに対応するロケーションに記憶された値のチェックサムを表さなければならない。
【００５３】
第２のバスアドレス（すなわち、アドレス０００００００１）は、第１の保護領域のプロセッサ６２によって利用される次の連続するバスアドレスであるものとする。連続するバスアドレスをメモリユニット８５ａ〜８５ｄにわたってインタリーブするために、マッパ７６は、好ましくは、第２のバスアドレスをメモリユニット８５ｃのメモリブロック１１６にマップする。したがって、上記プロセッサ６２のうちの１つからの、データ値をバスアドレス０００００００１に記憶する記憶要求に応じて、マッパ７６は、書込み要求をメモリシステム５９ａ〜５９ｄの各々に送信する。書込み要求は、上記データ値と、メモリシステム５９ｃを識別するメモリシステム識別子を有するメモリユニットアドレスと、を含む。また、書込み要求のメモリユニットアドレスは、データ値が記憶されるメモリブロック１１６内のロケーションに対応するメモリユニットオフセットを含む。さらに、書込み要求は、メモリブロック１１６の上記メモリユニットロケーションに関連するチェックサムが存在するチェックサムメモリブロック１１９を有するメモリシステム５９ｂを識別するチェックサムシステム識別子を含む。
【００５４】
メモリシステム５９ｃは、上記書込み要求を受信する。書込み要求のメモリシステム識別子がメモリシステム５９ｃを識別するため、メモリシステム５９ｃのメモリコントローラ８２ｃは、メモリユニットオフセットに対応するロケーションのメモリブロック１１６に上述したデータ値を記憶する。
【００５５】
また、メモリコントローラ８２ｃは、識別されたメモリロケーションに上述したデータ値を記憶することに加えて、上述したデータ値を識別されたメモリロケーションに予め存在するデータ値と排他的論理和をとる。そして、メモリコントローラ８２ｃは、新たな書込み要求として、この排他的論理和演算の結果を、マッパ７６からの書込み要求において受信されたチェックサムシステム識別子とメモリユニットオフセットと共に、他のメモリシステム５９ａ、５９ｂおよび５９ｄに送信する。これに応じて、チェックサムシステム識別子によって識別されるメモリシステム５９ｂのメモリコントローラ８２ｂは、対応するメモリユニット８５ｂの、新たな書込み要求のメモリユニットオフセットに対応するロケーションに位置するチェックサム値を更新するように構成される。言い換えれば、メモリコントローラ８２ｂは、メモリシステム５９ｃによって記憶されたばかりのデータ値に対応するチェックサム値を更新する。
【００５６】
チェックサム値を更新する際、メモリコントローラ８２ｂは、チェックサム値を、新たな書込み要求に含まれる排他的論理和演算の結果と排他的論理和をとる。そして、メモリコントローラ８２ｂは、メモリユニット８５ｂのチェックサム値を、メモリコントローラ８２ｂによって実行されるこの排他的論理和演算の結果で上書きする。これにより、更新されたチェックサム値を本明細書で述べる技術によって使用することにより、他のいずれのメモリユニット８５ａ、８５ｃおよび８５ｄの、同じメモリユニットオフセットに対応するロケーションの現在記憶されているいずれのデータ値をも回復することができる。言い換えれば、更新されたチェックサム値は、メモリブロック１１６に記憶されている上述したデータ値に対して更新される際に、メモリユニット８５ａ、８５ｂおよび８５ｄの同じメモリユニットオフセットに対応するロケーションに記憶された値のチェックサムを表さなければならない。
【００５７】
第３のバスアドレス（すなわち、アドレス００００００１０）は、第１の保護領域のプロセッサ６２によって利用される次の連続するバスアドレスであるものとする。連続するアドレスをメモリユニット８５ａ〜８５ｄにわたってインタリーブするために、マッパ７６は、好ましくは、第３のバスアドレスをメモリユニット８５ｄのメモリブロック１２３にマップする。したがって、上記プロセッサ６２のうちの１つからの、データ値をバスアドレス００００００１０に記憶する記憶要求に応じて、マッパ７６は、書込み要求をメモリシステム５９ａ〜５９ｄの各々に送信する。書込み要求は、上記データ値と、メモリシステム５９ｄを識別するメモリシステム識別子を有するメモリユニットアドレスと、を含む。また、書込み要求のメモリユニットアドレスは、データ値が記憶されるメモリブロック１２３内のロケーションに対応するメモリユニットオフセットを含む。さらに、書込み要求は、メモリブロック１２３の上記メモリユニットロケーションに関連するチェックサムが存在するチェックサムメモリブロック１２５を有するメモリシステム８５ｃを識別するチェックサムシステム識別子を含む。
【００５８】
メモリシステム５９ｄは、上記書込み要求を受信する。書込み要求のメモリシステム識別子がメモリシステム５９ｄを識別するため、メモリシステム５９ｄのメモリコントローラ８２ｄは、メモリユニットオフセットに対応するメモリブロック１２３のロケーションに上述したデータ値を記憶する。
【００５９】
また、メモリコントローラ８２ｄは、識別されたメモリロケーションに上述したデータ値を記憶することに加えて、上述したデータ値を識別されたメモリロケーションに予め存在するデータ値と排他的論理和をとる。そして、メモリコントローラ８２ｄは、新たな書込み要求として、この排他的論理和演算の結果を、マッパ７６からの書込み要求において受信されたチェックサムシステム識別子とメモリユニットオフセットと共に、他のメモリシステム５９ａ〜５９ｃに送信する。これに応じて、チェックサムシステム識別子によって識別されるメモリシステム５９ｃのメモリコントローラ８２ｃは、対応するメモリユニット８５ｃの、新たな書込み要求のメモリユニットオフセットに対応するロケーションに位置するチェックサム値を更新するように構成される。言い換えれば、メモリコントローラ８２ｃは、メモリシステム５９ｂによって記憶されたばかりのデータ値に対応するチェックサム値を更新する。
【００６０】
チェックサム値を更新する際、メモリコントローラ８２ｃは、チェックサム値を、新たな書込み要求に含まれる排他的論理和演算の結果と排他的論理和をとる。そして、メモリコントローラ８２ｃは、メモリユニット８５ｃのチェックサム値を、メモリコントローラ８２ｃによって実行される排他的論理和演算の結果で上書きする。これにより、更新されたチェックサム値を本明細書で述べる技術によって使用することにより、他のいずれのメモリユニット８５ａ、８５ｂおよび８５ｄの、同じメモリユニットオフセットに対応するロケーションの現在記憶されているいずれのデータ値をも回復することができる。言い換えれば、更新されたチェックサム値は、メモリブロック１２３に記憶されている上述したデータ値に対して更新される際に、メモリユニット８５ａ、８５ｂおよび８５ｄの同じメモリユニットオフセットに対応するロケーションに記憶された値のチェックサムを表さなければならない。
【００６１】
第４のバスアドレス（すなわち、アドレス００００００１１）は、第１の保護領域のプロセッサ６２によって利用される次の連続するバスアドレスであるものとする。連続するバスアドレスをメモリユニット８５ａ〜８５ｄにわたってインタリーブするために、マッパ７６は、好ましくは、第４のバスアドレスをメモリユニット８５ａのメモリブロック１２７にマップする。したがって、上記プロセッサ６２のうちの１つからの、データ値をバスアドレス００００００１１に記憶する記憶要求に応じて、マッパ７６は、書込み要求をメモリシステム５９ａ〜５９ｄの各々に送信する。書込み要求は、上記データ値と、メモリシステム５９ａを識別するメモリシステム識別子を有するメモリユニットアドレスと、を含む。また、書込み要求のメモリユニットアドレスは、データ値が記憶されるメモリブロック１２７内のロケーションに対応するメモリユニットオフセットも含む。さらに、書込み要求は、メモリブロック１２７の上記メモリユニットロケーションに関連するチェックサムが存在するチェックサムメモリブロック１３２を有するメモリシステム８５ｄを識別するチェックサムシステム識別子を含む。
【００６２】
メモリシステム５９ａは、上記書込み要求を受信する。書込み要求のメモリシステム識別子がメモリシステム５９ａを識別するため、メモリシステム５９ａのメモリコントローラ８２ａは、メモリユニットオフセットに対応するメモリブロック１２７のロケーションに上述したデータ値を記憶する。
【００６３】
また、メモリコントローラ８２ａは、識別されたメモリロケーションに上述したデータ値を記憶することに加えて、上述したデータ値を識別されたメモリロケーションに予め存在するデータ値と排他的論理和をとる。そして、メモリコントローラ８２ａは、新たな書込み要求として、この排他的論理和演算の結果を、マッパ７６からの書込み要求において受信されたチェックサムシステム識別子とメモリユニットオフセットと共に、他のメモリシステム５９ｂ〜５９ｄに送信する。これに応じて、チェックサムシステム識別子によって識別されるメモリシステム５９ｄのメモリコントローラ８２ｄは、対応するメモリユニット８５ｄの、新たな書込み要求のメモリユニットオフセットに対応するロケーションに位置するチェックサム値を更新するように構成される。言い換えれば、メモリコントローラ８２ｄは、メモリシステム５９ａによって記憶されたばかりのデータ値に対応するチェックサム値を更新する。
【００６４】
チェックサム値を更新する際、メモリコントローラ８２ｄは、チェックサム値を、新たな書込み要求に含まれる排他的論理和演算の結果と排他的論理和をとる。そして、メモリコントローラ８２ｄは、メモリユニット８５ｄのチェックサム値を、メモリコントローラ８２ｄによって実行されるこの排他的論理和演算の結果で上書きする。これにより、更新されたチェックサム値を本明細書で述べる技術によって使用することにより、他のいずれのメモリユニット８５ａ〜８５ｄの、同じメモリユニットオフセットに対応するロケーションの現在記憶されているいずれのデータ値のいずれをも回復することができる。言い換えれば、更新されたチェックサム値は、メモリブロック１２７に記憶されている上述したデータ値に対して更新される際に、メモリユニット８５ａ〜８５ｃの同じメモリユニットオフセットに対応するロケーションに記憶された値のチェックサムを表さなければならない。
【００６５】
結果として、連続するバスアドレスだけがメモリユニット８５ａ〜８５ｄにわたってインタリーブされるのではなく、連続するバスアドレスに関連するチェックサムの記憶もまた、メモリユニット８５〜８５ｄにわたってインタリーブされる。これに関して、連続するバスアドレスに関連するチェックサムは、異なるメモリユニット８５ａ〜８５ｄに記憶される。たとえば、第１のメモリアドレス（すなわち、メモリブロック１０７にマップされるアドレス００００００００）に関連するチェックサムは、メモリユニット８５ａのチェックサムメモリブロック１１２に記憶され、次の連続するバスアドレス（すなわち、メモリブロック１１６にマップされるアドレス０００００００１）に関連するチェックサムは、メモリユニット８５ｂのチェックサムメモリブロック１１９に記憶される。したがって、特定の保護領域のプロセッサ６２からのバスアドレスが連続的に利用される場合、連続するバスアドレスに関連するチェックサムは、異なるメモリユニット８５ａ〜８５ｄに記憶される。その結果、連続するチェックサム記憶が同じメモリユニット８５ａ〜８５ｄに対して発生しない可能性が高く、それにより、第１のチェックサム記憶によって、同じ保護領域に対して発生する可能性の高い次の連続するチェックサム記憶を遅延させないようにすることにより、システム５０の最適な効率が可能となる。
【００６６】
なお、上述した方法に対する変形が可能である。たとえば、マッパ７６は、プロセッサ６２の１つから受信する記憶要求を満たす書込み要求を送信する際、書込み要求にチェックサムシステム識別子を含む必要はない。これに関して、書込み要求においてメモリシステム識別子によって識別されるメモリシステム５９ａ、５９ｂ、５９ｃまたは５９ｄは、マッパ７６に対してメモリシステム５９ａ、５９ｂ、５９ｃまたは５９ｄによって実行される排他的論理和の結果を送信するように構成されてよい。その後、マッパ７６は、適当なチェックサム値を更新する書込み要求を送信してよい。このために、マッパ７６は、その書込み要求にチェックサムシステム識別子を含まなければならない。他のタイプの変形が、本発明の原理を逸脱することなく採用されてよい。
【００６７】
上述したように、ＳＡＭ７１は、記憶要求に応じてアクセスキーを送信する。このアクセスキーは、好ましくは、マッパ７６により記憶要求に応じて送信される書込み要求と共に各メモリシステム５９ａ〜５９ｄに送信される。アクセスキーは、書込み要求のメモリユニットアドレスによって識別されるメモリロケーションに割当てられる保護領域を識別しなければならない。メモリシステム５９ａ〜５９ｄの各々のメモリコントローラ８２ａ〜８２ｄは、ＳＡＭ７１によって送信され得る各アクセスキーを処理ユニット５７ａ〜５７ｅのうちのいずれか１つに記憶する。メモリコントローラ８２ａ〜８２ｄの各々は、メモリコントローラ８２ａ〜８２ｄがアクセス可能なメモリロケーションに、いずれの保護領域が割当てられるかを知る。したがって、メモリコントローラ８２ａ〜８２ｄの各々は、メモリコントローラ８２ａ〜８２ｄがアクセス可能なメモリロケーションを識別する書込み要求と共に、いずれのアクセスキーが受信されるべきかを知る。
【００６８】
上述したように、書込み要求に応じて、その書込み要求のメモリシステム識別子によって識別されるメモリシステム５９ａ、５９ｂ、５９ｃまたは５９ｄのメモリコントローラ８２ａ８２ｂ、８２ｃまたは８２ｄは、書込み要求のデータ値を、識別されたメモリシステム５９ａ、５９ｂ、５９ｃまたは５９ｄのメモリユニット８５ａ、８５ｂ、８５ｃまたは８５ｄに記憶しなければならない。しかしながら、メモリコントローラ８２ａ、８２ｂ、８２ｃまたは８２ｄは、このデータ値を記憶する前に、好ましくは、関連する書込み要求が許可されることを確実にするために、書込み要求と共に送信されるアクセスキーを、メモリコントローラ８２ａ、８２ｂ、８２ｃまたは８２ｄに記憶されるアクセスキーのうちの１つまたはそれ以上に対する書込み要求と比較する。
【００６９】
たとえば、書込み要求に応じて書込まれるデータ値が、その書込み要求のメモリシステム識別子とメモリユニットオフセットとに基づき、図８に示すメモリユニット８５ｂのメモリブロック１０７に記憶されるものと仮定する。これに関して、書込み要求のメモリシステム識別子は、メモリシステム５９ｂを識別し、書込み要求のメモリユニットオフセットは、メモリブロック１０７のメモリロケーションに対応する。図８に示すように、メモリブロック１０７の記憶ロケーションは、第１の保護領域（すなわち、ＰＤ１）に割付けられる。したがって、メモリコントローラ８２ｂは、書込み要求と共にＳＡＭ７１から受信されるアクセスキーを、ＰＤ１に一意のメモリコントローラ８２ｂに記憶されるアクセスキーと比較するように構成される。比較されたアクセスキーが一致した場合、メモリブロック１０７に記憶されるデータ値は許可された保護領域のプロセッサ６２からであり、メモリコントローラ８２は、本明細書で述べるようにデータ値を記憶する。
【００７０】
しかしながら、比較されたアクセスキーが一致しない場合、メモリブロック１０７に記憶されるよう試みられるデータ値は、メモリブロック１０７に割付けられなかった保護領域のプロセッサ６２からである。したがって、メモリコントローラ８２は、メモリブロック１０７にデータ値を記憶せず、無許可保護領域のプロセッサ６２からデータを記憶する試みが発生したことを示すエラーメッセージを生成する。
【００７１】
ＳＡＭ７１があることにより、種々の保護領域によりよくメモリを割付けることが助けられる。これに関し、メモリは、動作中しばしば再割付けされ、それによりマッパ７６に対ししばしば更新が行われる結果となる。引用をもってその開示内容がすべて本明細書内に包含されたものとする、「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｄｙｎａｍｉｃａｌｌｙ  Ｒｅａｌｌｏｃａｔｉｎｇ  Ｍｅｍｏｒｙ  ｉｎ  ａ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ」と題された本願と同一の譲受人に譲渡された米国特許出願第０９／６７５，０２１号（代理人整理番号第１０００２４０８−１号）は、メモリが再割付されている時にマッパ７６を更新する方法を述べている。データを処理する際の、特にマッパ７６を更新する際の効率費用を低減するために、マッパ７６の各エントリが、メモリの比較的大きいブロックに関連付けられてよい。さらに、保護領域は、いずれのプロセッサ６２がマッパ７６のエントリにアクセスしてよいかを制御することによって実現されてよい。しかしながら、これにより、同じエントリに関連するメモリのすべてが同じ保護領域に割当てられる結果となる。このため、状況によっては、他の保護領域のいくつかが、使用されていないメモリに割当てられても、１つの保護領域に追加のメモリを提供するために追加のメモリユニット８５ａ〜８５ｄが追加される必要のある場合がある。ＳＡＭ７１は、保護領域がメモリのより小さい割付けに割当てられることを可能にすることにより、この種の問題を解決する。
【００７２】
たとえば、マッパ７６が、１，０００，０００（「１メガ」）のメモリロケーションに関連する１０のエントリを含むと仮定する。これに関し、１０のエントリを使用して、バスアドレスを１メガメモリロケーションの各々にマップしてよい。この例では、各エントリは、１００，０００（「１００ｋ」）メモリロケーションに関連付けられる（すなわち、それらに対してマップする能力を有する）可能性がある。このため、保護領域が、いずれのプロセッサ６２がいずれのエントリにアクセスできるかを制御することにより実現される場合、特定の保護領域に割付けられる各隣接するメモリブロックは、少なくとも１ｋのメモリロケーションを含む。
【００７３】
しかしながら、保護領域を実現するためにＳＡＭ７１が使用され、かつ、ＳＡＭ７１が１００のエントリを含み、各エントリが異なるアクセスキーを含んでよい、と仮定する。この例では、特定の保護領域に割付けられる各隣接するメモリブロックは、少なくとも１０，０００（「１０ｋ」）メモリロケーションを含む。したがって、ＳＡＭ７１を使用することにより、保護領域に割付けることができるメモリブロックのサイズは、１／１０低減され、メモリ資源がより適切に割付けられる結果となる。
【００７４】
しかしながら、ＳＡＭ７１は、マッパ７６が異なるメモリシステム５９ａ〜５９ｄにわたってチェックサムデータをインタリーブすることができるために、無くてはならない特徴ではない。ＳＡＭ７１は、メモリリソースのよりよい割付けを可能にするが、望ましい場合はシステム５０から取除かれてよい。
【００７５】
本明細書で上述した技術と同様の技術により、メモリユニット８５ａ〜８５ｄからデータが検索されてよい。これに関して、プロセッサ６２のうちの１つがデータを検索する命令を実行すると、検索要求は、プロセッサ６２により、プロセッサ６２に連結されたＳＡＭ７１に送信される。検索要求は、データが検索される場所を識別するバスアドレスを含む。ＳＡＭ７１は、検索要求を送信したプロセッサ６２に関連する保護領域を識別するアクセスキーを送信する。また、ＳＡＭ７１は、検索要求をマッパ７６に送信する。
【００７６】
マッパ７６は、検索要求のバスアドレスを、メモリシステム識別子とメモリユニットオフセットとを含むメモリユニットアドレスにマップする。メモリシステム識別子は、要求されたデータを記憶するメモリシステム５９ａ、５９ｂ、５９ｃまたは５９ｄを識別し、メモリユニットオフセットは、データが実際に記憶される識別されているメモリシステム５９ａ、５９ｂ、５９ｃまたは５９ｄのメモリユニット８５ａ、８５ｂ、８５ｃまたは８５ｄ内のロケーションを識別する。チェックサム値はデータ読出しに応じて更新されないため、マッパ７６は検索要求に応じてチェックサムシステム識別子を送信する必要がない。
【００７７】
メモリシステム識別子によって識別されるメモリシステム５９ａ、５９ｂ、５９ｃまたは５９ｄのメモリコントローラ８２ａ、８２ｂ、８２ｃまたは８２ｄは、ＳＡＭ７１から送信されるアクセスキーを、メモリコントローラ８２ａ、８２ｂ、８２ｃまたは８２ｄに記憶される適当なアクセスキーと比較することにより、要求されたデータにアクセスしようと試みるプロセッサ６２の保護領域が、アクセスされているメモリユニットロケーションに割付けられる同じ保護領域であることを確実にする。要求されたデータにアクセスしようと試みるプロセッサ６２の保護領域が、要求されたデータを記憶するデータブロックにアクセスすることが許可されている場合、メモリコントローラ８２ａ、８２ｂ、８２ｃまたは８２ｄは、メモリユニットオフセットに対応するロケーションのデータ値を検索し、このデータ値を、要求している処理ユニット５７ａ、５７ｂ、５７ｃ、５７ｄまたは５７ｅに返す。要求されたデータへのアクセスを試みるプロセッサ６２の保護領域が、要求されたデータを記憶しているデータブロックにアクセスすることが許可されていない場合、メモリコントローラ８２ａ、８２ｂ、８２ｃまたは８２ｄは、上記データ値を検索せず、代りにエラーメッセージを生成する。代替的な実施の形態では、データ値を検索するメモリコントローラ８２ａ、８２ｂ、８２ｃまたは８２ｄは、検索されたデータ値を、検索されたデータ値を要求しているプロセッサ６２にマッパ７６を利用せずに直接送信してよい。
【００７８】
本発明の上述した実施の形態、特にあらゆる「好ましい」実施の形態は、単に本発明の原理を明確に理解するために示された、実現の単なる可能な例である、ということは強調されなければならない。本発明の精神および原理から実質的に逸脱することなく、多くの変形および変更が本発明の上述した実施の形態に対して行われてよい。かかる変更および変形はすべて、本明細書において本発明のこの開示の範囲内に含まれ、特許請求の範囲によって保護される、ということが意図されている。
【００７９】
以下に本発明の実施態様の例を列挙する。
〔実施態様１〕  処理システム（５０）であって、
各々が、メモリ（８５ａ〜８５ｄ）とデータを記憶し検索するメモリコントローラ（８２ａ〜８２ｄ）とを有するメモリシステム（５９ａ〜５９ｄ）と、
バスアドレスを含む、データ値を書込む要求を、送信するように構成された少なくとも１つのプロセッサ（６２）と、
各々が前記メモリシステム（５９ａ〜５９ｄ）のうちの１つのメモリロケーションを識別するメモリアドレスに、前記バスアドレスをマップするように構成され、バスアドレスの連続するセットをマップすることにより、該バスアドレスの連続するセットからマップされるメモリアドレスが複数の前記メモリシステム（５９ａ〜５９ｄ）にわたってインタリーブされるように構成され、さらに、前記書込み要求に応じて、前記複数のメモリシステム（５９ａ〜５９ｄ）の各々を識別する複数のチェックサムシステム識別子を識別するように構成され、該チェックサムシステム識別子を利用して前記データ値に基づいて更新されるチェックサム値のロケーションを識別するように構成された、マッピングシステム（６８）と、
を具備する処理システム。
〔実施態様２〕  処理システム（５０）であって、
前記チェックサム識別子の各々は、前記マッピングシステム（６８）により前記書込み要求のそれぞれ１つに応じて識別され、かつ、該１つの書込み要求に関連するデータ値に基づいて更新されるチェックサム値を記憶する、前記メモリシステム（５９ａ〜５９ｄ）のうちの１つを識別する実施態様１記載の処理システム。
〔実施態様３〕  前記マッピングシステム（６８）は、
各々が、前記メモリシステム（５９ａ〜５９ｄ）のうちの１つを識別するメモリシステム識別子を含む、複数のエントリを有し、該エントリを利用して前記バスアドレスを前記メモリアドレスにマップするように構成された第１のマッパ（７６）と、
各々が複数のアクセスキーのうちの１つを含む、複数のエントリを有し、前記バスアドレスの各々を該アクセスキーのうちの１つにマップするように構成され、その該エントリの合計数が前記第１のマッパ（７６）の前記エントリの合計数を超える、第２のマッパ（７１）と、
を含み、
前記マッピングシステム（６８）は、前記１つのバスアドレスからマップされる前記メモリアドレスのうちの１つと共に前記バスアドレスのうちの１つからマップされる前記アクセスキーのうちの１つを送信するように構成され、前記１つのメモリアドレスによって識別される前記メモリシステム（５９ａ〜５９ｄ）のうちの１つは、該１つのメモリアドレスからマップされる前記１つのアクセスキーに基づき、該１つのメモリアドレスによって識別されるメモリロケーションに対する記憶を許可するように構成される実施態様１記載の処理システム。
〔実施態様４〕  システム（５０）であって、
各々が、メモリ（８５ａ〜８５ｄ）と該メモリ（８５ａ〜８５ｄ）にデータを記憶し該メモリ（８５ａ〜８５ｄ）からデータを検索するメモリコントローラ（８２ａ〜８２ｄ）とを有するメモリシステム（５９ａ〜５９ｄ）と、
連続するバスアドレスを含む、データ値を書込む要求を、送信する手段（６２）と、
前記連続するバスアドレスをメモリアドレスにマップすることにより、該メモリアドレスの各々が、前記メモリシステム（５９ａ〜５９ｄ）のうちの異なる１つのメモリロケーションを識別するようにし、データ値を書込む前記要求に応じてチェックサムシステム識別子を選択することにより、該チェックサムシステム識別子が前記複数の前記メモリシステム（５９ａ〜５９ｄ）の各々を識別するようにし、該チェックサムシステム識別子に基づいて前記複数の前記メモリシステム（５９ａ〜５９ｄ）の各々に記憶されたチェックサム値を更新するように構成された手段（６８）と、
を具備するシステム。
〔実施態様５〕  システム（５０）であって、
前記マッピング手段（６８）は、前記連続するバスアドレスをアクセスキーにマップする手段（７１）を含み、前記メモリコントローラ（８５ａ〜８５ｄ）は、前記バスアドレスのうちの１つからマップされる前記メモリアドレスのうちの１つに基づき、および前記１つのバスアドレスからマップされる前記アクセスキーのうちの１つに基づき、前記メモリシステム（５９ａ〜５９ｄ）のうちの１つのロケーションに対する記憶を許可するように構成される実施態様４記載のシステム。
〔実施態様６〕  メモリシステムにわたってデータ値およびチェックサムをインタリーブする方法であって、
各々が、メモリとデータを記憶し検索するメモリコントローラ（８２ａ〜８２ｄ）とを有するメモリシステム（５９ａ〜５９ｄ）を、提供するステップと、
連続するバスアドレスを含む、データ値を書込む要求を、受取るステップと、
前記連続するバスアドレスをメモリアドレスにマップするステップと、
該メモリアドレスに基づいて複数の前記メモリシステム（５９ａ〜５９ｄ）の各々を識別するステップと、
データ値を書込む前記要求に応じてチェックサムシステム識別子を選択するステップと、
前記チェックサムシステム識別子に基づいて前記複数の前記メモリシステム（５９ａ〜５９ｄ）の各々を識別するステップと、
前記チェックサム識別子に基づいて前記複数の前記メモリシステム（５９ａ〜５９ｄ）の各々に記憶されるチェックサム値を更新するステップと、
を含む方法。
〔実施態様７〕  前記メモリアドレスに基づいて前記メモリシステム（５９ａ〜５９ｄ）に前記データ値を記憶するステップと、
前記更新するステップにおいて、該データ値を利用して前記チェックサム値を更新するステップと、
をさらに含む実施態様６記載の方法。
〔実施態様８〕  前記更新されたチェックサム値のうちの１つに基づいて前記データ値のうちの１つを回復するステップ
をさらに含む実施態様６記載の方法。
〔実施態様９〕  前記連続するバスアドレスをマップする前記ステップは、該連続するバスアドレスの各々に対し、複数のメモリシステム識別子からメモリシステム識別子を選択するステップを含み、前記方法は、
前記各連続するバスアドレスを複数のアクセスキーのうちの１つにマップし、該複数のアクセスキーから該１つのアクセスキーを選択するステップを含むステップ
をさらに含み、
前記複数のアクセスキーの合計数は、前記メモリシステム識別子の合計数を超える実施態様６記載の方法。
〔実施態様１０〕  各々が、メモリ（８５ａ〜８５ｄ）とデータを記憶し検索するメモリコントローラ（８２ａ〜８２ｄ）とを有するメモリシステム（５９ａ〜５９ｄ）を、提供するステップと、
連続するバスアドレスを含む、データ値を書込む要求を、受取るステップと、
該連続するバスアドレスをメモリアドレスにマップするステップと、
前記メモリシステム（５９ａ〜５９ｄ）の各々にわたって該メモリアドレスをインタリーブするステップと、
該メモリアドレスに基づいて複数の前記データ値を記憶するステップと、
各々が、前記各チェックサムシステム識別子に関連する前記メモリアドレスのうちの１つに記憶されたデータ値に基づいてチェックサムを記憶する前記メモリシステム（５９ａ〜５９ｄ）のうちの１つを識別するチェックサムシステム識別子に、前記メモリアドレスを関連付けるステップと、
前記メモリシステム（５９ａ〜５９ｄ）の各々にわたって該チェックサム識別子をインタリーブするステップと、
を含む方法。
【図面の簡単な説明】
【図１】従来の処理システムを示すブロック図である。
【図２】図１に示す処理ユニットのより詳細な図を示すブロック図である。
【図３】図１に示すメモリシステムのより詳細な図を示すブロック図である。
【図４】図３に示すメモリユニットのより詳細な図を示すブロック図である。
【図５】本発明による処理システムを示すブロック図である。
【図６】図５に示す処理ユニットのより詳細な図を示すブロック図である。
【図７】図５に示すメモリシステムのより詳細な図を示すブロック図である。
【図８】図７に示すメモリユニットのより詳細な図を示すブロック図である。
【符号の説明】
５０…処理システム
５９ａ〜５９ｄ…メモリシステム
６２…プロセッサ
６８…マッピングシステム
７１…システムアドレスマッパ（ＳＡＭ）
７６…マッパ
８５ａ〜８５ｄ…メモリユニット
【図１】
0004065674.tif 000002
【図２】
0004065674.tif 000003
【図３】
0004065674.tif 000004
【図４】
0004065674.tif 000005
【図５】
0004065674.tif 000006
【図６】
0004065674.tif 000007
【図７】
0004065674.tif 000008
【図８】
0004065674.tif 000009