(57)【要約】【課題】本発明の課題はマルチプロセッサシステムでＡＰがない状態であっても、障害の発生したＩＰが実行する処理の優先度が高いならば、優先度の低い処理を実行するＩＰに対して動的ＩＰ交代を実施し、優先度の高い処理を保証することにある。【解決手段】複数の処理装置と、前記複数の処理装置に共有される主記憶装置とを有するマルチプロセッサシステムの障害回復方法において、構成内に交代用のプロセッサが存在しない場合であっても、各プロセッサが実行する処理の優先度を保持することによって、より優先度の高い処理を実行するプロセッサをシステムに残す処理を特徴とするマルチプロセッサシステムの障害回復方法。【選択図】図１
2013097634.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理装置と、前記複数の処理装置に共有される主記憶装置とを有するマルチプロセッサシステムの障害回復方法において、構成内に交代用のプロセッサが存在しない場合であっても、各プロセッサが実行する処理の優先度を前記主記憶装置内に保持することによって、より優先度の高い処理を実行するプロセッサをシステムに残す処理を特徴とするマルチプロセッサシステムの障害回復方法。
【請求項２】
前記障害処理が障害を検出した場合、前記障害が発生し、障害プロセッサが実施していた処理を、システム内の優先度の低い処理を実行するプロセッサに引継ぐ際に、優先度の低い処理を実行するプロセッサが実行していた状態を格納し、他のプロセッサに引継ぐことを特徴とする請求項１記載のマルチプロセッサシステムの障害回復方法。
【請求項３】
前記障害処理で使用する優先情報を動的に変更することで、障害処理時の優先度をプロセッサ単位ではなく、プロセスが実行する処理単位に割当て、動的に優先度を変更することを特徴とするマルチプロセッサシステムの障害回復方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサシステムの障害回復方法に係り、特に、プロセッサ単体障害の障害回復方法に関する。
【背景技術】
【０００２】
本技術分野の背景技術として、米国特許  Patent No.: US 6,189,112 B1（特許文献１）がある。この公報には、「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.  (以下、訳  我々の発明は、チェックストップしたプロセッサのマイクロアーキテクチャでの状態をシステム内の予備プロセッサに転送することを可能とする仕組みを提供する。この転送は、ミリコードによってのみ使用可能な、プロセッサ内に組み込まれたハードウェア命令を使用するシステムによって達成される。
更に、この転送は、ライセンスされた内部コード（ＬＩＣ）の処理により、開始され管理される。このコードは、外部のサービスエレメント（ＳＥ）で動作するほか、各プロセッサ上ではミリコードとして動作する。)」と記載されている。
【０００３】
また、特開平１−１３３１７１号公報（特許文献２）がある。この公報には、「ある処理装置で固定障害が発生した時、チェックポイントを保証して、割込みを他の正常な処理装置で行わせるため、固定障害の回復が容易に可能となる。」と記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許  Patent No.: US 6,189,112 B1
【特許文献２】特開平１−１３３１７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
情報処理装置において、障害が発生した場合の回復方法としては、命令単位に再実行する方法や、一定のチェックポイントに戻って再実行する方法が知られている。これは、いずれも間欠障害の回復を行うことを目的としており、障害が発生した時、障害発生時に実行中であった処理を再実行することにより障害の回復を行う。
【０００６】
一方、固定障害が発生した場合、上記方法では障害を回復することができない。情報処理装置において固定障害が発生し、障害回復に失敗した場合、一般に障害回復失敗の割込みを発生させる。例えば、回復不可能な障害が発生したことをマシンチェック割込みにより知らせる。
【０００７】
回復不可能な障害が発生した時のマシンチェック割込みには、次に示す２種類がある。
（１）回復不能な障害が発生したが、障害発生前の状態に戻っており、割込みポイントの状態が保証されている。
（２）回復不能な障害が発生し、割込みポイントの状態は保証されない。
【０００８】
（１）の状態のマシンチェック割込みをＰＤ・Ｂ（プロセッサダメージ・バックアップ）と呼び、（２）の状態のマシンチェックをＰＤ（プロセッサダメージ）と呼ぶ。この２つの状態の差を、図３を用いて説明する。図３は、命令Ａ→Ｂ→Ｃ→Ｄの順に命令が実行されるプログラムである。今、命令Ｃの実行中に障害が発生したとする。この時、ＰＤ・Ｂのマシンチェック割込みが発生したとすると、命令処理装置の状態は、命令Ｃの実行前の状態（障害発生直前のチェックポイントの状態）が保証されている。すなわち、割込みを受け付けた後、再度、命令Ｃから命令を再実行すれば、プログラムは正常に実行を続けることができる。一方、ＰＤのマシンチェック割込みが発生した場合には、命令処理装置は、命令Ｃにより内部状態が変更されてしまっているか、あるいは、されていないかの切り分けが不可能な状態にある。
【０００９】
マシンチェック割込みを受け付けると、制御プログラムは、次のような処理を試みる。
【００１０】
（１）ＰＤ・Ｂのとき、割込みポイントからの処理を再実行しようと試みる。再実行が成功すれば、障害の回復が成功することになる。
【００１１】
（２）ＰＤのとき、実行中の処理を異常終了させる。
【００１２】
ところで、固定障害が発生し、ハードウェアにより再実行が失敗した場合、マシンチェック割込みにより、制御プログラムに報告を行うが、報告を受け、処理の続行あるいは異常終了処理を行うのは、障害を起こした命令処理装置であり、再度障害を起こす可能性が高い。このような場合、障害は制御プログラムの障害処理部分または中核部分で発生することになり、システムダウンとなる可能性が高い。
【００１３】
このようなシステムダウンを防止するため、マルチプロセッサシステムでは、障害が発生した処理装置で行っていた処理を、他の正常な処理装置で引継いで再実行するという手法がとられる。この機能を実現するため、システムはＯＳやユーザプログラムを実行する命令プロセッサ（ＩＰ）以外に、ＩＰに障害が発生した際に処理の引継ぐ交代プロセッサ（ＡＰ）を搭載する。この引継ぎにより、それまでＡＰとして待機していたプロセッサがＩＰとして動作することとなる。
【００１４】
このような引継ぎを動的ＩＰ交代と呼ぶ。動的ＩＰ交代は障害処理の多くの部分をハードウェアが実施するので、高速に処理できるというメリットがある。また、システム内に動作可能なＡＰが存在する限り、何度でも実施することができる。
【００１５】
しかしながら、動的ＩＰ交代が行われるたびにシステム内のＡＰが１台ずつ使用されるため、障害が複数回発生しシステムに搭載した全てのＡＰを使用し尽くしてしまうと、当該システムは動的ＩＰ交代実施不可となる。このため、動的ＩＰ交代が行われたシステムは、できるだけ速やかに停止し、保守作業にて、故障のないプロセッサに交換することが望ましい。しかしながら、このようなマルチプロセッサシステムは、複数のユーザが共同使用している場合が多く、保守作業を実施する際には全てのユーザがシステムを停止しても問題のない時間を確保する必要がある。このような保守作業のための時間は、必ずしも確保できるとは限らず、場合によってはシステム内のＡＰを使用し尽くしてしまうことが考えられる。
【００１６】
このようにＡＰを使用し尽した状態でＰＤ・Ｂの障害が発生した場合、動的ＩＰ交代とは別に、プロセスサクセションと呼ばれる障害処理が用意されている。プロセスサクセションとは、障害が発生する前の所定の時点（チェックポイント）のＩＰの内部状態を主記憶に待避した後、他のＩＰに対し誤動作警報外部割込みを発生させる処理を指す。誤動作警報外部割込みを受けたＩＰは、診断命令を発行し、主記憶に待避された障害ＩＰの内部状態を取得することが可能である。これにより、他のＩＰは、必要に応じて障害ＩＰの処理を引き継ぐことができる。
【００１７】
プロセスサクセションは、ＡＰが存在しないシステムでも処理を引継ぐことができるが、システムからは動作可能なＩＰが１台減るため、システム全体の処理能力の低下は避けられない。また、引継ぎはＯＳ等のソフトウェアが主体になって行うため、動的ＩＰ交代より時間を要する。更に、引継がれた処理は基本的に他のＩＰの空き時間で処理されることになるので、通常より処理時間を要する可能性がある。
【００１８】
以上、述べたとおり、既存のシステムではＩＰにＰＤ・Ｂの固定障害が発生したとき、システムに動作可能なＡＰが存在する場合は動的ＩＰ交代を実施し、動作可能なＡＰが存在しない場合はプロセスサクセションを実施する。既存のシステムでは、システムに動作可能なＡＰが存在しない状態で、ＩＰにＰＤ・Ｂの固定障害が障害が発生した場合、そのＩＰがたとえ優先度の高い処理をしていたとしても、動的ＩＰ交代は実施されずにプロセスサクセションとなる。プロセスサクセションは、障害処理に要する時間およびその後の計算機の処理速度が保証されないため、場合によっては障害処理後にＯＳやユーザプログラムにてタイムアウトを検出したり、処理の遅れが発生しうる。
【００１９】
本発明の目的はマルチプロセッサシステムでＡＰがない状態であっても、障害の発生したＩＰの処理の優先度が高いならば、優先度の低い処理を実行しているＩＰに対して動的ＩＰ交代を実施し、優先度の高い処理を保証することにある。
【課題を解決するための手段】
【００２０】
上記課題を解決するために、例えば特許請求の範囲に記載の方法を採用する。
【００２１】
本発明は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、「複数の処理装置と、前記複数の処理装置に共有される主記憶装置とを有するマルチプロセッサシステムの障害回復方法において、構成内に交代用のプロセッサが存在しない場合であっても、各プロセッサが実行する処理の優先度を前記記憶装置内に保持することによって、より優先度の高い処理を実行するプロセッサをシステムに残す処理を特徴とするマルチプロセッサシステムの障害回復方法。」を特徴とする。
【発明の効果】
【００２２】
従来、マルチプロセッサシステムでは、障害が発生した処理装置で行っていた処理を、他の正常な処理装置で引継いで再実行するという手法がとられる。この機能を実現するため、システムはＯＳやユーザプログラムを実行する命令プロセッサ（ＩＰ）以外に、ＩＰに障害が発生した際に処理を引継ぐ交代プロセッサ（ＡＰ）を搭載する。この引継ぎ処理以降は、それまでＡＰとして動作していたプロセッサがＩＰとして動作することとなる。
【００２３】
このような引継ぎを動的ＩＰ交代と呼ぶが、動的ＩＰ交代が行われるたびにシステム内のＡＰが１台ずつ使用されるため、障害が複数回発生しシステムに搭載した全てのＡＰを使用し尽くしてしまうと、当該システムは動的ＩＰ交代実施不可となる。
【００２４】
本発明の目的はマルチプロセッサシステムでＡＰがない状態であっても、障害の発生したＩＰが実行する処理の優先度が高いならば、優先度の低い処理を実行するＩＰに対して動的ＩＰ交代を実施し、優先度の高い処理を保証することにある。
【図面の簡単な説明】
【００２５】
【図１】本発明の一実施例のマルチプロセッサシステムのブロック図。
【図２】処理装置のチェックポイント保証手段の構成例を示す図。
【図３】チェックポイントを説明する図。
【図４】構成情報テーブルの例を示す図。
【図５】実際に処理装置に固定障害が発生した際の構成の移り変わりを示す図。
【図６】図５の各時点での構成情報テーブルの内容を示す図。
【図７】図５(c)で障害が発生した際の動的ＩＰ交代情報の内容を示す図。
【発明を実施するための形態】
【００２６】
以下、実施例を図面を用いて説明する。
【実施例１】
【００２７】
図１は、本発明の一実施例のマルチプロセッサシステムのブロック図である。ここで、本マルチプロセッサシステムは、プロセッサ・ユニット（ＰＵ）１、２、３、主記憶装置（ＭＳ）５、サービスプロセッサ（ＳＶＰ）６、システム制御装置（ＳＣ）７で構成されているとしている。ＰＵ１、２、３はいずれも同じ構成であり、命令実行部１１１、１２１、１３１、割込み制御部１１２、１２２、１３２、障害検出部１１３、１２３、１３３を備えている。図１では４台目以降のＰＵの記述を省略しているが、これらについてもＰＵ１、２、３と同じ構成となっている。後述するＰＵから他の部位への結線についても、４台目以降のＰＵについては省略しているが、ＰＵ１、２、３、と同様用の結線となっている。ＳＣ７は記憶制御部１６、障害処理部１７、ＳＶＰ接続部１８からなる。
【００２８】
ＰＵ１、２、３の命令実行部１１１、１２１、１３１は信号線２０、２３、２６を介して、ＳＣ７の記憶制御部１６に接続され、該記憶制御部１６の制御の下でＭＳ５をアクセス可能な構成となっている。障害検出部１１３、１２３、１３３は自ＰＵ内の障害を検出して、その結果を信号線２１、２４、２７を介して、ＳＣ７の障害処理部１７に報告する。ＳＣ７の障害処理部１７は、ＰＵの固定障害時、信号線２２、２５、２８を介し、正常なＰＵ１、２、３の割込み制御部１１２、１２２、１３２に割込み指示を出すことが可能であり、また、信号線３５、記憶制御部１６を介してＭＳ５へアクセス可能である。
【００２９】
ＳＶＰ６は信号線３８を介してＳＣ７のＳＶＰ接続部１８と接続する。ＳＶＰ接続部１８はＰＵ１、２、３とそれぞれ信号線３２、３３、３４で接続し、さらに信号線３６を介してＳＣ７内の障害処理部１７と、また信号線３９を介してＳＣ７内の記憶制御部１６と接続する。ＳＶＰはシステム全体の管理を行っており、例えば起動時におけるＰＵ１、２、３、ＳＣ７、ＭＳ５の初期設定を行う。
【００３０】
ＰＵ１、２、３の命令実行部１１１、１２１、１３１は、障害発生時、当該ＰＵの状態を障害発生前のある時点（チェックポイント）の状態へ戻すチェックポイント保証手段を有している。図２にその具体的構成例を示す。図２はＰＵ１のチェックポイント保証手段を示したものであるが、ＰＵ２、３についても同様である。
【００３１】
図２において、レジスタ４０は信号線２０−１を介して、ＳＣ７の記憶制御部１６経由でＭＳ５に存在するデータがセットされるものである。レジスタ群４４は、命令により参照可能な汎用レジスタ群である。このレジスタ群４４のデータは、信号線５４を介してレジスタ４１にセットされる。レジスタ４０、４１の内容は、演算機（ＡＬＵ）４２で演算を行った後、その結果は、再びレジスタ群４４に書込まれたり、信号線２０−２を介し、ＳＣ７の記憶制御部１６により、ＭＳ５へ書込まれたりする。待避レジスタ４５は、レジスタ４１の内容を、命令実行ごとに待避するものであり、レジスタ群４４の書込み前（演算実行前）の内容が順に待避されている。
【００３２】
次に、障害処理で使用する構成情報テーブルについて図４を用いて説明する。構成情報テーブルには、システムに存在するＰＵの状態が定義されており、ＭＳ５に格納されている。該テーブルには、ＰＵごとに、論理ＰＵ番号、物理ＰＵ番号、属性、動作可否、プロセスサクセション可否、優先度の各情報を保持している。
【００３３】
マルチプロセッサシステムではＰＵが複数存在するため、それぞれのＰＵに固有の番号をつけて識別を行う。この番号には物理ＰＵ番号と論理ＰＵ番号の２種が存在する。物理ＰＵ番号は物理的な構成によって決定し、主にハードウェアがＰＵを識別する際に使用する。物理ＰＵ番号は固定番号であり、その後変わることはない。これに対し論理ＰＵ番号は、主にＯＳやユーザプログラムがＰＵを識別する際に使用する。論理ＰＵ番号は、構成変更等により変更可能である。物理ＰＵ番号および論理ＰＵ番号のいずれもＰＵを識別することが目的であるので、システムで一意に割り当てる必要がある。（つまり、とあるＰＵに割り当てられた物理ＰＵ番号と同一の番号は、他のＰＵの物理ＰＵ番号には存在しない。論理ＰＵ番号も同様。）また、物理ＰＵ番号と論理ＰＵ番号は、番号付けに関連性は無く、個々のＰＵに着目した場合、そのＰＵの物理ＰＵ番号と論理ＰＵ番号は一致することもあれば、一致しないこともある。
【００３４】
属性は、当該ＰＵの役割がＩＰ、ＡＰのいずれであるかを示す。動作可否は、当該ＰＵが動作可能か障害が発生し停止しているかを示す。プロセスサクセション可否は、当該ＰＵがプロセスサクセション可能な状態であるか否かを示す。優先度は、システムに動作可能なＡＰがない状態でＰＵに固定障害発生した場合のみ参照される領域で、この内容を元に障害が発生したＰＵ（ＩＰ）が、他のＰＵ（ＩＰ）を奪い取ってでも動的ＩＰ交代をすべきであるか否かを判定する。
【００３５】
本実施例では構成情報テーブルを論理ＰＵ番号順に並べているが、物理ＰＵ番号順に並べてもよい。論理ＰＵ番号順であっても物理ＰＵ番号順であってもＰＵの管理を行えることは自明である。このため、本実施例では論理ＰＵ番号で管理する方法のみ記載する。
【００３６】
構成情報テーブルの初期値は、システム起動時にＳＶＰ６から信号線３８を介してＳＣ７内のＳＶＰ接続部１８、更に信号線３２を通ってＰＵ１に送られる構成情報を元に作成され、ＭＳ５に格納される。なお、本実施例では初期値の作成をＰＵ１が実施するが、システム起動時にＳＶＰ６が初期値の作成を行うＰＵを指定してもよい。
【００３７】
実際にＰＵに障害が発生し障害処理が実施される様子を図５に示す。この図では、１システムに４台のＰＵが存在する例を示している。(a)は起動直後の構成を示している。この図でＰＵ１〜ＰＵ４は物理ＰＵ番号を、ＩＰ、ＡＰは各ＰＵの属性を、括弧の中の数字は論理ＰＵ番号を示し、優先度は各ＰＵが実行する処理の優先度を示す。本実施例では優先度の数字の小さい方が、優先度が高いものとしている。図に示すとおりＰＵ１〜ＰＵ３はＩＰ、ＰＵ４はＡＣに割り当てられている。また、優先度は、ＰＵ１が２、ＰＵ２が１、ＰＵ３が３、ＰＵ４が４となっている。
【００３８】
この時の構成情報テーブルの内容を図６(a)に示す。図５(a)に示す内容と同等の内容が該テーブルに表現されている。図６ではプロセスサクセション可否を省略しているが、実際には図４に示すようにこの情報も存在する。
【００３９】
今、図５(a)の構成で、ＰＵ２にＰＤ・Ｂの固定障害が発生したとする。(a)の構成にはシステムに動作可能なＡＰが存在するので、ハードウェアおよび制御プログラムは、動的ＩＰ交代を行う。これにより、障害が発生するまでは論理ＰＵ番号２のＩＰとして動作していたＰＵ２の内部情報がＰＵ４に引き継がれ、以降ＰＵ４が論理ＰＵ番号２のＩＰとして動作する。
【００４０】
動的ＩＰ交代により、構成は図５(b)に示すとおりとなり、構成情報テーブルは図６(b)に示すとおりとなる。図６(a)と比較すると、論理ＰＵ番号２および論理ＰＵ番号４のそれぞれに対応する物理ＰＵ番号が入れ替わっている。また、物理ＰＵ番号２は障害が発生しているので、動作不可となっている。属性および優先度はＯＳやユーザプログラムからみたプロセッサ、すなわち論理ＰＵ番号ごとに決定するので、入れ替えは行われない。
【００４１】
以上は既存の動的ＩＰ交代処理であり、何ら新しい処理はない。唯一構成情報テーブルに優先度が追加されている点が異なるが、通常の動的ＩＰ交代処理においては、この情報を更新する必要はない。ただし、これは実施例に示す構成情報テーブルが、論理ＰＵ番号順に登録されているからであり、構成情報テーブルが物理ＰＵ番号順に登録されている場合には、論理ＰＵ番号の入れ替えと同時に属性および優先度の入れ替えを行う必要がある。
【００４２】
動的ＩＰ交代が完了し、図５(b)の構成でシステムを運用し続けたところ、ＰＵ１にも別のＰＤ・Ｂとなる固定障害が発生したとする(図５(c))。この場合、システムに動作可能なＡＰが存在しないので、既存のシステムでは動的ＩＰ交代処理を行うことができない。代わりに可能ならばプロセスサクセションにて他のＰＵ（ＩＰ）に処理を引継ぐこととなる。これに対し、本実施例では、各ＰＵの実行する処理の優先度を考慮して動的ＩＰ交代を実施することができる。具体的には、障害が発生したＰＵ１は属性がＩＰ、論理ＰＵ番号が１、優先度が２であるので、システム内でもっとも優先度の低い３が設定されているＰＵ３（論理ＰＵ番号が３、属性がＩＰのＰＵ）に対して動的ＩＰ交代を実施する。この処理により、ＰＵ３（論理ＰＵ番号が３、属性がＩＰのＰＵ）が代わりにチェックストップすることとなるが、可能であるならばプロセスサクセションを実施し、システムに残ったＰＵ（ＩＰ）に処理を引き継ぐ。以下に具体的な動作を示す。
【００４３】
ＰＵ１で障害が発生すると、ＰＵ１の障害検出部１１３からＳＣ７の障害処理部１７に障害を報告する。障害処理部１７は、障害種別の判定を行い、固定障害と判定すると、システム内の動作可能な全ＰＵに対してチェックストップ処理を実施するよう割込みを発生させる。この割り込みでは、障害が発生したＰＵの物理ＰＵ番号も通知される。
【００４４】
今回の例では、本現象発生時に動作可能なＰＵはＰＵ３およびＰＵ４なので、これらのＰＵの制御プログラムにてチェックストップ処理を実施する。それぞれのＰＵは、まず構成情報テーブルの更新を行う。具体的には自ＰＵが現時点でプロセスサクセション可能な状態か否かを確認し、確認した内容を構成情報テーブルにある自ＰＵのプロセスサクセション可否に反映する。
【００４５】
次に各ＰＵは、障害処理ＰＵの選出を行う。障害処理は、システムの不整合を防ぐために１台のＰＵ１台で処理を進めるのがよい。本実施例では、システムの中で最初にチェックストップ処理を実施したプロセッサを障害処理ＰＵとして選出する。今回はＰＵ４が最初にチェックストップ処理を実施し、障害処理ＰＵとして選出されるケースを考える。このＰＵの選出方法はシステムを構成するＰＵで一貫していれば、何でもよく、例えば論理ＰＵ番号や物理ＰＵ番号を元に選出してもよい。障害処理ＰＵとして選出されたＰＵ４は、以降障害処理を実施する。障害処理ＰＵとして算出されなかったＰＵ３は、ＰＵ４の障害処理が完了するまで待ちとなる。
【００４６】
障害処理ＰＵとして選出されたＰＵ４は、障害が発生したＰＵ１の属性を確認する。図６(c)の構成情報テーブルを参照すると、ＰＵ１（論理ＰＵ番号１）は、ＩＰであると分かる。このため、可能であるならば動的ＩＰ交代を実施すべきと判断する。次にＰＵ１のチェックポイントが保証されているか否かを判定する。今回の障害はＰＤ・Ｂ障害なのでチェックポイントが保証されており、動的ＩＰ交代が可能な障害と判断する。続いてシステム内に動作可能なＡＰが存在するか否かを判定する。図６(c)の構成情報テーブルを確認すると、動作可能なＡＰは存在しないことが分かる。このため、通常の動的ＩＰ交代は実施不可と判断する。なお、この時点での構成情報テーブルは、ＰＵ１の障害が動作可否に反映されておらず、動作可能となっているが、既に障害が発生し動作不可となっていることが前記割り込みにて通知されているので、判定の対象外とする。
【００４７】
次に、障害が発生したＰＵ１（属性はＩＰ）よりも優先度の低い処理を実行するＩＰが存在するか確認する。図６(c)の構成情報テーブルより、障害が発生したＰＵ１が実行する処理の優先度は２と分かる。また、ＰＵ１を除く動作可能な全ＩＰに対して優先度を確認し、その中で優先度の最も低い（数字が最も大きい）ものを検索すると、論理ＰＵ番号３として使用しているＰＵ３が実行する処理の優先度が３でもっとも低いことが分かる。
これは障害が発生したＰＵ１が実行する処理の優先度の値である２よりも低いので、動的ＩＰ交代を実施可能と判断する。なお、今回は優先度のもっとも低い処理を実行しているＰＵがシステムに１台のみ存在するが、２台以上存在する場合は、構成情報テーブルに記録されているプロセスサクセション可否がＹｅｓとなっているものを優先的に選択するとよい。
【００４８】
障害処理ＰＵ４は、障害の発生したＰＵ１が動的ＩＰ交代が可能であると判断したため、ＰＵ１の内部状態をＭＳ５に待避する。待避した情報は、後続の処理で交代先のＰＵ３に引き継ぐこととなる。
【００４９】
障害処理ＰＵ４は、これまでの判定結果を構成情報テーブルに反映し、障害処理後の構成情報とするが、これにより、動的ＩＰ交代前の情報が上書きされることとなるので、後続の処理で必要となる情報を動的ＩＰ交代情報として記録しておく。動的ＩＰ交代情報は図７に示すように、動的ＩＰ交代実施前の障害ＰＵ１の論理ＰＵ番号、物理ＰＵ番号、属性、プロセスサクセション可否および、交代先ＰＵの有効フラグ、論理ＰＵ番号、物理ＰＵ番号、属性、プロセスサクセション可否である。これらの情報は、障害処理ＰＵ４がＭＳ５に格納する。このうち交代先ＰＵの有効フラグは、動的ＩＰ交代の実施可否を示す。
具体的には動的ＩＰ交代が可能な障害が発生し、更に交代先ＰＵ（ＡＰもしくは優先度の低い処理を実行しているＩＰ）が存在する場合にＹｅｓとし、それ以外の場合にＮｏとする。
【００５０】
次に、障害処理ＰＵ４は、これまでの判定結果を構成情報テーブルに反映し、傷害処理後の構成情報とする。更新後の構成情報テーブルは、図６(d)に示すとおりとなる。図６(c)からの違いは、論理ＰＵ番号１および論理ＰＵ番号３の物理ＰＵ番号が入れ替わっている点と、ＰＵ１が動作不可となっている点である。属性および優先度は論理ＰＵ番号に対応するので、入れ替えは行わない。これは前述した通常の動的ＩＰ交代と同様の考え方である。構成情報テーブルを本実施例で示した論理ＰＵ番号順ではなく、物理ＰＵ番号順としている場合には、論理ＰＵ番号と同時に属性および優先度の入れ替えを行う必要がある。以上で、障害処理ＰＵ４は、障害ＰＵ１の内部状態の待避、動的ＩＰ交代情報の格納、および構成情報テーブルの更新処理を完了したので、障害処理ＰＵ４からＳＣ７を経由してＰＵ３へ障害処理ＰＵ４の処理が完了したことを意味する割込みを発生させる。処理完了を意味する割り込みを受けたＰＵ３の動作は後述する。
【００５１】
次に、ＰＵ４は、動的ＩＰ交代情報の確認を行う。まず、交代先ＰＵ３の有効フラグがＹｅｓであることから、障害ＰＵ１は動的ＩＰ交代にて交代先ＰＵ３へ処理が引き継がれることが分かる。また、交代先ＰＵ３の物理ＰＵ番号が３であり、自ＰＵ１の物理ＰＵ番号である１と不一致となるため、当該ＰＵは交代先ＰＵでないことが分かる。更に交代先ＰＵ３の属性がＩＰであることから、障害処理前のＰＵ３（論理ＰＵ番号が３、属性がＩＰのＰＵ）がチェックストップすることに伴う誤動作警報割込みを発生させる必要があることが分かる。このため、自ＰＵ４を誤動作警報割込み保留状態とする。この状態になっていると、制御プログラムによるチェックストップ処理が完了した際に、誤動作警報割込みが発生する。自ＰＵ４にて誤動作警報割込みが発生した以降の処理は後述する。
【００５２】
障害処理ＰＵ４から処理完了を意味する割り込みを受けたＰＵ３では、割込みを契機に後続の処理に進む。次の処理では、動的ＩＰ交代情報の確認を行う。まず、交代先ＰＵ３の有効フラグがＹｅｓであることから、障害ＰＵ４は動的ＩＰ交代にて交代先ＰＵ３へ処理が引き継がれることが分かる。また、交代先ＰＵの物理ＰＵ番号が３であり、自ＰＵ３の物理ＰＵ番号である３と一致するため、自ＰＵ３が交代先であることが分かる。更に交代先ＰＵの属性がＩＰであることから、障害処理前のＰＵ３（論理ＰＵ番号が３、属性がＩＰのＰＵ）がチェックストップすることに伴う誤動作警報割込みを発生させる必要があることが分かる。また、チェックストップとなるＰＵ３（論理ＰＵ番号が３、属性がＩＰのＰＵ）は、動的ＩＰ交代情報に格納されている交代先ＰＵのプロセスサクセション可否フラグがＹｅｓであることから、プロセスサクセション可能であることが分かる。
【００５３】
前記の処理でＰＵ３（論理ＰＵ番号が３、属性がＩＰのＰＵ）がプロセスサクセション可能であることが分かったので、次に、プロセスサクセション可否フラグとともにＰＵ３の現時点の内部状態および論理ＰＵ番号３をＭＳ５に待避する。この時に待避する論理ＰＵ番号は、既に更新されている構成情報テーブルに格納したものではなく、動的ＩＰ情報の交代先ＰＵに格納したものとする。
【００５４】
また、障害処理前のＰＵ３（論理ＰＵ番号が３、属性がＩＰのＰＵ）がチェックストップすることに伴う誤動作警報外部割込みを自ＰＵ３に発生させるために、自ＰＵ３を誤動作警報外部割込み保留状態とする。この状態になっていると、制御プログラムによるチェックストップ処理が完了した際に、誤動作警報割込みが発生する。自ＰＵ３にて誤動作警報割込みが発生した以降の処理は後述する。
【００５５】
次に、ＰＵ３は、動的ＩＰ交代先として選出され、さらにその処理が無事完了したことを示す、ＰＤ・Ｂ割込みの要因を設定する。その後、前記の処理でＭＳ５に待避したＰＵ１の内部状態を取り込むことで、動的ＩＰ交代を実施する。以降、ＰＵ３は論理ＰＵ番号１のＩＰとして動作する。ＰＵ３の障害処理のうち、ハードウェアおよび制御プログラムが実施する分は以上で完了となる。
【００５６】
ハードウェアおよび制御プログラムによる障害処理が完了すると、システム内のＰＵではそれぞれのＰＵに応じた割込みが発生する。この割込みは、論理分割を実施していないシステムではＯＳが受付け、論理分割を実施しているシステム（すなわちＬＰＡＲ）では論理分割を行うプログラムが受付ける。今回の例では単純化のため、ＯＳがこれらの割込みを受付けるものとしている。この処理はＯＳの実装次第であるので、その一例を挙げている。
【００５７】
ＰＵ４では、保留していた誤動作警報外部割込み要因が受付けられ、対応する割込み処理がＯＳにて実施される。誤動作警報外部割込みには、チェックストップが発生したＰＵの論理ＰＵ番号が含まれる。誤動作警報外部割込みを受けたＯＳはまず、ＯＳ内で管理する構成情報を確認する。この結果、論理ＰＵ番号３のＩＰがチェックストップした結果が未反映であるため、これを反映される。次に、ＰＵ３（論理ＰＵ番号３のＩＰ）のプロセスサクセション可否フラグおよび内部状態を取得する。この内容より今回はプロセスサクセションが可能であることが分かる。このため、障害処理前のＰＵ３（論理ＰＵ番号３のＩＰ）が実施していた処理を可能な分だけ引き継ぐ。障害処理前のＰＵ３（論理ＰＵ番号３のＩＰ）に割り当てられていた資源と障害処理後の自ＰＵ４（論理ＰＵ番号１のＩＰ）に割り当てられている資源は必ずしも一致するとは限らないので、全ての処理が引き継げる訳ではなく、引継ぎ可能なもののみ選択して引継ぎが行われる。これらの選択や引継ぎはＯＳによって実施される。
【００５８】
ＰＵ３では、ＰＤ・Ｂ割込み要因がまず受付けられ、対応する割込み処理がＯＳにて実施される。ＯＳではまず、ＰＤ・Ｂ割込みを受けＯＳ内で管理する構成情報に動的ＩＰ交代の結果が反映される。ＰＤ・Ｂの処理が完了すると、次に誤動作警報外部割込み要因が受付けられ、対応する割込み処理がＯＳにて実施される。ＯＳでは、ＯＳ内の構成情報を確認し、論理ＰＵ番号３のＩＰがチェックストップした結果が反映済みであるため、更新は行わない。次に、ＰＵ３（論理ＰＵ番号３のＩＰ）のプロセスサクセション可否フラグおよび内部状態を取得する。この内容により今回はプロセスサクセションが可能であることが分かる。このため、障害発生直前のＰＵ３（論理ＰＵ番号３のＩＰ）が実施していた処理を可能な分だけ引き継ぐ。障害発生直前のＰＵ３（論理ＰＵ番号３のＩＰ）に割り当てられていた資源と障害処理後のＰＵ３（論理ＰＵ番号１のＩＰ）に割り当てられている資源は必ずしも一致するとは限らないので、全ての処理が引き継げる訳ではなく、引継ぎ可能なもののみ選択して引継ぎが行われる。これらの選択や引継ぎはＯＳによって実施される。
【００５９】
以上の説明から明らかな如く、本発明によれば、マルチプロセッサシステムにおいて、あるＰＵでＰＤ・Ｂとなる固定障害が発生した時、システム内に動作可能なＡＰがない状態では通常動的ＩＰ交代不可となるところ、システム内の各ＩＰが実行する処理の優先度を考慮して動的ＩＰ交代を実施し、代わりに優先度の低い処理を実行するＰＵをチェックストップとすることができる。この場合、チェックストップとなったＰＵの処理も、可能である限りプロセスサクセションにて他のＰＵへ処理を引き継ぎ可能である。これらの手段により、システム内で優先度の高い処理を実行するＰＵをできるだけ残すことが可能となる。
【００６０】
本発明は、従来から存在するＡＰを搭載したシステムにも有効であるし、従来ＡＰを必須としていた装置においてＡＰをＩＰとして使用することで、資源の有効活用を図ることもできる。ただし、後者の場合は、システムにＡＰが存在しないので、優先度の低い処理を実行するＩＰは、最初にチェックストップ状態となる点に注意する必要がある。
【実施例２】
【００６１】
本実施例では、各ＰＵが実行する処理の優先度を静的に設定するだけでなく、動的に設定できる方法を説明する。
【００６２】
基本的なハードウェアの構成は図１および図２に示すものと同一でよく、構成情報テーブルおよび動的ＩＰ交代情報もそれぞれ図４および図７に示すものと同一でよい。
【００６３】
実施例２では、ＯＳもしくは論理分割を行うプログラムが実施する処理に応じて、各ＰＵが実行する処理の優先度を変更することが可能となる。このため、ＯＳもしくは論理分割を行うプログラムが実施する処理ごとに優先度をあらかじめ決めておく。ＯＳもしくは論理分割を行うプログラムは優先度が異なる処理を実施するたびに専用の命令を実施し、優先度の変更をハードウェアに通知する。専用の命令には、例えば診断命令が使用可能である。
【００６４】
実施例２では、初期値の設定を省略する方法も考えられるが、システムの安定性を考慮すると、実施例１と同様にシステム起動時の初期設定を行うことが望ましい。
【００６５】
本実施例によれば、ＩＰが実行する処理の優先度を動的に変更することができる。
【符号の説明】
【００６６】
１、２、３…命令処理装置、５…主記憶装置、６…サービスプロセッサ、７…システム制御装置、１１１、１２１、１３１…命令実行部、１１２、１２２、１３２…割込み制御部、１１３、１２３、１３３…障害検出部、１６…記憶制御部、１７…障害処理部、１８…ＳＶＰ接続部、４０、４１、４３…レジスタ、４２…演算器、４４…レジスタ群、４５…待避レジスタ。
【図１】
2013097634.tif 000003
【図２】
2013097634.tif 000004
【図３】
2013097634.tif 000005
【図４】
2013097634.tif 000006
【図５】
2013097634.tif 000007
【図６】
2013097634.tif 000008
【図７】
2013097634.tif 000009