(57)【要約】【課題】  異常が発生した処理が呼ばれてもそのフェールセーフを実行することにより処理を続行する。【解決手段】  識別子取得手段２は、実行しようとする処理７ａ，７ｂ，〜，７ｎに付与されている識別子を取得する。処理実行手段３は、電源Ｖｄｄがバックアップされた揮発性記憶装置５および書き換え可能な不揮発性記憶装置６に、実行しようとする処理の識別子が記憶されていない場合、その処理の識別子を揮発性記憶装置５に記憶してから実行する。また、処理実行手段３は、揮発性記憶装置５および不揮発性記憶装置６の一方または両方に実行しようとする処理の識別子が記憶されている場合、その処理のフェールセーフを実行する。記憶手段４は、マイクロコンピュータ１がウォッチドッグ監視装置８によりリセットされた場合、処理７ａ，７ｂ，〜，７ｎの実行を開始する前に、揮発性記憶装置５に記憶されている識別子を不揮発性記憶装置６に記憶する。【選択図】  図１
2006323494.tif 000002
【特許請求の範囲】
【請求項１】
障害発生から復旧するマイクロコンピュータの障害復旧方法において、
実行しようとする処理に付与されている識別子を取得し、
電源がバックアップされた揮発性記憶装置および書き換え可能な不揮発性記憶装置に前記識別子が記憶されていない場合、前記処理の識別子を前記揮発性記憶装置に記憶して前記処理を実行し、
前記揮発性記憶装置および前記不揮発性記憶装置の一方または両方に前記識別子が記憶されている場合、前記処理のフェールセーフを実行し、
前記マイクロコンピュータの出力するウォッチドッグ信号を監視するウォッチドッグ監視装置によってリセットされた場合、前記処理の実行を開始する前に前記揮発性記憶装置に記憶されている前記識別子を前記不揮発性記憶装置に記憶する、
ことを特徴とする障害復旧方法。
【請求項２】
前記マイクロコンピュータの動作終了時、前記揮発性記憶装置に設けられた所定の領域に終了コードを記憶し、
前記マイクロコンピュータの動作開始時、前記処理の実行を開始する前に、前記領域に特定コードを記憶し、
前記マイクロコンピュータの動作開始時、前記特定コードの前記領域への記憶の前に、前記領域に記憶されているコードによって、前記ウォッチドッグ監視装置によってリセットされたか否か判断することを特徴とする請求項１記載の障害復旧方法。
【請求項３】
前記領域に前記特定コードが記憶されている場合、前記ウォッチドッグ監視装置によってリセットされたと判断することを特徴とする請求項２記載の障害復旧方法。
【請求項４】
前記電源は、車両に搭載されるバッテリにより供給されることを特徴とする請求項１記載の障害復旧方法。
【請求項５】
前記マイクロコンピュータの動作終了時、前記揮発性記憶装置に設けられた所定の領域にバッテリ履歴コードを記憶し、
前記マイクロコンピュータの動作開始時、前記処理の実行を開始する前に、前記領域に記憶されている前記バッテリ履歴コードによって、前記バッテリの脱着の有無を判断することを特徴とする請求項４記載の障害復旧方法。
【請求項６】
前記識別子の前記不揮発性記憶装置に記憶される回数を、前記識別子ごとに前記不揮発性記憶装置に記憶し、
前記回数が所定以上の場合に、前記処理のフェールセーフを実行することを特徴とする請求項１記載の障害復旧方法。
【請求項７】
障害発生から復旧するマイクロコンピュータにおいて、
実行しようとする処理に付与されている識別子を取得する識別子取得手段と、
電源がバックアップされた揮発性記憶装置および書き換え可能な不揮発性記憶装置に前記識別子が記憶されていない場合、前記処理の識別子を前記揮発性記憶装置に記憶して前記処理を実行し、前記揮発性記憶装置および前記不揮発性記憶装置の一方または両方に前記識別子が記憶されている場合、前記処理のフェールセーフを実行する処理実行手段と、
当該マイクロコンピュータの出力するウォッチドッグ信号を監視するウォッチドッグ監視装置によってリセットされた場合、前記処理の実行を開始する前に前記揮発性記憶装置に記憶されている前記識別子を前記不揮発性記憶装置に記憶する記憶手段と、
を有することを特徴とするマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は障害復旧方法およびマイクロコンピュータに関し、特に障害発生から復旧するマイクロコンピュータの障害復旧方法およびマイクロコンピュータに関する。
【背景技術】
【０００２】
従来、マイクロコンピュータの異常検出には、ウォッチドッグ信号を利用したものがある。例えば、マイクロコンピュータから出力されるウォッチドッグ信号を、ウォッチドッグ監視ＩＣ（Integrated Circuit）で監視する。ウォッチドッグ監視ＩＣは、マイクロコンピュータから一定時間ウォッチドッグ信号が出力されなくなると、マイクロコンピュータをリセットするようにする。
【０００３】
なお、異常が発生したとき、実行されていた処理（プロセス）の記録をするとともに、その処理を取り除いて再立ち上げすることを可能にした自動障害復旧方式がある（例えば、特許文献１参照）。また、ＣＰＵ（Central Processing Unit）が暴走した場合のコンピュータの被害を最小にとどめるとともに、ＣＰＵに負荷がかからない暴走検知機能つきコンピュータがある（例えば、特許文献２参照）。
【特許文献１】特開平６−３５７３７号公報
【特許文献２】特開平１１−１６１５４８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、異常個所の処理を取り除いてもその処理が再び呼ばれることもあり、この場合、その処理が存在しないために処理が中断してしまう場合もある。
本発明はこのような点に鑑みてなされたものであり、異常が発生したときの処理の履歴を記憶し、リセットによる再立ち上げ後、その処理が呼ばれたときにはその処理のフェールセーフを実行し、処理を続行できる障害復旧方法およびマイクロコンピュータを提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明では上記問題を解決するために、障害発生から復旧するマイクロコンピュータの障害復旧方法において、実行しようとする処理に付与されている識別子を取得し、電源がバックアップされた揮発性記憶装置および書き換え可能な不揮発性記憶装置に前記識別子が記憶されていない場合、前記処理の識別子を前記揮発性記憶装置に記憶して前記処理を実行し、前記揮発性記憶装置および前記不揮発性記憶装置の一方または両方に前記識別子が記憶されている場合、前記処理のフェールセーフを実行し、前記マイクロコンピュータの出力するウォッチドッグ信号を監視するウォッチドッグ監視装置によってリセットされた場合、前記処理の実行を開始する前に前記揮発性記憶装置に記憶されている前記識別子を前記不揮発性記憶装置に記憶する、ことを特徴とする障害復旧方法が提供される。
【０００６】
このような障害復旧方法によれば、処理を実行しようとするとき、その処理に付与されている識別子を取得し、電源がバックアップされた揮発性記憶装置に記憶してから実行する。ウォッチドッグ監視装置によるリセットがあった場合、揮発性記憶装置に記憶されている識別子を不揮発性記憶装置に記憶する。そして、揮発性記憶装置または不揮発性記憶装置に記憶されている識別子の処理を実行しようとする場合、その処理のフェールセーフを実行する。
【発明の効果】
【０００７】
本発明の障害復旧方法では、処理を実行しようとするとき、その処理に付与されている識別子を取得し、電源がバックアップされた揮発性記憶装置に記憶してから実行する。ウォッチドッグ監視装置によるリセットがあった場合、揮発性記憶装置に記憶されている識別子を不揮発性記憶装置に記憶する。そして、揮発性記憶装置または不揮発性記憶装置に記憶されている識別子の処理を実行しようとする場合、その処理のフェールセーフを実行するようにした。これによって、異常が発生したときの処理が呼ばれても、そのフェールセーフを実行することにより、処理を続行することができる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の原理を図面を参照して詳細に説明する。
図１は、マイクロコンピュータの障害復旧方法の概要を説明する図である。図に示すようにマイクロコンピュータ１は、識別子取得手段２、処理実行手段３、記憶手段４、揮発性記憶装置５、および不揮発性記憶装置６を有している。マイクロコンピュータ１は、ウォッチドッグ監視装置８と接続され、ウォッチドッグ信号をウォッチドッグ監視装置８に出力する。ウォッチドッグ監視装置８は、マイクロコンピュータ１から一定時間ウォッチドッグ信号が出力されない場合、マイクロコンピュータ１をリセットする。マイクロコンピュータ１は、処理７ａ，７ｂ，〜，７ｎを実行する。処理７ａ，７ｂ，〜，７ｎには、それぞれを区別する識別子が付与されている。
【０００９】
識別子取得手段２は、実行しようとする処理７ａ，７ｂ，〜，７ｎの識別子を取得する。
処理実行手段３は、電源Ｖｄｄがバックアップされた揮発性記憶装置５および書き換え可能な不揮発性記憶装置６に、取得した識別子が記憶されていない場合、その処理の識別子を揮発性記憶装置５に記憶してからその処理を実行する。また、処理実行手段３は、揮発性記憶装置５および不揮発性記憶装置６の一方または両方に、取得した識別子が記憶されている場合、その処理のフェールセーフを実行する。
【００１０】
記憶手段４は、マイクロコンピュータ１がウォッチドッグ監視装置８によってリセットされた場合、処理７ａ，７ｂ，〜，７ｎの実行を開始する前に、揮発性記憶装置５に記憶されている識別子を不揮発性記憶装置６に記憶する。
【００１１】
このように、処理７ａ，７ｂ，〜，７ｎを実行しようとするときに、その処理に付与されている識別子を取得し、電源Ｖｄｄがバックアップされた揮発性記憶装置５に記憶してから実行する。ウォッチドッグ監視装置８によるリセットがあった場合、揮発性記憶装置５に記憶されている識別子を不揮発性記憶装置６に記憶する。そして、揮発性記憶装置５または不揮発性記憶装置６に記憶されている識別子の処理を実行しようとする場合、その処理のフェールセーフを実行するようにした。これによって、異常が発生した処理が呼ばれても、そのフェールセーフを実行することにより、処理を続行することができる。
【００１２】
次に、本発明の実施の形態を図面を参照して詳細に説明する。
図２は、マイクロコンピュータの異常検出を説明する図である。図にはマイクロコンピュータ１０およびウォッチドッグ監視ＩＣ２０が示してある。マイクロコンピュータ１０は、プログラムによって、例えば、４ｍｓの反転するウォッチドッグ信号ＷＤをウォッチドッグ監視ＩＣ２０に出力する。図に示すマイクロコンピュータ１０は車両に搭載され、例えば、エンジン制御や車両制御などの処理を行う。
【００１３】
ウォッチドッグ監視ＩＣ２０は、マイクロコンピュータ１０から出力されるウォッチドッグ信号ＷＤを監視し、一定時間（例えば、１００ｍｓ）ウォッチドッグ信号ＷＤが反転して出力されない場合、マイクロコンピュータ１０にリセット信号ＲＳＴを出力する。すなわち、マイクロコンピュータ１０は、ソフトウェアまたはハードウェアの異常によってウォッチドッグ信号ＷＤを出力できなくなった場合、ウォッチドッグ監視ＩＣ２０によってリセットされる。
【００１４】
マイクロコンピュータ１０は、ウォッチドッグ監視ＩＣ２０によりリセットされると、リセットされたときに実行していた処理をリジェクトし、その処理に対応するフェールセーフ処理を実行する。そして、マイクロコンピュータ１０は以後、ＩＧ（イグニッションスイッチ）オンにより動作を開始した場合、リジェクトした処理が呼ばれたときは、その処理に対応するフェールセーフ処理を呼び出し実行する。
【００１５】
なお、ウォッチドッグ監視ＩＣ２０の代わりに、マイクロコンピュータを利用してもよい。例えば、マイクロコンピュータによってマイクロコンピュータ１０のウォッチドッグ信号ＷＤを監視し、マイクロコンピュータ１０をリセットするようにしてもよい。
【００１６】
次に、マイクロコンピュータ１０のハードウェア構成について説明する。図３は、マイクロコンピュータのハードウェア構成例を示した図である。図に示すようにマイクロコンピュータ１０は、ＣＰＵ１１、ＲＯＭ（Read Only Memory）１２、ＲＡＭ（Random Access Memory）１３、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-only Memory）１４、およびＩ／Ｏレジスタ１５を有している。
【００１７】
マイクロコンピュータ１０は、ＣＰＵ１１によって装置全体が制御されている。ＣＰＵ１１には、バスを介してＲＯＭ１２、ＲＡＭ１３、ＥＥＰＲＯＭ１４、およびＩ／Ｏレジスタ１５が接続されている。
【００１８】
ＲＡＭ１３には、ＣＰＵ１１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。ＲＡＭ１３およびＥＥＰＲＯＭ１４には、ＣＰＵ１１による処理に必要な各種データが保存される。ＲＯＭ１２には、ＯＳやアプリケーションプログラムが格納される。
【００１９】
マイクロコンピュータ１０は、ウォッチドッグ監視ＩＣ２０を含む他の装置と接続されている。ＣＰＵ１１は、Ｉ／Ｏレジスタ１５を介して、外部の装置とデータのやり取りをすることができる。以上のようなハードウェア構成によって、リセットが発生したときに実行していた処理をリジェクトし、フェールセーフ処理を実行することが可能となる。
【００２０】
なお、ＲＡＭ１３は、ＩＧがオフされても（電源がオフされても）データを保持するＳＲＡＭ（Static RAM）と、ＩＧがオフされるとデータが消去されるＮＲＡＭ（Normal RAM）とによって構成されている。ＳＲＡＭは、例えば、車両に搭載されたバッテリによるバックアップ電圧が供給され、ＩＧがオフされたときでも、データを保持するようになっている。
【００２１】
次に、ＲＡＭ１３のＳＲＡＭに記憶される情報について説明する。図４は、ＳＲＡＭの記憶領域を示した図である。図に示すようにＲＡＭ１３のＳＲＡＭ１３ａは、初期化発生確認変数が記憶される初期化発生確認変数領域１３ａａ、処理実行記憶変数が記憶される処理実行記憶変数領域１３ａｂ、およびバッテリ脱着履歴変数が記憶されるバッテリ脱着履歴変数領域１３ａｃを有している。その他の領域には、ＩＧがオフされても保持する必要のある変数が記憶される。
【００２２】
次に、ＥＥＰＲＯＭ１４に記憶される情報について説明する。図５は、ＥＰＲＯＭの記憶領域を示した図である。図に示すようにＥＥＰＲＯＭ１４は、処理実行記憶変数が記憶される処理実行履歴変数領域１４ａを有している。処理実行履歴変数領域１４ａは、複数の処理実行記憶変数を記憶できるように複数設けられる。
【００２３】
次に、マイクロコンピュータ１０の動作についてフローチャートを用いて説明する。図６は、ＩＧがオフされたときのマイクロコンピュータの動作を示したフローチャートである。マイクロコンピュータ１０のＣＰＵ１１は、ＩＧがオフされると、図のフローチャートの処理を実行し、エンジン制御および車両制御の処理を終了する。
【００２４】
ステップＳ１において、ＣＰＵ１１は、ＳＲＡＭ１３ａの初期化発生確認変数およびバッテリ脱着履歴変数に特定の値を格納する。初期化発生確認変数およびバッテリ脱着履歴変数の特定の値は、例えば、１６進数の５ＡＡ５とする。ステップＳ２において、ＣＰＵ１１は、ＳＲＡＭ１３ａの処理実行記憶変数を、例えば、０にクリアする。
【００２５】
すなわち、ＣＰＵ１１は、ウォッチドッグ監視ＩＣ２０によりリセットされることなくＩＧオフによって処理が終了される場合、ＳＲＡＭ１３ａの初期化発生確認変数およびバッテリ脱着履歴変数に特定の値の５ＡＡ５を格納し、処理実行記憶変数を０にクリアして処理を終了する。ウォッチドッグ監視ＩＣ２０によりリセットされた場合は、ＩＧオフによって行われるステップＳ１，Ｓ２の処理は行われないため、ＳＲＡＭ１３ａの初期化発生確認変数およびバッテリ脱着履歴変数には、５ＡＡ５が記憶されることがなく、また、処理実行記憶変数は０にクリアされることがない。
【００２６】
次に、ＩＧオンまたはリセット後のマイクロコンピュータ１０の動作について説明する。図７は、ＩＧオンまたはリセット後のマイクロコンピュータの動作を示したフローチャートである。マイクロコンピュータ１０のＣＰＵ１１は、ＩＧがオンされたとき、または、リセット信号ＲＳＴが入力され再動作するとき、図のフローチャートの処理を実行して、エンジン制御および車両制御の様々な処理（プロセス）を開始する。
【００２７】
ステップＳ１１において、ＣＰＵ１１は、エンジン制御および車両制御の処理に必要な初期化処理を行う。
ステップＳ１２において、ＣＰＵ１１は、バッテリの脱着履歴があるか判断する。ＣＰＵ１１は、ＳＲＡＭ１３ａのバッテリ脱着履歴変数を参照して、バッテリの脱着があったか判断する。
【００２８】
リセットによらず処理を終了した場合、つまり、ＩＧをオフして処理を終了した場合、図６で示したステップＳ１の処理によって、ＳＲＡＭ１３ａのバッテリ脱着履歴変数には、５ＡＡ５が記憶されているはずである。一方、バッテリが脱着されると、ＳＲＡＭ１３ａへのバックアップ電圧の供給が絶たれ、ＳＲＡＭ１３ａの内容は不定となり、バッテリ脱着履歴変数の値は不定となる。よって、ＣＰＵ１１は、ＳＲＡＭ１３ａのバッテリ脱着履歴変数によって（５ＡＡ５であるか否かによって）、バッテリの脱着があったか判断することができる。なお、ＳＲＡＭ１３ａが不定になっても、バッテリ脱着履歴変数の値は、５ＡＡ５になる可能性が非常に少ないことを前提としている。ＣＰＵ１１は、バッテリの脱着があれば、ステップＳ１３の処理へ進む。バッテリの脱着がなければ、ステップＳ１４の処理へ進む。
【００２９】
ステップＳ１３において、ＣＰＵ１１は、ＳＲＡＭ１３ａの初期化発生確認変数に５ＡＡ５を格納する。ＣＰＵ１１は、図のフローチャートの処理を終了し、エンジン制御および車両制御に必要な処理を実行する。
【００３０】
ステップＳ１４において、ＣＰＵ１１は、ＥＥＰＲＯＭ１４の処理実行履歴変数領域１４ａに記憶されている処理実行履歴変数を読み出す。
ステップＳ１５において、ＣＰＵ１１は、読み出した処理実行履歴変数が各処理に付与されている識別子を示しているか判断する。ＣＰＵ１１は、読み出した処理実行履歴変数が各処理に付与されている識別子を示している場合、以前、その識別子が示す処理の実行中にリセット信号ＲＳＴが入力されたと判断できる（後述詳細）。ＣＰＵ１１は、読み出した処理実行履歴変数が各処理に付与されている識別子を示している場合、図のフローチャートの処理を終了し、エンジン制御および車両制御の処理を実行する。読み出した処理実行履歴変数が各処理に付与されている識別子を示していない場合、ステップＳ１６の処理へ進む。
【００３１】
ステップＳ１６において、ＣＰＵ１１は、ＳＲＡＭ１３ａの初期化発生確認変数に５ＡＡ５が記憶されているか判断する。ＣＰＵ１１は、ＳＲＡＭ１３ａの初期化発生確認変数によって、つまり、５ＡＡ５が記憶されていたかによって、リセットされたのか、前回の処理の終了がＩＧオフによって終了したか判断できる。ＣＰＵ１１は、５ＡＡ５の初期化発生確認変数がＳＲＡＭ１３ａに記憶されていない場合、ステップＳ１７の処理へ進む。５ＡＡ５の初期化発生確認変数がＳＲＡＭ１３ａに記憶されている場合、ステップＳ１８の処理へ進む。
【００３２】
ステップＳ１７において、ＣＰＵ１１は、ＳＲＡＭ１３ａに記憶されている処理実行記憶変数を、処理実行履歴変数としてＥＥＰＲＯＭ１４に記憶する。
処理実行記憶変数には、後述するがエンジン制御および車両制御の処理に付与されている識別子が格納される。この識別子の処理実行記憶変数への格納は、ＣＰＵ１１がエンジン制御および車両制御の処理を実行するときに行われる。すなわち、ＳＲＡＭ１３ａに記憶される処理実行記憶変数は、ＣＰＵ１１によって実行されている処理の識別子が格納されていることになる。よって、リセット信号ＲＳＴによってマイクロコンピュータ１０がリセットされ、ＣＰＵ１１がステップＳ１７の処理を実行すると、ＥＥＰＲＯＭ１４には、リセット発生時に実行していた処理の識別子が記憶されることになる。ＣＰＵ１１は、ステップＳ１７の処理を終えると、図のフローチャートの処理を終了し、エンジン制御および車両制御の様々な処理を実行する。
【００３３】
ステップＳ１８において、ＣＰＵ１１は、初期化発生確認変数を、例えば、０にクリアする。これによって、ＩＧをオフする前に、リセット信号ＲＳＴによりリセットされると、初期化発生確認変数は、図６のステップＳ１に示した処理によって５ＡＡ５が格納されることはなく０のままであり、リセット後のステップＳ１６の処理では、ステップＳ１７の処理へ進むことになる。一方、リセットではなく、ＩＧオフによって処理が終了した場合は、初期化発生確認変数には、５ＡＡ５が格納されており、ＩＧオンによってステップＳ１６の処理が実行されると、ステップＳ１８へ進むことになる。このようにして、ＩＧオンまたはリセットによる動作が開始される。
【００３４】
次に、エンジン制御および車両制御の処理を実行するときのマイクロコンピュータ１０の動作について説明する。図８は、処理を実行するときのマイクロコンピュータの動作を示したフローチャートである。ＣＰＵ１１は、以下のステップに従って、呼び出した処理を実行する。
【００３５】
ステップＳ２１において、ＣＰＵ１１は、実行しようとする処理の識別子を取得する。識別子は、処理ごとに応じて付与されている。例えば、処理Ａには、識別子Ａ＿ＩＤが付与され、処理Ｂには、識別子Ｂ＿ＩＤが付与されている。
【００３６】
ステップＳ２２において、ＣＰＵ１１は、ＳＲＡＭ１３ａに記憶されている処理実行記憶変数が、取得した識別子と一致するか判断する。また、ＥＥＰＲＯＭ１４に記憶されている、複数ある処理実行履歴変数に、取得した識別子と一致するものがあるか判断する。ＣＰＵ１１は、処理実行記憶変数および処理実行履歴変数に、取得した識別子と一致するものがなければ、ステップＳ２３の処理へ進む。処理実行記憶変数または処理実行履歴変数に、取得した識別子と一致するものがあれば、ステップＳ２５の処理へ進む。すなわち、実行しようとする処理に、異常が発生したという履歴がＳＲＡＭ１３ａまたはＥＥＰＲＯＭ１４に残っている場合、ステップＳ２５の処理へ進む。
【００３７】
ステップＳ２３において、ＣＰＵ１１は、ステップＳ２１で取得した識別子をＳＲＡＭ１３ａの処理実行記憶変数に格納する。これによって、ＣＰＵ１１は、図７のステップＳ１６で説明したように初期化発生確認変数が５ＡＡ５でない場合、つまり、リセット信号ＲＳＴによって動作が開始された場合、ステップＳ１７へ進み、ＳＲＡＭ１３ａに記憶されている処理実行記憶変数をＥＥＰＲＯＭ１４に処理実行履歴変数として記憶する。すなわち、リセットされたときに実行していた処理の識別子が、ＥＥＰＲＯＭ１４に記憶され、異常が発生したときの処理の履歴がＥＥＰＲＯＭ１４に残ることになる。なお、ＥＥＰＲＯＭ１４は、複数の処理実行履歴変数領域１４ａを有しており、ＣＰＵ１１は、処理ごとに識別子の履歴を記憶する。
【００３８】
ステップＳ２４において、ＣＰＵ１１は、呼び出した処理を実行する。ステップＳ２５において、ＣＰＵ１１は、呼び出す処理に対応するフェールセーフ処理を実行する。
このようにマイクロコンピュータ１０は、処理を実行しようとするときに、その処理に付与されている識別子を取得し、電源がバックアップされたＳＲＡＭ１３ａに記憶してから実行する。ウォッチドッグ監視ＩＣ２０によるリセットがあった場合、ＳＲＡＭ１３ａに記憶されている識別子をＥＥＰＲＯＭ１４に記憶する。そして、ＳＲＡＭ１３ａまたはＥＥＰＲＯＭ１４に記憶されている識別子の処理を実行しようとする場合、その処理のフェールセーフを実行するようにした。これによって、異常が発生した処理が呼ばれても、そのフェールセーフを実行することにより、処理を続行することができる。
【００３９】
なお、ステップＳ２２からステップＳ２５への処理移行条件として、処理ごとに重み付けを設けるようにしてもよい。例えば、処理実行履歴変数には、識別子の格納回数も含めて格納するようにする。具体的には、処理Ａの識別子が３回処理実行履歴変数に格納された場合、３回という情報も処理実行履歴変数に含めて格納する。ＣＰＵ１１は、ステップＳ２２の処理において、処理Ａが基幹制御に関わる処理であるとすると、識別子Ａ＿ＩＤの格納が３回あった場合に、ステップＳ２５の処理へ進むようにする。処理Ａが基幹制御に関わらない処理ならば、識別子Ａ＿ＩＤの格納が１回あった場合に、ステップＳ２５の処理へ進むようにする。なお、処理ごとの重み付け（識別子の格納回数の上限）は、例えば、ＥＥＰＲＯＭ１４に記憶されており、ＣＰＵ１１は、ＥＥＰＲＯＭ１４に記憶されている処理の重み付けと、処理実行履歴変数の格納回数とを比較して、ステップＳ２３またはステップＳ２５の処理へ進むかの判断をする。
【図面の簡単な説明】
【００４０】
【図１】マイクロコンピュータの障害復旧方法を説明する図である。
【図２】マイクロコンピュータの異常検出を説明する図である。
【図３】マイクロコンピュータのハードウェア構成例を示した図である。
【図４】ＳＲＡＭの記憶領域を示した図である。
【図５】ＥＰＲＯＭの記憶領域を示した図である。
【図６】ＩＧがオフされたときのマイクロコンピュータの動作を示したフローチャートである。
【図７】ＩＧオンまたはリセット後のマイクロコンピュータの動作を示したフローチャートである。
【図８】処理を実行するときのマイクロコンピュータの動作を示したフローチャートである。
【符号の説明】
【００４１】
１  マイクロコンピュータ
２  識別子取得手段
３  処理実行手段
４  記憶手段
５  揮発性記憶装置
６  不揮発性記憶装置
７ａ，７ｂ，〜，７ｎ  処理
８  ウォッチドッグ監視装置
Ｖｄｄ  電源
【図１】
2006323494.tif 000003
【図２】
2006323494.tif 000004
【図３】
2006323494.tif 000005
【図４】
2006323494.tif 000006
【図５】
2006323494.tif 000007
【図６】
2006323494.tif 000008
【図７】
2006323494.tif 000009
【図８】
2006323494.tif 000010