(57)【要約】      （修正有）【課題】誤り検出と性能との間においてより最適なトレードオフを提供する。【解決手段】コンピュータシステム（ＡＰ１）は、ロックステップ・プロセッサモードとフリーステップ・プロセッサモードとの両方を提供して、性能とデータの完全性との間の効果的なトレードオフを可能にする。データの完全性のために誤り検出が要求されるプロセスは、ロックステップ・プロセッサモードのプロセッサで実行し出力を比較し、高性能が要求され、且つ、データの完全性がほとんど重要でないプロセスはフリーステップ・プロセッサモードのプロセッサで実行させる。【選択図】図１
2006302289.tif 000002
【特許請求の範囲】
【請求項１】
１セットのプロセッサであって、
少なくともいくらかの時間をロックステップモードにおいて動作させるための第１のプロセッサと、
少なくともいくらかの時間をフリーステップモードにおいて動作させるための第２のプロセッサ
とを含む、１セットのプロセッサと、
前記第２のプロセッサが前記フリーステップモードにある時に、プロセスをプロセッサに割り当てるための割り当て手段
とを備える、コンピュータシステム。
【請求項２】
前記割り当て手段が、前記プロセッサのうちの少なくとも１つを前記モードうちの一方から他方へと切り換える、請求項１に記載のコンピュータシステム。
【請求項３】
前記ロックステップモードにおけるプロセッサと前記フリーステップモードのプロセッサとに関するリソース利用データを取得するためのリソース割り当て手段を更に含み、前記割り当て手段が、少なくとも部分的に前記リソース利用データの関数として、プロセッサを、前記モードのうちの一方から他方へと切り換えることからなる、請求項２に記載のコンピュータシステム。
【請求項４】
コンピュータ可読媒体を更に含み、前記媒体が、
前記セットの前記プロセッサのうちのどのプロセッサが前記ロックステップモードに割り当てられ、どのプロセッサが前記フリーステップモードに割り当てられるかを示す情報を記憶するためのコンフィギュレーションデータベースを格納し、前記割り当て手段として機能するオペレーティングシステムを更に格納し、及び、
前記ロックステップモードに割り当てられたプロセッサに、前記プロセスのうちのどのプロセスが割り当られるべきであり、どのプロセスが前記フリーステップモードに割り当てられるべきかを示す情報を記憶するためのコンフィギュレーションデータベースを格納し、
前記割り当て手段が、前記情報の関数として前記セットの前記プロセッサの間に前記プロセスを割り当てることからなる、請求項１乃至３のいずれか１項に記載のコンピュータシステム。
【請求項５】
前記情報が、プロセスが前記ロックステップモードに割り当てられることになるか前記フリーステップモードに割り当てられることになるかを決定する際に適用される基準を含む、請求項４に記載のコンピュータシステム。
【請求項６】
第１のプロセッサが、少なくともいくらかの時間をロックステップモードにおいて動作し、且つ、第２のプロセッサが、少なくともいくらかの時間をフリーステップモードにおいて動作するように、マルチプロセッサコンピュータを動作させることを含む方法。
【請求項７】
どのプロセスが前記ロックステップモードにおいて実行されるべきであり且つどのプロセスが前記フリーステップモードにおいて実行されるべきかを示すプロセッサモード情報についてコンフィギュレーションデータベースにアクセスするオペレーティングシステムを更に含み、前記オペレーティングシステムが、プロセスをプロセッサに少なくとも部分的に前記プロセスモード情報の関数として割り当てることからなる、請求項６に記載の方法。
【請求項８】
前記データベースが、どのプロセッサが前記ロックステップモードにおいて動作しているか且つどのプロセッサが前記フリーステップモードにおいて動作しているかを示すプロセッサモード情報を保持し、前記オペレーティングシステムが、プロセスをプロセッサに少なくとも部分的に前記プロセッサモード情報の関数として割り当てることからなる、請求項６に記載の方法。
【請求項９】
前記プロセッサモード情報が、プロセスがどのステップモードにおいて実行されるべきかを決定する際に適用される基準を含むことからなる、請求項８に記載の方法。
【請求項１０】
前記基準が、プロセッサステップモードの関数としてのリソース利用を含むことからなる、請求項９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータに関し、特に、コンピュータ内における誤り処理に関する。本明細書内において、「従来技術」とラベル付けられた関連技術は従来技術と認められており、「従来技術」とラベル付けられていない関連技術は従来技術と認められていない。
【背景技術】
【０００２】
誤り（エラー）を許容することができないアプリケーションが、必然的に発生する誤りを検出し且つその誤りに対処するコンピュータ上において実行される可能性がある。例えば、パリティビットか又は誤り訂正符号ビットを、伝達させられている状態のデータに付加することができ、その結果、誤りを検出することができ、場合によっては訂正することができる。誤りを訂正することができない場合には、往々にして、そのデータは再度生成されるか、又は再送信させられる可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、一般的には、誤り検出と誤り訂正とをプロセッサ内において広範囲に用いることは実際的ではない。従って、プロセッサ内において起こるデータ破損は、頻繁に検出されず、すなわち「サイレント（silent）」である。
【０００４】
そのようなサイレントなデータ破損を、ロックステップにおいて実行する２つか又は３つ以上のプロセッサによって対処することができる。換言すると、同じプログラムが、２つのプロセッサ上で実行される。従って、プロセッサの出力を、検出された誤りに対処するために利用可能となっている様々なアプローチによって、誤りを示すために使用されている差異と比較することができる。
【課題を解決するための手段】
【０００５】
特許請求の範囲内において画定されるものとして、本発明は、同じコンピュータシステム内において、ロックステップとフリーステップ（通常の非ロックステップ）との両方の動作を提供する。本発明の様々な実施形態は、各プロセッサごとのステップモードが固定されたシステム、（例えば、起動（ブートアップ）時に）ステップモードを設定（又は構成）することができるシステム、及びステップモードが動的に再配分（又は再配置）することが可能なシステムを含む。各々の場合において、フリーステップモードにおいて動作するプロセッサが一般的には、誤りに対してより多大な脆弱性をもつ危険性を覚悟の上でより高性能な動作を提供するので、本発明は、誤り検出と性能（又はパフォーマンス、又は実動作）との間においてより最適なトレードオフを提供する。本発明の、これらの及び他の特徴及び利点は、添付図面と関連して下記の説明から明らかである。
【発明の効果】
【０００６】
誤り検出と性能との間においてより最適なトレードオフを提供する。
【実施例】
【０００７】
図１に示されるコンピュータシステムＡＰ１は、４つのプロセッサＰ１１、Ｐ１２、Ｐ２１、Ｐ２２を含む。プロセッサＰ１１とＰ１２とは、コア電子構成要素（ＣＥＣ）１１を介してシステムＡＰ１の残りの部分とインターフェースし、一方、プロセッサＰ２１とＰ２２とは、異なるコア電子構成要素１２を介してシステムの残りの部分とインターフェースする。実際には、コア電子構成要素１１と１２とは、２つのプロセッサセットを画定し、そのうちの一方はプロセッサＰ１１とＰ１２とを含み、他方はプロセッサＰ２１とＰ２２とを含む。他の実施形態において、異なる数のプロセッサを使用することができ、それらプロセッサを、様々な方法においてセットに割り当てることができる。いくつかの実施形態において、コア電子構成要素に関連付けられたプロセッサのセットは、プロセッサ、オペレーティングシステム、及びリソースに関する従来の制約によって真のシステムパーティションを画定するが、他の実施形態において、そのような制約は適用されない。
【０００８】
コア電子構成要素１１は、ロックステップ喪失（loss-of-lockstep）ロジック２１とインターフェースロジック３１とを含み、同様に、コア電子構成要素１２は、ロックステップ喪失ロジック２２とインターフェースロジック３２とを含む。インターフェースロジック３１と３２とは、コア電子構成要素の従来の機能（例えばシステムの残りの部分とプロセッサをインターフェースする機能）を提供する。プロセッサの１セットがロックステップモードにある時には、プロセッサからのデータは、それぞれのロックステップ喪失ロジック（ＬＯＬ）２１か又は２２に導かれる。ロックステップ喪失ロジックは、ロックステップ喪失として誤りが検出された時には（例えば、関連付けられたプロセッサが同じ入力について異なる出力を提供する時には）、誤り処理手順を開始する。関連付けられたプロセッサがフリーステップモードにある時には、プロセッサからのデータは、関連付けられたロックステップ喪失ロジックをバイパスし、コア電子構成要素は従来通りに動作する。コア電子構成要素１１及び１２と、詳細にはロックステップ喪失ロジック２１及び２２とは、（例えば、オペレーティングシステム４４による指示に従って、そのオペレーティングシステムを実行するシステムパーティションのユーザによってセットアップされたコンフィギュレーション命令ごとに）ステップモードを制御するための入力部を備える。
【０００９】
システムＡＰ１において、コア電子構成要素１１と１２とは、プロセッサＰ１１、Ｐ１２、Ｐ２１、Ｐ２２を搭載している基板とは別個の各基板上に画定される。代替の実施形態において、プロセッサとコア電子構成要素との様々な組み合わせを、共通の基板上に形成することができる。
【００１０】
図示されるように、コア電子構成要素１１と１２とは、バス４１を介してシステムＡＰ１の残りの部分とインターフェースする。より一般的には、該インターフェースすることは、バスか又はネットワーク機構の組み合わせを介してなされることが可能である。システムＡＰ１の残りの部分は、他の構成要素の中の、入力−出力チャンネル４２とメモリ４３とを含む。メモリ４３は、ランダムアクセスメモリ、ハードディスク記憶装置、及び他の記憶媒体を含む。
【００１１】
メモリ４３は、オペレーティングシステム４４、プロセス４５、コンフィギュレーションデータベース４６、及びデータ４７を格納する。データベース４６は、基本的なロックステップコンフィギュレーションデータを含む。該基本的なロックステップコンフィギュレーションデータは、１）どのＣＰＵがロックステップモードとされ、どのＣＰＵがフリーステップモードにされるべきかを指示することと、２）この割り当てを動的に変更することができるいくつかの「規則」と、３）ロックステップモードにおいて実行されるべきプロセスのリストとを含む。プロセスは、コンフィギュレーションデータベースが別様を指示しない限り、デフォルトでフリーステップモードにおいて実行する。
【００１２】
別の実施形態は、このデフォルト設定を逆にすることが可能である。プロセス４５のうちのいくつかは、オペレーティングシステムに属するが、他のプロセスは、アプリケーションに属する。プロセスが呼び出される時には、オペレーティングシステム４４は、コンフィギュレーションデータベース４６をチェックして、そのプロセスをロックステップモードにおけるプロセッサのセットに割り当てるか、又はフリーステップモードにおけるプロセッサに割り当てるかどうかを決定する。いくつかのプロセスは、ロックステップモードへの割り当てを必要とする可能性があるが、他のプロセスは、フリーステップモードへの割り当てを必要とする可能性がある。他のプロセスについて、データベース４６は、一方のステップモードか又は他方のステップモードにプロセスを割り当てるための基準を示すことができる。例えば、リソースの利用（又は利用率）及び／又は日付データの時間を、ロックステッププロセッサにか又はフリーステッププロセッサにプロセスを割り当てるかどうかの決定における要因とすることができる。
【００１３】
システムＡＰ１が起動（ブート）された時には、オペレーティングシステム４４は、システムコンフィギュレーションデータのためのデータベース４６をチェックして、どのプロセッサがロックステップモードに割り当てられることになるか、どのプロセッサがフリーステップモードに割り当てられることになるかを決定する。システムＡＰ１において、この割り当ては、セットごとに行われる。システムＡＰ１が動作している間、オペレーティングシステム４４は、リソースの利用（利用率）を監視して、コンフィギュレーションデータが許可する場合には、次にシステムＡＰ１が起動されることが想定されることになるステップモードの割り当てを指示するために、データベース４６に書き込む。この機能は、多数のプロセッサのセットを有するシステムのために最も有効である。
【００１４】
このように設定（又は構成）された場合には、オペレーティングシステム４４は、プロセッサステップモードを動的に切り替えるために、リソースの利用（又は利用率）データを使用することもできる。例えば、データの完全性のための過剰な要求がある時には、両方のプロセッサセットをロックステップモードに設定することができる。一方、より高性能が要求され、且つ、データの完全性がほとんど重要でない時には、両方のプロセッサセットをフリーステップモードに割り当てることができる。
【００１５】
これらの機能のいくつかは、図２内にフローチャートで示された方法Ｍ１において使用される。オペレーティングシステム４４は、方法セグメントＳ１１においてプロセスを呼び出すことができる。方法セグメントＳ１２において、オペレーティングシステム４４は、データベース４６を調べて、呼び出されたプロセスのためのステップモードを決定する。ロックステップモードが必要とされる場合もあれば、フリーステップモードが必要とされる場合もあり、すなわち、プロセスのためのステップモードを決定するためにいくつかの基準を指定することができる。例えば、ロックステップモードは、利用率が相対的に低く性能がそれほど重要ではない夜において好都合である場合がある。更には、プロセスは、リソース利用データが他のモードを好都合であるとする時には、一方のモードが好ましいが他のモードを許可する可能性がある。ステップモードの決定の結果に依存して、プロセスを、方法セグメントＳ１３においてロックステップモードにおけるプロセッサに割り当てることができるか、又はステップＳ１４においてフリーステップモードにおけるプロセッサに割り当てることができる。
【００１６】
方法セグメントＳ２１〜Ｓ２４は、方法セグメントＳ１１〜Ｓ１４と同時に動作する。方法セグメントＳ２１において、オペレーティングシステム４４は、フリーステップモードのプロセッサに対する、ロックステップモードのプロセッサのリソース割り当てを監視する。方法セグメントＳ２２において、リソースの利用が十分にバランスがとられているかどうかの判定がなされる。一方のモードに重点がおかれている場合には、方法セグメントＳ２３においてプロセッサのセットを、再割り当てすることができる。例えば、オペレーティングシステム４４は、コア電子構成要素に信号を送って、そのプロセッサセットを選択されたステップモードにおくことができる。ステップモードのための供給と需要とが、適度にバランスがとられている場合には、方法セグメントＳ２４において、プロセッサモードを維持することができる。システムコンフィギュレーションに依存して、再割り当ては、再起動時に有効にされるか、又は動的に実行されることが可能である。代替として、システムＡＰ１を、ステップモードの再割り当てを除外するように設定（又は構成）することもできる。
【００１７】
再割り当ての方法セグメントＳ２１〜Ｓ２４は、割り当ての方法セグメントＳ１１〜Ｓ１４と相互作用することができる。具体的には、方法セグメントＳ２１において生成されたリソース割り当てデータを、どのモードがプロセスに割り当てられるべきかを決定するために（例えばそのプロセスのためのコンフィギュレーションデータが、より少ない利用リソースにモードが有利であるはずであることを示す時に）、モード割り当て方法セグメントＳ１２において使用することができる。同様に、方法セグメントＳ１２における割り当ての決定を、方法セグメントＳ２１においてリソース利用を監視する際の生データとして使用することができる。
【００１８】
本発明は、わずか２つほどに少ないプロセッサを有する実施形態を提供する。そのような場合において、両プロセッサがロックステップモードにおいて動作することができるか、又は両プロセッサがフリーステップモードにおいて動作することができる。３つのプロセッサを備えたシステムは、より高い可能性（又は発展性）を有する。１対のプロセッサが、ロックステップモードにおいて動作することができる一方で、第３のプロセッサがフリーステップモードにおいて動作する。その１対のプロセッサは、プロセッサの様々な組み合わせから決定されるか又は構成されることが可能である。更にまた、いくつかの状況において、３つのプロセッサが全てロックステップモードにおいて動作することができる。より多いプロセッサ数は、より高い可能性を提供する。実際には、コア電子構成要素に対するプロセッサの関連付けは、ロックステップにおいて共に実行されることが可能なプロセッサの組み合わせを制限する。説明された実施形態に対する、これらの及び他の変形形態及び修正が、本発明によって提供され、本発明の範囲は、添付の特許請求の範囲によって画定される。
【図面の簡単な説明】
【００１９】
【図１】本発明による多くの実現可能なコンピュータシステムのうちの１つの概略図である。
【図２】本発明による多くの実現可能な方法のうちの１つのフローチャートである。
【符号の説明】
【００２０】
４３  コンピュータ可読媒体
４４  オペレーティングシステム
４６  コンフィギュレーションデータベース
Ｐ１１  プロセッサ
Ｐ１２  プロセッサ
Ｐ２１  プロセッサ
Ｐ２２  プロセッサ
【図１】
2006302289.tif 000003
【図２】
2006302289.tif 000004