(57)【要約】【課題】マルチプロセッサシステムの予備プロセッサ切り替え方式において、複数のプロセッサで障害が発生したとき、予備プロセッサの待機状態によっては適切な切り替えが行われず、性能維持が困難となる。【解決手段】運用プロセッサ１〜４の障害発生時に切り替えるべき予備プロセッサ５と、運用プロセッサおよび予備プロセッサの故障部位による性能低下量を数値化する手段を具備し、運用プロセッサの故障部位縮退後の性能と、予備プロセッサの既故障部位縮退後の性能とを比較し、予備プロセッサのシステムへの組み込み可否を判断する機能を診断プロセッサ６に備える。【選択図】　　図１
2004062470.tif 000002
【特許請求の範囲】
【請求項１】
マルチプロセッサ方式の情報処理装置において、通常時に運用される少なくとも１台の運用プロセッサと、前記運用プロセッサの障害発生時に切り替えて用いられる予備プロセッサと、前記障害が発生した運用プロセッサの故障部位を縮退させる手段と、前記運用プロセッサの故障部位縮退による性能低下量を数値化する手段と、前記故障部位縮退による性能低下量を考慮した前記運用プロセッサの単体性能と前記予備プロセッサの単体性能とを比較する手段を有することを特徴とするマルチプロセッサ切り替え方式。
【請求項２】
前記運用プロセッサで障害が発生した際に、前記運用プロセッサの故障部位縮退後の単体性能と前記予備プロセッサの単体性能とを比較した結果、前記予備プロセッサの単体性能の方が前記運用プロセッサの故障部位縮退後の単体性能より小さいか或いは等しい場合は、前記運用プロセッサを継続して運用し、前記予備プロセッサの単体性能が前記運用プロセッサの故障部位縮退後の単体性能より大きい場合は、前記予備プロセッサをシステムに組み込んだ後、故障した前記運用プロセッサをシステムから切り離して新たな予備プロセッサとして待機させることを特徴とする請求項１に記載のマルチプロセッサ切り替え方式。
【請求項３】
複数の運用プロセッサ及び複数の予備プロセッサを有するマルチプロセッサ方式の情報処理装置において、システム内の全運用プロセッサ及び予備プロセッサの故障部位による性能低下量を算出する手段を有し、前記複数の運用プロセッサのいずれかにおいて障害が発生した際に、本来システムに障害がない状態の全運用プロセッサ単体性能の合計より等しいか或いは大きくなるまで、前記複数の予備プロセッサから単体性能の大きい順に順次システムに組み込むことを特徴とするマルチプロセッサ切り替え方式。
【請求項４】
システムに組み込まれている前記複数の運用プロセッサの中から、最も値が小さいものを除いた単体性能の合計が、本来システムに障害がない状態における全運用プロセッサの単体性能の合計より大きいか或いは等しい場合は、前記運用プロセッサの中で最も単体性能が小さいプロセッサを順次システムから切り離して、予備プロセッサとして待機させることを特徴とする、請求項３に記載のマルチプロセッサ切り替え方式。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置の障害処理方式に関し、特にマルチプロセッサシステムにおける予備プロセッサの切り替え方式の改良に関する。
【０００２】
【従来の技術】
従来の予備プロセッサシステムの一例が、ＩＢＭ（インターナショナル・ビジネス・マシーン）社のＳ／３９０シリーズで採用されており、１９９９年５月２７日同社発行の技報「ＩＢＭ　Ｊｏｕｒｎａｌ　ｏｆ　Ｒｅｓｅａｒｃｈ　ａｎｄ　Ｄｅｖｅｌｏｐｍｅｎｔ」のＶｏｌ．４３，Ｎｏｓ．５／６，１９９９“ＲＡＳ　ｓｔｒａｔｅｇｙ　ｆｏｒ　ＩＢＭ　Ｓ／３９０　Ｇ５　ａｎｄ　Ｇ６”（８８０ページ〜８８３ページまで）に記載されている。
【０００３】
ＩＢＭ　Ｓ／３９０システムの場合、中央処理装置と入出力処理を行う支援処理機構および内部結合機構が、予備切り替え可能なプロセッサとして冗長な構成となっており、これらの装置に障害が発生した場合、動的（「システムを停止することなく」の意）またはパワーオンリセットによって予備プロセッサへの切り替えを行い、システム性能を低下させることなく、引き続き運用を継続させることを特徴としている。
【０００４】
一般的に、汎用コンピュータのような基幹業務サーバにおいては、販売の形態としてレンタル契約するケースが殆どで、中央処理装置および入出力装置の性能と使用時間の積で価格が決定される。従って、課金方法の性質からもシステムとしての性能維持が装置に期待される要件となる。
【０００５】
また、汎用コンピュータ上で稼働するシステムも、銀行の勘定系に代表されるように、極めて高い信頼性、高い可用性を要求する業務が中心であるため、オンライン中の業務を中断させることなく、速やかに故障箇所を回復させるための冗長機能を装備する必要がある。
【０００６】
予備プロセッサ方式は、上述の販売形態および運用形態に則した汎用コンピュータ独特の機構であり、一般のＰＣサーバのようにプロセッサの最大処理性能（通常は動作周波数）で価格が決定されるような装置、あるいは業務を複数のサーバに分散させることで耐故障性を維持するような装置には存在しない機構である。
【０００７】
ＩＢＭ　Ｓ／３９０システムの予備プロセッサ方式は、プロセッサを最小単位とする予備切り替え方式である。汎用コンピュータの一構成例を示した図１を参照すると、この従来システムにおいて演算プロセッサ１〜５は、システムバスを介してマルチプロセッサ方式で接続されている。演算プロセッサ１〜５のうち何台かは、運用中の演算プロセッサに障害が発生した際に切り替えられるべき予備プロセッサとして、システム内に待機している。例えば、この構成例において、演算プロセッサ５が予備プロセッサとしてシステムから切り離されて待機しているものとすると、演算プロセッサ１〜４は運用中のプロセッサとなり、システムに障害が発生していない状態では、この演算プロセッサ１〜４の４台でシステム運用が継続されている。
【０００８】
いま、演算プロセッサ１で障害が発生したケースを例にあげると、従来システムでは演算プロセッサ１をシステムから切り離し、替わりに予備として待機している演算プロセッサ５をシステムに組み込むように処理する。
【０００９】
これに対しＩＢＭ　Ｓ／３９０システムでは、故障した演算プロセッサ１を停止させた後、演算プロセッサ１から制御レジスタやキャッシュの内容を抜き取り、予備プロセッサ５に移し替えた後、予備プロセッサ５を動作させることによって、予備プロセッサ切り替えを実現している。
【００１０】
上述の文献において、制御レジスタやキャッシュの内容を移行させる機構として、サポート・エレメント（ＳＥ）という用語を使用しているが、本構成例ではサポート・エレメントを具体化するために、予備プロセッサ切り替えの動作を指示する機構として、診断プロセッサ６を定義する。
【００１１】
【発明が解決しようとする課題】
しかしながら、上述したプロセッサ単位での予備切り替えを行う従来システムの場合には、次のような問題がある。
【００１２】
まず、部分的に縮退可能な機能を有するプロセッサで構成された予備プロセッサシステムでは、プロセッサの特定の部位が故障し性能低下が発生した場合に、故障プロセッサの障害部位が、プロセッサの継続運用不可能な状態まで拡大してから予備プロセッサに切り替わる方式と、ＩＢＭ　Ｓ／３９０システムのように性能低下が発生した時点で即座に予備プロセッサに切り替わる方式の２種類が考えられる。
【００１３】
前者の場合、重度の障害となるまで故障したプロセッサはシステムに組み込まれた状態でいるため、システムとしての性能低下状態が継続し、システム性能を可能な限り保持するという汎用コンピュータの要件を満たすことが困難となる。
【００１４】
また、後者の場合、性能低下が発生した時点で即座に予備プロセッサに切り替わるため性能低下状態は速やかに回復するが、軽度の障害が発生しただけで予備プロセッサを使用してしまうため、予備プロセッサの台数が少ないシステムで多重障害が発生した場合には、切り替えるべき予備プロセッサを確保できない状態に陥る。
【００１５】
本発明の目的は、部分的な縮退機能により故障部位を切り離して継続運用可能なプロセッサを有するマルチプロセッサ方式の情報処理装置における予備プロセッサの切り替え方式に関し、複数のプロセッサで障害が発生した場合でも予備プロセッサの枯渇を最小限に抑え、システムとしての性能を可能な限り維持する方式を提供することにある。
【００１６】
【課題を解決するための手段】
以上の課題を鑑みて、本発明のマルチプロセッサ切り替え方式は、マルチプロセッサ方式の情報処理装置において、通常時に運用される少なくとも１台の運用プロセッサと、前記運用プロセッサの障害発生時に切り替えて用いられる予備プロセッサと、前記障害が発生した運用プロセッサの故障部位を縮退させる手段と、前記運用プロセッサの故障部位縮退による性能低下量を数値化する手段と、前記故障部位縮退による性能低下量を考慮した前記運用プロセッサの単体性能と前記予備プロセッサの単体性能とを比較する手段を有することを特徴としている。
【００１７】
また、本発明のマルチプロセッサ切り替え方式の別の構成例では、前記運用プロセッサで障害が発生した際に、前記運用プロセッサの故障部位縮退後の単体性能と前記予備プロセッサの単体性能とを比較した結果、前記予備プロセッサの単体性能の方が前記運用プロセッサの故障部位縮退後の単体性能より小さいか或いは等しい場合は、前記運用プロセッサを継続して運用し、前記予備プロセッサの単体性能が前記運用プロセッサの故障部位縮退後の単体性能より大きい場合は、前記予備プロセッサをシステムに組み込んだ後、故障した前記運用プロセッサをシステムから切り離して新たな予備プロセッサとして待機させることを特徴とする。
【００１８】
さらに別の例では、複数の運用プロセッサ及び複数の予備プロセッサを有するマルチプロセッサ方式の情報処理装置において、システム内の全運用プロセッサ及び予備プロセッサの故障部位による性能低下量を算出する手段を有し、前記複数の運用プロセッサのいずれかにおいて障害が発生した際に、本来システムに障害がない状態の全運用プロセッサ単体性能の合計より等しいか或いは大きくなるまで、前記複数の予備プロセッサから単体性能の大きい順に順次システムに組み込むことを特徴としている。
【００１９】
さらに最後の構成例としては、システムに組み込まれている前記複数の運用プロセッサの中から、最も値が小さいものを除いた単体性能の合計が、本来システムに障害がない状態における全運用プロセッサの単体性能の合計より大きいか或いは等しい場合は、前記運用プロセッサの中で最も単体性能が小さいプロセッサを順次システムから切り離して、予備プロセッサとして待機させることを特徴としている。
【００２０】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００２１】
図１に示すとおり、複数台の演算プロセッサ１〜５と、診断プロセッサ６で構成される。演算プロセッサ１〜５は、通常の業務処理を行うプロセッサと予備プロセッサに大別され、予備プロセッサは通常はシステムから切り離されて待機状態でいる。
【００２２】
図２は本発明における演算プロセッサ１〜５の機能を表した詳細ブロック図である。構成制御ユニット１１は、診断プロセッサ６と診断バスを介して接続されており、診断プロセッサ６からの指示で縮退可能な内部ユニットの組み込み／切り離しを制御する。演算ユニット１２は演算処理を実行する。命令キャッシュユニット（＃０）１３および命令キャッシュユニット（＃１）１４、データキャッシュユニット（＃０）１５およびデータキャッシュユニット（＃１）１６、変換ルックアサイドバッファ１７は、演算プロセッサ１の命令列／データ列のキャッシングおよびアドレス変換を行うユニットであり、構成制御ユニット１１の制御下において、このユニット単位で縮退を行う。これにより、演算プロセッサ１〜５は本来の性能値から一定の性能低下を起こした状態で継続運転することが可能である。バスインタフェースユニット１８は、システムバスとインタフェースを持ち、各演算プロセッサ１〜５の間でデータ交換を行う。演算ユニット１２とバスインタフェースユニット１８は、演算プロセッサ１〜５の核となる部分で、上述の演算ユニット１２およびバスインタフェースユニット１８が故障した場合には、プロセッサの継続運転は不可能となり、演算プロセッサの切り離しが実行される。
【００２３】
続いて、本発明の動作につき図面を参照して詳細に説明する。
【００２４】
本発明の第一形態では、部分的な縮退機能により故障部位を切り離して、継続運用可能なプロセッサを有するマルチプロセッサ方式の情報処理装置において、運用プロセッサの障害発生時に切り替えるべき予備プロセッサと、運用プロセッサおよび予備プロセッサの故障部位による性能低下量を数値化する手段とを具備し、運用プロセッサで障害が発生した際に、その故障部位が縮退した後の単体性能と、予備プロセッサの故障部位縮退後の単体性能とを比較し、予備プロセッサの単体性能の方が運用プロセッサのそれより大きい場合に予備プロセッサをシステムに組み込む。その後、故障した運用プロセッサをシステムから切り離して新たな予備として待機させる。これに対し、予備プロセッサの単体性能の方が運用プロセッサの単体性能より小さいあるいは等しい場合には、予備プロセッサをシステムに組み込まず、運用プロセッサの故障部位を縮退して運用を継続する。
【００２５】
図３はこの一連の動作を示すフローチャートである。演算プロセッサ１〜４を通常の運用プロセッサ、演算プロセッサ５を予備プロセッサとし、演算プロセッサ１で障害が発生した場合について説明する。
【００２６】
この演算プロセッサ１で発生した故障は（Ｓ３−１）、診断プロセッサ６に通知され、故障の部位から縮退可能な範囲と縮退による性能低下量が計算される。また、診断プロセッサ６は演算プロセッサ１が縮退運転可能と判断された場合に、演算プロセッサ１内の故障部位を縮退する（Ｓ３−２）。
【００２７】
次に診断プロセッサ６は、予備として待機している演算プロセッサ５の性能低下量を計算するが、この際演算プロセッサ５には故障箇所がないので、図３の条件判定Ａにより、「障害が発生したプロセッサ１の単体性能＜予備の演算プロセッサ５の単体性能」となり（Ｓ３−３）、予備の演算プロセッサ５をシステムに組み込んだ後（Ｓ３−４）、障害が発生した演算プロセッサ１をシステムから切り離して、新たな予備プロセッサとして待機させる（Ｓ３−５）。
【００２８】
続いて、演算プロセッサ２で演算プロセッサ１よりも軽度の障害が発生した場合について説明する。診断プロセッサ６は、障害が発生した演算プロセッサ２と、予備として待機している演算プロセッサ１の性能低下量を計算し、両者の単体性能を比較する。この場合は、図３の条件判定Ａにより「障害が発生したプロセッサ２の単体性能＞＝予備の演算プロセッサ１の単体性能」となるため、予備として待機している演算プロセッサ１をシステムに組み込むことはせず、障害が発生した演算プロセッサ２の故障部位を縮退させ、故障した演算プロセッサ２の運用を継続する。
【００２９】
本発明の第二の形態では、第一の形態に加えてさらに運用プロセッサで障害が発生した際に、システム内の全ての運用プロセッサおよび予備プロセッサの故障部位による性能低下量を数値化する手段を具備し、障害が発生した運用プロセッサの故障部位を縮退させた後、予備プロセッサをシステムに組み込んだ結果、システム性能が本来システムに障害がない状態の時の全ての運用プロセッサの単体性能の総和より大きくなるか等しくなるまで、複数台ある予備プロセッサを「単体性能の大きい順」にシステムに組み込んだ後、システムに組み込まれている運用プロセッサの中で最も単体性能の小さいプロセッサを除く運用プロセッサの総和が、本来システムに障害がない状態における全ての運用プロセッサの単体性能総和より大きいあるいは等しい期間、運用プロセッサの中で最も単体性能の小さいプロセッサを順次システムから切り離して、予備として待機させる。
【００３０】
図４は本発明の第二形態の動作を示すフローチャートである。図１において演算プロセッサ１〜３を通常の運用プロセッサ、演算プロセッサ４および５を予備プロセッサとし、演算プロセッサ１で障害が発生した場合を例に挙げると、演算プロセッサ１の故障（Ｓ４−１）はただちに診断プロセッサ６に通知され、これを受け診断プロセッサ６は演算プロセッサ１の故障部位を縮退させる（Ｓ４−２）。
【００３１】
また診断プロセッサ６は、システム内の全ての演算プロセッサ１〜５の単体性能を計算し（Ｓ４−３）、このうち障害が発生した演算プロセッサ１を含めた全ての運用中プロセッサ１〜３の単体性能の総和と、本来システムに障害がない状態における全ての運用プロセッサの単体性能の総和とを比較する（Ｓ４−４）。この結果、図４の条件判定Ａにより「本来システムに障害がない状態における全ての運用プロセッサの単体性能の総和＞障害発生後の運用プロセッサの単体性能の総和」となる。診断プロセッサ６は、予備プロセッサ４または予備プロセッサ５の何れかを（予備プロセッサ４および５は故障のない健全なプロセッサであり、単体性能が等しいため）システムに組み込む（Ｓ４−５）。
【００３２】
ここで仮に予備プロセッサ４がシステムに組み込まれたとすると、システム上で稼働している運用プロセッサは１〜４の４台となる。
【００３３】
次に、図４の条件判定Ｂにより、「システム本来の総合性能の総和と、最も単体性能の小さいプロセッサを除いた運用中プロセッサの単体性能の総和」とを比較する（Ｓ４−６）。この場合、障害が発生した演算プロセッサ１をシステムから取り除いても、システムの総合性能は本来障害がない状態における全ての運用プロセッサの単体性能の総和と等しくなるため、診断プロセッサ６は障害が発生した演算プロセッサ１をシステムから切り離し、新たな予備プロセッサとして待機させる（Ｓ４−７）。
【００３４】
続いて、複数台の予備プロセッサをシステムに組み込む場合の動作につき説明する。この動作は、何れか２台以上の予備プロセッサの単体性能の合計が、運用中に故障したプロセッサの性能低下量を補えない場合に発生する。
【００３５】
演算プロセッサ１および２が順次故障し、予備の演算プロセッサ４および５が既にシステムに組み込まれているものとする。この際、演算プロセッサ１および２は新たな予備として待機状態となる。複数台の予備の演算プロセッサがシステムに組み込まれる条件は、この後に運用中の演算プロセッサ３、４、５のうちの何れかが故障し、なおかつ故障した演算プロセッサの単体性能の低下量が、演算プロセッサ１および２の単体性能の合計よりも大きい場合である。すなわち、ここで演算プロセッサ３が故障したとすると、図４に示すフローチャートに従い、運用中の演算プロセッサ３〜５の単体性能の合計と、システム全体で障害なく運用されている場合の演算プロセッサの単体性能合計とが比較される。その不足分は予備として待機している演算プロセッサ１の組み込みにより補われる。またそれでもシステムの総合性能が本来システムに障害がない状態における全ての運用プロセッサの単体性能の総和に満たない場合は、不足分の性能を演算プロセッサ２の組み込みによってさらに補完する。この結果、最終的にはシステムの構成は演算プロセッサ１〜５の合計５台がシステムに組み込まれて稼動している状態となる。
【００３６】
さらに図４の条件判定Ｂについて説明する。もっとも単体性能が小さいプロセッサを切り離し予備として待機させる動作において、予備プロセッサが組み込まれることにより、組み込み後のシステムの総合性能が本来システムに障害のない状態での全ての運用プロセッサの単体性能の総和を超過しており、さらに超過分の性能に比べて単体性能の小さい運用中プロセッサがシステム内に存在しているようなケースにおいて発生する。すなわち、前記の複数台の予備プロセッサをシステムに組み込む場合の動作例を参照すると、演算プロセッサ３の故障で演算プロセッサ１〜５の５台がシステムに組み込まれたときに、演算プロセッサ３の故障部位縮退後の単体性能が、他の演算プロセッサ１、２、４、５の単体性能の合計から、本来システムに障害がない状態での全ての運用プロセッサの単体性能の総和を引いた性能より低くなる場合、演算プロセッサ３の切り離しが行われる。この際、切り離された演算プロセッサ３は、新たな予備プロセッサとして待機状態となる。
【００３７】
【実施例】
次に、本発明の一実施例について図面を参照して説明する。図１は本発明の一実施例を示すシステム構成ブロック図である。図２は演算プロセッサの詳細ブロック図であり、図５は図２に示した演算プロセッサにつき、縮退可能な機能である命令キャッシュユニット（０）１３および命令キャッシュユニット（１）１４、データキャッシュユニット（０）１５およびデータキャッシュユニット（１）１６、変換ルックアサイドバッファ１７の各々の縮退時の性能低下量を表した対応表である。図５において、演算プロセッサ１の命令キャッシュユニット１３および１４は「縮退時に２０％の性能低下」を、データキャッシュユニット１５および１６は「縮退時に４０％の性能低下」を、変換ルックアサイドバッファ１７は「縮退時に８０％の性能低下」をそれぞれ発生するものとする。
【００３８】
なお、説明を簡易にするため、これらの機能部は縮退を発生しても互いに他の機能部の性能に影響を及ぼさないものとする。ただし実際のシステムでは複数段のキャッシュやアドレス変換機能が縮退した場合に、他の機能部の性能に影響を及ぼすことは大いにあり得るので、縮退による性能低下量はこれらを加味した計算式で導かれた値でなければならない。また、障害発生により切り離される演算プロセッサの台数に比べて、組み込まれる予備プロセッサの台数の方が多い場合もあり得るため、このような場合には運用中のプロセッサの増減によるマルチプロセッサ係数（ＭＰ係数と称す）も性能低下量を試算する場合のパラメータとして加味されなければならない。
【００３９】
次に、図３を用いて本発明の動作を示すフローチャートの処理を、そして図６を用いて本発明の動作遷移状態を詳細に説明する。
【００４０】
演算プロセッサ１〜４を通常の運用プロセッサ、演算プロセッサ５を予備プロセッサとし、障害がない状態の各演算プロセッサの単体性能を１００とすると、図６の手順１において運用中のプロセッサの単体性能総和（総合性能）は４００となる。
【００４１】
続いて手順２において、演算プロセッサ１のデータキャッシュ（０）１５で障害が発生したとする。この障害については診断バスを介して診断プロセッサ６にただちに通知される。診断プロセッサ６は、データキャッシュ（０）１５が縮退可能な部位であることから、演算プロセッサ１内の構成制御ユニット１１に指示を行い、データキャッシュ（０）１５を縮退させる。また、診断プロセッサ６は図５に示す性能低下量より、データキャッシュ（０）１５の性能低下量が４０であることを判断し、演算プロセッサ１の単体性能が６０に低下したことを認識する。この状態ではシステムの総合性能は３６０となる。
【００４２】
手順３において、診断プロセッサ６は予備として待機している演算プロセッサ５の性能低下量を計算するが、このとき演算プロセッサ５には故障箇所はないので単体性能は１００である。次に、図３の動作処理フローにおける条件判定Ａより「障害が発生した演算プロセッサ１の単体性能＜予備の演算プロセッサ５の単体性能」となるため、予備の演算プロセッサ５をシステムに組み込む。
【００４３】
手順４において、データキャッシュ（０）１５が故障した演算プロセッサ１は、システムから切り離され新たな予備プロセッサとして待機状態になる。この状態におけるシステムの総合性能は障害が発生する前と同じ４００に回復する。
【００４４】
手順５では、予備として待機している演算プロセッサ１よりも軽度の障害が演算プロセッサ２に発生した場合を例に説明する。ここでは演算プロセッサ２の命令キャッシュ（０）１３が故障したものとする。演算プロセッサ２の命令キャッシュ（０）１３の故障は、前述の演算プロセッサ１の故障時と同様、診断プロセッサ６に通知される。診断プロセッサ６は図５の性能低下量より演算プロセッサ２の命令キャッシュ（０）１３の性能低下量が２０％であることから、演算プロセッサ２の単体性能が８０に低下したことを認識する。続いて、図３の条件判定Ａにより、障害を発生した演算プロセッサ２と、予備として待機している演算プロセッサ１の単体性能を比較する。だが今度は「障害を発生したプロセッサ２の単体性能＞＝予備の演算プロセッサ１の単体性能」となるため、予備として待機している演算プロセッサ１をシステムに組み込むことはせず、障害を発生した演算プロセッサ２の故障部位を、演算プロセッサ２の構成制御ユニット１１に通知して縮退させ、演算プロセッサ２をシステムに組み込んだ状態で運用を継続させる。この状態におけるシステムの総合性能は３８０となる。
【００４５】
次に、図３を用いて本発明の第二実施例の動作を示すフローチャートの処理を、そして図６を用いて本発明の第二実施例の動作遷移状態を詳細に説明する。
【００４６】
演算プロセッサ１〜３を通常の運用プロセッサ、演算プロセッサ４および５を予備プロセッサとし、障害がない状態の各演算プロセッサの単体性能を１００とすると、図７の手順１において第二実施例のシステムでは運用中のプロセッサの単体性能の総和（総合性能）は３００となる。
【００４７】
続いて手順２において、演算プロセッサ１の命令キャッシュ（０）１３で障害が発生したとすると、演算プロセッサ１の命令キャッシュ（０）１３の故障は診断バスを介して診断プロセッサ６に通知される。診断プロセッサ６は、命令キャッシュ（０）１３が縮退可能な部位であることから、演算プロセッサ１内の構成制御ユニット１１に指示し、演算プロセッサ１の命令キャッシュ（０）１３を縮退させる。また、診断プロセッサ６は図５に示す性能低下量より、予備プロセッサも含めてシステム内に存在する全演算プロセッサ１〜５の単体性能を計算する。命令キャッシュ（０）１３の性能低下量が２０％であることから、演算プロセッサ１は単体性能が８０に低下する。また演算プロセッサ１以外の演算プロセッサは、故障がないため単体性能は１００のままであり、システムの総合性能は２８０となる。
【００４８】
手順３において、診断プロセッサ６は図４の動作処理フローチャートにおける条件判定Ａにより、障害発生後のシステム内の全運用プロセッサ１〜３の単体性能の総和と、本来システムに障害のない状態における全運用プロセッサの単体性能の総和とを比較する。その結果「本来システムに障害がない状態の全運用プロセッサの単体性能の総和＞障害発生後の運用中プロセッサの単体性能の総和」となり、診断プロセッサ６は予備として待機している演算プロセッサ４あるいは５のうち、単体性能の大きい方をシステムに組み込む。この第二実施例では、演算プロセッサ４と５はいずれも故障のない健全なプロセッサであり、単体性能は共に１００であるため、ここでは演算プロセッサ４を予備としてシステムに組み込むものとする。これによりシステムに組み込まれている運用中のプロセッサは１〜４の４台となり、システムの総合性能は３８０となる。ここで、予備プロセッサ組み込み後の図４の動作処理フローチャートにおける条件判定Ａより「本来システムに障害がない状態での全運用プロセッサの単体性能の総和＞障害発生後の運用プロセッサの単体性能の総和」という条件を満たさなくなるため、次の処理に移る。
【００４９】
手順４では、図４の動作処理フローチャートにおける条件判定Ｂにより、システム内でもっとも単体性能の小さい演算プロセッサの切り離し条件が判定される。この際、運用中の演算プロセッサ１〜４の中で最も単体性能の小さい演算プロセッサは、命令キャッシュ（０）１３が故障した演算プロセッサ１である。もしここで演算プロセッサ１をシステムから取り除いても、システムの総合性能は本来システムに障害がない状態における全ての運用プロセッサの単体性能の総和３００と等しくなるから、条件判定Ｂより「本来システムに障害がない状態の全運用プロセッサの単体性能の総和＜＝最も単体性能の小さい演算プロセッサを除いた運用プロセッサの単体性能の総和」という条件が満たされ、最も単体性能が小さい演算プロセッサ１がシステムから切り離され、新たな予備プロセッサとして待機する。その際、システムの総合性能は本来システムに障害がない状態のときと等しく３００となる。演算プロセッサ１００の切り離し後に再度条件判定Ｂに照らし合わせると、「本来システムに障害がない状態の全運用プロセッサの単体性能の総和＜＝最も単体性能の小さいプロセッサを除いた運用プロセッサの単体性能の総和」という条件に該当する演算プロセッサは存在しなくなっているので、一連の予備プロセッサ組み込みに関する処理は終了する。
【００５０】
続いて、図４の処理フローチャートの別の動作を説明するため、システム内に元々実装されていた健全な予備プロセッサを全て使い切るまで、システムの障害状態を進行させる。健全な予備プロセッサである演算プロセッサ５をシステムに組み込むために、ここでは運用中の演算プロセッサ２でデータキャッシュ（０）１５が故障したものとする。手順５〜７では手順２〜４と同様の予備プロセッサ組み込み処理が行われる。
【００５１】
手順５において、演算プロセッサ２のデータキャッシュ（０）１５で障害が発生し、診断プロセッサ６はデータキャッシュ（０）１５が縮退可能な部位であることから、演算プロセッサ２内の構成制御ユニット１１に指示して、演算プロセッサ２のデータキャッシュ（０）１５を縮退させる。また、診断プロセッサ６は図５に示す性能低下量より、予備プロセッサも含めてシステム内に存在する全ての演算プロセッサ１〜５の単体性能を計算する。データキャッシュ（０）１５の性能低下量が４０％であることから演算プロセッサ２は単体性能が６０に低下する。この状態でシステムの総合性能は２６０となる。
【００５２】
手順６において、診断プロセッサ６は図４の動作処理フローチャートにおける条件判定Ａにより、システム内の全運用プロセッサ２〜４の単体性能の総和と、本来システムに障害がない状態の全運用プロセッサの単体性能の総和とを比較する。この結果、「本来システムに障害がない状態の全運用プロセッサの単体性能の総和＞障害発生後の運用プロセッサの単体性能の総和」となり、診断プロセッサ６は予備として待機している演算プロセッサ１と５のうち、単体性能の大きい演算プロセッサ５をシステムに組み込む。これによりシステムに組み込まれている運用中の演算プロセッサは２〜５の４台となり、システムの総合性能は３６０となる。
【００５３】
手順７において、図４の動作処理フローチャートの条件判定Ｂで、運用中の演算プロセッサ２〜５の中で最も単体性能が小さい演算プロセッサはデータキャッシュ（０）１５が故障した演算プロセッサ２である。ここで障害が発生した演算プロセッサ２をシステムから取り除いても、システムの総合性能は本来システムに障害がない状態における全運用プロセッサの単体性能の総和３００と等しくなるので、演算プロセッサ２をシステムから切り離し、新たな予備プロセッサとして待機させる。
【００５４】
手順８〜９では、図４の動作処理フローチャートの条件判定Ａにおいて、「本来システムに障害のない状態の全運用プロセッサの単体性能の総和＞障害発生後の運用中プロセッサの単体性能の総和」による予備プロセッサの組み込み処理は行われるが、図４の動作処理フローチャートにおける条件判定Ｂ「本来システムに障害がない状態での全運用プロセッサの単体性能の総和＜＝最も単体性能が小さいプロセッサを除く運用プロセッサの単体性能の総和」に基づく演算プロセッサの切り離し処理が行われない際の動作について説明する。
【００５５】
手順８において、運用中の演算プロセッサ３の変換ルックアサイドバッファ１７が故障したものとする。演算プロセッサ３は図５より性能低下量が８０％であることから単体性能が２０に低下する。この状態でシステムの総合性能は２２０となる。
【００５６】
手順９において、診断プロセッサ６は図４の動作処理フローチャートにおける条件判定Ａにより、システム内の全ての運用プロセッサ３〜５の単体性能の総和と、本来システムに障害がない状態の際の全運用プロセッサの単体性能の総和を比較する。その結果、「本来システムに障害がない状態の全運用プロセッサの単体性能の総和＞障害発生後の運用中プロセッサの単体性能の総和」となるため、診断プロセッサ６は予備として待機している演算プロセッサ１と２のうち、単体性能の大きい演算プロセッサ１の方をシステムに組み込む。これによってシステムに組み込まれている運用プロセッサは１、３、４、５の４台となり、システムの総合性能は３００となる。次に、図４の動作処理フローチャートにおける条件判定Ｂでは、予備プロセッサ１の組み込み後のシステムの総合性能が３００であることから、「本来システムに障害がない状態での全運用プロセッサの単体性能の総和＜＝最も単体性能が小さいプロセッサを除く運用プロセッサの単体性能の総和」を満たしていないので、最も単体性能が小さいプロセッサの切り離し処理は行われず、最終的に演算プロセッサ１、３、４、５の４台でシステムの運用が継続される。
【００５７】
次に、手順１０〜１２および１３では、図４の動作処理フローチャートにおける条件判定Ａ「本来システムに障害がない状態での全運用プロセッサの単体性能の総和＞障害発生後の運用プロセッサの単体性能の総和」による予備プロセッサの組み込み処理も、図４の動作処理フローチャートにおける条件判定Ｂ「本来システムに障害がない状態の全運用プロセッサの単体性能の総和＜＝最も単体性能の小さいプロセッサを除く運用プロセッサの単体性能の総和」による運用中の演算プロセッサの切り離し処理も行わない場合の動作について説明する。なお、本手順を説明するためには、障害発生直前のシステムの総合性能が、本来システムに障害がない状態における全運用プロセッサの単体性能の総和を上回っている必要がある。
【００５８】
手順１０〜１２において、システムの障害状態をさらに進行させる。すなわち、手順１０において、すでに命令キャッシュ（０）１３が縮退状態にある演算プロセッサ１で、命令キャッシュ（１）１４にも障害が発生したとすると、演算プロセッサ１００の単体性能は６０に低下し、またシステム内で運用されている演算プロセッサ１、３、４、５の単体性能の総和は３４０となり、手順１２において運用中の演算プロセッサの中で最も単体性能が小さい演算プロセッサ３がシステムから切り離され、予備プロセッサとして待機することにより、システムの総合性能は３２０となる。
【００５９】
手順１３では、運用中の演算プロセッサで障害が発生しても、何れの予備プロセッサもシステムに組み込まれることはなく、また運用中の演算プロセッサも切り離されることはない。手順１３において、運用中の演算プロセッサ４で命令キャッシュ（０）１３が故障した場合を例に挙げると、演算プロセッサ４の単体性能が８０に低下する。この際、障害発生直前のシステムの総合性能は３２０であったのに対し、障害発生後は総合性能が３００に低下する。これはシステムに障害がない状態の全運用プロセッサの単体性能の総和３００と等しく、図４の動作処理フローチャートにおける条件判定Ａ／条件判定Ｂの何れの条件も満たさないので、システムはこの状態で安定する。
【００６０】
次に、複数台の予備プロセッサをシステムに組み込む際の動作について説明する。この動作は図７に示す手順７が完了している状態において、運用中の演算プロセッサ３〜５のうちの何れかが故障し、故障した演算プロセッサの単体性能の低下量が、予備として待機している演算プロセッサ１と２の単体性能の合計よりも大きい場合に発生する。すなわち、手順１４において、演算プロセッサ３で演算ユニット１２の故障のような致命的障害が発生し使用不可能になったとすると、演算プロセッサ３の単体性能は０となる。この際、運用中の演算プロセッサ３〜５の単体性能の合計は２００となる。
【００６１】
手順１５において、図４の動作処理フローチャート条件判定Ａ、不足分の性能を予備として待機している演算プロセッサ１と２のうち、単体性能が大きい方の演算プロセッサ１をシステムに組み込むことにより、システムの総合性能は２８０まで回復するが、演算プロセッサ１の組み込み後に再度判定される条件判定Ａにより、システムに障害がない状態での運用プロセッサの単体性能の総和３００までにはあと２０だけ性能が不足しており、さらに予備プロセッサの組み込みが必要であると判定される。
【００６２】
手順１６において、予備として待機している演算プロセッサ２がシステムに組み込まれ、図４の条件判定Ａを抜ける。この際演算プロセッサ１〜５の５台の合計によるシステムの総合性能は３４０となる。
【００６３】
手順１７では、致命的障害が発生した演算プロセッサ３の切り離しが実行される。演算プロセッサの致命的障害は性能低下量が１００％と換算し、単体性能０に相当とする。よって図４の処理動作フローチャートにおける条件判定Ｂに基づき、最も単体性能が小さい運用中プロセッサの切り離し条件に従って、演算プロセッサ３がシステムより切り離される。演算プロセッサ３は単体性能が０であるから、予備プロセッサとして待機することはせず、運用中のプロセッサの次障害においてシステムに再度組み込まれることはない。
【００６４】
【発明の効果】
本発明によれば、プロセッサの継続運用が可能な軽度の障害が発生し、システム性能が低下しても即予備プロセッサに切り替えるため、システムの性能低下状態が長時間継続するような事態が回避される。また、全ての予備プロセッサを使用した後に別のプロセッサでさらに重度の障害が発生したような場合、あるいは運用不可能な障害が発生した場合でも、予備に切り替えた故障プロセッサと性能低下量を比較し、より性能低下を抑えるような予備プロセッサの組み込みを選択するので、システムとしての性能低下を最小限に留める効果を奏する。
【図面の簡単な説明】
【図１】本発明の実施形態を表すシステム構成図である。
【図２】本発明に実施形態にかかる演算プロセッサの詳細構成を示すブロック図である。
【図３】第一実施例の動作を示す処理動作フローチャートである。
【図４】第二実施例の動作を示す処理動作フローチャートである。
【図５】演算プロセッサの縮退部位による性能低下量を表した図である。
【図６】第一実施例の状態遷移を示す図である。
【図７】第二実施例の状態遷移を示す図である。
【符号の説明】
１　演算プロセッサ＃１
２　演算プロセッサ＃２
３　演算プロセッサ＃３
４　演算プロセッサ＃４
５　演算プロセッサ＃５
６　診断プロセッサ
１１　構成制御ユニット
１２　演算ユニット
１３　命令キャッシュユニット（０）
１４　命令キャッシュユニット（１）
１５　データキャッシュユニット（０）
１６　データキャッシュユニット（１）
１７　変換ルックアサイドバッファ
１８　バスインタフェースユニット
【図１】
2004062470.tif 000003
【図２】
2004062470.tif 000004
【図３】
2004062470.tif 000005
【図４】
2004062470.tif 000006
【図５】
2004062470.tif 000007
【図６】
2004062470.tif 000008
【図７】
2004062470.tif 000009