(57)【要約】【課題】ロックステップにおいて２つのプロセッサを実行させることに関連した無駄を回避する。【解決手段】プロセッサ(11)は、その状態を外部状態キャッシュ(15)に書き込むことができる。従って、プロセッサが故障するイベントにおいて、その格納された状態を、元のプロセッサか又は別のプロセッサ(12)によって、読み出し且つそのプロセッサ自身のものにさせることができる。従って、初期条件から復元するのではなく、前記格納された状態からプロセスを再開することができる。【選択図】図１
2006302288.tif 000002
【特許請求の範囲】
【請求項１】
外部状態キャッシュと、
前記外部状態キャッシュに第１のプロセッサの状態を書き込むための該第１のプロセッサ
とを備える、システム。
【請求項２】
前記第１のプロセッサが、組み込みシステムと伝達し合うためのシステムインターフェースと、前記外部状態キャッシュと伝達し合うための個別ポートとを有する、請求項１に記載のシステム。
【請求項３】
前記システムインターフェースが、コア電子構成要素に接続される、請求項２に記載のシステム。
【請求項４】
前記外部状態キャッシュが、前記第１のプロセッサに結合された第１のポートと、組み込みシステムと伝達し合うためのシステムポートとを有する、請求項１に記載のシステム。
【請求項５】
第２のプロセッサを更に含み、前記外部状態キャッシュが、前記第２のプロセッサに結合された第２のポートを有する、請求項４に記載のシステム。
【請求項６】
プロセッサが、プログラム命令を処理する間の状態を自分自身のものとし、及び、
プロセッサが、その状態を外部状態キャッシュに書き込む
といったことを含む、方法。
【請求項７】
前記第１のプロセッサが、その状態をプログラム命令に応答して前記外部状態キャッシュに書き込むことからなる、請求項６に記載の方法。
【請求項８】
評価されることが可能な、差し迫ったプロセッサ障害の可能性の評価を形成するための、プロセッサのヘルスメトリクスを、監視することを更に含み、前記書き込むことが、前記評価の関数として少なくとも部分的に生じられることからなる、請求項６に記載の方法。
【請求項９】
前記外部状態キャッシュに書き込む頻度が、差し迫った障害の可能性、前記プロセッサ上において実行されているアプリケーションのアップタイム要件、性能制約、及び電力制約のうちの少なくとも１つに依存する、請求項８に記載の方法。
【請求項１０】
前記第１のプロセッサが、前記外部状態キャッシュから読み出して、前記状態を自分自身のものとすることを更に含むことからなる、請求項６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータに関し、特に、高可用性（又は高稼働率）コンピューティングに関する。本明細書内において、「従来技術」とラベル付けられた関連技術は、従来技術と認められており、そのようにラベル付けされていない関連技術は、従来技術と認められていない。
【背景技術】
【０００２】
コンピュータが受ける通常の長さのダウンタイム（又は障害による停止時間）が許容不可能な用途のために高可用性コンピュータは使用される。高可用性コンピュータは、プロセッサ、メモリ、Ｉ／Ｏ（入力／出力）インターフェース、電源、及びディスク記憶装置のような多くの構成要素にバックアップを提供するために冗長性を用いる。１つの構成要素が故障した時には、別の類似の構成要素がその機能を引き継ぐために利用可能にされる。１つのアプローチは、１つの構成要素が故障した場合にデータが保存され、故障した構成要素からの切り換えにおいて時間の損失がほとんど無いように、同一の構成要素を並列に動作させることである。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
当然、２つの構成要素が、事実上１つの作業を行っている時には性能を犠牲にしている可能性がある。
【課題を解決するための手段】
【０００４】
本発明は、特許請求の範囲内において画定されるものとして、１つのプロセッサか又はプロセッサのセットのための外部状態キャッシングを提供する。あるプロセッサが故障した場合には、その状態が保存され、その結果、故障に関連付けられた問題が処理されると、別のプロセッサによってか又は元のプロセッサによって、その状態を再開することができる。状態が保存されているので、状態を再現するために必ずしもプロセスの最初に戻る必要があるとは限らない。状態の保存は、別のプロセッサを必要とせず、従って、ロックステップ（lock-step）において２つのプロセッサを実行させることに関連した無駄が回避される。本発明の、これらの及びその他の特徴と利点とは、添付図面に関連して下記の説明から明らかである。
【発明の効果】
【０００５】
ロックステップにおいて２つのプロセッサを実行させることに関連した無駄が回避される。
【実施例】
【０００６】
本発明によるコンピュータシステムＡＰ１は、１対のプロセッサ１１と１２、コア電子構成要素（ＣＥＣ：core electronics component）１３、外部状態キャッシュ１５、システムメモリ１７、及びＩ／Ｏデバイス１９を備え、これらは全て、図１内にバス２１として示されたネットワーク機構によって結合される。バス２１に対する接続２３を、他のプロセッサのセットと他のコンピュータ構成要素とに接続することができる。システムメモリ１７は、オペレーティングシステムも含めて、データ２５とプログラム２７とを保持する。
【０００７】
プロセッサ１１と１２とは、外部状態キャッシュ１５を共用し、ロックステップにおいて実行されない。示された実施形態の変形形態によって、外部状態キャッシュを共用するプロセッサが、ロックステップモードと非ロックステップモードとにおいて代替的に（又は二者択一的に）実行することができる。外部状態キャッシュ１５はまた、状態データを他のプロセッサのセットに転送するためにＣＥＣ１３に結合される。他の実施形態において、外部状態キャッシュは、１つのプロセッサのみか又は３つ以上のプロセッサに結合される。
【０００８】
システムＡＰ１において、外部状態キャッシュ１５は、専用の状態ダンプポート３１と３２とのそれぞれにおいて、プロセッサ１１と１２との両プロセッサに結合される。それぞれのシステムインターフェース４１と４２とから独立した、専用の状態ダンプポート３１と３２との使用は、状態ダンプを実施する影響を最小化させる。各プロセッサは、その状態データ（例えばキャッシュ内容、レジスタ、プログラムポインタ）を、外部状態キャッシュ１５のそれぞれのセクションに書き込む。この書き込みは、ハードウェアによって指示されるものとしてか又はプログラム命令に応答して、周期的であることが可能である。
【０００９】
外部状態キャッシュ１５は、プロセッサ１１の状態ダンプポート３１を介して該プロセッサ１１からの状態ダンプを受け取るための第１のポート５１を有し、ポート５１は、プロセッサ１１によって書き込まれた状態データへのアクセスを提供するために、両プロセッサ１１と１２との状態ダンプポート３１と３２とに結合される。外部状態キャッシュ１５は、プロセッサ１２の状態ダンプポート３２を介して該プロセッサ１２からの状態ダンプを受け取るための第２のポート５２を有し、ポート５２は、プロセッサ１２によって書き込まれた状態データへのアクセスを提供するために、両プロセッサ１１と１２との状態ダンプポート３１と３２とに結合される。外部状態キャッシュ１５は、ＣＥＣ１３が外部状態キャッシュ１５からの状態の読み出しを可能とするために、及び外部状態キャッシュ１５へと状態の書き込みを可能とするために、更なるシステムポート５３を有する。従って、ＣＥＣ１３は、（例えば他のプロセッサセットからの）状態データを、外部状態キャッシュ１５を介してプロセッサ１１か又はプロセッサ１２のいずれかに転送することができる。代替の実施形態において、ＣＥＣは、状態データをプロセッサに直接的に転送することができる。他の実施形態において、ＣＥＣを含まない経路を介して外部状態キャッシュは組み込みシステム（又は内蔵システム）に結合される。
【００１０】
プログラム２７内に含まれる命令の中には、「ＣＰＵ＿ｄｕｍｐ＿ｓｔａｔｅ」命令がある。プロセッサ１１は、この命令を実行する時には、外部状態キャッシュ１５のそれぞれのセクションにその状態を書き込む。プログラム２７はまた、「ＣＰＵ＿ｒｅｓｕｍｅ＿ｓｔａｔｅ」命令と「ＣＰＵ＿ａｓｓｕｍｅ＿ｓｔａｔｅ」命令とを含む。プロセッサ１１は、「ＣＰＵ＿ｒｅｓｕｍｅ＿ｓｔａｔｅ」命令を実行する時には、外部状態キャッシュ１５の各セクションに格納された状態を読み出し且つ採用する。プロセッサ１１は、「ＣＰＵ＿ａｓｓｕｍｅ＿ｓｔａｔｅ」命令を実行する時には、外部状態キャッシュ１５の非・各セクションに格納された状態を読み出し且つ採用する（換言すると、プロセッサは、他のプロセッサによって書き込まれた状態を採用する）。自動状態ダンプをイネーブルにするか又はディセーブルにするために、且つ、それらの頻度を設定するために、他の命令を使用することもできる。
【００１１】
明確な命令が無い場合には、状態ダンプは、ハードウェアによって制御される。デフォルトでは、状態ダンプは規則的な間隔で生じる。該規則的な間隔は、（例えば、多くの検出された訂正可能な及び訂正不可能なエラー、検出された電圧レールの降下などに基づく）障害の可能性の（この場合ではＣＥＣ１３による）決定に基づいて増加させるか又は減少させることができる。規則的な間隔は、差し迫った障害の予測に基づいて短く切り上げることができる。状態ダンプもまた、プロセッサ上における他の要求に基づいて除外されるか又は遅延させられることができる。例えば、状態ダンプは、同期問題（又は同期送出、又は同期発令：synchronization issues）を回避するために除外されるか又は遅延させられることができる。
【００１２】
外部状態キャッシュ１５に専用の状態ダンプポート３１と３２とを使用することによって、状態ダンプを除外させるか又は遅延させる必要性が最小化される。外部状態ポート３１と３２とは、通常のシステムインターフェースポート４１と４２とは分離されているため、通常のシステム帯域幅が消費されないので、重大な性能の問題無しに状態ダンプを進めることが可能である。
【００１３】
状態ダンプの頻度を、例えば、高可用性の必要性と性能又は能力とのトレードオフに一般的には関連する要素の関数として設定することができる。専用の状態ダンプポートを使用することは、性能のオーバヘッドの大部分を軽減させるが、特定の状態ダンプ命令に関連付けられたいくらかのオーバヘッドが依然として存在する可能性があり、それにより性能が限界状態である時には、より少なく（又はより少ない回数において）状態ダンプを呼び出すことができる。状態ダンプに関連付けられたいくらかの同期オーバヘッドが存在する可能性もあるため、同期性を保証するために状態ダンプをより少ない頻度で実行することができる。更には、高い消費電力によって、状態ダンプの低減された頻度が要求される可能性もある。一方、高い信頼性が必要な作業を実行するプロセッサは、状態をもっと頻繁にダンプすることができる。
【００１４】
コンピュータシステムＡＰ１において、プロセッサ１１、プロセッサ１２、ＣＥＣ１３、及び外部状態キャッシュ１５のために、独立電源が使用される。１つの電源が故障した場合には、そのそれぞれの構成要素が動作しなくなるが、他の構成要素は動作する。代替の一実施形態において、外部状態キャッシュが不揮発性メモリを含み、その結果、その電源が一時的に故障した場合でも、不揮発性メモリが保持する状態データは失われない。別の実施形態において、ＣＥＣと外部状態キャッシュとは、プロセッサのためのいずれかのの電源によって電力供給されることが可能であり、従って、１つの電源が故障した場合には、そのプロセッサは動作しなくなるが、残りの構成要素は動作したままとなる。
【００１５】
システムＡＰ１の状況で実行される方法Ｍ１が、図２においてフローチャートで示されている。ステップＳ１１において、プロセッサ１１は、プロセスを従来通りに実行している。ステップＳ１２において、プロセッサ１１は、オンボード（例えば、レベル１）キャッシュ内容、レジスタ内容、及びポインタ値を含む、該プロセッサ１１の状態を、外部状態キャッシュ１５のそれぞれのセクションに書き込む。この書き込みを、命令に応答して行うことができるか、又はハードウェアによって生成されたトリガに応答して行うことができる。
【００１６】
方法セグメントＳ１３において、プロセッサ１１の障害か又は潜在的に起りうる差し迫った障害が、例えばＣＥＣ１３によって検出される。潜在的に起りうる差し迫った障害は、監視されたプロセッサのヘルスメトリクス（health metrics）が、容認不可能な、プロセッサ障害の可能性を示す時に検出される可能性がある。
【００１７】
方法セグメントＳ１４において、プロセッサ１１を交換（ホットスワップ）することができるか、又は「修復」（例えば再初期化）することができる場合には、ＣＥＣ１３が、プロセッサ１１に命令して、その最後の状態を、すなわちその先代が書き込んだものを、方法セグメントＳ１５において読み出して、方法セグメントＳ１６において処理を再開することができる。代替として、方法Ｍ１を、方法セグメントＳ２４に進めることができる。方法セグメントＳ２４において、ＣＥＣ１３は、プロセッサ１２が、実行していたプロセスを完了したことを判定する。方法セグメントＳ２５において、ＣＥＣ１３は、プロセッサ１２に指示して、プロセッサ１１によって最後に書き込まれた状態を読み出させる。次いで、ＣＥＣ１３は、方法セグメントＳ２６において、プロセッサ１２に、プロセッサ１１が障害時に実行していたプロセスを再開させる。
【００１８】
代替の一実施形態において、１つのプロセッサのための１つの外部状態キャッシュが存在する。本発明はまた、外部状態キャッシュに、１つのプロセッサ当たり複数のセクションを提供する。プロセッサは、現在書き込まれている状態が直前の状態を上書きしないように、そのセクションに交互に書き込むことができる。従って、状態ダンプ中に障害が起きて、その結果ダンプされた状態データが破損した場合には、プロセスを再開するために完全な状態のままの直前の状態が利用可能である。代替として、様々なプロセッサによって状態キャッシュセクションをラウンドロビン式に満たして、その結果、１つのプロセッサ当たりに複数のセクションを必要とすることなく前の状態を保存することができる。例示された実施形態に対する、これらの及び他の変形形態及び修正は、本発明によって提供され、その範囲は、添付の特許請求の範囲によって画定される。
【図面の簡単な説明】
【００１９】
【図１】本発明によって提供される多くの実現可能なシステムのうちの１つの概略ブロック図である。
【図２】本発明による多くの実現可能な方法のうちの１つのフローチャートである。
【符号の説明】
【００２０】
１１  第１のプロセッサ
１２  第２のプロセッサ
１３  コア電子構成要素
１５  外部状態キャッシュ
５１  第１のポート
５２  第２のポート
５３  システムポート
【図１】
2006302288.tif 000003
【図２】
2006302288.tif 000004