JP2009129101A - 情報処理装置の障害処理システム - Google Patents

情報処理装置の障害処理システム Download PDF

Info

Publication number
JP2009129101A
JP2009129101A JP2007301999A JP2007301999A JP2009129101A JP 2009129101 A JP2009129101 A JP 2009129101A JP 2007301999 A JP2007301999 A JP 2007301999A JP 2007301999 A JP2007301999 A JP 2007301999A JP 2009129101 A JP2009129101 A JP 2009129101A
Authority
JP
Japan
Prior art keywords
processor core
failure
information
area
processing
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.)
Granted
Application number
JP2007301999A
Other languages
English (en)
Other versions
JP4926009B2 (ja
Inventor
Atsushi Settsu
敦 攝津
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2007301999A priority Critical patent/JP4926009B2/ja
Publication of JP2009129101A publication Critical patent/JP2009129101A/ja
Application granted granted Critical
Publication of JP4926009B2 publication Critical patent/JP4926009B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】複数のプロセッサコアが、多数アプリケーションソフトウェア(以下APと称す)を同時並列実行するCPUで、特定プロセッサコアに特定処理を割り当てる場合、障害発生プロセッサコアで、次のAPの迅速動作が出来ない。
【解決手段】複数のプロセッサコアの1つを障害処理プロセッサコアとし、他プロセッサコア上のOSは初期化時に自障害処理手段を障害処理プロセッサコアに登録し、動作中のAPに障害が起きた時、最低限のハードウェア情報保存後、障害発生APを停止、障害処理用プロセッサコアに障害を通知、次動作APをスケジューリング対象とし、障害処理用プロセッサコアは障害情報の収集/記録、障害の対処決定後、障害発生プロセッサコアに障害処理完了を通知、障害発生プロセッサは障害発生AP動作状態を削除し、次APの動作迅速化、複数OS構成での1つの構成による障害処理が可能。
【選択図】図1

Description

この発明は、複数のプロセッサコアを持ち、それぞれのプロセッサコアがメモリを共有しているようなハードウェア構成における情報処置装置の障害処理システムに関するものである。
近年、半導体の微細化技術の進展により、1つのCPU(Central Processor Unit)上に複数のプロセッサコアを搭載し、多数のアプリケーションソフトウェア処理を並列に同時実行させることができるマルチコア技術を備えたCPUが製品化されてきている。マルチコアを備えたCPUでは、異なる処理をそれぞれ別のプロセッサコアで処理させることにより、全体の処理性能を向上させることができる。しかしながら、1つのプロセッサコア上でアプリケーションソフトウェア(以下APと称す)に障害が発生した場合、従来ではそのプロセッサコア上にて、APの障害情報の収集・対処が行われるため、障害状態の保存に時間が掛かると共に、そのプロセッサコア上の処理負荷が高くなるという問題があった。
障害情報の収集・対処処理時間の短縮、およびプロセッサコアの処理負荷を軽減する方法として、例えば、特開平11−338838号公報に記載の方法がある。この方法では、複数のCPUを備えたマルチプロセッサシステムにおいて、1つのCPUにて障害を検出した場合、そのCPUから他のCPUに対して障害情報採取の指示を出し、障害検出CPU以外の複数のCPUで、障害情報の採取量が均等になるように配分して並列に障害情報を採取し、記録することで、障害情報採取時間を短縮することができるとしている。
また、特開平11−296492号公報の記載では、複数の計算機を備え、同一の業務処理プログラムが何れの計算機でも実行可能なマルチ計算機システムにおいて、ある計算機で障害が発生した場合に、システム内で正常に動作している他の計算機の中で、その時点において最も動作負荷の低い計算機により、障害が発生した計算機が処理していた業務をリカバリ処理して、業務処理を滞らせることなく、リカバリ処理を迅速に行うことができるとしている。
さらに、特開平3−73033号公報の記載では、障害情報の収集および記録を専門に行う診断装置がある構成において、この診断装置にて障害情報の収集を行う際、診断装置内にあるディスク装置に直接障害情報を格納せず、別の記憶手段に一時的に障害情報を蓄え、その記憶手段内の情報を元に、障害解析を行うようにすることで、障害対処に要する時間を少なくすることができるとしている。
特開平11−338838号公報 特開平11−296492号公報 特開平3−73033号公報
しかし、上記従来技術においては、組込み装置など、特定のプロセッサコアに特定の処理を割り当てているようなシステムの場合、障害が発生したプロセッサコアで、次に動作するAPを迅速に動作させることが出来ない。
例えば、特開平11−338838号公報に記載の方法では、障害情報の採取を複数のCPUに分割して並列処理させるものの、その処理中は、次に動作すべきAPを動作させることができない。
また、特開平11−296492号公報に記載の方法では、全てのプロセッサコアで同一の処理を行うことを想定しており、それぞれのプロセッサコアが特定のAPを動作させるような構成の場合、他のプロセッサコアがリカバリ処理をすることができない。また他のプロセッサコアにてリカバリ処理ができたとしても、リカバリ処理を行うプロセッサコアにAPプログラムを移送する際、障害が発生したプロセッサコア上で動作していたAPのデータが、障害発生プロセッサコア上のキャッシュに残存しており、そのキャッシュ上のデータをリカバリ処理するプロセッサコア上のキャッシュに移動するために多大な処理時間を要する。
さらに、特開平3−73033号公報に記載の方法では、障害が発生したプロセッサコアとは別のハードウェア(公報では診断装置)によって障害情報を記憶する。障害情報の収集は、障害が発生したプロセッサコア(公報では処理装置)によって行われ、ハードウェア(診断装置)に障害情報を送信するため、障害情報の収集中は、次に動作すべきAPを動作させることができない。また、本方法では、障害情報を記録するために特別なハードウェア(公報では診断装置)が必要となる。
さらに、これら方法では、各プロセッサに同様な機能を持たせる構成で動作し、障害処理も各プロセッサ毎に固有な処理を行うことや、複数のOS(以下OSと称す)が動作していることを想定していないため、プロセッサコアに異なる機能を動作させるために、異なるOSを搭載するような情報処理装置に使用する場合、それぞれのOS毎に、障害処理を分けて構成させる必要がある。
この発明は、上記のような問題を解決するためになされたもので、複数のプロセッサコアを持ったハードウェア構成を備え、その上で複数のOSおよびAPが動作している情報処理装置において、1つのプロセッサコアを障害処理専用プロセッサコアとし、それ以外のプロセッサコア上のOSは、初期化時に、自身の障害処理手段を障害処理専用プロセッサコアに登録し、1つのプロセッサコア上で動作しているAPに障害が起きた場合に、障害が発生したプロセッサコア上のOSは、別のAPを動作させるために最低限待避すべきハードウェア情報(汎用レジスタなど)のみ保存した後、障害を発生させたAPをスケジューリング対象外(停止状態)とし、障害処理用プロセッサコアに障害が発生したことを通知した後、障害が発生したプロセッサコアは、即座に次に動作すべきAPをスケジューリング対象とし、障害処理用プロセッサコアは障害が発生したプロセッサコアからの通知された障害発生APの情報を元に、障害情報の収集/記録、および障害に対する対処の決定をした後、障害が発生したプロセッサコアに障害対処処理が完了したことを通知し、その通知を受けた障害発生プロセッサは障害が発生したAPの動作状態を削除するようにすることで、障害が発生したプロセッサ上で次に動作すべきAPを迅速に動作させることができ、かつ、複数のOS構成でも1つの構成で障害処理ができる、情報処置装置の障害処理システムを得ることを目的とする。
また、この発明は、障害処理専用プロセッサコア以外のプロセッサコア上のOSは、初期化時に、自身の障害処理手段のアドレスを障害処理専用プロセッサに登録し、APに障害が起きた場合に、障害が発生したプロセッサコアは、障害が発生したAPを停止するとともに、障害処理専用プロセッサに、APが動作していたアドレス空間情報を通知し、障害処理専用プロセッサは、そのアドレス空間情報を元に、障害発生プロセッサコアで動作していた障害発生APのアドレス空間で動作するように自身のアドレス空間を切り替え、登録されていた障害処理手段を実行し、障害情報の収集および情報の保存を行いうようにすることで、障害が発生したプロセッサ上で次に動作すべきAPを迅速に動作させることができ、かつ、複数のOS構成でも1つの構成で障害処理ができる、情報処置装置の障害処理システムを得ることを目的とする。
また、この発明は、障害発生プロセッサコアから障害処理用プロセッサコアに障害発生を通知する際、障害情報を収集すべきメモリ領域の情報を付加することで、障害が発生したプロセッサ上で次に動作すべきAPを迅速に動作させることができ、かつ、複数のOS構成でも1つの構成で障害処理ができる、情報処置装置の障害処理システムを得ることを目的とする。
また、この発明は、APがメモリを共有できる共有メモリに対し、障害発生時に、障害が発生したAPが使用している共有メモリを書込み禁止にし、他APが書き込み操作した場合、トラップを発生させるようにし、障害処理中に他APにて書込みが発生した場合は、書込みを行おうとしたAPに対し、書込みを行おうとした領域のコピーを用意し、そこに書込みを実施させるようにすることで、共有メモリを障害発生時の状態に保ちつつ、障害が発生したプロセッサ上で次に動作すべきAPを迅速に動作させることができ、かつ、複数のOS構成でも1つの構成で障害処理ができる、情報処置装置の障害処理システムを得ることを目的とする。
また、この発明は、各プロセッサコアに障害処理用の手段を設け、メモリ上に待ちキューを備え、各プロセッサコアが、自身ですべき処理が何もないときに、待ちキューに自身の情報を登録し、何らかの処理が発生した場合に待ちキューから自身の情報を削除するようにし、障害が発生したプロセッサは、待ちキューにつながれているプロセッサコアの情報を元に、障害処理が可能なプロセッサコアに障害が発生したことを通知し、通知されたプロセッサコアは、自身の持っている障害処理用の手段を用いて、障害発生プロセッサで動作していたAPの障害情報の収集/記録、および障害に対する対処を行うようにすることで、障害が発生したプロセッサ上で次に動作すべきAPを迅速に動作させることができ、かつ、複数のOS構成でも1つの構成で障害処理ができる、情報処置装置の障害処理システムを得ることを目的とする。
この発明に係る情報処理装置の障害処理システムは、メモリを共有し、夫々OSが動作する複数のプロセッサコアを備え、上記各OS上で複数のAPが動作する情報処理装置の障害処理システムであって、
上記複数のプロセッサコアの何れか1つを、
他プロセッサコア上のOSに対する障害処理手段を登録する手段と、
他プロセッサコア上のOSに対する障害処理手段を登録する領域と、
他プロセッサコアからの通知により、そのプロセッサコアに対応した障害処理手段を起動する手段を備え、他プロセッサコアの各OS障害を専用に処理する障害処理専用プロセッサコアとし、
他プロセッサコア上のOSは、
障害処理専用プロセッサコア上で自OSの障害処理を実施するため、OS初期化時に、自OSの障害処理を実施する手段を障害処理専用プロセッサコアに登録依頼する手段と、
自APに障害が発生した際、障害発生APを停止し、障害処理専用プロセッサコアに障害発生APを通知するとともに、他APに動作を切替え、障害処理専用プロセッサコアからの障害処理完了通知後、障害発生APを再開または削除する手段を備える。
この発明による情報処理装置の障害処理システムによれば、APの障害発生時に障害が発生したAPを停止した後、障害が発生したAPが動作していたプロセッサコアとは別の障害処理専用のプロセッサコアにて障害情報の収集・記録・対処を行うようにし、障害情報の収集・記録・対処をしている間、障害が発生したAPが動作していたプロセッサコアでは、別のAPを動作できるようにしたので、障害が発生したプロセッサコア上で次に動作すべきAPを迅速に動作させることができる。
また、各エラー毎で異なる処理を、障害処理専用のプロセッサコアで処理し、障害が発生したプロセッサでは、障害検出・AP停止など処理時間が固定化された処理のみを行うようにしたことで、障害発生後の所定時間に別のAPが動作することができ、APの所定時間による応答性が確保できる。
さらに、各プロセッサコア内のOS初期化時に、OS毎に固有な障害処理を、障害処理専用プロセッサコア内に登録するようにしたので、障害処理専用プロセッサコア上のソフトウェアが各OSに依存することなく、複数のOSの障害処理を行うことができる。
実施の形態1.
以下、この発明の実施の形態1を図を用いて説明する。図1は、この実施の形態1における情報処理装置のハードウェア(H/W)構成図である。図中、1、2、3が演算処理を行うプロセッサコアであり、お互いが、バス4で結合される。また、バス4を通して、OSのコードやデータ、およびAPのコードやデータ、およびヒープ/スタックを保持するメモリ5や、OSやAPからのメッセージを出力するコンソール6、OSおよびAPプログラムや設定ファイルを格納するハードディスク装置(HDD)7、およびプロセッサコアのレジスタ情報や障害情報を、情報処理装置の再起動後でも保持しつづけるためのバックアップメモリ8が結合される。プロセッサコア1、プロセッサコア2、プロセッサコア3には、それぞれ、演算処理を行う演算処理部9(プロセッサコア1)、10(プロセッサコア2)、11(プロセッサコア3)、メモリ5の内容および演算処理部の処理結果を一時的に保持しておくキャッシュ12(プロセッサコア1)、13(プロセッサコア2)、14(プロセッサコア3)、および、各プロセッサコア間で通信を行うためのプロセッサ間通信機能15(プロセッサコア1)、16(プロセッサコア2)、17(プロセッサコア3)が存在する。
プロセッサ間通信機能については、プロセッサコアに割込みを通知する方法や、メモリ5を介して、通信したい(通信元)プロセッサコアが通信先プロセッサコアの参照するメモリ領域に印をつけ、通信先プロセッサがそれを参照することにより、通知を把握する方法などが利用される。また、プロセッサコア1、2、3には、メモリ5をアドレス空間として論理的に分割することができるMMU(Memory Management Unit)18、19、20を備えている。OSは、このMMUを使用することで、各APのアドレス空間を独立して配置することが可能となり、各APはお互いを干渉することなく、メモリアクセスすることが可能になっている。この実施の形態では、3つのプロセッサコアを図示しているが、3つである必要はなく、2つ以上のプロセッサコアでも、動作そのものに変更はない。
図2は、図1で示したH/W構成に対する、ソフトウェア(S/W)の構成を示す図である。図中、プロセッサコア1にはOS21と、OS21上で動作するAP22、AP23が動作する。同様にプロセッサコア3には、OS24と、OS24上で動作するAP25、およびAP26が動作する。また、OS21、AP22、AP23、およびOS24、AP25、AP26のコード/データ、およびヒープ/スタック領域はメモリ5上に存在する。メモリ5上は、OS21が使用するOS21用領域27と、OS24が使用するOS24用領域28とに用途が区切られている。OS21用領域27内には、OS21上で動作するAP22のコード/データおよびヒープ/スタック領域であるAP情報領域29と、OS21上で動作するAP23のコード/データおよびヒープ/スタック領域であるAP情報領域30が存在する。また、OS24用領域28内には、OS24上で動作するAP25のコード/データおよびヒープ/スタック領域であるAP情報領域31と、OS24上で動作するAP26のコード/データおよびヒープ/スタック領域であるAP情報領域32が存在する。そして、HDD7上にはAPに障害が発生した場合のAP情報を保持するコアファイル領域41が、バックアップメモリ8には、APに障害が発生した場合に動作していたプロセッサコアに関する障害情報および情報処理装置全体の情報を保持するエラー情報格納域42が存在する。プロセッサコア2には、障害処理を行うソフトウェアが存在する。
プロセッサコア1およびプロセッサコア3にあるOS21、およびOS24には、それぞれのプロセッサコア上で動作するAPに障害が発生した場合に、障害を検知し、対処する手段が存在する。そして、プロセッサコア2には、他プロセッサコアからの指示により障害情報を収集・記録する手段が存在する。プロセッサコア1上のOS21には、OSの初期化処理を行うOS初期化手段33と、障害発生時にOS21に対応した障害処理を他プロセッサコア上で行うための障害処理手段34、APの障害を検出する障害検出手段35と、APの動作を切り替えるためのプロセス切替手段36が存在する。同様にプロセッサコア3上のOS24にもOS初期化手段37、障害処理手段38、障害検出手段39、プロセス切替手段40が存在する。OS21およびOS24に存在する同じ名前の手段は、それぞれ同じ機能を有している。
一方、プロセッサコア2上には、他プロセッサコアで動作するOSに対応する障害処理手段の登録処理を行う障害処理登録手段43と、他プロセッサコアからの指示により障害処理手段を起動する障害管理手段44が存在するとともに、他プロセッサコア上のOSに対応する障害処理手段を格納するための登録領域45が存在する。なお、この実施の形態では、プロセッサコア2に障害情報を収集・記録する機能が配置されているが、これら機能はプロセッサコアに依存しないため、他のプロセッサコアにこの機能が存在しても同じ意味を持つ。また、プロセッサコア2ではOSの記載がないが、OS内の機能、またはAPの機能にて、これら収集・記録機能を代替しても、同じ効果を得ることができる。
次に、この実施の形態における情報処理装置のOS初期化時の動作について、図3の矢印および図4のフローチャートを用いて説明する。
まず、プロセッサコア1にH/Wリセットが掛かり、OS21が起動されると、OS初期化手段33が動作する。プロセッサコア1のOS初期化手段33は、OS内の様々な機能の初期化を行うと共に、OS21内にある障害処理手段34の登録をプロセッサコア2に依頼する(図3および図4のS101)。この登録依頼処理は、プロセッサコア1およびプロセッサコア2内のプロセッサ間通信機能(図1の15、16)を用いて行われる。プロセッサコア1での処理は以上となる。
プロセッサコア2は、起動後、障害処理登録手段43が起動し、他プロセッサコアからの通知を待つ(図4のS102)。他プロセッサコアからの通知がない場合は、再度通知を待つ(S102のN)。他プロセッサコアから通知があった場合(S102のY)、依頼されたプロセッサコア1から障害処理手段34の内容を受信し、登録領域45内に障害処理手段34’として格納する(図3および図4のS103)。そして再度、他プロセッサからの通知を待つ(S102)。このようにして、プロセッサコア2内の登録領域45には、他プロセッサコア上で動作する各OSに対応した障害処理手段が格納されることになる。障害処理手段の受信については、依頼元プロセッサコアがメモリ5に障害処理手段のデータを格納し、それをプロセッサコア2が参照する方法や、各プロセッサコアのプロセッサコア間通信機能(図1の15、16、17)にて障害処理手段のデータを送信するようにする方法が考えられる。なお、上記実施の形態では、プロセッサコア1を対象に説明したが、これはプロセッサコア3の場合も同様であり、プロセッサコア3にてOS24内にある障害処理手段38の登録をプロセッサコア2に依頼することで、プロセッサコア2内の障害処理登録手段43が障害処理手段38”を登録領域45に格納する。
この実施の形態では、プロセッサコア2の障害処理登録手段43が、他プロセッサコアからの通知を待っているように記載しているが、これを割込みベースにしても動作は同じである。この場合、プロセッサコア2にて他の処理を行っている最中に、プロセッサ間通信機能(図1の16)にて割込みが発生し、その割込み処理にて障害処理登録手段43が起動し、登録処理が実施された後、プロセッサコア2は、割込みが発生した時に行っていた処理に戻る。以上がこの実施の形態における情報処理装置のOS初期化時の動作である。
次に、この実施の形態における情報処理装置の障害発生時の動作について、図5内の矢印および図6のフローチャートを用いて説明する。この実施の形態では、プロセッサコア1上で動作するAP22に障害が発生した場合の例で説明する。
まず、AP22の動作中に障害が発生すると、プロセッサコア1上で例外が発生し、OS21内の障害検出手段35が、その例外を検出する(図5、図6のS111)。そして障害検出手段35は、最低限のレジスタ情報をメモリ5内に保存した後、障害が発生したAP22を停止させるためにプロセス切替手段36に通知する(図5、図6のS112)。
障害検出手段35により通知されたプロセス切替手段36は、障害が発生したAP22の実行を停止する(図5、図6のS113)。これは、AP22が動作していたプロセスをスケジューリング対象から外し、同プロセスの状態を停止状態に移行することを意味し、プロセスそのものを削除することはこの時点ではしない。プロセスそのものを削除しないことにより、AP22が使用していたメモリ5内のAP情報領域29がそのまま残存し、これをプロセッサコア2上から参照することが可能となる。
次に障害検出手段35は、プロセッサ間通信機能(図1の15)を利用して、障害を処理するプロセッサコア2に通知する(図5、図6のS114)。この時、障害が発生したAP22の情報や保存したレジスタ情報などが付加される。これら情報については、プロセッサコア2への通知時にメッセージ情報として付加する方法や、メモリ5上の特定領域に書き込む方法が考えられる。そして障害処理手段34は、プロセス切替手段36を介して、他APへの切替を行う。プロセス切替手段36は、OS21内のプロセス情報を参照し、動作可能なAP23を抽出し、AP23を動作可能(RUN状態)にする(図5、図6のS115)。これにより以降、プロセッサコア1上ではAP23が動作する(図6のS116)。
プロセッサコア2では、障害管理手段44が動作しており、他プロセッサからの通知があるかチェックしている(図6のS117)。S114にて、プロセッサコア1からプロセッサコア2に割込みが通知されると、プロセッサコア2のプロセッサ間通信機能(図1の16)が、その割込みを検出し、障害管理手段44に通知する(図5、図6のS117)。障害管理手段44では、S117にてその通知をチェックしており、通知があれば(S117のY)、通知元プロセッサコアに対応する障害処理手段を登録領域45内から見つけ出し、その手段を起動する(図5、図6のS118)。
この実施の形態では、プロセッサコア1から通知されたので、登録領域45内の障害処理手段34’が起動される。この障害処理手段34’は、プロセッサコア1内のOS21用のものであり、OS21にあわせた障害処理が可能となる。障害処理手段34’は、まず、通知にて付加されたAP22の情報を元に、メモリ5のOS21用領域27内のAP情報領域29を探し、その中にある情報からエラーの発生種類(ページフォルト、0割り算等)や、発生箇所(OS内/AP内)、エラー発生時のレジスタ情報等を収集する(図5、図6のS119)。
次に障害処理手段34’は、収集されたAP22の障害情報を元にエラー原因の特定および、それに伴いプロセッサコア1の動作を継続動作させるか、それとも、そのエラーが継続できない障害でプロセッサコア1をシステムダウン(停止または再起動)にすべきかを判断する(図6のS120)。システムダウンするケースとしては、障害発生の箇所がAP22が呼び出したOS21内で発生したエラーでOS復帰ができないものや、CPU内部エラーが発生した場合などが挙げられる。そして障害処理手段34’は、特定されたエラー原因や継続動作またはシステムダウン動作遷移情報、および収集された障害情報を、コンソール6に表示し、使用者に障害が発生したことを通知するとともに、バックアップメモリ8内のエラー情報格納域42に、これら情報を記録し、障害発生後も使用者が障害発生情報を参照できるようにする(図5、図6のS121)。
次に障害処理手段34’は、プロセッサコア1の対処としてシステムダウンすべきか否か判断する(図6のS122)。システムダウンすべき場合(S122のY)は、プロセッサコア1を停止状態にさせた後、メモリ5内のOS21用領域27の内容をディスクに書き込む(メモリダンプ)などした後、プロセッサコア1のリブート(H/Wリセット)を行う(図6のS123)。これにより、プロセッサコア1は初期状態に戻り、再度OS21がブートされる。
S122にてシステムダウンしない場合(S122のN)、障害処理手段34’は、特定されたエラー原因を元に、各エラーに対応した処理をおこなう(図6のS124)。これは、例えば0割り算によるエラーであれば、次にAP22が実行される場合は、0割り算のシグナルハンドラ(エラー発生に伴い呼び出される関数)を呼び出すようにAP情報領域29内のAP22のスタックを操作したり、セグメンテーションフォルトによるエラーであれば、コアファイル41を作成する準備を行う。そして、障害処理手段34’は、コアファイル41を作成するようなエラーである場合に、コアファイル作成処理を行う(図5、図6のS125)。この時、障害処理手段34’は、AP情報領域29の内容をHDD7内のコアファイル41に書き出す。コアファイル41の作成が終了すると、障害処理手段34’は、AP22を再開させるために停止処理解除要求をプロセッサコア1に通知する(図5、図6のS126)。これは、プロセッサ間通信機能(図1の16)を利用して、プロセッサコア1に割込みを通知することで行われる。この時、AP22を継続動作させるか、削除すべきかの情報が付加される。
S116にてプロセッサコア1上でAP23が動作している間に、プロセッサコア2での障害情報の収集および記録が終了し、S126にてプロセッサコア2からプロセッサコア1に対しAP22の停止処理解除要求が実施されると、プロセッサコア1のプロセッサ間通信機能(図1の15)がその割込みを受信し、OS21内のプロセス切替手段36を起動する(図6のS127)。プロセス切替手段36は、通知にて付加されたAP22を継続動作させるか、削除すべきかの情報を元に、AP22の再開または終了を処理する(図5、図6のS128)。継続動作させる場合は、AP22が動作していたプロセスをスケジューリング対象に戻し、終了させる場合は、AP22が動作していたプロセスを削除する処理を行う。以上がこの実施の形態における情報処理装置の障害発生時の動作である。
この実施の形態1による情報処理装置の障害処理システムでは、APの障害発生時に、障害が発生したAPを停止した後、障害が発生したAPが動作していたプロセッサコアとは別のプロセッサコアにて障害情報の収集・記録・対処を行うようにし、障害情報の収集・記録・対処をしている間、障害が発生したAPが動作していたプロセッサコアでは、別のAPを動作できるようにしたので、障害が発生したプロセッサコア上で次に動作すべきAPを迅速に動作させることができる、情報処理装置の障害処理システムを得ることができる。
また、この実施の形態では、各エラーごとで異なる処理を、障害が発生したプロセッサコアとは別のプロセッサコアで処理し、障害が発生したプロセッサでは、障害検出・レジスタ保存・AP停止など処理時間が固定化された処理のみを行うようにしたことで、障害が発生しても、一定時間に別のAPが動作することができ、APの一定時間による応答性が確保できる情報処理装置の障害処理システムを得ることできる。
さらに、この実施の形態では、各プロセッサコア内のOS初期化時に、OS毎に固有な障害処理を、障害処理専用プロセッサコア内に登録するようにしたので、障害処理専用プロセッサコア上のソフトウェアが各OSに依存することなく、複数のOSの障害処理を行うことができる、障害処理装置の障害処理システムを得ることができる。
実施の形態2.
この発明の他の実施の形態における情報処理装置の障害処理システムについて説明する。実施の形態2では、情報処理装置のH/W構成は実施の形態1と同じであり、図1で示される。図7は、図1で示したH/W構成に対する、ソフトウェア(S/W)の構成を示す図である。実施の形態2では、実施の形態1のS/W構成におけるOSと内部の各手段、APおよびプロセッサコア2上の各手段と登録領域は、ほぼ同じような機能を持つ。図中、プロセッサコア1にはOS21と、OS21上で動作するAP22、およびAP23を備え、プロセッサコア3にはOS24と、OS24上で動作するAP25、およびAP26を備える。OS21、およびOS24には、それぞれのプロセッサコア上で動作するAPに障害が発生した場合に、障害を検知し、対処する手段が存在する。そして、プロセッサコア2には、他プロセッサコアからの指示により障害情報を収集・記録する手段が存在する。
プロセッサコア1上のOS21には、OSの初期化処理を行うOS初期化手段33と、障害発生時にOS21に対応した障害処理を他プロセッサコア上で行うための障害処理手段34、APの障害を検出する障害検出手段35と、APの動作を切り替えるためのプロセス切替手段36が存在する。同様にプロセッサコア3上のOS24にもOS初期化手段37、障害処理手段38、障害検出手段39、プロセス切替手段40が存在する。OS21およびOS24に存在する同じ名前の手段は、それぞれ同じ機能を有している。
一方、プロセッサコア2上には、他プロセッサコアで動作するOSに対応する障害処理手段の登録処理を行う障害処理登録手段43と、他プロセッサコアからの指示により障害処理手段を起動する障害管理手段44が存在するとともに、他プロセッサコア上のOSに対応する障害処理手段が登録される登録領域45が存在する。そして、HDD7上にはAPに障害が発生した場合のAP情報を保持するコアファイル領域41が、また、バックアップメモリ8には、APに障害が発生した場合に動作していたプロセッサコアに関する障害情報および情報処理装置全体の情報を保持するエラー情報格納域42が存在する。プロセッサコア2には、障害処理を行うソフトウェアが存在する。
OS21、AP22、AP23、およびOS24、AP25、AP26のコード/データ、およびヒープ/スタック領域はメモリ5上に存在する。メモリ5上には、OS21が使用するOS21用領域27と、OS24が使用するOS24用領域28、およびプロセッサコア2が使用するプロセッサコア2用領域49とに用途が区切られている。
OS21用領域27内には、OS21上で動作するAP22のコード/データおよびヒープ/スタックを格納しているAP22テキスト/データ領域と、OS21のコード/データおよびヒープ/スタックを格納しているOSテキスト/データ領域が存在し、それらは、AP22アドレス空間50として、ページテーブル52を介して結合されている。ページテーブル52は、メモリ5上のAP22テキスト/データ領域およびOSテキスト/データ領域を論理的に連続したアドレス空間にマッピングするための空間配置テーブルである。このページテーブル52がプロセッサコア1のMMU18に設定されることにより、プロセッサコア1のアドレス空間は、AP22アドレス空間50にマッピングされ、AP22のテキスト/データ領域が参照できることで、AP22が動作可能となる。
また、AP22からシステムコール呼び出しでOS21が呼び出されても、AP22アドレス空間50にはOSテキスト/データ領域が含まれているので、OS21の動作が可能となる。OS21用領域27には、同様にOS21上で動作するAP23のコード/データおよびヒープ/スタックを格納しているAP23テキスト/データ領域が存在し、これは、AP23アドレス空間51として、ページテーブル53を介し、OSテキスト/データ領域と結合されている。OSテキスト/データ領域はOS21用領域27内においては1つだけであるが、ページテーブル52および53の空間配置テーブルにて、双方とも参照するように設定されており、これにより、AP22アドレス空間50およびAP23アドレス空間51双方からOSテキスト/データ領域を共有する形となっている。OSテキスト/データ領域はOS21のコード/データおよびヒープ/スタックを格納しているので、この中に、OS21内の各手段も格納されており、障害処理手段34も、この領域で参照可能になっている。
同様に、OS24用領域28内には、OS24上で動作するAP25のコード/データおよびヒープ/スタックを格納しているAP25領域と、OS24のコード/データおよびヒープ/スタックを格納しているOS領域が存在し、それらは、AP25アドレス空間54として、ページテーブル56を介して結合されている。このページテーブル56がプロセッサコア3のMMU20に設定されることにより、プロセッサコア3のアドレス空間は、AP25アドレス空間54にマッピングされ、AP25領域が参照できることで、AP25が動作可能となる。
また、AP25からシステムコール呼び出しでOS24が呼び出されても、AP25アドレス空間54にはOS領域が含まれているので、OS24の動作が可能となる。OS24用領域28には、同様にOS24内で動作するAP26のコード/データおよびヒープ/スタックを格納しているAP26領域が存在し、これは、AP26アドレス空間55として、ページテーブル57を介し、OS領域と結合されている。OS領域はOS24領域28内においては、1つだけあるが、ページテーブル56および57の空間配置テーブルにて、双方とも参照するように設定されており、これにより、AP25アドレス空間54およびAP26アドレス空間55双方からOS領域を共有する形となっている。OS領域はOS24のコード/データおよびヒープ/スタックを格納しているので、この中に、OS24内の各手段も格納されており、障害処理手段39も、この領域で参照可能になっている。
プロセッサコア2用領域49内には、プロセッサコア2上で動作するソフトウェアのコード/データおよびヒープ/スタックを格納しているテキスト/データ領域58が存在し、それらはアドレス空間58としてページテーブル59を介して結合されている。テキスト/データ領域58には、プロセッサコア2上で動作するソフトウェアを格納しているため、障害処理登録手段43、障害管理手段44および登録領域45は、この領域で参照可能になっている。また、ページテーブル59がプロセッサコア2のMMU19に設定されることにより、プロセッサコア2のアドレス空間は、アドレス空間(テキスト/データ領域)58にマッピングされ、プロセッサコア2上のソフトウェアのテキスト/データ領域が参照できることで、障害処理登録手段43、障害管理手段44が動作可能となり、登録領域45も、これら各手段で参照可能になる。
次に、この実施の形態における情報処理装置のOS初期化時の動作について、図8の矢印および図9のフローチャートを用いて説明する。まず、プロセッサコア1にH/Wリセットが掛かり、OS21が起動されると、OS初期化手段33が動作する。プロセッサコア1のOS初期化手段33は、OS内の様々な機能の初期化を行うと共に、プロセッサコア2にOS21内にある障害処理手段34のアドレス、すなわちOS21用領域27内のOSテキスト/データ領域内にある障害処理手段テキスト/データ領域のアドレスの登録を依頼する(図8、図9のS201)。
このアドレスはページテーブル52またはページテーブル53を介してアクセス可能な論理空間アドレスを登録依頼する。OSテキストデータ領域は、ページテーブル52またはページテーブル53を介した論理空間アドレス上では、同じアドレスに配置されており、どちらのページテーブルを参照しても、同じ位置で障害処理手段が参照可能になっている。登録依頼処理は、プロセッサコア1およびプロセッサコア2内のプロセッサコア通信機能(図1の15、16)を用いて行われる。プロセッサコア1でのOS初期化時の処理は以上となる。
プロセッサコア2は、起動後、障害処理登録手段43が起動し、他プロセッサコアからの通知を待つ(図9のS202)。他プロセッサコアから通知がない場合は、再度通知を待つ(S202のN)。他プロセッサコアから通知があった場合(S202のY)、依頼されたプロセッサコア1から障害処理手段34のアドレスを受信し、登録領域45内に障害処理手段アドレス60として格納する(図8、図9のS203)。そして再度、他プロセッサからの通知を待つ(S202)。このようにして、プロセッサコア2内の登録領域45には、他プロセッサコア上で動作する各OSにある障害処理手段のアドレスが格納されることになる。障害処理手段のアドレス情報の受信については、依頼元プロセッサコアがメモリ5に障害処理手段アドレス情報のデータを格納し、それをプロセッサコア2が参照する方法や、各プロセッサコアのプロセッサコア間通信機能(図1の15、16、17)にて障害処理手段アドレス情報のデータを送信するようにする方法が考えられる。
なお、上記例では、プロセッサコア1を対象に説明したが、これはプロセッサコア3の場合も同様であり、プロセッサコア3にてOS24内にある障害処理手段38のアドレスの登録をプロセッサコア2に依頼することで、プロセッサコア2内の障害処理登録手段43が障害処理手段38のアドレス61を登録領域45に格納する。この実施の形態では、プロセッサコア2の障害処理登録手段43が、他プロセッサコアからの通知を待っているように記載しているが、これを割込みベースにしても動作は同じである。この場合、プロセッサコア2にて他の処理を行っている最中に、プロセッサ間通信機能(図1の16)にて割込みが発生し、その割込み処理にて障害処理登録手段43が起動し、登録処理が実施された後、プロセッサコア2は、割込みが発生した時に行っていた処理に戻る。
以上がこの実施の形態における情報処理装置のOS初期化時の動作である。
次に、この実施の形態における情報処理装置の障害発生時の動作について、図10のフローチャートおよび図11、図12、図13、を用いて説明する。
この実施の形態では、プロセッサコア1上で動作するAP(AP)22に障害が発生した場合の例で説明する。まず、プロセッサコア1ではAP22が動作している(図10、S210)。この時の動作状況を示すのが図11である。AP22が動作している時、プロセッサコア1のMMU18は、OS21用領域27内のページテーブル52を参照するように設定されている。これにより、プロセッサコア1は、AP22アドレス空間50をアドレス空間として動作しており、この中にあるAP22テキスト/データ領域を参照し、AP22内のコードを実行している。
一方、プロセッサコア2のMMU19は、プロセッサコア2用領域49内のページテーブル59を参照するように設定されている。これにより、プロセッサコア2は、アドレス空間(テキスト/データ領域)58をアドレス空間として動作しており、この中にあるテキスト/データ領域を参照し、障害管理手段44のコードを実行している。
AP22の動作中に障害が発生すると、プロセッサコア1上で例外が発生し、OS21内の障害検出手段35が、その例外を検出する(図10、図12のS211)。この時、プロセッサコア1のMMU18は、OS21用領域のページテーブル52が設定されており、プロセッサコア1はAP22アドレス空間50内にあるOSテキスト/データ領域内に存在する障害検出手段35に制御を移すことができる。障害検出手段35は、最低限のレジスタ情報をメモリ5内に保存した後、障害が発生したAP22を停止させるためにプロセス切替手段36に通知する(図10、図12のS212)。プロセス切替手段36もAP22アドレス空間50内のOSテキスト/データ領域に存在するので、そのまま制御が移すことができる。障害検出手段35により通知されたプロセス切替手段36は、障害が発生したAP22の実行を停止する(図10、図12のS213)。これは、AP22が動作していたプロセスをスケジューリング対象から外し、同プロセスの状態を停止状態に移行することを意味し、プロセスそのものを削除することはこの時点ではしない。
また、プロセッサコア1はAP22アドレス空間50を参照したままであり、MMU18はページテーブル52をまだ参照している。プロセスそのものを削除しないことにより、AP22が使用していたメモリ5内のAP22アドレス空間50内の情報がそのまま残存し、これによりプロセッサコア2上から参照することが可能となる
次に障害検出手段35は、プロセッサ間通信機能(図1の15)を利用して、AP22の障害発生を障害処理するプロセッサコア2に通知する(図10、図12のS214)。この時、障害が発生したAP22の情報や保存したレジスタ情報などが付加されるとともに、ページテーブル52の情報も付加される。これら情報については、プロセッサコア2への通知時にメッセージ情報として付加する方法や、メモリ5上の特定領域に書き込む方法が考えられる。そして障害処理手段34は、プロセス切替手段36を介して、他APへの切替を行う。
プロセス切替手段36は、OS21内のプロセス情報を参照し、動作可能なAP23を抽出し、AP23を動作可能(RUN状態)にし、プロセッサコア1のMMU18をOS21用領域のページテーブル53を参照するように設定する(図10、図12のS215)。これにより、プロセッサコア1はAP23アドレス空間51をアドレス空間として参照するようになる。OSテキスト/データ領域は、AP22アドレス空間50、AP23アドレス空間51ともに同じアドレス上に存在するため、アドレス空間を切り替えても、OS21内のコード/データは同じように扱うことができ、OS21内の各手段もそのまま動作可能である。OS21のプロセス切替手段36は、切り替えられたAP23アドレス空間51内にある、AP23テキスト/データ領域内のAP23に制御を移すことにより、以降、プロセッサコア1上ではAP23が動作する(図10のS216)。
プロセッサコア2では、障害管理手段44が動作しており、他プロセッサからの通知があるかチェックしている(図10のS217)。S214にて、プロセッサコア1からプロセッサコア2に割込みが通知されると、プロセッサコア2のプロセッサ間通信機能(図1の16)が、その割込みを検出し、障害管理手段44に通知する(図10のS217)。障害管理手段44では、S217にてその通知をチェックしており、通知があれば(S217のY)、通知元プロセッサコアに対応する障害処理手段のアドレスを登録領域45内から見つけ出す。そして、通知元プロセッサから送られてきたページテーブル情報と障害処理手段のアドレスを元に、障害処理手段を起動する(図10、図12のS218)。
この実施の形態では、プロセッサコア1から通知されたので、登録領域45内の障害処理手段アドレス60が選択される。そして、プロセッサコア2のMMU19を、プロセッサコア1から送られてきたページテーブル52の情報を元に設定する。ページテーブル52の情報は、メモリ5上にあり、プロセッサコア1でもプロセッサコア2でも同じように扱うことができる。これにより、プロセッサコア2は、AP22アドレス空間50にアドレス空間が切り替わる。そして、登録領域45に登録されていた障害処理手段アドレス60を元に、AP22アドレス空間50内にある、OS21のコード/データが格納されているOSテキスト/データ領域内の、障害処理手段を起動する。これにより、プロセッサコア2にて障害処理手段34が動作する。この障害処理手段34は、OS21用のものであり、OS21にあわせた障害処理が可能となる。
プロセッサコア2で動作している障害処理手段34は、まず、通知にて付加されたAP22の情報を元に、AP22アドレス空間50内にあるAP22テキスト/データ領域を探し、その中にある情報からエラーの発生種類(ページフォルト、0割り算等)や、発生箇所(OS内/AP内)、エラー発生時のレジスタ情報等を収集する(図10、図12のS220)。次にプロセッサコア2で動作している障害処理手段34は、収集されたAP22の障害情報を元にエラー原因の特定および、それに伴いプロセッサコア1の動作を継続動作させるか、それとも、そのエラーが継続できない障害でプロセッサコア1をシステムダウン(停止または再起動)にすべきかを判断する(図10のS221)。そしてプロセッサコア2で動作している障害処理手段34は、特定されたエラー原因や継続動作またはシステムダウン動作遷移情報、および収集された障害情報を、コンソール6に表示し、使用者に障害が発生したことを通知するとともに、バックアップメモリ8内のエラー情報格納域42に、これら情報を記録し、障害発生後も使用者が障害発生情報を参照できるようにする(図10、図12のS222)。
次にプロセッサコア2で動作している障害処理手段34は、プロセッサコア1の対処としてシステムダウンすべきか否か判断する(図10のS223)。システムダウンすべき場合(S223のY)は、プロセッサコア1を停止状態にさせ、メモリ5内のOS21用領域27の内容をディスクに書き込む(メモリダンプ)などした後、プロセッサコア1のリブート(H/Wリセット)を行う(図10のS224)。これにより、プロセッサコア1は初期状態に戻り、再度OS21がブートされる。
S223にてシステムダウンしない場合(S223のN)、プロセッサコア2で動作している障害処理手段34は、特定されたエラー原因を元に、各エラーに対応した処理をおこなう(図10のS225)。これは、例えば0割り算によるエラーであれば、次にAP22が実行される場合は、0割り算のシグナルハンドラ(エラー発生に伴い呼び出される関数)を呼び出すようにAP22アドレス空間50のAP22テキスト/データ領域内にあるAP22のスタックを操作したり、セグメンテーションフォルトによるエラーであれば、コアファイル41を作成する準備を行う。そして、プロセッサコア2で動作している障害処理手段34は、コアファイル41を作成するようなエラーである場合に、コアファイル作成処理を行う(図10、図12のS226)。この時、障害処理手段34は、AP22アドレス空間50のAP22テキスト/データ領域の内容をHDD7内のコアファイル41に書き出す。
コアファイル41の作成が終了すると、プロセッサコア2で動作している障害処理手段34は、AP22を再開させるために停止処理解除要求をプロセッサコア1に通知する(図10、図13のS227)。これは、プロセッサ間通信機能(図1の16)を利用して、プロセッサコア1に割込みを通知することで行われる。この時、AP22を継続動作させるか、削除すべきかの情報が付加される。その後、プロセッサコア2で動作している障害処理手段34の処理は終了し、障害管理手段44に復帰する(図10、図13のS228)。プロセッサコア2のMMU19を、障害管理手段34が動作するために設定していたページテーブル52から、プロセッサコア2用領域にあるページテーブル59に変更し、プロセッサコア2のアドレス空間が、OS21用領域27内のAP22アドレス空間50から、プロセッサ2用領域49のアドレス空間58に切り替わることにより、アドレス空間(テキスト/データ領域)58内にある障害管理手段44に制御が戻る。制御が戻った障害管理手段44は、他プロセッサからの通知がない場合のチェックに戻る(図10のS217)。
S216にてプロセッサコア1上でAP23が動作している間に、プロセッサコア2での障害情報の収集および記録が終了し、S227にてプロセッサコア2からプロセッサコア1に対しAP22の停止処理解除要求が実施されると、プロセッサコア1のプロセッサ間通信機能(図1の15)がその割込みを受信し、OS21内のプロセス切替手段36を起動する(図10のS229)。プロセス切替手段36は、通知にて付加されたAP22を継続動作させるか、削除すべきかの情報を元に、AP22の再開または終了を処理する(図10、図13のS230)。継続動作させる場合は、AP22が動作していたプロセスをスケジューリング対象に戻し、終了させる場合は、AP22が動作していたプロセスを削除する処理を行う。以上がこの実施の形態における情報処理装置の障害発生時の動作である。
この実施の形態2による情報処理装置の障害処理システムでは、障害を処理するプロセッサコアに、他プロセッサコア上で動作する各OSの障害処理手段のアドレスを登録し、プロセッサコアにて障害が発生した場合に、障害が発生したAPが動作していたアドレス空間を管理するページテーブル情報を障害を処理するプロセッサコアに渡し、障害を処理するプロセッサコアは、ページテーブル情報を元に、自身のMMUをAPが動作していたアドレス空間に切り替えることで、障害を処理するプロセッサコアにてAPが動作していたアドレス空間で障害処理を行うことができるようにしたので、障害が発生したプロセッサコア上で次に動作すべきAPを迅速に動作させることができるとともに、障害処理専用プロセッサコアのソフトウェアが各OSに依存することなく、複数のOSの障害処理を行うことができる、障害処理装置の障害処理システムを得ることができる。
なお、この実施の形態では、MMUにて仮想(論理)アドレス空間を切り替えるようなOSを用いて実施例を説明したが、MMUを持たない情報処理装置でも、同様な処理は可能である。この場合、各OS用領域および障害処理専用プロセッサコア用領域は、独立して配置される(各領域が同じアドレス上に存在すると、データが上書きされるため、動作はできない)ので、障害処理専用プロセッサコアの登録領域に登録される各OSの障害処理手段アドレスも、それぞれ異なるアドレスになる。障害処理専用プロセッサコアは、通知されたプロセッサコアに対応した障害処理手段アドレスを実行することで、そのプロセッサコア上で動作しているOSの障害処理手段を実行することが可能であるとともに、APのテキスト/データ領域も、メモリ5上にて障害処理専用プロセッサコアから参照可能であるので、この実施の形態と同様な障害処理を行うことが可能となる。
実施の形態3.
この発明の他の実施の形態における情報処理装置の障害処理システムについて説明する。実施の形態3では、情報処理装置のH/W構成は実施の形態1と同じであり、図1で示される。図14は、図1で示したH/W構成に対する、ソフトウェア(S/W)の構成を示す図である。図中、プロセッサコア1にはOS21と、OS21上で動作するAP22、AP23が動作する。同様にプロセッサコア3には、OS24と、OS24上で動作するAP25、およびAP26が動作する。また、OS21、AP22、AP23、およびOS24、AP25、AP26のコード/データ、およびヒープ/スタック領域はメモリ5上に存在する。
メモリ5上は、OS21が使用するOS21用領域27と、OS24が使用するOS24用領域28とに用途が区切られており、OS21用領域27内には、OS21上で動作するAP22のコード/データおよびヒープ/スタック領域であるAP情報領域29と、OS21上で動作するAP23のコード/データおよびヒープ/スタック領域であるAP情報領域30、OS21のコード/データおよびヒープ/スタック領域であるOS内部情報領域70が、OS24用領域28内には、OS24上で動作するAP25のコード/データおよびヒープ/スタック領域であるAP情報領域31と、OS24上で動作するAP26のコード/データおよびヒープ/スタック領域であるAP情報領域32、およびOS24のコード/データおよびヒープ/スタック領域であるOS内部情報領域71が存在する。
またメモリ5上には、障害情報が格納されている領域を示す収集領域情報72も存在する。そして、HDD7上にはAPに障害が発生した場合のAP情報を保持するコアファイル領域41が、バックアップメモリ8には、APに障害が発生した場合に動作していたプロセッサコアに関する障害情報および情報処理装置全体の情報を保持するエラー情報格納域42が存在する。プロセッサコア2には、障害処理を行うソフトウェアが存在する。
プロセッサコア1上のOS21には、APの障害を検出する障害検出手段35と、APの動作を切り替えるためのプロセス切替手段36が存在する。同様にプロセッサコア3上のOS24にも障害検出手段39、プロセス切替手段40が存在する。OS21およびOS24に存在する同じ名前の手段は、それぞれ同じ機能を有している。一方、プロセッサコア2上には、他プロセッサコアからの指示により障害情報の収集・対処・記録を管理する障害管理手段44が存在する。なお、この実施の形態では、プロセッサコア2に障害情報を収集・記録する機能が配置されているが、これはプロセッサコアに依存しないため、他のプロセッサコアにこの機能が存在しても同じ意味を持つ。また、プロセッサコア2ではOSの記載がないが、OS内の機能、またはAPの機能にて、これら収集・記録機能を代替しても、同じ効果を得ることができる。
次に、この実施の形態における収集領域情報72の内容を図15を用いて説明する。収集領域情報72の内容は、図15に示すように、各領域毎にその領域がどの障害情報を保持しているかを示すタイプ格納部分と、収集する領域のアドレスを格納および領域のサイズを保持する部分、そして保存先を示す部分および保存先アドレスを示す部分が存在する。プロセッサコア2の障害管理手段44は、収集した収集領域情報72のタイプ情報からレジスタ情報がどこにあるか判断し、エラー原因の特定を行い、コアファイル保存領域がどこにあるか判断し、その保存先とアドレス情報から、収集した領域をコアファイル41内の任意の位置に保存する。また、それ以外の領域については、コンソール6やエラー情報格納領域42に内容を表示・記録する。
次に、この実施の形態における情報処理装置の障害発生時の動作について、図16内の矢印および図17のフローチャートを用いて説明する。この実施の形態では、プロセッサコア1上で動作するAP22に障害が発生した場合の例で説明する。まず、AP22の動作中に障害が発生すると、プロセッサコア1上で例外が発生し、OS21内の障害検出手段35が、その例外を検出する(図16、図17のS301)。そして障害検出手段35は、APを切り替えるために最低限必要なレジスタ情報をメモリ5内のOS21用領域27内に保存するとともに、収集領域情報72に障害情報として記録すべき情報のタイプおよび領域のアドレス/サイズ、保存先および保存先アドレスを設定する(図16、図17のS302)。OS21用領域27内に保存されるレジスタ情報は、OS21内部情報70に保存される。
また、収集領域情報72に保存される領域は、OS21内部情報70に保存されたレジスタ情報や、コアファイルを保存するために必要なAP情報領域29全体の情報、そして、コンソール6やバックアップメモリ8内のエラー情報格納域42に保存すべき、その他の情報(AP情報領域29内のスタック情報やヒープ情報、APの変数情報など)について、タイプ(レジスタ情報、コアファイル情報等)とその情報のメモリ5上の位置(領域アドレス)とサイズ、および保存先のタイプと保存先デバイス内の保存位置(アドレス)が設定される。
レジスタ情報の保存および収集領域情報72の設定が終了した後、障害情報対処手段35は、障害が発生したAP22を停止させるためにプロセス切替手段36に通知する(図16、図17のS303)。障害検出手段35により通知されたプロセス切替手段36は、障害が発生したAP22の実行を停止する(図16、図17のS304)。これは、AP22が動作していたプロセスをスケジューリング対象から外し、同プロセスの状態を停止状態に移行することを意味し、プロセスそのものを削除することはこの時点ではしない。プロセスそのものを削除しないことにより、AP22が使用していたメモリ5内のAP情報領域29がそのまま残存し、これをプロセッサコア2上から参照することが可能となる。
次に障害検出手段35は、プロセッサ間通信機能(図1の15)を利用して、障害発生を障害処理するプロセッサコア2に通知する(図16、図17のS305)。この実施の形態では、プロセッサコア2はメモリ5内の収集領域情報72に従って情報収集を行うため、障害が発生したAP22の情報は通知する必要がない。そして障害処理手段35は、プロセス切替手段36を介して、他APへの切替を行う。プロセス切替手段36は、OS21内のプロセス情報を参照し、動作可能なAP23を抽出し、AP23を動作可能(RUN状態)にする(図16、図17のS306)。これにより以降、プロセッサコア1上ではAP23が動作する(図17のS307)。
プロセッサコア2では、障害管理手段44が動作しており、他プロセッサからの通知があるかチェックしている(図17のS308)。S308にて、プロセッサコア1からプロセッサコア2に割込みが通知されると、プロセッサコア2のプロセッサ間通信機能(図1の16)が、その割込みを検出し、障害管理手段44に通知する(図16、図17のS309)。障害管理手段44では、S308にてその通知をチェックしており、通知があると(S308のY)、障害管理手段44は、まず、障害情報の収集を行う(図16、図17のS310)。障害管理手段44は、収集領域情報72内の情報を元に、レジスタ情報やコアファイル保存領域、その他の保存領域のメモリ5内のアドレスおよびサイズの内容からエラーの発生種類(ページフォルト、0割り算等)や、発生箇所(OS内/AP内)、エラー発生時のレジスタ情報等を収集する。
次に障害管理手段44は、収集した障害情報を元にエラー原因の特定および、それに伴いプロセッサコア1の動作を継続させるか、それとも、そのエラーが継続できない障害でプロセッサコア1をシステムダウン(停止または再起動)にすべきかを判断する(図17のS311)。システムダウンするケースとしては、障害発生の箇所がAP22が呼び出したOS21内で発生したエラーでOS復帰ができないものや、CPU内部エラーが発生した場合などが挙げられる。
そして障害管理手段44は、障害情報の記録および出力を行う(図16、図17のS312)。障害管理手段44は特定されたエラー原因や継続動作またはシステムダウン動作遷移情報、および収集した障害情報を、コンソール6に表示し、使用者に障害が発生したことを通知するとともに、バックアップメモリ8内のエラー情報格納域42に、これら情報を記録し、障害発生後も使用者が障害発生情報を参照できるようにする。
次に障害管理手段44は、プロセッサコア1の対処としてシステムダウンすべきか否か判断する(図17のS313)。システムダウンすべき場合(S313のY)は、プロセッサコア1を停止状態にさせた後、メモリ5内のOS21用領域27の内容をディスクに書き込む(メモリダンプ)などした後、プロセッサコア1のリブート(H/Wリセット)を行う(図17のS314)。これにより、プロセッサコア1は初期状態に戻り、再度OS21がブートされる。
S313にてシステムダウンしない場合(S313のN)、障害管理手段44は、次に特定されたエラー原因を元に、各エラーに対応した処理をおこなう(図17のS315)。これは、例えば0割り算によるエラーであれば、次にAP22が実行される場合は、0割り算のシグナルハンドラ(エラー発生に伴い呼び出される関数)を呼び出すようにAP情報領域29内のAP22のスタックを操作したり、セグメンテーションフォルトによるエラーであれば、コアファイル41を作成する準備を行う。そして、障害管理手段44は、コアファイル41を作成するようなエラーである場合に、コアファイル作成処理を行う(図16、図17のS316)。この時、障害管理手段44は、収集領域情報72にあるHDD7に書き込むべき領域をAP22情報領域29の内容と判断し、HDD7内のコアファイル41に書き込む。コアファイル41の作成が終了すると、障害管理手段44は、AP22を再開させるために停止処理解除要求をプロセッサコア1に通知する(図16、図17のS317)。これは、プロセッサ間通信機能(図1の16)を利用して、プロセッサコア1に割込みを通知することで行われる。この時、AP22を継続動作させるか、削除すべきかの情報が付加される。
S307にてプロセッサコア1上でAP22が動作している間に、プロセッサコア2での障害情報の収集および記録が終了し、S317にてプロセッサコア2からプロセッサコア1に対しAP21の停止処理解除要求が実施されると、プロセッサコア1のプロセッサ間通信機能(図1の15)がその割込みを受信し、OS21内のプロセス切替手段36を起動する(図17のS318)。プロセス切替手段36は、通知にて付加されたAP22を継続動作させるか、削除すべきかの情報を元に、AP22の再開または終了を処理する(図16、図17のS319)。継続動作させる場合は、AP22が動作していたプロセスをスケジューリング対象に戻し、終了させる場合は、AP22が動作していたプロセスを削除する処理を行う。以上がこの実施の形態における情報処理装置の障害発生時の動作である。
この実施の形態3による情報処理装置の障害処理システムでは、収集すべき障害情報の領域をOS内部情報とは別に設け、そこにレジスタ情報やコアファイル情報の領域アドレスとサイズおよび、情報のタイプを設定するようにしたので、障害情報を収集するプロセッサコアは、障害が発生したプロセッサコアで動作するOSに依存せずに障害情報の収集を行うことが可能となり、障害が発生したプロセッサコア上で次に動作すべきAPを迅速に動作させることができる、情報処理装置の障害処理システムを得ることができる。
また、この実施の形態では、OSに依存することなく、障害情報の収集が可能となっているので、複数のプロセッサコアで、それぞれ異なるOSが動作していた場合においても、各OSで発生した障害を、1つの障害情報収集プロセッサコア上で処理することができる、情報処理装置の障害処理システムを得ることができる。
なお、この実施の形態では、収集領域情報に格納される領域情報の内容を4つにしていたが、4つ以上でも、同様な情報処理装置の障害処理システムを得ることができる。
さらに、この実施の形態では、収集領域情報72の設定を障害発生時に行うようにしているが、これをOS初期化時や、プロセス切替時に実施しても同様な情報処理装置の障害処理システムを得ることができる。
またさらに、この実施の形態では、メモリダンプを行う際、OS21用領域27をプロセッサコア2が把握してダンプするようにしているが、メモリダンプの領域を収集領域情報に追加し、プロセッサコア2上で、その情報を元にメモリダンプすることや、複数のメモリダンプ領域を収集領域情報に追加し、分割したメモリ領域をダンプすることができるようにしても、同様な情報処理装置の障害処理システムを得ることができる。
実施の形態4.
この発明の他の実施形態における情報処理装置の障害処理システムについて説明する。実施の形態4では、情報処理装置のH/W構成は実施の形態1と同じであり、図1で示される。図18は、図1で示したH/W構成に対する、ソフトウェア(S/W)の構成を示す図である。実施の形態4では、OS21内に、メモリ5上のOS21用領域27の各領域の読み書きをAP毎に制御し、書込みの権利がないAPが書き込みを行った場合にトラップを発生させるようにH/Wに設定することを行う読み書き管理手段80が存在し、同様にOS24内にも同様な読み書き管理手段81が存在する。また、メモリ5上に、OS21用領域内にOS21内の各APで領域を共有する共有メモリ領域82と、OS24用領域にOS24内の各APで領域を共有する共有メモリ領域83が存在し、障害検出手段35および39、障害処理手段34(34’)および38に、これら読み書き管理手段80および81および共有メモリ領域82および83に対する操作が追加される。それ以外は実施の形態1と同じである。この実施の形態4では、OS初期化時の動作は、実施の形態1と同じであり、図3の矢印および図4のフローチャートで示される。
次に、この実施の形態における情報処理装置の障害発生時の動作について、図19内の矢印および図20のフローチャートを用いて説明する。この実施の形態では、プロセッサコア1上で動作するAP22に障害が発生した場合の例で説明する。まず、AP22の動作中に障害が発生すると、プロセッサコア1上で例外が発生し、OS21内の障害検出手段35が、その例外を検出する(図19、図20のS411)。そして障害検出手段35は、最低限のレジスタ情報をメモリ5内に保存した後、読み書き管理手段80を呼び出し、障害が発生したAP22が共有メモリ領域82を使用していたか否かをチェックさせる(図19、図20のS412)。
読み書き管理手段80では、AP22が共有メモリ領域82を使用している場合(図20の412のY)、共有メモリ領域82を書込み禁止に設定する(図19、図20のS413)。これにより、他APから共有メモリに書込みが発生すると、トラップが発生する。書込み禁止の設定方法としては、プロセッサコア1のMMU18に対し、共有メモリ領域82のアドレス空間に対し書き込みを禁止するような設定を行うことで、以降の書込みに対しトラップが発生させることができる。これには、MMUが使用するページテーブルにある、書込み禁止フラグや、ページ存在フラグなどを利用することが考えられる。読み書き管理手段80にて共有メモリ領域82を書込み禁止に設定(S413)した後、または、障害発生APが共有メモリを利用していなかった(S412のN)場合、読み書き管理手段80の動作は終了し、障害検出手段35に処理が戻り、障害が発生したAP22を停止させるためにプロセス切替手段36に通知する(図19、図20のS414)。
障害検出手段35により通知されたプロセス切替手段36は、障害が発生したAP22の実行を停止する(図19、図20のS415)。これは、AP22が動作していたプロセスをスケジューリング対象から外し、同プロセスの状態を停止状態に移行することを意味し、プロセスそのものを削除することはこの時点ではしない。プロセスそのものを削除しないことにより、AP22が使用していたメモリ5内のAP情報領域29、および共有メモリ領域82がそのまま残存し、これをプロセッサコア2上から参照することが可能となる。
また、共有メモリ領域82については、他のAPから書込みがあるとトラップにより、書込みを防ぐようになっており、共有メモリ領域82についてもAP22が障害にて停止した状態が維持される。次に障害検出手段35は、プロセッサ間通信機能(図1の15)を利用して、障害発生を障害処理するプロセッサコア2に通知する(図19、図20のS416)。この時、障害が発生したAP22の情報や保存したレジスタ情報などが付加される。そして障害処理手段35は、プロセス切替手段36を介して、他APへの切替を行う。プロセス切替手段36は、OS21内のプロセス情報を参照し、動作可能なAP23を抽出し、AP23を動作可能(RUN状態)にする(図19、図20のS417)。これにより以降、プロセッサコア1上ではAP23が動作する(図20のS418)。
プロセッサコア2では、障害管理手段44が動作しており、他プロセッサからの通知があるかチェックしている(図20のS419)。S416にて、プロセッサコア1からプロセッサコア2に割込みが通知されると、プロセッサコア2のプロセッサ間通信機能(図1の16)が、その割込みを検出し、障害管理手段44に通知する(図19、図20のS419)。障害管理手段44では、S419にてその通知をチェックしており、通知があれば(S419のY)、通知元プロセッサコアに対応する障害処理手段を登録領域45内から見つけ出し、その手段を起動する(図19、図20のS420)。この実施の形態では、プロセッサコア1から通知されたので、登録領域45内の障害処理手段34’が起動される。この障害処理手段34’は、プロセッサコア1内のOS21用のものであり、OS21にあわせた障害処理が可能となる。
障害処理手段34’は、まず、通知にて付加されたAP22の情報を元に、メモリ5のOS21用領域27内のAP情報領域29を探し、その中にある情報からエラーの発生種類(ページフォルト、0割り算等)や、発生箇所(OS内/AP内)、エラー発生時のレジスタ情報等を収集する(図19、図20のS421)。
次に障害処理手段34’は、収集されたAP22の障害情報を元にエラー原因の特定および、それに伴いプロセッサコア1の動作を継続させるか、それとも、そのエラーが継続できない障害でプロセッサコア1をシステムダウン(停止または再起動)にすべきかを判断する(図20のS422)。そして障害処理手段34’は、特定されたエラー原因や継続動作またはシステムダウン動作遷移情報、および収集された障害情報を、コンソール6に表示し、使用者に障害が発生したことを通知するとともに、バックアップメモリ8内のエラー情報格納域42に、これら情報を記録し、障害発生後も使用者が障害発生情報を参照できるようにする(図19、図20のS423)。
次に障害処理手段34’は、プロセッサコア1の対処としてシステムダウンすべきか否か判断する(図20のS424)。システムダウンすべき場合(S424のY)は、プロセッサコア1を停止状態にさせた後、メモリ5内のOS21用領域27の内容をディスクに書き込む(メモリダンプ)などした後、プロセッサコア1のリブート(H/Wリセット)を行う(図20のS425)。これにより、プロセッサコア1は初期状態に戻り、再度OS21がブートされる。
S422にてシステムダウンしない場合(S424のN)、障害処理手段34’は、特定されたエラー原因を元に、各エラーに対応した処理をおこなう(図20のS426)。これは、例えば0割り算によるエラーであれば、次にAP22が実行される場合は、0割り算のシグナルハンドラ(エラー発生に伴い呼び出される関数)を呼び出すようにAP情報領域29内のAP22のスタックを操作したり、セグメンテーションフォルトによるエラーであれば、コアファイル41を作成する準備を行う。
そして、障害処理手段34’は、コアファイル41を作成するようなエラーである場合に、コアファイル作成処理を行う(図19、図20のS427)。この時、障害処理手段34’は、AP情報領域29の内容およびAP22が共有メモリを使用していれば共有メモリ領域82の内容をHDD7内のコアファイル41に書き出す。コアファイル41の作成が終了すると、障害処理手段34’は、AP22を再開させるために停止処理解除要求をプロセッサコア1に通知する(図19、図20のS428)。これは、プロセッサ間通信機能(図1の16)を利用して、プロセッサコア1に割込みを通知することで行われる。この時、AP22を継続動作させるか、削除すべきかの情報が付加される。
S418にてプロセッサコア1上でAP23が動作している間に、プロセッサコア2での障害情報の収集および記録が終了し、S428にてプロセッサコア2からプロセッサコア1に対しAP22の停止処理解除要求が実施されると、プロセッサコア1のプロセッサ間通信機能(図1の15)がその割込みを受信し、OS21内のプロセス切替手段36を起動する(図20のS429)。プロセス切替手段36はまず、読み書き管理手段80を呼び出し、障害が発生していたAP22が共有メモリ領域82を使用していたかチェックさせる(図19、図20のS430)。
読み書き管理手段80では、AP22が共有メモリ領域を82を使用していた場合(図20のS430のY)、既に障害が発生したAP22に対する障害処理は終了しており、かつ、共有メモリ領域82には、S413にて書込み禁止に設定されていたため、共有メモリ領域82の書込み禁止を解除する(図19、図20のS431)。これにより、以降、他APが共有メモリ82に書込み操作を行っても、トラップは発生せず、直接書き込むことが可能となる。
読み書き管理手段80にて共有メモリ領域を書込み禁止解除に設定(S431)した後、または、障害発生APが共有メモリを使用していなかった(S430のN)場合、読み書き管理手段80の動作は終了し、プロセス切替手段36に処理が戻り、プロセス切替手段36は、プロセッサコア2からの通知にて付加されたAP22を継続動作させるか、削除すべきかの情報を元に、AP22の再開または終了を処理する(図19、図20のS432)。継続動作させる場合は、AP22が動作していたプロセスをスケジューリング対象に戻し、終了させる場合は、AP22が動作していたプロセスを削除する処理を行う。以上がこの実施の形態における情報処理装置の障害発生時の動作である。
次に、この実施の形態における情報処理装置の共有メモリ領域82に書込み禁止設定になっていた場合の、他APによる書込み操作が実施された時の動作について、図21の矢印および図22のフローチャートを用いて説明する。この実施の形態では、AP22およびAP23が共有メモリ領域82を使用しており、AP22に障害が発生し、AP22の障害処理操作の過程で共有メモリ領域82が書込み禁止設定(図19、図20のS413)になっている時に、AP23が共有メモリ領域82に書込みを行おうとした場合の例で説明する。まず、AP23(他AP)が共有メモリ領域82に書込み操作を行う(図21、図22のS451)。すると、それをプロセッサコア1が検知し、トラップを発生し、そのトラップを読み書き管理手段80が検出する(図21、図22のS452)。
読み書き管理手段80は、トラップ処理内にてAP23が共有メモリ領域82内のどこに書き込もうとしていたかを判断すると共に、OS21用領域27にある空きメモリ領域84から、空きメモリを確保する(図21、図22のS453)。確保する量は、プロセッサコア1のMMU18によって管理される、アドレス空間の最小単位(ページテーブルにて管理できる最小サイズ。インテル社x86系プロセッサでは1ページ=4KB)の量となる。
次に読み書き管理手段80は、AP23が共有メモリ領域82内の書き込もうとしていた領域の内容をS453にて確保した領域にコピーする(図21、図22のS454)。このコピーする量も、空きメモリを確保した量と同じであり、書き込もうとした領域が含まれる、アドレス空間の最小単位の領域全てが、確保した空きメモリ領域にコピーされる(例えば、アドレス空間の最小単位4KBにて、アドレス0x80000010から始まる4バイトの領域に書き込もうとしていた場合、0x80000000〜0x80000fffの領域がコピーされる)。
次に、読み書き管理手段80は、AP23が共有メモリ領域82に対して行おうとしていた書込み操作を、コピーした領域に対して行わせるように、AP23の領域設定を切り替える(図21、図22のS455)。これは、AP23のアドレス空間にて、共有メモリ領域82として参照していた空間を、S454にてコピーした領域を参照するように切り替える。具体的には、プロセッサコア1のMMU18が参照しているページテーブルにある、AP23が書き込もうとしていた領域に対するアドレスに対するテーブルを、S454にてコピーした領域に対するアドレスに切り替えることで、S454にてコピーした領域がAP23が書き込もうとしていたアドレス空間に対し参照可能となる。これにより、以降AP23が共有メモリ82の同様な領域を書き込もうとしても、アドレス空間としては、コピーした領域を参照しているので、コピーした領域に対し、書込みが発生し、障害が発生したAP22が参照している共有メモリ領域に書込みは発生しない。
次に読み書き管理手段80は、AP23が共有メモリ82内の書き込もうとしていた領域が、他APにて参照しているかチェックする(図22のS456)。他APにて参照している場合(S456のY)、他APにて参照している共有メモリ82内の該当領域を、S454にてコピーした領域になるよう、他APのアドレス空間の設定を変更する。これにより、以降、AP22、AP23以外のAPも、AP23によって書込みが発生した領域を共有メモリ領域として参照することが可能となり、障害が発生しているAP22が参照していた共有メモリは障害発生時の状態を保ったまま、他APについては、共有メモリの操作が可能で、かつ、最新の共有メモリ状態を参照することが可能となる。
S457にて他のAPに対する共有メモリ設定の変更を行った後、または、AP23が書き込もうとした領域を他のAPが使用していなかった(S456のN)場合、読み書き手段80の動作は終了し、トラップ処理を復帰し(図22のS458)、AP23の共有メモリ領域82に対する書込み操作が継続される。この時、既に、書き込もうとした領域はS454にてコピーした領域であり、AP22が参照していた共有メモリ領域82は、障害発生時のデータがそのまま残っている。以上が、この実施の形態における、共有メモリ領域82が書き込み禁止設定になっていた場合の、他APによる書込み操作が実施された時の動作である。
この実施の形態4による情報処理装置の障害処理システムでは、各APで同じメモリを読み書きすることができる共有メモリ領域に対し、共有メモリの書込みを禁止し、書込みが発生した場合はトラップが発生するような設定と、トラップが発生した場合の処理を行う読み書き管理手段を設け、APに障害が発生し、そのAPが共有メモリを参照している場合は読み書き管理手段にて、他APに対し、共有メモリを書込み禁止にするような設定を行い、障害が発生していないAPが、その共有メモリ領域に書込みを行うことでトラップが発生すると、読み書き管理手段にて、書き込もうとしていた領域に対し代替となる領域を確保するとともに、書き込もうとしていていた領域の内容を代替領域にコピーし、書き込もうとしていたAPを含む、障害発生AP以外のAPの共有メモリ領域を、その代替領域を参照するように、各APのアドレス空間を切り替えるようにしたので、障害発生APの障害処理は障害発生時の状態を保存でき、かつ、他APの共有メモリ操作も継続して実行できるようにすることで、障害が発生したプロセッサ上で次に動作すべきAPを迅速に動作させることができる情報処理装置の障害処理システムを得ることができる。
なお、この実施の形態では、代替領域への切替を、書き込もうとしたAPのアドレス空間に対して行ったが、これを障害発生APに対して切り替えるようにしても同様な情報処理装置の障害処理システムを得ることができる。この場合、書き込もうとした領域の内容を確保した空きメモリ領域にコピーした後、障害発生APのアドレス空間の共有メモリ領域を、確保した領域に切り替えるとともに、書き込もうとしたAPを含む傷害発生AP以外のAPのアドレス空間に対し、書込み禁止の設定を解除する。これにより、障害発生AP以外のAPの書込みは共有メモリ領域に対して行われるが、障害発生APの共有メモリ領域に対するアドレス空間は、確保した領域を参照するため、障害発生APの障害処理は、障害発生時の状態で共有メモリ領域を参照することができる。
また、この実施の形態では、S456、S457にて、書込み操作を実施しようとしたAP以外のAPに対する共有メモリ領域82に対する処理を行っているが、ここで処理を行わず、次に他APが同領域に書込みを行った際に、既に代替領域があるか否かをチェックし、代替領域がなければ代替領域の確保およびコピーを、あれば、代替領域を参照するように自身のアドレス空間を切り替える設定をするようにしても、同様な情報処理装置の障害処理システムを得ることができる。
実施の形態5.
この発明の他の実施の形態における情報処理装置の障害処理システムについて説明する。実施の形態5では、情報処理装置のH/W構成は実施の形態1と同じであり、図1で示される。図23は、図1で示したH/W構成に対する。ソフトウェア(S/W)の構成を示す図である。図中、プロセッサコア1には、OS21と、OS21で動作するAP22、AP23が動作する。同様にプロセッサコア2には、OS121と、OS121上で動作するAP122、およびAP123が、プロセッサコア3にはOS24と、OS24上で動作するAP25とAP26が存在する。また、OS21、AP22、AP23、およびOS121、AP122、AP123、およびOS24、AP25、AP26、のコード/データ、およびヒープ/スタック領域はメモリ5上に存在する。
メモリ5上には、OS21が使用するOS21用領域27と、OS24が使用するOS24用領域28と、OS121が使用するOS121用領域132とに用途が区切られており、OS21用領域27内には、OS21上で動作するAP22のコード/データおよびヒープスタック領域であるAP情報領域29と、OS21上で動作するAP23のコード/データおよびヒープ/スタック領域であるAP情報領域30が、OS24用領域28には、OS24上で動作するAP25のコード/データおよびヒープ/スタック領域であるAP情報領域31と、OS24上で動作するAP26のコード/データおよびヒープスタック領域であるAP情報領域32が、OS121用領域132内には、OS121上で動作するAP122のコード/データおよびヒープ/スタック領域であるAP情報領域133と、OS121上で動作するAP123のコード/データおよびヒープ/スタック領域であるAP情報領域134が存在する。
また、メモリ5上には、各プロセッサコアが処理すべきものが何もない(アイドル状態)時に、アイドル状態を他のプロセッサコアに知らしめるための、待ちキュー135が存在する。この実施の形態では、プロセッサコア2およびプロセッサコア3がアイドル状態であり、待ちキュー135には、プロセッサコア2がアイドル状態であることを示す待ち136と、プロセッサコア3がアイドル状態であることを示す待ち137がリンクされている。
プロセッサコア1、プロセッサコア2、およびプロセッサコア3にある、OS21、OS121、OS24には、それぞれプロセッサコア上で動作するAPに障害が発生した場合に、障害を検知し、対処する手段と、他のプロセッサコアの指示により障害情報を収集・記録する手段が存在する。プロセッサコア1上のOS21には、OSの初期化処理を行うOS初期化手段33と、障害発生時にOS21に対応した障害処理を他プロセッサコア上で行うための障害処理手段34、APの障害を検出する障害検出手段35と、APの動作を切り替えるためのプロセス切替手段36が存在し、他プロセッサコアで動作するOSに対応する障害処理手段の登録処理および他プロセッサコアからの指示により障害処理手段を起動する障害管理手段101が存在する。さらに、他プロセッサコア上のOSに対応する障害処理手段を格納するための登録領域102が存在し、かつ、プロセッサコア上で処理すべきものが何もない(アイドル状態)ことを検出するアイドル状態検出手段103と、プロセッサコア上で処理すべきものが存在する(非アイドル状態)ことを検出する非アイドル状態検出手段104が存在する。
同様な手段は、プロセッサコア2上のOS121、およびプロセッサコア3上のOS24にも存在する。プロセッサコア2上のOS121には、OS初期化手段124、障害処理手段125、障害検出手段126、プロセス切替手段127、障害管理手段128、登録領域129、アイドル状態検出手段130、非アイドル状態検出手段131が存在し、プロセッサコア3上のOS24には、OS初期化手段37、障害処理手段38、障害検出手段39、プロセス切替手段40、障害管理手段111、登録領域112、アイドル状態検出手段113、非アイドル状態検出手段114が存在する。
次に、この実施の形態における情報処理装置のOS初期化時の動作について、図24の矢印および図25のフローチャートを用いて説明する。まず、プロセッサコア1にH/Wリセットが掛かり、OS21が起動されると、OS初期化手段33が動作する。プロセッサコア1のOS初期化手段33は、OS内の様々な機能の初期化を行うと共に、プロセッサコア1を含め、全プロセッサコアに対し、OS21内にある障害処理手段34の登録を依頼する(図24および図25のS501)。この登録依頼処理は、プロセッサコア1、プロセッサコア2、プロセッサコア3内のプロセッサ間通信機能(図1の15、16、17)を用いて行われる。プロセッサコア2は、OS121の起動後、OS21と同様にOS初期化処理手段33が動作した後、障害管理手段128が動作し、他プロセッサコアからの通知を待つ(図25のS502)。
他プロセッサコアからの通知がない場合は、再度通知を待つ(S502のN)。他プロセッサコアから通知があった場合(S502のY)、依頼されたプロセッサコア1から障害処理手段34の内容を受信し、登録領域45内に障害処理手段34”として格納する(図24および図25のS503)。そして再度、他プロセッサからの通知を待つ(S502)。このようにして、プロセッサコア2内の登録領域45には、プロセッサコア1上で動作する各OSに対応した障害処理手段が格納されることになる。
同様にプロセッサコア3でもプロセッサコア1からの通知により、登録領域112に障害処理手段34の内容が格納される。さらに、プロセッサコア1自身もOS初期化処理手段33からの通知により、自身の登録領域102に自身の障害処理手段34の内容が障害処理手段34’として格納される。また、プロセッサコア2上のOS初期化処理手段124、およびプロセッサコア3上のOS初期化処理手段37も、プロセッサコア1のOS初期化処理手段33と同じ動作を行う。
プロセッサコア2上のOS121のOS初期化手段124は、プロセッサコア2を含む、全プロセッサコアに対し、OS121内にある障害処理手段125の登録を依頼し、プロセッサコア3上のOS24のOS初期化手段37は、プロセッサコア3を含む、全プロセッサコアに対し、OS24内にある障害処理手段38の登録を依頼する。それぞれの依頼に対し、各プロセッサコア障害管理手段がそれぞれの登録領域に、障害処理手段の内容を格納する。
これにより、プロセッサコア1の登録領域102には、プロセッサコア1用の障害処理手段34’とプロセッサコア2用の障害処理手段125’とプロセッサコア3用の障害処理手段38’が存在し、プロセッサコア2の登録領域129には、プロセッサコア1用の障害処理手段34”とプロセッサコア2用の障害処理手段125”とプロセッサコア3用の障害処理手段38”が存在し、プロセッサコア3の登録領域112にも各プロセッサコア用の障害処理手段が存在するようになる。
この実施の形態では、プロセッサコア2の障害処理登録手段43が、他プロセッサコアからの通知を待っているように記載しているが、これを割込みベースにしても動作は同じである。この場合、プロセッサコア2にて他の処理を行っている最中に、プロセッサ間通信機能(図1の16)にて割込みが発生し、その割込み処理にて障害処理登録手段43が起動し、登録処理が実施された後、プロセッサコア2は、割込みが発生した時に行っていた処理に戻る。以上がこの実施の形態における情報処理装置のOS初期化時の動作である。
次に、この実施の形態における情報処理装置の定常状態の動作について、図26内の矢印および図27のフローチャートを用いて説明する。この実施の形態では、プロセッサコア2上での動作を例に説明するが、プロセッサコア1およびプロセッサコア3でも同様な動作になる。まず、プロセッサコア2上でAPが動作している(図27のS511)状態で、APの動作が終了(または、I/O要求等の待ちになる)すると(図27のS512)、制御がOS121のプロセス切替手段127に移り、プロセス切替手段127は、次に動作可能なAPが存在するかチェックする(図27のS513)。
動作可能なAPが存在しない場合、アイドル状態になるため、プロセス切替手段127はアイドル状態検出手段130を呼び出す(図26、図27のS513のN)。アイドル状態検出手段130は、メモリ5上の待ちキュー135に自プロセッサコア(プロセッサコア2)が既に登録済になっているかチェックを行う(図27のS514)。待ちキュー135に自プロセッサコアが登録されていない場合(S514のN)、アイドル状態検出手段130は、プロセッサコア2が他の処理をすることが可能なことを他のプロセッサコアに知らせるために、待ちキュー135に、待ち136を繋げる(図26、図27のS515)。
待ちキュー135には、それがプロセッサコア2であることを意味するための情報(プロセッサコア番号やOS番号等)を格納しておく。これにより、他プロセッサコアからこのプロセッサコアに対し、障害対応処理を要求することを受け付けられるようになる。そして、アイドル検出手段130の処理は終了し、プロセス切替手段127はアイドル状態に遷移する(図27のS516)。その後、再度S513に戻り、動作可能なAPが存在するかチェックする。S514にて待ちキュー135に自プロセッサコアが既に登録されている場合(S514Y)は、アイドル状態検出手段130は処理を終了し、プロセス切替手段127はアイドル状態に遷移する(図27のS516)。
S513にて、動作可能なAPが存在する場合、APを動作させることにより、非アイドル状態になるため、プロセス切替手段127は非アイドル状態検出手段131を呼び出す(図26、図27のS513のY)。非アイドル状態検出手段131は、メモリ5上の待ちキュー135に自プロセッサコア(プロセッサコア2)が既に登録済みになっているかチェックを行う(図27のS517)。待ちキュー135に自プロセッサコアが登録されている場合(図27のS517のY)、自プロセッサコアがアイドル状態から外れたので、待ちキュー135から、待ち136を削除する(図26、図27のS518)。これにより、他プロセッサコアからこのプロセッサコアに対し、障害対応処理を要求されることはなくなる。そして、非アイドル状態検出手段131の処理は終了し、該当するAPの動作が開始される(図27のS511)。S517にて待ちキュー135に自プロセッサコアが登録されていない場合は、直ぐに非アイドル状態検出手段131の処理を終了し、該当するAPの動作が開始される(図27のS511)。
以上が、この実施の形態に置ける情報処理装置の定常状態の動作である。なお、この実施の形態では、アイドル状態および非アイドル状態の検出をプロセス切替手段127からの呼び出しを契機として説明しているが、アイドル状態の検出については、アイドル検出手段130を、APの動作と同様に1つの実行単位(プロセス)とし、一番低い優先度で動作させることにより、OS121上で動作するするAPが何もなくなったとき、アイドル検出手段130プロセスが動作し、待ちキュー135に対するプロセッサコア2の登録を行うことでも同様な機能を実現可能である。さらに、非アイドル状態の検出については、外部からの割込みを受信する割込みハンドラから非アイドル状態検出手段131を実行させることでも、同様な機能を実現可能である。
次に、この実施の形態における情報処理装置の障害発生時の動作について、図28内の矢印および図29のフローチャートを用いて説明する。この実施の形態では、プロセッサコア2およびプロセッサコア3がアイドル状態の時に、プロセッサコア1上で動作するAP22に障害が発生した場合の例で説明する。
まず、AP22の動作中に障害が発生すると、プロセッサコア1上で例外が発生し、OS21内の障害検出手段35が、その例外を検出する(図28、図29のS520)。そして障害検出手段35は、最低限のレジスタ情報をメモリ5内に保存した後、障害が発生したAP22を停止させるためにプロセス切替手段36に通知する(図28、図29のS521)。障害検出手段35により通知されたプロセス切替手段36は、障害が発生したAP22の実行を停止する(図28、図29のS522)。これは、AP22が動作していたプロセスをスケジューリング対象から外し、同プロセスの状態を停止状態に移行することを意味し、プロセスそのものを削除することはこの時点ではしない。プロセスそのものを削除しないことにより、AP22が使用していたメモリ5内のAP情報領域29がそのまま残存し、これを他のプロセッサコアから参照することが可能となる。
次に障害検出手段35は、待ちキュー135に繋がれているプロセッサコアが存在するかチェックする(図28、図29のS523)。待ちキュー135に他プロセッサコアの待ちが繋がれている場合(S523のY)、障害処理を他プロセッサに依頼することができるので、障害検出手段35は、待ちキュー135を参照し、そこに繋がれている待ち、この実施の形態ではプロセッサコア2の待ち136の情報から、障害の処理が対応可能なプロセッサコア2を見つけ出すとともに、待ち136を待ちキュー135から削除する(図27のS524)。
次に障害検出手段35は、プロセッサ間通信機能(図1の15)を利用して、障害発生を障害処理するプロセッサコア2に通知する(図28、図29のS525)。この時、障害が発生したAP22の情報や保存したレジスタ情報などが付加される。そして障害処理手段35は、プロセス切替手段36を介して、他APへの切替を行う。プロセス切替手段36は、OS21内のプロセス情報を参照し、動作可能なAP23を抽出し、AP23を動作可能(RUN状態)にする(図28、図29のS526)。これにより以降、プロセッサコア1上ではAP23が動作する(図29のS527)。
プロセッサコア2では、待ちキュー135に自身の待ち136を繋げている状態であり、アイドル状態となっている。この時、障害管理手段128が動作しており、他プロセッサからの通知があるかチェックしている(図29のS528)。S528にて、プロセッサコア1からプロセッサコア2に割込みが通知されると、プロセッサコア2のプロセッサ間通信機能(図1の16)が、その割込みを検出し、障害管理手段128に通知する。障害管理手段128では、S528にてその通知をチェックしており、通知があれば(S528のY)、通知元プロセッサコアに対応する障害処理手段を登録領域129内から見つけ出し、その手段を起動する(図28、図29のS529)。
この実施の形態では、プロセッサコア1から通知されたので、登録領域129内の障害処理手段34”が起動される。この障害処理手段34”は、プロセッサコア1内のOS21用のものであり、OS21にあわせた障害処理が可能となる。障害処理手段34”は、まず、通知にて付加されたAP22の情報を元に、メモリ5のOS21用領域27内のAP情報領域29を探し、その中にある情報からエラーの発生種類(ページフォルト、0割り算等)や、発生箇所(OS内/AP内)、エラー発生時のレジスタ情報等を収集する(図28、図29のS530)。
次に障害処理手段34”は、収集されたAP22の障害情報を元にエラー原因の特定および、それに伴いプロセッサコア1の動作を継続動作させるか、それとも、そのエラーが継続できない障害でプロセッサコア1をシステムダウン(停止または再起動)にすべきかを判断する(図29のS531)。システムダウンするケースとしては、障害発生の箇所がAP22が呼び出したOS21内で発生したエラーでOS復帰ができないものや、CPU内部エラーが発生した場合などが挙げられる。そして障害処理手段34”は、特定されたエラー原因や継続動作またはシステムダウン動作遷移情報、および収集された障害情報を、コンソール6に表示し、使用者に障害が発生したことを通知するとともに、バックアップメモリ8内のエラー情報格納域42に、これら情報を記録し、障害発生後も使用者が障害発生情報を参照できるようにする(図28、図29のS532)。
次に障害処理手段34”は、プロセッサコア1の対処としてシステムダウンすべきか否か判断する(図29のS533)。システムダウンすべき場合(S533のY)は、プロセッサコア1を停止状態にさせた後、メモリ5内のOS21用領域27の内容をディスクに書き込む(メモリダンプ)などした後、プロセッサコア1のリブート(H/Wリセット)を行う(図29のS534)。これにより、プロセッサコア1は初期状態に戻り、再度OS21がブートされる。
S533にてシステムダウンしない場合(S533のN)、障害処理手段34”は、特定されたエラー原因を元に、各エラーに対応した処理をおこなう(図29のS535)。これは、例えば0割り算によるエラーであれば、次にAP22が実行される場合は、0割り算のシグナルハンドラ(エラー発生に伴い呼び出される関数)を呼び出すようにAP情報領域29内のAP22のスタックを操作したり、セグメンテーションフォルトによるエラーであれば、コアファイル41を作成する準備を行う。そして、障害処理手段34”は、コアファイル41を作成するようなエラーである場合に、コアファイル作成処理を行う(図28、図29のS536)。 この時、障害処理手段34”は、AP情報領域29の内容をHDD7内のコアファイル41に書き出す。
コアファイル41の作成が終了すると、障害処理手段34”は、AP22を再開させるために停止処理解除要求をプロセッサコア1に通知する(図28、図29のS537)。これは、プロセッサ間通信機能(図1の16)を利用して、プロセッサコア1に割込みを通知することで行われる。この時、AP22を継続動作させるか、削除すべきかの情報が付加される。この後、障害処理手段34”の処理は終了し、障害管理手段128に戻る。
障害管理手段128は、定常状態の処理に戻る(図29、S518)。定常状態の処理(図27)では、アイドル状態時(図27のS516)から、障害管理手段128が呼び出されているので、再度動作可能なAPがいるかチェック(図27のS513)し、動作可能なAPがいなければ(図27のS513のN)、再度待ちキュー135に待ち136を繋げ(図27のS515)、アイドル状態に遷移(図27のS516)し、動作可能なAPがいれば(図27のS513のY)、待ちキューに登録済みか否かのチェック(図27のS517、図29のS524にて待ちキューへの登録は削除されているので、S517のNを実行)し、そのAPに制御を移す(図27のS511)。
S527にてプロセッサコア1上でAP23が動作している間に、プロセッサコア2での障害情報の収集(図29のS530)および記録(図29のS536)が終了し、S537にてプロセッサコア2からプロセッサコア1に対しAP22の停止処理解除要求が実施されると、プロセッサコア1のプロセッサ間通信機能(図1の15)がその割込みを受信し、OS21内のプロセス切替手段36を起動する(図29のS539)。プロセス切替手段36は、通知にて付加されたAP22を継続動作させるか、削除すべきかの情報を元に、AP22の再開または終了を処理する(図28、図29のS540)。継続動作させる場合は、AP22が動作していたプロセスをスケジューリング対象に戻し、終了させる場合は、AP22が動作していたプロセスを削除する処理を行う。
S523にて待ちキュー135に他のプロセッサコアの待ちがつながれていない場合(S523のN)、他プロセッサでAP22の障害処理を実施することができないため、プロセッサコア1自身で障害処理が行うため、障害検出手段35は、プロセッサコア1自身の障害管理手段101を呼び出す。障害管理手段101は、登録領域102からプロセッサコア1自身の障害処理手段34’を見つけ出し、起動する(図29のS541)。障害処理手段34’は、まず、通知にて付加されたAP22の情報を元に、メモリ5のOS21用領域27内のAP情報領域29を探し、その中にある情報からエラーの発生種類(ページフォルト、0割り算等)や、発生箇所(OS内/AP内)、エラー発生時のレジスタ情報等を収集する(図29のS542)。
次に障害処理手段34’は、収集されたAP22の障害情報を元にエラー原因の特定および、それに伴いプロセッサコア1の動作を継続動作させるか、それとも、そのエラーが継続できない障害でプロセッサコア1をシステムダウン(停止または再起動)にすべきかを判断する(図29のS543)。そして障害処理手段34’は、特定されたエラー原因や継続動作またはシステムダウン動作遷移情報、および収集された障害情報を、コンソール6に表示し、使用者に障害が発生したことを通知するとともに、バックアップメモリ8内のエラー情報格納域42に、これら情報を記録し、障害発生後も使用者が障害発生情報を参照できるようにする(図29のS544)。
次に障害処理手段34’は、プロセッサコア1の対処としてシステムダウンすべきか否か判断する(図29のS545)。システムダウンすべき場合(S545のY)は、メモリ5内のOS21用領域27の内容をディスクに書き込む(メモリダンプ)などした後、リブート(H/Wリセット)を行う(図29のS546)。これにより、プロセッサコア1は初期状態に戻り、再度OS21がブートされる。
S545にてシステムダウンしない場合(S545のN)、障害処理手段34’は、特定されたエラー原因を元に、各エラーに対応した処理をおこなう(図29のS547)。これは、例えば0割り算によるエラーであれば、次にAP22が実行される場合は、0割り算のシグナルハンドラ(エラー発生に伴い呼び出される関数)を呼び出すようにAP情報領域29内のAP22のスタックを操作したり、セグメンテーションフォルトによるエラーであれば、コアファイル41を作成する準備を行う。そして、障害処理手段34’は、コアファイル41を作成するようなエラーである場合に、コアファイル作成処理を行う(図29のS548)。この時、障害処理手段34’は、AP情報領域29の内容をHDD7内のコアファイル41に書き出す。
コアファイル41の作成が終了すると、障害処理手段34’は、AP22の停止解除を行うためにプロセス切替手段36を起動する(図29のS549)。プロセス切替手段36は、AP22を継続動作させるか、削除すべきかの情報を元に、AP22の再開または終了を処理する(図29のS540)。継続動作させる場合は、AP22が動作していたプロセスをスケジューリング対象に戻し、終了させる場合は、AP22が動作していたプロセスを削除する処理を行う。以上がこの実施の形態における情報処理装置の障害発生時の動作である。
この実施の形態5による情報処理装置の障害処理システムでは、各プロセッサコアに障害処理用の手段を設け、メモリ上に待ちキューを備え、各プロセッサコアが、自身ですべき処理が何もないときに、待ちキューに自身の情報を登録し、何らかの処理が発生した場合に待ちキューから自身の情報を削除する。障害が発生したプロセッサは、待ちキューにつながれているプロセッサコアの情報を元に、障害処理が可能なプロセッサコアに障害が発生したことを通知し、通知されたプロセッサコアは、自身の持っている障害処理用の手段を用いて、障害発生プロセッサで動作していたAPの障害情報の収集/記録、および障害に対する対処を行うようにしたので、障害処理用のプロセッサコアを持たない場合でも、障害が発生したプロセッサ上で次に動作すべきAPを迅速に動作させることができる、情報処理装置の障害処理システムを得ることができる。
なお、この実施の形態では、各プロセッサコア内の登録領域にプロセッサコア上で動作するOS自身の障害処理手段を登録するようにしたが、これを登録せずに、障害発生時での待ちキューに他プロセッサコアの待ちがない場合には直接自身の障害処理手段を呼び出すようにしてもこの実施の形態と同様な情報処理装置の障害処理システムを得ることができる。
この発明は、複数のプロセッサコアを搭載し、それぞれのプロセッサコアがメモリを共有し、多数のアプリケーションソフトウェア処理を並列に同時実行させることができるようなハードウェア構成における情報処置装置のアプリケーションソフトウェアの障害処理システムに利用可能である。
この発明の実施の形態1における情報処理装置のハードウェア構成図である。 実施の形態1における情報処理装置のソフトウェア構成図である。 実施の形態1における情報処理装置のOS初期化時の動作の説明図である。 実施の形態1における情報処理装置のOS初期化時の動作フローチャートである。 実施の形態1における情報処理装置の障害発生時の動作の説明図である。 実施の形態1における情報処理装置の障害発生時の動作フローチャートである。 実施の形態2におけるソフトウェアの構成を示す図である。 実施の形態2における情報処理装置のOS初期化時の動作説明図である。 実施の形態2における情報処理装置のOS初期化時の動作フローチャートである。 実施の形態2における情報処理装置の障害発生時の動作フローチャートである。 実施の形態2におけるプロセッサコアでAP22の動作状況説明図である。 実施の形態2におけるプロセッサコアでAP22の障害発生動作状況説明図である。 実施の形態2におけるプロセッサコアでAP22の障害処理終了状況説明図である。 実施の形態3におけるソフトウェアの構成を示す図である。 実施の形態3における収集領域情報内容の説明図である。 実施の形態3における情報処理装置の障害発生時の動作の説明図である。 実施の形態3における情報処理装置の障害発生時の動作フローチャートである。 実施の形態4における情報処理装置のソフトウェアの構成を示す図である。 実施の形態4における情報処理装置の障害発生時の動作説明図である。 実施の形態4における情報処理装置の障害発生時の動作フローチャートである。 実施の形態4における情報処理装置の共有メモリ領域が書込み禁止設定時の動作説明図である。 実施の形態4における情報処理装置の共有メモリ領域が書込み禁止設定時の動作フローチャートである。 実施の形態5における情報処理装置のソフトウェアの構成を示す図である。 実施の形態5における情報処理装置のOS初期化時の動作説明図である。 実施の形態5における情報処理装置のOS初期化時の動作フローチャートである。 実施の形態5における情報処理装置の定常状態の動作説明図である。 実施の形態5における情報処理装置の定常状態の動作フローチャートである。 実施の形態5における情報処理装置の定常状態の動作説明図である。 実施の形態5における情報処理装置の障害発生時の動作フローチャートである。
符号の説明
1、2、3;プロセッサコア、4;バス、5;メモリ、6;コンソール、7;ハードディスク装置(HDD)、8;バックアップメモリ、9、10、11;演算処理部、12、13、14;キャッシュ、15、16、17;プロセッサ間通信機能、18、19、20;MMU、21、24、121:OS、22、23、25、26、122,123;AP、27;OS21用領域、28;OS24用領域、29、30、31、32、133、134;AP情報領域、33、37、124;OS初期化手段、34、38、125;障害処理手段、35、39、126;障害検出手段、36、40、127;プロセス切替手段、41;コアファイル、42;エラー情報格納域、43;障害処理登録手段、44、111、128;障害管理手段、45、102、112、129;登録領域、49;プロセッサコア2用領域、50;AP22アドレス空間、51;AP23アドレス空間、52、53、56、57、59;ページテーブル、54;AP25アドレス空間、55;AP26アドレス空間、58;テキスト/データ領域、60;障害処理手段アドレス、70、71;OS内部情報、72;収集領域情報、80、81;読み書き管理手段、82、83;共有メモリ領域、84;空きメモリ領域、101;障害管理手段、103、113、130;アイドル状態検出手段、104、114、131;非アイドル状態検出手段、132;OS121用領域、135;待ちキュー、136,137;待ち。

Claims (7)

  1. メモリを共有し、夫々オペレーティングシステム(以下OSと称す)が動作する複数のプロセッサコアを備え、上記各OS上で複数のアプリケーションソフトウェア(以下APと称す)が動作する情報処理装置の障害処理システムであって、
    上記複数のプロセッサコアの何れか1つを、
    他プロセッサコア上のOSに対する障害処理手段を登録する登録手段と、
    他プロセッサコア上のOSに対する障害処理手段を登録する登録領域と、
    他プロセッサコアからの通知により、そのプロセッサコアに対応した障害処理手段を起動し実行する管理手段を備え、他プロセッサコアの各OS障害を専用に処理する障害処理専用プロセッサコアとし、
    他プロセッサコア上のOSは、
    障害処理専用プロセッサコア上で自OSの障害処理を実施するため、OS初期化時に、自OSの障害処理を実施する手段を障害処理専用プロセッサコアに登録依頼する初期化手段と、
    自APに障害が発生した際、障害発生APを停止し、障害処理専用プロセッサコアに障害発生APを通知するとともに、他APに動作を切替え、障害処理専用プロセッサコアからの障害処理完了通知後、障害発生APを再開または削除する検出手段を備えることを特徴とする情報処理装置の障害処理システム。
  2. 各プロセッサコアは、メモリを分割し、分割された各メモリを異なるアドレス空間として管理するMMU(Memory Management Unit)を備え、
    障害処理専用プロセッサコアは、
    登録手段は、障害処理手段のアドレスを登録する手段であり、
    登録領域は、障害処理手段のアドレスを登録する領域であり、
    管理手段は、他プロセッサからの通知により、そのプロセッサコア上で動作していたAPのアドレス空間に、該プロセッサコアのMMUを切り替え、通知されたプロセッサコア上で動作していたOS上の障害処理手段のアドレスを元に、障害処理手段を実行する手段であり、
    他プロセッサコア上のOSの
    初期化手段は、障害処理手段のアドレスを登録依頼する手段であり、
    検出手段は、APに障害が発生した時、障害発生APを停止し、障害発生APのアドレス空間情報を付加して障害処理専用プロセッサコアに通知するとともに、他APに動作を切替、障害処理専用プロセッサコアからの障害処理完了通知後、障害発生APを再開または削除する手段であることを特徴とする請求項1記載の情報処理装置の障害処理システム。
  3. 各プロセッサコアのOSは、メモリ上に備える自OS用領域にページテーブル領域を備え、障害処理専用プロセッサコアに通知する障害発生APのアドレス空間情報は、不連続なメモリ領域を1つの連続した仮想アドレス空間として見せることができるページテーブル領域の先頭アドレスが付加されることを特徴とする請求項2記載の情報処理装置の障害処理システム。
  4. 上記メモリは、各プロセッサコア毎に、収集する障害情報のメモリ上の領域と保存先情報を格納する領域を有し、
    障害処理専用プロセッサコアは、他プロセッサコアからの通知により、メモリの情報を元に、メモリ上の領域を保存先に保存する手段、
    他プロセッサコア上のOSの検出手段は、APに障害が発生した際、メモリ上の収集すべき領域の情報と、保存先の情報をメモリの自プロセッサコアの領域に保存してから、障害処理専用プロセッサコアに通知するとともに、他APに動作を切替、障害処理専用プロセッサコアからの障害処理完了通知後、障害発生APを再開または削除する手段であることを特徴とする請求項1記載の情報処理装置の障害処理システム。
  5. 各OSは、
    障害発生時に、各APが同じメモリ領域を操作できる共有メモリ領域に対し、書込みをした際にトラップが発生するように設定する手段、
    AP動作中に共有メモリへの書込みでトラップが発生した際に、空きメモリ領域に、書き込もうとした共有メモリの内容をコピーし、コピーした領域を、動作していたAPのアドレス空間に共有メモリ領域として設定する手段を備えたことを特徴とする請求項1記載の情報処理装置の障害処理システム。
  6. 書込みに対するトラップ発生の設定は、各AP毎に備える、不連続なメモリ領域を1つの連続した仮想アドレス空間として見せることができるページテーブルに対し、書込み禁止の情報を付加することにより、各AP毎に書込みトラップを発生させるか否かを選択できることを特徴とする請求項5記載の情報処理装置の障害処理システム。
  7. メモリを共有し、夫々OSが動作する複数のプロセッサコアを備え、上記各OS上で複数の以下APが動作する情報処理装置の障害処理システムであって、
    各プロセッサコアは自プロセッサコアの処理待ちを管理する待ちキューを備えるとともに、各OSは、
    他プロセッサコア上のOSに対する障害処理手段を登録する手段、
    他プロセッサコア上のOSに対する障害処理手段を登録する領域、
    他プロセッサコアからの通知による、そのプロセッサコアに対応した障害処理手段を起動する手段、
    自OSの障害処理を実施する手段、
    OS初期化時に、自OSの障害処理を実施する手段を他プロセッサコアに登録依頼する手段、
    動作すべきAPが存在しない場合に、待ちキューに自プロセッサコアの情報を繋げる手段、
    動作すべきAPが存在した場合に、待ちキューから自プロセッサコアの待ちを削除する手段、
    APに障害が発生した際、障害APを停止し、待ちキューからプロセッサコア情報を取得し、取得したプロセッサコアに通知するとともに、他APに動作を切替、通知したプロセッサコアからの障害処理完了通知後、障害発生APを再開または削除する手段を備えることを特徴とする情報処理装置の障害処理システム。
JP2007301999A 2007-11-21 2007-11-21 情報処理装置の障害処理システム Expired - Fee Related JP4926009B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007301999A JP4926009B2 (ja) 2007-11-21 2007-11-21 情報処理装置の障害処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007301999A JP4926009B2 (ja) 2007-11-21 2007-11-21 情報処理装置の障害処理システム

Publications (2)

Publication Number Publication Date
JP2009129101A true JP2009129101A (ja) 2009-06-11
JP4926009B2 JP4926009B2 (ja) 2012-05-09

Family

ID=40819972

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007301999A Expired - Fee Related JP4926009B2 (ja) 2007-11-21 2007-11-21 情報処理装置の障害処理システム

Country Status (1)

Country Link
JP (1) JP4926009B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011243012A (ja) * 2010-05-19 2011-12-01 Hitachi Ltd 仮想計算機システムのメモリダンプ取得方法
WO2012143978A1 (ja) 2011-04-22 2012-10-26 富士通株式会社 情報処理装置及び情報処理装置の処理方法
EP2787444A2 (en) 2013-04-01 2014-10-08 Nec Corporation Central processing unit, information processing apparatus, and intra-virtual-core register value acquisition method
EP2869189A1 (en) 2013-11-01 2015-05-06 Fujitsu Limited Boot up of a multiprocessor computer
JP2016038829A (ja) * 2014-08-11 2016-03-22 大日本印刷株式会社 電子情報記録媒体、プロセッサモジュールの動作制御方法、及びプロセッサモジュールの動作制御プログラム
JP6138308B1 (ja) * 2016-03-22 2017-05-31 三菱電機株式会社 車載制御装置及び車載制御装置用rom
WO2023238555A1 (ja) * 2022-06-10 2023-12-14 株式会社オートネットワーク技術研究所 車載装置、情報処理方法および情報処理プログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04107649A (ja) * 1990-08-28 1992-04-09 Fujitsu Ltd ダンプ処理方式
JPH0778094A (ja) * 1993-09-07 1995-03-20 Fujitsu Ltd 計算機システムのアプリケーションプログラム障害発生時の制御方法
JPH07210429A (ja) * 1994-01-11 1995-08-11 Hitachi Ltd ダンプ取得方法および制御装置および情報処理システム
JPH0830565A (ja) * 1994-07-18 1996-02-02 Fuji Xerox Co Ltd マルチプロセッサ装置およびその障害情報収集方法
JP2005122334A (ja) * 2003-10-15 2005-05-12 Hitachi Ltd メモリダンプ方法、メモリダンプ用プログラム及び仮想計算機システム
JP2008123439A (ja) * 2006-11-15 2008-05-29 Denso Corp オペレーティング・システム、プログラム及び移動体操縦支援装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04107649A (ja) * 1990-08-28 1992-04-09 Fujitsu Ltd ダンプ処理方式
JPH0778094A (ja) * 1993-09-07 1995-03-20 Fujitsu Ltd 計算機システムのアプリケーションプログラム障害発生時の制御方法
JPH07210429A (ja) * 1994-01-11 1995-08-11 Hitachi Ltd ダンプ取得方法および制御装置および情報処理システム
JPH0830565A (ja) * 1994-07-18 1996-02-02 Fuji Xerox Co Ltd マルチプロセッサ装置およびその障害情報収集方法
JP2005122334A (ja) * 2003-10-15 2005-05-12 Hitachi Ltd メモリダンプ方法、メモリダンプ用プログラム及び仮想計算機システム
JP2008123439A (ja) * 2006-11-15 2008-05-29 Denso Corp オペレーティング・システム、プログラム及び移動体操縦支援装置

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011243012A (ja) * 2010-05-19 2011-12-01 Hitachi Ltd 仮想計算機システムのメモリダンプ取得方法
WO2012143978A1 (ja) 2011-04-22 2012-10-26 富士通株式会社 情報処理装置及び情報処理装置の処理方法
US9448871B2 (en) 2011-04-22 2016-09-20 Fujitsu Limited Information processing device and method for selecting processor for memory dump processing
EP2787444A2 (en) 2013-04-01 2014-10-08 Nec Corporation Central processing unit, information processing apparatus, and intra-virtual-core register value acquisition method
US9690603B2 (en) 2013-04-01 2017-06-27 Nec Corporation Central processing unit, information processing apparatus, and intra-virtual-core register value acquisition method
EP2869189A1 (en) 2013-11-01 2015-05-06 Fujitsu Limited Boot up of a multiprocessor computer
US9747114B2 (en) 2013-11-01 2017-08-29 Fujitsu Limited Information processing apparatus, boot up method, and computer-readable storage medium storing boot up program
JP2016038829A (ja) * 2014-08-11 2016-03-22 大日本印刷株式会社 電子情報記録媒体、プロセッサモジュールの動作制御方法、及びプロセッサモジュールの動作制御プログラム
JP6138308B1 (ja) * 2016-03-22 2017-05-31 三菱電機株式会社 車載制御装置及び車載制御装置用rom
JP2017173947A (ja) * 2016-03-22 2017-09-28 三菱電機株式会社 車載制御装置及び車載制御装置用rom
WO2023238555A1 (ja) * 2022-06-10 2023-12-14 株式会社オートネットワーク技術研究所 車載装置、情報処理方法および情報処理プログラム

Also Published As

Publication number Publication date
JP4926009B2 (ja) 2012-05-09

Similar Documents

Publication Publication Date Title
US10859289B2 (en) Generating and using checkpoints in a virtual computer system
JP4926009B2 (ja) 情報処理装置の障害処理システム
JP5724477B2 (ja) 移行プログラム、情報処理装置、移行方法、及び情報処理システム
US7752495B2 (en) System and method for predictive processor failure recovery
US8612681B2 (en) Storage system, storage apparatus and method of controlling storage system
US20030074601A1 (en) Method of correcting a machine check error
US7895477B2 (en) Resilience to memory errors with firmware assistance
JP2004342099A (ja) アドレスに基づいた処理制約のブロッキング
JP4783392B2 (ja) 情報処理装置および障害回復方法
TW201502781A (zh) 解決記憶體存取錯誤時重播記憶體交易
JP2009211517A (ja) 仮想計算機冗長化システム
US20080098196A1 (en) Information processing apparatus and information processing method
JP2011170477A (ja) ハイパーバイザ及びサーバ装置
GB2520503A (en) Virtual machine backup
JP6165964B2 (ja) 計算機
JP5612681B2 (ja) 仮想計算機システム、領域管理方法、及びプログラム
US7953914B2 (en) Clearing interrupts raised while performing operating system critical tasks
JP2009205362A (ja) コンピュータ装置、コンピュータ装置の運用継続方法及びプログラム
CN113127263B (zh) 一种内核崩溃恢复方法、装置、设备及存储介质
US8195981B2 (en) Memory metadata used to handle memory errors without process termination
US20220318053A1 (en) Method of supporting persistence and computing device
WO2012137239A1 (ja) 計算機システム
JPWO2014196083A1 (ja) 計算機システム及び制御方法
JP5163061B2 (ja) マルチプロセッサシステム、マイクロプロセッサ、及びマイクロプロセッサの障害処理方法
JP2007264976A (ja) コンピュータシステム、データ退避方法、及び、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100913

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111209

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: 20120110

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120207

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4926009

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees