(57)【要約】【課題】中央処理装置がフェッチした特定の命令、割り込み処理プログラム又は初期化プログラムが中央処理装置によって正常に実行されたか否かを監視すること。【解決手段】中央処理装置（１０）がフェッチして解読した命令を前記中央処理装置の外部で解読し、解読した特定の命令の実行に要するクロック信号のクロックサイクル数を判別する。前記特定の命令の実行を終了したとき、命令の実行に要したクロックサイクル数が判別されたクロックサイクル数と異なると前記中央処理装置の動作が停止される。また、割り込み処理プログラムを実行中にプログラムカウンタの値が対応する割り込み処理プログラムのアドレス領域を逸脱すると中央処理装置（２１）の動作が停止される。また、リセット解除後、特定回路モジュールの初期化中に、プログラムカウンタの値が初期化プログラムのアドレス領域を逸脱すると中央処理装置（３０）の動作が停止される。【選択図】図１
2009070114.tif 000002
【特許請求の範囲】
【請求項１】
クロック信号に同期して命令を実行する中央処理装置と、
前記中央処理装置がフェッチして解読した命令を入力し、入力した命令が特定の命令であるとき、当該命令を実行するのに要する前記クロック信号のクロックサイクル数を判別するデコーダと、
前記中央処理装置が前記特定の命令を解読したとき、前記クロック信号をカウントするカウンタと、
前記中央処理装置による前記特定の命令の解読に起因する命令実行を終了したとき、前記カウンタのカウント値が前記デコーダで判別されたクロックサイクル数に対応するか否かを判定し、対応しないときには前記中央処理装置の動作を停止させる制御部とを有するマイクロコンピュータ。
【請求項２】
前記特定の命令は分岐命令である請求項１記載のマイクロコンピュータ。
【請求項３】
割り込み要求信号が入力され、入力された割り込み要求信号による割り込み要求を受け付けることによって、割り込み信号を出力する割り込みコントローラと、
前記割り込み信号に応答して割り込み処理プログラムを実行する中央処理装置と、
前記割り込み処理プログラムが格納される領域を特定するためのプログラムアドレス情報を保持し、前記中央処理装置が実行する命令の命令アドレスが前記プログラムアドレス情報で指定される領域を逸脱したか否かを判定する判定回路と、
前記中央処理装置が前記割り込み信号に応答して割り込み処理プログラムの実行を開始したときに、前記中央処理装置が実行する命令の命令アドレスが対応する割り込み処理プログラムのプログラムアドレス情報から逸脱したことを前記判定回路が判別することによって前記中央処理装置の動作を停止させる制御回路とを有するマイクロコンピュータ。
【請求項４】
前記判定回路は割り込み処理プログラム毎に備えられ、
前記制御回路は、前記割り込みコントローラが割り込み信号と共に出力する割り込み要因情報を入力し、入力した割り込み要因情報に対応する判定回路を動作させる請求項３記載のマイクロコンピュータ。
【請求項５】
前記中央処理装置は、前記割り込み信号を入力したとき、前記割り込みコントローラが割り込み信号と共に出力するベクタを入力し、入力したベクタによって指定されるベクタテーブル上から割り込み処理プログラムの先頭アドレスを取得し、
前記ベクタテーブルは、夫々の割り込み処理プログラムに対応する先頭アドレスと共に前記プログラムアドレス情報を保有する請求項４記載のマイクロコンピュータ。
【請求項６】
前記中央処理装置による特定の回路モジュールに対するアクセスを割り込み処理に限定するゲート回路を有する、請求項３記載のマイクロコンピュータ。
【請求項７】
リセット解除の指示に応答して特定回路モジュールを初期化する初期化プログラムを実行する中央処理装置と、
前記初期化プログラムが格納される領域を特定するためのプログラムアドレス情報を保持し、リセット解除後に前記初期化プログラムが前記中央処理装置によって実行開始されてから終了するまでの期間において、前記中央処理装置が実行する命令の命令アドレスが前記プログラムアドレス情報で指定される領域を逸脱したか否かを判定し、逸脱したときには前記中央処理装置の動作を停止させる判定回路とを有するマイクロコンピュータ。
【請求項８】
リセット解除後に前記初期化プログラムが前記中央処理装置によって実行開始されてから終了するまでの期間において、前記特定回路モジュール以外のモジュールが選択されたか否かを判別し、選択されたときには前記中央処理装置の動作を停止させるモジュール選択制御回路を有する請求項７記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュリティ機能を有するマイクロコンピュータに関し、特に、ＩＣカード用マイコンに係り、例えば、不正なアクセスによって内部情報の改竄やスキミング等を防止するマイクロコンピュータに適用して有効な技術に関する。
【背景技術】
【０００２】
ＩＣチップが組み込まれた、例えば、キャッシュカードや携帯電話に用いられるＩＣカード等において、高いセキュリティ機能が求められている。その対策として、例えばデータそれ自体を暗号化したり、アクセスを許容するのに認証処理を行なう。一方、スキミングやデータ改竄等を目的として、ＩＣチップに不正なアクセスが行われることがある。例えば、ＩＣチップの中央処理装置に対して、外部からの異常な電圧を印加したリ、高温雰囲気に曝したり、電磁波ノイズを与えたり、更にはレーザー光を照射したりして、局所で誤動作を生じさせて、不正なアクセスを行おうとする場合がある。この不正なアクセスを防止するために、例えば、特許文献１には、命令コードを予め一定の計算方法で生成した第一の暗号コードを、命令コードが格納されている領域とは別の領域に格納し、上記一定の計算方法で再計算した第二の暗号コードと、第一の暗号コードとを比較し、一致すれば命令を実行するデータプロセッサが開示されている。
【０００３】
【特許文献１】特開２００４−１７８２５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明者は、保護すべき機密情報に対するアクセスについて検討した。第一に、機密情報に対するアクセスを許容するような処理は分岐命令による分岐条件が成立した後に可能としている場合がある。そこで、当該分岐命令が正常に実行されたか否かについて着目する必要性を認識した。第二に、機密情報に対する処理をサブルーチン化して、割り込み要求によって当該サブルーチンを実行する場合がある。従って、当該サブルーチンが正常に実行されたか否かについて着眼する必要性を認識した。第三に、マイクロコンピュータの論理空間と物理空間とを対応させてメモリ管理を行うメモリ管理ユニット（ＭＭＵ）に対する空間割り当ての初期設定がマイクロコンピュータの本来の設定内容から外れると、それによって自由にアクセスすることが禁止されているような機密情報のメモリエリアに不正にアクセスされることがある。ゆえに、マイクロコンピュータのリセット解除後に、上記ＭＭＵ等の特定モジュールの当該初期設定の動作が正常に行われたか否かを監視する必要性を認知した。
【０００５】
本発明の目的は、中央処理装置がフェッチした特定の命令がそのまま実行されたか否かを監視することができるマイクロコンピュータを提供することにある。
【０００６】
本発明の別の目的は、中央処理装置によって実行されるサブルーチンが依然として実行されたか否かを監視することができるマイクロコンピュータを提供することにある。
【０００７】
本発明の更に別の目的は、マイクロコンピュータのリセット解除後における特定モジュールの初期設定動作が不所望に変更されたか否かを監視することができるマイクロコンピュータを提供することにある。
【０００８】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１０】
すなわち、中央処理装置がフェッチして解読した命令を前記中央処理装置の外部で解読し、解読した特定の命令を前記中央処理装置が実行するのに要するクロック信号のクロックサイクル数を判別する。前記中央処理装置が前記特定の命令をフェッチした後に命令の実行を終了したとき、命令の実行に要したクロックサイクル数が前記判別されたクロックサイクル数と異なる場合、前記中央処理装置の動作が停止される。
【００１１】
また、中央処理装置が割り込み処理プログラムの実行を開始したとき、前記中央処理装置が実行する命令の命令アドレスが対応する割り込み処理プログラムのプログラムアドレスから逸脱すると、前記中央処理装置の動作が停止される。
【００１２】
また、リセット解除後に特定回路モジュールを初期化する期間において、中央処理装置によって実行される命令の命令アドレスが初期化プログラムのプログラムラムアドレスを逸脱すると、前記中央処理装置の動作が停止される。
【発明の効果】
【００１３】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１４】
すなわち、中央処理装置がフェッチした特定の命令がそのまま実行されたか否かを監視することができる。
【００１５】
また、中央処理装置によって実行されるサブルーチンが依然として実行されたか否かを監視することができる。
【００１６】
また、マイクロコンピュータのリセット解除後における特定モジュールの初期設定動作が不所望に変更されたか否かを監視することができる。
【発明を実施するための最良の形態】
【００１７】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１８】
〔１〕本発明の代表的な実施の形態に係るマイクロコンピュータ（１）は、クロック信号に同期して命令を実行する中央処理装置（１０）と、前記中央処理装置がフェッチして解読した命令を入力し、入力した命令が特定の命令であるとき、当該特定の命令を実行するのに要する前記クロック信号のクロックサイクル数を判別するデコーダ（１０１）とを有する。また、前記中央処理装置が前記特定の命令を解読したとき、前記クロック信号をカウントするカウンタ（１０２）と、前記カウンタのカウント値が前記デコーダで判別された前記クロックサイクル数に対応するか否かを判定する制御部（１０３）とを有する。前記中央処理装置による前記特定の命令の解読に起因する命令実行を終了したとき、前記カウンタのカウント値が前記デコーダで判別されたクロックサイクル数に対応しないときには、前記制御部によって前記中央処理装置の動作が停止される。従って、前記中央処理装置によってフェッチされた前記特定の命令がそのまま実行されたか否かを監視することができる。
【００１９】
一つの具体的な形態として、前記特定の命令は分岐命令である。これによれば、機密情報に対するアクセスを許容する場合の多い前記分岐命令が正常に実行されたか否かについて着目することができる。
【００２０】
〔２〕本発明の別の観点によるマイクロコンピュータ（２）は、割り込み要求信号が入力され、入力された割り込み要求信号による割り込み要求を受け付けることによって、割り込み信号を出力する割り込みコントローラ（２０）と、前記割り込み信号に応答して割り込み処理プログラムを実行する中央処理装置（２１）とを有する。また、前記割り込み処理プログラムが格納される領域を特定するためのプログラムアドレス情報を保持し、前記中央処理装置が実行する命令の命令アドレスが前記プログラムアドレス情報で指定される領域を逸脱したか否かを判定する判定回路（２２０）を有する。更に、前記中央処理装置が前記割り込み信号に応答して割り込み処理プログラムの実行を開始したときに、前記中央処理装置が実行する命令の命令アドレスが対応する割り込み処理プログラムのプログラムアドレス情報から逸脱したことを前記判定回路が判別することによって前記中央処理装置の動作を停止させる制御回路（２５）を有する。従って、前記中央処理装置によって実行される前記割り込み処理プログラムがそのまま実行されたか否かを監視することができる。
【００２１】
一つの具体的な形態として、前記判定回路は割り込み処理プログラム毎に備えられ、前記制御回路は、前記割り込みコントローラが割り込み信号と共に出力する割り込み要因情報を入力し、入力した割り込み要因情報に対応する判定回路を動作させる。従って、多重割り込みが実行されている場合にも、実行中の割り込み処理に対して監視することができる。
【００２２】
更に具体的な形態として、前記中央処理装置は、前記割り込み信号を入力したとき、前記割り込みコントローラが割り込み信号と共に出力するベクタを入力し、入力したベクタによって指定されるベクタテーブル上から割り込み処理プログラムの先頭アドレスを取得する。また、前記ベクタテーブルは、夫々の割り込み処理プログラムに対応する先頭アドレスと共に前記プログラムアドレス情報を保有する。従って、前記判定回路に保持されるプログラムアドレスを前記ベクタテーブルから容易に読み出すことができる。
【００２３】
更に別の具体的な形態として、前記中央処理装置による特定の回路モジュールに対するアクセスを割り込み処理に限定するゲート回路を有する。割り込み処理からの逸脱を監視し、更に特定の回路モジュールに対するアクセスを割り込み処理に限定することにより、当該特定の回路モジュールに対する不正アクセスの防止を強化することができる。
【００２４】
〔３〕本発明の更に別の観点によるマイクロコンピュータ（３）は、リセット解除の指示に応答して特定回路モジュールを初期化する初期化プログラムを実行する中央処理装置（３０）を有する。また、前記初期化プログラムが格納される領域を特定するためのプログラムアドレス情報を保持し、リセット解除後に前記初期化プログラムが前記中央処理装置によって実行開始されてから終了するまでの期間において、前記中央処理装置が実行する命令の命令アドレスが前記プログラムアドレス情報で指定される領域を逸脱したか否かを判定し、逸脱したときには前記中央処理装置の動作を停止させる判定回路（３０１）を有する。従って、リセット解除後に前記中央処理装置が前記特定回路モジュールを初期化する期間において、前記中央処理装置によって前記初期化プログラムが正常に実行されたか否かを監視することができる。
【００２５】
一つの具体的な形態として、リセット解除後に前記初期化プログラムが前記中央処理装置によって実行開始されてから終了するまでの期間において、前記特定回路モジュール以外のモジュールが選択されたか否かを判別し、選択されたときには前記中央処理装置の動作を停止させるモジュール選択制御回路（３０２）を有する。これによって、前記特定モジュール以外のモジュールが選択されることによる不所望なアクセスを防止することができる。
【００２６】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００２７】
図１には本発明に係るマイクロコンピュータ（ＭＣＵ）１の構成図が例示される。前記マイクロコンピュータ１は、命令、データ、命令やデータのアドレスを伝達する内部バス（ＢＵＳ）１１と、内部回路の動作タイミングを規定するための周期的なクロック信号を生成するクロックパルスジェネレーション（ＣＰＧ）１２を有する。前記内部バス１１を介して、外部とのデータの入出力を行うＩ／Ｏポート（Ｉ／Ｏ）１３と、前記クロック信号に同期して命令を実行する中央処理装置（ＣＰＵ）１０と、前記中央処理装置１０が実行するプログラムを保持するメモリ（ＭＥＭ）１４とを有する。また、前記マイクロコンピュータ１は、前記中央処理装置１０によってフェッチされた特定の命令がそのまま実行されたか否かを監視する監視モジュールと、前記内部回路を初期状態にするリセット回路（ＲＥＳ）１５を有する。前記特定の命令は、例えば分岐命令であり、前記監視モジュールを分岐命令監視モジュール（ＪＣＷＭ）１００と称する。前記リセット回路１５は、例えば、外部リセット信号／ＲＥＳによってリセット指示を受けることにより前記マイクロコンピュータ１の内部を初期化する。
【００２８】
前記分岐命令監視モジュール１００は、デコーダ（ＤＣＤ）１０１、サイクルレジスタ（ＣＹＲＥＧ）１０４、制御部（ＣＮＴ）１０５、カウンタ（ＣＯＵＴ）１０２及び比較制御部（ＣＯＭＰ）１０３とを備える。前記デコーダ１０１は、前記中央処理装置１０がフェッチした命令（ＣＣＯＤ）を解読し、解読した命令が分岐命令の場合にはその前記分岐命令の実行に要する前記クロック信号のクロックサイクル数を前記サイクルレジスタ１０４に格納する。前記中央処理装置１０はフェッチした命令を解読して分岐命令を実行する場合、前記制御部１０５に分岐命令実行信号（ＢＩＡ）を出力する。前記分岐命令実行信号ＢＩＡは、前記中央処理装置１０によって前記分岐命令の実行が開始されると、ハイレベルにされる。その後、前記中央処理装置１０が命令の実行を終了すれば、そのタイミングでローレベルにされる。前記制御部１０５は、前記中央処理装置１０から出力される前記分岐命令実行信号ＢＩＡのハイレベルによって前記カウンタ１０２の動作を開始させ、前記中央処理装置１０によって前記分岐命令実行信号ＢＩＡがローレベルにされるまで動作を行うように制御される。前記カウンタ１０２は動作期間中の前記クロック信号のクロックサイクル数をカウントし、前記カウントされるカウント値は前記クロック信号に同期して＋１ずつ増加した値とされる。前記カウンタ１０２の動作は、前記分岐命令実行信号ＢＩＡのハイレベルによって前記カウント値を０にしてから開始される。前記比較制御部１０３は、前記サイクルレジスタ１０４に格納されたクロックサイクル数の値と前記カウント値を対比する比較動作を行う。前記比較制御部１０３は、前記分岐命令実行信号ＢＩＡがハイレベルからローレベルにされたとき、前記比較動作を開始する。前記比較動作によって前記サイクルレジスタ１０４に格納されたクロックサイクル数の値と前記カウント値が同値であると判定されると、前記中央処理装置１０によってフェッチされた分岐命令が正常に実行されたこととなる。しかし、前記サイクルレジスタ１０４に格納されたクロックサイクル数の値と前記カウント値が不一致であると判定された場合は、前記中央処理装置１０によってフェッチされた前記分岐命令の実行状態がレーザー光照射等に起因する誤動作によって不所望に変化されたとみなすことができる。前記比較制御部によってそれぞれの値が不一致であると判定されると、前記比較制御部１０３はリセット回路１５に不一致信号（ＤＡＧ）を出力し、前記リセット回路１５は、前記内部回路を初期化する指示を出力する。これによって、前記マイクロコンピュータ１の内部は強制的に初期状態に戻される。
【００２９】
従って、前記サイクルレジスタ１０４に格納されたクロックサイクル数の値と前記カウント値を監視することによって、前記中央処理装置１０がフェッチした分岐命令が正常に実行されたか否かを判定することができる。これによって、機密情報に対するアクセスを許容するような処理を可能としている場合の多い分岐命令を監視することができるから、前記中央処理装置１０が分岐命令をフェッチして実行開始した後に機密情報を不正にアクセスするための操作を抑制することができる。
【００３０】
図２には本発明に係る別のマイクロコンピュータ２の構成図が例示される。前記マイクロコンピュータ２は、割り込みコントローラ（ＩＮＴＣ）２０、命令をフェッチして実行する中央処理装置（ＣＰＵ）２１、外部とのデータの入出力を行うＩ／Ｏポート（Ｉ／Ｏ）２３、前記中央処理装置２１のワーク領域として用いられるメモリ（ＭＥＭ）２４、リセット回路（ＲＥＳ）２５及び前記中央処理装置２１が実行する割り込み処理プログラムが正常に実行されたか否かを監視する監視部（ＷＡＴ）２００を有する。前記中央処理装置２１、前記Ｉ／Ｏポート２３、前記メモリ２４、前記割り込みコントローラ２０及び前記監視部２００は、内部バス（ＢＵＳ）２２に共通に接続される。前記割り込みコントローラ２０は割り込み要求信号が入力されると、それに対する割り込み優先レベルやマスクレベルを判定して一つの割り込み要求を受け付けて、割り込み信号（ＣＩＦＬ）を前記中央処理装置２１に出力すると共に、受け付けた前記割り込み要求に応ずるベクタを前記内部バス２２に出力する。前記割り込み信号ＣＩＦＬによって割り込みが指示されると、前記中央処理装置２１は実行中の命令を完了してから必要な退避処理を行い、前記ベクタで指定されるアドレスをベクタテーブル（ＶＴ）から取得し、取得したアドレスを用いて割り込み処理プログラムの先頭命令をフェッチして割り込み処理に移行する。
【００３１】
前記監視部２００は、レジスタ制御部（ＲＣＮＴ）２０２、割り込み監視モジュール（ＷＴ＿Ａ〜ＷＴ＿Ｘ）２１０＿Ａ〜２１０＿Ｘ、モジュール制御部（ＣＮＴ）２０３及びオアゲート２０１を有する。前記割り込み監視モジュール２１０＿Ａ〜２１０＿Ｘは、前記マイクロコンピュータ２の割り込み処理プログラムと一対一対応される。前記割り込み監視モジュール２１０＿Ａ〜２１０＿Ｘは、対応する割り込み処理プログラムの格納領域を示す情報が設定されるレジスタ（ＲＥＧ＿１Ａ〜ＲＥＧ＿ｘＢ）２１１〜２１６と比較制御部（ＣＯＭＰ）２２０〜２２２を有する。前記レジスタ制御部２０２は、前記中央処理装置２１から前記マイクロコンピュータ２を前記初期化する指示を受けて、対応する前記割り込み処理プログラムが格納されている領域のアドレス情報（以下、割り込み処理プログラムのアドレス領域と称する）を前記レジスタ２１１〜２１６に格納する。例えば、前記割り込み監視モジュール２１０＿Ａ〜２１０＿Ｘ毎に有する前記レジスタ２１１〜２１６は、対応する前記割り処理プログラムの先頭アドレスが格納される前記レジスタ２１１〜２１３と、対応する前記割り込み処理プログラムの末尾アドレス又は対応する前記割り込み処理プログラムの領域のサイズ情報が格納される前記レジスタ２１４〜２１６とが対にされる。
【００３２】
前記比較制御部２２０〜２２２は、前記中央処理装置２１によって出力される次に実行されるべき命令が格納されているアドレスを示すプログラムカウンタ（ＰＣ）の値が、前記レジスタ２１１〜２１６に格納された前記割り込み処理プログラムのアドレス領域から逸脱するか否かを判定する比較動作を行う。前記比較制御部２２０〜２２２の前記比較動作は、前記モジュール制御部２０３によって制御される。前記モジュール制御部２０３は、前記割り込みコントローラ２０が出力する前記ベクタを入力し、前記ベクタで指定されることになる割り込み処理プログラムに対応する前記割り込み監視モジュール２１０＿Ａ〜２１０＿Ｘの前記比較制御部２２０〜２２２の前記比較動作を制御する。例えば、前記監視モジュールＷＴ＿Ａに対応する割り込み処理プログラムの処理が前記割り込み信号ＣＩＦＬと前記ベクタによって指定されると、前記モジュール制御部２０３は、前記中央処理装置２１が実行する前記割り込み処理プログラムに対応する前記監視モジュールＷＴ＿Ａの前記比較制御部２２０の前記比較動作を開始させる。
【００３３】
前記比較制御部２２０〜２２２の判定結果によって逸脱すると判定されなければ、前記中央処理装置２１によって実行される前記割り込み処理プログラムが正常に実行されたこととなる。しかし、前記判定結果によって逸脱すると判定されると、前記中央処理装置２１が割り込み処理プログラムの処理に移行した後に前記割り込み処理プログラムの処理から逸脱して実行されたと解される。その場合、前記比較制御部２２０〜２２２の内、前記比較動作が指示された前記比較制御部は前記オアゲート２０１にエラー信号（ＥＲ）を出力し、前記オアゲート２０１は前記エラー信号ＥＲを受けて前記リセット回路２５にリセット信号（ＲＥ）を出力する。そして、前記リセット回路２５は前記リセット信号ＲＥを受けて前記マイクロコンピュータ２の初期化を行う。
【００３４】
以上の説明によれば、前記プログラムカウンタの値がそれに対応する前記割り込み処理プログラムのアドレス領域から逸脱するか否かを監視することによって、前記中央処理装置２１によって実行される命令実行処理が割り込みルーチンに移行した後に正常にその処理プログラムが実行されたか否かを判定することができる。従って、機密を保護すべき処理をサブルーチンで行うような場合に、その途上で機密情報への不正なアクセスを防止することができる。
【００３５】
図３には前記レジスタ２１１〜２１６に格納する際に利用されるベクタテーブルが例示される。前記ベクタテーブルには、前記ベクタに対応して飛び先アドレス（Ａｄｄｒ＿Ｊ１〜Ａｄｄｒ＿ＪＸ）と末尾アドレス（Ａｄｄｒ＿Ｅ１〜Ａｄｄｒ＿ＥＸ）が設定される。前記飛び先アドレスＡｄｄｒ＿Ｊ１〜Ａｄｄｒ＿ＪＸは前記割り込み処理プログラムのアドレス領域の先頭アドレスを示し、前記末尾アドレスＡｄｄｒ＿Ｅ１〜Ａｄｄｒ＿ＥＸは前記割り込み処理プログラムのアドレス領域の末尾アドレスを示す。前記レジスタ２１１〜２１６は、前記マイクロコンピュータ２の初期化によって対応する前記割り込み処理プログラムのアドレス領域が設定され、例えば、前記レジスタ制御部２０２によって前記レジスタ２１１〜２１３には対応する前記飛び先アドレスが格納され、また、前記レジスタ２１４〜２１６には対応する前記末尾アドレスが格納される。前記ベクタテーブルを利用することによって、前記レジスタ２１１〜２１６に設定する前記割り込み処理プログラムのアドレス領域を容易に設定することができる。尚、図３の説明ではベクタテーブルには夫々の割り込み処理プログラムの飛び先アドレスである先頭アドレスと末尾アドレスのペアを格納する構成としたが、末尾アドレスの代わりに、対応する割り込み処理プログラムのプログラムサイズ（格納領域のサイズ）を示すサイズデータを格納してもよい。
【００３６】
図４には、中央処理装置が通常ルーチンのプログラムを実行中に、割り込み要求が発生した場合の動作が示される。前記中央処理装置は前記通常ルーチンのプログラムの命令Ｍ１から順に実行する。前記通常ルーチンのプログラムの命令Ｍ２を実行中に前記割り込み要求が発生すると、前記中央処理装置２１は実行中の前記命令Ｍ２の実行を完了させてから前記割り込み要求に対応する割り込みルーチンのプログラムの実行に移行して、前記割り込みルーチンのプログラムの命令Ｓ１〜Ｓｅｎｄを実行する。このとき、前記割り込み要求に対応する割り込み監視モジュールは、前記中央処理装置によって実行される命令が対応する前記命令Ｓ１〜Ｓｅｎｄのアドレスのアドレス領域から逸脱するか否かを監視する。前記中央処理装置によって前記命令Ｓ１〜Ｓｅｎｄの実行が完了すると、前記中央処理装置は前記通常ルーチンのプログラムの実行に復帰し、前記通常ルーチンのプログラムの命令Ｍ３から実行する。図示はしないが、前記中央処理装置が前記命令Ｓ１〜Ｓｅｎｄを実行中に別の割り込み要求が発生すると、前記中央処理装置は実行中の命令を完了してから前記別の割り込み要求に対応する別の割り込みルーチンのプログラムの実行に移行する。前記中央処理装置が前記別の割り込みルーチンのプログラムを実行している期間は、前記別の割り込み要求に対応する割り込み監視モジュールによって、前記中央処理装置によって実行される命令が対応する前記別の割り込みルーチンのプログラムのアドレス領域から逸脱するか否かが監視される。そして、前記別の割り込みルーチンのプログラムの実行が完了すると、前記割り込みルーチンのプログラムの実行に復帰し、その後の動作は上記同様に行われる。
【００３７】
このように、前記割り込み要求に対応する割り込み監視モジュールによって、前記中央処理装置によって実行される命令が前記割り込み要求に対応する割り込みルーチンのプログラムのアドレス領域から逸脱するか否かを監視することができる。特に、前記中央処理装置が割り込みルーチンのプログラムを実行中に別の割り込み要求が発生しても、前記別の割り込み要求に対応する割り込み監視モジュールによって上記同様に監視することができる。そのとき、例えば、一つの前記割り込み監視モジュールで複数の割り込み要求を処理する場合、割り込み要求毎に対応する前記割り込み監視モジュールの前記レジスタの情報を割り込み要求に対応する割り込み処理プログラムのアドレス領域に書き換えなければならない。上述のように、複数の前記割り込み監視モジュールを用いることによって、多重割り込みが許容される場合に、割り込み処理から別の割り込み処理の移行に伴って対応する前記割り込み監視モジュール内の前記レジスタの書き換えを行わずに済み、割り込み処理から別の割り込み処理への移行を高速に行うことができる。また、良好な割り込み情報を保護することができる。
【００３８】
図５には、セキュリティモジュールに対するモジュール選択制御のための回路構成が例示される。同図に示されるセキュリティモジュールは、機密情報が格納される不揮発性メモリやシステム構成を決定するメモリ管理ユニット等のモジュールを示す。前記セキュリティモジュールへのアクセスは、例えば、割り込み処理プログラムによって処理される。同図に示される回路構成は、この処理に伴って出力される前記割り込み信号ＣＩＦＬを利用して前記セキュリティモジュールへのアクセスを制限する回路図であって、具体的にはアンド回路を介して前記セキュリティモジュールにアクセスする回路図である。前記アンド回路の一方の端子には前記割り込み信号ＣＩＦＬが入力され、もう一方の端子には前記中央処理装置が前記セキュリティモジュールにアクセスするときに出力するセキュリティモジュール選択信号が入力される。前記割り込み信号ＣＩＦＬは、ハイレベルで割り込み処理の指示レベルとされる。前記セキュリティモジュール選択信号は、ハイレベルで前記セキュリティモジュールへのアクセスの指示レベルとされる。前記割り込み信号ＣＩＦＬと前記セキュリティモジュール選択信号の両方の信号がハイレベルにされると、前記アンド回路は前記セキュリティモジュールに対してアクセスイネーブルとする。ここでは、前記セキュリティモジュールへのアクセスは前記割り込み処理によって可能とされる。前記割り込み信号ＣＩＦＬがローレベル、前記セキュリティモジュール選択信号がハイレベルにされたときは、不正なアクセスによって前記割り込み処理を行わずに前記セキュリティモジュールに対してアクセスを要求していると考えられる。この場合は、前記アンド回路によって前記セキュリティモジュールに対してアクセスディスイネーブルとされる。これによって、セキュリティ上、機密情報が格納されるセキュリティモジュールへの不正なアクセスを抑制することができる。
【００３９】
図６には本発明に係る別のマイクロコンピュータ３の構成図が例示される。前記マイクロコンピュータ３は、命令、データ、命令やデータのアドレスを伝達する内部バス（ＢＵＳ）３１、前記マイクロコンピュータ３の内部回路を初期状態にするリセット回路（ＲＥＳ）３７及び初期化監視モジュール（ＩＷＭ）３００を有する。また、前記内部バス３１を介して、外部とのデータの入出力を行うＩ／Ｏポート（Ｉ／Ｏ）３３、外部とのデータの入出力を制御するＩ／Ｏコントローラ（Ｉ／ＯＣＮＴ）３４、命令を実行する前記中央処理装置（ＣＰＵ）３０及び前記中央処理装置３０のワーク領域として用いられるメモリ（ＭＥＭ）３２を有する。更に、前記マイクロコンピュータ３のメモリ管理を行うメモリ管理ユニット（ＭＭＵ）３５及び前記中央処理装置３０によるプログラム実行が所定期間以上停止した場合に前記内部回路を初期化するためのウォッチドックタイマ（ＷＤＴ）３６を有する。
【００４０】
前記初期化監視モジュール３００は、比較制御部（ＣＯＭＰ）３０１、判定回路（ＪＣＮＴ）３０２、前記内部回路を初期化する初期化プログラムが格納されている領域のアドレス情報（以下、アドレス領域と称する。）を格納するレジスタ（ＲＥＧ）３０３、ＲＳフリップフロップ３０４及びオアゲート３０５を有する。前記レジスタ３０３に格納される前記アドレス領域の初期設定は、特に限定されないが前記マイクロコンピュータ３に対するリセット要求に応答してハードウェアにより自動的に行われる。前記初期化監視モジュール３００は、図７に示される監視期間中に動作する。前記監視期間は、前記マイクロコンピュータ３のリセット解除後から、前記中央処理装置３０によって前記初期化プログラムが実行され、セキュリティモジュールの動作が可能とされるまでである。前記セキュリティモジュールとは、機密情報が格納される前記メモリ３２、中央処理装置のアドレス空間に対するアクセス権等を決定する前記メモリ管理ユニット３５、及び中央処理装置による命令実行インターバルの異常を検出してシステムの初期化を行なうことができるウォッチドックタイマ３６等のモジュールを意味する。前記ＲＳフリップフロップ３０４は、前記中央処理装置３０が実行するプログラムから前記監視期間を検出して、前記比較制御部３０１と前記判定回路３０２の動作を制御する。前記ＲＳフリップフロップは、セット端子Ｓ、リセット端子Ｒ及び出力端子Ｑを有する。前記セット端子Sには前記初期化プログラムの実行開始に伴って前記中央処理装置３０によって実行開始信号（ＩＰＳ）が入力され、前記リセット端子Rには前記初期化プログラムの実行完了に伴って前記中央処理装置３０によって実行完了信号（ＩＰＥ）が入力される。前記フリップフロップ３０４は前記実行開始信号ＩＰＳのハイレベルによって前記出力端子Ｑがハイレベルにされるとセット状態とされ、前記出力端子Ｑのハイレベルの出力により前記比較制御部３０１と前記判定回路３０２の動作が開始される。また、前記フリップフロップ３０４は前記実行完了信号ＩＰＥのハイレベルによって前記出力端子Ｑがローレベルにされるとリセット状態とされ、前記出力端子Ｑのローレベルの出力により前記比較制御部３０１と前記判定回路３０２の動作が停止される。
【００４１】
前記比較制御部３０１は、前記監視期間中、前記プログラムカウンタの値が前記レジスタ３０３に格納された前記アドレス領域から逸脱するか否かを判定する比較動作を行う。前記比較動作によって逸脱すると判定されると、前記中央処理装置３０によって前記アドレス領域のプログラムとは別の領域の命令が実行されたことになる。この場合は、前記比較制御部３０１は前記オアゲート３０５にエラー信号ＥＲを出力し、前記オアゲート３０５は前記エラー信号ＥＲを受けて前記リセット回路３７にリセット信号ＲＥを出力する。そして、前記リセット回路３７は前記リセット信号ＲＥを受けて前記マイクロコンピュータ３の初期化を行う。
【００４２】
また、前記判定回路３０は、前記監視期間中、前記中央処理装置３０によって選択されたモジュールが特定モジュール以外であるか否かを判定する判定動作を行う。前記特定モジュールとは、前記中央処理装置３０が前記監視期間中にアクセス可能なモジュールであって、例えば、前記ウォッチドックタイマＭＳ１、前記メモリ管理ユニットＭＳ２、前記Ｉ／ＯコントローラＭＳ３及び前記Ｉ／ＯポートＭＳ４である。前記監視期間中に前記中央処理装置３０がアクセス不可能なモジュールとして、例えばレジスタＭＳ５が挙げられる。前記判定動作によって前記特定モジュール以外のモジュールが選択されたと判定されると、前記中央処理装置３０は前記アクセス可能なモジュールＭＳ１〜ＭＳ４以外のモジュール、例えば前記レジスタＭＳ５を選択したと考えられる。前記レジスタＭＳ５は前記マイクロコンピュータ３の初期設定の開始と同時に自動的に設定されるため、前記監視期間中における前記レジスタＭＳ５に対するアクセスは不正な処理であると考えられる。この場合は、前記判定回路３０２は前記オアゲート３０５にエラー信号ＥＲを出力し、上記同様に前記マイクロコンピュータ３の初期化を行う。
【００４３】
以上の説明によれば、前記監視期間中に、前記プログラムカウンタの値が前記レジスタ３０３に格納された前記アドレス領域から逸脱するか否かを監視することによって、前記中央処理装置３０によって前記初期化プログラムが正常に実行されたか否かを判定することがきる。また、前記中央処理装置３０が選択するモジュールを監視することによって、初期化動作中にアクセス可能なモジュールが選択されたか否かを判定することができる。これによって、前記アクセス可能なモジュール以外のモジュールが選択されることによる不所望なアクセスを防止することができる。
【００４４】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００４５】
上記の説明によれば、中央処理装置が実行するプログラムはマイクロコンピュータの内部メモリに保持されているが、外部メモリに保持されていても良い。図１においては、分岐命令を例に説明したが、機密情報に対するアクセスを許容するような処理を可能としている特定の命令であれば図１と同様に監視することができる。
【図面の簡単な説明】
【００４６】
【図１】本発明に係るマイクロコンピュータの構成図である。
【図２】本発明に係る別のマイクロコンピュータの構成図である。
【図３】レジスタに格納する際に利用されるベクタテーブルである。
【図４】中央処理装置が通常ルーチンのプログラムを実行中に、割り込み要求が発生した場合の動作の説明図である。
【図５】セキュリティモジュールへのアクセスを制限する回路図である。
【図６】本発明に係る別のマイクロコンピュータの構成図である。
【図７】初期化監視モジュールが動作する監視期間を示した模式図である。
【符号の説明】
【００４７】
１〜３  マイクロコンピュータ
１０  中央処理装置
１１  内部バス
１２  クロックパルスジェネレーション
１３  Ｉ／Ｏポート
１４  メモリ
１５  リセット回路
２０  割り込みコントローラ
２１  中央処理装置
２２  内部バス
２３  Ｉ／Ｏポート
２４  メモリ
２５  リセット回路
３０  中央処理装置
３１  内部バス
３２  メモリ
３３  Ｉ／Ｏポート
３４  Ｉ／Ｏコントローラ
３５  メモリ管理ユニット
３６  ウォッチドックタイマ
３７  リセット回路
１００  分岐命令監視モジュール
１０１  デコーダ
１０２  カウンタ
１０３  比較制御部
１０４  サイクルレジスタ
１０５  制御部
２００  監視部
２０１  オアゲート
２０２  レジスタ制御部
２０３  モジュール制御部
２１０＿Ａ〜２１０＿Ｘ  割り込み監視モジュール
２１１〜２１６  レジスタ
２２０〜２２２  比較制御部
３００  初期化監視モジュール
３０１  比較制御部
３０２  判定回路
３０３  レジスタ
３０４  ＲＳフリップフロップ回路
３０５  オアゲート
【図１】
2009070114.tif 000003
【図２】
2009070114.tif 000004
【図３】
2009070114.tif 000005
【図４】
2009070114.tif 000006
【図５】
2009070114.tif 000007
【図６】
2009070114.tif 000008
【図７】
2009070114.tif 000009