(57)【要約】【課題】システムに実装された状態で内部回路に対して自由度の高いセルフテストを実行でき半導体データ処理デバイスを提供する。【解決手段】ＣＰＵ及び内部回路にテストパターンを発生してテストを行って結果を保持するテスト回路(７，８)と、テスト回路を起動するテスト制御回路（６）と共に、テスト起動レジスタ（９）、テスト状態レジスタ(１０)、及びテスト汎用レジスタ(１１)を備える。テスト起動レジスタにスタートビットがセットされて、テスト制御回路は、テスト回路によるＣＰＵなどのテスト動作を起動しテスト結果を蓄積し、テスト動作の終了に応答してＣＰＵと内部回路をリセットする。この後、ＣＰＵは、テスト状態レジスタの値によりテストが行われたことを確認すると、テスト回路よりテスト結果を読み出して判定を行い、テスト汎用レジスタの設定に従って、続けてテストを行うかどうかなどを判定しテストを続けることが可能とされる。【選択図】図１
2010140219.tif 000002
【特許請求の範囲】
【請求項１】
命令をフェッチして実行するＣＰＵと、前記ＣＰＵの制御に基づいて動作する内部回路とを含む半導体データ処理デバイスであって、
前記ＣＰＵと内部回路にテストパターンを発生してテストを行って結果を保持するテスト回路と、
前記テスト回路に起動をかけるテスト制御回路と、
前記ＣＰＵが前記テスト回路に起動をかけるためのテスト起動レジスタと、
前記テスト回路によるテストが完了したことを示すフラグを含むテスト状態レジスタと、
前記ＣＰＵが読み出しまたは書き込み可能なテスト汎用レジスタと、
前記ＣＰＵ、前記内部回路、前記テスト回路、前記テスト制御回路、前記テスト起動レジスタ、及び前記テスト状態レジスタをリセットするリセット制御回路と、を含み、
前記テスト制御回路は、前記ＣＰＵの前記テスト起動レジスタへの書き込みによって前記テスト回路によるテスト動作を起動し、前記テスト回路によるテスト動作の終了に応答して前記ＣＰＵと前記内部回路をリセットし、
前記ＣＰＵは、リセット解除後のプログラム実行において前記テスト状態レジスタの値によりテストが行われたことを確認して前記テスト回路より結果を読み出して判定を行い、前記テスト汎用レジスタの設定状態に基づいて続けてテストを行うかどうかを判定し、前記テスト起動レジスタを操作することによってテストを続けることが可能である、半導体データ処理デバイス。
【請求項２】
前記内部回路は、前記ＣＰＵによって制御される論理回路と、前記ＣＰＵによってアクセス可能にされるメモリであり、
前記テスト回路は、前記ＣＰＵ及び論理回路をテスト対象とする第１のテスト回路と、前記メモリをテスト対象とする第２のテスト回路であり、
前記テスト起動レジスタは前記第１のテスト回路用と前記第２のテスト回路用に別々のスタートフラグビットを有し、
前記テスト状態レジスタは前記第１のテスト回路用と前記第２のテスト回路用に別々の状態フラグビットを有する、請求項１記載の半導体データ処理デバイス。
【請求項３】
前記テスト汎用レジスタは、テスト動作のリトライ上限回数データとテスト動作の現在のリトライ回数データを保持するレジスタである、請求項１記載の半導体データ処理デバイス。
【請求項４】
命令をフェッチして実行するＣＰＵと、前記ＣＰＵの制御を受けて動作する内部回路とを含む半導体データ処理デバイスであって、
前記ＣＰＵと前記内部回路にテストパターンを発生してテストを行って結果を保持するテスト回路と、
前記テスト回路に起動をかけるテスト制御回路と、
前記ＣＰＵが前記テスト回路に起動をかけるためのテスト起動レジスタと、
前記テスト回路によるテストが完了したことを示すフラグを含むテスト状態レジスタと、
前記ＣＰＵが読み出しまたは書き込み可能なテスト汎用レジスタと、
前記ＣＰＵが前記テスト回路のテスト結果の期待値を設定し、前記テスト回路がテストを終了したとき、前記ＣＰＵが設定したテスト結果の期待値とテスト回路の出力を比較して結果を出力する比較器と
前記ＣＰＵ、前記内部回路、前記テスト回路、前記テスト制御回路、前記テスト起動レジスタ、前記テスト状態レジスタ、前記比較器をリセットするリセット制御回路と、を含み、
前記テスト制御回路は、前記ＣＰＵの前記テスト起動レジスタへの書き込みによって前記テスト回路によるテスト動作を起動し、前記テスト回路によるテスト動作の終了に応答して前記ＣＰＵと前記内部回路をリセットし、
前記ＣＰＵは、リセット解除後のプログラム実行において前記テスト状態レジスタの値によりテストが行われたことを確認して前記比較器より結果を読み出して判定を行い、前記テスト汎用レジスタの設定状態に基づいて続けてテストを行うかどうかを判定し、前記テスト起動レジスタを操作することによってテストを続けることが可能である、半導体データ処理デバイス。
【請求項５】
前記比較器による比較結果を前記半導体データ処理デバイスの外部に出力する出力端子を有する、請求項４記載の半導体データ処理デバイス。
【請求項６】
前記内部回路は、前記ＣＰＵによって制御される論理回路と、前記ＣＰＵによってアクセス可能にされるメモリであり、
前記テスト回路は、前記ＣＰＵ及び論理回路をテスト対象とする第１のテスト回路と、前記メモリをテスト対象とする第２のテスト回路であり、
前記テスト起動レジスタは前記第１のテスト回路用と前記第２のテスト回路用に別々のスタートフラグビットを有し、
前記テスト状態レジスタは前記第１のテスト回路用と前記第２のテスト回路用に別々の状態フラグビットを有する、請求項４記載の半導体データ処理デバイス。
【請求項７】
前記テスト汎用レジスタは、テスト動作のリトライ上限回数データとテスト動作の現在のリトライ回数データを保持するレジスタである、請求項４記載の半導体データ処理デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自己診断機能を備えた半導体データ処理デバイスに係り、例えば自動車の制御システムに適用して有効な技術に関する。
【背景技術】
【０００２】
半導体データ処理デバイスたとえばマイクロコンピュータは、家電製品、ＡＶ機器、携帯電話、自動車、産業機械等の機器に組み込まれ、メモリに記憶されているプログラムにしたがって処理を行うことで、それぞれの機器の制御を行う半導体集積回路である。
【０００３】
自動車では、制御装置の故障が事故につながる可能性があるため、マイクロコンピュータを含む部品に高い信頼性が求められるとともに、故障が発生した場合にはこれを検出して自動車が危険な状態にならないように安全機能を働かせるように設計されている。マイクロコンピュータはセンサやアクチュエータの診断を行ってこれらの故障を検出するだけでなく、マイクロコンピュータ自身の故障も検出する必要がある。
【０００４】
マイクロコンピュータの故障検出には様々な方法があるが、マイクロコンピュータの内部でテストパターンを発生させてメモリや論理回路をテストするＢＩＳＴ（Ｂｕｉｌｔ Ｉｎ Ｓｅｌｆ Ｔｅｓｔ）という手法が用いられるようになってきた。ＣＰＵのプログラム処理による方法に比べて短時間でテストを実行することが可能である。
【０００５】
特許文献１には、メモリとＣＰＵと論理回路を含むマイクロコンピュータにおいて、メモリとＣＰＵと論理回路のＢＩＳＴを行う方法が示されている。同文献においては、ＣＰＵ及び当該ＣＰＵが制御する周辺回路などの論理回路にテスト回路がテストパターンを与えて動作させ、動作結果をテスト回路が圧縮し、圧縮結果をＣＰＵが比較するテスト動作と、テスト回路がＲＡＭにテストパターンを与えて動作させ、動作結果をテスト回路が圧縮し、圧縮結果をＣＰＵが比較するテスト動作とを行う、自己診断機能を備える。この自己診断機能を用いるために、パワーオンリセット後にＣＰＵが操作するテスト起動レジスタを備える。テスト起動レジスタにスタートビットをセットすることにより、テスト制御回路はテスト回路を動作させてテストを実行させる。テスト回路によるテスト動作が終了すると、テスト制御回路はＣＰＵ等を再度初期化し、そのとき、テスト起動レジスタは初期化対象とはされず、そこにセット状態のテストスタートビットが残されていれば、ＣＰＵはテスト回路にテスト動作の結果があることを認識し、これを期待値と比較してテスト結果の正否を判別する。
【０００６】
【特許文献１】特開２００１−２７９５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記特許文献１に記載の技術は、パワーオンリセット後にＣＰＵのプログラム処理によってメモリ、ＣＰＵ、及び論理回路のＢＩＳＴを実行し、結果をＣＰＵで判定することが可能である。しかしながら、テスト結果が不一致であった場合にテストをリトライしたり、複数のテストを１つずつＣＰＵが結果を確認しながら実行すること、には対応できない。また、テストの結果の判定をＣＰＵのプログラム処理で行うため、ＣＰＵがテスト結果の判定のための演算処理機能の一部に故障を有している場合を想定したときには正しく判定が行われていない可能性もある。
【０００８】
本発明の目的は、システムに実装された状態で、パワーオンリセット後に内部回路のセルフテストを実行することができ、そのテストが１回限りではなく必要に応じて何回でも実行できるなどの、テストの自由度が高い半導体データ処理デバイスを提供することにある。
【０００９】
本発明の別の目的は、上述したテストの自由度が高く、その上、ＣＰＵによるテスト結果の判定機能に故障が発生した場合にもテスト結果の判定を行うことができる半導体データ処理デバイスを提供することにある。
【００１０】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１２】
すなわち、ＣＰＵと内部回路を備えた半導体データ処理デバイスはセルフテスト機能を実現するために、前記ＣＰＵ及び内部回路にテストパターンを発生してテストを行って結果を保持するテスト回路と、テスト回路に起動をかけるテスト制御回路とともに、テスト起動レジスタ、テスト状態レジスタ、およびテスト汎用レジスタを備える。パワーオンリセット解除後のＣＰＵのプログラム制御によってテスト起動レジスタにスタートビットがセットされることにより、テスト制御回路は、前記テスト回路によるＣＰＵなどのテスト動作を起動してテスト結果を内部に蓄積し、前記テスト回路によるテスト動作の終了に応答して前記ＣＰＵと前記内部回路をリセットする。この後、ＣＰＵは、リセット解除後のプログラム実行においてテスト状態レジスタの値によりテストが行われたことを確認すると、前記テスト回路よりテスト結果を読み出して判定を行い、テスト汎用レジスタの設定に従って、続けてテストを行うかどうかを判定し、前記テスト起動レジスタに書き込むことによってテストを続けることが可能とされる。
【００１３】
上記より、パワーオンリセット後のＣＰＵのプログラム処理によってセルフテストを開始することができ、テスト動作の終了によるリセット解除後には、先にテストが行われたか否か、どの回路部分のテストが行われたか否かをテスト状態レジスタで判別でき、それによってテスト結果の判定を行ったり、また、テスト汎用レジスタの設定に従ってリトライを行ったり、リトライを繰り返したりする動作を、その設定に従って自由に行うことができる。
【００１４】
テスト結果の判定はＣＰＵが行ってもよいし、また、それ専用の比較器を配置してもよい。
【発明の効果】
【００１５】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１６】
すなわち、システムに実装された状態で、パワーオンリセット後に内部回路のセルフテストを実行することができ、そのテストが１回限りではなく必要に応じて何回でも実行できるなどの自由度が高いセルフテストが可能である。
【００１７】
また、テスト結果の判定に専用化された比較器をそなえることにより、ＣＰＵによるテスト結果の判定機能に故障が発生した場合にもテスト結果の判定を行うことができる。
【発明を実施するための最良の形態】
【００１８】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１９】
〔１〕本発明に係る半導体データ処理デバイス（１００）は、命令をフェッチして実行するＣＰＵ（１）と、前記ＣＰＵの制御に基づいて動作する内部回路（２，３）とを含み、更に、前記ＣＰＵと内部回路にテストパターンを発生してテストを行って結果を保持するテスト回路（７，８）と、前記テスト回路に起動をかけるテスト制御回路（６）と、前記ＣＰＵが前記テスト回路に起動をかけるためのテスト起動レジスタ（９）と、前記テスト回路によるテストが完了したことを示すフラグを含むテスト状態レジスタ（１０）と、前記ＣＰＵが読み出しまたは書き込み可能なテスト汎用レジスタ（１１）と、前記ＣＰＵ、前記内部回路、前記テスト回路、前記テスト制御回路、前記テスト起動レジスタ、及び前記テスト状態レジスタをリセットするリセット制御回路（５）と、を含む。前記テスト制御回路は、前記ＣＰＵの前記テスト起動レジスタへの書き込みによって前記テスト回路によるテスト動作を起動し、前記テスト回路によるテスト動作の終了に応答して前記ＣＰＵと前記内部回路をリセットする。前記ＣＰＵは、リセット解除後のプログラム実行において前記テスト状態レジスタの値によりテストが行われたことを確認して前記テスト回路より結果を読み出して判定を行い、前記テスト汎用レジスタの設定状態に基づいて続けてテストを行うかどうかを判定し、前記テスト起動レジスタを操作することによってテストを続けることが可能である。
【００２０】
〔２〕項１の半導体データ処理デバイスにおいて、前記内部回路は、前記ＣＰＵによって制御される論理回路（２）と、前記ＣＰＵによってアクセス可能にされるメモリ（３）である。前記テスト回路は、前記ＣＰＵ及び論理回路をテスト対象とする第１のテスト回路（７）と、前記メモリをテスト対象とする第２のテスト回路（８）である。前記テスト起動レジスタは前記第１のテスト回路用と前記第２のテスト回路用に別々のスタートフラグビット（ＳＴＡ，ＳＴＢ）を有する。前記テスト状態レジスタは前記第１のテスト回路用と前記第２のテスト回路用に別々の状態フラグビット（ＥＮＡ，ＥＮＢ）を有する。
【００２１】
〔３〕項１の半導体データ処理デバイスにおいて、前記テスト汎用レジスタは、テスト動作のリトライ上限回数データとテスト動作の現在のリトライ回数データを保持するレジスタである。
【００２２】
〔４〕本発明の別の観点による半導体データ処理デバイスは、項１の半導体データ処理デバイスの構成に加えて、前記ＣＰＵが前記テスト回路のテスト結果の期待値を設定し、前記テスト回路がテストを終了したとき、前記ＣＰＵが設定したテスト結果の期待値とテスト回路の出力を比較して結果を出力する比較器（４０)を有する。
【００２３】
〔５〕項４の半導体データ処理デバイスにおいて、前記比較器による比較結果を前記半導体データ処理デバイスの外部に出力する出力端子を有する。
【００２４】
〔６〕項４の半導体データ処理デバイスにおいて、前記内部回路は、前記ＣＰＵによって制御される論理回路と、前記ＣＰＵによってアクセス可能にされるメモリである。前記テスト回路は、前記ＣＰＵ及び論理回路をテスト対象とする第１のテスト回路と、前記メモリをテスト対象とする第２のテスト回路である。前記テスト起動レジスタは前記第１のテスト回路用と前記第２のテスト回路用に別々のスタートフラグビットを有する。前記テスト状態レジスタは前記第１のテスト回路用と前記第２のテスト回路用に別々の状態フラグビットを有する。
【００２５】
〔７〕項４の半導体データ処理デバイスにおいて、前記テスト汎用レジスタは、テスト動作のリトライ上限回数データとテスト動作の現在のリトライ回数データを保持するレジスタである。
【００２６】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００２７】
図１は本発明に係る半導体データ処理デバイスの一実施の形態であるマイクロコンピュータのブロック図である。マイクロコンピュータ１００は、中央処理装置（ＣＰＵ）１、論理回路２、ＲＡＭ３及びリセット制御回路５と共に、ＢＩＳＴ（Built In Self Test）回路として、テスト制御回路６、テスト回路Ａ７、テスト回路Ｂ８、テスト起動レジスタ９、テスト状態レジスタ１０、及びテスト汎用レジスタ１１を有する。
【００２８】
ＣＰＵ１は命令を実行して演算やデータ転送などの処理を行う回路である。論理回路２はＣＰＵ１の設定に従って特定の機能を実行する回路モジュールであり、例えばダイレクトメモリアクセスコントローラ、Ａ／Ｄコンバータ、タイマ、通信モジュール、外部入出力回路などである。ＲＡＭ３はＣＰＵ１が実行する命令および処理するデータを記憶する記憶回路である。ＣＰＵ１、論理回路２、ＲＡＭ３、テスト制御回路６，７はバス１０１に接続されている。リセット制御回路５はＣＰＵ１及び論理回路２を初期化するためのリセット信号５０１と、テスト起動レジスタ９及びテスト状態レジスタ１０を初期化するためのリセット信号５０３と、テスト制御回路６、テスト回路Ａ７及びテスト回路Ｂ８を初期化するためのリセット信号５０２を生成する。外部からのリセット要求信号ＲＥＳによる初期化が指定されたときリセット制御回路５はリセット信号５０１、５０２及び５０３を活性化し、テスト制御回路６からのリセット要求信号６０１により初期化が指定されたときリセット制御回路５はリセット信号５０３を活性化する。
【００２９】
テスト制御回路６はＣＰＵ１、論理回路２、ＲＡＭ３のテストの起動などの制御を行う。テスト回路Ａ７はＣＰＵ１と論理回路２をテストする回路である。テスト制御回路６からのテスト起動信号６０２により、インタフェース配線７０１を用いてＣＰＵ１にテストパターンを注入し、インタフェース信号配線７０２を用いて論理回路２にテストパターンを注入する。テストパターンの注入が完了するとＣＰＵ１と論理回路２にクロックを与えて動作させ、動作結果をインタフェース配線７０１、７０２から取り込み、圧縮して保持する。この動作をテストの数だけ繰り返す。テストが終了するとテスト回路Ａ７はテスト制御回路６に完了信号７０３を通知する。テスト回路Ｂ８はＲＡＭ３をテストする回路である。テスト制御回路６からの起動信号６０３により、インタフェース配線８０１を用いてＲＡＭ３にテストパターンを注入してテストを行い、その結果をインタフェース配線８０１から取り込む。セレクタ４はＲＡＭ３のインタフェース配線４０１を、通常動作時にはバス１０１と接続し、テスト時にはテスト回路Ｂ８とのインタフェース配線８０１と接続する。テストが終了するとテスト回路Ｂ８はテスト制御回路６に完了信号８０２を通知する。
【００３０】
テスト制御回路６は、特に制限されないが、ステートマシン又はプログラム制御回路で構成される。テスト回路Ａ７及びテスト回路Ｂ８は、テストパターンを記憶し若しくは発生するテストパターン回路と、テスト動作結果の圧縮回路を有し、テスト制御回路６の制御に従って動作される。
【００３１】
テスト起動レジスタ９はＣＰＵ１がバス１０１を介して書き込み可能なレジスタで、起動を意味する値が設定されるとテスト制御回路６に起動信号９０１を出力する。パワーオンリセットを行うと、リセット信号５０３によりテスト起動レジスタは起動しないを意味する値に初期設定される。また、リセット信号５０２によりテスト制御回路６、テスト回路Ａ７、テスト回路Ｂ８が初期化される。ＣＰＵ１がテスト起動レジスタ９に起動を意味する値を設定するとテストが開始され、完了するとテスト制御回路６はリセット制御回路５にリセット要求６０１を出力して、リセット信号５０１により再びＣＰＵ１と論理回路２を初期化する。テスト状態レジスタ１０はテストが完了したか否かを示すレジスタであり、その値は最初テスト未完を意味する値に初期化され、テストが完了するとテスト制御回路６が信号６０４によりテスト完了を意味する値に設定変更する。
【００３２】
テスト汎用レジスタ１１はＣＰＵ１が読み出しおよび書き込み可能なレジスタで、リセット制御回路５による初期化は行われない。テスト結果が不一致だった場合にリトライするかどうかを決定したり、複数のテストを実行する場合にテストの総数や完了したテストの番号を記憶するために使用する。ＣＰＵ１や論理回路２の内部レジスタ（図示せず）はリセット信号５０１によってテスト終了後に初期化され、ＲＡＭ３はテストによってデータが書き換えられてしまうため上記目的に使用することはできない。テストを実行しても値を保持することのできるテスト汎用レジスタ１１によって上記目的を達成する。
【００３３】
リセット要求が解除されるとＣＰＵ１はプログラムの実行を開始するが、テスト状態レジスタがテスト完了を意味する値に設定されていることを確認したときは、テストの結果判定を行う。テストの結果判定はＣＰＵ１がテスト回路Ａ７から結果データを読み出し、期待値と比較することによって行う。ＲＡＭのテスト結果はＣＰＵ１がテスト回路Ｂ８から合否判定データを読み出すことによって行う。
【００３４】
図２は図１におけるテスト起動レジスタ（ＣＲ：Ｃｏｎｔｒｏｌ Ｒｅｇｉｓｔｅｒ）９の一例を示す。テスト起動レジスタ９はＣＰＵ１がバス１０１を介して読み出しおよび書き込み可能な８ビットのレジスタである。ビット７から２は予約でありレジスタの実体は無くても良い。読み出す場合には不定値あるいは“０”などの固定値を読み出すようにする。ビット１はテスト回路Ｂ８の起動許可ビット（ＳＴＢ）である。初期値は“０”であり起動しないを意味する。“１”はテスト回路Ｂ８によるテストの起動を意味する。起動許可ビットＳＴＢが“１”に設定されると、信号９０１によって、テスト回路Ｂ８にテスト動作が指示され、これによってテスト回路Ｂ８がＲＡＭ３のテストを開始する。ビット０はテスト回路Ａ７の起動許可ビット（ＳＴＡ）である。初期値は“０”であり起動しないを意味し、“１”はテスト回路Ａ７によるテスト動作の起動を意味する。起動許可ビットＳＴＡが“１”に設定されると、信号９０１によって、テスト回路Ａ７にテスト動作が指示され、これによってテスト回路Ａ７がＣＰＵ１と論理回路２のテストを開始する。信号９０１はテスト起動レジスタ９の起動許可ビットのビット数に応ずる数複数ビットを有する信号である。
【００３５】
図３は図１におけるテスト状態レジスタ（ＳＲ：Ｓｔａｔｕｓ Ｒｅｇｉｓｔｅｒ）１０を示す。テスト状態レジスタ１０はＣＰＵ１がバス１０１を介して読み出し可能な８ビットのレジスタである。ビット７から２は予約でありレジスタの実体は無くても良い。読み出す場合には不定値あるいは“０”などの固定値を読み出すようにする。ビット１はテスト回路Ｂ８の終了フラグ（ＥＮＢ）である。初期値は“０”であり、テスト回路Ｂ８によるテスト動作が終了していないを意味する。“１”はテスト回路Ｂ８によるテストの終了を意味し、テスト回路Ｂ８のテスト実行が完了するとテスト制御回路６が終了フラグＥＮＢを“１”に設定する。ビット０はテスト回路Ａ７の終了フラグ（ＥＮＡ）である。初期値は“０”であり、テスト回路Ａ７によるテスト動作が終了していないを意味する。“１”はテスト回路Ａ７によるテストの完了を意味し、テスト回路Ａ７のテスト実行が完了するとテスト制御回路６がＥＮＡを“１”に設定する。
【００３６】
例えば,テスト回路Ａ７及びテスト回路Ｂ８のテスト実行が完了すると、ＳＴＡとＥＮＡおよびＳＴＢとＥＮＢはそれぞれ値が“１”“１”に設定されることになる。テストを再実行させる場合には、ＣＰＵ１がＳＴＡとＳＴＢを一旦“０”に戻した後、テスト制御回路６がＥＮＡとＥＮＢを“０”に設定し、その後に、ＣＰＵ１がＳＴＡまたはＳＴＢに“１”を設定する手順を採用することができる。上記ＣＰＵ１がＳＴＡとＳＴＢを一旦“０”に戻す処理は、テストが完了する毎にテスト制御回路６がＳＴＡ，ＳＴＢを順次“０”にクリアする手順に代えてもよい。また、ＳＴＡとＳＴＢは同時に“１”に設定する必要性は無く、必要な方だけを“１”に設定してもよい。例えば、テスト回路Ａ７の結果が不一致だった場合にＣＰＵ１と論理回路２のテストのみリトライする方法が考えられる。ＳＴＡとＳＴＢが同時に“１”に設定されたとき、テスト制御回路６は、テスト回路Ａ７の動作を先に行ってから、テスト回路Ｂ８の動作を開始し、双方のつと実行が完了したときリセット要求６０１を出力する。
【００３７】
特に制限されないが、図２及び図３の例は、テスト回路Ａ７、テスト回路Ｂ８に対するテスト対象回路部分をテスト起動レジスタ９によって指定する構成にはなっていない。
【００３８】
図７にはテスト回路Ａ７、テスト回路Ｂ８に対するテスト対象回路部分（例えば第１回路ブロック、第２回路ブロック、及び第３回路ブロック）をテスト起動レジスタ９によって指定可能にする場合のレジスタ構成が例示される。テスト回路Ａ７、テスト回路Ｂ８は夫々３ブロックに分けてテスト可能とする場合について説明する。
【００３９】
テスト起動レジスタ（ＣＲ）９は、テスト回路Ａ７の起動許可ビットとしてＳＴＡ０，ＳＴＡ１，ＳＴＡ２の３ビットを有し、テスト回路Ｂ８の起動許可ビットとしてＳＴＢ０，ＳＴＢ１，ＳＴＢ２の３ビットを有する。起動許可ビットＳＴＡ０，ＳＴＡ１，ＳＴＡ２はテスト回路Ａ７の第１回路ブロック、第２回路ブロック、第３回路ブロックの起動許可／不許可を指示する。起動許可ビットＳＴＢ０，ＳＴＢ１，ＳＴＢ２はテスト回路Ｂ８の第１回路ブロック、第２回路ブロック、第３回路ブロックの起動許可／不許可を指示する。夫々のビットの論理値の意味は前記と同じである。この場合、前記信号９０１は６ビットになる。
【００４０】
テスト状態レジスタ(ＳＲ)１０は、テスト回路Ａ７の終了フラグとしてＥＮＡ０，ＥＮＡ１，ＥＮＡ２の３ビットを有し、テスト回路Ｂ８の終了フラグとしてＥＮＢ０，ＥＮＢ１，ＥＮＢ２の３ビットを有する。終了フラグＥＮＡ０，ＥＮＡ１，ＥＮＡ２はテスト回路Ａ７の第１回路ブロック、第２回路ブロック、第３回路ブロックのテスト実行完了／未完を意味する。終了フラグＥＮＢ０，ＥＮＢ１，ＥＮＢ２はテスト回路Ｂ８の第１回路ブロック、第２回路ブロック、第３回路ブロックのテスト実行完了／未完を意味する。夫々のビットの論理値の意味は前記と同じである。
【００４１】
テスト汎用レジスタ（ＧＲ）１１は、テスト回路Ａ７の現リトライ回数データＲＴＹＡを保持するレジスタ（ＧＲ１）、テスト回路Ｂ８の現リトライ回数データＲＴＹＢを保持するレジスタ（ＧＲ２）、テスト回路Ａ７のテスト実行に関するリトライ上限回数データＬＩＭＡを保持するレジスタＧＲ３、及びテスト回路Ｂ８のテスト実行に関するリトライ上限回数データＬＩＭＢを保持するレジスタ（ＧＲ４）から構成される。
【００４２】
図４は図１におけるＣＰＵとテスト回路Ａ７の処理フローを例示する。ここでは、例えばテスト起動レジスタ９として図２の構成、テスト状態レジスタ１０として図３の構成を採用し、テスト回路Ａ７のテストを実行する場合について説明する。
【００４３】
まずパワーオンリセットによってＣＰＵ１とテスト回路Ａ７は共にリセットされる（Ｓ２０、Ｓ３０）。リセットが解除されるとＣＰＵ１はプログラムの実行を開始し、テスト状態レジスタＳＲのＥＮＡをチェックする（Ｓ２１）。ＥＮＡはパワーオンリセットにより“０”に初期化されているためテスト起動レジスタＣＲのＳＴＡを設定する処理（Ｓ２２）に進む。ＳＴＡの判定処理（Ｓ２３）によりテストを実行しない場合にはテスト終了となる。一方、テスト回路Ａ７は起動リセット後、起動レジスタＣＲのＳＴＡのチェック（Ｓ３１）を行っており、“１”が設定されるまでチェック処理を続ける。ＳＴＡに“１”が設定されるとテスト回路Ａ７はテスト回路Ａ７のためのテストＡを実行する（Ｓ３２）。テストＡが完了するとＣＰＵ１および論理回路２のリセットを行う（Ｓ３３）。またテストＡの完了によりテスト制御回路６がＳＴＡを“０”にクリアしているため、テスト回路Ａ７は再びＳＴＡのチェックを行う（Ｓ３１）。ＣＰＵ１はリセット（Ｓ２０）が解除されると再びプログラムの実行を開始し、テスト状態レジスタＳＲのＥＮＡをチェックする（Ｓ２１）。ＥＮＡが“１”に設定されているためテストＡの結果確認処理（Ｓ２４）を実行する。結果が一致していれば次のテストを実行するか否かの判定（Ｓ２６）を行う。ここで図１におけるテスト汎用レジスタ１１が用いられる。テスト汎用レジスタはテスト完了後にリセットされないため、テスト開始前の状態を保持している。テスト汎用レジスタ１１は複数あり、例えば２本をテストの総数、実行完了したテスト数の記憶に割り当てることによって、複数回の実行を制御できる。次のテストがある場合にはＳＴＡの設定等のテスト設定（Ｓ２２）を行ってテストの起動をかける。次のテストが無い場合にはテスト終了となる。テストＡの結果確認処理（Ｓ２４）において結果が不一致だった場合にはリトライを行うか否かの判定（Ｓ２７）を行う。ここでもテスト汎用レジスタ１１が用いられる。例えば２本をリトライ回数の上限、リトライした回数の記憶に割り当てることによって、リトライの実行を制御できる。リトライを行う場合にはテスト設定（Ｓ２２）を行ってテストの起動をかける。リトライしない場合にはエラー処理（２９）に移る。エラー処理は、特に制限されないが、ＣＰＵ１が所要の例外処理を実行して、故障のあることを外部に通知する処理とされる。ここれは、テスト結果の比較をＣＰＵ１が行うから、ＣＰＵ１は故障していないことを前提としている。
【００４４】
実際は、当然ながら、テスト回路Ａ７だけでなく、テスト回路Ｂ８のテストも考慮してテスト動作が行われることになり、図示は省略するが、ステップＳ２１，Ｓ２３，Ｓ３１の判定においてＥＮＢ、ＳＴＢも考慮するようにすればよい。すなわち、ステップＳ２１でテスト状態レジスタ１０のビットＥＮＡの後にＥＮＢの状態を判定し、ＥＮＡの場合と同様にＥＮＢの状態に従った制御を行い、ステップＳ２３でテスト起動レジスタ９のビットＳＴＡの後にＳＴＢの状態を判定し、ＳＴＡの場合と同様にＳＴＢの状態に従った制御を行い、ステップＳ３１でテスト起動レジスタ９のビットＳＴＡの後にＳＴＢの状態を判定し、ＳＴＡの場合と同様にＳＴＢの状態に従った制御をおこなえばよい。
【００４５】
図５は本発明に係る半導体データ処理デバイスの別の実施の形態であるマイクロコンピュータのブロック図である。図１のマイコンとの相違点について説明する。比較器４０はテスト回路Ａ７の結果７０４と期待値を比較する専用の比較器である。期待値はＣＰＵ１がバス１０１を介して比較器４０に書き込んでおく。テスト回路Ａ７の実行が完了すると、テスト制御回路６は比較器４０に比較許可信号６０５を出力し、比較器４０は比較を行う。比較結果はバス１０１を経由してＣＰＵ１が読み出すことが可能である。また、比較器４０からエラー信号４００１をマイクロコンピュータ１００の外部に出力することもできる。ＣＰＵ１の故障によってテスト結果の判定ができない場合に、マイクロコンピュータ1の特定の外部端子からテスト結果を確認することが可能になる。
【００４６】
比較器４０は全てのテスト結果に対して比較動作を行うことを要しない。例えばＣＰＵ１のテスト結果だけを比較対象にしてもよい。ＣＰＵ１のテストを他のテストを区別できるようにテスト制御回路６によりテスト回路Ａ７を用いてテストを行い、ＣＰＵ１に対するテスト結果に対してだけ信号６０５で比較回路４０の動作を指示すればよい。
【００４７】
図６は本発明に係る自己診断機能を有するマイクロコンピュータを使用した制御装置を示す。自動車４２において、エンジン４３を電子制御する制御装置４４内に本発明を適用したマイクロコンピュータ１００が搭載されている。
【００４８】
上述のように、本発明によれば、パワーオンリセット後にＣＰＵのプログラム処理によってメモリとＣＰＵと論理回路のＢＩＳＴを実行し、ＣＰＵが結果を判定することが可能であるとともに、テストを１回限りではなく必要に応じて何回でも実行できる。特に図５の場合は、テスト結果の判定をＣＰＵとは別の専用比較器で比較できる。これらにより、テスト実行の自由度と信頼性を向上させることが可能になる。
【００４９】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００５０】
論理回路は上記説明に限定されず、その他の周辺回路やアクセラレータなどであってもよい。本発明はエンジンの制御装置に適用される場合に限定されず、自動車のシャーシ系の制御装置、自動車以外の機器制御にも広く適用することができる。
【図面の簡単な説明】
【００５１】
【図１】図１は本発明に係る半導体データ処理デバイスの一実施の形態であるマイクロコンピュータのブロック図である。
【図２】図２は図１におけるテスト起動レジスタの一例を示す説明図である。
【図３】図３は図１におけるテスト状態レジスタを示す説明図である。
【図４】図４は図１におけるＣＰＵとテスト回路Ａ７の処理フローを例示するフローチャートである。
【図５】図５は本発明に係る半導体データ処理デバイスの別の実施の形態であるマイクロコンピュータのブロック図である。
【図６】図６は本発明に係る半導体データ処理デバイスを使用した自動車用の制御装置を示す説明図である。
【図７】図７はテスト回路Ａ７、テスト回路Ｂ８に対するテスト対象回路部分をテスト起動レジスタ９によって指定可能にする場合のレジスタ構成を例示する説明図である。
【符号の説明】
【００５２】
１…ＣＰＵ
２…論理回路
３…ＲＡＭ
４…ＲＡＭインタフェースセレクタ
５…リセット制御回路
６…テスト制御回路
７…テスト回路Ａ（ＣＰＵと論理回路用）
８…テスト回路Ｂ（ＲＡＭ用）
９…テスト起動レジスタ
１０…テスト状態レジスタ
１１…テスト汎用レジスタ
４０…比較器
１００…マイクロコンピュータ
【図１】
2010140219.tif 000003
【図２】
2010140219.tif 000004
【図３】
2010140219.tif 000005
【図４】
2010140219.tif 000006
【図５】
2010140219.tif 000007
【図６】
2010140219.tif 000008
【図７】
2010140219.tif 000009