(57)【要約】【課題】  セキュリティ情報の取得など、悪意あるプログラムの外部空間での利用を排除する。【解決手段】  ブートジャンプコードの実行によって、第２外部端子（Ｔ４）を介して取り込まれたキーコードが、予め設定されたコードと一致するか否かを判別する第１機能と、この第１機能によって、上記第２外部端子を介して取り込まれたキーコードが、予め設定されたコードと一致すると判断された場合に、外部のメモリ（２０）に記憶されているプログラムをフェッチして実行する第２機能とを、中央処理装置（１２）によって形成する。上記第２外部端子を介して取り込まれたキーコードが、予め設定されたコードと一致しない限り、上記半導体集積回路の外部に配置されたメモリに記憶されているプログラムをフェッチして実行することはないので、悪意あるプログラムの外部空間での利用を排除することができる。【選択図】        図１
2006107040.tif 000002
【特許請求の範囲】
【請求項１】
通常ブートで実行される第１プログラムが記憶された第１記憶エリアと、
デバッグ時のブートで実行される第２プログラムが記憶された第２記憶エリアと、
上記第１プログラムと上記第２プログラムとを選択的に指定可能な第１外部端子と、
キーコードの外部入力を可能とする第２外部端子と、
上記第１外部端子からの指定に応じて上記第１プログラムと上記第２プログラムとを選択的に実行可能な中央処理装置と、を含み、
上記第２プログラムが実行された上記中央処理装置は、上記第２外部端子を介して取り込まれたキーコードが、予め設定されたコードと一致するか否かを判別する第１機能と、
上記第１機能によって、上記第２外部端子を介して取り込まれたキーコードが、予め設定されたコードと一致すると判断された場合に、上記半導体集積回路の外部に配置されたメモリに記憶されているプログラムを実行する第２機能と、を含んで成る半導体集積回路。
【請求項２】
上記中央処理装置は、上記第２外部端子を介して取り込まれたキーコードが、予め設定されたコードと一致しない限り上記第２プログラムを無限ループで実行する請求項１記載の半導体集積回路。
【請求項３】
上記中央処理装置は、上記第２外部端子を介して取り込まれたキーコードが、予め設定されたコードと一致しない場合には、上記第１外部端子からの選択にかかわらず、上記第１プログラムを実行する請求項１記載の半導体集積回路。
【請求項４】
上記第１記憶エリアと、上記第２記憶エリアとは、同一の半導体メモリにおいて互いに異なるアドレスに形成された請求項３又は４記載の半導体集積回路。
【請求項５】
上記半導体メモリをアクセスするためのアドレス信号の形成に、第１外部端子の論理状態を関与させるための論理ゲートを含む請求項４記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路、さらにはそれにおけるセキュリティ技術に関し、例えばマイクロコンピュータに適用して有効な技術に関する。
【背景技術】
【０００２】
一つの半導体基板に形成されたマイクロコンピュータはＣＰＵ(中央処理装置)の他に、プログラム格納用ＲＯＭ（リードオンリーメモリ）、演算用ＲＡＭ（ランダムアクセスメモリ）及びタイマ，Ａ／Ｄ（アナログ／ディジタル）変換器，Ｄ／Ａ（ディジタル／アナログ）変換器等の周辺機能を１個の半導体チップ上に収容した比較的小規模のコントローラに使われるマイクロコンピュータである（例えば特許文献１）。ＲＯＭとしては、多くの場合マスクＲＯＭであるが、フィールドプログラム可能なプログラマブルＲＯＭも使われる。このためアドレスバス、データバス等のバスは信号ピンとして外部に引き出されておらず、外部ピンは電源、一部のコントロール信号等以外は周辺機能とマイクロコンピュータ外のシステムとのシステムインタフェース信号ピンに割り当てられる。
【０００３】
【特許文献１】特開平６−３４８８６７号公報（第２段落）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
マイクロコンピュータは、ＣＰＵに含まれるプログラムカウンタのデフォルト値に従って内蔵ＲＯＭの先頭アドレスからプログラムを実行して起動する（これを「通常ブート」という）モードと、ユーザプログラムのデバッグの便宜を図るための機能として、内蔵ＲＯＭ無効モードを有している。ここで、通常ブートモードと内蔵ＲＯＭ無効モードとの違いについて説明する。
【０００５】
図３には、通常ブートの流れが示される。
【０００６】
通常ブートにおいては、電源投入によるパワーオンリセットが行われ、それが解除されると（ＳＴ１）、ＣＰＵ１２に含まれるプログラムカウンタのデフォルト値に従って内蔵ＲＯＭ１９の先頭アドレスからユーザプログラムデータ（命令・オペランド）がフェッチされ（ＳＴ２）、それが実行される（ＳＴ３）。また、ＰＣＩバスやＲＯＭ/ＳＲＡＭバスのような外部拡張バス上に、ユーザプログラムが格納された拡張ＲＯＭ２０が結合されている場合、外部拡張ＲＯＭ２０の拡張ユーザプログラムデータ（命令・オペランド）がＣＰＵ１２によって実行可能とされる。この場合、常に、内蔵ＲＯＭ１９内のブートプログラムを実行しなくてはならないので、外部にブートプログラムを置いて、それを自由に利用することはできない。
【０００７】
図４には、内蔵ＲＯＭ無効モードの流れが示される。
【０００８】
内蔵ＲＯＭ無効モードにおいては、内蔵ＲＯＭ１９を無効にする外部端子が内蔵ＲＯＭ無効モード選択信号によってイネーブル状態にセットされることによって、ＣＰＵ１２内のプログラムカウンタの値が拡張ＲＯＭ２０の先頭アドレスを指示するように変更され（ＳＴ１１）、パワーオンリセット状態が解除されると（ＳＴ１２）、ＣＰＵ１２によって、拡張ＲＯＭ２０の先頭アドレスからプログラムが実行されることによって起動される（ＳＴ１３，ＳＴ１４）。このモードによれば、内蔵ＲＯＭ１９の制約を受けることなく、外部メモリ空間に置かれたプログラムを利用することができる。しかしながら、外部モード端子のみの設定で内蔵ＲＯＭ１９の制約を受けずに外部メモリ空間を利用できるため、悪意を持ったエンドユーザにシステム上にある個人情報や著作権情報を入手するための手段を与えてしまう危険性がある。
【０００９】
このようにデバッグの便宜のための内蔵ＲＯＭ無効モードにおいては、外部モード端子のみで容易に内蔵ＲＯＭを無効にして、外部空間からブートすることが可能であるため、システムデバッグに便利とされる反面、システム製造者以外の最終エンドユーザにとっても外部空間を利用することができることから、内蔵ＲＯＭ無効機能がシステム上、セキュリティホールになる虞がある。これによりセキュリティ情報の取得など、悪意あるプログラムを外部空間において利用される可能性がある。
【００１０】
本発明の目的は、セキュリティ情報の取得など、悪意あるプログラムの外部空間での利用を排除するための技術を提供することにある。
【００１１】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１２】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１３】
すなわち、通常ブートで実行される第１プログラムが記憶された第１記憶エリアと、デバッグ時のブートで実行される第２プログラムが記憶された第２記憶エリアと、上記第１プログラムと上記第２プログラムとを選択的に指定可能な第１外部端子と、キーコードの外部入力を可能とする第２外部端子と、上記第１外部端子からの指定に応じて上記第１プログラムと上記第２プログラムとを選択的に実行可能な中央処理装置とを含み、上記第２プログラムが実行された上記中央処理装置は、上記第２外部端子を介して取り込まれたキーコードが、予め設定されたコードと一致するか否かを判別する第１機能と、上記第１機能によって、上記第２外部端子を介して取り込まれたキーコードが、予め設定されたコードと一致すると判断された場合に、上記半導体集積回路の外部に配置されたメモリに記憶されているプログラムを実行する第２機能とを含む。
【００１４】
上記の手段によれば、上記第１機能は、上記第２プログラムの実行によって、上記第２外部端子を介して取り込まれたキーコードが、予め設定されたコードと一致するか否かを判別し、上記第２機能は、上記第１機能によって、上記第２外部端子を介して取り込まれたキーコードが、予め設定されたコードと一致すると判断された場合に、上記半導体集積回路の外部に配置されたメモリに記憶されているプログラムを実行する。これにより、上記第２外部端子を介して取り込まれたキーコードが、予め設定されたコードと一致しない限り、上記半導体集積回路の外部に配置されたメモリに記憶されているプログラムを実行することはない。このことが、セキュリティ情報の取得など、悪意あるプログラムの外部空間での利用を排除する。
【００１５】
上記中央処理装置は、上記第２外部端子を介して取り込まれたキーコードが、予め設定されたコードと一致しない限り上記第２プログラムを無限ループで実行するように構成することができる。
【００１６】
上記中央処理装置は、上記第２外部端子を介して取り込まれたキーコードが、予め設定されたコードと一致しない場合には、上記第１外部端子からの指定にかかわらず、上記第１プログラムを実行するように構成することができる。
【００１７】
上記第１記憶エリアと、上記第２記憶エリアとは、同一の半導体メモリにおいて互いに異なるアドレスに形成されることで、ハードウェア構成の簡素化を達成する。
【００１８】
このとき、上記半導体メモリをアクセスするためのアドレス信号の形成に、第１外部端子の論理状態を関与させるための論理ゲートを設けることができる。
【発明の効果】
【００１９】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００２０】
すなわち、セキュリティ情報の取得など、悪意あるプログラムの外部空間での利用を排除するための技術を提供することができる。
【発明を実施するための最良の形態】
【００２１】
図１０には、本発明にかかる半導体集積回路の一例であるマイクロコンピュータが示される。このマイクロコンピュータ１０は、特に制限されないが、内部バスコントローラ１１、ＣＰＵ１２、シリアルインタフェース及びタイマ並びに割り込みコントローラ１３、外部バスコントローラ１４、入力ポート２９、ＤＭＡＣ（ダイレクト・メモリ・アクセス・コントローラ）１５，１８、バスブリッジ１７，２１、ＲＯＭ１９、割り込みコントローラ２０、オーディオコントローラ２３、ディスプレイコントローラ２４、グラフィックエンジン２５、ＭＰＥＧ（Moving Picture Coding Experts Group）アクセラレータ２６、ＤＤＲ（ダブル・データ・レート）メモリバスコントローラ２７、ロジック回路３０、ＰＬＬ（フェーズ・ロックド・ループ）回路３１、リセット回路３２を含み、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。上記ＣＰＵ１２、上記シリアルインタフェース及びタイマ並びに割り込みコントローラ１３、上記外部バスコントローラ１４、上記入力ポート２９、上記ＤＭＡＣ１５、上記バスブリッジ１７，２１は、バス１６によって、互いにデータのやり取りが可能に結合される。また、上記バスブリッジ１７、上記ＤＭＡＣ１８、二つのＲＯＭ１９Ａ，１９Ｂ、割り込みコントローラ２０、オーディオコントローラ２３、ディスプレイコントローラ２４、グラフィックエンジン２５、ＭＰＥＧアクセラレータ２６は、バス２２によって互いにデータのやり取りが可能に結合される。上記ＲＯＭ１９Ａには、通常ブートのためのプログラム（これを「通常ブートプログラム」という）が格納される。この通常ブートプログラムが本発明における第１プログラムに対応する。上記ＲＯＭ１９Ｂには、デバッグ時のブートに実行されるブートジャンプコードが格納されている。ここで、上記ブートジャンプコードが本発明に於ける第２プログラムに対応する。上記オーディオコントローラ２３、ディスプレイコントローラ２４、グラフィックエンジン２５、ＭＰＥＧアクセラレータ２６は、上記ＤＤＲメモリバスコントローラ２７に結合されている。特に制限されないが、上記入力ポート２９は、入力端子Ｔ４を介して複数ビット構成のパラレルデータの入力を可能とするもので、入力端子Ｔ４は、上記入力ポート２９のビット構成に対応する複数の端子を含む。上記入力端子Ｔ４はマイクロコンピュータ１０の通常動作においてはデータの入出力のために用いられ、後述するように内蔵ＲＯＭ無効モードにおいてはキーコードの入力に用いられる。上記バス１６とバス２２は、バスブリッジ１７によって結合される。また、上記バス１６と上記ＤＤＲメモリバスコントローラ２７とはバスブリッジ２１によって結合される。
【００２２】
上記ＣＰＵ１２は、予め定められたプログラムに従って所定の演算処理を行う。上記内部バスコントローラ１１は、上記バス１６を介してデータのやり取りが行われる際のウェイト挿入などのバス制御を行う。シリアルインタフェース及びタイマ並びに割り込みコントローラ１３は、外部との間でシリアルデータのやり取りを可能にするシリアルインタフェース部と、時間計測のためのタイマ部と、外部からの割り込み要求を所定の優先順位に従って処理する割り込みコントロール部とを含む。上記外部バスコントローラ１４は、ＰＣＩバス、ＳＲＡＭバス、あるいはＲＯＭバスなど、外部接続された各種バスを介して外部との間でデータやり取りを可能とするための所定のバス制御を行う。ＤＭＡＣ１５，１８は、上記ＣＰＵ１２の介在なしにデータのやり取りを可能とするＤＭＡ制御を行う。内蔵ＲＯＭ１９は、ブートジャンプのためのコードが格納される。ブートジャンプモードでは内蔵ＲＯＭからのブートが無効とされる。割り込みコントローラ２０は各種内部モジュールからの割り込み要求を所定の優先順位に従って制御する。ＤＤＲメモリバスコントローラ２７は、外部に結合されたＤＤＲメモリとの間で、クロック信号の立ち上がりと立ち下がりの両方を利用した高速データ転送を実現する。上記オーディオコントローラ２３は上記ＤＤＲメモリバスコントローラ２７を介して取り込まれた音声データの音声出力制御を行う。上記オーディオコントローラ２３の制御下で音声データが外部出力される。ディスプレイコントローラ２４は、上記ＤＤＲメモリバスコントローラ２７を介して取り込まれた画像データの表示のための外部出力制御を行う。グラフィックエンジン２５は、上記ＤＤＲメモリバスコントローラ２７を介して取り込まれた画像データの各種演算処理を行う。ＭＰＥＧアクセラレータ２６は、上記ＤＤＲメモリバスコントローラ２７を介して取り込まれた動画データを専用のハードウェアによって高速処理する。上記ロジック回路３０は、ブートジャンプモード端子Ｔ１を介してブートジャンプモード信号を取り込み、それに基づいて上記ＣＰＵ１２に対するブートプログラムの選択制御を行う。上記ＰＬＬ回路３１は、クロック入力端子Ｔ２を介して外部から入力されたクロック信号に同期して所定の内部クロック信号を形成する。リセット回路３２は、パワーオンリセット端子Ｔ３を介して入力されたパワーオンリセット信号を取り込んで、上記ＣＰＵ１２に対してリセットのための割り込み要求を行う。
【００２３】
上記構成の動作を説明する。
【００２４】
図１には、上記マイクロコンピュータにおける主要部と、そこでやり取りされる信号との関係が示される。
【００２５】
マイクロコンピュータ１０は、ユーザシステムに搭載された状態でユーザプログラムを実行することによってユーザシステムの動作制御を可能とする通常動作における通常ブートとは別に、ユーザプログラムのデバッグの便宜を図るための機能として、内蔵ＲＯＭを無効にし、且つ、外部空間ＲＯＭを有効にすることを許可又は禁止するためのブートジャンプモードを有する。そして上記ブートジャンプモードにおいて、外部空間にアクセスするか否かの判別を可能とするため、入力端子Ｔ４を介して取り込まれるキーコードをチェックしている。実際の実行手順は以下のようになる。
【００２６】
先ず、ブートジャンプモード信号によりブートジャンプモード端子Ｔ１がハイ（Ｈ）レベルにされることでＲＯＭ１９Ａが無効にセットされる（ＳＴ２１）。そして、パワーオンリセット状態が解除されると（ＳＴ２２）、ブートジャンプコードを含むＲＯＭ１９Ｂからプログラムデータがフェッチされる（ＳＴ２３）。そして、ＣＰＵ１２によってブートジャンプコードが実行され（ＳＴ２４）、入力ポート２９の設定、入力ポート２９の状態読み出し、キーコード（外部空間にあるＲＯＭ２０にアクセスするための許可コード）比較処理が行われる。入力ポート２９の読み出しやキーコード比較のためのコードは、ＣＰＵ１２において無限ループで実行され、拡張ＲＯＭ２０へのアクセスがブロックされる。参照キーコード情報はＲＯＭ１９Ｂに格納されている。この参照キーコード情報と、上記入力端子Ｔ４を介して入力されたキーコードとが一致しない限り、ＲＯＭ２０にはアクセスしないため、ＲＯＭ２０は、システム上ロックしているように見える。
【００２７】
具体的には、入力端子Ｔ４を介してキーコードが入力されると。ＣＰＵ１２は、入力ポート２９を介してキーコードの取り込みを行う（ＳＴ２５）。キーコードは、特に制限されないが、例えば１６ビットポートならば「Ｈ’５Ａ５Ａ」などとされる。このキーコードは長いほど、セキュリティレベルは向上する。入力端子Ｔ４を介して取り込まれたキーコードが、予め定められているコードと一致したら、ＣＰＵ１２により、デバッグプログラムが置いてあるＲＯＭ２０の先頭アドレスから命令データがフェッチされ（ＳＴ２７）、それがＣＰＵ１２で実行される（ＳＴ２８）。
【００２８】
ブートジャンプコードの処理内容は限られており、コードサイズがとても小さくて済む。そのため、ＲＯＭ１９Ｂは、ＲＯＭ１９Ａとは異なり、記憶容量が少なくて良く、レジスタとすることができる。
【００２９】
次に、ブートジャンプモード信号によりブートジャンプモード端子Ｔ１がロー（Ｌ）レベルにされてＲＯＭ１９Ａが有効とされた状態では、非ブートジャンプモードが指定される。すなわち、図２に示されるようにブートジャンプモード端子Ｔ１がローレベルとされて、ＲＯＭ１９Ａが有効とされ（ＳＴ２１）、パワーオンリセット信号によりパワーオンリセット状態が解除された場合には、ＣＰＵ１２によって内蔵ＲＯＭ１９Ａの先頭アドレスからユーザプログラムデータ（命令・オペランド）がフェッチされ（ＳＴ２３）、それがＣＰＵ１２で実行される（ＳＴ２４）。また、内蔵ＲＯＭ１９Ａ内のユーザプログラムの実行において、ＲＯＭ２０の先頭アドレスから拡張ユーザプログラムデータ（命令・オペランド）がフェッチされ（ＳＴ２５）、それがＣＰＵ１２により実行される場合もある（ＳＴ２６）。尚、ブートジャンプモード端子Ｔ１がローレベルにされてＲＯＭ１９Ａが有効とされた状態においてＲＯＭ１９Ｂは未使用とされる。
【００３０】
上記例によれば、以下の作用効果を得ることができる。
【００３１】
（１）ＣＰＵ１２は、上記ブートジャンプコードの実行によって、入力端子Ｔ４を介して取り込まれたキーコードが、予め設定されたコードと一致するか否かを判別し、その判別結果に応じての外部に配置されたメモリに記憶されているプログラムをフェッチして実行する。これにより、入力端子Ｔ４を介して取り込まれたキーコードが、予め設定されたコードと一致しない限り、上記半導体集積回路の外部に配置されたメモリに記憶されているプログラムをフェッチして実行することはない。このことが、セキュリティ情報の取得など、悪意あるプログラムの外部空間での利用を排除する。
【００３２】
（２）上記中央処理装置は、上記第２外部端子を介して取り込まれたキーコードが、予め設定されたコードと一致しない限り上記ブートジャンプコードを無限ループで実行するように構成することができる。拡張ＲＯＭ２０へのアクセスがブロックされる。参照キーコード情報はＲＯＭ１９Ｂに格納されている。このとき、上記入力端子を介して入力されたキーコードが、予め設定されたコードと一致しない限り、ＲＯＭ２０にはアクセスしないため、ＲＯＭ２０は、システム上ロックしているように見える。
【００３３】
（３）通常ブートユーザプログラムの記憶エリアと、ブートジャンプコードの記憶エリアとを一つのＲＯＭ内に形成することによってハードウェア構成を単純化することが可能である。
【００３４】
図５には、上記マイクロコンピュータ１０の別の構成例が示される。
【００３５】
図１及び図２に示される構成では、キーコードをチェックするために無限ループを使用したため、システム上ロックしているように見えた。図５に示される例では、一回のキーコード比較で失敗した場合、通常の内蔵ＲＯＭからのブートするようにしている。基本的に、ブートジャンプモードに入ってキーコードが一致した場合と、非ブートモードの処理は、それぞれ図１及び図２に示される場合と同じであるが、キーコード比較で失敗したときの動作が図１及び図２に示される場合と異なり、ユーザからは、見かけ上通常ブートと何ら異ならないように見える。このため、仮にブートジャンプ端子Ｔ１をハイレベルに設定しても、ブートジャンプモードの存在自体が知られ難くなる。以下、本例を具体的に説明する。
【００３６】
先ず、ブートジャンプモード信号によりブートジャンプモード端子Ｔ１がハイレベルにされることでＲＯＭ１９Ａが無効にセットされる（ＳＴ３１）。ここでは、入力端子Ｔ４に、誤ったキーコードが入力される（ＳＴ３２）。そして、パワーオンリセット状態が解除されると（ＳＴ３３）、ブートジャンプコードを含むＲＯＭ１９Ｂからプログラムデータがフェッチされる（ＳＴ３４）。そして、ＣＰＵ１２によってブートジャンプコードが実行され、入力ポート２９の設定、入力ポート２９の状態読み出される（ＳＴ３５）。入力ポート２９の状態読み出しが行われる（ＳＴ３６）。本例では、入力端子Ｔ４に誤ったキーコードが入力されているため、ＣＰＵ１２のキーコード比較処理では、入力されたキーコードが誤っていると判断され、ＲＯＭ１９Ａにアクセスされる（ＳＴ３７）。これにより、ＲＯＭ１９Ａの先頭アドレスから通常ブートユーザプログラム・データがＣＰＵ１２にフェッチされ、それがＣＰＵ１２で実行される（ＳＴ３８）。尚、ブートジャンプモードに入ってキーコードが一致した場合と、非ブートモード時の処理は、それぞれ図１及び図２に示される場合と同じであるため、ここではそれについての説明を省略する。
【００３７】
図６には、上記マイクロコンピュータ１０の別の構成例が示される。
【００３８】
上記の例では、通常ブートユーザプログラム用のＲＯＭ１９Ａと、ブートジャンプコード用のＲＯＭ１９Ｂとを別個に備えるものについて説明したが、通常ブートユーザプログラムの記憶エリアと、ブートジャンプコードの記憶エリアとを一つのＲＯＭ内に形成することによってハードウェア構成を単純化することが可能である。図６に示されるマイクロコンピュータ１０においては、通常ブートユーザプログラムの記憶エリアを有するＲＯＭ１９Ａ内に、ブートジャンプコードの記憶エリアを形成することによって、通常ブートユーザプログラムの記憶エリアとブートジャンプコードの記憶エリアとを一つのＲＯＭ１９Ａ内に形成している。かかる構成において、ステップＳＴ４１からＳＴ４８までの処理は、それぞれ図１におけるステップＳＴ１からＳＴ８に対応する。一つのＲＯＭ１９Ａ内に通常ブートユーザプログラム記憶エリアとブートジャンプコード記憶エリアとを形成する場合、最小現の論理規模でブート先選択することが可能となる。
【００３９】
図７には、図６に示される構成におけるアドレス信号の形成とＲＯＭのアドレスマップが示される。論理ゲート７１，７２でＲＯＭ１９Ａのアドレスの１ビットと、ブートジャンプモード信号との論理演算を行い、その出力を上記ＲＯＭ１９Ａのアドレスの１ビットと置き換えることで、通常ブートアドレス以外からブートするようにする。パワーオンリセット直後、ブートジャンプ端子がローレベルの時は、Ａ４＝‘Ｌ’がＲＯＭ１９Ａに入るので、０番地から通常ブートされる。逆にブートジャンプ端子がハイレベルの時は、Ａ４＝‘Ｈ’がＲＯＭ１９Ａに入るので、ブートジャンプコードが置いてある１６番地からプログラムの実行が開始される。
【００４０】
上記の例では、キーコードをパラレル形式で取り込むための入力ポート２９を設けたが、キーコードをシリアル通信によって取り込むようにしても良い。さらに、マイクロコンピュータ１０に直接入る部分のデータを予め暗号化しておけば、さらにセキュリティも向上する。この場合、図８に示されるように、キーコードを暗号化機能付シリアルインタフェース８１で処理することにより、暗号化されたシリアルデータに変換してから入力端子Ｔ４を介してマイクロコンピュータ１０に供給する（ＳＴ５６）。そして、マイクロコンピュータ１０の内部には、上記キーコードを暗号化機能付シリアルインタフェース８１の出力信号を復号可能な復号化機能付シリアルインタフェース８２を設ける。キーコードを暗号化してシリアル形式で取り込む点を除く他の処理（ＳＴ５１〜ＳＴ５５、ＳＴ５７，ＳＴ５８）ついては、図１に示されるマイクロコンピュータ１０での処理（ＳＴ２１〜ＳＴ２５、ＳＴ２７，ＳＴ２８）と同じである。
【００４１】
図９には、上記マイクロコンピュータ１０の別の構成例が示される。図９に示されるマイクロコンピュータ１０が、図８に示されるのと大きく相違するのは、復号化機能付シリアルインタフェース８２に代えて、アクセス履歴情報の蓄積エリアを備えたシリアルインタフェース９２を備える点である。アクセス履歴情報の蓄積エリアは、特に制限されないが、フラッシュメモリなどの不揮発性メモリによって形成され、外部からのキーコード入力回数や、入力されたキーコード判定時のパス／フェイル情報が含まれる。入力端子Ｔ４を介してキーコード入力が行われる毎に、アクセス履歴情報が記録される（ＳＴ６６）。上記アクセス履歴情報によれば、システムで不正にアクセスしようとした人がいたか否かを容易に判別することができる。尚、他の処理（ＳＴ６１〜ＳＴ６５、ＳＴ６７，ＳＴ６８）ついては、図１に示されるマイクロコンピュータ１０での処理（ＳＴ２１〜ＳＴ２５、ＳＴ２７，ＳＴ２８）と同じである。
【００４２】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００４３】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるマイクロコンピュータに適用した場合について説明したが、本発明はそれに限定されるものではなく、各種半導体集積回路に広く適用することができる。
【００４４】
本発明は、少なくとも中央処理装置を含むことを条件に適用することができる。
【図面の簡単な説明】
【００４５】
【図１】本発明にかかる半導体集積回路の一例であるマイクロコンピュータにおける主要部の構成例ブロック図である。
【図２】上記マイクロコンピュータにおける主要部の別の構成例ブロック図である。
【図３】上記マイクロコンピュータの比較対象とされる構成を示すブロック図である。
【図４】上記マイクロコンピュータの比較対象とされる構成を示すブロック図である。
【図５】上記マイクロコンピュータにおける主要部の別の構成例ブロック図である。
【図６】上記マイクロコンピュータにおける主要部の別の構成例ブロック図である。
【図７】図６に示される構成におけるアドレス信号の形成とＲＯＭのアドレスマップとの説明図である。
【図８】上記マイクロコンピュータにおける主要部の別の構成例ブロック図である。
【図９】上記マイクロコンピュータにおける主要部の別の構成例ブロック図である。
【図１０】上記マイクロコンピュータの全体的な構成例ブロック図である。
【符号の説明】
【００４６】
１０  マイクロコンピュータ
１２  ＣＰＵ
１４  外部バスコントローラ
１９Ａ，１９Ｂ  ＲＯＭ
２９  入力ポート
Ｔ１  ブートジャンプモード端子
Ｔ３  パワーオンリセット端子
Ｔ４  入力端子
【図１】
2006107040.tif 000003
【図２】
2006107040.tif 000004
【図３】
2006107040.tif 000005
【図４】
2006107040.tif 000006
【図５】
2006107040.tif 000007
【図６】
2006107040.tif 000008
【図７】
2006107040.tif 000009
【図８】
2006107040.tif 000010
【図９】
2006107040.tif 000011
【図１０】
2006107040.tif 000012