(57)【要約】【課題】第三者によって外部ＲＯＭ等のメモリが書き換えられたとしても内蔵メモリの記憶している内容を外部へ読み出すことを禁止可能にする。【解決手段】ＣＰＵ１１と、このＣＰＵが実行するためのプログラムを含む情報を記憶するメモリ１２ａ、１２ｂと、ＣＰＵが実行しているプログラムによってアクセスされる領域を監視するプログラム領域監視回路３０と、メモリに外部からのアクセスを禁止するアクセス禁止設定情報を記憶するアクセス禁止設定レジスタ２０と、プログラム領域監視回路の監視結果およびアクセス禁止設定レジスタに記憶されたアクセス禁止設定情報に基づいてメモリへのアクセスを禁止するメモリアクセス禁止信号を発生するメモリアクセス禁止信号発生回路４０と、メモリアクセス禁止信号に基づいて、メモリに記憶された情報がメモリから外部へ読み出されるのを制御するメモリアクセス制御回路５０と、を備えている。【選択図】  図１
2004355383.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、
このＣＰＵが実行するためのプログラムを含む情報を記憶するメモリと、
前記ＣＰＵが実行しているプログラムによってアクセスされる領域を監視するプログラム領域監視回路と、
前記メモリに外部からのアクセスを禁止するアクセス禁止設定情報を記憶するアクセス禁止設定レジスタと、
前記プログラム領域監視回路の監視結果および前記アクセス禁止設定レジスタに記憶されたアクセス禁止設定情報に基づいて前記メモリへのアクセスを禁止するメモリアクセス禁止信号を発生するメモリアクセス禁止信号発生回路と、
前記メモリアクセス禁止信号に基づいて、前記メモリに記憶された前記情報が前記メモリから前記外部へ読み出されるのを制御するメモリアクセス制御回路と、
を備えたことを特徴とするメモリ制御回路。
【請求項２】
前記プログラム領域監視回路は、前記ＣＰＵに含まれていることを特徴とする請求項１記載のメモリ制御回路。
【請求項３】
前記メモリアクセス制御回路は、前記メモリへのアクセスが禁止されている場合に、前記外部から前記メモリにアクセスが行われたとき、所定のコード情報を前記外部に与えることを特徴とする請求項１または２記載のメモリ制御回路。
【請求項４】
前記メモリが複数のブロックから構成されているときに、前記アクセス禁止設定レジスタは、前記ブロック単位でアクセス禁止の設定が可能であることを特徴とする請求項１乃至３のいずれかに記載のメモリ制御回路。
【請求項５】
前記複数のブロックのうちアクセスが禁止されたブロックが存在する場合には前記アクセス禁止設定レジスタは、リセットされない限り、アクセスが禁止されるブロックの書き換えを行うことができないことを特徴とする請求項４記載のメモリ制御回路。
【請求項６】
前記メモリ内へのアクセスが禁止された領域のアドレスを記憶するレジスタを有するアクセス禁止領域設定回路を更に備えていることを特徴とする請求項１乃至３のいずれかに記載のメモリ制御回路。
【請求項７】
前記アクセス禁止領域設定回路の前記レジスタに記憶された、前記アクセスが禁止された領域のアドレスは、リセットされない限り書き換え不能であることを特徴とする請求項６記載のメモリ制御回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、メモリアクセス禁止機能を有するメモリ制御回路に関する。
【０００２】
【従来の技術】
一般に、各種装置の制御にマイクロプロセッサが広く用いられている。上記装置に所望の機能を実現させるためにマイクロプロセッサが実行すべきプログラム等が必要である。これらプログラム等のソフトウェアの開発には多大の時間と労力が費やされている。このため、マイクロプロセッサ等に内蔵されたソフトウェアを模倣・盗用から防止することが必要である。
【０００３】
１つのチップにマイクロプロセッサの主な機能が実現されたメモリ制御回路（以下、ＭＣＵ（Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）とも云う）では、制御プログラムやデータは通常、内蔵メモリに書き込まれる。このため、ソフトウェア保護の手段としてメモリ内に記憶されているプログラムやデータの外部への読み出しを禁止する必要がある。
【０００４】
しかし、プログラム実行アドレスが内蔵メモリエリア以外に移動する場合、内蔵メモリの内容が読み出される危険性がある。つまり外部ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等にジャンプするようなプログラムを内蔵メモリ上で実行しても、外部ＲＯＭを差し替えることで内蔵メモリの内容を読み出すことが可能になる。したがって、内蔵メモリのデータを第三者に読み出されてしまう危険性がある。
【０００５】
内蔵メモリのデータを第三者に読み出されることを防止するために、内蔵メモリの内容を外部に出力する制御に不揮発性メモリを使用したセキュリテイ回路が知られている（例えば、特許文献１参照）。
【０００６】
【特許文献１】
特開平５−７３４２８号公報
【０００７】
【発明が解決しようとする課題】
このように、従来技術においては、内蔵メモリの内容を外部に出力する制御に不揮発性メモリを使用してきたが、不揮発性メモリの書き換えに長時間要することや書き換え回数に制限があった。
【０００８】
本発明は上記事情を考慮してなされたものであって、第三者によって外部ＲＯＭ等のメモリが書き換えられたとしても内蔵メモリの記憶している内容を外部へ読み出すことを禁止できるとともに、メモリの書き換え時間や書き換え回数の制限無く使用することができる、メモリ制御回路を提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明の一態様によるメモリ制御回路は、ＣＰＵと、このＣＰＵが実行するためのプログラムを含む情報を記憶するメモリと、前記ＣＰＵが実行しているプログラムによってアクセスされる領域を監視するプログラム領域監視回路と、前記メモリに外部からのアクセスを禁止するアクセス禁止設定情報を記憶するアクセス禁止設定レジスタと、前記プログラム領域監視回路の監視結果および前記アクセス禁止設定レジスタに記憶されたアクセス禁止設定情報に基づいて前記メモリへのアクセスを禁止するメモリアクセス禁止信号を発生するメモリアクセス禁止信号発生回路と、前記メモリアクセス禁止信号に基づいて、前記メモリに記憶された前記情報が前記メモリから前記外部へ読み出されるのを制御するメモリアクセス制御回路と、を備えたことを特徴とする。
【００１０】
なお、前記プログラム領域監視回路は、前記ＣＰＵに含まれていても良い。
【００１１】
なお、前記メモリアクセス制御回路は、前記メモリへのアクセスが禁止されている場合に、前記外部から前記メモリにアクセスが行われたとき、所定のコード情報を前記外部に与えるように構成しても良い。
【００１２】
なお、前記メモリが複数のブロックから構成されているときに、前記アクセス禁止設定レジスタは、前記ブロック単位でアクセス禁止の設定が可能であっても良い。
【００１３】
なお、前記複数のブロックのうちアクセスが禁止されたブロックが存在する場合には前記アクセス禁止設定レジスタは、リセットされない限り、アクセスが禁止されるブロックの書き換えを行うことができないように構成しても良い。
【００１４】
なお、前記メモリ内へのアクセスが禁止された領域のアドレスを記憶するレジスタを有するアクセス禁止領域設定回路を更に備えていても良い。
【００１５】
なお、前記アクセス禁止領域設定回路の前記レジスタに記憶された、前記アクセスが禁止された領域のアドレスは、リセットされない限り書き換え不能であっても良い。
【００１６】
【発明の実施の形態】
以下、本発明の実施形態について、図面を参照しながら具体的に説明する。
【００１７】
（第１実施形態）
本発明の第１実施形態によるメモリ制御回路（以下、ＭＣＵ（Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）とも云う）の構成を図１に示す。この実施形態によるメモリ制御回路１は、ＣＰＵ１１と、内蔵メモリ１２ａ、１２ｂと、内蔵メモリ制御回路１５とを備えている。内蔵メモリ制御回路１５は、アクセス禁止設定レジスタ２０と、プログラム領域関し回路３０と、メモリアクセス禁止信号生成回路４０と、メモリアクセス制御回路５０とを備えている。
【００１８】
内蔵メモリ１２ａ、１２ｂには、メモリ制御回路１が動作するためのプログラムやデータが記憶されている。ＣＰＵ１１は、内蔵メモリ１２ａ、１２ｂに記憶されたプログラムに基づいて動作する。
【００１９】
アクセス禁止設定レジスタ２０は、外部メモリ１００に記憶されたプログラムによる、内蔵メモリ１２ａ、１２ｂのメモリ空間へのアクセスを禁止するか否かの設定を記憶するレジスタである。この設定はユーザによって行われ、アクセス禁止設定情報は１ビットデータであっても良いし、複数のビットからなるコード情報で合っても良い。
【００２０】
プログラム領域監視回路３０は、ＣＰＵ１１からのバスアクセスステータス情報に基づいて、ＣＰＵ１１が現在実行しているプログラム領域を監視する。メモリアクセス禁止信号生成回路４０は、アクセス禁止設定レジスタ２０に設定された禁止設定結果と、プログラム領域監視回路３０の監視結果とに基づいて、メモリアクセス禁止信号信号を生成する。メモリアクセス制御回路５０は、メモリアクセス禁止信号に基づいて、外部メモリ１００に記憶されたプログラムによる、内蔵メモリ１２ａ、１２ｂのメモリ空間へのアクセスを禁止させるか否かの制御を行う。
【００２１】
次に、アクセス禁止設定レジスタ２０、プログラム領域監視回路３０、およびメモリアクセス禁止信号生成回路４０の具体的な回路構成を図２に示す。図２に示すように、アクセス禁止設定レジスタ２０は、ＡＮＤ回路２２と、フリップフロップ回路２４とを備え、プログラム領域監視回路３０は、ＡＮＤ回路３２と、比較回路３４と、フリップフロップ回路３６とを備え、メモリアクセス禁止信号生成回路４０はＡＮＤ回路４２を備えている。
【００２２】
プログラム領域監視回路３０のＡＮＤ回路３２は、データアクセスフラグ（またはオペランドアクセスフラグ）の反転信号と、分岐成立フラグに基づいてＡＮＤ演算を行う。データアクセスフラグおよび分岐成立フラグはＣＰＵ１１から送られてくる。データアクセスフラグは、ＣＰＵ１１が内蔵メモリ１２ａ、１２ｂからのデータの読み出し、または、内蔵メモリ１２ａ、１２ｂへの書き込み中のときには「１」レベルであり、それ以外のときには「０」レベルである。分岐成立フラグは、実行プログラムアドレスが内蔵メモリ１２ａ、１２ｂから外部メモリ１００に移動（分岐）するか否かを示すフラグであって、分岐命令実行サイクル時には、「１」レベルであり、それ以外のときは、「０」レベルとなる。比較回路３４は、実行プログラムが内蔵メモリ領域内にあるか否かの比較を行い、比較結果をフリップフロップ回路３６に送出する。フリップフロップ回路３６は、ＡＮＤ回路３２の演算結果と、比較回路３４の比較結果とに基づいて、実行プログラムが内蔵メモリ領域内にあるか内蔵メモリ領域外かの監視結果を出力する。内蔵メモリ領域外の場合、監視結果は「１」レベルであり、内蔵メモリ領域内の場合、監視結果は「０」レベルとなる。
【００２３】
したがって、内蔵メモリ領域内でプログラムを実行中に、分岐成立フラグが「１」レベルでかつ実行プログラムアドレスが内蔵メモリ領域外であれば、実行プログラムは内蔵メモリ領域外に移動したことになる。データアクセスフラグが「１」レベルでかつ実行プログラムのアドレスが内蔵メモリ領域外であれば、一時的に外部メモリ１００に読み出しまたは書き込みのためのアクセスを行っているので、実行プログラムは内蔵メモリ領域内のままである。
【００２４】
内蔵メモリ領域外でプログラムを実行中に、分岐成立フラグが「１」レベルであって、かつ実行プログラムのアドレスが内蔵メモリ領域内であれば、実行プログラムは内蔵メモリ領域内に移動したことなる。また、データアクセスフラグが「１」レベルでかつ実行プログラムのアドレスが内蔵メモリ領域内であれば、一時的に内蔵メモリ１２ａ、１２ｂに読み出しまたは書き込みのためのアクセスを行ったので、実行プログラムは内蔵メモリ領域外のままである。
【００２５】
アクセス禁止設定レジスタ２０内のＡＮＤ回路２２は、レジスタ２０の選択信号ＣＳと、ＣＰＵ１１からの書き込み信号ＷＲと、プログラム領域監視回路３０の監視結果の反転信号に基づいてＡＮＤ演算を行い、演算結果をフリップフロップ回路２４に送出する。フリップフロップ回路２４は、アクセス禁止設定情報を記憶し、実行プログラムのアドレスがアクセス禁止設定領域にある場合に、「１」レベルの信号を出力する。
【００２６】
メモリ禁止信号生成回路４０はＡＮＤ回路４２から成っている。ＡＮＤ回路４２は、アクセス禁止設定レジスタ２０の出力と、プログラム領域監視回路３０の監視結果とに基づいて、ＡＮＤ演算を行い、内蔵メモリへのアクセスを禁止するメモリアクセス禁止信号を生成する。
【００２７】
なお、プログラム領域監視回路３０は、図３に示すように、ＣＰＵ１１内に設けるように構成しても良い。また、図２および図３に示すように、アクセス禁止設定レジスタ２０およびプログラム領域監視回路３０は、リセット信号によって初期化される構成となっている。このため、内蔵メモリ１２ａ、１２ｂ上のプログラムで随時書き込みを行う必要がある。
【００２８】
次に、図４に、メモリアクセス制御回路５０の一具体例の構成を示す。このメモリアクセス制御回路５０はＡＮＤ回路５２を備えている。ＡＮＤ回路５２は、ＣＰＵ１１からのリード信号と、メモリアクセス禁止信号生成回路の出力の反転信号とに基づいてＡＮＤ演算を行い、演算結果を内蔵メモリ１２の出力を制御するバッファ回路８０に送出し、内蔵メモリ１２からのデータの読み出しを制御する。
【００２９】
この読み出しが禁止された場合は、内蔵メモリ１２からはデータは何も出力されない。読み出しが許可された場合は、内蔵メモリ１２からデータが読み出される。
【００３０】
図４に示すメモリアクセス制御回路５０の場合は、読み出しが禁止されたとき、すなわち外部メモリ１００に記憶されている実行プログラムによって内蔵メモリ１２へのアクセスが行われたときには、データバスにはデータはなにも出力されず、いかなるデータも出力されない。
【００３１】
しかし、図５に示すメモリアクセス制御回路を用いた場合は、読み出しが禁止されたとき、すなわち外部メモリ１００に記憶されている実行プログラムによって内蔵メモリ１２へのアクセスが行われたときには、ＡＮＤ回路５４からバッファ回路８２に制御信号が送られ、特定のコードがバッファ回路８２からデータバスに出力される。したがって、ユーザ以外のものが内蔵メモリからデータを読み出そうとした場合には、特定のコードが読み出されることになる。
【００３２】
このように構成された本実施形態によるＭＣＵ１において、メモリ禁止設定レジスタ２０が有効な場合、すなわち内蔵メモリ１２へのアクセスが禁止されている場合の、プログラムが内蔵メモリ１２上で動作しているときの動作を図６に示し、プログラムが外部メモリ１００上で動作しているときの動作を図７に示す。この場合は、また、メモリ禁止設定レジスタ２０が無効な場合、すなわち内蔵メモリ１２へのアクセスが禁止されていない場合の、プログラムが内蔵メモリ１２上で動作しているときの動作を図８に示し、プログラムが外部メモリ１００上で動作しているときの動作を図９に示す。
【００３３】
以上説明したように、本実施形態によれば、プログラムの冒頭でアクセス禁止設定レジスタ２０に書き込みを行うように構成にすることで、内蔵メモリとして不揮発性メモリを使用することなく外部メモリからの読み出しを常に禁止することができる。また、アクセス禁止設定レジスタ２０に書き込みを行うルーチンの格納領域はユーザしか知ることができない。
【００３４】
内蔵メモリ１２から起動した場合、図６に示すようにプログラム実行アドレスが内蔵メモリ１２上にあれば全領域のメモリへアクセス可能だが、図７に示すように、プログラム実行アドレスが内蔵メモリ領域外の外部メモリ１００上にある場合は内蔵メモリ１２へのアクセス及びアクセス禁止設定レジスタ２０へのアクセスは禁止となる。
【００３５】
これにより、本実施形態によれば、第三者によって外部ＲＯＭ等のメモリが書き換えられたとしても内蔵メモリの記憶している内容を外部へ読み出すことを禁止できるとともに、メモリの書き換え時間や書き換え回数の制限無く使用することができる。
【００３６】
（第２実施形態）
次に、本発明の第２実施形態によるメモリ制御回路を図１０乃至図１１を参照して説明する。図１０は、本実施形態によるメモリ制御回路の機能の概要を説明する図であり、図１１は、本実施形態によるメモリ制御回路の構成を示すブロック図である。この実施形態によるメモリ制御回路は、内蔵メモリ１２が複数のブロックＢＬ１〜ＢＬｎに分けられている場合に、ブロック単位でアクセスの禁止を設定可能にしたものである。例えば、図１０に示すように、ブロックＢＬ２はアクセス可能であるが、他のブロックＢＬ１、ＢＬ３、ＢＬ４、ＢＬ５、ＢＬ６は、アクセス禁止に設定することが可能である。
【００３７】
そして、図１１に示すように、本実施形態によるメモリ制御回路は、図１に示す第１実施形態によるメモリ制御回路において、内蔵メモリ１２ａ，１２ｂ、アクセス禁止設定レジスタ２０、プログラム領域監視回路３０、およびメモリアクセス禁止信号生成回路４０を、ｎ個のブロック（図１０においては６個のブロック）からなる内蔵メモリ１２、アクセス禁止設定レジスタ２０Ａ、プログラム領域監視回路３０Ａ、およびメモリアクセス禁止信号生成回路４０Ａにそれぞれ置き換えるとともに、ＯＲ回路７０とＮＯＲ回路７２を新たに設けた構成となっている。
【００３８】
アクセス禁止設定レジスタ２０Ａは、ＡＮＤ回路２５と、ｎ個のフリップフロップ回路２７１〜２７ｎとを備えている。ＡＮＤ回路２５は、アクセス禁止設定レジスタ２０Ａを選択する信号ＣＳと、ＣＰＵ１１からの書き込み信号ＷＲと、ＮＯＲ回路７２の出力とに基づいてＡＮＤ演算を行い、演算結果をフリップフロップ回路２７１〜２７ｎに送出する。フリップフロップ回路２７ｉ（ｉ＝１，・・・，ｎ）は、内蔵メモリ１２を構成するｎ個のブロックのうちのｉ番目のブロックＢＬｉをアクセス禁止にするか否かの設定情報を記憶し、ｉ番目のブロックＢＬｉがアクセス禁止にされている場合に、ｉ番目のブロックＢＬｉのアクセスを禁止する設定信号（＝「１」レベルの信号）を出力する。
【００３９】
ＯＲ回路７０は、フリップフロップ回路２７１〜２７ｎの出力に基づいてＯＲ演算を行い、演算結果をＮＯＲ回路７２に送出する。従って、ＯＲ回路７０と、ＮＯＲ回路７２によって、内蔵メモリ１２内にアクセス禁止設定がなされたブロックがあれば、アクセス禁止設定がなされたブロックの書き換えが禁止される。しかし、リセット信号によってフリップフロップ回路２７１〜２７ｎがリセットされた場合には、再度設定が可能となる。
【００４０】
メモリアクセス禁止信号生成回路４０Ａは、アドレスデコード回路４４と、ＡＮＤ回路４６１〜４６ｎと、ＯＲ回路４８とを備えている。アドレスデコード回路４４は、ＣＰＵ１１から送出される現在実行されているプログラムのアドレスをデコードし、デコード結果をＡＮＤ回路４６１〜４６ｎに送出する。現在実行されているプログラムが内蔵メモリ１２のｉ番目のブロックＢＬｉからデータを読み出そうとしている場合に、ＡＮＤ回路４６ｉにのみ「１」レベルの信号を送り、他のブロックＢＬｊ（ｊ≠ｉ）には「０」レベルの信号を送出する。ＡＮＤ回路４６ｉ（ｉ＝１，・・・，ｎ）は、プログラム領域監視回路３０の出力と、フリップフロップ回路２７ｉの出力と、アドレスデコード回路４４の出力とに基づいて、ＡＮＤ演算を行い、演算結果をＯＲ回路４８に送出する。ＯＲ回路４８は、ＡＮＤ回路４６１〜４６ｎの出力に基づいてＯＲ演算を行い、内蔵メモリアクセス禁止信号を出力する。
【００４１】
プログラム領域監視回路３０Ａは、図２に示す第１実施形態のプログラム領域監視回路３０において、ｎ個のＡＮＤ回路３１１〜３１ｎと、ＮＯＲ回路３３と、セレクタ３５とを新たに設けた構成となっている。ＡＮＤ回路３１ｉ（ｉ＝１，・・・，ｎ）は、アクセス禁止設定レジスタ２０Ａを構成するフリップフロップ回路２７ｉの出力である、ブロックＢＬｉを禁止設定するブロックＢＬｉ禁止設定信号と、メモリアクセス禁止信号生成回路４０Ａを構成するＡＮＤ回路４６ｉの出力であるブロックＢＬｉを選択するブロックＢＬｉ選択信号とのＡＮＤ演算を行い、ＮＯＲ回路３３に送出する。ＮＯＲ回路３３は、ｎ個のＡＮＤ回路３１１〜３１ｎの出力に基づいてＮＯＲ演算を行い、セレクタ３５に送出する。セレクタ３５は、ＯＲ回路７０の出力に基づいて、ＮＯＲ回路３３の出力と比較回路３４の出力の一方出力を選択してフリップフロップ回路３６に送出する。すなわち、ＯＲ回路７０の出力が「１」の場合はＮＯＲ回路３３の出力を選択し、ＯＲ回路７０の出力が「０」の場合は比較回路３４の出力を選択する。
【００４２】
このように構成されたプログラム領域監視回路３０Ａの動作を以下に説明する。ブロックアクセス禁止設定が０個の場合、セレクタ３５は比較回路３４の出力を選択する。この場合、プログラム領域監視回路３０Ａの監視判定は、実行プログラムが、内蔵メモリ１２の領域内で実行しているか、内蔵メモリ１２の領域外で実行しているかの判定となる。この場合、監視結果＝０（実行プログラムが内蔵メモリ領域内）のとき、アクセス禁止設定レジスタ２０Ａの設定が可能となります。
【００４３】
これに対して、ブロックアクセス禁止設定が１個以上設定された場合、セレクタ３５はＮＯＲ回路３３の出力を選択する。この場合、プログラム領域監視回路３０Ａの監視判定は、実行プログラムが、アクセス禁止ブロック領域内で実行しているか、アクセス禁止ブロック領域外で実行しているかの判定となる。そして、監視結果＝０（実行プログラムが、アクセス禁止ブロック領域内）の場合、内蔵メモリアクセス禁止信号は「０」になり、内蔵メモリは、アクセス禁止ブロックも、アクセス可能ブロックも読み出すことができる。監視結果＝１（実行プログラムが、アクセス禁止ブロック領域外）の場合、アクセス禁止ブロック領域外から、アクセス禁止ブロック領域内をアクセスした場合、内蔵メモリアクセス禁止信号は「１」になり、アクセス禁止ブロック内のデータを読み出すことができない。アクセス禁止ブロック領域外から、アクセス禁止ブロック領域外をアクセスした場合は、内蔵メモリアクセス禁止信号は「０」になり、アクセス禁止ブロック外のデータを読み出すことができる。したがって、このように構成することにより、一度アクセス禁止設定レジスタを設定した場合は、リセットするまでアクセス禁止設定レジスタをＮＯＲ回路７２によって再度変更できない。
【００４４】
以上述べたことにより、本実施形態によるメモリ制御回路によれば、ブロック単位でアクセスの禁止設定を行うことが可能となり、第三者によって外部ＲＯＭ等のメモリが書き換えられたとしても内蔵メモリの記憶している内容を外部へ読み出すことを禁止できるとともに、メモリの書き換え時間や書き換え回数の制限無く使用することができる。また、一旦、内蔵メモリ１２のあるブロックがアクセス禁止に設定されると、リセット信号によってメモリ制御回路がリセットされない限りアクセス禁止ブロックの書き換えはできない。
【００４５】
（第２実施形態の変形例）
なお、上記第２実施形態においては、一度、アクセス禁止に設定されると、リセット信号によってメモリ制御回路がリセットされない限りアクセス禁止ブロックの書き換えは不可能であったが、これを可能にするメモリ制御回路を第２実施形態の変形例として図１２を参照して説明する。
【００４６】
この変形例によるメモリ制御回路は、図１２に示すように、図１１に示す第２実施形態のメモリ制御回路において、ＮＯＲ回路７２をインバータ回路７３に置き換えた構成となっている。インバータ回路７３はプログラム領域監視回路３０Ａの出力を反転してアクセス禁止設定レジスタ２０ＡのＡＮＤ回路２５に送出する。
【００４７】
このように構成された本変形例によれば、プログラム領域監視回路３０Ａによってアクセス禁止ブロック内と判断されたブロックからのアクセスならば、アクセス禁止設定レジスタ２０Ａの書き換え（例えば、アクセス禁止設定レジスタの追加設定や、アクセス禁止解除の設定）を可能にする。なお、第２実施形態の場合と同様に、リセット信号によってメモリ制御回路がリセットされた場合はアクセス禁止ブロックの書き換えは可能である。
【００４８】
また、この変形例のメモリ制御回路は、第２実施形態と同様に、ブロック単位でアクセスの禁止設定を行うことが可能となり、第三者によって外部ＲＯＭ等のメモリが書き換えられたとしても内蔵メモリの記憶している内容を外部へ読み出すことを禁止できるとともに、メモリの書き換え時間や書き換え回数の制限無く使用することができる。
【００４９】
（第３実施形態）
次に、本発明の第３実施形態によるメモリ制御回路を、図１３乃至図１４を参照して説明する。図１３は、本実施形態によるメモリ制御回路の機能の概要を説明する図であり、図１４は、本実施形態によるメモリ制御回路の構成を示すブロック図である。この実施形態によるメモリ制御回路は、内蔵メモリ１２内の任意の領域をアクセス禁止に設定可能となるようにしたものである。
【００５０】
この実施形態によるメモリ制御回路は、図１に示す第１実施形態によるメモリ制御回路において、内蔵メモリ１２ａ、１２ｂを内蔵メモリ１２に置き換えるとともに、プログラム領域監視回路３０をプログラム領域監視回路３０Ｂに置き換え、さらにアクセス禁止領域設定回路６０と、インバータ回路７４を新たに設けた構成となっている。
【００５１】
インバータ回路７４は、プログラム領域監視回路３０Ｂの出力を反転し、アクセス禁止設定レジスタ２０に送出するとともにアクセス禁止領域設定回路６０に送出する。
【００５２】
アクセス禁止領域設定回路６０は、ＡＮＤ回路６２と、レジスタ６３と、ＡＮＤ回路６４と、レジスタ６５と、デコード回路６７とを備えている。ＡＮＤ回路６２は、レジスタ６３を選択する信号ＣＳ１と、ＣＰＵ１１からの書き込み信号ＷＲと、インバータ回路７４の出力に基づいてＡＮＤ演算を行い、演算結果をレジスタ６３に送出する。レジスタ６３は、内蔵メモリ１２内のアクセス禁止領域の先頭アドレスを記憶する。ＡＮＤ回路６４は、レジスタ６５を選択する信号ＣＳ２と、ＣＰＵ１１からの書き込み信号ＷＲと、インバータ回路７４の出力に基づいてＡＮＤ演算を行い、演算結果をレジスタ６５に送出する。レジスタ６５は、内蔵メモリ１２内のアクセス禁止領域の終了アドレスを記憶する。デコード回路６７は、ＣＰＵ１１からの現在実行されているプログラムのアドレスをデコードし、デコードされたアドレスが、レジスタ６３に記憶された、内蔵メモリ１２内のアクセス禁止領域の先頭アドレスと、レジスタ６５に記憶された、内蔵メモリ１２内のアクセス禁止領域の終了アドレスとからなる領域にあるときのみ、「１」レベルのアクセス禁止領域信号を出力する。それ以外のときは「０」レベルのアクセス禁止領域信号を出力する。
【００５３】
アクセス禁止信号生成回路４０のＡＮＤ回路４２は、デコード回路６７の出力と、プログラム領域監視回路３０の出力と、アクセス禁止設定レジスタ２０の出力とに基づいて、ＡＮＤ演算を行い、内蔵メモリアクセス禁止信号を出力する。
【００５４】
プログラム領域監視回路３０Ｂは、図２に示す第１実施形態のプログラム領域監視回路３０において、インバータ回路３５ａと、セレクタ３５ｂとを新たに設けた構成となっている。インバータ回路３５ａは、デコード回路６７の出力であるアクセス禁止領域信号を反転し、セレクタ３５ｂに送出する。セレクタ３５ｂは、アクセス禁止設定レジスタ２０の出力であるアクセス禁止設定信号の値に応じてインバータ回路３５ａの出力と比較回路３４の出力の一方を選択し、選択結果をフリップフロップ回路３６に送出する。例えば、本実施形態においては、アクセス禁止設定信号の値が「１」の場合にはインバータ回路３５ａの出力を選択し、アクセス禁止設定信号の値が「０」の場合には比較回路３５ｂの出力を選択する。
【００５５】
このように構成されたプログラム領域監視回路３０Ｂの動作を以下に説明する。
【００５６】
アクセス禁止設定信号の値が「０」の場合、セレクタ３５ｂは比較回路３４の出力を選択する。この場合、プログラム領域監視回路３０Ｂの監視判定は、実行プログラムが、内蔵メモリ１２の領域内で実行しているか、内蔵メモリ１２の領域外で実行しているかの判定となる。この場合、監視結果＝０（実行プログラムが内蔵メモリ領域内）のとき、アクセス禁止設定レジスタ２０、アクセス禁止開始アドレス設定レジスタ６３、アクセス禁止終了アドレス設定レジスタ６５の設定が可能となる。
【００５７】
これに対して、アクセス禁止設定信号の値が「１」の場合、セレクタ３５ｂは、インバータ回路３５ａの出力を選択する。この場合、プログラム領域監視回路３０Ｂの監視判定は、実行プログラムが、アクセス禁止領域内で実行しているか、アクセス禁止領域外で実行しているかの判定となる。監視結果＝０（実行プログラムが、アクセス禁止領域内）の場合、内蔵メモリアクセス禁止信号の値は「０」になり、内蔵メモリ１２は、アクセス禁止領域内も、アクセス禁止領域外も読み出すことができる。監視結果＝１（実行プログラムが、アクセス禁止領域外）の場合、アクセス禁止領域外から、アクセス禁止領域内をアクセスした場合、内蔵メモリアクセス禁止信号の値は「１」になり、アクセス禁領域内のデータを読み出すことができない。アクセス禁止領域外から、アクセス禁止領域外をアクセスした場合は、内蔵メモリアクセス禁止信号の値は「０」になり、アクセス禁止領域外のデータを読み出すことができる。
【００５８】
本実施形態の場合、アクセス禁止設定レジスタ、アクセス禁止領域開始アドレス設定レジスタ、アクセス禁止領域終了アドレス設定レジスタは、一度設定した後、リセット実行だけでなく、内蔵メモリのアクセス禁止領域内からは、変更（つまりは、アクセス禁止領域の変更や、設定の解除等を）行うことが可能となる。
【００５９】
このように構成された本実施形態のメモリ制御回路によれば、内蔵メモリ内の任意領域をアクセス禁止とすることが可能となり、第三者によって外部ＲＯＭ等のメモリが書き換えられたとしても内蔵メモリの記憶している内容を外部へ読み出すことを禁止できるとともに、メモリの書き換え時間や書き換え回数の制限無く使用することができる。
【００６０】
（第４実施形態）
次に、本発明の第４実施形態によるメモリ制御回路の構成を図１５に示す。この実施形態によるメモリ制御回路は、図１４に示す第３実施形態によるメモリ制御回路において、インバータ回路７４をＮＯＲ回路７６に置き換えた構成となっている。ＮＯＲ回路７６は、アクセス禁止設定レジスタ２０の出力と、プログラム領域監視回路３０の出力とに基づいて、ＮＯＲ演算を行い、演算結果をアクセス禁止設定レジスタ２０と、アクセス禁止領域設定回路６０のＡＮＤ回路６２、６４に送出する。一旦、内蔵メモリ１２のある領域がアクセス禁止に設定されると、ＮＯＲ回路７６によって、アクセス禁止領域の書き換えを行うことができなくなる。すなわち、アクセス禁止設定レジスタ２０、アクセス禁止開始アドレスを設定するレジスタ６３、およびアクセス禁止終了アドレスを設定するレジスタ６５は一度設定したら、書き換えを行うことはできない。しかし、リセット信号によってメモリ制御回路がリセットされた場合はアクセス禁止領域の書き換えを行うことができる。
【００６１】
以上説明したように、本実施形態によれば、内蔵メモリ内の任意領域をアクセス禁止とすることが可能となり、第三者によって外部ＲＯＭ等のメモリが書き換えられたとしても内蔵メモリの記憶している内容を外部へ読み出すことを禁止できるとともに、メモリの書き換え時間や書き換え回数の制限無く使用することができる。
【００６２】
【発明の効果】
以上、述べたように、本発明によれば、第三者によって外部ＲＯＭ等のメモリが書き換えられたとしても内蔵メモリの記憶している内容を外部へ読み出すことを禁止できるとともに、メモリの書き換え時間や書き換え回数の制限無く使用することができる。
【図面の簡単な説明】
【図１】本発明の第１実施形態によるメモリ制御回路の構成を示すブロック図。
【図２】第１実施形態に係るアクセス禁止設定レジスタおよびプログラム領域監視回路の具体例を示す回路図。
【図３】第１実施形態の変形例を示す回路図。
【図４】第１実施形態に係るメモリアクセス制御回路の一具体例の構成を示す回路図。
【図５】第１実施形態に係るメモリアクセス制御回路の他の具体例の構成を示す回路図。
【図６】第１実施形態によるメモリ制御回路の動作を説明する図。
【図７】第１実施形態によるメモリ制御回路の動作を説明する図。
【図８】第１実施形態によるメモリ制御回路の動作を説明する図。
【図９】第１実施形態によるメモリ制御回路の動作を説明する図。
【図１０】本発明の第２実施形態によるメモリ制御回路の特性を説明する図。
【図１１】本発明の第２実施形態によるメモリ制御回路の構成を示す回路図。
【図１２】第２実施形態の変形例によるメモリ制御回路の構成を示す回路図。
【図１３】本発明の第３実施形態によるメモリ制御回路の特性を説明する図。
【図１４】本発明の第３実施形態によるメモリ制御回路の構成を示す回路図。
【図１５】本発明の第４実施形態によるメモリ制御回路の構成を示す回路図。
【符号の説明】
１  メモリ制御回路
１１  ＣＰＵ
１２  内蔵メモリ
１２ａ  内蔵メモリ
１２ｂ  内蔵メモリ
１５  内蔵メモリ制御回路
２０  アクセス禁止設定レジスタ
３０  プログラム領域監視回路
４０  メモリアクセス禁止信号生成回路
５０  メモリアクセス制御回路
１００  外部メモリ
【図１】
2004355383.tif 000003
【図２】
2004355383.tif 000004
【図３】
2004355383.tif 000005
【図４】
2004355383.tif 000006
【図５】
2004355383.tif 000007
【図６】
2004355383.tif 000008
【図７】
2004355383.tif 000009
【図８】
2004355383.tif 000010
【図９】
2004355383.tif 000011
【図１０】
2004355383.tif 000012
【図１１】
2004355383.tif 000013
【図１２】
2004355383.tif 000014
【図１３】
2004355383.tif 000015
【図１４】
2004355383.tif 000016
【図１５】
2004355383.tif 000017