(57)【要約】【課題】少なくとも１つのオペレーティング・システムを実行するマルチプロセッサ・システムの故障プロセッサを置換えるための方法、システム、および製品を提供すること。【解決手段】従来技術とは対照的に、オペレーティング・システムによる介入なし（すなわち、置換えがオペレーティング・システムに透過的（transparent）であり得るよう）に、システム・ファームウェアによってこの置換えを実施することができる。一部の実施形態では、マルチプロセッサ・システムは、論理的に分割されていてもよく、この方法を利用して論理パーティションに割り当てられた１つまたは複数の共用あるいは専用のプロセッサを、そのパーティション上で実行されるオペレーティング・システムに透過的に置き換えることができる。【選択図】図５
2004318885.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのオペレーティング・システムを実行するマルチプロセッサ・システム中で故障プロセッサを置き換える方法であって、システム・ファームウェアにおいて、
故障プロセッサを検出するステップと、
利用可能な置換えプロセッサを識別するステップと、
前記故障プロセッサ上の前記オペレーティング・システムの状態を保存するステップと、
前記オペレーティング・システムが所有する装置からの割込みを、前記故障プロセッサから前記置換えプロセッサにリダイレクトするステップと、
前記少なくとも１つのオペレーティング・システムの前記保存状態を前記置換えプロセッサ上で復元するステップと
を含む、方法。
【請求項２】
前記オペレーティング・システムが所有する装置からの割込みを前記故障プロセッサから前記新しいプロセッサにリダイレクトするステップが、
グローバル割込みキューから前記故障プロセッサを取り除くステップと、
前記グローバル割込みキューに前記置換えプロセッサを追加するステップと
を含む、請求項１に記載の方法。
【請求項３】
故障プロセッサを検出するステップが、少なくとも閾値数の回復可能なエラーが前記プロセッサ上で発生したことを検出するステップを含む、請求項１に記載の方法。
【請求項４】
少なくとも閾値数の回復可能なエラーが前記プロセッサ上で発生したことを検出するステップが、少なくとも閾値数の回復可能なエラーが前記プロセッサ上で発生したという通知をサービス・プロセッサから受け取るステップを含む、請求項３に記載の方法。
【請求項５】
前記故障プロセッサが、前記故障プロセッサを検出する以前にユーザにライセンスされており、前記方法がさらに前記故障プロセッサにライセンスされていないとマークを付けるステップを含む、請求項１に記載の方法。
【請求項６】
前記検出するステップ、識別するステップ、保存するステップ、リダイレクトするステップ、および復元するステップが、前記故障プロセッサに関連するタイマの満了に応答して開始される割込みハンドラ・ルーチン内で実行される、請求項１に記載の方法。
【請求項７】
前記故障プロセッサが前記マルチプロセッサ・システムの論理パーティションに割り当てられたものであり、前記方法がさらに前記置換えプロセッサを前記論理パーティションに割り当てるステップを含む、請求項１に記載の方法。
【請求項８】
前記故障プロセッサが、前記マルチプロセッサ・システムの１つまたは複数の論理パーティションの間で共有されるプロセッサのプール中にあったものであり、
前記方法が、
前記共用されたプールに前記置換えプロセッサを追加するステップと、
前記故障プロセッサへコードをディスパッチすることを中止するステップと、
前記置換えプロセッサにコードをディスパッチするステップと
をさらに含む、請求項１に記載の方法。
【請求項９】
前記故障プロセッサにマークを付けて、前記故障プロセッサが後続の初期プログラム・ロード時に割り当てられないようにするステップをさらに含む、請求項１に記載の方法。
【請求項１０】
前記マルチプロセッサ・システム上で実行されるオペレーティング・システムに透過的な方法で、故障プロセッサを置き換えるために、マルチプロセッサ・システム中のシステム・ファームウェアとして包含するプログラムを含むコンピュータ読取り可能な媒体であって、前記マルチプロセッサ・システムが、プロセッサによって実行されたとき、
少なくとも閾値数の回復可能なエラーが第１のプロセッサ上で発生したことを検出するステップと、
前記第１のプロセッサを置き換えるために利用可能な第２のプロセッサを識別するステップと、
前記第１のプロセッサ上の前記オペレーティング・システムの状態を保存するステップと、
前記オペレーティング・システムが所有する装置からの割込みを前記第１のプロセッサから前記第２のプロセッサにリダイレクトするステップと、
前記オペレーティング・システムの前記保存状態を前記第２のプロセッサ上で復元するステップと、
前記第１のプロセッサを構成解除するステップとを含む動作を実行する、
コンピュータ読取り可能な媒体。
【請求項１１】
前記第１のプロセッサを構成解除するステップが、
以前に前記第１のプロセッサに予定されていた（destined）コードを１つまたは複数の他のプロセッサに配布するステップと、
前記第１のプロセッサに利用できないとマークを付けるステップと
を含む、請求項１０に記載のコンピュータ読取り可能な媒体。
【請求項１２】
前記動作が、前記第１のプロセッサにマークを付けて、前記第１のプロセッサがその後割り当てられないようにするステップをさらに含む、請求項１０に記載のコンピュータ読取り可能な媒体。
【請求項１３】
前記検出するステップ、識別するステップ、保存するステップ、リダイレクトするステップ、および復元するステップが、前記故障プロセッサからのタイマ割込みを受け取ったことに応答して、開始される割込みハンドラ・ルーチン内で実行される、請求項１０に記載のコンピュータ読取り可能な媒体。
【請求項１４】
前記第１のプロセッサが、ユーザにライセンスされたものであり、前記動作が、
前記第１のプロセッサにライセンスされていないとマークを付けるステップと、
前記第２のプロセッサにライセンスされているとマークを付けるステップと
をさらに含む、請求項１０に記載のコンピュータ読取り可能な媒体。
【請求項１５】
少なくとも１つの割り当てられたプロセッサと、
少なくとも１つの割り当てられていないプロセッサと、
前記少なくとも１つの割り当てられたプロセッサ上で実行される少なくとも１つのオペレーティング・システムと、
前記少なくとも１つの割り当てられたプロセッサ中で１つまたは複数の回復可能なエラーの発生を検出したことに応答して、前記少なくとも１つの割り当てられたプロセッサ上の前記オペレーティング・システムの状態を保存し、前記オペレーティング・システムが所有する装置からの割込みを前記少なくとも１つの割り当てられたプロセッサから前記少なくとも１つの割り当てられていないプロセッサにリダイレクトし、前記オペレーティング・システムの前記保存状態を前記少なくとも１つの割り当てられていないプロセッサ上で復元するように構成されるシステム・ファームウェアと
を備える、マルチプロセッサ・システム。
【請求項１６】
前記少なくとも１つの割り当てられたプロセッサ中の回復可能なエラーを検出し、前記少なくとも１つの割り当てられたプロセッサ中の少なくとも閾値数の回復可能なエラーを検出したことに応答して、前記システム・ファームウェアに通知するように構成されるサービス・プロセッサをさらに備える、請求項１５に記載のマルチプロセッサ・システム。
【請求項１７】
前記少なくとも１つの割り当てられたプロセッサがユーザにライセンスされたものであり、前記少なくとも１つの割り当てられていないプロセッサが前記ユーザにライセンスされていないものであり、前記システム・ファームウェアがさらに、前記少なくとも１つの割り当てられたプロセッサにライセンスされていないとマークを付け、前記少なくとも１つの割り当てられていないプロセッサにライセンスされているとマークを付けるように構成される、請求項１５に記載のマルチプロセッサ・システム。
【請求項１８】
前記システム・ファームウェア内に実装されるタイマ機構をさらに備え、
前記タイマ機構が、前記少なくとも１つの割り当てられたプロセッサに関連するタイマが満了すると開始される割込み処理ルーチンを含み、前記システム・ファームウェアが前記割込み処理ルーチン中の前記１つまたは複数の回復可能なエラーの発生を検出するように構成される、請求項１５に記載のマルチプロセッサ・システム。
【請求項１９】
それぞれが関連するオペレーティング・システムを有する複数の論理パーティションと、
前記論理パーティションの少なくとも１つに対するコードを実行する少なくとも第１のプロセッサと少なくとも第２の予備のプロセッサを含む複数のプロセッサと、
前記第１のプロセッサ中で１つまたは複数の回復可能なエラーの発生を検出したことに応答して、前記第１のプロセッサ上の前記少なくとも１つの論理パーティションに関連する前記オペレーティング・システムの状態を保存し、前記関連するオペレーティング・システムが所有する装置からの割込みを前記第１のプロセッサから前記第２のプロセッサにリダイレクトし、前記オペレーティング・システムの前記保存状態を前記第２のプロセッサ上で復元するように構成されるシステム・ファームウェアと
を備える、論理的に分割されたコンピュータ・システム。
【請求項２０】
前記システム・ファームウェアがさらに、
前記第２のプロセッサを前記少なくとも１つの論理パーティションに割り当て、
前記第１のプロセッサに利用できないとマークを付けて、前記第１のプロセッサがその後、前記論理パーティションのどれかに割り当てられられるのを防止するように構成される、
請求項１９に記載の論理的に分割されたコンピュータ・システム。
【請求項２１】
前記第１のプロセッサが、１つまたは複数の前記論理パーティションの間で共用されるプロセッサのプールの一部であり、前記システム・ファームウェアがさらに、前記第２のプロセッサを前記プールに追加し、前記第１のプロセッサに対するコードのディスパッチを中止し、前記第２のプロセッサに対するコードのディスパッチを開始するように構成される、請求項１９に記載の論理的に分割されたコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にマルチプロセッサ・コンピュータ・システムに関し、より詳細には、オペレーティング・システムに透過的（transparent）な方法で故障プロセッサを置き換えることに関する。
【背景技術】
【０００２】
コンピュータ環境において、並列処理とは、一般に複数の計算タスクを並列で実行することをいう。従来、並列処理には、各コンピュータ・システムの資源が特定のタスク専用にされる、または共通タスクの一部分を実行するように割り当てられる複数のコンピュータ・システムを必要とした。しかし、コンピュータのハードウェア技術およびソフトウェア技術の最近の進歩により、複数のプロセッサを使用して非常に複雑な並列処理が可能なシングル・コンピュータ・システムがもたらされた。
【０００３】
場合によっては、マルチプロセッサ・システムは、論理的に分割され、１つまたは複数のプロセッサが複数の論理パーティションのそれぞれに対して専用化され、または複数の論理パーティションのそれぞれの間で共用されることがある。論理的に分割されたコンピュータ・システムでは、（プロセッサ、メモリ、および様々なＩ／Ｏ装置を含めて）利用可能なシステム資源が、複数の論理パーティションの間で割り付けられ、それぞれが他とは独立して動作して見えるように設計されている。論理パーティションの間での資源の割付け管理は一般に、パーティション・マネージャと一般に呼ばれるシステム・ファームウェアのレイヤを介して達成される。
【０００４】
パーティション・マネージャの目的は、各論理パーティションが、一般に専用コンピュータ・システム上で実行されるように開発されるソフトウェア（例えば、オペレーティング・システムおよびオペレーティング・システム特有のアプリケーション）を、ほとんどまたは全く修正なしに、独立して実行できるようにすることである。例えば、１つの論理パーティションがＩＢＭのＯＳ／４００など第１のオペレーティング・システムを実行中であり、第２の論理パーティションがＩＢＭのＡＩＸなど第２のオペレーティング・システムを実行中であり、第３の論理パーティションがＬｉｎｕｘなど第３のオペレーティング・システムを実行中であるということが可能である。同じコンピュータ・システム上で複数のオペレーティング・システムを実行できるようにすることによって、論理的に分割されたシステムは、アプリケーション・プログラムがそれ用に書かれたオペレーティング・システムとはほとんどまたは全く無関係に、ユーザ・ニーズに最適のアプリケーション・プログラムを選択する上でより大きな自由度をユーザに提供することができる。
【０００５】
大規模コンピュータ・システムの論理分割には、いくつかの潜在的な利点がある。例えば、論理的に分割されたコンピュータ・システムは、資源の再構成および再割付けがハードウェアを変更しないで容易に実現できる点で柔軟性に富む。論理分割はまた、タスクまたはタスク群を隔離し、それによって、どれか１つのタスクまたはタスク群がシステム資源を独占するのを防止するのに役立つこともある。論理分割はまた、特定のユーザに提供される資源の調整を容易にすることもできる。この資源の調整は、使用される資源ごとの料金ベース、すなわち「キャパシティ・オンデマンド」ベースで様々なユーザにコンピュータ・サービスを提供するサービス・プロバイによってコンピュータ・システムが所有されるビジネス・モデルに不可欠なことがある。さらに、以上で説明したように、各論理パーティションで異なるオペレーティング・システムを実行することができるので、論理分割により、シングル・コンピュータ・システムで複数のオペレーティング・システムを同時にサポートすることができるようになる。
【０００６】
論理分割に関する、追加の背景情報には、本明細書で参照される、以下の特許および特許出願、すなわち２０００年９月２９日出願の「Technique for Configuring Processors in System With LogicalPartitions」という名称の米国特許出願第０９／６７２，０４３号、１９９９年７月１日出願の「Apparatus for Supporting aLogically Partitioned Computer System」という名称の米国特許出願第０９／３４６，２０６号、「Processor ResetGenerated Via Memory Access Interrupt」という名称の米国特許第６，４６７，００７号、「System And MethodFor Dynamically Performing Resource Reconfiguration In A Logically PartitionedData Processing System」という名称の米国特許第５，６５９，７８６号、および「Logical Resource PartitioningOf A Data Processing」という名称の米国特許第４，８４３，５４１号がある。
【０００７】
時には、論理的に分割されたシステムなどのマルチプロセッサ・システム中で実行されるプロセッサが、回復可能と考えられるエラーを経験することがある。エラーは、そのエラーがデータ損失なしに訂正できる場合、一般に回復可能と分類される。プロセッサが、ある数の回復可能なエラーを経験した後、近い将来に回復可能でない（すなわち致命的な）エラーを経験するということはありそうなことである。したがって、回復可能なエラーはまた、一般に予測故障（または故障の予測）とも言う。マルチプロセッサ・システム中のプロセッサが回復可能でないエラーは、そのシステム中の全てのプロセッサを止め、そのシステムの初期プログラム・ロード（initial program load；ＩＰＬ）を実施し、その故障プロセッサをそのシステムから永続的に構成解除する（事実上取り除く）チェック・ストップ状態をもたらす破局的な事象である。
【０００８】
ＩＰＬ（システム・ブート・プロセスとも呼ぶ）は、一般的に、システムを電源切断または非実行状態からオペレーティング・システム特有のコードをロードするポイントまで持っていくプロセスのことを言う。このプロセスは、構成要素上での様々なテストの実行を含む可能性があり、マルチプロセッサ・システム中では機能中のプロセッサがすべてＩＰＬプロセスを行うことになり、これにはかなりの時間を要することがある。論理的に分割されたシステムが複数のパーティションを含み得ることを考慮すると、プロセッサの故障によって引き起こされるチェック・ストップ状態に起因するシステムＩＰＬは、複数のパーティションに対して許容できないダウンタイムになることがある。
【０００９】
したがって、致命的なエラーによって引き起こされるチェック・ストップ状態を回避するための努力として、いくつかの回復可能なエラーが検出されたときに、故障プロセッサの使用をあきらめることが望ましいことがある。回復可能なエラーは、オペレーティング・システムを実行するために使用するプロセッサとは別の、一般にサービス・プロセッサと呼ばれるプロセッサを用いて検出することができる。従来技術のマルチプロセッサ・システムでは、オペレーティング・システムは、故障プロセッサの使用をあきらめて、チェック・ストップ状態の発生を防止することができる。故障プロセッサをあきらめた後には、そのオペレーティング・システムは実行し続けることができ、利用可能なら、故障プロセッサを良好だと知られている予備のプロセッサで置き換えることができる。このシステムでは、いくつかの理由から１つまたは複数の予備のプロセッサを備えておくことができる。例えば、処理能力に対して顧客が対価を支払うキャパシティ・オンデマンド・システムでは、システム中に顧客が対価を支払わないプロセッサ（ライセンスされていないプロセッサ）があってよい。別の例では、論理的に分割されたシステム中に、（ライセンスされた）プロセッサが、どのパーティションにもまだ割り当てられていないこともある。
【００１０】
図１は、従来のマルチプロセッサ・システム中で故障プロセッサを置き換える動作例の流れ図を示すものである。図１の動作は一般に、オペレーティング・システム１１２、システム・ファームウェア１１４、およびサービス・プロセッサ１６０を含む、マルチプロセッサ・システムのいくつかの異なる構成要素によって実施される。図に示すように、故障プロセッサの従来技術による置換えでは、一般に、オペレーティング・システムとシステム・ファームウェアの間のいくつかの複雑な相互作用が必要である。
【００１１】
ステップ１２で、サービス・プロセッサ１６０が故障プロセッサ（例えば、回復可能なエラーが許容可能な閾値数を超えたプロセッサ）を検出すると、動作が開始する。ステップ１４で、サービス・プロセッサ１６０は、このプロセッサにマークを付け、故障プロセッサが後続のＩＰＬで、イネーブルされないように保証する（かかるマーキングのことを一般に永続的な構成解除と呼ぶ）。ステップ１６で、サービス・プロセッサ１６０は、この故障プロセッサのことをシステム・ファームウェア１１４に通知する。
【００１２】
ステップ１８で、システム・ファームウェア１１４は、（オペレーティング・システム１１２で使用するための）ログを作成して、プロセッサが故障しており、利用可能な置換えがあることを示す。ステップ２０で、オペレーティング・システム１１２は、（例えば、一般にイベント・スキャン（event scan）と呼ばれる特定のファームウェア・コールを介して）ログにアクセスし、故障プロセッサと、置換えの可能性とを検出する。ステップ２２で、オペレーティング・システム１１２は、ファームウェア・コールを発行して、置換えプロセスの追加を受け入れる。これに応答して、ステップ２４で、システム・ファームウェア１１４は、置換えプロセッサにオペレーティング・システム１１２に割り当てられているとマークを付ける。ステップ２６で、オペレーティング・システム１１２は、１組のファームウェア・コールを発行して、オペレーティング・システム制御の下で置換えプロセッサを始動させる。この時点では、故障プロセッサがまだ明け渡されていないので、このオペレーティング・システム１１２は、過剰能力で実行されていることになる。
【００１３】
したがって、オペレーティング・システム１１２は、そのオペレーティング・システムの観点から、いくつかの追加ステップを取って、故障プロセッサを構成解除する。例えば、このオペレーティング・システムは、ステップ２８でその故障プロセッサに関連するタイマを取り除き、ステップ３０で故障プロセッサを停止しようとしていることを他のプロセッサに通知し、ステップ３２で故障プロセッサを全体の割込キュー（割込み処理に対して指定される１組のプロセッサ）から取り除き、ステップ３４でオペレーティング・システム１１２が所有するＩ／Ｏ装置が故障プロセッサに割込みを送らないように保証することができる。次いで、オペレーティング・システム１１２は、システム・ファームウェア１１４に対して別の一連の特化されたコールを行い、故障プロセッサを停止させる。それに応答して、ステップ３８で、システム・ファームウェア１１４は、現在のすべての作業負荷を故障プロセッサから移動させ、新しい作業負荷が追加されないようにし、動的構成解除と一般に呼ばれるプロセスが行われる（ステップ１４で故障プロセッサが永続的な構成解除のためにサービス・プロセッサ１６０によってマーク付けされ、その故障プロセッサがＩＰＬ上で再スタートすることがないように保証されることを思い起こされたい）。最後に、故障プロセッサを置き換えてしまうと、ステップ４０で動作は終了する。
【００１４】
故障プロセッサを置き換えるための従来技術には、いくつかの不利な点がある。第１に図１に示し以上で説明したように、従来技術では、オペレーティング・システムとシステム・ファームウェアの間で調整される複数の複雑なステップが必要である。第２に、オペレーティング・システムの関与が必要なので、各オペレーティング・システムを、プロセッサの置換えをサポートするように別々に設計する必要があり、これは、論理的に分割されたシステムでは、異なるオペレーティング・システムを最小限の変更で実行させるという目的に反するものである。
【特許文献１】米国特許出願第０９／６７２，０４３号
【特許文献２】米国特許出願第０９／３４６，２０６号
【特許文献３】米国特許第６，４６７，００７号
【特許文献４】米国特許第５，６５９，７８６号
【特許文献５】米国特許第４，８４３，５４１号
【特許文献６】米国特許第６，２７９，０４６号
【特許文献７】米国特許出願第０９／８３８，０５７号
【発明の開示】
【発明が解決しようとする課題】
【００１５】
したがって、好ましくはオペレーティング・システムの一部に対してほとんどまたは全く相互作用を必要としない、故障プロセッサを置き換える改良された方法およびシステムが必要である。
【課題を解決するための手段】
【００１６】
本発明は、一般に故障プロセッサを置き換えるための方法、製品、およびシステムを対象とする。
【００１７】
一実施形態は、少なくとも１つのオペレーティング・システムを実行するマルチプロセッサ・システム中で故障プロセッサを置き換える方法を提供する。本方法は、一般に、システム・ファームウェアにおいて、故障プロセッサを検出するステップ、利用可能な置換えプロセッサを識別するステップ、故障プロセッサ上のオペレーティング・システムの状態を保存するステップ、そのオペレーティング・システムが所有する装置からの割込みを故障プロセッサから置換えプロセッサにリダイレクトするステップ、および少なくとも１つのオペレーティング・システムの保存状態を置換えプロセッサ上で復元するステップを含む。
【００１８】
他の実施形態では、マルチプロセッサ・システム上で実行されるオペレーティング・システムに透過的な方法で故障プロセッサを置き換えるプログラムを、マルチプロセッサ・システム中のシステム・ファームウェアとして含むコンピュータ読取り可能な媒体を提供する。プロセッサが実行するとき、このプログラムは一般に、第１のプロセッサ上で少なくとも閾値数の回復可能なエラーが起こったことを検出するステップ、第１のプロセッサを置換え可能な第２のプロセッサを識別するステップ、第１のプロセッサ上のオペレーティング・システムの状態を保存するステップ、そのオペレーティング・システムが所有する装置からの割込みを第１のプロセッサから第２のプロセッサにリダイレクトするステップ、そのオペレーティング・システムの保存状態を第２のプロセッサ上で復元するステップ、および第１のプロセッサを構成解除するステップを含む動作を実施する。
【００１９】
他の実施形態では、少なくとも１つの割り当てられたプロセッサと、少なくとも１つの割り当てられていないプロセッサと、少なくとも１つの割り当てられたプロセッサ上で実行される少なくとも１つのオペレーティング・システムと、システム・ファームウェアとを含むマルチプロセッサ・システムを提供する。このシステム・ファームウェアは、一般に、少なくとも１つの割り当てられたプロセッサ中で１つまたは複数の回復可能なエラーの発生を検出したことに応答して、割り当てられたプロセッサ上のオペレーティング・システムの状態を保存し、そのオペレーティング・システムが所有する装置からの割込みを少なくとも１つの割り当てられたプロセッサから少なくとも１つの割り当てられていないプロセッサにリダイレクトし、その少なくとも１つの割り当てられていないプロセッサ上でオペレーティング・システムの保存状態を復元するように構成されている。
【００２０】
他の実施形態では、それぞれが、関連するオペレーティング・システムと、少なくとも１つの論理パーティションに対するコードを実行する少なくとも第１のプロセッサおよび少なくとも第２の予備のプロセッサを含む複数のプロセッサと、システム・ファームウェアとを有する複数の論理パーティションを一般に含む論理的に分割されたコンピュータ・システムを提供する。そのシステム・ファームウェアは、一般に、第１のプロセッサ中の１つまたは複数の回復可能なエラーが起こったことを検出したことに応答して、第１のプロセッサ上の論理パーティションに関連するオペレーティング・システムの状態を保存し、その関連するオペレーティング・システムが所有する装置からの割込みを第１のプロセッサから第２のプロセッサにリダイレクトし、そのオペレーティング・システムの保存状態を第２のプロセッサ上で復元するように構成されている。
【００２１】
本発明の以上に列挙した特徴を達成し、詳細に理解できるようにするために、以上で概説した本発明のより詳細な説明を、添付の図面に示す本発明の実施形態に関して行うことにする。
【００２２】
ただし、添付図面は、単に本発明の典型的な実施形態を示すものにすぎず、したがって、その範囲を限定するものと考えるべきではないことに留意されたい。なぜなら、本発明では、その他の同等に有効な実施形態を認め得るからである。
【発明を実施するための最良の形態】
【００２３】
本発明は、一般に故障プロセッサの置換えのための方法、システム、および製品を対象としている。従来技術と対照的に、オペレーティング・システムが介入することなく、サービス・プロセッサおよびシステム・ファームウェアによって実施される調整された一連の動作によって置換えを実施することができる。換言すれば、この置換えはオペレーティング・システムに対して透過的であると言える。したがって、従来技術ではオペレーティング・システムとシステム・ファームウェアの間の調整を要したいくつかの複雑なステップを取り除くことができる。さらに、オペレーティング・システムに透過的な故障プロセッサの置換えを行うことにより、それぞれのオペレーティング・システムを、プロセッサの置換えをサポートするように設計する必要がなくなり、これによって標準のオペレーティング・システムの使用を容易にすることができる。
【００２４】
本発明の一実施形態は、例えば図２に示し以下で説明するマルチプロセッサ・コンピュータ・システム１００などのコンピュータ・システムで使用するプログラム製品として実装される。プログラム製品のプログラムは、（本明細書で説明する方法を含めて）実施形態の機能を定義し、様々な信号担持媒体上に収容することができる。信号担持媒体の例には、それだけには限定されないが、（ｉ）非書込み可能記憶媒体上に恒久的に記憶される情報（例えば、ＣＤ−ＲＯＭドライブによって読出し可能なＣＤ−ＲＯＭディスクなどコンピュータ内の読出し専用メモリ装置）、（ｉｉ）書込み可能記憶媒体上に記憶される可変情報（例えば、ディスケット・ドライブ内のフロッピー（Ｒ）・ディスクまたはハードディスク・ドライブ）、（ｉｉｉ）無線通信およびインターネットを含むコンピュータまたは電話網を介するなどの通信媒体によってコンピュータに伝えられる情報が含まれる。
【００２５】
一般に、本発明の実施形態を実施するように実行されるルーチンは、例えばシステム・ファームウェア１１４およびサービス・プロセッサ１６０のファームウェアとして実施される、オペレーティング・システムもしくは特定のアプリケーション、コンポーネント、プログラム、モジュール、オブジェクト、または命令シーケンスの一部であってよい。本発明のソフトウェアは、一般に、ネイティブ・コンピュータによって機械読取り可能なフォーマット、したがって実行可能な命令に変換される多数の命令からなっている。また、プログラムは、そのプログラムに対してローカルに存在するか、またはメモリ中あるいは記憶装置上に見出される変数およびデータ構造からなっている。さらに、以下に説明する様々なプログラムを、本発明の特定の実施形態中で実装されるアプリケーションに基づいて識別することができる。しかし、以下の特定の専門用語は、単に便宜上使用されており、したがって本発明を、かかる専門用語が識定し意味する特定の応用例だけで使用することを限定すべきではないことを理解されたい。
【００２６】
マルチプロセッサ・システムの一例
本発明の実施形態に従って利用されるマルチプロセッサ・コンピュータ・システム１００の主要なハードウェア構成要素を図２に示す。様々なシステム構成要素をハイレベルで示しているが、典型的なコンピュータ・システムでは、本発明の理解に必須ではない、図に示していない多くの他の構成要素が含まれることを理解されたい。一実施形態では、システム１００は、ニューヨーク州、アーモンクのビジネス・マシーンズ・コーポレーションから入手可能なｅＳｅｒｖｅｒ  ｉＳｅｒｉｅｓのコンピュータ・システムであるが、ただし、本発明の実施形態は、他のマルチプロセッサ・コンピュータ・システム上でも実装することができる。
【００２７】
一般に、第１組の複数のシステム・プロセッサ１３０１〜１３０Ｎ（総称してプロセッサ１３０）は、メモリ１４０からの命令およびデータに対して基本的な機械処理機能を同時に実施する。例えば、プロセッサ１３０は、オペレーティング・システム１１２からの命令およびデータ（コード）を処理することができる（したがって、プロセッサ１３０は、オペレーティング・システム１１２に割り当てられていると記述することができる）。システム・プロセッサ１３０はまた、システム・ファームウェア１１４からのコードを処理することができる。一般に、システム・ファームウェア１１４は、オペレーティング・システム１１２と同じシステム・プロセッサ１３０上で実行されるファームウェアのレイヤに相当しており、それを使用して、オペレーティング・システム１１２をそのハードウェア・アクセスの詳細から隔離しながら、様々なハードウェア構成要素に対する低レベル・インターフェースを提供する。
【００２８】
図に示すように、ハードウェア構成要素の例には、１つまたは複数のネットワーク・アダプタ１５２、ワークステーション制御装置１５４、および記憶制御装置１５６が含まれ得る。ネットワーク・アダプタ１５２は、システム１００をネットワーク１５３に接続するのに適した任意のタイプのインターフェースを意味し、このネットワークはローカル・エリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、およびインターネットを含むその他任意のタイプのネットワークをどのように組み合わせたものでもよい。ワークステーション制御装置１５４および記憶制御装置１５６により、システム１００は、１つまたは複数のワークステーション１５５１〜１５５Ｏと、直接アクセス記憶装置（ＤＡＳＤ）、テープ・ドライブ、光ドライブ、などの様々な記憶装置１５７１〜１５７Ｐと接続できるようになる。
【００２９】
図に示すように、システム・ファームウェア１１４はまた、システム１００のサービス・プロセッサ１６０と情報をやりとりすることもできる。システム・プロセッサ１６０は、オペレーティング・システム１１２を実行するのに使用されるシステム・プロセッサとは別になっており、一般に専用のファームウェア・コードを実行して、ある構成要素のテストを制御することを含む初期プログラム・ロード（ＩＰＬ）の一部分を実行する。したがって、サービス・プロセッサ１６０は、一般に、システム・プロセッサの始動および停止を行い、様々なシステム構成要素中の故障分離レジスタ（fault isolation register）を読み取ることができることを含む、様々なハードウェア構成要素に対する制御アクセス権を有している。サービス・プロセッサ１６０は、ＩＢＭ社から入手可能なＰｏｗｅｒＰＣプロセッサなど、本明細書中に記載した動作および機能を実行するように構成される（例えば、内部または外部のメモリを介してプログラムされる）マイクロプロセッサとして実装することもできる。
【００３０】
サービス・プロセッサ１６０は、ランタイム中に発生するシステムの問題を診断するのに役立つように構成することができる。例えば、サービス・プロセッサ１６０は、１つまたは複数のプロセッサ１３０で発生する回復可能なエラーを検出するように構成することができる。サービス・プロセッサ１６０は、プロセッサ１３０のハードウェア・ロジック中に組み込まれて、ハードウェア故障を検査するための様々なメカニズム（例えば、バス・パリティおよびＥＣＣ保護回路、様々なロジック状態機械に対する無効状態検査、バス・アドレスに対する範囲検査ロジックなど）を含むことができるハードウェア検出ロジック（図示せず）によって示されるように回復可能なエラーを検出することができる。
【００３１】
以前に述べたように、プロセッサがある数の回復可能なエラーを経験した後、近い将来に回復可能でないエラーを経験するということはありそうなことである。したがって、サービス・プロセッサ１６０を、回復可能なエラーの発生を（割り当てられた各プロセッサ１３０ごとに）記録するように構成して、いつ回復可能なエラーの閾値数に到達したかを検出することができる。閾値数は、プロセッサが故障することを良く示すことが見出された回復可能エラー数に相当するように選ぶことができる。致命的なエラー、および関連するチェック・ストップ状態を回避するために、プロセッサが回復可能なエラーの閾値数に達した（またはそれを超過した）のを検出することに応答して、サービス・プロセッサは、システム・ファームウェア１１４にそのプロセッサが故障していることを通知することができる。
【００３２】
以前に述べたように、従来技術のマルチプロセッサ・システムでは、システム・ファームウェア１１４が、一般にログを作成して、オペレーティング・システム１１２にそのプロセッサが故障していることを示すことになる。次いで、オペレーティング・システム１１２は、システム・ファームウェア１１４へのコールを介して、一連の動作を実行して、故障プロセッサの使用をあきらめ、そのプロセッサを停止させ（動的な構成解除）、故障プロセッサを利用可能な「良好な」プロセッサに置き換えることになる。これらの従来技術のシステムと対照的に、本発明の態様に従って、システム・ファームウェア１１４は、オペレーティング・システムに透過的な方法で、故障プロセッサを利用可能な（予備の）プロセッサに置き換えるように構成することができる。
【００３３】
一部の実施形態では、システム・ファームウェア１１４が、故障プロセッサをタイマ機構１１５を使用することによって検出し置き換えることができ、このタイマ機構は、システム・ファームウェア１１４が専用に使用するプロセッサ・タイマが生成する割込みを処理するように構成することができる（システム中の各プロセッサごとに１つの「システム・ファームウェア・タイマ」があってよい）。換言すれば、タイマ機構１１５は、オペレーティング・システム１１２からアクセスできないことがある（例えば、このタイマ機構は、オペレーティング・システム１１２からアクセス可能な故障プロセッサのレジスタを全く利用していないことがある）。タイマ機構１１５は、一般に、（例えば、関連するプロセッサ・タイマが満了すると）システム・ファームウェア１１４に対して割込みを定期的に提示するように構成されて（プログラムされて）いる。以下により詳細に説明するように、システム・ファームウェア１１４は、タイマ機構１１５を使用して、オペレーティング・システムの知識なしにその故障プロセッサ１３０を置き換えることができる。
【００３４】
システム・ファームウェア１１４は、良好なことが知られているプロセッサがあれば、それと故障プロセッサ１３０を置き換えることができる。図に示すように、システム１００は、オペレーティング・システム１１２に割り当てられていない複数の予備のプロセッサ１３２１〜１３２Ｍ（プロセッサ１３２と総称）を含むことができる。以前に説明したように、システム１００は、顧客が（例えばプロセッサ・ユニットに従って）処理能力の対価を支払う「キャパシティ・オンデマンド」構造を実装することができ、割り当てられていないプロセッサ１３２は、顧客が対価を払わない「ライセンスされていない」プロセッサである。別の方法として、論理的に分割されたキャパシティ・オンデマンド・システムでは、割り当てられていないプロセッサ１３２は、どのパーティションにもまだ割り当てられていないライセンスされたプロセッサであってもよい。
【００３５】
論理的に分割されたシステムの一例
図３は、それぞれがそれ自体のオペレーティング・システム１１２１〜１１２Ｑを有する１つまたは複数の論理パーティション１１０１〜１１０Ｑ（パーティション１１０と総称）に割り当てられた第１組のプロセッサ１３０と、第２組の割り当てられていないプロセッサ１３２とを有する論理的に分割されたコンピュータ・システムを示している。図に示すように、プロセッサ１３０１〜１３０Ｉは第１のパーティション１１０１に割り当てられるのに対して、プロセッサ１３０Ｊ〜１３０Ｎはパーティション１１０Ｑに割り当てられている。図３は、所与のパーティションにそれぞれ専用となっているプロセッサ１３０を示しているが、一部の実施形態では、１つまたは複数のプロセッサ１３０は、複数のパーティション１１０間で共用されていてもよい。
【００３６】
論理分割は、実際に物理的ではなくて論理的である。（図２に示すものなど）論理的に分割に適した汎用コンピュータは、一般にあるパーティション中の資源と、異なるパーティション中の資源との間で実行されるバスなどの物理的なデータ接続を有し、物理的な構成の観点からは、一般にパーティションに関する区別が行われない。一般に、論理分割は、本明細書中でパーティション・マネージャ１２０と呼ばれるシステム・ファームウェアのレイヤによって実現されるが、とは言え、論理分割には、状態情報を保持するハードウェア・レジスタなどある程度の量のハードウェア・サポートがあってよい。換言すれば、ハードウェアの観点からは、パーティション１１０１中のタスクが、パーティション１１０Ｑ中のＩ／Ｏ装置へ書込みを行うのを妨げるものは何もないが、パーティション・マネージャ１２０（およびたぶん関連ハードウェア）は、他のパーティション中の資源へのアクセスを妨げる。
【００３７】
システム・アドミニストレータ（またはその他同様に許可されたユーザ）は、ハードウェア管理コンソール（ＨＭＣ）１８０などのインターフェースを介して、論理分割を構成し、その他低レベルのシステム管理を実行することができる。サービス・プロセッサ１６０は、パーティション・マネージャ１２０とＨＭＣ１８０の間のインターフェースとしての役割を果たすことができる。ＨＭＣ１８０は、（サービス・プロセッサ１６０をインターフェースとして使用して）コンピュータ・システム１００に接続されたカスタム構成のパーソナル・コンピュータ（ＰＣ）として実装することができ、これを使用して論理分割およびその他低レベルのシステム管理を構成することができる。一部の実施形態では、１つまたは複数のサービス・パーティション（図示せず）、またはサービス・プロセッサ１６０とインターフェースすることもできるその他同様なタイプのインターフェースを介して同様な機能を提供することができる。
【００３８】
透過的なプロセッサの置換え
以前に説明したように、サービス・プロセッサ１６０およびシステム・ファームウェア１１４は、協調して、パーティション１１０の１つに割り当てられた故障プロセッサ１３０を、致命的なエラーが起こる前に、故障プロセッサが割り当てられた対応するオペレーティング・システム１１２に透過的な方法で検出し置き換えることができる。図５は、それを実施することにより故障プロセッサを検出し透過的に置き換えることができる動作例３００を示している。この動作については、図３および図４を参照して最も良く説明することができる。図に示すように、動作３０２〜３０６はサービス・プロセッサ１６０によって実行できるのに対し、動作３１２〜３３０はシステム・ファームウェア１１４中で実行することができる。図に示すように、サービス・プロセッサ１６０は、図１の従来技術による置換えに従ってサービス・プロセッサ１６０が実施する動作と同じ動作を実行することができる。
【００３９】
動作３００は、ステップ３０２の故障プロセッサを検出するステップから開始される。例えば、サービス・プロセッサ１６０は、パーティション１１０１に割り当てられた（図３で故障とラベルが付けられた）プロセッサ１３０Ｉ中で、そのプロセッサが回復可能なエラーの閾値数に達しまたは超過する回復可能なエラーを検出することができる。ステップ３０４で、サービス・プロセッサ１６０は、故障プロセッサ（１３０Ｉ）に永続的な構成解除を行うためにマークを付けて、このプロセッサが後続のＩＰＬ中に始動されないように保証する。例えば、サービス・プロセッサ１６０は、プロセッサ１３０および１３２のうちのどちらがＩＰＬ中にパーティション１１０に対する割当てに利用可能かを示す（電源を切っても保持される）永続的なメモリ位置に書込みを行うことができる。ステップ３０６で、サービス・プロセッサ１６０は、例えばサービス・プロセッサ１６０とシステム・ファームウェア１１４の間の低レベルの通信メカニズム（または「メールボックス」）を介して、メッセージをそのシステム・ファームウェアに送ることにより、システム・ファームウェア１１４にこの故障プロセッサのことを通知する。かかるメッセージ・メールボックスの実装と使用については、本明細書で参照される「Event-Driven Communications Interface for Logically PartitionedComputer」という名称の米国特許第６，２７９，０４６号に記載されている。
【００４０】
図に示すように、システム・ファームウェア１１４の動作は、ステップ３１２で、例えば、タイマ機構１１５内で、故障プロセッサ１３０Ｉのシステム・ファームウェア・タイマの満了に応答して生成される割込みが発生するとステップ３１２で開始することができる。ステップ３１４で、例えばサービス・プロセッサ１６０が送ったメールボックス・メッセージを読み取ることにより、故障プロセッサ１３０Ｉを検出する。ステップ３１６で、置換えプロセッサ、例えばプロセッサ１３２１を１組の割り当てられていないプロセッサ１３２から選択する。ステップ３１８で、その故障プロセッサ上のオペレーティング・システム１１２の状態を保存する。例えば、タイマ割込みの時点におけるその故障プロセッサの１組のレジスタの状態を、ステップ３１６で選択された置換えプロセッサを初期化する際に使用するために保存することができる。
【００４１】
故障プロセッサ１３０Ｉでは、パーティション１１０１に対する様々な割込みを処理した可能性がある。例えば、各パーティション１１０には、そのパーティション１１０に割り当てられた１組のプロセッサ１３０のうちどれがＩ／Ｏ装置による割込みの対象であるかを実質的に指定するグローバル割込みキュー（ＧＩＱ）１３４がある場合もある。システム・ハードウェアは、ＧＩＱ１３４中のプロセッサの１つを割込みの提示をするために選択することができる。図に示すように、故障プロセッサ１３０Ｉは、パーティション１１０１のＧＩＱ１３４１に含まれていることがある。したがって、ステップ３２０で、故障プロセッサ１３０Ｉが割込みの対象にならないようにするために、故障プロセッサ１３０ＩをＧＩＱ１３４１から取り除く。図４に示すように、ステップ３２１で置換えプロセッサ１３２１をＧＩＱ１３４に追加し、ステップ３２２で、割込みを故障プロセッサ１３０Ｉから置換えプロセッサ１３２１にリダイレクトする。
【００４２】
ステップ３２４で、置換えプロセッサ１３２１をオペレーティング・システムに割り当て、ステップ３２６で、（ステップ３１８で故障プロセッサ１３０Ｉから保存された）オペレーティング・システムの状態を置換えプロセッサ１３２１上で復元する。ステップ３２８で、故障プロセッサ１３０Ｉを動的に構成解除する。例えば、パーティション・マネージャ１２０は、故障プロセッサ１３０Ｉの作業負荷を置換えプロセッサ１３２１に移行させ、新しい作業負荷をその他のプロセッサ１３０の１つにディスパッチすることができる。故障プロセッサ１３０Ｉは、以前に（ステップ３０４でサービス・プロセッサ１６０によって）永続的な構成解除をするためにマークが付けられ、それによって、確実に故障プロセッサ１３０Ｉが後続のＩＰＬでパーティション１１０のどれにも再び割り当てられなくなることを思い起こされたい。したがって、図４で、故障プロセッサ１３０Ｉが利用できないものとして示され、置換えプロセッサ１３２１がパーティション１１０に割り当てられ、（将来故障するプロセッサを置き換えるために利用できる）１組の割り当てられていないプロセッサ１３２は、今やプロセッサ１３２２〜１３２Ｍを含むことになる。
【００４３】
以前に説明したように、ある場合には、マルチプロセッサ・システムの１つまたは複数のプロセッサが、キャパシティ・オンデマンド構成の一部として対価を支払う顧客にライセンスされている場合がある。かかる場合には、故障しているライセンスされたプロセッサを予備のライセンスされていないプロセッサに置き換えることができる。したがって、一部の実施形態では、置換え前と置換え後でライセンスされたプロセッサ数を不変に保つために、システム・ファームウェア１１４が、置換えプロセスの一部として故障プロセッサ１３０Ｉにライセンスされていないとマークを付け、置換えプロセッサ１３２１にライセンスされているとマークを付けることができる。
【００４４】
ステップ３３０で、動作３００は、例えばタイマ機構１１５の割込みハンドラから戻ることによって終了する。次いで、オペレーティング・システム・コードの処理は、置換えプロセッサ１３２１上で、故障プロセッサ１３０Ｉが中断した同じポイントから再開されるべきである。換言すれば、故障プロセッサ１３０Ｉの置換えには、オペレーティング・システム１１２１からの介入を必要としなかったことになり、この置換えは、オペレーティング・システム１１２１に気付かれない（すなわち透過的である）はずである。
【００４５】
もちろん、図５に示す特定の動作３００は、単なる例にすぎず、本発明の範囲内で様々な修正を行うことができる。例えば、置換えプロセッサが利用できない場合、システム・ファームウェア１１４がそれでもなお故障プロセッサ１３０Ｉを構成解除することが可能であり、そのシステムは、（性能は低下するが）故障プロセッサ１３０Ｉを置き換えずに実行を続行することができる。
【００４６】
さらに、図に示す動作３００は、一般にあるパーティションに専用のプロセッサを置き換えることに該当するが、オペレーティング・システムの関与がないので、同様な動作を実行して複数のパーティション間で共用されるプロセッサのプール中のプロセッサを置き換えることもできることに留意されたい。例えば、システム・ファームウェア１１４は、共用プール中のプロセッサが故障していることをサービス・プロセッサ１６０によって通知されると、パーティション・コードを故障プロセッサ上にディスパッチすることを単に一時停止し、置換えプロセッサへのパーティション・コードのディスパッチを開始し、置換えプロセッサをそのプールに追加し、故障プロセッサをそのプールから取り除くことができる。複数のパーティション間で共用されるプロセッサ・プールの概念については、本明細書で参照される２００１年４月２９日出願の「Method and Apparatus for Allocating Processor Resources in aLogically Partitioned Computer System」という名称の米国特許出願第０９／８３８，０５７号に詳細に記載されている。
【００４７】
オペレーティング・システムに透過的な方法で故障プロセッサを置き換えることにより、本発明の実施形態では、マルチプロセッサ・システム中における標準のオペレーティング・システムの使用を容易にしている。換言すれば、オペレーティング・システムでは故障プロセッサの置換えをサポートする必要がなく、この置換えをシステム・ファームウェア中で処理することができる。本明細書中で説明した技術を利用して、任意のタイプのマルチ処理システムに、特に複数のオペレーティング・システムが実行される論理的に分割されたシステムに役立てることができる。一部の実施形態では、サービス・プロバイダが、キャパシティ・オンデマンド方式の一部として、透過的なプロセッサの置換えが可能なマルチプロセッサ・システムを展開することができる。選択されたオペレーティング・システムと関係なくライセンスされたプロセッサをライセンスされていないプロセッサと透過的に置き換えることができるので、サービス・プロバイダは、顧客が支払いの対価とする処理能力を受け取るという、以前は達成できなかった顧客への保証のレベルを提供可能とすることができる。
【００４８】
以上、本発明の実施形態を対象として述べてきたが、本発明の基本的な範囲を逸脱することなくその他さらなる本発明の実施形態を考案することができ、本発明の範囲は特許請求の範囲によって決定される。
【００４９】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００５０】
（１）少なくとも１つのオペレーティング・システムを実行するマルチプロセッサ・システム中で故障プロセッサを置き換える方法であって、システム・ファームウェアにおいて、
故障プロセッサを検出するステップと、
利用可能な置換えプロセッサを識別するステップと、
前記故障プロセッサ上の前記オペレーティング・システムの状態を保存するステップと、
前記オペレーティング・システムが所有する装置からの割込みを、前記故障プロセッサから前記置換えプロセッサにリダイレクトするステップと、
前記少なくとも１つのオペレーティング・システムの前記保存状態を前記置換えプロセッサ上で復元するステップと
を含む、方法。
（２）前記オペレーティング・システムが所有する装置からの割込みを前記故障プロセッサから前記新しいプロセッサにリダイレクトするステップが、
グローバル割込みキューから前記故障プロセッサを取り除くステップと、
前記グローバル割込みキューに前記置換えプロセッサを追加するステップと
を含む、上記（１）に記載の方法。
（３）故障プロセッサを検出するステップが、少なくとも閾値数の回復可能なエラーが前記プロセッサ上で発生したことを検出するステップを含む、上記（１）に記載の方法。
（４）少なくとも閾値数の回復可能なエラーが前記プロセッサ上で発生したことを検出するステップが、少なくとも閾値数の回復可能なエラーが前記プロセッサ上で発生したという通知をサービス・プロセッサから受け取るステップを含む、上記（３）に記載の方法。
（５）前記故障プロセッサが、前記故障プロセッサを検出する以前にユーザにライセンスされており、前記方法がさらに前記故障プロセッサにライセンスされていないとマークを付けるステップを含む上記（１）に記載の方法。
（６）前記検出するステップ、識別するステップ、保存するステップ、リダイレクトするステップ、および復元するステップが、前記故障プロセッサに関連するタイマの満了に応答して開始される割込みハンドラ・ルーチン内で実行される、上記（１）に記載の方法。
（７）前記故障プロセッサが前記マルチプロセッサ・システムの論理パーティションに割り当てられたものであり、前記方法がさらに前記置換えプロセッサを前記論理パーティションに割り当てるステップを含む、上記（１）に記載の方法。
（８）前記故障プロセッサが、前記マルチプロセッサ・システムの１つまたは複数の論理パーティションの間で共有されるプロセッサのプール中にあったものであり、
前記方法が、
前記共用されたプールに前記置換えプロセッサを追加するステップと、
前記故障プロセッサへコードをディスパッチすることを中止するステップと、
前記置換えプロセッサにコードをディスパッチするステップと
をさらに含む、上記（１）に記載の方法。
（９）前記故障プロセッサにマークを付けて、前記故障プロセッサが後続の初期プログラム・ロード時に割り当てられないようにするステップをさらに含む、上記（１）に記載の方法。
（１０）前記マルチプロセッサ・システム上で実行されるオペレーティング・システムに透過的な方法で、故障プロセッサを置き換えるためにマルチプロセッサ・システム中のシステム・ファームウェアとして包含するプログラムを含むコンピュータ読取り可能な媒体であって、前記マルチプロセッサ・システムが、プロセッサによって実行されたとき、
少なくとも閾値数の回復可能なエラーが第１のプロセッサ上で発生したことを検出するステップと、
前記第１のプロセッサを置き換えるために利用可能な第２のプロセッサを識別するステップと、
前記第１のプロセッサ上の前記オペレーティング・システムの状態を保存するステップと、
前記オペレーティング・システムが所有する装置からの割込みを前記第１のプロセッサから前記第２のプロセッサにリダイレクトするステップと、
前記オペレーティング・システムの前記保存状態を前記第２のプロセッサ上で復元するステップと、
前記第１のプロセッサを構成解除するステップとを含む動作を実行する、
コンピュータ読取り可能な媒体。
（１１）前記第１のプロセッサを構成解除するステップが、
以前に前記第１のプロセッサに予定されていた（destined）コードを１つまたは複数の他のプロセッサに配布するステップと、
前記第１のプロセッサに利用できないとマークを付けるステップと
を含む、上記（１０）に記載のコンピュータ読取り可能な媒体。
（１２）前記動作が、前記第１のプロセッサにマークを付けて、前記第１のプロセッサがその後割り当てられないようにするステップをさらに含む、上記（１０）に記載のコンピュータ読取り可能な媒体。
（１３）前記検出するステップ、識別するステップ、保存するステップ、リダイレクトするステップ、および復元するステップが、前記故障プロセッサからのタイマ割込みを受け取ったことに応答して、開始される割込みハンドラ・ルーチン内で実行される、上記（１０）に記載のコンピュータ読取り可能な媒体。
（１４）前記第１のプロセッサが、ユーザにライセンスされたものであり、前記動作が、
前記第１のプロセッサにライセンスされていないとマークを付けるステップと、
前記第２のプロセッサにライセンスされているとマークを付けるステップと
をさらに含む、上記（１０）に記載のコンピュータ読取り可能な媒体。
（１５）少なくとも１つの割り当てられたプロセッサと、
少なくとも１つの割り当てられていないプロセッサと、
前記少なくとも１つの割り当てられたプロセッサ上で実行される少なくとも１つのオペレーティング・システムと、
前記少なくとも１つの割り当てられたプロセッサ中で１つまたは複数の回復可能なエラーの発生を検出したことに応答して、前記少なくとも１つの割り当てられたプロセッサ上の前記オペレーティング・システムの状態を保存し、前記オペレーティング・システムが所有する装置からの割込みを前記少なくとも１つの割り当てられたプロセッサから前記少なくとも１つの割り当てられていないプロセッサにリダイレクトし、前記オペレーティング・システムの前記保存状態を前記少なくとも１つの割り当てられていないプロセッサ上で復元するように構成されるシステム・ファームウェアと
を備える、マルチプロセッサ・システム。
（１６）前記少なくとも１つの割り当てられたプロセッサ中の回復可能なエラーを検出し、前記少なくとも１つの割り当てられたプロセッサ中の少なくとも閾値数の回復可能なエラーを検出したことに応答して、前記システム・ファームウェアに通知するように構成されるサービス・プロセッサをさらに備える、上記（１５）に記載のマルチプロセッサ・システム。
（１７）前記少なくとも１つの割り当てられたプロセッサがユーザにライセンスされたものであり、前記少なくとも１つの割り当てられていないプロセッサが前記ユーザにライセンスされていないものであり、前記システム・ファームウェアがさらに、前記少なくとも１つの割り当てられたプロセッサにライセンスされていないとマークを付け、前記少なくとも１つの割り当てられていないプロセッサにライセンスされているとマークを付けるように構成される、上記（１５）に記載のマルチプロセッサ・システム。
（１８）前記システム・ファームウェア内に実装されるタイマ機構をさらに備え、
前記タイマ機構が、前記少なくとも１つの割り当てられたプロセッサに関連するタイマが満了すると開始される割込み処理ルーチンを含み、前記システム・ファームウェアが前記割込み処理ルーチン中の前記１つまたは複数の回復可能なエラーの発生を検出するように構成される、上記（１５）に記載のマルチプロセッサ・システム。
（１９）それぞれが関連するオペレーティング・システムを有する複数の論理パーティションと、
前記論理パーティションの少なくとも１つに対するコードを実行する少なくとも第１のプロセッサと少なくとも第２の予備のプロセッサを含む複数のプロセッサと、
前記第１のプロセッサ中で１つまたは複数の回復可能なエラーの発生を検出したことに応答して、前記第１のプロセッサ上の前記少なくとも１つの論理パーティションに関連する前記オペレーティング・システムの状態を保存し、前記関連するオペレーティング・システムが所有する装置からの割込みを前記第１のプロセッサから前記第２のプロセッサにリダイレクトし、前記オペレーティング・システムの前記保存状態を前記第２のプロセッサ上で復元するように構成されるシステム・ファームウェアと
を備える、論理的に分割されたコンピュータ・システム。
（２０）前記システム・ファームウェアがさらに、
前記第２のプロセッサを前記少なくとも１つの論理パーティションに割り当て、
前記第１のプロセッサに利用できないとマークを付けて、前記第１のプロセッサがその後、前記論理パーティションのどれかに割り当てられられるのを防止するように構成される、
上記（１９）に記載の論理的に分割されたコンピュータ・システム。
（２１）前記第１のプロセッサが、１つまたは複数の前記論理パーティションの間で共用されるプロセッサのプールの一部であり、前記システム・ファームウェアがさらに、前記第２のプロセッサを前記プールに追加し、前記第１のプロセッサに対するコードのディスパッチを中止し、前記第２のプロセッサに対するコードのディスパッチを開始するように構成される、上記（１９）に記載の論理的に分割されたコンピュータ・システム。
【図面の簡単な説明】
【００５１】
【図１】従来技術による故障プロセッサの置換えの動作例を示す流れ図である。
【図２】本発明に従って利用される論理的に分割されたコンピュータ・システムの一例を示す図である。
【図３】本発明の一実施形態によるハードウェア構成要素とソフトウェア構成要素の関係を示す図である。
【図４】本発明の一実施形態によるハードウェア構成要素とソフトウェア構成要素の関係を示す図である。
【図５】本発明の一実施形態による故障プロセッサの透過的な置換えの動作例を示す流れ図である。
【符号の説明】
【００５２】
１００  マルチプロセッサ・コンピュータ・システム
１１０  パーティション
１１０１〜１１０Ｑ  論理パーティション
１１２  オペレーティング・システム
１１２１〜１１２Ｑ  オペレーティング・システム
１１４  システム・ファームウェア
１１５  タイマ機構
１２０  パーティション・マネージャ
１３０  システム・プロセッサ
１３０１〜１３０Ｎ  システム・プロセッサ
１３０Ｉ  故障プロセッサ
１３２  プロセッサ
１３２１〜１３２Ｍ  予備のプロセッサ
１３２１  置換えプロセッサ
１３４  グローバル割込みキュー（ＧＩＱ）
１４０  メモリ
１５２  ネットワーク・アダプタ
１５３  ネットワーク
１５４  ワークステーション制御装置
１５５１〜１５５Ｏ  ワークステーション
１５６  記憶制御装置
１５７１〜１５７Ｐ  記憶装置
１６０  サービス・プロセッサ
１８０  ハードウェア管理コンソール（ＨＭＣ）
３００  動作例
【図１】
2004318885.tif 000003
【図２】
2004318885.tif 000004
【図３】
2004318885.tif 000005
【図４】
2004318885.tif 000006
【図５】
2004318885.tif 000007