(57)【要約】【課題】任意のプロセッサの故障を他のプロセッサが適時に適切に検知して、任意の処理を適切に代替することができるマルチプロセッサシステムの故障復帰方法を提供する。【解決手段】各プログラム格納メモリには各プロセッサが他のプロセッサの処理を代替する相補プログラムが格納され、各プロセッサは動作状況を動作状況情報格納メモリに書き込むと共に動作状況情報格納メモリに格納された動作状況を監視し、第ｎプロセッサの動作状況が障害内容を含む場合には正常動作している第ｍプロセッサが前記動作状況情報に従って前記相補プログラムを実行して第ｎプロセッサの処理を代替すると共に初期化手段が第ｎプロセッサを初期化し第ｎプロセッサの初期化終了後に第ｍプロセッサが前記動作状況情報に応じて処理を第ｎプロセッサに戻す。【選択図】  図１
2004310252.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサと、各プロセッサと固有バスで接続されたプログラム格納メモリと、各プロセッサと共通バスで接続された動作状況情報格納メモリと、各プロセッサと共通バスで接続された初期化手段と、ハードウエア資源と、各プロセッサとハードウエア資源を選択的に接続するバス切替手段とからなり、各プログラム格納メモリには各プロセッサが他のプロセッサの処理を代替する相補プログラムが格納され、各プロセッサは動作状況を動作状況情報格納メモリに書き込むと共に動作状況情報格納メモリに格納された動作状況を監視し、第ｎプロセッサの動作状況が障害内容を含む場合には正常動作している第ｍプロセッサが前記動作状況情報に従って前記相補プログラムを実行して第ｎプロセッサの処理を代替すると共に初期化手段が第ｎプロセッサを初期化し第ｎプロセッサの初期化終了後に第ｍプロセッサが前記動作状況情報に応じて処理を第ｎプロセッサに戻すことを特徴とするマルチプロセッサシステムの故障復帰方法。
【請求項２】
請求項１記載のマルチプロセッサシステムにおいて、相補プログラムが各プロセッサの処理能力に応じて異なることを特徴とするマルチプロセッサシステムの故障復帰方法。
【請求項３】
請求項１または請求項２のいずれか１項記載のマルチプロセッサシステムにおいて、各プロセッサが動作状況情報に応じて相補プログラムに制限を設けることを特徴とするマルチプロセッサシステムの故障復帰方法。
【請求項４】
請求項１から請求項３のいずれか１項記載のマルチプロセッサシステムにおいて、相補プログラムがアプリケーションプログラムとハードウエア制御プログラムとオペレーティングシステムから構成されることを特徴とするマルチプロセッサシステムの故障復帰方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はマルチプロセッサシステムの故障復帰方法に関する。
【０００２】
【従来の技術】
従来、マルチプロセッサシステムの故障復帰方法としては、例えば特許文献１に開示されているように、マイクロプログラム制御の主プロセッサとマイクロプログラム制御の副プロセッサとを有し、主プロセッサは主プロセッサ用のマイクロプログラムと副プロセッサを起動するマイクロプログラムとを格納する主制御記憶を有し、副プロセッサは主プロセッサによって起動されて副制御記憶に格納されるマイクロプログラムによる制御の下に処理を行いその結果を主プロセッサに報告するマルチプロセッサシステムであって、主プロセッサは主制御記憶中に副プロセッサの処理を代替するマイクロプログラムを備え、主プロセッサが副プロセッサから障害の報告があったとき副プロセッサを起動するマイクロプログラムが格納されている主制御記憶のアドレスを切り替えて代替マイクロプログラムを実行するようにしたことを特徴としたマルチプロセッサシステムがあった。上記のようにシステム内に処理を代替する手段を備えておいて、システムに故障が発生して或る処理が実行できなくなった場合でも、処理を代替することでシステムの機能を維持することができる。
【０００３】
【特許文献１】
特開平１−１０２６７４号公報
【０００４】
【発明が解決しようとする課題】
しかし従来の技術では解決されていない課題がある。先ず故障の検出方法だが、マルチプロセッサシステムでは、どのプロセッサが故障するかは予想できないので、特定のプロセッサの故障だけを想定した故障検出は不充分である。プロセッサ能力とプロセッサ上で実行されているプログラム規模によって故障の確率を推測することはできるが、プロセッサ能力が高くプログラム規模が大きい方が故障の確率は一般的に高い。しかし従来の技術では主プロセッサの故障を想定していない。また障害に関係している可能性のあるプロセッサは誤った処理をする可能性があるので、障害に関係しているプロセッサがその障害について報告するのは論理的に矛盾を含んでいる。
【０００５】
更に障害の報告タイミングにも考慮が必要である。すなわち障害発生と障害報告の時差が大きい場合には、故障復帰処理が適切に行われない可能性があるし、障害報告の内容が不充分、つまり複数の障害が発生した場合にどの障害を故障復帰処理の判断対象とするのかを考慮するための情報が欠如する可能性がある。
【０００６】
次に故障したプロセッサの処理の代替方法だが、上記故障の検出方法の課題と同様に、代替可能な処理が限定されていると、代替できない処理が存在して、故障の状況によっては故障からの復帰までシステムの機能が失われる。代替処理に処理速度制約があって、処理が遅くなって顧客に無駄な待ち時間を強いることも課題だった。
【０００７】
最後に故障からの復帰方法だが、従来の技術には明確な開示がない。故障からの復帰方法としてプロセッサの初期化があるが、初期化が終了するまでの期間、システムは機能を失うことになっていた。
【０００８】
【課題を解決するための手段】
この課題を解決するために本発明は、複数のプロセッサと、各プロセッサと固有バスで接続されたプログラム格納メモリと、各プロセッサと共通バスで接続された動作状況情報格納メモリと、各プロセッサと共通バスで接続された初期化手段と、ハードウエア資源と、各プロセッサとハードウエア資源を選択的に接続するバス切替手段とからなり、各プログラム格納メモリには各プロセッサが他のプロセッサの処理を代替する相補プログラムが格納され、各プロセッサは動作状況を動作状況情報格納メモリに書き込むと共に動作状況情報格納メモリに格納された動作状況を監視し、第ｎプロセッサの動作状況が障害内容を含む場合には正常動作している第ｍプロセッサが前記動作状況情報に従って前記相補プログラムを実行して第ｎプロセッサの処理を代替すると共に初期化手段が第ｎプロセッサを初期化し第ｎプロセッサの初期化終了後に第ｍプロセッサが前記動作状況情報に応じて処理を第ｎプロセッサに戻すことを特徴とするマルチプロセッサシステムの故障復帰方法を提供する。
【０００９】
【発明の実施の形態】
以下、本発明の実施の形態について、図１から図４を用いて説明する。
【００１０】
（実施の形態１）
図１は本発明の実施の形態１におけるマルチプロセッサシステムのブロック図を示し、図１において１はマルチプロセッサシステム、２は初期化手段、３は動作状況情報格納メモリ、４は共通バス、５はバス切替手段、６はハードウエア資源、７は第１プロセッサ、８は第１バス、９は第１メモリ、１０は第２プロセッサ、１１は第２バス、１２は第２メモリ、１３は第ｎプロセッサ、１４は第ｎバス、１５は第ｎメモリである。
【００１１】
以上のように構成されたマルチプロセッサシステムについて、以下、その動作を述べる。マルチプロセッサシステム１において、第１プロセッサ７は第１バス８を介して第１メモリ９に格納されているプログラムに従って動作する。同様に第２プロセッサ１０は第２バス１１を介して第２メモリ１２に格納されているプログラムに従って動作する。Ｎ個のプロセッサが存在する場合、第ｎプロセッサ１３は第ｎバス１４を介して第ｎメモリ１５に格納されているプログラムに従って動作する。図１には第１プロセッサ７、第２プロセッサ１０、第ｎプロセッサ１３が記述されているが、第ｎプロセッサ１３はＮ個のうち任意のプロセッサを示している。マルチプロセッサシステム１の通常動作時には、第ｎプロセッサ１３は定期的に共通バス４を介して動作状況情報格納メモリ３に動作状況を格納する。動作状況とは、ハードウエア資源６の制御レジスタ設定値、状態レジスタ値、割り込み要求状態、初期化履歴、故障履歴、初期化からの動作時間、認識されている動作時刻、メモリ使用状況、第ｎメモリ１５に格納されたアプリケーションプログラム２１の動作状態、ドライバプログラム２２の動作状態、オペレーティングシステム２３の動作状態で、通常動作時にはＮ個のプロセッサ毎に動作状況情報格納メモリ３上で動作状況が逐次更新される。また第ｎプロセッサ１３は定期的に動作状況情報格納メモリ３上の動作状況を監視して、動作状況の中に故障と見なされる状況を発見した場合には、故障の起きているプロセッサを限定し、バス切替手段５を制御して故障したプロセッサのバスをハードウエア資源６から切り離す。これによって故障したプロセッサはハードウエア資源６を制御できなくなると共にハードウエア資源６からの情報、例えば割り込み要求等を受けられなくなる。次に第ｎプロセッサ１３は初期化手段２を制御して故障したプロセッサを初期化する。図２に初期化手段の一例を示されている。第１プロセッサ７、第２プロセッサ１０、第ｎプロセッサ１３に対応して初期化手段２は第１初期化Ｆ／Ｆ１６、第２初期化Ｆ／Ｆ１７、第ｎ初期化Ｆ／Ｆ１８を備え、適当なプロセッサから故障したプロセッサに該当する初期化Ｆ／Ｆをセットすることで初期化信号がイネーブルされて該当するプロセッサが初期化される。故障とは、該当するプロセッサに関連するハードウエア及び該当するプロセッサのメモリに格納されているプログラムの異常を全て含む。またハードウエア資源６に故障が認められた場合も、該故障を認識したプロセッサの故障と見なす。第ｎプロセッサ１３は故障したプロセッサの初期化が行われている期間、該当するプロセッサが行うべきであった処理を第ｎメモリ１５に格納されている相補プログラムを実行して代替する。相補プログラムの一例は図４に示したように、アプリケーション２１、ドライバ２２、オペレーティングシステム２３から構成される。相補プログラムには故障時の動作状況の分析、次処理の予測、次処理の実行、故障したプロセッサの初期化の状況観察が含まれる。例えば、故障したプロセッサが処理Ａを実行中に故障した場合、第ｎプロセッサ１３は処理Ａが正常終了したかどうかを検証し、正常終了していないときには代替として処理Ａを再実行する。また処理Ａを起動してから故障までに時間の経過があり、処理Ａに続く処理Ａ＋１、Ａ＋２、Ａ＋ｎが必要であるにも関わらずそれらの処理が実行されていない場合には、誤動作を継続させないために処理Ａに関連する動作を停止させる場合もある。第ｎメモリ１５に格納された相補プログラムが故障したプロセッサの処理を網羅しているとは限らない。第ｎプロセッサの処理能力が故障したプロセッサの処理能力より低い場合には、処理を制限する。すなわち同じ処理速度で機能を落とすか、或いは同じ機能で処理速度を落とすかで制限する。例えば、故障時に実行していたアプリケーションが速度重視のアプリケーションであれば、相補プログラムは機能を劣化させても処理速度を維持し、見栄えや機能の多様性を重視したアプリケーションの場合には、速度を落としても全ての機能と表示を維持する。機能の劣化とは、例えば、グラフィックス描画機能に関して、複雑な図形を描く際に曲線を適当な数の直線で近似したり、任意の楕円を円で代替したり、点線や破線を直線で代替したり、カラー描画を白黒描画で代替したり、塗りつぶしを輪郭線だけで代替したり、任意の図形回転を回転角度限定で代替したり、優先順位の低い処理を無視することを意味する。他にも外部機器との通信速度を低速に設定したり、縮小拡大や符号化復号化等のデータの加工精度を低く設定したりすることも容易に類推される。動作状況情報格納メモリ３上の動作状況から現在の処理負荷を分析し、負荷に応じて相補プログラムの機能に制限を設けるなどして処理速度を維持することも容易に考えられる。第ｎプロセッサ１３が動作状況情報格納メモリ３の動作状況を監視して、故障したプロセッサの初期化が終了し正常動作を再開したことを知ると、バス切替手段５を使って、初期化終了したプロセッサのバスをハードウエア資源６に再接続する。初期化の後複数回の故障があった場合には、第ｎプロセッサが故障したプロセッサの処理を代替し続ける。
【００１２】
【発明の効果】
以上のように本発明によれば、マルチプロセッサシステムで各プロセッサが動作状況を定期的に共通バス上のメモリに格納し、各プロセッサが任意のプロセッサの動作状況を定期的に読み出して監視するので、任意をプロセッサの故障を適時に且つ適切に他のプロセッサが認識し、故障したプロセッサを初期化することができる。
【００１３】
また故障したプロセッサの処理を代替する場合、故障時の動作状況を把握したうえで処理を代替するので、未完了の処理が放置されたり、誤動作に帰直する可能性のある処理が続行されたり、処理手順に矛盾が生じることがなく、適切に代替することができる。
【００１４】
また故障したプロセッサは初期化が完了するまでバス切替手段でハードウエア資源から隔離されるので、故障したプロセッサがハード資源に影響を与えることを避け、システムの信頼性と安定性を確保できる。各プロセッサの相補プログラムはプロセッサの処理能力に応じて機能や規模を最適にするので、過分な処理能力のプロセッサを採用する必要がなく経済的である。
【００１５】
更にシステムにかかる負荷に応じて相補プログラムに機能制限ができるので、合理的である。
【図面の簡単な説明】
【図１】本発明の実施の形態１におけるマルチプロセッサシステムのブロック図
【図２】本発明の実施の形態１におけるマルチプロセッサシステムの初期化手段を示すブロック図
【図３】本発明の実施の形態１におけるマルチプロセッサシステムの操作状況情報を示すブロック図
【図４】本発明の実施の形態１におけるマルチプロセッサシステムの相補プログラムの構成例を示すブロック図
【符号の説明】
１  マルチプロセッサシステム
２  初期化手段
３  動作状況情報格納メモリ
４  共通バス
５  バス切替手段
６  ハードウエア資源
７  第１プロセッサ
８  第１バス
９  第１メモリ
１０  第２プロセッサ
１１  第２バス
１２  第２メモリ
１３  第ｎプロセッサ
１４  第ｎバス
１５  第ｎメモリ
１６  第１初期化Ｆ／Ｆ
１７  第２初期化Ｆ／Ｆ
１８  第ｎ初期化Ｆ／Ｆ
１９  第１初期化信号
２０  第２初期化信号
２１  第ｎ初期化信号
２２  アプリケーション
２３  ドライバ
２４  オペレーティングシステム
【図１】
2004310252.tif 000003
【図２】
2004310252.tif 000004
【図３】
2004310252.tif 000005
【図４】
2004310252.tif 000006