(57)【要約】【課題】  ソフトウェアの負担を軽減し、セキュリティの管理を容易に行なうことが可能なマイクロコンピュータを提供すること。【解決手段】  ＣＰＵ１が割込み処理に移行するときに、フラグレジスタ１１にセキュリティ関連領域へのアクセスを許可する値が設定され、ＣＰＵ１が割込み処理から復帰するときに、フラグレジスタ１１にセキュリティ関連領域へのアクセスを禁止する値が設定される。リソース選択信号生成回路２は、フラグレジスタ１１に格納されるフラグに応じて、不揮発性メモリ３およびＲＡＭ４の各領域に対するアクセス信号を生成する。したがって、セキュリティ関連領域を割込み処理領域とすることによって、セキュリティ関連以外のプログラム領域からセキュリティ関連領域へのアクセスを防止でき、セキュリティ関連情報の漏洩を防止することが可能となる。【選択図】        図１
2005084721.tif 000002
【特許請求の範囲】
【請求項１】
リソースの特定領域およびそれ以外の非特定領域にアクセスしながら処理を実行するマイクロコンピュータであって、
プロセッサと、
前記特定領域へのアクセスを制限するフラグが格納される格納手段と、
前記プロセッサが割込み処理に移行するときに、前記格納手段に前記特定領域へのアクセスを許可する値を設定し、前記プロセッサが割込み処理から復帰するときに、前記格納手段に前記特定領域へのアクセスを禁止する値を設定する設定手段と、
前記格納手段に格納されるフラグに応じて、前記特定領域および前記非特定領域へのアクセスを制御する制御手段とを含む、マイクロコンピュータ。
【請求項２】
前記設定手段は、前記プロセッサが割込み処理から前記特定領域の処理に復帰する場合には、前記格納手段に格納される前記特定領域へのアクセスを許可する値を維持し、前記プロセッサが割込み処理から前記非特定領域の処理に復帰する場合には、前記格納手段に前記特定領域へのアクセスを禁止する値を設定する、請求項１記載のマイクロコンピュータ。
【請求項３】
前記マイクロコンピュータはさらに、前記格納手段に前記特定領域へのアクセスを禁止する値が格納されているときに、前記プロセッサが前記特定領域へアクセスした場合には、前記プロセッサに対する制約違反割込みを発生する発生手段を含む、請求項１または２記載のマイクロコンピュータ。
【請求項４】
前記プロセッサは、前記格納手段に前記特定領域へのアクセスを禁止する値が格納されているときは、前記プロセッサの一部の機能を制限する、請求項１〜３のいずれかに記載のマイクロコンピュータ。
【請求項５】
前記プロセッサは、前記格納手段に前記特定領域へのアクセスを禁止する値が格納されているときは、割込みテーブルのベースアドレスレジスタの書込みを禁止する、請求項４記載のマイクロコンピュータ。
【請求項６】
前記非特定領域は、複数の領域を含み、
前記格納手段は、前記複数の領域に対応する複数のフラグレジスタを含み、
前記プロセッサが割込み処理に移行するときに、前記複数のフラグレジスタを全てクリアし、前記プロセッサが割込み処理から復帰するときに、復帰する領域に対応するフラグレジスタをセットし、
前記制御手段は、前記複数のフラグレジスタの全てがクリアされている場合には、前記特定領域へのアクセスを許可し、前記複数のフラグレジスタのいずれかがセットされている場合には、セットされているフラグレジスタに対応する領域へのアクセスを許可し、それ以外の領域へのアクセスを禁止する、請求項１〜５のいずれかに記載のマイクロコンピュータ。
【請求項７】
前記マイクロコンピュータはさらに、前記複数の領域を設定する複数の領域設定手段を含み、
前記制御手段は、前記複数の領域設定手段に設定された複数の領域に応じて、前記複数の領域に対するアクセスを制御する、請求項６記載のマイクロコンピュータ。
【請求項８】
リソースの特定領域およびそれ以外の非特定領域にアクセスしながら処理を実行するマイクロコンピュータであって、
プロセッサと、
前記プロセッサが割込み処理に移行するときにカウント値をインクリメントし、前記プロセッサが割込み処理から復帰するときにカウント値をデクリメントするカウンタと、
前記カウンタのカウント値に応じて、前記特定領域および前記非特定領域へのアクセスを制御する制御手段とを含む、マイクロコンピュータ。
【請求項９】
前記カウンタは、初期設定時に０が設定され、
前記制御手段は、前記カウンタのカウント値が０のときに前記特定領域へのアクセスを禁止し、前記カウンタのカウント値が１以上のときに前記特定領域へのアクセスを許可する、請求項８記載のマイクロコンピュータ。
【請求項１０】
前記マイクロコンピュータはさらに、前記特定領域へのアクセスを制限するフラグが格納される格納手段を含み、
前記プロセッサは、前記非特定領域から前記特定領域へ処理が移行するときに前記格納手段のフラグをクリアし、前記特定領域から前記非特定領域へ処理が移行するときに前記格納手段のフラグをセットし、
前記制御手段は、前記カウンタのカウント値が０であり、かつ前記格納手段のフラグがセットされている場合は、前記特定領域へのアクセスを禁止し、それ以外の場合は前記特定領域へのアクセスを許可する、請求項８または９記載のマイクロコンピュータ。
【請求項１１】
前記マイクロコンピュータはさらに、前記カウンタのカウント値が０であり、かつ前記格納手段のフラグがセットされているときに、前記プロセッサが前記特定領域へアクセスした場合には、前記プロセッサに対する制約違反割込みを発生する発生手段を含む、請求項８〜１０のいずれかに記載のマイクロコンピュータ。
【請求項１２】
前記プロセッサは、前記格納手段に前記特定領域へのアクセスを禁止する値が格納されているときは、前記プロセッサの一部の機能を制限する、請求項８〜１１のいずれかに記載のマイクロコンピュータ。
【請求項１３】
前記プロセッサは、前記格納手段に前記特定領域へのアクセスを禁止する値が格納されているときは、割込みテーブルのベースアドレスレジスタの書込みを禁止する、請求項１２記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュリティ機能を有するマイクロコンピュータに関し、特に、１つのＣＰＵ（Central Processing Unit）が、セキュリティ情報に関連する処理と、セキュリティ情報に関連しない処理とを実行し、セキュリティ情報に関連しない処理からセキュリティ情報にアクセスすることができない機構を有するマイクロコンピュータに関する。
【背景技術】
【０００２】
近年、セキュリティ機能を有するマイクロコンピュータが盛んに開発されている。一般に、鍵情報を内蔵し、乱数発生機能、暗号機能、認証機能などのセキュリティ機能を有するマイクロコンピュータは、セキュリティ情報の漏洩を防止できる隔絶した環境で開発され、製品化されることが多い。
【０００３】
そして、ヒューマンＩ／Ｆ（Interface）、機器の制御、情報送受信などのセキュリティ情報に関連しない処理を実行するマイクロコンピュータは一般の環境で設計され、これらのマイクロコンピュータが接続されて、機器に組込まれることが多い。これに関連する技術として、特開２００１−２５６４６０号公報および特開平８−２７２６２５号公報に開示された発明がある。
【０００４】
特開２００１−２５６４６０号公報に開示された１チップマイクロコンピュータは、特定アドレス空間のプログラムを実行していることを表わすフラグをセットするモニタフラグと、モニタフラグがセットされているときにアクセスを許可するアドレス範囲を設定するアクセス許可アドレス範囲設定レジスタと、設定されたアドレス範囲内でアクセスされているか否かを判断するアクセス許可領域検出回路と、アドレス範囲以外のアドレスのアクセスを許可するか否かを設定するアクセス許可設定レジスタと、アクセス許可領域検出回路による判断結果とアクセス許可設定レジスタの設定内容とに基づいて、不揮発性メモリに対するアクセスを制御するメモリ読出し制御回路およびメモリ書込み制御回路とを備えている。
【０００５】
特開平８−２７２６２５号公報に開示されたマルチプログラム実行制御装置は、ＣＰＵと、メモリと、実行するプログラムのＩＤ（IDentifier）を識別し、そのプログラムのアクセスが許可されるエリアを設定し、そのプログラムに動作が切換わったときに動作を開始するアドレスを設定するプログラムアクセス許可エリア設定回路と、現在実行中のプログラムがアクセスしているアドレスが許可アドレスか許可外アドレスかを検知し、許可外アドレスの時、その検知信号を基にＣＰＵへの割込みをかけるための信号を生成し、その許可外アドレスに対応するメモリのアクセスを禁止するための信号を生成するプログラムアクセス制御回路とで構成される。
【特許文献１】特開２００１−２５６４６０号公報
【特許文献２】特開平８−２７２６２５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、上述したセキュリティ機能を有するマイクロコンピュータと、セキュリティ情報に関連しない処理と実行するマイクロコンピュータとを接続して機器に組込む場合には、システムが複雑になったり、回路規模が増大するといった問題点があった。
【０００７】
また、特開２００１−２５６４６０号公報に開示された１チップマイクロコンピュータにおいては、一方のアプリケーションプログラムが他方のアプリケーションプログラムの命令コードやデータにアクセスすることを不可能にし、セキュリティ性を確保することが可能になる。しかし、複数のアプリケーションプログラムが動作している場合、プログラム切替えなどが発生する毎にレジスタ設定などの処理が必要になり、ソフトウェアの負担が大きくなるといった問題点がある。
【０００８】
また、特開平８−２７２６２５号公報に開示されたマルチプログラム実行制御装置においても、あるプログラムが他のプログラムをアクセスすることを禁止可能とし、プログラムおよびデータの安全性を高めることが可能となる。しかし、複数のアプリケーションプログラムが動作している場合、プログラム切替えによってレジスタの内容を頻繁に更新しなければならないので、ソフトウェアの負担が大きくなるといった問題点がある。
【０００９】
本発明は、上記問題点を解決するためになされたものであり、その目的は、ソフトウェアの負担を軽減し、セキュリティの管理を容易に行なうことが可能なマイクロコンピュータを提供することである。
【課題を解決するための手段】
【００１０】
本発明のある局面に従えば、リソースの特定領域およびそれ以外の非特定領域にアクセスしながら処理を実行するマイクロコンピュータであって、プロセッサと、特定領域へのアクセスを制限するフラグが格納される格納手段と、プロセッサが割込み処理に移行するときに、格納手段に特定領域へのアクセスを許可する値を設定し、プロセッサが割込み処理から復帰するときに、格納手段に特定領域へのアクセスを禁止する値を設定する設定手段と、格納手段に格納されるフラグに応じて、特定領域および非特定領域へのアクセスを制御する制御手段とを含む。
【００１１】
本発明の別の局面に従えば、リソースの特定領域およびそれ以外の非特定領域にアクセスしながら処理を実行するマイクロコンピュータであって、プロセッサと、プロセッサが割込み処理に移行するときにカウント値をインクリメントし、プロセッサが割込み処理から復帰するときにカウント値をデクリメントするカウンタと、カウンタのカウント値に応じて、特定領域および非特定領域へのアクセスを制御する制御手段とを含む。
【発明の効果】
【００１２】
本発明のある局面によれば、設定手段は、プロセッサが割込み処理に移行するときに、格納手段に特定領域へのアクセスを許可する値を設定し、プロセッサが割込み処理から復帰するときに、格納手段に特定領域へのアクセスを禁止する値を設定する。また、制御手段は、格納手段に格納されるフラグに応じて、特定領域および非特定領域へのアクセスを制御する。したがって、非特定領域から特定領域へアクセスすることができず、特定領域のセキュリティ関連情報の漏洩を防止することが可能となった。
【００１３】
本発明の別の局面によれば、カウンタは、プロセッサが割込み処理に移行するときにカウント値をインクリメントし、プロセッサが割込み処理から復帰するときにカウント値をデクリメントする。また、制御手段は、カウンタのカウント値に応じて、特定領域および非特定領域へのアクセスを制御する。したがって、特定領域を割込み処理領域とすることによって、非特定領域から特定領域へのアクセスを防止でき、特定領域のセキュリティ関連情報の漏洩を防止することが可能となった。
【発明を実施するための最良の形態】
【００１４】
（第１の実施の形態）
図１は、本発明の第１の実施の形態におけるマイクロコンピュータの概略構成を示すブロック図である。このマイクロコンピュータは、ＣＰＵ１と、メモリ、周辺回路などのリソースを選択するための信号を生成するリソース選択信号生成回路２と、不揮発性メモリ３と、ＲＡＭ（Random Access Memory）４と、暗号回路、乱数発生回路などのセキュリティ関連周辺回路５と、ＵＡＲＴ（Universal Asynchronous Receiver-Trasmitter）、タイマなどのセキュリティ関連以外の周辺回路６と、フラグレジスタ１１と、制約違反割込み発生回路１２と、ＡＮＤ回路１３と、ＯＲ回路１４〜１６とを含む。
【００１５】
不揮発性メモリ３は、セキュリティ関連プログラム領域および割込みテーブル（以下、単にセキュリティ関連プログラム領域と呼ぶ。）と、その他のプログラム領域と、セキュリティ関連データ領域とを含む。また、ＲＡＭ４は、セキュリティ関連用ＲＡＭ領域と、その他用途のＲＡＭ領域とを含む。
【００１６】
リソース選択信号生成回路２は、ＣＰＵ１から出力されるアドレスバス１０５の上位アドレスをデコードして、その他のプログラム領域アクセス信号１０７、その他用途のＲＡＭ領域アクセス信号１１０およびその他周辺回路アクセス信号１１２を生成する。これらのアクセス信号は、フラグレジスタ１１から出力されるセキュリティ関連アクセス禁止信号１０４によってマスクされない。
【００１７】
また、リソース選択信号生成回路２は、ＣＰＵ１から出力されるアドレスバス１０５の上位アドレスをデコードして、セキュリティ関連プログラム領域アクセス信号１０６、セキュリティ関連データ領域アクセス信号１０８、セキュリティ関連用ＲＡＭ領域アクセス信号１０９およびセキュリティ関連周辺回路アクセス信号１１１を生成する。これらのアクセス信号は、フラグレジスタ１１から出力されるセキュリティ関連アクセス禁止信号１０４によってマスクされる。すなわち、セキュリティ関連アクセス禁止信号１０４が“０”のときにこれらのアクセス信号が出力され、セキュリティ関連アクセス禁止信号１０４が“１”のときにこれらのアクセス信号がマスクされて、アクセス信号が出力されない。なお、セキュリティ関連アクセス禁止信号１０４は、“０”のときにセキュリティ関連情報に対するアクセスを許可し、“１”のときにセキュリティ関連情報に対するアクセスを禁止することを示す。
【００１８】
ＯＲ回路１４は、その他のプログラム領域アクセス信号１０７、その他用途のＲＡＭ領域アクセス信号１１０およびその他周辺回路アクセス信号１１２のいずれかが出力されるときに“１”を出力し、それ以外のときに“０”を出力する。
【００１９】
ＯＲ回路１５は、セキュリティ関連プログラム領域アクセス信号１０６、セキュリティ関連データ領域アクセス信号１０８、セキュリティ関連用ＲＡＭ領域アクセス信号１０９およびセキュリティ関連周辺回路アクセス信号１１１のいずれかが出力されるときに“１”を出力し、それ以外のときに“０”を出力する。
【００２０】
フラグレジスタ１１は、ＣＰＵ１から出力される割込み実行中通知信号１００がアクティブとなるときに“０”となり、セキュリティ関連アクセス禁止信号１０４に“０”を出力する。また、フラグレジスタ１１は、ＣＰＵ１から出力される割込み復帰実行中通知信号１０１がアクティブであり、かつその他のプログラム領域アクセス信号、その他用途のＲＡＭ領域アクセス信号１１０およびその他周辺回路アクセス信号１１２のいずれかがアクティブのときに“１”となり、セキュリティ関連アクセス禁止信号１０４に“１”を出力する。
【００２１】
制約違反割込み発生回路１２は、フラグレジスタ１１から出力されるセキュリティ関連アクセス禁止信号１０４が“０”であり、かつＯＲ回路１６から“０”が出力されるときに、制約違反割込み信号１１４をＣＰＵ１へ出力する。すなわち、セキュリティ関連情報へのアクセスが禁止されている状態で、ＣＰＵ１がセキュリティ関連情報にアクセスした場合に、制約違反割込み発生回路１２は制約違反割込み信号をＣＰＵ１へ出力する。
【００２２】
たとえば、セキュリティ関連情報へのアクセスが禁止されている状態で、ＣＰＵ１がセキュリティ関連プログラム領域から命令コードをフェッチしようとした場合、不揮発性メモリ３から命令コードが出力されないので、ＣＰＵ１が暴走する危険性がある。これを防止するために、制約違反割込み信号をＣＰＵ１へ出力して、エラー処理を行なうようにしている。
【００２３】
図２は、割込み実行中通知信号１００および割込み復帰実行中通知信号１０１を生成するための回路構成を示す図である。図２は、ＣＰＵ１の回路の一部を示しており、割込みコントローラ９１と、フェッチした命令コードが格納される命令レジスタ９２と、命令レジスタ９２に格納される命令コードをデコードする命令デコーダ９３と、μＰＣ（μプログラムカウンタ）９４と、μコードを格納するμＲＯＭ９５と、デコーダ９６とを含む。
【００２４】
割込みコントローラ９１は、各種ハードウェア割込みおよびＮＭＩ（Non Maskable Interrupt）を受け、割込みの種類を示すコード２０１をμＰＣ９４およびデコーダ９６へ出力する。また、命令デコーダ９３は、命令レジスタ９２に格納される命令コード２０４をデコードし、デコード結果２０３をμＰＣ９４へ出力する。
【００２５】
μＰＣ９４は、割込みの種類を示すコード２０１およびデコード結果２０３を受け、対応するμコードを選択するためのμアドレス２０２をμＲＯＭ９５へ出力する。μＲＯＭ９５は、μＰＣ９４からμアドレス２０２を受け、ＣＰＵ１を制御するための制御信号（μコード）を出力する。
【００２６】
デコーダ９６は、割込みコントローラ９１から出力されるコード２０１および命令レジスタ９２から出力される命令コード２０４を受け、それらをデコードすることによって割込み実行中通知信号１００および割込み復帰実行中通知信号１０１を生成する。すなわち、デコーダ９６は、割込みコントローラ９１からハードウェア割込みまたはＮＭＩを示すコード２０１を受けた場合、または命令レジスタ９２から出力される命令コード２０４が割込み命令である場合、割込み実行中通知信号１００をアクティブにする。また、デコーダ９６は、命令レジスタ９２から出力される命令コード２０４が割込み復帰命令である場合、割込み復帰実行中通知信号をアクティブにする。
【００２７】
なお、図２は、ＣＰＵ１がＣＩＳＣ（Complex Instruction Set Computer）の場合のものであるが、ＲＩＳＣ（Reduced Instruction Set Computer）などの場合にも適用できることは言うまでもない。
【００２８】
図３は、割込み実行中通知信号１００および割込み復帰実行中通知信号１０１のタイミングを説明するための図である。ＣＰＵ１がプログラムＡを実行中に割込みが発生すると、割込み実行中通知信号１００がアクティブとなり、ＰＣの退避などの割込みシーケンスが実行される。その後、ＣＰＵ１の処理が割込み先プログラムへ移る。
【００２９】
割込み先プログラムの処理が終了して、ＣＰＵ１が割込み復帰命令を実行するときに割込み復帰実行中信号がアクティブとなり、ＰＣの復帰などの処理が行なわれる。そして、ＣＰＵ１はプログラムＡの処理を再開する。
【００３０】
図４は、本発明の第１の実施の形態におけるマイクロコンピュータによるソフトウェアの処理を説明するための図である。図４（ａ）は、タスク切替えを行なわない場合の処理を示す図である。ソフトウェアは、暗号関連のプログラム３１と、暗号等に関わらないプログラム３２と、割込み処理プログラム群３３とを含む。
【００３１】
ＣＰＵ１が、暗号等に関わらないプログラム３２から暗号関連のプログラム３１に処理を移すときに、フラグレジスタ１１（ＦＬＡＧ）に“０”が設定される。暗号等に関わらないプログラム３２から暗号関連のプログラム３１への移行は、割込み命令の実行によって行なわれる。暗号関連のプログラム３１から暗号等に関わらないプログラム３２へ復帰するとき、割込み復帰命令が実行されてフラグレジスタ１１（ＦＬＡＧ）に“１”が設定される。
【００３２】
ＣＰＵ１が、暗号関連のプログラム３１を実行中に割込みが発生する場合、フラグレジスタ１１（ＦＬＡＧ）は“０”を維持し、割込み処理プログラム群３３へ処理が移る。割込み処理プログラム群３３から暗号関連のプログラム３１へ復帰するとき、割込み復帰命令が実行されるが、フラグレジスタ１１（ＦＬＡＧ）は“０”を維持する。なお、ＣＰＵ１が、割込み処理プログラム群３３の処理を実行中に再度割込みが発生した場合でも、フラグレジスタ１１（ＦＬＡＧ）は“０”を維持する。また、ＣＰＵ１が、割込み復帰命令を実行して元の割込み処理プログラムに復帰する場合でも、フラグレジスタ１１（ＦＬＡＧ）は“０”を維持する。
【００３３】
ＣＰＵ１が、暗号等に関わらないのプログラム３２を実行中に割込みが発生する場合、フラグレジスタ１１（ＦＬＡＧ）に“０”が設定され、割込み処理プログラム群３３へ処理が移る。割込み処理プログラム群３３から暗号等に関わらないプログラム３２へ復帰するとき、割込み復帰命令が実行されて、フラグレジスタ１１（ＦＬＡＧ）に“１”が設定される。
【００３４】
図４（ｂ）は、タスク切替えを行なう場合の処理を示す図である。ソフトウェアは、暗号関連のプログラム３１と、暗号等に関わらないプログラム３２と、割込み処理プログラム群３３と、プログラム切替え処理３４とを含む。
【００３５】
ＣＰＵ１が、暗号等に関わらないプログラム３２から暗号関連のプログラム３１に処理を移す場合、暗号関連のプログラム３１から暗号等に関わらないプログラム３２へ復帰する場合、暗号関連のプログラム３１を実行中に割込みが発生する場合、割込み処理プログラム群３３から暗号関連のプログラム３１へ復帰する場合、暗号等に関わらないのプログラム３２を実行中に割込みが発生する場合、および割込み処理プログラム群３３から暗号等に関わらないプログラム３２へ復帰する場合は、図４（ａ）を用いて説明した処理と同様である。
【００３６】
ＣＰＵ１が、暗号等に関わらないプログラム３２の処理中に、プログラム切替え処理３４が発生した場合、フラグレジスタ１１（ＦＬＡＧ）に“０”が設定される。そして、プログラム切替え処理３４が終了後、割込み関連のプログラム３１へ処理が移る場合でも、フラグレジスタ１１（ＦＬＡＧ）は“０”を維持する。なお、プログラム切替え処理３４は、通常のタスク切替えと同様に、ハードウェア割込みによって行なわれる。
【００３７】
また、ＣＰＵ１が、暗号関連のプログラム３１の処理中に、プログラム切替え処理３４が発生した場合、フラグレジスタ１１（ＦＬＡＧ）は“０”を維持する。そして、プログラム切替え処理３４が終了後、暗号等に関わらないプログラム３２へ処理が移る場合に、フラグレジスタ１１（ＦＬＡＧ）に“１”が設定される。
【００３８】
以上説明したように、本実施の形態におけるマイクロコンピュータによれば、割込み実行中通知信号がアクティブとなるとき、すなわち暗号関連のプログラム３１または割込み処理プログラム３３へ移行するときに、フラグレジスタ１１を“０”にしてセキュリティ関連情報へのアクセスを許可し、暗号等に関わらないプログラム３２の処理中にはフラグレジスタ１１を“１”にしてセキュリティ関連情報へのアクセスを禁止するようにしたので、予めセキュリティ関連のプログラムや割込み処理プログラムを搭載した状態でマイクロコンピュータを出荷しても、クライアントはセキュリティ関連のプログラムや割込み処理プログラムにアクセスすることができないため、セキュリティ関連情報の漏洩を防止することが可能となる。
【００３９】
また、割込みテーブルをセキュリティ関連プログラム領域に配置するようにしたので、暗号等に関わらないプログラムが割込みテーブルの内容を変更することができないため、セキュリティ関連情報の漏洩を防止することが可能となる。
【００４０】
（第２の実施の形態）
図５は、本発明の第２の実施の形態におけるマイクロコンピュータの概略構成を示すブロック図である。図１に示す第１の実施の形態におけるマイクロコンピュータと比較して、フラグレジスタ１１がカウンタ１７に置換されている点、割込み復帰実行中通知信号が直接カウンタ１７に入力されている点、およびＯＲ回路１４〜１６がＯＲ回路１８に置換されている点のみが異なる。なお、図１に示すＯＲ回路１４〜１６が、ＯＲ回路１８に置換されているが、論理的には同等である。
【００４１】
カウンタ１７は、ＣＰＵ１から出力される割込み実行中通知信号１００がアクティブとなるときにカウント値を１だけインクリメントし、ＣＰＵ１から出力される割込み復帰実行中通知信号１０１がアクティブとなるときにカウント値を１だけデクリメントする。カウンタ１７は、カウント値が“０”のときにセキュリティ関連アクセス禁止信号１１６に“１”を出力し、カウント値が“１”以上のときにセキュリティ関連アクセス禁止信号１１６に“０”を出力する。
【００４２】
カウンタ１７のカウント値は、割込みのネスティング（その時点での多重割込みの深さ）を示す。したがって、カウント値が“０”のときはセキュリティに関わらないプログラムの実行中であることを示し、セキュリティ情報へのアクセスを禁止する。また、カウント値が“１”以上のときはセキュリティ関連のプログラムを実行中であることを示し、セキュリティ情報へのアクセスを許可する。
【００４３】
図６は、本発明の第２の実施の形態におけるマイクロコンピュータによるソフトウェアの処理を説明するための図である。ＣＰＵ１が、暗号等に関わらないプログラム３２から暗号関連のプログラム３１に処理を移すときに、割込み命令が実行されてカウンタ１７のカウント値が“１”だけインクリメントされて“１”となる。その結果、カウンタ１７は、セキュリティ関連アクセス禁止信号１１６に“０”を出力し、セキュリティ情報へのアクセスを許可する。
【００４４】
また、暗号関連のプログラム３１から暗号等に関わらないプログラム３２へ復帰するとき、割込み復帰命令が実行されてカウンタ１７のカウント値が“１”だけデクリメントされて“０”となる。その結果、カウンタ１７は、セキュリティ関連アクセス禁止信号１１６に“１”を出力し、セキュリティ情報へのアクセスを禁止する。
【００４５】
ＣＰＵ１が、暗号関連のプログラム３１を実行中に割込みが発生する場合、カウンタ１７はカウント値を１だけインクリメントして“２”となるため、セキュリティ関連アクセス禁止信号１１６の値は“０”を維持し、割込み処理プログラム群３３へ処理が移る。割込み処理プログラム群３３から暗号関連のプログラム３１へ復帰するとき、割込み復帰命令が実行されてカウンタ１１７のカウント値が１だけデクリメントされてカウント値が“１”となるので、セキュリティ関連アクセス禁止信号１１６の値は“０”を維持する。
【００４６】
なお、ＣＰＵ１が、割込み処理プログラム群３３の処理を実行中に再度割込みが発生した場合には、ネスティングが深くなってセキュリティ関連アクセス禁止信号１１６の値は“０”を維持する。また、ＣＰＵ１が、割込み復帰命令を実行して元の割込み処理プログラムに復帰する場合には、カウンタ１７のカウント値が１だけデクリメントされてセキュリティ関連アクセス禁止信号１１６の値は“０”を維持する。
【００４７】
ＣＰＵ１が、暗号等に関わらないプログラム３２を実行中に割込みが発生する場合、カウンタ１７はカウント値を１だけインクリメントして“１”となり、セキュリティ関連アクセス禁止信号１１６に“０”を出力し、割込み処理プログラム群３３へ処理が移る。割込み処理プログラム群３３から暗号等に関わらないプログラム３２へ復帰するとき、割込み復帰命令が実行されて、カウンタ１７はカウント値を１だけデクリメントして“０”となり、セキュリティ関連アクセス禁止信号１１６に“１”を出力する。
【００４８】
以上の説明において、カウンタ１７は、カウント値が“０”のときにセキュリティ関連アクセス禁止信号１１６に“１”を出力し、カウント値が“１”以上のときにセキュリティ関連アクセス禁止信号１１６に“０”を出力するようにした。しかし、カウント値がｎ（１≦ｎ）以下のときにセキュリティ関連アクセス禁止信号１１６に“１”を出力し、カウント値がｎより大きいときにセキュリティ関連アクセス禁止信号１１６に“０”を出力するようにしてもよい。
【００４９】
以上説明したように、本実施の形態におけるマイクロコンピュータによれば、割込み実行中通知信号がアクティブとなるとき、すなわち暗号関連のプログラム３１または割込み処理プログラム３３へ移行するときに、カウンタ１７はカウント値をインクリメントしてセキュリティ情報へのアクセスを許可し、暗号等に関わらないプログラム３２の処理中にはカウンタ１７はカウント値を“０”にしてセキュリティ情報へのアクセスを禁止するようにしたので、第１の実施の形態におけるマイクロコンピュータと同様の効果を奏することが可能となる。
【００５０】
（第３の実施の形態）
図７は、本発明の第３の実施の形態におけるマイクロコンピュータの概略構成を示すブロック図である。図５に示す第２の実施の形態におけるマイクロコンピュータと比較して、フラグレジスタ１１およびＡＮＤ回路１９が追加されている点、およびフラグレジスタ１１の設定をＣＰＵ１が行なう点のみが異なる。
【００５１】
ＣＰＵ１は、プログラムの切替え処理時に、暗号等に関わらないプログラムから暗号関連プログラムに切替わる場合にフラグレジスタ１１に“０”を設定し、暗号関連プログラムから暗号等に関わらないプログラムに切替わる場合にフラグレジスタ１１に“１”を設定する。なお、本実施の形態においては、暗号等に関わらないプログラムから暗号関連プログラムへの移行は、割込み命令の実行によらないものとする。
【００５２】
ＡＮＤ回路１９は、フラグレジスタ１１から出力されるセキュリティ関連アクセス禁止信号１０４と、カウンタ１７から出力されるセキュリティ関連アクセス禁止信号１１６との論理和を出力する。すなわち、カウンタ１７のカウント値が“１”以上の場合、またはフラグレジスタ１１に“０”が設定されている場合に、ＡＮＤ回路１９はリソース選択信号生成回路２に“０”を出力してセキュリティ情報へのアクセスを許可する。
【００５３】
また、カウンタ１７のカウント値が“０”であり、かつフラグレジスタ１１に“１”が設定されている場合に、ＡＮＤ回路１９はリソース選択信号生成回路２に“１”を出力してセキュリティ関連情報へのアクセスを禁止する。
【００５４】
図８は、本発明の第３の実施の形態におけるマイクロコンピュータによるソフトウェアの処理を説明するための図である。ＣＰＵ１が、暗号等に関わらないプログラム３２から暗号関連のプログラム３１に処理を移すときに、プログラム切替え処理３４が実行され、フラグレジスタ１１（ＦＬＡＧ）に“０”が設定される。暗号関連のプログラム３１から暗号等に関わらないプログラム３２へ復帰するとき、プログラム切替え処理３４が実行され、フラグレジスタ１１（ＦＬＡＧ）に“１”が設定される。
【００５５】
なお。ＣＰＵ１が、暗号関連のプログラム３１を実行中に割込みが発生する場合、割込み処理プログラム群３３の処理を実行中に再度割込みが発生した場合、および暗号等に関わらないのプログラム３２を実行中に割込みが発生する場合の処理は、図６に示すものと同様である。
【００５６】
以上説明したように、本実施の形態におけるマイクロコンピュータによれば、暗号等に関わらないプログラム３２から暗号関連のプログラム３１に処理を移すときに、フラグレジスタ１１に“０”を設定してセキュリティ関連情報へのアクセスを許可し、暗号関連のプログラム３１から暗号等に関わらないプログラム３２へ復帰するとき、フラグレジスタ１１に“１”を設定してセキュリティ関連情報へのアクセスを禁止するようにしたので、第１の実施の形態におけるマイクロコンピュータと同様の効果を奏することが可能となる。
【００５７】
（第４の実施の形態）
図９は、本発明の第４の実施の形態におけるマイクロコンピュータの概略構成を示すブロック図である。図１に示す第１の実施の形態におけるマイクロコンピュータと比較して、セキュリティ関連アクセス禁止信号１０４がＣＰＵ１に入力される点、およびＣＰＵ１内部の割込みテーブルのベースアドレスレジスタの制御回路の構成が異なる点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰返さない。
【００５８】
図１０は、ベースアドレスレジスタの制御回路の構成を示す図である。ベースアドレスレジスタ２１は、割込みテーブルのベースアドレスを格納する。ベースアドレスレジスタ２１の内容が書換えられると、セキュリティ関連プログラムが正しく動作しなくなったり、セキュリティの安全性が損なわれたりすることが考えられるため、このベースアドレスレジスタ２１の内容の書換えは、セキュリティ関連プログラムによってのみ行なえるようにしている。
【００５９】
ＡＮＤ回路２０は、セキュリティ関連アクセス禁止信号１０４が“１”のときに、ベースアドレスレジスタ２１へのＷＲＩＴＥ信号１２０をマスクし、セキュリティ関連アクセス禁止信号１０４が“０”のときに、ベースアドレスレジスタ２１へのＷＲＩＴＥ信号１２０をそのまま出力する。なお、ベースアドレスレジスタ２１へのＲＥＡＤ信号１１９は、セキュリティ関連アクセス禁止信号１０４には影響されない。
【００６０】
なお、本実施の形態においては、ＣＰＵ１の一部の機能として割込みテーブルのベースアドレスレジスタ２１の内容が、セキュリティ関連以外のプログラムによって書換えられるのを禁止するようにしたが、たとえばスタックポインタが２つあって、一方のスタックポインタがセキュリティ関連プログラムによってのみ使用される場合には、そのスタックポインタの内容がセキュリティ関連以外のプログラムによって書換えられるのを禁止したり、セキュリティ関連プログラム専用のレジスタがセキュリティ関連以外のプログラムによって書換えられるのを禁止したりするようにしてもよい。
【００６１】
以上説明したように、本実施の形態におけるマイクロコンピュータによれば、第１の実施の形態において説明した効果に加えて、ベースアドレスレジスタ２１への書込みを制限することによって、セキュリティ関連プログラムが正しく動作しなくなったり、セキュリティの安全性が損なわれたりすることを防止することが可能となる。
【００６２】
（第５の実施の形態）
図１１は、本発明の第５の実施の形態におけるマイクロコンピュータの概略構成を示すブロック図である。このマイクロコンピュータは、ＣＰＵ１と、メモリ、周辺回路などのリソースを選択するための信号を生成するリソース選択信号生成回路２と、不揮発性メモリ３と、ＲＡＭ４と、セキュリティ関連周辺回路５と、セキュリティ関連以外の周辺回路６と、制約違反割込み発生回路１２と、フラグレジスタＡ〜Ｃ（２２〜２４）と、ＡＮＤ回路４１〜４３と、ＯＲ回路４４〜４７とを含む。
【００６３】
不揮発性メモリ３は、プログラムＡ領域と、プログラムＢ領域と、プログラムＣ領域と、セキュリティ関連プログラム領域と、セキュリティ関連データ領域とを含む。また、ＲＡＭ４は、Ａ領域と、Ｂ領域と、Ｃ領域と、セキュリティ関連用ＲＡＭ領域とを含む。
【００６４】
リソース選択信号生成回路２は、ＣＰＵ１から出力されるアドレスバス１０５の上位アドレスをデコードして、アクセス信号１２１〜１３１を生成する。ただし、フラグレジスタＡ２２から出力されるフラグＡ信号が“０”の場合には、プログラムＡ領域アクセス信号１２１およびＡ領域アクセス信号１２６をマスクし、フラグＡ信号が“１”の場合には、プログラムＡ領域アクセス信号１２１およびＡ領域アクセス信号１２６を出力する。
【００６５】
また、リソース選択信号生成回路２は、フラグフラグレジスタＢ２３から出力されるフラグＢ信号が“０”の場合には、プログラムＢ領域アクセス信号１２２およびＢ領域アクセス信号１２７をマスクし、フラグＢ信号が“１”の場合には、プログラムＢ領域アクセス信号１２２およびＢ領域アクセス信号１２７を出力する。
【００６６】
また、リソース選択信号生成回路２は、フラグフラグレジスタＣ２４から出力されるフラグＣ信号が“０”の場合には、プログラムＣ領域アクセス信号１２３およびＣ領域アクセス信号１２８をマスクし、フラグＣ信号が“１”の場合には、プログラムＣ領域アクセス信号１２３およびＣ領域アクセス信号１２８を出力する。
【００６７】
また、リソース選択信号生成回路２は、フラグレジスタＡ〜Ｃ（２２〜２４）から出力されるフラグＡ信号、フラグＢ信号およびフラグＣ信号のいずれかが“１”の場合には、セキュリティ関連プログラムアクセス信号１２４、セキュリティ関連データ領域アクセス信号１２５、セキュリティ関連用ＲＡＭアクセス信号１２９およびセキュリティ関連周辺回路アクセス信号１３０をマスクし、フラグＡ信号、フラグＢ信号およびフラグＣ信号の全てが“０”の場合には、セキュリティ関連プログラムアクセス信号１２４、セキュリティ関連データ領域アクセス信号１２５、セキュリティ関連用ＲＡＭアクセス信号１２９およびセキュリティ関連周辺回路アクセス信号１３０を出力する。
【００６８】
なお、その他周辺回路アクセス信号１３１はマスクされない。
【００６９】
ＯＲ回路４４は、プログラムＡ領域アクセス信号１２１またはＡ領域アクセス信号１２６が出力されるときに“１”を出力し、それ以外のときに“０”を出力する。ＯＲ回路４５は、プログラムＢ領域アクセス信号１２２またはＢ領域アクセス信号１２７が出力されるときに“１”を出力し、それ以外のときに“０”を出力する。ＯＲ回路４６は、プログラムＣ領域アクセス信号１２３またはＣ領域アクセス信号１２８が出力されるときに“１”を出力し、それ以外のときに“０”を出力する。
【００７０】
ＯＲ回路４７は、アクセス信号１２１〜１３１のいずれかが出力されるときに“１”を出力し、それ以外のときに“０”を出力する。
【００７１】
フラグレジスタＡ〜Ｃ（２２〜２４）は、ＣＰＵ１から出力される割込み実行中通知信号１００がアクティブとなるときに“０”となりフラグＡ信号、フラグＢ信号およびフラグＣ信号に“０”を出力する。
【００７２】
フラグレジスタＡ２２は、ＣＰＵ１から出力される割込み復帰実行中通知信号１０１がアクティブであり、かつプログラムＡ領域アクセス信号１２１またはＡ領域アクセス信号１２６がアクティブのときに“１”となり、フラグＡ信号に“１”を出力する。
【００７３】
フラグレジスタＢ２３は、ＣＰＵ１から出力される割込み復帰実行中通知信号１０１がアクティブであり、かつプログラムＢ領域アクセス信号１２２またはＢ領域アクセス信号１２７がアクティブのときに“１”となり、フラグＢ信号に“１”を出力する。
【００７４】
フラグレジスタＣ２４は、ＣＰＵ１から出力される割込み復帰実行中通知信号１０１がアクティブであり、かつプログラムＣ領域アクセス信号１２３またはＣ領域アクセス信号１２８がアクティブのときに“１”となり、フラグＣ信号に“１”を出力する。
【００７５】
制約違反割込み発生回路１２は、フラグレジスタＡ〜Ｃ（２２〜２４）から出力されるフラグＡ信号、フラグＢ信号およびフラグＣ信号が全て“０”であり、かつＯＲ回路４７から“０”が出力されるときに、制約違反割込み信号１１４をＣＰＵ１へ出力する。すなわち、セキュリティ関連情報へのアクセスが禁止されている状態で、ＣＰＵ１がセキュリティ関連情報にアクセスした場合に、制約違反割込み発生回路１２は制約違反割込み信号をＣＰＵ１へ出力する。
【００７６】
図１２は、本発明の第５の実施の形態におけるリソース選択信号生成回路２の構成例を示す図である。リソース選択信号生成回路２は、マスク回路５１および５２を備える。なお、図示しないが、プログラムＣ領域およびＣ領域に対応するマスク回路なども同様の構成によって実現される。
【００７７】
マスク回路５１は、フラグＡ信号が“０”のときに、ＣＰＵ１から出力されるアドレスバス１０５の上位アドレスをデコードして生成されたＲＯＭ領域Ａ信号およびＲＡＭ領域Ａ信号をマスクし、プログラムＡ領域アクセス信号１２１およびＡ領域アクセス信号１２６として出力する。フラグＡ信号が“１”のときに、ＲＯＭ領域Ａ信号およびＲＡＭ領域Ａ信号をそのままプログラムＡ領域アクセス信号１２１およびＡ領域アクセス信号１２６として出力する。
【００７８】
同様に、マスク回路５２は、フラグＢ信号が“０”のときに、ＣＰＵ１から出力されるアドレスバス１０５の上位アドレスをデコードして生成されたＲＯＭ領域Ｂ信号およびＲＡＭ領域Ｂ信号をマスクし、プログラムＢ領域アクセス信号１２２およびＢ領域アクセス信号１２７として出力する。フラグＢ信号が“１”のときに、ＲＯＭ領域Ｂ信号およびＲＡＭ領域Ｂ信号をそのままプログラムＢ領域アクセス信号１２２およびＢ領域アクセス信号１２７として出力する。
【００７９】
制約違反割込み発生回路１２は、ＲＯＭ領域Ａ信号、ＲＡＭ領域Ａ信号、ＲＯＭ領域Ｂ信号およびＲＡＭ領域Ｂ信号と、プログラムＡ領域アクセス信号１２１、Ａ領域アクセス信号１２６、プログラムＢ領域アクセス信号１２２およびＢ領域アクセス信号１２７とを比較することによって制約違反割込み信号１１４を生成する。たとえば、マスク回路５１によってＲＯＭ領域Ａ信号がマスクされて、プログラムＡ領域アクセス信号１２１が出力されていないことを検出した場合に制約違反割込み信号１１４を出力する。
【００８０】
図１３は、本発明の第５の実施の形態におけるマイクロコンピュータによるソフトウェアの処理を説明するための図である。ソフトウェアは、制約なしの予め搭載しているプログラム６０と、独立したプログラムＡ〜Ｃ（６４〜６６）とを含む。また、制約なしの予め搭載しているプログラム６０は、共通のプログラム群（セキュリティ関連プログラム）６１と、プログラム切替え処理６２と、割込み処理プログラム群６３とを含む。
【００８１】
たとえば、ＣＰＵ１が独立したプログラムＡ６４を実行中に割込みが発生すると、フラグレジスタＡ〜Ｃ（２２〜２４）が全てクリアされて“０”となる。割込みに対応した処理、たとえば共通のプログラム群６１による処理が終了して割込み復帰命令が実行されると、フラグレジスタＡ２２に“１”が設定されて、独立したプログラムＡ６４の処理に復帰する。この状態では、フラグレジスタＢ２３およびＣ２４は“０”となっているため、独立したプログラムＢ（データＢ）６５およびプログラムＣ（データＣ）６６にアクセスすることはできない。このようにして、プログラムＡ〜Ｃ（６４〜６６）は、互いに相手のプログラム（データ）にアクセスすることができない。
【００８２】
なお、上述した制約なしの予め搭載しているプログラム６０として、セキュリティ関連プログラム以外に、独立したプログラムを組込み、削除するプログラム、独立したプログラムを修正（ｂｕｇ  ｆｉｘ）するプログラム、周辺回路などのドライバ、ＯＳなどが考えられる。
【００８３】
以上説明したように、本実施の形態におけるマイクロコンピュータによれば、フラグレジスタＡ〜Ｃ（２２〜２４）によって他のプログラム領域に対するアクセスを禁止するようにしたので、第１の実施の形態において説明した効果に加えて、独立したプログラムの保護が可能になり、プログラム同士の干渉を防止することが可能になると共に、ユーザが開発するプログラムの量を削減することが可能となる。
【００８４】
（第６の実施の形態）
図１４は、本発明の第６の実施の形態におけるマイクロコンピュータの概略構成を示すブロック図である。図１１に示す第５の実施の形態におけるマイクロコンピュータと比較して、領域Ａ設定レジスタ７１、領域Ｂ設定レジスタ７２および領域Ｃ設定レジスタ７３が追加されている点、およびリソース選択信号生成回路２の構成が異なる点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰返さない。
【００８５】
第５の実施の形態においては、領域Ａ（プログラムＡ領域、Ａ領域）、領域Ｂ（プログラムＢ領域、Ｂ領域）および領域Ｃ（プログラムＣ領域、Ｃ領域）が固定であった。本実施の形態においては、これらの領域を領域Ａ設定レジスタ７１、領域Ｂ設定レジスタ７２および領域Ｃ設定レジスタ７３によって設定可能とする。
【００８６】
図１５は、本発明の第６の実施の形態におけるリソース選択信号生成回路２の構成例を示す図である。リソース選択信号生成回路２は、領域Ａ選択信号生成回路８１と、領域Ｂ選択信号生成回路８２と、領域Ｃ選択信号生成回路８３と、暗号関連選択信号生成回路８４と、マスク回路８５〜８８と、ＯＲ回路８９とを含む。
【００８７】
領域Ａ選択信号生成回路８１は、アドレスバス１０５に出力されたアドレスが、領域Ａ設定レジスタ７１に設定された領域の範囲内であり、かつアクセス要求信号がアクティブのときにＲＯＭ領域Ａ信号またはＲＡＭ領域Ａ信号を出力する。マスク回路８５は、フラグレジスタＡ２２から出力されるフラグＡ信号が“０”のときに、領域Ａ選択信号生成回路８１から出力されるＲＯＭ領域Ａ信号およびＲＡＭ領域Ａ信号をマスクする。フラグＡ信号が“１”のときに、ＲＯＭ領域Ａ信号およびＲＡＭ領域Ａ信号をそのままプログラムＡ領域アクセス信号１２１およびＡ領域アクセス信号１２６として出力する。
【００８８】
領域Ｂ選択信号生成回路８２は、アドレスバス１０５に出力されたアドレスが、領域Ｂ設定レジスタ７２に設定された領域の範囲内であり、かつアクセス要求信号がアクティブのときにＲＯＭ領域Ｂ信号またはＲＡＭ領域Ｂ信号を出力する。マスク回路８６は、フラグレジスタＢ２３から出力されるフラグＢ信号が“０”のときに、領域Ｂ選択信号生成回路８２から出力されるＲＯＭ領域Ｂ信号およびＲＡＭ領域Ｂ信号をマスクする。フラグＢ信号が“１”のときに、ＲＯＭ領域Ｂ信号およびＲＡＭ領域Ｂ信号をそのままプログラムＢ領域アクセス信号１２２およびＢ領域アクセス信号１２７として出力する。
【００８９】
領域Ｃ選択信号生成回路８３は、アドレスバス１０５に出力されたアドレスが、領域Ｃ設定レジスタ７３に設定された領域の範囲内であり、かつアクセス要求信号がアクティブのときにＲＯＭ領域Ｃ信号またはＲＡＭ領域Ｃ信号を出力する。マスク回路８７は、フラグレジスタＣ２４から出力されるフラグＣ信号が“０”のときに、領域Ｃ選択信号生成回路８３から出力されるＲＯＭ領域Ｃ信号およびＲＡＭ領域Ｃ信号をマスクする。フラグＣ信号が“１”のときに、ＲＯＭ領域Ｃ信号およびＲＡＭ領域Ｃ信号をそのままプログラムＣ領域アクセス信号１２３およびＣ領域アクセス信号１２８として出力する。
【００９０】
暗号関連選択信号生成回路８４は、アドレスバス１０５に出力されたアドレスをデコードし、アクセス要求信号がアクティブのときにセキュリティ関連プログラム領域、セキュリティ関連データ領域またはセキュリティ関連用ＲＡＭ領域に対するアクセス信号を生成する。マスク回路８８は、ＯＲ回路８９の出力が“１”のとき、すなわちフラグレジスタＡ〜Ｃ（２２〜２４）の出力のいずれかが“１”のときに、暗号関連選択信号生成回路８４からのアクセス信号をマスクする。また、ＯＲ回路８９の出力が“０”のとき、すなわちフラグレジスタＡ〜Ｃ（２２〜２４）の出力が全て“０”のときに、暗号関連選択信号生成回路８４からのアクセス信号を、セキュリティ関連プログラム領域アクセス信号１２４、セキュリティ関連データ領域アクセス信号１２５またはセキュリティ関連用ＲＡＭ領域アクセス信号１２９として出力する。
【００９１】
なお、マスク回路８８は、ＯＲ回路８９の出力が“１”のとき、すなわちフラグレジスタＡ〜Ｃ（２２〜２４）の出力のいずれかが“１”のときに、領域Ａ設定レジスタ７１、領域Ｂ設定レジスタ７２および領域Ｃ設定レジスタ７３への選択信号をマスクする。これによって、プログラムＡ〜Ｃによって領域Ａ設定レジスタ７１、領域Ｂ設定レジスタ７２および領域Ｃ設定レジスタ７３の内容が変更されるのを防止している。
【００９２】
以上説明したように、本実施の形態におけるマイクロコンピュータによれば、領域Ａ設定レジスタ７１、領域Ｂ設定レジスタ７２および領域Ｃ設定レジスタ７３によって、プログラム領域およびデータ領域を設定できるようにしたので、第５の実施の形態において説明した効果に加えて、セキュリティ関連以外の独立したプログラムの変更、追加などが容易に行なえるようになり、汎用性を高めることが可能となる。
【００９３】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００９４】
【図１】本発明の第１の実施の形態におけるマイクロコンピュータの概略構成を示すブロック図である。
【図２】割込み実行中通知信号１００および割込み復帰実行中通知信号１０１を生成するための回路構成を示す図である。
【図３】割込み実行中通知信号１００および割込み復帰実行中通知信号１０１のタイミングを説明するための図である。
【図４】本発明の第１の実施の形態におけるマイクロコンピュータによるソフトウェアの処理を説明するための図である。
【図５】本発明の第２の実施の形態におけるマイクロコンピュータの概略構成を示すブロック図である。
【図６】本発明の第２の実施の形態におけるマイクロコンピュータによるソフトウェアの処理を説明するための図である。
【図７】本発明の第３の実施の形態におけるマイクロコンピュータの概略構成を示すブロック図である。
【図８】本発明の第３の実施の形態におけるマイクロコンピュータによるソフトウェアの処理を説明するための図である。
【図９】本発明の第４の実施の形態におけるマイクロコンピュータの概略構成を示すブロック図である。
【図１０】ベースアドレスレジスタの制御回路の構成を示す図である。
【図１１】本発明の第５の実施の形態におけるマイクロコンピュータの概略構成を示すブロック図である。
【図１２】本発明の第５の実施の形態におけるリソース選択信号生成回路２の構成例を示す図である。
【図１３】本発明の第５の実施の形態におけるマイクロコンピュータによるソフトウェアの処理を説明するための図である。
【図１４】本発明の第６の実施の形態におけるマイクロコンピュータの概略構成を示すブロック図である。
【図１５】本発明の第６の実施の形態におけるリソース選択信号生成回路２の構成例を示す図である。
【符号の説明】
【００９５】
１  ＣＰＵ、２  リソース選択信号生成回路、３  不揮発性メモリ、４  ＲＡＭ、５  セキュリティ関連周辺回路、６  セキュリティ関連以外の周辺回路、１１，２２〜２４  フラグレジスタ、１２  制約違反割込み発生回路、１３，１９，２０，４１〜４３  ＡＮＤ回路、１４〜１６，１８，４４〜４７，８９  ＯＲ回路、１７  カウンタ、２１  ベースアドレスレジスタ、３１  暗号関連のプログラム、３２  暗号等に関わらないプログラム、３３，６３  割込み処理プログラム群、３４，６２  プログラム切替え処理、５１，５２，８５〜８８  マスク回路、６１  共通のプログラム群、６４〜６６  独立したプログラム、７１〜７３  領域設定レジスタ、８１〜８３  領域選択信号生成回路、８４  暗号関連選択信号生成回路、９１  割込みコントローラ、９２  命令レジスタ、９３  命令デコーダ、９４  μＰＣ、９５  μＲＯＭ、９６  デコーダ。
【図１】
2005084721.tif 000003
【図２】
2005084721.tif 000004
【図３】
2005084721.tif 000005
【図４】
2005084721.tif 000006
【図５】
2005084721.tif 000007
【図６】
2005084721.tif 000008
【図７】
2005084721.tif 000009
【図８】
2005084721.tif 000010
【図９】
2005084721.tif 000011
【図１０】
2005084721.tif 000012
【図１１】
2005084721.tif 000013
【図１２】
2005084721.tif 000014
【図１３】
2005084721.tif 000015
【図１４】
2005084721.tif 000016
【図１５】
2005084721.tif 000017