説明

マルチプロセッサシステムの障害回復方法

【課題】本発明の課題はマルチプロセッサシステムでAPがない状態であっても、障害の発生したIPが実行する処理の優先度が高いならば、優先度の低い処理を実行するIPに対して動的IP交代を実施し、優先度の高い処理を保証することにある。
【解決手段】複数の処理装置と、前記複数の処理装置に共有される主記憶装置とを有するマルチプロセッサシステムの障害回復方法において、構成内に交代用のプロセッサが存在しない場合であっても、各プロセッサが実行する処理の優先度を保持することによって、より優先度の高い処理を実行するプロセッサをシステムに残す処理を特徴とするマルチプロセッサシステムの障害回復方法。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルチプロセッサシステムの障害回復方法に係り、特に、プロセッサ単体障害の障害回復方法に関する。
【背景技術】
【0002】
本技術分野の背景技術として、米国特許 Patent No.: US 6,189,112 B1(特許文献1)がある。この公報には、「Our invention provides a mechnism enabling the micro-architectured state of a checkstopped processor can be transferred to a spare processor in the system. The transfer is accomplished by the system using a hardware istruciton built into the processor that is useable only by millicode. In addition, the transfer is initiated and managed by Licenced Internal Code (LIC) sequences. This code runs on both an external Service Element (SE) and as millicode on the processors themselves. (以下、訳 我々の発明は、チェックストップしたプロセッサのマイクロアーキテクチャでの状態をシステム内の予備プロセッサに転送することを可能とする仕組みを提供する。この転送は、ミリコードによってのみ使用可能な、プロセッサ内に組み込まれたハードウェア命令を使用するシステムによって達成される。
更に、この転送は、ライセンスされた内部コード(LIC)の処理により、開始され管理される。このコードは、外部のサービスエレメント(SE)で動作するほか、各プロセッサ上ではミリコードとして動作する。)」と記載されている。
【0003】
また、特開平1−133171号公報(特許文献2)がある。この公報には、「ある処理装置で固定障害が発生した時、チェックポイントを保証して、割込みを他の正常な処理装置で行わせるため、固定障害の回復が容易に可能となる。」と記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許 Patent No.: US 6,189,112 B1
【特許文献2】特開平1−133171号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
情報処理装置において、障害が発生した場合の回復方法としては、命令単位に再実行する方法や、一定のチェックポイントに戻って再実行する方法が知られている。これは、いずれも間欠障害の回復を行うことを目的としており、障害が発生した時、障害発生時に実行中であった処理を再実行することにより障害の回復を行う。
【0006】
一方、固定障害が発生した場合、上記方法では障害を回復することができない。情報処理装置において固定障害が発生し、障害回復に失敗した場合、一般に障害回復失敗の割込みを発生させる。例えば、回復不可能な障害が発生したことをマシンチェック割込みにより知らせる。
【0007】
回復不可能な障害が発生した時のマシンチェック割込みには、次に示す2種類がある。
(1)回復不能な障害が発生したが、障害発生前の状態に戻っており、割込みポイントの状態が保証されている。
(2)回復不能な障害が発生し、割込みポイントの状態は保証されない。
【0008】
(1)の状態のマシンチェック割込みをPD・B(プロセッサダメージ・バックアップ)と呼び、(2)の状態のマシンチェックをPD(プロセッサダメージ)と呼ぶ。この2つの状態の差を、図3を用いて説明する。図3は、命令A→B→C→Dの順に命令が実行されるプログラムである。今、命令Cの実行中に障害が発生したとする。この時、PD・Bのマシンチェック割込みが発生したとすると、命令処理装置の状態は、命令Cの実行前の状態(障害発生直前のチェックポイントの状態)が保証されている。すなわち、割込みを受け付けた後、再度、命令Cから命令を再実行すれば、プログラムは正常に実行を続けることができる。一方、PDのマシンチェック割込みが発生した場合には、命令処理装置は、命令Cにより内部状態が変更されてしまっているか、あるいは、されていないかの切り分けが不可能な状態にある。
【0009】
マシンチェック割込みを受け付けると、制御プログラムは、次のような処理を試みる。
【0010】
(1)PD・Bのとき、割込みポイントからの処理を再実行しようと試みる。再実行が成功すれば、障害の回復が成功することになる。
【0011】
(2)PDのとき、実行中の処理を異常終了させる。
【0012】
ところで、固定障害が発生し、ハードウェアにより再実行が失敗した場合、マシンチェック割込みにより、制御プログラムに報告を行うが、報告を受け、処理の続行あるいは異常終了処理を行うのは、障害を起こした命令処理装置であり、再度障害を起こす可能性が高い。このような場合、障害は制御プログラムの障害処理部分または中核部分で発生することになり、システムダウンとなる可能性が高い。
【0013】
このようなシステムダウンを防止するため、マルチプロセッサシステムでは、障害が発生した処理装置で行っていた処理を、他の正常な処理装置で引継いで再実行するという手法がとられる。この機能を実現するため、システムはOSやユーザプログラムを実行する命令プロセッサ(IP)以外に、IPに障害が発生した際に処理の引継ぐ交代プロセッサ(AP)を搭載する。この引継ぎにより、それまでAPとして待機していたプロセッサがIPとして動作することとなる。
【0014】
このような引継ぎを動的IP交代と呼ぶ。動的IP交代は障害処理の多くの部分をハードウェアが実施するので、高速に処理できるというメリットがある。また、システム内に動作可能なAPが存在する限り、何度でも実施することができる。
【0015】
しかしながら、動的IP交代が行われるたびにシステム内のAPが1台ずつ使用されるため、障害が複数回発生しシステムに搭載した全てのAPを使用し尽くしてしまうと、当該システムは動的IP交代実施不可となる。このため、動的IP交代が行われたシステムは、できるだけ速やかに停止し、保守作業にて、故障のないプロセッサに交換することが望ましい。しかしながら、このようなマルチプロセッサシステムは、複数のユーザが共同使用している場合が多く、保守作業を実施する際には全てのユーザがシステムを停止しても問題のない時間を確保する必要がある。このような保守作業のための時間は、必ずしも確保できるとは限らず、場合によってはシステム内のAPを使用し尽くしてしまうことが考えられる。
【0016】
このようにAPを使用し尽した状態でPD・Bの障害が発生した場合、動的IP交代とは別に、プロセスサクセションと呼ばれる障害処理が用意されている。プロセスサクセションとは、障害が発生する前の所定の時点(チェックポイント)のIPの内部状態を主記憶に待避した後、他のIPに対し誤動作警報外部割込みを発生させる処理を指す。誤動作警報外部割込みを受けたIPは、診断命令を発行し、主記憶に待避された障害IPの内部状態を取得することが可能である。これにより、他のIPは、必要に応じて障害IPの処理を引き継ぐことができる。
【0017】
プロセスサクセションは、APが存在しないシステムでも処理を引継ぐことができるが、システムからは動作可能なIPが1台減るため、システム全体の処理能力の低下は避けられない。また、引継ぎはOS等のソフトウェアが主体になって行うため、動的IP交代より時間を要する。更に、引継がれた処理は基本的に他のIPの空き時間で処理されることになるので、通常より処理時間を要する可能性がある。
【0018】
以上、述べたとおり、既存のシステムではIPにPD・Bの固定障害が発生したとき、システムに動作可能なAPが存在する場合は動的IP交代を実施し、動作可能なAPが存在しない場合はプロセスサクセションを実施する。既存のシステムでは、システムに動作可能なAPが存在しない状態で、IPにPD・Bの固定障害が障害が発生した場合、そのIPがたとえ優先度の高い処理をしていたとしても、動的IP交代は実施されずにプロセスサクセションとなる。プロセスサクセションは、障害処理に要する時間およびその後の計算機の処理速度が保証されないため、場合によっては障害処理後にOSやユーザプログラムにてタイムアウトを検出したり、処理の遅れが発生しうる。
【0019】
本発明の目的はマルチプロセッサシステムでAPがない状態であっても、障害の発生したIPの処理の優先度が高いならば、優先度の低い処理を実行しているIPに対して動的IP交代を実施し、優先度の高い処理を保証することにある。
【課題を解決するための手段】
【0020】
上記課題を解決するために、例えば特許請求の範囲に記載の方法を採用する。
【0021】
本発明は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、「複数の処理装置と、前記複数の処理装置に共有される主記憶装置とを有するマルチプロセッサシステムの障害回復方法において、構成内に交代用のプロセッサが存在しない場合であっても、各プロセッサが実行する処理の優先度を前記記憶装置内に保持することによって、より優先度の高い処理を実行するプロセッサをシステムに残す処理を特徴とするマルチプロセッサシステムの障害回復方法。」を特徴とする。
【発明の効果】
【0022】
従来、マルチプロセッサシステムでは、障害が発生した処理装置で行っていた処理を、他の正常な処理装置で引継いで再実行するという手法がとられる。この機能を実現するため、システムはOSやユーザプログラムを実行する命令プロセッサ(IP)以外に、IPに障害が発生した際に処理を引継ぐ交代プロセッサ(AP)を搭載する。この引継ぎ処理以降は、それまでAPとして動作していたプロセッサがIPとして動作することとなる。
【0023】
このような引継ぎを動的IP交代と呼ぶが、動的IP交代が行われるたびにシステム内のAPが1台ずつ使用されるため、障害が複数回発生しシステムに搭載した全てのAPを使用し尽くしてしまうと、当該システムは動的IP交代実施不可となる。
【0024】
本発明の目的はマルチプロセッサシステムでAPがない状態であっても、障害の発生したIPが実行する処理の優先度が高いならば、優先度の低い処理を実行するIPに対して動的IP交代を実施し、優先度の高い処理を保証することにある。
【図面の簡単な説明】
【0025】
【図1】本発明の一実施例のマルチプロセッサシステムのブロック図。
【図2】処理装置のチェックポイント保証手段の構成例を示す図。
【図3】チェックポイントを説明する図。
【図4】構成情報テーブルの例を示す図。
【図5】実際に処理装置に固定障害が発生した際の構成の移り変わりを示す図。
【図6】図5の各時点での構成情報テーブルの内容を示す図。
【図7】図5(c)で障害が発生した際の動的IP交代情報の内容を示す図。
【発明を実施するための形態】
【0026】
以下、実施例を図面を用いて説明する。
【実施例1】
【0027】
図1は、本発明の一実施例のマルチプロセッサシステムのブロック図である。ここで、本マルチプロセッサシステムは、プロセッサ・ユニット(PU)1、2、3、主記憶装置(MS)5、サービスプロセッサ(SVP)6、システム制御装置(SC)7で構成されているとしている。PU1、2、3はいずれも同じ構成であり、命令実行部111、121、131、割込み制御部112、122、132、障害検出部113、123、133を備えている。図1では4台目以降のPUの記述を省略しているが、これらについてもPU1、2、3と同じ構成となっている。後述するPUから他の部位への結線についても、4台目以降のPUについては省略しているが、PU1、2、3、と同様用の結線となっている。SC7は記憶制御部16、障害処理部17、SVP接続部18からなる。
【0028】
PU1、2、3の命令実行部111、121、131は信号線20、23、26を介して、SC7の記憶制御部16に接続され、該記憶制御部16の制御の下でMS5をアクセス可能な構成となっている。障害検出部113、123、133は自PU内の障害を検出して、その結果を信号線21、24、27を介して、SC7の障害処理部17に報告する。SC7の障害処理部17は、PUの固定障害時、信号線22、25、28を介し、正常なPU1、2、3の割込み制御部112、122、132に割込み指示を出すことが可能であり、また、信号線35、記憶制御部16を介してMS5へアクセス可能である。
【0029】
SVP6は信号線38を介してSC7のSVP接続部18と接続する。SVP接続部18はPU1、2、3とそれぞれ信号線32、33、34で接続し、さらに信号線36を介してSC7内の障害処理部17と、また信号線39を介してSC7内の記憶制御部16と接続する。SVPはシステム全体の管理を行っており、例えば起動時におけるPU1、2、3、SC7、MS5の初期設定を行う。
【0030】
PU1、2、3の命令実行部111、121、131は、障害発生時、当該PUの状態を障害発生前のある時点(チェックポイント)の状態へ戻すチェックポイント保証手段を有している。図2にその具体的構成例を示す。図2はPU1のチェックポイント保証手段を示したものであるが、PU2、3についても同様である。
【0031】
図2において、レジスタ40は信号線20−1を介して、SC7の記憶制御部16経由でMS5に存在するデータがセットされるものである。レジスタ群44は、命令により参照可能な汎用レジスタ群である。このレジスタ群44のデータは、信号線54を介してレジスタ41にセットされる。レジスタ40、41の内容は、演算機(ALU)42で演算を行った後、その結果は、再びレジスタ群44に書込まれたり、信号線20−2を介し、SC7の記憶制御部16により、MS5へ書込まれたりする。待避レジスタ45は、レジスタ41の内容を、命令実行ごとに待避するものであり、レジスタ群44の書込み前(演算実行前)の内容が順に待避されている。
【0032】
次に、障害処理で使用する構成情報テーブルについて図4を用いて説明する。構成情報テーブルには、システムに存在するPUの状態が定義されており、MS5に格納されている。該テーブルには、PUごとに、論理PU番号、物理PU番号、属性、動作可否、プロセスサクセション可否、優先度の各情報を保持している。
【0033】
マルチプロセッサシステムではPUが複数存在するため、それぞれのPUに固有の番号をつけて識別を行う。この番号には物理PU番号と論理PU番号の2種が存在する。物理PU番号は物理的な構成によって決定し、主にハードウェアがPUを識別する際に使用する。物理PU番号は固定番号であり、その後変わることはない。これに対し論理PU番号は、主にOSやユーザプログラムがPUを識別する際に使用する。論理PU番号は、構成変更等により変更可能である。物理PU番号および論理PU番号のいずれもPUを識別することが目的であるので、システムで一意に割り当てる必要がある。(つまり、とあるPUに割り当てられた物理PU番号と同一の番号は、他のPUの物理PU番号には存在しない。論理PU番号も同様。)また、物理PU番号と論理PU番号は、番号付けに関連性は無く、個々のPUに着目した場合、そのPUの物理PU番号と論理PU番号は一致することもあれば、一致しないこともある。
【0034】
属性は、当該PUの役割がIP、APのいずれであるかを示す。動作可否は、当該PUが動作可能か障害が発生し停止しているかを示す。プロセスサクセション可否は、当該PUがプロセスサクセション可能な状態であるか否かを示す。優先度は、システムに動作可能なAPがない状態でPUに固定障害発生した場合のみ参照される領域で、この内容を元に障害が発生したPU(IP)が、他のPU(IP)を奪い取ってでも動的IP交代をすべきであるか否かを判定する。
【0035】
本実施例では構成情報テーブルを論理PU番号順に並べているが、物理PU番号順に並べてもよい。論理PU番号順であっても物理PU番号順であってもPUの管理を行えることは自明である。このため、本実施例では論理PU番号で管理する方法のみ記載する。
【0036】
構成情報テーブルの初期値は、システム起動時にSVP6から信号線38を介してSC7内のSVP接続部18、更に信号線32を通ってPU1に送られる構成情報を元に作成され、MS5に格納される。なお、本実施例では初期値の作成をPU1が実施するが、システム起動時にSVP6が初期値の作成を行うPUを指定してもよい。
【0037】
実際にPUに障害が発生し障害処理が実施される様子を図5に示す。この図では、1システムに4台のPUが存在する例を示している。(a)は起動直後の構成を示している。この図でPU1〜PU4は物理PU番号を、IP、APは各PUの属性を、括弧の中の数字は論理PU番号を示し、優先度は各PUが実行する処理の優先度を示す。本実施例では優先度の数字の小さい方が、優先度が高いものとしている。図に示すとおりPU1〜PU3はIP、PU4はACに割り当てられている。また、優先度は、PU1が2、PU2が1、PU3が3、PU4が4となっている。
【0038】
この時の構成情報テーブルの内容を図6(a)に示す。図5(a)に示す内容と同等の内容が該テーブルに表現されている。図6ではプロセスサクセション可否を省略しているが、実際には図4に示すようにこの情報も存在する。
【0039】
今、図5(a)の構成で、PU2にPD・Bの固定障害が発生したとする。(a)の構成にはシステムに動作可能なAPが存在するので、ハードウェアおよび制御プログラムは、動的IP交代を行う。これにより、障害が発生するまでは論理PU番号2のIPとして動作していたPU2の内部情報がPU4に引き継がれ、以降PU4が論理PU番号2のIPとして動作する。
【0040】
動的IP交代により、構成は図5(b)に示すとおりとなり、構成情報テーブルは図6(b)に示すとおりとなる。図6(a)と比較すると、論理PU番号2および論理PU番号4のそれぞれに対応する物理PU番号が入れ替わっている。また、物理PU番号2は障害が発生しているので、動作不可となっている。属性および優先度はOSやユーザプログラムからみたプロセッサ、すなわち論理PU番号ごとに決定するので、入れ替えは行われない。
【0041】
以上は既存の動的IP交代処理であり、何ら新しい処理はない。唯一構成情報テーブルに優先度が追加されている点が異なるが、通常の動的IP交代処理においては、この情報を更新する必要はない。ただし、これは実施例に示す構成情報テーブルが、論理PU番号順に登録されているからであり、構成情報テーブルが物理PU番号順に登録されている場合には、論理PU番号の入れ替えと同時に属性および優先度の入れ替えを行う必要がある。
【0042】
動的IP交代が完了し、図5(b)の構成でシステムを運用し続けたところ、PU1にも別のPD・Bとなる固定障害が発生したとする(図5(c))。この場合、システムに動作可能なAPが存在しないので、既存のシステムでは動的IP交代処理を行うことができない。代わりに可能ならばプロセスサクセションにて他のPU(IP)に処理を引継ぐこととなる。これに対し、本実施例では、各PUの実行する処理の優先度を考慮して動的IP交代を実施することができる。具体的には、障害が発生したPU1は属性がIP、論理PU番号が1、優先度が2であるので、システム内でもっとも優先度の低い3が設定されているPU3(論理PU番号が3、属性がIPのPU)に対して動的IP交代を実施する。この処理により、PU3(論理PU番号が3、属性がIPのPU)が代わりにチェックストップすることとなるが、可能であるならばプロセスサクセションを実施し、システムに残ったPU(IP)に処理を引き継ぐ。以下に具体的な動作を示す。
【0043】
PU1で障害が発生すると、PU1の障害検出部113からSC7の障害処理部17に障害を報告する。障害処理部17は、障害種別の判定を行い、固定障害と判定すると、システム内の動作可能な全PUに対してチェックストップ処理を実施するよう割込みを発生させる。この割り込みでは、障害が発生したPUの物理PU番号も通知される。
【0044】
今回の例では、本現象発生時に動作可能なPUはPU3およびPU4なので、これらのPUの制御プログラムにてチェックストップ処理を実施する。それぞれのPUは、まず構成情報テーブルの更新を行う。具体的には自PUが現時点でプロセスサクセション可能な状態か否かを確認し、確認した内容を構成情報テーブルにある自PUのプロセスサクセション可否に反映する。
【0045】
次に各PUは、障害処理PUの選出を行う。障害処理は、システムの不整合を防ぐために1台のPU1台で処理を進めるのがよい。本実施例では、システムの中で最初にチェックストップ処理を実施したプロセッサを障害処理PUとして選出する。今回はPU4が最初にチェックストップ処理を実施し、障害処理PUとして選出されるケースを考える。このPUの選出方法はシステムを構成するPUで一貫していれば、何でもよく、例えば論理PU番号や物理PU番号を元に選出してもよい。障害処理PUとして選出されたPU4は、以降障害処理を実施する。障害処理PUとして算出されなかったPU3は、PU4の障害処理が完了するまで待ちとなる。
【0046】
障害処理PUとして選出されたPU4は、障害が発生したPU1の属性を確認する。図6(c)の構成情報テーブルを参照すると、PU1(論理PU番号1)は、IPであると分かる。このため、可能であるならば動的IP交代を実施すべきと判断する。次にPU1のチェックポイントが保証されているか否かを判定する。今回の障害はPD・B障害なのでチェックポイントが保証されており、動的IP交代が可能な障害と判断する。続いてシステム内に動作可能なAPが存在するか否かを判定する。図6(c)の構成情報テーブルを確認すると、動作可能なAPは存在しないことが分かる。このため、通常の動的IP交代は実施不可と判断する。なお、この時点での構成情報テーブルは、PU1の障害が動作可否に反映されておらず、動作可能となっているが、既に障害が発生し動作不可となっていることが前記割り込みにて通知されているので、判定の対象外とする。
【0047】
次に、障害が発生したPU1(属性はIP)よりも優先度の低い処理を実行するIPが存在するか確認する。図6(c)の構成情報テーブルより、障害が発生したPU1が実行する処理の優先度は2と分かる。また、PU1を除く動作可能な全IPに対して優先度を確認し、その中で優先度の最も低い(数字が最も大きい)ものを検索すると、論理PU番号3として使用しているPU3が実行する処理の優先度が3でもっとも低いことが分かる。
これは障害が発生したPU1が実行する処理の優先度の値である2よりも低いので、動的IP交代を実施可能と判断する。なお、今回は優先度のもっとも低い処理を実行しているPUがシステムに1台のみ存在するが、2台以上存在する場合は、構成情報テーブルに記録されているプロセスサクセション可否がYesとなっているものを優先的に選択するとよい。
【0048】
障害処理PU4は、障害の発生したPU1が動的IP交代が可能であると判断したため、PU1の内部状態をMS5に待避する。待避した情報は、後続の処理で交代先のPU3に引き継ぐこととなる。
【0049】
障害処理PU4は、これまでの判定結果を構成情報テーブルに反映し、障害処理後の構成情報とするが、これにより、動的IP交代前の情報が上書きされることとなるので、後続の処理で必要となる情報を動的IP交代情報として記録しておく。動的IP交代情報は図7に示すように、動的IP交代実施前の障害PU1の論理PU番号、物理PU番号、属性、プロセスサクセション可否および、交代先PUの有効フラグ、論理PU番号、物理PU番号、属性、プロセスサクセション可否である。これらの情報は、障害処理PU4がMS5に格納する。このうち交代先PUの有効フラグは、動的IP交代の実施可否を示す。
具体的には動的IP交代が可能な障害が発生し、更に交代先PU(APもしくは優先度の低い処理を実行しているIP)が存在する場合にYesとし、それ以外の場合にNoとする。
【0050】
次に、障害処理PU4は、これまでの判定結果を構成情報テーブルに反映し、傷害処理後の構成情報とする。更新後の構成情報テーブルは、図6(d)に示すとおりとなる。図6(c)からの違いは、論理PU番号1および論理PU番号3の物理PU番号が入れ替わっている点と、PU1が動作不可となっている点である。属性および優先度は論理PU番号に対応するので、入れ替えは行わない。これは前述した通常の動的IP交代と同様の考え方である。構成情報テーブルを本実施例で示した論理PU番号順ではなく、物理PU番号順としている場合には、論理PU番号と同時に属性および優先度の入れ替えを行う必要がある。以上で、障害処理PU4は、障害PU1の内部状態の待避、動的IP交代情報の格納、および構成情報テーブルの更新処理を完了したので、障害処理PU4からSC7を経由してPU3へ障害処理PU4の処理が完了したことを意味する割込みを発生させる。処理完了を意味する割り込みを受けたPU3の動作は後述する。
【0051】
次に、PU4は、動的IP交代情報の確認を行う。まず、交代先PU3の有効フラグがYesであることから、障害PU1は動的IP交代にて交代先PU3へ処理が引き継がれることが分かる。また、交代先PU3の物理PU番号が3であり、自PU1の物理PU番号である1と不一致となるため、当該PUは交代先PUでないことが分かる。更に交代先PU3の属性がIPであることから、障害処理前のPU3(論理PU番号が3、属性がIPのPU)がチェックストップすることに伴う誤動作警報割込みを発生させる必要があることが分かる。このため、自PU4を誤動作警報割込み保留状態とする。この状態になっていると、制御プログラムによるチェックストップ処理が完了した際に、誤動作警報割込みが発生する。自PU4にて誤動作警報割込みが発生した以降の処理は後述する。
【0052】
障害処理PU4から処理完了を意味する割り込みを受けたPU3では、割込みを契機に後続の処理に進む。次の処理では、動的IP交代情報の確認を行う。まず、交代先PU3の有効フラグがYesであることから、障害PU4は動的IP交代にて交代先PU3へ処理が引き継がれることが分かる。また、交代先PUの物理PU番号が3であり、自PU3の物理PU番号である3と一致するため、自PU3が交代先であることが分かる。更に交代先PUの属性がIPであることから、障害処理前のPU3(論理PU番号が3、属性がIPのPU)がチェックストップすることに伴う誤動作警報割込みを発生させる必要があることが分かる。また、チェックストップとなるPU3(論理PU番号が3、属性がIPのPU)は、動的IP交代情報に格納されている交代先PUのプロセスサクセション可否フラグがYesであることから、プロセスサクセション可能であることが分かる。
【0053】
前記の処理でPU3(論理PU番号が3、属性がIPのPU)がプロセスサクセション可能であることが分かったので、次に、プロセスサクセション可否フラグとともにPU3の現時点の内部状態および論理PU番号3をMS5に待避する。この時に待避する論理PU番号は、既に更新されている構成情報テーブルに格納したものではなく、動的IP情報の交代先PUに格納したものとする。
【0054】
また、障害処理前のPU3(論理PU番号が3、属性がIPのPU)がチェックストップすることに伴う誤動作警報外部割込みを自PU3に発生させるために、自PU3を誤動作警報外部割込み保留状態とする。この状態になっていると、制御プログラムによるチェックストップ処理が完了した際に、誤動作警報割込みが発生する。自PU3にて誤動作警報割込みが発生した以降の処理は後述する。
【0055】
次に、PU3は、動的IP交代先として選出され、さらにその処理が無事完了したことを示す、PD・B割込みの要因を設定する。その後、前記の処理でMS5に待避したPU1の内部状態を取り込むことで、動的IP交代を実施する。以降、PU3は論理PU番号1のIPとして動作する。PU3の障害処理のうち、ハードウェアおよび制御プログラムが実施する分は以上で完了となる。
【0056】
ハードウェアおよび制御プログラムによる障害処理が完了すると、システム内のPUではそれぞれのPUに応じた割込みが発生する。この割込みは、論理分割を実施していないシステムではOSが受付け、論理分割を実施しているシステム(すなわちLPAR)では論理分割を行うプログラムが受付ける。今回の例では単純化のため、OSがこれらの割込みを受付けるものとしている。この処理はOSの実装次第であるので、その一例を挙げている。
【0057】
PU4では、保留していた誤動作警報外部割込み要因が受付けられ、対応する割込み処理がOSにて実施される。誤動作警報外部割込みには、チェックストップが発生したPUの論理PU番号が含まれる。誤動作警報外部割込みを受けたOSはまず、OS内で管理する構成情報を確認する。この結果、論理PU番号3のIPがチェックストップした結果が未反映であるため、これを反映される。次に、PU3(論理PU番号3のIP)のプロセスサクセション可否フラグおよび内部状態を取得する。この内容より今回はプロセスサクセションが可能であることが分かる。このため、障害処理前のPU3(論理PU番号3のIP)が実施していた処理を可能な分だけ引き継ぐ。障害処理前のPU3(論理PU番号3のIP)に割り当てられていた資源と障害処理後の自PU4(論理PU番号1のIP)に割り当てられている資源は必ずしも一致するとは限らないので、全ての処理が引き継げる訳ではなく、引継ぎ可能なもののみ選択して引継ぎが行われる。これらの選択や引継ぎはOSによって実施される。
【0058】
PU3では、PD・B割込み要因がまず受付けられ、対応する割込み処理がOSにて実施される。OSではまず、PD・B割込みを受けOS内で管理する構成情報に動的IP交代の結果が反映される。PD・Bの処理が完了すると、次に誤動作警報外部割込み要因が受付けられ、対応する割込み処理がOSにて実施される。OSでは、OS内の構成情報を確認し、論理PU番号3のIPがチェックストップした結果が反映済みであるため、更新は行わない。次に、PU3(論理PU番号3のIP)のプロセスサクセション可否フラグおよび内部状態を取得する。この内容により今回はプロセスサクセションが可能であることが分かる。このため、障害発生直前のPU3(論理PU番号3のIP)が実施していた処理を可能な分だけ引き継ぐ。障害発生直前のPU3(論理PU番号3のIP)に割り当てられていた資源と障害処理後のPU3(論理PU番号1のIP)に割り当てられている資源は必ずしも一致するとは限らないので、全ての処理が引き継げる訳ではなく、引継ぎ可能なもののみ選択して引継ぎが行われる。これらの選択や引継ぎはOSによって実施される。
【0059】
以上の説明から明らかな如く、本発明によれば、マルチプロセッサシステムにおいて、あるPUでPD・Bとなる固定障害が発生した時、システム内に動作可能なAPがない状態では通常動的IP交代不可となるところ、システム内の各IPが実行する処理の優先度を考慮して動的IP交代を実施し、代わりに優先度の低い処理を実行するPUをチェックストップとすることができる。この場合、チェックストップとなったPUの処理も、可能である限りプロセスサクセションにて他のPUへ処理を引き継ぎ可能である。これらの手段により、システム内で優先度の高い処理を実行するPUをできるだけ残すことが可能となる。
【0060】
本発明は、従来から存在するAPを搭載したシステムにも有効であるし、従来APを必須としていた装置においてAPをIPとして使用することで、資源の有効活用を図ることもできる。ただし、後者の場合は、システムにAPが存在しないので、優先度の低い処理を実行するIPは、最初にチェックストップ状態となる点に注意する必要がある。
【実施例2】
【0061】
本実施例では、各PUが実行する処理の優先度を静的に設定するだけでなく、動的に設定できる方法を説明する。
【0062】
基本的なハードウェアの構成は図1および図2に示すものと同一でよく、構成情報テーブルおよび動的IP交代情報もそれぞれ図4および図7に示すものと同一でよい。
【0063】
実施例2では、OSもしくは論理分割を行うプログラムが実施する処理に応じて、各PUが実行する処理の優先度を変更することが可能となる。このため、OSもしくは論理分割を行うプログラムが実施する処理ごとに優先度をあらかじめ決めておく。OSもしくは論理分割を行うプログラムは優先度が異なる処理を実施するたびに専用の命令を実施し、優先度の変更をハードウェアに通知する。専用の命令には、例えば診断命令が使用可能である。
【0064】
実施例2では、初期値の設定を省略する方法も考えられるが、システムの安定性を考慮すると、実施例1と同様にシステム起動時の初期設定を行うことが望ましい。
【0065】
本実施例によれば、IPが実行する処理の優先度を動的に変更することができる。
【符号の説明】
【0066】
1、2、3…命令処理装置、5…主記憶装置、6…サービスプロセッサ、7…システム制御装置、111、121、131…命令実行部、112、122、132…割込み制御部、113、123、133…障害検出部、16…記憶制御部、17…障害処理部、18…SVP接続部、40、41、43…レジスタ、42…演算器、44…レジスタ群、45…待避レジスタ。

【特許請求の範囲】
【請求項1】
複数の処理装置と、前記複数の処理装置に共有される主記憶装置とを有するマルチプロセッサシステムの障害回復方法において、構成内に交代用のプロセッサが存在しない場合であっても、各プロセッサが実行する処理の優先度を前記主記憶装置内に保持することによって、より優先度の高い処理を実行するプロセッサをシステムに残す処理を特徴とするマルチプロセッサシステムの障害回復方法。
【請求項2】
前記障害処理が障害を検出した場合、前記障害が発生し、障害プロセッサが実施していた処理を、システム内の優先度の低い処理を実行するプロセッサに引継ぐ際に、優先度の低い処理を実行するプロセッサが実行していた状態を格納し、他のプロセッサに引継ぐことを特徴とする請求項1記載のマルチプロセッサシステムの障害回復方法。
【請求項3】
前記障害処理で使用する優先情報を動的に変更することで、障害処理時の優先度をプロセッサ単位ではなく、プロセスが実行する処理単位に割当て、動的に優先度を変更することを特徴とするマルチプロセッサシステムの障害回復方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate