特許第6969957号(P6969957)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ NECプラットフォームズ株式会社の特許一覧

特許6969957情報処理装置、異常検出方法、及びプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6969957
(24)【登録日】2021年11月1日
(45)【発行日】2021年11月24日
(54)【発明の名称】情報処理装置、異常検出方法、及びプログラム
(51)【国際特許分類】
   G06F 11/30 20060101AFI20211111BHJP
   G06F 11/07 20060101ALI20211111BHJP
【FI】
   G06F11/30 155
   G06F11/07 151
   G06F11/07 190
   G06F11/30 140A
【請求項の数】7
【全頁数】27
(21)【出願番号】特願2017-189611(P2017-189611)
(22)【出願日】2017年9月29日
(65)【公開番号】特開2019-66991(P2019-66991A)
(43)【公開日】2019年4月25日
【審査請求日】2020年8月17日
(73)【特許権者】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100109313
【弁理士】
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100124154
【弁理士】
【氏名又は名称】下坂 直樹
(72)【発明者】
【氏名】若木 裕子
【審査官】 川▲崎▼ 博章
(56)【参考文献】
【文献】 特開平02−093856(JP,A)
【文献】 特開2004−302731(JP,A)
【文献】 特開平11−085569(JP,A)
【文献】 特開2011−181064(JP,A)
【文献】 特開2005−018462(JP,A)
【文献】 特開平06−103251(JP,A)
【文献】 特開2013−178653(JP,A)
【文献】 特開平04−276840(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/07,11/28−11/36
G06F 11/22−11/277
G06F 15/16−15/177
G06F 9/455−9/54
(57)【特許請求の範囲】
【請求項1】
第1プロセッサコアを有する第1プロセッサと、
第2プロセッサと、
前記第1プロセッサを監視する監視プロセッサと、
を備え、
前記第1プロセッサは、前記第1プロセッサが行うデバイスへのアクセスに関するアクセス情報を記憶する記憶部を有し、
前記第2プロセッサは、前記アクセス情報に基づいて、前記第1プロセッサコアに異常が発生しているか否かを判断する判断部と、前記第1プロセッサと通信する通信部と、を有し、
前記通信部は、
前記判断部が、前記第1プロセッサコアに異常が発生していると判断した場合、前記第1プロセッサを介して前記監視プロセッサに前記第1プロセッサコアの異常の発生を通知する、
情報処理装置。
【請求項2】
前記判断部は、前記アクセス情報が所定期間更新されておらず、前記第1プロセッサと通信できない場合、前記第1プロセッサコアに異常が発生していると判断する
請求項1に記載の情報処理装置。
【請求項3】
前記第2プロセッサは、
前記判断部が前記第1プロセッサコアに異常が発生したと判断した場合、前記アクセス情報に基づいて、前記第1プロセッサコアに異常が発生した原因を特定する特定部を更に有する
請求項1又は2に記載の情報処理装置。
【請求項4】
前記アクセス情報は、
前記第1プロセッサがアクセスした前記デバイスのデバイス識別情報と、
前記デバイスへのアクセスが完了したか否かを示すアクセス完了情報と、を含み、
前記アクセス情報は、前記第1プロセッサが前記デバイスにアクセスするたびに前記第1プロセッサによって更新される情報である
請求項3に記載の情報処理装置。
【請求項5】
前記特定部は、前記アクセス完了情報がアクセス完了を示している場合、前記第1プロセッサが停止した原因であると特定し、前記アクセス完了情報がアクセス未完了を示している場合、前記デバイスが、前記第1プロセッサが停止した原因であると特定する
請求項に記載の情報処理装置。
【請求項6】
第1プロセッサが行うデバイスへのアクセスに関するアクセス情報を取得するステップと、
前記アクセス情報に基づいて、前記第1プロセッサが有する第1プロセッサコアに異常が発生しているか否かを判断するステップと、
前記第1プロセッサコアに異常が発生していると判断した場合、前記第1プロセッサを介して前記第1プロセッサを監視する監視プロセッサに前記第1プロセッサコアの異常の発生を通知するステップと、
を備える異常検出方法。
【請求項7】
第1プロセッサが行うデバイスへのアクセスに関するアクセス情報を取得するステップと、
前記アクセス情報に基づいて、前記第1プロセッサが有する第1プロセッサコアに異常が発生しているか否かを判断するステップと、
前記第1プロセッサコアに異常が発生していると判断した場合、前記第1プロセッサを介して前記第1プロセッサを監視する監視プロセッサに前記第1プロセッサコアの異常の発生を通知するステップと、
を実行するプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のプロセッサを有する情報処理装置、異常検出方法、及びプログラムに関する。
【背景技術】
【0002】
複数のプロセッサを有する情報処理装置において、情報処理装置の起動時にプロセッサに異常が発生する場合がある。情報処理装置の起動時における、プロセッサの異常を検出する技術として、情報処理装置を監視する監視装置を設け、監視装置は、所定時間内に情報処理装置が起動しない場合に、CPU(Central Processing Unit)にストールが発生したと検出する技術がある。
【0003】
例えば、特許文献1は、マルチプロセッサ構成の情報処理装置において、立ち上げ中のCPU間のインターフェース回路の初期設定を行っている段階において、CPU側から応答がない場合に異常と検出する旨が記載されている。
【0004】
また、特許文献1はインターフェース回路の障害が発生した場合にも、BMC(Baseboard Management Controller)を介して通信先のCPUの情報を収集することにより、いずれのCPUが障害被疑部品の可能性が高いか被疑割合を決定する技術を開示している。
【0005】
特許文献2は、CPUと監視装置とを備えたシステムにおいて、監視装置は、複数のCPUに対して定期的に割込みを発し、所定時間の間にCPU応答がなければ、該当するCPUが異常状態にあると判断する技術を開示している。
【0006】
特許文献3は、プロセッサにおける障害原因を解析するためのI/O(Input/Output)ログを記録する技術を開示している。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2012−079266号公報
【特許文献2】特開平11−53222号公報
【特許文献3】特開2000−66966号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、上記の特許文献は、起動時におけるプロセッサの異常検出に時間がかかる、という問題があった。
【0009】
例えば、特許文献1は、CPU側から応答がない場合に、CPUの異常と判断している。このような構成のため、CPU側から応答がないと判断するまで所定時間待機する必要があり、CPUの異常検出に時間がかかる。
【0010】
特許文献2は、動作中のCPUの異常検出の方法を開示しているにすぎず、装置の起動時におけるCPUの異常検出を効率的に行う方法は開示されていない。また、装置が起動時にCPUに対して定期的に割込みを行った場合、CPUに異常が発生していなくてもCPUの起動前であれば応答が来ない場合があり、CPUが異常状態であるか否かの切り分けが困難である。
【0011】
特許文献3は、I/Oのログを記録する技術を開示しているだけであって、起動時におけるプロセッサの異常検出方法については開示されていない。
【0012】
そこで、本発明は起動時におけるプロセッサの異常状態を効率的に検出することができる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明の情報処理装置は、第1プロセッサコアを有する第1プロセッサと、第2プロセッサと、を備え、前記第1プロセッサは、前記第1プロセッサが行うデバイスへのアクセスに関するアクセス情報を記憶する記憶部を有し、前記第2プロセッサは、前記アクセス情報に基づいて、前記第1プロセッサコアに異常が発生しているか否かを判断する判断部を有する。
【0014】
本発明の異常検出方法は、第1プロセッサが行うデバイスへのアクセスに関するアクセス情報を取得するステップと、前記アクセス情報に基づいて、前記第1プロセッサが有する第1プロセッサコアに異常が発生しているか否かを判断するステップと、を備える。
【0015】
本発明のプログラムは、第1プロセッサが行うデバイスへのアクセスに関するアクセス情報を取得するステップと、前記アクセス情報に基づいて、前記第1プロセッサが有する第1プロセッサコアに異常が発生しているか否かを判断するステップと、を実行する。
【発明の効果】
【0016】
本発明の効果は、プロセッサの異常状態を効率的に検出することができることにある。
【図面の簡単な説明】
【0017】
図1】本発明の第1の実施形態における、構成を示すブロック図である。
図2】本発明の第1の実施形態における、動作を示すフローチャートである。
図3】本発明の第2の実施形態における、機能構成を示すブロック図である。
図4】本発明の第2の実施形態における、アクセス情報120の一例を示す図である。
図5】本発明の第2の実施形態における、動作概要を示すタイミングチャートである。
図6】本発明の第2実施形態における、第2プロセッサ2の動作を示すフローチャートである。
図7】本発明の第3実施形態における、機能構成を示すブロック図である。
図8】本発明の第3の実施形態における、アクセス情報120の一例を示す図である。
図9】本発明の第3の実施形態における、アクセス情報120の詳細例を示す図である。
図10】本発明の第3の実施形態における、対応情報230の一例を示す図である。
図11】本発明の第3の実施形態における、動作概要を示すタイミングチャートである。
図12】本発明の第3の実施形態における、アクセス情報記録動作を示すフローチャートである。
図13】本発明の第3の実施形態における、異常検出動作を示すフローチャートである。
図14】本発明の第3の実施形態における、被疑部品特定動作及び障害情報通知動作、障害情報表示動作を示すフローチャートである。
図15-1】本発明の第3の実施形態における、表示部5への表示例である。
図15-2】本発明の第3の実施形態における、表示部5への表示例である。
【発明を実施するための形態】
【0018】
(第1の実施形態)
本発明の第1の実施形態について説明する。
【0019】
まず、本発明の第1の実施形態の構成について説明する。図1は、本発明の第1の実施形態における、構成を示すブロック図である。
【0020】
図1を参照すると、マルチプロセッサシステム1000は、第1プロセッサ1と、第2プロセッサ2と、デバイス3を備えている。
【0021】
デバイス3は、第1プロセッサ1と接続される各種装置である。例えば、デバイス3は、PCI(Peripheral Component Interconnect)バスを通じて接続される周辺機器や、半導体メモリなどの主記憶装置である。
【0022】
第1プロセッサ1は、第2プロセッサ2及びデバイス3と接続されている。
【0023】
第1プロセッサ1は、プロセッサコア11と、レジスタ12を有する。第1プロセッサ1は、例えばコンピュータにおけるCPU(Central Processing Unit)である。
【0024】
プロセッサコア11は、各種の演算や制御を実行する。プロセッサコア11は、デバイス3へアクセスした際に、当該アクセスに関する情報をレジスタ12に記憶する。
【0025】
レジスタ12は、第1プロセッサ1のアクセス情報120を記憶する。アクセス情報120とは、第1プロセッサ1が行うデバイス3へのアクセスに関する情報である。
【0026】
第2プロセッサ2は、プロセッサコア21を備える。プロセッサコア21は、プロセッサコア11と同様に各種の演算や制御を実行する。
【0027】
第2プロセッサ2は、第1プロセッサ1と接続されており、レジスタ12からアクセス情報120を取得できるように構成されている。
【0028】
第2プロセッサ2は、アクセス情報120に基づいて、プロセッサコア11に異常が発生しているか否か判断する。例えば、第2プロセッサ2のプロセッサコア21は、レジスタ12からアクセス情報120を取得し、アクセス情報120が所定時間更新されていない場合、プロセッサコア11に異常が発生したと判断する。なお、プロセッサコア11の異常とは、プロセッサコア11が停止するようなストール状態も含む。
【0029】
次に、本発明の第1の実施形態における動作について説明する。
【0030】
第1プロセッサ1及び第2プロセッサ2の起動を開始すると、プロセッサコア11及びプロセッサコア21は起動動作を開始する。図2は、本発明の第1の実施形態における、動作を示すフローチャートである。
【0031】
まず、第2プロセッサ2は、レジスタ12からアクセス情報120を取得する(ステップS1001)。例えば、第2プロセッサ2は、レジスタ12に直接アクセスすることにより、第1プロセッサ1が最後にアクセスしたデバイス3に関するアクセス情報120を取得する。
【0032】
次に、第2プロセッサ2は、アクセス情報120に基づいて、第1プロセッサ1のプロセッサコア11に異常が発生しているか判断する(ステップS1002)。
【0033】
例えば、第1プロセッサ1は、デバイス3へアクセスを行う度にアクセス情報120を更新している。第2プロセッサ2は、アクセス情報120を参照し、新たに第1プロセッサ1がデバイス3へアクセスしているか否か判断する。第2プロセッサ2は、第1プロセッサ1がデバイス3へアクセスしていない場合にプロセッサコア11に異常が発生している、と判断する。第2プロセッサ2は、第1プロセッサ1がデバイス3へアクセスしている場合にプロセッサコア11に異常が発生していない、と判断する。
【0034】
第2プロセッサ2は、アクセス情報120に基づいて、第1プロセッサ1のプロセッサコア11に異常が発生していないと判断した場合(ステップS1002:NO)、本動作を終了する。
【0035】
第2プロセッサ2は、アクセス情報120に基づいて、第1プロセッサ1のプロセッサコア11に異常が発生していると判断した場合(ステップS1002:YES)、第1プロセッサ1に異常が発生した旨の通知を行う(ステップS1003)。
【0036】
以上により、本発明の第1の実施形態における動作が終了する。
【0037】
本発明の第1の実施形態は、第1プロセッサ1の異常状態を効率的に検出することができる。その理由は、第2プロセッサ2が、第1プロセッサ1が行うデバイス3へのアクセスに関するアクセス情報120に基づき、第1プロセッサ1に異常が発生したか否かを判断するためである。
【0038】
本発明の第1の実施形態は、第2プロセッサ2が第1プロセッサ1のデバイス3へのアクセスの状態を監視して異常状態を判断する。これにより、特許文献1に記載された、起動時にCPUの応答が所定時間ない場合にCPUの異常と判断する方法に比べ、第1プロセッサ1からの応答を所定時間待つ必要がなくなる。よって、迅速に第1プロセッサ1の異常状態を検出することができる。
【0039】
本発明の第1の実施形態は、第2プロセッサ2が第1プロセッサ1のデバイス3へのアクセスの状態を監視して異常状態を判断する。これにより、特許文献2に記載された複数のCPUに対して定期的に割込みを発して異常状態にあると判断する方法に比べ、監視対象の第1プロセッサ1への不要な割込みを無くすことができる。よって、第1プロセッサ1が行う処理への影響を低減することができる。
【0040】
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。まず、本発明の第2の実施形態の構成について説明する。図3は、本発明の第2の実施形態における、機能構成を示すブロック図である。
【0041】
図3を参照すると、マルチプロセッサシステム1000は、第1プロセッサ1と、第2プロセッサ2と、デバイス3とを備えている。
【0042】
デバイス3は、第1プロセッサ1と接続される各種装置である。例えば、デバイス3は、PCI(Peripheral Component Interconnect)バスを通じて接続される周辺機器や、半導体メモリなどの主記憶装置である。
【0043】
第1プロセッサ1は、デバイス3と接続されている。第1プロセッサ1は、制御部11、記憶部12、通信部13を備える。
【0044】
制御部11は、演算や制御を行う例えばプロセッサコアである。制御部11は、更新部111を備える。更新部111は、第1プロセッサ1と接続されたデバイス3へのアクセスに関する情報を記録、更新する。例えば、第1プロセッサ1がデバイス3にアクセスを行う度に、記憶部12のアクセス情報120を更新する。
【0045】
記憶部12は、例えば第1プロセッサ1が有するレジスタである。制御部11が演算に用いる各種データを記憶する。また、記憶部12は、第1プロセッサ1が行うデバイス3へのアクセスに関するアクセス情報120を記憶する。なお、記憶部12は後述する通信部13内のレジスタに設けられていても構わない。
【0046】
アクセス情報120は、第1プロセッサ1が行うデバイス3へのアクセスに関する情報である。
【0047】
図4は、本発明の第2の実施形態における、アクセス情報120の一例を示す図である。
アクセス情報120は、デバイス識別情報121、アクセス回数情報122、アクセス完了情報123を含む。
【0048】
デバイス識別情報121は、第1プロセッサ1がアクセスしたデバイス3の識別情報である。アクセス回数情報122は、第1プロセッサ1のデバイス3へアクセスした回数を示す情報である。アクセス完了情報123は、第1プロセッサ1がデバイス3へのアクセスが完了したか否かを示す情報である。例えば、デバイス3が半導体メモリであるとする。第1プロセッサ1が半導体メモリにアクセスを行った場合、第1プロセッサ1が半導体メモリからデータの読込みや書込みが完了した場合に、アクセス完了情報123に、アクセスが完了した旨の情報が格納される。
【0049】
通信部13は、第2プロセッサ2と通信可能に接続する。例えばバスインターフェイスである。
【0050】
第2プロセッサ2は、通信部13を介して第1プロセッサ1と接続されている。第2プロセッサ2は、制御部21、記憶部22、通信部23を備える。
【0051】
制御部21は、演算や制御を行う例えばプロセッサコアである。制御部21は、取得部211、判断部212、特定部213を備える。
【0052】
取得部211は、第1プロセッサ1の記憶部12へアクセスし、アクセス情報120を取得する。
【0053】
判断部212は、アクセス情報120に基づいて、第1プロセッサ1の制御部11に異常が発生しているか否か判断する。具体的には、まず、判断部212は、アクセス情報120が更新されていない場合、第1プロセッサ1の制御部11に異常が発生している可能性があると検出する。そして、判断部212は、第1プロセッサ1の制御部11に異常が発生している可能性があると検出した場合、第1プロセッサ1の制御部11にアクセスする。そして、判断部212は、制御部11に異常が発生している可能性があると検出した場合であって、第1プロセッサ1の制御部11から応答がない場合に、第1プロセッサ1の制御部11に異常が発生している、と判断する。
【0054】
なお、第1プロセッサ1の制御部11の異常とは、制御部11が停止するようなストール状態も含む。
【0055】
特定部213は、判断部212において、第1プロセッサ1に異常が発生していると判断した場合、アクセス情報120に基づいて、第1プロセッサ1の制御部11の異常が発生した原因を特定する。
【0056】
例えば、特定部213は、アクセス情報120を参照し、デバイス3へのアクセスが完了しているか否か確認する。特定部213は、デバイス3へのアクセスが完了している場合、被疑部品を第1プロセッサ1であると判断し、デバイス3へのアクセスが完了していない場合、当該アクセス中のデバイス3が被疑部品であると特定する。
【0057】
記憶部22は、例えば第2プロセッサ2が有するレジスタである。制御部21が演算に用いる各種データを記憶する。
【0058】
通信部23は、第1プロセッサ1と通信可能に接続する。例えばバスインターフェイスである。
【0059】
なお、制御部11及び制御部21が有する各種機能部は、例えば図示しない補助記憶装置に格納されたプログラムに基づいて、所定の処理を実行することによって実現する。もしくは、当該プログラムをCDROM(Compact Disc Read Only Memory)等の記憶媒体に格納し制御部11及び制御部21に提供することも可能である。
【0060】
次に、本発明の第2の実施形態における動作について説明する。
【0061】
第1プロセッサ1及び第2プロセッサ2が起動を開始すると、制御部11及び制御部21の起動動作を開始する。そして第1プロセッサ1は、第1プロセッサ1の通信部13と第2プロセッサ2の通信部23間の初期化を実行し、第1プロセッサ1と第2プロセッサ2間の通信を確立させる。その後、第1プロセッサ1に接続されているデバイス3の初期化を行う。
【0062】
図5は、本発明の第2の実施形態における動作概要を示すタイミングチャートである。起動動作中に、以下のステップS1からS3を行うことで、第1プロセッサ1の異常を検出する。
【0063】
まず、第1プロセッサ1は、第1プロセッサ1が行うデバイス3へのアクセスに関するアクセス情報120を記録するアクセス情報記録動作を実行する(ステップS1)。
【0064】
アクセス情報記録動作として、第1プロセッサ1の更新部111は、デバイス3へアクセスする際に、デバイス3の情報を取得する。更新部111は、記憶部12のアクセス情報120を更新する。
【0065】
例えば、更新部111は、アクセスしたデバイス3のデバイス識別情報121を取得する。さらに更新部111は、デバイス3へのアクセスを行う度、アクセス回数情報122を更新する。そして、更新部111は、デバイス3へのアクセスが完了した場合、アクセス完了情報123をアクセスが完了した旨を示す情報に変更する。以上のアクセス情報記録動作を第1プロセッサ1がデバイス3にアクセスを行う度に繰り返すことにより、アクセス情報120を記録する。
【0066】
次に第2プロセッサ2の判断部212は、第1プロセッサ1の制御部11に異常が発生しているか否か判断する、異常検出動作を実行する(ステップS2)。
【0067】
そして、第2プロセッサ2の特定部213は、アクセス情報120に基づいて被疑部品特定動作を実行する(ステップS3)。
以上で、本発明の第2の実施形態における動作概要を示すタイミングチャート終了する。
【0068】
図6は、本発明の第2の実施形態における、第2プロセッサ2の動作を示すフローチャートである。本動作は図4におけるステップS2の制御部11の異常検出動作及びステップS3の被疑部品特定動作に対応する。
【0069】
まず、第2プロセッサ2の取得部211は、第1プロセッサ1の記憶部12からアクセス情報120を取得する(ステップS2001)。
【0070】
判断部212は、取得部211が取得したアクセス情報120が更新されたか否か判断する(ステップS2002)。例えば、第1プロセッサ1がデバイス3へアクセスした回数を示すアクセス回数情報122の回数が増加していた場合、アクセス情報120が更新されたと判断する。
【0071】
判断部212が、アクセス情報120が更新されていると判断した場合、(ステップS2002:YES)、判断部212は、制御部11に異常が発生していない、と判断する(ステップS2006)。そして、本動作を終了する。
【0072】
判断部212は、アクセス情報120が更新されていない場合(ステップS2002:NO)、制御部11に異常が発生している可能性があると判断し、ステップS2003に進む。
【0073】
判断部212が、ステップS2002にて、制御部11に異常が発生している可能性があると判断した場合(ステップS2002:YES)、判断部212は、制御部11にアクセスを行う(ステップS2003)。例えば、判断部212は、制御部11に対し、割込みによるプロセッサ間通信を行う。
【0074】
判断部212は、制御部11にアクセスが可能である場合(ステップS2003:YES)、制御部11に異常が発生していないと判断する(ステップS2006)。そして本動作を終了する。
【0075】
判断部212は、制御部11にアクセスが不可能である場合(ステップS2003:NO)、制御部11に異常が発生していると判断する(ステップS2004)。
【0076】
判断部212が、制御部11に異常が発生していると判断した場合、特定部213は、アクセス情報120に基づき制御部11に異常が発生した原因を特定する(ステップS2005)。
【0077】
例えば、特定部213は、第1プロセッサ1がアクセスしたデバイス3のデバイス識別情報121と、第1プロセッサ1がデバイス3へのアクセスが完了したか否かを示すアクセス完了情報123と、に基づいて特定する。
【0078】
特定部213は、アクセス完了情報123が、第1プロセッサ1がデバイス3へのアクセスが完了している旨を示している場合、制御部11の異常原因は、第1プロセッサ1にあると判断する。アクセス完了情報が、第1プロセッサ1がデバイス3へのアクセスが未完了である旨を示している場合、制御部11の異常原因は、デバイス3にあると判断する。
【0079】
以上により、本発明の第2の実施形態における動作が終了する。
【0080】
本動作における、ステップS2001からS2004、及びS2006までの動作がステップS2の異常検出動作に対応し、ステップS2005の動作がステップS3の被疑部品特定動作に対応する。
【0081】
なお、本実施形態では、起動動作中に第1プロセッサ1の異常を検出する例を示したが、これに限らない。通常動作中にも同様に第2プロセッサ2がアクセス情報120に基づいて、第1プロセッサ1の異常を検出することも可能である。
【0082】
本発明の第2の実施形態は、プロセッサの異常状態を効率的に検出することができる。その理由は、第2プロセッサ2が、第1プロセッサ1が行うデバイス3へのアクセスに関するアクセス情報120に基づき、第1プロセッサ1に異常が発生したか否かを判断するためである。
【0083】
本発明の第2の実施形態は、プロセッサの異常状態を検出することができる。その理由は、第2プロセッサ2が、第1プロセッサ1に異常が発生した可能性があると判断した場合、第1プロセッサ1と通信を行うためである。さらに、第2プロセッサ2が停止しているか否かを確認することもできる。
【0084】
本発明の第2の実施形態は、第1プロセッサ1の異常原因を特定できる。その理由は、第2プロセッサ2が、第1プロセッサ1が行うデバイス3へのアクセスに関するアクセス情報120に基づいて、第1プロセッサ1に異常が発生した場合における、デバイス3へのアクセス状況を入手することができるためである。
【0085】
(第3の実施形態)
次に、本発明の第3の実施形態について説明する。
【0086】
まず、本発明の第3の実施形態の構成について説明する。図7は、本発明の第3の実施形態における、機能構成を示すブロック図である。なお、第1の実施形態及び第2の実施形態と対応する構成に関しては同様の符号を付している。
【0087】
図7を参照すると、マルチプロセッサシステム1000は、運用サーバ100と、監視サーバ200を備えている。
【0088】
運用サーバ100と監視サーバ200は、後述する第3プロセッサ通信部13−2及び第1プロセッサ通信部43を通じて通信可能に接続している。
【0089】
監視サーバ200は、運用サーバ100の動作などを監視するサーバである。監視サーバ200は、第3プロセッサ4と表示部5を備える。
【0090】
第3プロセッサ4は、例えばBMCなどの監視プロセッサである。
【0091】
第3プロセッサ4は、表示制御部41と第1プロセッサ通信部43を有する。表示制御部41は、運用サーバ100の障害に関する情報の表示を制御する。
【0092】
第1プロセッサ通信部43は、第3プロセッサ4と第1プロセッサ1とを通信可能に接続する。第1プロセッサ通信部43は、例えばバスインターフェイスである。
【0093】
表示部5は、表示制御部41によって表示指示された障害情報を表示する。例えば、表示部5はユーザに障害情報を提示するためのディスプレイである。
【0094】
運用サーバ100は、第1プロセッサ1と、第2プロセッサ2、PCIデバイス31−1、PCIデバイス31−2、メモリ32−1、メモリ32−2、を備える。
【0095】
PCIデバイス31−1及びPCIデバイス31−2は、PCIバスを通じて接続される周辺機器である。メモリ32−1及びメモリ32−2は、半導体メモリなどの主記憶装置である。メモリ32−1及びメモリ32−2は、第1プロセッサ1及び第2プロセッサ2で用いる各種データを記憶する。
【0096】
PCIデバイス31−1及びメモリ32−1は、第1プロセッサ1と接続される。PCIデバイス31−2及びメモリ32−2は、第2プロセッサ2と接続される。
【0097】
以下、PCIデバイス31−1及びメモリ32−1を区別しない場合、デバイス3−1、PCIデバイス31−2及びメモリ32−2を区別しない場合、デバイス3−2と示す。
【0098】
また、PCIデバイス31−1及びPCIデバイス31−2を区別しない場合、PCIデバイス31、メモリ32−1及びメモリ32−2を区別しない場合、メモリ32と示す。
【0099】
第1プロセッサ1は、デバイス31−1及びメモリ32−1と接続されている。第1プロセッサ1は、制御部11、第2プロセッサ通信部13−1、第3プロセッサ通信部13−2を備える。
【0100】
第2プロセッサ通信部13−1は、第1プロセッサ1と第2プロセッサ2と通信可能に接続する。例えばバスインターフェイスである。また、第2プロセッサ通信部13−1は、インデックス情報記憶部12を有する。
【0101】
第3プロセッサ通信部13−2は、第1プロセッサ1と第3プロセッサ4と通信可能に接続する。第3プロセッサ通信部13−2は、例えばバスインターフェイスである。ま
本実施形態では、運用サーバ100に関する情報は、第3プロセッサ通信部13−2を通じて監視サーバ200へ送られる。
【0102】
制御部11は、演算や制御を行う例えばプロセッサコアである。制御部11は、PCIデバイス31−1やメモリ32−1にアクセスを行う。
【0103】
制御部11は、更新部111を備える。更新部111は、第1プロセッサ1と接続されたデバイス3−1へのアクセスに関する情報を記録、更新する。
【0104】
アクセス情報120とは、第1プロセッサ1が行う、PCIデバイス31−1及びメモリ32−1へのアクセスに関する情報である。
【0105】
図8は、本発明の第3の実施形態における、アクセス情報120の一例を示す図である。
アクセス情報120は、例えば、デバイス識別情報121、アクセス回数情報122、アクセス完了情報123、処理実行情報124、異常状況情報125を含む。
【0106】
デバイス識別情報121は、第1プロセッサ1がアクセスしたデバイス3の識別情報である。アクセス回数情報122は、第1プロセッサ1のデバイス3へアクセスした回数を示す情報である。アクセス完了情報123は、第1プロセッサ1がデバイス3へのアクセスが完了したか否かを示す情報である。処理実行情報124は、第1プロセッサ1に異常が発生しているか判断する、異常検出動作が実行されているか否かを示す情報である。異常状況情報125は、第1プロセッサ1に異常が発生しているか否かを示す情報である。
【0107】
例えば、更新部111は、第1プロセッサ1がPCIデバイス31−1及びメモリ32−1にアクセスを行う度に、記憶部12のアクセス情報120を更新する。
【0108】
記憶部12は、例えば、第2プロセッサ通信部13−1が有するレジスタに設けられる。記憶部12は、第1プロセッサ1が行う、PCIデバイス31−1及びメモリ32−1へのアクセスに関するアクセス情報120を記憶する。
【0109】
第2プロセッサ2は、第1プロセッサ通信部23及び第2プロセッサ通信部13−1を介して第1プロセッサ1と接続されている。また、第2プロセッサ2は、PCIデバイス31−2、メモリ32−2と接続されている。第2プロセッサ2は、制御部21、第1プロセッサ通信部23を備える。
【0110】
第1プロセッサ通信部23は、第2プロセッサ2と第1プロセッサ1と通信可能に接続する。例えばバスインターフェイスである。また、第1プロセッサ通信部23は、記憶部22を有する。
【0111】
制御部21は、演算や制御を行う例えばプロセッサコアである。制御部21は、PCIデバイス31−2やメモリ32−2にアクセスを行う。
【0112】
制御部21は、取得部211、判断部212、特定部213を備える。
【0113】
取得部211は、第1プロセッサ1の第1プロセッサ通信部23を介して記憶部12へアクセスし、アクセス情報120を取得する。
【0114】
判断部212は、アクセス情報120及び所定時間前のアクセス情報120を複製した第2アクセス情報220に基づいて、第1プロセッサ1の制御部11に異常が発生しているか否か判断する。具体的には、判断部212は、アクセス情報120が更新されていない場合、第1プロセッサ1の制御部11に異常が発生している可能性があると判断する。そして、判断部212は、第1プロセッサ1の制御部11に異常が発生している可能性があると判断した場合、第1プロセッサ1の制御部11にアクセスする。なお、第1プロセッサ1の制御部11の異常とは、制御部11が停止するようなストール状態も含む。
【0115】
また、判断部212は、記憶部12から取得したアクセス情報120をコピーし、第2アクセス情報220として記憶部22に格納する。なお、第2アクセス情報220はアクセス情報120と同様のフォーマットを有する。
【0116】
特定部213は、判断部212において、第1プロセッサ1に異常が発生していると判断した場合、アクセス情報120に基づいて、第1プロセッサ1の制御部11に異常が発生した原因を特定する。
【0117】
例えば、特定部213は、アクセス情報120を参照し、デバイス3−1へのアクセスが完了しているか否か確認する。特定部213は、デバイス3−1へのアクセスが完了している場合、被疑部品を第1プロセッサ1であると判断する。特定部213は、デバイス3−1へのアクセスが完了していない場合、複数のデバイス識別情報121を含むデバイス対応情報231から障害情報232を特定し、被疑部品のデバイスを特定する。特定部213は、特定した被疑部品に関する障害情報232を、第2プロセッサ通信部13−1、第3プロセッサ通信部13−2、第1プロセッサ通信部43を介して、監視サーバ200に対して障害情報232を通知する。
【0118】
記憶部22は、第1プロセッサ通信部23が有するレジスタに設けられる。記憶部22は、所定時間前の第1プロセッサ1が行う、PCIデバイス31−1及びメモリ32−1へのアクセスに関するアクセス情報120を第2アクセス情報220として記憶している。
【0119】
所定時間前のアクセス情報120とは、例えば、判断部212が前回動作した際に記憶したアクセス情報120である。
【0120】
さらに、記憶部22は、対応情報230を記憶する。対応情報230は、故障被疑部品を特定するための情報である。例えば、複数のデバイス識別情報121を含むデバイス対応情報231と障害情報232の対応関係を示す情報である。デバイス対応情報231と障害情報232の対応関係には、それぞれの対応関係を識別するためのインデックス情報233が付与されている。
【0121】
なお、制御部11、制御部21、及び表示制御部41が有する各種機能部は、例えば図示しない補助記憶装置に格納されたプログラムに基づいて、所定の処理を実行することによって実現する。もしくは、当該プログラムをCDROM(Compact Disc Read Only Memory)等の記憶媒体に格納して制御部11、制御部21、及び表示制御部41に提供することも可能である。
【0122】
次に、本発明のアクセス情報120の詳細について説明する。
【0123】
図9は、本発明の第3の実施形態における、アクセス情報120の詳細例を示す図である。
アクセス情報120は、デバイス識別情報121、アクセス回数情報122、アクセス完了情報123、処理実行情報124、異常状況情報125を含む。
【0124】
デバイス識別情報121は、第1プロセッサ1がアクセスしたデバイス3−1の識別情報である。例えば、デバイス識別情報121は、アクセス先のデバイスの種類を格納するアクセス先デバイス領域、アクセスするデバイス3−1の詳細情報を格納するBus番号領域、Device番号領域、Function番号領域、Offset領域を有する。
【0125】
アクセス先デバイス領域は、第1プロセッサ1がアクセスするデバイス3−1の種類を格納する領域である。
【0126】
例えば、アクセス先デバイス領域の値が「0x01」であった場合、第1プロセッサ1は、PCIデバイス31−1にアクセスしたことを示す。アクセス先デバイス領域の値が「0x02」であれば、第1プロセッサ1がメモリ32−1にアクセスしたことを示す。アクセス先デバイスの領域の値が「0xFF」であれば、PCIデバイス31−1及びメモリ32−1以外の未定義のデバイス3−1にアクセスしたことを示す。
【0127】
Bus番号領域、Device番号領域、Function番号領域、Offset領域は、アクセスするデバイス3−1の詳細情報を格納する領域である。
【0128】
例えば、第1プロセッサ1がPCIデバイス31−1にアクセスした場合、そのPCIデバイス31−1のBus番号、Device番号、アクセスするレジスタを表すOffsetを、それぞれBus番号領域、Device番号領域、Function番号領域、Offset領域に格納する。
【0129】
第1プロセッサ1がメモリ32−1にアクセスした場合、Bus番号領域には、アクセス元の情報を格納する。第1プロセッサ1がメモリ32−1にアクセスした場合には、Bus番号領域には、第1プロセッサ1を示す情報を格納する。また、Device領域には、メモリ32−1の位置が識別可能な番号を格納する。
【0130】
アクセス回数情報122は、第1プロセッサ1がアクセスしたデバイス3−1の回数を含む情報である。例えば、アクセス回数情報122は、カウンタ領域を有する。アクセス情報120を書き換えるたびに、カウンタ領域のカウント数を加算する。
【0131】
アクセス回数情報122は、連続で同じデバイス3−1の同じ領域にアクセスした場合に、1回目のアクセスなのか、数回目のアクセスなのか判断するために用いる。
【0132】
アクセス完了情報123は、第1プロセッサ1のデバイス3−1へのアクセスが完了したか否かを示す情報である。アクセス完了情報123は、アクセス完了フラグを有する。例えば、アクセス完了フラグ「0x00」は、第1プロセッサ1がデバイス3−1へのアクセスが完了したことを示す。アクセス完了フラグ「0x01」は、第1プロセッサ1がデバイス3−1へのアクセスをしていることを示す。
【0133】
処理実行情報124は、第2プロセッサ2が、第1プロセッサ1に異常が発生しているか否か判断する、異常検出動作が実行中か否かを示す情報である。処理実行情報124は、例えばセマフォ領域である。例えば、セマフォ領域が「0x01」であれば、第2プロセッサ2が、第1プロセッサ1に異常が発生しているか否か判断する、異常検出動作を実行中であることを示す。セマフォ領域が「0x00」であれば、第2プロセッサ2が、第1プロセッサ1に異常が発生しているか否か判断する、異常検出動作を実行していないことを示す。
【0134】
異常状況情報125は、第2プロセッサ2が、第1プロセッサ1に異常が発生していると判断したか否かを示す情報である。異常状況情報125は、例えばストールフラグである。ストールフラグが「0x01」であれば、第2プロセッサ2が、第1プロセッサ1に異常が発生していると判断したことを示す。ストールフラグがが「0x00」であれば、第2プロセッサ2が、第1プロセッサ1に異常が発生していないと判断していることを示す。
【0135】
すなわち、図9におけるアクセス情報120は、第1プロセッサ1のデバイス3−1へのアクセスは1回目であり、PCIデバイス31−1にアクセスしたことを示している。また、第1プロセッサ1は異常状態と判断されておらず、第1プロセッサ1のデバイス3−1へのアクセスが完了していることを示す。また、第2プロセッサ2は、第1プロセッサ1に異常が発生しているか否かの異常検出動作をしていないことを示している。
【0136】
図10は、本発明の第3の実施形態における対応情報230の一例を示す図である。
【0137】
対応情報230は、デバイス対応情報231と、障害情報232と、インデックス情報233と、を含む。
【0138】
デバイス対応情報231は、複数のデバイス3−1に関する識別情報である。デバイス対応情報231は、デバイス識別情報121と対応している。
【0139】
障害情報232は、デバイス対応情報231と対応する障害情報を示している。例えば、障害情報232は、被疑部品の名称や警告メッセージの番号を含む。
【0140】
デバイス対応情報231は、デバイス識別情報121と対応する情報であるため、デバイス識別情報121を検索キーとして障害情報232を検索可能である。
【0141】
インデックス情報233は、デバイス対応情報231と障害情報232と対応関係に対してそれぞれに付与され、デバイス対応情報231と障害情報232との対応関係を識別するための情報である。
【0142】
次に、本発明の第3の実施形態における動作を説明する。
【0143】
運用サーバ100が起動を開始すると、第1プロセッサ1及び第2プロセッサ2に通電し、制御部11及び制御部21の起動動作を開始する。
【0144】
まず、第1プロセッサ1は、第1プロセッサ1の第3プロセッサ通信部13−2と、第1プロセッサ通信部43との間の初期化を行い、第1プロセッサ1と第3プロセッサ4間の通信を確立する。
【0145】
次に、第1プロセッサ1は、第1プロセッサ1の第2プロセッサ通信部13−1と第2プロセッサ2の第1プロセッサ通信部23間の初期化を実行し、第1プロセッサ1と第2プロセッサ2間の通信を確立させる。
【0146】
その後、第1プロセッサ1及び第2プロセッサ2に接続されているデバイス3の初期化を行う。
【0147】
図11は、本発明の第3の実施形態における動作概要を示すタイミングチャートである。
【0148】
起動動作中に、以下のステップS1からS5を行うことで、第1プロセッサ1の異常を検出する。なお、図5における第2の実施形態のタイミングチャートと同等のステップに関しては同じ符号を付している。
【0149】
まず、第1プロセッサ1は、デバイス3−1へアクセスを行う度に、後述するアクセス情報記録動作を行い、アクセス情報120を記録、更新する(ステップS1)。
【0150】
次に、第2プロセッサ2は、第1プロセッサ1の制御部11について後述する異常検出動作を行う(ステップS2)。
【0151】
なお、第2プロセッサ2が異常検出動作を実行するタイミングとしては、第1プロセッサ1のみが処理を実行中であって、第2プロセッサ2が待機状態の場合、定期的に異常検出動作を実行する。例えば、第1プロセッサ1の初期化や設定の初期化においては、第2プロセッサ2は、10秒に1回、定期的に異常検出動作を実行する。
【0152】
第1プロセッサ1及び第2プロセッサ2がともに処理を実行している場合は、第1プロセッサ1がデバイス3−1にアクセスを行うタイミングで、第2プロセッサ2は、異常検出動作を実行する。
【0153】
第2プロセッサ2は、第1プロセッサ1の制御部11について異常を検出した場合、被疑部品特定動作を実行する(ステップS3)。第2プロセッサ2は、第1プロセッサ1の制御部11について異常を検出しなかった場合、被疑部品特定動作を終了し、ステップS1に戻る。
【0154】
第2プロセッサ2は、被疑部品特定動作によって特定された障害情報232を、第1プロセッサ1を通じて第3プロセッサ4に障害情報232の通知を行う(ステップS4)。
【0155】
そして、ステップS5において、第3プロセッサ4は表示部5に障害情報232の表示指示を行い、表示部5は、その障害情報232を表示する(ステップS5)。
【0156】
以上で、本発明の第3の実施形態における動作概要を示すタイミングチャートを終了する。
【0157】
詳細な動作については図12から図14のフローチャートにおいて説明する。
【0158】
まず、アクセス情報記録動作について説明する。図12は、本発明の第3の実施形態における、アクセス情報記録動作を示すフローチャートである。本動作は、ステップS1の動作と対応する。
【0159】
まず、第1プロセッサ1の更新部111は、第2プロセッサ2が異常検出動作を実行しているか否か判断する(ステップS3001)。具体的には、更新部111は、アクセス情報120の処理実行情報124を参照して、異常検出動作を実行しているか判断する。
【0160】
例えば、更新部111は、セマフォ領域が「0x01」である場合、第2プロセッサ2の判断部212が異常検出動作を実行していると判断する。セマフォ領域が「0x00」の場合は、第2プロセッサ2が異常検出動作を実行していないと判断する。
【0161】
更新部111は、第2プロセッサ2が異常検出動作を実行していると判断した場合(ステップS3001:YES)、アクセス情報120の更新は行わず、ステップS3009に進む。
【0162】
更新部111は、第2プロセッサ2が異常検出動作を実行していないと判断した場合(ステップS3001:NO)、第1プロセッサ1がアクセスを行うデバイス3−1が事前に定義済みのデバイスであるか否か判断する(ステップS3002)。
【0163】
更新部111は、事前に定義されているデバイス3−1であると判断した場合(ステップS3002:YES)、当該デバイス3−1の識別情報をデバイス識別情報121に格納する(ステップS3004)。未定義のデバイス3−1であれば、更新部111は未定義である旨を示す情報を格納し(ステップS3003)、ステップS3005に進む。
【0164】
例えば、更新部111は、デバイス識別情報121のアクセス先デバイス領域に事前に定義がされている場合その値を格納し、未定義の場合、「0XFF」を格納する。
【0165】
次に、更新部111は、第1プロセッサ1がアクセスするデバイス3−1の詳細情報を抽出する(ステップS3005)。更新部111は、例えば詳細情報として、Bus番号、Device番号、Function番号を抽出する。
【0166】
更新部111は、ステップS3005で抽出した詳細情報をデバイス識別情報121として格納する(ステップS3006)。例えば、更新部111は、取得したBus番号、Device番号、Function番号をそれぞれBus番号領域、Device番号領域、Function番号領域に格納する。
【0167】
更新部111は、アクセス回数情報122の値に1を加算する(ステップS3007)。例えば、更新部111は、カウンタ領域の値をリードし、その値に1を加算して格納カウンタ領域に格納する。
【0168】
更新部111は、アクセス完了情報123に、アクセスが未完了であることを示す情報を格納する(ステップS3008)。例えば、更新部111は、アクセス完了フラグに「0x00」を格納する。
【0169】
そして、制御部11は、デバイス3−1へアクセスを実行する(ステップS3009)。
【0170】
正常にデバイス3−1へのアクセスが完了した場合、更新部111は、アクセス完了情報123にアクセスが完了した旨を示す情報を格納する(ステップS3010)。例えば、更新部111は、アクセス完了フラグに「0x01」を格納する。
【0171】
以上で、本発明の第3の実施形態における、アクセス情報記録動作を示すフローチャートが終了する。
【0172】
次に、異常検出動作を説明する。図13は、本発明の第3の実施形態における、異常検出動作を示すフローチャートである。本動作は、ステップS2の動作と対応する。
【0173】
まず、第2プロセッサ2の取得部211は、第1プロセッサ1の記憶部12にアクセスを行い、第1プロセッサ1が最後にアクセスしたデバイス3−1のアクセス情報120を取得する(ステップS4001)。具体的には、取得部211は、第1プロセッサ通信部23を介して、第2プロセッサ通信部13−1が有する記憶部12のアクセス情報120を取得する。
【0174】
次に、第2プロセッサの判断部212は、他のプロセッサが異常検出動作を実行中か否かを判断する(ステップS4002)。具体的には、判断部212は、アクセス情報120の処理実行情報124を参照し、他のプロセッサが異常検出動作を実行中か否かを判断する。例えば、判断部212は、処理実行情報124に含まれるセマフォ領域を参照し、「0x01」が格納されていた場合、他のプロセッサが異常検出を実行中と判断し、「0x00」が格納されていた場合、他のプロセッサが異常検出動作を実行中ではないと判断する。
【0175】
判断部212は、他のプロセッサが異常検出動作を実行中であると判断した場合(ステップS4002:YSE)、本動作を終了する。
【0176】
判断部212は、他のプロセッサが異常検出動作を実行中でないと判断した場合(ステップS4002:NO)、判断部212は、アクセス情報120の処理実行情報124に処理実行中であることを示す情報を格納する(ステップS4003)。例えば、判断部212は、セマフォ領域に「0x01」を格納する。これにより、他のプロセッサがアクセス情報120の処理実行情報124以外にアクセスを行うことがなくなる。
【0177】
判断部212は、記憶部22から第2アクセス情報220を読み込む(ステップS4004)。
【0178】
なお、初めて異常検出動作を実行する場合は、第2アクセス情報220が格納されていない。この場合は、第2アクセス情報220の値を全て「0x00」として読み込んでもよいし、アクセス情報120を第2アクセス情報220として扱ってもよい。もしくは、本ステップを行わずに、ステップS4007に進んでもよい。
【0179】
判断部212は、第1プロセッサ1が新たにデバイス3−1へアクセスを行ったか否か判断する(ステップS4005)
具体的には、判断部212は、アクセス情報120のアクセス回数情報122と、第2アクセス情報120のアクセス回数情報とを比較する。判断部212は、アクセス情報120のアクセス回数情報122の値が大きい場合、第1プロセッサ1が新たにデバイス3−1へアクセスを行ったと判断する。
【0180】
判断部212は、アクセス情報120のアクセス回数情報122と、第2アクセス情報120のアクセス回数情報とを比較し、同じであった場合、第1プロセッサ1が新たにデバイス3−1へアクセスを行っていないと判断する。
【0181】
判断部212は、第1プロセッサ1が新たにデバイス3−1へアクセスを行ったと判断した場合(ステップS4005:NO)、第1プロセッサ1に異常が発生している可能性があると判断する(ステップS4006)。
【0182】
判断部212は、第1プロセッサ1の制御部11が停止しているか否かを確認するため、制御部11へアクセスを行う(ステップS4007)。判断部212は、例えば、割込みによるプロセッサ間通信を行う。
【0183】
そして、判断部212は、第1プロセッサ1の制御部11から応答があるか否か判断する(ステップS4008)。
【0184】
判断部212は、制御部11から応答がない場合(ステップS4008:NO)、第1プロセッサ1の制御部11が停止していると判断する(ステップS4009)。
【0185】
判断部212は、アクセス情報120の異常状況情報125に異常発生を示す情報を格納する。例えば判断部212は、ストールフラグに「0x01」を格納する。
そして本動作を終了する。
【0186】
判断部212は、制御部11から応答がある場合(ステップS4008:YES)、第1プロセッサ1の制御部11に停止していないと判断する(ステップS4012)
そしてステップS4013に進む。
【0187】
一方、ステップS4005にて、判断部212は、第1プロセッサ1が新たにデバイス3−1にアクセスを行ったと判断した場合(ステップS4005:YES)、第1プロセッサ1の制御部11に異常が発生していないと判断する(ステップS4011)。
【0188】
そして、判断部212は、アクセス情報120を第2アクセス情報220として、記憶部22に格納する(ステップ4012)。
【0189】
そして、判断部212は、処理実行情報124に処理実行完了を示す情報を格納する(ステップS013)。例えば、判断部212は、セマフォ領域に「0x00」を格納する。
【0190】
そして本動作を終了する。
【0191】
以上で、本発明の第3の実施形態における異常検出動作を示すフローチャートが終了する。
【0192】
なお、本実施形態では、第1プロセッサ1及び第2プロセッサを有する構成であるため、他のプロセッサが異常検出動作を実行する場合はないが、プロセッサが3つ以上ある場合に他のプロセッサが異常検出動作を実行する可能性もありうる。
【0193】
例えば、第1プロセッサ1、第2プロセッサ2、第4プロセッサを備えた構成において、第2プロセッサ2は、第1プロセッサ1に対して異常検出動作を実行していたとする。このとき、第4プロセッサが第1プロセッサ1に対して異常検出動作を実行しようとした場合、ステップS4002と同様に、他のプロセッサが異常検出動作を実行中か否かを判断する。第4プロセッサは、他のプロセッサが異常検出動作していると判断し、異常検出動作を終了する。
【0194】
このように、各プロセッサが異常検出動作を実行する際に、ステップS4002で他のプロセッサが異常検出動作を実行中か否かを判断するため、第1プロセッサ1に対する排他処理を確実に行うことができる。しかしながら、排他制御が必要でない場合は、ステップS4002は省略することも可能である。
【0195】
最後に、被疑部品特定動作及び障害情報通知動作、障害情報表示動作を説明する。図14は、本発明の第3の実施形態における、被疑部品特定動作及び障害情報通知動作、障害情報表示動作を示すフローチャートである。本動作は、図11におけるステップS3からステップS5の動作と対応する。
【0196】
まず、第1プロセッサ1の特定部213は、異常検出動作において、判断部212が第1プロセッサ1の制御部11の異常を検出したか否かを判断する(ステップS5001)。具体的には、特定部213は、アクセス情報120の異常状況情報125を参照し、異常発生を示す情報が格納されているか否か判断する。
【0197】
特定部213は、第1プロセッサ1の制御部11の異常を検出していないと判断した場合(ステップS5001:NO)、本動作を終了する。
【0198】
特定部213は、第1プロセッサ1の制御部11の異常を検出したと判断した場合(ステップS5001:YES)、制御部11のデバイス3−1へのアクセスが完了しているか否か判断する(ステップS5002)。具体的には、特定部213は、アクセス情報120のアクセス完了情報123を参照し、アクセスが完了を示す情報が格納されているか否か判断する。
【0199】
例えば、アクセス完了フラグが「0x00」の場合、特定部213は、アクセスが完了していると判断し、アクセス完了フラグが「0x01」の場合、特定部213は、アクセスが未完了と判断する。
【0200】
特定部213は、制御部11のデバイス3−1へのアクセスが完了していると判断した場合(ステップS5002:YES)、アクセス完了後に異常が発生したことになる。ステップS5009に進み、特定部213は、異常発生の原因となっている被疑部品が第1プロセッサ1であると判断する(ステップS5009)。特定部213は、対応情報230内から第1プロセッサ1のインデックス情報233を取得する(ステップS5010)。そして、ステップS5011に進む。
【0201】
特定部213は、制御部11のデバイス3−1へのアクセス未完了と判断した場合(ステップS5002:NO)、アクセス先のデバイス3−1が原因で異常が発生したと考えられる。特定部213は、アクセス情報120のデバイス識別情報121を用いて、対応情報230から被疑部品を検索する(ステップS5003)。
【0202】
具体的には、特定部213は、デバイス対応情報231から、デバイス識別情報121のBus領域、Device領域、Function領域の値をキーとして、被疑部品を検索する。
【0203】
特定部213は、対応情報230内に、デバイス識別情報121と対応する被疑部品があるか否か判断する(ステップS5004)。
【0204】
特定部213は、対応情報230内に、デバイス識別情報121と対応する被疑部品がある場合(ステップS5004:YES)、ステップS5007に進む。
【0205】
特定部213は、対応情報230内に、デバイス識別情報121と対応する被疑部品がないと判断した場合(ステップS5004:NO)、対応情報230内からデバイス識別情報121のアクセスデバイス名領域を基に被疑部品を検索する(ステップS5005)。
【0206】
具体的には、特定部213は、デバイス対応情報231から、デバイス識別情報121のアクセスデバイス名領域の値をキーとして、被疑部品を検索する。
【0207】
特定部213は、対応情報230内に、デバイス識別情報121と対応する被疑部品があるか否か判断する(ステップS5006)。
【0208】
特定部213は、対応情報230内に、デバイス識別情報121と対応する被疑部品がある場合(ステップS5004:YES)、ステップS5007に進む。
【0209】
特定部213は対応情報230内に、デバイス識別情報121と対応する被疑部品がない場合(ステップS5006:NO)、ステップS5009に進み、第1プロセッサ1内のデータ不正として、異常発生の原因となっている被疑部品が第1プロセッサ1であると判断する(ステップS5009)。特定部213は、対応情報230内から第1プロセッサ1のインデックス情報233を取得する(ステップS5010)。そして、ステップS5011に進む。
【0210】
特定部213は、対応情報230内に、デバイス識別情報121と対応する被疑部品がある場合(ステップS5004またはステップS5006:YES)、異常発生の原因となっている被疑部品は、対応情報230で検索された部品であると判断する(ステップS5007)
特定部213は、対応情報230内から、ステップS5007で検索された部品のインデックス情報233を取得する(ステップS5008)。
【0211】
以上のS5001からステップS5010が、図11におけるステップS3と対応する被疑部品特定動作である。
【0212】
次に、特定部213は、ステップS5008又はステップS5010において特定されたインデックス情報233と対応する障害情報232を第3プロセッサ4に送信する(ステップS5011)。
【0213】
具体的には、特定部213は、第1プロセッサ1の第3プロセッサ通信部13−2にアクセスを行い、障害情報232を第3プロセッサ通信部13−2に送信する。そして、第3プロセッサ通信部13−2は、第1プロセッサ通信部43に送信する。これによって、障害情報232は、第3プロセッサ4に送信される。
【0214】
なお、本ステップは、図11におけるステップS4に対応する障害情報通知動作である。
【0215】
そして、第3プロセッサ4の表示制御部41は、表示部5に障害情報232を表示する。
【0216】
図15−1及び図15−2は、本発明の第3の実施形態における、表示部5への表示例である。例えば、表示制御部41は、図15−1や図15−2のように、障害の発生日時や障害の内容、故障被疑部品、補助情報を表示部5に表示するように制御する。
なお、本ステップは、図11におけるステップS5に対応する、障害情報表示動作である。
【0217】
以上で、本発明の第3の実施形態における被疑部品特定動作、障害情報通知動作、障害情報表示動作を示すフローチャートが終了する。
【0218】
本発明の第3の実施形態は、プロセッサの異常状態を効率的に検出することができる。その理由は、第2プロセッサ2が、第1プロセッサ1が行うデバイス3へのアクセスに関するアクセス情報120を参照し、新たに第1プロセッサ1がアクセスを行ったか否かに基づいて、第1プロセッサ1に異常が発生したか否かを判断するためである。
【0219】
特許文献1のように、立ち上げ中のCPU間のインターフェース回路の初期設定を行っている段階において、CPU側から応答がない場合に異常と検出する旨が記載されている。しかし、特許文献1の方法では、起動開始から起動完了までにかかる通常の起動完了時間待機する必要がある。
【0220】
一方、本発明の第3の実施形態は、第2プロセッサ2が第1プロセッサ1のアクセス情報120を確認することができるため、起動開始から起動完了までの起動完了時間を待機する必要がなく、迅速にプロセッサの異常を検出することができる。
【0221】
また、運用サーバが有するプロセッサが起動完了時間内に起動完了しない場合に、プロセッサに異常が発生したと判断する方法もある。しかしながら、上記方法では、プロセッサから起動完了の通知が来ないことをトリガとして異常を検出しているため、プロセッサに何らかの異常が発生していることはわかるものの、その異常の原因を知ることができない。
【0222】
一方、本発明の第3の実施形態は、第2プロセッサ2が、第1プロセッサ1がアクセスしたデバイス3−1の情報を確認することができるため、異常の原因となる被疑部品を特定することができる。
【0223】
また、本発明の第3の実施形態は、第2プロセッサと第3プロセッサが直接接続されていない場合であっても、第3プロセッサに異常を通知することができる。その理由は、第1プロセッサ1の通信部13を介して、第3プロセッサ4に障害情報232を送信できるように構成したためである。
【0224】
本実施形態では、第1プロセッサ1及び第2プロセッサ2は、一つの制御部11、制御部21を有する構成を示したが、第1プロセッサ1及び第2プロセッサ2は複数の制御部を有するようなマルチコアプロセッサであってもよい。
【0225】
本実施形態では、アクセス情報120を格納する領域は、第2プロセッサ通信部13−1が保持するレジスタとして説明したが、これに限られない。第1プロセッサ1がアクセス情報120を記憶でき、第2プロセッサ2がアクセスできる場所であれば構わない。
【0226】
本実施形態では、第2プロセッサ2が第1プロセッサ1の異常検出する例を示したが、同様の仕組みで、第1プロセッサ1が第2プロセッサ2の異常検出するとも可能である。プロセッサの数が増えた場合、各プロセッサ間で相互に異常を検出するように構成してもよい。
また、プロセッサの数が増えた場合には、各プロセッサに異常検出対象のプロセッサを割り当てて異常検出対象のプロセッサを分担させることも可能である。
【0227】
本実施形態では、被疑部品を第2プロセッサ2で特定しているが、アクセス情報120を第3プロセッサに送信し、第3プロセッサ4が被疑部品特定動作を実行しても構わない。
【0228】
また、第3プロセッサ4がアクセス情報120にアクセスできる場合は、第2プロセッサ2がアクセス情報120を第3プロセッサ4に送信するのではなく、直接、第3プロセッサ4がアクセス情報120を取得してもよい。
【0229】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。アクセス情報120など各種情報や、異常検出動作など各種動作の実行タイミングは一例を示したに過ぎずもちろんこれに限られない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【0230】
1000 マルチプロセッサシステム
100 運用サーバ
200 監視サーバ
1 第1プロセッサ
11 プロセッサコア、制御部
111 更新部
12 レジスタ、記憶部
120 アクセス情報
121 デバイス識別情報
122 アクセス回数情報
123 アクセス完了情報
124 処理実行情報
125 異常状況情報
13 通信部
13−1 第2プロセッサ通信部
13−2 第3プロセッサ通信部
2 第2プロセッサ
21 プロセッサコア、制御部
211 取得部
212 判断部
213 特定部
22 記憶部
23 第1プロセッサ通信部
220 第2アクセス情報
230 対応情報
231 デバイス対応情報
232 障害情報
233 インデックス情報
23 第1プロセッサ通信部
3 デバイス
31 PCIデバイス
32 メモリ
4 第3プロセッサ
41 表示制御部
43 第1プロセッサ通信部
5 表示部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15-1】
図15-2】