(57)【特許請求の範囲】
【請求項１】
命令制御を行う論理ＣＰＵを複数含むＣＰＵコアを複数有する演算処理装置と、前記演算処理装置に供給するデータを保持する第１の記憶装置と、診断の結果を保持する第２の記憶装置を有する情報処理装置において、
前記演算処理装置は、
前記第１の記憶装置が保持するデータの一部を保持する記憶部として、前記複数のＣＰＵコアから共有される２次キャッシュメモリと、前記複数の論理ＣＰＵから共有される１次キャッシュメモリとを有し、
前記複数のＣＰＵコアのうち、少なくともいずれか一のＣＰＵコアに含まれる複数の論理ＣＰＵのうち少なくともいずれか一の論理ＣＰＵは、
前記第１の記憶装置を診断対象として選択し、前記第１の記憶装置の診断が完了した後に、前記１次キャッシュメモリを診断対象として選択するとともに、前記１次キャッシュメモリの診断が完了した後に、前記２次キャッシュメモリを診断対象として選択する診断対象選択部と、前記選択された第１の記憶装置と２次キャッシュメモリと１次キャッシュメモリの診断を実行するとともにそれぞれの診断結果を前記第２の記憶装置に格納する診断実行部と、前記診断対象選択部が選択した診断対象のうち前記選択された２次キャッシュメモリと１次キャッシュメモリが他の論理ＣＰＵと共有されている場合には、前記選択された２次キャッシュメモリと１次キャッシュメモリを共有する複数の論理ＣＰＵのうち自身が有する診断実行部のみに前記共有された診断対象の診断を排他的に実行させる進行制御部を有することを特徴とする情報処理装置。
【請求項２】
データを保持する第１の記憶装置と、診断の結果を保持する第２の記憶装置に接続されるとともに、命令制御を行う論理ＣＰＵを複数含むＣＰＵコアを複数有する演算処理装置において、
前記演算処理装置は、
前記第１の記憶装置が保持するデータの一部を保持する記憶部として、前記複数のＣＰＵコアから共有される２次キャッシュメモリと、前記複数の論理ＣＰＵから共有される１次キャッシュメモリとを有し、
前記複数のＣＰＵコアのうち、少なくともいずれか一のＣＰＵコアに含まれる複数の論理ＣＰＵのうち少なくともいずれか一の論理ＣＰＵは、
前記第１の記憶装置を診断対象として選択し、前記第１の記憶装置の診断が完了した後に、前記１次キャッシュメモリを診断対象として選択するとともに、前記１次キャッシュメモリの診断が完了した後に、前記２次キャッシュメモリを診断対象として選択する診断対象選択部と、前記選択された第１の記憶装置と２次キャッシュメモリと１次キャッシュメモリの診断を実行するとともにそれぞれの診断結果を前記第２の記憶装置に格納する診断実行部と、前記診断対象選択部が選択した診断対象のうち前記選択された２次キャッシュメモリと１次キャッシュメモリが他の論理ＣＰＵと共有されている場合には、前記選択された２次キャッシュメモリと１次キャッシュメモリを共有する複数の論理ＣＰＵのうち自身が有する診断実行部のみに前記共有された診断対象の診断を排他的に実行させる進行制御部を有することを特徴とする演算処理装置。
【請求項３】
命令制御を行う論理ＣＰＵを複数含む複数のＣＰＵコアと、データを保持する第１の記憶装置が保持するデータの一部を保持する記憶部として、前記複数のＣＰＵコアから共有される２次キャッシュメモリと、前記複数の論理ＣＰＵから共有される１次キャッシュメモリとを有する演算処理装置と、診断の結果を保持する第２の記憶装置を有する情報処理装置の制御方法において、
前記複数のＣＰＵコアのうち、少なくともいずれか一のＣＰＵコアに含まれる複数の論理ＣＰＵのうち少なくともいずれか一の論理ＣＰＵが有する診断対象選択部が、前記第１の記憶装置を診断対象として選択するステップと、
前記一の論理ＣＰＵが有する進行制御部が、前記一の論理ＣＰＵが有する診断実行部のみに、前記選択された第１の記憶装置の診断を実行させるとともに、前記第１の記憶装置の診断結果を前記第２の記憶装置に格納させるステップと、
前記一の論理ＣＰＵが有する診断対象選択部が、前記第１の記憶装置の診断が完了した後に、前記１次キャッシュメモリを診断対象として選択するステップと、
前記一の論理ＣＰＵが有する進行制御部が、前記選択された１次キャッシュメモリを共有する複数の論理ＣＰＵのうち前記一の論理ＣＰＵが有する診断実行部のみに、前記選択された１次キャッシュメモリの診断を排他的に実行させるとともに、前記１次キャッシュメモリの診断結果を前記第２の記憶装置に格納させるステップと、
前記一の論理ＣＰＵが有する診断対象選択部が、前記１次キャッシュメモリの診断が完了した後に、前記２次キャッシュメモリを診断対象として選択するステップと、
前記一の論理ＣＰＵが有する進行制御部が、前記選択された２次キャッシュメモリを共有する複数のＣＰＵコアに含まれる複数の論理ＣＰＵのうち前記一の論理ＣＰＵが有する診断実行部のみに、前記選択された２次キャッシュメモリの診断を排他的に実行させるとともに、前記２次キャッシュメモリの診断結果を前記第２の記憶装置に格納させるステップと、
を有することを特徴とする情報処理装置の制御方法。
【請求項４】
命令制御を行う論理ＣＰＵを複数含む複数のＣＰＵコアと、データを保持する第１の記憶装置が保持するデータの一部を保持する記憶部として、前記複数のＣＰＵコアから共有される２次キャッシュメモリと、前記複数の論理ＣＰＵから共有される１次キャッシュメモリとを有する演算処理装置と、診断の結果を保持する第２の記憶装置を有する情報処理装置の制御プログラムにおいて、
前記複数のＣＰＵコアのうち、少なくともいずれか一のＣＰＵコアに含まれる複数の論理ＣＰＵのうち少なくともいずれか一の論理ＣＰＵが有する診断対象選択部が、前記第１の記憶装置を診断対象として選択するステップと、
前記一の論理ＣＰＵが有する進行制御部が、前記一の論理ＣＰＵが有する診断実行部のみに、前記選択された第１の記憶装置の診断を実行させるとともに、前記第１の記憶装置の診断結果を前記第２の記憶装置に格納させるステップと、
前記一の論理ＣＰＵが有する診断対象選択部が、前記第１の記憶装置の診断が完了した後に、前記１次キャッシュメモリを診断対象として選択するステップと、
前記一の論理ＣＰＵが有する進行制御部が、前記選択された１次キャッシュメモリを共有する複数の論理ＣＰＵのうち前記一の論理ＣＰＵが有する診断実行部のみに、前記選択された１次キャッシュメモリの診断を排他的に実行させるとともに、前記１次キャッシュメモリの診断結果を前記第２の記憶装置に格納させるステップと、
前記一の論理ＣＰＵが有する診断対象選択部が、前記１次キャッシュメモリの診断が完了した後に、前記２次キャッシュメモリを診断対象として選択するステップと、
前記一の論理ＣＰＵが有する進行制御部が、前記選択された２次キャッシュメモリを共有する複数のＣＰＵコアに含まれる複数の論理ＣＰＵのうち前記一の論理ＣＰＵが有する診断実行部のみに、前記選択された２次キャッシュメモリの診断を排他的に実行させるとともに、前記２次キャッシュメモリの診断結果を前記第２の記憶装置に格納させるステップと、
を有することを特徴とする情報処理装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、演算処理装置、情報処理装置の制御方法及びプログラムに関し、特に、内部に共有資源が存在するＣＰＵにおける診断を、排他処理を適切に行って実施することが可能な情報処理装置、演算処理装置、情報処理装置の制御方法及びプログラムに関する。
【背景技術】
【０００２】
従来より、起動時に自装置を構成する各部の自己診断を行い、不具合を有する部分があればその部分を切り離して起動したり、起動を中止したりする情報処理装置が知られている。このような自己診断を行うことにより、情報処理装置が不具合を有したまま稼動することを回避することができ、情報処理装置の信頼性を高めることができる。
【０００３】
情報処理装置が自己診断処理を行う場合、共有資源の排他処理が必要となる場合がある。例えば、マルチプロセッサシステムにおいて主記憶が複数のＣＰＵ（Central  Processing  Unit）によって共有されている場合、主記憶の診断は、一つのＣＰＵのみが行ったり、複数のＣＰＵによって排他的に行う必要がある。
【０００４】
一般に、主記憶の診断には、複数のテストパターンを書き込み、同じテストパターンが読み出されるか否かを調べる手法が用いられる。この手法では、複数のＣＰＵが同時に診断を実施すると、あるＣＰＵによって書き込まれたテストパターンが他のＣＰＵによって上書きされ、誤った診断結果が下される可能性があるため、一つのＣＰＵのみが診断を行ったり、複数のＣＰＵが排他的に診断を行わなければならない。
【０００５】
特許文献１では、複数のＣＰＵによって共有される記憶装置を一つのＣＰＵが診断する処理を短時間で完了することができ、診断を担当するＣＰＵに不具合が発生した場合に、これをシステム制御装置が検出し、他のＣＰＵに診断を肩代わりさせることが可能な技術が開示されている。
【０００６】
【特許文献１】特開平２−３１１９５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、近年、プロセス技術の進展にともなって、一つのダイ上に複数のＣＰＵコアを実装したマルチコアＣＰＵの利用が広まりつつある。マルチコアＣＰＵは、単純に複数のＣＰＵを一つのダイにまとめただけでなく、キャッシュの共有化等により、ＣＰＵ間のやりとりを高速化させ、性能の向上も図られている。
【０００８】
また、ＣＰＵを仮想的に複数のＣＰＵに見せかけ、複数のプログラムの並列実行性能を高めるマルチスレッド技術をＣＰＵコアに組み込み、さらに、性能を向上させたマルチコアＣＰＵも登場しつつある。
【０００９】
かかるマルチコアＣＰＵを備えた情報処理装置を安定して稼動させるには、起動時に各ＣＰＵコアとこれらによって共有されるキャッシュ等の共有資源の診断を行う必要がある。このとき、共有資源については排他的に診断が行われるように制御する必要があるが、特許文献１に記載されているような従来の自己診断に係る技術では、ＣＰＵ内部に共有資源が存在することが想定されていないため、適切に排他処理を行って共有資源の診断を行うことができなかった。
【００１０】
本発明は、上記に鑑みてなされたものであって、マルチスレッドに対応したマルチコアＣＰＵのように内部に共有資源が存在するＣＰＵの診断を、排他処理を適切に行って実施することが可能な情報処理装置、演算処理装置、情報処理装置の制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、本発明は、当該の情報処理装置を構成する各部が正常であるか否かを診断する診断プログラムを記憶し、それぞれが独立してプログラムを実行可能な複数の命令制御手段および前記複数の命令制御手段により共有される共有資源を備えたＣＰＵと、前記診断プログラムによる診断の結果を記憶する記憶手段とを有する情報処理装置であって、前記ＣＰＵは、前記診断プログラムに従って前記共有資源の診断を行う場合に、該共有資源を共有する命令制御手段の一つのみが該共有資源を診断するように制御することを特徴とする。
【００１２】
この発明によれば、ＣＰＵ内の共有資源を複数の命令制御手段の一つのみが診断を担当するように構成したので、排他処理を適切に行って共有資源の診断を実施することができる情報処理装置を得ることができる。
【００１３】
また、本発明は、上記の発明において、前記ＣＰＵは、前記共有資源の診断を行っていた前記命令制御手段に異常が発生した場合に、該共有資源を共有する他の命令制御手段が該共有資源を診断するように制御することを特徴とする。
【００１４】
この発明によれば、共有資源の診断を担当する命令制御手段に異常が発生した場合に、他の命令制御手段に診断を肩代わりさせるように構成したので、診断処理に高い信頼性を備える情報処理装置を得ることができる。
【００１５】
また、本発明は、上記の発明において、前記情報処理装置は、サービスプロセッサと接続され、前記命令制御手段は、前記診断プログラムに従って前記各部の診断を行う前に、前記サービスプロセッサによって診断されることを特徴とする。
【００１６】
この発明によれば、診断処理に先立って、サービスプロセッサによって命令制御手段の基礎的な動作確認を行うように構成したので、診断処理の信頼性を高めることができる。
【００１７】
また、本発明は、それぞれが独立してプログラムを実行可能な複数の論理ＣＰＵとして動作するＣＰＵコアを複数備えたＣＰＵを有する情報処理装置において、該情報処理装置を構成する装置が正常であることを診断するために前記論理ＣＰＵにより実行される診断プログラムであって、予め決められた順序に従って診断対象の装置を順次選択する診断対象選択手順と、前記診断対象選択手順によって選択された装置が他の論理ＣＰＵと共有されている場合に、前記装置の診断を排他的に行う担当が当該の論理ＣＰＵであるか否かを判定する進行制御手順と、前記進行制御手順により前記装置の診断を排他的に行う担当が当該の論理ＣＰＵであると判定された場合、もしくは、前記装置が他の論理ＣＰＵと共有されていない場合に、前記装置の診断を実行し、診断結果を記憶手段に記憶させる診断実行手順とを含んだことを特徴とする。
【００１８】
この発明によれば、ＣＰＵ内の共有資源を一つの論理ＣＰＵのみが診断を担当するように構成したので、排他処理を適切に行って共有資源の診断を実施することができる診断プログラムを得ることができる。
【００１９】
また、本発明は、上記の発明において、前記進行制御手順は、他の論理ＣＰＵと共有されている装置の診断を排他的に行う担当が当該の論理ＣＰＵでないと判断した場合に、該装置の診断結果が前記記憶手段に記憶されるまで、該装置の診断を排他的に行う担当が当該の論理ＣＰＵであるか否かの判定を再試行し続けることを特徴とする。
【００２０】
また、本発明は、上記の発明において、前記進行制御手順は、他の論理ＣＰＵと共有されている装置の診断を排他的に行う担当が当該の論理ＣＰＵでないと判断した場合に、該装置の診断結果が前記記憶手段に記憶されるまで監視し、前記記憶手段に記憶されていれば、前記診断対象選択手順に次の診断対象を選択させることを特徴とする。
【００２１】
この発明によれば、共有資源の診断を他の論理ＣＰＵが担当しているときに、共有資源の診断が完了するまでは、共有資源の診断を肩代わりする必要があるか否かを監視するように構成したので、診断処理に高い信頼性をもたせることができる。
【００２２】
また、本発明は、上記の発明において、前記診断実行手順は、診断の結果、前記ＣＰＵコアの一つに含まれ、該ＣＰＵコアの論理ＣＰＵによって共有されている装置の異常を検出した場合は、該ＣＰＵコアが異常である旨を前記記憶手段に記憶させ、前記進行制御手順は、当該の論理ＣＰＵを含むＣＰＵコアが異常である旨が前記記憶手段に記憶された場合は、当該の論理ＣＰＵにおける診断処理を中止させることを特徴とする。
【００２３】
また、本発明は、上記の発明において、前記診断実行手順は、診断の結果、前記ＣＰＵに含まれ、該ＣＰＵが備えるＣＰＵコアによって共有されている装置の異常を検出した場合は、該ＣＰＵが異常である旨を前記記憶手段に記憶させ、前記進行制御手順は、当該の論理ＣＰＵを含むＣＰＵが異常である旨が前記記憶手段に記憶された場合は、当該の論理ＣＰＵにおける診断処理を中止させることを特徴とする。
【００２４】
この発明によれば、共有資源に異常が検出された場合に、その共有資源を利用するＣＰＵコアもしくはＣＰＵに異常があることを記憶手段に記憶するように構成したので、異常があるＣＰＵコアもしくはＣＰＵを切り離して情報処理装置を安定して稼動させることができる。
【００２５】
また、本発明は、それぞれが独立してプログラムを実行可能な複数の論理ＣＰＵとして動作するＣＰＵコアを複数備えたＣＰＵを有する情報処理装置において、該情報処理装置を構成する装置が正常であることを診断する診断方法であって、予め決められた順序に従って診断対象の装置を順次選択する診断対象選択工程と、前記診断対象選択工程によって選択された装置が複数の論理ＣＰＵによって共有されている場合に、該装置を共有する論理ＣＰＵを一つ選択し、選択した論理ＣＰＵに該装置の診断を行わせる進行制御工程とを含んだことを特徴とする。
【００２６】
この発明によれば、ＣＰＵ内の共有資源を一つの論理ＣＰＵのみが診断を担当するように構成したので、排他処理を適切に行って共有資源の診断を実施することができる診断方法を得ることができる。
【００２７】
また、本発明は、上記の発明において、前記進行制御工程は、論理ＣＰＵによって共有されている装置を診断させるために選択した論理ＣＰＵに異常が発生した場合は、該装置を共有する他の論理ＣＰＵを一つ選択し、選択した論理ＣＰＵに該装置の診断を行わせることを特徴とする。
【００２８】
この発明によれば、共有資源の診断を担当する論理ＣＰＵに異常が発生した場合に、他の論理ＣＰＵに診断を肩代わりさせるように構成したので、診断処理に高い信頼性を備える診断方法を得ることができる。
【００２９】
また、本発明は、複数の処理部と、前記複数の処理部により共有される共有資源とを備えたＣＰＵであって、前記共有資源の診断時に、前記複数の処理部のうち、一つの処理部が診断プログラムを実行して前記共有資源の診断を行い、他の処理部は前記一つの処理部による前記供給資源の診断終了を待つように動作することを特徴とする。
【００３０】
この発明によれば、ＣＰＵ内の共有資源を一つの処理部のみが診断を担当するように構成したので、排他処理を適切に行って共有資源の診断を実施することができるＣＰＵを得ることができる。
【発明の効果】
【００３１】
本発明によれば、ＣＰＵ内の共有資源を複数の命令制御手段の一つのみが診断を担当するように構成したので、排他処理を適切に行って共有資源の診断を実施することができる情報処理装置を得ることができるという効果を奏する。
【００３２】
また、本発明によれば、共有資源の診断を担当する命令制御手段に異常が発生した場合に、他の命令制御手段に診断を肩代わりさせるように構成したので、診断処理に高い信頼性を備える情報処理装置を得ることができるという効果を奏する。
【００３３】
また、本発明によれば、診断処理に先立って、サービスプロセッサによって命令制御手段の基礎的な動作確認を行うように構成したので、診断処理の信頼性を高めることができるという効果を奏する。
【００３４】
また、本発明によれば、ＣＰＵ内の共有資源を一つの論理ＣＰＵのみが診断を担当するように構成したので、排他処理を適切に行って共有資源の診断を実施することができる診断プログラムを得ることができるという効果を奏する。
【００３５】
また、本発明によれば、共有資源の診断を他の論理ＣＰＵが担当しているときに、共有資源の診断が完了するまでは、共有資源の診断を肩代わりする必要があるか否かを監視するように構成したので、診断処理に高い信頼性をもたせることができるという効果を奏する。
【００３６】
また、本発明によれば、共有資源に異常が検出された場合に、その共有資源を利用するＣＰＵコアもしくはＣＰＵに異常があることを記憶手段に記憶するように構成したので、異常があるＣＰＵコアもしくはＣＰＵを切り離して情報処理装置を安定して稼動させることができるという効果を奏する。
【００３７】
また、本発明によれば、ＣＰＵ内の共有資源を一つの論理ＣＰＵのみが診断を担当するように構成したので、排他処理を適切に行って共有資源の診断を実施することができる診断方法を得ることができるという効果を奏する。
【００３８】
また、本発明によれば、共有資源の診断を担当する論理ＣＰＵに異常が発生した場合に、他の論理ＣＰＵに診断を肩代わりさせるように構成したので、診断処理に高い信頼性を備える診断方法を得ることができるという効果を奏する。
【００３９】
また、本発明によれば、ＣＰＵ内の共有資源を一つの処理部のみが診断を担当するように構成したので、排他処理を適切に行って共有資源の診断を実施することができるＣＰＵを得ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００４０】
以下に、本発明に係る情報処理装置、演算処理装置、情報処理装置の制御方法及びプログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００４１】
まず、本実施例に係る情報処理装置の構成について説明する。図１は、本実施例に係る情報処理装置１０の構成を示す図である。同図に示すように、情報処理装置１０は、ＣＰＵ１００ａ〜１００ｋと、主記憶２００と、入出力装置３００と、ネットワークインターフェース装置４００と、シリアル通信インターフェース装置５００と、ＲＯＭ６００と、ＳＲＡＭ７００とをバスを介して接続して構成される。
【００４２】
ＣＰＵ１００ａ〜１００ｋは、マルチスレッドに対応したＣＰＵコアを複数備えたマルチコアＣＰＵであり、それぞれ、＃１〜＃ｋの番号で識別される。これらのＣＰＵは、いずれも同様の構成を有するので、ここでは、ＣＰＵ１００ａを例にして詳細な構成について説明する。なお、情報処理装置１０は、必ずしも複数のＣＰＵを備える必要はなく、単一のＣＰＵのみを備えた構成とすることもできる。
【００４３】
図２は、ＣＰＵ１００ａの構成を示す図である。同図に示すように、ＣＰＵ１００ａは、ＣＰＵコア１１０ａ〜１１０ｍと、Ｌ２キャッシュ１２０とを有する。ＣＰＵコア１１０ａ〜１１０ｍは、それぞれが、完結したＣＰＵとして動作可能なＣＰＵコアであり、＃１−１〜＃１−ｍの番号で識別される。なお、「−」で区切られた最初の番号は、そのＣＰＵコアが含まれるＣＰＵの番号であり、２番目の番号は、ＣＰＵ内においてそのＣＰＵコアに割り当てられた連番である。
【００４４】
ＣＰＵコア１１０ａは、命令制御部１１１と、レジスタ１１３ａ〜１１３ｎと、ＴＬＢ（Translation  Lookaside  Buffer）１１４と、Ｌ１キャッシュ１１５とを有する。命令制御部１１１は、各種演算や入出力制御等を実行する処理部である。命令制御部１１１は、マルチスレッドに対応しているため、ＣＰＵコア１１０ａは、情報処理装置１０上で動作するオペレーティングシステムやアプリケーションプログラムからはｎ個のＣＰＵであるかのようにみえる（以下、この見かけ上存在するＣＰＵを「論理ＣＰＵ」という）。
【００４５】
ＣＰＵ１００ａにおいては、各論理ＣＰＵがプログラムを実行する主体となる。ＣＰＵ１００ａにはｍ個のＣＰＵコアが存在し、それぞれのＣＰＵコアがｎ個の論理ＣＰＵとして動作するので、ＣＰＵ１００ａは、並列に、ｍ×ｎ個の命令を実行しているかのように見える。
【００４６】
レジスタ１１３ａ〜１１３ｎは、命令制御部１１１が各種演算等で使用するデータやカウンタ等を記憶する記憶装置であり、＃１−１−１〜＃１−１−ｎの番号で識別される論理ＣＰＵ１１２ａ〜１１２ｎごとに存在する。なお、論理ＣＰＵに割り当てられた番号の最後の「−」よりも前の部分は、その論理ＣＰＵが含まれるＣＰＵコアの番号であり、それ以降の部分は、ＣＰＵコア内においてその論理ＣＰＵに割り当てられた連番である。
【００４７】
ＴＬＢ１１４は、仮想記憶空間と実記憶空間の変換のための変換表を保持する装置であり、Ｌ１キャッシュ１１５は、主記憶２００と論理ＣＰＵ１１２ａ〜１１２ｎの間の入出力を高速化させるための一次キャッシュである。ＴＬＢ１１４とＬ１キャッシュ１１５は、論理ＣＰＵ１１２ａ〜１１２ｎによって共有される。
【００４８】
ＣＰＵコア１１０ｂ〜１１０ｍの構成は、ＣＰＵコア１１０ａと同様である。そして、Ｌ２キャッシュ１２０は、ＣＰＵコア１１０ａ〜１１０ｍに内蔵されているＬ１キャッシュ１１５を補助する２次キャッシュであり、ＣＰＵコア１１０ａ〜１１０ｍによって共有される。
【００４９】
このように、ＣＰＵ１００ａは、ＣＰＵコア１１０ａ〜１１０ｍがＬ２キャッシュ１２０を共有し、各ＣＰＵコアに含まれる論理ＣＰＵ１１２ａ〜１１２ｎが、ＴＬＢ１１４とＬ１キャッシュ１１５を共有する構成となっている。
【００５０】
ここで、情報処理装置１０の起動時にＣＰＵ１００ａの自己診断処理を行う場合について考える。ＴＬＢ１１４とＬ１キャッシュ１１５は、各ＣＰＵコアの論理ＣＰＵ１１２ａ〜１１２ｎに共有されるため、診断処理同士の干渉による誤診断を回避するために、各ＣＰＵコアごとに論理ＣＰＵの一つのみが診断を担当するように制御する必要がある。
【００５１】
また、Ｌ２キャッシュ１２０は、ＣＰＵコア１１０ａ〜１１０ｍによって共有されるため、診断処理同士の干渉による誤診断を回避するために、ある一時点においてＣＰＵコア１１０ａ〜１１０ｍのいずれかに含まれる論理ＣＰＵの一つのみが診断を担当するように制御する必要がある。
【００５２】
なお、上記のＣＰＵ１００ａ〜１００ｋの構成は、一例であり、キャッシュ構成等を変更することができる。例えば、２次キャッシュがＣＰＵコアごとに存在する構成とすることもできるし、ＴＬＢやキャッシュ以外の装置を共有するように構成することもできる。
【００５３】
図１の説明に戻って、主記憶２００は、ＣＰＵ１００ａ〜１００ｋが各種情報処理を実行するために必要なデータやプログラムが展開されるメモリである。入出力装置３００は、ハードディスク装置等の入出力装置であり、ネットワークインターフェース装置４００は、ネットワークを介して情報をやりとりするためのインターフェース装置である。
【００５４】
シリアル通信インターフェース装置５００は、ＲＳ−２３２Ｃ等のシリアル通信接続手段によって他の装置を接続するためのインターフェース装置であり、情報処理装置１０は、シリアル通信インターフェース装置５００を介してサービスプロセッサ２０と接続される。サービスプロセッサ２０は、情報処理装置１０の運用管理のための各種処理を行う装置である。なお、情報処理装置１０とサービスプロセッサ２０は、シリアル通信接続手段によって接続することを限定するわけではない。
【００５５】
ＲＯＭ６００は、読み取り専用のメモリであり、診断プログラム６１０を記憶する。診断プログラム６１０は、情報処理装置１０の起動時に各論理ＣＰＵに自己診断処理を実行させるためのプログラムである。
【００５６】
ＳＲＡＭ７００は、書き換え可能な不揮発メモリであり、診断プログラム６１０による診断結果等をＣＰＵ診断情報７１０と機器診断情報７２０として記憶する。ＣＰＵ診断情報７１０は、ＣＰＵ１００ａ〜１００ｋとそれらのＣＰＵに含まれるＣＰＵコアと論理ＣＰＵの診断に係る情報であり、機器診断情報７２０は、その他の装置の診断に係る情報である。
【００５７】
なお、情報処理装置１０の構成は、上記の通りである必要はなく、用途等に応じて様々な構成をとることができる。例えば、図１に図示した以外の装置を接続することもできるし、診断プログラム６１０、ＣＰＵ診断情報７１０および機器診断情報７２０を他の記憶手段に記憶させることもできる。
【００５８】
図３は、図１に示した診断プログラム６１０の構成を示す図である。診断プログラム６１０は、情報処理装置１０の起動時に各論理ＣＰＵによって読み取られ、自己診断処理を実現させるプログラムである。以下、論理ＣＰＵ１１２ａにて診断プログラム６１０が実行される場合を例にして、診断プログラム６１０の詳細について説明する。
【００５９】
図３に示すように、診断プログラム６１０は、診断対象選択部６１１と、進行制御部６１２と、診断実行部６１３とを有する。
【００６０】
診断対象選択部６１１は、予め決められた順序に従って診断対象の装置を順次選択する処理部である。具体的には、診断対象選択部６１１は、レジスタ１１３ａ、ＴＬＢ１１４、主記憶２００、Ｌ１キャッシュ１１５、Ｌ２キャッシュ１２０、ＣＰＵ１００ａの外部に接続されている装置という順序で診断対象の装置を選択する。
【００６１】
診断対象選択部６１１は、原則的に、論理ＣＰＵ１１２ａに近い装置から順に診断対象として選択するが、主記憶２００については、より論理ＣＰＵ１１２ａに近いＬ１キャッシュ１１５およびＬ２キャッシュ１２０に先行して診断対象として選択する。これは、本実施例の構成では、Ｌ１キャッシュ１１５およびＬ２キャッシュ１２０を、論理ＣＰＵ１１２ａから直接制御することができず、主記憶２００への書き込みと読み取りを通じてしかＬ１キャッシュ１１５およびＬ２キャッシュ１２０の診断を行うことができないため、事前に主記憶２００の診断を完了しておく必要があるからである。
【００６２】
進行制御部６１２は、診断の進行を制御する制御部である。診断対象選択部６１１によって選択された診断対象が、論理ＣＰＵ１１２ａによって占有されている装置（例えば、レジスタ１１３ａ）であった場合、進行制御部６１２は、他の論理ＣＰＵの処理を考慮せずに診断を実行させる。
【００６３】
また、診断対象選択部６１１によって選択された診断対象が、論理ＣＰＵ１１２ａ〜１１２ｎによって共有されている装置（例えば、ＴＬＢ１１４）であった場合、進行制御部６１２は、自身を実行する論理ＣＰＵが診断を行うべきと判断した場合のみ診断を実行させる。
【００６４】
共有されている装置を複数の論理ＣＰＵが同時に診断した場合、診断処理同士が干渉して誤った診断結果が得られる可能性がある。そこで、進行制御部６１２は、他の論理ＣＰＵと共有されている装置が診断対象である場合、一つの論理ＣＰＵのみが排他的に診断を行うように制御をおこなう。以下の説明では、ある装置が複数の論理ＣＰＵによって共有されている場合に（論理ＣＰＵを含むＣＰＵコアによって共有されている場合を含む）、その装置の診断を担当する論理ＣＰＵをマスタＣＰＵと呼ぶこととする。
【００６５】
進行制御部６１２は、自身を実行する論理ＣＰＵがマスタＣＰＵとなるか否かの判断を当該の論理ＣＰＵに割り当てられた番号に基づいて行う。具体的には、自身を実行する論理ＣＰＵが、診断対象の装置を共有する正常な論理ＣＰＵの中で最も若い番号が割り当てられている場合に、当該の論理ＣＰＵがマスタＣＰＵであると判断する。このように番号を利用する手法は、複雑な同期処理等が不要で、容易に実現が可能である。
【００６６】
上記の例では、論理ＣＰＵ１１２ａは、診断対象の装置を共有する正常な論理ＣＰＵの中で最も若い番号を割り当てられているので、進行制御部６１２は、自身を実行する論理ＣＰＵをマスタＣＰＵであると判断して診断を実行させる。ここで、論理ＣＰＵ１１２ａに異常が発見されていた場合は、次に若い番号が割り当てられている正常な論理ＣＰＵにて実行されている診断プログラム６１０の進行制御部６１２が同様の判断を行う。
【００６７】
そして、進行制御部６１２は、自身を実行する論理ＣＰＵがマスタＣＰＵでないと判断した場合、診断対象の装置の診断が完了するまで、自身を実行する論理ＣＰＵがマスタＣＰＵか否かの判断を繰り返し試行する。これにより、マスタＣＰＵに異常が発生した場合に、他の論理ＣＰＵが新たにマスタＣＰＵとなって診断を肩代わりすることが可能になる。
【００６８】
この方式では、マスタＣＰＵの故障時に他の論理ＣＰＵに診断を肩代わりさせる機能を特別な装置（例えば、特許文献１におけるシステム制御装置）を用いず、ソフトウェアのみによって実現することができ、信頼性の高い情報処理装置を安価に提供することが可能になる。
【００６９】
そして、進行制御部６１２は、自身を実行する論理ＣＰＵがマスタＣＰＵでないと判断した場合、診断対象の装置の診断が正常に完了していれば、診断対象選択部６１１に次の選択対象を選択させる。また、進行制御部６１２は、診断対象の異常が検出されていた場合、当該の論理ＣＰＵは正常に動作することができないと判断して診断処理を中止させる。
【００７０】
進行制御部６１２は、診断対象選択部６１１によって選択された診断対象が、ＣＰＵコア１１０ａ〜１１０ｍによって共有されている装置（例えば、Ｌ２キャッシュ１２０）であった場合や、ＣＰＵ１００ａ〜１００ｋによって共有されている装置（例えば、主記憶２００）であった場合も同様の排他制御を行う。
【００７１】
すなわち、診断対象の装置が複数のＣＰＵコアによって共有されている場合は、その装置を共有する正常なＣＰＵコアに含まれる正常な論理ＣＰＵの中で最も若い番号を有する論理ＣＰＵがマスタＣＰＵとして診断を担当するように制御する。また、診断対象の装置が複数のＣＰＵコアによって共有されている場合は、その装置を共有する正常なＣＰＵが備える正常なＣＰＵコアに含まれる正常な論理ＣＰＵの中で最も若い番号を有する論理ＣＰＵがマスタＣＰＵとして診断を担当するように制御する。
【００７２】
診断実行部６１３は、診断対象の装置の診断を行って、診断結果をＣＰＵ診断情報７１０と機器診断情報７２０に格納する処理部である。
【００７３】
診断実行部６１３は、ＣＰＵの内部の装置に異常を発見した場合、その装置を備える論理ＣＰＵ、ＣＰＵコアもしくはＣＰＵが異常である旨をＣＰＵ診断情報７１０に記録する。例えば、レジスタ１１３ａに異常を発見した場合は、論理ＣＰＵ１１２ａが異常である旨をＣＰＵ診断情報７１０に記録し、ＴＬＢ１１４に異常を発見した場合は、ＣＰＵコア１１０ａが異常である旨をＣＰＵ診断情報７１０に記録し、Ｌ２キャッシュ１２０に異常を発見した場合は、ＣＰＵ１００ａが異常である旨をＣＰＵ診断情報７１０に記録する。
【００７４】
また、論理ＣＰＵ、ＣＰＵコアもしくはＣＰＵが備える装置が正常であると判断した場合、その論理ＣＰＵ、ＣＰＵコアもしくはＣＰＵが正常である旨をＣＰＵ診断情報７１０に記録する。例えば、レジスタ１１３ａが正常であると判断された場合は、論理ＣＰＵ１１２ａが正常である旨をＣＰＵ診断情報７１０に記録し、ＴＬＢ１１４とＬ１キャッシュ１１５が正常であると判断された場合は、ＣＰＵコア１１０ａが正常である旨をＣＰＵ診断情報７１０に記録し、Ｌ２キャッシュ１２０が正常であると判断された場合は、ＣＰＵ１００ａが正常である旨をＣＰＵ診断情報７１０に記録する。
【００７５】
なお、ＣＰＵ１００ａが正常と判断されるために、ＣＰＵコア１１０ａ〜１１０ｍの全てが正常と判断される必要はなく、異常があると判断されたＣＰＵコアは縮退処理されて動作しないように制御される。同様に、ＣＰＵコア１１０ａが正常と判断されるために、論理ＣＰＵ１１２ａ〜１１２ｎの全てが正常と判断される必要はなく、異常があると判断された論理ＣＰＵは縮退処理されて動作しないように制御される。
【００７６】
図４は、ＣＰＵ診断情報７１０のデータ構成の一例を示す図である。同図に示すように、ＣＰＵ診断情報７１０は、ＣＰＵごと、ＣＰＵコアごとおよび論理ＣＰＵごとに診断結果を保持する。診断結果は、自己診断処理の開始時に「０」にリセットされ、診断実行部６１３によって当該のＣＰＵ、ＣＰＵコアもしくは論理ＣＰＵが正常であると診断された場合は「１」が設定され、異常があると診断された場合は「２」が設定される。
【００７７】
次に、情報処理装置１０が起動時に行う自己診断の処理手順について説明する。図５は、自己診断の大まかな流れを示す図である。
【００７８】
同図に示すように、まず、情報処理装置１０は、ＳＲＡＭ７００に記憶されている診断情報をクリアする（ステップＳ１０１）。そして、サービスプロセッサ２０が、情報処理装置１０の基本的な動作確認を行う（ステップＳ１０２）。この動作確認により、ＣＰＵ１００ａ〜１００ｋが自己診断処理に必要な基本的な動作を行うことができる程度に正常であることが確認される。
【００７９】
この後、ＣＰＵ１００ａ〜１００ｋに含まれる各論理ＣＰＵが診断プログラム６１０を読み込んで各ＣＰＵの診断を実行し（ステップＳ１０３）、さらに、他の機器の診断を実行する（ステップＳ１０４）。なお、既に説明したように、Ｌ１キャッシュ１１５およびＬ２キャッシュ１２０を診断するに際に主記憶２００へのアクセスが必要であり、これらの診断の前に主記憶２００の診断を実施しておく必要があるため、主記憶２００の診断は、ステップＳ１０３の中で実行される。
【００８０】
図６−１〜６−４は、診断プログラム６１０によるＣＰＵの自己診断処理および主記憶２００の診断の処理手順を示す図である。この処理手順は、図５に示したステップＳ１０３を詳細に表したものである。診断プログラム６１０は、各論理ＣＰＵにおいて実行されるが、ここでは、論理ＣＰＵ１１２ａにおいて実行される診断プログラム６１０に注目して説明を進めることとする。
【００８１】
同図に示すように、まず、診断対象選択部６１１が、レジスタ１１３ａを診断対象として選択する。レジスタ１１３ａは、論理ＣＰＵ１１２ａに占有されており、他の論理ＣＰＵと共有されていないため、進行制御部６１２は、他の論理ＣＰＵを考慮することなく診断実行部６１３にレジスタ１１３ａの診断を実行させる（ステップＳ２０１）。
【００８２】
ここで、診断が正常に完了しなかった場合（ステップＳ２０２肯定）、診断実行部６１３は、ＣＰＵ診断情報７１０に論理ＣＰＵ１１２ａが異常である旨を記憶させ（ステップＳ２０３）、自己診断処理を異常終了させる。
【００８３】
一方、診断が正常に完了した場合は（ステップＳ２０２否定）、論理ＣＰＵ１１２ａに含まれる装置の診断が正常に完了したことになるので、診断実行部６１３は、ＣＰＵ診断情報７１０に論理ＣＰＵ１１２ａが正常である旨を記憶させ（ステップＳ２０４）、処理を継続する。
【００８４】
続いて、診断対象選択部６１１が、ＴＬＢ１１４を診断対象として選択する。ＴＬＢ１１４は、論理ＣＰＵ１１２ａ〜１１２ｎによって共有されているため、進行制御部６１２は、後述する状況確認処理を行って、自身を実行する論理ＣＰＵ１１２ａがマスタＣＰＵとなるか否か等を確認する（ステップＳ２０５）。
【００８５】
図７は、状況確認処理の処理手順を示す図である。まず、診断対象選択部６１１は、ＣＰＵ診断情報７１０を参照して、自身を実行する論理ＣＰＵ１１２ａを含むＣＰＵであるＣＰＵ１００ａの診断結果を取得する（ステップＳ３０１）。
【００８６】
ここで、診断結果が異常を示すものである場合は（ステップＳ３０２異常）、自己診断処理を異常終了させる。また、診断結果が正常を示すものである場合は（ステップＳ３０２正常）、ＣＰＵ１００ａ内の装置の診断が完了しているので、自己診断処理を正常に終了させる。
【００８７】
そして、ＣＰＵ１００ａの診断結果が、診断が完了していないことを示すものである場合は（ステップＳ３０１未診断）、ＣＰＵ診断情報７１０を参照して、自身を実行する論理ＣＰＵ１１２ａを含むＣＰＵコアであるＣＰＵコア１１０ａの診断結果を取得する（ステップＳ３０３）。
【００８８】
ここで、診断結果が異常を示すものである場合は（ステップＳ３０４異常）、自己診断処理を異常終了させる。また、ＣＰＵコア１１０ａの診断結果が、診断が完了していないことを示すもの、もしくは、正常を示すものである場合は（ステップＳ３０４未診断もしくは正常）、機器診断情報７２０を参照して、診断対象の装置の診断結果を取得する（ステップＳ３０５）。
【００８９】
そして、この診断結果が、診断が完了していないことを示すものである場合は（ステップＳ３０６未診断）、自身を実行している論理ＣＰＵ１１２ａが診断対象の装置に対してマスタＣＰＵとなるか否かを判定する（ステップＳ３０７）。
【００９０】
図６−１に戻って、進行制御部６１２は、状況確認処理を行った後、診断対象であるＴＬＢ１１４の診断結果が異常を示すものである場合は（ステップＳ２０６異常）、自己診断処理を異常終了させる。また、診断結果が正常を示すものである場合は（ステップＳ２０６正常）、次の装置の診断を行うためステップＳ２１３へ遷移する。
【００９１】
そして、診断の結果、診断が完了していないことを示すものである場合は（ステップＳ２０６未診断）、自身を実行する論理ＣＰＵ１１２ａがマスタＣＰＵでなければ（ステップＳ２０７否定）、ステップＳ２０５へ復帰して状況確認処理を再実行する。一方、論理ＣＰＵ１１２ａがマスタＣＰＵであれば（ステップＳ２０７肯定）、進行制御部６１２は、診断実行部６１３にＴＬＢ１１４の診断を実行させる（ステップＳ２０８）。
【００９２】
ＴＬＢ１１４の診断は、図８に示すように、複数のテストパターンを書き込み、読み出した値が期待する値と一致するか否かを比較することで行う。
【００９３】
ここで、診断が正常に完了しなかった場合（ステップＳ２０９肯定）、診断実行部６１３は、機器診断情報７２０にＴＬＢ１１４が異常である旨を記憶させ（ステップＳ２１０）、ＣＰＵ診断情報７１０にＣＰＵコア１１０ａが異常である旨を記憶させ（ステップＳ２１１）、自己診断処理を異常終了させる。
【００９４】
一方、診断が正常に完了した場合は（ステップＳ２０９否定）、機器診断情報７２０にＴＬＢ１１４が正常である旨を記憶させ（ステップＳ２１２）、次の装置の診断へと移行する。
【００９５】
ＴＬＢ１１４の診断が完了した後、診断対象選択部６１１が、主記憶２００を診断対象として選択する。主記憶２００は、ＣＰＵ１００ａ〜１００ｋによって共有されているため、進行制御部６１２は、状況確認処理を行って、自身を実行する論理ＣＰＵ１１２ａがマスタＣＰＵとなるか否か等を確認する（ステップＳ２１３）。
【００９６】
そして、進行制御部６１２は、状況確認処理を行った後、診断対象である主記憶２００の診断結果が正常を示すものである場合は（ステップＳ２１４正常）、次の装置の診断を行うためステップＳ２１８へ遷移する。
【００９７】
そして、診断の結果、診断が完了していないことを示すものである場合は（ステップＳ２１４未診断）、自身を実行する論理ＣＰＵ１１２ａがマスタＣＰＵでなければ（ステップＳ２１５否定）、ステップＳ２１３へ復帰して状況確認処理を再実行する。
【００９８】
一方、論理ＣＰＵ１１２ａがマスタＣＰＵであれば（ステップＳ２１５肯定）、進行制御部６１２は、診断実行部６１３に主記憶２００の診断を実行させ（ステップＳ２１６）、診断実行部６１３は、診断結果を機器診断情報７２０に記憶させる（ステップＳ２１７）。
【００９９】
主記憶２００の診断は、図９に示すように、メモリ診断回路による診断と、ＣＰＵからの読み込みと書き込みによる診断とを組み合わせて行う。
【０１００】
主記憶２００の診断が完了した後、診断対象選択部６１１が、Ｌ１キャッシュ１１５を診断対象として選択する。Ｌ１キャッシュ１１５は、論理ＣＰＵ１１２ａ〜１１２ｎによって共有されているため、進行制御部６１２は、状況確認処理を行って、自身を実行する論理ＣＰＵ１１２ａがマスタＣＰＵとなるか否か等を確認する（ステップＳ２１８）。
【０１０１】
そして、進行制御部６１２は、状況確認処理を行った後、診断対象であるＬ１キャッシュ１１５の診断結果が異常を示すものである場合は（ステップＳ２１９異常）、自己診断処理を異常終了させる。また、診断結果が正常を示すものである場合は（ステップＳ２１９正常）、次の装置の診断を行うためステップＳ２２７へ遷移する。
【０１０２】
そして、診断結果が、診断が完了していないことを示すものである場合は（ステップＳ２１９未診断）、自身を実行する論理ＣＰＵ１１２ａがマスタＣＰＵでなければ（ステップＳ２２０否定）、ステップＳ２１８へ復帰して状況確認処理を再実行する。一方、論理ＣＰＵ１１２ａがマスタＣＰＵであれば（ステップＳ２２０肯定）、進行制御部６１２は、診断実行部６１３にＬ１キャッシュ１１５の診断を実行させる（ステップＳ２２１）。
【０１０３】
ここで、診断が正常に完了しなかった場合（ステップＳ２２２肯定）、診断実行部６１３は、機器診断情報７２０にＬ１キャッシュ１１５が異常である旨を記憶させ（ステップＳ２２３）、ＣＰＵ診断情報７１０にＣＰＵコア１１０ａが異常である旨を記憶させ（ステップＳ２２４）、自己診断処理を異常終了させる。
【０１０４】
一方、診断が正常に完了した場合は（ステップＳ２２２否定）、機器診断情報７２０にＬ１キャッシュ１１５が正常である旨を記憶させ（ステップＳ２２５）、さらに、ＣＰＵコア１１０ａに含まれる装置の診断が正常に完了したことになるので、ＣＰＵ診断情報７１０にＣＰＵコア１１０ａが正常である旨を記憶させ（ステップＳ２２６）、次の装置の診断へと移行する。
【０１０５】
Ｌ１キャッシュ１１５の診断が完了した後、診断対象選択部６１１が、Ｌ２キャッシュ１２０を診断対象として選択する。Ｌ２キャッシュ１２０は、ＣＰＵコア１１０ａ〜１１０ｍによって共有されているため、進行制御部６１２は、状況確認処理を行って、自身を実行する論理ＣＰＵ１１２ａがマスタＣＰＵとなるか否か等を確認する（ステップＳ２２７）。
【０１０６】
そして、進行制御部６１２は、状況確認処理を行った後、診断対象であるＬ２キャッシュ１２０の診断結果が異常を示すものである場合は（ステップＳ２２８異常）、自己診断処理を異常終了させる。また、診断結果が正常を示すものである場合は（ステップＳ２２８正常）、次の装置の診断を行うためステップＳ２３６へ遷移する。
【０１０７】
そして、診断の結果、診断が完了していないことを示すものである場合は（ステップＳ２２８未診断）、自身を実行する論理ＣＰＵ１１２ａがマスタＣＰＵでなければ（ステップＳ２２９否定）、ステップＳ２２７へ復帰して状況確認処理を再実行する。一方、論理ＣＰＵ１１２ａがマスタＣＰＵであれば（ステップＳ２２９肯定）、進行制御部６１２は、診断実行部６１３にＬ２キャッシュ１２０の診断を実行させる（ステップＳ２３０）。
【０１０８】
Ｌ２キャッシュ１２０（およびＬ１キャッシュ１１５）の診断は、図１０に示すように、主記憶２００への書き込みと読み込みを通して、キャッシュが正しく保持されているか否かを確認することにより行われる。
【０１０９】
ここのＬ２キャッシュ１２０の診断で、診断が正常に完了しなかった場合（ステップＳ２３１肯定）、診断実行部６１３は、機器診断情報７２０にＬ２キャッシュ１２０が異常である旨を記憶させ（ステップＳ２３２）、ＣＰＵ診断情報７１０にＣＰＵ１００ａが異常である旨を記憶させ（ステップＳ２３３）、自己診断処理を異常終了させる。
【０１１０】
一方、診断が正常に完了した場合は（ステップＳ２３１否定）、機器診断情報７２０にＬ２キャッシュ１２０が正常である旨を記憶させ（ステップＳ２３４）、さらに、ＣＰＵコア１１０ａに含まれる装置の診断が正常に完了したことになるので、ＣＰＵ診断情報７１０にＣＰＵコア１１０ａが正常である旨を記憶させる（ステップＳ２３５）。
【０１１１】
こうして、論理ＣＰＵ１１２ａが診断すべき装置の診断が完了した後、進行制御部６１２は、他のＣＰＵコアの診断が完了するのを待ち受ける。具体的には、まず、状況確認処理を行って、ＣＰＵ１００ａの診断が完了しているか否かと、自身を実行する論理ＣＰＵ１１２ａがＣＰＵ１００ａに対してマスタＣＰＵとなるか否かを確認する（ステップＳ２３６）。
【０１１２】
ここで、ＣＰＵ１００ａの診断が完了していれば、処理を終了する。ＣＰＵ１００ａの診断が完了しておらず、自身を実行する論理ＣＰＵ１１２ａがマスタＣＰＵであれば（ステップ２３７肯定）、ＣＰＵ診断情報７１０を参照してＣＰＵコア１１０ａ〜１１０ｍの診断が完了しているか否かを確認する。そして、ＣＰＵコア１１０ａ〜１１０ｍ診断が完了していれば（ステップ２３８肯定）、ＣＰＵ診断情報７１０にＣＰＵ１００ａが正常である旨を記憶させて処理を終了する（ステップＳ２３９）。
【０１１３】
自身を実行する論理ＣＰＵ１１２ａがマスタＣＰＵでない場合（ステップＳ２３７否定）、もしくは、ＣＰＵコア１１０ａ〜１１０ｍ診断が完了していない場合は（ステップＳ２３８否定）、ステップＳ２３６に復帰して状況確認処理から再実行する。
【産業上の利用可能性】
【０１１４】
以上のように、本発明に係る情報処理装置、演算処理装置、情報処理装置の制御方法及びプログラムは、自己診断よる安定稼動を得るために有用であり、特に、内部に共有資源が存在するＣＰＵの診断を、排他処理を適切に行って実施することが必要な場合に適している。
【図面の簡単な説明】
【０１１５】
【図１】図１は、本実施例に係る情報処理装置の構成を示す図である。
【図２】図２は、ＣＰＵの構成を示す図である。
【図３】図３は、診断プログラムの構成を示す図である。
【図４】図４は、ＣＰＵ診断情報のデータ構成の一例を示す図である。
【図５】図５は、自己診断の大まかな流れを示す図である。
【図６−１】図６−１は、診断プログラムによるＣＰＵの自己診断処理の処理手順を示す図である。
【図６−２】図６−２は、診断プログラムによる主記憶の診断処理の処理手順を示す図である。
【図６−３】図６−３は、診断プログラムによるＣＰＵの自己診断処理の処理手順を示す図である。
【図６−４】図６−４は、診断プログラムによるＣＰＵの自己診断処理の処理手順を示す図である。
【図７】図７は、状況確認処理の処理手順を示す図である。
【図８】図８は、ＴＬＢの診断の処理手順を示す図である。
【図９】図９は、主記憶の診断の処理手順を示す図である。
【図１０】図１０は、Ｌ１キャッシュおよびＬ２キャッシュの診断の処理手順を示す図である。
【符号の説明】
【０１１６】
１０  情報処理装置
２０  サービスプロセッサ
１００ａ〜１００ｋ  ＣＰＵ
１１０ａ〜１１０ｍ  ＣＰＵコア
１１１  命令制御部
１１２ａ〜１１２ｎ  論理ＣＰＵ
１１３ａ〜１１３ｎ  レジスタ
１１４  ＴＬＢ
１１５  Ｌ１キャッシュ
１２０  Ｌ２キャッシュ
２００  主記憶
３００  入出力装置
４００  ネットワークインターフェース装置
５００  シリアル通信インターフェース装置
６００  ＲＯＭ
６１０  診断プログラム
６１１  診断対象選択部
６１２  進行制御部
６１３  診断実行部
７００  ＳＲＡＭ
７１０  ＣＰＵ診断情報
７２０  機器診断情報
【図１】
0004576433.tif 000002
【図２】
0004576433.tif 000003
【図３】
0004576433.tif 000004
【図４】
0004576433.tif 000005
【図５】
0004576433.tif 000006
【図６−１】
0004576433.tif 000007
【図６−２】
0004576433.tif 000008
【図６−３】
0004576433.tif 000009
【図６−４】
0004576433.tif 000010
【図７】
0004576433.tif 000011
【図８】
0004576433.tif 000012
【図９】
0004576433.tif 000013
【図１０】
0004576433.tif 000014