(57)【要約】【課題】マイクロプロセッサの動作の検査を行う技術を提供する。【解決手段】プロセッサ１と、プロセッサ１の動作を検査する動作検査回路２とから構成されるプロセッサ動作検査システムであって、プロセッサ１は、実行中のプログラムがあらかじめ定義された一の状態から他の状態へ遷移するときに、状態の遷移を表す状態切替信号３２を動作検査回路２に出力し、また、現在の状態を表す状態信号３３を動作検査回路２に出力する。動作検査回路２は、プロセッサ１の状態を記憶する状態レジスタ２２と、記憶されたプロセッサ１の状態及び状態切替信号３２とから、プロセッサ１が取るべき新たな状態を算出する組み合わせ論理回路２１と、算出されたプロセッサ１が取るべき新たな状態及び状態信号３３として入力されたプロセッサ１の状態を比較してプロセッサ１の動作を検査する比較回路とを有する。【選択図】図２
2008310516.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、該プロセッサの動作を検査する動作検査回路とから構成されるプロセッサ動作検査システムであって、
前記プロセッサは、
あらかじめ定義された一の状態から他の状態へ遷移するときに、状態の遷移を表す状態切替信号を前記動作検査回路に出力する状態切替信号出力手段と、
現在の状態を表す状態信号を前記動作検査回路に出力する状態出力手段と、
を有し、
前記動作検査回路は、
前記状態切替信号の入力を受け付ける状態切替信号入力手段と、
前記状態信号の入力を受け付ける状態信号入力手段と、
前記プロセッサの状態を記憶する状態記憶手段と、
前記状態記憶手段に記憶された前記プロセッサの状態と、前記状態切替信号とから、前記プロセッサが取るべき新たな状態を算出する状態算出手段と、
前記状態算出手段によって算出された前記プロセッサが取るべき新たな状態と、前記状態信号入力手段を介して入力された前記プロセッサの状態とを比較して、前記プロセッサの動作を検査する検査手段と、
を有することを特徴とするプロセッサ動作検査システム。
【請求項２】
前記プロセッサは、複数のタスクを実行可能であり、
前記プロセッサ動作検査システムは、前記複数のタスクのそれぞれに対応する複数の動作検査回路を有し、
前記プロセッサが実行中のタスクに応じて、前記複数の動作検査回路のいずれを用いて前記プロセッサの動作の検査を行うかを切り替える切替手段をさらに有することを特徴とする請求項１に記載のプロセッサ動作検査システム。
【請求項３】
前記プロセッサは、複数のタスクを実行可能であり、
前記動作検査回路は、再構成可能プロセッサから構成され、
前記複数のタスクのそれぞれに対応する前記動作検査回路の回路情報を記憶する回路情報記憶手段と、
前記プロセッサが実行中のタスクに応じて、該タスクに対応する回路情報を前記再構成可能プロセッサにロードする制御手段と、をさらに有することを特徴とする請求項１に記載のプロセッサ動作検査システム。
【請求項４】
プロセッサの動作を検査する動作検査回路であって、
前記プロセッサから出力される、該プロセッサの状態の遷移を表す状態切替信号の入力を受け付ける状態切替信号入力手段と、
前記プロセッサから出力される、該プロセッサの現在の状態を表す状態信号の入力を受け付ける状態信号入力手段と、
前記プロセッサの状態を記憶する状態記憶手段と、
前記状態記憶手段に記憶された前記プロセッサの状態と、前記状態切替信号とから、前記プロセッサが取るべき新たな状態を算出する状態算出手段と、
前記状態算出手段によって算出された前記プロセッサが取るべき新たな状態と、前記状態信号入力手段を介して入力された前記プロセッサの状態とを比較して、前記プロセッサの動作を検査する検査手段と、
を有することを特徴とする動作検査回路。
【請求項５】
前記プロセッサは、複数のタスクを実行可能であり、
前記動作検査回路は、再構成可能プロセッサから構成され、
前記複数のタスクのそれぞれに対応する前記動作検査回路の回路情報を記憶する回路情報記憶手段と、
前記プロセッサが実行中のタスクに応じて、該タスクに対応する回路情報を前記再構成可能プロセッサにロードする制御手段と、をさらに有することを特徴とする請求項４に記載の動作検査回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサが正常に動作しているか否かを検査する技術に関する。
【背景技術】
【０００２】
従来、マイクロプロセッサの故障検出のために、ウォッチドッグタイム（ＷＤＴ）技術が用いられている（例えば、特許文献１）。ウォッチドッグタイマは、プロセッサから所定の間隔で送信される信号が途絶えると、プロセッサに対してリセットパルスを出力する。プロセッサは、このリセットパルスを受信すると、自身にリセットをかけて機能の復旧を行う。このように、ウォッチドッグタイマ技術を用いて、不具合などによってプロセッサの処理が停止したことを検出可能である。そして、そのような場合に復旧を行うことができる。
【０００３】
また、現実の回路を用いずにテスト（デバッグ）を行うための技術として、仮想テスタの技術が知られている（例えば、特許文献２）。仮想テスタは、ハードウェア記述言語（ＨＤＬ）によってモデル化されたテスト対象プログラムのモデルを用いて、実機を使用せずにコンピュータ上でのシミュレーションによってテストを行う技術である。
【０００４】
また、ＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ）をモニタするための内蔵回路を小規模とする代わりに、ＦＰＧＡ外部に大規模なメモリモジュールを設け、高速伝送線で結ぶ技術も知られている（特許文献３）。これにより、回路規模を課題にすることなく、ＦＰＧＡの動作をモニタすることができる。
【特許文献１】特開２００３−１５０２８０号公報
【特許文献２】特開２００５−３２１９１号公報
【特許文献３】特開２００３−２７１４１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記のような従来技術の場合には、下記のような問題が生じていた。
【０００６】
まず、特許文献２に記載のように仮想テスタを用いる技術では、実機の動作を検査できない。また、特許文献１に記載のようにウォッチドッグタイマを用いる技術では、プロセッサが動作していることは確認できるが、正しく動作しているかまで確認することができない。
【０００７】
プロセッサの異常動作には、次のような原因がある。第一は、プログラムの不具合（バグ）であり、仕様通りにプロセッサが動作しないことである。
【０００８】
第二は、悪意にある第三者によるプログラムの改竄である。近年、プロセッサとしてＦＰＧＡなどのように再構成可能なプロセッサを利用することが多くなっている。ＦＰＧＡでは、回路情報（プログラム）を変更することで、プロセッサの動作を変えることができる。したがって、バージョンアップなどの際には新しいプログラムを与えることで、容易にその動作を変更できる。しかし、外部から与えられたプログラムが、第三者によって書き換えられている場合がある。このような場合、製造者の意図と異なる動作が行われてしまう。
【０００９】
第三は、ソフトエラーである。ソフトエラーは高エネルギー中性子等の放射線の影響により、メモリに保持されたデータが反転してしまうことに起因するエラーである。近年の
、ＬＳＩデザインルールの微細化によって、ソフトエラーの発生確率が増えている。エラー訂正機能付きのメモリを用いることで対処可能であるが、コストが増大してしまうため、エラー訂正機能付きメモリを採用することは難しい。
【００１０】
このようにプロセッサの異常動作には、単にプロセッサの処理が停止してしまう以外にも種々のものがあり、これらを検出することが必要である。
【００１１】
本発明は上記実情に鑑みてなされたものであって、その目的とするところは、プロセッサが正常に動作しているか否かを検査可能な技術を提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するために本発明では、以下の手段または処理によってプロセッサの動作確認を行う。
【００１３】
本発明は、プロセッサ動作検査システムであって、プロセッサと該プロセッサの動作を検査する動作検査回路とから構成される。
【００１４】
プロセッサは、メモリに格納されたプログラムを解釈して実行する。プログラムは、あらかじめ定義された状態を遷移しつつ、その処理が実行される。そして、プロセッサは、一の状態から他の状態へ遷移するときに、状態の遷移を通知する状態切替信号を動作検査回路に出力する状態切替信号出力手段を有する。また、プロセッサは、現在の状態を通知する状態信号を動作検査回路に出力する状態出力手段を有する。
【００１５】
なお、「状態」とはプロセッサ上で実行されるプログラムの状態であるが、本明細書では、単に「プロセッサの状態」とも表現する。
【００１６】
ここで、どのような単位（粒度）で状態を定義するかは適宜設計可能である。状態切替信号は、状態の遷移を表すあらかじめ定義された信号パターンである。このように、プロセッサは、状態が遷移するときにその遷移を動作検査回路に通知するとともに、現在の状態を動作検査回路に通知する。
【００１７】
動作検査回路は、状態切替信号入力手段と、状態信号入力手段と、状態記憶手段と、状態算出手段と、検査手段とを有する。状態切替信号入力手段は、プロセッサから状態切替信号の入力を受け付ける。状態信号入力手段は、プロセッサから状態信号の入力を受け付ける。状態記憶手段は、プロセッサの状態を記憶する。状態算出手段は、状態記憶手段に記憶されたプロセッサの状態と、状態切替信号とから、プロセッサが取るべき新たな状態を算出する。状態記憶手段と状態算出手段とは、状態遷移を模擬するステートマシンであり、プロセッサの仕様にしたがって設計される。検査手段は、状態算出手段によって算出されたプロセッサが取るべき新たな状態と、状態信号入力手段を介して入力されたプロセッサの状態とを比較し、プロセッサの動作を検査する。検査手段は、状態算出手段によって算出された状態と、プロセッサの現在の動作とが異なる場合、プロセッサの動作に不具合があったと判断する。
【００１８】
このように、動作検査回路にステートマシンを構成し、状態遷移を逐次検査することにより、プロセッサの挙動を監視することができる。
【００１９】
検査手段は、プロセッサの動作に不具合があったと判定した場合は、プロセッサが取るべき新たな状態を、プロセッサに対して通知しても良い。そして、この通知を受け取ったプロセッサは、誤った状態から正常な状態への復旧を行っても良い。
【００２０】
このように、動作検査回路から通知される正しい状態への復旧が行えれば、プロセッサをリセットする場合に比較して迅速に復旧することができる。
【００２１】
また、プロセッサが複数のタスクを実行可能な場合、本発明に係るプロセッサ動作検査システムは、複数のタスクのそれぞれに対応する複数の動作検査回路を有しても良い。この場合、プロセッサが実行中のタスクに応じて、複数の動作回路のいずれを用いてプロセッサの動作を検査するかを切り替える切替手段を有する。
【００２２】
プロセッサが複数のタスクを実行可能なマルチタスクシステムなどの場合、全てのタスクの状態遷移を一つの動作検査回路で検査することは困難である。そこで、タスク毎に動作検査回路を用意することで、複数のタスクを実行する場合にも対応可能である。
【００２３】
また、プロセッサが複数のタスクを実行可能な場合に、動作検査回路を再構成可能なプロセッサによって構成し、プロセッサが実行中のタスクに応じて動作検査回路を再構成することも好適である。具体的には、本発明に係るプロセッサ動作検査システムは、複数のタスクのそれぞれに対応する動作回路の回路情報を記憶する回路情報記憶手段と、プロセッサが実行中のタスクに応じて、該タスクに対応する回路情報を再構成可能プロセッサ上にロードする制御手段と、をさらに有することが好適である。再構成可能プロセッサには、ＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ）が含まれる。
【００２４】
このような構成によって、複数のタスクを実行するプロセッサに対応可能である。また、再構成可能なプロセッサのプログラムを書き換えることで複数のタスクに対応するため、チップ面積を削減することができる。
【００２５】
なお、本発明は、上記処理の少なくとも一部を含むプロセッサ動作検査方法、または、かかる方法を実現するためのプログラムとして捉えることもできる。また、本発明は、上記プロセッサの動作検査を行う動作検査回路として捉えることもできる。上記手段及び処理の各々は可能な限り互いに組み合わせて本発明を構成することができる。
【００２６】
例えば、本発明の一態様としての動作検査回路は、プロセッサの動作を検査する動作検査回路であって、プロセッサから出力される、該プロセッサの状態の遷移を表す状態切替信号の入力を受け付ける状態切替信号入力手段と、プロセッサから出力される、該プロセッサの現在の状態を表す状態信号の入力を受け付ける状態信号入力手段と、プロセッサの状態を記憶する状態記憶手段と、状態記憶手段に記憶された前記プロセッサの状態及び前記状態切替信号から、プロセッサが取るべき新たな状態を算出する状態算出手段と、状態算出手段によって算出されたプロセッサが取るべき新たな状態及び状態信号入力手段を介して入力された前記プロセッサの状態を比較して、前記プロセッサの動作を検査する検査手段と、を有することを特徴とする。
【発明の効果】
【００２７】
本発明によれば、プロセッサが正常に動作しているか否かを検査することが可能となる。
【発明を実施するための最良の形態】
【００２８】
以下に図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。
【００２９】
（第１の実施形態）
〈構成〉
図１，２は、第１の実施形態に係るマイクロプロセッサの動作検査システムの概要構成を示す図である。図１は、マイクロプロセッサ１の構成と、マイクロプロセッサ１と動作
検査回路２との間でやりとりされる信号を示す。マイクロプロセッサ１は、メモリ１１と、ＡＬＵ（演算論理装置）１２と、ＰＬＬ（位相同期回路）１３と、データパス１４とを含む。図２は、動作検査回路２の構成を示す図である。
【００３０】
メモリ１１にはプログラムがロードされており、このプログラムがＡＬＵ１２によって実行される。このプログラムにおいては、複数の状態があらかじめ定義されており、状態の遷移をプログラム中で把握可能である。図２においては、マイクロプロセッサ１のプログラムが状態Ａ〜Ｄを取ることができることを、状態遷移図とフローチャートで模式的に表している。なお、実際にはより多くの数の状態を取ることができることはいうまでもない。
【００３１】
ここで、どのような単位を一つの状態として定義するかは任意であって良い。例えば、条件分岐が判定されてから、次の条件分岐が判定されるまでの処理ルーチン群を一つの状態として定義することができる。その他、サブルーチンや関数などを一つの状態として定義しても良い。ここでは、条件分岐文の間の処理ルーチン群が一つの状態として定義されているものとして説明する。
【００３２】
マイクロプロセッサ１は、状態が遷移するときに、状態切替信号３２を動作検査回路２に供給する。本実施形態において、状態切替信号３２は、if-then文等の条件分岐文の条
件が符号化されたデータである。ただし、状態切替信号３２は、状態の遷移を通知できるデータ（信号）であれば、どのようなものであっても構わない。
【００３３】
マイクロプロセッサ１は、また、現在の状態を通知する状態信号３３を動作検査回路２に供給している。
【００３４】
マイクロプロセッサ１の入出力ポートに書き込むことで信号出力が行われる。また、入出力ポートの信号を読み取ることで信号入力が行われる。すなわち、マイクロプロセッサ１及び動作検査回路２の入出力ポートが、各種の信号入力手段や信号出力手段に相当する。
【００３５】
動作検査回路２は、ＦＰＧＡのような再構成可能なハードウェアから構成される。このＦＰＧＡには、マイクロプロセッサ１によって実行されるプログラムを模擬する回路がステートマシンとして実装される。ステートマシンは順序回路であり、組み合わせ論理回路２１と状態レジスタ２２とから構成される。ステートマシンは、アプリケーションプログラムの仕様書、プログラムのソースコードを参考にしてＦＰＧＡに実装するためのＨＤＬ（ハードウェア記述言語）を用いて設計される。状態レジスタ２２には、マイクロプロセッサ１の直前の状態が記憶されている。そして、状態レジスタ２２に記憶されているデータと、マイクロプロセッサ１から入力される状態切替信号３２とが、組み合わせ論理回路２１に入力されると新しい状態が発生し、状態レジスタ２２に記憶される。すなわち、組み合わせ論理回路２１が本発明の状態算出手段に相当し、状態レジスタ２２が本発明の状態記憶手段に相当する。
【００３６】
比較回路２３は本発明の検査手段に相当し、状態レジスタ２２の値と、マイクロプロセッサ１から入力される状態信号３３とを比較して、これが一致するか否かを判定する。これらが一致する場合には、マイクロプロセッサ１の状態が正常である旨を通知する判定結果３４をマイクロプロセッサ１に通知する。マイクロプロセッサ１は判定結果として正常を受け取った場合は、状態の遷移を実行して次の状態を実行する。
【００３７】
逆に、状態レジスタ２２の値と、マイクロプロセッサ１から入力される状態信号３３とが一致しない場合には、マイクロプロセッサ１に不具合があったものと見なせる。この場
合は、マイクロプロセッサ１の状態が異常である旨を通知する判定結果３４をマイクロプロセッサ１に通知する。また、マイクロプロセッサ１が本来取るべき状態が状態レジスタ２２に記憶されているので、この正常な状態をマイクロプロセッサ１に対して正常状態３５として出力する。マイクロプロセッサ１は、この正常状態を参照して、誤った状態から正常な状態への復旧を試みる。
【００３８】
図３は、マイクロプロセッサ１が実行するプログラムの状態の遷移の一例を示す状態遷移図である。図４は、図３の状態遷移を時系列的に表した図（トレリス図）である。この例では、取りうる状態として４つの状態Ａ〜Ｄが定義されており、それらの状態間での遷移も決められている。例えば、状態Ａからは状態Ａ又はＢのみに遷移し、状態Ｂからは状態Ｃ又はＤのみに遷移する。ここで、各遷移はＩｊで表される。
【００３９】
このようにマイクロプロセッサ１の状態は、プログラムの仕様書等からあらかじめ定まるので、図３において点線に示すような状態Ｄから状態Ｃへの遷移は、正常な動作をしている限りは起こらないことが分かる。したがって、このような想定されない状態遷移が発生したらマイクロプロセッサ１に不具合が生じたということが分かる。また、例えば、状態Ｂにおいて、遷移Ｉ３が発生したにも拘わらず、状態がＢからＣに遷移した場合（正しくは、状態Ｄに遷移すべきである）も同様に、マイクロプロセッサ１に不具合が生じたということが分かる。
【００４０】
図５は、マイクロプロセッサ１から動作検査回路２に対するデータ出力と処理実行のタイムチャートを示す図である。マイクロプロセッサ１は、状態を切り替えるときに、状態切替信号として遷移Ｉｊと、次の状態ｓｊとを動作検査回路２に出力してから、新しい状態（ｓｊ）の処理を開始する。図５は、マイクロプロセッサ１の状態がＡ−Ｂ−Ｃと遷移する場合の例であり、状態Ａの処理が終了後、状態ＡからＢの遷移を示すＩ２を状態切替信号として出力し、状態Ｂに遷移する際に状態Ｂを表す状態信号を出力する。状態ＢからＣに遷移する際も同様である。
【００４１】
〈処理フロー〉
図６は、本実施形態に係るプロセッサ動作検査システムの動作例を示すフローチャートである。まず、電源が投入されると、マイクロプロセッサ１及び動作検査回路２の初期化処理（Ｓ０１）が行われる。次に、動作検査回路２は、マイクロプロセッサ１から状態切替信号３２の入力を受け付ける（Ｓ０２）。組み合わせ論理回路２１は、状態レジスタ２２の現在の内容と、入力された状態切替信号３２とから新たな状態を求め、状態レジスタ２２に記憶する（Ｓ０３）。また、動作検査回路２は、マイクロプロセッサ１から状態信号３３の入力を受け付ける（Ｓ０４）。そして、比較回路２３によって、ステートマシンの状態レジスタ２２の内容と、入力されたマイクロプロセッサ１の状態（状態信号３３）とを比較する（Ｓ０５）。これらの状態が一致するか判定し（Ｓ０６）、一致する場合（Ｓ０６：ＹＥＳ）には、マイクロプロセッサ１の状態が正常であることが分かる。動作検査回路２は、判定結果３４をマイクロプロセッサ１に出力して、ステップＳ０２に戻って検査を続行する。
【００４２】
一方、ステートマシンの状態レジスタ２２の内容と、入力されたマイクロプロセッサ１の状態とが一致しない場合（Ｓ０６：ＮＯ）は、マイクロプロセッサ１の状態が異常であることが分かる。動作検査回路２は、判定結果３４をマイクロプロセッサ１に出力するとともに、正常な状態として状態レジスタ２２に記憶されている状態をマイクロプロセッサ１に出力する（Ｓ０７）。これを受信したマイクロプロセッサ１は、レジスタ内容を解釈してプログラムカウンタの修正を行い、正常な状態への復旧を試みる。ここで、プログラムカウンタの修正による復旧ができない場合には、リセットをかけても良い。
【００４３】
このようにして、動作検査回路２を用いてマイクロプロセッサ１の動作を検査することができる。
【００４４】
〈実施形態の作用／効果〉
本実施形態によるマイクロプロセッサの動作検査システムによれば、マイクロプロセッサのプログラムの状態遷移を、動作検査回路のステートマシンによって模擬することにより、故障やソフトエラーの影響による異常を検知することができる。また、その際、正しい状態を動作検査回路からマイクロプロセッサに通知することにより、マイクロプロセッサの状態を正しい状態に戻すことも可能である。これは、リセット信号による復旧よりも素早く復旧できるという利点がある。
【００４５】
（第２の実施形態）
図７は、第２の実施形態に係る動作検査システムの動作検査回路２の構成を示す図である。本実施形態では、マイクロプロセッサ１がマルチタスクを処理するプロセッサであるとする。図に示すように、複数のタスクに応じて、ステートマシン２ａ〜ｃが実装される。ここでは、３つのステートマシンを実装しているが、その数はいくつであっても構わない。
【００４６】
図８は、マルチタスクに対応したマイクロプロセッサ１から、動作検査回路２へのデータ出力と処理実行のタイムチャートを示す図である。このタイムチャートは、１つのタスクを実行している間は、第１の実施形態（図５）とほぼ同様である。ただし、実行するタスクを切り替える際に、タスク番号（Ｔｉ）を出力する点が異なる。
【００４７】
マイクロプロセッサ１は、複数のタスクを切り替えて処理可能なマルチタスク処理可能なプロセッサである。マイクロプロセッサ１は、上記第１の実施形態で説明した信号に加えて、現在実行中のタスクを通知するタスク番号３６を動作検査回路２に出力する。このタスク番号入力は、動作検査回路２の、デコーダ２４、マルチプレクサ（ＭＵＸ）２５，２６に入力される。また、上記第１の実施形態で説明した信号（状態切替信号３２、状態入力信号３３，クロックパルス３１）は、各ステートマシン２ａ〜２ｃに入力される。
【００４８】
デコーダ２４は、マイクロプロセッサ１が実行中のタスクに応じて、どのステートマシンを用いて検査を行うか決定する。マルチプレクサ２５は、各ステートマシンが判定した判定出力のうち、いずれを判定結果出力３４として出力するかを、実行中のタスク番号に応じて決定する。マルチプレクサ２６は各ステートマシンが判定した正常状態のうち、いずれを正常状態出力３５として出力するかを、実行中のタスク番号に応じて決定する。このように、デコーダ２４及びマルチプレクサ２５，２６により、どのステートマシンを用いてマイクロプロセッサ１の動作を検査するかを切り替える。すなわち、デコーダ２４及びマルチプレクサ２５，２６は、本発明の切替手段に相当する。
【００４９】
本実施形態による動作検査システムによれば、マイクロプロセッサがマルチタスク処理する場合に、各タスクの状態遷移を追跡し、マイクロプロセッサの動作検査を行うことができる。
【００５０】
（第３の実施形態）
図９は、第３の実施形態に係る動作検査システムの動作検査回路２の構成を示す図である。本実施形態も、上記第２の実施形態と同様に、マイクロプロセッサ１がマルチタスクを処理するプロセッサであるとする。本実施形態においては、ステートマシンを１つしか用いない。ただし、ステートマシンをＦＰＧＡのような再構成可能なプロセッサによって実装し、マイクロプロセッサ１が実行中のタスクに応じてＦＰＧＡを再構成してマイクロプロセッサ１の動作を検査する。
【００５１】
コンフィギュレーションデータメモリ２８には、マイクロプロセッサ１が実行する各タスクに応じたステートマシンをＦＰＧＡ上に構成するための回路情報（コンフィギュレーションデータ）が格納されている。
【００５２】
制御回路２７は、マイクロプロセッサ１が実行するタスクが切り替わったことをタスク番号入力から判断する。タスクが切り替わると、切り替わったタスクに対応する回路情報を、コンフィギュレーションデータメモリ２８からＦＰＧＡにロードする。
【００５３】
レジスタデータ退避用データメモリ２９は、状態レジスタ２２の値を記憶する。すなわち、マイクロプロセッサ１の実行タスクが切り替わってステートマシンが書き換えられたときの状態レジスタ２２の値を退避するために用いられる。また、制御回路２７がＦＰＧＡを書き換えるときは、レジスタデータ退避用データメモリ２９に退避されていた状態レジスタ２２の値を復帰させる。
【００５４】
このように、ステートマシンを１つのＦＰＧＡで実装可能なため、必要な回路面積を小さくすることができる。
【００５５】
（変形例）
上記の実施形態で説明した動作検査システムを用いて、マイクロプロセッサ１のパフォーマンス（性能）測定が可能である。この場合、動作検査回路２は、各状態における処理時間を計測する処理時間カウンタ（処理時間計測手段）を備える。処理時間カウンタは、マイクロプロセッサ１の状態遷移を追跡する際に、クロックパルスのカウントにより各状態の滞在時間を計測して、各状態で実行される処理の演算時間を測定する。そして、実測した処理時間データをマイクロプロセッサ１にフィードバックし、制御を行うことによって実時間性能を保持することが可能となる。
【図面の簡単な説明】
【００５６】
【図１】第１の実施形態に係るマイクロプロセッサ動作検査システムの概要構成を示す図である。
【図２】第１の実施形態に係るマイクロプロセッサ動作検査システムの概要構成を示す図である。
【図３】マイクロプロセッサが実行するプログラムの状態遷移図である。
【図４】マイクロプロセッサが実行するプログラムの状態遷移を時系列的に表した図（トレリス図）である。
【図５】第１の実施形態に係るマイクロプロセッサ動作検査システムにおける、マイクロプロセッサから動作検査回路に対するデータ出力と、処理実行のタイムチャートを示す図である。
【図６】第１の実施形態に係るマイクロプロセッサ動作検査システムの動作例を示すフローチャートである。
【図７】第２の実施形態に係るマイクロプロセッサ動作検査システムにおける動作検査回路の構成示す図である。
【図８】第２，３の実施形態に係るマイクロプロセッサ動作検査システムにおける、マイクロプロセッサから動作検査回路に対するデータ出力と、処理実行のタイムチャートを示す図である。
【図９】第３の実施形態に係るマイクロプロセッサ動作検査システムにおける動作検査回路の構成を示す図である。
【符号の説明】
【００５７】
１    マイクロプロセッサ
１２  ＡＬＵ
２    動作検査回路
２１  組み合わせ論理回路
２２  状態レジスタ
２３  比較回路
３１  クロック入力
３２  状態切替信号入力
３３  状態入力
３４  判定結果出力
３５  正常状態出力
【図１】
2008310516.tif 000003
【図２】
2008310516.tif 000004
【図３】
2008310516.tif 000005
【図４】
2008310516.tif 000006
【図５】
2008310516.tif 000007
【図６】
2008310516.tif 000008
【図７】
2008310516.tif 000009
【図８】
2008310516.tif 000010
【図９】
2008310516.tif 000011