(57)【要約】【課題】起動時に不揮発性メモリから意図しないデータが読み出されることによってマイクロプロセッサが誤動作するのを防止する。【解決手段】マイクロプロセッサ１０Ａにおいて、不揮発性メモリ１２は、複数の回路ブロック１１，５１，５２の動作モードに対応する複数の設定データを記憶する。モード設定部１７は、出力指令１９に応答して不揮発性メモリ１２がデータバス１４に出力した複数のデータを取り込み、取り込んだ複数のデータに基づいて複数の回路ブロックの動作モードを設定する。データ保持部２１Ａは、データバス１４と接続され、出力指令１９に応答して不揮発性メモリ１２がデータバス１４に出力した複数のデータを取り込んで保持する。マイクロプロセッサ１０Ａは、データ保持部２１Ａに保持された複数のデータに基づいて、複数の設定データがモード設定部１７に正常に転送されたか否かを判定する。【選択図】図１
2012083884.tif 000002
【特許請求の範囲】
【請求項１】
アドレスバスおよびデータバスと、
各々が起動時に設定された動作モードに従って動作する複数の回路ブロックと、
前記複数の回路ブロックの動作モードに対応する複数の設定データを記憶する不揮発性メモリと、
前記起動時に前記複数の設定データの出力指令を前記不揮発性メモリに与え、前記出力指令に応答して前記不揮発性メモリが前記データバスに出力した複数のデータを取り込み、取り込んだ複数のデータに基づいて前記複数の回路ブロックの動作モードを設定するモード設定部と、
前記データバスと接続され、前記出力指令に応答して前記不揮発性メモリが前記データバスに出力した複数のデータを取り込んで保持するデータ保持部とを備え、
前記データ保持部に保持された複数のデータに基づいて、前記複数の設定データが前記モード設定部に正常に転送されたか否かを判定し、正常に転送されていない場合には前記複数の設定データの再転送を行なう、マイクロプロセッサ。
【請求項２】
前記データ保持部に保持された複数のデータの少なくとも一部を圧縮して圧縮データを生成する圧縮回路をさらに備え、
前記マイクロプロセッサは、前記圧縮データに基づいて前記複数の設定データが前記モード設定部に正常に転送されたか否かを判定する、請求項１に記載のマイクロプロセッサ。
【請求項３】
前記複数の設定データにそれぞれ対応する複数の期待値データを記憶する期待値記憶部と、
前記データ保持部に保持された複数のデータと前記複数の期待値データとを比較することによって、前記複数の設定データが前記モード設定部に正常に転送されたか否かを判定する比較部とをさらに備える、請求項１に記載のマイクロプロセッサ。
【請求項４】
前記圧縮データに対応する期待値データを記憶する期待値記憶部と、
前記圧縮データと前記期待値データとを比較することによって、前記複数の設定データが前記モード設定部に正常に転送されたか否かを判定する比較部とをさらに備える、請求項２に記載のマイクロプロセッサ。
【請求項５】
前記モード設定部は、前記比較部の判定結果を受け、前記複数の設定データが前記モード設定部に正常に転送されていないと前記比較部が判定した場合には、前記出力指令を前記不揮発性メモリに再度出力する、請求項３または４に記載のマイクロプロセッサ。
【請求項６】
前記モード設定部は、前記起動時に、前記不揮発性メモリに前記出力指令を出力するとともに、前記複数の設定データが格納された前記不揮発性メモリの領域を示す複数の格納アドレスを前記アドレスバスに出力し、
前記不揮発性メモリは、前記出力指令に応答して、前記アドレスバスから取り込んだ前記複数の格納アドレスにそれぞれ対応する複数のデータを前記データバスに出力し、
前記複数の設定データは、前記モード設定部に正常に転送されたか否かの判定の対象とする複数の対象データと、前記モード設定部に正常に転送されたか否かの判定の対象としない１または複数の非対象データとに分類され、
前記マイクロプロセッサは、さらに、
前記アドレスバスと接続され、前記モード設定部が前記アドレスバスに出力した前記複数の格納アドレスを取り込んで保持するアドレス保持部と、
前記複数の対象データが格納された前記不揮発性メモリの領域を示す複数の対象アドレスを記憶する対象アドレス記憶部と、
前記アドレス保持部に保持された前記複数の格納アドレスのうちで前記複数の対象アドレスに一致する格納アドレスを選択するアドレス選択部と、
前記データ保持部に保持された複数のデータのうち、前記アドレス選択部で選択された格納アドレスに対応するデータを選択するデータ選択部と、
前記データ選択部で選択されたデータを圧縮することによって圧縮データを生成する圧縮回路とを備え、
前記マイクロプロセッサは、前記圧縮データに基づいて前記複数の設定データが前記モード設定部に正常に転送されたか否かを判定する、請求項１に記載のマイクロプロセッサ。
【請求項７】
前記モード設定部は、前記起動時に、前記不揮発性メモリに前記出力指令を出力するとともに、前記複数の設定データが格納された前記不揮発性メモリの領域を示す複数の格納アドレスを前記アドレスバスに出力し、
前記不揮発性メモリは、前記出力指令に応答して、前記アドレスバスから取り込んだ前記複数の格納アドレスにそれぞれ対応する複数のデータを前記データバスに出力し、
前記複数の設定データは、前記モード設定部に正常に転送されたか否かの判定の対象とする複数の対象データと、前記モード設定部に正常に転送されたか否かの判定の対象としない１または複数の非対象データとに分類され、
前記マイクロプロセッサは、さらに、
前記アドレスバスと接続され、前記モード設定部が前記アドレスバスに出力した前記複数の格納アドレスを取り込んで保持するアドレス保持部と、
前記１または複数の非対象データが格納された前記不揮発性メモリの領域を示す１または複数の非対象アドレスを記憶する対象アドレス記憶部と、
前記アドレス保持部に保持された前記複数の格納アドレスのうちで前記１または複数の非対象アドレスに一致する格納アドレスを選択するアドレス選択部と、
前記データ保持部に保持された複数のデータのうち、前記アドレス選択部で選択された格納アドレスに対応しないデータを選択するデータ選択部と、
前記データ選択部で選択されたデータを圧縮することによって圧縮データを生成する圧縮回路とを備え、
前記マイクロプロセッサは、前記圧縮データに基づいて前記複数の設定データが前記モード設定部に正常に転送されたか否かを判定する、請求項１に記載のマイクロプロセッサ。
【請求項８】
前記複数の設定データが前記モード設定部に正常に転送されたか否かの判定と、前記複数の設定データの再転送の指令とは、前記複数の回路ブロックの１つである、または、前記複数の回路ブロックと別に設けられた中央処理装置がプログラムに従って実行する、請求項１，２，６，７のいずれか１項に記載のマイクロプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、マイクロプロセッサに関する。
【背景技術】
【０００２】
電源投入時には、フラッシュメモリなどの不揮発性メモリに供給される電圧が適正範囲にないことが多い。このため、不揮発性メモリに格納されたデータを用いて初期化を行なうシステムの場合には、不揮発性メモリのパワーオンリセット処理を確実に行なわないとシステム全体が誤動作する場合がある。
【０００３】
たとえば、特開２００３−８５５０８号公報（特許文献１）は、ホストから供給される電源電圧が不安定な場合であっても、パワーオンリセット処理を確実に行なうことができるメモリカードの初期設定方法について開示する。この文献に記載のメモリカードの初期設定方法では、フラッシュメモリに格納されているフラッシュ確認データを読み出し、そのデータと予めＲＯＭ（Read  Only  Memory）に格納されている動作確認データとを比較する。比較の結果、異常がなければＲＯＭに格納された書込確認データをフラッシュメモリに書込み、そのデータを再び読み出してＲＯＭの書込確認データと比較する。これらのデータ比較に異常がなければ、ＣＰＵ（Central  Processing  Unit）はフラッシュメモリが正常と判断する。
【０００４】
特開昭６１−２７８９９２号公報（特許文献２）は、ＩＣ（Integrated  Circuit）カードの故障検査に関するものであるが、上記の文献と類似の技術を開示する。具体的に、この文献に記載の故障検査機能を備えたＩＣカードは、データの書込まれるべきメモリアドレス線の数に相当するテスト・エリアを設け、これらのテスト・エリアに故障検査に必要な相異なる所定のデータを予め記録しておき、それらのデータを順次に読み出す手段と、読み出された各データが予め記録されていた故障検査用データと一致しているか否かを検出する手段と、その検出結果に基づき故障の存在を判定する手段とを備える。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−８５５０８号公報
【特許文献２】特開昭６１−２７８９９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、近年、ＲＯＭに予め格納された設定データによって動作モードを変更可能なアーキテクチャのマイクロプロセッサが用いられることが多い。この種のアーキテクチャのマイクロプロセッサを用いることによって組込用途などの使用条件ごとに別のチップを製造しなくても、同じ設計のチップを用いて最適モードでマイクロプロセッサを動作させることができる。
【０００７】
しかしながら、この方式のマイクロプロセッサでは、上述のメモリカードの場合と同様に、電源投入時に適正範囲の電圧がＲＯＭに供給されないために、ＲＯＭに格納された設定データを正常に読み出すことができない場合がある。この場合、マイクロプロセッサが意図しないモードで動作してしまい、システムエラーを引き起こす可能性がある。
【０００８】
この発明の目的は、不揮発性メモリに格納された設定データに基づいて起動時に動作モードが決定されるマイクロプロセッサにおいて、不揮発性メモリから意図しないデータが読み出されることによってマイクロプロセッサが誤動作するのを防止することである。
【課題を解決するための手段】
【０００９】
この発明の実施の一形態によるマイクロプロセッサは、アドレスバスおよびデータバスと、複数の回路ブロックと、不揮発性メモリと、モード設定部と、データ保持部とを備える。各回路ブロックは、起動時に設定された動作モードに従って動作する。不揮発性メモリは、複数の回路ブロックの動作モードに対応する複数の設定データを記憶する。モード設定部は、起動時に複数の設定データの出力指令を不揮発性メモリに与え、出力指令に応答して不揮発性メモリがデータバスに出力した複数のデータを取り込み、取り込んだ複数のデータに基づいて複数の回路ブロックの動作モードを設定する。データ保持部は、データバスと接続され、出力指令に応答して不揮発性メモリがデータバスに出力した複数のデータを取り込んで保持する。マイクロプロセッサは、データ保持部に保持された複数のデータに基づいて、複数の設定データがモード設定部に正常に転送されたか否かを判定し、正常に転送されていない場合には複数の設定データの再転送を行なう。
【発明の効果】
【００１０】
上記の実施の形態によれば、モード設定部に読み出されたデータと同じデータがデータ保持部に保持され、この保持されたデータに基づいて複数の設定データがデータ保持部に正常に転送されたか否かが判定される。これによって、不揮発性メモリから意図しないデータが読み出されることによるマイクロプロセッサの誤動作を防止することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態１によるマイクロプロセッサ１０Ａの構成を示すブロック図である。
【図２】本発明の実施の形態２によるマイクロプロセッサ１０Ｂの構成を示すブロック図である。
【図３】図２に示す検査用回路２１Ｂの詳細な構成を示すブロック図である。
【図４】本発明の実施の形態３によるマイクロプロセッサ１０Ｃの構成を示すブロック図である。
【図５】図４に示す検査用回路２１Ｃの詳細な構成を示すブロック図である。
【図６】本発明の実施の形態４によるマイクロプロセッサ１０Ｄの構成を示すブロック図である。
【図７】図６に示す検査用回路２１Ｄの詳細な構成を示すブロック図である。
【図８】本発明の実施の形態５によるマイクロプロセッサ１０Ｅの構成を示すブロック図である。
【図９】図８に示す検査用回路２１Ｅの詳細な構成を示すブロック図である。
【図１０】本発明の実施の形態６によるマイクロプロセッサ１０Ｆの構成を示すブロック図である。
【図１１】図１０に示す検査用回路２１Ｆの詳細な構成を示すブロック図である。
【図１２】本発明の実施の形態７によるマイクロプロセッサ１０Ｇの構成を示すブロック図である。
【図１３】図１２に示す検査用回路２１Ｇの詳細な構成を示すブロック図である。
【図１４】本発明の実施の形態８によるマイクロプロセッサ１０Ｈの構成を示すブロック図である。
【図１５】図１４に示す検査用回路２１Ｈの詳細な構成を示すブロック図である。
【図１６】本発明の実施の形態９によるマイクロプロセッサ１０Ｉの構成を示すブロック図である。
【図１７】図１６に示す検査用回路２１Ｉの詳細な構成を示すブロック図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について図面を参照して詳しく説明する。なお、同一または相当する部分には同一の参照符号を付して、その説明を繰返さない。
【００１３】
＜実施の形態１＞
［マイクロプロセッサの構成の詳細な説明］
図１は、本発明の実施の形態１によるマイクロプロセッサ１０Ａの構成を示すブロック図である。
【００１４】
図１を参照して、マイクロプロセッサ１０Ａは、ＣＰＵコア１１、ＲＯＭ１２、アドレスバス１３、データバス１４、周辺Ｉ／Ｏ（Input/Output)５１、５２、リセット回路１６、モード設定部１７、および検査用回路２１Ａを含む。ＣＰＵコア１１、ＲＯＭ１２、周辺Ｉ／Ｏ５１、５２、モード設定部１７、および検査用回路２１Ａは、アドレスバス１３およびデータバス１４を介して接続される。
【００１５】
ＲＯＭ１２は、フラッシュメモリなどの不揮発性メモリによって構成される。ＲＯＭ１２にはＣＰＵコア１１の動作モードを決める設定データ１、周辺Ｉ／Ｏ５１の動作モードを決める設定データ２、および周辺Ｉ／Ｏ５２の動作モードを決める設定データ３が予め格納されている。なお、図１には図解を容易にするために３つの設定データ１，２，３が記載されているが、実際には、ＣＰＵコア１１や周辺Ｉ／Ｏ５１，５２などを含む多数の回路ブロックの動作モードを決めるための設定データがＲＯＭ１２に格納されている。後述するレジスタ１，２，３や保持レジスタ１，２，３の数も設定データの数に対応して多数設けられている。
【００１６】
リセット回路１６は、電源が投入された場合などの起動時にマイクロプロセッサ１０Ａ全体のリセットを行なうための回路である。リセット回路１６は、パワーオンリセット回路（図示省略）からパワーオンリセット信号２６を受ける。
【００１７】
モード設定部１７は、マイクロプロセッサ１０Ａの起動時にＲＯＭ１２から転送された設定データ１，２，３を保持するためのレジスタ１，２，３を有する。モード設定部１７のレジスタ１，２，３にそれぞれ格納された設定データ１，２，３に従ってＣＰＵコア１１および周辺Ｉ／Ｏ５１，５２の動作モードが設定される。
【００１８】
検査用回路２１Ａは、ＲＯＭ１２からモード設定部１７のレジスタ１，２，３に正常にデータが転送されたか否かを検査するために用いられる回路である。ＲＯＭ１２を構成する不揮発性メモリは電源投入時のように電源電圧が不安定な場合には正常に動作しない場合がある。このような場合にシステムエラーを引き起こさないようにするために検査用回路２１Ａが設けられている。実施の形態１の場合、検査用回路２１Ａは、ＣＰＵコア１１によって読出可能な保持レジスタ１，２，３からなるデータ保持部１１１を内蔵する。保持レジスタ１，２，３は、モード設定部１７からリード要求１９が出力されたタイミングに基づいて、ＲＯＭ１２からデータバス１４に出力された複数のデータを保持する。ＲＯＭ１２が正常に動作している場合は、保持レジスタ１，２，３には設定データ１，２，３がそれぞれ保持される。以下、電源投入時のマイクロプロセッサ１０Ａの動作について詳しく説明する。
【００１９】
［マイクロプロセッサの動作の説明］
電源投入時に、パワーオンリセット回路（図示省略）は、電源電圧が所定の電圧を超えるとパワーオンリセット信号２６をネゲート（negate）する（実施の形態１では、ＬレベルからＨレベルに切替わる）。これによって、これまで有効だったパワーオンリセット状態が解除される。リセット回路１６は、パワーオンリセット信号２６の変化を受けて、モード設定部１７へ出力する転送開始信号１８をアサート（assert）する。
【００２０】
モード設定部１７は、転送開始信号１８が有効になると、専用線を介してＲＯＭ１２に対してリード要求１９を出力するとともに、ＲＯＭ１２に格納された設定データ１，２，３の記憶領域を示すアドレス（格納アドレス１，２，３と称する）をアドレスバス１３に出力する。リード要求１９は専用線を介して検査用回路２１Ａにも出力される。ＲＯＭ１２は、リード要求１９を受けるとアクセスプロトコルに応じたタイミングで、格納アドレス１，２，３によって示される領域に格納された複数のデータをデータバス１４に出力する。ＲＯＭ１２が正常に動作している場合には、データバス１４に出力されるデータは設定データ１，２，３になるが、電源電圧が動作適正範囲にないためにＲＯＭ１２が正常に動作していない場合には、データバス１４に出力されるデータは不定になる。
【００２１】
モード設定部１７は、ＲＯＭ１２から設定データ１，２，３が出力されるタイミングでデータバス１４からデータを読み出してレジスタ１，２，３に格納する。モード設定部１７は、ＲＯＭ１２から出力されたデータの格納が完了すると、転送終了信号２０をリセット回路１６に出力する。これによりリセット回路１６はプロセッサ全体に出力しているリセット信号２７をネゲートする（リセット状態が解除される）。ＣＰＵコア１１や周辺Ｉ／Ｏ５１、５２はモード設定部１７のレジスタ１，２，３と接続されており、リセット状態が解除されるとレジスタ１，２，３の設定値に応じた動作モードにて動作する。
【００２２】
検査用回路２１Ａは、モード設定部１７からリード要求１９を受けたタイミングに基づいて、リード要求１９に応答してＲＯＭ１２がデータバス１４に出力したデータをデータ保持部１１１に格納する。ＲＯＭ１２が正常に動作している場合は、設定データ１，２，３が保持レジスタ１，２，３にそれぞれ保持されるが、電源電圧が動作適正範囲にないためにＲＯＭ１２が正常に動作していない場合には、保持レジスタ１，２，３に保持されるデータは不定になる。
【００２３】
［効果の説明］
以上のような構成により、リード要求１９に応答してＲＯＭ１２から出力されたデータは、モード設定部１７内のレジスタ１，２，３の他に、検査用回路２１Ａ内のデータ保持部１１１（保持レジスタ１，２，３）にも格納される。モード設定部１７内のレジスタ１，２，３はＣＰＵコア１１からアクセスできないのに対して、データ保持部１１１に保持されたデータは、ＣＰＵコア１１によって確認することができる。したがって、ＣＰＵコア１１はプログラムに従って、データ保持部１１１（保持レジスタ１，２，３）に格納されたデータが期待値データに等しいか否かを確認し、期待値データと異なる場合にはソフトウェアリセットをかけたり、ＲＯＭ１２からモード設定部１７への設定データ１，２，３を再転送させたりすることができる。これによって、システムの暴走を防止することができる。期待値データはプログラムの中に予め埋め込んでいてもよいし、ＲＯＭ１２から新たに読み出した設定データ１，２，３を期待値データとして使用してもよい。
【００２４】
＜実施の形態２＞
図２は、本発明の実施の形態２によるマイクロプロセッサ１０Ｂの構成を示すブロック図である。図２に示すマイクロプロセッサ１０Ｂの検査用回路２１Ｂは、図１に示す検査用回路２１Ａの構成を変形したものである。検査用回路２１Ｂの構成以外の点については図１と共通するので、同一または相当する部分には同一の参照符号を付して説明を繰返さない。
【００２５】
図３は、図２に示す検査用回路２１Ｂの詳細な構成を示すブロック図である。図２、図３を参照して、検査用回路２１Ｂは、アドレスバス１３とデータバス１４に接続される。さらに、検査用回路２１Ｂには、モード設定部１７がＲＯＭ１２に出力するリード要求信号１９と、モード設定部１７がリセット回路１６に出力する転送終了信号２０と、リセット信号２７とが入力される。
【００２６】
図１に示す実施の形態１によるマイクロプロセッサ１０Ａの場合には、検査用回路２１Ａに設けられたデータ保持部１１１（保持レジスタ１，２，３）に保持されたデータに基づいて、ＣＰＵコア１１がモード設定部１７に設定データが正常に転送されたか否かを判定していた。実施の形態２によるマイクロプロセッサ１０Ｂの場合には、検査用回路２１Ｂ内にモード設定部１７へ設定データが正常に転送されたか否かを判定する専用回路が設けられる。
【００２７】
具体的には、検査用回路２１Ｂは、リード要求１９に応答してＲＯＭ１２からデータバス１４に出力されたデータを取り込んで保持するデータ保持部１１１（保持レジスタ１，２，３）と、設定データ１，２，３にそれぞれ対応する期待値データ１，２，３を記憶する期待値記憶部１１２と、保持レジスタ１，２，３の内容と期待値データとを比較する比較部１１３と、比較結果を保持するフリップフロップ回路１１４と、インバータ１３３とを含む。期待値記憶部１１２は、たとえば、ヒューズ式のＲＯＭであり、初期設定時（たとえば、工場出荷時）に期待値データが書込まれる。
【００２８】
比較部１１３は、比較器１，２，３と、ＮＡＮＤ回路１３２とを含む。各比較器ｉ（ｉ＝１，２，３）は、対応の保持レジスタｉの内容と対応の期待値データｉとを比較し、一致していればハイレベル（Ｈレベル）の信号を出力し、一致していなければローレベル（Ｌレベル）の信号を出力する。ＮＡＮＤ回路１３２は、比較器１，２，３の出力の否定論理積演算を行ない、演算結果をフリップフロップ回路のデータ端子Ｄに出力する。したがって、ＮＡＮＤ回路１３２は、比較器１，２，３に比較結果が全て一致している場合にＬレベルの信号を出力し、１つでも一致しないものがあればＨレベルの信号を出力する。
【００２９】
フリップフロップ回路１１４は、いわゆるＤフリップフロップ回路であり、ＮＡＮＤ回路１３２の出力を受けるデータ端子Ｄと、モード設定部１７から転送終了信号２０を受けるクロック端子ＣＫと、出力端子Ｑとを含む。フリップフロップ回路１１４の出力は、インバータ１３３によって反転された後、比較結果を示す出力信号２２としてリセット回路１６に出力される。なお、フリップフロップ回路１１４は、電源投入時にリセット信号２７によってリセットされる。
【００３０】
次に、検査用回路２１Ｂの全体的な動作の流れを説明する。検査用回路２１Ｂは、モード設定部１７からリード要求１９が出力されるとアクセスプロトコルに応じたタイミングでデータバス１４のデータをデータ保持部１１１（保持レジスタ１，２，３）に格納する。比較部１１３は、保持レジスタ１，２，３にそれぞれ保持されたデータと期待値記憶部１１２に記憶された期待値データ１，２，３とを比較する。保持レジスタ１に保持されたデータと期待値データ１、保持レジスタ２に保持されたデータと期待値データ２、および保持レジスタ３に保持されたデータと期待値データ３が全て一致するとフリップフロップ回路１１４への入力がＬレベルとなるが、一つでも不一致がある場合はＨレベルとなる。フリップフロップ回路１１４は、転送終了信号２０がＬレベルから転送終了を示すＨレベルに変化したときの入力信号の値を保持し、以降の出力は保持された値に固定される。
【００３１】
検査用回路２１Ｂの出力信号２２は、図２のリセット回路１６に入力される。リセット回路１６は、出力信号２２がＬレベル（フリップフロップ回路１１４の出力がＨレベル）になってから所定の時間が経過したとき、マイクロプロセッサ１０全体をリセットするとともに、モード設定部１７に出力する転送開始信号１８をアサートする。この結果、モード設定部１７からリード要求１９がＲＯＭ１２に再出力され、ＲＯＭ１２から設定データが再転送される。上記の過程は、検査用回路２１Ｂのデータ保持部１１１に保持されたデータが期待値データと一致するまで繰返される。
【００３２】
［効果の説明］
以上のような構成により、リード要求１９に応じてＲＯＭ１２からモード設定部１７に転送されるデータが期待値データと一致しないとリセットがかかる。この結果、正常な設定データがモード設定部１７のレジスタに設定されないとマイクロプロセッサ１０Ｂは動作しないためシステムの暴走を防止できる。
【００３３】
＜実施の形態３＞
図４は、本発明の実施の形態３によるマイクロプロセッサ１０Ｃの構成を示すブロック図である。図４に示すマイクロプロセッサ１０Ｃの検査用回路２１Ｃは、図１に示す検査用回路２１Ａの構成を変形したものである。検査用回路２１Ｃの構成以外の点については図１と共通するので、同一または相当する部分には同一の参照符号を付して説明を繰返さない。
【００３４】
図５は、図４に示す検査用回路２１Ｃの詳細な構成を示すブロック図である。図４、図５を参照して、検査用回路２１Ｃは、アドレスバス１３とデータバス１４に接続される。さらに、検査用回路２１Ｃには、モード設定部１７がＲＯＭ１２に出力するリード要求信号１９とリセット回路１６に出力する転送終了信号２０が入力される。
【００３５】
検査用回路２１Ｃは、図１のデータ保持部１１１（保持レジスタ１，２，３）に加えて、圧縮回路１１５と、圧縮回路１１５の圧縮結果を保持する保持レジスタ１１６とを含む。圧縮回路１１５は、保持レジスタ１，２，３に保持されたデータを圧縮する。この場合の圧縮は非可逆圧縮でよい。
【００３６】
検査用回路２１Ｃは、モード設定部１７からリード要求１９が出力されるとアクセスプロトコルに応じたタイミングでデータバス１４のデータをデータ保持部１１１に保持する。データ保持部１１１に保持されたデータは圧縮回路１１５で圧縮され、圧縮されたデータは、転送終了信号２０がアサートされると保持レジスタ１１６に格納される。ＣＰＵコア１１は、保持レジスタ１１６に格納された圧縮データを読み出し、予め計算した設定データ１，２，３による圧縮結果（期待値データ）と比較する。ＣＰＵコア１１は、圧縮データと期待値データとが不一致な場合にリセットをかけて、ＲＯＭ１２からモード設定部１７へ設定データの再転送が行なわれるように制御する。
【００３７】
［効果の説明］
以上のような構成により、ＲＯＭ１２から正常な設定データがモード設定部１７に転送されたか否かの判定を、圧縮データの１回の読出と１回の期待値との比較によって行なうことができる。このため、判定時間を短縮することができる。
【００３８】
＜実施の形態４＞
図６は、本発明の実施の形態４によるマイクロプロセッサ１０Ｄの構成を示すブロック図である。図６に示すマイクロプロセッサ１０Ｄの検査用回路２１Ｄは、図４、図５に示す検査用回路２１Ｃの構成を変形したものである。検査用回路２１Ｄの構成以外の点については、図４、図５に示す実施の形態２の場合と共通するので同一または相当する部分には同一の参照符号を付して説明を繰返さない。
【００３９】
図７は、図６に示す検査用回路２１Ｄの詳細な構成を示すブロック図である。図６、図７を参照して、検査用回路２１Ｄは、アドレスバス１３とデータバス１４に接続される。さらに、検査用回路２１Ｄには、モード設定部１７がＲＯＭ１２に出力するリード要求信号１９と、モード設定部１７がリセット回路１６に出力する転送終了信号２０と、リセット信号２７とが入力される。
【００４０】
実施の形態３による検査用回路２１Ｃの場合には、圧縮回路１１５によって生成された圧縮データは保持レジスタ１１６に保持され、保持レジスタ１１６に保持された圧縮データに基づいて、ＣＰＵコア１１が、ＲＯＭ１２から設定データが正常に転送されたか否かを判定していた。実施の形態４による検査用回路２１Ｄの場合には、圧縮回路１１５によって生成された圧縮データを期待値と比較する専用回路が設けられる。
【００４１】
具体的に、検査用回路２１Ｄは、図５のデータ保持部１１１および圧縮回路１１５に加えて、期待値記憶部１１８と、比較器１１７と、フリップフロップ回路１１４とを含む。データ保持部１１１（保持レジスタ１，２，３）は、リード要求１９に応答してＲＯＭ１２からデータバス１４に出力されたデータを取り込んで保持する。圧縮回路１１５は、保持レジスタ１，２，３に保持されたデータを圧縮する。期待値記憶部１１８は、予め計算された設定データ１，２，３の圧縮結果を期待値データとして記憶する。期待値記憶部１１２は、たとえば、ヒューズ式のＲＯＭであり、初期設定時（たとえば、工場出荷時）に期待値データが書込まれる。比較器１１７は、圧縮回路１１５によって生成された圧縮データと期待値記憶部１１８に記憶された期待値データとを比較する。比較器１１７は、圧縮データと期待値データとが一致している場合はＨレベルの信号を、不一致の場合にはＬレベルの信号を出力する。フリップフロップ回路１１４は、いわゆるＤフリップフロップ回路であり、入出力端子として、比較器１１７の比較結果を受けるデータ端子Ｄと、モード設定部１７から転送終了信号２０を受けるクロック端子ＣＫと、出力端子Ｑとを含む。フリップフロップ回路１１４の出力は、比較結果２２を示す信号としてリセット回路１６に出力される。なお、フリップフロップ回路１１４は、電源投入時にリセット信号２７によってリセットされる。
【００４２】
次に、検査用回路２１Ｄの全体的な動作の流れを説明する。検査用回路２１Ｄは、モード設定部１７からリード要求１９が出力されるとアクセスプロトコルに応じたタイミングでデータバス１４のデータをデータ保持部１１１（保持レジスタ１，２，３）に格納する。データ保持部１１１に格納されたデータは圧縮回路１１５で圧縮される。比較器１１７は、圧縮回路１１５による圧縮結果と期待値記憶部１１８に記憶された期待値データとを比較する。両者が一致する場合はＨレベル、不一致の場合はＬレベルの信号が比較器１１７から出力される。この出力はフリップフロップ回路１１４のデータ端子Ｄに入力されており、クロック端子ＣＫに入力される転送終了信号２０がアサートされるとそのときのデータ端子Ｄへの入力の論理レベルが保持される。フリップフロップ回路１１４の出力信号２２は、図６のリセット回路１６に入力される。リセット回路１６は、出力信号２２がＬレベルになってから所定の時間が経過したとき、マイクロプロセッサ１０Ｄ全体をリセットするとともに、モード設定部１７に出力する転送開始信号１８をアサートする。この結果、モード設定部１７からリード要求１９がＲＯＭ１２に再出力され、ＲＯＭ１２から設定データが再転送される。上記の過程は、検査用回路２１Ｄのデータ保持部１１１に保持されたデータが期待値データと一致するまで繰返される。
【００４３】
［効果の説明］
以上のような構成により、リード要求１９に応じてＲＯＭ１２からモード設定部１７に転送されるデータが期待値データと一致しないとリセットがかかる。この結果、正常な設定データがモード設定部１７のレジスタに設定されないとマイクロプロセッサ１０Ｄは動作しないためシステムの暴走を防止できる。特に、実施の形態４による検査用回路２１Ｄは、実施の形態２による検査用回路２１Ｂと比べて、記憶する期待値データが１つで済むので、期待値記憶部に要する回路面積を削減することができる。
【００４４】
＜実施の形態５＞
図８は、本発明の実施の形態５によるマイクロプロセッサ１０Ｅの構成を示すブロック図である。図８に示すマイクロプロセッサ１０Ｅの検査用回路２１Ｅは、図４、図５に示す検査用回路２１Ｃの構成を変形したものである。検査用回路２１Ｅの構成以外の点については図４、図５と共通するので、同一または相当する部分には同一の参照符号を付して説明を繰返さない。
【００４５】
図９は、図８に示す検査用回路２１Ｅの詳細な構成を示すブロック図である。図８、図９を参照して、検査用回路２１Ｅはアドレスバス１３とデータバス１４に接続される。さらに、検査用回路２１Ｅには、モード設定部１７がＲＯＭ１２に出力するリード要求信号１９と、モード設定部１７がリセット回路１６に出力する転送終了信号２０とが入力される。
【００４６】
図４、図５に示す検査用回路２１Ｃの場合には、リード要求１９に応答してＲＯＭ１２が出力したデータが全て圧縮回路１１５によって圧縮されていた。図９の検査用回路２１Ｅの場合には、ＲＯＭ１２に格納される複数の設定データが、圧縮回路１１５によって圧縮されて期待値データとの比較の対象となる複数の対象データと、期待値データとの比較対象とはしない残余の１または複数の非対象データとに分類される。検査用回路２１Ｅは、リード要求１９に応答してＲＯＭ１２が出力したデータのうちで対象データに対応するデータのみを選択的に圧縮する。以下、図８、図９を参照して具体的に説明する。
【００４７】
検査用回路２１Ｅは、データ保持部１１９（データレジスタ１，２，３）と、アドレス保持部１２０（アドレスレジスタ１，２，３）と、対象アドレス記憶部１２１と、アドレス選択部１２２と、データ選択部１２３と、圧縮回路１１５と、保持レジスタ１１６とを含む。検査用回路２１Ｅには、モード設定部１７がＲＯＭ１２に出力するリード要求信号１９と、モード設定部１７がリセット回路１６に出力する転送終了信号２０とが入力される。
【００４８】
データ保持部１１９（データレジスタ１，２，３）は、リード要求１９に応答してＲＯＭ１２がデータバス１４に出力したデータを取り込んで保持する。
【００４９】
アドレス保持部１２０（アドレスレジスタ１，２，３）は、モード設定部１７がアドレスバスに出力した複数の格納アドレス（ＲＯＭ１２に格納された設定データ１、２，３の記憶領域を示すアドレス）を取り込んで保持する。
【００５０】
対象アドレス記憶部１２１は、各対象データが格納されるＲＯＭ１２の記憶領域を示すアドレス（対象アドレスと称する）を記憶する。対象アドレス記憶部１２１は、たとえば、ヒューズ式のＲＯＭであり、初期設定時（たとえば、工場出荷時）に複数の対象データにそれぞれ対応する複数の対象アドレスが書込まれる。
【００５１】
アドレス選択部１２２は、アドレス保持部１２０に保持された複数の格納アドレスのうちで対象アドレス記憶部１２１に記憶された対象アドレスに一致する格納アドレスを選択する。具体的に図９の場合、アドレス選択部１２２は、比較器１〜６とＯＲ回路１３４Ａ，１３４Ｂ，１３４Ｃとを含む。比較器１は、アドレスレジスタ１に保持された格納アドレスと対象アドレス１とが一致している場合にＨレベルの信号を出力する。比較器２は、アドレスレジスタ１に保持された格納アドレスと対象アドレス２とが一致している場合にＨレベルの信号を出力する。ＯＲ回路１３４Ａは比較器１，２の出力の論理和を出力する。したがって、ＯＲ回路１３４Ａは、アドレスレジスタ１に保持された格納アドレスが対象アドレス１，２のいずれかと一致していればＨレベル（“１”）の信号を出力する。同様に、ＯＲ回路１３４Ｂは、アドレスレジスタ２に保持された格納アドレスが対象アドレス１，２のいずれかと一致していればＨレベル（“１”）の信号を出力する。ＯＲ回路１３４Ｃは、アドレスレジスタ３に保持された格納アドレスが対象アドレス１，２のいずれかと一致していればＨレベル（“１”）の信号を出力する。
【００５２】
データ選択部１２３は、データ保持部１１９（データレジスタ１，２，３）に保持された複数のデータのうち、アドレス選択部１２２で選択された格納アドレスに対応するデータを選択する。具体的に図９の場合、データ選択部１２３は、選択回路１３５Ａ，１３５Ｂ，１３５Ｃを含む。選択回路１３５Ａは、ＯＲ回路１３４Ａの出力がＨレベル（“１”）の場合にはデータレジスタ１に保持されたデータを出力し、ＯＲ回路１３４Ａの出力がＬレベル（“０”）の場合にはデータ“０”（接地電圧）を出力する。すなわち、選択回路１３５Ａは、アドレスレジスタ１に保持された格納アドレスが対象アドレス１，２のいずれかに一致する場合には、アドレスレジスタ１に対応するデータレジスタ１に保持されたデータを出力する。同様に、選択回路１３５Ｂは、アドレスレジスタ２に保持された格納アドレスが対象アドレス１，２のいずれかに一致する場合には、アドレスレジスタ２に対応するデータレジスタ２に保持されたデータを出力する。選択回路１３５Ｃは、アドレスレジスタ３に保持された格納アドレスが対象アドレス１，２のいずれかに一致する場合には、アドレスレジスタ３に対応するデータレジスタ３に保持されたデータを出力する。
【００５３】
圧縮回路１１５は、データ選択部１２３で選択されたデータを圧縮することによって圧縮データを生成して保持レジスタ１１６に出力する。保持レジスタ１１６は、転送終了信号２０によって転送終了が示されるとデータ選択部１２３から出力された圧縮データを保持する。
【００５４】
次に、検査用回路２１Ｅの全体的な動作の流れを説明する。検査用回路２１Ｅは、モード設定部１７からリード要求１９が出力されると、モード設定部１７が出力した格納アドレスを取得するために、アクセスプロトコルに応じたタイミングでアドレスバス１３のアドレスをアドレス保持部１２０（アドレスレジスタ１，２，３）に格納する。検査用回路２１Ｅはさらに、モード設定部１７からリード要求１９が出力されると、ＲＯＭ１２が出力した設定データを取得するために、アクセスプロトコルに応じたタイミングでデータバス１４のデータをデータ保持部１１９（データレジスタ１，２，３）に格納する。アドレス選択部１２２は、アドレス保持部１２０に格納された複数のアドレスのうち、所定の対象アドレスと一致するアドレスを選択する。データ選択部１２３は、データ保持部１１９に格納された複数のデータのうち、アドレス選択部１２２によって選択されたアドレスに対応するデータを選択する。圧縮回路１１５は、データ選択部１２３によって選択された複数のデータを圧縮する。保持レジスタ１１６は、転送終了信号２０がアサートされたタイミングで圧縮回路１１５から出力された圧縮データを保持する。ＣＰＵコア１１は、保持レジスタ１１６に格納された圧縮データを読み出し、予め計算した対象アドレスと対応する設定データによる圧縮結果（期待値データ）と比較する。ＣＰＵコア１１は、圧縮データと期待値データとが不一致な場合にリセットをかけて、ＲＯＭ１２からモード設定部１７へ設定データの再転送を行なう。
【００５５】
［効果の説明］
以上のような構成により、ＲＯＭに格納される設定データにチップ毎に異なるものが含まれる場合でも、チップ共通の設定データのみを圧縮回路に入力することができるため圧縮結果として１回の読み出しおよび比較で正常値が設定されたことを確認できる。
【００５６】
＜実施の形態６＞
図１０は、本発明の実施の形態６によるマイクロプロセッサ１０Ｆの構成を示すブロック図である。
【００５７】
図１１は、図１０に示す検査用回路２１Ｆの詳細な構成を示すブロック図である。図１０、図１１に示す検査用回路２１Ｆは、図８、図９に示す検査用回路２１Ｅの構成を変形したものである。検査用回路２１Ｆ以外の点については、図８、図９と共通するので、同一または相当する部分には同一の参照符号を付して説明を繰返さない。
【００５８】
図１０、図１１を参照して、検査用回路２１Ｆは、図９の検査用回路２１Ｅの保持レジスタ１１６に代えて、期待値記憶部１１８、比較器１１７、およびフリップフロップ回路１１４を含む点で図９の検査用回路２１Ｅと異なる。これらの期待値記憶部１１８、比較器１１７、およびフリップフロップ回路１１４は、図７に示す検査用回路２１Ｄで説明したものと同じである。
【００５９】
図１１の場合には、対象アドレス１，２に対応した設定データについての圧縮結果が期待値データとして予め期待値記憶部１１８に記憶される。比較器１１７は、圧縮回路１１５による圧縮結果と期待値記憶部１１８に記憶された期待値データとを比較する。両者が一致する場合はＨレベル、不一致の場合はＬレベルの信号が比較器１１７から出力される。この出力はフリップフロップ回路１１４のデータ端子Ｄに入力されており、クロック端子ＣＫに入力される転送終了信号２０がアサートされるとそのときのデータ端子Ｄへの入力の論理レベルが保持される。フリップフロップ回路１１４の出力信号２２は、図１０のリセット回路１６に入力される。リセット回路１６は、出力信号２２がＬレベルになってから所定の時間が経過したとき、マイクロプロセッサ１０Ｆ全体をリセットするとともに、モード設定部１７に出力する転送開始信号１８をアサートする。この結果、モード設定部１７からリード要求１９がＲＯＭ１２に再出力され、ＲＯＭ１２から設定データが再転送される。上記の過程は、検査用回路２１Ｆのデータ保持部１１１に保持されたデータが期待値データと一致するまで繰返される。
【００６０】
［効果の説明］
以上のような構成により、実施の形態５によるマイクロプロセッサ１０Ｅの効果に加えて、リード要求１９に応じてＲＯＭ１２からモード設定部１７に転送されるデータが期待値データと一致しないとリセットがかかるようにできる。この結果、正常な設定データがモード設定部１７のレジスタに設定されないとマイクロプロセッサ１０Ｆは動作しないためシステムの暴走を防止できる。
【００６１】
＜実施の形態７＞
図１２は、本発明の実施の形態７によるマイクロプロセッサ１０Ｇの構成を示すブロック図である。
【００６２】
図１３は、図１２に示す検査用回路２１Ｇの詳細な構成を示すブロック図である。図１２、図１３に示す検査用回路２１Ｇは、図８、図９に示す検査用回路２１Ｅの構成を変形したものである。検査用回路２１Ｇ以外の点については、図８、図９と共通するので、同一または相当する部分には同一の参照符号を付して説明を繰返さない。
【００６３】
図１２、図１３を参照して、検査用回路２１Ｇは、図９に示す対象アドレス記憶部１２１に代えて、禁止アドレス記憶部１２４が設けられている点で、図９の検査用回路２１Ｅと異なる。図８、図９に示す実施の形態５の場合と同様に、ＲＯＭ１２に格納される複数の設定データは、圧縮回路１１５によって圧縮されて期待値データとの比較の対象となる複数の対象データと、期待値データとの比較対象とはしない残余の１または複数の非対象データとに分類される。ここで、実施の形態７の場合には、検査用回路２１Ｅは、リード要求１９に応答してＲＯＭ１２が出力したデータのうちで非対象データに対応しないデータを選択する。
【００６４】
具体的に説明すると、禁止アドレス記憶部１２４は、ＲＯＭ１２の記憶領域で非対象データが格納されるアドレス（禁止アドレスと称する）を記憶する。禁止アドレス記憶部１２４は、たとえば、ヒューズ式のＲＯＭであり、初期設定時（たとえば、工場出荷時）に複数の非対象データにそれぞれ対応する複数の禁止アドレスが書込まれる。
【００６５】
アドレス選択部１２２は、アドレス保持部１２０に保持された複数の格納アドレスのうちで禁止アドレス記憶部１２４に記憶された禁止アドレスに一致するものを選択する。具体的に図９の場合、アドレス選択部１２２は、比較器１〜６とＯＲ回路１３４Ａ，１３４Ｂ，１３４Ｃとを含む。比較器１は、アドレスレジスタ１に保持された格納アドレスと禁止アドレス１とが一致している場合にＨレベルの信号を出力する。比較器２は、アドレスレジスタ１に保持された格納アドレスと禁止アドレス２とが一致している場合にＨレベルの信号を出力する。ＯＲ回路１３４Ａは比較器１，２の出力の論理和を出力する。したがって、ＯＲ回路１３４Ａは、アドレスレジスタ１に保持された格納アドレスが禁止アドレス１，２のいずれかと一致していればＨレベル（“１”）の信号を出力する。同様に、ＯＲ回路１３４Ｂは、アドレスレジスタ２に保持された格納アドレスが禁止アドレス１，２のいずれかと一致していればＨレベル（“１”）の信号を出力する。ＯＲ回路１３４Ｃは、アドレスレジスタ３に保持された格納アドレスが禁止アドレス１，２のいずれかと一致していればＨレベル（“１”）の信号を出力する。
【００６６】
データ選択部１２３は、データ保持部１１９（データレジスタ１，２，３）に保持された複数のデータのうち、アドレス選択部１２２で選択された格納アドレスに対応しないデータを選択する。具体的に図９の場合、データ選択部１２３は、選択回路１３５Ａ，１３５Ｂ，１３５Ｃを含む。選択回路１３５Ａは、ＯＲ回路１３４Ａの出力がＬレベル（“０”）の場合にはデータレジスタ１に保持されたデータを出力し、ＯＲ回路１３４Ａの出力がＨレベル（“１”）の場合にはデータ“０”（接地電圧）を出力する。すなわち、選択回路１３５Ａは、アドレスレジスタ１に保持された格納アドレスが禁止アドレス１，２のいずれかと一致する場合には、アドレスレジスタ１に対応するデータレジスタ１に保持されたデータを出力しない。同様に、選択回路１３５Ｂは、アドレスレジスタ２に保持された格納アドレスが禁止アドレス１，２のいずれかと一致する場合には、アドレスレジスタ２に対応するデータレジスタ２に保持されたデータを出力しない。選択回路１３５Ｃは、アドレスレジスタ３に保持された格納アドレスが禁止アドレス１，２のいずれかに一致する場合には、アドレスレジスタ３に対応するデータレジスタ３に保持されたデータを出力しない。
【００６７】
圧縮回路１１５は、データ選択部１２３で選択されたデータを圧縮することによって圧縮データを生成して保持レジスタ１１６に出力する。保持レジスタ１１６は、転送終了信号２０によって転送終了が示されるとデータ選択部１２３から出力された圧縮データを保持する。
【００６８】
なお、上記の動作は、アドレス選択部１２２が、アドレス保持部１２０に保持された複数の格納アドレスのうちで禁止アドレス記憶部１２４に記憶された禁止アドレスと不一致の格納アドレスを選択し、データ選択部１２３が、データ保持部１１９（データレジスタ１，２，３）に保持された複数のデータのうち、アドレス選択部１２２で選択された格納アドレスに対応するデータを選択するという動作と全く同一（単なる裏返し）である。
【００６９】
次に、検査用回路２１Ｇの全体的な動作の流れを説明する。検査用回路２１Ｇは、モード設定部１７からリード要求１９が出力されると、モード設定部１７が出力した格納アドレスを取得するために、アクセスプロトコルに応じたタイミングでアドレスバス１３のアドレスをアドレス保持部１２０（アドレスレジスタ１，２，３）に格納する。検査用回路２１Ｇはさらに、モード設定部１７からリード要求１９が出力されると、ＲＯＭ１２が出力した設定データを取得するために、アクセスプロトコルに応じたタイミングでデータバス１４のデータをデータ保持部１１９（データレジスタ１，２，３）に格納する。アドレス選択部１２２は、アドレス保持部１２０に格納された複数のアドレスのうち、所定の禁止アドレスと一致するアドレスを選択する。データ選択部１２３は、データ保持部１１９に格納された複数のデータのうち、アドレス選択部１２２によって選択されたアドレスと対応しないデータを選択する。圧縮回路１１５は、データ選択部１２３によって選択された複数のデータを圧縮する。保持レジスタ１１６は、転送終了信号２０がアサートされたタイミングで圧縮回路１１５から出力された圧縮データを保持する。ＣＰＵコア１１は、保持レジスタ１１６に格納された圧縮データを読み出し、予め計算した禁止アドレスと対応しない設定データによる圧縮結果（期待値データ）と比較する。ＣＰＵコア１１は、圧縮データと期待値データとが不一致な場合にリセットをかけて、ＲＯＭ１２からモード設定部１７へ設定データの再転送を行なう。
【００７０】
［効果の説明］
以上のような構成により、ＲＯＭに格納される設定データにチップ毎に異なるものが含まれる場合でも、チップ共通の設定データのみを圧縮回路に入力することができるため圧縮結果として１回の読み出しおよび比較で正常値が設定されたことを確認できる。
【００７１】
＜実施の形態８＞
図１４は、本発明の実施の形態８によるマイクロプロセッサ１０Ｈの構成を示すブロック図である。
【００７２】
図１５は、図１４に示す検査用回路２１Ｈの詳細な構成を示すブロック図である。図１４、図１５に示す検査用回路２１Ｈは、図１２、図１３に示す検査用回路２１Ｇの構成を変形したものである。検査用回路２１Ｈ以外の点については、図１２、図１３と共通するので、同一または相当する部分には同一の参照符号を付して説明を繰返さない。
【００７３】
図１４、図１５を参照して、検査用回路２１Ｈは、図１３の検査用回路２１Ｇの保持レジスタ１１６に代えて、期待値記憶部１１８、比較器１１７、およびフリップフロップ回路１１４を含む点で図１３の検査用回路２１Ｇと異なる。これらの期待値記憶部１１８、比較器１１７、およびフリップフロップ回路１１４は、図７に示す検査用回路２１Ｄで説明したものと同じである。
【００７４】
図１５に示す検査用回路２１Ｈでは、禁止アドレス１，２と対応しない設定データの圧縮結果が期待値データとして予め期待値記憶部１１８に記憶される。比較器１１７は、圧縮回路１１５による圧縮結果と期待値記憶部１１８に記憶された期待値データとを比較する。両者が一致する場合はＨレベル、不一致の場合はＬレベルの信号が比較器１１７から出力される。この出力はフリップフロップ回路１１４のデータ端子Ｄに入力されており、クロック端子ＣＫに入力される転送終了信号２０がアサートされるとそのときのデータ端子Ｄへの入力が保持される。フリップフロップ回路１１４の出力信号２２は、図１４のリセット回路１６に入力される。リセット回路１６は、出力信号２２がＬレベルになってから所定の時間が経過したとき、マイクロプロセッサ１０Ｈ全体をリセットするとともに、モード設定部１７に出力する転送開始信号１８をアサートする。この結果、モード設定部１７からリード要求１９がＲＯＭ１２に再出力され、ＲＯＭ１２から設定データが再転送される。上記の過程は、検査用回路２１Ｈのデータ保持部１１１に保持されたデータが期待値データと一致するまで繰返される。
【００７５】
［効果の説明］
以上のような構成により、実施の形態７によるマイクロプロセッサ１０Ｇの効果に加えて、リード要求１９に応じてＲＯＭ１２からモード設定部１７に転送されるデータが期待値データと一致しないとリセットがかかるようにできる。この結果、正常な設定データがモード設定部１７のレジスタに設定されないとマイクロプロセッサ１０Ｈは動作しないためシステムの暴走を防止できる。
【００７６】
＜実施の形態９＞
図１６は、本発明の実施の形態９によるマイクロプロセッサ１０Ｉの構成を示すブロック図である。
【００７７】
図１７は、図１６に示す検査用回路２１Ｉの詳細な構成を示すブロック図である。図１６、図１７に示すマイクロプロセッサ１０Ｉは、図６、図７に示す実施の形態４によるマイクロプロセッサ１０Ｄの構成を変形したものである。すなわち、図１６、図１７に示すマイクロプロセッサ１０Ｉは、ＯＲ回路２５と検査用回路２１Ｉに設けられたインバータ１３３とをさらに含む点で図６、図７に示すマイクロプロセッサ１０Ｄと異なる。
【００７８】
図１６、図１７を参照して、検査用回路２１Ｉに設けられたフリップフロップ回路１１４の出力は転送終了信号２３としてリセット回路１６に入力されるとともに、フリップフロップ回路１１４の出力をインバータ１３３によって反転した信号が再送要求信号２４としてＯＲ回路２５に入力される。ＯＲ回路２５は、リセット回路１６から受けた転送開始信号１８と検査用回路２１Ｉから受けた再送要求信号２４との論理和をモード設定部１７に出力する。モード設定部１７は、ＯＲ回路２５からの入力がＨレベルになったとき、リード要求１９をＲＯＭ１２に出力する。図１６、図１７のその他の点は、図６、図７に示すマイクロプロセッサ１０Ｄと同じであるので、同一または相当する部分には同一の参照符号を付して説明を繰返さない。
【００７９】
次に、検査用回路２１Ｉの全体的な動作の流れを説明する。検査用回路２１Ｉは、モード設定部１７からリード要求１９が出力されるとアクセスプロトコルに応じたタイミングでデータバス１４のデータをデータ保持部１１１（保持レジスタ１，２，３）に格納する。データ保持部１１１に格納されたデータは圧縮回路１１５で圧縮される。比較器１１７は、圧縮回路１１５による圧縮結果と期待値記憶部１１８に記憶された期待値データとを比較する。両者が一致する場合はＨレベル、不一致の場合はＬレベルの信号が比較器１１７から出力される。この出力はフリップフロップ回路１１４のデータ端子Ｄに入力される。クロック端子ＣＫに入力される転送終了信号２０がアサートされるとそのときのデータ端子Ｄへの入力の論理レベルが保持される。フリップフロップ回路１１４の出力は、転送終了信号２３としてリセット回路１６に入力される。リセット回路１６は、転送終了信号２３がＨレベル（アサート）となってから所定の時間が経過すると設定データの設定が終了したと判断しチップ全体のリセットを解除する。フリップフロップ回路１１４の出力を反転した再送要求信号２４はＯＲ回路２５を介してモード設定部１７に入力される。モード設定部１７は、ＯＲ回路２５からの入力がＨレベル（アサート）になると、リード要求１９をＲＯＭ１２に出力する。この結果、ＲＯＭ１２から設定データが再転送される。上記の過程は、検査用回路２１Ａのデータ保持部１１１に保持されたデータが期待値データと一致するまで繰返される。
【００８０】
［効果の説明］
以上のような構成により、リード要求１９に応じてＲＯＭ１２からモード設定部１７に転送されるデータが期待値データと一致しないとリセットがかかる。この結果、正常な設定データがモード設定部１７のレジスタに設定されないとマイクロプロセッサ１０Ｂは動作しないためシステムの暴走を防止できる。
【００８１】
今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００８２】
１０Ａ〜１０Ｉ  マイクロプロセッサ、１１  ＣＰＵコア、１２  ＲＯＭ（不揮発性メモリ）、１３  アドレスバス、１４  データバス、１６  リセット回路、１７  モード設定部、２１Ａ〜２１Ｉ  検査用回路、２６  パワーオンリセット信号、２７  リセット信号、１１１，１１９  データ保持部、１１２，１１８  期待値記憶部、１１３  比較部、１１４  フリップフロップ回路、１１５  圧縮回路、１１６  保持レジスタ、１２０  アドレス保持部、１２１  対象アドレス記憶部、１２２  アドレス選択部、１２３  データ選択部、１２４  禁止アドレス記憶部。
【図１】
2012083884.tif 000003
【図２】
2012083884.tif 000004
【図３】
2012083884.tif 000005
【図４】
2012083884.tif 000006
【図５】
2012083884.tif 000007
【図６】
2012083884.tif 000008
【図７】
2012083884.tif 000009
【図８】
2012083884.tif 000010
【図９】
2012083884.tif 000011
【図１０】
2012083884.tif 000012
【図１１】
2012083884.tif 000013
【図１２】
2012083884.tif 000014
【図１３】
2012083884.tif 000015
【図１４】
2012083884.tif 000016
【図１５】
2012083884.tif 000017
【図１６】
2012083884.tif 000018
【図１７】
2012083884.tif 000019