JPH10506483A - フォールト・トレラントなコンピュータ・システムのためのメイン・メモリ・システム及びチェックポイント用プロトコル - Google Patents
フォールト・トレラントなコンピュータ・システムのためのメイン・メモリ・システム及びチェックポイント用プロトコルInfo
- Publication number
- JPH10506483A JPH10506483A JP8502301A JP50230195A JPH10506483A JP H10506483 A JPH10506483 A JP H10506483A JP 8502301 A JP8502301 A JP 8502301A JP 50230195 A JP50230195 A JP 50230195A JP H10506483 A JPH10506483 A JP H10506483A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data
- buffer memory
- buffer
- computer system
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/1407—Checkpointing the instruction stream
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
コンピュータの通常の動作を制約せずにメイン・メモリにおける一貫性を有する状態を維持するメカニズムが提供され、それによって、コンピュータ・システムは、データ又は処理の連続性を失なうことなく、障害から回復することが可能になる。典型的なコンピュータ・システムでは、プロセッサと入出力要素とは、メモリ・バスを介してメイン・メモリに接続されている。バッファ・メモリと主記憶要素とを含むシャドウ・メモリ要素もまた、このメモリ・バスに接続されている。チェックポイントが望まれる(従って、実行中のすべてのアプリケーションが障害の後で安全に戻ることのできる、メイン・メモリにおける一貫性を有する状態を確立する)ときには、バッファ・メモリにおいて先に捕捉されていたデータが、シャドウ・メモリ要素の主記憶要素にコピーされる。この構造及びプロトコルが、メイン・メモリにおける一貫性を有する状態を保証し、フォールト・トレラントな動作を可能にする。
Description
【発明の詳細な説明】
フォールト・トレラントなコンピュータ・システムのための
メイン・メモリ・システム及びチェックポイント用プロトコル
発明の概要
本発明は、コンピュータの通常の動作を制約せずにメイン・メモリにおいて一
貫性を有する状態(consistent state)を維持することにより、コンピュータ・
システムが、データの一体性又は処理の連続性を失うことなく故障から回復する
ことを可能にするメカニズムを提供する。典型的なコンピュータ・システムでは
、プロセッサと入力/出力要素とは、メモリ・バスを介して、メイン・メモリに
接続されている。本発明では、バッファ・メモリと主記憶要素とを含むシャドウ
・メモリ要素もまた、このメモリ・バスに付属されている。通常の処理の間は、
一次メモリ(primary memory)に書き込まれたデータは、同時に、シャドウ・メ
モリ要素のバッファ・メモリにも捕捉される。チェックポイントが望まれる(従
って、すべての実行中のアプリケーションが故障の後で安全に戻ることのできる
メイン・メモリにおける一貫性を有する状態を確立することが望まれる)ときに
は、バッファ・メモリに先に捕捉されていたデータが、シャドウ・メモリ要素の
主記憶要素にコピーされる。この構造とプロトコルとが、メイン・メモリにおけ
る一貫性を有する状態を保証し、従って、フォールト・トレラントな(耐故障性
の)動作を可能にする。
図面の簡単な説明
図1は、本発明によるメイン・メモリ構造を用いるフォールト・トレラントな
コンピュータ・システムのブロック図である。
図2は、キャッシュとシャドウ・メイン・メモリとを有する処理ユニットを更
に詳細に図解するブロック図である。
図3は、図2に示されたシャドウ・メモリの更に詳細なブロック図である。
図4は、図3に示されたメモリ制御論理の更に詳細なブロック図である。
図5は、処理ユニットが、メイン・メモリの一貫性を維持するのに用いるメ
モリロケーションの図である。
図6は、それぞれの処理ユニットが、そのキャッシュの一括消去(flushing)
を、どのようにして制御するかを説明するフローチャートである。
詳細な説明
本発明は、以下の詳細な説明を添付した図面を参照して読むことによって、よ
り完全に理解できよう。図面では、類似の構造を指示する際には、類似の参照番
号を付してある。本明細書で引用する参考文献は、すべてを、明示的に援用する
ものとする。
コンピュータ・システムは、すべてのアプリケーション・プログラムが、障害
(フォールト:fault)の後に、その障害から透過的(トランスペアレント
)に回復することが可能である場合に戻ることのできる、メイン・メモリにおけ
る一貫性を有する状態(すなわち、チェックポイント)の存在を保証しなければ
ならない。コンピュータ・システムが、用いているアプリケーション・プログラ
ムに特別な要求を何も課すことなくこの能力を提供することが、強く望まれる。
現時点で入手可能ないくつかのコンピュータ・システムでは、すべての修正可能
なデータを、メイン・メモリにおける2つの物理的に分離されたロケーション(
一次ロケーション及びシャドウロケーション)に記憶することによって、一貫性
を有する状態が確保される。米国特許第4654819号及び第4819154
号には、このようなコンピュータ・システムについての更なる記載がある。しか
し、この手順がうまく機能するためには、コンピュータ・システムにおけるそれ
ぞれのプロセッサが、ブロッキング・キャッシュを有していなければならない。
すなわち、プロセッサは、現時点で修正されているすべてのラインを同時に再び
書き込むのでなければ、キャッシュ・ラインを、再びメイン・メモリに書き込む
ことが全くできない。従って、任意のキャッシュ・オーバフロー又は別のプロセ
ッサからのキャッシュ内のデータの要求があると、プロセッサは、キャッシュ全
体を一括消去(flush)することを強いられる。
このアプローチの主な欠点は、このアプローチでは、従来型の非ブロック・キ
ャッシュとそれに関連するキャッシュ・コヒーレンシ・プロトコルとの使用
が排除されることである。そのようなコンピュータ・システムと共に用いられる
ソフトウェアを他のコンピュータ・システムから移植することは、困難であり、
移植が行われた後で、性能上の問題が生じる可能性がある。また、従来型ではな
いハードウェアを用いることにより、コンピュータ・システムのコストは上昇す
るが、標準的な市販のプロセッサを用いれば、そのコストを縮小できる。従来型
のプロセッサであれば、従来型のキャッシュ・プロトコルを用いることが必要で
あるが、これまでのチェックポイント・システムでは、メイン・メモリの一貫性
を保証できないので、従来型のキャッシュを用いてフォールト・トレラント(障
害許容な動作:fault tolerant operation)な動作を
提供することができない。
図1は、本発明によるフォールト・トレラントなコンピュータ・システム11
の1つの実施例のブロック図である。1又は複数の処理要素14、16が、1又
は複数のバス10、12を介して、1又は複数のメイン・メモリ・システム18
、20に接続されている。1又は複数の入力/出力(I/O)サブシステム22、
24もまた、バス10(12)に接続されている。それぞれのI/Oサブシステム
は、入力/出力(I/O)要素26(28)と、1又は複数のバス30、32(3
4、36)とから構成されている。I/O要素26(28)はまた、VMEバスな
どの任意の標準的なI/Oバス38(40)に接続されている。説明を簡単にする
ために、これらのシステム及びサブシステムそれぞれの中のただ1つを、以下の
説明では参照する。
図2に示されるように、それぞれの処理要素、例えば14は、キャッシュ42
に接続された処理ユニット44を含む。この接続はまた、処理ユニット44とキ
ャッシュ42とをバス10に接続している。処理ユニット44は、任意のマイク
ロプロセッサユニット(MPU)でよい。例えば、インテル社から市販されてい
るペンティアム・マイクロプロセッサは、この目的に適している。処理ユニット
44は、従来のように、任意の適切なオペレーティングシステムに従って動作す
る。処理要素14は、自己チェックの目的で、二重処理ユニット44を含むこと
もある。キャッシュ42は、ライト・スルー又はライト・バック型のキャッシュ
であり、任意のサイズと連想度(アソシアティビティ、asso
ciativity)とを有する。処理ユニット44は、キャッシュ42の中に、データ
だけ、又は、コンピュータ・プログラムの命令とデータとの両方を記憶すること
ができる。前者の場合には、追加的な同様の命令キャッシュ43を処理ユニット
44に接続して、処理ユニット44が、コンピュータ・プログラムの命令を記憶
する。この接続はまた、命令キャッシュ43をバス10に接続する。このシステ
ムは、対称な多重処理コンピュータ・システムであり、それぞれの処理ユニット
44が、任意の従来型のメカニズムを用いて、バス・スヌーピング(snooping)
などのキャッシュの一貫性(コヒーレンシ)を維持する。
キャッシュ42は、バス10を介して、メイン・メモリ・システム、例えば1
8に接続されている。このメイン・メモリ・システムは、一次メモリ要素(PM
E)46とシャドウ・メモリ要素(SME)48とを含み、これらの要素は、相
互に接続され、更に、バス10に接続されている。PME46とSME48とは
、任意ではあるが等しい容量を有する。
SME48は、図3に示すように、バッファ・メモリ52と主記憶要素(main
storage element)50とを含み、これらは、それぞれが、データ入力と、デー
タ出力と、アクセス制御及びアドレス入力を含む制御入力と、を有する。バッフ
ァ・メモリと主記憶要素とは、典型的には、ダイナミックで揮発性のランダム・
アクセス・メモリ(DRAM)として、集積回路の形式で、典型的には、シング
ル・インライン・メモリ・モジュール(SIMM)の形式で、実現される。バス
・トランシーバ55は、データ入力バッファ54の入力と主記憶要素50のデー
タ出力とを、バス10に接続する。データ入力バッファ54の出力は、バッファ
・メモリ52のデータ入力と主記憶要素50のデータ入力とに接続されている。
バッファ・メモリ52のデータ出力はまた、主記憶要素50のデータ入力に接続
されている。メモリ制御論理58は、バッファ・メモリ52、主記憶要素50、
データ入力バッファ54及びバス・トランシーバ55のそれぞれの制御入力に接
続され、以下で説明するように、これらの要素の間のデータの流れを制御する。
メモリ制御論理58はまた、バス・トランシーバ55を介してバス10に接続さ
れたデータ経路と、バス・トランシーバ57を介してバス10のアドレス部分に
接続された第1のアドレス入力と、アドレス・
バッファ・メモリ56のデータ出力に接続された第2のアドレス入力と、を有す
る。アドレス・バッファ・メモリ56はまた、アドレス入力バッファ59の出力
に接続され、この出力は、バス・トランシーバ57を介して、バス10のアドレ
ス部分に接続されている。バス・トランシーバ57とアドレス入力バッファ59
との両方が、メモリ制御論理58に接続された制御入力を有する。メモリ制御論
理58はまた、以下で説明するように、バッファ・メモリ52に記憶されたデー
タに対応するアドレスのアドレス・バッファ・メモリ56における記憶装置を制
御する。非メモリ論理要素を、カスタム又はセミカスタムの集積回路又はプログ
ラマブルなゲート・アレーである従来型の回路を用いて、実現することもできる
。
モジュール・タイプの数を最小にしておくことは有利であるので、PME46
は、SME48と同じ構造を有してよい。PME46として用いられるメモリ要
素におけるバッファ・メモリ52は、シャドウされる必要がないコンピュータ・
プログラムの命令や読み出し専用データを記憶し得る。メモリ要素におけるメモ
リ制御論理58は、そのメモリ要素をPMEかSMEのどちらかにできるように
プログラマブルであることが好ましい。
バッファ・メモリ52は、任意の2回のキャッシュ一括消去の間に修正された
すべてのデータを捕捉できる程度の大きさを有しているべきである。このシステ
ムを用いる以下で説明するプロセスが与えられた場合に、コンピュータ・システ
ム11におけるすべてのバッファ・メモリ52を組み合わせた容量の全体は、好
ましくは、少なくとも、コンピュータ・システム11におけるキャッシュ42を
組み合わせた容量よりも大きい。
メモリ制御論理58は、図4に更に詳細に図解されている。それには、バス・
トランシーバ55を介してバス10に接続されたデータ入力を有するコマンド・
レジスタ68が含まれている。ステータス(状態)レジスタ66は、やはりバス
・トランシーバ55を介してバス10に接続された出力を有する。バッファ・メ
モリ制御回路60と主記憶制御回路62とは、ロー(行)アドレス・ストローブ
(RAS)、カラム(列)アドレス・ストローブ(CAS)、ロー及びカラム・
アトルス、及び書き込みイネーブル(WE)制御信号を、バッファ・メ
モリ52と主記憶要素50とのそれぞれに与える。制御回路60、62はまた、
バッファ・メモリ52と主記憶要素50との間のデータ転送を調整する接続を有
する。バッファ・メモリ制御回路60は、ステータス・レジスタ66の入力に接
続された出力を有しており、バッファ・メモリ52がどの程度満たされているか
と、バッファ・メモリ52から主記憶要素50へのコピーが終了したかどうかと
を示す。バッファ・メモリ制御回路60はまた、バッファ・メモリ52と主記憶
要素50との間でデータをコピーすべきかどうかを示すコマンド・レジスタ68
の出力に接続された入力を有する。コマンド・レジスタ68はまた、メモリ要素
が一次メモリ要素であるかシャドウ・メモリ要素であるかを示す。I/Oインター
フェース制御64は、ステータス・レジスタ66とコマンド・レジスタ68とを
通過する情報の流れを制御し、バッファ・メモリ制御回路60と主記憶制御回路
62とを用いて、バス・トランシーバ55、57を通過するデータ転送を調整す
る。I/Oインターフェース制御64はまた、バス10のアドレス部分から入力を
受け取り、コマンド及びステータス・レジスタとメイン・メモリ・システム自体
へのアドレスを認識する。
次に、このシステムを用いて障害の後でメモリの一貫性を維持するプロセスを
説明する。このプロセスによれば、処理ユニット14のすべてのキャッシュ42
の一括消去を要求せずに、1つの処理要素14から別の処理要素16にデータを
移すことが可能になる。コンピュータ・システム11ではすべての処理ユニット
44がすべてのバスへのアクセスを有するので、それぞれの処理ユニット14は
、従来型のバス・スヌーピング方法を用いてキャッシュのコヒーレンシを確保す
ることができる。すべての処理ユニット44がすべてのシステム・バスへのアク
セスを有していない場合には、処理ユニット44は、その代わりに、他の周知の
キャッシュ・コヒーレンシの方法を用いることができる。
それぞれのシャドウ・メモリ要素48におけるバッファ・メモリ52が、故障
が生じた場合に、メイン・メモリ・システム18における一貫性を維持する。1
つの一次メモリ要素46に記憶されたすべてのデータ・ラインは、シャドウ・メ
モリ要素48における関連するアドレス・バッファ・メモリ56に記憶された対
応するメモリの(物理)アドレスと共に、バッファ・メモリ52にも記憶
される。このプロトコルは、キャッシュ42が特別に設計された一括消去ハード
ウェア又は従来型のキャッシュ一括消去プロセッサ命令を用いてオペレーティン
グシステムによって一括消去される際に、一次メモリ要素46に書き込まれたラ
インにも適用される。処理ユニット44による一括消去動作は、同期がとれてい
る。すべての処理ユニット44がその一括消去を終了したときには、オペレーテ
ィングシステムは、コマンド・レジスタ68を用いてシャドウ・メモリ要素48
に命令し、主記憶制御回路62を用いて、バッファ・メモリ要素52の内容を主
記憶要素50にコピーさせる。一貫性を維持するために、処理要素14は、いっ
たん一括消去を開始すると、すべての他の処理要素14がその一括消去を終了す
るまでは、通常の動作を再開(resume)できない。
プロセッサによるキャッシュの一括消去は同期がとれているが、これは、バッ
ファ・メモリが、主記憶要素50に、どのデータをコピーすべきでありどのデー
タをコピーすべきでないかを知っている必要があるからである。すなわち、バッ
ファ・メモリは、一括消去後のデータと一括消去前のデータとを区別する必要が
ある。従って、バッファがどのプロセッサがデータを送っているかを知らない場
合には、すべてのプロセッサは、一貫性を維持するために、その一括消去を終了
し、その後で、通常の動作を開始しなければならない。同期化は、図5に80と
して示されているメイン・メモリ18における指定したロケーションを用いて、
テスト・アンド・セット(test-and-set)のロック動作によって制御され、ロッ
ク値を記憶する。周期的な間隔で、それぞれの処理ユニット44は、図6のステ
ップ90に示されている一括消去動作を開始すべきかどうかを決定する。処理ユ
ニット44は、この決定を、複数の異なる方法で行うことができる。例えば、シ
ャドウ・メモリ要素48のステータ・レジスタ66の1つ以上がバッファ・メモ
リ52の残り容量を示すために使用され得る。バッファ・メモリ52が満たされ
過ぎている場合には、処理ユニット44は、一括消去を開始する。また、固定さ
れた時間周期の経過後に、一括消去を始めてもよい。この処理ユニット44は、
一括消去を開始する必要がない場合には、指定されたメモリ位置80を検査して
、別の処理ユニット44が既にロックを設定したかどうかを判断する(ステップ
92)。ロックが設定されていない場合には、
このプロセスは、94に示されているように終了する。逆に、ロックが設定され
ている場合には、この処理ユニット44は、ステップ96において、そのキャッ
シュ42を一括消去する。一括消去動作の効果は、キャッシュにおけるすべての
ラインを(又は、好ましくは、最終の一括消去の後で修正されたラインだけを)
、一次メモリ要素46に、そして、シャドウ・メモリ要素48の上述した性質の
ために、シャドウ・メモリ要素48のバッファ・メモリ50にも同様に、記憶す
ることである。実際の一括消去動作に先立って、処理ユニット44は、この情報
を同じく一括消去するために、その状態をキャッシュ42にセーブする。
処理ユニット44は、ステップ90において一括消去を開始すべきかどうかを
判断する場合には、ステップ92におけるのと同様に、ステップ98でロックが
設定されているかどうかを判断する。ロックが既に設定されている場合には、処
理ユニット44は、ステップ96でそのキャッシュ42を一括消去することによ
って、先に進む。そうでない場合には、ステップ100でロックを設定し、自ら
を、そのキャッシュ42の一括消去の前の一括消去のイニシエータ(initiator
)として識別する。
処理ユニット44は、ステップ96でそのキャッシュ42を一括消去した後で
、ステップ102において、その対応する一括消去カウンタを増加させる。図5
に示されているように、それぞれの処理ユニット44は、82及び84として示
されているようなメイン・メモリ18での所定の指定されたロケーションである
、一括消去カウンタを有する。一括消去カウンタ(例えば82)が増加された後
で、処理ユニット44は、それがこの一括消去シーケンスのイニシエータである
かどうかを判断する(ステップ104)。イニシエータでない場合には、ロック
がステップ106で解除されるまで待機する。ロックが解除されれば、このプロ
セスは、ステップ108で終了し、処理ユニット44は、通常の動作を再開する
。
処理ユニット44は、ステップ104において一括消去のイニシエータである
と判断されれば、すべての一括消去カウンタ(82−84)がステップ110で
増加されるまで、待機する。すべての一括消去カウンタが増加されると、
この処理要素44は、シャドウ・メモリ要素48に命令して、バッファ・メモリ
52の中のデータの主記憶要素50へのコピーを、コマンドをコマンド・レジス
タ68に送りロックを解除する(ステップ112)ことによって、開始させる。
コマンドを受け取ることによって、シャドウ・メモリ要素48は一括消去が終了
したことを告知され、主記憶制御62とバッファ・メモリ制御60とが、バッフ
ァ・メモリ52に記憶されていたデータを、主記憶要素50の適切なロケーショ
ンに(アドレス・バッファ・メモリ56に記憶された対応する物理アドレスによ
って決定される)移動させる。このコマンドがいったん送られると、一括消去ロ
ックは解除され、処理ユニット44は、通常の動作を再開できる。ステップ10
6及びステップ110の周囲のループは、一括消去動作の間に障害が生じた場合
に障害復旧手順をトリガする時間切れ保護(time-out protection)を有してい
るべきである。
バッファ・メモリ制御60は、一括消去後のデータと一括消去前のデータとを
、例えば、同期された一括消去動作それぞれの最後にデータが記憶されるバッフ
ァ・メモリ52の最後のアドレスを記憶することによって、区別することができ
る。この境界を識別する方法は他にもあって、例えば、データがそこからコピー
されたバッファ・メモリ52のアドレスをモニタする、又は、どのくらいの量の
データがバッファ・メモリ52に書き込まれたかをカウントする、などによる。
バッファ・メモリ52において、(i−1)番目の一括消去に対して記憶された
アドレスとi番目の一括消去に対して記憶されたアドレスとの間のアドレスに記
憶されたデータは、一括消去前のデータである。このレンジの外のアドレスに記
憶された任意のデータは、一括消去後のデータであって、主記憶要素50にはコ
ピーされていない。(i+1)番目の一括消去の任意のデータは、主記憶要素に
コピーされたバッファ・メモリ52の任意の領域に配置される。
これらの動作によって、メイン・メモリ18において、コンピュータ・システ
ム11が障害の後で安全に戻ることのできる一貫性を有する状態の存在が保証さ
れる。障害がコンピュータ・システム11のシャドウ・メモリ要素48そのもの
以外の任意の部分に影響する場合には、シャドウ・メモリ要素48は、
最後に終了した一括消去の後のメイン・メモリ18の状態を含んでいる。障害の
時点でデータがバッファ・メモリ52から主記憶要素50に移動している最中で
あった場合には、この動作を終了した後で、通常の動作を再開しなければならな
い。それぞれの処理ユニット44は、一括消去動作の一部として、その一括消去
が始まった時点で存在していた処理状態を記憶しているから、実行中のすべての
タスクは、メイン・メモリ18に一貫性を有する状態でセーブされている。障害
の後で、シャドウ・メモリ要素48の内容は、それが動作的なものであれば、対
応する一次メモリ要素46コピーされ得るし、あるいは、シャドウ・メモリ要素
48が、一次メモリ要素46の役割を肩代わりすることもできる。いずれの場合
でも、通常の処理が、セーブされた状態から再開できる。
障害がシャドウ・メモリ要素48そのものにおいて生じた場合には、コンピュ
ータ・システム11の残りの部分は、影響を受けない。その唯一の結果は、シャ
ドウ・メモリ要素48が修理される前に第2の障害が万一生じた場合には、コン
ピュータ・システム11は、もはや、復旧する能力をもたないということである
。
バッファ・メモリ52のオーバフローもまた、致命的ではない。関連するシャ
ドウ・メモリ要素48の内容は、常に、それに関連する一次メモリ要素46の内
容をコピーすることによって、復旧できる。しかし、この間は、システムは障害
からの復旧ができないので、そのようなオーバフローの可能性は、最小に保って
おくことが重要である。
チェックポイント・プロトコルによって、データが、任意の時点で一次メモリ
要素46に書き込まれることが可能になる。その結果として、単一のキャッシュ
・ラインを、キャッシュ42の全体を一括消去することを強いられることなく、
一次メモリ要素46に書き込むことができるので、従って、大容量での関連キャ
ッシュ(large associative cache)に対する要求が緩
和される。更に、データは、一次メモリ要素46とシャドウ・メモリ要素48の
バッファ・メモリ52とにおいて同時に更新される限り、1つの処理ユニット4
4のキャッシュから別の処理ユニット44のキャッシュ42に、移動させること
が可能である。共有データを処理要素(例えば14)から別の
処理要素(例えば16)に頻繁に移動させる多重処理システムでは、このプロト
コルを用いると、著しい性能上の効果が達成される。
標準的なバス・プロトコルを用いてこのプロトコルを実現する場合には、シャ
ドウ・メモリ要素48は、バス10に関する限り、受動的なままであって、バッ
ファ・メモリ52に、その対応する一次メモリ要素46に書き込まれたすべての
データを記憶するだけである。シャドウ・メモリ要素48が一次メモリ要素46
と同期してデータを受け取るためには、データ入力バッファ54は、そのデータ
を一時的に記憶するが、その理由は、ラインが、書き込みの時点で、バッファ・
メモリ52から主記憶50にコピーされている最中であり得るからである。
何らかの非標準的なバス・プロトコルも実現されると、性能上の効果をいくら
か達成することができる。例えば、バス・プロトコルによって、シャドウ・メモ
リ要素48が複数の処理要素14相互間の区別が可能になる、又は、少なくとも
、記憶されつつあるラインがそのi番目の一括消去を終了した又はそのi番目の
一括消去をまだ実行している最中である処理要素14によって書き込まれたのか
どうかを識別することができるようになる場合には、処理要素14は、通常の動
作を再開する前に、他のすべての処理要素がその一括消去を終了するまで待機す
る必要はない。この場合には、処理要素14が、そのi番目の一括消去を終了し
た後で、他のすべての処理要素16がそのi番目の一括消去を(必ずしも終了は
していないにしても)少なくとも開始するまでだけは、通常の動作を停止するこ
とを要求することによって、メイン・メモリにおける一貫性が維持される。この
ように同期の制約を緩和しても、依然として、チェックポイントの一貫性を達成
できる。すなわち、これによって、その一括消去をまだ開始していない処理要素
16が、その一括消去を終了し通常の処理にレジュームしている別の処理要素1
4から、一括消去後に修正されたデータを受け取ることはないことが保証される
。この制約が弱い同期プロトコルは、バッファ・メモリ52に関連する論理が、
一括消去動作の一部として書き込まれつつある(従って、すべての処理要素14
がその一括消去を終了すると直ちに、主記憶要素50に記憶されるべきバッファ
・メモリ52の部分に記憶されなければな
らない)データと、その一括消去を終了した処理要素14によって書き込まれつ
つある(従って、次の一括消去が終了するまでは主記憶要素50に転送されない
)データとを区別できるのであれば、許容され得る。このプロトコルを実現する
には、図6におけるステップ96とステップ102との順序と配置とを逆にされ
る。
メモリの一貫性を支持するのには必要ではないが、他の非標準的なバス・プロ
トコルの特徴を導入して、メモリの間でのコピー時間を減少させることにより、
障害後の回復時間を減少させることができる。そのような特徴の2つとして、「
二重(デュアル)書き込み」及び「コピー」のメモリ・アクセス・モードを支持
する能力がある。ラインが二重書き込みモードで記憶されると、一次メモリ要素
46とシャドウ・メモリ要素48との両方が、そのラインを主記憶要素50に記
憶する。(従って、シャドウ・メモリ要素48は、このデータを、関連するバッ
ファ・メモリ52に記憶しない。)コピー・モードでは、一次メモリ要素46が
、アドレス指定されたラインを与え、シャドウ・メモリ要素48が、主記憶要素
50の対応する位置に、結果として生じるデータを記憶する。
メモリ要素に、指定されたいくらかの範囲のアドレスに亘るアクセスに関して
は一次メモリ要素として、しかし、他のすべてのアドレスに関してはシャドウと
して機能する「ファントム・モード(phantom mode)」で動作する能力を与える
ことも有用であり得る。このモードによれば、コンピュータ・システム11が、
いくつかのPME46はシャドウされ、いくつかのPME46はシャドウされず
に、動作することが可能になる。この特徴は、例えば、一次メモリの一部が障害
し、その代替物が直ちには入手できないが一次メモリの残りの部分は依然として
通常通りに機能しているときに、有用である。
本発明の実施例を以上で説明してきたが、当業者には、これは単に例示であっ
て制限的なものではなく、例を用いて提示したに過ぎないことが明らかなはずで
ある。多数の修正やこれ以外の実施例が、当業者の視野の中にあり、次に記載す
る請求の範囲によって定義された発明の技術的範囲に含まれる。
─────────────────────────────────────────────────────
フロントページの続き
(81)指定国 EP(AT,BE,CH,DE,
DK,ES,FR,GB,GR,IE,IT,LU,M
C,NL,PT,SE),OA(BF,BJ,CF,CG
,CI,CM,GA,GN,ML,MR,NE,SN,
TD,TG),AP(KE,MW,SD,SZ,UG),
AM,AT,AU,BB,BG,BR,BY,CA,C
H,CN,CZ,DE,DK,EE,ES,FI,GB
,GE,HU,IS,JP,KE,KG,KP,KR,
KZ,LK,LR,LT,LU,LV,MD,MG,M
N,MW,MX,NO,NZ,PL,PT,RO,RU
,SD,SE,SG,SI,SK,TJ,TM,TT,
UA,UZ,VN
Claims (1)
- 【特許請求の範囲】 1.コンピュータ・システムにおいて、 メモリ・バスに接続されたプロセッサと、 前記メモリ・バスに接続された一次メモリ要素と、 前記メモリ・バスに接続されたバッファ・メモリ要素と、 前記バッファ・メモリに接続された主記憶要素と、 前記一次メモリに書き込まれたすべてのデータを前記バッファ・メモリにおい て捕捉し、前記バッファ・メモリからのデータの前記主記憶要素へのコピーを、 前記プロセッサからの前記コピーを実行せよとの命令に応答して行う手段と、 を備えていることを特徴とするコンピュータ・システム。 2.それぞれがメモリ・バスに接続されており、任意のサイズのキャッシュを 有する少なくとも2つのプロセッサと共に用いるメモリ・システムにおいて、 前記メモリ・バスに接続された一次メモリ要素と、 前記メモリ・バスに接続された前記一次メモリと物理的に分離しており、少な くとも前記キャッシュのサイズの和と同じ程度のサイズを有するバッファ・メモ リと、 前記バッファ・メモリに接続されており、前記一次メモリ及び前記バッファ・ メモリとは物理的に分離している主記憶要素と、 前記一次メモリへのデータの書き込みに応答して前記一次メモリ要素に書き込 まれたデータを前記バッファ・メモリにおいて捕捉し、前記プロセッサが前記キ ャッシュの一括消去(フラッシュ)を終了する際に、前記バッファ・メモリにお けるデータを前記主記憶要素の適切なロケーションにコピーして、それにより、 障害の後に、そこから処理がデータの一体性又はプログラムの連続性を失うこと なく再開できるメイン・メモリにおける一貫性を有するチェックポイントを確立 する手段と、 を備えていることを特徴とするメモリ・システム。 3.第1のキャッシュを備えた第1のプロセッサと第2のキャッシュを備え た第2のプロセッサとを有するコンピュータ・システムであって、それぞれのキ ャッシュは、メモリ・バスを介してメイン・メモリ要素に接続されており、前記 メイン・メモリ要素は、前記メモリ・バスに接続されたバッファ・メモリと前記 バッファ・メモリに接続された主記憶要素とを備えたコンピュータ・システムに おいて、キャッシュの一括消去を同期させ前記メイン・メモリ要素において一貫 性を有する状態を維持する方法であって、前記第1のプロセッサによって実行さ れる、 ロックを設定して通常の動作を中断するステップと、 前記バッファ・メモリが前記第1のキャッシュから一括消去されたデータを捕 捉するように、前記第1のキャッシュを一括消去するステップと、 前記バッファ・メモリが前記第2のキャッシュから一括消去されたデータを捕 捉するように、前記第2のプロセッサが前記第2のキャッシュの一括消去を開始 するまで待機するステップと、 前記バッファ・メモリに命令して、捕捉されているデータを前記主記憶要素に コピーするステップと、 前記ロックを解除して、通常の動作を再開させるステップと、 を含むことを特徴とする方法。 4.メモリ・バスによって相互接続されたプロセッサと一次メモリ要素とを有 するコンピュータ・システムにおいて用いるメイン・メモリ・システムのための シャドウ・メモリ要素であって、 前記メモリ・バスに接続されたバッファ・メモリと、 前記バッファ・メモリに接続された主記憶要素と、 前記一次メモリ要素に書き込まれたすべてのデータを前記バッファ・メモリに おいて捕捉し、前記バッファ・メモリからのデータの前記主記憶要素へのコピー を、前記プロセッサからの前記コピーを実行せよとの命令に応答して行う手段と 、 を備えていることを特徴とするシャドウ・メモリ要素。 5.請求項4記載のシャドウ・メモリ要素において、 前記一次メモリ要素においてデータが書き込まれるアドレスを捕捉する手段 を更に備えており、 データをコピーする前記手段は、データを前記主記憶要素のコピーされている データのために捕捉されたアドレスにコピーすることを特徴とするシャドウ・メ モリ要素。 6.第1のキャッシュを有する第1のプロセッサを、第2のキャッシュを有す る第2のプロセッサに対してチェックポイントする方法において、前記第1のプ ロセッサによって実行される、 プロセスの実行を継続するステップと、 前記第1のキャッシュを一括消去して、修正されたすべてのデータを一次メモ リにコピーするステップと、 前記第2のプロセッサが前記第2のキャッシュから前記一次メモリへの修正さ れたすべてのデータを一括消去したことを確認するステップと、 前記プロセスの実行を再開するステップと、 を含むことを特徴とする方法。 7.メモリ・バスによって相互接続されたプロセッサと主メモリ要素とを有す るコンピュータ・システムにおいて用いるメイン・メモリ・システムのためのシ ャドウ・メモリ要素であって、 前記メモリ・バスに接続されたバッファ・メモリと、 前記バッファ・メモリに接続された主記憶要素と、 前記主記憶要素と前記バッファ・メモリとに接続されており、前記一次メモリ 要素に書き込まれたデータを記憶するために前記バッファ・メモリを制御し前記 バッファ・メモリからのデータを記憶するために前記主記憶要素を制御する出力 を有するメモリ制御論理回路と、 を備えることを特徴とするシャドウ・メモリ要素。 8.請求項7記載のシャドウ・メモリ要素において、前記メモリ制御論理は、 前記バッファ・メモリに結合されており、前記バッファ・メモリを制御するメ モリ制御信号出力を有するバッファ・メモリ制御回路と、 前記バッファ・メモリ制御回路に結合されており、コマンドを記憶するコマン ド・レジスタと、 前記バッファ・メモリ制御回路に結合されており、ステータス情報を記憶する ステータス・レジスタと、 前記バッファ・メモリ制御回路に結合されており、前記主記憶要素を制御する メモリ制御信号出力を有する主記憶制御回路と、 前記バッファ・メモリ制御回路、前記コマンド・レジスタ及び前記ステータス ・レジスタに接合されており、前記ステータス・レジスタ、コマンド・レジスタ 、バッファ・メモリ制御回路及び主記憶制御回路の間の情報の流れを制御する出 力を有する入出力インターフェース制御回路と、 を含むことを特徴とするシャドウ・メモリ要素。 9.請求項8記載のシャドウ・メモリ要素において、前記バッファ・メモリ制 御回路は、 前記バッファ・メモリがどのくらい満たされているかを示す第1の出力と、 前記バッファ・メモリから前記主記憶要素へのコピーが完全であるかどうかを 示す第2の出力と、 を含むことを特徴とするシャドウ・メモリ要素。 10.請求項7記載のシャドウ・メモリ要素において、 前記バッファ・メモリに結合されたデータ・バッファと、 前記メモリ制御論理に結合されており、前記バッファ・メモリに記憶されたデ ータに対応するアドレスを示す情報を記憶するアドレス・バッファ・メモリと、 前記メモリ制御論理と前記バッファ・メモリとに結合されており、前記バッフ ァ・メモリに記憶されたデータに対応するアドレスを前記アドレス・バッファ・ メモリに提供するアドレス入力バッファと、 を更に含むことを特徴とするシャドウ・メモリ要素。 11.請求項1記載のコンピュータ・システムにおいて、前記バッファ・メモ リ要素と前記主記憶要素とは、電気的な構造を有する単一の回路として構成され ており、前記一次メモリ要素は、前記単一の回路と同一の電気的構造を有してい ることを特徴とするコンピュータ・システム。 12.請求項11記載のコンピュータ・システムにおいて、前記一次メモリ 要素は、前記一次メモリ要素を1つの一次メモリ要素として構成する第1のプロ グラマブルな要素を含み、前記単一の回路は、前記単一の回路をバッファ・メモ リ要素及び主記憶要素として構成する第2のプログラマブルな要素を含むことを 特徴とするコンピュータ・システム。 13.請求項1記載のコンピュータ・システムにおいて、前記プロセッサは、 それぞれがキャッシュを有する複数のプロセッサを含むことを特徴とするコンピ ュータ・システム。 14.請求項13記載のコンピュータ・システムにおいて、それぞれのキャッ シュの一括消去を開始させる手段を更に含むことを特徴とするコンピュータ・シ ステム。 15.請求項14記載のコンピュータ・システムにおいて、前記一括消去を開 始させる手段は、前の一括消去から所定の時間の経過後に前記一括消去を開始さ せる手段を含むことを特徴とするコンピュータ・システム。 16.請求項14記載のコンピュータ・システムにおいて、前記開始させる手 段は、前記バッファ・メモリにおける未使用のメモリ・スペースの量を決定する 手段を含むことを特徴とするコンピュータ・システム。 17.請求項14記載のコンピュータ・システムにおいて、それぞれのキャッ シュのデータを前記バッファ・メモリの中に一括消去する手段を更に含むことを 特徴とするコンピュータ・システム。 18.請求項17記載のコンピュータ・システムにおいて、前記一括消去する 手段は、前の一括消去の後で修正されたデータだけを一括消去する手段を含むこ とを特徴とするコンピュータ・システム。 19.請求項13記載のコンピュータ・システムにおいて、それぞれのキャッ シュは、 データを記憶するデータ・キャッシュと、 命令を記憶する命令キャッシュと、 を含むことを特徴とするコンピュータ・システム。 20.請求項13記載のコンピュータ・システムにおいて、それぞれのキャッ シュはキャッシュ・メモリ・サイズを有しており、前記バッファ・メモリは、 それぞれのキャッシュ・メモリ・サイズの和に等しい、又はその和よりも大きな バッファ・メモリ・サイズを有することを特徴とするコンピュータ・システム。 21.請求項13記載のコンピュータ・システムにおいて、前記複数のプロセ ッサのそれぞれは、キャッシュのコヒーレンシを維持するスヌープ手段を含むこ とを特徴とするコンピュータ・システム。 22.請求項2記載のコンピュータ・システムにおいて、前記バッファ・メモ リ要素と前記主記憶要素とは、構造を有する単一の回路として構成され、前記一 次メモリ要素は、前記単一の回路と同一の構造を有することを特徴とするコンピ ュータ・システム。 23.請求項22記載のコンピュータ・システムにおいて、前記一次メモリ要 素は、前記一次メモリ要素を1つの一次メモリ要素として構成する第1のプログ ラマブルな要素を含み、前記単一の回路は、前記単一の回路をバッファ・メモリ 要素及び主記憶要素として構成する第2のプログラマブルな要素を含むことを特 徴とするコンピュータ・システム。 24.請求項1記載のコンピュータ・システムにおいて、前記バッファ・メモ リに現在記憶されているデータの量を、前記バッファ・メモリの容量との関係で 決定する手段を更に備えていることを特徴とするコンピュータ・システム。 25.請求項1記載のコンピュータ・システムにおいて、前記バッファ・メモ リから前記主記憶要素へのコピー動作がいつ終了したかを決定する手段を更に備 えていることを特徴とするコンピュータ・システム。 26.請求項2記載のメモリ・システムにおいて、前記バッファ・メモリに現 在記憶されているデータの量を、前記バッファ・メモリの容量との関係で決定す る手段を更に備えていることを特徴とするメモリ・システム。 27.請求項2記載のメモリ・システムにおいて、前記バッファ・メモリから 前記主記憶要素へのコピー動作がいつ終了したかを決定する手段を更に備えてい ることを特徴とするメモリ・システム。 28.請求項4記載のシャドウ・メモリ要素において、前記バッファ・メモリ に現在記憶されているデータの量を、前記バッファ・メモリの容量との関係 で決定する手段を更に備えていることを特徴とするシャドウ・メモリ要素。 29.請求項4記載のシャドウ・メモリ要素において、前記バッファ・メモリ から前記主記憶要素へのコピー動作がいつ終了したかを決定する手段を更に備え ていることを特徴とするシャドウ・メモリ要素。 30.請求項3記載の方法において、前記一括消去するステップは、前の一括 消去の後に修正されたデータだけを記憶することを含むことを特徴とする方法。 31.請求項3記載の方法において、前記第1のキャッシュを一括消去する前 に前記第1のプロセッサの処理状態を前記第1のキャッシュに記憶するステップ を更に含むことを特徴とする方法。 32.請求項3記載の方法において、一括消去動作が終了した際に一括消去カ ウンタを増加させる、前記第1及び第2のプロセッサのそれぞれによって実行さ れるステップを更に含むことを特徴とする方法。 33.請求項3記載の方法において、前記バッファ・メモリにおけるデータに 対して、どちらのプロセッサが前記データを前記バッファ・メモリに書き込みを したかを識別するステップを更に含むことを特徴とする方法。 34.請求項3記載の方法において、前記バッファ・メモリに命令する前に、 前記第2のプロセッサが前記第2のキャッシュの一括消去を終了するまで、待機 するステップを更に含むことを特徴とする方法。 35.第1のキャッシュを有する第1のコンピュータ、第2のキャッシュを有 する第2のコンピュータ及び一次メモリを含むコンピュータ・システムにおいて フォールト・トレランスを維持する方法において、 前記一次メモリをモニタして前記一次メモリへのデータ書き込みを検出するス テップと、 前記データ書き込みをバッファ・メモリにコピーするステップと、 前記第1及び第2のキャッシュからのデータを前記バッファ・メモリに一括消 去するステップと、 前記バッファ・メモリからのデータを主記憶要素にコピーするステップと、 を含むことを特徴とする方法。 36.請求項35記載の方法において、 障害がいつ生じたかを検出するステップと、 障害が生じた際には、前記主記憶要素からのデータを前記メイン・メモリにコ ピーするステップと動作を再開するステップとを実行するステップと、 を含むことを特徴とする方法。 37.請求項35記載の方法において、 障害がいつ生じたかを検出するステップと、 障害が生じた際には、前記一次メモリ要素を前記主記憶要素をシャドウするよ うに構成するステップと前記主記憶要素を一次メモリとして用いて動作を再開す るステップとを実行するステップと、 を含むことを特徴とする方法。 38.請求項35記載の方法において、前記一括消去するステップは、 ロックを設定して通常の動作を中断するステップと、 前記第1及び第2のキャッシュを一括消去するステップと、 前記第1及び第2のプロセッサが一括消去を終了するまで待機するステップと 、 前記ロックを解除して通常の動作を再開するステップと、 を含むことを特徴とする方法。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US25816594A | 1994-06-10 | 1994-06-10 | |
| US08/258,165 | 1994-06-10 | ||
| PCT/US1995/007168 WO1995034860A1 (en) | 1994-06-10 | 1995-06-07 | Main memory system and checkpointing protocol for fault-tolerant computer system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH10506483A true JPH10506483A (ja) | 1998-06-23 |
Family
ID=22979374
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8502301A Pending JPH10506483A (ja) | 1994-06-10 | 1995-06-07 | フォールト・トレラントなコンピュータ・システムのためのメイン・メモリ・システム及びチェックポイント用プロトコル |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US5787243A (ja) |
| EP (1) | EP0764302B1 (ja) |
| JP (1) | JPH10506483A (ja) |
| AU (1) | AU2663095A (ja) |
| DE (1) | DE69506404T2 (ja) |
| WO (1) | WO1995034860A1 (ja) |
Families Citing this family (48)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5745672A (en) * | 1995-11-29 | 1998-04-28 | Texas Micro, Inc. | Main memory system and checkpointing protocol for a fault-tolerant computer system using a read buffer |
| US5737514A (en) * | 1995-11-29 | 1998-04-07 | Texas Micro, Inc. | Remote checkpoint memory system and protocol for fault-tolerant computer system |
| JPH09330237A (ja) | 1996-06-07 | 1997-12-22 | Toshiba Corp | プロセス切り替え装置およびプロセス切り替え方法 |
| US5991852A (en) * | 1996-10-28 | 1999-11-23 | Mti Technology Corporation | Cache ram using a secondary controller and switching circuit and improved chassis arrangement |
| US5878250A (en) * | 1997-04-07 | 1999-03-02 | Altera Corporation | Circuitry for emulating asynchronous register loading functions |
| US5948081A (en) * | 1997-12-22 | 1999-09-07 | Compaq Computer Corporation | System for flushing queued memory write request corresponding to a queued read request and all prior write requests with counter indicating requests to be flushed |
| US6298431B1 (en) * | 1997-12-31 | 2001-10-02 | Intel Corporation | Banked shadowed register file |
| US6898700B2 (en) * | 1998-03-31 | 2005-05-24 | Intel Corporation | Efficient saving and restoring state in task switching |
| US6108707A (en) * | 1998-05-08 | 2000-08-22 | Apple Computer, Inc. | Enhanced file transfer operations in a computer system |
| US6513108B1 (en) | 1998-06-29 | 2003-01-28 | Cisco Technology, Inc. | Programmable processing engine for efficiently processing transient data |
| US6101599A (en) * | 1998-06-29 | 2000-08-08 | Cisco Technology, Inc. | System for context switching between processing elements in a pipeline of processing elements |
| US6173386B1 (en) | 1998-12-14 | 2001-01-09 | Cisco Technology, Inc. | Parallel processor with debug capability |
| US6920562B1 (en) | 1998-12-18 | 2005-07-19 | Cisco Technology, Inc. | Tightly coupled software protocol decode with hardware data encryption |
| US6493795B1 (en) * | 1998-12-30 | 2002-12-10 | Emc Corporation | Data storage system |
| US6502174B1 (en) * | 1999-03-03 | 2002-12-31 | International Business Machines Corporation | Method and system for managing meta data |
| US6438661B1 (en) * | 1999-03-03 | 2002-08-20 | International Business Machines Corporation | Method, system, and program for managing meta data in a storage system and rebuilding lost meta data in cache |
| US6513097B1 (en) | 1999-03-03 | 2003-01-28 | International Business Machines Corporation | Method and system for maintaining information about modified data in cache in a storage system for use during a system failure |
| US6622263B1 (en) | 1999-06-30 | 2003-09-16 | Jack Justin Stiffler | Method and apparatus for achieving system-directed checkpointing without specialized hardware assistance |
| US6529983B1 (en) | 1999-11-03 | 2003-03-04 | Cisco Technology, Inc. | Group and virtual locking mechanism for inter processor synchronization |
| US6892237B1 (en) * | 2000-03-28 | 2005-05-10 | Cisco Technology, Inc. | Method and apparatus for high-speed parsing of network messages |
| US6505269B1 (en) | 2000-05-16 | 2003-01-07 | Cisco Technology, Inc. | Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system |
| KR100365891B1 (ko) * | 2000-12-13 | 2002-12-27 | 한국전자통신연구원 | 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를하지 않는 백업/회복 장치 및 그 방법 |
| US6862668B2 (en) | 2002-02-25 | 2005-03-01 | International Business Machines Corporation | Method and apparatus for using cache coherency locking to facilitate on-line volume expansion in a multi-controller storage system |
| US7480909B2 (en) * | 2002-02-25 | 2009-01-20 | International Business Machines Corporation | Method and apparatus for cooperative distributed task management in a storage subsystem with multiple controllers using cache locking |
| US7239581B2 (en) | 2004-08-24 | 2007-07-03 | Symantec Operating Corporation | Systems and methods for synchronizing the internal clocks of a plurality of processor modules |
| US7904428B2 (en) | 2003-09-23 | 2011-03-08 | Symantec Corporation | Methods and apparatus for recording write requests directed to a data store |
| US7287133B2 (en) | 2004-08-24 | 2007-10-23 | Symantec Operating Corporation | Systems and methods for providing a modification history for a location within a data store |
| US7730222B2 (en) | 2004-08-24 | 2010-06-01 | Symantec Operating System | Processing storage-related I/O requests using binary tree data structures |
| US7296008B2 (en) | 2004-08-24 | 2007-11-13 | Symantec Operating Corporation | Generation and use of a time map for accessing a prior image of a storage device |
| US7577807B2 (en) | 2003-09-23 | 2009-08-18 | Symantec Operating Corporation | Methods and devices for restoring a portion of a data store |
| US7631120B2 (en) | 2004-08-24 | 2009-12-08 | Symantec Operating Corporation | Methods and apparatus for optimally selecting a storage buffer for the storage of data |
| US7827362B2 (en) | 2004-08-24 | 2010-11-02 | Symantec Corporation | Systems, apparatus, and methods for processing I/O requests |
| US7725760B2 (en) | 2003-09-23 | 2010-05-25 | Symantec Operating Corporation | Data storage system |
| US7409587B2 (en) | 2004-08-24 | 2008-08-05 | Symantec Operating Corporation | Recovering from storage transaction failures using checkpoints |
| US7577806B2 (en) | 2003-09-23 | 2009-08-18 | Symantec Operating Corporation | Systems and methods for time dependent data storage and recovery |
| US7991748B2 (en) | 2003-09-23 | 2011-08-02 | Symantec Corporation | Virtual data store creation and use |
| US7840768B2 (en) * | 2005-12-13 | 2010-11-23 | Reliable Technologies, Inc. | Memory-controller-embedded apparatus and procedure for achieving system-directed checkpointing without operating-system kernel support |
| USRE45632E1 (en) * | 2005-01-03 | 2015-07-28 | O'shantel Software L.L.C. | Memory-controller-embedded apparatus and procedure for achieving system-directed checkpointing without operating-system kernel support |
| US8812781B2 (en) * | 2005-04-19 | 2014-08-19 | Hewlett-Packard Development Company, L.P. | External state cache for computer processor |
| US7590885B2 (en) * | 2005-04-26 | 2009-09-15 | Hewlett-Packard Development Company, L.P. | Method and system of copying memory from a source processor to a target processor by duplicating memory writes |
| US7698511B2 (en) | 2005-05-19 | 2010-04-13 | Honeywell International Inc. | Interface for writing to memories having different write times |
| WO2007047346A2 (en) | 2005-10-14 | 2007-04-26 | Symantec Operating Corporation | Technique for timeline compression in a data store |
| US7454585B2 (en) * | 2005-12-22 | 2008-11-18 | International Business Machines Corporation | Efficient and flexible memory copy operation |
| US7506132B2 (en) * | 2005-12-22 | 2009-03-17 | International Business Machines Corporation | Validity of address ranges used in semi-synchronous memory copy operations |
| US20070180312A1 (en) * | 2006-02-01 | 2007-08-02 | Avaya Technology Llc | Software duplication |
| US8127185B2 (en) * | 2009-01-23 | 2012-02-28 | Micron Technology, Inc. | Memory devices and methods for managing error regions |
| US9678882B2 (en) * | 2012-10-11 | 2017-06-13 | Intel Corporation | Systems and methods for non-blocking implementation of cache flush instructions |
| US9858151B1 (en) * | 2016-10-03 | 2018-01-02 | International Business Machines Corporation | Replaying processing of a restarted application |
Family Cites Families (87)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3588829A (en) * | 1968-11-14 | 1971-06-28 | Ibm | Integrated memory system with block transfer to a buffer store |
| GB1243464A (en) * | 1969-01-17 | 1971-08-18 | Plessey Telecomm Res Ltd | Stored-programme controlled data-processing systems |
| US4413327A (en) * | 1970-06-09 | 1983-11-01 | The United States Of America As Represented By The Secretary Of The Navy | Radiation circumvention technique |
| US3864670A (en) * | 1970-09-30 | 1975-02-04 | Yokogawa Electric Works Ltd | Dual computer system with signal exchange system |
| US3761881A (en) * | 1971-06-30 | 1973-09-25 | Ibm | Translation storage scheme for virtual memory system |
| US3736566A (en) * | 1971-08-18 | 1973-05-29 | Ibm | Central processing unit with hardware controlled checkpoint and retry facilities |
| US3803560A (en) * | 1973-01-03 | 1974-04-09 | Honeywell Inf Systems | Technique for detecting memory failures and to provide for automatically for reconfiguration of the memory modules of a memory system |
| US3889237A (en) * | 1973-11-16 | 1975-06-10 | Sperry Rand Corp | Common storage controller for dual processor system |
| US3979726A (en) * | 1974-04-10 | 1976-09-07 | Honeywell Information Systems, Inc. | Apparatus for selectively clearing a cache store in a processor having segmentation and paging |
| GB1509193A (en) * | 1974-04-17 | 1978-05-04 | Nat Res Dev | Computer systems |
| US4020466A (en) * | 1974-07-05 | 1977-04-26 | Ibm Corporation | Memory hierarchy system with journaling and copy back |
| US4044337A (en) * | 1975-12-23 | 1977-08-23 | International Business Machines Corporation | Instruction retry mechanism for a data processing system |
| US4228496A (en) * | 1976-09-07 | 1980-10-14 | Tandem Computers Incorporated | Multiprocessor system |
| US4373179A (en) * | 1978-06-26 | 1983-02-08 | Fujitsu Limited | Dynamic address translation system |
| JPS5913783B2 (ja) * | 1978-09-18 | 1984-03-31 | 富士通株式会社 | 2重化フアイル方式 |
| JPS55115121A (en) * | 1979-02-28 | 1980-09-04 | Nec Corp | Input and output control unit possible for duplicated recording |
| JPS605024B2 (ja) * | 1979-09-04 | 1985-02-07 | ファナック株式会社 | 情報処理方式 |
| US4403284A (en) * | 1980-11-24 | 1983-09-06 | Texas Instruments Incorporated | Microprocessor which detects leading 1 bit of instruction to obtain microcode entry point address |
| US4435762A (en) * | 1981-03-06 | 1984-03-06 | International Business Machines Corporation | Buffered peripheral subsystems |
| US4426682A (en) * | 1981-05-22 | 1984-01-17 | Harris Corporation | Fast cache flush mechanism |
| JPS5831651A (ja) * | 1981-08-20 | 1983-02-24 | Nec Corp | 電子交換機の再開処理方式 |
| US4566106A (en) * | 1982-01-29 | 1986-01-21 | Pitney Bowes Inc. | Electronic postage meter having redundant memory |
| US4459658A (en) * | 1982-02-26 | 1984-07-10 | Bell Telephone Laboratories Incorporated | Technique for enabling operation of a computer system with a consistent state of a linked list data structure after a main memory failure |
| US4503534A (en) * | 1982-06-30 | 1985-03-05 | Intel Corporation | Apparatus for redundant operation of modules in a multiprocessing system |
| US4484273A (en) * | 1982-09-03 | 1984-11-20 | Sequoia Systems, Inc. | Modular computer system |
| US4509554A (en) * | 1982-11-08 | 1985-04-09 | Failla William G | High and low pressure, quick-disconnect coupling |
| WO1984002409A1 (en) * | 1982-12-09 | 1984-06-21 | Sequoia Systems Inc | Memory backup system |
| US4819154A (en) * | 1982-12-09 | 1989-04-04 | Sequoia Systems, Inc. | Memory back up system with one cache memory and two physically separated main memories |
| FR2553541B1 (fr) * | 1983-10-17 | 1992-02-28 | Inst Nat Rech Inf Automat | Dispositif et procede pour le stockage rapide et stable d'informations |
| EP0163096B1 (de) * | 1984-04-26 | 1988-11-17 | BBC Brown Boveri AG | Einrichtung zur Rettung eines Rechnerzustandes |
| US4959774A (en) * | 1984-07-06 | 1990-09-25 | Ampex Corporation | Shadow memory system for storing variable backup blocks in consecutive time periods |
| US4751639A (en) * | 1985-06-24 | 1988-06-14 | Ncr Corporation | Virtual command rollback in a fault tolerant data processing system |
| US4703481A (en) * | 1985-08-16 | 1987-10-27 | Hewlett-Packard Company | Method and apparatus for fault recovery within a computing system |
| EP0228559A1 (de) * | 1985-12-17 | 1987-07-15 | BBC Brown Boveri AG | Fehlertolerante Mehrrechneranordnung |
| US4740969A (en) * | 1986-06-27 | 1988-04-26 | Hewlett-Packard Company | Method and apparatus for recovering from hardware faults |
| SE454730B (sv) * | 1986-09-19 | 1988-05-24 | Asea Ab | Forfarande och datorutrustning for stotfri omkoppling av funktionen fran aktiva enheter till beredskapsenheter i en centralenhet |
| FR2606184B1 (fr) * | 1986-10-31 | 1991-11-29 | Thomson Csf | Dispositif de calcul reconfigurable |
| US4823261A (en) * | 1986-11-24 | 1989-04-18 | International Business Machines Corp. | Multiprocessor system for updating status information through flip-flopping read version and write version of checkpoint data |
| JP2514208B2 (ja) * | 1987-07-15 | 1996-07-10 | 富士通株式会社 | ホットスタンドバイメモリ−コピ−方式 |
| US4958273A (en) * | 1987-08-26 | 1990-09-18 | International Business Machines Corporation | Multiprocessor system architecture with high availability |
| US4965719A (en) * | 1988-02-16 | 1990-10-23 | International Business Machines Corporation | Method for lock management, page coherency, and asynchronous writing of changed pages to shared external store in a distributed computing system |
| EP0348628A3 (en) * | 1988-06-28 | 1991-01-02 | International Business Machines Corporation | Cache storage system |
| JPH0752399B2 (ja) * | 1988-06-30 | 1995-06-05 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | 記憶システム |
| US4924466A (en) * | 1988-06-30 | 1990-05-08 | International Business Machines Corp. | Direct hardware error identification method and apparatus for error recovery in pipelined processing areas of a computer system |
| US4912707A (en) * | 1988-08-23 | 1990-03-27 | International Business Machines Corporation | Checkpoint retry mechanism |
| US4996687A (en) * | 1988-10-11 | 1991-02-26 | Honeywell Inc. | Fault recovery mechanism, transparent to digital system function |
| JPH02287858A (ja) * | 1989-04-28 | 1990-11-27 | Toshiba Corp | 分散処理システムのリスタート方式 |
| US5325517A (en) * | 1989-05-17 | 1994-06-28 | International Business Machines Corporation | Fault tolerant data processing system |
| US5239637A (en) * | 1989-06-30 | 1993-08-24 | Digital Equipment Corporation | Digital data management system for maintaining consistency of data in a shadow set |
| US5247618A (en) * | 1989-06-30 | 1993-09-21 | Digital Equipment Corporation | Transferring data in a digital data processing system |
| DE69021712T2 (de) * | 1990-02-08 | 1996-04-18 | Ibm | Wiederanlaufkennzeichnungsmechanismus für fehlertolerierende Systeme. |
| JPH0410041A (ja) * | 1990-04-27 | 1992-01-14 | Toshiba Corp | データ退避方式 |
| US5271013A (en) * | 1990-05-09 | 1993-12-14 | Unisys Corporation | Fault tolerant computer system |
| US5327532A (en) * | 1990-05-16 | 1994-07-05 | International Business Machines Corporation | Coordinated sync point management of protected resources |
| EP0457308B1 (en) * | 1990-05-18 | 1997-01-22 | Fujitsu Limited | Data processing system having an input/output path disconnecting mechanism and method for controlling the data processing system |
| US5263144A (en) * | 1990-06-29 | 1993-11-16 | Digital Equipment Corporation | Method and apparatus for sharing data between processors in a computer system |
| US5157663A (en) * | 1990-09-24 | 1992-10-20 | Novell, Inc. | Fault tolerant computer system |
| JPH04139544A (ja) * | 1990-10-01 | 1992-05-13 | Fujitsu Ltd | データ復元方法 |
| DE4136729C2 (de) * | 1990-11-05 | 1995-07-20 | Mitsubishi Electric Corp | Cache-Steuereinrichtung |
| JP3192664B2 (ja) * | 1991-01-22 | 2001-07-30 | 株式会社日立製作所 | キャッシュメモリシステムおよびキャッシュメモリコントローラ |
| US5214652A (en) * | 1991-03-26 | 1993-05-25 | International Business Machines Corporation | Alternate processor continuation of task of failed processor |
| US5369757A (en) * | 1991-06-18 | 1994-11-29 | Digital Equipment Corporation | Recovery logging in the presence of snapshot files by ordering of buffer pool flushing |
| US5408636A (en) * | 1991-06-24 | 1995-04-18 | Compaq Computer Corp. | System for flushing first and second caches upon detection of a write operation to write protected areas |
| EP0529303A3 (en) * | 1991-08-29 | 1993-09-22 | International Business Machines Corporation | Checkpoint synchronization with instruction overlap enabled |
| US5293613A (en) * | 1991-08-29 | 1994-03-08 | International Business Machines Corporation | Recovery control register |
| US5269017A (en) * | 1991-08-29 | 1993-12-07 | International Business Machines Corporation | Type 1, 2 and 3 retry and checkpointing |
| US5313647A (en) * | 1991-09-20 | 1994-05-17 | Kendall Square Research Corporation | Digital data processor with improved checkpointing and forking |
| US5325519A (en) * | 1991-10-18 | 1994-06-28 | Texas Microsystems, Inc. | Fault tolerant computer with archival rollback capabilities |
| WO1993009494A1 (en) * | 1991-10-28 | 1993-05-13 | Digital Equipment Corporation | Fault-tolerant computer processing using a shadow virtual processor |
| US5363503A (en) * | 1992-01-22 | 1994-11-08 | Unisys Corporation | Fault tolerant computer system with provision for handling external events |
| US5394542A (en) * | 1992-03-30 | 1995-02-28 | International Business Machines Corporation | Clearing data objects used to maintain state information for shared data at a local complex when at least one message path to the local complex cannot be recovered |
| US5448719A (en) * | 1992-06-05 | 1995-09-05 | Compaq Computer Corp. | Method and apparatus for maintaining and retrieving live data in a posted write cache in case of power failure |
| US5398331A (en) * | 1992-07-08 | 1995-03-14 | International Business Machines Corporation | Shared storage controller for dual copy shared data |
| US5485585A (en) * | 1992-09-18 | 1996-01-16 | International Business Machines Corporation | Personal computer with alternate system controller and register for identifying active system controller |
| GB2272549B (en) * | 1992-11-03 | 1997-01-29 | Tolsys Ltd | Memory checkpointing |
| US5408649A (en) * | 1993-04-30 | 1995-04-18 | Quotron Systems, Inc. | Distributed data access system including a plurality of database access processors with one-for-N redundancy |
| JPH0713838A (ja) * | 1993-06-14 | 1995-01-17 | Internatl Business Mach Corp <Ibm> | エラーの回復方法及び装置 |
| US5418940A (en) * | 1993-08-04 | 1995-05-23 | International Business Machines Corporation | Method and means for detecting partial page writes and avoiding initializing new pages on DASD in a transaction management system environment |
| US5568380A (en) * | 1993-08-30 | 1996-10-22 | International Business Machines Corporation | Shadow register file for instruction rollback |
| US5504861A (en) * | 1994-02-22 | 1996-04-02 | International Business Machines Corporation | Remote data duplexing |
| US5566297A (en) * | 1994-06-16 | 1996-10-15 | International Business Machines Corporation | Non-disruptive recovery from file server failure in a highly available file system for clustered computing environments |
| GB2290891B (en) * | 1994-06-29 | 1999-02-17 | Mitsubishi Electric Corp | Multiprocessor system |
| US5557735A (en) * | 1994-07-21 | 1996-09-17 | Motorola, Inc. | Communication system for a network and method for configuring a controller in a communication network |
| US5649152A (en) * | 1994-10-13 | 1997-07-15 | Vinca Corporation | Method and system for providing a static snapshot of data stored on a mass storage system |
| US5530946A (en) * | 1994-10-28 | 1996-06-25 | Dell Usa, L.P. | Processor failure detection and recovery circuit in a dual processor computer system and method of operation thereof |
| US5651124A (en) * | 1995-02-14 | 1997-07-22 | Hal Computer Systems, Inc. | Processor structure and method for aggressively scheduling long latency instructions including load/store instructions while maintaining precise state |
| US5630047A (en) * | 1995-09-12 | 1997-05-13 | Lucent Technologies Inc. | Method for software error recovery using consistent global checkpoints |
-
1995
- 1995-06-07 EP EP95921611A patent/EP0764302B1/en not_active Expired - Lifetime
- 1995-06-07 WO PCT/US1995/007168 patent/WO1995034860A1/en not_active Ceased
- 1995-06-07 JP JP8502301A patent/JPH10506483A/ja active Pending
- 1995-06-07 DE DE69506404T patent/DE69506404T2/de not_active Expired - Fee Related
- 1995-06-07 AU AU26630/95A patent/AU2663095A/en not_active Abandoned
-
1996
- 1996-07-02 US US08/674,660 patent/US5787243A/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| WO1995034860A1 (en) | 1995-12-21 |
| DE69506404D1 (de) | 1999-01-14 |
| EP0764302A1 (en) | 1997-03-26 |
| DE69506404T2 (de) | 1999-05-27 |
| AU2663095A (en) | 1996-01-05 |
| EP0764302B1 (en) | 1998-12-02 |
| US5787243A (en) | 1998-07-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH10506483A (ja) | フォールト・トレラントなコンピュータ・システムのためのメイン・メモリ・システム及びチェックポイント用プロトコル | |
| JP2916420B2 (ja) | チェックポイント処理加速装置およびデータ処理方法 | |
| US6148416A (en) | Memory update history storing apparatus and method for restoring contents of memory | |
| US5864657A (en) | Main memory system and checkpointing protocol for fault-tolerant computer system | |
| JP4073464B2 (ja) | リード・バッファを用いたフォールト・トレラント・コンピュータ・システム用主メモリ・システムおよびチェックポインティング・プロトコル | |
| US5958070A (en) | Remote checkpoint memory system and protocol for fault-tolerant computer system | |
| JP3086779B2 (ja) | メモリ状態復元装置 | |
| US10776267B2 (en) | Mirrored byte addressable storage | |
| CN116472512B (zh) | 片上系统(soc)的增强的耐久性 | |
| JP5392594B2 (ja) | 仮想計算機冗長化システム、コンピュータシステム、仮想計算機冗長化方法、及びプログラム | |
| JPH1083351A (ja) | キャッシュフラッシュ装置および同装置を適用した計算機システム | |
| JP2009516277A (ja) | 少なくとも2つのレジスタ付き処理ユニットを有するシステムにおいてエラーを除去する装置および方法 | |
| CN117632599A (zh) | 纵向扩展numa系统中的机箱维修和迁移 | |
| US7493517B2 (en) | Fault tolerant computer system and a synchronization method for the same | |
| JPH10154134A (ja) | メモリ更新履歴保存装置およびメモリ更新履歴保存方法 | |
| JP3348420B2 (ja) | メモリーコピー機能を備えた情報処理装置 | |
| JP2008171058A (ja) | システムコントローラ、プロセッサ、情報処理システムおよび情報処理プログラム | |
| JP3833760B2 (ja) | 計算機システム及びメモリ状態復元装置 | |
| JP2000181738A (ja) | 二重化システム及びメモリ制御方法 | |
| JPH08202622A (ja) | 分散型メモリ構成のキャッシュ制御方法 | |
| JPH10149307A (ja) | チェックポイント処理方法及び記録媒体 | |
| JPH10240630A (ja) | コンピュータシステム及び同システムに適用するメモリ制御方法 | |
| JPH07271624A (ja) | フォールトトレラント計算機システムにおける2重化メモリへのキャッシュフラッシュ方法 | |
| JP2000501216A (ja) | リード・バッファを用いたフォールト・トレラント・コンピュータ・システム用主メモリ・システムおよびチェックポインティング・プロトコル | |
| JP2001084178A (ja) | データ記憶素子および電子計算機 |