(57)【要約】【課題】ある処理手段に異常が発生したときに、必要な代替処理を他の処理手段が速やかに行うことが可能な情報処理装置、及び情報処理方法を提供すること。【解決手段】ソフトウェアを実行する複数の処理手段と、前記複数の処理手段に異常が発生したか否かを判定する異常判定手段と、を備え、前記異常判定手段によりいずれかの処理手段に異常が発生したと判定されたとき、前記異常判定手段により異常が発生したと判定されていない処理手段が、前記異常が発生したと判定された処理手段が実行していたソフトウェアのうち優先度が基準以上に設定されたソフトウェアを代替処理することを特徴とする、情報処理装置。【選択図】図１
2013225208.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアを実行する複数の処理手段と、
前記複数の処理手段に異常が発生したか否かを判定する異常判定手段と、を備え、
前記異常判定手段によりいずれかの処理手段に異常が発生したと判定されたとき、前記異常判定手段により異常が発生したと判定されていない処理手段が、前記異常が発生したと判定された処理手段が実行していたソフトウェアのうち優先度が基準以上に設定されたソフトウェアを代替処理することを特徴とする、
情報処理装置。
【請求項２】
請求項１記載の情報処理装置であって、
前記複数の処理手段によって起動時に読み込まれる情報であって、前記異常判定手段により異常が発生したと判定された処理手段を特定可能な異常発生情報と、前記複数の処理手段のそれぞれが使用するメモリ領域を規定したメモリ保護情報と、を保持する不揮発性記憶手段を備え、
前記異常判定手段によりいずれかの処理手段に異常が発生したと判定されたとき、該判定結果に基づき前記異常発生情報が書き換えられると共に、前記異常が発生したと判定された処理手段が実行していたソフトウェアのうち優先度が基準以上のソフトウェアに関するメモリ領域が、前記代替処理を行う処理手段に割り当てられるように、前記メモリ保護情報が書き換えられることを特徴とする、
情報処理装置。
【請求項３】
請求項２記載の情報処理装置であって、
前記異常判定手段は、いずれかの処理手段に異常が発生したと判定したとき、異常が発生していない処理手段に、他の処理手段に異常が発生したことを通知し、
前記異常発生情報及び前記メモリ保護情報の書き換えは、前記異常判定手段から通知を受けた処理手段が行うことを特徴とする、
情報処理装置。
【請求項４】
請求項２記載の情報処理装置であって、
前記異常判定手段は、いずれかの処理手段に異常が発生したと判定したとき、前記異常発生情報及び前記メモリ保護情報の書き換えを行うことを特徴とする、
情報処理装置。
【請求項５】
請求項２ないし４のいずれか１項記載の情報処理装置であって、
前記異常判定手段によりいずれかの処理手段に異常が発生したと判定されたとき、前記異常発生情報及び前記メモリ保護情報の書き換えが行われた後、該情報処理装置の再起動が行われることを特徴とする、
情報処理装置。
【請求項６】
請求項１ないし５のいずれか１項記載の情報処理装置であって、
前記優先度が基準以上に設定されたソフトウェアは、前記複数の処理手段により共用される特定のソフトウェアを含む、
情報処理装置。
【請求項７】
ソフトウェアを実行する複数の処理手段を備える情報処理装置が有する異常判定手段が、前記複数の処理手段に異常が発生したか否かを判定し、
前記異常判定手段によりいずれかの処理手段に異常が発生したと判定されたとき、前記異常判定手段により異常が発生したと判定されていない処理手段が、前記異常が発生したと判定された処理手段が実行していたソフトウェアのうち優先度が基準以上に設定されたソフトウェアを代替処理することを特徴とする、
情報処理方法。
【請求項８】
ソフトウェアを実行する複数の処理手段を備える情報処理装置に、
前記複数の処理手段に異常が発生したか否かを判定させ、
いずれかの処理手段に異常が発生したと判定されたとき、異常が発生したと判定されていない処理手段に、前記異常が発生したと判定された処理手段が実行していたソフトウェアのうち優先度が基準以上に設定されたソフトウェアを代替処理させることを特徴とする、
コンピュータ読み込み可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の処理手段を備える情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、複数の処理手段を備える情報処理装置が知られている。例えば、一パッケージ内に複数のプロセッサコア（ＣＰＵコア）を封入し、各プロセッサコアが並行・独立して処理を行うことが可能なマルチコア・プロセッサ、プログラムメモリやメインメモリをプロセッサ毎に備えたマルチプロセッサ等が知られている。
【０００３】
一方、例えば車両等の移動体、プラント、工作機器、各種電子装置等の制御装置として用いられる情報処理装置では、処理結果の正確さが要求されるため、ソフトウェアが正常に動作しているかどうかを自ら検証する処理が行われることがある。
【０００４】
これらに関連し、担当すべき制御がそれぞれに割り当てられた複数のプロセッサを有するマルチプロセッサシステムについての発明が開示されている（例えば、特許文献１参照）。このマルチプロセッサシステムは、複数のプロセッサのうち特定のプロセッサで発生した異常を検出する異常検出手段と、異常検出手段の検出結果に基づいて、複数のプロセッサのうち特定のプロセッサ以外の他のプロセッサのいずれかに、特定のプロセッサに割り当てられた特定制御を代替させる指令手段とを備える。
【０００５】
特許文献１に記載のマルチプロセッサシステムでは、監視プロセッサに内蔵のコアが、コア間通信によって他のコアの異常を検出する。より具体的には、監視プロセッサが、他のコアと通信確認を定期的に行うことによって、コア及び当該コアによって処理されるプログラムが正常に動作しているか否かを監視する。
【０００６】
また、特許文献１に記載のマルチプロセッサシステムでは、最優先制御である車両制御が割り当てられたコア１に異常が発生すると、その異常を検出した監視プロセッサは、３つのコア１、２、３で動作している情報制御用ＯＳをそのうちの２つのコア２、３で動作させるように、レジストリや設定ファイルの書き換えを行って情報制御用ＯＳのコンフィギュレーションを変更させる。そして、監視プロセッサは、異常が検出されたコアによって処理されていた車両制御用アプリの処理をコア１によって継続させるため、コア１のＯＳを情報制御用ＯＳから車両制御用ＯＳに入れ替える。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−３０５３１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記従来のマルチプロセッサシステムでは、異常が発生したコアが行っていた処理の全てを他のコアに代替処理させるため、ＯＳの入れ替え等、切り替えのための処理負荷が大きくなってしまう。また、異常が発生したコアが行っていた処理に優先度が低いものが含まれていた場合に、これを代替処理するため、処理負荷が増大し、本来必要な優先度の高い処理が遅延するおそれがある。これらの結果、異常発生時に処理の効率性が低下する場合がある。
【０００９】
本発明は、一側面によれば、ある処理手段に異常が発生したときに、必要な代替処理を他の処理手段が速やかに行うことが可能な情報処理装置、及び情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するための本発明の一態様は、
ソフトウェアを実行する複数の処理手段と、
前記複数の処理手段に異常が発生したか否かを判定する異常判定手段と、を備え、
前記異常判定手段によりいずれかの処理手段に異常が発生したと判定されたとき、前記異常判定手段により異常が発生したと判定されていない処理手段が、前記異常が発生したと判定された処理手段が実行していたソフトウェアのうち優先度が基準以上に設定されたソフトウェアを代替処理することを特徴とする、
情報処理装置である。
【００１１】
この本発明の一態様によれば、異常判定手段によりいずれかの処理手段に異常が発生したと判定されたとき、異常判定手段により異常が発生したと判定されていない処理手段が、前記異常が発生したと判定された処理手段が実行していたソフトウェアのうち優先度が基準以上に設定されたソフトウェアを代替処理するため、ある処理手段に異常が発生したときに、必要な代替処理を他の処理手段が速やかに行うことができる。
【００１２】
本発明の一態様において、
前記複数の処理手段によって起動時に読み込まれる情報であって、前記異常判定手段により異常が発生したと判定された処理手段を特定可能な異常発生情報と、前記複数の処理手段のそれぞれが使用するメモリ領域を規定したメモリ保護情報と、を保持する不揮発性記憶手段を備え、
前記異常判定手段によりいずれかの処理手段に異常が発生したと判定されたとき、該判定結果に基づき前記異常発生情報が書き換えられると共に、前記異常が発生したと判定された処理手段が実行していたソフトウェアのうち優先度が基準以上のソフトウェアに関するメモリ領域が、前記代替処理を行う処理手段に割り当てられるように、前記メモリ保護情報が書き換えられることを特徴とするものとしてもよい。
【００１３】
この場合、
前記異常判定手段は、いずれかの処理手段に異常が発生したと判定したとき、異常が発生していない処理手段に、他の処理手段に異常が発生したことを通知し、
前記異常発生情報及び前記メモリ保護情報の書き換えは、前記異常判定手段から通知を受けた処理手段が行うことを特徴とするものとしてもよい。
【００１４】
或いは、
前記異常判定手段は、いずれかの処理手段に異常が発生したと判定したとき、前記異常発生情報及び前記メモリ保護情報の書き換えを行うことを特徴とするものとしてもよい。
【００１５】
また、本発明の一態様において、
前記異常判定手段によりいずれかの処理手段に異常が発生したと判定されたとき、前記異常発生情報及び前記メモリ保護情報の書き換えが行われた後、該情報処理装置の再起動が行われることを特徴とするものとしてもよい。
【００１６】
また、本発明の一態様において、
前記優先度が基準以上に設定されたソフトウェアは、前記複数の処理手段により共用される特定のソフトウェアを含むものとしてもよい。
【００１７】
情報処理装置。
【００１８】
本発明の他の一態様は、
ソフトウェアを実行する複数の処理手段を備える情報処理装置が有する異常判定手段が、前記複数の処理手段に異常が発生したか否かを判定し、
前記異常判定手段によりいずれかの処理手段に異常が発生したと判定されたとき、前記異常判定手段により異常が発生したと判定されていない処理手段が、前記異常が発生したと判定された処理手段が実行していたソフトウェアのうち優先度が基準以上に設定されたソフトウェアを代替処理することを特徴とする、
情報処理方法である。
【００１９】
この本発明の一態様によれば、異常判定手段によりいずれかの処理手段に異常が発生したと判定されたとき、異常判定手段により異常が発生したと判定されていない処理手段が、前記異常が発生したと判定された処理手段が実行していたソフトウェアのうち優先度が基準以上に設定されたソフトウェアを代替処理するため、ある処理手段に異常が発生したときに、必要な代替処理を他の処理手段が速やかに行うことができる。
【００２０】
また、本発明の他の一態様は、
ソフトウェアを実行する複数の処理手段を備える情報処理装置に、
前記複数の処理手段に異常が発生したか否かを判定させ、
いずれかの処理手段に異常が発生したと判定されたとき、異常が発生したと判定されていない処理手段に、前記異常が発生したと判定された処理手段が実行していたソフトウェアのうち優先度が基準以上に設定されたソフトウェアを代替処理させることを特徴とする、コンピュータ読み込み可能なプログラムである。
【００２１】
この本発明の一態様によれば、いずれかの処理手段に異常が発生したと判定されたとき、異常が発生したと判定されていない処理手段に、異常が発生したと判定された処理手段が実行していたソフトウェアのうち優先度が基準以上に設定されたソフトウェアを代替処理させるため、ある処理手段に異常が発生したときに、必要な代替処理を他の処理手段に速やかに行わせることができる。
【発明の効果】
【００２２】
本発明は、一側面によれば、ある処理手段に異常が発生したときに、必要な代替処理を他の処理手段が速やかに行うことが可能な情報処理装置、情報処理方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施例に係る情報処理装置１のシステム構成例である。
【図２】情報処理装置１が実行する特徴的な処理の流れを示すフローチャートの一例である。
【図３】ＣＰＵ１０＃１に異常が発生した場合に、ＣＰＵ１０＃０によって書き換えられた異常発生情報４４、及びメモリマップテーブル４６の一例である。
【図４】図２に示すフローチャートを実行した結果、各ＣＰＵの動作状態が変化する様子を示すタイミングチャートである。
【図５】情報処理装置１の論理構成をソフトウェア層とハードウェア層のそれぞれについて例示した図である。
【図６】図５に例示した論理構成を有する場合に、不揮発性メモリ４０に格納される初期情報の一例である。
【図７】ＡＤＣ物理デバイス２６を実行しているＣＰＵ１０＃０に異常が発生した場合に、ＣＰＵ１０＃１によって書き換えられた不揮発性メモリ４０上のデータの一例である。
【発明を実施するための形態】
【００２４】
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【００２５】
以下、図面を参照し、本発明の一実施例に係る情報処理装置、情報処理方法、及びプログラムについて説明する。
【００２６】
［構成］
図１は、本発明の一実施例に係る情報処理装置１のシステム構成例である。情報処理装置１は、例えば、マルチコア・プロセッサであり、ＣＰＵ（コア）１０＃０、１０＃１と、メインメモリ２０と、異常発生検出機構３０と、不揮発性メモリ４０と、を備える。ここで、ＣＰＵの個数を２としたのはあくまで一例であり、本発明の適用上、複数の処理手段の一例であるＣＰＵの個数は、２以上の如何なる数であってもよい。
【００２７】
なお、情報処理装置１は、これらの構成要素の他、マイクロコンピュータが一般的に備えるＢＩＯＳ（Basic  Input/Output  System）ＲＯＭやＤＭＡ（Direct  Memory  Access）コントローラ、割り込みコントローラ、周辺Ｉ／Ｏ等を備えてもよい。
【００２８】
ＣＰＵ１０＃０、１０＃１は、例えば、命令フェッチユニット、ＡＬＵ（Arithmetic  Logic  Unit）、ＭＵＬ（乗算器）、ＤＩＶ（除算器）、ＬＳＵ（Load  Store  Unit）その他を含む演算ユニット、内部レジスタやキャッシュメモリ等の内部メモリ、プログラムカウンタ等を有する。
【００２９】
メインメモリ２０は、例えばＲＯＭである。メインメモリ２０に格納されたプログラムを実行する。メインメモリ２０には、原則としてＣＰＵ１０＃０が実行するアプリケーションプログラムＡ（以下、アプリＡと称する）が格納される領域（０ｘ１０００〜０ｘ３ＦＦＦＦ）、原則としてＣＰＵ１０＃１が実行するアプリケーションプログラム（以下、アプリＢと称する）が格納される領域（０ｘ４０００〜０ｘ６ＦＦＦＦ）の他、初期設定格納領域、初期化プログラムの格納領域等が設定されている。
【００３０】
これらの領域設定は、後述するように不揮発性メモリ４０に書き込まれており、情報処理装置１の起動時等に各ＣＰＵがこれを読み込んで内部レジスタに格納し、動作に反映させる。
【００３１】
なお、メインメモリ２０は、不揮発性メモリであってもよいし、プログラムがＲＯＭや不揮発性メモリから展開（ロード）されるＲＡＭ（Random  Access  Memory）であってもよい。
【００３２】
異常発生検出機構３０は、例えば、ＣＰＵ１０＃０、１０＃１と同様のマイクロコンピュータである。異常発生検出機構３０は、例えば、ＣＰＵ１０＃０、１０＃１と通信確認を定期的に行うことによって、ＣＰＵ１０＃０、１０＃１に異常が発生したか否かを判定する。異常発生検出機構３０は、いずれかのＣＰＵに異常が発生したと判定すると、その旨を、異常が発生していないＣＰＵに通知する。異常発生検出機構３０による異常発生検出手法については特段の制約はなく、如何なる手法を用いてもよい。また、異常発生検出機構３０は、ＣＰＵ１０＃０、１０＃１の一機能であっても構わない。
【００３３】
不揮発性メモリ４０は、例えば、ＥＥＰＲＯＭ（Electrically  Erasable  and  Programmable  Read  Only  Memory）、フラッシュメモリ、ＨＤＤ（Hard  Disk  Drive）等である。不揮発性メモリ４０には、ＣＰＵ１０＃０、１０＃１が起動時に参照する情報として、優先度設定テーブル４２と、異常発生情報４４と、メモリマップテーブル４６とが格納される。
【００３４】
優先度設定テーブル４２は、ＣＰＵ１０＃０、１０＃１が実行するアプリケーションプログラム及びタスクの優先度が設定されている。本実施例では、アプリケーションプログラムは複数のタスクを含む場合がある。優先度設定テーブル４２は、情報処理装置１の出荷時等に予め設定されており、原則としてＣＰＵ１０＃０、１０＃１によって書き換えられない（従って、ＲＯＭに格納しても構わない）。
【００３５】
異常発生情報４４は、各ＣＰＵに異常が発生したか否かを示す異常発生フラグ、及び代替処理が行われるべきか否かを示す代替処理フラグを含む情報である。これらのフラグは、例えば、「０」（Ｌｏ）が、異常が発生していない状態、又は代替処理が行われるべきでない状態を示し、「１」（Ｈｉ）が、異常が発生している状態、又は代替処理が行われるべき状態を示すものとする。異常発生情報４４は、例えば、後述するようにＣＰＵ１０＃０、１０＃１によって書き換えられる。
【００３６】
メモリマップテーブル４６は、各ＣＰＵがアクセス可能なメインメモリ２０のアドレス範囲を示す情報である。各ＣＰＵは、起動時等においてメモリマップテーブル４６を参照して、自己がアクセス可能なメインメモリ２０のアドレス範囲を内蔵レジスタ等にコピーする。これによって、情報処理装置１におけるメモリ保護が実現される。メモリマップテーブル４６は、例えば、後述するようにＣＰＵ１０＃０、１０＃１によって書き換えられる。
【００３７】
［フローチャート］
以下、本実施例の情報処理装置１が行なう処理の流れについて説明する。図２は、本実施例に係る情報処理装置１が実行する処理の流れを示すフローチャートの一例である。本フローチャートは、情報処理装置１が起動するタイミングで開始され、各ＣＰＵによって実行される。
【００３８】
まず、各ＣＰＵは、ハードウェアの初期化を行う（Ｓ１００）。具体的には、各ＣＰＵは、フリップフロップやメモリのリセット等を行う。
【００３９】
次に、各ＣＰＵは、異常発生情報４４を参照し、他のＣＰＵに異常が発生中であるか否かを判定する（Ｓ１０２）。
【００４０】
他のＣＰＵに異常が発生中である場合、異常発生中でないＣＰＵは、異常発生中の他のＣＰＵを停止させる（Ｓ１０４）。
【００４１】
次に、異常発生中でないＣＰＵは、ソフトウェアの初期設定を行う（Ｓ１０６）。具体的には、異常発生中でないＣＰＵは、メモリマップテーブル４６を読み込んで内部レジスタに書き込む処理等を行う。
【００４２】
次に、異常発生中でないＣＰＵは、再度、他のＣＰＵに異常が発生中であるか否かを判定する（Ｓ１０８）。他のＣＰＵに異常が発生中でなければ、ＣＰＵ間同期が完了するまで待機する（Ｓ１１０）。ＣＰＵ間同期の完了は、互いにフラグを確認し合うこと等によって確認される。
【００４３】
そして、異常発生中でないＣＰＵは、通常動作に移行し、アプリケーションプログラムやタスクを実行する（Ｓ１１２）。
【００４４】
通常動作中、異常発生中でないＣＰＵは、異常発生検出機構３０により、他のＣＰＵに異常が発生したと判定されたか否かを判定する（Ｓ１１４）。
【００４５】
異常発生検出機構３０により、他のＣＰＵに異常が発生したと判定された場合、異常発生中でないＣＰＵは、異常発生情報４４、及びメモリマップテーブル４６を書き換え（Ｓ１１６）、情報処理装置１の再起動を行う。その後、情報処理装置１は起動するため、Ｓ１００以下の処理が実行される。
【００４６】
Ｓ１１６の処理において、異常発生中でないＣＰＵは、異常が発生したと判定されたＣＰＵが実行していたアプリケーションプログラム又はタスクのうち、優先度が基準以上（例えば「高」以上）に設定されたものについては、次回起動時から代替処理を行うことを前提に、異常発生情報４４、及びメモリマップテーブル４６を書き換える。
【００４７】
図３は、ＣＰＵ１０＃１に異常が発生した場合に、ＣＰＵ１０＃０によって書き換えられた異常発生情報４４、及びメモリマップテーブル４６の一例である。
【００４８】
図示するように、ＣＰＵ１０＃０は、ＣＰＵ１０＃１の異常発生フラグを「１」に書き換え、ＣＰＵ１０＃１が実行していたアプリケーションプログラム又はタスクのうち、優先度が「高」であるタスク１のみを代替処理するため、タスク１の代替処理フラグを「１」に書き換える。更に、ＣＰＵ１０＃０は、タスク１に対応するメモリ領域にアクセス可能とするために、ＣＰＵ１０＃０のアドレス範囲を０ｘ１０００〜０ｘ３ＦＦＦから、タスク１に対応するアドレス範囲の０ｘ４０００〜０ｘ４ＦＦＦを加えた０ｘ１０００〜０ｘ３ＦＦＦに書き換える。
【００４９】
このように異常発生情報４４、及びメモリマップテーブル４６を書き換えることによって、ＣＰＵ１０＃０は、次に情報処理装置１が起動されたときに、ＣＰＵ１０＃１に異常発生中であること、及びタスク１を代替処理する必要があることを認識することができる。そして、メモリマップテーブル４６が代替処理に係るアドレス範囲を既に含んでいるため、ＣＰＵ１０＃０は、代替処理に必要なアドレス範囲にアクセスすることができる。この結果、情報処理装置１は、適切なメモリ保護を維持しつつ、必要な代替処理を速やかに実行することができる。
【００５０】
なお、本実施例ではＣＰＵの個数を２としたため、ＣＰＵ１０＃０は、自己が代替処理を行うべきであることを自動的に認識することができるが、３以上のＣＰＵを備える場合、例えば、ＣＰＵ１０＃０に異常発生したときにＣＰＵ１０＃１、１０＃２…のいずれが代替処理を行うべきかを示すフラグが、異常発生情報４４等に追加されてもよい。代替処理を行うＣＰＵの選択規則については、例えば、実行するアプリケーションプログラムやタスクの優先度等に基づいて選択してもよいし、負荷等を考慮して選択してもよい。
【００５１】
［タイミングチャート］
図４は、図２に示すフローチャートを実行した結果、各ＣＰＵの動作状態が変化する様子を示すタイミングチャートである。
【００５２】
時刻ｔ１において、ＣＰＵ１０＃０、１０＃１はハードウェアの初期化を行い、時刻ｔ２においてソフトウェアの初期設定を行う。
【００５３】
時刻ｔ３において、ＣＰＵ１０＃０、１０＃１はＣＰＵ間同期が完了するまで待機し、時刻ｔ４で通常動作を行う。
【００５４】
時刻ｔ５でＣＰＵ１０＃１に異常が発生し、異常発生検出機構３０からＣＰＵ１０＃０に、その旨が通知されると、ＣＰＵ１０＃０は、優先度設定テーブル４２を参照して代替処理が必要なアプリケーションプログラムやタスクを認識した上で、異常発生情報４４及びメモリマップテーブル４６を書き換える。
【００５５】
時刻ｔ６において、情報処理装置１は再起動される
時刻ｔ７において、ＣＰＵ１０＃０、１０＃１はハードウェアの初期化を行うが、その後の時刻ｔ８においてＣＰＵ１０＃０は、異常発生情報４４を参照してＣＰＵ１０＃１に異常発生中と判定するため、時刻ｔ９においてＣＰＵ１０＃１の停止処理を行う。
【００５６】
その後、時刻ｔ１０においてＣＰＵ１０＃０は、メモリマップテーブル４６を読み込んでソフトウェアの初期設定を行い、時刻ｔ１１において通常動作（アプリＡ及びタスク１の実行）に移行する。
【００５７】
［他の構成例］
なお、情報処理装置１が実行する代替処理は、アプリケーションプログラムやタスクだけでなく、デバイスドライバ等の共用ソフトウェアについても適用可能である。
【００５８】
図５は、情報処理装置１の論理構成をソフトウェア層とハードウェア層のそれぞれについて例示した図である。
【００５９】
情報処理装置１が、例えば、ハードウェア構成としてＡＤＣ（ＡＤコンバータ）３５を備える場合、ＣＰＵ１０＃０が実行するアプリＡは、例えば、ＡＤＣ仮想デバイス（Ａ）２２を介してＡＤＣ物理デバイス２６にアクセスし、ＡＤＣ物理デバイス２６がＡＤＣ３５を制御する。
【００６０】
この場合、ＡＤＣ物理デバイス２６は、ＣＰＵ毎に動作するのではなく、ＣＰＵ間で共用されることが想定される。すなわち、ＣＰＵ１０＃１が実行するアプリＢは、ＡＤＣ仮想デバイス（Ｂ）２４を介して（ＣＰＵ間通信等が行われ）、ＡＤＣ物理デバイス２６にアクセスし、ＡＤＣ物理デバイス２６がＡＤＣ３５を制御する。
【００６１】
図６は、図５に例示した論理構成を有する場合に、不揮発性メモリ４０に格納される初期情報の一例である。この場合、不揮発性メモリ４０には、優先度設定テーブル４２、異常発生情報４４、メモリマップテーブル４６に加えて、共用ソフトウェア情報４８が格納される。
【００６２】
ＡＤＣ物理デバイス２６のような共用ソフトウェアは、動作ＣＰＵに異常が発生すると、他のＣＰＵによる使用が不可能となり、不都合が大きい。従って、情報処理装置１は、共用ソフトウェアを、上記実施例における優先度「高」のアプリケーションプログラム又はタスクと同様に扱う。
【００６３】
図７は、ＡＤＣ物理デバイス２６を実行しているＣＰＵ１０＃０に異常が発生した場合に、ＣＰＵ１０＃１によって書き換えられた不揮発性メモリ４０上のデータの一例である。この場合、ＣＰＵ１０＃０によって実行されていたアプリＡは優先度が「中」であるため、代替処理は行われないが、共用ソフトウェアであるＡＤＣ物理デバイス２６については代替処理が行われる。
【００６４】
図７に示すように異常発生情報４４、メモリマップテーブル４６、共用ソフトウェア情報４８が書き換えられることによって、情報処理装置１が再起動された後、ＣＰＵ１０＃１が速やかにＡＤＣ物理デバイス２６を動作させることができる。
【００６５】
［まとめ］
以上説明した本実施例の情報処理装置１によれば、他のＣＰＵに異常が発生したことを通知されたＣＰＵが、アプリケーションプログラムやタスクの優先度を参照しつつ、異常発生情報４４やメモリマップテーブル４６を書き換えるため、適切なメモリ保護を維持しつつ、必要な代替処理を速やかに実行することができる。
【００６６】
また、ＣＰＵ間で共用される共用ソフトウェアについては、優先度が高いものとして扱うことにより、各ＣＰＵの動作に必要な共用ソフトウェアが停止してしまうという不都合を回避することができる。
【００６７】
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【００６８】
例えば、異常発生情報４４やメモリマップテーブル４６の書き換えは、他のＣＰＵに異常が発生したことを通知されたＣＰＵが行うものとしたが、異常発生検出機構３０が書き換えを行ってもよい。
【００６９】
また、情報処理装置１は、マルチコア・プロセッサだけでなく、マルチプロセッサその他の、処理手段（ＣＰＵ等）を複数備える如何なるコンピュータにも適用可能である。
【符号の説明】
【００７０】
１    情報処理装置
１０＃０、１０＃１  ＣＰＵ
２０  メインメモリ
２２、２４  ＡＤＣ仮想デバイス
２６  ＡＤＣ物理デバイス
３０  異常発生検出機構
３５  ＡＤＣ
４０  不揮発性メモリ
４２  優先度設定テーブル
４４  異常発生情報
４６  メモリマップテーブル
４８  共用ソフトウェア情報
【図１】
2013225208.tif 000003
【図２】
2013225208.tif 000004
【図３】
2013225208.tif 000005
【図４】
2013225208.tif 000006
【図５】
2013225208.tif 000007
【図６】
2013225208.tif 000008
【図７】
2013225208.tif 000009