JP2000501216A - Main memory system and checkpointing protocol for fault-tolerant computer systems using read buffers - Google Patents

Main memory system and checkpointing protocol for fault-tolerant computer systems using read buffers

Info

Publication number
JP2000501216A
JP2000501216A JP9-522061A JP52206197A JP2000501216A JP 2000501216 A JP2000501216 A JP 2000501216A JP 52206197 A JP52206197 A JP 52206197A JP 2000501216 A JP2000501216 A JP 2000501216A
Authority
JP
Japan
Prior art keywords
computer
data
main memory
memory
computers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP9-522061A
Other languages
Japanese (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 JP2000501216A publication Critical patent/JP2000501216A/en
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 通常のコンピュータ動作に制約を加えることなく、主メモリ内に一貫した周期的更新状態を維持するための機構を提供し、これによって、コンピュータ・システムが、データまたは処理の連続性を損なうことなく、障害から回復できるようにする。本発明では、第1のコンピュータが、プロセッサと、主要素子を含む主メモリ・サブシステムに接続された入出力素子とを含む。第2のコンピュータは、1つ以上のバッファ・メモリおよびシャドウ・メモリを含むことができる、遠隔チェックポイント・メモリ素子を有し、これが第1のコンピュータの主メモリ・サブシステムに接続されている。通常処理の間、基本メモリ素子に書き込まれたデータの画像が、遠隔チェックポイント・メモリ素子によって捕獲される。新たなチェックポイントが望まれる(これによって、障害の後に、全ての実行中のアプリケーションが安全に戻ることができる、主メモリ内の一貫した状態を確立する)場合、以前に捕獲されたデータを用いて、第2のコンピュータに新たなチェックポイント状態を確立する。第1のコンピュータの障害発生時に、第2のコンピュータを再起動させ、第1のコンピュータに確立された最後のチェックポイントから動作することができる。この構造およびプロトコルは、主メモリにおける一貫した状態を保証することができ、こうしてフォールト・トレラント動作を可能にする。 (57) Abstract: A mechanism is provided for maintaining a consistent periodic update state in main memory without impairing normal computer operation, thereby allowing a computer system to maintain a continuous data or processing sequence. Be able to recover from disability without compromising gender. In the present invention, a first computer includes a processor and input / output devices connected to a main memory subsystem including main components. The second computer has a remote checkpoint memory element, which may include one or more buffer memories and shadow memory, that is connected to the main memory subsystem of the first computer. During normal processing, an image of the data written to the elementary memory element is captured by the remote checkpoint memory element. If a new checkpoint is desired (this establishes a consistent state in main memory where all running applications can safely return after a failure), use the previously captured data. To establish a new checkpoint state in the second computer. Upon failure of the first computer, the second computer can be restarted and operate from the last checkpoint established on the first computer. This structure and protocol can guarantee a consistent state in main memory, thus allowing fault-tolerant operation.

Description

【発明の詳細な説明】 リード・バッファを用いたフォールト・トレラント・コンピュータ・システム 用主メモリ・システムおよびチェックポインティング・プロトコル 発明の分野 本発明は、特にフォールト・トレラント・コンピュータ・システムのための、 コンピュータ・メモリ・システムおよびチェックポインティング・プロトコル(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.

Claims (1)

【特許請求の範囲】 1.コンピュータ・システムであって、 プロセッサと、 前記プロセッサに結合された主メモリ・サブシステムであって、 前記プロセッサによってデータが読み出され、かつデータが書き込まれる基本 メモリ素子と、 前記プロセッサによって前記基本メモリ素子にデータが書き込まれる毎に監視 し、前記プロセッサに書き込まれたデータに関係するバッファ・データを格納す るライト・バッファと、 前記バッファ・データを用い障害に続いて、データ保全性またはプログラム連 続性に損傷を与えることなく処理が再開可能な、一貫したチェックポイント状態 が、前記主メモリ・サブシステムにおいて存在することを保証する手段と、を含 む前記主メモリ・サブシステムと、 から成ることを特徴とするコンピュータ・システム。 2.前記プロセッサおよび前記基本メモリ素子が第1のコンピュータにあり、前 記ライトバッファが、前記第1のコンピュータに通信リンクによって接続された 第2のコンピュータにあることを特徴とする請求項1記載のコンピュータ・シス テム。 3.コンピュータ・システムであって、 少なくとも第1のアプリケーションを処理する第1のコンピュータであって、 プロセッサと、 前記プロセッサに結合された主メモリ・サブシステムと、 前記主メモリ・サブシステムに結合され、前記主メモリに書き込まれたデータ を捕獲するライト・バッファと、 外部ポートと、 前記ライト・バッファおよび前記外部ポートに結合され、前記ライト・バッフ ァ内のデータを、前記第1のコンピュータの前記外部ポートに転送するインター フェース・コントローラと、 を含む前記第1のコンピュータと、 前記第1のコンピュータの前記外部ポートに結合されたデータ通信リンクと、 第2のコンピュータであって、 前記データ通信リンクに結合された外部ポートと、 前記第2のコンピュータの前記外部ポートに結合され、前記第1コンピュータ の前記インターフェース・コントローラからのデータを受信するインターフェー ス・コントローラと、 主メモリ・サブシステムと、 前記第2のコンピュータの前記インターフェースと、前記第2コンピュータの 前記主メモリとに結合され、前記第1のコンピュータの前記主メモリに書き込ま れるデータを受け取るバッファ・メモリと、 を含む前記第2のコンピュータと、 から成り、 前記バッファ・メモリに格納されている全てのデータが、前記第1のコンピュ ータからの命令の受信時に、前記第2のコンピュータの前記主メモリに転送され 、前記第2のコンピュータの前記主メモリが、前記第1のコンピュータの前記主 メモリのシャドウ・メモリとして機能することを特徴とするコンピュータ・シス テム。 4.前記第2のコンピュータが、更に、 前記主メモリ・サブシステムに結合されたプロセッサを含み、前記第1のコン ピュータの障害時に、前記第2のコンピュータが、データの損失を生ずることな く、前記第1のコンピュータの前記第1のアプリケーションを処理し続けること を特徴とする請求項3記載のコンピュータ・システム。 5.前記第2のコンピュータは、少なくとも第2のアプリケーションを処理し、 前記第2のアプリケーションの処理は、前記第1のコンピュータに障害が発生し た場合に終了することを特徴とする請求項4記載のコンピュータ・システム。 6.前記第2のコンピュータは、少なくとも第2のアプリケーションを処理し、 前記第2のコンピュータは、前記第1のコンピュータに障害が発生した場合、前 記第1および第2のアプリケーション双方を処理することを特徴とする請求 項4記載のコンピュータ・システム。 7.前記第2のコンピュータが、更に、 前記主メモリ・システムに結合され、前記第2のコンピュータの前記主メモリ ・サブシステムに書き込まれたデータを捕獲するライト・バッファを含み、 前記第2のコンピュータの前記インターフェース・コントローラが、前記第2 のコンピュータの前記ライト・バッファに含まれるデータを前記第1のコンピュ ータに転送し、前記第1のコンピュータの前記主メモリ・サブシステムが、前記 第2のコンピュータの前記主メモリのために、前記シャドウ・メモリとして機能 することを特徴とする請求項4記載のコンピュータ・システム。 8.コンピュータ・システムであって、 複数のコンピュータであって、1つの予備コンピュータを除いて、各々データ 処理タスクを実行する前記複数のコンピュータと、 前記複数のコンピュータの各々に結合され、前記複数のコンピュータを論理リ ングに接続するデータ通信ネットワークと、 から成り、 データ処理タスクを実行中の前記複数のコンピュータの1つにおける障害時に 、データ処理タスクを実行中の前記複数のコンピュータの該データ処理タスクが 、前記予備コンピュータを含む前記複数のコンピュータの内機能するコンピュー タによって、データの損失を生ずることなく実行されることを特徴とするコンピ ュータ・システム。 9.複数のデュアル・ポートI/O装置を更に備え、該デュアル・ポートI/O 装置の各々が、前記複数のコンピュータの少なくとも2つに結合されることを特 徴とする請求項8記載のコンピュータ・システム。 10.データ処理タスクを実行する多数のコンピュータが、前記予備コンピュー タと前記障害を発生したコンピュータとの間にあり、前記障害を発生したコンピ ュータおよび前記多数のコンピュータの各々の前記データ処理タスクが、次に隣 接するコンピュータによって実行され、前記予備コンピュータが、前記多数のコ ンピュータの1つのタスクを実行することを特徴とする請求項8記載のコンピュ ータ・システム。 11.第1および第2のコンピュータを有し、該第1および第2のコンピュータ の各々が、キャッシュを備えたプロセッサと、キャッシュと、外部ポートと、主 メモリと、バッファ・メモリとを有するコンピュータシステムにおいて、フォー ルト・トレランスを与える方法であって、 前記第1のコンピュータの前記主メモリに書き込まれたデータを捕獲するステ ップと、 前記データを、データ・リンクを通じて、前記第2コンピュータの前記バッフ ァ・メモリに転送するステップと、 前記第1のコンピュータの前記プロセッサの前記キャッシュを放出し、前記キ ャッシュ内に含まれているデータを、前記第1コンピュータの前記主メモリと、 前記第2のコンピュータの前記バッファ・メモリとに書き込むステップと、 前記第2のコンピュータの前記バッファ・メモリから、前記第2のコンピュー タの前記主メモリにデータをコピーすることにより、チェックポイントを確立し 、前記第2のコンピュータの前記主メモリを、前記第1のコンピュータの前記主 メモリのシャドウ・メモリとして機能させるステップと、 から成ることを特徴とする方法。 12.更に、 前記第1のコンピュータにおいて第1のアプリケーションを処理するステップ と、 前記第1のコンピュータの障害時に、前記第2のコンピュータにおいて前記第 1のアプリケーションを処理するステップと、 を含むことを特徴とする請求項11記載の方法。 13.更に、前記第2のコンピュータにおいて第2のアプリケーションを処理す るステップと、 前記第1のコンピュータの障害時に、前記第2のアプリケーションの処理を終 了するステップと、 を含むことを特徴とする請求項12記載の方法。 14.更に、 前記第2のコンピュータにおいて第2のアプリケーションを処理するステッ プと、 前記第1のコンピュータの障害時に、前記第2のコンピュータにおいて、前記 第1および第2のアプリケーション双方を処理するステップと、 を含むことを特徴とする請求項12記載の方法。 15.更に、 前記第2のコンピュータの前記主メモリに書き込まれたデータを捕獲するステ ップと、 前記データを、データ・リンクを通じて、前記第1コンピュータの前記バッフ ァ・メモリに転送するステップと、 前記第2のコンピュータの前記プロセッサの前記キャッシュを放出し、前記キ ャッシュ内に含まれているデータを、前記第2コンピュータの前記主メモリと、 前記第1のコンピュータの前記バッファ・メモリとに書き込むステップと、 前記第1のコンピュータのバッファ・メモリから、前記第1のコンピュータの 前記主メモリにデータをコピーすることにより、チェックポイントを確立し、前 記第1のコンピュータの前記主メモリを、前記第2のコンピュータの前記主メモ リのシャドウ・メモリとして機能させるステップと、 から成ることを特徴とする方法。 16.複数のコンピュータと、前記複数のコンピュータを結合し論理リングを形 成するデータ通信ネットワークとを有するコンピュータ・システムにおいて、フ ォールト・トレランスを与える方法であって、 前記複数のコンピュータの各々においてアプリケーションを処理するステップ と、 前記複数のコンピュータの内、少なくとも1つの障害を発生したコンピュータ を検出するステップと、 前記少なくとも1つの障害を発生したコンピュータのアプリケーションを、前 記複数のコンピュータの内少なくとも1つの他のコンピュータにおいて処理する ステップと、 から成ることを特徴とする方法。 17.前記プロセッサが、該プロセッサによって開始される入出力イベントを 与える、対応する入出力サブシステムを有し、前記プロセッサが、チェックポイ ント間で入出力イベントを整列する手段と、チェックポイントを確立すべきとき に、前記整列されたイベントを前記基本メモリ素子に放出することにより、入出 力イベントを前記主メモリ・サブシステム内のチェックポイント・データに捕獲 する手段とを有することを特徴とする請求項1記載のコンピュータ・システム。[Claims]   1. A computer system,   A processor,   A main memory subsystem coupled to the processor,   Basics in which data is read and data is written by the processor A memory element;   Monitors each time data is written to the basic memory element by the processor And stores buffer data related to the data written to the processor. Write buffer   Following the failure using the buffer data, data integrity or Consistent checkpoint state where processing can be resumed without damaging continuity Means for ensuring that it is present in said main memory subsystem. Said main memory subsystem; A computer system comprising: 2. The processor and the basic memory element are in a first computer, A write buffer connected to the first computer by a communication link; 2. The computer system according to claim 1, wherein the computer system is located on a second computer. Tem. 3. A computer system,   A first computer for processing at least a first application,   A processor,   A main memory subsystem coupled to the processor;   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 controller, The first computer comprising:   A data communication link coupled to the external port of the first computer;   A second computer,   An external port coupled to the data communication link;   The first computer coupled to the external port of the second computer Interface for receiving data from the interface controller Controller and   A main memory subsystem;   The interface of the second computer; and the interface of the second computer. Coupled to the main memory and written to the main memory of the first computer A buffer memory for receiving the data to be The second computer comprising: Consisting of   All data stored in the buffer memory is stored in the first computer. Transferred to the main memory of the second computer upon receipt of a command from the , The main memory of the second computer is the main memory of the first computer. Computer system characterized by functioning as shadow memory of memory Tem. 4. The second computer further comprises:   A processor coupled to the main memory subsystem; In the event of a computer failure, the second computer will not lose data. Continuing to process the first application on the first computer 4. The computer system according to claim 3, wherein: 5. 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. The computer system according to claim 4, wherein the processing is terminated when the computer system has been operated. 6. The second computer processes at least a second application; If the first computer fails, the second computer Processing both the first and second applications. Item 6. The computer system according to Item 4. 7. 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 computer. And the main memory subsystem of the first computer Function as the shadow memory for the main memory of the second computer 5. The computer system according to claim 4, wherein: 8. A computer system,   Multiple computers, each with the exception of one spare computer Said plurality of computers performing processing tasks;   The plurality of computers are coupled to each of the plurality of computers, and the plurality of computers are logically reconfigured. A data communication network connected to the Consisting of   In the event of a failure in one of said plurality of computers executing a data processing task The data processing task of the plurality of computers executing the data processing task is A functioning computer among the plurality of computers including the spare computer Computer without loss of data. Computer system. 9. A dual port I / O device, further comprising a plurality of dual port I / O devices; Wherein each of the devices is coupled to at least two of said plurality of computers. 9. The computer system according to claim 8, wherein 10. A number of computers performing data processing tasks are Between the failed computer and the failed computer. And the data processing task of each of the plurality of computers is next to Executed by the contacting computer, and the spare computer 9. The computer of claim 8, wherein the computer performs one task of the computer. Data system. 11. Having first and second computers, the first and second computers Each have a processor with a cache, a cache, an external port, In a computer system having a memory and a buffer memory, A way to give   Capturing data written to the main memory of the first computer; And   Transmitting the data to the buffer of the second computer via a data link. Transferring to a memory   Releasing the cache of the processor of the first computer; Transferring the data contained in the cache to the main memory of the first computer; Writing to the buffer memory of the second computer;   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: 12. Furthermore,   Processing a first application on the first computer When,   Upon failure of the first computer, the second computer Processing one application; The method of claim 11, comprising: 13. Further, the second computer processes a second application. Steps   When the first computer fails, the processing of the second application is terminated. Steps to complete, 13. The method according to claim 12, comprising: 14. Furthermore,   A step of processing a second application on the second computer. And   Upon a failure of the first computer, the second computer Processing both the first and second applications; 13. The method according to claim 12, comprising: 15. Furthermore,   Capturing data written to the main memory of the second computer; And   Transmitting said data to said buffer of said first computer via a data link. Transferring to a memory   Releasing 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. Operating as shadow memory for the A method comprising: 16. A plurality of computers and the plurality of computers combined to form a logical ring Computer system having a data communication network A method of providing fault tolerance,   Processing an application on each of the plurality of computers When,   Computer in which at least one of the plurality of computers has failed Detecting   Loading the at least one failed computer application Processing on at least one other computer of the plurality of computers Steps and A method comprising: 17. The processor receives input / output events initiated by the processor. And a corresponding input / output subsystem, the processor having a checkpoint Means to align I / O events between events and when checkpoints should be established Releasing the aligned events to the basic memory element Capturing force events to checkpoint data in the main memory subsystem 2. The computer system according to claim 1, further comprising:
JP9-522061A 1995-11-29 1996-11-27 Main memory system and checkpointing protocol for fault-tolerant computer systems using read buffers Pending JP2000501216A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/564,023 1995-11-29

Publications (1)

Publication Number Publication Date
JP2000501216A true JP2000501216A (en) 2000-02-02

Family

ID=

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11392463B2 (en) 2018-10-22 2022-07-19 Fujitsu Limited Effective backup of data used by multiple nodes executing parallel processing

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11392463B2 (en) 2018-10-22 2022-07-19 Fujitsu Limited Effective backup of data used by multiple nodes executing parallel processing

Similar Documents

Publication Publication Date Title
US5958070A (en) Remote checkpoint memory system and protocol for fault-tolerant computer system
JP4073464B2 (en) Main memory system and checkpointing protocol for fault tolerant computer system using read buffer
US5864657A (en) Main memory system and checkpointing protocol for fault-tolerant computer system
US5751939A (en) Main memory system and checkpointing protocol for fault-tolerant computer system using an exclusive-or memory
JP2505928B2 (en) Checkpoint mechanism for fault tolerant systems
EP0764302B1 (en) Main memory system and checkpointing protocol for fault-tolerant computer system
US6622263B1 (en) Method and apparatus for achieving system-directed checkpointing without specialized hardware assistance
US8234521B2 (en) Systems and methods for maintaining lock step operation
EP1573544B1 (en) On-die mechanism for high-reliability processor
JP2916420B2 (en) Checkpoint processing acceleration device and data processing method
US20050240806A1 (en) Diagnostic memory dump method in a redundant processor
JP5392594B2 (en) Virtual machine redundancy system, computer system, virtual machine redundancy method, and program
EP0433979A2 (en) Fault-tolerant computer system with/config filesystem
JPS638835A (en) Trouble recovery device
US20060242456A1 (en) Method and system of copying memory from a source processor to a target processor by duplicating memory writes
JP3301992B2 (en) Computer system with power failure countermeasure and method of operation
JP5287974B2 (en) Arithmetic processing system, resynchronization method, and farm program
JP2000501216A (en) Main memory system and checkpointing protocol for fault-tolerant computer systems using read buffers
JP2973425B2 (en) Fault handling method and device therefor
JPH05143248A (en) Data backup system for semiconductor disk device
JP3679412B6 (en) Computation with fast recovery from failure / tolerance to failure
JP3679412B2 (en) Computation with fast recovery from failure / tolerance to failure
JPH10136127A (en) External charging system
JPH07271624A (en) Cache flashing method for duplex memory of fault tolerant computer system