(57)【要約】      （修正有）【課題】ＯＳから隠蔽されているＣＰＵの配下のメモリに発生した障害に、ＯＳが適切に対処することができる情報処理装置を提供する。【解決手段】配下のハードウェアに発生した障害の障害情報を、内部に有する情報保持域に格納する複数のプロセッサ３０１，３０２，３０３，３０４のうち、オペレーティング・システムから隠蔽されたプロセッサ３０２、３０３、３０４の情報保持域において、障害情報を検出する検出手段１１０と、検出された障害情報を、オペレーティング・システムがアクセスできる記憶領域に書き込む書き込み手段１３０と、を備える。【選択図】図１
2017167689.tif 000002
【特許請求の範囲】
【請求項１】
配下のハードウェアに発生した障害の障害情報を、内部に有する情報保持域に格納する複数のプロセッサのうち、オペレーティング・システムから隠蔽されたプロセッサの前記情報保持域において、前記障害情報を検出する検出手段と、
検出された前記障害情報を、前記オペレーティング・システムがアクセスできる記憶領域に書き込む書き込み手段と、
を備える情報処理装置。
【請求項２】
前記複数のプロセッサは、配下のハードウェアに障害が発生したことを検知した場合に、前記オペレーティング・システムを実行するプロセッサに前記オペレーティング・システムの動作を中断させ、
前記検出手段は、前記オペレーティング・システムの動作が中断した場合に前記障害情報を検出し、
前記書き込み手段は、検出された前記障害情報を前記記憶領域に書き込み、
前記情報処理装置は、前記障害情報が前記記憶領域に書き込まれた後に前記オペレーティング・システムの動作を再開させるシステム制御手段をさらに備え、
前記オペレーティング・システムは、動作を再開し、前記記憶領域を探索することで前記障害情報を検出する、
請求項１に記載の情報処理装置。
【請求項３】
前記記憶領域は、前記複数のプロセッサのうち前記オペレーティング・システムから隠蔽されていないプロセッサが内部に有する前記情報保持域であり、
前記情報処理装置は、前記記憶領域のうち、情報が格納されていない記憶領域を、前記書き込み手段が前記障害情報を書き込む書き込み先として決定する決定手段をさらに備え、
前記書き込み手段は、前記書き込み先として決定された前記記憶領域に前記障害情報を書き込む、
請求項１または２に記載の情報処理装置。
【請求項４】
前記オペレーティング・システムを実行するプロセッサは、前記オペレーティング・システムの制御により、前記記憶領域に格納されている情報に応じた処理を実行し、当該処理が完了した後、前記情報を消去し、
前記決定手段は、前記書き込み先の決定において、全ての前記記憶領域に情報が格納されている場合に、前記オペレーティング・システムが中断している場合は前記オペレーティング・システムの動作を開始させ、所定の時間後に再び前記書き込み先の決定を行う、
請求項３に記載の情報処理装置。
【請求項５】
前記検出手段が検出した前記障害情報が所定の条件に適合するかを判定する障害解析手段をさらに備え、
前記書き込み手段は、当該障害情報が前記所定の条件に適合すると判定された場合は、前記障害情報を前記記憶領域へ書き込み、当該障害情報が前記所定の条件に適合しないと判定された場合は、前記障害情報の前記記憶領域への書き込みを行わない、
請求項１から４のいずれか一項に記載の情報処理装置。
【請求項６】
配下のハードウェアに発生した障害の障害情報を、内部に有する情報保持域に格納する複数のプロセッサのうち、オペレーティング・システムから隠蔽されたプロセッサの前記情報保持域において、前記障害情報を検出し、
検出された前記障害情報を、前記オペレーティング・システムがアクセスできる記憶領域に書き込む、
情報処理方法。
【請求項７】
配下のハードウェアに障害が発生したことを検知した場合に、前記オペレーティング・システムを実行するプロセッサに前記オペレーティング・システムの動作を中断させ、
前記オペレーティング・システムの動作が中断した場合に前記障害情報を検出し、
検出された前記障害情報を前記記憶領域に書き込み、
前記障害情報が前記記憶領域に書き込まれた後に前記オペレーティング・システムの動作を再開させる、
請求項６に記載の情報処理方法。
【請求項８】
配下のハードウェアに発生した障害の障害情報を、内部に有する情報保持域に格納する複数のプロセッサのうち、オペレーティング・システムから隠蔽されたプロセッサの前記情報保持域において、前記障害情報を検出する検出処理と、
検出された前記障害情報を、前記オペレーティング・システムがアクセスできる記憶領域に書き込む書き込み処理と、
をコンピュータに実行させるプログラム。
【請求項９】
前記検出処理は前記オペレーティング・システムの動作が中断した場合に実行され、
前記書き込み処理が検出された前記障害情報を前記記憶領域に書き込んだ後に前記オペレーティング・システムの動作を再開させるシステム制御処理を、
前記コンピュータに実行させる、請求項８に記載のプログラム。
【請求項１０】
前記記憶領域は、前記複数のプロセッサのうち前記オペレーティング・システムから隠蔽されていないプロセッサが内部に有する前記情報保持域であり、
前記記憶領域のうち、情報が格納されていない記憶領域を、前記書き込み手段が前記障害情報を書き込む書き込み先として決定する決定処理を前記コンピュータに実行させ、
前記書き込み処理は、前記書き込み先として決定された前記記憶領域に前記障害情報を書き込む処理である、
請求項８または９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ハードウェアの障害の情報を処理する技術に関する。
【背景技術】
【０００２】
データを高速に処理することができるデータベースシステムとして、インメモリデータベース（Ｉｎ‐Ｍｅｍｏｒｙ  Ｄａｔａｂａｓｅ；ＩＭＤＢ）と呼ばれるデータベースシステムが普及している。インメモリデータベースは、メインメモリデータベース（Ｍａｉｎ  Ｍｅｍｏｒｙ  Ｄａｔａｂａｓｅ；ＭＭＤＢ）とも呼ばれる。インメモリデータベースでは、ディスクではなく、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）に接続されたメインメモリに、データを格納することで、データへのアクセスの高速化を可能にする。ただし、１つのＣＰＵにつき管理できるメモリの容量は有限であるので、その容量を超えるデータを扱うためには、インメモリデータベースを運用する情報処理装置は複数のＣＰＵを備える必要がある。したがって、インメモリデータベースは一般的に、複数のＣＰＵを使用して構築される。
【０００３】
インメモリデータベースは、たとえば情報処理装置のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ；オペレーティング・システム）上でソフトウェアが実行されることによって構築される。インメモリデータベースを構築するのに使用されるソフトウェアの中には、ＯＳが認識するＣＰＵの数によってライセンス料が決まるソフトウェアがある。一方で、データの読み書きにおいては、ＯＳがすべてのＣＰＵを認識している必要はない。というのは、例えばファームウェアが、ＯＳが認識していないＣＰＵの配下のメモリにアクセスし、そのメモリの記憶領域をＯＳに対して仮想的に提供できればよいからである。
【０００４】
このため、一部のＣＰＵを、ＯＳから認識させないようにしつつ、ＣＰＵの配下のメモリを利用できるようにすることで、ライセンス料を抑えつつ容量の大きなインメモリデータベースを構築する技術が存在する（特許文献１）。このように、ＣＰＵをＯＳから認識させないようにすることは、「ＯＳから隠蔽する」と表現されることがある。
【０００５】
特許文献１は、ＣＰＵコアを隠蔽（パーキング）する方法の一例について記載している。係る方法では、隠蔽する対象であるＣＰＵ（論理プロセッサ）を、システム管理モード（Ｓｙｓｔｅｍ  Ｍａｎａｇｅｍｅｎｔ  Ｍｏｄｅ；ＳＭＭ）へと移行させ、ファームウェアに制御させることで、ＯＳからの隠蔽を実現する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２０１５−５１３７３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＣＰＵの一つの実施態様において、ＣＰＵの配下のメモリに障害が発生した場合、当該ＣＰＵは、その障害に関する情報、すなわち障害情報を、ＣＰＵ自身の内部に備える、情報を保持する記憶領域（以下、情報保持域と呼ぶ。たとえばレジスタ）に書き込む。ＯＳは、当該情報保持域にアクセスすることで、この障害情報を検出することができる。障害情報を検出したＯＳは、その障害情報に応じて適切な処理を行うことができる。
【０００８】
しかし、上述のように、ＯＳから隠蔽されたＣＰＵの、配下のメモリに障害が発生した場合、障害を検知したＣＰＵは、その障害の障害情報を、ＯＳが認識しない情報保持域に格納する。この場合は、ＯＳはその障害情報が格納された情報保持域にアクセスすることができないため、その障害情報を検出できない。つまり、ＯＳは、隠蔽されたＣＰＵの配下のメモリに発生した障害に適切に対処することができない、という問題がある。
【０００９】
本発明はこのような問題に鑑みてなされたものであり、ＯＳから隠蔽されているＣＰＵの配下のメモリに発生した障害に、ＯＳが適切に対処することができる情報処理装置を提供することを目的の一つとする。
【課題を解決するための手段】
【００１０】
本発明の一態様に係る情報処理装置は、配下のハードウェアに発生した障害の障害情報を、内部に有する情報保持域に格納する複数のプロセッサのうち、オペレーティング・システムから隠蔽されたプロセッサの前記情報保持域において、前記障害情報を検出する検出手段と、検出された前記障害情報を、前記オペレーティング・システムがアクセスできる記憶領域に書き込む書き込み手段と、を備える。
【００１１】
本発明の一態様に係る情報処理方法は、配下のハードウェアに発生した障害の障害情報を、内部に有する情報保持域に格納する複数のプロセッサのうち、オペレーティング・システムから隠蔽されたプロセッサの前記情報保持域において、前記障害情報を検出し、検出された前記障害情報を、前記オペレーティング・システムがアクセスできる記憶領域に書き込む。
【００１２】
本発明の一態様に係るプログラムは、配下のハードウェアに発生した障害の障害情報を、内部に有する情報保持域に格納する複数のプロセッサのうち、オペレーティング・システムから隠蔽されたプロセッサの前記情報保持域において、前記障害情報を検出する検出処理と、検出された前記障害情報を、前記オペレーティング・システムがアクセスできる記憶領域に書き込む書き込み処理と、をコンピュータに実行させる。
【発明の効果】
【００１３】
本発明によれば、ＯＳから隠蔽されているＣＰＵの配下のメモリに発生した障害に、ＯＳが適切に対処することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態に係る情報処理装置の構成を示すブロック図である。
【図２】第１の実施形態に係る情報処理装置の動作の流れを示すフローチャートである。
【図３】本発明の第２の実施形態に係る情報処理装置の構成を示すブロック図である。
【図４】第２の実施形態に係るハードウェア群の構成を示すブロック図である。
【図５】第２の実施形態に係る情報処理装置の起動時にＢＩＯＳが行う処理を示すフローチャートである。
【図６】第２の実施形態に係る情報処理装置のメモリに障害が発生した場合の、ＢＩＯＳの動作の流れを示すシーケンス図である。
【図７】第２の実施形態に係る情報処理装置のＯＳの動作の流れを示すシーケンス図である。
【図８】本発明の第３の実施形態に係る情報処理装置の構成を示すブロック図である。
【図９】第３の実施形態に係る情報処理装置の動作の流れを示すフローチャートである。
【図１０】本発明の各実施形態に係る構成要素に適用可能なコンピュータの構成を例示する図である。
【図１１】第３の実施形態の情報処理装置の各構成要素を回路で構成した場合を表すブロック図である。
【図１２】第２の実施形態のＢＩＯＳの各構成要素を回路で構成した場合を表すブロック図である。
【発明を実施するための形態】
【００１５】
＜＜第１の実施形態＞＞
本発明の第１の実施形態に係る情報処理装置について詳細に説明する。
【００１６】
＜構成＞
図１は、本実施形態に係る情報処理装置１０１の構成を示すブロック図である。情報処理装置１０１は、ハードウェア群３０を備える。また、ＯＳ２０、およびファームウェア１０が、ハードウェア群３０のリソースの一部によって動作する。便宜のため、図１では、ハードウェアおよびソフトウェアおよびファームウェアがそれぞれブロックで示されている。
【００１７】
ハードウェア群３０は複数のＣＰＵ３０１〜３０４および複数のメモリ３４１〜３４４を含む（ＣＰＵおよびメモリの数は、本実施形態の例で示される数に限定されない）。ＣＰＵ３０１〜３０４はそれぞれ、メモリ３４１〜３４４のそれぞれに接続される。ＣＰＵ３０１〜３０４はそれぞれ、配下のメモリへのデータの格納および配下のメモリからのデータの読み出しを行う。
【００１８】
ＣＰＵ３０１〜３０４は、それぞれの内部に情報保持域を有する（情報保持域３２１〜３２４）。ＣＰＵ３０１〜３０４は、配下のメモリに障害が発生したことを検知した場合、その障害の情報、すなわち障害情報を生成し、生成した障害情報を内部の情報保持域３２１〜３２４に格納する。障害情報は、例えば、障害が発生したメモリの識別子および障害が発生した箇所（アドレス）、障害の種類、等である。なお、この格納の動作を行う機能は、たとえば、Ｉｎｔｅｌ（登録商標）社の製品であるＩｎｔｅｌ（登録商標）  Ｘｅｏｎ（登録商標）  Ｐｒｏｃｅｓｓｏｒ  Ｅ７によってサポートされている。
【００１９】
ファームウェア１０は、ＯＳ２０とは独立して動作可能なソフトウェアであり、例えばＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）である。ファームウェア１０は、たとえば、ＣＰＵ３０１〜３０４によりファームウェア１０の動作を開始させる信号が発信されることで開始されるよう、設計される。
【００２０】
ファームウェア１０を実行するＣＰＵは、ハードウェア群３０の各構成要素にアクセスすることが可能である。また、ファームウェア１０を実行するＣＰＵは、検出機能および書き込み機能を提供する。別の言い方では、ファームウェア１０を実行するＣＰＵは、検出部１１０および書き込み部１３０として動作する。
【００２１】
以下、ファームウェア１０を実行するＣＰＵが行う動作を、ファームウェア１０またはファームウェア１０が有する機能が行う動作として記述する。
【００２２】
検出部１１０は、ＯＳに認識されていないＣＰＵの情報保持域（図１に示す例では、情報保持域３２２〜３２４）を探索し、格納されている障害情報を検出する。上述のように、情報保持域３２２〜３２４のうち、障害を検出したＣＰＵの情報保持域には、そのＣＰＵにより障害情報が格納されている。
【００２３】
書き込み部１３０は、検出部１１０が検出した障害情報を、ＯＳに認識されている情報保持域（図１に示す例では、情報保持域３２１）に書き込む。
【００２４】
ＯＳ２０は、ハードウェア群３０のリソースによって動作するソフトウェアである。以下、ＯＳ２０を実行するＣＰＵが行う動作を、ＯＳ２０が行う動作として記述する。
【００２５】
ＯＳ２０は、ハードウェア群３０のリソースを運用し、データベースを構築する機能を提供するソフトウェアを、稼働させる。
【００２６】
また、ＯＳ２０は、特定の信号を検知すると、ＯＳ２０が認識しているＣＰＵの情報保持域に格納された情報を調べる。この機能は、たとえばＯＳの１つであるＬｉｎｕｘ（登録商標）において、ＭＣＥ（Ｍａｃｈｉｎｅ  Ｃｈｅｃｋ  Ｅｘｃｅｐｔｉｏｎ）ハンドリングとして定義される機能である。上記の特定の信号はＭＣＥ（Ｍａｃｈｉｎｅ  Ｃｈｅｃｋ  Ｅｘｃｅｐｔｉｏｎ）と呼ばれる。ＭＣＥは、ハードウェアに何らかの問題が生じたことを検知したＣＰＵが発生させるイベントである。ＯＳ２０は、ＭＣＥに代表される特定の信号の発生を検知すると、ＯＳ２０が認識しているＣＰＵの情報保持域に格納された情報を調べる。ＯＳ２０は、情報保持域から障害情報を検出した場合、その障害情報に応じた処理（例えば、ビット・エラーの訂正等）を実行する。そして、ＯＳ２０は、当該処理を実行した後、当該障害情報を、情報保持域から消去する。
【００２７】
本実施形態では、あるＣＰＵがＯＳから認識されていない状態のことを、そのＣＰＵが“隠蔽されて”いる状態である、と記載する。具体的には、ＢＩＯＳが次のような動作をすることにより、ＣＰＵはＯＳ２０から隠蔽される。
【００２８】
システム起動時に、ＢＩＯＳは、システムに組み込むＣＰＵに関する情報をＡＣＰＩ（Ａｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ）テーブルと呼ばれるテーブルに書き込む。ＣＰＵに関する情報とは、個々のＣＰＵの番号（識別子）や、ＣＰＵの総数などのことである。ＣＰＵに関する情報は、予め決められたフォーマットに従ってＢＩＯＳによってテーブルに書き込まれる。このとき、ＢＩＯＳは、隠蔽されるべきＣＰＵの情報を含めずに、ＯＳに認識させるＣＰＵの情報を書き込む。ＯＳ２０はこの情報に基づいてＣＰＵを認識するため、情報がＡＣＰＩテーブルに書き込まれなかったＣＰＵは、ＯＳ２０によって認識されない。このような設定により、ＢＩＯＳ４０は、隠蔽されるべきＣＰＵをＯＳ２０から隠蔽することができる。なお、隠蔽されるべきＣＰＵは、予め設計やユーザの指定等によって決められていればよい。
【００２９】
本実施形態では、ＯＳから認識されているＣＰＵを可視ＣＰＵ、ＯＳから認識されていない（隠蔽されている）ＣＰＵを隠蔽ＣＰＵと表記する。本実施形態では、ＣＰＵ３０１が可視ＣＰＵであり、ＣＰＵ３０２〜３０４が、隠蔽ＣＰＵである。
【００３０】
なお、ＣＰＵが隠蔽されていても、ＯＳ２０は、そのＣＰＵの配下のメモリを、可視ＣＰＵの配下のメモリと同様に使用することができる。ＯＳ２０によるメモリ３４１〜３４４の使用の態様は、一般的な方法を採用すればよい。すなわち、ＯＳ２０は、たとえばＢＩＯＳを介してメモリ３４１〜３４４を使用する。具体的には、ＢＩＯＳは、情報処理装置１０１の起動時にメモリのそれぞれに対して物理アドレスを割り当て、そのアドレスの範囲をＯＳ２０等に提供すればよい。ＯＳ２０は、メモリを使用する際は、提供された範囲のアドレスを用いて、ＢＩＯＳに入出力を指示する。ＢＩＯＳは、当該アドレスにアクセスし、結果をＯＳ２０に返却する。このような態様により、ＯＳ２０はメモリ３４１〜３４４を使用可能である。
【００３１】
本発明の実施形態において、情報処理装置１０１は、可視ＣＰＵおよび隠蔽ＣＰＵをそれぞれ少なくとも１つ含んでいればよい。本発明の実施形態における隠蔽ＣＰＵおよび可視ＣＰＵの数は、図１に示す例に限定されず、１つ以上のいくつであってもよい。
【００３２】
＜動作＞
図２は、本実施形態に係る情報処理装置１０１の動作の流れを示すフローチャートである。
【００３３】
ある隠蔽ＣＰＵが、その配下のメモリの障害を検知した場合（ステップＳ２１においてＹＥＳ）、障害を検知した隠蔽ＣＰＵは、その障害の障害情報を内部の情報保持域に格納する（ステップＳ２２）。このとき、たとえば当該隠蔽ＣＰＵが、ファームウェア１０の動作を開始させる信号を発信することで、ファームウェア１０が動作を開始する（ステップＳ２３）。ファームウェア１０の動作は、必ずしも上述の信号を契機にしなくともよいが、隠蔽ＣＰＵによる障害の検知から速やかに実行されるのが好ましい。ファームウェア１０の動作が速やかに開始されれば、ＯＳが当該障害を認識するまでの時間が短くなり、ＯＳが当該障害のあるメモリを使用する等のリスクを抑えることができる。
【００３４】
ファームウェア１０が動作を開始すると、ステップＳ２４において、検出部１１０が、情報保持域３２１〜３２４を探索し、隠蔽ＣＰＵの情報保持域に格納された障害情報を検出する。検出部１１０が探索する情報保持域は、隠蔽ＣＰＵの情報保持域３２２〜３２４のみでもよい。その場合、検出部１１０は、情報保持域３２２〜３２４が隠蔽ＣＰＵの情報保持域であることを示す情報を、図示しない記憶部等から取得すればよい。
【００３５】
検出部１１０によって障害情報が検出されると、書き込み部１３０は、検出された障害情報を可視ＣＰＵ３０１の情報保持域３２１に書き込む（ステップＳ２５）。書き込み部１３０は、可視ＣＰＵがいずれであるか、あるいは、障害情報をどこに書き込むか、を示す情報を、図示しない記憶部等から取得すればよい。
【００３６】
なお、ステップＳ２４において隠蔽ＣＰＵの情報保持域に障害情報がなかった場合は、ファームウェア１０はステップＳ２５を実行しなくてよい。
【００３７】
ファームウェア１０は、ステップＳ２５が完了したら、ＭＣＥを発生させてもよい。これにより、ＯＳ２０は、障害情報が可視ＣＰＵ３０１の情報保持域に格納されてから遅滞なく障害ハンドリングを行うことができる。
【００３８】
＜効果＞
本実施形態によれば、ＯＳ２０は、障害ハンドリングによって、隠蔽されているＣＰＵの配下のメモリに発生した障害の障害情報を取得することができる。その理由は、ファームウェア１０が、隠蔽されているＣＰＵの情報保持域に格納された障害情報を、隠蔽されていないＣＰＵの情報保持域に格納させることで、ＯＳ２０が障害情報にアクセスできるからである。したがって、本情報処理装置によって、ＯＳから隠蔽されているＣＰＵの配下のメモリに発生した障害に、ＯＳが適切に対処することができる。
【００３９】
＜＜第２の実施形態＞＞
次に、第１の実施形態の各構成要素を具体化した例として、本発明の第２の実施形態に係る情報処理装置１０２について詳細に説明する。
【００４０】
＜構成＞
図３は、本発明の第２の実施形態に係る情報処理装置１０２の構成を示すブロック図である。情報処理装置１０２は、ハードウェア群５０を備える。また、ＯＳ２１、およびＢＩＯＳ４０が、ハードウェア群５０のリソースの一部によって動作する。便宜のため、図３では、ハードウェアおよびソフトウェアおよびファームウェアがそれぞれブロックで示されている。
【００４１】
図４は、ハードウェア群５０の構成を示すブロック図である。ハードウェア群５０は、ＣＰＵ５０１〜５０４を有する。ＣＰＵ５０１〜５０４はそれぞれ、配下のメモリに接続される（メモリ５４１〜５４４）。
【００４２】
ＣＰＵ５０１〜５０４はそれぞれ、情報保持域であるＭＳＲ（Ｍｏｄｅｌ  Ｓｐｅｃｉｆｉｃ  Ｒｅｇｉｓｔｅｒ）５２１〜５２４と、１つ以上のＣＰＵコアとを有する（ＣＰＵコア５１１〜５１４）。ＣＰＵコア５１１〜５１４は、ＣＰＵ５０１〜５０４における命令の処理を行う。たとえば、ＣＰＵコア５１１〜５１４は、配下のメモリ５４１〜５４４へのデータの格納および配下のメモリ５４１〜５４４からのデータの読み出しを行う。また、ＣＰＵコア５１１〜５１４は、配下のメモリで発生した障害の情報、すなわち障害情報を、自身のＣＰＵ５０１〜５０４内のＭＳＲ５２１〜５２４に格納する。
【００４３】
メモリ５４１〜５４４は、それぞれ、１つ以上のメモリモジュールによって実現される。たとえば、メモリ５４１〜５４４は、基板上に集積された複数のＤＩＭＭ（Ｄｕａｌ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）によって実現される（ＤＩＭＭ５５１〜５５４）。ＤＩＭＭ５５１〜５５４は、基板上に複数のＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のチップを搭載したメモリモジュールである。ＣＰＵコア５１１〜５１４は、それぞれ、自身に関連づけられるＤＩＭＭ５５１〜５５４に対してアクセスを行う。
【００４４】
図３を参照して、ＯＳ２１は、第１の実施形態のＯＳ２０と同様の機能を有する。また、本実施形態では、ＯＳ２１を実行するＣＰＵは、システム管理モード（Ｓｙｓｔｅｍ  Ｍａｎａｇｅｍｅｎｔ  Ｍｏｄｅ；ＳＭＭ）をサポートする。システム管理モードは、ＣＰＵが実行している全てのプログラム（ＯＳ２１を含む）が保留され、ＢＩＯＳ４０が動作するモードである。システム管理モードをサポートするＣＰＵの例としては、Ｉｎｔｅｌ（登録商標）社やＡｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ（登録商標）社から市販されているｘ８６ベース・プロセッサが挙げられる。ＯＳ２１を実行するＣＰＵは、システム管理割り込み（Ｓｙｓｔｅｍ  Ｍａｎａｇｅｍｅｎｔ  Ｉｎｔｅｒｒｕｐｔｓ；ＳＭＩ）と呼ばれる割り込みを検知すると、情報処理装置１０２をシステム管理モードへと移行させる。
【００４５】
ＢＩＯＳ４０は、ＯＳ２１とは独立して動作可能なファームウェアである。図３に示すように、ＢＩＯＳ４０を実行するＣＰＵは、第１の実施形態で説明した検出部１１０、書き込み部１３０としての動作を実行可能である。さらに、ＢＩＯＳ４０を実行するＣＰＵは、システム制御部１４０、記憶部１５０、障害解析部１６０、および決定部１７０としても動作する。
【００４６】
以下、便宜のため、ＢＩＯＳ４０を実行するＣＰＵの動作を、ＢＩＯＳ４０の各部の動作として記述する。
【００４７】
システム制御部１４０は、ＣＰＵコアを隠蔽する設定を行う。隠蔽の設定の方法は、第１の実施形態で説明した方法と同様でよい。本実施形態では、隠蔽されたＣＰＵコアを「隠蔽ＣＰＵコア」、隠蔽されないＣＰＵコアを「可視ＣＰＵコア」と表記する。本実施形態では、隠蔽ＣＰＵコアはＣＰＵコア５１２〜５１４の全てであり、可視ＣＰＵコアは、ＣＰＵコア５１１の全てである。本実施形態において、全てのＣＰＵコアが隠蔽ＣＰＵコアであるＣＰＵを隠蔽ＣＰＵと呼ぶ。また、少なくとも１つの可視ＣＰＵコアを含むＣＰＵを、可視ＣＰＵと呼ぶ。本実施形態では、隠蔽ＣＰＵはＣＰＵ５０２〜５０４、可視ＣＰＵはＣＰＵ５０１である。
【００４８】
システム制御部１４０はまた、ＣＰＵコア５１１〜５１４が、障害を検出した場合に、ＭＣＥの代わりにＳＭＩを発生させるよう、ＣＰＵコア５１１〜５１４の動作の設定をする。この設定は、Ｉｎｔｅｌ（登録商標）  Ｘｅｏｎ（登録商標）  Ｐｒｏｃｅｓｓｏｒ  Ｅ７でサポートされる機能である、ＥＭＣＡ  Ｇｅｎ２（Ｅｎｈａｎｃｅｄ  Ｍａｃｈｉｎｅ  Ｃｈｅｃｋ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｇｅｎｅｒａｔｉｏｎ  ２）を用いることによって実現できる。
【００４９】
障害解析部１６０は、ＳＭＩの発生原因を分析する。ＳＭＩの発生原因の分析は、ハードウェアに障害が発生したかどうかを調べる工程を含む。この場合、障害解析部１６０は、それぞれのＣＰＵ５０１〜５０４のＭＳＲに格納される情報を解析してもよい。解析においては、障害解析部１６０は、検出部１１０と協働してもよい。具体的には、障害解析部１６０は、検出部１１０に各ＣＰＵの情報保持域を探索させることで、情報保持域に障害情報があるか否かを調べればよい。
【００５０】
障害情報が隠蔽ＣＰＵのＭＳＲから検出された場合、障害解析部１６０は、検出された障害情報が、特定の障害情報であるかどうかを判定する。特定の障害情報とは、たとえば、ＯＳ２１に認識させるべき障害情報として定義された所定の障害情報である。
【００５１】
ＯＳ２１に認識させるべき障害情報として考えられる一般的な障害情報の例としては、検出されたメモリエラーのうち、訂正されなかった（ｕｎｃｏｒｒｅｃｔｅｄ）メモリエラーの発生情報が挙げられる。一般に、このようなメモリエラーには、ソフトウェアによって回復が可能な（ｒｅｃｏｖｅｒａｂｌｅ）ものや、更なる障害を回避するためにシステムのリセットを必要とする重大なものが含まれる。ソフトウェアによって回復が可能なメモリエラーは特に、ＳＲＡＯ（Ｓｏｆｔｗａｒｅ  Ｒｅｃｏｖｅｒａｂｌｅ  Ａｃｔｉｏｎ  Ｏｐｔｉｏｎａｌ）エラーと呼ばれることがある。
【００５２】
障害解析部１６０は、検出部１１０に、特定の障害情報が該当する条件を予め与え、条件に適合する情報を検出させることで、特定の障害情報を抽出してもよい。
【００５３】
このようにして、隠蔽ＣＰＵのＭＳＲに格納された特定の障害情報は、障害解析部１６０および検出部１１０により検出される。
【００５４】
記憶部１５０は、可視ＣＰＵコアおよび隠蔽ＣＰＵコアの識別子の情報、および、可視ＣＰＵのＭＳＲの各々における記録の有無を示す情報を記憶する。可視ＣＰＵコアおよび隠蔽ＣＰＵコアの識別子の情報は、システム制御部１４０が、隠蔽の設定を行った時に該情報を記録することで、記憶される。ＭＳＲの各々における記録の有無の情報は、検出部１１０が、ＭＳＲの各々を探索した際に該情報を記録することで、記憶されうる。
【００５５】
決定部１７０は、書き込み部１３０が障害情報を書き込む書き込み先となるＣＰＵを決定する。決定部１７０は、記憶部１５０で記憶された可視ＣＰＵの番号から、少なくとも１つの番号を選択し、その番号の可視ＣＰＵのＭＳＲを書き込み先として決定すればよい。
【００５６】
決定部１７０は、可視ＣＰＵのＭＳＲのいずれを書き込み先として決定してもよいが、ＭＳＲの情報が上書きされることを防ぐため、障害情報が記録されていないＭＳＲを書き込み先として決定することが好ましい。ただし、このとき、全ての可視ＣＰＵのＭＳＲに情報が格納されている場合は、決定部１７０は、書き込み先を直ちには決定しない。この場合は、所定の時間の経過後にＳＭＩが発生するよう設定を行ったのち、ＯＳ２１を実行するＣＰＵに、ＯＳ２１を再開する処理を実行させる。そうすることにより、所定の時間の間に、ＯＳ２１が動作することで、可視ＣＰＵのＭＳＲの情報が更新され、あるいは消去されうる。再びＳＭＩが発生し、情報処理装置１０２がシステム管理モードに移行したときに、可視ＣＰＵのＭＳＲに格納されていた情報がクリアされていれば、再び動作を開始したＢＩＯＳ４０の決定部１７０は、当該ＭＳＲを書き込み先として決定できる。
【００５７】
＜動作＞
本実施形態に係る情報処理装置１０２の動作を説明する。
【００５８】
（隠蔽ＣＰＵの設定と記憶）
まず、情報処理装置１０２の起動時におけるＢＩＯＳ４０の動作を、図５を参照しながら説明する。
【００５９】
情報処理装置１０２が起動すると、システム制御部１４０は、ＣＰＵコア５１２〜５１４のすべてを隠蔽する（ＣＰＵ５０２〜５０４を隠蔽する）設定を行う（ステップＳ５１）。
【００６０】
また、システム制御部１４０は、可視ＣＰＵの識別子を記憶部１５０に記憶させる（ステップＳ５２）。
【００６１】
さらに、システム制御部１４０は、ＣＰＵコア５１１〜５１４が、障害を検出した場合にＭＣＥの代わりにＳＭＩを発生させるよう、ＣＰＵコア５１１〜５１４の動作の設定をする（ステップＳ５３）。
【００６２】
（ＢＩＯＳ４０による障害情報の処理）
次に、ＢＩＯＳ４０による障害情報の処理について説明する。
【００６３】
図６は、ＢＩＯＳ４０の動作の流れを示すフローチャートである
ＢＩＯＳ４０は、情報処理装置１０２がシステム管理モードへ移行することによって動作を開始する（ステップＳ６１）。
【００６４】
例えば、メモリ５４４内の、ある領域において、ＣＰＵコア５１４の１つが、上述したＳＲＡＯエラーを検知したとする。エラーを検知したＣＰＵコア５１４は、当該障害の障害情報を生成し、生成した障害情報をＭＳＲ５２４に格納する。そして、ＣＰＵコア５１４は、ＳＭＩを示す信号を出力する。これにより、情報処理装置１０２はシステム管理モードに移行するため、ＢＩＯＳが動作を開始する。
【００６５】
動作を開始したＢＩＯＳ４０において、障害解析部１６０がＳＭＩの発生原因を分析する。分析において、障害解析部１６０は、ハードウェアに障害が発生したかどうかを調べる。この過程で、検出部１１０は、各ＣＰＵ５０１〜５０４のＭＳＲ５２１〜５２４において障害情報を探索する（ステップＳ６２）。このとき、検出部１１０は、可視ＣＰＵのＭＳＲ５２１に情報が格納されているか否かを、記憶部１５０に記録してもよい。
【００６６】
そして、検出部１１０は、隠蔽ＣＰＵのＭＳＲ５２２〜５２４に格納された障害情報を検出する。障害解析部１６０は、検出部１１０により検出された障害情報が特定の障害情報であるかを判定する。ただし、検出部１１０が検出する障害情報が特定の障害情報であることが明らかである場合は、特定の障害情報であるかを判定することは不要である。特定の障害情報であることが明らかである場合とは、たとえば検出部が検出する障害情報が特定の障害情報のみであるように予め設定されている場合等である。
【００６７】
隠蔽ＣＰＵのＭＳＲ５２２〜５２４のいずれかから特定の障害情報が検出された場合（ステップＳ６３においてＹＥＳ）、ＢＩＯＳ４０の動作はステップＳ６４に進む。本実施形態の例においては、ＳＲＡＯエラーの障害情報がＭＳＲ５２４から検出されるので、ＢＩＯＳ４０の動作はステップＳ６４に進む。
【００６８】
なお、ＢＩＯＳ４０は、特定の障害情報でないと判定された障害情報があった場合、その障害情報をＭＳＲから消去してもよい。
【００６９】
また、いずれの隠蔽ＣＰＵ５０２〜５０４のＭＳＲ５２２〜５２４にも、特定の障害情報であると判定された障害情報がなかった場合（ステップＳ６３においてＮＯ）は、ＢＩＯＳ４０は動作を中断する。その際、ＢＩＯＳ４０は、例えば情報処理装置１０２をシステム管理モードから復帰させる信号を発生させることでＯＳ２１を再開させる。ただしこの時、可視ＣＰＵ５０１のＭＳＲ５２１に特定の障害情報があった場合は、ＢＩＯＳ４０はＭＣＥを発生させてもよい。
【００７０】
ステップＳ６４では、決定部１７０が、情報が格納されていない可視ＣＰＵのＭＳＲがあるかを調べる。決定部１７０は、ステップＳ６２で記憶部１５０に記録された、各可視ＣＰＵのＭＳＲ５２１に情報が格納されているか否かの情報を参照すればよい。あるいはステップＳ６２で、検出部１１０は可視ＣＰＵのＭＳＲを探索してもよい。
【００７１】
情報が格納されていない可視ＣＰＵのＭＳＲがあった場合（ステップＳ６４においてＹＥＳ）、決定部１７０は、そのＭＳＲを、障害情報を書き込む書き込み先として決定する（ステップＳ６５）。ただし、情報が格納されていない可視ＣＰＵのＭＳＲがない場合（ステップＳ６４においてＮＯ）、すなわち、全ての可視ＣＰＵのＭＳＲが情報を格納している場合、ＢＩＯＳ４０の動作はステップＳ６６へと進む。
【００７２】
本実施形態では、可視ＣＰＵはＣＰＵ５０１のみであるため、決定部１７０は、ＣＰＵ５０１のＭＳＲ５２１を書き込み先として決定する。ただし、ＭＳＲ５２１に既に情報が格納されていた場合、ＢＩＯＳ４０の動作はステップＳ６６へと進む。
【００７３】
ステップＳ６６では、決定部１７０は、所定の時間後にＳＭＩが発生するよう設定をする。具体的にはたとえば、決定部１７０は、あるＣＰＵに対し、設定された時間が経過した時にＳＭＩを発生させるよう、ＣＰＵの設定をする。これにより、情報処理装置１０２は、ＯＳ２１の動作の再開後、所定の時間後に発生するＳＭＩにより再びシステム管理モードに移行する。決定部１７０は、ＯＳ２１の動作によりＭＳＲ４２１の情報が削除されれば、ステップＳ６４において判定はＹＥＳとなり、ＢＩＯＳ４０の動作はステップＳ６５へ進む。
【００７４】
書き込み部１３０は、決定された書き込み先に、検出された障害情報を書き込む（ステップＳ６７）。障害情報は、たとえば、障害の種類と、障害が発生したメモリのアドレスとを含む。
【００７５】
書き込み部１３０は、必ずしも、読み出した障害情報と同じ情報を書き込まなくてもよい。たとえば、書き込み部１３０は、ＯＳ２１の読み出した障害情報に基づく処理とは異なる処理をＯＳ２１にさせるために、障害情報における特定の障害の種類の記述を別の障害の種類の記述に書き換えて、その障害情報を書き込んでもよい。たとえば、隠蔽ＣＰＵ配下で発生した、訂正可能なメモリ障害が多発している場合、検出された訂正可能なメモリ障害よりも重い障害（以下、「より重い障害」と表記）の種類を示す障害情報を書き込んでもよい。これにより、ＯＳ２１は、後述するステップＳ７７において、より重い障害の種類を示す障害情報を検出した場合、訂正可能なメモリ障害に応じた処理ではなく、より重い障害に応じた処理を行うことができる。より重い障害に応じた処理とは、たとえば、障害が発生した領域（アドレス）を使わないようにしてＯＳ２１の運用を継続することであってもよい。
【００７６】
障害情報の書き込みが完了したら、ＢＩＯＳ４０は、その障害情報を格納していた隠蔽ＣＰＵ５０４のＭＳＲ５２４から、その障害情報をクリアしてよい。
【００７７】
なお、特定の障害情報が複数のＭＳＲで検出された場合は、ＢＩＯＳ４０はそれぞれの障害情報についてステップＳ６４からステップＳ６７の処理を繰り返してもよい。あるいは、ＢＩＯＳ４０は、ステップＳ６４からステップＳ６７の処理を繰り返さず、優先度の高い障害情報を選択してステップＳ６７までを行ってもよい。この場合、優先度は、予め各障害情報に対して定められていればよい。あるいは、優先度は、障害が検出された場所（接続先のＣＰＵまたはアドレス）に応じて設定されていてもよい。
【００７８】
ステップＳ６７の書き込みが完了したら、システム制御部１４０は、ＭＣＥを発生させる（ステップＳ６８）。
【００７９】
（ＯＳ２１による処理）
障害の発生にかかるＯＳ２１による処理を、図７を参照しながら説明する。
【００８０】
ＯＳ２１は、たとえば通常の動作を行っているときに、ＳＭＩを検知する（ステップＳ７１においてＹＥＳ）と、その動作を中断して、システム管理モードに移行する（ステップＳ７２）。これにより、ＢＩＯＳが動作を開始し、以降ＢＩＯＳの動作が終了するまでＯＳ２１は動作を停止する。
【００８１】
ＢＩＯＳの動作が終了し、再びＯＳが動作を開始する（ステップＳ７３）。このとき、ＢＩＯＳによってＭＣＥが発生していなければ（ステップＳ７４においてＮＯ）、ＯＳ２１は、障害ハンドリングを経ることなく通常の動作を再開してよい（ステップＳ７８）。
【００８２】
ＢＩＯＳによってＭＣＥが発せられていた場合（ステップＳ７４においてＹＥＳ）は、ＯＳ２１は、ＭＣＥハンドリングを開始する（ステップＳ７５）。ＯＳ２１は、可視ＣＰＵのＭＳＲ５２１を探索し、ＭＳＲ５２１に格納された障害情報を検出する（ステップＳ７６）。
【００８３】
ＯＳ２１は、検出された障害情報に応じた処理を実行する（ステップＳ７７）。処理の内容は、障害の種類それぞれについて予め設定されていればよい。たとえば、ＯＳ２１は、ＳＲＡＯエラーを示す障害情報を取得した場合、障害情報が示す箇所に格納されているデータの訂正を行う。より重い障害の種類を示す障害情報を取得した場合は、当該障害情報に応じた処理は、障害が発生した領域（アドレス）を使わないようにしてＯＳ２１の運用を継続することであってもよい。また、たとえば、読み出した障害情報の示す障害が、ＯＳ２１による稼働の継続がシステムに重大な影響を及ぼす可能性があるような障害であった場合は、当該障害情報に応じた処理は、ハードウェア群５０全体の運用を停止することであってもよい。
【００８４】
ステップＳ７７の処理が完了した後、ＯＳ２１は、ステップＳ７２で中断した動作を再開する（ステップＳ７８）。ただし、ステップＳ７７においてＯＳ２１がハードウェア群５０全体の運用の停止を行った場合等は、ＯＳ２１はステップＳ７８の動作を行わなくてよい。
【００８５】
＜効果＞
本実施形態によれば、発生した障害の情報は、ＯＳ２１からアクセス可能なＣＰＵコアのＭＳＲに格納されるので、ＯＳ２１は隠蔽ＣＰＵで発生したメモリ障害を認識することができる。これにより、ＯＳ２１は、隠蔽ＣＰＵで発生したメモリ障害に対して適切な処理をすることができる。
【００８６】
また、本実施形態では、情報処理装置１０２をシステム管理モードへ移行させることによって、障害発生に伴うＭＣＥがＯＳ２１に伝わる前にＢＩＯＳが障害情報を操作できる。このため、ＯＳ２１が障害情報を認識しない間に運用を継続するというリスクを回避する効果がある。
【００８７】
＜＜他の実施形態＞＞
以上の実施形態では、書き込み部１３０は可視ＣＰＵの情報保持域に障害情報を格納したが、障害情報を格納する場所は、ＣＰＵがアクセスできる記憶領域であれば他の記憶領域でもよい。たとえば、書き込み部１３０は、障害情報の書き込み先の記憶領域としてＡＣＰＩテーブルを用いてもよい。情報処理装置がＡＰＥＩ（ＡＣＰＩ  Ｐｌａｔｆｏｒｍ  Ｅｒｒｏｒ  Ｉｎｔｅｒｆａｃｅｓ）というインタフェースをサポートする実行環境であれば、書き込み部１３０は、ＡＣＰＩテーブルに障害情報を記述できる。第２の実施形態において、書き込み部１３０は、ステップＳ６３にてＭＣＥの代わりにＳＣＩ（Ｓｙｓｔｅｍ  Ｃｏｎｔｒｏｌ  Ｉｎｔｅｒｒｕｐｔ）を発生させれば、ＯＳ２１はＡＣＰＩテーブルに格納された障害情報へのアクセスを経て、障害を適切にハンドリングすることができる。
【００８８】
＜＜第３の実施形態＞＞
本発明を実現する情報処理装置の主要部の構成を、第３の実施形態の情報処理装置１０３の構成として、図８に示す。
【００８９】
情報処理装置１０３は検出部１１０および書き込み部１３０を有する。
【００９０】
検出部１１０は、オペレーティング・システムから隠蔽されたプロセッサが内部に有する情報保持域において、当該プロセッサの配下にあるハードウェアの障害の障害情報を検出する。
【００９１】
書き込み部１３０は、検出部１１０が検出した障害情報を、オペレーティング・システムに隠蔽されていない記憶領域に書き込む。
【００９２】
図９は、情報処理装置１０３の動作の流れを示すフローチャートである。
【００９３】
まず、検出部１１０が、オペレーティング・システムから隠蔽されたプロセッサが内部に有する情報保持域に、当該プロセッサの配下にあるハードウェアの障害の障害情報があることを検出する（ステップＳ９１）。次に、書き込み部１３０が、検出部１１０が検出した障害情報を、オペレーティング・システムに隠蔽されていない記憶領域に書き込む（ステップＳ９２）。
【００９４】
本実施形態の情報処理装置１０３では、ＯＳから隠蔽されているプロセッサの配下のハードウェアに発生した障害に、ＯＳが適切に対処することができる。
【００９５】
以上、説明した本発明の各実施形態において、各装置の各構成要素は、機能単位のブロックを示している。各装置の各構成要素の一部または全部は、例えば図１０に示すようなコンピュータ１０００とプログラムとの可能な組み合わせにより実現される。コンピュータ１０００は、一例として、以下のような構成を含む。
【００９６】
・ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１００１
・ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１００２
・ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１００３
・ＲＡＭ１００３にロードされるプログラム１００４Ａおよび記憶情報１００４Ｂ
・プログラム１００４Ａおよび記憶情報１００４Ｂを格納する記憶装置１００５
・記録媒体１００６の読み書きを行うドライブ装置１００７
・通信ネットワーク１００９と接続する通信インタフェース１００８
・データの入出力を行う入出力インタフェース１０１０
・各構成要素を接続するバス１０１１
各実施形態における各装置の各構成要素は、これらの機能を実現するプログラム１００４ＡをＣＰＵ１００１がＲＡＭ１００３にロードして実行することで実現される。各装置の各構成要素の機能を実現するプログラム１００４Ａは、例えば、予め記憶装置１００５やＲＯＭ１００２に格納されており、必要に応じてＣＰＵ１００１が読み出す。たとえば、先の実施形態のファームウェア１０およびＢＩＯＳ４０の機能を実現するプログラムは、ＲＯＭ１００２に格納されていればよい。ＯＳ２０またはＯＳ２１を実現するプログラムは、記憶装置１００５に格納されていればよい。なお、プログラム１００４Ａは、通信ネットワーク１００９を介してＣＰＵ１００１に供給されてもよいし、予め記録媒体１００６に格納されており、ドライブ装置１００７が当該プログラムを読み出してＣＰＵ１００１に供給してもよい。
【００９７】
各装置の実現方法には、様々な変形例がある。例えば、各装置は、構成要素毎にそれぞれ別個のコンピュータ１０００とプログラムとの可能な組み合わせにより実現されてもよい。また、各装置が備える複数の構成要素が、一つのコンピュータ１０００とプログラムとの可能な組み合わせにより実現されてもよい。
【００９８】
また、各装置の各構成要素の一部または全部は、その他の汎用または専用の回路、コンピュータ等やこれらの組み合わせによって実現される。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。
【００９９】
各実施形態のファームウェアまたはＢＩＯＳの一部または全部の機能は、図１１および図１２のように、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
【０１００】
図１１は、第３の実施形態の情報処理装置１０３の各構成要素を回路で構成した場合を表すブロック図である。図１１において、検出回路１１１は検出部１１０として機能する。書き込み回路１３１は書き込み部１３０として機能する。
【０１０１】
図１２は、第２の実施形態のＢＩＯＳ４０の各構成要素を回路で構成した場合を表すブロック図である。図１２において、検出回路１１１は検出部１１０として機能する。書き込み回路１３１は書き込み部１３０として機能する。システム制御回路１４１はシステム制御部１４０として機能する。記憶回路１５１は記憶部１５０として機能する。障害解析回路１６１は障害解析部１６０として機能する。決定回路１７１は決定部１７０として機能する。
【０１０２】
各装置の各構成要素の一部または全部が複数のコンピュータや回路等により実現される場合には、複数のコンピュータや回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、コンピュータや回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【０１０３】
本願発明は以上に説明した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１０４】
上記実施形態の一部または全部は以下の付記のようにも記載され得るが、以下には限られない。
【０１０５】
［付記１］
配下のハードウェアに発生した障害の障害情報を、内部に有する情報保持域に格納する複数のプロセッサのうち、オペレーティング・システムから隠蔽されたプロセッサの前記情報保持域において、前記障害情報を検出する検出手段と、
検出された前記障害情報を、前記オペレーティング・システムがアクセスできる記憶領域に書き込む書き込み手段と、
を備える情報処理装置。
【０１０６】
［付記２］
前記複数のプロセッサは、配下のハードウェアに障害が発生したことを検知した場合に、前記オペレーティング・システムを実行するプロセッサに前記オペレーティング・システムの動作を中断させ、
前記検出手段は、前記オペレーティング・システムの動作が中断した場合に前記障害情報を検出し、
前記書き込み手段は、検出された前記障害情報を前記記憶領域に書き込み、
前記情報処理装置は、前記障害情報が前記記憶領域に書き込まれた後に前記オペレーティング・システムの動作を再開させるシステム制御手段をさらに備え、
前記オペレーティング・システムは、動作を再開し、前記記憶領域を探索することで前記障害情報を検出する、
付記１に記載の情報処理装置。
【０１０７】
［付記３］
前記記憶領域は、前記複数のプロセッサのうち前記オペレーティング・システムから隠蔽されていないプロセッサが内部に有する前記情報保持域であり、
前記情報処理装置は、前記記憶領域のうち、情報が格納されていない記憶領域を、前記書き込み手段が前記障害情報を書き込む書き込み先として決定する決定手段をさらに備え、
前記書き込み手段は、前記書き込み先として決定された前記記憶領域に前記障害情報を書き込む、
付記１または２に記載の情報処理装置。
【０１０８】
［付記４］
前記オペレーティング・システムを実行するプロセッサは、前記オペレーティング・システムの制御により、前記記憶領域に格納されている情報に応じた処理を実行し、当該処理が完了した後、前記情報を消去し、
前記決定手段は、前記書き込み先の決定において、全ての前記記憶領域に情報が格納されている場合に、前記オペレーティング・システムが中断している場合は前記オペレーティング・システムの動作を開始させ、所定の時間後に再び前記書き込み先の決定を行う、
付記３に記載の情報処理装置。
【０１０９】
［付記５］
前記検出手段が検出した前記障害情報が所定の条件に適合するかを判定する障害解析手段をさらに備え、
前記書き込み手段は、当該障害情報が前記所定の条件に適合すると判定された場合は、前記障害情報を前記記憶領域へ書き込み、当該障害情報が前記所定の条件に適合しないと判定された場合は、前記障害情報の前記記憶領域への書き込みを行わない、
付記１から４のいずれか一項に記載の情報処理装置。
【０１１０】
［付記６］
配下のハードウェアに発生した障害の障害情報を、内部に有する情報保持域に格納する複数のプロセッサのうち、オペレーティング・システムから隠蔽されたプロセッサの前記情報保持域において、前記障害情報を検出し、
検出された前記障害情報を、前記オペレーティング・システムがアクセスできる記憶領域に書き込む、
情報処理方法。
【０１１１】
［付記７］
配下のハードウェアに障害が発生したことを検知した場合に、前記オペレーティング・システムを実行するプロセッサに前記オペレーティング・システムの動作を中断させ、
前記オペレーティング・システムの動作が中断した場合に前記障害情報を検出し、
検出された前記障害情報を前記記憶領域に書き込み、
前記障害情報が前記記憶領域に書き込まれた後に前記オペレーティング・システムの動作を再開させる、
付記６に記載の情報処理方法。
【０１１２】
［付記８］
前記記憶領域は、前記複数のプロセッサのうち前記オペレーティング・システムから隠蔽されていないプロセッサが内部に有する前記情報保持域であり、
前記情報処理方法は、前記記憶領域のうち、情報が格納されていない記憶領域を、前記書き込み手段が前記障害情報を書き込む書き込み先として決定し、
前記書き込み先として決定された前記記憶領域に前記障害情報を書き込む、
付記６または７に記載の情報処理方法。
【０１１３】
［付記９］
前記オペレーティング・システムを実行するプロセッサは、前記オペレーティング・システムの制御により、前記記憶領域に格納されている情報に応じた処理を実行し、当該処理が完了した後、前記情報を消去し、
前記情報処理方法は、前記書き込み先の決定において、全ての前記記憶領域に情報が格納されている場合に、前記オペレーティング・システムが中断している場合は前記オペレーティング・システムの動作を開始させ、所定の時間後に再び前記書き込み先の決定を行う、
付記８に記載の情報処理方法。
【０１１４】
［付記１０］
前記検出した前記障害情報が所定の条件に適合するかを判定し、
当該障害情報が前記所定の条件に適合すると判定された場合は、前記障害情報を前記記憶領域に書き込み、当該障害情報が前記所定の条件に適合しないと判定された場合は、検出された前記障害情報を前記記憶領域に書き込まない、
付記６から９のいずれか一項に記載の情報処理方法。
【０１１５】
［付記１１］
配下のハードウェアに発生した障害の障害情報を、内部に有する情報保持域に格納する複数のプロセッサのうち、オペレーティング・システムから隠蔽されたプロセッサの前記情報保持域において、前記障害情報を検出する検出処理と、
検出された前記障害情報を、前記オペレーティング・システムがアクセスできる記憶領域に書き込む書き込み処理と、
をコンピュータに実行させるプログラム。
【０１１６】
［付記１２］
前記検出処理は前記オペレーティング・システムの動作が中断した場合に実行され、
前記書き込み処理が検出された前記障害情報を前記記憶領域に書き込んだ後に前記オペレーティング・システムの動作を再開させるシステム制御処理を、
コンピュータに実行させる、付記１１に記載のプログラム。
【０１１７】
［付記１３］
前記記憶領域は、前記複数のプロセッサのうち前記オペレーティング・システムから隠蔽されていないプロセッサが内部に有する前記情報保持域であり、
前記記憶領域のうち、情報が格納されていない記憶領域を、前記書き込み手段が前記障害情報を書き込む書き込み先として決定する決定処理を前記コンピュータに実行させ、
前記書き込み処理は、前記書き込み先として決定された前記記憶領域に前記障害情報を書き込む処理である、
付記１１または１２に記載のプログラム。
【０１１８】
［付記１４］
前記オペレーティング・システムを実行するプロセッサは、前記オペレーティング・システムの制御により、前記記憶領域に格納されている情報に応じた処理を実行し、当該処理が完了した後、前記情報を消去し、
前記決定処理は、前記書き込み先の決定において、全ての前記記憶領域に情報が格納されている場合に、前記オペレーティング・システムが中断している場合は前記オペレーティング・システムの動作を開始させ、所定の時間後に再び前記書き込み先の決定を行う、
付記１３に記載のプログラム。
【０１１９】
［付記１５］
前記検出処理で検出した前記障害情報が所定の条件に適合するかを判定する障害解析処理を前記コンピュータに実行させ、
前記書き込み処理は、当該障害情報が前記所定の条件に適合すると判定された場合は、前記障害情報を前記記憶領域へ書き込み、当該障害情報が前記所定の条件に適合しないと判定された場合は、前記障害情報の前記記憶領域への書き込みを行わない、
付記１１から１４のいずれか一項に記載のプログラム。
【符号の説明】
【０１２０】
１０    ファームウェア
２０、２１    ＯＳ
３０    ハードウェア群
４０    ＢＩＯＳ
５０    ハードウェア群
１０１〜１０３    情報処理装置
１１０    検出部
１１１    検出回路
１３０    書き込み部
１３１    書き込み回路
１４０    システム制御部
１４１    システム制御回路
１５０    記憶部
１５１    記憶回路
１６０    障害解析部
１６１    障害解析回路
１７０    決定部
１７１    決定回路
３０１    可視ＣＰＵ
３０２〜３０４    隠蔽ＣＰＵ
３２１〜３２４    情報保持域
３４１〜３４４    メモリ
５０１    可視ＣＰＵ
５０２〜５０４    隠蔽ＣＰＵ
５１１〜５１４    ＣＰＵコア
５２１〜５２４    ＭＳＲ
５４１〜５４４    メモリ
５５１〜５５４    ＤＩＭＭ
１０００    コンピュータ
１００１    ＣＰＵ
１００２    ＲＯＭ
１００３    ＲＡＭ
１００４Ａ    プログラム
１００４Ｂ    記憶情報
１００５    記憶装置
１００６    記録媒体
１００７    ドライブ装置
１００８    通信インタフェース
１００９    通信ネットワーク
１０１０    入出力インタフェース
１０１１    バス
【図１】
2017167689.tif 000003
【図２】
2017167689.tif 000004
【図３】
2017167689.tif 000005
【図４】
2017167689.tif 000006
【図５】
2017167689.tif 000007
【図６】
2017167689.tif 000008
【図７】
2017167689.tif 000009
【図８】
2017167689.tif 000010
【図９】
2017167689.tif 000011
【図１０】
2017167689.tif 000012
【図１１】
2017167689.tif 000013
【図１２】
2017167689.tif 000014