(57)【要約】【課題】処理負荷の増大を抑制しつつ、処理結果の正確性を確保すること。【解決手段】複数の命令実行手段を備え、該複数の命令実行手段について故障診断を行う機能を有するマイクロコンピュータであって、プログラムメモリに格納された命令を取得し、該取得した命令を解読する命令取得解読手段と、該命令取得解読手段により解読された命令に基づき、前記複数の命令実行手段に命令を発行すると共に、命令の発行先を特定する発行先特定情報を所定の記憶手段に書き込む命令発行手段と、を備え、前記複数の命令実行手段のうち、前記発行先特定情報が前記所定の記憶手段に書き込まれた命令実行手段について故障診断を行い、前記発行先特定情報が前記所定の記憶手段に書き込まれていない命令実行手段については故障診断を行わないことを特徴とする、マイクロコンピュータ。【選択図】図１
2012138048.tif 000002
【特許請求の範囲】
【請求項１】
複数の命令実行手段を備え、該複数の命令実行手段について故障診断を行う機能を有するマイクロコンピュータであって、
プログラムメモリに格納された命令を取得し、該取得した命令を解読する命令取得解読手段と、
該命令取得解読手段により解読された命令に基づき、前記複数の命令実行手段に命令を発行すると共に、命令の発行先を特定する発行先特定情報を所定の記憶手段に書き込む命令発行手段と、を備え、
前記複数の命令実行手段のうち、前記発行先特定情報が前記所定の記憶手段に書き込まれた命令実行手段について故障診断を行い、前記発行先特定情報が前記所定の記憶手段に書き込まれていない命令実行手段については故障診断を行わないことを特徴とする、
マイクロコンピュータ。
【請求項２】
請求項１に記載のマイクロコンピュータであって、
前記故障診断は、前記プログラムメモリに格納された故障診断用の命令によって実現され、
前記記憶手段に書き込まれた発行先特定情報は、前記故障診断の終了と共に、前記故障診断用の命令によってリセットされることを特徴とする、
マイクロコンピュータ。
【請求項３】
請求項１又は２に記載のマイクロコンピュータであって、
前記所定の記憶手段は、前記発行先特定情報を書き込むための専用レジスタである、
マイクロコンピュータ。
【請求項４】
複数の命令実行手段を備え、該複数の命令実行手段について故障診断を行う機能を有するマイクロコンピュータであって、
プログラムメモリに格納された命令を取得し、該取得した命令を解読する命令取得解読手段と、
該命令取得解読手段により解読された命令に基づき、前記複数の命令実行手段に命令を発行すると共に、命令の発行先を特定する発行先特定情報を所定の記憶手段に書き込む命令発行手段と、
所定回数前の故障診断開始時に前記所定の記憶手段に書き込まれていた発行先特定情報を保持する過去情報記憶手段と、を備え、
前記複数の命令実行手段のうち、前記発行先特定情報が前記過去情報記憶手段に書き込まれた命令実行手段について故障診断を行い、前記発行先特定情報が前記過去情報記憶手段に書き込まれていない命令実行手段については故障診断を行わないことを特徴とする、
マイクロコンピュータ。
【請求項５】
請求項４に記載のマイクロコンピュータであって、
前記故障診断は、前記プログラムメモリに格納された故障診断用の命令によって実現され、
前記記憶手段に書き込まれた発行先特定情報は、前記故障診断の終了と共に、前記故障診断用の命令によってリセットされることを特徴とする、
マイクロコンピュータ。
【請求項６】
請求項４又は５に記載のマイクロコンピュータであって、
前記所定の記憶手段及び前記過去情報記憶手段は、前記発行先特定情報を書き込むための専用レジスタである、
マイクロコンピュータ。
【請求項７】
車両に搭載され、車載機器の制御を行う制御装置として構成される、請求項１ないし６のいずれか１項に記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＡＬＵ（Arithmetic  Logic  Unit）に代表される命令実行手段を複数備え、これらの命令実行手段について自発的に故障診断を行う機能を有するマイクロコンピュータに関する。
【背景技術】
【０００２】
従来、車両制御や機械制御等の種々の用途に用いられるマイクロコンピュータの分野において、ＡＬＵに代表される命令実行手段について、所定のタイミングで自ら故障診断を行う制御・処理が行われている。係る故障診断は、例えば予め正しい出力が判明しているダミーの演算処理等を命令実行手段に発行し、その結果が正しいか否かに基づいて行われる。故障診断の結果は、ＥＥＰＲＯＭ（Electrically  Erasable  and  Programmable  Read  Only  Memory）等の不揮発性メモリに書き込まれ、修理店等で故障原因の解析等が行われる。
【０００３】
特許文献１には、各制御モジュールが、自己の異常を検知する自己診断部を備え、オペレーティングシステムに含まれるスケジューラが、異常と自己診断した制御モジュールからの診断情報と、予め設定されたリセット条件に基づいて所定の制御モジュールをリセットする異常監視部を備えるマルチＣＰＵシステムについて記載されている。このシステムでは、各制御モジュールに制御データを記憶する不揮発性記憶部を備え、上記異常監視部は、異常と自己診断した制御モジュールからの診断情報に基づいて予め設定された所定の制御モジュールに対して所定の制御情報を不揮発性記憶部に記憶させるように指示している。
【０００４】
また、特許文献２には、複数の機能ブロックに関連するソフトウエアの設定内容を診断するための複数の診断プログラムをコンピュータに実行させ、動作状態を診断する端末装置について記載されている。この装置における制御手段は、自装置のオペレーティングシステムが起動した後、又は制御負荷が継続して比較的低い場合に、診断プログラムの一部または全部を実行するように制御している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−０３４９１０号公報
【特許文献２】特開２００９−１５７４５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１に記載のシステムでは、自己診断の頻度等に関する考慮がなされておらず、自己診断に要する処理負荷が過大なものとなり、システム全体の処理性能が低下するおそれがある。
【０００７】
この点、特許文献２には、制御負荷が継続して比較的低い場合に診断を行う点について記載されているが、この場合、制御負荷が定常的に高い制御装置等に適用することができない。
【０００８】
本発明はこのような課題を解決するためのものであり、処理負荷の増大を抑制しつつ、処理結果の正確性を確保することが可能なマイクロコンピュータを提供することを、主たる目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するための本発明の第１の態様は、
複数の命令実行手段を備え、該複数の命令実行手段について故障診断を行う機能を有するマイクロコンピュータであって、
プログラムメモリに格納された命令を取得し、該取得した命令を解読する命令取得解読手段と、
該命令取得解読手段により解読された命令に基づき、前記複数の命令実行手段に命令を発行すると共に、命令の発行先を特定する発行先特定情報を所定の記憶手段に書き込む命令発行手段と、を備え、
前記複数の命令実行手段のうち、前記発行先特定情報が前記所定の記憶手段に書き込まれた命令実行手段について故障診断を行い、前記発行先特定情報が前記所定の記憶手段に書き込まれていない命令実行手段については故障診断を行わないことを特徴とする、
マイクロコンピュータである。
【００１０】
この本発明の第１の態様によれば、複数の命令実行手段に命令を発行すると共に命令の発行先を特定する発行先特定情報を所定の記憶手段に書き込む命令発行手段を備え、発行先特定情報が所定の記憶手段に書き込まれた命令実行手段について故障診断を行い、書き込まれていない命令実行手段については故障診断を行わないため、処理負荷の増大を抑制しつつ、処理結果の正確性を確保することができる。
【００１１】
本発明の第１の態様において、
前記故障診断は、前記プログラムメモリに格納された故障診断用の命令によって実現され、
前記記憶手段に書き込まれた発行先特定情報は、前記故障診断の終了と共に、前記故障診断用の命令によってリセットされることを特徴とするものとしてもよい。
【００１２】
また、本発明の第１の態様において、
前記所定の記憶手段は、前記発行先特定情報を書き込むための専用レジスタであるものとすると、好適である。
【００１３】
本発明の第２の態様は、
複数の命令実行手段を備え、該複数の命令実行手段について故障診断を行う機能を有するマイクロコンピュータであって、
プログラムメモリに格納された命令を取得し、該取得した命令を解読する命令取得解読手段と、
該命令取得解読手段により解読された命令に基づき、前記複数の命令実行手段に命令を発行すると共に、命令の発行先を特定する発行先特定情報を所定の記憶手段に書き込む命令発行手段と、
所定回数前の故障診断開始時に前記所定の記憶手段に書き込まれていた発行先特定情報を保持する過去情報記憶手段と、を備え、
前記複数の命令実行手段のうち、前記発行先特定情報が前記過去情報記憶手段に書き込まれた命令実行手段について故障診断を行い、前記発行先特定情報が前記過去情報記憶手段に書き込まれていない命令実行手段については故障診断を行わないことを特徴とする、
マイクロコンピュータである。
【００１４】
この本発明の第２の態様によれば、複数の命令実行手段に命令を発行すると共に命令の発行先を特定する発行先特定情報を所定の記憶手段に書き込む命令発行手段と、所定回数前の故障診断開始時に前記所定の記憶手段に書き込まれていた発行先特定情報を保持する過去情報記憶手段と、を備え、発行先特定情報が過去情報記憶手段に書き込まれた命令実行手段について故障診断を行い、書き込まれていない命令実行手段については故障診断を行わないため、処理負荷の増大を抑制しつつ、処理結果の正確性を確保することができる。
【００１５】
本発明の第２の態様において、
前記故障診断は、前記プログラムメモリに格納された故障診断用の命令によって実現され、
前記記憶手段に書き込まれた発行先特定情報は、前記故障診断の終了と共に、前記故障診断用の命令によってリセットされることを特徴とするものとしてもよい。
【００１６】
また、本発明の第２の態様において、
前記所定の記憶手段及び前記過去情報記憶手段は、前記発行先特定情報を書き込むための専用レジスタであるものとすると、好適である。
【００１７】
本発明の第３の態様は、
車両に搭載され、車載機器の制御を行う制御装置として構成される、本発明の第１又は第２の態様のマイクロコンピュータである。
【発明の効果】
【００１８】
本発明によれば、処理負荷の増大を抑制しつつ、処理結果の正確性を確保することが可能なマイクロコンピュータを提供することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１実施例に係るマイクロコンピュータ１のシステム構成例である。
【図２】履歴フラグレジスタ７０に書き込まれるデータを例示した図である。
【図３】マイクロコンピュータ１により実行される特徴的な処理の流れを示すフローチャートである。
【図４】マイクロコンピュータ１により実行される周期的な処理を時間の経過と共に模式的に示す図である。
【図５】本発明の第２実施例に係るマイクロコンピュータ２のシステム構成例である。
【図６】履歴フラグレジスタ７０と過去履歴フラグ保持用レジスタ７５に書き込まれるデータを例示した図である。
【図７】マイクロコンピュータ２により実行される特徴的な処理の流れを示すフローチャートである。
【図８】マイクロコンピュータ２により実行される周期的な処理を時間の経過と共に模式的に示す図である。
【発明を実施するための形態】
【００２０】
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【００２１】
＜第１実施例＞
以下、図面を参照し、本発明の第１実施例に係るマイクロコンピュータ１について説明する。
【００２２】
［構成、機能］
図１は、本発明の第１実施例に係るマイクロコンピュータ１のシステム構成例である。マイクロコンピュータ１は、主要な構成として、プログラムメモリ１０と、命令フェッチユニット２０と、命令キュー２５と、命令デコーダ３０と、命令発行部４０と、レジスタファイル５０と、実行ユニット６０と、履歴フラグレジスタ７０と、不揮発性メモリ８０と、を備える。
【００２３】
プログラムメモリ１０は、例えばフラッシュＲＯＭ（Read  Only  Memory）であり、マイクロコンピュータ１が処理する種々のタスクを実現するためのプログラム（命令列）が格納されている。
【００２４】
また、プログラムメモリ１０には、実行ユニット６０に含まれる各命令実行手段について故障診断を行うためのプログラムが格納されている。図１では、上記種々のタスクを実現するためのプログラムを通常プログラム１０Ａと、故障診断を行うためのプログラムを診断プログラム１０Ｂと表記した。
【００２５】
命令フェッチユニット２０は、プログラムカウンタを内蔵し、命令フェッチバス１２を介してプログラムメモリ１０から命令をフェッチし、命令キュー２５に格納する。
【００２６】
命令キュー２５は、例えばレジスタであり、ＦＩＦＯ（First  In，First  Out）に従って命令を入出力するように制御される。
【００２７】
命令デコーダ３０は、命令キュー２５から供給される命令を解読（デコード）し、命令発行部４０及びレジスタファイル５０に出力する。命令デコーダ３０による解読結果は、例えば、演算の種別、ソースオペランド、結果の格納場所等であり、演算の種別等については命令発行部４０に出力し、ソースオペランド等についてはレジスタファイル５０に書き込む。
【００２８】
命令発行部４０は、命令デコーダ３０から入力された命令に従って、実行ユニット６０に含まれるいずれかの命令実行手段（複数である場合もあり得る）に命令を発行する。命令発行部４０は、ハードウエア手段である。
【００２９】
実行ユニット６０は、加減算を行うＡＬＵ（Arithmetic  Logic  Unit）６１、メモリ７０等へのアクセスを行うＬＳＵ（Load  Store  Unit）６２、シフト演算器６３、ＭＵＬ（Multiplier；乗算器）６４、ＤＩＶ（Divider；除算器）６５、ＦＰＵ（Floating‐point  Processing  Unit）６６等、複数の命令実行手段を含む。これらの他、ＦＰＧＡ（Field  Programmable  Gate  Array）等の複合演算器を備えてもよい。これらの命令実行手段は、命令発行部４０が発行した命令に従って各種演算を行ったり、外部機器へのアクセス等を行ったりする。
【００３０】
履歴フラグレジスタ７０は、命令発行部４０によってフラグが書き込まれ、診断プログラム１０Ｂが実行される過程でリセット（消去）される。履歴フラグレジスタ７０は、このような用途にのみ用いられる専用レジスタであると、好適である。
【００３１】
図２は、履歴フラグレジスタ７０に書き込まれるデータを例示した図である。図示するように、履歴フラグレジスタ７０の各ビットは実行ユニット６０に含まれる各命令実行手段に対応しており、それぞれ値０か値１の二値が書き込まれる。なお、値０は、前回の故障診断からその時点までの期間において、対応する命令実行手段が動作しなかったことを示し、値１は、前回の故障診断からその時点までの期間において、対応する命令実行手段が動作したことを示す。
【００３２】
メモリ８０は、例えばＲＡＭやＥＥＰＲＯＭ（Electrically  Erasable  and  Programmable  Read  Only  Memory）であり、必要に応じて適宜選択される。
【００３３】
命令発行部４０は、上記のように実行ユニット６０に含まれるいずれかの命令実行手段に命令を発行した際に、当該命令を発行した命令実行手段に対応した履歴フラグレジスタ７０のビットを、値１に変更する（特許請求の範囲における「発行先特定情報」の書き込みに相当する）。履歴フラグレジスタ７０への書き込みは、命令発行部４０により反復的且つ機械的に行われるため、マイクロコンピュータ１にソフトウエアを追加する必要性は生じない。従って、履歴フラグレジスタ７０への書き込みは、プログラムメモリ１０の容量を増大させることなく実現することができる。
【００３４】
［故障診断］
以下、このような構成を有するマイクロコンピュータ１により実行される故障診断に係る処理の流れについて説明する。図３は、マイクロコンピュータ１により実行される特徴的な処理の流れを示すフローチャートである。本フローは、プログラムメモリ１０に格納された診断プログラム１０Ｂが読み出されることにより実現され、例えば、図示しないタイマーが満了することにより割り込み処理がなされた度に、繰り返し実行される。以下、診断プログラム１０Ｂが、係るフローの処理主体であるものとして記載する。
【００３５】
まず、診断プログラム１０Ｂは、履歴フラグレジスタ７０に書き込まれた値を取得し（Ｓ１００）、続いて履歴フラグレジスタ７０をクリアする（全て値０とする；Ｓ１０２）。
【００３６】
そして、各命令実行手段（６１〜６６）を順に選択し、それぞれについてＳ１０４〜Ｓ１０８の処理を実行する。
【００３７】
まず、選択された命令実行手段に対応した履歴フラグレジスタ７０のビットが値０であるか値１であるかを判定する（Ｓ１０４）。値０である場合は、当該命令実行手段に関する故障診断は行わない。
【００３８】
選択された命令実行手段に対応した履歴フラグレジスタ７０のビットが値１である場合は、当該命令実行手段について故障診断を行い（Ｓ１０６）、診断結果をメモリ８０に記憶させる（Ｓ１０８）。
【００３９】
Ｓ１０４〜Ｓ１０８の処理を各命令実行手段について行うと、診断結果に応じた処理を行う（Ｓ１１０）。例えば、故障の程度に応じてリセット、作動停止、注意喚起の音声又は表示による出力等を行う。また、全ての診断結果が正常であれば、当該回（前回の故障診断から今回の故障診断までの間をいう）の診断結果を削除する処理を行ってもよい。
【００４０】
［周期的制御への適用］
上記説明したマイクロコンピュータ１は、例えば周期的な処理を行う制御装置（車載制御装置や機械制御装置等）に好適に適用される。以下、この場合の処理について説明する。
【００４１】
図４は、マイクロコンピュータ１により実行される周期的な処理を時間の経過と共に模式的に示す図である。マイクロコンピュータ１は、１［ms］周期の処理（例えば、割り込みによってセンサ出力値を取得する処理）と、２［ms］周期の処理及び４［ms］周期の処理（例えば、センサ出力値に基づく演算を行う処理や演算結果をメモリ８０等に格納する処理）を行っている。
【００４２】
この場合、図４の最下段に示すようにアイドル期間が周期的に生じるため、この時間内で故障診断を行うことができる。図中、矢印は、通常プログラム１０Ａの実行によりなされた処理と、当該処理の関して行われる故障診断との対応関係を示している。図示するように、時刻（１）に実行された処理を行うために用いられた命令実行手段に関する故障診断は、その直後の時刻（２）に開始される。
【００４３】
ここで、マイクロコンピュータ１の処理性能が許す限り、各アイドル期間において故障診断を行うのが、処理結果の正確性を確保するためには最適である。故障診断の処理負荷は、図４に示す処理負荷のピーク期間（Ｐ）を基準に、当該ピーク期間（Ｐ）において生じ得るアイドル期間（ＰＩ）内に終了するように、予め設定しておくのが好ましい。
【００４４】
［まとめ］
以上説明した本実施例のマイクロコンピュータ１によれば、履歴フラグレジスタ７０に書き込まれたデータを取得して、当該回に命令が発行されて命令を実行した命令実行手段についてのみ故障診断を行うため、処理負荷の増大を抑制しつつ、処理結果の正確性を確保することができる。
【００４５】
また、履歴フラグレジスタ７０への書き込みは、命令発行部４０により反復的且つ機械的に行われるため、マイクロコンピュータ１にソフトウエアを追加する必要性は生じない。従って、プログラムメモリ１０の容量を増大させることなく、上記マイクロコンピュータ１の機能を実現することができる。
【００４６】
＜第２実施例＞
以下、図面を参照し、本発明の第２実施例に係るマイクロコンピュータ２について説明する。
【００４７】
［構成、機能］
図５は、本発明の第２実施例に係るマイクロコンピュータ２のシステム構成例である。マイクロコンピュータ２は、主要な構成として、プログラムメモリ１０と、命令フェッチユニット２０と、命令キュー２５と、命令デコーダ３０と、命令発行部４０と、レジスタファイル５０と、実行ユニット６０と、履歴フラグレジスタ７０と、過去履歴フラグ保持用レジスタ７５と、不揮発性メモリ８０と、を備える。過去履歴フラグ保持用レジスタ７５及びその利用方法以外については、第１実施例と共通するため、詳細な説明を省略する。
【００４８】
過去履歴フラグ保持用レジスタ７５は、プログラムメモリ１０に格納された診断プログラム１０Ｂによって書き込みがなされるレジスタである。図６は、履歴フラグレジスタ７０と過去履歴フラグ保持用レジスタ７５に書き込まれるデータを例示した図である。なお、係るデータは、下記図７のフローにおけるＳ２０２の処理が終了した時点のものである。
【００４９】
図示するように、過去履歴フラグ保持用レジスタ７５には、今回の故障診断の開始時に履歴フラグレジスタ７０に書き込まれていた値（今回値領域）に加えて、前回の故障診断の開始時に履歴フラグレジスタ７０に書き込まれていた値（前回値領域）が保持される。今回値領域と前回値領域の各ビットは、履歴フラグレジスタ７０と同様、実行ユニット６０に含まれる各命令実行手段に対応している。
【００５０】
なお、これに限らず、二回前、三回前等、所定回数前の故障診断の開始時に履歴フラグレジスタ７０に書き込まれていた値が保持されるものとしてもよい。
【００５１】
過去履歴フラグ保持用レジスタ７５は、このような用途にのみ用いられる専用レジスタであると好適であるが、履歴フラグレジスタ７０と統合されて同一のハードウエア手段であってもよい。また、今回値領域と前回値領域は、それぞれが別体のレジスタの領域であっても構わない。
【００５２】
［故障診断］
以下、マイクロコンピュータ２により実行される故障診断に係る処理の流れについて説明する。図７は、マイクロコンピュータ２により実行される特徴的な処理の流れを示すフローチャートである。本フローは、プログラムメモリ１０に格納された診断プログラム１０Ｂが読み出されることにより実現され、例えば、図示しないタイマーが満了することにより割り込み処理がなされた度に、繰り返し実行される。以下、診断プログラム１０Ｂが、係るフローの処理主体であるものとして記載する。
【００５３】
まず、診断プログラム１０Ｂは、履歴フラグレジスタ７０に書き込まれた値を取得し（Ｓ２００）、続いて履歴フラグレジスタ７０に書き込まれた値を過去履歴フラグ保持用レジスタ７５の今回値領域にコピーし（Ｓ２０２）、履歴フラグレジスタ７０をクリアする（全て値０とする；Ｓ２０４）。
【００５４】
そして、各命令実行手段（６１〜６６）を順に選択し、それぞれについてＳ２０６〜Ｓ２１０の処理を実行する。
【００５５】
まず、選択された命令実行手段に対応した過去履歴フラグ保持用レジスタ７５（前回値領域）のビットが値０であるか値１であるかを判定する（Ｓ２０６）。前回値領域の対応するビットが値０である場合は、当該命令実行手段に関する故障診断は行わない。
【００５６】
選択された命令実行手段に対応した過去履歴フラグ保持用レジスタ７５（前回値領域）のビットが値１である場合は、当該命令実行手段について故障診断を行い（Ｓ２０８）、診断結果をメモリ８０に記憶させる（Ｓ２１０）。
【００５７】
Ｓ２０６〜Ｓ２１０の処理を各命令実行手段について行うと、診断結果に応じた処理を行う（Ｓ２１２）。例えば、故障の程度に応じてリセット、作動停止、注意喚起の音声又は表示による出力等を行う。また、全ての診断結果が正常であれば、当該回（前回の故障診断から今回の故障診断までの間をいう）の診断結果を削除する処理を行ってもよい。
【００５８】
そして、次回の故障診断のために、過去履歴フラグ保持用レジスタ７５の今回値領域に記憶された値を過去履歴フラグ保持用レジスタ７５の前回値領域にコピーする（Ｓ２１４）。
【００５９】
［周期的制御への適用］
上記説明したマイクロコンピュータ１は、例えば周期的な処理を行う制御装置（車載制御装置や機械制御装置等）に好適に適用される。以下、この場合の処理について説明する。
【００６０】
図８は、マイクロコンピュータ２により実行される周期的な処理を時間の経過と共に模式的に示す図である。マイクロコンピュータ２は、１［ms］周期の処理（例えば、割り込みによってセンサ出力値を取得する処理）と、２［ms］周期の処理及び４［ms］周期の処理（例えば、センサ出力値に基づく演算を行う処理や演算結果をメモリ８０等に格納する処理）を行っている。
【００６１】
図４と同様、図８における矢印は、通常プログラム１０Ａの実行によりなされた処理と、当該処理の関して行われる故障診断との対応関係を示している。図示するように、本実施例の場合、第１実施例とは異なり、時刻（３）に実行された処理を行うために用いられた命令実行手段に関する故障診断は、一周期後の時刻（４）に開始される。
【００６２】
この結果、通常処理に係る処理負荷のピーク（Ｐ）と、故障診断に係る処理負荷のピーク（ＰＤ）をずらすことができる。
【００６３】
一般的に、通常処理の係る処理負荷が大きい期間においては、多くの命令実行手段が用いられた可能性が高く、従って、当該期間に用いられた命令実行手段についての故障診断も処理負荷が大きいものとなると考えられる。これに対し、本実施例では、前回の故障診断の開始時に履歴フラグレジスタ７０に書き込まれていた値（すなわち、過去履歴フラグ保持用レジスタ７５の前回値領域に書き込まれている値）に基づいて故障診断を行うため、通常処理に係る処理負荷のピーク（Ｐ）においては、その前の周期に用いられた命令実行手段についての故障診断が行われることになる。
【００６４】
この結果、第１実施例と比較して、処理負荷の増大を更に抑制することができる。
【００６５】
［まとめ］
以上説明した本実施例のマイクロコンピュータ２によれば、履歴フラグレジスタ７０に書き込まれたデータを取得して、前々回から前回の故障診断までの間に命令が発行されて命令を実行した命令実行手段についてのみ故障診断を行うため、処理負荷の増大を更に抑制しつつ、処理結果の正確性を確保することができる。
【００６６】
また、履歴フラグレジスタ７０への書き込みは、命令発行部４０により反復的且つ機械的に行われるため、マイクロコンピュータ２にソフトウエアを追加する必要性は生じない。従って、プログラムメモリ１０の容量を増大させることなく、上記マイクロコンピュータ１の機能を実現することができる。
【００６７】
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【００６８】
１、２  マイクロコンピュータ
１０    プログラムメモリ
１２    命令フェッチバス
２０    命令フェッチユニット
２５    命令キュー
３０    命令デコーダ
４０    命令発行部
５０    レジスタファイル
６０    実行ユニット
７０    履歴フラグレジスタ
７５    過去履歴フラグ保持用レジスタ
８０    不揮発性メモリ
【図１】
2012138048.tif 000003
【図２】
2012138048.tif 000004
【図３】
2012138048.tif 000005
【図４】
2012138048.tif 000006
【図５】
2012138048.tif 000007
【図６】
2012138048.tif 000008
【図７】
2012138048.tif 000009
【図８】
2012138048.tif 000010