JP2004355383A - メモリ制御回路 - Google Patents
メモリ制御回路 Download PDFInfo
- Publication number
- JP2004355383A JP2004355383A JP2003152969A JP2003152969A JP2004355383A JP 2004355383 A JP2004355383 A JP 2004355383A JP 2003152969 A JP2003152969 A JP 2003152969A JP 2003152969 A JP2003152969 A JP 2003152969A JP 2004355383 A JP2004355383 A JP 2004355383A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- access
- circuit
- control circuit
- area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【解決手段】CPU11と、このCPUが実行するためのプログラムを含む情報を記憶するメモリ12a、12bと、CPUが実行しているプログラムによってアクセスされる領域を監視するプログラム領域監視回路30と、メモリに外部からのアクセスを禁止するアクセス禁止設定情報を記憶するアクセス禁止設定レジスタ20と、プログラム領域監視回路の監視結果およびアクセス禁止設定レジスタに記憶されたアクセス禁止設定情報に基づいてメモリへのアクセスを禁止するメモリアクセス禁止信号を発生するメモリアクセス禁止信号発生回路40と、メモリアクセス禁止信号に基づいて、メモリに記憶された情報がメモリから外部へ読み出されるのを制御するメモリアクセス制御回路50と、を備えている。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、メモリアクセス禁止機能を有するメモリ制御回路に関する。
【0002】
【従来の技術】
一般に、各種装置の制御にマイクロプロセッサが広く用いられている。上記装置に所望の機能を実現させるためにマイクロプロセッサが実行すべきプログラム等が必要である。これらプログラム等のソフトウェアの開発には多大の時間と労力が費やされている。このため、マイクロプロセッサ等に内蔵されたソフトウェアを模倣・盗用から防止することが必要である。
【0003】
1つのチップにマイクロプロセッサの主な機能が実現されたメモリ制御回路(以下、MCU(Memory Control Unit)とも云う)では、制御プログラムやデータは通常、内蔵メモリに書き込まれる。このため、ソフトウェア保護の手段としてメモリ内に記憶されているプログラムやデータの外部への読み出しを禁止する必要がある。
【0004】
しかし、プログラム実行アドレスが内蔵メモリエリア以外に移動する場合、内蔵メモリの内容が読み出される危険性がある。つまり外部ROM(Read Only Memory)等にジャンプするようなプログラムを内蔵メモリ上で実行しても、外部ROMを差し替えることで内蔵メモリの内容を読み出すことが可能になる。したがって、内蔵メモリのデータを第三者に読み出されてしまう危険性がある。
【0005】
内蔵メモリのデータを第三者に読み出されることを防止するために、内蔵メモリの内容を外部に出力する制御に不揮発性メモリを使用したセキュリテイ回路が知られている(例えば、特許文献1参照)。
【0006】
【特許文献1】
特開平5−73428号公報
【0007】
【発明が解決しようとする課題】
このように、従来技術においては、内蔵メモリの内容を外部に出力する制御に不揮発性メモリを使用してきたが、不揮発性メモリの書き換えに長時間要することや書き換え回数に制限があった。
【0008】
本発明は上記事情を考慮してなされたものであって、第三者によって外部ROM等のメモリが書き換えられたとしても内蔵メモリの記憶している内容を外部へ読み出すことを禁止できるとともに、メモリの書き換え時間や書き換え回数の制限無く使用することができる、メモリ制御回路を提供することを目的とする。
【0009】
【課題を解決するための手段】
本発明の一態様によるメモリ制御回路は、CPUと、このCPUが実行するためのプログラムを含む情報を記憶するメモリと、前記CPUが実行しているプログラムによってアクセスされる領域を監視するプログラム領域監視回路と、前記メモリに外部からのアクセスを禁止するアクセス禁止設定情報を記憶するアクセス禁止設定レジスタと、前記プログラム領域監視回路の監視結果および前記アクセス禁止設定レジスタに記憶されたアクセス禁止設定情報に基づいて前記メモリへのアクセスを禁止するメモリアクセス禁止信号を発生するメモリアクセス禁止信号発生回路と、前記メモリアクセス禁止信号に基づいて、前記メモリに記憶された前記情報が前記メモリから前記外部へ読み出されるのを制御するメモリアクセス制御回路と、を備えたことを特徴とする。
【0010】
なお、前記プログラム領域監視回路は、前記CPUに含まれていても良い。
【0011】
なお、前記メモリアクセス制御回路は、前記メモリへのアクセスが禁止されている場合に、前記外部から前記メモリにアクセスが行われたとき、所定のコード情報を前記外部に与えるように構成しても良い。
【0012】
なお、前記メモリが複数のブロックから構成されているときに、前記アクセス禁止設定レジスタは、前記ブロック単位でアクセス禁止の設定が可能であっても良い。
【0013】
なお、前記複数のブロックのうちアクセスが禁止されたブロックが存在する場合には前記アクセス禁止設定レジスタは、リセットされない限り、アクセスが禁止されるブロックの書き換えを行うことができないように構成しても良い。
【0014】
なお、前記メモリ内へのアクセスが禁止された領域のアドレスを記憶するレジスタを有するアクセス禁止領域設定回路を更に備えていても良い。
【0015】
なお、前記アクセス禁止領域設定回路の前記レジスタに記憶された、前記アクセスが禁止された領域のアドレスは、リセットされない限り書き換え不能であっても良い。
【0016】
【発明の実施の形態】
以下、本発明の実施形態について、図面を参照しながら具体的に説明する。
【0017】
(第1実施形態)
本発明の第1実施形態によるメモリ制御回路(以下、MCU(Memory Control Unit)とも云う)の構成を図1に示す。この実施形態によるメモリ制御回路1は、CPU11と、内蔵メモリ12a、12bと、内蔵メモリ制御回路15とを備えている。内蔵メモリ制御回路15は、アクセス禁止設定レジスタ20と、プログラム領域関し回路30と、メモリアクセス禁止信号生成回路40と、メモリアクセス制御回路50とを備えている。
【0018】
内蔵メモリ12a、12bには、メモリ制御回路1が動作するためのプログラムやデータが記憶されている。CPU11は、内蔵メモリ12a、12bに記憶されたプログラムに基づいて動作する。
【0019】
アクセス禁止設定レジスタ20は、外部メモリ100に記憶されたプログラムによる、内蔵メモリ12a、12bのメモリ空間へのアクセスを禁止するか否かの設定を記憶するレジスタである。この設定はユーザによって行われ、アクセス禁止設定情報は1ビットデータであっても良いし、複数のビットからなるコード情報で合っても良い。
【0020】
プログラム領域監視回路30は、CPU11からのバスアクセスステータス情報に基づいて、CPU11が現在実行しているプログラム領域を監視する。メモリアクセス禁止信号生成回路40は、アクセス禁止設定レジスタ20に設定された禁止設定結果と、プログラム領域監視回路30の監視結果とに基づいて、メモリアクセス禁止信号信号を生成する。メモリアクセス制御回路50は、メモリアクセス禁止信号に基づいて、外部メモリ100に記憶されたプログラムによる、内蔵メモリ12a、12bのメモリ空間へのアクセスを禁止させるか否かの制御を行う。
【0021】
次に、アクセス禁止設定レジスタ20、プログラム領域監視回路30、およびメモリアクセス禁止信号生成回路40の具体的な回路構成を図2に示す。図2に示すように、アクセス禁止設定レジスタ20は、AND回路22と、フリップフロップ回路24とを備え、プログラム領域監視回路30は、AND回路32と、比較回路34と、フリップフロップ回路36とを備え、メモリアクセス禁止信号生成回路40はAND回路42を備えている。
【0022】
プログラム領域監視回路30のAND回路32は、データアクセスフラグ(またはオペランドアクセスフラグ)の反転信号と、分岐成立フラグに基づいてAND演算を行う。データアクセスフラグおよび分岐成立フラグはCPU11から送られてくる。データアクセスフラグは、CPU11が内蔵メモリ12a、12bからのデータの読み出し、または、内蔵メモリ12a、12bへの書き込み中のときには「1」レベルであり、それ以外のときには「0」レベルである。分岐成立フラグは、実行プログラムアドレスが内蔵メモリ12a、12bから外部メモリ100に移動(分岐)するか否かを示すフラグであって、分岐命令実行サイクル時には、「1」レベルであり、それ以外のときは、「0」レベルとなる。比較回路34は、実行プログラムが内蔵メモリ領域内にあるか否かの比較を行い、比較結果をフリップフロップ回路36に送出する。フリップフロップ回路36は、AND回路32の演算結果と、比較回路34の比較結果とに基づいて、実行プログラムが内蔵メモリ領域内にあるか内蔵メモリ領域外かの監視結果を出力する。内蔵メモリ領域外の場合、監視結果は「1」レベルであり、内蔵メモリ領域内の場合、監視結果は「0」レベルとなる。
【0023】
したがって、内蔵メモリ領域内でプログラムを実行中に、分岐成立フラグが「1」レベルでかつ実行プログラムアドレスが内蔵メモリ領域外であれば、実行プログラムは内蔵メモリ領域外に移動したことになる。データアクセスフラグが「1」レベルでかつ実行プログラムのアドレスが内蔵メモリ領域外であれば、一時的に外部メモリ100に読み出しまたは書き込みのためのアクセスを行っているので、実行プログラムは内蔵メモリ領域内のままである。
【0024】
内蔵メモリ領域外でプログラムを実行中に、分岐成立フラグが「1」レベルであって、かつ実行プログラムのアドレスが内蔵メモリ領域内であれば、実行プログラムは内蔵メモリ領域内に移動したことなる。また、データアクセスフラグが「1」レベルでかつ実行プログラムのアドレスが内蔵メモリ領域内であれば、一時的に内蔵メモリ12a、12bに読み出しまたは書き込みのためのアクセスを行ったので、実行プログラムは内蔵メモリ領域外のままである。
【0025】
アクセス禁止設定レジスタ20内のAND回路22は、レジスタ20の選択信号CSと、CPU11からの書き込み信号WRと、プログラム領域監視回路30の監視結果の反転信号に基づいてAND演算を行い、演算結果をフリップフロップ回路24に送出する。フリップフロップ回路24は、アクセス禁止設定情報を記憶し、実行プログラムのアドレスがアクセス禁止設定領域にある場合に、「1」レベルの信号を出力する。
【0026】
メモリ禁止信号生成回路40はAND回路42から成っている。AND回路42は、アクセス禁止設定レジスタ20の出力と、プログラム領域監視回路30の監視結果とに基づいて、AND演算を行い、内蔵メモリへのアクセスを禁止するメモリアクセス禁止信号を生成する。
【0027】
なお、プログラム領域監視回路30は、図3に示すように、CPU11内に設けるように構成しても良い。また、図2および図3に示すように、アクセス禁止設定レジスタ20およびプログラム領域監視回路30は、リセット信号によって初期化される構成となっている。このため、内蔵メモリ12a、12b上のプログラムで随時書き込みを行う必要がある。
【0028】
次に、図4に、メモリアクセス制御回路50の一具体例の構成を示す。このメモリアクセス制御回路50はAND回路52を備えている。AND回路52は、CPU11からのリード信号と、メモリアクセス禁止信号生成回路の出力の反転信号とに基づいてAND演算を行い、演算結果を内蔵メモリ12の出力を制御するバッファ回路80に送出し、内蔵メモリ12からのデータの読み出しを制御する。
【0029】
この読み出しが禁止された場合は、内蔵メモリ12からはデータは何も出力されない。読み出しが許可された場合は、内蔵メモリ12からデータが読み出される。
【0030】
図4に示すメモリアクセス制御回路50の場合は、読み出しが禁止されたとき、すなわち外部メモリ100に記憶されている実行プログラムによって内蔵メモリ12へのアクセスが行われたときには、データバスにはデータはなにも出力されず、いかなるデータも出力されない。
【0031】
しかし、図5に示すメモリアクセス制御回路を用いた場合は、読み出しが禁止されたとき、すなわち外部メモリ100に記憶されている実行プログラムによって内蔵メモリ12へのアクセスが行われたときには、AND回路54からバッファ回路82に制御信号が送られ、特定のコードがバッファ回路82からデータバスに出力される。したがって、ユーザ以外のものが内蔵メモリからデータを読み出そうとした場合には、特定のコードが読み出されることになる。
【0032】
このように構成された本実施形態によるMCU1において、メモリ禁止設定レジスタ20が有効な場合、すなわち内蔵メモリ12へのアクセスが禁止されている場合の、プログラムが内蔵メモリ12上で動作しているときの動作を図6に示し、プログラムが外部メモリ100上で動作しているときの動作を図7に示す。この場合は、また、メモリ禁止設定レジスタ20が無効な場合、すなわち内蔵メモリ12へのアクセスが禁止されていない場合の、プログラムが内蔵メモリ12上で動作しているときの動作を図8に示し、プログラムが外部メモリ100上で動作しているときの動作を図9に示す。
【0033】
以上説明したように、本実施形態によれば、プログラムの冒頭でアクセス禁止設定レジスタ20に書き込みを行うように構成にすることで、内蔵メモリとして不揮発性メモリを使用することなく外部メモリからの読み出しを常に禁止することができる。また、アクセス禁止設定レジスタ20に書き込みを行うルーチンの格納領域はユーザしか知ることができない。
【0034】
内蔵メモリ12から起動した場合、図6に示すようにプログラム実行アドレスが内蔵メモリ12上にあれば全領域のメモリへアクセス可能だが、図7に示すように、プログラム実行アドレスが内蔵メモリ領域外の外部メモリ100上にある場合は内蔵メモリ12へのアクセス及びアクセス禁止設定レジスタ20へのアクセスは禁止となる。
【0035】
これにより、本実施形態によれば、第三者によって外部ROM等のメモリが書き換えられたとしても内蔵メモリの記憶している内容を外部へ読み出すことを禁止できるとともに、メモリの書き換え時間や書き換え回数の制限無く使用することができる。
【0036】
(第2実施形態)
次に、本発明の第2実施形態によるメモリ制御回路を図10乃至図11を参照して説明する。図10は、本実施形態によるメモリ制御回路の機能の概要を説明する図であり、図11は、本実施形態によるメモリ制御回路の構成を示すブロック図である。この実施形態によるメモリ制御回路は、内蔵メモリ12が複数のブロックBL1〜BLnに分けられている場合に、ブロック単位でアクセスの禁止を設定可能にしたものである。例えば、図10に示すように、ブロックBL2はアクセス可能であるが、他のブロックBL1、BL3、BL4、BL5、BL6は、アクセス禁止に設定することが可能である。
【0037】
そして、図11に示すように、本実施形態によるメモリ制御回路は、図1に示す第1実施形態によるメモリ制御回路において、内蔵メモリ12a,12b、アクセス禁止設定レジスタ20、プログラム領域監視回路30、およびメモリアクセス禁止信号生成回路40を、n個のブロック(図10においては6個のブロック)からなる内蔵メモリ12、アクセス禁止設定レジスタ20A、プログラム領域監視回路30A、およびメモリアクセス禁止信号生成回路40Aにそれぞれ置き換えるとともに、OR回路70とNOR回路72を新たに設けた構成となっている。
【0038】
アクセス禁止設定レジスタ20Aは、AND回路25と、n個のフリップフロップ回路271〜27nとを備えている。AND回路25は、アクセス禁止設定レジスタ20Aを選択する信号CSと、CPU11からの書き込み信号WRと、NOR回路72の出力とに基づいてAND演算を行い、演算結果をフリップフロップ回路271〜27nに送出する。フリップフロップ回路27i(i=1,・・・,n)は、内蔵メモリ12を構成するn個のブロックのうちのi番目のブロックBLiをアクセス禁止にするか否かの設定情報を記憶し、i番目のブロックBLiがアクセス禁止にされている場合に、i番目のブロックBLiのアクセスを禁止する設定信号(=「1」レベルの信号)を出力する。
【0039】
OR回路70は、フリップフロップ回路271〜27nの出力に基づいてOR演算を行い、演算結果をNOR回路72に送出する。従って、OR回路70と、NOR回路72によって、内蔵メモリ12内にアクセス禁止設定がなされたブロックがあれば、アクセス禁止設定がなされたブロックの書き換えが禁止される。しかし、リセット信号によってフリップフロップ回路271〜27nがリセットされた場合には、再度設定が可能となる。
【0040】
メモリアクセス禁止信号生成回路40Aは、アドレスデコード回路44と、AND回路461〜46nと、OR回路48とを備えている。アドレスデコード回路44は、CPU11から送出される現在実行されているプログラムのアドレスをデコードし、デコード結果をAND回路461〜46nに送出する。現在実行されているプログラムが内蔵メモリ12のi番目のブロックBLiからデータを読み出そうとしている場合に、AND回路46iにのみ「1」レベルの信号を送り、他のブロックBLj(j≠i)には「0」レベルの信号を送出する。AND回路46i(i=1,・・・,n)は、プログラム領域監視回路30の出力と、フリップフロップ回路27iの出力と、アドレスデコード回路44の出力とに基づいて、AND演算を行い、演算結果をOR回路48に送出する。OR回路48は、AND回路461〜46nの出力に基づいてOR演算を行い、内蔵メモリアクセス禁止信号を出力する。
【0041】
プログラム領域監視回路30Aは、図2に示す第1実施形態のプログラム領域監視回路30において、n個のAND回路311〜31nと、NOR回路33と、セレクタ35とを新たに設けた構成となっている。AND回路31i(i=1,・・・,n)は、アクセス禁止設定レジスタ20Aを構成するフリップフロップ回路27iの出力である、ブロックBLiを禁止設定するブロックBLi禁止設定信号と、メモリアクセス禁止信号生成回路40Aを構成するAND回路46iの出力であるブロックBLiを選択するブロックBLi選択信号とのAND演算を行い、NOR回路33に送出する。NOR回路33は、n個のAND回路311〜31nの出力に基づいてNOR演算を行い、セレクタ35に送出する。セレクタ35は、OR回路70の出力に基づいて、NOR回路33の出力と比較回路34の出力の一方出力を選択してフリップフロップ回路36に送出する。すなわち、OR回路70の出力が「1」の場合はNOR回路33の出力を選択し、OR回路70の出力が「0」の場合は比較回路34の出力を選択する。
【0042】
このように構成されたプログラム領域監視回路30Aの動作を以下に説明する。ブロックアクセス禁止設定が0個の場合、セレクタ35は比較回路34の出力を選択する。この場合、プログラム領域監視回路30Aの監視判定は、実行プログラムが、内蔵メモリ12の領域内で実行しているか、内蔵メモリ12の領域外で実行しているかの判定となる。この場合、監視結果=0(実行プログラムが内蔵メモリ領域内)のとき、アクセス禁止設定レジスタ20Aの設定が可能となります。
【0043】
これに対して、ブロックアクセス禁止設定が1個以上設定された場合、セレクタ35はNOR回路33の出力を選択する。この場合、プログラム領域監視回路30Aの監視判定は、実行プログラムが、アクセス禁止ブロック領域内で実行しているか、アクセス禁止ブロック領域外で実行しているかの判定となる。そして、監視結果=0(実行プログラムが、アクセス禁止ブロック領域内)の場合、内蔵メモリアクセス禁止信号は「0」になり、内蔵メモリは、アクセス禁止ブロックも、アクセス可能ブロックも読み出すことができる。監視結果=1(実行プログラムが、アクセス禁止ブロック領域外)の場合、アクセス禁止ブロック領域外から、アクセス禁止ブロック領域内をアクセスした場合、内蔵メモリアクセス禁止信号は「1」になり、アクセス禁止ブロック内のデータを読み出すことができない。アクセス禁止ブロック領域外から、アクセス禁止ブロック領域外をアクセスした場合は、内蔵メモリアクセス禁止信号は「0」になり、アクセス禁止ブロック外のデータを読み出すことができる。したがって、このように構成することにより、一度アクセス禁止設定レジスタを設定した場合は、リセットするまでアクセス禁止設定レジスタをNOR回路72によって再度変更できない。
【0044】
以上述べたことにより、本実施形態によるメモリ制御回路によれば、ブロック単位でアクセスの禁止設定を行うことが可能となり、第三者によって外部ROM等のメモリが書き換えられたとしても内蔵メモリの記憶している内容を外部へ読み出すことを禁止できるとともに、メモリの書き換え時間や書き換え回数の制限無く使用することができる。また、一旦、内蔵メモリ12のあるブロックがアクセス禁止に設定されると、リセット信号によってメモリ制御回路がリセットされない限りアクセス禁止ブロックの書き換えはできない。
【0045】
(第2実施形態の変形例)
なお、上記第2実施形態においては、一度、アクセス禁止に設定されると、リセット信号によってメモリ制御回路がリセットされない限りアクセス禁止ブロックの書き換えは不可能であったが、これを可能にするメモリ制御回路を第2実施形態の変形例として図12を参照して説明する。
【0046】
この変形例によるメモリ制御回路は、図12に示すように、図11に示す第2実施形態のメモリ制御回路において、NOR回路72をインバータ回路73に置き換えた構成となっている。インバータ回路73はプログラム領域監視回路30Aの出力を反転してアクセス禁止設定レジスタ20AのAND回路25に送出する。
【0047】
このように構成された本変形例によれば、プログラム領域監視回路30Aによってアクセス禁止ブロック内と判断されたブロックからのアクセスならば、アクセス禁止設定レジスタ20Aの書き換え(例えば、アクセス禁止設定レジスタの追加設定や、アクセス禁止解除の設定)を可能にする。なお、第2実施形態の場合と同様に、リセット信号によってメモリ制御回路がリセットされた場合はアクセス禁止ブロックの書き換えは可能である。
【0048】
また、この変形例のメモリ制御回路は、第2実施形態と同様に、ブロック単位でアクセスの禁止設定を行うことが可能となり、第三者によって外部ROM等のメモリが書き換えられたとしても内蔵メモリの記憶している内容を外部へ読み出すことを禁止できるとともに、メモリの書き換え時間や書き換え回数の制限無く使用することができる。
【0049】
(第3実施形態)
次に、本発明の第3実施形態によるメモリ制御回路を、図13乃至図14を参照して説明する。図13は、本実施形態によるメモリ制御回路の機能の概要を説明する図であり、図14は、本実施形態によるメモリ制御回路の構成を示すブロック図である。この実施形態によるメモリ制御回路は、内蔵メモリ12内の任意の領域をアクセス禁止に設定可能となるようにしたものである。
【0050】
この実施形態によるメモリ制御回路は、図1に示す第1実施形態によるメモリ制御回路において、内蔵メモリ12a、12bを内蔵メモリ12に置き換えるとともに、プログラム領域監視回路30をプログラム領域監視回路30Bに置き換え、さらにアクセス禁止領域設定回路60と、インバータ回路74を新たに設けた構成となっている。
【0051】
インバータ回路74は、プログラム領域監視回路30Bの出力を反転し、アクセス禁止設定レジスタ20に送出するとともにアクセス禁止領域設定回路60に送出する。
【0052】
アクセス禁止領域設定回路60は、AND回路62と、レジスタ63と、AND回路64と、レジスタ65と、デコード回路67とを備えている。AND回路62は、レジスタ63を選択する信号CS1と、CPU11からの書き込み信号WRと、インバータ回路74の出力に基づいてAND演算を行い、演算結果をレジスタ63に送出する。レジスタ63は、内蔵メモリ12内のアクセス禁止領域の先頭アドレスを記憶する。AND回路64は、レジスタ65を選択する信号CS2と、CPU11からの書き込み信号WRと、インバータ回路74の出力に基づいてAND演算を行い、演算結果をレジスタ65に送出する。レジスタ65は、内蔵メモリ12内のアクセス禁止領域の終了アドレスを記憶する。デコード回路67は、CPU11からの現在実行されているプログラムのアドレスをデコードし、デコードされたアドレスが、レジスタ63に記憶された、内蔵メモリ12内のアクセス禁止領域の先頭アドレスと、レジスタ65に記憶された、内蔵メモリ12内のアクセス禁止領域の終了アドレスとからなる領域にあるときのみ、「1」レベルのアクセス禁止領域信号を出力する。それ以外のときは「0」レベルのアクセス禁止領域信号を出力する。
【0053】
アクセス禁止信号生成回路40のAND回路42は、デコード回路67の出力と、プログラム領域監視回路30の出力と、アクセス禁止設定レジスタ20の出力とに基づいて、AND演算を行い、内蔵メモリアクセス禁止信号を出力する。
【0054】
プログラム領域監視回路30Bは、図2に示す第1実施形態のプログラム領域監視回路30において、インバータ回路35aと、セレクタ35bとを新たに設けた構成となっている。インバータ回路35aは、デコード回路67の出力であるアクセス禁止領域信号を反転し、セレクタ35bに送出する。セレクタ35bは、アクセス禁止設定レジスタ20の出力であるアクセス禁止設定信号の値に応じてインバータ回路35aの出力と比較回路34の出力の一方を選択し、選択結果をフリップフロップ回路36に送出する。例えば、本実施形態においては、アクセス禁止設定信号の値が「1」の場合にはインバータ回路35aの出力を選択し、アクセス禁止設定信号の値が「0」の場合には比較回路35bの出力を選択する。
【0055】
このように構成されたプログラム領域監視回路30Bの動作を以下に説明する。
【0056】
アクセス禁止設定信号の値が「0」の場合、セレクタ35bは比較回路34の出力を選択する。この場合、プログラム領域監視回路30Bの監視判定は、実行プログラムが、内蔵メモリ12の領域内で実行しているか、内蔵メモリ12の領域外で実行しているかの判定となる。この場合、監視結果=0(実行プログラムが内蔵メモリ領域内)のとき、アクセス禁止設定レジスタ20、アクセス禁止開始アドレス設定レジスタ63、アクセス禁止終了アドレス設定レジスタ65の設定が可能となる。
【0057】
これに対して、アクセス禁止設定信号の値が「1」の場合、セレクタ35bは、インバータ回路35aの出力を選択する。この場合、プログラム領域監視回路30Bの監視判定は、実行プログラムが、アクセス禁止領域内で実行しているか、アクセス禁止領域外で実行しているかの判定となる。監視結果=0(実行プログラムが、アクセス禁止領域内)の場合、内蔵メモリアクセス禁止信号の値は「0」になり、内蔵メモリ12は、アクセス禁止領域内も、アクセス禁止領域外も読み出すことができる。監視結果=1(実行プログラムが、アクセス禁止領域外)の場合、アクセス禁止領域外から、アクセス禁止領域内をアクセスした場合、内蔵メモリアクセス禁止信号の値は「1」になり、アクセス禁領域内のデータを読み出すことができない。アクセス禁止領域外から、アクセス禁止領域外をアクセスした場合は、内蔵メモリアクセス禁止信号の値は「0」になり、アクセス禁止領域外のデータを読み出すことができる。
【0058】
本実施形態の場合、アクセス禁止設定レジスタ、アクセス禁止領域開始アドレス設定レジスタ、アクセス禁止領域終了アドレス設定レジスタは、一度設定した後、リセット実行だけでなく、内蔵メモリのアクセス禁止領域内からは、変更(つまりは、アクセス禁止領域の変更や、設定の解除等を)行うことが可能となる。
【0059】
このように構成された本実施形態のメモリ制御回路によれば、内蔵メモリ内の任意領域をアクセス禁止とすることが可能となり、第三者によって外部ROM等のメモリが書き換えられたとしても内蔵メモリの記憶している内容を外部へ読み出すことを禁止できるとともに、メモリの書き換え時間や書き換え回数の制限無く使用することができる。
【0060】
(第4実施形態)
次に、本発明の第4実施形態によるメモリ制御回路の構成を図15に示す。この実施形態によるメモリ制御回路は、図14に示す第3実施形態によるメモリ制御回路において、インバータ回路74をNOR回路76に置き換えた構成となっている。NOR回路76は、アクセス禁止設定レジスタ20の出力と、プログラム領域監視回路30の出力とに基づいて、NOR演算を行い、演算結果をアクセス禁止設定レジスタ20と、アクセス禁止領域設定回路60のAND回路62、64に送出する。一旦、内蔵メモリ12のある領域がアクセス禁止に設定されると、NOR回路76によって、アクセス禁止領域の書き換えを行うことができなくなる。すなわち、アクセス禁止設定レジスタ20、アクセス禁止開始アドレスを設定するレジスタ63、およびアクセス禁止終了アドレスを設定するレジスタ65は一度設定したら、書き換えを行うことはできない。しかし、リセット信号によってメモリ制御回路がリセットされた場合はアクセス禁止領域の書き換えを行うことができる。
【0061】
以上説明したように、本実施形態によれば、内蔵メモリ内の任意領域をアクセス禁止とすることが可能となり、第三者によって外部ROM等のメモリが書き換えられたとしても内蔵メモリの記憶している内容を外部へ読み出すことを禁止できるとともに、メモリの書き換え時間や書き換え回数の制限無く使用することができる。
【0062】
【発明の効果】
以上、述べたように、本発明によれば、第三者によって外部ROM等のメモリが書き換えられたとしても内蔵メモリの記憶している内容を外部へ読み出すことを禁止できるとともに、メモリの書き換え時間や書き換え回数の制限無く使用することができる。
【図面の簡単な説明】
【図1】本発明の第1実施形態によるメモリ制御回路の構成を示すブロック図。
【図2】第1実施形態に係るアクセス禁止設定レジスタおよびプログラム領域監視回路の具体例を示す回路図。
【図3】第1実施形態の変形例を示す回路図。
【図4】第1実施形態に係るメモリアクセス制御回路の一具体例の構成を示す回路図。
【図5】第1実施形態に係るメモリアクセス制御回路の他の具体例の構成を示す回路図。
【図6】第1実施形態によるメモリ制御回路の動作を説明する図。
【図7】第1実施形態によるメモリ制御回路の動作を説明する図。
【図8】第1実施形態によるメモリ制御回路の動作を説明する図。
【図9】第1実施形態によるメモリ制御回路の動作を説明する図。
【図10】本発明の第2実施形態によるメモリ制御回路の特性を説明する図。
【図11】本発明の第2実施形態によるメモリ制御回路の構成を示す回路図。
【図12】第2実施形態の変形例によるメモリ制御回路の構成を示す回路図。
【図13】本発明の第3実施形態によるメモリ制御回路の特性を説明する図。
【図14】本発明の第3実施形態によるメモリ制御回路の構成を示す回路図。
【図15】本発明の第4実施形態によるメモリ制御回路の構成を示す回路図。
【符号の説明】
1 メモリ制御回路
11 CPU
12 内蔵メモリ
12a 内蔵メモリ
12b 内蔵メモリ
15 内蔵メモリ制御回路
20 アクセス禁止設定レジスタ
30 プログラム領域監視回路
40 メモリアクセス禁止信号生成回路
50 メモリアクセス制御回路
100 外部メモリ
Claims (7)
- CPUと、
このCPUが実行するためのプログラムを含む情報を記憶するメモリと、
前記CPUが実行しているプログラムによってアクセスされる領域を監視するプログラム領域監視回路と、
前記メモリに外部からのアクセスを禁止するアクセス禁止設定情報を記憶するアクセス禁止設定レジスタと、
前記プログラム領域監視回路の監視結果および前記アクセス禁止設定レジスタに記憶されたアクセス禁止設定情報に基づいて前記メモリへのアクセスを禁止するメモリアクセス禁止信号を発生するメモリアクセス禁止信号発生回路と、
前記メモリアクセス禁止信号に基づいて、前記メモリに記憶された前記情報が前記メモリから前記外部へ読み出されるのを制御するメモリアクセス制御回路と、
を備えたことを特徴とするメモリ制御回路。 - 前記プログラム領域監視回路は、前記CPUに含まれていることを特徴とする請求項1記載のメモリ制御回路。
- 前記メモリアクセス制御回路は、前記メモリへのアクセスが禁止されている場合に、前記外部から前記メモリにアクセスが行われたとき、所定のコード情報を前記外部に与えることを特徴とする請求項1または2記載のメモリ制御回路。
- 前記メモリが複数のブロックから構成されているときに、前記アクセス禁止設定レジスタは、前記ブロック単位でアクセス禁止の設定が可能であることを特徴とする請求項1乃至3のいずれかに記載のメモリ制御回路。
- 前記複数のブロックのうちアクセスが禁止されたブロックが存在する場合には前記アクセス禁止設定レジスタは、リセットされない限り、アクセスが禁止されるブロックの書き換えを行うことができないことを特徴とする請求項4記載のメモリ制御回路。
- 前記メモリ内へのアクセスが禁止された領域のアドレスを記憶するレジスタを有するアクセス禁止領域設定回路を更に備えていることを特徴とする請求項1乃至3のいずれかに記載のメモリ制御回路。
- 前記アクセス禁止領域設定回路の前記レジスタに記憶された、前記アクセスが禁止された領域のアドレスは、リセットされない限り書き換え不能であることを特徴とする請求項6記載のメモリ制御回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003152969A JP2004355383A (ja) | 2003-05-29 | 2003-05-29 | メモリ制御回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003152969A JP2004355383A (ja) | 2003-05-29 | 2003-05-29 | メモリ制御回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004355383A true JP2004355383A (ja) | 2004-12-16 |
Family
ID=34048059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003152969A Pending JP2004355383A (ja) | 2003-05-29 | 2003-05-29 | メモリ制御回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004355383A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007287103A (ja) * | 2006-04-20 | 2007-11-01 | Nec Electronics Corp | マイクロコンピュータ及びメモリアクセスの制御方法 |
JP2011222055A (ja) * | 2011-08-12 | 2011-11-04 | Renesas Electronics Corp | マイクロコンピュータ及びメモリアクセスの制御方法 |
US9092373B2 (en) | 2006-01-16 | 2015-07-28 | Lapis Semiconductor Co., Ltd. | Microcomputer with bootable flash memory |
-
2003
- 2003-05-29 JP JP2003152969A patent/JP2004355383A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9092373B2 (en) | 2006-01-16 | 2015-07-28 | Lapis Semiconductor Co., Ltd. | Microcomputer with bootable flash memory |
JP2007287103A (ja) * | 2006-04-20 | 2007-11-01 | Nec Electronics Corp | マイクロコンピュータ及びメモリアクセスの制御方法 |
US8312238B2 (en) | 2006-04-20 | 2012-11-13 | Renesas Electronics Corporation | Microcomputer and method for controlling memory access |
US9003148B2 (en) | 2006-04-20 | 2015-04-07 | Renesas Electronics Corporation | Microcomputer and method for controlling memory access |
US9262341B2 (en) | 2006-04-20 | 2016-02-16 | Renesas Electronics Corporation | Microcomputer and method for controlling memory access |
US9904631B2 (en) | 2006-04-20 | 2018-02-27 | Renesas Electronics Corporation | Microcomputer and method for controlling memory access |
JP2011222055A (ja) * | 2011-08-12 | 2011-11-04 | Renesas Electronics Corp | マイクロコンピュータ及びメモリアクセスの制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3710671B2 (ja) | 1チップマイクロコンピュータ及びそれを用いたicカード、並びに1チップマイクロコンピュータのアクセス制御方法 | |
JP6306578B2 (ja) | メモリ保護装置及び保護方法 | |
JP4584044B2 (ja) | 半導体装置 | |
JP4939387B2 (ja) | データ処理装置及びアドレス空間保護方法 | |
JPH10228421A (ja) | メモリアクセス制御回路 | |
JP2007323149A (ja) | メモリデータ保護装置及びicカード用lsi | |
JP2006350885A5 (ja) | ||
JP2004240536A (ja) | 情報処理装置 | |
JPH11272828A (ja) | 集積回路を有するチップカ―ド | |
JPWO2006040798A1 (ja) | 半導体集積回路装置および電子システム | |
JP2004355383A (ja) | メモリ制御回路 | |
JP2001075941A (ja) | フラッシュメモリ内蔵マイクロコンピュータおよびその動作方法 | |
JP2004287541A (ja) | 不揮発性メモリのアクセス制御システム | |
JP4828996B2 (ja) | 情報処理装置及びそれを用いたセキュリティ解除プログラムの不正実行禁止方法 | |
JP4865064B2 (ja) | 半導体装置 | |
JP3882628B2 (ja) | メモリ制御装置及びシリアルメモリ | |
JP2011150457A (ja) | 情報処理装置およびメモリアクセス制御方法 | |
US20100312978A1 (en) | Computer system, information protection method, and program | |
JP2008203988A (ja) | セキュリティ保護機能付きマイクロコンピュータ | |
JP2005107608A (ja) | 電子機器、不揮発性メモリ及び不揮発性メモリのデータ書き換え方法 | |
JPH0475137A (ja) | データ処理装置 | |
JP5765311B2 (ja) | マイコン | |
JP2005157740A (ja) | マイクロコンピュータ | |
JP2007188383A (ja) | マイクロコンピュータ | |
JP3695931B2 (ja) | マイクロコンピュータ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051109 |
|
A521 | Written amendment |
Effective date: 20081016 Free format text: JAPANESE INTERMEDIATE CODE: A523 |
|
A711 | Notification of change in applicant |
Effective date: 20090209 Free format text: JAPANESE INTERMEDIATE CODE: A712 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090417 |
|
A02 | Decision of refusal |
Effective date: 20090904 Free format text: JAPANESE INTERMEDIATE CODE: A02 |