JP4073464B2 - リード・バッファを用いたフォールト・トレラント・コンピュータ・システム用主メモリ・システムおよびチェックポインティング・プロトコル - Google Patents

リード・バッファを用いたフォールト・トレラント・コンピュータ・システム用主メモリ・システムおよびチェックポインティング・プロトコル Download PDF

Info

Publication number
JP4073464B2
JP4073464B2 JP2006343089A JP2006343089A JP4073464B2 JP 4073464 B2 JP4073464 B2 JP 4073464B2 JP 2006343089 A JP2006343089 A JP 2006343089A JP 2006343089 A JP2006343089 A JP 2006343089A JP 4073464 B2 JP4073464 B2 JP 4073464B2
Authority
JP
Japan
Prior art keywords
memory
checkpoint
processor
read 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.)
Expired - Fee Related
Application number
JP2006343089A
Other languages
English (en)
Other versions
JP2007128540A (ja
Inventor
スティフラー,ジャック・ジェイ
Original Assignee
ラディシス・コーポレーション
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 ラディシス・コーポレーション filed Critical ラディシス・コーポレーション
Publication of JP2007128540A publication Critical patent/JP2007128540A/ja
Application granted granted Critical
Publication of JP4073464B2 publication Critical patent/JP4073464B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/1407Checkpointing 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)
  • Retry When Errors Occur (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、特にフォールト・トレラント・コンピュータ・システムのための、コンピュータ・メモリ・システムおよびチェックポインティング・プロトコル(checkpointing protocol)に関するものである。
コンピュータにおけるフォールト・トレランスは、通常、マスキングと呼ばれるハードウエア集約的な技法、またはチェックポインティングと呼ばれるソフトウエアに基づく手法のいずれかによって実現されている。マスキングを達成するには、同一ハードウエアを複数系統備え、コンピュータ・プログラムを数個の独立した装置で並列に実行する。次に、これら装置の出力を比較し、それらの有効性を判定する。この技法の最も単純かつ古い実施形態では、3台の完全なコンピュータを装備し、それらの出力に単純な多数決方式を用いて、「正しい」出力を判定する。これらのコンピュータの内少なくとも2台が適正に動作しており、投票システム自体が正しく稼働している場合、誤動作しているコンピュータの潜在的に正しくない可能性がある出力は排除(outvote)され、実際には正しい答えがユーザに提示される。
これよりはいくらか効率的なマスキングの別の実施形態もあるが、マスキング・システムは通常、障害を発生した構成要素の影響を排除するためにハードウエアを追加しなければならないため、コストが著しく増大するという問題がある。加えて、マスキングは、ハードウエアの障害に対する保護を行うに過ぎない。1つの装置に誤動作を発生させるソフトウエアのバグは、同じソフトウエアを実行する他の装置にも、同様に誤動作を発生させる。全ての出力が同じエラーを含み、その結果、このエラーは検出されずに通過してしまうことになる。
チェックポインティングと呼ばれる代替技法は、格段にコスト効率が高い方法で、障害に対する耐性を与える潜在的可能性を有する。この技法は、コンピュータ全体の状態を、周期的に、チェックポイントとして指定した時間間隔で記録する必要がある。障害は、ハードウエアの障害モニタによって(例えば、エラー検出コードを用いてエンコードされたデータに作用するデコーダ、温度または電圧センサ、あるいは別の同一の装置を監視する1つの装置によって)検出するか、またはソフトウエアの障害モニタ(例えば、データ構造内のスタック・ポインタまたはアドレス上で、範囲外状態をチェックする実行コードの一部として実行されるアサーション(assertion))によって検出することができる。障害が検出された場合、回復するには、まず最初に診断を行い、可能であれば誤動作装置を迂回し、次いでシステムを最後のチェックポイントに戻し、このポイントから正常な動作を再開することが必要である。
回復が可能なのは、障害を発生したと識別されたあらゆる要素を、回復過程の間に迂回し、その後に十分なハードウエアが動作可能状態であり続ける場合である。例えば、マルチプロセッサ・システムでは、プロセッサの内少なくとも1つが機能し続ける限り、システムは動作し続けることができる。同様に、メモリのリマップを行うことができるシステム、あるいは代替ポートを通じてI/Oを割り当てなおすことができるシステムは、同様に、メモリまたはI/O資源の損失を克服することができる。更に、コンピュータ・システムにおいて見られる殆どの障害は、性質上瞬時的または間欠的であり、それら自体が一時的なグリッチ(glitch)に過ぎない。したがって、通常は、ハードウエアの迂回を全く行うことなく、かかる障害からの回復は可能である。しかしながら、瞬時的な障害および間欠的な障害は、永続的な障害と同様、障害時に操作されているデータを変転させる可能性があるので、かかるイベントの後にコンピュータが常に戻ってくる状態を有する必要がある。これが、周期的なチェックポイント状態(checkpointed state)の目的である。
チェックポイントは、典型的に50ミリ秒程度毎に設けられているので、実行中のプログラムをその最後のチェックポイントまで後退させることは、通常ユーザには完全に透過的(トランスペアレント)である。適正に処理すれば、連続性の損失やデータの汚染(contamination)を発生することなく、全てのアプリケーションをその最後のチェックポイントから再開することができる。
チェックポインティングには、マスキングに比較して、2つの主要な利点がある。第1に、チェックポインティングは、実装にかかる費用が非常に少なくて済む。第2にチェックポインティングは、ハードウエア障害だけでなくソフトウエア障害に対する保護も提供する。第1の利点は、単純に、チェックポインティングは大量の同一ハードウエアの装備を必要としないという事実を反映したに過ぎない。第2の利点は、十分に検査され完成度の高いソフトウエアにおいては、殆どのソフトウエア・バグは例外的な状況においてのみ露見されるだけであるという事実の結果である。これが正しくなければ、バグは通常の検査時に発見され、除去されるであろう。かかる例外的な状況は、一般的に、非同期的なイベントによって発生する。非同期的なイベントとは、割り込みが発生して、あるシーケンスに続いてプログラムの実行を強制するが、割り込みが発生しなければそのシーケンスに続いて実行するようなことはない場合である。システムを一貫性のある状態に強制的に戻し、動作させ続けた場合、即ち、ソフトウエア・バグをハードウエアの過渡現象(transient)として扱った場合、システムが以前と正確に同じ状態で正確に同じ例外に遭遇する可能性は非常に低い。その結果、同じバグに2回遭遇する可能性は非常に低い。
また、チェックポインティングには、マスキングに比較して、2つの潜在的な欠点がある。第1に、マスキングは通常障害から瞬時的またはほぼ瞬時的に回復する。結果的に発生するあらゆるエラーは、単純にマスクしてしまうので、明確な回復は不要である。チェックポインティングは、ある種のソフトウエア・ルーチンを実行し、問題を診断し、コンピュータの永続的に誤動作を発生するあらゆる構成要素を迂回する必要がある。その結果、回復に要する時間は、典型的に、1秒程度であり、応答時間がミリ秒未満の単位であることを要求するリアル・タイム・アプリケーションでは、フォールト・トレランスを達成するためにこの技法を用いることができない場合がある。しかしながら、人が直接コンピュータと双方向処理を行う用途、例えば、トランザクション処理の用途では、1秒程度の一時的な割り込みは、問題なく容認可能であり、実際、通常では気付かれもしない。したがって、このチェックポインティングの潜在的な欠点は、この種の用途には無関係である。
第2に、チェックポインティングは、従来より、アプリケーション・レベルで達成されていた。したがって、アプリケーション・プログラマは、どのデータについてチェックポイント処理を行うのか、いつそれを行うべきかについて関与しなければならなかった。この要求は、プログラマにとっては重大な負担であり、フォールト・トレランスを達成する手段としての、チェックポインティングの使用普及を著しく妨げていた。
近年になって、システム・ソフトウエア・レベルでチェックポインティングを可能にする技法が開発されたので、アプリケーション・プログラマは、チェックポイント処理対象とすべきデータを識別しようとすることに気を使うことはなくなり、チェックポインティングが行われることを知る必要すらなくなった。これを可能にするには、システム自体が、実行させ得るアプリケーションには無関係に、周期的なチェックポイントを設けることができなければならない。Stifflerの米国特許第4,654,819号および第4,819,154号は、正しくこれを行うことができるコンピュータ・システムについて記載するものである。このシステムは、この種のチェックポインティングを達成するために、そのプロセッサの各々に、新しいチェックポイントを確立し、全ての変更データを主メモリにフラッシュ(flush out)できるようになるまで、全ての変更データをそのローカル・キャッシュに保持することを要求する。このようなキャッシュのことを、時としてブロッキング・キャッシュ(blocking cache)と呼ぶこともある。プロセッサは、そのブロッキング・キャッシュをフラッシュする前に、内容切り替え(context switch)を行い、この間に、そのプログラム・カウンタを含むその内部レジスタの内容を、スタック上に置き、このスタックを他の変更データ全てと共にフラッシュ(flush)する。その結果、内部的に一貫性のあるデータによって、一度でメモリを更新することにより、その後システムに障害が発生した場合でも、システムが安全に戻ることができるチェックポイントを確立する。主メモリ障害およびフラッシュ動作自体の間に発生する障害の双方を克服する機能を保証するためには、メモリを2系統備え、各データ項目を、主要位置およびシャドウ位置(shadow location)の双方に格納する。
この技法は、アプリケーション・プログラマに負担をかけずに、チェックポイントを確立するという目標は達成するものの、そのブロッキング・キャッシュの使用に依存することによる、ある種の欠点を有する。プロセッサは、現在変更されているラインを同時に全て書き戻す場合以外は、いずれのキャッシュ・ラインも主メモリに書き戻すことができないので、キャッシュのオーバーフローが発生したとき、またはあるプロセッサによって他のプロセッサのキャッシュに保持されているデータに対する要求が行われたときはいつでも、データをフラッシュしているプロセッサに、そのキャッシュ全体を書き出すように要求することなる。この要件は、標準的なキャッシュ・コヒーレンシ・プロトコル(例えば、Gallagherの米国特許第5,276,848号に記載されているプロトコル)の使用を妨げ、プログラムがかかる標準的プロトコルに基づいて実行される場合、潜在的なポーティング(porting)や性能上の問題を生ずる。
例えば、Kirrmann(米国特許第4,905,196号)およびLee et al.("A Recovery Cache for the PDP-11" (PDP−11用回復キャッシュ), IEEE Trans. on Computers, 1980年6月)によって、チェックポインティングの目的のためにデータを捕獲する別の方法が提案されている。Kirrmannの方法は、カスケード状メモリ格納素子を用いる。これは、主メモリと、それに続く2つのアーカイブ・メモリから成り、各アーカイブ・メモリは主メモリと同じサイズとなっている。主メモリへの書込みは、プロセッサによってライト・バッファにも行われる。チェックポイントを確立する時刻になった場合、バッファされたデータをプロセッサがまずアーカイブ・メモリの一方にコピーし、次いで第2のアーカイブ・メモリにコピーする。しかし、これらのコピーの一方の必要をなくする技法についても記載されている。2つのアーカイブ・メモリは、バッファからメモリへのコピーが行われている最中に障害が発生しても、それらの少なくとも一方が有効なチェックポイントを含むことを保証する。このアーキテクチャに伴う問題には、3系統のメモリを備えなければならないこと、アーカイブ・メモリのために速度の遅いメモリを使用すること、および3つのメモリ素子が同一バス上の異なるポートとなるためのプロセッサの処理能力に影響が及ぶことが含まれる。
Lee et al. による論文では、アプリケーションによって特定されるアドレス範囲内に該当する全てのメモリ位置について、更新データがメモリに書き込まれる前に、データを回復キャッシュにセーブする方法が論じられている。この方法は、アプリケーションによって指定される範囲内のメモリに対する全てのライトを、ライト前リード動作(read-before-write operations)に変換する。アプリケーションの実行の間に障害が発生した場合、回復キャッシュの内容を主メモリに格納し戻すことによって、アプリケーションがその現実行を開始した時点における状態に、それを回復する。この方法の問題の1つに、ライト後リード動作によるメモリ・サイクルの干渉のために、ホスト・システムの速度低下を招き、これによってバス・プロトコルの変更が余儀なくされることがあげられる。また、これもアプリケーション・プログラマがチェックポインティングの処理または考慮に関与することを要求する。
主メモリ以外に、ディスク上にデータのミラー(mirror)を作成する、別の技法が開発されている。ディスクのアクセスは主メモリのアクセスより数桁遅いので、このような方式は、データ・ファイルのミラー作成に限定されている。即ち、障害によってこれらのファイルへの主要アクセス経路が絶たれた場合に、バックアップをディスク・ファイルに供給する場合に限定されている。システムのユーザに対して透過的に、プログラムの連続性を保持したり、あるいは実行中のアプリケーションを回復する試みはなされていない。場合によっては、ミラー・ファイル同士の一貫性を保つことを保証するのでさえ不可能であり、それらは同一ファイルの別のコピーと一貫性があるに過ぎない。米国特許第5,247,618号は、かかる方式の一例を開示している。
本発明の実施形態は、主メモリ装置、およびコンピュータ・システムにおいて、従来のキャッシュ・コヒーレンシ・プロトコルおよび非ブロッキング・キャッシュの使用を許しつつ、コンピュータ・システムの主メモリにおいて、一貫性があり、周期的に更新されるチェックポイント状態を維持するためのプロセスを提供する。主メモリ装置は、1つ以上の論理ポートを介してアクセスされる。主メモリは、基本メモリ素子およびチェックポイント・メモリ素子を含み、これら双方はポートに結合されている。基本メモリ素子は、標準的な主メモリと同様にアクセスされる。チェックポイント・メモリ素子は、主メモリからのある種のデータ・アクセスを捕獲する。このデータ・アクセスが検出可能なのは、チェックポイント・メモリ素子が、基本メモリ素子と同じポートに接続されているからである。チェックポイント・メモリ素子は、基本メモリ素子とは物理的に別個のメモリ・モジュールとしてもよく、あるいはチェックポイント・メモリ素子および基本メモリ素子が、同一メモリ・モジュール内の異なるアドレスに位置していてもよい。これらの捕獲(capture)されたアクセスを用いて、次に主メモリにおける一貫したチェックポイント状態の存在を保証する。かかる主メモリ装置を用い、適切な検出および迂回手順を有するコンピュータ・システムは、データの保全性や処理の連続性を損なうことなく、障害から回復することが可能である。
典型的なコンピュータ・システムでは、プロセッサおよび入出力素子は、主メモリに接続されている。この接続は、典型的に、1系統以上のメモリ・バス、交差点スイッチ、またはその他の機構によって与えられる。主メモリは、1つ以上の論理ポートを有し、主メモリへのアクセスは、全てこれらを通じて行われる。
本発明の一実施形態では、コンピュータ・システムは、主メモリとバッファ・メモリとを有する。バッファ・メモリは、通常、後入れ先出しメモリまたはスタックであり、全てのデータの予備画像(pre-image)を捕獲する。これは、続いてコンピュータ・システムの主メモリに書き戻される。チェックポイントは、主メモリ内において周期的に確立される。バッファ・メモリ内に格納されているデータは、各チェックポイント処理の後に破棄される。障害の場合、主メモリは、バッファ・メモリ内に格納されているデータを、コンピュータ・システムの主メモリにコピーすることによって、以前のチェックポイントの状態に戻ることができる。本実施形態のコンピュータ・システムは、シャドウ・メモリを含み、主メモリの障害に対するフォールト・トレランスを与えることも可能である。本実施形態のシャドウ・メモリは、バッファ・メモリに最初に格納されるデータ以外は、主メモリに書き込まれる全てのデータを捕獲する。主メモリの障害の場合、バッファ・メモリを用いて、シャドウ・メモリを、最後のチェックポイントにおける主メモリの状態に再現することができ、シャドウ・メモリを主メモリの代用とすることができる。
本発明によるシステムでは、入出力(I/O)動作は、通常以下のように処理される。通常動作の間、I/O要求はいずれかの標準的な方法で行われ、オペレーティング・システムによって適切なI/Oキューに入力される。しかしながら、実際の物理的I/O動作は、次のチェックポイントまで開始されない。したがって、障害および続くチェックポイント状態への後退の場合、全ての保留のI/O動作もチェックポイント処理の対象となる。ディスクおよびその他のアイデンポネント(idempotent)I/O動作、即ち、結果を変化させることなく繰り返し可能な動作は、単に再起動することができる。
通信I/O動作の適切な処置は、通信プロトコルに依存する。可能なメッセージの複製に対処するプロトコルでは、保留のI/Oを再起動することができる。欠落したメッセージを処理するプロトコルでは、I/Oを保留のキューから削除することができる。欠落メッセージも繰り返しメッセージも処理しないプロトコルでは、保留のI/Oは保留キュー(保留待ち行列:pending queue)から削除される。障害の前にメッセージが実際に送出されなかった場合、または障害の結果として中止された場合、過渡通信リンク障害と影響は同一であり、同じ結果がアプリケーションまたはユーザにもたらされる。通信リンク割り込みは、通常、コンピュータ障害よりもかなり多く発生するので、かかるイベントを透過的にすることができないプロトコルの使用は、おそらく、ユーザまたはアプリケーションは、いずれにせよ、それらと対処する準備がなされていることを意味する。
ここに記載する機構は、コンピュータが障害に続いて動作を再開することができる、一貫性のあるチェックポイント状態の存在を保証することができ、こうしてフォールト・トレラント動作を可能にする。
本発明は、添付図面と関連付けて読むべき、以下の詳細な説明によって一層深く理解されよう。尚、添付図面では、同様の参照番号は同様の構造を示すものとする。1994年6月10日に出願された、同一出願人の同時係属中の米国特許出願番号第08/258,165号を引用する。この言及により、これは本願にも含まれるものとする。
図1は、本発明の使用が概ね可能なコンピュータ・システム11のブロック図である。1つ以上の処理素子14および16が、バスまたは交差点スイッチのような相互接続機構10および12を介して、1つ以上の主メモリ・システム18および20に接続されている。1つ以上の入出力(I/O)サブシステム22および24も、相互接続機構10(12)に接続されている。各I/Oサブシステムは、入出力(I/O)素子またはブリッジ26(28)、および1系統以上のバス30および32(34および36)から成る。I/O素子26(28)も、VMEバスのような、いずれかの標準的なI/Oバス38(40)に接続することができる。記載を簡単にするために、以下では、これらのシステム群およびサブシステム群は、各々その1つのみについて言及することにする。
各処理素子、例えば、14は、キャッシュ42に接続された処理ユニット44を含む。この接続は、処理ユニット44およびキャッシュ42を相互接続機構10に接続するものでもある。処理ユニット44は、いずれかの標準的なマイクロプロセッサ・ユニット(MPU:microprocessor unit)とすればよい。例えば、Intel Corporationから入手可能なPENTIUM(登録商標)マイクロプロセッサは、この目的に適している。処理ユニット44は、従来と同様、いずれかの適切なオペレーティング・システムにしたがって動作する。処理素子14は、自己検査の目的のために、二重処理ユニット44を含んでもよい。
キャッシュ42は、ライト・スルーまたはライト・バック型のキャッシュであり、任意のサイズおよび連想性(associativity)を有し、1キャッシュ・レベル以上の階層構造から成るものとしてもよい。処理ユニット44は、キャッシュ42内に、データのみを格納することも、コンピュータ・プログラムの命令およびデータ双方を格納することも可能である。前者の場合、同様の命令キャッシュ43を追加として処理ユニット44に接続し、処理ユニット44がコンピュータ・プログラム命令を格納するようにしてもよい。この接続は、命令キャッシュ43を相互接続機構10に接続するものでもある。このシステムが多重処理コンピュータ・システムである場合、各処理ユニット44は、バス・スヌーピング(bus snooping)のような、従来のいずれかの機構を用いてキャッシュ・コヒーレンシを保持することができる。キャッシュ42は、例えば、相互接続機構10を介して、主メモリ・システムに接続されている。
本発明によるチェックポイントに基づくフォールト・トレラント・コンピュータ・システム200の一実施形態を図2に示す。図2に示す実施形態では、チェックポイント・メモリ素子213は、後入れ先出し(LIFO:last-in, first-out)リード・バッファ・メモリ216を利用し、障害の後、シャドウ・メモリ222をチェックポイント状態に戻す。図2に示すフォールト・トレラント・コンピュータ・システム200は、メモリ・バス214に結合された基本メモリ212、メモリ・バスに結合されたプロセッサ218、チェックポイント・メモリ213から成り、チェックポイント・メモリ213は、基本メモリと同一の論理ポートを用いてメモリ・バスに結合されたLIFOリード・バッファ・メモリ216、基本メモリと同一の論理ポートを用いてメモリ・バス214に結合されたシャドウ・メモリ222、メモリ・バス、LIFOリード・バッファ・メモリおよびシャドウ・メモリに結合されたメモリ制御ロジック217を含む。バス214を介して、プロセッサにI/O装置を結合することも可能である。バス214は、交差点スイッチのような、別の種類の相互接続機構としてもよい。図1に示すように、図2におけるシステム2は、多数のおよび/または冗長なプロセッサ、I/O素子、相互接続部等を有することも可能である。
本実施形態の動作について、図3を参照しながら説明する。LIFOリード・バッファ・メモリ216は、基本メモリ212から読み出したある種のデータを、関連するアドレスとともに格納する(ステップ254および256)。基本メモリに書き込まれたデータは、基本メモリ212およびシャドウ・メモリ222双方によって格納されるので、シャドウ・メモリの内容は、「ミラー」形態となっている。即ち、基本メモリの内容と同じデータを含む。メモリ制御ロジック217は、メモリ間のデータ転送を制御する。
プロセッサ218、およびメモリ・バス214に結合された他のいずれのプロセッサも、それらのキャッシュを周期的に基本メモリ212にフラッシュし、チェックポイントを確立する(ステップ250)。新しいチェックポイントが引き渡されるとき、LIFOリード・バッファ・メモリの内容は破棄される(ステップ252)。LIFOリード・バッファ・メモリ216の内容をシャドウ・メモリ222に書き込む必要はない。キャッシュフラッシュについての説明は、図1および図4ないし図6に関連付けて行う。
一貫性のあるシステム状態のチェックポイント処理を行うために、プロセッサは同期してキャッシュをフラッシュする。一旦処理素子14がフラッシュを開始したなら、他の全ての処理素子14がそれらのフラッシュを完了するまで、以下で論ずるある種の条件下を除いて、通常の動作を再開することができない。コンピュータ・システム内の全ての処理ユニット44が全てのバス、または主メモリへの通信経路へのアクセスを有する場合、各処理ユニット44は従来のバス・スヌーピング法を用いて、キャッシュ・コヒーレンシを保証してもよい。全ての処理ユニット44が全てのシステム・バスにアクセスを有するのではない場合、処理ユニット44は、代わりに、他のよく知られているキャッシュ・コヒーレンシ技法(cache coherency technique)を用いても良い。
プロセッサのキャッシュフラッシュを同期させるのは、バッファ・メモリがフラッシュ後データおよびフラッシュ前データ間の区別をする必要があるためである。したがって、バッファがこの区別を行うことができない場合、全てのプロセッサは、通常動作を開始可能となる前に、それらのフラッシュを完了させ、一貫性を保持するようにしなければならない。同期を制御するには、好ましくは、図4の80に示すように、主メモリ内の指定された位置を用いて、検査および設定ロック処理または同等の処理を用い、ロック値を格納する。基本メモリ素子の障害およびその他の障害からの回復が可能であることを保証するために、この指定位置は、シャドウ・メモリ素子内のステータス・レジスタの一部として実施することが好ましい。シャドウ・メモリ素子内の障害は、通常の動作を中断させることはない。その結果、このデータ構造は、このイベントでは不要となる。
周期的な間隔で、各処理ユニットは、図5のステップ90に示すように、フラッシュ処理を開始すべきか否かについて判定を行う。処理ユニット44は、この判定を多数の異なる方法で行うことができる。典型的に、フラッシュは、固定時間期間が経過した後に開始すればよい。
この処理ユニット44がフラッシュを開始する必要がない場合、指定メモリ位置80を検査し、他の処理ユニット44が既にロックを設定しているか否かについて判定を行う(ステップ92)。ロックが設定されていない場合、このプロセスは、94に示すように終了する。逆に、ロックが設定されている場合、この処理ユニット44はステップ96においてそのキャッシュ42をフラッシュする。フラッシュ処理の効果は、キャッシュ内の全ライン(または、好ましくは、最後のフラッシュ以降変更されたラインのみ)を基本メモリ素子212、およびチェックポイント・メモリ素子213のシャドウ・メモリ222(ある場合)にも同様に格納することである。実際のフラッシュ処理に先立って、処理ユニット44は、その状態をキャッシュ42にセーブし、この情報も同様にフラッシュされるようにする。
入出力(I/O)動作は、通常、以下のように処理される。通常動作の間、I/O要求は、オペレーティング・システムによって、いずれかの標準的な方法で発せられ、適切なI/Oキューに入力される。しかしながら、実際の物理的なI/O動作は、次のチェックポイントまで開始されない。したがって、障害およびそれに続くチェックポイント処理済み状態(checkpointed state)への後退の場合、全ての保留のI/O動作にも、チェックポイント処理が行われる。ディスクおよびその他のアイデンポネントI/O動作、即ち、結果を変化させることなく繰り返すことができる動作は、単に再起動することができる。
通信I/O動作の適切な処置は、通信プロトコルに依存する。可能なメッセージの複製に対処するプロトコルでは、保留のI/Oを再起動することができる。欠落したメッセージを処理するプロトコルでは、I/Oを保留のキューから削除することができる。欠落メッセージも繰り返しメッセージも処理しないプロトコルでは、保留のI/Oは保留キューから削除される。障害の前にメッセージが実際に送出されなかった場合、または障害の結果として中止された場合、過渡通信リンク障害と影響は同一であり、同じ結果がアプリケーションまたはユーザにもたらされる。通信リンク割り込みは、通常、コンピュータ障害よりもかなり多く発生するので、かかるイベントを透過的にすることができないプロトコルの使用は、おそらく、ユーザまたはアプリケーションは、いずれにせよ、それらと対処する準備がなされていることを意味する。
処理ユニット44がステップ90において、フラッシュを開始すべきと判定した場合、ステップ92と同様、ステップ98において、ロックが既に設定されているか否かについて判定を行う。ロックが既に設定されている場合、処理ユニット44は、ステップ96において、そのキャッシュ42のフラッシュを継続する。その他の場合、ステップ100においてロックを設定し、他のプロセッサにメッセージを送り、それらのフラッシュライン動作をトリガすることによって、そのキャッシュ42をフラッシュする前に、それ自体をフラッシュのイニシェータ(initiator)として識別する。
処理ユニット44がステップ96においてそのキャッシュ42をフラッシュした後、ステップ102においてその対応するフラッシュカウンタを増分する。図4に示すように、各処理ユニット44は、82および84で示すようなフラッシュカウンタを有し、これらは、主メモリ18内の所定の指定された位置である。フラッシュカウンタ(例えば82)を増分した後、処理ユニット44は、それがこのフラッシュシーケンスのイニシェータであるか否かについて判定を行う(ステップ104)。イニシェータでない場合、ステップ106において、ロックが解除されるまで待つ。ロックが解除されたなら、このプロセスはステップ108において終了し、処理ユニット44は通常動作を再開することができる。
ステップ104の判定において、処理ユニット44がフラッシュのイニシェータであった場合、ステップ105において、全てのフラッシュカウンタ(82〜84)が増分されるまで待つ。一旦全てのフラッシュカウンタが増分されたなら、この処理ユニット44は、委託コマンド(commit command)をチェックポイント・メモリ素子に送ることにより、チェックポイント・メモリ素子231にリード・バッファ216をクリアするように命令する。コマンドの受信は、チェックポイント・メモリ素子213に、フラッシュが完了したことを通知する。一旦この命令が送られたなら、フラッシュロックが解除され、処理ユニット44は通常の処理を再開することができる。ステップ106ないし110間のループは、タイム・アウト保護を有し、フラッシュ動作中の障害の場合に、障害回復手順をトリガするようにすべきである。
ここに記載するフラッシュカウンタは、1ビット・カウンタとすればよく、したがってチェックポイント・メモリ素子213内のステータス・レジスタの一部として容易に実装可能であることを注記しておく。ビットは、各プロセッサによって個別に設定し、イニシェータが委託コマンドを送った場合には自動的にリセットすることができる。
ある種の非標準的バス・プロトコルも実装した場合、処理能力上の利点を得ることができる。例えば、バス・プロトコルが、チェックポイント・メモリ素子213に処理素子14間で識別すること、または格納対象のラインに書き込みを行ったのは、i回目のフラッシュを完了した処理素子14か、またはi回目のフラッシュを未だ実行中の処理素子かを少なくとも識別すること、あるいはフラッシュ後データからフラッシュ前データを少なくとも識別することを可能にする場合、処理素子14は、通常の動作を開始する前に、他の全ての処理素子がそれらのフラッシュを完了するまで待つ必要はない。この場合、処理素子14に、そのi回目のフラッシュを完了した後に、全ての処理素子16も少なくともそのi回目のフラッシュを開始する(しかし、完了するまでの必要はない)まで、正常動作を保留することを要求することによって、主メモリにおける一貫性を保持する。
このように同期の制約を緩和してもなお、一貫したチェックポイント状態の存在は保証される。即ち、フラッシュを開始していない処理素子16は、フラッシュを完了し通常処理を再開した他の処理素子14から、フラッシュ後の変更されたデータを受け取らないことを保証する。この同期に対する制約が緩いプロトコルが許されるのは、恐らくバス・プロトコルを用いる、チェックポイント・メモリ素子213に関連するロジックが、フラッシュ動作の一部として書き込まれるデータと、フラッシュを完了した処理素子14によって読み出されているデータまたは書き込まれているデータとの間で区別することができる場合である。この種のキャッシュフラッシュ同期を実施するためには、図5のステップ96および102の順番および配置を、図6に示すように逆にすればよい。
フォールト・トレラント・コンピュータ・システム200における障害の場合(ステップ258)、リード・バッファ・メモリ216から捕獲したデータを用いて、チェックポイント処理の時点において、それらの状態に対する最後のチェックポイント処理以降変更された、基本メモリおよびシャドウ・メモリの全ラインを回復する(ステップ256)。LIFOリード・バッファ・メモリは、最後のチェックポイント以降変更された基本メモリ内のいずれのラインについても、最後のチェックポイント時におけるこれらラインの状態を含む。最後のチェックポイント以降何回も変更されている基本メモリ212内のラインの場合、LIFOリード・バッファ・メモリは、中間段階および最後のチェックポイント時におけるラインの状態を含む。LIFOメモリの内容は、それらが書き込まれたときとは逆の順序で読み出されるので、何回も変更されたラインは、基本メモリ内のチェックポイント状態に戻る(ステップ264)。
基本メモリにおいて障害が発生した場合(ステップ260)、シャドウ・メモリを用いて、損傷を受けしかもLIFOリード・バッファ・メモリ内に含まれていない基本メモリ内のデータのあらゆる部分を置き換える。あるいは、シャドウ・メモリは、基本メモリの障害の後、基本メモリの役割を引き受けてもよい。
本実施形態を実施する代わりの方法に、シャドウ・メモリ222を用いないものがある。この実施形態の場合、リード・バッファ・メモリ216は、この場合も、障害の場合直前のチェックポイントの状態に基本メモリを回復するために用いられる。しかしながら、コンピュータ・システムは、基本メモリ212のいずれの部分にしろ損失を発生するに至り、最後のチェックポイント以降LIFOリード・バッファ・メモリ内にその内容が捕獲されていない場合、障害から回復することはできない。
図2に示す本発明の実施形態のリード・バッファリング方式の欠点は、ライト・バッファリング方式とは逆に、プロセッサは通常書き込みよりもかなり多いデータを読み取るので、リード・バッファ・メモリ216は、対応するライト・バッファ・メモリよりもかなり大きくしなければならない場合もあることである。この欠点は、メモリ制御ロジック217がコード・アクセスとデータ・アクセスの間、または以降変更されることはないデータへのアクセスと、以降変更されるデータへのアクセスとの間の区別ができないシステムでは悪化する。読み取られたデータは、いずれかのキャッシュにおいて有効である可能性がある限り、保持されなければならないので、全てのキャッシュの内容全体を周期的に無効化し、LIFOリード・バッファが無限に大きくなるのを防止する必要がある場合もある。
本発明の一実施形態では、キャッシュ・コヒーレンシ・プロトコルを用いて、いずれかのキャッシュ・ラインを変更する最初の試行でも、システムの残り部分に可視化することによって、この欠点を免れている。変更前のラインの状態に対応する、変更対象のラインの予備画像(pre-image)は、変更されたキャッシュ・ラインが基本メモリに再度書き込まれる前に、基本メモリから、また好ましくは、存在するのであればシャドウ・メモリから、LIFOリード・バッファ・メモリにコピーすればよい。これは、コンピュータ・システムによっては、全てのメモリを共有として扱うことによって達成可能なものもある。したがって、各プロセッサは、いずれかのデータ・ラインを変更するときはいつでも、書き込みの意図があるリード動作(read-with-intent-to-write operation)または無効化動作のいずれかを実行するように強制される。これらの動作は、チェックポイント・メモリ素子には見ることができ、関連するアドレスを用いて、バッファすべきものを決定することができる。この方式では、キャッシュ・コヒーレンシ・プロトコルは、キャッシュ内に既にあるあらゆるラインのメモリへの最初の書き込みは全て、LIFOリード・バッファ・メモリ内への、当該ラインの予備画像のメモリからのリードとなることを保証するものでなければならない。あるいは、キャッシュフラッシュ動作の間に行われるものも含む、メモリへのあらゆるライトにおいて、メモリ制御ロジックは、最初に、書き込むべきメモリ位置を読み取り、そのリード・データおよびLIFOバッファ内におけるそれに関連するアドレスを捕獲することができる。この手順は標準的でなく、事実上メモリ帯域が減少する結果となる。尚、アクセスはキャッシュ・ライン全体だけでなく、キャッシュ・ラインの一部に対しても行われる場合があることを理解されたい。
バス・プロトコルの変更を必要としない本発明の他の実施形態は、全てのリードをリード・バッファに捕獲するというものである。この場合、各プロセッサのキャッシュ全体を、フラッシュ時点において無効化する。
本発明のこの実施形態の一変形に、リード・バッファに書き込むべきいずれかのラインのアドレスが、当該バッファに既に格納されているか否かを判定するために最初にチェックを行い、格納されている場合その書込みを禁止することによって、リード・バッファ・メモリにデータを書き込む回数を減らすことができる。この方式は、リード・バッファ・メモリとして、LIFOでなく連想メモリ(content addressable memory)を用いることによって、実施可能である。
上述の本発明の実施形態では、プロセッサ、メモリおよびI/O装置を含む、コンピュータ・システムの個々の要素について、1系統以上のメモリ・バスによって相互接続されたものとして説明した。これらのメモリ・バスは、交差点スイッチのような、データを転送し同じ機能を行う他の相互接続機構で置き換えてもよいことは理解されよう。
本発明の多数の実施形態および変形について説明してきたが、それらは、各々、互いに対して、それ自体の利点および欠点を有すること、およびそれらの内、あらゆる状況においてそれ以外の全てより勝っているものはないことは認められよう。所与の状況に対してどれが最も適切な実施形態であるかは、当該実施形態が適用される基礎となるコンピュータ・プラットフォーム、および所望のレベルのフォールト・トレランスによって異なる。
効果
本発明の従来技術に対する利点の1つは、基礎となるコンピュータ・プラットフォームに、特殊な要件を加えることなく、チェックポイントが確立されることである。第2の利点は、アプリケーション・プログラムもユーザも、チェックポイント処理プロセスに関与する必要がなく、また知る必要もないことである。また、本システムは、メモリの二重化とも適合性がある。これは必ずしも必要ではないが、このために、メモリ障害のみならず、その他のハードウエアおよびソフトウエア障害からも回復が可能となる。この実施形態は、特に、ロー・エンド・システムにおいて、二重化メモリを必要とせずに、ソフトウエア・エラーおよび瞬時的なハードウエア障害から回復する機能を設けるために、特に有用である。
ここに説明した本発明の実施形態から、上述の実施形態は単に例示的であり限定的なものではなく、単に一例として提示したに過ぎないことは、当業者には認められよう。多数の変更およびその他の実施形態は、当業者の範囲内であり、添付の請求の範囲に規定された本発明の範囲およびその均等物に該当するものと見做す。
図1は、本発明の一実施形態の主メモリ構造を用いた、コンピュータ・システムのブロック図である。 図2は、本発明の一実施形態によるリード・バッファ・メモリを利用した、フォールト・トレラント・コンピュータ・システムのブロック図である。 図3は、図2のコンピュータ・システムの動作を記述するフローチャートである。 図4は、処理ユニットが主メモリの一貫性を保持するために用いられるメモリ位置の図である。 図5は、各処理ユニットがどのようにして、そのキャッシュのフラッシュを制御し、主メモリの一貫性を保持するのかを記述するフローチャートである。 図6は、各処理ユニットがそのキャッシュの主メモリへのフラッシュを制御する、別の方法を記述するフローチャートである。

Claims (5)

  1. チェツクポイント・メモリ(213)と基本メモリ(212)を有するコンピュータ・システム200の稼動中のチェックポイント状態を維持する方法であって、該チェツクポイント・メモリが、後入れ先出しリード・バッファ・メモリ(216)を含み、該基本メモリと該後入れ先出しリード・バッファ・メモリが同じポートに接続され、更に該コンピュータ・システム(200)が、各プロッセサが関連したプロッセサ・キャッシュ・メモリ(42)を有する少なくとも1つのプロセッサ(218)を含む、該方法において、以下のステップをそなえることを特徴とする、
    該プロッセサ・キャッシュ・メモリに記憶されたデータを該基本メモリにコピーして該基本メモリにおけるチェックポイントを確立し(250)、該後入れ先出しリード・バッファ・メモリに記憶されたデータを廃棄するステップ(252)であって、該チェックポイントが該コンピュータシステム200の稼働中のチェックポイント状態を表す該ステップと、
    該基本メモリからデータを読出すステップ(254)、
    該後入れ先出しリード・バッファ・メモリ内に該読出したデータを記憶することにより該読出されたデータを捕獲するステップ(256)、
    一定の期間が経過するか又は障害が発生するまで該読出すステップと捕獲するステップを繰り返すステップ(258)、および
    該プロッセサ・キャッシュ・メモリに記憶されたデータを該基本メモリにコピーして該基本メモリにおけるチェックポイントを確立し、一定の期間が経過した時に、該後入れ先出しリード・バッファ・メモリに記憶されたデータを廃棄するステップ、
    を備えることを特徴とする該方法。
  2. 前記コンピュータ・システムにおける前記障害の検出に応答して、前記後入れ先出しリード・バッファ・メモリに記憶された前記読出されたデータを前記基本メモリにコピーすることにより、障害が生じたより前に確立されたチェックポイントに前記基本メモリを戻すステップ(266)と、正常動作を再開するステップとを更に含む請求項1に記載の方法。
  3. 前記基本メモリと同じポートに接続され、さらに前記後入れ先出しリード・バッファ・メモリに接続されたシャドウ・メモリ(222)を更に備え、
    該シャドウ・メモリの内容が前記基本メモリの内容を複写する様に、前記基本メモリに書き込まれた全てのデータを、最初に後入れ先出しリード・バッファ・メモリに記憶させないで、該シャドウ・メモリに記憶することにより、直接捕獲し、
    前記コンピュータ・システムにおける障害の検出に応答して、該基本メモリが動作可能か否かをテストし(260)、
    該基本メモリが動作可能で無い場合は、該後入れ先出しバッファ・メモリの内容を該シャドウ・メモリにコピーし、該障害が生じたより前に該基本メモリに対して確立されたチェックポイントに該シャドウ・メモリを戻し(262)、
    該障害のある基本メモリの役割を該シャドウ・メモリに割り当て(264)、
    該障害のある基本メモリの役割を実行する該シャドウ・メモリにより該コンピュータ・システムの動作を再開する
    ことを特徴とする請求項2に記載の方法。
  4. 前記コンピュータ・システムが、複数のプロッセサを含み、各プロッセサが関連したプロッセサ・キャッシュ・メモリ(42)を有し、
    前記コピーするステップは、同期した状態でプロッセサが関連したプロッセサ・キャッシュ・メモリをコピーする該プロセッサを含む、請求項3に記載の方法。
  5. 前記プロッセサ・キャッシュ・メモリをコピーするプロセッサの同期は、全てのプロッセサが、プロッセサに関連したプロッセサ・キャッシャ・、メモリのコピーが完了するまでプロッセサが正常稼働へ復帰するのを妨げることにより達成される請求項4に記載の方法。
JP2006343089A 1995-11-29 2006-12-20 リード・バッファを用いたフォールト・トレラント・コンピュータ・システム用主メモリ・システムおよびチェックポインティング・プロトコル Expired - Fee Related JP4073464B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/564,024 US5745672A (en) 1995-11-29 1995-11-29 Main memory system and checkpointing protocol for a fault-tolerant computer system using a read buffer

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP52206097A Division JP2001515615A (ja) 1995-11-29 1996-11-27 リード・バッファを用いたフォールト・トレラント・コンピュータ・システム用主メモリ・システムおよびチェックポインティング・プロトコル

Publications (2)

Publication Number Publication Date
JP2007128540A JP2007128540A (ja) 2007-05-24
JP4073464B2 true JP4073464B2 (ja) 2008-04-09

Family

ID=24252868

Family Applications (2)

Application Number Title Priority Date Filing Date
JP52206097A Withdrawn JP2001515615A (ja) 1995-11-29 1996-11-27 リード・バッファを用いたフォールト・トレラント・コンピュータ・システム用主メモリ・システムおよびチェックポインティング・プロトコル
JP2006343089A Expired - Fee Related JP4073464B2 (ja) 1995-11-29 2006-12-20 リード・バッファを用いたフォールト・トレラント・コンピュータ・システム用主メモリ・システムおよびチェックポインティング・プロトコル

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP52206097A Withdrawn JP2001515615A (ja) 1995-11-29 1996-11-27 リード・バッファを用いたフォールト・トレラント・コンピュータ・システム用主メモリ・システムおよびチェックポインティング・プロトコル

Country Status (6)

Country Link
US (1) US5745672A (ja)
EP (1) EP0900420B1 (ja)
JP (2) JP2001515615A (ja)
AT (1) ATE203338T1 (ja)
DE (1) DE69614003T2 (ja)
WO (1) WO1997022045A2 (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3086779B2 (ja) * 1995-06-19 2000-09-11 株式会社東芝 メモリ状態復元装置
US5737514A (en) * 1995-11-29 1998-04-07 Texas Micro, Inc. Remote checkpoint memory system and protocol for fault-tolerant computer system
TW379298B (en) * 1996-09-30 2000-01-11 Toshiba Corp Memory updating history saving device and memory updating history saving method
FR2773234B1 (fr) * 1997-12-31 2003-07-25 Sgs Thomson Microelectronics Memoire a double acces pour processeur de signal numerique
US6256753B1 (en) * 1998-06-30 2001-07-03 Sun Microsystems, Inc. Bus error handling in a computer system
US6230282B1 (en) * 1998-07-03 2001-05-08 Hewlett-Packard Company Checkpoint computer system utilizing a FIFO buffer to re-synchronize the memory systems on the detection of an error
US6338147B1 (en) * 1998-10-29 2002-01-08 International Business Machines Corporation Program products for performing checkpoint/restart of a parallel program
US6401216B1 (en) 1998-10-29 2002-06-04 International Business Machines Corporation System of performing checkpoint/restart of a parallel program
US6393583B1 (en) 1998-10-29 2002-05-21 International Business Machines Corporation Method of performing checkpoint/restart of a parallel program
US6622263B1 (en) * 1999-06-30 2003-09-16 Jack Justin Stiffler Method and apparatus for achieving system-directed checkpointing without specialized hardware assistance
US6810489B1 (en) * 2000-09-06 2004-10-26 Hewlett-Packard Development Company, L.P. Checkpoint computer system utilizing a FIFO buffer to re-synchronize and recover the system on the detection of an error
US7085955B2 (en) * 2001-09-14 2006-08-01 Hewlett-Packard Development Company, L.P. Checkpointing with a write back controller
US7058849B2 (en) 2002-07-02 2006-06-06 Micron Technology, Inc. Use of non-volatile memory to perform rollback function
US8336044B2 (en) * 2002-10-09 2012-12-18 Rpx Corporation Method and system for deploying a software image
US7024581B1 (en) 2002-10-09 2006-04-04 Xpoint Technologies, Inc. Data processing recovery system and method spanning multiple operating system
US7290166B2 (en) * 2004-07-28 2007-10-30 Intel Corporation Rollback of data
US7421617B2 (en) 2004-08-30 2008-09-02 Symantec Corporation Systems and methods for optimizing restoration of stored data
JP4165499B2 (ja) * 2004-12-13 2008-10-15 日本電気株式会社 コンピュータシステム及びそれを用いたフォールトトレラントシステム並びにその動作制御方法
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
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
US7478276B2 (en) * 2005-02-10 2009-01-13 International Business Machines Corporation Method for checkpointing instruction groups with out-of-order floating point instructions in a multi-threaded 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
US7409589B2 (en) * 2005-05-27 2008-08-05 International Business Machines Corporation Method and apparatus for reducing number of cycles required to checkpoint instructions in a multi-threaded processor
US8396937B1 (en) * 2007-04-30 2013-03-12 Oracle America, Inc. Efficient hardware scheme to support cross-cluster transactional memory
US20100005218A1 (en) * 2008-07-01 2010-01-07 International Business Machines Corporation Enhanced cascade interconnected memory system
US20100005220A1 (en) * 2008-07-01 2010-01-07 International Business Machines Corporation 276-pin buffered memory module with enhanced memory system interconnect and features
US20100005214A1 (en) * 2008-07-01 2010-01-07 International Business Machines Corporation Enhancing bus efficiency in a memory system
US20100005212A1 (en) * 2008-07-01 2010-01-07 International Business Machines Corporation Providing a variable frame format protocol in a cascade interconnected memory system
US20100005206A1 (en) * 2008-07-01 2010-01-07 International Business Machines Corporation Automatic read data flow control in a cascade interconnect memory system
US20100005219A1 (en) * 2008-07-01 2010-01-07 International Business Machines Corporation 276-pin buffered memory module with enhanced memory system interconnect and features
US7717752B2 (en) * 2008-07-01 2010-05-18 International Business Machines Corporation 276-pin buffered memory module with enhanced memory system interconnect and features
US20100106904A1 (en) * 2008-10-23 2010-04-29 Dell Products L.P. Shadow raid cache memory
US8127185B2 (en) * 2009-01-23 2012-02-28 Micron Technology, Inc. Memory devices and methods for managing error regions
US8671311B2 (en) 2011-02-15 2014-03-11 International Business Machines Corporation Multiprocessor switch with selective pairing
US8635492B2 (en) * 2011-02-15 2014-01-21 International Business Machines Corporation State recovery and lockstep execution restart in a system with multiprocessor pairing
US8930752B2 (en) 2011-02-15 2015-01-06 International Business Machines Corporation Scheduler for multiprocessor system switch with selective pairing
US9357649B2 (en) 2012-05-08 2016-05-31 Inernational Business Machines Corporation 276-pin buffered memory card with enhanced memory system interconnect
US9069701B2 (en) 2012-12-11 2015-06-30 International Business Machines Corporation Virtual machine failover
US9519315B2 (en) 2013-03-12 2016-12-13 International Business Machines Corporation 276-pin buffered memory card with enhanced memory system interconnect

Family Cites Families (50)

* Cited by examiner, † Cited by third party
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
US4413327A (en) * 1970-06-09 1983-11-01 The United States Of America As Represented By The Secretary Of The Navy Radiation circumvention technique
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
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
US4484273A (en) * 1982-09-03 1984-11-20 Sequoia Systems, Inc. Modular computer system
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
EP0254247A3 (de) * 1984-04-26 1988-08-10 BBC Brown Boveri AG Einrichtung zur Rettung des Rechnerzustandes
US4751639A (en) * 1985-06-24 1988-06-14 Ncr Corporation Virtual command rollback in a fault tolerant data processing 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
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
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
US4964126A (en) * 1988-09-30 1990-10-16 Massachusetts Institute Of Technology Fault tolerant signal processing machine and method
US5325517A (en) * 1989-05-17 1994-06-28 International Business Machines Corporation Fault tolerant data processing system
US5247618A (en) * 1989-06-30 1993-09-21 Digital Equipment Corporation Transferring data in a digital 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
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
US5157663A (en) * 1990-09-24 1992-10-20 Novell, Inc. Fault tolerant computer system
US5214652A (en) * 1991-03-26 1993-05-25 International Business Machines Corporation Alternate processor continuation of task of failed processor
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
US5488719A (en) * 1991-12-30 1996-01-30 Xerox Corporation System for categorizing character strings using acceptability and category information contained in ending substrings
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
US5504861A (en) * 1994-02-22 1996-04-02 International Business Machines Corporation Remote data duplexing
JPH10506483A (ja) * 1994-06-10 1998-06-23 テキサス・マイクロ・インコーポレーテッド フォールト・トレラントなコンピュータ・システムのためのメイン・メモリ・システム及びチェックポイント用プロトコル

Also Published As

Publication number Publication date
JP2007128540A (ja) 2007-05-24
DE69614003D1 (de) 2001-08-23
EP0900420A2 (en) 1999-03-10
WO1997022045A2 (en) 1997-06-19
WO1997022045A3 (en) 1997-08-21
US5745672A (en) 1998-04-28
ATE203338T1 (de) 2001-08-15
DE69614003T2 (de) 2002-03-21
EP0900420B1 (en) 2001-07-18
JP2001515615A (ja) 2001-09-18

Similar Documents

Publication Publication Date Title
JP4073464B2 (ja) リード・バッファを用いたフォールト・トレラント・コンピュータ・システム用主メモリ・システムおよびチェックポインティング・プロトコル
US5751939A (en) Main memory system and checkpointing protocol for fault-tolerant computer system using an exclusive-or memory
US5958070A (en) Remote checkpoint memory system and protocol for fault-tolerant computer system
US5864657A (en) Main memory system and checkpointing protocol for fault-tolerant computer system
US7840768B2 (en) Memory-controller-embedded apparatus and procedure for achieving system-directed checkpointing without operating-system kernel support
US6622263B1 (en) Method and apparatus for achieving system-directed checkpointing without specialized hardware assistance
EP0764302B1 (en) Main memory system and checkpointing protocol for fault-tolerant computer system
TWI236620B (en) On-die mechanism for high-reliability processor
US10776267B2 (en) Mirrored byte addressable storage
US20060150010A1 (en) Memory-controller-embedded apparatus and procedure for achieving system-directed checkpointing without operating-system kernel support
EP0889409B1 (en) Mirrored write-back cache module warmswap
JPS638835A (ja) 障害回復方法
Zhou et al. Fast cluster failover using virtual memory-mapped communication
US6675316B1 (en) Method and system for recovery of the state of a failed CPU/cache/memory node in a distributed shared memory system
JP3030658B2 (ja) 電源故障対策を備えたコンピュータシステム及びその動作方法
Fiala et al. Mini-ckpts: Surviving os failures in persistent memory
JPH10326220A (ja) ファイルシステムおよびファイル管理方法
Masubuchi et al. Fault recovery mechanism for multiprocessor servers
Rosenblum et al. Implementing efficient fault containment for multiprocessors: confining faults in a shared-memory multiprocessor environment
JPH0981464A (ja) 計算機システムのメモリ障害回復方法および回復システム
USRE45632E1 (en) Memory-controller-embedded apparatus and procedure for achieving system-directed checkpointing without operating-system kernel support
JP2000501216A (ja) リード・バッファを用いたフォールト・トレラント・コンピュータ・システム用主メモリ・システムおよびチェックポインティング・プロトコル
JPH10240620A (ja) コンピュータシステムおよび同システムにおけるチェックポイントイメージ保存方法
JPH05108388A (ja) プロセス復旧方式
JP4494263B2 (ja) サービスシステムの冗長化方式

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20070213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070410

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070622

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070921

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070927

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071205

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20071226

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080122

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110201

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees