【発明の詳細な説明】
リード・バッファを用いたフォールト・トレラント・コンピュータ・システム
用主メモリ・システムおよびチェックポインティング・プロトコル
発明の分野
本発明は、特にフォールト・トレラント・コンピュータ・システムのための、
コンピュータ・メモリ・システムおよびチェックポインティング・プロトコル(c
heckpointing protocol)に関するものである。
発明の背景
コンピュータにおけるフォールト・トレランスは、通常、マスキングと呼ばれ
るハードウエア集約的な技法、またはチェックポインティングと呼ばれるソフト
ウエアに基づく手法のいずれかによって実現されている。マスキングを達成する
には、同一ハードウエアを複数系統備え、コンピュータ・プログラムを数個の独
立した装置で並列に実行する。次に、これら装置の出力を比較し、それらの有効
性を判定する。この技法の最も単純かつ古い実施形態では、3台の完全なコンピ
ュータを装備し、それらの出力に単純な多数決方式を用いて、「正しい」出力を
判定する。これらのコンピュータの内少なくとも2台が適正に動作しており、投
票システム自体が正しく稼働している場合、誤動作しているコンピュータの潜在
的に正しくない可能性がある出力は排除(outvote)され、実際には正しい答えが
ユーザに提示される。これよりはいくらか効率的なマスキングの別の実施形態も
あるが、マスキング・システムは通常、障害を発生した構成要素の影響を排除す
るためにハードウエアを追加しなければならないため、コストが著しく増大する
という問題がある。加えて、マスキングは、ハードウエアの障害に対する保護を
行うに過ぎない。1つの装置に誤動作を発生させるソフトウエアのバグは、同じ
ソフトウエアを実行する他の装置にも、同様に誤動作を発生させる。全ての出力
が同じエラーを含み、その結果、このエラーは検出されずに通過してしまうこと
になる。
チェックポインティングと呼ばれる代替技法は、格段にコスト効率が高い方法
で、障害に対する耐性を与える潜在的可能性を有する。この技法は、コンピュー
タ全体の状態を、周期的に、チェックポイントとして指定した時間間隔で記録す
る必要がある。障害は、ハードウエアの障害モニタによって(例えば、エラー検
出コードを用いてエンコードされたデータに作用するデコーダ、温度または電圧
センサ、あるいは別の同一の装置を監視する1つの装置によって)検出するか、
またはソフトウエアの障害モニタ(例えば、データ構造内のスタック・ポインタ
またはアドレス上で、範囲外状態をチェックする実行コードの一部として実行さ
れるアサーション(assertion))によって検出することができる。障害が検出され
た場合、回復するには、まず最初に診断を行い、可能であれば誤動作装置を迂回
し、次いでシステムを最後のチェックポイントに戻し、このポイントから正常な
動作を再開することが必要である。
回復が可能なのは、障害を発生したと識別されたあらゆる要素を、回復過程の
間に迂回し、その後に十分なハードウエアが動作可能状態であり続ける場合であ
る。例えば、マルチプロセッサ・システムでは、プロセッサの内少なくとも1つ
が機能し続ける限り、システムは動作し続けることができる。同様に、メモリの
リマップを行うことができるシステム、あるいは代替ポートを通じてI/Oを割
り当てなおすことができるシステムは、同様に、メモリまたはI/O資源の損失
を克服することができる。更に、コンピュータ・システムにおいて見られる殆ど
の障害は、性質上瞬時的または間欠的であり、それら自体が一時的なグリッチ(g
litch)に過ぎない。したがって、通常は、ハードウエアの迂回を全く行うことな
く、かかる障害からの回復は可能である。しかしながら、瞬時的な障害および間
欠的な障害は、永続的な障害と同様、障害時に操作されているデータを変転させ
る可能可能性があるので、かかるイベントの後にコンピュータが常に戻ってくる
状態を有する必要がある。これが、周期的なチェックポイント状態(checkpointe
d 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 cashe)と呼ぶこともある。プロセッサは
、そのブロッキング・キャッシュを消去す前に、内容切り替え(context switch)
を行い、この間に、そのプログラム・カウンタを含むその内部レジスタの内容を
、スタック上に置き、このスタックを他の変更データ全てと共に放出する。その
結果、内部的に一貫性のあるデータによって、一度でメモリを更新することによ
り、その後システムに障害が発生した場合でも、システムが安全に戻ることがで
きるチェックポイントを確立する。主メモリ障害および放出動作自体の間に発生
する障害の双方を克服する機能を保証するためには、メモリを2系統備え、各デ
ータ項目を、主要位置およびシャドウ位置
(shadow location)の双方に格納する。
この技法は、アプリケーション・プログラマに負担をかけずに、チェックポイ
ントを確立するという目標は達成するものの、そのブロッキング・キャッシュの
使用に依存することによる、ある種の欠点を有する。プロセッサは、現在変更さ
れているラインを同時に全て書き戻す場合以外は、いずれのキャッシュ・ライン
も主メモリに書き戻すことができないので、キャッシュのオーバーフローが発生
したとき、またはあるプロセッサによって他のプロセッサのキャッシュに保持さ
れているデータに対する要求が行われたときはいつでも、データを放出している
プロセッサに、そのキャッシュ全体を書き出すように要求することなる。この要
件は、標準的なキャッシュ・コヒーレンシ・プロトコル(例えば、Gallagherの
米国特許第5,276,848号に記載されているプロトコル)の使用を妨げ、
プログラムがかかる標準的プロトコルに基づいて実行される場合、潜在的なポー
ティング(porting)や性能上の問題を生ずる。
例えば、Kirrmann(米国特許第4,905,196号)およびLee et al.("A
Recovery Cache for the PDP-11"(PDP−11用回復キャッシュ),IEEETran
s.on Computers,1980年6月)によって、チェックポインティングの目的の
ためにデータを捕獲する別の方法が提案されている。Kirrmannの方法は、カスケ
ード状メモリ格納素子を用いる。これは、主メモリと、それに続く2つのアーカ
イブ・メモリから成り、各アーカイブ・メモリは主メモリと同じサイズとなって
いる。主メモリへの書込みは、プロセッサによってライト・バッファにも行われ
る。チェックポイントを確立する時刻になった場合、バッファされたデータをプ
ロセッサがまずアーカイブ・メモリの一方にコピーし、次いで第2のアーカイブ
・メモリにコピーする。しかし、これらのコピーの一方の必要をなくする技法に
ついても記載されている。2つのアーカイブ・メモリは、バッファからメモリへ
のコピーが行われている最中に障害が発生しても、それらの少なくとも一方が有
効なチェックポイントを含むことを保証する。このアーキテクチャに伴う問題に
は、3系統のメモリを備えなければならないこと、アーカイブ・メモリのために
速度の遅いメモリを使用すること、および3つのメモリ素子が同一バス上の異な
るポートとなるためのプロセッサの処理能力に
影響が及ぶことが含まれる。
Lee et al.による論文では、アプリケーションによって特定されるアドレス
範囲内に該当する全てのメモリ位置について、更新データがメモリに書き込まれ
る前に、データを回復キャッシュにセーブする方法が論じられている。この方法
は、アプリケーションによって指定される範囲内のメモリに対する全てのライト
を、ライト前リード動作(read-before-write operations)に変換する。アプリケ
ーションの実行の間に障害が発生した場合、回復キャッシュの内容を主メモリに
格納し戻すことによって、アプリケーションがその現実行を開始した時点におけ
る状態に、それを回復する。この方法の問題の1つに、ライト後リード動作によ
るメモリ・サイクルの干渉のために、ホスト・システムの速度低下を招き、これ
によってバス・プロトコルの変更が余儀なくされることがあげられる。また、こ
れもアプリケーション・プログラマがチェックポインティングの処理または考慮
に関与することを要求する。
主メモリ以外に、ディスク上にデータのミラー(mirror)を作成する、別の技法
が開発されている。ディスクのアクセスは主メモリのアクセスより数桁遅いので
、このような方式は、データ・ファイルのミラー作成に限定されている。即ち、
障害によってこれらのファイルへの主要アクセス経路が絶たれた場合に、バック
アップをディスク・ファイルに供給する場合に限定されている。システムのユー
ザに対して透過的に、プログラムの連続性を保持したり、あるいは実行中のアプ
リケーションを回復する試みはなされていない。場合によっては、ミラー・ファ
イル同士の一貫性を保つことを保証するのでさえ不可能であり、それらは同一フ
ァイルの別のコピーと一貫性があるに過ぎない。米国特許第5,247,618
号は、かかる方式の一例を開示している。
発明の概要
本発明の実施形態は、コンピュータ・システムにおいて、従来のキャッシュ・
コヒーレンシ・プロトコルおよび非ブロックキング・キャッシュの使用を可能に
しつつ、コンピュータ・システムの主メモリ内において、一貫した周期的更新チ
ェックポイント状態を維持する装置およびプロセスを提供する。本発明の
実施形態は、1つ以上の論理ポートを介してプロセッサによってアクセスされ、
基本メモリ素子およびチェックポイント・メモリ素子が双方ともこのポートに結
合された、主メモリを提供する。基本メモリ素子は、標準的な主メモリと同様に
アクセスされる。チェックポイント・メモリ素子は、検出可能な主メモリへの書
き込みを捕獲(capture)する。この書込みが検出可能なのは、チェックポイント
・メモリ素子が基本メモリ素子と同一ポートに接続されているからである。次に
、捕獲された書込みを用いて、主メモリにおける一貫性のあるチェックポイント
状態の存在を保証する。このように適切な検出および迂回手順を有するコンピュ
ータ・システムは、データの保全性または処理の連続性を損なうことなく、障害
からの回復が可能である。
本発明の一実施形態では、主コンピュータから離れて位置するバックアップ・
コンピュータに、バッファ・メモリと第2のランダム・アクセス・メモリ素子と
を含む、遠隔チェックポイント・メモリ素子が設けられる。バックアップ・コン
ピュータおよび主コンピュータは、チェックポイント通信リンクによって接続さ
れている。通常の処理の間、主コンピュータ内の主メモリに書き込まれたデータ
は、専用のチェックポイント通信リンクを通じて、バックアップ・コンピュータ
内の遠隔チェックポイント・メモリ素子内のバッファ・メモリにも送出される。
チェックポイントを確立すべきとき、バッファ・メモリ内に既に捕獲されている
データは、バックアップ・コンピュータ・システムの遠隔チェックポイント・メ
モリ素子のランダム・アクセス・メモリにコピーされる。主コンピュータの障害
の場合、バックアップ・コンピュータは、主コンピュータが以前に処理していた
アプリケーションの処理を引き継ぐ。バックアップ・コンピュータは、遠隔チェ
ックポイント・メモリ素子のシャドウ・メモリ素子内に格納されているチェック
ポイント状態から開始して、アプリケーションを処理する。
本発明の他の実施形態では、遠隔チェックポイント・バッファは、論理リング
状にコンピュータを構成し、各コンピュータがその隣接するコンピュータの一方
のためのバックアップとして機能することにより、N+1の冗長性が得られるよ
うにした。
本発明によるシステムでは、入出力(I/O)動作は、通常以下のように処理
される。通常動作の間、I/O要求はいずれかの標準的な方法で行われ、オペレ
ーティング・システムによって適切なI/Oキューに入力される。しかしながら
、実際の物理的I/O動作は、次のチェックポイントまで開始されない。したが
って、障害および続くチェックポイント状態への後退の場合、全ての保留のI/
O動作もチェックポイント処理の対象となる。ディスクおよびその他のアイデン
ポネント(idempotent) I/O動作は、単に再起動することができる。
通信I/O動作の適切な処置は、通信プロトコルによって異なる。可能なメッ
セージの複製に対処するプロトコルでは、保留のI/Oを再起動することができ
る。欠落したメッセージを処理するプロトコルでは、I/Oを保留のキューから
削除することができる。欠落メッセージも繰り返しメッセージも処理しないプロ
トコルでは、保留のI/Oは保留キューから削除される。障害の前にメッセージ
が実際に送出されなかった場合、または障害の結果として中止された場合、過渡
通信リンク障害と影響は同一であり、同じ結果がアプリケーションまたはユーザ
にもたらされる。通信リンク割り込みは、通常、コンピュータ障害よりもかなり
多く発生するので、かかるイベントを透過的にすることができないプロトコルの
使用は、おそらく、ユーザまたはアプリケーションは、いずれにせよ、それらと
対処する準備がなされていることを意味する。
ここに記載する機構は、コンピュータが障害に続いて動作を再開することがで
きる、一貫したチェックポイント状態の存在を保証することができ、こうしてフ
ォールト・トレラント・コンピュータ・システム動作に対応にする。
図面の簡単な説明
本発明をよりよく理解するために、図面を参照する。図面は、この言及により
本願にも含まれるものとする。
図1は、本発明の一実施形態の主メモリ構造を用いた、コンピュータ・システ
ムのブロック図である。
図2は、本発明の一実施形態による遠隔チェックポイント・バッファを利用し
た、フォールト・トレラント・コンピュータ・システムのブロック図である。
図3は、図2の主コンピュータ・システムおよびスタンバイ・コンピュータ・
システムを詳細に示すブロック図である。
図4は、N+1冗長性を利用した、本発明の一実施形態による、遠隔チェック
ポイント・メモリ方式のブロック図である。
図5は、主メモリの一貫性を維持するために、処理ユニットが使用するメモリ
位置の図である。
図6のAは、各処理ユニットが、いかにしてそのキャッシュの放出を制御し、
主メモリの一貫性を維持するのかを記述するフローチャートである。
図6のBは、各処理ユニットがそのキャッシュの主メモリへの放出を制御する
際に用いる別の方法を記述するフローチャートである。
詳細な説明
本発明は、添付図面と関連付けて読むべき、以下の詳細な説明によって一層深
く理解されよう。尚、添付図面では、同様の参照番号は同様の構造を示すものと
する。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を相互接続機構1
0に接続するものでもある。処理ユニット44は、いずれかの標準的なマイクロ
プロセッサ・ユニット(MPU:microprocessor unit)とすればよい。例えば
、Intel Corporationから入手可能なPENTIUMマイクロプロセッサは、この目的に
適している。処理ユニット44は、従来と同様、いずれかの適切なオペレーティ
ング・システムにしたがって動作する。処理素子14は、自己検査の目的のため
に、二重処理ユニット44を含んでもよい。
キャッシュ42は、ライト・スルーまたはライト・バック型のキャッシュであ
り、任意のサイズおよび連想性(associativity)を有し、1キャッシュ・レベル
以上の階層構造から成るものとしてもよい。処理ユニット44は、キャッシュ4
2内に、データのみを格納することも、コンピュータ・プログラムの命令および
データ双方を格納することも可能である。前者の場合、同様の命令キャッシュ4
3を追加として処理ユニット44に接続し、処理ユニット44がコンピュータ・
プログラム命令を格納するようにしてもよい。この接続は、命令キャッシュ43
を相互接続機構10に接続するものでもある。このシステムが多重処理コンピュ
ータ・システムである場合、各処理ユニット44は、バス・スヌーピング(bus s
nooping)のような、従来のいずれかの機構を用いてキャッシュ・コヒーレンシを
保持することができる。キャッシュ42は、例えば、相互接続機構10または1
2を介して、主メモリ・システムに接続されている。
遠隔チェックポインティング・バッファを利用した、本発明によるフォールト
・トレラント・コンピュータ・システムの一実施形態を図2に示す。図2に示す
実施形態では、主コンピュータ・システム110が、高速データ・リンク150
を通じてスタンバイ・コンピュータ・システム120に結合されている。スタン
バイ・コンピュータ・システムは、当該スタンバイ・コンピュータ・システムの
メモリ内に遠隔的にチェックポイントを確立するために用いられる。図2に示す
ように、主コンピュータ・システム110およびスタンバイ・コンピュータ・シ
ステム120は、例えば、イーサネット・システム140を通じ
て相互接続してもよく、また共通のデュアル・ポート・ディスク・アレイ130
ならびにその他のデュアル・ポート記憶および通信装置を共有してもよい。
本実施例の好適なバージョンでは、主コンピュータ・システム110およびス
タンバイ・コンピュータ・システム120は、実質的に同一コンピュータである
。図3は、主コンピュータ・システム110の一実施形態を更に詳細に示す。ス
タンバイ・コンピュータ120は、図3に示す主コンピュータ・システムと同じ
構造を有することは理解されよう。
主コンピュータ・システム110は、メモリ・サブシステム112を含み、こ
のメモリ・サブシステム112は、主メモリ113、ライト・バッファ116お
よびメモリ・サブシステム112内のデータ転送を制御するメモリ制御ロジック
117から成る。メモリ・サブシステム112は、メモリ・バス114に結合さ
れている。図1の記載によれば、図2および図3の代表的な主コンピュータ・シ
ステム110は、メモリ・バス114(またはその他の接続形態)に結合された
1つ以上のプロセッサ118、遠隔チェックポイント・インターフェース122
、I/Oバス124、イーサネット・インターフェース126、およびSCSI
コントローラ128として示されている外部記憶インターフェースも含む。
I/Oバスは、I/Oブリッジ125を介して、メモリ・バスに結合されてい
る。遠隔チェックポイント・インターフェース122は、バッファ・メモリ13
2およびインターフェース・コントローラ134を含む。遠隔チェックポイント
・インターフェースは、接続部144を介して、メモリ112に結合されている
。インターフェース・コントローラ134は、高速I/Oポート131に結合さ
れ、主コンピュータ・システムを高速データ・リンク150に接続する。SCS
Iコントローラ128は、SCSI I/Oポート129に結合され、主コンピ
ュータ・システムをデュアル・ポート・ディスク・アレイ130に接続する。イ
ーサネット・インターフェースは、イーサネットI/Oポート127に結合され
、主コンピュータ・システムをイーサネット140に接続する。
このシステムを用いて、障害の後に一貫性のある状態を主メモリ内に維持す
るプロセスについて、これより説明する。米国特許第4,654,819号のよ
うなシステムとは対照的に、このプロセスは、処理ユニット14のキャッシュ4
2全体を放出する必要なく、一方の処理素子14から他の処理素子16にデータ
を渡すことを可能にする。コンピュータ・システム11内の全ての処理ユニット
44が、主メモリへの全てのバス即ち通信経路に対するアクセスを有する場合、
各処理ユニット44は、従来のバス・スヌーピング法を用いて、キャッシュのコ
ヒーレンシを保証することができる。全ての処理ユニット44が全てのシステム
・バスに対してアクセスを有するのではない場合、処理ユニット44は、他の公
知のキャッシュ・コヒーレンシ技法(cachec oherency technique)を代わりに用
いることができる。
この実施形態の動作を、ここでは遠隔チェックポインティング(remotecheckpo
inting)と呼び、図2および図3に示す。これは、チェックポインティングが局
所的に行われる、先に引用した本出願人の同時係属中の特許出願に記載したもの
と概略的には同様である。しかしながら、遠隔チェックポインティングでは、ス
タンバイ・コンピュータ・システム120の主メモリ113が、主コンピュータ
・システム110の主メモリ113のためのチェックポイント・メモリとして機
能し、最後のチェックポイントにおける主コンピュータ・システムの主メモリ1
13の状態を含む。主コンピュータ・システムの主メモリ113に書き込まれる
データも、メモリ制御ロジック117の制御の下で、主コンピュータ・システム
のライト・バッファ116に捕獲される。なお、アクセスには、部分的なキャッ
シュ・ラインまたは全体的なキャッシュ・ラインを伴うものがあることは理解さ
れよう。ライト・バッファは十分なサイズを有し、バス144を通じたデータの
転送に伴うあらゆる遅延にも対応するように、データのバッファリングを行う。
データは、ライト・バッファ116から主コンピュータ・システムの遠隔チェッ
クポイント・インターフェース122に転送され、ここで追加のバッファリング
が行われ、高速データ・リンク150に伴うあらゆる遅延に対応する。次に、デ
ータは高速データ・リンク150を通じて、スタンバイ・コンピュータ・システ
ム120の遠隔チェックポイント・インターフェース122に転送され、スタン
バイ・コンピュータ・システムのバ
ッファ・メモリ132に格納される。
主コンピュータ・システムの主メモリ113に対する全ての書込み(キャッシ
ュ放出の間にメモリに書き込まれるラインを含む)は、したがって、それらの物
理的メモリ位置と共に、スタンバイ・コンピュータ・システムのバッファ・メモ
リ132にも書き込まれる。主コンピュータ・システムのプロセッサ118、お
よびメモリ・バス114に結合されたいずれかの追加のプロセッサがキャッシュ
放出を完了したとき、主コンピュータ・システム内のオペレーティング・システ
ムは、遠隔制御インターフェースを通じて、スタンバイ・コンピュータ・システ
ムに通知する。スタンバイ・コンピュータ・システムのバッファ・メモリ132
の内容は、スタンバイ・コンピュータ・システムの主メモリ113に転送され、
スタンバイ・コンピュータ・システムの主メモリ113内にチェックポイントを
確立する。
一貫性のあるシステム状態についてチェックポイント処理を行うために、全て
のプロセッサは同期してそのキャッシュを放出(flush)する。一旦処理素子1
4が放出を開始したなら、他の全ての処理素子14がそれらの放出を完了するま
で、以下で論ずるある種の条件下を除いて、通常の動作を再開することができな
い。
プロセッサのキャッシュ放出を同期させるのは、バッファ・メモリが、どのデ
ータを主メモリ113にコピーすべきで、どのデータをコピーすべきでないかを
知る必要があるためである。即ち、バッファ・メモリは、放出後データおよび放
出前データ間の区別をする必要がある。したがって、どのプロセッサがデータを
送出しているのかがバッファにわからない場合、全てのプロセッサは、通常動作
が開始可能となる前に、それらの放出を完了させ、一貫性を保持するようにしな
ければならない。同期を制御するには、好ましくは、図5の80に示すように、
例えば、主コンピュータの主メモリ内の指定された位置を用いて、検査および設
定ロック処理または同等の処理を用い、ロック値を格納する。基本メモリ素子の
障害およびその他の障害からの回復が可能であることを保証するために、この指
定位置は、ステータス・レジスタの一部として実施することが好ましい。
周期的な間隔で、各処理ユニット44は、図6のAのステップ90に示すよう
に、放出処理を開始すべきか否かについて判定を行う。処理ユニット44は、こ
の判定を多数の異なる方法で行うことができる。典型的に、放出は、固定時間期
間が経過した後に開始すればよい。
この処理ユニット44が放出を開始する必要がない場合、指定メモリ位置80
を検査し、他の処理ユニット44が既にロックを設定しているか否かについて判
定を行う(ステップ92)。ロックが設定されていない場合、このプロセスは、
94に示すように終了する。逆に、ロックが設定されている場合、この処理ユニ
ット44はステップ96においてそのキャッシュ42を放出する。放出処理の効
果は、キャッシュ内の全ライン(または、好ましくは、最後の放出以降変更され
たラインのみ)をコンピュータの主メモリ113、およびライト・バッファ11
6にも同様に格納することである。実際の放出処理に先立って、処理ユニット4
4は、その状態をキャッシュ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においてその対応する放出カウンタを増分する。図5に示すよう
に、各処理ユニット44は、82および84で示すような放出カウンタを有し、
これらは、主メモリ113内の所定の指定された位置である。放出カウンタ(例
えば82)を増分した後、処理ユニット44は、それがこの放出シーケンスのイ
ニシェータであるか否かについて判定を行う(ステップ104)。イニシェータ
でない場合、ステップ106において、ロックが解除されるまで待つ。ロックが
解除されたなら、このプロセスはステップ108において終了し、処理ユニット
44は通常動作を再開することができる。
ステップ104の判定において、処理ユニット44が放出のイニシェータであ
った場合、ステップ105において、全ての放出カウンタ(82〜84)が増分
されるまで待つ。一旦全ての放出カウンタが増分されたなら、この処理ユニット
44は、委託コマンド(commit command)をメモリ制御ロジック117に送り、前
述のように、ライト・バッファ116内のデータを、スタンバイ・コンピュータ
の主メモリ113にコピーする。一旦この命令が送られたなら、放出ロックが解
除され、処理ユニット44は通常の処理を再開することができる。ステップ10
6ないし110間のループは、タイム・アウト保護を有し、放出
動作中の障害の場合に、障害回復手順をトリガするようにすべきである。
ここに記載する放出カウンタは、1ビット・カウンタとすればよく、したがっ
てチェックポイント・メモリ素子内のステータス・レジスタの一部として容易に
実装可能であることを注記しておく。ビットは、各プロセッサによって個別に設
定し、イニシェータが委託コマンドを送った場合には自動的にリセットすること
ができる。
ある種の非標準的バス・プロトコルも実装した場合、処理能力上の利点を得る
ことができる。例えば、バス・プロトコルが、メモリ・サブシステム48に、処
理素子14間で識別すること、または格納対象のラインに書き込みを行ったのは
、i回目の放出を完了した処理素子14か、またはi回目の放出を未だ実行中の
処理素子かを少なくとも識別すること、あるいは放出後データから放出前データ
を少なくとも識別することを可能にする場合、処理素子14は、通常の動作を開
始する前に、他の全ての処理素子がそれらの放出を完了するまで待つ必要はない
。この場合、処理素子14に、そのi回目の放出を完了した後に、全ての処理素
子16も少なくともそのi回目の放出を開始する(しかし、完了するまでの必要
はない)まで、正常動作を保留することを要求することによって、主メモリにお
ける一貫性を保持する。
このように同期の制約を緩和してもなお、一貫したチェックポイント状態の存
在は保証される。即ち、放出を開始していない処理素子16は、放出を完了し通
常処理を再開した他の処理素子14から、放出後の変更されたデータを受け取ら
ないことを保証する。この同期に対する制約が緩いプロトコルが許されるのは、
メモリ・サブシステムが、放出処理の一部として書き込まれているデータと、放
出を完了した処理素子14によって書き込まれているデータとの間で区別するこ
とができる場合である。この種のキャッシュ放出同期を実施するためには、図6
のAのステップ96および102の順番および配置を、図6のBに示すように逆
にすればよい。
主コンピュータ・システムにおける障害の場合、スタンバイ・コンピュータ・
システムの主メモリ113は、最後のチェックポイントにおける主コンピュータ
・システムの状態を含む。スタンバイ・コンピュータ・システムは、標準的
な技法を用いて、デュアル・ポート・ディスク・アレイ130のような全てのデ
ュアル・ポートI/O装置への接続部を活性化し、障害の時点において主コンピ
ュータ・システム上で実行中であったアプリケーションの処理を引き継ぎ、アプ
リケーションの中断や、関連するデータの損失は全く生じない。あるいは、障害
の後に、スタンバイ・コンピュータ・システムは、高速データ・リンク150を
通じて、その主メモリ113の内容を、主コンピュータ・システムの主メモリ1
13にコピーし、主コンピュータ・システムが、スタンバイ・コンピュータ・シ
ステムの主メモリに格納されている直前のチェックポイントから動作を再開でき
るようにすることも可能である。
前述のように、スタンバイ・コンピュータ・システムは、主コンピュータ・シ
ステムにチェックポイント・メモリを提供しつつ、スタンバイ・モードではアイ
ドル状態となるように設計されている。しかしながら、図1に示すフォールト・
トレラント・コンピュータ・システムの実施形態では、コンピュータ・システム
は、対称的に動作を行い、コンピュータ・システム110および120の各々が
他のコンピュータ・システムのために遠隔チェックポイント・メモリを提供する
ようにしてもよい。この場合、スタンバイ・コンピュータ・システムは、主コン
ピュータ・システムにチェックポイント・メモリを提供しつつ、アプリケーショ
ンを実行することができる。対称的動作の場合、遠隔チェックポイント・インタ
ーフェース112は、チェックポイント・メモリと一体化することが好ましい。
各コンピュータのバッファ・メモリ132および主メモリ113は、物理的に、
メモリ・バス上に共通配置(co-located)されている。これによって、スタンバイ
・モード以外のモードで動作するコンピュータ・システムのスループットを低下
させる動作である、バッファからシャドウへの格納のために、I/Oおよびメモ
リ・バスを連結する必要性を回避する。
一方のコンピュータの障害の後、残ったコンピュータは、1)双方のコンピュ
ータ(それ自体および障害を発生したコンピュータ)のアプリケーションを実行
することができるが、いずれか一方のアプリケーションに対するスループットは
低下する。あるいは、2)それ自体のアプリケーションを終了し、障害を発生し
たコンピュータのアプリケーションのみを実行することができる。あ
るいは、3)結合したアプリケーションのサブセットを実行することができ、こ
れは十分に高い優先度を有する。
図4は、遠隔チェックポイント・バッファリングを利用する、本発明の他の実
施形態を示す。図4に示す実施形態では、遠隔チェックポイント・バッファリン
グの概念を拡張し、コンピュータ110a,110b,120および120dを
論理リング状に構成し、各コンピュータがリング内の隣接するコンピュータのた
めにバックアップとして機能するようにすることによって、N+1の冗長性を可
能にするものである。図4に示す実施形態では、コンピュータ・システム110
bがコンピュータ・システム110aにシャドウ・メモリを提供し、コンピュー
タ・システム110cがコンピュータ・システム110bにシャドウ・メモリを
提供し、コンピュータ・システム110dがコンピュータ・システム110cに
シャドウ・メモリを提供し、コンピュータ・システム110aがコンピュータ・
システム110dにシャドウ・メモリを提供する。I/Oデータ装置130a,
130b,130c,130dおよび130eは、直に隣接するコンピュータ間
に結合されたデュアル・ポート装置である。I/Oデータ装置は図示のようにデ
ュアル・ポートとすることができ、あるいはリング内の全コンピュータに共通と
することや、双方を結合することも可能である。
図4に示す実施形態では、コンピュータ110a〜110dの1つが予備とし
て指定され、これは、アイドル状態のままとなっているか、あるいは分配可能な
タスクを実行することができる。リング内の各コンピュータは、2つの他の隣接
するコンピュータに結合され、これら隣接するコンピュータの一方を左側のコン
ピュータと呼び、他方の隣接するコンピュータを右側のコンピュータと呼ぶ。リ
ング内において、予備以外のコンピュータの1つが障害を発生した場合、障害を
発生したコンピュータのタスクは、右側に隣接するコンピュータによって実行さ
れ、右側のコンピュータのタスクは、その右側のコンピュータによって実行され
る等、指定された予備コンピュータに達するまで続けられ、タスクのリップリン
グ(rippling)を止めることができる。
尚、前述のコンピュータは、チェーン状に構成することも可能であり、好まし
くは、スタンバイ・コンピュータをチェーンの終端に配置することは理解さ
れよう。かかる実施形態では、チェーンの終端にスタンバイ・コンピュータを維
持するためには、障害後のシステムの再構成が必要となる場合もある。コンピュ
ータ集合を論理リングに構成することによって、再構成の必要性は解消する。加
えて、前述の本発明の実施形態では、コンピュータ・システムのプロセッサ、メ
モリ、I/O装置を含む個々の素子は、1系統以上のメモリ・バスによって相互
接続されたものとして説明した。メモリバスは、交差点スイッチのような、デー
タを転送し同じ機能を果たす他の相互接続機構で置き換えてもよいことは理解さ
れよう。
本発明の利点の1つは、遠隔ユニットを対象としたチェックポインティングを
可能とすることにより、内部の冗長性が少ないか全くない(例えば、単一プロセ
ッサ)コンピュータに、フォールト・トレランスを与えることである。本発明の
従来技術のチェックポインティングに対する別の利点は、保護対象のコンピュー
タから物理的に分離された第2のコンピュータにおいて、チェックポイントを確
立することである。第2のコンピュータは、ある距離だけ離れていても可能であ
る。したがって、単一の予備コンピュータを、動作状態にある任意の数のコンピ
ュータに対するバックアップとして機能させるように、フォールト・トレランス
の概念を拡張する。本発明の更に別の利点は、アプリケーション・プログラムも
ユーザも、チェックポイント処理プロセスに関与する必要がなく、また知る必要
もないことである。非常に迅速な回復に対応し、メモリ霜害やその他のハードウ
エアおよびソフトウエア障害に対する保護が得られる。
ここに説明した本発明の実施形態から、上述の実施形態は単に例示的であり限
定的なものではなく、単に一例として提示したに過ぎないことは、当業者には認
められよう。多数の変更およびその他の実施形態は、当業者の範囲内であり、添
付の請求の範囲に規定された本発明の範囲およびその均等物に該当するものと見
做す。DETAILED DESCRIPTION OF THE INVENTION
Fault Tolerant Computer System Using Read Buffer
Main memory system and checkpointing protocol
Field of the invention
The present invention is particularly directed to fault tolerant computer systems.
Computer memory system and checkpointing protocol (c
heckpointing protocol).
Background of the Invention
Fault tolerance in computers is commonly referred to as masking.
Hardware-intensive techniques, or software called checkpointing
It is implemented by any of the wear-based approaches. Achieve masking
Has the same hardware and multiple computer programs.
Run in parallel on a standing device. Next, compare the outputs of these devices and
Determine gender. In the simplest and oldest embodiment of this technique, three complete
Computers and use a simple majority voting method for their output to get the "correct" output.
judge. At least two of these computers are working properly and
If the voting system itself is working properly, the potential of a malfunctioning computer
Output that may be incorrect in the future is outvoted, and in fact the correct answer is
Presented to the user. Another embodiment of masking that is somewhat more efficient
However, masking systems usually eliminate the effects of failed components.
Costs significantly because additional hardware must be added to
There is a problem. In addition, masking protects against hardware failure.
Just do it. Software bugs that cause malfunctions in one device are the same
Other devices that execute software also cause malfunctions. All outputs
Contains the same error, so that this error is passed undetected
become.
An alternative technique called checkpointing is a much more cost-effective method
And has the potential to confer resistance to disorders. This technique is
The status of the entire data is periodically recorded at specified time intervals as checkpoints.
Need to be Faults are detected by hardware fault monitors (for example, error detection).
Decoder, temperature or voltage acting on data encoded using output code
Sensors, or one device monitoring another identical device)
Or a software fault monitor (eg, a stack pointer in a data structure)
Or on the address as part of the executable code that checks for out-of-range conditions.
Assertion). Failure detected
Recovery, first diagnose and, if possible, bypass the malfunctioning device.
Then return the system to the last checkpoint, from which point
It is necessary to resume operation.
Recovery is possible if any elements identified as having failed are recovered during the recovery process.
In the meantime, and then sufficient hardware remains operational.
You. For example, in a multiprocessor system, at least one of the processors
The system can continue to operate as long as. Similarly, in memory
Assign I / O through a system that can remap, or through an alternate port
A system that can be reassigned also has a loss of memory or I / O resources.
Can be overcome. Furthermore, most of the things found in computer systems
Failures are instantaneous or intermittent in nature and are themselves transient glitches (g
litch). Therefore, it is usually not necessary to bypass the hardware at all.
Recovery from such a failure is possible. However, momentary failures and pauses
Intermittent failures, like permanent failures, disrupt the data being manipulated at the time of the failure.
The computer will always return after such an event
You need to have a state. This is the periodic checkpoint state (checkpointe
d state).
Checkpoints are typically provided approximately every 50 milliseconds, so
Retreating a running program to its last checkpoint is usually a
It is completely transparent to the user. If handled properly,
All applications without loss of continuity or data contamination
The application can be resumed from its last checkpoint.
Checkpointing has two main advantages over masking.
You. First, checkpointing has very low implementation costs.
No. Second, checkpointing is not only a matter of hardware failure, but also software.
Provide protection against a failure. The first advantage is that simply checkpointing
Only reflect the fact that it does not require a large amount of identical hardware.
Absent. The second advantage is that in well-tested and mature software,
Which software bugs are only exposed in exceptional circumstances
It is the result of the fact. If this is not correct, the bug will be found during normal inspection,
Will be removed. Such an exceptional situation generally involves asynchronous events.
Therefore, it occurs. Asynchronous events are when an interrupt occurs and a sequence
Program execution following the program, but if no interrupt occurs, the program
This is the case when there is nothing to execute after the cans. Make the system consistent
If you forcibly return to the state and continue to operate, that is, software bugs
When treated as a wear transient, the system is exactly the same as before.
It is very unlikely that you will encounter exactly the same exception in a state. As a result, 2
It is very unlikely to be encountered twice.
Checkpointing also has two potential
There are drawbacks. First, masking usually recovers instantaneously or almost instantaneously from failure
I do. Any resulting errors are simply masked out, so
No special recovery is required. Checkpointing is a kind of software
Run the routine, diagnose the problem, and cause a permanent computer malfunction.
All components need to be bypassed. As a result, the time required for recovery is typically
Real time, which requires a response time of less than millisecond
Time applications use this to achieve fault tolerance.
Techniques may not be available. However, if a person directly
1 second for applications that perform bidirectional processing with, for example, transaction processing
Temporary interruptions can be tolerated without problems, and in fact,
It is not always noticed. Therefore, the potential for this checkpointing
The disadvantages are irrelevant for this type of application.
Second, checkpointing has traditionally been at the application level.
Had been achieved. Therefore, the application programmer has
About when to checkpoint and when to do it.
I had to. This demand is a significant burden on programmers,
Using Checkpointing as a Means of Achieving Fault Tolerance
The use of the product was severely hindered.
In recent years, checkpointing at the system software level
As the enabling technique was developed, the application programmer
Don't worry about trying to identify the data that should be processed
No need to even know that checkpointing is happening. this
The system itself is independent of the applications it can run
Must be able to provide periodic checkpoints. Stiffler
U.S. Pat. Nos. 4,654,819 and 4,819,154 are correct.
It describes a computer system that can perform this. This
The system uses its processes to achieve this type of checkpointing.
Establish a new checkpoint for each of the servers and store all changed data in main memory
Until all changes can be flushed out to their local
Request to be kept in cache. Such a cache is sometimes called
Sometimes called blocking cashe. The processor
, Before clearing its blocking cache, a context switch
During this time, the contents of its internal registers, including its program counter, are
, Put on the stack, and release this stack along with all other modified data. That
As a result, updating the memory once with internally consistent data
The system can then safely return if the system subsequently fails.
Establish a checkpoint Occurs during main memory failure and the release operation itself
In order to guarantee the ability to overcome both obstacles, two
Data items to the main position and shadow position
(shadow location).
This technique allows checkpointing without burdening the application programmer.
Achieves the goal of establishing
It has certain disadvantages due to its dependence on use. Processor currently changed
Any cache line, unless you want to write back all the lines
Cannot write back to main memory, causing cache overflow
Or cached by one processor in another processor's cache.
Releases data whenever a request is made for the data being
This would require the processor to write out its entire cache. This key
The case is based on standard cache coherency protocols (eg, Gallagher's
US Pat. No. 5,276,848).
If the program runs under such a standard protocol, potential ports
Porting and performance problems.
For example, Kirrmann (U.S. Pat. No. 4,905,196) and Lee et al. ("A
Recovery Cache for the PDP-11 "(Recovery cache for PDP-11), IEEETran
s.on Computers, June 1980) for the purpose of checkpointing.
Therefore, another method of capturing data has been proposed. Kirrmann's Method
A card-shaped memory storage element is used. This is the main memory followed by the two
Each archive memory is the same size as the main memory.
I have. Writing to main memory is also performed by the processor to the write buffer.
You. When it is time to establish a checkpoint, the buffered data is
The processor first copies to one of the archive memories and then the second archive
・ Copy to memory. However, techniques that eliminate the need for one of these copies
It is also described. Two archive memories, from buffer to memory
If a failure occurs while a copy is being made, at least one of them
Ensure that valid checkpoints are included. Problems with this architecture
Must have three systems of memory, for archive memory
Use slower memories and make sure that the three memory elements are on different buses
Processor capacity to become a port
Influence is included.
Lee et al. In the paper by the address specified by the application
Update data is written to memory for all memory locations that fall within the range.
Prior to this, methods for saving data to the recovery cache have been discussed. This way
Is all writes to memory within the range specified by the application
Into read-before-write operations. Applique
If a failure occurs during the execution of an application, the contents of the recovery cache are stored in main memory.
By storing it back, the application will start
To recover it. One of the problems with this method is that read after write
Memory cycle interference, slowing down the host system
Changes the bus protocol. Also,
Both application programmers handle or consider checkpointing
Request to be involved in
Another technique for creating a mirror of data on disk other than main memory
Is being developed. Since disk access is several orders of magnitude slower than main memory access
Such schemes are limited to mirroring data files. That is,
If a failure disrupts the primary access path to these files,
Limited to supplying up to a disk file. System user
Transparent to the user, maintaining program continuity or running applications
No attempt has been made to recover the application. In some cases, mirror files
It is not even possible to guarantee that files are consistent with each other;
It is only consistent with another copy of the file. US Patent 5,247,618
Discloses an example of such a scheme.
Summary of the Invention
Embodiments of the present invention provide a computer system with a conventional cache cache.
Enables use of coherency protocols and non-blocking caches
While maintaining consistent periodic updates in the main memory of the computer system.
An apparatus and a process for maintaining a checkpoint state are provided. Of the present invention
Embodiments are accessed by a processor via one or more logical ports,
Both basic and checkpoint memory elements are connected to this port.
Provide combined main memory. Basic memory elements are similar to standard main memory.
Is accessed. Checkpoint memory elements are used to write to detectable main memory.
Capture the ingestion. This write can be detected at the checkpoint
The reason is that the memory element is connected to the same port as the basic memory element. next
Consistent checkpoints in main memory using captured writes
Ensure the existence of a state. Computers with such proper detection and bypass procedures
Data systems can be used without disruption without compromising data integrity or processing continuity.
It is possible to recover from.
In one embodiment of the present invention, a backup
The computer includes a buffer memory and a second random access memory element.
A remote checkpoint memory element is provided. Backup con
Computer and the main computer are connected by a checkpoint communication link.
Have been. Data written to main memory in the main computer during normal processing
Backup computer via a dedicated checkpoint communication link
It is also sent to the buffer memory in the remote checkpoint memory element in the.
When a checkpoint should be established, it is already captured in buffer memory
Data is stored on the remote checkpoint media of the backup computer system.
Copied to memory element random access memory. Primary computer failure
In the case of the backup computer, the primary computer was previously processing
Take over the processing of the application. The backup computer is
Check stored in the shadow memory element of the checkpoint memory element
Process the application, starting from the point state.
In another embodiment of the invention, the remote checkpoint buffer is
Computers, each computer being one of its neighbors
Function as a backup, providing N + 1 redundancy.
Caught.
In a system according to the present invention, input / output (I / O) operations are typically processed as follows.
Is done. During normal operation, I / O requests are made in any standard manner and
Input to the appropriate I / O queue by the operating system. However
, The actual physical I / O operation is not started until the next checkpoint. But
Thus, in the case of a failure and subsequent regression to the checkpoint state, all pending I / Os
The O operation is also subject to checkpoint processing. Discs and other IDEN
Idempotent I / O operations can simply be restarted.
Appropriate measures for the communication I / O operation depend on the communication protocol. Possible messages
Protocols that deal with message duplication can restart pending I / O
You. In the protocol for handling missing messages, I / O is taken from the pending queue.
Can be deleted. Professional that does not process missing or repeated messages
In protocol, pending I / O is removed from the pending queue. Message before failure
Is not delivered or aborted as a result of a failure,
Communication link failure and impact are the same and the same result
Brought to you. Communication link interrupts are usually much more than computer failures
Because of the many occurrences, protocols that cannot make such events transparent
Use will probably be with the user or application, anyway, with them
It means you are prepared to deal with it.
The mechanism described here allows the computer to resume operation following a failure.
A consistent and consistent checkpoint state, and
Corresponds to the operation of the fault tolerant computer system.
BRIEF DESCRIPTION OF THE FIGURES
For a better understanding of the present invention, reference is made to the drawings. The drawings are
It shall be included in the present application.
FIG. 1 shows a computer system using a main memory structure according to an embodiment of the present invention.
FIG.
FIG. 2 utilizes a remote checkpoint buffer according to one embodiment of the present invention.
FIG. 2 is a block diagram of a fault-tolerant computer system.
FIG. 3 illustrates the main computer system and the standby computer system of FIG.
It is a block diagram showing a system in detail.
FIG. 4 illustrates a remote check utilizing N + 1 redundancy, according to one embodiment of the present invention.
It is a block diagram of a point memory system.
FIG. 5 illustrates the memory used by the processing unit to maintain the consistency of the main memory.
It is a figure of a position.
FIG. 6A illustrates how each processing unit controls the release of its cache,
9 is a flowchart describing whether to maintain the consistency of the main memory.
FIG. 6B shows that each processing unit controls the release of its cache to main memory.
9 is a flowchart for describing another method used in this case.
Detailed description
BRIEF DESCRIPTION OF THE DRAWINGS The present invention is further understood by the following detailed description, which should be read in connection with the accompanying drawings.
It will be well understood. In the accompanying drawings, like reference numerals indicate like structures.
I do. Applicant's co-pending U.S. patent filed June 10, 1994.
Reference is made to Application No. 08 / 258,165. By this reference, this is
Shall also be included.
FIG. 1 is a block diagram of a computer system 11 in which the present invention can generally be used.
It is. One or more processing elements 14 and 16 may be buses or intersection switches.
One or more main memory systems 18 via such interconnects 10 and 12
And 20. One or more input / output (I / O) subsystems 22 and
And 24 are also connected to the interconnect mechanism 10 (12). Each I / O subsystem
The input / output (I / O) element or bridge 26 (28) and one or more
It consists of buses 30 and 32 (34 and 36). The I / O elements 26 (28) also
Connect to any standard I / O bus 38 (40), such as a VME bus.
Can be. For the sake of simplicity, these systems and services are described below.
Subsystems should each mention only one of them
To
Each processing element, for example, 14 comprises a processing unit 44 connected to a cache 42.
including. This connection connects the processing unit 44 and the cache 42 to the interconnection mechanism 1.
It is also connected to 0. The processing unit 44 can be any standard micro
Processor unit (MPU: microprocessor) unit). For example
The PENTIUM microprocessor available from Intel Corporation for this purpose
Are suitable. The processing unit 44 is, as before, any suitable operating
It operates according to the operating system. Processing element 14 is for self-test purposes
Alternatively, a dual processing unit 44 may be included.
The cache 42 is a write-through or write-back type cache.
Arbitrarily sized and associative with one cache level
It may have a hierarchical structure as described above. The processing unit 44 includes the cache 4
2 may store only data, or may include instructions of computer programs and
It is also possible to store both data. In the former case, a similar instruction cache 4
3 is additionally connected to the processing unit 44, and the processing unit 44
Program instructions may be stored. This connection is made to the instruction cache 43
Is connected to the interconnection mechanism 10. This system is a multi-processing computer.
In the case of a data system, each processing unit 44 has a bus snooping (bus s
cache coherency using any conventional mechanism (e.g., nooping).
Can be held. The cache 42 includes, for example, the interconnector 10 or 1
2 is connected to the main memory system.
Fault according to the invention using a remote checkpointing buffer
One embodiment of a tolerant computer system is shown in FIG. Shown in FIG.
In an embodiment, the main computer system 110 includes a high-speed data link 150
Through a standby computer system 120. Stan
The standby computer system is the standby computer system.
Used to establish a checkpoint remotely in memory. Shown in FIG.
As such, the primary computer system 110 and the standby computer system
The system 120 may be, for example, through an Ethernet system 140
Interconnected, and a common dual port disk array 130
And may share other dual port storage and communication devices.
In a preferred version of this embodiment, the main computer system 110 and the
The standby computer system 120 is substantially the same computer
. FIG. 3 illustrates one embodiment of the main computer system 110 in further detail. S
The standby computer 120 is the same as the main computer system shown in FIG.
It will be appreciated that it has a structure.
Main computer system 110 includes a memory subsystem 112,
Memory subsystem 112 includes main memory 113, write buffer 116 and
Control logic for controlling data transfer in memory and memory subsystem 112
117. Memory subsystem 112 is coupled to memory bus 114.
Have been. According to the description of FIG. 1, the representative main computer system of FIGS.
The stem 110 is coupled to a memory bus 114 (or other topology)
One or more processors 118, remote checkpoint interface 122
, I / O bus 124, Ethernet interface 126, and SCSI
Also includes an external storage interface shown as controller 128.
The I / O bus is coupled to the memory bus via an I / O bridge 125
You. The remote checkpoint interface 122 is connected to the buffer memory 13
2 and an interface controller 134. Remote checkpoint
The interface is coupled to the memory 112 via the connection 144
. The interface controller 134 is coupled to the high-speed I / O port 131.
Connecting the main computer system to the high speed data link 150. SCS
The I controller 128 is coupled to the SCSI I / O port 129 and
Computer system to the dual port disk array 130. I
Ethernet interface is coupled to Ethernet I / O port 127
, Connect the main computer system to Ethernet 140.
Use this system to maintain a consistent state in main memory after a failure.
The process will now be described. U.S. Pat. No. 4,654,819
In contrast to such systems, this process is performed by the cache 4 of the processing unit 14.
2 from one processing element 14 to another processing element 16 without having to release the entire
To pass. All processing units in the computer system 11
44 has access to all buses or communication paths to main memory,
Each processing unit 44 caches the cache using a conventional bus snooping method.
Healing can be guaranteed. All processing units 44 are all systems
If not having access to the bus, the processing unit 44
Use the cache cacher technique of knowledge instead
Can be.
The operation of this embodiment is described here as remote checkpointing.
Inting), which is shown in FIGS. This is a checkpointing station
As described in a previously filed co-pending patent application filed by the applicant
This is roughly the same. However, with remote checkpointing,
The main memory 113 of the standby computer system 120 is
A machine as a checkpoint memory for the main memory 113 of the system 110
Work, main memory 1 of main computer system at last checkpoint
13 states. Written to main memory 113 of main computer system
Data is also stored in the main computer system under the control of the memory control logic 117.
Is captured by the write buffer 116. Note that the access is only partially cached.
It is understood that some have shrink lines or overall cache lines
Let's go. The write buffer is of sufficient size to transfer data over bus 144.
Buffer the data to accommodate any delays associated with the transfer.
Data is transferred from the write buffer 116 to a remote check of the main computer system.
Point interface 122 where additional buffering is performed.
To account for any delays associated with the high speed data link 150. Next,
Data through a high-speed data link 150 to a standby computer system.
Transferred to the remote checkpoint interface 122 of the
Computer system bus
Is stored in the buffer memory 132.
All writes to the main memory 113 of the main computer system (cache
(Including lines written to memory during flash release)
The buffer memory of the standby computer system along with the physical memory locations
It is also written to the file 132. Processor 118 of the main computer system;
And any additional processors coupled to memory bus 114
When the release is completed, the operating system in the primary computer system
The remote control interface allows the standby computer system
Notify the system. Standby computer system buffer memory 132
Is transferred to the main memory 113 of the standby computer system,
Checkpoint in main memory 113 of standby computer system
Establish.
Checkpointing for consistent system state
Processors flush their caches synchronously. Once processing element 1
4 has begun releasing, until all other processing elements 14 have completed their release.
Cannot resume normal operation except under certain conditions discussed below.
No.
Synchronizing the processor's cache release depends on the buffer memory
Data should be copied to main memory 113 and what data should not be copied
Because you need to know. That is, the buffer memory stores the post-release data and
It is necessary to distinguish between delivery data. Therefore, which processor
If the buffer does not know what is sending, all processors are in normal operation
Before they can be started, ensure that their release is complete and consistent.
I have to. To control the synchronization, preferably as shown at 80 in FIG.
For example, using a designated location in the main memory of the main computer, inspection and configuration
The lock value is stored using constant lock processing or equivalent processing. Basic memory element
Use this finger to ensure that recovery from failures and other failures is possible.
The home position is preferably implemented as part of a status register.
At periodic intervals, each processing unit 44 performs a process as shown in step 90 of FIG.
Next, a determination is made as to whether or not the release process should be started. The processing unit 44
Can be determined in a number of different ways. Typically, the release is for a fixed time period
It may be started after a lapse of time.
If this processing unit 44 does not need to initiate a release, the designated memory location 80
Is checked to determine whether another processing unit 44 has already set the lock.
Is determined (step 92). If no lock is set, this process
The process ends as shown at 94. Conversely, if a lock is set, this processing unit
The unit 44 releases its cache 42 at step 96. Effectiveness of release process
Results are changed for all lines in the cache (or, preferably, since the last release).
The main memory 113 of the computer and the write buffer 11
6 is stored in the same manner. Prior to the actual release processing, the processing unit 4
4 saves its state in cache 42 so that this information is released as well.
To
An input / output (I / O) operation is usually processed as follows. During normal operation, I
The / O request can be sent in any standard way, depending on the operating system.
Issued and entered into the appropriate I / O queue. However, the actual physical I
The / O operation is not started until the next checkpoint. Therefore, obstacles and
In the case of subsequent retreat to the checkpointed state
, Checkpoint processing is also performed on all pending I / O operations. Disk
And other iconic I / O operations, i.e., repeat without changing the result
Actions that can be returned can simply be restarted.
Proper handling of communication I / O operations depends on the communication protocol. Possible messages
In protocols that deal with page duplication, pending I / O can be restarted.
For protocols that handle missing messages, remove I / O from the pending queue
can do. Protocol that does not process missing or repeated messages
The pending I / O is removed from the pending queue. Message before failure
If it was not sent out or was aborted as a result of a failure,
Link failure and impact are the same, and the same result
Or to the user. Communication link interrupts are usually
Events can occur so much that such events cannot be made transparent.
The use of a protocol is likely to be a user or application,
Means that they are prepared to deal with them.
When the processing unit 44 determines in step 90 that the release should be started
, As in step 92, whether the lock has already been set in step 98
A determination is made as to whether or not it is. If the lock has already been set, the processing unit 44
Continue to flush its cache 42 at step 96. Other places
In step 100, a lock is set in step 100, and a message is sent to another processor.
By triggering their release line operations,
Prior to emission, identify itself as an emission initiator.
After processing unit 44 releases its cache 42 at step 96,
In step 102, the corresponding emission counter is incremented. As shown in FIG.
In addition, each processing unit 44 has a release counter as indicated at 82 and 84,
These are predetermined designated positions in the main memory 113. Release counter (example
For example, after incrementing 82), processing unit 44 determines that it is
It is determined whether or not the camera is a nicheter (step 104). Initiator
If not, the process waits at step 106 until the lock is released. Lock
If so, the process ends at step 108 and the processing unit
44 can resume normal operation.
In the determination at step 104, the processing unit 44 is the release initiator.
If so, in step 105, all release counters (82-84) are incremented.
Wait until done. Once all release counters have been incremented, this processing unit
44 sends a commit command to the memory control logic 117,
As described above, the data in the write buffer 116 is transferred to the standby computer.
Is copied to the main memory 113. Once this command has been sent, the release lock is unlocked.
The processing unit 44 can resume normal processing. Step 10
Loop between 6 and 110 has time out protection and release
In the event of a fault during operation, a fault recovery procedure should be triggered.
The release counter described here may be a 1-bit counter, and
Easily as part of the status register in the checkpoint memory device
Note that implementation is possible. The bits are set individually by each processor.
Automatically reset when the initiator sends a commission command
Can be.
Implementing certain non-standard bus protocols also offers processing power advantages
be able to. For example, a bus protocol may cause the memory subsystem 48 to process
The reason for discriminating between the physical elements 14 or writing to the line to be stored is
, The processing element 14 that has completed the i-th release, or the i-th release is still being performed
Pre-release data from post-release data, or at least identify processing elements
If it is possible to identify at least the
It is not necessary to wait until all other processing elements have completed their emission before starting
. In this case, after completing the i-th discharge, all the processing elements
Child 16 also initiates at least its i-th release (but needs to complete
), By requesting that normal operation be suspended.
Maintain consistency.
Even if the synchronization constraint is relaxed in this way, a consistent checkpoint state still exists.
Location is guaranteed. That is, the processing element 16 that has not started discharging has completed discharging and has not passed.
The modified data after the release is received from another processing element 14 which has resumed the normal processing.
No guarantees. This less restrictive protocol for synchronization is allowed
The memory subsystem determines which data is being written as part of the
Of the data written by the processing element 14 which has completed the output.
And if you can. To implement this type of cache release synchronization, FIG.
6A, the order and arrangement of steps 96 and 102 are reversed as shown in FIG.
What should I do?
If the primary computer system fails, the standby computer
The main memory 113 of the system is the main computer at the last checkpoint.
-Includes system status. Standby computer systems are standard
All techniques, such as dual port disk array 130, are implemented using
Activates the connection to the dual-port I / O device so that the primary
Takes over the processing of the application running on the
No interruption of application and no loss of associated data. Or obstacle
After that, the standby computer system connects the high-speed data link 150
Through this, the contents of the main memory 113 are stored in the main memory 1 of the main computer system.
13 and the primary computer system is switched to the standby computer system.
Operation can be resumed from the last checkpoint stored in the main memory of the system.
It is also possible to make it.
As mentioned above, the standby computer system is the primary computer system.
System while providing checkpoint memory while in standby mode.
It is designed to be in the dollar state. However, the fault shown in FIG.
In an embodiment of a tolerant computer system, the computer system
Operate symmetrically so that each of computer systems 110 and 120
Provides remote checkpoint memory for other computer systems
You may do so. In this case, the standby computer system
While providing checkpoint memory to the
Can be executed. For symmetric operation, the remote checkpoint interface
The interface 112 is preferably integrated with the checkpoint memory.
The buffer memory 132 and the main memory 113 of each computer are physically
Co-located on the memory bus. This allows the standby
・ Throughput of computer systems operating in modes other than mode
I / O and memos for storing from buffer to shadow
Avoids the need to connect re-buses.
After the failure of one computer, the remaining computers are: 1) both computers
Run applications on data (itself and the failed computer)
But the throughput for either application is
descend. Or 2) quit its own application and generate a fault
Can run only the computer application. Ah
Or 3) run a subset of the combined application,
It has a sufficiently high priority.
FIG. 4 illustrates another implementation of the present invention that utilizes remote checkpoint buffering.
An embodiment will be described. In the embodiment shown in FIG.
Computer 110a, 110b, 120 and 120d.
Construct a logical ring, where each computer is
N + 1 redundancy by acting as a backup for
To make it work. In the embodiment shown in FIG.
b provides shadow memory to computer system 110a;
System system 110c provides shadow memory to computer system 110b.
Providing computer system 110d to computer system 110c.
Providing shadow memory so that the computer system 110a
Provide shadow memory to system 110d. I / O data device 130a,
130b, 130c, 130d and 130e are between immediately adjacent computers
A dual port device coupled to The I / O data device is
Dual port, or common to all computers in the ring.
It is also possible to combine the two.
In the embodiment shown in FIG. 4, one of the computers 110a-110d is reserved.
Which is either left idle or distributable
Can perform tasks. Each computer in the ring has two other neighbors
To one of these adjacent computers
Computer and the other adjacent computer is called the right computer. Re
If one of the non-spare computers fails in the
The computer task that occurred is performed by the adjacent computer on the right.
And the tasks of the right computer are performed by that right computer
The task continues until the designated spare computer is reached,
(Rippling) can be stopped.
It should be noted that the above-mentioned computer can be configured in a chain shape, which is preferable.
In other words, placing the standby computer at the end of the chain
Let's go. In such an embodiment, a standby computer is maintained at the end of the chain.
In some cases, it may be necessary to reconfigure the system after a failure. Compu
By constructing data sets into logical rings, the need for reconstruction is eliminated. Addition
In the above-described embodiment of the present invention, the processor and the computer of the computer system are used.
The individual elements, including memory and I / O devices, are interconnected by one or more memory buses.
It has been described as connected. The memory bus is a data bus, such as an intersection switch.
It is understood that other interconnect mechanisms that transfer the data and perform the same function may be replaced.
Let's go.
One of the advantages of the present invention is that it enables checkpointing for remote units.
By enabling it, there may be little or no internal redundancy (eg, a single process
To provide the computer with fault tolerance. Of the present invention
Another advantage over prior art checkpointing is that the protected computer
Checkpoint on a second computer physically separated from the
It is to stand. The second computer can be at a certain distance.
You. Therefore, a single spare computer can be connected to any number of
Fault tolerance to act as a backup to the
Extend the concept of Yet another advantage of the present invention is that application programs
Users do not need to be involved in the checkpointing process and need to know
There is no such thing. Responds to very quick recovery, memory frost damage and other hardware
Protection against air and software failures is provided.
From the embodiments of the invention described herein, the above-described embodiments are merely exemplary and are
It is recognized by those skilled in the art that they are not intended to be construed, but merely as examples.
I will be able to. Numerous modifications and other embodiments are within the purview of those skilled in the art, and
It is deemed to fall within the scope of the present invention defined in the appended claims and their equivalents.
Regard it.
【手続補正書】特許法第184条の8第1項
【提出日】1997年12月31日(1997.12.31)
【補正内容】
1.コンピュータ・システムであって、
少なくとも第1のアプリケーションを処理する第1のコンピュータであって、
キャッシュと、内部レジスタと、入出力イベント・キューとを有するプロセッ
サと、
前記プロセッサおよび前記キャッシュに結合された主メモリ・サブシステムと
、
前記主メモリ・サブシステムに結合され、前記主メモリに書き込まれたデータ
を捕獲するライト・バッファと、
外部ポートと、
前記ライト・バッファおよび前記外部ポートに結合され、前記ライト・バッフ
ァ内のデータを、前記第1のコンピュータの前記外部ポートに転送するインター
フェース制御部(122)と、
を含み、前記プロセッサが、前記キャッシュ、前記内部レジスタおよび前記入出
力イベント・キューを前記主メモリ・サブシステムに放出する手段と、前記キャ
ッシュ、前記内部レジスタおよび前記入出力イベント・キューを消去した後に、
チェックポイント命令を発行する手段とを含む該第1のコンピュータと、
前記第1のコンピュータの前記外部ポートに結合されたデータ通信リンクと、
前記第1のコンピュータから離れて位置する第2のコンピュータであって、
前記データ通信リンクに結合された外部ポートと、
前記第2のコンピュータの前記外部ポートに結合され、前記第1コンピュータ
の前記インターフェース・コントローラからのデータを受信する遠隔インターフ
ェース制御部(122)と、
主メモリ・サブシステムと、
前記第2のコンピュータの前記インターフェース・コントローラと、前記
第2コンピュータの前記主メモリとに結合され、前記第1のコンピュータの前記
ライト・バッファから転送されるデータを受け取るバッファ・メモリと、
を含み、前記第1コンピュータからの前記チェックポイント命令の受信時に、前
記第2コンピュータの前記主メモリ・サブシステムに、前記バッファ・メモリに
格納されているデータを転送し、前記第2コンピュータの前記主メモリ・サブシ
ステムが、前記第1のコンピュータの前記第1のアプリケーションの処理を再起
動することができる、一貫した状態を保持するようにした該第2のコンピュータ
と、
から成ることを特徴とするコンピュータ・システム。
2.前記第2のコンピュータが、更に、
前記主メモリ・サブシステムに結合されたプロセッサを含み、
前記第1のコンピュータの障害時に、前記第2のコンピュータが、データの損
失を生ずることなく、前記第1のコンピュータの前記第1のアプリケーションを
処理し続けることを特徴とする請求項1記載のコンピュータ・システム。
3.前記第2のコンピュータは、少なくとも第2のアプリケーションを処理し、
前記第2のアプリケーションの処理は、前記第1のコンピュータに障害が発生し
た場合に終了することを特徴とする請求項2記載のコンピュータ・システム。
4.前記第2のコンピュータは、少なくとも第2のアプリケーションを処理し、
前記第2のコンピュータは、前記第1のコンピュータに障害が発生した場合、前
記第1および第2のアプリケーション双方を処理することを特徴とする請求項2
記載のコンピュータ・システム。
5.前記第2のコンピュータが、更に、
前記主メモリ・システムに結合され、前記第2のコンピュータの前記主メモリ
・サブシステムに書き込まれたデータを捕獲するライト・バッファを含み、
前記第2のコンピュータの前記インターフェース・コントローラが、前記第2
のコンピュータの前記ライト・バッファに含まれるデータを前記第1の
コンピュータに転送し、前記第1のコンピュータの前記主メモリ・サブシステム
が、前記第2のコンピュータの前記主メモリのために、前記シャドウ・メモリと
して機能することを特徴とする請求項2記載のコンピュータ・システム。
6.第1および第2のコンピュータを有し、該第1および第2のコンピュータの
各々が、キャッシュを備えたプロセッサと、内部レジスタおよび入出力イベント
・キューと、遠隔インターフェース制御部(122)を備えた外部ポートと、主
メモリと、バッファ・メモリとを有するコンピュータシステムで、フォールト・
トレランスを与える方法において、
前記第1のコンピュータの前記主メモリに書き込まれたデータを捕獲するステ
ップと、
前記遠隔インターフェース制御部によって、データ・リンクを通じて、前記デ
ータを、前記第2コンピュータのバッファ・メモリに転送するステップと、
前記第1のコンピュータの前記プロセッサの前記キャッシュ、前記内部レジス
タおよび前記入出力イベント・キューを消去し、前記キャッシュ、前記内部レジ
スタおよび前記入出力イベント・キュー内に含まれているデータを、前記第1コ
ンピュータの前記主メモリと、前記第2のコンピュータの前記バッファ・メモリ
とに書き込むステップと、
前記第2のコンピュータの前記バッファ・メモリから、前記第2のコンピュー
タの前記主メモリにデータをコピーすることにより、チェックポイントを確立し
、前記第2のコンピュータの前記主メモリを、前記第1のコンピュータの前記主
メモリのシャドウ・メモリとして機能させるステップと、
から成ることを特徴とする方法。
7.更に、
前記第1のコンピュータにおいて第1のアプリケーションを処理するステップ
と、
前記第1のコンピュータの障害時に、前記第2のコンピュータにおいて前記第
1のアプリケーションを処理するステップと、
を含むことを特徴とする請求項6記載の方法。
8.更に、前記第2のコンピュータにおいて第2のアプリケーションを処理する
ステップと、
前記第1のコンピュータの障害時に、前記第2のアプリケーションの処理を終
了するステップと、
を含むことを特徴とする請求項7記載の方法。
9.更に、
前記第2のコンピュータにおいて第2のアプリケーションを処理するステップ
と、
前記第1のコンピュータの障害時に、前記第2のコンピュータにおいて、前記
第1および第2のアプリケーション双方を処理するステップと、
を含むことを特徴とする請求項7記載の方法。
10.更に、
前記第2のコンピュータの前記主メモリに書き込まれたデータを捕獲するステ
ップと、
前記データを、データ・リンクを通じて、前記第1コンピュータのバッファ・
メモリに転送するステップと、
前記第2のコンピュータの前記プロセッサの前記キャッシュを消去し、前記キ
ャッシュ内に含まれているデータを、前記第2コンピュータの前記主メモリと、
前記第1のコンピュータの前記バッファ・メモリとに書き込むステップと、
前記第1のコンピュータのバッファ・メモリから、前記第1のコンピュータの
前記主メモリにデータをコピーすることにより、チェックポイントを確立し、前
記第1のコンピュータの主メモリを、前記第2のコンピュータの前記主メモリの
シャドウ・メモリとして機能させるステップと、
から成ることを特徴とする方法。[Procedure of Amendment] Article 184-8, Paragraph 1 of the Patent Act
[Submission date] December 31, 1997 (Dec. 31, 1997)
[Correction contents]
1. A computer system,
A first computer for processing at least a first application,
A processor having a cache, internal registers, and an input / output event queue.
And
A main memory subsystem coupled to the processor and the cache;
,
Data coupled to the main memory subsystem and written to the main memory
A write buffer that captures
An external port,
The write buffer coupled to the write buffer and the external port;
Interface for transferring data in the external computer to the external port of the first computer.
A face control unit (122);
Wherein the processor includes the cache, the internal register, and the input / output.
Means for releasing a force event queue to the main memory subsystem;
After flushing the internal registers and the input / output event queue,
Said first computer including means for issuing a checkpoint instruction;
A data communication link coupled to the external port of the first computer;
A second computer located away from the first computer,
An external port coupled to the data communication link;
The first computer coupled to the external port of the second computer
Remote interface for receiving data from the interface controller of
A base control unit (122);
A main memory subsystem;
Said interface controller of said second computer;
Coupled to the main memory of the second computer, the main computer of the first computer;
A buffer memory for receiving data transferred from the write buffer;
Upon receiving the checkpoint command from the first computer,
In the main memory subsystem of the second computer, in the buffer memory
Transferring the stored data to the main memory subsystem of the second computer;
The system restarts processing of the first application on the first computer.
The second computer capable of moving and maintaining a consistent state
When,
A computer system comprising:
2. The second computer further comprises:
A processor coupled to the main memory subsystem;
In the event of a failure of the first computer, the second computer loses data
Without loss of the first application on the first computer
The computer system according to claim 1, wherein the processing is continued.
3. The second computer processes at least a second application;
The processing of the second application is performed when a failure occurs in the first computer.
3. The computer system according to claim 2, wherein the processing is terminated when said computer system is activated.
4. The second computer processes at least a second application;
If the first computer fails, the second computer
3. The method according to claim 2, wherein both the first and second applications are processed.
Computer system as described.
5. The second computer further comprises:
The main memory of the second computer coupled to the main memory system
A write buffer that captures data written to the subsystem;
The interface controller of the second computer is connected to the second controller;
The data contained in the write buffer of the first computer to the first
Transferring to a computer, the main memory subsystem of the first computer
But for said main memory of said second computer, said shadow memory and
The computer system according to claim 2, which functions as a computer.
6. Having a first and a second computer, the first and second computers
Processors each with cache, internal registers and input / output events
A queue, an external port with a remote interface control (122),
Computer system having a memory and a buffer memory;
In the method of providing tolerance,
Capturing data written to the main memory of the first computer;
And
The data is transmitted by the remote interface control unit through a data link.
Transferring the data to a buffer memory of the second computer;
The cache of the processor of the first computer, the internal registry
Clears the cache and the internal register
And the data contained in the I / O event queue is stored in the first
The main memory of a computer and the buffer memory of the second computer
And writing to
From the buffer memory of the second computer, the second computer
Establishes a checkpoint by copying data to the main memory of the
The main memory of the second computer is stored in the main memory of the first computer.
Functioning as memory shadow memory;
A method comprising:
7. Furthermore,
Processing a first application on the first computer
When,
Upon failure of the first computer, the second computer
Processing one application;
7. The method according to claim 6, comprising:
8. And processing the second application in the second computer.
Steps and
When the first computer fails, the processing of the second application is terminated.
Steps to complete,
The method of claim 7, comprising:
9. Furthermore,
Processing a second application on the second computer
When,
Upon a failure of the first computer, the second computer
Processing both the first and second applications;
The method of claim 7, comprising:
10. Furthermore,
Capturing data written to the main memory of the second computer;
And
Transferring the data over a data link to a buffer of the first computer;
Transferring to memory;
Clearing the cache of the processor of the second computer;
Transferring the data contained in the cache to the main memory of the second computer;
Writing to the buffer memory of the first computer;
From the buffer memory of the first computer, the
Establish a checkpoint by copying data to the main memory,
The main memory of the first computer is stored in the main memory of the second computer.
Functioning as shadow memory;
A method comprising:
─────────────────────────────────────────────────────
【要約の続き】
起動させ、第1のコンピュータに確立された最後のチェ
ックポイントから動作することができる。この構造およ
びプロトコルは、主メモリにおける一貫した状態を保証
することができ、こうしてフォールト・トレラント動作
を可能にする。────────────────────────────────────────────────── ───
[Continuation of summary]
Activate the last chain established on the first computer.
Can work from the lockpoint. This structure and
And protocol guarantees consistent state in main memory
And thus fault tolerant operation
Enable.