(57)【特許請求の範囲】
【請求項１】
命令を実行する演算処理装置において、
命令を実行する複数の命令実行部と前記複数の命令実行部が共有する命令実行共有部とを含む命令処理部を複数有するとともに、前記複数の命令処理部が共有する命令処理共有部とを、ハードウェア資源として有する演算処理装置に対して、前記命令処理共有部の故障または前記演算処理装置に含まれる全ての命令処理部の故障を示す通知を受けた場合には前記演算処理装置の全範囲を、前記演算処理装置の一部の命令処理部に含まれる命令実行共有部の故障または一部の命令処理部に含まれる全ての命令実行部の故障を示す通知を受けた場合には前記演算処理装置内の一部の命令処理部を、前記命令処理部内の一部の命令実行部の故障を示す通知を受けた場合には前記命令処理部内の一部の命令実行部を、前記故障によって使用できないハードウェア資源の範囲として判定する故障範囲判定手段と、
前記判定の結果に基づいて故障範囲のハードウェア資源の使用の停止を指示する停止指示手段と、
前記停止指示手段から前記使用の停止の指示を受けた前記故障範囲のハードウェア資源に対して、前記演算処理装置の次回の立ち上げ時に、クロックの供給を停止するクロック供給停止手段と、
を備えたことを特徴とする演算処理装置。
【請求項２】
前記演算処理装置において、
前記故障範囲で示されたハードウェア資源の使用を停止させる際、故障範囲外の命令処理手順に影響を与えないように所定の処理を行ったのちに、前記ハードウェア資源を停止させる手段を備えた
ことを特徴とする請求項１記載の演算処理装置。
【請求項３】
前記演算処理装置において、
前記故障範囲にライトバック方式のキャッシュメモリを含む場合、前記所定の処理として前記キャッシュメモリの内容を故障範囲外のキャッシュメモリに書き出す処理を行う
ことを特徴とする請求項２記載の演算処理装置。
【請求項４】
前記演算処理装置はさらに、
使用停止状態であるハードウェア資源を示す停止情報を保持する停止情報保持手段を備え、
前記停止指示手段が、前記停止情報保持手段に保持された停止情報と新たに受信した故障範囲とから新たに使用するハードウェア資源を決定することを特徴とする請求項１から３の何れか１項に記載の演算処理装置。
【請求項５】
前記演算処理装置において、
前記ハードウェア資源としての命令実行部を前記ハードウェア資源としての命令処理部が複数有し、前記命令処理部の一部の命令実行部が使用停止状態であり、前記故障範囲判定手段が前記命令処理部に含まれる前記使用停止状態の命令実行部以外の全ての命令実行部を新たに故障範囲と判定した場合、前記停止指示手段が、前記現在の停止情報と新たな故障範囲とに基づき、前記命令処理部を停止させる
ことを特徴とする請求項４記載の演算処理装置。
【請求項６】
前記演算処理装置は、外部制御装置に接続され、
前記故障範囲判定手段が、前記外部制御装置に故障範囲を報告し、
前記停止指示手段が、前記外部制御装置から故障範囲を受信する
ことを特徴とする請求項１から５の何れか１項に記載の演算処理装置。
【請求項７】
前記演算処理装置において、
前記停止指示手段が、前記演算処理装置の起動処理時に前記外部制御装置から故障範囲を受信し、前記故障範囲のハードウェア資源の使用を停止させる
ことを特徴とする請求項６記載の演算処理装置。
【請求項８】
前記演算処理装置において、
前記ハードウェア資源がキャッシュメモリであり、故障によりキャッシュメモリの内容の整合性がとれない場合、前記故障範囲判定手段が、前記演算処理装置の全範囲を故障範囲と判定し、停止指示手段が全てのハードウェア資源を停止させる
ことを特徴とする請求項１から７の何れか１項に記載の演算処理装置。
【請求項９】
前記演算処理装置の制御方法において、
命令を実行する複数の命令実行部と前記複数の命令実行部が共有する命令実行共有部とを含む命令処理部を複数有するとともに、前記複数の命令処理部が共有する命令処理共有部とを、ハードウェア資源として有する演算処理装置に対して、前記命令処理共有部の故障または前記演算処理装置に含まれる全ての命令処理部の故障を示す通知を受けた場合には前記演算処理装置の全範囲を、前記演算処理装置の一部の命令処理部に含まれる命令実行共有部の故障または一部の命令処理部に含まれる全ての命令実行部の故障を示す通知を受けた場合には前記演算処理装置内の一部の命令処理部を、前記命令処理部内の一部の命令実行部の故障を示す通知を受けた場合には前記命令処理部内の一部の命令実行部を、前記演算処理装置が有する故障範囲判定部が、前記故障によって使用できないハードウェア資源の範囲として判定するステップと、
前記演算処理装置が有する停止指示部が、前記判定の結果に基づいて故障範囲のハードウェア資源の使用停止を指示するステップと、
前記演算処理装置が有するクロック供給停止部が、前記停止指示ステップにより前記使用の停止の指示を受けた前記故障範囲のハードウェア資源に対して、前記演算処理装置の次回の立ち上げ時に、クロックの供給を停止するステップと、
を有することを特徴とする演算処理装置の制御方法。
【請求項１０】
前記演算処理装置の制御方法において、
前記故障範囲で示されたハードウェア資源の使用を停止させる際、故障範囲外の命令処理手順に影響を与えないように所定の処理を行ったのちに、前記ハードウェア資源を停止させる
ことを特徴とする請求項９記載の演算処理装置の制御方法。
【請求項１１】
前記演算処理装置の制御方法において、
前記故障範囲にライトバック方式のキャッシュメモリを含む場合、前記所定の処理として前記キャッシュメモリの内容を故障範囲外のキャッシュメモリに書き出す処理を行う
ことを特徴とする請求項１０に記載の演算処理装置の制御方法。
【請求項１２】
前記演算処理装置の制御方法において、
前記演算処理装置はさらに、
使用停止状態であるハードウェア資源を示す停止情報を保持する停止情報保持部を備え、
前記停止指示部が、前記停止情報保持部に保持された停止情報と新たに受信した故障範囲とから新たに使用停止にするハードウェア資源を決定する
ことを特徴とする請求項９から１１の何れか１項に記載の演算処理装置の制御方法。
【請求項１３】
前記演算処理装置の制御方法において、
前記ハードウェア資源としての命令実行部を前記ハードウェア資源としての命令処理部が複数有し、前記命令処理部の一部の命令実行部が使用停止状態であり、前記故障範囲判定部が前記命令処理部に含まれる前記使用停止状態の命令実行部以外の全ての命令実行部を新たに故障範囲と判定した場合、前記停止指示部が、前記現在の停止情報と新たな故障範囲とに基づき、前記命令処理部を停止させる
ことを特徴とする請求項１２記載の演算処理装置の制御方法。
【請求項１４】
前記演算処理装置の制御方法において、
前記演算処理装置は、外部制御装置に接続され、前記故障範囲判定部が、前記外部制御装置に故障範囲を報告し、
前記停止指示部が、前記ハードウェア資源の使用を停止する際、前記外部制御装置から故障範囲を受信する
ことを特徴とする請求項９から１３の何れか１項に記載の演算処理装置の制御方法。
【請求項１５】
前記演算処理装置の制御方法において、
前記停止指示部が、前記演算処理装置の起動処理時に前記外部制御装置から故障範囲を受信し、前記故障範囲のハードウェア資源の使用を停止させる
ことを特徴とする請求項１４記載の演算処理装置の制御方法。
【請求項１６】
前記演算処理装置の制御方法において、
前記ハードウェア資源がキャッシュメモリであり、故障によりキャッシュメモリの内容の整合性がとれない場合、前記故障範囲判定部が、前記演算処理装置の全範囲を故障範囲と判定し、停止指示部が全てのハードウェア資源を停止させる
ことを特徴とする請求項９から１５の何れか１項に記載の演算処理装置の制御方法。
【請求項１７】
命令を実行する演算処理装置の制御プログラムにおいて、
命令を実行する複数の命令実行部と前記複数の命令実行部が共有する命令実行共有部とを含む命令処理部を複数有するとともに、前記複数の命令処理部が共有する命令処理共有部とを、ハードウェア資源として有する演算処理装置に対して、前記命令処理共有部の故障または前記演算処理装置に含まれる全ての命令処理部の故障を示す通知を受けた場合には前記演算処理装置の全範囲を、前記演算処理装置の一部の命令処理部に含まれる命令実行共有部の故障または一部の命令処理部に含まれる全ての命令実行部の故障を示す通知を受けた場合には前記演算処理装置内の一部の命令処理部を、前記命令処理部内の一部の命令実行部の故障を示す通知を受けた場合には前記命令処理部内の一部の命令実行部を、前記故障によって使用できないハードウェア資源の範囲として判定するステップと、
前記判定の結果に基づいて故障範囲のハードウェア資源の使用停止を指示するステップと、
前記停止指示ステップにより前記使用の停止の指示を受けた前記故障範囲のハードウェア資源に対して、前記演算処理装置の次回の立ち上げ時に、クロックの供給を停止するステップと、
を前記演算処理装置に実行させることを特徴とする演算処理装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は命令処理手順を同時に複数実行可能なプロセサにおける、エラー箇所の切り離し制御に関する。
【背景技術】
【０００２】
現在のハイエンドプロセサの分野では、処理性能向上のために１つのプロセサ内に複数のコアを実装するマルチコアや、単一のコアで複数のスレッドを同時に実行可能なプロセサが現在主流になりつつある。【０００３】
またハイエンドサーバは、停止することが許されない業務で使用されることが多く、もし故障が発生しても、早急に故障箇所を切り離して業務を再開することが必要とされている。【０００４】
またハイエンドサーバでは、システム全体の制御、監視を専用に行うシステム制御装置を備えることが多く、プロセサ内にもシステム制御装置への割り込み信号、システム制御装置から制御可能なように、ＪＴＡＧインタフェースを拡張したコマンド・インターフェース等を備えるものが増えている。【０００５】
従来のエラー処理では、ハードウェアにエラーが生じると、このエラーの発生を高いレベルの割り込みによってソフトウェア（ＯＳ）に通知し、ＯＳが通常の処理からエラー処理ルーチンへと切り替わる。該ＯＳは、ハードウェアへのアクセスを繰り返して故障箇所を特定し、故障箇所示すフラグを残して以降この故障箇所を使用不可にするといった所謂切り離し処理（縮退処理）を行う。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来のエラー処理では、故障したハードウェア自身がエラー処理ルーチンを実行するので、このエラー処理のために故障箇所を使用した場合、この処理自体がエラーを生じさせ、エラー処理を繰り返してソフトウェア・ループに陥ることになる。【０００７】
このため、エラーの影響によって不具合が生じる範囲（影響範囲）をプロセサ自身が特定して縮退処理を行う装置では、プロセサ自身のエラーによって影響範囲の特定が困難になったり、縮退処理が困難になったりする可能性が少なくない。【０００８】
特に、上述のような、マルチコア、マルチストランド構成のプロセサにおいて、一部のコアや一部のストランドにエラーが発生した場合にもプロセサ全体を停止したのでは、不合理であるので、影響箇所を精度良く特定して縮退処理が行えるようにすることが望まれていた。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明は以下の手段を備えた。【００１０】
即ち、本発明のプロセサ制御装置は、プロセサを構成する複数のハードウェア資源の故障を示す通知を受けた場合に、予め定めた各ハードウェア資源の依存関係に基づき、該故障によって使用できないハードウェア資源の範囲を故障範囲として判定する故障範囲判定手段と、前記判定の結果に基づいて故障範囲のハードウェア資源の使用を停止させる使用停止手段とを備えた。【００１１】
前記プロセサ制御装置は、前記故障範囲で示されたハードウェア資源の使用を停止させる際、故障範囲外の命令処理手順に影響を与えないように所定処理を行ったのちに当該ハードウェアを停止させる手段を備えても良い。【００１２】
前記プロセサ制御装置は、前記故障範囲にライトバック方式のキャッシュを含む場合、前記所定処理として該キャッシュの内容を故障範囲外のキャッシュに書き出す処理を行っても良い。【００１３】
前記ハードウェア資源がクロックに基づいて動作する場合、前記使用停止手段からの通知に応じて当該ハードウェア資源へのクロックを停止する手段を備えても良い。【００１４】
前記プロセサ制御装置は、現在使用停止状態であるハードウェア資源を示す停止情報を保持する手段を備え、前記使用停止手段が、前記現在の停止情報と新たに受信した故障範囲とから新たに使用停止にするハードウェア資源を決定しても良い。【００１５】
前記プロセサ制御装置は、前記ハードウェア資源としてのストランドを前記ハードウェア資源としてのコアが複数有し、該コアの一部が現在使用停止状態であり、前記故障範囲判定手段が該コアの他の全てのストランドを新たに故障範囲と判定した場合、前記使用停止手段が、前記現在の停止情報と該新たな故障範囲とに基づき、当該コアを停止させても良い。【００１６】
前記故障範囲判定手段が、外部制御装置に故障範囲を通知し、前記使用停止手段が、該外部制御装置から故障範囲を受信しても良い。【００１７】
前記使用停止手段が、起動処理時に前記外部制御装置から故障範囲を受信し、該故障範囲のハードウェア資源の使用を停止させても良い。【００１８】
前記ハードウェア資源がキャッシュであり、故障によりキャッシュの内容の整合性がとれない場合、前記故障範囲判定部が、プロセサの全範囲を故障範囲と判定し、使用停止手段が全てのハードウェア資源を停止させても良い。【００１９】
また、本発明のプロセサ制御方法は、プロセサ制御装置が、プロセサを構成する複数のハードウェア資源の故障を示す通知を受けた場合に、予め定めた各ハードウェア資源の依存関係に基づき、該故障によって使用できないハードウェア資源の範囲を故障範囲として判定するステップと、前記判定の結果に基づいて故障範囲のハードウェア資源の使用を停止させるステップとを実行する。【００２０】
前記プロセサ制御方法において、前記故障範囲で示されたハードウェア資源の使用を停止させる際、故障範囲外の命令処理手順に影響を与えないように所定処理を行ったのちに当該ハードウェアを停止させても良い。【００２１】
前記プロセサ制御方法において、前記故障範囲にライトバック方式のキャッシュを含む場合、前記所定処理として該キャッシュの内容を故障範囲外のキャッシュに書き出す処理を行っても良い。【００２２】
前記プロセサ制御方法において、前記ハードウェア資源がクロックに基づいて動作する場合、前記ハードウェア資源の使用を停止する際、当該ハードウェア資源へのクロックを停止しても良い。【００２３】
前記プロセサ制御方法において、前記プロセサ制御装置が、現在使用停止状態であるハードウェア資源を示す停止情報を保持する手段を備え、前記ハードウェア資源の使用を停止する際、現在の停止情報と新たに受信した故障範囲とから新たに使用停止にするハードウェア資源を決定しても良い。【００２４】
前記プロセサ制御方法において、前記ハードウェア資源としてのストランドを前記ハードウェア資源としてのコアが複数有し、該コアの一部が現在使用停止状態であり、該コアの他の全てのストランドを新たに故障範囲と判定した場合、前記現在の停止情報と該新たな故障範囲とに基づき、当該コアを停止させても良い。【００２５】
前記プロセサ制御方法において、前記故障範囲を判定した際、外部制御装置に故障範囲を通知し、前記ハードウェア資源の使用を停止する際、該外部制御装置から故障範囲を受信しても良い。【００２６】
前記プロセサ制御方法において、前記プロセサ制御装置の起動処理時に前記外部制御装置から故障範囲を受信し、該故障範囲のハードウェア資源の使用を停止させても良い。【００２７】
前記プロセサ制御方法において、前記ハードウェア資源がキャッシュであり、故障によりキャッシュの内容の整合性がとれない場合、全てのハードウェア資源を停止させても良い。【００２８】
また、本発明は、上記プロセサ制御装置を備えたプロセサであっても良い。
【００２９】
また、本発明は、前記プロセサ制御方法をプロセサ制御装置に実行させるプログラムであって良い。
【００３０】
また、本発明の外部制御装置は、プロセサを構成する複数のハードウェア資源の故障を示す通知を受けた場合に、予め定めた各ハードウェア資源の依存関係に基づき、該故障によって使用できないハードウェア資源の範囲を故障範囲として判定する故障範囲判定手段と、前記判定の結果に基づいて故障範囲のハードウェア資源の使用を停止させる使用停止手段とを備えたプロセサ制御装置と接続した装置であって、前記故障範囲判定手段から故障範囲を受信する手段と、前記使用停止手段に使用停止要求として前記故障範囲を送信する手段を備えた。【００３１】
前記外部制御装置は、前記故障範囲を記憶し、再起動時に前記使用停止手段へ前記使用停止要求として前記故障範囲を送信する手段を備えても良い。
【発明の効果】
【００３２】
本発明は、複数のハードウェア資源を備えるプロセサにおいて、故障したハードウェア資源の依存関係に応じた適切な範囲で切り離し制御を行うことを可能とする。
【図面の簡単な説明】
【００３３】
【図１】図１は、本発明に係るシステム全体の構成を示す図である。
【図２】故障範囲判定部のエラー入力と故障範囲出力の関係を示す図
【図３】使用停止判定部の使用停止入力と使用停止制御信号の関係を示す図
【図４Ａ】縮退処理のフローを示す図
【図４Ｂ】縮退処理のフローを示す図
【図４Ｃ】縮退処理のフローを示す図
【図５】ＰＯＲ/再起動処理フローを示す図
【図６】使用停止判定部のブロック図
【図７】クロック供給部における停止判定部の概略図
【発明を実施するための最良の形態】
【００３４】
以下、図面を参照して本発明を実施するための最良の形態について説明する。以下の実施形態の構成は例示であり、本発明はこの実施形態の構成に限定されない。【００３５】
§１．全体構成
本実施形態では、演算処理装置としての１つのプロセサが複数の命令処理部としてのコア部を有し、１コアあたり複数スレッドを同時に実行可能で、コアにライトバック方式のキャシュを装備し、コア内の命令実行部としてのストランド部で共有する構成した例を示している。なお、図１では、プロセサ１を一つだけ示したが、本実施形態のシステムは、該プロセサ１を複数備えている。
【００３６】
図１は、本実施形態のシステム全体の構成を示す図である。【００３７】
プロセサ１は、２つのコアＣ０，Ｃ１及び命令処理共有部としてのモジュール共通部２０を備えている。このコアＣ０は、ストランド部Ｃ０Ｓ０，Ｃ０Ｓ１や、該コア内のストランド部Ｃ０Ｓ０，Ｃ０Ｓ１で共通に使用するキャッシュ１１を備えている。同様に、コアＣ１は、各ストランドでそれぞれ専用に使用されるストランド部Ｃ１Ｓ０，Ｃ１Ｓ１や、該コア内のストランド部Ｃ１Ｓ０，Ｃ１Ｓ１で共通に使用するキャッシュ１２を備えている。なお、該ストランド部Ｃ０Ｓ０，Ｃ０Ｓ１，Ｃ１Ｓ０，Ｃ１Ｓ１はプログラムカウ
ンタといったレジスタ等である。
【００３８】
更に、プロセサ１は、同一コア内のストランド部で共用される、命令実行共有部としてのコア共通部１８，１９、プロセサ内の全ストランド部で共用されるモジュール共通部２０を備えている。
【００３９】
モジュール共通部２０には、各ハードウェア資源から通知されるエラー入力から、ストランド単位で故障範囲を保持する故障範囲判定部（故障範囲判定手段）１６と、ストランド単位で要求される使用停止要求から使用停止させるハードウェア領域を決定し、使用停止制御信号を出力する使用停止判定部（停止指示手段）１７、コアＣ０，Ｃ１で共通に使用するキャッシュ１３、各コアＣ０，Ｃ１との通信を介するインタフェース部１４，１５を備えている。
【００４０】
また、故障範囲判定部１６と、使用停止判定部１７は外部システム処理装置（外部制御装置に相当）２と接続される。【００４１】
上記コアＣ０，Ｃ１、モジュール共通部２０、ストランド部Ｃ０Ｓ０，Ｃ０Ｓ１，Ｃ１Ｓ０，Ｃ１Ｓ１、キャッシュ１１，１２，１３、インタフェース部１４，１５、故障範囲判定部１６、使用停止判定部１７、コア共通部１８，１９等は、プロセサ１のハードウェア資源である。【００４２】
故障範囲判定部１６は、上記ハードウェア資源から故障を示す通知を受けた場合に、予め定めた各ハードウェア資源の依存関係に基づき、該故障によって使用できないハードウェア資源の範囲を故障範囲として判定する。この依存関係とは、「キャッシュ１１が故障した場合、該キャッシュ１１を利用しているストランド部Ｃ０Ｓ０，Ｃ０Ｓ１が使用できない。」「コア共通部１９が故障した場合、コアＣ１が使用できない。」といったように、各ハードウェア資源と、このハードウェア資源が故障によって使用できなくなるハードウェア資源との対応関係である。【００４３】
具体的には図２に示すように、本実施形態の故障範囲判定部は、各ハードウェア資源からのエラー入力があった場合に、故障範囲を示すビット列を出力する論理を有したレジスタである。【００４４】
図２は、故障範囲判定部１６のエラー入力と故障範囲出力の関係の一部を示す。故障範囲判定部１６は、各ハードウェア資源からのエラー入力を受けて、例えばキャッシュ１１,１２,１３からFatal_ERR、共通モジュール２０からModule_ERR、コア共通部１８からCore0_ERR、コア共通部１９からCore1_ERR、といったエラー入力(故障入力)を受信する。なお、図２において、1は故障、0は正常を示し、−は1及び０を示している。また、故障範囲判定部１６は、該エラー入力に応じて故障範囲出力"Fatal、C0S0_HW_ERR、C0S1_HW_ERR、C1S0_HW_ERR、C1S1_HW_ERR"を出力する。なお、図２において、C0S0_HW_ERRはストランドC0S0、C0S1_HW_ERRはストランドC0S1、C1S0_HW_ERRはストランドC1S0、C1S1_HW_ERRはストランドC1S1であり、１の場合使用停止、０の場合使用可を示す。ここで、C0S0_ERR、C0S1_ERR、C1S0_ERR、C1S1_ERRの場合はそれぞれストランドC0S0、C0S1、C1S0、C1S1からのエラー入力に従い、該入力が０であれば使用可又は１であれば使用停止であることを示している。【００４５】
即ち、Fatal、C0S0_HW_ERR、C0S1_HW_ERR、C1S0_HW_ERR、C1S1_HW_ERRが全て使用可"０"の場合、ストランドC0S0、C0S1、C1S0、C1S1は、それぞれの入力C0S0_ERR、C0S1_ERR、C1S0_ERR、C1S1_ERRに従う。例えばストランドC0S0が故障した場合、入力C0S0_ERRが１とされ、出力C0S0_HW_ERRを１、その他の出力を０とし、ストランドC0S0のみを使用停止にする。ストランドC0S1、C1S0、C1S1についても同様に、それぞれ個別に使用停止とする。【００４６】
また、コア共通部１９が故障し、Core1_ERRが１その他が０という入力の場合、コア１のストランドC1S0,C1S1を共に使用停止とするためC1S0_ERR、C1S1_ERRを１とし、コア０のストランドC0S0,C0S1はそれぞれの入力C0S0_ERR、C0S1_ERRに従う。これにより、ストランドC1S0,C1S1が共通に使用するストランドコア共通部１９が故障した場合、ストランドC1S0,C1S1の状態に関わらず、ストランドC1S0,C1S1を使用停止する。【００４７】
同様にコア共通部１８が故障し、Core0_ERRが１その他が０という入力の場合、コア０のストランドC0S0,C0S1を共に使用停止とするためC0S0_ERR、C0S1_ERRを１とし、コア１のストランドC1S0,C1S1はそれぞれの入力C1S0_ERR、C1S1_ERRに従う。【００４８】
従って、コア共通部１８,１９が共に故障し、Core0_ERR,Core1_ERRが１という入力の場合、ストランドC0S0,C0S1,C1S0,C1S1を使用停止とする。【００４９】
また、ストランドC0S0,C0S1,C1S0,C1S1が共通に使用する共通モジュール２０が故障し、Module_ERRが１、Fatalが０という入力の場合、Core0_ERR,Core1_ERRに関わらず、ストランドC0S0,C0S1,C1S0,C1S1を使用停止"１"とする。【００５０】
このように故障範囲で示されたハードウェア資源の使用を停止させる際、故障範囲外の命令処理手順に影響を与えないように所定処理を行ったのちに当該ハードウェアを停止させる。例えば、各ハードウェア資源からキャシュ・コヒーレントの維持が困難なエラー（故障）が発生したことを示すFatal_ERRが１となった場合には、出力"Fatal"を１とし、同プロセサ内の全てのハードウェア資源(本例では全てのストランド)を使用停止とする。外部システム制御装置２は、故障範囲判定部１６の出力"Fatal"が"1"の場合には、システム全体の処理を一旦停止させ、故障が生じたプロセサ１を縮退してキャシュ・コヒーレントの維持が可能な状態としてシステムを再起動し、他のプロセッサの処理を再開する。なお、本実施形態ではFatal_ERRが1となったプロセサ全体を再起動時に使用停止とするため、故障範囲判定部１６はFatal_ERRが１の場合、全てのStrandを"1"に強制しているが、強制せずに故障が生じたハードウェア資源を使用するストランドのみを使用停止にする実装も可能である。
【００５１】
なお、故障範囲判定部(故障範囲レジスター)１６は、ビット単位に外部システム制御装置２からリセット可能にし、故障範囲レジスターの全ビットを論理和した出力に、外部システム制御装置から制御可能な割り込みマスクレジスタの出力を論理積した信号を外部システム制御装置の割り込みに使用する。これにより故障箇所を積算していく。【００５２】
また、使用停止判定部(使用停止手段)１７は、前記故障判定部１６の判定の結果に基づいて故障範囲のハードウェア資源の使用を停止させる。本実施形態では、故障範囲判定部１６が、故障範囲出力を外部システム処理装置２に通知し、外部システム処理装置２が使用停止判定部１７に該故障範囲(使用停止要求)を通知する。【００５３】
図３は、使用停止判定部の使用停止入力と使用停止制御信号の関係を示す。図３において、使用停止入力C0S0_STOP, C0S1_STOP, C1S0_STOP, C1S1_STOPは、それぞれストランドC0S0, C0S1, C1S0, C1S1の使用停止か否かを示す信号である。なお、０であれば使用可、１であれば使用停止を示す。また、使用停止制御信号C0S0_DG,C0S1_DG,C1S0_DG,C1S1_DG,Core0_DG,Core1_DGは、それぞれストランドC0S0, C0S1, C1S0, C1S1、コアCore0, Core1の使用停止か否かを示す信号である。なお、０であれば使用可、１であれば使用停止を示す。即ち、各ストランドは対応する使用停止制御信号"CxSx_DG"が"1"である場合には処理を停止する。【００５４】
使用停止判定部１７は、図６に示すように外部システム制御処理装置２からのストランド単位の使用停止要求を受け取る使用停止要求レジスター３２と、現在のストランド単位の使用停止状態を保持する使用停止状態レジスター３３を装備する。そして使用停止判定部１７の使用停止判定回路が、使用停止要求レジスター３３と使用停止状態レジスター３２のビット毎の論理和をとった値を使用停止入力として図３のテーブルに従って使用停止制御信号を出力する。【００５５】
次に、コア内の全ストランドが使用停止状態になっていないコアC０,C１において、該コアCxに対する使用停止制御信号"Corex_DG"が"1"となり、新規にコアCxの使用停止が指示された場合を示す。この場合には該コアCxのキャッシュ１１or１２の内容をメモリ(例えばキャッシュ１３)へ強制的に書き戻すことを開始し、正常に書き戻しが完了した後、使用停止要求レジスター３３と使用停止状態レジスター３２のビット毎の論理和の値で使用停止状態レジスター３２の内容を更新した後、モジュール共通部２０のインタフェース部１４,１５で使用停止するコアCxに対するインタフェース信号を無効化する。【００５６】
上記以外の場合は、使用停止要求レジスター３３と使用停止状態レジスター３２のビット毎の論理和の値で使用停止状態レジスター３２の更新のみ行う。【００５７】
また、外部システム処理装置２は、ＣＰＵやメモリ等を備えたシステム管理用の情報処理装置であり、温度監視や各プロセサのリセット、システムコンソールに関する処理を行う。
【００５８】
外部システム制御装置２は、使用停止要求を行った後、使用停止状態レジスター３２の内容を読み出して確認することによって使用停止要求の正常終了を確認する。【００５９】
また、外部システム制御装置２は、故障範囲レジスター１６の内容を累積して記憶し、ＰＯＲ（Power On Reset）処理と再起動処理時に、各プロセサ１の故障範囲レジスター１６に再設定される。【００６０】
図４Ａ〜４Ｃは、上記構成のシステムにおける縮退処理のフローチャートである。【００６１】
同図に示すように、エラー（故障）が発生し、各ハードウェア資源がエラー報告を発すると、故障範囲判定部１６は、該エラー報告から故障範囲を判定する（Ｓ１）。該故障範囲判定部１６は、判定した故障範囲を故障範囲レジスタに保持し（Ｓ２）、外部システム制御装置２へ割り込みを行う（Ｓ３）。【００６２】
外部システム制御装置２は、故障範囲レジスタを読み出し（Ｓ４）、装置内のメモリに該故障範囲を記憶する（Ｓ５）。そして外部システム制御装置２は、故障範囲のFatalが１か否かを判定し（Ｓ６）、Fatalが１であればシステム全体の停止処理を行い（Ｓ７）、再起動処理を行う（Ｓ８）。【００６３】
一方、外部システム制御装置２は、Fatalが１でなければ使用停止要求を使用停止要求レジスタ３３に書き込む（Ｓ９）。【００６４】
使用停止判定部１７は、この使用停止要求レジスタの内容と、使用停止状態レジスタの内容とから使用停止範囲を判定する（Ｓ１９）。そして使用停止判定部１７は、該使用停止範囲のストランドＣｘＳｘに対する使用停止制御信号を発行する（Ｓ１１）。【００６５】
また、使用停止判定部１７は、使用停止範囲にコアＣｘが含まれているか否かを判定し、含まれていれば停止するコアＣｘのキャッシュ１１ｏｒ１２の内容をメモリに書き戻させる（Ｓ１３）。【００６６】
書き戻し後、或いはステップ１２で使用停止範囲にコアＣｘが含まれていなければ、使用停止判定部１７は、使用停止状態レジスタの内容を使用停止判定回路３１で判定した結果に更新する（Ｓ１４）。【００６７】
更に、使用停止状態レジスタの内容にコアＣｘの停止が含まれているか否かを判定し（Ｓ１５）、含まれている場合には、当該コアＣｘが使用するインタフェイス１４ｏｒ１５を閉塞（コアＣｘからの信号を無視）する（Ｓ１６）。【００６８】
該閉塞後或いはステップ１５でコアＣｘの使用停止が含まれていなければ、外部システム制御装置２が、使用停止状態レジスタ３２を読み出し（Ｓ１７）、使用停止判定部１７が使用停止にしたハードウェア資源の縮退が実施されているか否かを判定する（Ｓ１８）。【００６９】
該縮退が行われていれば、縮退処理を完了し（Ｓ１９）、該縮退が行われていなければ、異常が発生したと認識し、所定の異常処理を行う（Ｓ２０）。【００７０】
また、図５は本システムの再起動処理のフローチャートである。【００７１】
ＰＯＲ又は再起動処理の開始の指示を受けると（Ｓ２１）、外部システム制御装置２は、使用停止要求レジスタ３３をクリアし（Ｓ２２）、装置内のメモリに記憶している故障範囲を使用停止状態レジスタ３２に書き込む（Ｓ２３）。【００７２】
そして、使用停止判定部１７は、この使用停止状態レジスタの３２の内容に、ストランドの使用停止が存在するか否かを判定し、含まれていれば、このストランドに対する使用停止を指示する（Ｓ２５）。【００７３】
該指示後或いはステップ２５でストランドの使用停止が存在しない場合、使用停止判定部１７は、使用停止状態レジスタ３２の内容に、コアの使用停止が存在するか否かを判定し（Ｓ２６）、含まれていれば、このコアに対する使用停止とクロック抑止を指示する（Ｓ２７）。【００７４】
この停止指示後或いはステップ２６でコアの使用停止が存在しなかった場合、システム１はクロックの供給等、ＰＯＲ又は再起動処理を実行する（Ｓ２８）。【００７５】
図７は、本システムにおけるクロック供給部の停止判定部の概略図である。図７に示すように、クロック供給部の停止判定部４０は、Corex_DGを反転した信号とスタート信号との論理積がレジスタ４１のセット端子に入力され、この値が１の場合に出力ＲＵＮを１とし、クロックを供給させる。【００７６】
また、コアの停止が指示され、Corex_DGが１であれば、スタート信号に関わらずセット端子への入力が０となりクロックは停止させる。【００７７】
これにより本システムは、ＰＯＲシーケンス中のクロック開始時に、使用停止状態レジスタ３２のコア内の全ストランドが使用停止状態である場合には、当該コアの使用停止を示しているため、当該コアに対するクロック停止信号を解除しないことによって使用停止コアのクロックを停止したままにする。【００７８】
以上のように、本実施形態によれば、故障範囲を示す情報と、ハードウェア使用停止手段によって故障範囲に限定したコア、ストランド処理部のみを、他のコア、ストランド処理部に影響を与えないように使用停止することが可能になる。【００７９】
また、プロセサ内部の故障範囲を通知する故障範囲判定手段と、ハードウェア資源の使用を停止させる使用停止手段とに外部システム処理装置２がアクセス可能としたことによって、プロセサのエラー状態に関係なく確実に影響範囲を特定し、確実に使用停止することが可能になる。
【図１】
0004653838.tif 000002
【図２】
0004653838.tif 000003
【図３】
0004653838.tif 000004
【図４Ａ】
0004653838.tif 000005
【図４Ｂ】
0004653838.tif 000006
【図４Ｃ】
0004653838.tif 000007
【図５】
0004653838.tif 000008
【図６】
0004653838.tif 000009
【図７】
0004653838.tif 000010