(57)【特許請求の範囲】
【請求項１】
複数プロセッサ・コンピュータ・システムにおけるハードウェア・エラーを処理する方法であって、
（ａ）前記システムが備える共通サービス・プロセッサが、共用メモリに関連づけられた複数のプロセッサを識別するステップと、
（ｂ）前記共通サービス・プロセッサが、前記共用メモリの障害を検出するステップと、
（ｃ）ステップ（ｂ）に応答して、前記共通サービス・プロセッサが、前記複数のプロセッサの各々にエラーを関連づけ、該複数のプロセッサの各々に関連づけられた複数のエラーを、前記複数のプロセッサすべてを構成から除外することにより使用禁止にする手段によってアクセスされるエラー・ログに入れるステップとを含み、
（ｄ）前記複数のエラーが、前記複数のエラーを複数の項目として前記エラー・ログに入れられ、
（ｅ）前記複数の項目の各項目が、前記複数のプロセッサのうちの１つのプロセッサにのみ関連づけられた、方法。
【請求項２】
前記共用メモリが二次キャッシュを形成する、請求項１に記載の方法。
【請求項３】
前記複数のプロセッサおよび前記共用メモリが単一の集積回路を使用して形成された、請求項１に記載の方法。
【請求項４】
複数のプロセッサ・コンピュータ・システムにおけるハードウェア障害を処理するコンピュータ可読なプログラムが記録された記録媒体であって、前記プログラムは、前記システムが、
（ａ）共用メモリに関連づけられた複数のプロセッサを識別するステップと、
（ｂ）前記共用メモリの障害を検出するステップと、
（ｃ）ステップ（ｂ）に応答して、前記複数のプロセッサの各々にエラーを関連づけ、該複数のプロセッサの各々に関連づけられた複数のエラーを、前記複数のプロセッサすべてを構成から除外することにより使用禁止にする手段によってアクセスされるエラー・ログに入れるステップとを実行し、
（ｄ）前記複数のエラーが、前記複数のエラーを複数の項目として前記エラー・ログに入れられ、
（ｅ）前記複数の項目の各項目が、前記複数のプロセッサのうちの１つのプロセッサにのみ関連づけられる、
コンピュータ実行可能なプログラムを記録した、記録媒体。
【請求項５】
前記共用メモリが二次キャッシュを形成する、請求項４に記載の記録媒体。
【請求項６】
前記複数のプロセッサおよび前記共用メモリが単一の集積回路を使用して形成された、請求項４に記載の記録媒体。
【請求項７】
複数プロセッサ・データ処理環境における耐障害性コンピューティングのためのシステムであって、
複数のプロセッサと、
前記複数のプロセッサによって共用されるメモリと、
共通サービス・プロセッサと、
前記複数のプロセッサすべてを構成から除外することにより使用禁止にする手段とを含み、
前記メモリが障害を起こした場合、前記サービス・プロセッサが前記複数のプロセッサの各々にエラーを関連づけ、該複数のプロセッサの各々に関連づけられた複数のエラーを、前記プロセッサを使用禁止にする手段によってアクセスされるエラー・ログに入れ、前記複数のエラーが、前記複数のエラーを複数の項目として前記エラー・ログに入れられ、前記複数の項目の各項目が、前記複数のプロセッサのうちの１つのプロセッサにのみ関連づけられる、システム。
【請求項８】
前記メモリが二次キャッシュを形成する、請求項７に記載のシステム。
【請求項９】
前記複数のプロセッサおよび前記メモリが単一の集積回路を使用して形成された、請求項７に記載のシステム。
【請求項１０】
前記メモリが二次キャッシュを形成する、請求項７に記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般には、複数のプロセッサを含むデータ処理システムにおけるメモリ・エラーを処理する方法を対象とする。より詳細には、本発明は、メモリの障害バンクを共用する複数のプロセッサを割振り解除する方法に関する。
【０００２】
【従来の技術】
最も単純な形態のコンピュータ・システムは、プロセッサとメモリと入出力周辺装置とで構成される。プロセッサは、連続的な命令のシーケンスを実行してデータを操作する。データは、入出力周辺装置を使用して読み込んだり書き出したりすることができる。データと命令は両方とも、プロセッサの使用ためにメモリに記憶することができる。
【０００３】
初期のコンピュータの多くは上述のもの程度だったが、現在製造されているコンピュータのほとんどは、この単純なモデルよりも複雑だった。最新のコンピュータ・システムは、演算速度と効率を向上させるための多くの機能を備えていることが多い。
【０００４】
最新のコンピュータのメモリは、キャッシュと呼ばれるものを使用して階層状に配列されていることが多い。キャッシュは、メモリのスクラッチパッドのようなものである。コンピュータ・システムのメイン・メモリ・バンクよりも高速で読み書きすることができる小型のメモリ・バンクである。
【０００５】
その場合、キャッシュは、プロセッサが現在作業しているデータの一時記憶場所として機能する。プロセッサは、キャッシュに記憶されているメモリで高速で作業し、その間に他のデータがキャッシュとメイン・メモリとの間で転送されている。キャッシュの使用によって、コンピュータの処理速度が大幅に向上することが多い。
【０００６】
最新のコンピュータ・システムの多くは、１つのキャッシュが次のキャッシュに記憶されている情報の一時記憶場所として使用される、カスケード状の複数のキャッシュを使用する。このようなシステムでは、プロセッサに順番が最も近いプロセッサを「一次」または「レベル１」（Ｌ１）キャッシュと呼ぶ。その次のキャッシュは「二次」または「レベル２」（Ｌ２）キャッシュと呼ばれ、以下同様の呼び方をする。
【０００７】
カスケード状の複数のキャッシュを使用することによって、コンピュータ・システム設計者は、演算速度とコストとの兼ね合いを図る上で柔軟性が得られる。高速なメモリほど高価になる傾向があるため、低コストと高速度という対立する目的の兼ね合いを図る１つの方法は、高価だがきわめて高速のメモリを含む小型の一次キャッシュと、一次キャッシュより安価で低速だが、メイン・メモリよりは高速のメモリ技術を備えたメモリを含むより大型の二次キャッシュとを併用することである。
【０００８】
コンピュータで一般に使用されている他の高速化機構は、一度に複数の命令を処理する何らかの形態の機能を備えることである。パイプライン・プロセッサとスーパースカラ・プロセッサは、複数のコンピュータ命令の各部分を同時に処理することができるようにする。すなわち、１つのプロセッサが２つ以上の命令の各部分を同時に処理することができる。
【０００９】
マルチプロセッサ・コンピュータは、複数のプロセッサを使用して、完結した命令を独立して実行する。これによって、グラフィクス・プログラムなどの大量のデータ値を処理するプログラムを実行するときに特に、演算速度を大幅に向上させることができる。
【００１０】
複数のプロセッサを備えることには、一定のレベルの冗長性と耐障害性のレベルを持たせるという大きな利点もある。すなわち、複数プロセッサを含むコンピュータ・システムの一部が障害を起こした場合、、その障害に関連する１つまたは複数のプロセッサを使用禁止にすることによって問題を回避することができる場合がある。これを行った場合、使用禁止にされたプロセッサによって実行されているはずだった命令を、まだ動作している他のプロセッサに回すことができる。
【００１１】
かつては、マルチプロセッサ・コンピュータ内の各プロセッサは、一般にそれ独自の集積回路上に形成されていた。現在では、必ずしもそうとは限らない。長大規模集積回路（ＶＬＳＩ）技術の進歩により、単一の集積回路上に複数のプロセッサを製作することが可能になった。一次キャッシュ・メモリと二次キャッシュ・メモリを同じ集積回路上に製作することさえも可能である。
【００１２】
しかし、シングル・プロセッサ集積回路技術から複数プロセッサ集積回路技術への移行の際に、いくつかの問題が生じることがある。既存のサポート・ハードウェアおよびソフトウェアが、より新しい集積回路設計と容易に互換性を持つことができないことがある。このため、新しいサポート・ハードウェアおよびソフトウェアを新しい技術と相互動作するように開発しなければならないため、新しい技術への移行が困難になる。新しいサポート技術の全系列を開発する開発するのは、コストも時間もかかる。
【００１３】
移行が困難なこのような事例の１つは、各プロセッサがそれ独自の二次キャッシュ・メモリを備えたシングル・プロセッサ・チップから、各プロセッサが共用二次（Ｌ２）キャッシュ・メモリを備えたデュアル・プロセッサ・チップへの変更である。旧来の技術では、二次キャッシュが障害を起こしても１つのプロセッサ（そのメモリに関連づけられた１つのプロセッサ）だけが影響を受けた。したがって、Ｌ２メモリが障害を起こすと、その問題をオペレーティング・システム・ソフトウェアに報告するサポート・ハードウェアおよびソフトウェアは、問題の影響を受けた１つのプロセッサだけを報告することになる。その場合、その１つのプロセッサは、それ以上障害が起こるのを防ぐために使用禁止にすることができた。
【００１４】
しかし、より新しい技術では、Ｌ２メモリが障害を起こすと、そのＬ２メモリを共用する２つのプロセッサが影響を受ける。しかし、サポート・ハードウェアおよびソフトウェアは、１つのプロセッサのみの問題を報告するように設計されており、両方のプロセッサを使用禁止にすることはできない。したがって、この事例では、新しいプロセッサ技術と既存のサポート・ハードウェアおよびソフトウェアとの間に互換性がない。
【００１５】
したがって、新しいマルチプロセッサ集積回路を、シングル・プロセッサ集積回路と併用するように設計された既存のサポート・ハードウェアおよびソフトウェアと互換性をもたせるようにすることができるエラー報告方法があれば有利であろう。
【００１６】
【発明が解決しようとする課題】
本発明は、既存のサポート・ハードウェアおよびソフトウェアと、単一の集積回路上の共用メモリを有する複数プロセッサを使用するより新しいプロセッサ技術との互換性をもたせることができる方法を提供することである。
【００１７】
【課題を解決するための手段】
本発明は、共用メモリに障害が発生すると、その障害を影響を受けたすべてのプロセッサに関連づけ、それによって、影響を受けたすべてのプロセッサを非活動化することができるように保証する。本発明の好ましい実施形態によると、障害は、影響を受けた各プロセッサについて１回ずつ、複数回報告される。このようにして、メモリを共用するマルチプロセッサ集積回路を、１つのプロセッサのみを所与の障害と関連づける既存のエラー報告技術と併用することができる。
【００１８】
【発明の実施の形態】
図１に、本発明の一実施形態によるマルチプロセッサ・コンピュータ・システム１００をブロック図で示す。プロセッサ・アレイ１０５が、コンピュータ・システム１００内の演算の大半を行う。コンピュータ・システム１００は、プロセッサ・アレイ１０５によって処理されるデータをメイン・メモリ１３５に記憶する。一連のバス１３８と、メイン・メモリ１３５の様々な部分との間の情報の流れを方向付けるメモリ・コントローラ１３７が、プロセッサ・アレイ１０５をメイン・メモリ１３５に接続する。
【００１９】
プロセッサ・アレイ１０５は、複数のプロセッサ・チップ１１０を含み、各プロセッサ・チップは２つのプロセッサ１２０と、プロセッサ１２０によって共用される二次キャッシュ・メモリ（Ｌ２メモリ）１３０のブロックとを含む。Ｌ２メモリ１３０は、メイン・メモリ１３５との間で読み書きされるデータを一時的に保持する場所である。
【００２０】
システム１００内には、共通サービス・プロセッサ（ＣＳＰ）カード１４０もあり、システム内で管理的役割を果たす。ＣＳＰカード１４０は、プロセッサ（ＣＳＰ）１５０と、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ））１５５と、不揮発性ランダム・アクセエス・メモリ（ＮＶＲＡＭ）１７０と、フラッシュ・メモリ１８０と、入出力コントローラ１８５と、ＣＳＰカード１４０の各構成要素を結合する制御論理回路１６０とを含む。ＣＳＰ１５０は、システムを初期設定する役割を果たす。また、ＣＳＰ１５０は、システム内で発生するエラーを解析し、エラー解析ソフトウェアを実行してそのタスクを行う。ＣＳＰカード１４０は、バス・コントローラ１４５、１４６によって制御されるバス１４７を介してコンピュータ・システム１００の他の部分に接続される。
【００２１】
エラーには「回復可能」なものもあればそうでないものもある。回復可能エラーは、修正することができ、データ処理を継続することができるエラーである。たとえば、メモリにエラーが発生し、破壊されたデータを出力した場合、ハミング・コードなどのエラー修正コードを使用して、破壊されたデータを元の値に復元することができる場合がある。これは回復可能エラーである。通常、コンピュータ・システムにおける回復可能エラーは、１ビットのみが不正なエラーだけである。
【００２２】
回復可能メモリ・エラーは、警報を発生させるとは限らない。メモリ・エラーのよくある原因は、「アルファ粒子エラー」である。通常は宇宙から地球に降り注ぐアルファ粒子（ヘリウム核）がメモリ回路に入り込み、データを破壊することがある。アルファ粒子エラーは単発的問題であり、回復可能エラーを起こした場合、一般には警報を発生させない。
【００２３】
一方、反復的回復可能メモリ・エラーは、メモリ回路が障害を起こしつつあることを示す兆候である。これが起こると、メモリの信頼性がなくなり、回復不能エラーを引き起こし始める可能性がある。反復的回復可能メモリ・エラーが起こった場合、一番よいのは障害を起こしたメモリを使用禁止にすることである。メモリが基板実装メモリである場合、そのメモリを使用するプロセッサも使用禁止にすることが必要になる。
【００２４】
Ｌ２メモリ１３０で回復可能エラーが反復して発生する場合、ＣＳＰ１５０がそのエラーを不揮発性メモリ１７０内にあるエラー・ログに記録する。本発明によると、エラーは、問題のＬ２メモリ１３０があるプロセッサ・チップ１１０上にある各プロセッサ１２０について１回ずつ不揮発性メモリ１７０に記録される。これにより、コンピュータ・システム１００上で実行されているオペレーティング・システムが、（エラー・ログを調べることによって）そのエラーを検出し、障害が発生したＬ２メモリ１３０を共用するプロセッサ１２０を非活動化する。プロセッサ・チップ１３０内のプロセッサ数は、情報がフラッシュ・メモリ１８０に格納されている重要プロダクト・データ（ＶＰＤ）部に記憶されているため、ＣＳＰ１５０はプロセッサ数を知っている。
【００２５】
図３に、本発明の実施形態によるエラー・ログ２００の図を示す。表内の各項目２１０内には、エラー・コード２２０とプロセッサＩＤ２３０が記載されている。エラー・コード２２０は、発生したエラーのタイプを示す。たとえば、項目２１０内では、Ｌ２メモリ・エラーが発生している。プロセッサＩＤ２３０は、エラーによって影響を受けるプロセッサを示す。１項目２１０には１つのプロセッサＩＤ２３０しか入れられない。本発明の他の実施形態では、各項目は、それ自体の別々に割り振られたエラー・ログに入れることができる。
【００２６】
図４に、本発明の好ましい実施形態をＣ言語型の疑似コードのリスト３００を示す。当業者なら、本発明の実際のソフトウェア実施態様は、Ｃ言語の使用には限定されず、Ｃ＋＋、Java（Ｒ）、Forth、Lisp、Scheme、Python、Perl、およびあらゆる種類のアセンブリ言語を含むが限定されない、様々なコンピュータ言語のいずれでも実施可能であることがわかるであろう。また、このＣ言語型疑似コード・リスト３００は、本発明の基礎にある基本概念をより具体的な形で示すことによって明確にするために記載された、本発明の可能な一実施態様の一例に過ぎないことも強調しておく。図４は、本発明を特定のソフトウェア実施態様に限定するものと解釈してはならない。
【００２７】
このリスト３００では、まず、構造化データ・タイプ「errlog」３０５が定義されている。「errlog」３０５タイプは、１つのエラーに関する情報の記憶空間である単一のエラー・ログを示す。「errlog」３０５タイプには、エラーに関連する装置（たとえばプロセッサ）を識別する「device_id」フィールド３０７を含む、記録されるエラーのタイプに関する情報が入るデータ・フィールドが含まれる。
【００２８】
ＣＳＰによってエラーが検出されると、関数「log_this_error」３１０が呼び出される。関数「log_this_error」３１０の行３２０で、戻りコードを保持するための整数変数「ｒｃ」が定義される。次に、do-whileループ３３０に入る。do-whileループ３３０の行３３２で、そのエラーのために新たなエラー・ログが作成される。言い換えると、「errlog」タイプ３０５の新たなインスタンスが作成される。
【００２９】
行３３３で、変数「ｒｃ」がゼロの場合、この新しいエラー・ログにはこのエラーの詳細が入れられ（行３３４）、それ以外の場合は、最後に作成されたエラー・ログに入っていたデータがこの新しいエラー・ログに単にコピーされるだけである（行３３５）。
【００３０】
行３３７で、ＣＳＰがＲＳ／６０００（ＲＩＳＣシステム／６０００）プラットフォームにある場合、関数「fill_RS_errlog」３４０が呼び出される（これは、この好ましい実施形態はＩＢＭのＲＳ／６０００コンピュータ・システムで動作可能であることを意図しているためである）。関数「fill_RS_errlog」３４０はまず、エラーがＬ２メモリで発生したか否かを調べる（行３４２）。Ｌ２メモリで発生した場合、行３４４で、関数「log_this_error」３１０によって作成されたエラー・ログに、新しいデータが入っているかそれとも前に作成されたエラー・ログからコピーされたデータが入っているかを判断する。エラー・ログに新しいデータが入っている場合（言い換えると、データがコピーされていない場合）、この新しいエラー・ログに、フィールド「device_id」３０７の値１を含む、エラーに関する追加情報が格納される（行３４６）。エラー・ログにコピーされたデータが入っている場合、そのコピーされたデータがそのまま保持されるが、フィールド「device_id」３０７の値は１だけ増分される。
【００３１】
行３５０で、障害が発生したＬ２メモリと同じチップ上にある（そしてＬ２メモリに関連づけられている）プロセッサの数が読み込まれる。行３５２で、フィールド「device_id」３０７の値がプロセッサ数に満たない場合（言い換えると、エラーを記録すべきプロセッサがまだある場合）、関数「fill_RS_errlog」３４０は値１を返し、それ以外の場合は０を返す。
【００３２】
行３５４で、エラーがＬ２メモリ内のエラーではなかった場合、エラーは関数「fill_in_errorlog」に対する呼出しによって単に１回記録され、関数「fill_RS_errlog」３４０は値０を返す（行３５６）。
【００３３】
関数「log_this_error」３１０に戻って、行３３７で関数「fill_RS_errlog」３４０が呼び出された後、関数「fill_RS_errlog」３４０によって返された値が変数「ｒｃ」に格納される。次に、関数「log_the_error」を実行することによって、このエラー・ログがオペレーティング・システムにとって使用可能になる（行３３９）。その後、変数「ｒｃ」がゼロ以外の場合、do-whileループ３３０が繰り返される。do-whileループ３３０の終わりで「ｒｃ」がゼロの場合、関数「log_this_error」３１０は終了する。
【００３４】
図５に、本発明の好ましい実施形態における、修正可能Ｌ２メモリ・エラーの可能性のあるエラーを処理する際にＣＳＰによって行われるプロセスのフローチャートを示す。まず、ＣＳＰはエラー解析を行ってエラーとそのタイプを検出する（ステップ４００）。次に、そのエラーが、発生したエラーのタイプと、エラーがどのハードウェアで発生したかを含む、エラーに関する詳細と共に記録される（ステップ４１０）。
【００３５】
ＣＳＰがＲＳ／６０００プラットフォームで稼働しており（ステップ４２０）、記録されたのがＬ２エラーであった場合（ステップ４４０）、ステップ４６０に実行が進む。それ以外の場合、ＣＳＰはさらにエラー処理４４０、４５０を続ける。ステップ４６０で、ステップ４１０で記録されたエラーが新たなエラーだった場合（すなわち、以前に記録されていない場合）、障害を起こしたＬ２メモリに関連づけられている最初のプロセッサのプロセッサＩＤが、エラー・ログにプロセッサＩＤとして入れられる（ステップ４７０）。
【００３６】
次に、そのＬ２メモリに関連づけられたプロセッサが他にもある場合（ステップ４８０）、プロセスはステップ４１０から繰り返し、もう一度同様にエラーが記録される。ただし、今回は、ステップ４６０に達したときに、そのエラーは新しいエラーではないため、最も最近に記録されたエラーには増分されたプロセッサＩＤが与えられる（ステップ４９０）。ステップ４８０で、障害を起こしたＬ２メモリに関連づけられたすべてのプロセッサのエラーを記録し終わった場合、プロセスは終了する（ステップ４９５）。
【００３７】
障害のあるＬ２メモリに関連づけられたすべてのプロセッサについてエラーが記録された後は、その問題に応じて適切な処置を行うことができる。本発明の好ましい実施形態では、記録されたエラーはオペレーティング・システムに伝えられる。その後、オペレーティング・システムは、障害Ｌ２メモリに関連づけられたすべてのプロセッサを構成から除外することができる。
【００３８】
以上、本発明について、完全機能データ処理システムの環境で説明したが、本発明のプロセスは命令から成る様々な形態のコンピュータ可読媒体の形で配布可能であることが当業者ならわかり、本発明は配布を行うために実際に使用される特定のタイプの信号記録媒体に関係なく等しく適用されることに留意することが重要である。コンピュータ可読媒体の例としては、フロッピー（Ｒ）・ディスク、ハード・ディスク・ドライブ、ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどの記録可能型媒体や、たとえば無線周波や光波伝送などの伝送形態を使用したデジタルおよびアナログ通信リンク、有線または無線通信リンクなどの通信型媒体などがある。コンピュータ可読媒体は、特定のデータ処理システムで実際に使用するためにデコードされるコード化形式の形態をとることもできる。
【００３９】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００４０】
（１）複数プロセッサ・コンピュータ・システムにおけるハードウェア・エラーを処理する方法であって、
（ａ）共用ハードウェア構成要素に関連づけられた複数のプロセッサを識別するステップと、
（ｂ）前記共用ハードウェア構成要素の障害を検出するステップと、
（ｃ）ステップ（ｂ）に応答して複数のエラーを報告するステップであって、複数のエラーの各エラーが前記複数のプロセッサのうちの１つのプロセッサに関連づけられているステップとを含む方法。
（２）前記複数のエラーが、前記複数のエラーを複数の項目としてエラー・ログに入れることによって報告される、上記（１）に記載の方法。
（３）前記複数の項目の各項目が、前記複数のプロセッサのうちの１つのプロセッサにのみ関連づけられた、上記（２）に記載の方法。
（４）前記複数のエラーが、前記複数のエラーを複数のエラー・ログに入れることによって報告される、上記（１）に記載の方法。
（５）前記複数のエラー・ログの各エラー・ログが前記複数のプロセッサのうちの１つのプロセッサにのみ関連づけられた、上記（４）に記載の方法。
（６）前記共用ハードウェア構成要素がメモリである、上記（１）に記載の方法。
（７）前記メモリが二次キャッシュを形成する、上記（６）に記載の方法。
（８）（ｄ）ステップ（ｃ）に応答して前記複数のプロセッサを使用禁止にするステップを含む、上記（１）に記載の方法。
（９）前記複数のプロセッサおよび前記共用ハードウェア構成要素が単一の集積回路を使用して形成された、上記（１）に記載の方法。
（１０）前記複数のエラーが、前記複数のエラーを複数の項目としてエラー・ログに入れることによって報告される、上記（９）に記載の方法。
（１１）前記複数の項目の各項目が前記複数のプロセッサのうちの１つのプロセッサにのみ関連づけられた、上記（１０）に記載の方法。
（１２）前記共用ハードウェア構成要素がメモリである、上記（９）に記載の方法。
（１３）前記メモリが二次キャッシュを形成する、上記（１２）に記載の方法。
（１４）（ｄ）ステップ（ｃ）に応答して前記複数のプロセッサを使用禁止にするステップを含む、上記（９）に記載の方法。
（１５）複数プロセッサ・コンピュータ・システムにおけるハードウェア障害を処理するコンピュータ可読媒体内のコンピュータ・プログラム製品であって、
（ａ）共用ハードウェア構成要素に関連づけられた複数のプロセッサを識別する命令と、
（ｂ）前記共用ハードウェア構成要素の障害を検出する命令と、、
（ｃ）ステップ（ｂ）に応答して、複数のエラーの各エラーが前記複数のプロセッサのうちの１つのプロセッサに関連づけられている複数のエラーを報告する命令とを含む、コンピュータ・プログラム製品。
（１６）前記複数のエラーが、前記複数のエラーを複数の項目としてエラー・ログに入れることによって報告される、上記（１５）に記載のコンピュータ・プログラム製品。
（１７）前記複数の項目の各項目が、前記複数のプロセッサのうちの１つのプロセッサにのみ関連づけられた、上記（１６）に記載のコンピュータ・プログラム製品。
（１８）前記複数のエラーが、前記複数のエラーを複数のエラー・ログに入れることによって報告される、上記（１５）に記載のコンピュータ・プログラム製品。
（１９）前記複数のエラー・ログの各エラー・ログが前記複数のプロセッサのうちの１つのプロセッサにのみ関連づけられた、上記（１８）に記載のコンピュータ・プログラム製品。
（２０）前記共用ハードウェア構成要素がメモリである、上記（１５）に記載のコンピュータ・プログラム製品。
（２１）前記メモリが二次キャッシュを形成する、上記（２０）に記載のコンピュータ・プログラム製品。
（２２）（ｄ）（ｃ）の命令に応答して前記複数のプロセッサを使用禁止にする命令を含む、上記（１５）に記載のコンピュータ・プログラム製品。
（２３）前記複数のプロセッサおよび前記共用ハードウェア構成要素が単一の集積回路を使用して形成された、上記（１５）に記載のコンピュータ・プログラム製品。
（２４）前記複数のエラーが、前記複数のエラーを複数の項目としてエラー・ログに入れることによって報告される、上記（２３）に記載のコンピュータ・プログラム製品。
（２５）前記複数の項目の各項目が前記複数のプロセッサのうちの１つのプロセッサにのみ関連づけられた、上記（２４）に記載のコンピュータ・プログラム製品。
（２６）前記共用ハードウェア構成要素がメモリである、上記（２３）に記載のコンピュータ・プログラム製品。
（２７）前記メモリが二次キャッシュを形成する、上記（２６）に記載のコンピュータ・プログラム製品。
（２８）（ｄ）ステップ（ｃ）の命令に応答して前記複数のプロセッサを使用禁止にする命令を含む、上記（２３）に記載のコンピュータ・プログラム製品。
（２９）複数プロセッサ・データ処理環境における耐障害性コンピューティングのためのシステムであって、
複数のプロセッサと、
前記複数のプロセッサによって共用されるハードウェア構成要素と、
共通サービス・プロセッサと、
オペレーティング・システムとを含み、
前記ハードウェア構成要素が障害を起こした場合、前記サービス・プロセッサが前記オペレーティング・システムに、複数のエラーの各エラーが前記複数のプロセッサのうちの１つのプロセッサに関連づけられた複数のエラーを報告するシステム。
（３０）エラー・ログを含み、前記複数のエラーが前記複数のエラーを複数の項目としてエラー・ログに入れることによって報告される、上記（２９）に記載のシステム。
（３１）前記複数の項目の各項目が前記複数のプロセッサのうちの１つのプロセッサにのみ関連づけられた、上記（３０）に記載のシステム。
（３２）前記複数のエラーが前記複数のエラーを複数のエラー・ログに入れることによって報告される、上記（２９）に記載のシステム。
（３３）前記複数のエラー・ログの各エラー・ログが前記複数のプロセッサのうちの１つのプロセッサにのみ関連づけられた、上記（３２）に記載のシステム。
（３４）前記ハードウェア構成要素がメモリである、上記（２９）に記載のシステム。
（３５）前記メモリが二次キャッシュを形成する、上記（３４）に記載のシステム。
（３６）複数のエラーが報告されるのに応答して、前記オペレーティング・システムが前記複数のプロセッサを使用禁止にする、上記（２９）に記載のシステム。
（３７）前記複数のプロセッサおよび前記ハードウェア構成要素が単一の集積回路を使用して形成された、上記（２９）に記載のシステム。
（３８）エラー・ログを含み、前記複数のエラーが前記複数のエラーを複数の項目としてエラー・ログに入れることによって報告される、上記（３７）に記載のシステム。
（３９）前記複数の項目の各項目が前記複数のプロセッサのうちの１つのプロセッサにのみ関連づけられた、上記（３８）に記載のシステム。
（４０）前記ハードウェア構成要素がメモリである、上記（３７）に記載のシステム。
（４１）前記メモリが二次キャッシュを形成する、上記（４０）に記載のシステム。
（４２）前記複数のエラーが報告されるのに応答して、前記オペレーティング・システムが前記複数のプロセッサを使用禁止にする、上記（３７）に記載のシステム。
【図面の簡単な説明】
【図１】本発明の一実施形態により構成されたコンピュータ・システムの概要を示すブロック図である。
【図２】本発明の一実施形態により構成されたコンピュータ・システムの概要を示すブロック図である。
【図３】本発明の一実施形態におけるエラーを記録するために使用するデータ構造を示す図である。
【図４】本発明の可能なソフトウェア実施態様をＣ言語型疑似コードで示す図である。
【図５】本発明の一実施形態を示すフローチャートである。
【符号の説明】
１００  マルチプロセッサ・コンピュータ・システム
１０５  プロセッサ・アレイ
１３０  二次キャッシュ・メモリ
１３５  メイン・メモリ
１３７  メモリ・コントローラ
１３８  バス
１４０  共通サービス・プロセッサ・カード
１４５  バス・コントローラ
１４６  バス・コントローラ
１５０  共通サービス・プロセッサ
１５５  ダイナミック・ランダム・アクセス・メモリ
１７０  不揮発性ランダム・アクセス・メモリ
１８０  フラッシュ・メモリ
１８５  入出力コントローラ
【図１】
0004434548.tif 000002
【図２】
0004434548.tif 000003
【図３】
0004434548.tif 000004
【図４】
0004434548.tif 000005
【図５】
0004434548.tif 000006