(57)【要約】【課題】簡易な回路構成で強力なリードプロテクトが可能なマイクロコンピュータ、電子機器及びマイクロコンピュータ内蔵のフラッシュメモリのプロテクト方式を提供すること。【解決手段】本マイクロコンピュータ１０は、フラッシュメモリ２０と、フラッシュメモリに対するアクセスを制御するフラッシュコントローラ３０とを含み、フラッシュメモリは、フラッシュメモリの所与の領域に対するアクセスの可否を指定するプロテクト情報が格納されたプロテクト情報記憶部２２を含み、フラッシュコントローラ３０は、前記プロテクト情報に基づき、フラッシュメモリの所与の領域に対するアクセスのプロテクト処理を行うフラッシュプロテクト処理部５０、６０を含み、アクセス対象がデータである場合に、フラッシュメモリに対するアクセスのプロテクト処理を行う。【選択図】  図１
2008262294.tif 000002
【特許請求の範囲】
【請求項１】
マイクロコンピュータであって、
フラッシュメモリと
フラッシュメモリに対するアクセスを制御するフラッシュコントローラとを含み、
前記フラッシュメモリは、
フラッシュメモリの所与の領域に対するアクセスの可否を指定するプロテクト情報が格納されたプロテクト情報記憶部を含み、
前記フラッシュコントローラは、
前記プロテクト情報に基づき、フラッシュメモリの所与の領域に対するアクセスのプロテクト処理を行うフラッシュプロテクト処理部を含み、
フラッシュプロテクト処理部は、
アクセス対象がデータである場合に、フラッシュメモリに対するアクセスのプロテクト処理を行うことを特徴とするマイクロコンピュータ。
【請求項２】
請求項１において、
前記プロテクト情報記憶部には、フラッシュメモリに設定された複数のエリアの各エリアに対してにリード及びライトの少なくとも１つのプロテクトの有無を指定するプロテクト有無情報が記憶され、
前記フラッシュプロテクト処理部は
アクセス要求にかかるアドレスの属するエリアのプロテクト有無情報に基づき、前記プロテクト処理を行うことを特徴とするマイクロコンピュータ。
【請求項３】
請求項１乃至２のいずれかにおいて、
ブート時にフラッシュメモリのプロテクト情報記憶部の内容を読み出して、プロテクトビットレジスタに格納する初期化処理部を含み、
前記フラッシュプロテクト処理部は
前記プロテクトビットレジスタのプロテクト情報を参照して、前記プロテクト処理を行うことを特徴とするマイクロコンピュータ。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記フラッシュプロテクト処理部は
フラッシュメモリに対するアクセス要求がリード要求である場合のみ前記プロテクト処理を行うことを特徴とするマイクロコンピュータ。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記フラッシュプロテクト処理部は、
ＣＰＵの処理モードがデバッグモードである場合に、前期プロテクト処理を行うことを特徴とするマイクロコンピュータ。
【請求項６】
請求項５において、
前記フラッシュプロテクト処理部は、
前記フラッシュメモリに対するアクセス要求が所定のブロック単位の消去要求コマンドである場合には、当該コマンドの実行を禁止する処理を行うことを特徴とするマイクロコンピュータ。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記フラッシュプロテクト処理部は、
前記フラッシュメモリに対するアクセス要求が、フラッシュメモリの全消去要求コマンドである場合には、前記プロテクト処理を行わないことを特徴とするマイクロコンピュータ。
【請求項８】
請求項１乃至８のいずれかにおいて、
前記フラッシュメモリは、
予め所定のブロック単位で消去してから書き込み可能に構成されており、
前記フラッシュプロテクト処理部は、
前記フラッシュメモリのプロテクト情報記憶部の値が消去時のメモリセルの初期値と異なる場合にプロテクト処理を行うように構成されていることを特徴とするマイクロコンピュータ。
【請求項９】
請求項１乃至８のいずれかにおいて、
データバスと命令バスを含む複数のバスに接続され、前記フラッシュメモリに対して複数のバスが競合状態のとき調停してこれらのいずれかのバスに使用許可を与える処理を行うアービターをさらに含み、
前記アービターは使用許可を与えたバスがデータバスであるのか命令バスであるのかを特定するバス特定情報を生成してフラッシュプロテクト処理部にたいして通知し、
前記フラッシュプロテクト処理部は
前記バス特定情報に基づきアクセス対象がデータか否か判断することを特徴とするマイクロコンピュータ。
【請求項１０】
請求項１乃至９のいずれかに記載のマイクロコンピュータと、
入力情報を受け付ける手段と、
入力情報に基づき前記情報処理装置により処理された結果を出力するため手段と、
を含むことを特徴とする電子機器。
【請求項１１】
マイクロコンピュータに内蔵されたフラッシュメモリのプロテクト方式であって、
前記フラッシュメモリに、フラッシュメモリの所与の領域に対するアクセスの可否を指定するプロテクト情報が格納されたプロテクト情報記憶部を設け、
前記プロテクト情報に基づき、フラッシュメモリの所与の領域に対するアクセスのプロテクト処理を行う際に、アクセス対象がデータである場合に、フラッシュメモリに対するアクセスのプロテクト処理を行うことを特徴とするフラッシュメモリのプロテクト方式。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータ、電子機器及びマイクロコンピュータ内蔵のフラッシュメモリのプロテクト方式に関する。
【背景技術】
【０００２】
フラッシュメモリ内蔵マイコンではフラッシュライタ側でプロテクトをコントロールする手法が知られているがフラッシュ内蔵マイクロコンピュータ自体にはプロテクト機能がないものが多い。
【特許文献１】特開昭５９−５４９６号
【特許文献２】特開昭２００２−２６９０６５号
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来技術ではプロテクト解除キーが必要であったり、プロテクト回路が複雑であったり、セキュリティーホールがあったりして、フラッシュメモリ全体のリードプロテクトを容易におこなうことはできなかった。
【０００４】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、簡易な回路構成で強力なリードプロテクトが可能なマイクロコンピュータ、電子機器及びマイクロコンピュータ内蔵のフラッシュメモリのプロテクト方式を提供することである。
【課題を解決するための手段】
【０００５】
（１）本発明は、
マイクロコンピュータであって、
フラッシュメモリと
フラッシュメモリに対するアクセスを制御するフラッシュコントローラとを含み、
前記フラッシュメモリは、
フラッシュメモリの所与の領域に対するアクセスの可否を指定するプロテクト情報が格納されたプロテクト情報記憶部を含み、
前記フラッシュコントローラは、
前記プロテクト情報に基づき、フラッシュメモリの所与の領域に対するアクセスのプロテクト処理を行うフラッシュプロテクト処理部を含み、
フラッシュプロテクト処理部は、
アクセス対象がデータである場合に、フラッシュメモリに対するアクセスのプロテクト処理を行うことを特徴とする。
フラッシュメモリ  (flash memory)は、書き換え可能（データの消去・書き込みを行なうことができる）で、電源を切っても内容が消えない不揮発性半導体メモリであり、フラッシュEEPROMまたはフラッシュROMとも言う。
【０００６】
アクセス対象がデータで有るか否かはＣＰＵやアービター（ハーバードアーキテクチャの場合）からの情報により判断するようにしてもよい。
【０００７】
フラッシュメモリを複数のエリアに分割し、エリア単位にプロテクトの有無、ライトプロテクトの有無、リードプロテクトの有無等のプロテクト情報を設定してもよい。
【０００８】
アクセスのプロテクト処理には、ライトプロテクト処理及びリードプロテクト処理の少なくとも１つを行う。リードプロテクト処理は、ＣＰＵへ返すリードデータを所定の値（例えば0x0000）に摩り替えることにより実現してもよい。ライトプロテクト処理は、例えばライトアドレスを所定のアドレス（例えばプロテクトビットが格納されているアドレス）に変換し、ライトデータを所定の値（例えばプロテクトビットの内容）に変換するといったように，アドレスとデータの内容を別のものに摩り替えることにより実現してもよい。
【０００９】
本発明によればフラッシュメモリ全体にリードプロテクトをかけることも可能であるし、一部にリードプロテクトをかけることも可能である。
【００１０】
フラッシュプロテクト処理部は、アクセス対象が命令である場合には、フラッシュメモリに対するアクセスのプロテクト処理を行わないようにしてもよい。例えばＣＰＵが命令リードでアクセスしてきた場合は、プロテクト対象アドレスであってもプロテクトは行なわないようにしてもよい。このようにするとプログラムとして実行できるが、プログラムがデータとして読み出されることを防ぐことができる。
（２）本発明のマイクロコンピュータは、
前記プロテクト情報記憶部には、フラッシュメモリに設定された複数のエリアの各エリアに対してにリード及びライトの少なくとも１つのプロテクトの有無を指定するプロテクト有無情報が記憶され、
前記フラッシュプロテクト処理部は
アクセス要求にかかるアドレスの属するエリアのプロテクト有無情報に基づき、前記プロテクト処理を行うことを特徴とする。
【００１１】
複数のエリアは、フラッシュメモリを分割して重複しないように割り当てられていてもよいし、重複して設定されていてもよい。また同じ大きさ及び形状にエリアとして設定されていてもよいし、大きさや形状の異なる領域として設定されていても良い。
【００１２】
プロテクト有無情報は、例えば各エリア毎に各１ビットのプロテクトビットをもうけてもよいし、エリアとリード／ライトの別毎に１ビットのプロテクトビットをもうけてもよい。
【００１３】
本発明によればエリア単位にプロテクトの有無を制御することができる。
（３）本発明のマイクロコンピュータは、
ブート時にフラッシュメモリのプロテクト情報記憶部の内容を読み出して、プロテクトビットレジスタに格納する初期化処理部を含み、
前記フラッシュプロテクト処理部は
前記プロテクトビットレジスタのプロテクト情報を参照して、前記プロテクト処理を行うことを特徴とする。
【００１４】
プロテクトビットレジスタは、フラッシュプロテクト処理部に専用のレジスタを設けてもよいし、汎用レジスタを利用してもよい。例えばフリップフロップ（ＦＦ）の内部レジスタで構成してもよい。本発明によれば、ブート時（電源投入時）にプロテクト情報の内容を内部レジスタにコピーして、以降はその内部レジスタを参照して処理を行うので、フラッシュメモリを参照する場合に比べ処理を簡略化及び高速化することができる。
（４）本発明のマイクロコンピュータは、
前記フラッシュプロテクト処理部は
フラッシュメモリに対するアクセス要求がリード要求である場合のみ前記プロテクト処理を行うことを特徴とする。
【００１５】
本発明によれば、フラッシュメモリの内容が外部から読み取られないようにプロテクトすることができる。
（５）本発明のマイクロコンピュータは、
前記フラッシュプロテクト処理部は、
ＣＰＵの処理モードがデバッグモードである場合に、前期プロテクト処理を行うことを特徴とする。
【００１６】
前記フラッシュプロテクト処理部は、
ＣＰＵからモード情報を受け取りＣＰＵの処理モードがデバッグモードであるか、通常モードであるか判断してもよい。
【００１７】
ここでデバッグモードとはＣＰＵの状態がデバッグ状態である場合であり、ユーザーモードやｒｕｎ中以外の状態を意味し、デバッグ状態を例えばブレークモードやテストモードという名称で呼ばれる場合にはかかる場合も含む。
【００１８】
一般にデバッグモードの場合には、予め予定しているユーザープログラム以外のプログラムが動作したり、バグがあるプログラムが動作したりしてフラッシュメモリの内部の情報が読み取られたり、間違って消去されたりする恐れがあるが、本発明によればデバッグモードの場合にプロテクト処理を行うことによりかかる事態を防止することができる。
（６）本発明のマイクロコンピュータは、
前記フラッシュプロテクト処理部は、
前記フラッシュメモリに対するアクセス要求が所定のブロック単位の消去要求コマンドである場合には、当該コマンドの実行を禁止する処理を行うことを特徴とする。
【００１９】
消去要求は記憶されているデータを破壊して読み出し不能にするための要求でイレース要求ともいう。所定のブロックとは例えばセクタでもよい。所定のブロック単位の消去要求コマンドとは、例えばセクタイレースコマンド等である。プロテクト情報が示すプロテクトの有無にかかわらずプロテクトしてもよいし、当該セクタに対してプロテクトビットが設定されている場合のみプロテクトしてもよい。
【００２０】
当該コマンドの実行を禁止する処理は、例えばフラッシュメモリへのデータ信号の値を摩り替えて無効なコマンドに変えてしまうことで実現してもよい。
【００２１】
本発明によればデバッグ時にセクタイレースが行われて、プロテクトビットを含むセクタだけがイレースされて（プロテクトが解除される）、イレースされていない他のセクタの情報が読み出されることを防止することができる。
（７）本発明のマイクロコンピュータは、
前記フラッシュプロテクト処理部は、
前記フラッシュメモリに対するアクセス要求が、フラッシュメモリの全消去要求コマンドである場合には、前記プロテクト処理を行わないことを特徴とする。
【００２２】
全消去要求コマンドとはフラッシュメモリ全体のデータを破壊して読み出し不能にするための要求で、イレース要求ともいう。チップ消去の場合には、チップ消去時に保護すべき情報もすべて消去されるため、プロテクトビットが解除されて内部情報が読み出される危険性がない。従ってフラッシュメモリの全消去要求コマンドを可能にしてユーザーの使い勝手のよいマイククロコンピュータを提供することができる。
（８）本発明のマイクロコンピュータは、
前記フラッシュメモリは、
予め所定のブロック単位で消去してから書き込み可能に構成されており、
前記フラッシュプロテクト処理部は、
前記フラッシュメモリのプロテクト情報記憶部の値が消去時のメモリセルの初期値と異なる場合にプロテクト処理を行うように構成されていることを特徴とする。
【００２３】
例えばフラッシュメモリがEEPROMの一種であるが、従来のEEPROMと違って1バイト単位の書き換えは出来ず、あらかじめブロック単位で消去してから書き込みを行うものである場合や、NAND型の場合（高集積化に向いていて、書き込みが高速な利点があるが、1バイト単位の書き込みはできない）、フラッシュメモリは初期値が第１の値（例えば１）であるとすると、一旦第２の値（例えば０）を書き込むと、イレースしない限り、当該セルの値を第１の値にすることができない構成となっている。
【００２４】
従って第２の値（例えば０）をプロテクト有りを示すビットに設定すると、上書きして書き換えられる恐れがないので、プロテクトありの指定を外部から解除できない構成とすることができる。
【００２５】
このように本発明によれば、外部からのプロテクト指定の解除が困難なセキュリティ度の高いマイクロコンピュータを提供することができる。
（９）本発明のマイクロコンピュータは、
データバスと命令バスを含む複数のバスに接続され、前記フラッシュメモリに対して複数のバスが競合状態のとき調停してこれらのいずれかのバスに使用許可を与える処理を行うアービターをさらに含み、
前記アービターは使用許可を与えたバスがデータバスであるのか命令バスであるのかを特定するバス特定情報を生成してフラッシュプロテクト処理部にたいして通知し、
前記フラッシュプロテクト処理部は
前記バス特定情報に基づきアクセス対象がデータか否か判断することを特徴とする。
（１０）本発明は、
上記のいずれかに記載のマイクロコンピュータと、
入力情報を受け付ける手段と、
入力情報に基づき前記情報処理装置により処理された結果を出力するため手段と、
を含むことを特徴とする電子機器である。
（１１）本発明は、
マイクロコンピュータに内蔵されたフラッシュメモリのプロテクト方式であって、
前記フラッシュメモリに、フラッシュメモリの所与の領域に対するアクセスの可否を指定するプロテクト情報が格納されたプロテクト情報記憶部を設け、
前記プロテクト情報に基づき、フラッシュメモリの所与の領域に対するアクセスのプロテクト処理を行う際に、アクセス対象がデータである場合に、フラッシュメモリに対するアクセスのプロテクト処理を行うことを特徴とする。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の好適な実施の形態について図面を用いて詳細に説明する。なお以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
【００２７】
１．マイクロコンピュータ
図１は、本実施の形態のマイクロコンピュータの構成について説明するための図である。
【００２８】
本実施の形態のマイクロコンピュータ１０は、フラッシュメモリ２０を含む。フラッシュメモリ２０は、フラッシュメモリの所与の領域に対するアクセスの可否を指定するプロテクト情報が格納されたプロテクト情報記憶部２２を含む。
【００２９】
本実施の形態のマイクロコンピュータ１０は、フラッシュメモリ２０に対するアクセスを制御するフラッシュコントローラ３０を含む。フラッシュコントローラ３０は、フラッシュプロテクト制御部６０、アドレス／データ変換部５０、フラッシュアクセスタイミング生成部４０、選択部７０を含む。フラッシュプロテクト制御部６０とアドレス／データ変換部５０は、プロテクト情報に基づき、フラッシュメモリ２０の所与の領域に対するアクセスのプロテクト処理を行うフラッシュプロテクト処理部３２として機能し、アクセス対象がデータである場合に、フラッシュメモリに対するアクセスのプロテクト処理を行う。
【００３０】
プロテクト情報記憶部２２には、フラッシュメモリ２０に設定された複数のエリアの各エリアに対してにリード及びライトの少なくとも１つのプロテクトの有無を指定するプロテクト有無情報が記憶され、フラッシュコントローラ３０は、アクセス要求にかかるアドレスの属するエリアのプロテクト有無情報に基づき、前記プロテクト処理を行うようにしてもよい。
【００３１】
図示しないマイクロコンピュータのＣＰＵまたはプロテクト情報記憶部２２は、ブート時にフラッシュメモリ２０のプロテクト情報記憶部の内容を読み出して、プロテクトビットレジスタ６２に格納する初期化処理部として機能するようにしてもよい。
【００３２】
フラッシュプロテクト処理部３２は、プロテクトビットレジスタ６２のプロテクト情報を参照して、前記プロテクト処理を行うようにしてもよい。
【００３３】
またフラッシュプロテクト処理部３２は、フラッシュメモリ２０に対するアクセス要求がリード要求である場合のみ前記プロテクト処理を行うようにしてもよい。
【００３４】
またフラッシュプロテクト処理部３２は、ＣＰＵの処理モードがデバッグモードである場合に、前期プロテクト処理を行うようにしてもよい。
【００３５】
またフラッシュプロテクト処理部３２は、フラッシュメモリ２０に対するアクセス要求が所定のブロック単位の消去要求コマンドである場合には、当該コマンドの実行を禁止する処理を行うようにしてもよい。
【００３６】
またフラッシュプロテクト処理部３２は、前記フラッシュメモリに対するアクセス要求が、フラッシュメモリの全消去要求コマンドである場合には、前記プロテクト処理を行わないようにしてもよい。
【００３７】
フラッシュメモリ２０は、予め所定のブロック単位で消去してから書き込み可能に構成されており、フラッシュプロテクト処理部３２は、フラッシュメモリ２０のプロテクト情報記憶部２２の値が消去時のメモリセルの初期値と異なる場合に、プロテクト処理を行うように構成してもよい。
【００３８】
フラッシュアクセスタイミング生成部４０は、ライトリクエスト信号４１、リードリクエスト信号４２、アドレス４３、ライトデータ４４を受け取り、ライトリクエスト信号４１やリードリクエスト信号４２に基づきチップイネーブル４６やライトイネーブル４７を生成し、生成したチップイネーブル４６やライトイネーブル４７、アドレス４３、ライトデータ４４をフラッシュメモリのアクセスタイミングに合わせて出力する。またフラッシュメモリ２０から読み出されたリードデータ２２を、所定のタイミングで出力する制御を行う。
【００３９】
フラッシュプロテクト制御部６０は、アクセス対象が命令なのかデータなのかを示す命令／データ種別６４、動作モード情報６５、フラッシュアクセスタイミング生成部４０が出力するチップイネーブル４６，ライトイネーブル４７、アドレス４３、ライトデータ４４、フラッシュメモリから読み出されたリードデータ２２を受け取り、チップイネーブル４６，ライトイネーブル４７、アドレス４３及びプロテクトビット６２に基づき、アクセスがプロテクト対象か否か判断し、プロテクト対象である場合には、ライトプロテクト情報６６，リードプロテクト情報を出力する。
【００４０】
アドレス／データ変換部５０は、ライトプロテクト情報に基づき、ライトプロテクト時にフラッシュメモリに書き込むドレスとデータを変換する処理を行う。
【００４１】
選択部７０は、プロテクト無しの場合にフラッシュメモリ２０から読み出されるリードデータ２２とリードプロテクト時に出力するダミーリードデータを入力し、プロテクトの有無に応じていずれかを選択して出力する。
【００４２】
図２（Ａ）（Ｂ）は、フラッシュメモリの割り当てについて説明するための図である。図２（Ａ）に、本実施の形態のメモリマップ２００を示す。本実施の形態では、６４ＫＢのフラッシュメモリ２０が論理アドレス２０２の部分（0x08000〜007fff）に割り当てれている。フラッシュメモリ２０はセクタ０〜１５の１６個のセクタ（ここでは１６ＫＢ単位のセクタが設定されている）に分割されて、セクタイレースコマンドが実行されるとこによりフラッシュメモリ２０はセクタ単位で消去（イレース）可能な構成になっている。
【００４３】
本実施の形態ではフラッシュメモリ２００の所定のエリアにプロテクト情報記憶部２２が設けられ、プロテクト情報が記憶されている。例えば図２（Ｂ）に示すように、フラッシュメモリの所定のセクタ（ここではセクタ７）の最後尾の３２ビットをプロテクトビット（プロテクト情報記憶部）２２として、システム予約するようにしてもよい。
【００４４】
図３（Ａ）（Ｂ）は、プロテクトビットについて説明するための図である。
【００４５】
本実施の形態ではフラッシュメモリ２００の所定のエリア単位（ここでは１６ＫＢ単位、４セクタ単位）にライトプロテクト及びリードプロテクトの２種類を指定できるようになっている。例えば図３（Ａ）（Ｂ）に示すように、３２ビットのプロテクトビットを設定し、ＲＤ０、ＲＤ１、ＲＤ２、ＲＤ３にそれぞれセクタ８〜１１、１２〜１５、０〜３、４〜７に対するライトプロテクトの有無を指示するビットを設定し、’１’であればライトプロテクト無し、’０’であればライトプロテクト有りとしてプロテクト処理を行うようにしてもよい。同様にＬＤ０、ＬＤ１、ＬＤ２、ＬＤ３にそれぞれセクタ８〜１１、１２〜１５、０〜３、４〜７に対するリードプロテクトの有無を指示するビットを設定し、’１’であればライトプロテクト無し、’０’であればライトプロテクト有りとしてプロテクト処理を行うようにしてもよい。ライトプロテクト有りの場合は指定された領域への書き込みを禁止し、リードプロテクト有りの場合は指定された領域への書き込みを禁止する。
【００４６】
ライトまたはリードプロテクトビットの初期値（プロテクトなし）は’１’となっており、プロテクト有りを設定する場合には’０’を書き込む。本実施の形態のフラッシュメモリは、予め所定のブロック単位で消去してから書き込み可能に構成されており、一旦書き込んだら当該セル単位の書き換えは不可な構成となっている。従って消去時のメモリセルの書き込み値をプロテクトビットの初期値（プロテクト無し）（ここでは’１’）を合わせると、一旦プロテクト有りに設定すると（’０’を書き込む）、このビットのみをプロテクト無しを示す’１’に上書きすることはできない。従ってプロテクトビットをプロテクトを解除する方向に書き換えることはできない構成にすることができる。
【００４７】
また本実施の形態では、デバッグモードにおいてはセクタイレースコマンドが発効されてもセクタイレースが実行されないように制御している。従ってデバッグ時にプロテクトビット（プロテクト情報記憶部）を含むセクタがイレースされてプロテクトビットが初期化される（プロテクト無し状態）のを、防止することができる。
【００４８】
なお本実施の形態では、デバッグ時にセクタイレースコマンドの実行はできないがチップ消去（フラッシュメモリ全体の消去）の実行は可能である。これはチップ消去の場合には、チップ消去時に保護すべき情報もすべて消去されるため、プロテクトビットが解除されて内部情報が読み出される危険性がないからである。これに対し、セクタイレースの場合には、プロテクトビットを含むセクタだけがイレースされて（プロテクトが解除される）、他のセクタのデータはイレースされないので、他のセクタの情報が読み出される危険性があるため、セクタイレースの実行を不可能にしている。ここで、デバッグ時にはセクタイレースの実行をすべて禁止するような構成でもよいし、対象セクタに対応するプロテクトビットがプロテクト有りを示している場合に当該セクタのイレースを禁止する構成でもよい。尚前者の場合にはプロテクトビットのあるセクタを含む所定のエリア（プロテクトビットをしている単位エリア）のプロテクトビットをプロテクト有りに設定しなくても、プロテクトが解除されることはない。しかし後者の場合には、プロテクトビットのあるセクタを含む所定のエリア（プロテクトビットをしている単位エリア）のプロテクトビットをプロテクト有りに設定してプロテクトがイレース（解除）されないようにする必要がある。
【００４９】
図４は、命令とデータが同じバスを使用するマイクロコンピュータの構成である。同図では、図１の主要部にＣＰＵ７０とデータバス８０を加えた構成を示す。
【００５０】
ＣＰＵ７０は、種々の命令の実行処理を行うものであり、デバッグモジュール７２を含む。デバッグモジュール７２は、オンチップデバッグを行うためのデバッグ回路を含み、
デバッグモード時に外部のデバッグツール１１０とデバッグ情報の送受信を行い、デバッグ用プログラムを実行して種々のデバッグ処理を行う。
【００５１】
なおＣＰＵ７０は、ユーザーモードとデバッグモードを有しており、動作モード設定部７４を含む。動作モード設定部７４は、図示しない動作モードレジスタ（ＦＦ）を含み、強制ブレークやブレークポイントやステップ実行の各ステップにおけるブレーク発生等に基づきデバッグモードを設定する。
【００５２】
ここでデバッグモードとはＣＰＵの状態がデバッグ状態であることを示すモードであり、ユーザーモードやｒｕｎ中以外の状態を意味し、デバッグ状態を例えばブレークモードやテストモードという名称で呼ばれる場合にはかかる場合も含む。
【００５３】
フラッシュコントローラ３０及びフラッシュメモリ２０の構成は図１と同様である。ここで、フラッシュコントローラ３０は、ライトリクエスト４１、リードリクエスト４２、アドレス４３、命令／データ種別６４、動作モード情報６５については、専用の信号線を介してＣＰＵから受け取る。またライトデータ４４、リードデータ２２については、それぞれの入出力信号線を汎用のデータバス８０に接続して当該データバス８０を介してやり取りを行うよう。
【００５４】
図５は、ハーバードアーキテクチャ（命令バスとデータバスを別個に有する）のマイクロコンピュータの構成である。同図では、図１の主要部にＣＰＵ７０、アービター９０、データバス８０、命令バス８２を加えた構成を示す。
【００５５】
ハーバード・アーキテクチャとは、命令用のデータ通信経路とデータ用のデータの通信経路とをそれぞれ分離独立して扱う構造のことであり、ハーバード・アーキテクチャのコンピュータでは、命令をメモリから読むこととデータをメモリから読むことは同時にできる。
【００５６】
アービター９０は、データバス８０と命令バス８２に接続され、フラッシュメモリ２０に対するデータバス８０と命令バス８２のアクセス権の調停を行う。アービター９０は、データバス８０と命令バス８２を含む複数のバスに接続され、前記フラッシュメモリ２０に対して複数のバスが競合状態のとき調停してこれらのいずれかのバスに使用許可を与える処理を行い、使用許可を与えたバスがデータバス８０であるのか命令バス８２であるのかを特定するバス特定情報９２（これが命令／データ種別６４となる）を生成してフラッシュコントローラ３０にたいして通知する。そしてフラッシュコントローラ３０は、バス特定情報９２（６４）に基づきアクセス対象がデータか否か判断する。
【００５７】
フラッシュコントローラ３０及びフラッシュメモリ２０の構成は図１と同様である。ここでアービター９０は、専用の信号線を介してＣＰＵ７０’からライトリクエスト４１、リードリクエスト４２、アドレス４３を受け取り、受け取ったライトリクエスト４１、リードリクエスト４２、アドレス４３を専用の信号線を介してフラッシュコントローラ３０に送る。またＣＰＵ７０’は、リードデータ２２−１（命令の場合）は命令バス８２を介してアービター９０から受け取り、リードデータ２２−２（データの場合）はデータバス８２を介してアービター９０から受け取り、ライトデータ４４（内容は命令でもデータでもよいが扱いはデータ）データバス８０を介してアービター９０に送る。
【００５８】
また動作モード６５は、ＣＰＵ７０’から専用の信号線でフラッシュコントローラ３０に送られる。
【００５９】
図６は、本実施の形態の初期化処理の流れを示すフローチャートである。
【００６０】
まずリセット解除を行う（ステップＳ１０）。次にフラッシュメモリ２０の所定のアドレス（プロテクト情報記憶部のアドレス）へリードアクセスを行う（ステップＳ２０）。次にリードデータ（プロテクト情報）をプロテクトビット６２に格納する（ステップＳ３０）。上記ステップＳ１０〜Ｓ３０は初期化状態の処理であり、この間のＣＰＵからのアクセスは保留になる。
【００６１】
このように本実施の形態では、ブート時にフラッシュメモリ２０のプロテクト情報記憶部２２の内容を読み出して、プロテクトビット（ブート情報格納レジスタ（例えばフリップフロップ（ＦＦ））６２に格納し、以降はフラッシュプロテクト制御部６０は、プロテクトビット６２に基づき、プロテクト処理を行う。
【００６２】
図７は、本実施の形態のリードプロテクト処理の流れを示すフローチャートである。
【００６３】
フラッシュプロテクト制御部は通常動作において、フラッシュメモリ２０に対するアクセスアドレスとデータを監視している（ステップＳ１１０）。たとえば図１に示すようにフラッシュアクセスタイミング生成部が出力するアドレスと４３とライトデータ４４、チップイネーブル４６、ライトイネーブル４７を監視するようにしてもよい。
【００６４】
リードアクセスが発生すると、命令リードか否か判断する（ステップＳ１２０、Ｓ１３０）。フラッシュプロテクト制御部６０は、フラッシュアクセスタイミング生成部４０が出力するチップイネーブル４６及びライトイネーブル４７に基づきリードアクセスか否か判断するようにしてもよい。例えばチップイネーブルかつライトディセーブルで有る場合にリードアクセスが発生したと判断するようにしてもよい。また命令リードか否かは、ＣＰＵ又はアービター９０から受け取る命令／データ種別６４が命令を示しているか否かにより判断してもよい。
【００６５】
命令リードである場合はリードを実行する（ステップＳ１２０、Ｓ１３０）。本実施の形態ではＣＰＵが命令リードでアクセスしてきた場合は、プロテクト対象アドレスであってもプロテクトは行なわないように制御する。このようにするとプログラムとして実行できるが、プログラムがデータとして読み出されることを防ぐことができる。
【００６６】
命令リードでない場合（データリードの場合）は、プロテクト対象アドレスであるか否か判断する（ステップＳ１４０）。例えばフラッシュアクセスタイミングコントローラ４０が出力するアドレスが含まれるセクタに対応して設定されているリードプロテクトビットが’０’であればリードプロテクト対象であると判断しても良い。
【００６７】
リードプロテクト対象アドレスである場合には、リードプロテクトを実行する（ステップＳ１５０）。リードプロテクトは，CPUへ返すリードデータを例えば0x0000に摩り替えることにより実現してもよい。すなわちリードプロテクト時にはフラッシュプロテクト制御部６０はCPUへ返すリードプロテクトデータとして例えば0x0000CPUを出力し、選択部７０は、フラッシュメモリから読み出されたリードデータとフラッシュプロテクトデータを入力として、リードプロテクト時にはリードプロテクトデータを選択出力するようにしてもよい。
【００６８】
プロテクト対象アドレスでない場合には、リードを実行する（ステップＳ１６０）。
【００６９】
図８は、本実施の形態のライトプロテクト処理の流れを示すフローチャートである。
【００７０】
フラッシュプロテクト制御部６０は通常動作において、フラッシュメモリに対するアクセスアドレスとデータを監視している（ステップＳ２１０）。たとえば図１に示すようにフラッシュアクセスタイミング生成部が出力するアドレス、４３とライトデータ４４、チップイネーブル４６、ライトイネーブル４７を監視するようにしてもよい。
【００７１】
ライトコマンドを検出すると、プロテクト対象アドレスか否か判断する（ステップＳ２２０、Ｓ２３０）。フラッシュプロテクト制御部は、フラッシュアクセスタイミング生成部が出力するチップイネーブル４６及びライトイネーブル４７に基づきリードアクセスか否か判断するようにしてもよい。例えばチップイネーブルかつライトイネーブルある場合にライトコマンドであると判断してもよい。例えばフラッシュアクセスタイミングコントローラ４０が出力するアドレスが含まれるセクタに対応して設定されているライトプロテクトビットが’０’であればライトプロテクト対象であると判断しても良い。
【００７２】
プロテクト対象アドレスである場合には、ライトプロテクトを実行する（ステップＳ２４０）。ライトプロテクトは，例えばライトアドレスをプロテクトビットが格納されているアドレスに変換し、ライトデータをプロテクトビットの内容に変換するといったように，アドレスとデータの内容を別のものに摩り替えることにより実現してもよい。例えばライトプロテクト時にフラッシュプロテクト制御部６０は、プロテクトビットが格納されているアドレス及びプロテクトビットをアドレスデータ変換部５０に渡し、アドレスデータ変換部５０で、ライトアドレスをプロテクトビットが格納されているアドレスに変換し、ライトデータをプロテクトビットの内容に変換するようにしてもよい。
【００７３】
プロテクト対象アドレスでない場合には、ライトコマンドを実行する（ステップＳ２５０）。
【００７４】
図９は、本実施の形態のセクタイレースプロテクト処理の流れを示すフローチャートである。セクタイレースコマンドはセクタ単位で消去（初期化）するコマンドである。
【００７５】
フラッシュプロテクト制御部は通常動作において、フラッシュメモリに対するアクセスアドレスとデータを監視している（ステップＳ３１０）。たとえば図１に示すようにフラッシュアクセスタイミング生成部が出力するアドレスと４３、ライトデータ４４、チップイネーブル４６、ライトイネーブル４７を監視するようにしても良い。
【００７６】
セクタイレースコマンドを検出すると、デバッグモードである場合にはセクタイレースプロテクトを行い（ステップＳ３３０、Ｓ３４０）、デバッグモードでない場合にはセクタイレースコマンドを実行する（ステップＳ３３０、Ｓ３５０）。フラッシュプロテクト制御部は、フラッシュアクセスタイミング生成部が出力するチップイネーブル４６及びライトイネーブル４７、ライトデータ４４に基づきセクタイレースコマンドか否か判断するようにしてもよい。例えばチップイネーブルかつライトイネーブルでライトデータ４４が所定の値である場合にセクタイレースコマンドであると判断してもよい。セクタイレースプロテクトは、フラッシュメモリへのデータ信号の値を摩り替えて無効なコマンドに変えてしまうことで実現してもよい。
【００７７】
図１０は、本実施の形態のマイクロコンピュータのハードウエアブロック図の一例である。
【００７８】
本マイクロコンピュータ７００は、ＣＰＵ５１０、キャッシュメモリ５２０、ＬＣＤコントローラ５３０、リセット回路５４０、プログラマブルタイマ５５０、リアルタイムクロック（ＲＴＣ）５６０、ＤＲＡＭコントローラ兼バスＩ／Ｆ５７０、割り込みコントローラ５８０、シリアルインターフェース５９０、バスコントローラ６００、Ａ／Ｄ変換器６１０、Ｄ／Ａ変換器６２０、入力ポート６３０、出力ポート６４０、Ｉ／Ｏポート６５０、クロック発生装置５６０、プリスケーラ５７０、フラッシュコントローラ７４０、フラッシュメモリ７４２、及びそれらを接続する汎用バス６８０、専用バス７５０等、各種ピン６９０等を含む。
【００７９】
フラッシュコントローラ７４０、フラッシュメモリ７４２は、例えば図１〜図９で説明した構成を有する。
【００８０】
２．電子機器
図１１に、本実施の形態の電子機器のブロック図の一例を示す。本電子機器８００は、マイクロコンピュータ（またはＡＳＩＣ）８１０、入力部８２０、メモリ８３０、電源生成部８４０、ＬＣＤ８５０、音出力部８６０を含む。
【００８１】
ここで、入力部８２０は、種々のデータを入力するためのものである。マイクロコンピュータ８１０は、この入力部８２０により入力されたデータに基づいて種々の処理を行うことになる。メモリ８３０は、マイクロコンピュータ８１０などの作業領域となるものである。電源生成部８４０は、電子機器８００で使用される各種電源を生成するためのものである。ＬＣＤ８５０は、電子機器が表示する各種の画像（文字、アイコン、グラフィック等）を出力するためのものである。  音出力部８６０は、電子機器８００が出力する各種の音（音声、ゲーム音等）を出力するためのものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【００８２】
図１２（Ａ）に、電子機器の１つである携帯電話９５０の外観図の例を示す。この携帯電話９５０は、入力部として機能するダイヤルボタン９５２や、電話番号や名前やアイコンなどを表示するＬＣＤ９５４や、音出力部として機能し音声を出力するスピーカ９５６を備える。
【００８３】
図１２（Ｂ）に、電子機器の１つである携帯型ゲーム装置９６０の外観図の例を示す。この携帯型ゲーム装置９６０は、入力部として機能する操作ボタン９６２、十字キー９６４や、ゲーム画像を表示するＬＣＤ９６６や、音出力部として機能しゲーム音を出力するスピーカ９６８を備える。
【００８４】
図１２（Ｃ）に、電子機器の１つであるパーソナルコンピュータ９７０の外観図の例を示す。このパーソナルコンピュータ９７０は、入力部として機能するキーボード９７２や、文字、数字、グラフィックなどを表示するＬＣＤ９７４、音出力部９７６を備える。
【００８５】
本実施の形態のマイクロコンピュータを図１２（Ａ）〜図１２（Ｃ）の電子機器に組みむことにより、低消費電力でコストパフォーマンスの高い電子機器を提供することができる。
【００８６】
なお、本実施形態を利用できる電子機器としては、図１２（Ａ）、（Ｂ）、（Ｃ）に示すもの以外にも、携帯型情報端末、ページャー、電子卓上計算機、タッチパネルを備えた装置、プロジェクタ、ワードプロセッサ、ビューファインダ型又はモニタ直視型のビデオテープレコーダ、カーナビゲーション装置等のＬＣＤを使用する種々の電子機器を考えることができる。
【００８７】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【図面の簡単な説明】
【００８８】
【図１】本実施の形態のマイクロコンピュータの構成について説明するための図。
【図２】図２（Ａ）（Ｂ）は、フラッシュメモリの割り当てについて説明するための図。
【図３】図３（Ａ）（Ｂ）は、プロテクトビットについて説明するための図。
【図４】命令とデータが同じバスを使用するマイクロコンピュータの構成を示す図。
【図５】ハーバードアーキテクチャのマイクロコンピュータの構成を示す図。
【図６】本実施の形態の初期化処理の流れを示すフローチャート。
【図７】本実施の形態のリードプロテクト処理の流れを示すフローチャート。
【図８】本実施の形態のライトプロテクト処理の流れを示すフローチャート。
【図９】本実施の形態のセクタイレースプロテクト処理の流れを示すフローチャート。
【図１０】本実施の形態のマイクロコンピュータのハードウエアブロック図。
【図１１】マイクロコンピュータを含む電子機器のブロック図の一例を示す。
【図１２】図１２（Ａ）（Ｂ）（Ｃ）は、種々の電子機器の外観図の例である。
【符号の説明】
【００８９】
１０  ＣＰＵ、２０  フラッシュメモリ、２２  プロテクト情報記憶部、３０フラッシュコントローラ、４０  フラッシュアクセスタイミング生成部、５０  アドレスデータ変換部、６０  フラッシュプロテクト制御部、６２  プロテクトビット、５１０  ＣＰＵ、５３０  ＬＣＤコントローラ、５４０  リセット回路、５５０  プログラマブルタイマ、５６０  リアルタイムクロック（ＲＴＣ）、５７０  ＤＲＡＭコントローラ兼バスＩ／Ｆ、５８０  割り込みコントローラ、５９０  シリアルインターフェース、６００  バスコントローラ、６１０  Ａ／Ｄ変換器、６２０  Ｄ／Ａ変換器、６３０  入力ポート、６４０  出力ポート、６５０  Ｉ／Ｏポート、６６０  クロック発生装置（ＰＬＬ）、６７０  プリスケーラ、６８０  汎用バス、６９０  各種ピン、７００  マイクロコンピュータ、７１０  ＲＯＭ、７２０  ＲＡＭ、７３０  ＭＭＵ、７４０  フラッシュコントローラ、７４２  フラッシュメモリ、８００  電子機器、８５０  ＬＣＤ
【図１】
2008262294.tif 000003
【図２】
2008262294.tif 000004
【図３】
2008262294.tif 000005
【図４】
2008262294.tif 000006
【図５】
2008262294.tif 000007
【図６】
2008262294.tif 000008
【図７】
2008262294.tif 000009
【図８】
2008262294.tif 000010
【図９】
2008262294.tif 000011
【図１０】
2008262294.tif 000012
【図１１】
2008262294.tif 000013
【図１２】
2008262294.tif 000014