JP5726340B2 - プロセッサシステム - Google Patents
プロセッサシステム Download PDFInfo
- Publication number
- JP5726340B2 JP5726340B2 JP2013558596A JP2013558596A JP5726340B2 JP 5726340 B2 JP5726340 B2 JP 5726340B2 JP 2013558596 A JP2013558596 A JP 2013558596A JP 2013558596 A JP2013558596 A JP 2013558596A JP 5726340 B2 JP5726340 B2 JP 5726340B2
- Authority
- JP
- Japan
- Prior art keywords
- core
- wdt
- storage device
- abnormality
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000005856 abnormality Effects 0.000 claims description 105
- 230000002159 abnormal effect Effects 0.000 claims description 62
- 241001522296 Erithacus rubecula Species 0.000 claims description 6
- 238000000034 method Methods 0.000 description 33
- 230000000737 periodic effect Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 101000609219 Homo sapiens Polyadenylate-binding protein 4 Proteins 0.000 description 6
- 102100039424 Polyadenylate-binding protein 4 Human genes 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000011084 recovery Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000010485 coping Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/0757—Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0721—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
- G06F11/0724—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
- G06F11/0787—Storage of error reports, e.g. persistent data storage, storage using memory protection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/86—Event-based monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Hardware Redundancy (AREA)
- Debugging And Monitoring (AREA)
Description
本発明は、複数のプロセッサユニットが含まれるプロセッサシステムに関する。
本明細書では、以降、1つのCPU(Central Processing Unit)パッケージ内に複数の処理系(CPUコア、以下、単にコアという)が配置されているマルチコアCPUを中心にして説明を進めるが、複数のCPU(シングルコアCPU又はマルチコアCPU)が配置されているマルチCPUシステム、マルチプロセッサシステムにも本明細書に記載の説明は適用される。
つまり、以下で示すマルチコアCPUの「コア」は、マルチCPUシステム、マルチプロセッサシステムにおける個々の「CPU」、「プロセッサ」と読み替えることができる。
また、「プロセッサユニット」との語は、マルチコアCPUにおける「コア」と、マルチCPUシステム、マルチプロセッサシステムにおける「CPU」及び「プロセッサ」のいずれも含む概念として用いている。
つまり、以下で示すマルチコアCPUの「コア」は、マルチCPUシステム、マルチプロセッサシステムにおける個々の「CPU」、「プロセッサ」と読み替えることができる。
また、「プロセッサユニット」との語は、マルチコアCPUにおける「コア」と、マルチCPUシステム、マルチプロセッサシステムにおける「CPU」及び「プロセッサ」のいずれも含む概念として用いている。
RAS方式(RAS: Reliability, Availability, Serviceability)は、マルチコアCPUの1つのコアの異常をwatchdog timer(以下、「WDT」と略記とする)で検知して、メモリ上のログ情報(以下、単に「ログ」ともいう)をバックアップ記憶装置に保存する異常対処方式である。
WDTはコンピュータのハードウェア時間計測器である。
RAS方式では、メインのプログラムがハングアップなどの不正な状態に陥ってしまい規則的なウォッチドッグ操作(WDTのリセット操作)が行なわれなかった(WDTタイムアウト)場合に、例外処理(WDT例外)が実行される。
例外処理は、ハングアップしたシステムを正常動作に戻すことを目的としてシステムをリセットする場合に実行させることが多いが、システムを強制停止させる場合や電源を切断した後の再投入時に実行されることもある。
障害を引き起こした問題のデバッグに役立つ情報などを媒体に保存する機能を持つRAS方式の場合、WDTはより複雑な処理を行う。
たとえば、WDTのタイムアウトによって開始されたログ情報の保存処理がある時間内に完了しなかった場合に、ログ情報が保存されていてもいなくても、WDTは、一定のディレイ時間経過後にシステムを確実にリセットさせる。
WDTはコンピュータのハードウェア時間計測器である。
RAS方式では、メインのプログラムがハングアップなどの不正な状態に陥ってしまい規則的なウォッチドッグ操作(WDTのリセット操作)が行なわれなかった(WDTタイムアウト)場合に、例外処理(WDT例外)が実行される。
例外処理は、ハングアップしたシステムを正常動作に戻すことを目的としてシステムをリセットする場合に実行させることが多いが、システムを強制停止させる場合や電源を切断した後の再投入時に実行されることもある。
障害を引き起こした問題のデバッグに役立つ情報などを媒体に保存する機能を持つRAS方式の場合、WDTはより複雑な処理を行う。
たとえば、WDTのタイムアウトによって開始されたログ情報の保存処理がある時間内に完了しなかった場合に、ログ情報が保存されていてもいなくても、WDTは、一定のディレイ時間経過後にシステムを確実にリセットさせる。
WDTが最も多く使われているのは組み込みシステムで、マイクロコントローラにWDTが内蔵されることもある。
単体のCPUだけでなく、マルチコアCPU、マルチプロセッサなど複数のCPUを持つシステムに対してWDTを適用する方法も提案されている。
単体のCPUだけでなく、マルチコアCPU、マルチプロセッサなど複数のCPUを持つシステムに対してWDTを適用する方法も提案されている。
また、特許文献1では、マルチプロセッサシステムにおいて、あるプロセッサが、自プロセッサが動作異常状態であることを別のプロセッサにWDT例外で通知し、その別のプロセッサが動作異常状態のプロセッサへ異常回復動作のトリガとなる割込みを通知し、動作異常状態のプロセッサが割込みを受付けない場合には、その別のプロセッサが動作異常状態のプロセッサをリセットする方式が開示されている。
あるプロセッサに異常が発生した場合に、異常が発生したプロセッサのログ情報に加え、異常が発生していない他のプロセッサのログ情報も障害解析やシステム復旧のための重要な手掛かりとなる。
特許文献1の技術では、異常が発生したプロセッサのログ情報はバックアップ記憶装置に保存されるが、異常が発生していない他のプロセッサのログ情報は保存されない。
特許文献1の技術では、異常が発生したプロセッサのログ情報はバックアップ記憶装置に保存されるが、異常が発生していない他のプロセッサのログ情報は保存されない。
この発明は、このような点に鑑みたものであり、いずれかのプロセッサユニットに異常が発生した場合に、異常が発生していない他のプロセッサユニットのログ情報を保存できるようにすることを主な目的とする。
本発明に係るプロセッサシステムは、
複数のプロセッサユニットと、
各プロセッサユニットのログ情報を記憶する第1の記憶装置と、
いずれかのプロセッサユニットにおいて異常が発生した場合に、前記第1の記憶装置に記憶されているログ情報が書き込まれる第2の記憶装置と、
いずれかのプロセッサユニットにおいて異常が発生した場合に、ラウンドロビンにより、異常の発生を各プロセッサユニットに通知する異常発生通知装置を有し、
各プロセッサユニットは、
他のプロセッサユニットにおいて異常が発生した場合に、前記第1の記憶装置に記憶されている、異常が発生した異常発生プロセッサユニットのログ情報の前記第2の記憶装置への書き込みが開始しているか否かを判定し、
前記異常発生プロセッサユニットのログ情報の前記第2の記憶装置への書き込みが開始していない場合に、前記第1の記憶装置に記憶されている前記異常発生プロセッサユニットのログ情報を前記第2の記憶装置に書き込み、
前記異常発生通知装置により異常の発生が通知された際に、前記第1の記憶装置に記憶されている、自プロセッサユニットのログ情報を前記第2の記憶装置に書き込むことを特徴とする。
複数のプロセッサユニットと、
各プロセッサユニットのログ情報を記憶する第1の記憶装置と、
いずれかのプロセッサユニットにおいて異常が発生した場合に、前記第1の記憶装置に記憶されているログ情報が書き込まれる第2の記憶装置と、
いずれかのプロセッサユニットにおいて異常が発生した場合に、ラウンドロビンにより、異常の発生を各プロセッサユニットに通知する異常発生通知装置を有し、
各プロセッサユニットは、
他のプロセッサユニットにおいて異常が発生した場合に、前記第1の記憶装置に記憶されている、異常が発生した異常発生プロセッサユニットのログ情報の前記第2の記憶装置への書き込みが開始しているか否かを判定し、
前記異常発生プロセッサユニットのログ情報の前記第2の記憶装置への書き込みが開始していない場合に、前記第1の記憶装置に記憶されている前記異常発生プロセッサユニットのログ情報を前記第2の記憶装置に書き込み、
前記異常発生通知装置により異常の発生が通知された際に、前記第1の記憶装置に記憶されている、自プロセッサユニットのログ情報を前記第2の記憶装置に書き込むことを特徴とする。
本発明によれば、各プロセッサユニットは、いずれかのプロセッサユニットにおいて異常が発生した場合に、第1の記憶装置の自プロセッサユニットのログ情報を第2の記憶装置に書き込む。
このため、異常が発生していないプロセッサユニットのログ情報を保存することができる。
このため、異常が発生していないプロセッサユニットのログ情報を保存することができる。
以下に示す実施の形態1及び実施の形態2では、いずれかのコアに異常が発生した場合に、異常が発生していない他のコアのログ情報をバックアップ記憶装置に保存できる構成を説明する。
また、実施の形態1及び実施の形態2では、異常発生が発生した異常発生コアの異常対処機能(RAS機能)が正常に動作しない場合でも、異常発生コアのログ情報を、バックアップ記憶装置に保存できる構成を説明する。
従来の技術では、マルチコアCPUの一つのコアの異常をWDTで検知してメモリ上のログをバックアップ記憶装置に保存して最終的にボードリセットするような異常対処方式(RAS方式)において、異常発生コア上のRAS機能が正常に動作しない場合、異常発生コアの異常発生時のログを保存することができないという課題がある。
例えば、特許文献1の技術では、WDTで検知した1つのプロセッサの異常を他のプロセッサに通知して、他のプロセッサ経由で異常発生プロセッサに対して異常回復動作のトリガをかけるが、この異常回復動作は異常発生プロセッサ自身が行うため、この異常回復動作が正常に動作しない場合、異常発生プロセッサのログをバックアップ記憶装置に保存することはできない。
実施の形態1及び実施の形態2では、このような点に鑑み、異常発生コアのログを、異常発生コアのRAS機能が正常に動作しない場合でも、バックアップ記憶装置に保存できるようにする構成、及び、異常が発生していない他のコアのログをバックアップ記憶装置に保存できる構成を説明する。
また、実施の形態1及び実施の形態2では、異常発生が発生した異常発生コアの異常対処機能(RAS機能)が正常に動作しない場合でも、異常発生コアのログ情報を、バックアップ記憶装置に保存できる構成を説明する。
従来の技術では、マルチコアCPUの一つのコアの異常をWDTで検知してメモリ上のログをバックアップ記憶装置に保存して最終的にボードリセットするような異常対処方式(RAS方式)において、異常発生コア上のRAS機能が正常に動作しない場合、異常発生コアの異常発生時のログを保存することができないという課題がある。
例えば、特許文献1の技術では、WDTで検知した1つのプロセッサの異常を他のプロセッサに通知して、他のプロセッサ経由で異常発生プロセッサに対して異常回復動作のトリガをかけるが、この異常回復動作は異常発生プロセッサ自身が行うため、この異常回復動作が正常に動作しない場合、異常発生プロセッサのログをバックアップ記憶装置に保存することはできない。
実施の形態1及び実施の形態2では、このような点に鑑み、異常発生コアのログを、異常発生コアのRAS機能が正常に動作しない場合でも、バックアップ記憶装置に保存できるようにする構成、及び、異常が発生していない他のコアのログをバックアップ記憶装置に保存できる構成を説明する。
実施の形態1.
[実施の形態1:構成の説明]
図1は、本実施の形態に係るCPUボード100の構成例を示すブロック図である。
CPUボード100のハードウェア構成要素は、N個のコア116〜118と、各コアに対応するN個のWDT120〜122と、メモリ125と、バックアップ記憶装置126と、割込みコントローラ119と、ディレイ装置123と、ボードリセット装置124である。
コア116〜118は、それぞれ、プロセッサユニットの例に相当する。
また、メモリ125は、第1の記憶装置の例に相当する。
また、バックアップ記憶装置126は、第2の記憶装置の例に相当する。
また、割込みコントローラ119は、異常通知装置の例に相当する。
[実施の形態1:構成の説明]
図1は、本実施の形態に係るCPUボード100の構成例を示すブロック図である。
CPUボード100のハードウェア構成要素は、N個のコア116〜118と、各コアに対応するN個のWDT120〜122と、メモリ125と、バックアップ記憶装置126と、割込みコントローラ119と、ディレイ装置123と、ボードリセット装置124である。
コア116〜118は、それぞれ、プロセッサユニットの例に相当する。
また、メモリ125は、第1の記憶装置の例に相当する。
また、バックアップ記憶装置126は、第2の記憶装置の例に相当する。
また、割込みコントローラ119は、異常通知装置の例に相当する。
コア116〜118のソフトウェア構成要素は、WDTを周期的にリセットするアプリケーション(周期処理APP)101〜103と、OS(Operating System)104〜106と、RAS処理部107〜109と、WDTドライバ110〜112と、WDT例外ハンドラ113〜115である。
なお、WDT120〜122に代えて、タイマ動作をして、CPUの異常発生を通知する仕組みをもつ外部WDTを用いてもよい。
また、後述では、「各WDTは、WDTタイムアウトが発生すると全コア数分のWDT例外を割込みコントローラ119に通知するよう設定される」旨を説明しているが、WDT120〜122に代えて、同じ動作を行うハードウェアを用いてもよい。
また、後述では、「各WDTは、WDTタイムアウトが発生すると全コア数分のWDT例外を割込みコントローラ119に通知するよう設定される」旨を説明しているが、WDT120〜122に代えて、同じ動作を行うハードウェアを用いてもよい。
[実施の形態1:設定の説明]
実施の形態1における、WDT120〜122と割込みコントローラ119のハードウェア設定について説明する。
各WDTは、WDTタイムアウトが発生すると全コア数分のWDT例外を割込みコントローラ119に通知するよう設定される。
割込みコントローラ119は、WDT例外を受付けると、ラウンドロビンで全コアに対してWDT例外を通知するよう設定される。
実施の形態1における、WDT120〜122と割込みコントローラ119のハードウェア設定について説明する。
各WDTは、WDTタイムアウトが発生すると全コア数分のWDT例外を割込みコントローラ119に通知するよう設定される。
割込みコントローラ119は、WDT例外を受付けると、ラウンドロビンで全コアに対してWDT例外を通知するよう設定される。
[実施の形態1:動作の概要説明]
次に動作について説明する。
実施の形態1では、WDT例外発生時に全コアのRAS処理部に順番に異常発生が通知され、各コアのRAS処理部は、自コアのログをバックアップ記憶装置126に保存する。
また、異常発生コアのRAS処理部が正常に動作しない場合は、正常動作する他コアのRAS処理部が代替して異常発生コアのログの保存を行う。
本実施の形態に係る動作の概要は以下の通りである。
次に動作について説明する。
実施の形態1では、WDT例外発生時に全コアのRAS処理部に順番に異常発生が通知され、各コアのRAS処理部は、自コアのログをバックアップ記憶装置126に保存する。
また、異常発生コアのRAS処理部が正常に動作しない場合は、正常動作する他コアのRAS処理部が代替して異常発生コアのログの保存を行う。
本実施の形態に係る動作の概要は以下の通りである。
i)前述の[実施の形態1:設定の説明]の通り、WDTは、WDTタイムアウトが発生すると全コア数分のWDT例外を割込みコントローラ119に通知する。
つまり、WDTは、1回のWDTタイムアウト発生に対して、コア数分のWDT例外発生通知(N個のWDT例外発生通知)を割込みコントローラ119に出力する。
割込みコントローラ119は、WDTからのWDT例外発生通知を入力すると、各コアへラウンドロビンで順番に異常発生の通知を行う。
これらにより、1回のWDTのタイムアウト発生に対して、全てのコアへ順番に異常の発生が通知される。
ii)異常発生通知を受けた各コアのRAS処理部では、各自のコアのログをバックアップ記憶装置126に保存する。
iii)異常発生通知を受けた各コアのRAS処理部は、どのコアのWDTがWDT例外発生通知を出力したかをWDT例外の種類で知ることができる。
異常発生コア以外のコアのRAS処理部は、異常発生コアのログのバックアップ記憶装置126への保存が開始されているかどうかを判定する。
そして、異常発生コアのログの保存が開始されていない場合には、異常発生コア以外のコアのRAS処理部は、異常発生コアのログのバックアップ記憶装置126への保存を行う。
つまり、WDTは、1回のWDTタイムアウト発生に対して、コア数分のWDT例外発生通知(N個のWDT例外発生通知)を割込みコントローラ119に出力する。
割込みコントローラ119は、WDTからのWDT例外発生通知を入力すると、各コアへラウンドロビンで順番に異常発生の通知を行う。
これらにより、1回のWDTのタイムアウト発生に対して、全てのコアへ順番に異常の発生が通知される。
ii)異常発生通知を受けた各コアのRAS処理部では、各自のコアのログをバックアップ記憶装置126に保存する。
iii)異常発生通知を受けた各コアのRAS処理部は、どのコアのWDTがWDT例外発生通知を出力したかをWDT例外の種類で知ることができる。
異常発生コア以外のコアのRAS処理部は、異常発生コアのログのバックアップ記憶装置126への保存が開始されているかどうかを判定する。
そして、異常発生コアのログの保存が開始されていない場合には、異常発生コア以外のコアのRAS処理部は、異常発生コアのログのバックアップ記憶装置126への保存を行う。
[実施の形態1:動作の詳細説明]
次に、本実施の形態に係る動作の詳細について説明する。
次に、本実施の形態に係る動作の詳細について説明する。
(動作の詳細説明:正常時の動作)
まず正常時の動作を、図2を用いて説明する。
コア1(116)の周期処理APP−1(101)は周期的にWDTリセットを行う。
周期処理APP−1(101)は、WDTドライバ110を経由してWDT−1(120)をリセットする。
正常時はWDTタイムアウトが発生する前にWDTリセットが行われるため、WDT例外は発生しない。
コア2(117)、コアN(118)においても同様の処理(102→111→121、103→112→122の矢印)が行われる。
まず正常時の動作を、図2を用いて説明する。
コア1(116)の周期処理APP−1(101)は周期的にWDTリセットを行う。
周期処理APP−1(101)は、WDTドライバ110を経由してWDT−1(120)をリセットする。
正常時はWDTタイムアウトが発生する前にWDTリセットが行われるため、WDT例外は発生しない。
コア2(117)、コアN(118)においても同様の処理(102→111→121、103→112→122の矢印)が行われる。
(動作の詳細説明:異常発生時の動作)
次に、異常発生時の動作を、図4、図5及び図6のフローチャートを用いて説明する。
この時のブロック図上での処理の流れは図3を使って補足する。
ここでは、コア1(116)に異常が発生し、WDT−1(120)でWDT例外が発生した例で説明する。
次に、異常発生時の動作を、図4、図5及び図6のフローチャートを用いて説明する。
この時のブロック図上での処理の流れは図3を使って補足する。
ここでは、コア1(116)に異常が発生し、WDT−1(120)でWDT例外が発生した例で説明する。
S111において、WDTタイムアウトが発生する。
S112において、WDT−1(120)は一定時間ディレイ後にボードリセットを行う処理を呼出す(図3の120から123への矢印)。
S101において一定時間ディレイした後に、ボードリセット処理S102が呼出される(図3の123から124への矢印)。
このディレイ時間はRAS処理部が全てのコアのログをバックアップ記憶装置126に保存を終える時間に比べて十分大きい時間とする。
S113において、WDT−1(120)はコア数分のWDT例外を割込みコントローラ119に通知する(図3の120から119への矢印)。
S171において、割込みコントローラ119はWDT−1(120)より全コア数分のWDT例外通知を入力し、ラウンドロビンで各コアのWDT例外ハンドラにWDT−1(120)の例外を通知する(図3の119から113,114,115への矢印)。
S112において、WDT−1(120)は一定時間ディレイ後にボードリセットを行う処理を呼出す(図3の120から123への矢印)。
S101において一定時間ディレイした後に、ボードリセット処理S102が呼出される(図3の123から124への矢印)。
このディレイ時間はRAS処理部が全てのコアのログをバックアップ記憶装置126に保存を終える時間に比べて十分大きい時間とする。
S113において、WDT−1(120)はコア数分のWDT例外を割込みコントローラ119に通知する(図3の120から119への矢印)。
S171において、割込みコントローラ119はWDT−1(120)より全コア数分のWDT例外通知を入力し、ラウンドロビンで各コアのWDT例外ハンドラにWDT−1(120)の例外を通知する(図3の119から113,114,115への矢印)。
次に、コア1(116)への例外通知後の動作(S120:ログバックアップ処理)を、図5を参照して説明する。
S121において異常発生コア(コア1)のWDT例外ハンドラ113が正常に動作せず、異常発生コアのRAS処理部1(107)が実行されなかった場合には、異常発生コアのRAS処理部1(107)による異常発生コアのログのバックアップ記憶装置126への保存はできない(S122)。
S121において異常発生コアのWDT例外ハンドラ113が正常に動作した場合、S123において、WDT例外ハンドラ113は、自コアのRAS処理部1(107)に異常を通知する(図3の113から107への矢印)。
S124において、RAS処理部1(107)は、異常発生コアのログのバックアップ記憶装置126へのコピーが開始されているかどうかを判断し、コピーが開始されていない場合には、S125で異常発生コアのログをバックアップ記憶装置へコピーする(図3の107から127,130への矢印)。
ここで各コアのログのバックアップ記憶装置126へのコピーが開始されたかどうかは、メモリ125上のフラグやセマフォなどの共有資源を使って確認できるものとする。
S121において異常発生コアのWDT例外ハンドラ113が正常に動作した場合、S123において、WDT例外ハンドラ113は、自コアのRAS処理部1(107)に異常を通知する(図3の113から107への矢印)。
S124において、RAS処理部1(107)は、異常発生コアのログのバックアップ記憶装置126へのコピーが開始されているかどうかを判断し、コピーが開始されていない場合には、S125で異常発生コアのログをバックアップ記憶装置へコピーする(図3の107から127,130への矢印)。
ここで各コアのログのバックアップ記憶装置126へのコピーが開始されたかどうかは、メモリ125上のフラグやセマフォなどの共有資源を使って確認できるものとする。
前述したように、割込みコントローラ119はラウンドロビンにより各コアのWDT例外ハンドラにWDT例外の発生を通知するため、異常発生コア(コア1)のRAS処理部1(107)よりも先に、他のコアのRAS処理が、異常発生コアのログのコピーを開始している場合がある(図6のS135)。
このため、RAS処理部1(107)は、S124で他のコアのRAS処理部によりログのコピーが開始されているか否かを確認する。
このため、RAS処理部1(107)は、S124で他のコアのRAS処理部によりログのコピーが開始されているか否かを確認する。
次に、RAS処理部1(107)は、S126において、全てのコアのログコピーが完了しているかどうかの判断を行い、いずれかのコアにてログコピーが完了していない場合は、RAS処理部1(107)の処理が完了する。
一方、S126において全てのコアのログコピーが完了していた場合には、RAS処理部1(107)は、S102のボードリセット処理を呼出す(図3ではコアNのRAS処理部が全てのコピー完了したことを確認した例であり、109から124への矢印となる)。
ここで、全てのコアのログコピーが完了したかどうかは、メモリ125上のフラグやセマフォなどの共有資源を使って確認できるものとする。
また、図3のボードリセット装置124のボードリセット処理は、ディレイ装置123のディレイ後にも呼出されるが、全てのRAS処理の完了を確認した時点でボードリセットを行う方が、ディレイを待たずにその分だけ早くボードリセットできる効果がある。
一方、S126において全てのコアのログコピーが完了していた場合には、RAS処理部1(107)は、S102のボードリセット処理を呼出す(図3ではコアNのRAS処理部が全てのコピー完了したことを確認した例であり、109から124への矢印となる)。
ここで、全てのコアのログコピーが完了したかどうかは、メモリ125上のフラグやセマフォなどの共有資源を使って確認できるものとする。
また、図3のボードリセット装置124のボードリセット処理は、ディレイ装置123のディレイ後にも呼出されるが、全てのRAS処理の完了を確認した時点でボードリセットを行う方が、ディレイを待たずにその分だけ早くボードリセットできる効果がある。
次に、コア2(117)及びコアN(118)への例外通知後の動作(S130:ログバックアップ処理)を、図6を参照して説明する。
以下では、コア2(117)の処理として説明するが、コアN(118)でも同様の処理が行われる。
以下では、コア2(117)の処理として説明するが、コアN(118)でも同様の処理が行われる。
S131において、コア2(117)のRAS処理部2(108)がWDTドライバ111を経由してWDT−2(121)をリセットする(図3の108から111経由で121への矢印)。
これは、WDT−1(120)の例外発生通知の受信によるRAS処理を行っている間に、異常発生コア以外のWDTタイムアウトが発生しないようにするための処理である。
次に、S132において、コア2(117)のWDT例外ハンドラ114がコア2(117)のRAS処理部2(108)に異常を通知する(図3の114から108への矢印)。
次に、RAS処理部2(108)は、S133において、コア2(117)のログをバックアップ記憶装置126へコピーする(図3の108から128,131への矢印)。
次に、RAS処理部2(108)は、S134において異常発生コア(コア1)のログのバックアップ記憶装置126へのコピーが開始されているか確認し、開始されていなければ、S135で異常発生コアのログをバックアップ記憶装置126へコピーする(図3の127から130への矢印をコア2のRAS処理部2(108)が代替して実施)。
これにより、異常発生コア以外のRAS処理部が代替して異常発生コアのログをバックアップ記憶装置126へコピーすることができる。
次に、S136において、RAS処理部2(108)は、全てのログコピーが完了しているかどうかの判断を行い、いずれかのコアにてログコピーが完了していない場合は、RAS処理部2(108)の処理が完了する。
一方、S136において全てのコアのログコピーが完了していた場合には、RAS処理部2(108)は、S102のボードリセット処理を呼出す。
これは、WDT−1(120)の例外発生通知の受信によるRAS処理を行っている間に、異常発生コア以外のWDTタイムアウトが発生しないようにするための処理である。
次に、S132において、コア2(117)のWDT例外ハンドラ114がコア2(117)のRAS処理部2(108)に異常を通知する(図3の114から108への矢印)。
次に、RAS処理部2(108)は、S133において、コア2(117)のログをバックアップ記憶装置126へコピーする(図3の108から128,131への矢印)。
次に、RAS処理部2(108)は、S134において異常発生コア(コア1)のログのバックアップ記憶装置126へのコピーが開始されているか確認し、開始されていなければ、S135で異常発生コアのログをバックアップ記憶装置126へコピーする(図3の127から130への矢印をコア2のRAS処理部2(108)が代替して実施)。
これにより、異常発生コア以外のRAS処理部が代替して異常発生コアのログをバックアップ記憶装置126へコピーすることができる。
次に、S136において、RAS処理部2(108)は、全てのログコピーが完了しているかどうかの判断を行い、いずれかのコアにてログコピーが完了していない場合は、RAS処理部2(108)の処理が完了する。
一方、S136において全てのコアのログコピーが完了していた場合には、RAS処理部2(108)は、S102のボードリセット処理を呼出す。
[実施の形態1:効果]
以上のように、全コアのRAS処理部に順番に異常発生を通知し、各コアのRAS処理部が、自コアのログ情報をバックアップ記憶装置に保存する。
このため、異常発生コア以外の他のコアのログ情報も、バックアップ記憶装置に保存することができ、ボード全体の障害解析に役立てることができる。
また、異常発生コアのRAS処理部が正常に動作しない場合でも、異常発生コアのログ情報の保存を正常動作する他のコアが代替することにより、異常発生コアのログ情報をバックアップ記憶装置に保存することができる。
また、本実施の形態では、WDTの設定や割込みコントローラの設定は既存の技術を利用しているため、本実施の形態に係る仕組みを簡易かつ安価に実現することが可能である。
以上のように、全コアのRAS処理部に順番に異常発生を通知し、各コアのRAS処理部が、自コアのログ情報をバックアップ記憶装置に保存する。
このため、異常発生コア以外の他のコアのログ情報も、バックアップ記憶装置に保存することができ、ボード全体の障害解析に役立てることができる。
また、異常発生コアのRAS処理部が正常に動作しない場合でも、異常発生コアのログ情報の保存を正常動作する他のコアが代替することにより、異常発生コアのログ情報をバックアップ記憶装置に保存することができる。
また、本実施の形態では、WDTの設定や割込みコントローラの設定は既存の技術を利用しているため、本実施の形態に係る仕組みを簡易かつ安価に実現することが可能である。
実施の形態2.
以上の実施の形態1では、1回のWDT例外を全コア数分発生させたが、本実施の形態では、ハイパーバイザが存在し、1つのコアが受取ったWDT例外をハイパーバイザ経由で他のコアへ通知することにより、全コアへWDT異常通知を行う例を説明する。
なお、本実施の形態におけるハイパーバイザは、組込み機器向けハイパーバイザを指し、マルチコア上で複数のOSを同時実行し、かつOS間の連携と実行環境保護を実現するソフトウェアである。
図14に、2コアCPUにおける組込みハイパーバイザの簡単なブロック図を示す。
図14に示すように、ハイパーバイザ1は、コア1で動作し、コア1とOS1との連携を行い、ハイパーバイザ2は、コア2で動作し、コア2とOS2との連携を行う。
また、ハイパーバイザ1とハイパーバイザ2との間でも連携が図られる。
以上の実施の形態1では、1回のWDT例外を全コア数分発生させたが、本実施の形態では、ハイパーバイザが存在し、1つのコアが受取ったWDT例外をハイパーバイザ経由で他のコアへ通知することにより、全コアへWDT異常通知を行う例を説明する。
なお、本実施の形態におけるハイパーバイザは、組込み機器向けハイパーバイザを指し、マルチコア上で複数のOSを同時実行し、かつOS間の連携と実行環境保護を実現するソフトウェアである。
図14に、2コアCPUにおける組込みハイパーバイザの簡単なブロック図を示す。
図14に示すように、ハイパーバイザ1は、コア1で動作し、コア1とOS1との連携を行い、ハイパーバイザ2は、コア2で動作し、コア2とOS2との連携を行う。
また、ハイパーバイザ1とハイパーバイザ2との間でも連携が図られる。
[実施の形態2:構成の説明]
図7は、本実施の形態に係るCPUボード200の構成例を示すブロック図である。
CPUボード200のハードウェア構成要素は、実施の形態1で説明したものと同じであるため、説明を割愛する。
コア216〜218のソフトウェア構成要素については、実施の形態1と同じ名称の要素は実施の形態1で説明したものと同様であるため、説明を割愛し、実施の形態1と異なる要素だけを説明する。
各コアとOSの間にはハイパーバイザ(ハイパーバイザ全体は250,ハイパーバイザ全体を構成する各コア上のハイパーバイザは251〜253)が存在する。
各ハイパーバイザにはWDT例外ハンドラより受取った異常通知を他のハイパーバイザに通知するための異常通知授受部254〜256が含まれている。
図7は、本実施の形態に係るCPUボード200の構成例を示すブロック図である。
CPUボード200のハードウェア構成要素は、実施の形態1で説明したものと同じであるため、説明を割愛する。
コア216〜218のソフトウェア構成要素については、実施の形態1と同じ名称の要素は実施の形態1で説明したものと同様であるため、説明を割愛し、実施の形態1と異なる要素だけを説明する。
各コアとOSの間にはハイパーバイザ(ハイパーバイザ全体は250,ハイパーバイザ全体を構成する各コア上のハイパーバイザは251〜253)が存在する。
各ハイパーバイザにはWDT例外ハンドラより受取った異常通知を他のハイパーバイザに通知するための異常通知授受部254〜256が含まれている。
また、実施の形態1において説明したように、WDT220〜222に代えて、タイマ動作をして、CPUの異常発生を通知する仕組みをもつ外部WDTを用いてもよい。
また、ハイパーバイザも、各CPU間で異常通知を授受する仕組みを持つ他の手段に代えてもよい。
また、ハイパーバイザも、各CPU間で異常通知を授受する仕組みを持つ他の手段に代えてもよい。
[実施の形態2:設定の説明]
実施の形態2における、割込みコントローラ219のハードウェア設定について説明する。
割込みコントローラ219は、WDT例外発生通知を入力すると、マルチキャストで全コアに対してWDT例外を通知するよう設定される。
実施の形態2における、割込みコントローラ219のハードウェア設定について説明する。
割込みコントローラ219は、WDT例外発生通知を入力すると、マルチキャストで全コアに対してWDT例外を通知するよう設定される。
[実施の形態2:動作の概要説明]
次に動作について説明する。
本実施の形態では、マルチキャストにより、ハイパーバイザ経由で全コアのRAS処理部に異常発生が通知され、各コアのRAS処理部は、自コアのログをバックアップ記憶装置226に保存する。
また、異常発生コアのRAS処理部が正常に動作しない場合は、正常動作する他コアのRAS処理部が代替して異常発生コアのログの保存を行う。
本実施の形態に係る動作の概要は以下の通りである。
次に動作について説明する。
本実施の形態では、マルチキャストにより、ハイパーバイザ経由で全コアのRAS処理部に異常発生が通知され、各コアのRAS処理部は、自コアのログをバックアップ記憶装置226に保存する。
また、異常発生コアのRAS処理部が正常に動作しない場合は、正常動作する他コアのRAS処理部が代替して異常発生コアのログの保存を行う。
本実施の形態に係る動作の概要は以下の通りである。
i)前述の[実施の形態2:構成の説明]の通り、割込みコントローラ219は、WDT例外の発生が通知されると、各コアへマルチキャストで一斉に異常通知する。
ii)コアの上位にはハイパーバイザが存在する。
上記の割込みコントローラ219から各コアへの異常通知は、各コアのWDT例外ハンドラに対して行われる。
WDT例外ハンドラは早いもの勝ちでその異常通知を受取る。
最初に異常通知を受取ったWDT例外ハンドラは、自分のコアのハイパーバイザ内の異常通知授受部に対して異常を通知する。
異常通知授受部は、他のコアのハイパーバイザ内の異常通知授受部に対して異常を通知する。
各コアのハイパーバイザ内の異常通知授受部は、そのコアのRAS処理部に異常を通知し、各コアのRAS処理部は同時並行に処理実行を開始する。
iii)異常通知を受けた各コアのRAS処理部は、各自のコアのログをバックアップ記憶装置226に保存する。
iv)異常通知を受けた各コアのRAS処理部は、どのコアのWDTが異常通知を行ったかをWDT例外の種類で知ることができる。
異常発生コア以外のコアのRAS処理部は、異常発生コアのログのバックアップ記憶装置への保存が開始されているかどうかを判定する。
そして、異常発生コアのログの保存が開始されていない場合には、異常発生コア以外のコアのRAS処理部は、異常発生コアのログのバックアップ記憶装置への保存を行う。
ii)コアの上位にはハイパーバイザが存在する。
上記の割込みコントローラ219から各コアへの異常通知は、各コアのWDT例外ハンドラに対して行われる。
WDT例外ハンドラは早いもの勝ちでその異常通知を受取る。
最初に異常通知を受取ったWDT例外ハンドラは、自分のコアのハイパーバイザ内の異常通知授受部に対して異常を通知する。
異常通知授受部は、他のコアのハイパーバイザ内の異常通知授受部に対して異常を通知する。
各コアのハイパーバイザ内の異常通知授受部は、そのコアのRAS処理部に異常を通知し、各コアのRAS処理部は同時並行に処理実行を開始する。
iii)異常通知を受けた各コアのRAS処理部は、各自のコアのログをバックアップ記憶装置226に保存する。
iv)異常通知を受けた各コアのRAS処理部は、どのコアのWDTが異常通知を行ったかをWDT例外の種類で知ることができる。
異常発生コア以外のコアのRAS処理部は、異常発生コアのログのバックアップ記憶装置への保存が開始されているかどうかを判定する。
そして、異常発生コアのログの保存が開始されていない場合には、異常発生コア以外のコアのRAS処理部は、異常発生コアのログのバックアップ記憶装置への保存を行う。
[実施の形態2:動作の詳細説明]
次に、本実施の形態に係る動作の詳細について説明する。
次に、本実施の形態に係る動作の詳細について説明する。
(動作の詳細説明:正常時の動作)
まず正常時の動作を、図8を用いて説明する。
コア1(216)の周期処理APP−1(201)は周期的にWDTリセットを行う。
周期処理APP−1(201)は、WDTドライバ210を経由してWDT−1(220)をリセットする。
正常時はWDTタイムアウトが発生する前にWDTリセットが行われるため、WDT例外は発生しない。
コア2(217)、コアN(218)においても同様の処理(202→211→221、203→212→222の矢印)が行われる。
まず正常時の動作を、図8を用いて説明する。
コア1(216)の周期処理APP−1(201)は周期的にWDTリセットを行う。
周期処理APP−1(201)は、WDTドライバ210を経由してWDT−1(220)をリセットする。
正常時はWDTタイムアウトが発生する前にWDTリセットが行われるため、WDT例外は発生しない。
コア2(217)、コアN(218)においても同様の処理(202→211→221、203→212→222の矢印)が行われる。
(動作の詳細説明:異常発生時の動作)
次に、異常発生時の動作を、図10〜図13のフローチャートを用いて説明する。
この時のブロック図上での処理の流れは図9を使って補足する。
ここでは、コア1(216)に異常が発生し、WDT−1(220)でWDT例外が発生し、割込みコントローラ219からのWDT例外を最初に受取るのはコア2(217)である例で説明する。
次に、異常発生時の動作を、図10〜図13のフローチャートを用いて説明する。
この時のブロック図上での処理の流れは図9を使って補足する。
ここでは、コア1(216)に異常が発生し、WDT−1(220)でWDT例外が発生し、割込みコントローラ219からのWDT例外を最初に受取るのはコア2(217)である例で説明する。
S211において、WDTタイムアウトが発生する。
S212において、WDT−1(220)は一定時間ディレイ後にボードリセットを行う処理を呼出す(図9の220から223への矢印)。
S201において一定時間ディレイした後に、ボードリセット処理S202が呼出される(図9の223から224への矢印)。
このディレイ時間はRAS処理部が全てのコアのログをバックアップ記憶装置226に保存を終える時間に比べて十分大きい時間とする。
S213において、WDT−1(220)はWDT例外を割込みコントローラ219に通知する(図9の220から219への矢印)。
S271において、割込みコントローラ219はWDT−1(220)よりWDT例外を受け、マルチキャストで各コアのWDT例外ハンドラにWDT−1(220)の例外を通知する(図9の219から213,214,215への矢印)。
S212において、WDT−1(220)は一定時間ディレイ後にボードリセットを行う処理を呼出す(図9の220から223への矢印)。
S201において一定時間ディレイした後に、ボードリセット処理S202が呼出される(図9の223から224への矢印)。
このディレイ時間はRAS処理部が全てのコアのログをバックアップ記憶装置226に保存を終える時間に比べて十分大きい時間とする。
S213において、WDT−1(220)はWDT例外を割込みコントローラ219に通知する(図9の220から219への矢印)。
S271において、割込みコントローラ219はWDT−1(220)よりWDT例外を受け、マルチキャストで各コアのWDT例外ハンドラにWDT−1(220)の例外を通知する(図9の219から213,214,215への矢印)。
本実施の形態では、コア2(217)が最初にWDT例外を受取った場合について説明する(このため図9の219から214への矢印は実線、219から213の矢印と219から215の矢印は点線としている)。
次に、コア1(216)の動作(S220:ログバックアップ処理)を、図11を参照して説明する。
次に、コア1(216)の動作(S220:ログバックアップ処理)を、図11を参照して説明する。
S221において異常発生コア(コア1)のWDT例外ハンドラ213が正常に動作せず、異常発生コアのRAS処理部1(207)が実行されなかった場合には、異常発生コアのRAS処理部1(207)による異常発生コアのログのバックアップ記憶装置226への保存はできない(S222)。
S221において異常発生コアのWDT例外ハンドラ213が正常に動作した場合、本例では、S223及びS224において、RAS処理部1(207)は何もしない。
本例では、コア2(217)が最初にWDT例外を受け取るので、RAS処理部1(207)は何もしない。
以降、コア1(216)は、最初にWDT例外を受取ったハイパーバイザ(本例ではコア2のハイパーバイザ)からの異常通知を受けてから動作する(後述)。
S221において異常発生コアのWDT例外ハンドラ213が正常に動作した場合、本例では、S223及びS224において、RAS処理部1(207)は何もしない。
本例では、コア2(217)が最初にWDT例外を受け取るので、RAS処理部1(207)は何もしない。
以降、コア1(216)は、最初にWDT例外を受取ったハイパーバイザ(本例ではコア2のハイパーバイザ)からの異常通知を受けてから動作する(後述)。
次に、コアN(218)の動作(S250:ログバックアップ処理)を、図13を参照して説明する。
S251において、本例ではコア2が最初にWDT例外を受け取るので、RAS処理部N(209)は何もしない(S252)。
以降、コアN(218)は、最初にWDT例外を受取ったハイパーバイザ(本例ではコア2のハイパーバイザ)からの異常通知を受けてから動作する(後述)。
以降、コアN(218)は、最初にWDT例外を受取ったハイパーバイザ(本例ではコア2のハイパーバイザ)からの異常通知を受けてから動作する(後述)。
次に、WDT例外を最初に受取ったコア2(217)の動作(S230:ログバックアップ処理)を、図12を参照して説明する。
S231において、本例ではコア2(217)のWDT例外ハンドラ214がWDT例外を最初に受取るので、S233へ進み、WDT例外ハンドラ214は自コアの異常通知授受部255にWDT−1(220)の異常を通知する(図9の214から255への矢印)。
S234において、異常通知授受部255は他コアの異常通知授受部254、256にWDT−1(220)の例外発生を伝える(図9の255から254,256への2つの矢印)。
なお、例外発生を受取った後の、コア1とコアNの動作は後述する。
S235において、RAS処理部2(208)は、自コアのWDT−2(221)をリセットする(図9の208から211経由で221への矢印)。
これは、WDT−1(220)の例外発生通知の受信によるRAS処理を行っている間に、異常発生コア以外のWDTタイムアウトが発生しないようにするための処理である。
次に、S236において、異常通知授受部255は自コアのRAS処理部2(208)に異常を通知する(図9の255から208への矢印)。
次に、S237において、RAS処理部2(208)は自コアのログをバックアップ記憶装置226にコピーする(図9の208から227,230への矢印)。
次に、RAS処理部2(208)は、S238において異常発生コアのログのコピーが開始されているか確認し、開始されていなければ、S239で異常発生コアのログをバックアップ記憶装置226へコピーする(図9の226から229への矢印をコア2のRAS処理部2(208)が代替して実施)。
これにより、異常発生コア以外のRAS処理部が代替して異常発生コアのログをバックアップ記憶装置226へコピーすることができる。
次に、S240において、RAS処理部2(208)は、全てのコアのログコピーが完了しているかどうかの判断を行い、いずれかのコアにてログコピーが完了していない場合は、RAS処理部2(208)の処理が完了する。
一方、S240において全てのコアのログコピーが完了していた場合には、RAS処理部2(208)は、S202のボードリセット処理を呼出す(図9はコアNがこの処理を呼出している例で209から224への矢印)。
S234において、異常通知授受部255は他コアの異常通知授受部254、256にWDT−1(220)の例外発生を伝える(図9の255から254,256への2つの矢印)。
なお、例外発生を受取った後の、コア1とコアNの動作は後述する。
S235において、RAS処理部2(208)は、自コアのWDT−2(221)をリセットする(図9の208から211経由で221への矢印)。
これは、WDT−1(220)の例外発生通知の受信によるRAS処理を行っている間に、異常発生コア以外のWDTタイムアウトが発生しないようにするための処理である。
次に、S236において、異常通知授受部255は自コアのRAS処理部2(208)に異常を通知する(図9の255から208への矢印)。
次に、S237において、RAS処理部2(208)は自コアのログをバックアップ記憶装置226にコピーする(図9の208から227,230への矢印)。
次に、RAS処理部2(208)は、S238において異常発生コアのログのコピーが開始されているか確認し、開始されていなければ、S239で異常発生コアのログをバックアップ記憶装置226へコピーする(図9の226から229への矢印をコア2のRAS処理部2(208)が代替して実施)。
これにより、異常発生コア以外のRAS処理部が代替して異常発生コアのログをバックアップ記憶装置226へコピーすることができる。
次に、S240において、RAS処理部2(208)は、全てのコアのログコピーが完了しているかどうかの判断を行い、いずれかのコアにてログコピーが完了していない場合は、RAS処理部2(208)の処理が完了する。
一方、S240において全てのコアのログコピーが完了していた場合には、RAS処理部2(208)は、S202のボードリセット処理を呼出す(図9はコアNがこの処理を呼出している例で209から224への矢印)。
次に、図12のS234の処理によりWDT−1(220)の異常を通知されたコア1(216)の処理を、図11を参照して説明する。
S226においてコア1の異常通知授受部254が正常に動作しなければ、異常発生コア(コア1)のRAS処理部1(207)は動作しない。
一方、異常通知授受部254が正常に動作すれば、S227〜S229及びS280の処理が行われる。
S227はS236と同じであり、S228はS238と同じであり、S229はS237と同じであり、S280はS240と同じである。
このため、各ステップの説明を割愛する。
なお、コア1(216)のWDT例外ハンドラ213がWDT例外を最初に取得した場合は、S223でYESとなり、S225に示すように、図12のS233及びS234の処理が行われる。
その後、S227以降の処理が行われる。
一方、異常通知授受部254が正常に動作すれば、S227〜S229及びS280の処理が行われる。
S227はS236と同じであり、S228はS238と同じであり、S229はS237と同じであり、S280はS240と同じである。
このため、各ステップの説明を割愛する。
なお、コア1(216)のWDT例外ハンドラ213がWDT例外を最初に取得した場合は、S223でYESとなり、S225に示すように、図12のS233及びS234の処理が行われる。
その後、S227以降の処理が行われる。
次に、図12のS234の処理によりWDT−1(220)の異常を通知されたコアN(218)の処理を、図13を参照して説明する。
S254において、異常通知授受部256はWDT−1(220)の異常通知を受取る。
以降は、S255〜S260の処理が行われる。
なお、S255〜S260は、図12のS235〜S240と同じである。
このため、各ステップの説明を割愛する。
なお、コアN(218)のWDT例外ハンドラ215がWDT例外を最初に取得した場合は、S251でYESとなり、S253に示すように、図12のS233及びS234の処理が行われる。
その後、S255以降の処理が行われる。
S254において、異常通知授受部256はWDT−1(220)の異常通知を受取る。
以降は、S255〜S260の処理が行われる。
なお、S255〜S260は、図12のS235〜S240と同じである。
このため、各ステップの説明を割愛する。
なお、コアN(218)のWDT例外ハンドラ215がWDT例外を最初に取得した場合は、S251でYESとなり、S253に示すように、図12のS233及びS234の処理が行われる。
その後、S255以降の処理が行われる。
[実施の形態2:効果]
実施の形態1の方式では各コアへ順番に異常通知するために例外通知の遅延が発生するのに対し、実施の形態2の方式では各コアへの異常通知は一斉に行われるため、この遅延が発生せず、RAS処理部の同時並行処理を早く完了することができる効果がある。
それ以外の効果は実施の形態1の効果と同様である。
実施の形態1の方式では各コアへ順番に異常通知するために例外通知の遅延が発生するのに対し、実施の形態2の方式では各コアへの異常通知は一斉に行われるため、この遅延が発生せず、RAS処理部の同時並行処理を早く完了することができる効果がある。
それ以外の効果は実施の形態1の効果と同様である。
100 CPUボード、101 周期処理APP−1、102 周期処理APP−2、103 周期処理APP−N、104 OS−1、105 OS−2、106 OS−N、107 RAS処理部1、108 RAS処理部2、109 RAS処理部N、110 WDTドライバ、111 WDTドライバ、112 WDTドライバ、113 WDT例外ハンドラ、114 WDT例外ハンドラ、115 WDT例外ハンドラ、116 コア1、117 コア2、118 コアN、119 割込みコントローラ、120 WDT−1、121 WDT−2、122 WDT−N、123 ディレイ装置、124 ボードリセット装置、125 メモリ、126 バックアップ記憶装置、200 CPUボード、201 周期処理APP−1、202 周期処理APP−2、203 周期処理APP−N、204 OS−1、205 OS−2、206 OS−N、207 RAS処理部1、208 RAS処理部2、209 RAS処理部N、210 WDTドライバ、211 WDTドライバ、212 WDTドライバ、213 WDT例外ハンドラ、214 WDT例外ハンドラ、215 WDT例外ハンドラ、216 コア1、217 コア2、218 コアN、219 割込みコントローラ、220 WDT−1、221 WDT−2、222 WDT−N、223 ディレイ装置、224 ボードリセット装置、225 メモリ、226 バックアップ記憶装置、250 ハイパーバイザ、251 ハイパーバイザ1、252 ハイパーバイザ2、253 ハイパーバイザN、254 異常通知授受部、255 異常通知授受部、256 異常通知授受部。
Claims (3)
- 複数のプロセッサユニットと、
各プロセッサユニットのログ情報を記憶する第1の記憶装置と、
いずれかのプロセッサユニットにおいて異常が発生した場合に、前記第1の記憶装置に記憶されているログ情報が書き込まれる第2の記憶装置と、
いずれかのプロセッサユニットにおいて異常が発生した場合に、ラウンドロビンにより、異常の発生を各プロセッサユニットに通知する異常発生通知装置を有し、
各プロセッサユニットは、
他のプロセッサユニットにおいて異常が発生した場合に、前記第1の記憶装置に記憶されている、異常が発生した異常発生プロセッサユニットのログ情報の前記第2の記憶装置への書き込みが開始しているか否かを判定し、
前記異常発生プロセッサユニットのログ情報の前記第2の記憶装置への書き込みが開始していない場合に、前記第1の記憶装置に記憶されている前記異常発生プロセッサユニットのログ情報を前記第2の記憶装置に書き込み、
前記異常発生通知装置により異常の発生が通知された際に、前記第1の記憶装置に記憶されている、自プロセッサユニットのログ情報を前記第2の記憶装置に書き込むことを特徴とするプロセッサシステム。 - 複数のプロセッサユニットと、
各プロセッサユニットのログ情報を記憶する第1の記憶装置と、
いずれかのプロセッサユニットにおいて異常が発生した場合に、前記第1の記憶装置に記憶されているログ情報が書き込まれる第2の記憶装置と、
いずれかのプロセッサユニットにおいて異常が発生した場合に、マルチキャストにより、異常の発生を各プロセッサユニットに通知する異常発生通知装置を有し、
各プロセッサユニットは、
他のプロセッサユニットにおいて異常が発生した場合に、前記第1の記憶装置に記憶されている、異常が発生した異常発生プロセッサユニットのログ情報の前記第2の記憶装置への書き込みが開始しているか否かを判定し、
前記異常発生プロセッサユニットのログ情報の前記第2の記憶装置への書き込みが開始していない場合に、前記第1の記憶装置に記憶されている前記異常発生プロセッサユニットのログ情報を前記第2の記憶装置に書き込み、
前記複数のプロセッサユニットの中で最初に前記異常発生通知装置からの通知を取得した場合に異常の発生を他のプロセッサユニットに通知し、前記第1の記憶装置に記憶されている、自プロセッサユニットのログ情報を前記第2の記憶装置に書き込むことを特徴とするプロセッサシステム。 - 各プロセッサユニットは、
いずれかのプロセッサユニットにおいて異常が発生したことを他のプロセッサユニットから通知された際に、自プロセッサユニットのログ情報を前記第2の記憶装置に書き込むことを特徴とする請求項2に記載のプロセッサシステム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2012/053236 WO2013121502A1 (ja) | 2012-02-13 | 2012-02-13 | プロセッサシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2013121502A1 JPWO2013121502A1 (ja) | 2015-05-11 |
JP5726340B2 true JP5726340B2 (ja) | 2015-05-27 |
Family
ID=48983668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013558596A Expired - Fee Related JP5726340B2 (ja) | 2012-02-13 | 2012-02-13 | プロセッサシステム |
Country Status (7)
Country | Link |
---|---|
US (1) | US20150006978A1 (ja) |
EP (1) | EP2816480A4 (ja) |
JP (1) | JP5726340B2 (ja) |
KR (1) | KR101581608B1 (ja) |
CN (1) | CN104137077B (ja) |
TW (1) | TW201333686A (ja) |
WO (1) | WO2013121502A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014118940A1 (ja) * | 2013-01-31 | 2014-08-07 | 三菱電機株式会社 | 計算機装置及び計算機装置の制御方法 |
JP6816345B2 (ja) * | 2015-04-24 | 2021-01-20 | 富士電機株式会社 | 駆動制御装置 |
WO2016204070A1 (ja) * | 2015-06-16 | 2016-12-22 | オリンパス株式会社 | Cpu監視装置 |
US10585755B2 (en) * | 2016-11-29 | 2020-03-10 | Ricoh Company, Ltd. | Electronic apparatus and method for restarting a central processing unit (CPU) in response to detecting an abnormality |
US11150973B2 (en) * | 2017-06-16 | 2021-10-19 | Cisco Technology, Inc. | Self diagnosing distributed appliance |
JP6919597B2 (ja) * | 2018-03-01 | 2021-08-18 | オムロン株式会社 | コンピュータおよびその制御方法 |
CN112527541A (zh) | 2019-09-19 | 2021-03-19 | 华为技术有限公司 | 一种确定多核处理器中故障计算核的方法及电子设备 |
CN110673976A (zh) * | 2019-09-20 | 2020-01-10 | Oppo广东移动通信有限公司 | 一种多核系统的异常检测方法、异常检测装置及电子设备 |
US11354182B1 (en) * | 2019-12-10 | 2022-06-07 | Cisco Technology, Inc. | Internal watchdog two stage extension |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5761739A (en) * | 1993-06-08 | 1998-06-02 | International Business Machines Corporation | Methods and systems for creating a storage dump within a coupling facility of a multisystem enviroment |
JP2821418B2 (ja) * | 1996-04-24 | 1998-11-05 | 北海道日本電気ソフトウェア株式会社 | マルチプロセッサシステムの障害情報記録方式 |
US5790772A (en) * | 1996-04-30 | 1998-08-04 | International Business Machines Corporation | Communications method involving groups of processors of a distributed computing environment |
JP2000181890A (ja) * | 1998-12-15 | 2000-06-30 | Fujitsu Ltd | マルチプロセッサ交換機及びその主プロセッサ切替方法 |
JP2000311155A (ja) | 1999-04-27 | 2000-11-07 | Seiko Epson Corp | マルチプロセッサシステム及び電子機器 |
JP4489802B2 (ja) * | 2005-02-07 | 2010-06-23 | 富士通株式会社 | マルチcpuコンピュータおよびシステム再起動方法 |
US7984341B2 (en) * | 2008-02-25 | 2011-07-19 | International Business Machines Corporation | Method, system and computer program product involving error thresholds |
CN101650674A (zh) * | 2009-09-11 | 2010-02-17 | 杭州中天微系统有限公司 | 主处理器与协处理器接口之间的异常处理方法及实现装置 |
JP2011159136A (ja) * | 2010-02-02 | 2011-08-18 | Seiko Epson Corp | 制御装置、制御装置の異常検出・復旧方法および電子機器 |
WO2012004854A1 (ja) * | 2010-07-06 | 2012-01-12 | 三菱電機株式会社 | プロセッサ装置及びプログラム |
-
2012
- 2012-02-13 KR KR1020147020828A patent/KR101581608B1/ko not_active IP Right Cessation
- 2012-02-13 JP JP2013558596A patent/JP5726340B2/ja not_active Expired - Fee Related
- 2012-02-13 EP EP12868810.8A patent/EP2816480A4/en not_active Withdrawn
- 2012-02-13 US US14/373,418 patent/US20150006978A1/en not_active Abandoned
- 2012-02-13 CN CN201280069607.4A patent/CN104137077B/zh not_active Expired - Fee Related
- 2012-02-13 WO PCT/JP2012/053236 patent/WO2013121502A1/ja active Application Filing
- 2012-04-05 TW TW101112004A patent/TW201333686A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
JPWO2013121502A1 (ja) | 2015-05-11 |
KR20140105034A (ko) | 2014-08-29 |
CN104137077B (zh) | 2017-07-14 |
US20150006978A1 (en) | 2015-01-01 |
KR101581608B1 (ko) | 2015-12-30 |
EP2816480A1 (en) | 2014-12-24 |
CN104137077A (zh) | 2014-11-05 |
WO2013121502A1 (ja) | 2013-08-22 |
EP2816480A4 (en) | 2016-05-04 |
TW201333686A (zh) | 2013-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5726340B2 (ja) | プロセッサシステム | |
US10585755B2 (en) | Electronic apparatus and method for restarting a central processing unit (CPU) in response to detecting an abnormality | |
JP4887150B2 (ja) | コプロセッサを監視及びリセットするための方法及び装置 | |
US9026865B2 (en) | Software handling of hardware error handling in hypervisor-based systems | |
US11526411B2 (en) | System and method for improving detection and capture of a host system catastrophic failure | |
US8219851B2 (en) | System RAS protection for UMA style memory | |
KR20120061938A (ko) | 시스템 관리 모드의 프로세서에 상태 스토리지를 제공하기 위한 장치, 방법 및 시스템 | |
US9148479B1 (en) | Systems and methods for efficiently determining the health of nodes within computer clusters | |
JP2016518654A (ja) | サーバ制御方法及びサーバ制御装置 | |
US20210081234A1 (en) | System and Method for Handling High Priority Management Interrupts | |
WO2008101386A1 (fr) | Procédé de récupération d'une exception à noyau unique dans un système à plusieurs noyaux | |
US20160170912A1 (en) | Safely discovering secure monitors and hypervisor implementations in systems operable at multiple hierarchical privilege levels | |
US9535772B2 (en) | Creating a communication channel between different privilege levels using wait-for-event instruction in systems operable at multiple levels hierarchical privilege levels | |
US10635554B2 (en) | System and method for BIOS to ensure UCNA errors are available for correlation | |
CN116627702A (zh) | 虚拟机的宕机重启方法及装置 | |
TWI772024B (zh) | 減少停機時間的方法及系統 | |
JP6256087B2 (ja) | ダンプシステムおよびダンプ処理方法 | |
TW201137608A (en) | System and method for handling system failure | |
JP4867896B2 (ja) | 情報処理システム | |
JP2012003510A (ja) | 計算機及び転送プログラム | |
JP5299681B2 (ja) | プログラム検査方法 | |
US11966750B2 (en) | System-on-chip management controller | |
Liao et al. | Configurable reliability in multicore operating systems | |
JP2007004364A (ja) | デバッグシステム、デバッグ方法およびプログラム | |
JP2016076152A (ja) | エラー検出システム、エラー検出方法およびエラー検出プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150206 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150303 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150331 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5726340 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |