JP2002244933A - チェックサムを異なるメモリ位置へ動的に移動させるシステムおよび方法 - Google Patents

チェックサムを異なるメモリ位置へ動的に移動させるシステムおよび方法

Info

Publication number
JP2002244933A
JP2002244933A JP2001377503A JP2001377503A JP2002244933A JP 2002244933 A JP2002244933 A JP 2002244933A JP 2001377503 A JP2001377503 A JP 2001377503A JP 2001377503 A JP2001377503 A JP 2001377503A JP 2002244933 A JP2002244933 A JP 2002244933A
Authority
JP
Japan
Prior art keywords
memory
checksum
location
data
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2001377503A
Other languages
English (en)
Other versions
JP2002244933A5 (ja
Inventor
Honang Brian
ブライアン・ホーナング
Gregory S Palmer
グレゴリー・エス・パルマー
Paul F Vogel
ポール・エフ・ボーゲル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JP2002244933A publication Critical patent/JP2002244933A/ja
Publication of JP2002244933A5 publication Critical patent/JP2002244933A5/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

(57)【要約】 (修正有) 【課題】アフ゜リケーションの実行を停止することなく、チェックサム
を異なるメモリ位置へ移動するシステム及び方法を提供する。 【解決手段】複数のメモリシステム139a-139c及びシステムマネーシ゛ャを
用いて、メモリ内のチェックサムを移動する。第1のメモリシステムは、
チェックサムインシ゛ケータ161a-161cと相関する第1のメモリ位置を有
する。チェックサムインシ゛ケータは、第1の位置に現在格納されて
いる値のチェックサムを格納するメモリシステムを識別する。システムマネー
シ゛ャはチェックサムを動的に宛先メモリ位置へ移動し、チェックサムインシ゛
ケータが宛先メモリ位置のメモリシステムを識別するように更新す
る。チェックサムを移動した後、システムマネーシ゛ャは、元のメモリ位置
に格納されている値でチェックサムを更新する。この結果、チェ
ックサム宛先位置のチェックサムは、テ゛ータの回復を可能にするため
に有効に更新される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、概してデータ処理
技術に関し、特に、あるメモリ位置から別のメモリ位置
へ、誤りを生じさせることなく動的にチェックサムを移
動するシステムおよび方法に関する。
【0002】
【従来の技術】大型コンピュータシステム(例えば、サ
ーバ)は、しばしば、様々なアプリケーションに対して
十分な命令およびデータメモリを提供するために、複数
のメモリユニットを採用する。各メモリユニットは、デ
ータを記憶することができる1つ以上のビット数の多数
のメモリ位置を有し、各メモリ位置は、以降「メモリユ
ニットアドレス」と呼ぶ特定のメモリアドレスに関連付
けられ、これによって識別される。データを記憶する命
令が実行される場合、この命令によって定義されるバス
アドレスは、実際にデータが記憶されるメモリ位置を取
得するのに用いられる。この際、しばしば、バスアドレ
スをバスアドレスとは異なる値を有するメモリユニット
アドレスへマップまたは変換するため、マッパが使用さ
れる。異なるメモリユニットアドレスへマップされるバ
スアドレスを利用することに関しては、様々な利点があ
る。
【0003】例えば、多くのコンピュータアプリケーシ
ョンは、バスアドレスが連続的に使用されるようにプロ
グラムされる。言換えれば、データを記憶するために最
初に使用されるバスアドレスとして、バスアドレスのう
ちの1つが選択される。データを記憶するために新たな
バスアドレスが利用される場合、この新たなバスアドレ
スは、先に使用されたバスアドレスをインクリメントす
ることによって取得される。
【0004】連続的なバスアドレスが同じメモリユニッ
トのメモリユニットアドレスへマップされる場合、非効
率的になる可能性がある。この場合、メモリユニットへ
のデータを記憶及びメモリユニットからのデータを取得
のための時間は、制限されることが求められる。2つの
連続的なデータ記憶動作が同じメモリユニットに対して
生じる場合、第2のデータ記憶動作は、この第2のデー
タ記憶動作に先立って第1のデータ記憶動作が完了する
まで待たなければならない場合がある。しかしながら、
2つの連続的なデータ記憶動作が異なるメモリユニット
で生じる場合、第2のデータ記憶動作は第1のデータ記
憶動作が完了する前に開始することができる。メモリ待
ち時間を最小限にしかつメモリ帯域幅を最大限にするた
めに、連続的なバスアドレスは可能な限り多くのメモリ
ユニットにアクセスするべきである。これは、また、メ
モリインタリーブを最大限にすること、とも言うことが
できる。
【0005】結果として、上述したマッパは、しばし
ば、各連続的なバスアドレスが異なるメモリユニットの
メモリユニットアドレスに変換されるように、バスアド
レスをメモリユニットアドレスへマップするように設計
される。例えば、第1の値を有するバスアドレスは、第
1のメモリユニットの位置を識別するメモリユニットア
ドレスへマップされ、次に高い値を有するバスアドレス
は、第2のメモリユニットの位置を識別するメモリユニ
ットアドレスへマップされる。したがって、1つのコン
ピュータアプリケーションによる2つの連続的なデータ
記憶動作が、同じメモリユニットにおいて行われないこ
ともありうる。言い換えれば、コンピュータアプリケー
ションによる連続的なデータ記憶動作は、複数のメモリ
ユニットにわたってインタリーブされることもありう
る。
【0006】メモリユニットの1つが障害を起こした場
合にデータの回復を可能にするため、しばしばバックア
ップシステムが採用される。例えば、引用をもってその
開示内容がすべて本明細書内に包含されたものとする米
国特許第4,849,978号は、障害のあるメモリユ
ニットのデータを回復するために使用することのできる
チェックサムバックアップシステムを述べている。一般
的なコンピュータシステムのメモリユニット内に記憶さ
れるデータをバックアップするために、コンピュータシ
ステムのメモリユニットのうちの1つが、チェックサム
メモリユニットとして設計される。チェックサムメモリ
ユニットの各メモリ位置は0に初期化され、非チェック
サムメモリユニットのメモリ位置と関連付けられる。非
チェックサムメモリユニットのうちの1つのある位置に
記憶されている各々のデータ値は、この1つの非チェッ
クサムメモリユニットの同じ位置にすでに記憶されてい
るデータと排他的論理和が計算される。言い換えれば、
データ記憶動作によって記憶されているデータ値が、同
じデータ記憶動作によって上書きされているデータ値と
排他的論理和がとられる。そして、この排他的論理和の
計算結果は、チェックサムメモリユニットの相関するア
ドレスの「チェックサム」と呼ばれる値と排他的論理和
がとられる。そして、前記排他的論理和の計算結果は、
チェックサムメモリユニットの前記アドレスに新たなチ
ェックサム値として記憶される。
【0007】メモリユニットが障害した場合、障害が発
生したメモリユニットの位置に格納されているデータ値
は、チェックサムメモリユニットの相関する位置のチェ
ックサム値を、同様にそのチェックサムの位置と相関す
る位置に格納されている他のメモリユニットの値の各々
と排他的論理和をとることにより、回復することができ
る。チェックサムを管理すること、および/またはこの
チェックサムに基づいて失ったデータ値を回復するプロ
セスは、この技術分野において広く知られている。
【0008】1つ以上のメモリユニットの1つ以上の位
置に格納される、前記チェックサム値を含むデータ値
を、1つ以上のメモリユニットの他の位置へ移動したい
という状況が存在する。例えば、メモリユニットのうち
の1つが信頼できない振る舞いをしている場合、このメ
モリユニットを取除きたいという場合がある。取除くメ
モリユニットに格納されている可能性のあるデータの喪
失を防止するため、このメモリユニットを備えているコ
ンピュータシステムは、しばしばメモリユニットを取除
く前にシャットダウンされる。メモリユニットが取除か
れると、コンピュータシステムはリブートされる。コン
ピュータシステムはリブートが完了するまでいかなるア
プリケーションも実行することができないため、コンピ
ュータシステムのシャットダウンおよびリブートは、メ
モリユニットを取除く際の明らかに望ましくない結果で
ある。
【0009】コンピュータシステムをシャットダウンす
ることなくメモリユニットをコンピュータシステムから
取除くことを可能にするいくつかの技術が開発されてい
る。例えば、物理アドレスを再マップするために、プロ
セッサの仮想メモリマッピングシステムが使用される場
合がある。この場合、取除かれたメモリユニットが新た
なメモリユニットに置換されるまでの間、アプリケーシ
ョンは一時的に停止し、取除かれているメモリユニット
からディスクまたはある別のデータ記憶装置へデータが
コピーされることになる。アプリケーションの実行を停
止する主な理由は、移動されている値が更新されないよ
うにし、データ誤りを防止することである。I/Oシス
テムと同様にマルチスレッドアプリケーションのすべて
のスレッドは、常に、メモリ位置の一貫した視点を有し
ていなければならない。
【0010】
【発明が解決しようとする課題】取除かれたメモリユニ
ットが置換されると、取除かれたメモリユニットからコ
ピーされる上述したデータは、その後新たなメモリユニ
ットへ書込まれる。そして、アプリケーションの実行が
再開される。上記技術は、コンピュータシステムがアプ
リケーションを実行することができない時間を短縮させ
るが、コンピュータシステムがアプリケーションを実行
することができない有限の時間がいまだに存在する。
【0011】チェックサム保護をディスエーブルにし、
チェックサムによってバックアップされるデータ値のす
べての一貫したコピーを取得し、これらデータ値の排他
的論理和をとり、排他的論理和演算の結果を新たなメモ
リユニットに記憶することにより、あるメモリユニット
から別のメモリユニットへチェックサムを移動すること
ができる。しかしながら、上記方法は、移動されている
各チェックサムに対して実行されなければならないた
め、非常に長い時間チェックサム保護無しにコンピュー
タシステムを動作させること、及び大量のメモリ帯域幅
を消費するということ、といった欠点を有する。
【0012】このように、本業界において、コンピュー
タシステムがアプリケーションの実行を停止する必要な
く、データ値、特にチェックサム値をコンピュータシス
テムの別のメモリ位置へ移動するためのシステムおよび
方法を提供する必要があり、これは今まで取り組まれて
いない。
【0013】
【課題を解決するための手段】本発明は、上述した従来
技術の欠点および不完全性を克服する。概して、本発明
は、チェックサムを別のメモリ位置へ動的に移動するシ
ステムおよび方法を提供する。
【0014】本発明のデータ記憶システムは、構造上、
複数のメモリシステムとシステムマネージャとを利用す
る。第1のメモリシステムは、チェックサムインジケー
タと相関する第1のメモリ位置を有する。チェックサム
インジケータは、第1の位置に現在記憶されている値の
チェックサムを記憶しているメモリシステムを識別す
る。システムマネージャは、動的にチェックサムを宛先
メモリ位置へ移動し、チェックサムインジケータが宛先
メモリ位置のメモリシステムを識別するようにチェック
サムインジケータを更新する。チェックサムが移動され
ている間に、チェックサムの移動元のメモリ位置に対し
てチェックサム更新が発生する場合がある。このため、
チェックサムを移動した後、システムマネージャは、チ
ェックサムを、そのチェックサムの移動元の位置に記憶
されている値で更新する。その結果、チェックサム宛先
位置に記憶されるチェックサムは、データの回復を可能
にするために十分に更新されるはずである。
【0015】また、本発明は、チェックサムを動的に移
動する方法を提供するものとしても見ることができる。
本方法は、以下のステップ、すなわち複数のメモリシス
テムを設けるステップと、メモリシステムのうちの1つ
のメモリシステムのあるメモリ位置にデータ値を記憶す
るステップと、メモリシステムのうちの他のメモリシス
テムの他のメモリ位置にチェックサムを保持するステッ
プと、前記1つのメモリシステムのメモリ位置と相関し
前記他のメモリシステムを識別するチェックサムインジ
ケータを保持するステップと、データ値を記憶するステ
ップに応じてチェックサムインジケータを分析するステ
ップと、データ値を記憶するステップに応じ分析するス
テップに基づいてチェックサムを更新するステップと、
チェックサムを宛先メモリ位置へ記憶するステップと、
チェックサムインジケータが宛先メモリ位置のメモリシ
ステムを識別するように該チェックサムインジケータを
更新するステップと、宛先メモリ位置に記憶されたチェ
ックサムを前記他のメモリシステムの他のメモリ位置か
らのデータ値で更新するステップと、によって大まかに
概念化することができる。
【0016】本発明の他の特徴および利点は、当業者に
は、以下の詳細な説明を添付の図面と共に読んで考察す
ることにより明らかとなろう。かかる特徴および利点は
すべて、本明細書において本発明の範囲内に含まれ特許
請求の範囲によって保護される、ということが意図され
ている。
【0017】本発明は、以下の図面を参照してよりよく
理解することができる。図面の要素は、必ずしも互いに
一定の比率で縮小されておらず、本発明の原理を明確に
例示することに重きがおかれている。さらに、各図面を
通して同じ参照番号は対応する部分を示している。
【0018】
【発明の実施の形態】図1は、複数のメモリシステム1
9a〜19cに接続された複数の処理ユニット17a〜
17eを含む従来の処理システム15を示す。図2に示
すように、各処理ユニット17a〜17eは、本技術分
野において周知の技術によって命令を実行するように構
成された1つまたは複数のプロセッサ22を含む。実行
中は、頻繁にデータを取得および記憶することが必須で
ある。
【0019】プロセッサ22のうちの1つによる命令の
実行に応じてデータ値が記憶される時、プロセッサ22
は、記憶要求をマッパ26に送信する。記憶要求は、記
憶されるデータ値、及びそのデータ値が記憶される場所
を示すバスアドレスを含む。マッパ26は、バスアドレ
スを、メモリシステム識別子とメモリユニットオフセッ
トとを含むメモリユニットアドレスにマップするように
構成されている。メモリシステム識別子は、メモリシス
テム19a〜19cのうちの1つを識別する。マッパ2
6は、書込み要求をメモリシステム19a〜19cの各
々へ送信するように構成されている。書込み要求は、記
憶されるデータ値、メモリシステム識別子およびメモリ
ユニットオフセットを含み、またこれらによって定義さ
れる。
【0020】図3に示すように、メモリシステム19a
〜19cの各々は、それぞれメモリコントローラ32a
〜32cとそれぞれメモリユニット35a〜35cとを
含む。メモリユニット35a〜35cの各々は、データ
の記憶及び取り出しができる複数のメモリ位置を含む。
前記書込み要求のメモリシステム識別子によって識別さ
れるメモリシステム19a〜19cのメモリコントロー
ラ32a〜32cは、この書込み要求のデータ値(すな
わち、記憶されるデータ値)を、メモリユニットオフセ
ットに基づいて、識別されたメモリシステム19a〜1
9cのメモリユニット35a〜35cに記憶するように
構成されている。これに関し、メモリユニットオフセッ
トは、メモリユニット35a〜35cの各々における1
つの位置に対応し、識別されたメモリシステム19a〜
19cのメモリコントローラ32a〜32cは、受取っ
た書込み要求のデータ値をメモリユニットオフセットに
対応するメモリユニット位置に記憶するように構成され
ている。
【0021】処理システム15のパフォーマンスを向上
させるために、マッパ26は、連続したバスアドレスを
異なるメモリシステム19a〜19cにわたってインタ
リーブ形式でマップするように構成されている。例え
ば、プロセッサ22からの各バスアドレスが8ビットの
2進情報であり、00000000から1111111
1までの範囲の値を取ることができると仮定する。最初
の4つの連続したバスアドレスは、00000000、
00000001、00000010および00000
011である。プログラマは、一般に、バスアドレスを
連続した順序で利用する。したがって、データ値を記憶
するために最初にバスアドレス00000000が使用
される場合、次にはアドレス00000001がデータ
を記憶するために使用される次の新たなバスアドレスと
なる可能性が高い。そして、バスアドレス000000
10が使用されると、次はアドレス00000011が
使用される可能性が高い。このパターンは、それ以上新
たなバスアドレスが必要とされなくなるか、またはすべ
てのバスアドレスが使用されるまで続けられる可能性が
高い。
【0022】上記連続したバスアドレスをメモリシステ
ム19a〜19cにわたってインタリーブされた形式に
マップするために、マッパ26は、第1のバスアドレス
(00000000)を、メモリシステム19aを識別
するメモリシステム識別子を有するメモリユニットアド
レスにマップする場合がある。そして、マッパ26は、
第2のバスアドレス(00000001)を、メモリシ
ステム19bを識別するメモリシステム識別子を有する
メモリユニットアドレスにマップする場合がある。次い
で、マッパ26は、第3のバスアドレス(000000
10)を、残りのメモリシステム19cを識別するメモ
リシステム識別子を有するメモリユニットアドレスにマ
ップする場合がある。このプロセスは、各々の新たなバ
スアドレスがマッパ26によって受信されるたび繰返し
行われる。例えば、マッパ26は、第4のバスアドレス
(00000011)を含む記憶要求を受取ると、第4
のバスアドレスを、メモリシステム19aを識別するメ
モリシステム識別子を有するメモリユニットアドレスに
マップする。
【0023】同じメモリシステム19a〜19cにマッ
プされる各バスアドレスは、好ましくは異なるメモリユ
ニットオフセットを有するメモリユニットアドレスにマ
ップされる。したがって、バスアドレスの集合が同じメ
モリシステム19a〜19cへマップされる場合であっ
ても、これらバスアドレスの各々は一意のメモリユニッ
トアドレスにマップされる。したがって、前記集合の各
々のバスアドレスは、同じメモリシステム19a〜19
cの異なる位置へマップされる。
【0024】本明細書で前述した技術と同様の技術によ
って、データをメモリシステム19a〜19cから取得
することができる。これに関して、プロセッサ22のう
ちの1つがデータを取得する命令を実行すると、取得要
求は、プロセッサ22によりプロセッサ22に接続され
たマッパ26へ送信される。取得要求は、データが取得
される場所を示すバスアドレスを含む。マッパ26は、
このバスアドレスを、メモリシステム識別子とメモリユ
ニットオフセットとを含むメモリユニットアドレスにマ
ップする。メモリシステム識別子は、要求されたデータ
を記憶しているメモリシステム19a〜19cを識別
し、また、メモリユニットオフセットは、識別されたメ
モリシステム19a〜19cのメモリユニット35a〜
35c内においてデータが実際に記憶されている位置に
対応する。
【0025】マッパ26は、取得要求に応じて、読出し
要求をメモリシステム19a〜19cの各々へ送信す
る。読出し要求は、取得要求に含まれるバスアドレスか
ら変換された前記メモリユニットアドレスを含み、また
これによって定義される。読出し要求のメモリシステム
識別子によって識別されるメモリシステム19a〜19
cのメモリコントローラ32a〜32cは、関連するメ
モリユニット35a〜35cの読出し要求のメモリユニ
ットオフセットに対応する位置においてデータ値を取得
する。次に、識別されたメモリシステム19a〜19c
は、この取得したデータ値を要求している処理ユニット
17a〜17eへ送信する。この時、メモリコントロー
ラ32a〜32cは、取得したデータ値をマッパ26へ
返し、マッパ26がこのデータ値を、要求しているプロ
セッサ22(すなわち、前記取得要求を発行したプロセ
ッサ22)へ送信してよく、あるいは、メモリコントロ
ーラ32a〜32cは、マッパ26を利用せずにデータ
値を要求しているプロセッサ22へ送信してもよい。
【0026】図1に示すように、処理システム15はま
た、処理ユニット17a〜17eに接続されたチェック
サムメモリシステム39も含む。図3に示すように、チ
ェックサムメモリシステム39は、構造上、他のメモリ
システム19a〜19cと同様に構成されている。より
詳細には、チェックサムメモリシステム39は、チェッ
クサムメモリコントローラ41とチェックサムメモリユ
ニット43とを含む。チェックサムメモリコントローラ
41は、チェックサムメモリシステム39によって受信
されたメモリユニットアドレスに基づいてデータを記憶
及び読み出しするように設計されている。各メモリシス
テム19a〜19cの同じメモリユニットオフセットに
対応する各々のメモリユニット位置のチェックサムは、
チェックサムメモリユニット39の該メモリユニットオ
フセットに対応するメモリユニット位置に保持される。
【0027】これに関して、チェックサムメモリユニッ
ト43の値は、0に初期化される。処理ユニット17a
〜17eのいずれかによって送信される各々の書込み要
求は、他のメモリシステム19a〜19cへ送信され
る。前述したように、送信された書込み要求のメモリユ
ニットアドレスによって識別されるメモリシステム19
a〜19cのメモリコントローラ32a〜32cは、書
込み要求のデータ値を、メモリユニットアドレスのメモ
リユニットオフセットに対応するメモリユニット位置に
記憶するように構成されている。また、識別されるメモ
リシステム19a〜19cのメモリコントローラ32a
〜32cは、書込み要求の前記データ値と前記メモリ位
置(すなわち、書込み要求に応じて上書きされてしまう
データを有する)に既に記憶されているデータ値との排
他的論理和演算を行うように設計されている。そして、
上記メモリコントローラ32a〜32cは、この排他的
論理和の演算結果、及び上記メモリ位置(すなわち、書
込み要求に応じてアクセスされる、識別されたメモリシ
ステム19a〜19cの位置)と相関するメモリユニッ
トオフセットを、チェックサムメモリシステム39へ送
信する。
【0028】チェックサムメモリコントローラ41は、
この結果と、受信したメモリユニットオフセット(すな
わち、書込み要求に含まれるメモリユニットオフセッ
ト)に対応するチェックサムメモリユニット位置に現在
記憶されているデータ値との排他的論理和演算を行うよ
うに構成されている。そして、チェックサムメモリコン
トローラ41は、この排他的論理和演算の結果を、チェ
ックサムメモリユニット43の上記位置(すなわち、受
信したメモリユニットオフセットに対応するチェックサ
ムメモリユニット位置)に記憶する。したがって、チェ
ックサムメモリユニット43の特定のメモリユニットオ
フセットに対応する位置は、メモリユニット35a〜3
5cのこの特定のメモリユニットオフセットに対応する
位置に現在記憶されているデータ値に対するチェックサ
ムを記憶しているはずである。
【0029】メモリシステム19a〜19cのいずれに
障害が発生しても、障害が発生したメモリシステム19
a〜19cに記憶されたデータ値は、チェックサムメモ
リシステム39のデータ値を利用することにより回復す
ることができる。障害が発生したメモリシステム19a
〜19cに格納されているデータ値を回復するために、
他の使用可能なメモリシステム19a〜19cの各々の
同じメモリユニットオフセットに対応するメモリユニッ
ト位置における各データ値と、チェックサムメモリユニ
ット39の上記メモリユニットオフセットに対応する位
置に記憶されたチェックサムデータ値との排他的論理和
がとられる。これら排他的論理和演算の結果は、障害が
発生したメモリシステム19a〜19cの同じメモリユ
ニットオフセットに対応するメモリユニット位置に記憶
されたデータ値になるはずである。したがって、各メモ
リユニットオフセットに対して上記排他的論理和演算を
実行することにより、障害が発生したメモリシステム1
9a〜19cに記憶されているデータ値の各々を回復す
ることができる。障害が発生したメモリシステムからデ
ータ値を回復するためにチェックサム値を使用すること
は、本技術分野において周知である。
【0030】本発明は、概して、異なるメモリ位置間で
チェックサムを移動するシステムおよび方法に関する。
図4は、本発明を実施するために利用され得るコンピュ
ータシステム112を示す。図4に示すように、コンピ
ュータシステム112は、好ましくは処理システム11
5に含まれるメモリに記憶されるコンピュータアプリケ
ーションの命令を実行するように構成された処理システ
ム115を含む。処理システム115は、1つ以上のバ
スを含むことができるローカルインタフェース123を
介して、コンピュータシステム112内の他の要素と通
信しそれらを駆動する。さらに、入力装置124、例え
ばキーボードまたはマウスは、システム112のユーザ
がデータを入力するために使用することができ、画面表
示装置125またはプリンタ126は、ユーザにデータ
を出力するために使用することができる。ディスク記憶
機構127は、不揮発性ディスク(例えば、磁気ディス
ク、光ディスク等)との間でデータをやり取りするため
にローカルインタフェース123へ接続されることが可
能である。システム112は、システム112がネット
ワーク134とデータを交換することができるようにす
るネットワークインタフェース133に接続されること
が可能である。
【0031】また、コンピュータシステム112は、後
により詳細に説明するように、好ましい実施の形態にお
いてコンピュータシステム112の動作を制御するため
に使用されるシステムマネージャ136も含む。システ
ムマネージャ136は、ソフトウェア、ハードウェアま
たはそれらの組合せにおいて実施することができる。シ
ステムマネージャ136は、ソフトウェアで実施される
場合、命令実行システム、機器または装置から命令をフ
ェッチして実行することが可能なコンピュータベースの
システム、プロセッサを備えるシステム、またはその他
のシステムのような、前記命令実行システム、機器、ま
たは装置から利用するための、あるいはこれらに接続し
て使用するための、あらゆるコンピュータ読取可能媒体
上へ格納または転送されることが可能であるということ
に留意されたい。例えば、システムマネージャ136に
よって定義される命令は、処理システム115の1つ以
上のプロセッサによって実行することができる。
【0032】本明細書のコンテキストにおいて、「コン
ピュータ読取可能媒体」は、命令実行システム、装置ま
たは機器によってまたはそれと接続して使用されるプロ
グラムを、含み、記憶し、通信し、伝搬しまたは転送す
ることができるいかなる手段であってもよい。コンピュ
ータ読取可能媒体は、例えば、限定されないが、電子、
磁気、光、電磁気、赤外線または半導体のシステム、装
置、機器または伝播媒体とすることができる。コンピュ
ータ読取可能媒体のより特定の例(非網羅的リスト)に
は、以下のものが含まれる。すなわち、1つまたは複数
のワイヤを有する電気的接続(電子)、ポータブルコン
ピュータディスケット(磁気)、ランダムアクセスメモ
リ(RAM)(磁気)、リードオンリメモリ(ROM)
(磁気)、消去可能プログラム可能リードオンリメモリ
(EPROMまたはフラッシュメモリ)(磁気)、光フ
ァイバ(光)およびポータブルコンパクトディスクリー
ドオンリメモリ(CDROM)(光)である。なお、コ
ンピュータ読取可能媒体は、プログラムが、例えば用紙
または他の媒体の光学式走査によって電子的に捕捉さ
れ、その後コンパイル、インタープリットまたはもし必
要な場合は適当な方法で処理され、コンピュータメモリ
に記憶されること出来るならば、プログラムが印刷され
た紙または他の適当な媒体であってもよい。
【0033】図5に示すように、処理システム115
は、複数のメモリシステム139a〜139eに連結さ
れた複数の処理ユニット137a〜137eを含む。図
6に示すように、各処理ユニット137a〜137e
は、本技術分野において周知の技術により命令を実行す
るように構成された1つ以上のプロセッサ142を含
む。これら命令は、好ましくは、1つ以上のメモリシス
テム139a〜139eに記憶されるコンピュータアプ
リケーションによって定義される。
【0034】プロセッサ142のうちの1つによる命令
の実行に応じてデータが記憶される時、プロセッサ14
2は、記憶要求をマッパ146へ送信する。この記憶要
求は、記憶されるデータ値とそのデータ値が記憶される
場所を示すバスアドレスとを含む。マッパ146は、バ
スアドレスを、メモリシステム識別子とメモリユニット
オフセットとを含むメモリユニットアドレスにマップす
るように構成される。メモリシステム識別子は、メモリ
システム139a〜139eの1つを識別する。マッパ
146は、記憶されるデータ値、メモリシステム識別
子、およびメモリユニットオフセットを含む書込み要求
を、メモリシステム139a〜139eの各々へ送信す
るように構成される。なお、従来のシステム15のマッ
パ26と同様に、マッパ146は、好ましくは連続した
バスアドレスを異なるメモリシステム139a〜139
eにインタリーブ形式でマップする。
【0035】図7Aおよび図7Bに示すように、メモリ
システム139a〜139eの各々は、それぞれメモリ
コントローラ152a〜152eとそれぞれメモリユニ
ット155a〜155eとを含む。メモリユニット15
5a〜155eの各々は、データを記憶し取得すること
ができる複数のメモリ位置を含む。上述した書込み要求
の上述したメモリシステム識別子によって識別されるメ
モリシステム139a〜139eのメモリコントローラ
152a〜152eは、記憶されるデータ値(すなわ
ち、メモリシステム識別子およびメモリユニットオフセ
ットと共に受信したデータ値)を、メモリユニットオフ
セットに基づいて、識別されたメモリシステム139a
〜139eのメモリユニット155a〜155eに記憶
するように構成される。これに関して、メモリユニット
オフセットは、メモリユニット155a〜155eの各
々の1つのメモリ位置を識別し、識別されたメモリシス
テム139a〜139eのメモリコントローラ152a
〜152eは、上記メモリユニット155a〜155e
のメモリユニットオフセットによって識別される位置
に、受信したデータ値を記憶するように構成される。
【0036】同じメモリシステム139a〜139eに
マップされる各バスアドレスは、好ましくは、異なるメ
モリユニットオフセットを有するメモリユニットアドレ
スにマップされる。したがって、バスアドレスの集合が
同じメモリシステム139a〜139eへマップされる
場合であっても、これらバスアドレスの各々は一意のメ
モリユニットアドレスにマップされる。したがって、同
じメモリシステム139a〜139eへマップされる各
バスアドレスは、同じメモリシステム139a〜139
eの異なる位置へマップされる。
【0037】本明細書で上述した技術と類似する様々な
技術により、メモリユニット155a〜155eからデ
ータが取得されてよい。これに関し、プロセッサ142
のうちの1つがデータを取得する命令を実行すると、プ
ロセッサ142により取得要求がプロセッサ142に連
結されたマッパ146へ送信される。取得要求は、デー
タが取得される場所を示すバスアドレスを含む。マッパ
146は、バスアドレスを、メモリシステム識別子およ
びメモリユニットオフセットを含むメモリユニットアド
レスにマップする。メモリシステム識別子は、要求され
たデータを記憶しているメモリシステム139a〜13
9eを識別し、また、メモリユニットオフセットは、識
別されたメモリシステム139a〜139eのメモリユ
ニット155a〜155e内においてデータが実際に記
憶されている位置を識別する。
【0038】マッパ146は、取得要求に応じて、読出
し要求をメモリシステム139a〜139eの各々へ送
信する。読出し要求は、取得要求のバスアドレスから変
換された前記メモリユニットアドレスを含む。識別され
るメモリシステム139a〜139eのメモリコントロ
ーラ152a〜152eは、関連するメモリユニット1
55a〜155eの、メモリユニットオフセットによっ
て識別される位置からデータ値を取得し、このデータ値
を、要求している処理ユニット137a〜137eへ送
信する。これに関して、メモリコントローラ152a〜
152eは、上記データ値をマッパ146へ返し、マッ
パ146が、このデータ値を要求している処理ユニット
137a〜137eへ送信してもよいし、あるいは、メ
モリコントローラ152a〜152eは、マッパ146
を利用せずにデータ値を要求している処理ユニット13
7a〜137eへ送信してもよい。
【0039】図8は、メモリユニット155a〜155
eの各々のより詳細な図を示す。図8において、チェッ
クサム値またはチェックサムは、CS1〜CS8部分内
に記憶され、非チェックサム値は、NCS1〜NCS8
部分内に記憶される。従来のシステム15と同様に、あ
るメモリシステム139a〜139e内の各々のチェッ
クサム値は、他のメモリシステム139a〜139e内
に存在し、そのチェックサムのメモリ位置と同じメモリ
ユニットオフセットに相関するメモリ位置に記憶された
各々のデータ値に対するチェックサムを表している。し
かしながら、これらのチェックサムは、例えば図8に示
すように、異なるメモリシステム139a〜139eに
わたってインタリーブされる。
【0040】図8を参照し、メモリユニット155aの
CS1部分(「チェックサム1」)内のメモリ位置が、
メモリユニット155b〜155eのNCS1部分
(「非チェックサム1」)内のメモリ位置と同じメモリ
ユニットオフセットに相関している、と仮定する。した
がって、NCS1部分内の、同じメモリユニットオフセ
ットに相関するメモリ位置の値のチェックサムは、CS
1部分の、上記メモリユニットオフセットと相関するメ
モリ位置に記憶されなければならない。同様に、CS2
〜CS8部分内のメモリ位置は、それぞれNCS2〜N
CS8部分内のメモリ位置と同じメモリユニットオフセ
ットに相関するものと仮定する。このように、NCS2
〜NCS8部分内の値のチェックサムは、それぞれCS
2〜CS8部分に記憶されなければならない。例えば、
同じメモリユニットオフセットに相関するメモリ位置の
NCS2部分内の値のチェックサムは、CS2部分の、
上記メモリユニットオフセットと相関するメモリ位置に
記憶されなければならず、NCS3部分内の、同じメモ
リユニットオフセットと相関するメモリ位置の値のチェ
ックサムは、CS3部分の、上記メモリユニットオフセ
ットと相関するメモリ位置に記憶されなければならな
い。
【0041】このように、チェックサムは、従来のシス
テム15のように1つのメモリユニット43(図3)内
に記憶されるのではなく、異なるメモリユニット155
a〜155eに記憶される。その結果、チェックサム更
新は、メモリユニット155a〜155eにわたってイ
ンタリーブされることが可能である。引用をもってその
開示内容がすべて本明細書内に包含されたものとする、
「Data Storage System and Method」と題され2000
年10月30日に出願された米国特許出願第09/69
9,877号は、図8に示すように、チェックサムがメ
モリユニット155a〜155eにわたってインタリー
ブされ得るように、いかにしてシステム115を構成す
ることができるか、をより詳細に説明している。このチ
ェックサムを移動する技術は、後で詳細に説明を行う
が、従来のシステム15に関して説明したときのチェッ
クサムが同じメモリユニット43(図3)に記憶される
場合についても用いることができることに留意された
い。
【0042】チェックサムがメモリユニット155a〜
155eにいかに保持されるかをよりよく例示するため
に、メモリシステム139bが、メモリユニット155
bのNCS1部分のメモリ位置の1つにデータ値を記憶
する書込み要求を受信するものと仮定する。上述したよ
うに、NCS1部分内の1つのメモリ位置(以下、「宛
先」と呼ぶ)は、特定のメモリユニットオフセットに相
関されていなければならない。書込み要求の発生前に宛
先にすでに記憶されている値のチェックサムは、メモリ
ユニット155aのCS1部分の、同じメモリユニット
オフセットと相関するメモリ位置(以下、「チェックサ
ム位置」と呼ぶ)に記憶されていなければならない。
【0043】書込み要求に応じて、メモリコントローラ
152bは、書込み要求のデータ値(すなわち、記憶さ
れるデータ値)と宛先に既に記憶されているデータ値と
の排他的論理和をとり、その後宛先に、書込み要求のデ
ータ値を記憶する。そして、排他的論理和演算の結果
は、メモリコントローラ152bによって、チェックサ
ム位置を含むメモリシステム139aのメモリコントロ
ーラ152aを識別する第2の書込み要求で送信され
る。この場合、第2の書込み要求は、メモリシステム1
39aを識別するメモリシステム識別子と、排他的論理
和演算の結果と、宛先と相関するメモリユニットオフセ
ットと、を含む。
【0044】この書込み要求は、メモリコントローラ1
52bによって他のメモリシステム139aおよび13
9c〜139eの各々に送信される。書込み要求に応じ
て、メモリコントローラ152aは、チェックサム位置
に記憶されるチェックサムとメモリコントローラ152
bから送信される前記排他的論理和の結果との排他的論
理和をとる。そして、メモリコントローラ152aによ
って実行される排他的論理和演算の結果は、チェックサ
ム位置に記憶される。その結果、チェックサム位置のチ
ェックサムは、書込み要求に応じて宛先に記憶されるデ
ータ値に更新される。
【0045】上述したように、メモリコントローラ15
5a〜155eは、マッパ146からの書込み要求に応
じて宛先メモリ位置にデータ値を記憶する時、記憶され
るデータ値を宛先メモリ位置に既に記憶されているデー
タ値と排他的論理和をとらなければならない。そして、
この排他的論理和演算の結果は、チェックサムが更新さ
れ得るように、宛先位置に関連するチェックサムを記憶
しているメモリシステム139a〜139eへ送信され
なければならない。
【0046】いずれのメモリシステム139a〜139
eが宛先位置に関連するチェックサムを記憶しているか
を識別することを可能にするために、メモリコントロー
ラ152a〜152eは、好ましくは、図7Aおよび図
7Bに示すように、それぞれチェックサムインジケータ
161a〜161eを保持する。各チェックサムインジ
ケータ161a〜161eは、チェックサムインジケー
タ161a〜161eを有するメモリシステム139a
〜139e内の各特定のメモリ位置に対し、どのメモリ
システム139a〜139eがその特定のメモリ位置に
現在記憶されているデータ値のチェックサムを記憶して
いるかを表している。
【0047】このように、メモリコントローラ152b
が書込み要求を受信する上述した例では、メモリコント
ローラ152bによって保持されるチェックサムインジ
ケータ161bが、メモリシステム139aが宛先に関
連するチェックサムを記憶している(すなわち、宛先と
同じメモリユニットオフセットと相関するメモリ位置に
チェックサムを記憶している)ということを示していな
ければならない。したがって、メモリコントローラ15
2bは、宛先に記憶されるデータ値と宛先に既に記憶さ
れているデータ値との排他的論理和をとった後、チェッ
クサムインジケータ161bを分析することにより、他
のメモリシステム139aおよび139c〜139eの
うちのいずれが宛先に関連するチェックサムを記憶して
いるかを判断する。メモリコントローラ152bは、チ
ェックサムインジケータ161bに基づきメモリシステ
ム139aを識別し、メモリコントローラ152bによ
って実行される排他的論理和演算の結果をメモリコント
ローラ152aへ送信しなければならない。これに応じ
て、メモリコントローラ152aは、上述したように、
排他的論理和の結果に基づいて宛先に関連するチェック
サムを更新する。
【0048】チェックサムインジケータ161a〜16
1eは、種々の技術によって実施することができる。図
9に示す好ましい実施の形態では、各チェックサムイン
ジケータ161a〜161eは、異なるメモリユニット
オフセットを有する各メモリ位置に対して1つのビット
列165a〜165fが割り当てられた複数のビット列
165a〜165fとして実施される。各ビット列16
5a〜165fは、好ましくはn個のビットを有する。
ここでnは、処理システム115内のメモリシステム1
39a〜139eの数に対応する。図5に示す実施の形
態では、システム115は5つのメモリシステム139
a〜139eを含むため、各チェックサムインジケータ
161a〜161eの各ビット列165a〜165f
は、5つのアクティブビットを含まなければならない。
各ビット列165a〜165e内の各アクティブビット
は、メモリシステム139a〜139eのうちの1つに
対応する。
【0049】メモリシステム139bがマッパ146か
ら書込み要求を受信する上述した例では、チェックサム
インジケータ161bのビット列165a〜165f
は、メモリシステム139aが宛先に関連するチェック
サムを記憶していることを示すように適切に設定されな
ければならない。これに関して、ビット列165fが宛
先に相関されていると仮定する。ビット列165f内に
おいて、システム139aに対応するビットは好ましく
はアサートされ、ビット列165fのビットの残りのビ
ットは好ましくはデアサートされる。したがって、ビッ
ト列165fのどのビットがアサートされているかを判
定することにより、メモリコントローラ152bは、メ
モリシステム139aが宛先に関連するチェックサムを
記憶していることを判定することができる。このよう
に、メモリコントローラ152bは、メモリシステム1
39aが、メモリコントローラ152bによって実行さ
れる排他的論理和演算の結果に基づいて更新されなけれ
ばならないチェックサムを記憶しているということを認
識していなければならない。
【0050】チェックサムを記憶しているメモリ位置と
相関するいずれのビット列165a〜165fも、好ま
しくは、上記メモリ位置を含むメモリシステム139a
〜139eを識別する。したがって、上記例のチェック
サムインジケータ161aでは、メモリユニット155
aのチェックサム位置と相関するビット列165fは、
好ましくは、メモリシステム139a〜139eのそれ
ぞれ対応する5つのビットを含む。メモリシステム13
9aに対応するビットは、好ましくは、メモリシステム
139aが相関する位置(すなわち、チェックサム位
置)にチェックサムを記憶していることを示すようにア
サートされる。なお、チェックサム位置がチェックサム
値の代りに非チェックサム値を記憶していた場合、上記
ビットはデアサートされる。
【0051】さらに、メモリコントローラ152aは、
メモリコントローラ152bから送信される排他的論理
和の結果を受信すると、チェックサムインジケータ16
1aの上述したビット列165fを分析する際に、受信
した書込み要求が、その書込み要求に含まれるデータ値
を記憶するのではなくチェックサムを更新することを目
的とする、と判定することができる。したがって、メモ
リコントローラ152aは、受信した書込み要求に含ま
れるデータ値を記憶し他のメモリシステム139b〜1
39eのチェックサムを更新しようとする代りに、上述
した技術にしたがってチェックサム位置に記憶されたチ
ェックサムを更新する。これに関しては、メモリコント
ローラ152aが、受取った書込み要求に含まれるデー
タ値とチェックサム位置に既に記憶されているチェック
サムとの排他的論理和を取り、その後、チェックサム位
置にこの排他的論理和の結果を記憶する。
【0052】好ましい実施の形態では、チェックサムを
記憶するメモリ位置と相関するビット列165a〜16
5fはいずれも、どのメモリシステム139a〜139
eがアクティブであるかをも示す。本明細書で使用され
る「アクティブな」メモリシステムとは、システム11
5のプロセッサ142のいずれかからの要求に応じてデ
ータの記憶及び取得を行うために現在使用されているメ
モリシステム139a〜139eを指している。このよ
うに、前述の例のチェックサムインジケータ161aに
おいて、チェックサム位置と相関するビット列165f
の各ビットは、メモリシステム139a〜139eがす
べてアクティブであると仮定してアサートされている。
メモリシステム139aに対応するアサートされたビッ
トは、メモリシステム139aがビット列165fと相
関する位置にチェックサムを記憶していることを示し、
メモリシステム139b〜139eに対応するアサート
されたビットは、メモリシステム139b〜139eが
アクティブであることを示す。もしメモリシステム13
9cおよび139dがアクティブでありメモリシステム
139bが非アクティブであるなら、メモリシステム1
39a、139cおよび139dに対応しているビット
のみがアサートされなければならない。かかる例では、
上記ビット列165fを分析することにより、メモリシ
ステム139aがビット列165fと相関する位置にチ
ェックサムを記憶していること、及びメモリシステム1
39cと139dがアクティブであることが明らかとな
るはずである。
【0053】上述したように、各メモリ位置に対してビ
ット列165a〜165fを保持することによって、各
メモリコントローラ152a〜152eは、システム1
15内に記憶されているチェックサムを適当に更新する
ことも含め、マッパ146から送信される各書込み要求
を適当に処理することができる。しかしながら、どのメ
モリ位置がマッパ146からの書込み要求に応じて更新
されるべきチェックサムを記憶しているかを示すために
用いることのできる他の種々の方法および構成があるこ
と、及びどのメモリシステム139a〜139eがアク
ティブであるかを示すために用いることのできる他の種
々の方法および構成があるということ、は強調されなけ
ればならない。チェックサムの位置を示すためおよびチ
ェックサムを適当に更新するためのいかなる技術も、本
発明を実施するために十分でなければならない。
【0054】メモリシステム139a〜139eの1つ
に記憶されるデータ値が喪失されると(例えば、データ
値を記憶しているメモリシステム139a〜139eに
障害が発生した場合)、喪失したデータ値は、その喪失
したデータ値のメモリ位置に関連するチェックサムを利
用することにより、および他のアクティブなメモリシス
テム139a〜139eに記憶されているデータ値を利
用することにより、回復することができる。これに関
し、各メモリシステム139a〜139eがアクティブ
であり、メモリシステム139bに障害が発生した時に
チェックサムがメモリシステム139aの位置(「チェ
ックサム位置」)に記憶されている、と仮定する。シス
テム139bのチェックサム位置と同じメモリユニット
オフセットを有する位置に記憶されているデータ値(す
なわち、システム139bのチェックサム位置に関連す
る位置のデータ値)は、チェックサム位置のチェックサ
ムと、アクティブなメモリシステム139c〜139e
のチェックサム位置と同じメモリユニットオフセットを
有する位置に現在記憶されているデータ値との排他的論
理和をとることにより、回復することができる。
【0055】このプロセスをよりよく例示するために、
マッパ146が、システムマネージャ136から送信さ
れるコマンドに応じて喪失したデータ値を回復するよう
に構成されると仮定する。マッパ146は、どのメモリ
システム139a〜139eが喪失したデータ値を回復
するために使用することのできるチェックサムを記憶し
ているかを示すチェックサムインジケータ172を含ん
でよい。この場合、喪失したデータ値のメモリ位置に関
連するチェックサムはメモリシステム139aに記憶さ
れているため、インジケータ172は、メモリシステム
139aを識別しなければならない。喪失したデータ値
のメモリ位置に関連するチェックサムを記憶している適
当なメモリシステム139a〜139eを識別するため
に用いることのできる様々な方法がある。
【0056】例えば、各あり得るメモリユニットオフセ
ットに対し、チェックサムインジケータ172は、メモ
リシステム139a〜139eに記憶されるチェックサ
ムインジケータ161a〜161eと同様に、各メモリ
システム139a〜139eに対して1ビットを有する
ビット列(図示せず)を含んでよい。各ビット列は、異
なるメモリユニットオフセットに相関され、喪失したデ
ータ値のメモリ位置と同じメモリユニットオフセットと
相関するビット列は、好ましくは、いずれのメモリシス
テム139a〜139dが喪失したデータ値のメモリ位
置に関連するチェックサムを記憶しているかを示すため
に使用される。メモリシステム139a〜139eのい
ずれがかかるチェックサムを記憶しているかを示すため
に使用されるビット列では、上記チェックサムを記憶し
ているメモリシステム139a〜139eに対応するビ
ットは、好ましくはアサートされ、残りのビットは、好
ましくはデアサートされる。したがって、いかなる喪失
したデータ値に対しても、マッパ146は、チェックサ
ムインジケータ172を分析して、いずれのメモリシス
テム139a〜139eが喪失したデータ値のメモリ位
置に関連するチェックサムを記憶しているかを判断する
ことができる。
【0057】したがって、マッパ146がメモリシステ
ム139bに記憶されている喪失したデータ値を回復す
るように構成される上記の例では、マッパ146は、チ
ェックサムインジケータ172を分析し、メモリシステ
ム139aが喪失したデータ値のメモリ位置に関連する
チェックサムを記憶している、と判定する。これに応じ
て、マッパ146は、好ましくは、メモリシステム13
9aに対し、メモリコントローラ152aに対してメモ
リシステム139bに記憶されていた喪失したデータを
回復するよう命令するコマンドを送信する。このコマン
ドには、喪失したデータ値が記憶されていた位置のメモ
リユニットオフセットと、喪失したデータ値を記憶して
いたメモリシステム139bを識別するメモリシステム
インジケータと、が含まれる。
【0058】これに応じて、メモリコントローラ152
aは、チェックサムインジケータ161aを分析して、
他のメモリシステム139c〜139eのうちのいずれ
がアクティブであるか判定する。好ましい実施の形態に
ついて上述した技術によると、アクティブなメモリシス
テム139c〜139eの識別は、チェックサムインジ
ケータ161aを分析することにより成される。すなわ
ち、メモリコントローラ152aは、喪失したデータ値
のメモリ位置に関連するチェックサムを記憶しているチ
ェックサム位置に相関するビット列165a〜165f
を分析する。このチェックサム位置は、マッパ146か
ら受信した上述のコマンドに含まれるメモリユニットオ
フセットに相関するメモリユニット155a内の位置で
なければならない。
【0059】メモリコントローラ152aは、他のアク
ティブなメモリシステム139c〜139eを識別した
後、アクティブなメモリシステム139c〜139eの
チェックサム位置と同じメモリユニットオフセットに対
応する位置におけるデータ値の取得を要求する。そし
て、取得されたデータ値は、メモリシステム139aの
チェックサム位置に記憶されるチェックサムと排他的論
理和がとられる。この排他的論理和演算の結果は、喪失
したデータ値になるはずである。喪失したデータ値を回
復した後、この喪失データは、マッパ146に送信され
るか、他のメモリ位置に記憶されるか、または望まれる
ように他の方法で処理されてよい。
【0060】なお、喪失したデータ値を回復するプロセ
スを遅延させまたは行わないようにすることが望ましい
状況がある。例えば、あるメモリ位置から別のメモリ位
置へチェックサムを移動する場合、チェックサムが宛先
位置に安全に記憶されるまでチェックサムを利用するあ
らゆるデータ回復プロセスを遅延させることが望ましい
場合がある。このため、マッパ146は、好ましくは、
回復プロセスをイネーブルおよびディスエーブルさせる
回復インジケータ176を含む。回復インジケータ17
6は、メモリシステム139a〜139e内の各データ
メモリ位置に対して1ビットを含むビット列(図示せ
ず)であってよい。メモリシステム139a〜139e
に記憶されるチェックサムの1つを利用する回復プロセ
スが遅延されまたは行われないようにしなければならな
い場合、このチェックサムの位置に対応する回復インジ
ケータ176のビットは、あらゆるかかる回復プロセス
がディスエーブルされていることを示すようにアサート
される。前述のチェックサムがデータ回復プロセスに使
用されてよい状況になると、前記ビットは、いかなるか
かるプロセスもイネーブルされていることを示すように
デアサートされる。
【0061】チェックサムをあるメモリ位置から別のメ
モリ位置へ移動することが望ましい種々の状況がある。
例えば、従来技術の部分で述べたように、メモリシステ
ム139a〜139eのうちの1つのメモリユニット1
55a〜155eのうちの1つを取除くことが望ましい
場合がある。したがって、取除かれるメモリユニット1
55a〜155eの内容は、他のメモリユニット155
a〜155eに移動されなければならない。引用をもっ
てその開示内容がすべて本明細書内に包含されたものと
する、「System and Method for Dynamically Realloca
ting Memory ina Computer System」と題され2000
年9月28日に出願された米国特許出願第09/67
5,021号には、あるメモリ位置から別のメモリ位置
へデータ値を動的に移動するために用いることのできる
技術が記載されている。本明細書で使用しているよう
に、「動的」という用語は、1つ以上のコンピュータア
プリケーションが1つ以上の処理ユニット137a〜1
37eで同時に実行され且つ1つ以上のメモリシステム
139a〜139eからデータ値にアクセスしている間
に、コンピュータシステム112において行われること
を指すと定義される。したがって、上記出願には、デー
タがメモリシステム139a〜139eに記憶されるま
たはメモリシステム139a〜139eから取得されて
いる時に、メモリシステム139a〜139e内のメモ
リを再配置するために使用することのできる技術が記載
されている。
【0062】データをバックアップするためにチェック
サムを保持するシステム、たとえば処理システム115
のようなシステムでは、動的チェックサム移動中に発生
しているデータ記憶動作がデータ誤りを生じさせないこ
とを保証するよう注意しなければならない。これに関し
て、チェックサムがメモリシステム139aからメモリ
システム139eに移動されているものと仮定する。各
特定のチェックサム値は、その特定のチェックサム値の
チェックサムメモリ位置と同じメモリユニットオフセッ
トと相関するメモリ位置に記憶されるデータ値のチェッ
クサムを表さなければならないため、移動しているチェ
ックサムは、メモリシステム139eの、チェックサム
が移動される元のメモリシステム139aのチェックサ
ムメモリ位置と同じメモリユニットオフセットと相関す
る位置に記憶されなければならない。
【0063】チェックサムが移動されている間に、他の
メモリシステム139b〜139dのいずれかに対する
データ記憶動作によって、この移動中のチェックサムを
更新する書込み要求が発生する可能性がある。例えば、
メモリシステム139bが、メモリユニット155b
の、移動されているチェックサムを記憶しているチェッ
クサムソース位置と同じメモリユニットオフセットを有
する位置に、データ値を書込む要求を、受取る場合があ
る。これに応じて、メモリコントローラ152bは、メ
モリシステム139aを識別する書込み要求を送信する
ことにより移動されているチェックサムを更新しようと
する場合があり、かかる書込み要求が、チェックサムが
メモリシステム139aから読出された直後にメモリシ
ステム139aにより受取られる場合がある。かかる場
合、メモリシステム139aのすでに読み出されたチェ
ックサムが適当に更新されることを保証するために追加
のステップがとられない限り、上記書込み要求に基づい
てチェックサムが更新されない可能性がある。
【0064】前述の問題を解決する試みとして、メモリ
システム139bは、前記書き込み要求において、チェ
ックサム移動元であるソースメモリシステム139aを
識別するのではなく、宛先メモリシステム139eを識
別するように、構成することができる。しかしながら、
この書き込み要求は、チェックサムがメモリシステム1
39eのその宛先位置に実際に書込まれる前に、宛先メ
モリシステム139eによって受信されてしまう可能性
がある。したがって、チェックサムが実際にメモリシス
テム139eに書込まれるまでこの書込み要求が満たさ
れないことを保証するステップがとられない限り、チェ
ックサムが適当に更新されない可能性がある。
【0065】以下では、移動されているチェックサムに
対するチェックサム更新が適当に満足されることを保証
しながら、チェックサムをシステム115内へ動的に移
動することができる方法について、詳細に説明する。以
下を説明するために、メモリユニット155aのあるメ
モリ位置(以下、「チェックサムソース位置」と呼ぶ)
に格納されているチェックサムが、メモリユニット15
5eのメモリ位置(以下、「チェックサム宛先位置」と
呼ぶ)に動的へ移動される、と仮定する。また、例示の
目的で、システムマネージャ136(図4)が、システ
ム112の適当なコンポーネントに対しコマンドを発行
することによりチェックサム移動動作を制御するように
構成される、と仮定する。なお、システムマネージャ1
36を実施するために利用するハードウェアおよび/ま
たはソフトウェアは、処理システム115内部を含め、
システム112内のいかなる位置に配置されてもよい。
さらに、チェックサム移動動作を制御する、本明細書で
明示したもの以外のあらゆる方法も、本発明の原理から
逸脱することなく用いることができる。
【0066】図10は、チェックサムをあるメモリ位置
から別のメモリ位置へ移動する際のシステム112のア
ーキテクチャおよび機能を示す。図10のブロック21
1に示すように、メモリユニット155eのチェックサ
ム宛先位置は、好ましくは、0の値をチェックサム宛先
位置に格納することによって初期化される。これに関し
て、システムマネージャ136は、メモリコントローラ
152eに対し、チェックサム宛先位置に0の値を書込
むよう命令するコマンドを送信することができる。この
時点で、チェックサム宛先位置はチェックサム集合の一
部ではなくなるため、現在のチェックサムソース位置が
チェックサム宛先位置の初期化により更新されることは
ない。
【0067】なお、本明細書においていずれかのメモリ
システム139a〜139eまたはマッパ146へ送信
されていると述べられるあらゆるコマンドの送信は、種
々の技術によって実施することができる。例えば、プロ
セッサ142を利用せずに、制御線(図示せず)がメモ
リシステム139a〜139eまたはマッパ146へ直
接これらのコマンドを送信してもよい。別な方法として
は、システムマネージャ136は、実行時にメモリシス
テム139a〜139eまたはマッパ146に所望の機
能を実行するよう命令する1つ以上の命令を、1つ以上
のプロセッサ142へ送信することもできる。例えば、
チェックサム宛先位置を初期化するようメモリコントロ
ーラ152eに命令するために、システムマネージャ1
36は、実行時にチェックサム宛先位置に0の値を格納
する格納要求を生成する命令を、プロセッサ142へ送
信することができる。そして、この格納要求は本明細書
において上述した技術にしたがって処理され、メモリコ
ントローラ152eにチェックサム宛先位置を初期化さ
せる。
【0068】ブロック216に示すように、チェックサ
ム宛先位置のメモリシステム139eのチェックサムイ
ンジケータ161eは、チェックサム宛先位置がチェッ
クサム値を記憶していることを示すように、および他の
メモリシステム139a〜139eのいずれがアクティ
ブであるかを示すように適当に更新されなければならな
い。この例では、メモリシステム139bおよび139
cがアクティブであり、メモリシステム139dが非ア
クティブであると仮定する。なお、メモリシステム13
9aは、移動されるチェックサムを現在記憶しているた
め、アクティブでなければならない。また、チェックサ
ムインジケータ161eのビット列165fが、チェッ
クサム宛先位置と相関していると仮定する。このため、
チェックサムインジケータ161eのビット列165f
は、メモリシステム139a、139b、139cおよ
び139eに対応するビットがアサートされるように、
およびメモリシステム139dに対応するビットがデア
サートされるように、セットされなければならない。こ
れは、システムマネージャ136からメモリコントロー
ラ152dへ適当なコマンドを送信することによって行
うことができる。
【0069】後により詳細に説明するブロック218お
よび222を実施している間、チェックサムソース位置
からチェックサム宛先位置に移動されているチェックサ
ムは、データの回復をイネーブルにする必要が生じたと
きに、まだ更新されていない可能性がある。よって、ブ
ロック225において、移動されているチェックサムを
喪失データの回復に利用する試みは、ディスエーブルさ
れることが望ましい。好ましい実施の形態において、前
述のことは、マッパ146の回復インジケータ176
を、メモリシステム139aのソースチェックサム位置
に記憶されるデータを利用するいかなるデータ回復プロ
セスもディスエーブルされていることを示すように設定
することにより達成される。より詳細には、チェックサ
ムソース位置に対応する回復インジケータ176のデー
タビットがアサートされる。それゆえ、ブロック218
および222を実施してる間は、移動されているチェッ
クサムに基づいて喪失データを回復するいかなる試みも
ディスエーブルされるはずである。
【0070】これに関して、ブロック218または22
2の実行中に、ソースチェックサム位置と同じメモリユ
ニットオフセットに相関するメモリ位置の喪失データ値
を回復する試みが発生するものと仮定する。喪失データ
値を回復するための本明細書において上述した技術にし
たがい、マッパ146のチェックサムインジケータ17
2が分析され、喪失データ値のチェックサムが記憶され
ている場所が判定されなければならない。この例では、
チェックサムインジケータ172は、メモリシステム1
39aがチェックサムを記憶していることを示さなけれ
ばならない。よって、喪失データ値を回復する試みがな
される前に、回復インジケータ176が分析され、喪失
データ値を回復するいずれかの試みがイネーブルされて
いるかどうか判定されなければならない。ブロック22
5において、回復インジケータ176は、このような試
みがディスエーブルされていることを示すように設定さ
れているため、この試みは行われないはずである。この
試みは、後に再試行されてよい。
【0071】ブロック225において回復インジケータ
176が適当にセットされると、ブロック218におい
て、アクティブなメモリシステム139a〜139cの
チェックサムインジケータ161a〜161cは、チェ
ックサム宛先位置のメモリシステム139eがチェック
サム宛先位置と同じメモリユニットオフセットと相関す
るメモリ位置に対するチェックサムを記憶していること
を示すように設定される。各チェックサムインジケータ
161a〜161cのビット列165fが、チェックサ
ム宛先位置と同じメモリユニットオフセットを有するシ
ステム139a〜139cのメモリ位置とそれぞれ相関
すると仮定する。したがって、好ましい実施の形態で
は、ブロック218において、チェックサムインジケー
タ161a〜161cは、チェックサムインジケータ1
61a〜161cのビット列165fのメモリシステム
139eに対応するビットをアサートすることにより、
および上記ビット列165fの残りのビットをデアサー
トすることにより、更新される。ビット列165fは、
コマンドをシステムマネージャ136から各メモリコン
トローラ152a〜152eへ送信することにより、ま
たは他の適当な技術により、設定することができる。
【0072】ブロック218においてチェックサムイン
ジケータ161a〜161cが適当に設定されている間
に、移動されているチェックサムに対するチェックサム
更新が発生する場合がある。これらのチェックサム更新
は、ブロック218の進行状況に基づいて、チェックサ
ム宛先位置またはチェックサムソース位置に記憶される
値を更新することができる。例えば、第1のデータ値お
よび第2のデータ値が、メモリシステム139bおよび
139cの、チェックサムソースおよび宛先位置と同じ
メモリユニットオフセットと相関する位置にそれぞれ記
憶されると仮定する。また、ブロック218においてメ
モリシステム139bのチェックサムインジケータ16
1bは更新されているが、ブロック218においてメモ
リシステム139cのチェックサムインジケータ161
cはまだ更新されていないとも仮定する。言換えれば、
ブロック218はまだ完了していない。
【0073】第1のデータ値をメモリユニット155b
に記憶する場合、メモリコントローラ152bは、その
チェックサムインジケータ161bを分析して、メモリ
システム139eが第1のデータ値に基づいて更新され
るべきであるチェックサムを記憶していると判断する。
これに関し、チェックサムインジケータ161bのビッ
ト列165fのメモリシステム139eに対応するビッ
トがアサートされ、上記ビット列165fの残りのビッ
トがデアサートされる。このため、メモリコントローラ
152bは、第1のデータ値をその第1のデータ値の宛
先に既に記憶されているデータ値と排他的論理和をと
り、この排他的論理和演算の結果を含み且つメモリシス
テム139eを識別する書込み要求を送信する。この要
求に応じて、メモリコントローラ152eは、要求に含
まれる結果とチェックサム宛先位置に現在記憶されてい
るデータ値との排他的論理和をとらなければならず、メ
モリコントローラ152eによって実行される排他的論
理和演算の結果をチェックサム宛先位置に記憶しなけれ
ばならない。
【0074】第2のデータ値をメモリユニット155c
に記憶する場合、メモリコントローラ152cは、その
チェックサムインジケータ161cを分析して、メモリ
システム139aが第2のデータ値に基づいて更新され
るべきであるチェックサムを記憶していると判断する。
これに関し、チェックサムインジケータ161aのビッ
ト列165fのメモリシステム139aに対応するビッ
トがアサートされ、上記ビット列165fの残りのビッ
トがデアサートされる。このため、メモリコントローラ
152cは、第2のデータ値をその第2のデータ値の宛
先に既に記憶されているデータ値と排他的論理和をと
り、この排他的論理和演算の結果を含み且つメモリシス
テム139aを識別する書込み要求を送信する。この要
求に応じて、メモリコントローラ152aは、要求に含
まれる結果とチェックサム宛先位置に現在記憶されてい
るデータ値との排他的論理和をとらなければならず、メ
モリコントローラ152aによって実行される排他的論
理和演算の結果をチェックサム宛先位置に記憶しなけれ
ばならない。
【0075】この時点で、チェックサムソース位置に現
在記憶されている値も、チェックサム宛先位置に現在記
憶されている値も、データ値を回復するためには十分で
はない。なぜなら、いずれの値もメモリシステム139
bおよび139cに対する完全なチェックサム表現では
ないためである。しかしながら、メモリシステム139
bおよび139cのチェックサムソースおよび宛先位置
と同じメモリユニットオフセットと相関するメモリ位置
のデータ値を回復しようとする試みは、ブロック225
においてディスエーブルされていなければならないた
め、これによっていかなる誤りも生じないはずである。
また、失われたチェックサム情報が無いという点にも留
意してほしい。適正なチェックサムは、チェックサムソ
ース位置の値とチェックサム宛先位置の値との排他的論
理和をとることによって生成することができる。
【0076】ブロック232の完了後、後により詳細に
述べるように、ブロック218および222において、
移動されているチェックサムを更新しようとする他の試
みが発生していないと仮定して、アクティブなメモリシ
ステム139bおよび139cに記憶されている第1お
よび第2のデータ値の完全なチェックサム表現は、チェ
ックサム宛先位置に記憶されなければならない。このた
め、アクティブなメモリシステム139bおよび139
cに記憶される第1および第2のデータ値を回復しよう
とする試みは、かかる試みがデータ値を回復するために
チェックサム宛先位置に記憶されている完全なチェック
サム表現を利用することを保証できるならば、ブロック
232の後にイネーブルすることができる。
【0077】ブロック218の完了後、ブロック222
に示すように、チェックサムソース位置に記憶されてい
る値は、チェックサム宛先位置に記憶されている値との
排他的論理和がとられる。そして、この排他的論理和演
算の結果は、チェックサム宛先位置に記憶される。上記
のことは、メモリコントローラ152aにチェックサム
ソース位置のデータを取得させ、この取得した値をメモ
リシステム139eへ送信させる命令を、メモリコント
ローラ152eに上述の機能を実行させるコマンドもし
くは要求の際に、システムマネージャ136からメモリ
システム139aへ送信することにより達成することが
できる。このタスクを実現する単純な機構は、ソースチ
ェックサム位置に、チェックサムインジケータ161a
のビット列165fで識別される宛先チェックサム位置
を、データ位置としてマークすることであろう。すべて
がゼロであるデータの書込みは、通常のチェックサム書
込み手順を用いて、ソースチェックサム情報と宛先チェ
ックサム情報との排他的論理和をとることで行われる。
【0078】ブロック222の完了後、アクティブなメ
モリシステム139bおよび139cの、チェックサム
宛先位置と同じメモリユニットオフセットと相関する位
置に記憶されているデータ値の完全なチェックサム表現
が、メモリシステム139eのチェックサム宛先位置に
記憶されるはずである。したがって、メモリシステム1
39bおよび139cに記憶される上記データ値のいず
れかを回復しようとする試みは、かかる試みがチェック
サム宛先位置に記憶されているチェックサムを利用する
場合、イネーブルされてよい。なお、かかる試みをイネ
ーブルする前に、チェックサムインジケータ161eの
ビット列165fのメモリシステム139aに対応する
ビット(すなわち、チェックサム宛先位置と相関するビ
ット列165f)は、メモリシステム139aがアクテ
ィブでないことを示すようにデアサートされなければな
らない。
【0079】ブロック235において、マッパ146の
チェックサムインジケータ172は、メモリシステム1
39bおよび139cの上記データ値のチェックサムが
メモリシステム139eに記憶されていることを示すよ
うに更新される。好ましい例では、これは、チェックサ
ム宛先位置と同じメモリユニットオフセットと相関する
ビット列のメモリシステム139eに対応するビットを
アサートすることにより、およびビット列の残りのビッ
トをデアサートすることにより、達成される。ブロック
235は、メモリシステム139bおよび139cに記
憶されている上記データ値のうちの1つを回復しようと
するいかなる試みも、チェックサムソース位置の換わり
にチェックサム宛先位置に記憶されているチェックサム
を利用することを保証する。
【0080】また、ブロック232において、回復イン
ジケータ176が、チェックサム宛先位置に記憶されて
いるチェックサムを利用しようとするいかなるデータ回
復の試みもイネーブルされることを保証するように更新
される。好ましい実施の形態では、これは、チェックサ
ム宛先位置に対応するビットをデアサートすることによ
って達成される。したがって、マッパ146は、メモリ
システム139bまたは139cの、チェックサム宛先
位置と同じメモリユニットと相関する位置に記憶される
データ値のうちの1つを回復する命令を受取ると、まず
マッパ146のチェックサムインジケータ172を分析
して、いずれのメモリシステム139a〜139eが回
復されるデータ値のチェックサムを記憶しているか判定
する。チェックサムインジケータ172によって、マッ
パ146は、メモリシステム139eがチェックサムを
記憶していると判定するはずである。その結果、マッパ
146は、回復インジケータ176を分析して、データ
回復を行うことができるか否かを判断する。チェックサ
ム宛先位置と相関するビットがデアサートされているた
め、マッパ146は、データ値を回復を続行することが
できる。
【0081】これに関して、マッパ146は、チェック
サム宛先位置に記憶されているチェックサムに基づいて
メモリコントローラ152eにデータ値を回復させるよ
うに命令するコマンドを、メモリシステム139eへ送
信する。メモリコントローラ152eは、メモリシステ
ム139eのチェックサムインジケータ161eを分析
して、メモリシステム139bおよび139cのみが現
在アクティブな他のメモリシステムであると判定する。
したがって、メモリシステム139bに記憶されている
データ値を回復するために、メモリコントローラ152
eは、チェックサム宛先位置のデータ値と、メモリシス
テム139cのチェックサム宛先位置と同じメモリオフ
セットと相関する位置に記憶されているデータ値との、
排他的論理和をとる。この排他的論理和演算の結果は、
回復されたデータ値、言換えれば、メモリシステム13
9bの、チェックサム宛先位置と同じメモリユニットオ
フセットと相関される位置に記憶されなければならない
データ値になるはずである。
【0082】本発明の上述した実施の形態、特にあらゆ
る「好ましい」実施の形態は、単に考え得る実施の例で
あり、単に本発明の原理を分かりやすく理解するための
説明にすぎない、ということは強調されなければならな
い。本発明の思想および原理から大きく逸脱することな
く、様々な変形および変更を本発明の上述した実施の形
態に対して行うことができる。かかる変更および変形
は、すべて本明細書の開示及び本発明の範囲内に含ま
れ、特許請求の範囲によって保護されることが意図され
ている。
【0083】以下においては、本発明の種々の構成要件
の組み合わせからなる例示的な実施態様を示す。 1.チェックサムを動的に移動させるシステム(11
2)であって、第1のメモリシステム(139a〜13
9e)にデータを記憶するため及び前記第1のメモリシ
ステムからデータを取得するための第1のメモリコント
ローラ(152a〜152e)を有する第1のメモリシ
ステム(139a〜139e)であって、前記第1のメ
モリシステム(139a〜139e)がチェックサムイ
ンジケータ(161a〜161e)と相関する第1のメ
モリ位置を有し、前記チェックサムインジケータ(16
1a〜161e)がチェックサムメモリ位置を含む他の
メモリシステム(139a〜139e)を識別し、前記
チェックサムメモリ位置が、前記第1のメモリ位置に記
憶されているデータ値と相関するチェックサムを記憶す
る、前記第1のメモリシステム(139a〜139e)
と、第2のメモリシステム(139a〜139e)にデ
ータを記憶するため及び前記第2のメモリシステムから
データを取得するための第2のメモリコントローラ(1
52a〜152e)を有する前記第2のメモリシステム
(139a〜139e)と、前記チェックサムメモリ位
置から前記第2のメモリシステム(139a〜139
e)内の宛先メモリ位置へ前記チェックサムを移動する
ように構成され、さらに、前記他のメモリシステム(1
39a〜139e)に換えて前記第2のメモリシステム
(139a〜139e)を識別するように前記チェック
サムインジケータ(161a〜161e)を更新するよ
うに構成され、さらに、前記チェックサムメモリ位置か
らデータ値を取得し、前記チェックサムが前記宛先メモ
リ位置へ移動された後で、前記チェックサムメモリ位置
から取得される前記データ値を用いて前記チェックサム
を更新するように構成された、システムマネージャ(1
36)と、からなるシステム。 2.前記システムマネージャ(136)はさらに、前記
チェックサムを前記チェックサムメモリ位置から前記宛
先メモリ位置へ移動する前は、前記チェックサムに基づ
くデータ回復をディスエーブルし、前記チェックサムを
前記チェックサムメモリ位置から取得される前記データ
値を用いて更新した後は、前記チェックサムに基づくデ
ータ回復をイネーブルにするように構成される、項番1
のシステム(112)。 3.前記第1のメモリコントローラ(152a〜152
e)は、前記チェックサムインジケータ(161a〜1
61e)が前記システムマネージャ(136)によって
更新される前は、前記チェックサムインジケータ(16
1a〜161e)に基づいて、前記第1のメモリ位置へ
データ値を書込む書込み要求に応じて前記他のメモリシ
ステム(139a〜139e)を識別する要求を送信
し、前記チェックサムインジケータ(161a〜161
e)が前記システムマネージャ(136)によって更新
された後は、前記チェックサムインジケータ(161a
〜161e)に基づいて、前記第1のメモリ位置へデー
タ値を書込む書込み要求に応じて前記第2のメモリシス
テム(139a〜139e)を識別する要求を送信する
ように構成される、項番1のシステム。 4.チェックサムを動的に移動させるシステム(11
2)であって、複数のメモリシステム(139a〜13
9e)の各々が、メモリユニット(155a〜155
e)と、前記メモリユニット(155a〜155e)へ
データを記憶するため及び前記メモリユニット(155
a〜155e)からデータを取得するためのメモリコン
トローラ(152a〜152e)とを有し、各々の前記
メモリシステム(139a〜139e)が、特定のメモ
リユニットオフセット値と相関し且つ複数のチェックサ
ムインジケータ(161a〜161e)のうち1つと相
関するメモリ位置を有し、各々の前記チェックサムイン
ジケータ(161a〜161e)が、前記特定のメモリ
ユニットオフセット値と相関するチェックサムメモリ位
置にチェックサムを記憶しているメモリシステム(13
9a〜139e)を識別するように構成される、前記複
数のメモリシステム(139a〜139e)と、前記チ
ェックサムメモリ位置から前記特定のメモリユニットオ
フセット値と相関する宛先メモリ位置へチェックサムを
移動し、さらに、前記宛先メモリ位置の前記メモリシス
テムを識別するため各々の前記チェックサムインジケー
タ(161a〜161e)を更新し、さらに、各々の前
記チェックサムインジケータ(161a〜161e)を
更新した後、前記宛先メモリ位置に記憶される前記チェ
ックサムを、前記チェックサムメモリ位置から取得した
データ値を用いて更新するように構成される、システム
マネージャ(136)と、からなるシステム(11
2)。 5.前記システムマネージャ(136)が、前記チェッ
クサムメモリ位置から前記宛先メモリ位置へ前記チェッ
クサムを移動させる前は、前記チェックサムに基づくデ
ータ回復をディスエーブルするように構成され、かつ、
各々の前記チェックサムインジケータ(161a〜16
1e)が前記宛先メモリ位置の前記メモリシステム(1
39a〜139e)を識別するように各々の前記チェッ
クサムインジケータ(161a〜161e)を更新した
後は、前記チェックサムインジケータに基づくデータ回
復をイネーブルするように構成される、項番4のシステ
ム。 6.チェックサムを動的に移動させる方法であって、複
数のメモリシステム(139a〜139e)を設けるス
テップと、前記メモリシステム(139a〜139e)
のうち1つのメモリシステムの、あるメモリ位置にデー
タ値を記憶するステップと、他のメモリシステム(13
9a〜139e)の他のメモリ位置にチェックサムを保
持するステップと、前記1つのメモリシステムの前記メ
モリ位置と相関し、前記他のメモリシステム9139a
〜139e)を識別するチェックサムインジケータ(1
61a〜161e)を保持するステップと、前記記憶す
るステップに応答して前記チェックサムインジケータ
(161a〜161e)を分析するステップと、前記記
憶するステップに応答し、前記分析するステップに基づ
いて、前記チェックサムを更新するステップと、前記チ
ェックサムを宛先メモリ位置へ記憶するステップと、前
記チェックサムインジケータ(161a〜161e)が
前記宛先メモリ位置のメモリシステム(139a〜13
9e)を識別するように、前記チェックサムインジケー
タ(161a〜161e)を更新するステップと、前記
宛先メモリ位置に記憶された前記チェックサムを、前記
他のメモリシステム(139a〜139e)の前記他の
メモリ位置から取得したデータ値を用いて更新するステ
ップと、からなる方法。 7.各々の前記メモリ位置を、同じメモリユニットオフ
セット値に相関させるステップをさらに含む項番6の方
法。 8.前記チェックサムを記憶するステップの前に前記チ
ェックサムに基づくデータ回復をディスエーブルするス
テップと、前記チェックサムに基づくデータ回復をイネ
ーブルするステップと、前記イネーブルするステップが
前記チェックサムを更新するステップの直後に行われる
ことを保証するステップと、をさらに含む項番6の方
法。 9.チェックサムを動的に移動させる方法であって、各
々が、メモリユニット(155)と、前記メモリユニッ
ト(155)にデータを記憶するため及び前記メモリユ
ニット(155)からデータを取得するためのメモリコ
ントローラ(152a〜152e)とを有する、複数の
メモリシステム(139a〜139e)を設けるステッ
プと、前記メモリシステム(139a〜139e)から
のメモリ位置を同じメモリユニットオフセット値に相関
させるステップと、チェックサムインジケータ(161
a〜161e)を前記メモリユニットオフセット値と相
関する前記メモリ位置に相関させ、各々の前記チェック
サムインジケータ(161a〜161e)が前記メモリ
システム(139a〜139e)のうち特定の1つを識
別するようにするステップと、前記特定の1つのメモリ
システム(139a〜139e)の前記メモリユニット
オフセット値と相関するチェックサムメモリ位置に、チ
ェックサムを記憶するステップと、他のメモリシステム
(139a〜139e)の前記メモリユニットオフセッ
ト値と相関する宛先メモリ位置に前記チェックサムを記
憶するステップと、各々の前記チェックサムインジケー
タ(161a〜161e)が前記他のメモリシステムを
識別するように、各々の前記チェックサムインジケータ
(161a〜161e)を更新するステップと、前記宛
先メモリ位置に記憶された前記チェックサムを、前記チ
ェックサムメモリ位置からのデータ値を用いて更新する
ステップと、からなる方法。 10.前記チェックサムを記憶するステップの前は前記
チェックサムに基づくデータ回復をディスエーブルする
ステップと、前記チェックサムに基づくデータ回復をイ
ネーブルするステップと、前記イネーブルするステップ
が前記チェックサムを更新するステップの直後に発生す
ることを保証するステップと、をさらに含む、項番9の
方法。
【0084】
【発明の効果】上述の技術を実施することにより、メモ
リシステム139a〜139e内に記憶されるチェック
サムを、データ誤りをもたらすことなく別のメモリ位置
へ動的に移動させることができる。チェックサム移動中
にプロセッサ142上のアプリケーションの実行を継続
できるようにすることによって、システム115の全体
の効率が向上している。もしメモリコントローラが移動
プロセス中に故障しても、データを回復することができ
ない時間は極めて短い。
【図面の簡単な説明】
【図1】従来の処理システムを示すブロック図である。
【図2】図1に示す処理ユニットの、より詳細な図を示
すブロック図である。
【図3】図1に示すメモリシステムの、より詳細な図を
示すブロック図である。
【図4】本発明の原理を実施するために用いられるコン
ピュータシステムを示すブロック図である。
【図5】図4に示す処理システムの、より詳細な図を示
すブロック図である。
【図6】図5に示す処理ユニットの、より詳細な図を示
すブロック図である。
【図7A】図5に示すメモリシステムの、より詳細な図
を示すブロック図である。
【図7B】図5に示すメモリシステムの、より詳細な図
を示すブロック図である。
【図8】図7Aおよび図7Bに示すメモリユニットの、
より詳細な図を示すブロック図である。
【図9】図7Aおよび図7Bに示すチェックサムインジ
ケータのうちいずれか1つの、より詳細な図を示すブロ
ック図である。
【図10】チェックサムを別のメモリ位置へ移動する際
の、図4に示すコンピュータシステムのアーキテクチャ
および機能を示すフローチャートである。
【符号の説明】
112…コンピュータシステム 136…システムマネージャ 139a〜139e…メモリシステム 152a〜152e…メモリコントローラ 155a〜155e…メモリユニット 161a〜161e…チェックサムインジケータ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 グレゴリー・エス・パルマー アメリカ合衆国テキサス州75025,プラノ, メゾン・ドライブ・3012 (72)発明者 ポール・エフ・ボーゲル アメリカ合衆国テキサス州75044,ガーラ ンド,ブライアー・オークス・ドライブ・ 3350 Fターム(参考) 5B001 AA14 AB01 AD03 5B018 GA02 HA13 KA15

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】チェックサムを動的に移動させるシステム
    (112)であって、 第1のメモリシステム(139a〜139e)にデータ
    を記憶するため及び前記第1のメモリシステムからデー
    タを取得するための第1のメモリコントローラ(152
    a〜152e)を有する第1のメモリシステム(139
    a〜139e)であって、前記第1のメモリシステム
    (139a〜139e)がチェックサムインジケータ
    (161a〜161e)と相関する第1のメモリ位置を
    有し、前記チェックサムインジケータ(161a〜16
    1e)がチェックサムメモリ位置を含む他のメモリシス
    テム(139a〜139e)を識別し、前記チェックサ
    ムメモリ位置が、前記第1のメモリ位置に記憶されてい
    るデータ値と相関するチェックサムを記憶する、前記第
    1のメモリシステム(139a〜139e)と、 第2のメモリシステム(139a〜139e)にデータ
    を記憶するため及び前記第2のメモリシステムからデー
    タを取得するための第2のメモリコントローラ(152
    a〜152e)を有する前記第2のメモリシステム(1
    39a〜139e)と、 前記チェックサムメモリ位置から前記第2のメモリシス
    テム(139a〜139e)内の宛先メモリ位置へ前記
    チェックサムを移動するように構成され、さらに、前記
    他のメモリシステム(139a〜139e)に換えて前
    記第2のメモリシステム(139a〜139e)を識別
    するように前記チェックサムインジケータ(161a〜
    161e)を更新するように構成され、さらに、前記チ
    ェックサムメモリ位置からデータ値を取得し、いったん
    前記チェックサムが前記宛先メモリ位置へ移動された後
    で、前記チェックサムメモリ位置から取得される前記デ
    ータ値を用いて前記チェックサムを更新するように構成
    される、システムマネージャ(136)と、 からなるシステム。
JP2001377503A 2000-12-15 2001-12-11 チェックサムを異なるメモリ位置へ動的に移動させるシステムおよび方法 Pending JP2002244933A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/738,697 US6490668B2 (en) 2000-12-15 2000-12-15 System and method for dynamically moving checksums to different memory locations
US09/738697 2000-12-15

Publications (2)

Publication Number Publication Date
JP2002244933A true JP2002244933A (ja) 2002-08-30
JP2002244933A5 JP2002244933A5 (ja) 2005-03-17

Family

ID=24969104

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001377503A Pending JP2002244933A (ja) 2000-12-15 2001-12-11 チェックサムを異なるメモリ位置へ動的に移動させるシステムおよび方法

Country Status (2)

Country Link
US (2) US6490668B2 (ja)
JP (1) JP2002244933A (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6665830B2 (en) * 2001-01-31 2003-12-16 Hewlett-Packard Development Company, L.P. System and method for building a checksum
JP4544901B2 (ja) * 2004-04-19 2010-09-15 株式会社日立製作所 記憶制御システム及びブート制御システム
US7284138B2 (en) * 2004-12-02 2007-10-16 International Business Machines Corporation Deep power saving by disabling clock distribution without separate clock distribution for power management logic
US8627017B2 (en) 2008-12-30 2014-01-07 Intel Corporation Read and write monitoring attributes in transactional memory (TM) systems
US9785462B2 (en) 2008-12-30 2017-10-10 Intel Corporation Registering a user-handler in hardware for transactional memory event handling
US8627014B2 (en) 2008-12-30 2014-01-07 Intel Corporation Memory model for hardware attributes within a transactional memory system
JP2010231650A (ja) * 2009-03-27 2010-10-14 Fujitsu Ltd 端末装置、データ提供システム、データ提供方法及びコンピュータプログラム
RU2448361C2 (ru) * 2010-07-01 2012-04-20 Андрей Рюрикович Федоров Способ восстановления записей в запоминающем устройстве, система для его осуществления и машиночитаемый носитель
KR20130021633A (ko) * 2011-08-23 2013-03-06 삼성전자주식회사 오류정정부호를 이용한 데이터의 은닉과 검출 방법 및 장치
KR101334017B1 (ko) * 2012-06-29 2013-12-12 주식회사 만도 차량 네트워크의 메시지 무결성 체크 시스템 및 방법
US9698825B2 (en) 2014-10-22 2017-07-04 Quest Software Inc. Fast update of data packet checksums
FR3028376B1 (fr) * 2014-11-07 2018-01-12 Safran Electronics & Defense Sas Procede de detection de pixels defectueux.
US10440299B2 (en) * 2015-09-04 2019-10-08 Apple Inc. Correcting pixel defects based on defect history in an image processing pipeline
US10509666B2 (en) * 2017-06-29 2019-12-17 Ati Technologies Ulc Register partition and protection for virtualized processing device
US11829240B2 (en) * 2022-01-06 2023-11-28 Red Hat, Inc. Preventing duplication of files in a storage device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6421652A (en) * 1987-07-02 1989-01-25 Ibm Memory
JPH07110776A (ja) * 1990-04-16 1995-04-25 Internatl Business Mach Corp <Ibm> 並列計算システムにおける冗長パリティ保護方法
JPH0887424A (ja) * 1994-09-16 1996-04-02 Toshiba Corp 電子計算機
JP2000010738A (ja) * 1998-06-17 2000-01-14 Toshiba Corp ディスクアレイシステム、同システムに適用される記憶容量拡張方法および記録媒体

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59157887A (ja) 1983-02-28 1984-09-07 Hitachi Ltd 情報処理装置
US5230045A (en) 1986-11-12 1993-07-20 Xerox Corporation Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus
US5446661A (en) * 1993-04-15 1995-08-29 Automotive Systems Laboratory, Inc. Adjustable crash discrimination system with occupant position detection
US5446691A (en) 1994-03-15 1995-08-29 Shablamm! Computer Inc. Interleave technique for accessing digital memory
US5548788A (en) * 1994-10-27 1996-08-20 Emc Corporation Disk controller having host processor controls the time for transferring data to disk drive by modifying contents of the memory to indicate data is stored in the memory
US5761695A (en) 1995-09-19 1998-06-02 Hitachi, Ltd. Cache memory control method and apparatus, and method and apparatus for controlling memory capable of interleave control
US5915265A (en) * 1995-12-22 1999-06-22 Intel Corporation Method and apparatus for dynamically allocating and resizing the dedicated memory in a shared memory buffer architecture system
US5835954A (en) 1996-09-12 1998-11-10 International Business Machines Corporation Target DASD controlled data migration move
US6964008B1 (en) * 1999-11-12 2005-11-08 Maxtor Corporation Data checksum method and apparatus
US6728922B1 (en) * 2000-08-18 2004-04-27 Network Appliance, Inc. Dynamic data space

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6421652A (en) * 1987-07-02 1989-01-25 Ibm Memory
JPH07110776A (ja) * 1990-04-16 1995-04-25 Internatl Business Mach Corp <Ibm> 並列計算システムにおける冗長パリティ保護方法
JPH0887424A (ja) * 1994-09-16 1996-04-02 Toshiba Corp 電子計算機
JP2000010738A (ja) * 1998-06-17 2000-01-14 Toshiba Corp ディスクアレイシステム、同システムに適用される記憶容量拡張方法および記録媒体

Also Published As

Publication number Publication date
US20030014697A1 (en) 2003-01-16
US6490668B2 (en) 2002-12-03
US7096389B2 (en) 2006-08-22
US20020078314A1 (en) 2002-06-20

Similar Documents

Publication Publication Date Title
US6968425B2 (en) Computer systems, disk systems, and method for controlling disk cache
US6625704B2 (en) Data backup method and system using snapshot and virtual tape
US8046548B1 (en) Maintaining data consistency in mirrored cluster storage systems using bitmap write-intent logging
US7281104B1 (en) System and method for online data migration
US7930474B2 (en) Automated on-line capacity expansion method for storage device
US8121977B2 (en) Ensuring data persistence and consistency in enterprise storage backup systems
US7337350B2 (en) Clustered storage system with external storage systems
US7293048B2 (en) System for preserving logical object integrity within a remote mirror cache
US6701455B1 (en) Remote copy system with data integrity
US8825973B2 (en) Caching source blocks of data for target blocks of data
US20090144345A1 (en) System and article of manufacture for consistent copying of storage volumes
KR20060044631A (ko) 지속성 메모리 액세스 시스템, 지속성 메모리의 직접액세스 방법 및 지속성 메모리 시스템을 액세스하는 시스템
JP2004127294A (ja) 仮想記憶システムおよびその動作方法
JP2002244933A (ja) チェックサムを異なるメモリ位置へ動的に移動させるシステムおよび方法
US7359927B1 (en) Method for performing periodic replication of data on a remote storage system
JP4080227B2 (ja) データ検証方法およびディスクアレイ装置
US7197599B2 (en) Method, system, and program for managing data updates
JP2007149085A (ja) 接続された装置を構成するための初期設定コードの実行
JP2007058286A (ja) 記憶装置のフォーマットを不要としたストレージシステム及び記憶制御方法
JP2007018312A (ja) ディスクアレイ装置及びその制御方法
US9146685B2 (en) Marking local regions and providing a snapshot thereof for asynchronous mirroring
JP2007524932A (ja) パリティデータを生成するための方法、システム、及びプログラム
JP2002366445A (ja) コンピュータでバックワード・エラー・リカバリを実行するためのシステム
JP3954389B2 (ja) チェックサム構築システム
JP3872692B2 (ja) データを回復するためにチェックサムを利用するシステムおよび方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040413

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040413

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061002

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061010

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070109

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070112

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070605