(57)【要約】【課題】ランダムアクセスによってリード・ライト可能な不揮発性記憶装置を、プログラム／データ兼用のメモリとして搭載した場合のセキュリティの向上を図るための技術を提供する。【解決手段】予め設定されたプログラムに基づく演算処理を可能とするＣＰＵ（１０３）と、上記ＣＰＵによるランダムアクセスによってリード・ライト可能な不揮発性記憶装置（１０１）と、を含むシングルチップマイクロコンピュータ（１００）である。上記不揮発性記憶装置は、記憶領域として上記プログラムが格納される不揮発保持領域とデータを格納可能な不揮発性保持無効化領域とを含む。リセット状態を示すリセット信号により、上記記憶領域のうち上記不揮発性保持無効化領域に対してライト動作を行うことで、上記不揮発性保持無効化領域のデータを消去する。【選択図】図５
2011141888.tif 000002
【特許請求の範囲】
【請求項１】
予め設定されたプログラムに基づく演算処理を可能とするＣＰＵと、
上記ＣＰＵによるランダムアクセスによってリード・ライト可能な不揮発性記憶装置と、
を含むシングルチップマイクロコンピュータであり、
上記不揮発性記憶装置は、記憶領域として上記プログラムが格納される不揮発保持領域とデータを格納可能な不揮発性保持無効化領域とを含み、
リセット状態を示すリセット信号により、上記記憶領域のうち上記不揮発性保持無効化領域に対してライト動作を行うことで、上記不揮発性保持無効化領域のデータを消去することを特徴とするシングルチップマイクロコンピュータ。
【請求項２】
上記不揮発保持領域には、前記リセット信号により消去されないデータを保持するデータ保存領域を含む請求項１記載のシングルチップマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータにかかり、例えば一つの半導体基板に形成されたシングルチップマイクロコンピュータに利用して有効な技術に関するものである。
【背景技術】
【０００２】
シングルチップマイクロコンピュータは、例えば非特許文献１に記載されているように、中央処理装置（ＣＰＵ）を中心にしてプログラム保持用のＲＯＭ（リードオンリメモリ）、データ保持用のＲＡＭ（ランダムアクセスメモリ）、及びデータの入出力を行うための入出力回路などの機能ブロックが１つの半導体基板に形成される。かかるシングルチップマイクロコンピュータのＲＯＭとして、フラッシュメモリを内蔵する場合が増えている。フラッシュメモリによって、その内容を、随時書き換え可能にし、使い勝手を向上することができる。フラッシュメモリは、電気的な書き込み消去が可能なＲＯＭであって、その特性上、一旦消去を行った後に、書き込みを行う必要がある。書き込み／消去を制御する専用のプログラムを別のメモリに格納しておいて、それをＣＰＵで実行するように構成することができる（例えば特許文献１参照）。このようにフラッシュメモリは、ＣＰＵによる、任意のアドレス順序での、連続したリード／ライトを行うことができないため、ランダムアクセスは不可能とされる。これらの理由により、フラッシュメモリは、ＣＰＵの作業用データ領域としては使用できない。作業用データ領域としては、ＲＡＭが必要である。このＲＡＭは、半導体集積回路の微細化に伴い、保持電流やソフトエラーなどが問題になっている。ソフトエラーの対策のために、エラーコレクションの論理を持つ例が増えている。フラッシュメモリを使用して、電源の遮断時に、その時点のデータを保持する技術が知られている（例えば特許文献２参照）。フラッシュメモリが、消去を行った後に書き込みを行う必要があること、かつ、書き込み／消去に時間がかかることから、前記のデータ保持のための書き込みを高速に行うために、事前に、フラッシュメモリの消去が行われる。この事前の消去も、フラッシュメモリの内容を確認の後に行うようにされている。換言すれば、プログラム実行による初期化処理としての消去が行われる。
【０００３】
一方、フラッシュメモリに代表されるような不揮発性メモリでありながら、読み書き回数に制限がないメモリとして、マグネトロレジスティブ・ランダム・アクセス・メモリ（ＭＲＡＭ）が知られている（例えば特許文献３，４参照）。ＭＲＡＭは、磁化の向きで素子の抵抗が異なる磁気抵抗効果を利用して情報を記憶する。磁気抵抗変化率が従来の素子よりも大きなマグネティック・トンネル・ジャンクション（ＭＴＪ）素子が開発されることにより、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）並みの高速読み書き動作が可能で、ＤＲＡＭ並みの高集積度の実現が可能とされる。このようなＭＲＡＭによれば、従来のＲＡＭと同様、ランダムアクセスによるリード・ライトが可能とされる。しかも、書き込みに際して事前に消去を行う必要がない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭６３−２６６６９８号公報
【特許文献２】特開２００５−３２２２９３号公報
【特許文献３】特開２００２−２２２５８９号公報
【特許文献４】特開２００４−８６９８６号公報
【非特許文献】
【０００５】
【非特許文献１】昭和５９年１１月３０日オーム社発行『ＬＳＩハンドブック』Ｐ５４０及びＰ５４１
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＭＲＡＭなどのように不揮発保持が可能なＲＡＭ（ＮＶＲＡＭ）は、ランダムアクセスによるリード及びライトが可能であるため、ＣＰＵのプログラム領域としても、作業用データ領域としても使用可能である。しかも、このＮＶＲＡＭにデータを格納すれば、電源遮断後も記憶データの内容を保持できる。従って、ＮＶＲＡＭを搭載することにより、電源投入時や、リセット時などに、それ以前のデータを参照することができる。このため、プログラム用メモリと、作業用メモリとを、一つのＮＶＲＡＭで実現することができる。このように一種類のメモリで済めば、ハードウェア資源を節約できるし、製造工程の簡略化に寄与できる。
【０００７】
しかしながら、このようなＮＶＲＡＭをマイクロコンピュータに搭載することについて本願発明者が検討したところ、マイクロコンピュータに内蔵されたＮＶＲＡＭに全てのデータを保持させることはセキュリティの面で好ましくないことが見いだされた。例えば、ＩＤ情報や鍵情報、暗号を復号化した後の情報などの秘密情報が不揮発保持されていると、マイクロコンピュータを不正に動作させて、秘密情報をリードされたりすることが考えられるからである。
【０００８】
本発明の目的は、ランダムアクセスによってリード・ライト可能な不揮発性記憶装置（ＮＶＲＡＭ）を、プログラム／データ兼用のメモリとして搭載した場合のセキュリティの向上を図るための技術を提供することにある。
【０００９】
本発明の前記ならびにそのほかの目的と新規な特長は、本発明書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１１】
〔１〕予め設定されたプログラムに基づく演算処理を可能とするＣＰＵと、このＣＰＵによるランダムアクセスによってリード・ライト可能な不揮発性記憶装置とを含んで成るマイクロコンピュータにおいて、上記不揮発性記憶装置には、記憶領域の一部に不揮発保持が無効とされる領域を設ける。
【００１２】
上記の手段によれば、上記不揮発性記憶装置に、記憶領域の一部に不揮発保持が無効とされる領域が設けられているため、この領域を、秘密を保持すべきデータの格納用とすることにより、この秘密を保持すべきデータが上記不揮発性記憶装置に不揮発保持されることが回避される。このことが、ランダムアクセスによってリード・ライト可能な不揮発性記憶装置を、プログラム／データ兼用のメモリとして搭載した場合のセキュリティの向上を達成する。
【００１３】
〔２〕上記〔１〕において、上記不揮発性記憶装置には、上記ライトに際して事前の消去処理が行われることなく、記憶情報の書き換えが可能とされるものを適用することができる。
【００１４】
〔３〕上記〔１〕において、電源電圧レベルを検出可能な電源検出部を含み、電源投入後、上記電源検出部での検出結果に基づいて上記不揮発性記憶装置の動作が開始されるように構成することができる。
【００１５】
〔４〕上記〔１〕において、上記ＣＰＵの動作を監視するための動作監視部を含み、上記動作監視部での監視結果に基づいて上記不揮発性記憶装置の動作が開始されるように構成することができる。
【００１６】
〔５〕上記〔１〕において、上記不揮発性記憶装置は、上記ＣＰＵで実行されるプログラムを格納可能なプログラム領域と、上記ＣＰＵでのプログラム実行において使用されるデータを格納可能なデータ領域とを含み、上記ＣＰＵでの上記プログラムの実行によって、上記データ領域へのデータ書き込みが可能とされ、上記不揮発性記憶装置における少なくとも一部の記憶領域についての不揮発保持が無効とされた後に、上記ＣＰＵによるリード動作が許可されるように構成することができる。
【００１７】
〔６〕上記〔１〕において、上記不揮発性記憶装置における少なくとも一部の記憶領域についての不揮発保持を無効にする動作は、上記不揮発性記憶装置に対する所定の値のライト動作とすることができる。
【００１８】
〔７〕上記〔１〕において、上記不揮発性記憶装置は、上記ＣＰＵで実行されるプログラムを格納可能なプログラム領域と、上記ＣＰＵでのプログラム実行において使用されるデータを格納可能なデータ領域と、を含み、上記ＣＰＵでの上記プログラムの実行によって、上記データ領域へのデータ書き込みが可能とされ、上記ＣＰＵによって上記データ領域へのデータ書き込みが行われた後に、上記データ領域のリードが許可されるように構成することができる
〔８〕上記〔１〕において、上記不揮発性記憶装置は、上記ＣＰＵによって管理される第１アドレス領域及び第２アドレス領域に配置され、上記第１アドレス領域からは上記不揮発性記憶装置のリードのみが可能とされ、上記第２アドレス領域からは上記不揮発性記憶装置のリード及びライトが可能とされる。
【００１９】
〔９〕上記〔１〕において、上記不揮発性記憶装置において不揮発保持が無効にされる領域には、秘密を保持すべきデータを格納することができる。
【００２０】
〔１０〕上記〔１〕において、上記不揮発性記憶装置において不揮発保持が無効にされる領域には、暗号化されるべき元のデータ、復号化されたデータ、又は暗号化又は復号化のための情報を格納することができる。
【００２１】
〔１１〕上記〔６〕において、上記不揮発性記憶装置における少なくとも一部の記憶領域についての不揮発保持を無効にするためのライト動作は、上記ＣＰＵのプログラム実行によるライト動作とは別個に行うことができる。
【００２２】
〔１２〕予め設定されたプログラムに基づく演算処理を可能とするＣＰＵと、上記ＣＰＵによるランダムアクセスによってリード・ライト可能な不揮発性記憶装置と、上記不揮発性記憶装置の動作開始又は電源遮断の少なくとも一方において、上記不揮発性記憶装置における一部の記憶領域についての不揮発保持を無効にするためのメモリコントローラとを含んでマイクロコンピュータを構成することができる。
【００２３】
かかる構成においても、上記不揮発性記憶装置に、記憶領域の一部に不揮発保持が無効とされる領域が設けられているため、この領域を、秘密を保持すべきデータの格納用とすることにより、この秘密を保持すべきデータが上記不揮発性記憶装置に不揮発保持されることが回避される。このことが、ランダムアクセスによってリード・ライト可能な不揮発性記憶装置を、プログラム／データ兼用のメモリとして搭載した場合のセキュリティの向上を達成する。
【００２４】
〔１３〕上記〔１２〕において、上記不揮発性記憶装置は、上記ライトに際して事前の消去処理が行われることなく、記憶情報の書き換えが可能とされる。
【００２５】
〔１４〕上記〔１２〕において、上記ＣＰＵ及び上記不揮発性記憶装置を初期状態に戻して動作を開始させるためのリセット信号を生成可能なリセットコントローラを含み、上記リセットコントローラは、上記マイクロコンピュータに供給される電源電圧のレベルを検出する電源検出部を含み、上記電源検出部での検出結果に基づいて上記リセット信号を形成するように構成することができる。
【００２６】
〔１５〕上記〔１２〕において、上記不揮発性記憶装置を初期状態に戻して動作を開始させるためのリセット信号を生成可能なリセットコントローラと、上記ＣＰＵの動作を監視可能な動作監視部と、を含み、上記リセットコントローラによって、上記動作監視部での監視結果に基づいて上記リセット信号を形成するように構成することができる。
【００２７】
〔１６〕上記〔１２〕において、上記不揮発性記憶装置は、上記ＣＰＵで実行されるプログラムを格納可能なプログラム領域と、上記ＣＰＵでのプログラム実行において使用されるデータを格納可能なするデータ領域とを含み、上記ＣＰＵでの上記プログラムの実行によって、上記データ領域へのデータ書き込みが可能とされ、上記メモリコントローラによって上記不揮発性記憶装置における少なくとも一部の記憶領域についての不揮発保持が無効とされた後に、上記ＣＰＵによるリード動作が許可されるように構成することができる。
【００２８】
〔１７〕上記〔１２〕において、上記不揮発性記憶装置は、上記ＣＰＵで実行されるプログラムを格納可能なプログラム領域と、上記ＣＰＵでのプログラム実行において使用されるデータを格納可能なするデータ領域とを含み、上記ＣＰＵによって上記データ領域へのデータ書き込みが行われた後に、上記データ領域のリード動作が許可されるように構成することができる。
【００２９】
〔１８〕上記〔１２〕において、上記不揮発性記憶装置において不揮発保持が無効にされる領域は、上記ＣＰＵの例外処理ベクタを含まない作業領域とすることができる。
【００３０】
〔１９〕上記〔１２〕において、上記ＣＰＵは、上記不揮発性記憶装置において不揮発保持が無効にされる領域に、秘密を保持すべきデータを格納するように構成することができる。
【００３１】
〔２０〕上記〔１２〕において、上記メモリコントローラは、不揮発保持を無効にするための信号を生成するためのライト制御部、及び不揮発保持を無効にするための信号と上記ＣＰＵのリード又はライトのための信号とを選択するためのマルチプレクサを含んで構成することができる。
【００３２】
〔２１〕上記〔１２〕において、上記メモリコントローラは、上記不揮発性記憶装置における少なくとも一部の記憶領域についての不揮発保持を無効にするためのライト動作を、上記ＣＰＵによるライト動作とは別個に行うためのライト制御部を含んで構成することができる。
【００３３】
〔２２〕予め設定されたプログラムに基づく演算処理を可能とするＣＰＵと、上記ＣＰＵによるランダムアクセスによってリードライト可能な不揮発性記憶装置とを含むマイクロコンピュータにおいて、上記不揮発性記憶装置は、上記ＣＰＵで実行されるプログラムを格納可能なプログラム領域と、上記ＣＰＵでのプログラム実行において使用されるデータを格納可能なするデータ領域とを含み、上記データ領域は、不揮発保持が可能とされる第１記憶領域と、不揮発保持が無効とされる第２記憶領域とを含み、上記ＣＰＵは、上記第２記憶領域を作業領域として使用する。
【００３４】
上記の手段によれば、上記不揮発性記憶装置に、不揮発保持が無効とされる第２記憶領域が設けられ、この領域が上記ＣＰＵの作業領域とされることにより、例えばＣＰＵの動作中に悪意を持って電源が遮断された場合でも、上記第２記憶領域の不揮発保持が無効とされるため、上記ＣＰＵでの作業内容の外部への読み出しを回避することができる。このことが、セキュリティの強化を達成する。
【００３５】
〔２３〕上記〔２２〕において、上記不揮発性記憶装置の動作開始又は電源遮断の少なくとも一方において、上記不揮発性記憶装置における不揮発保持が無効とされる領域に対して書き込み又は書き換えの動作が行われるように構成することができる。
【００３６】
〔２４〕上記〔２２〕において、上記不揮発性記憶装置の不揮発保持が無効な領域への書き込み又は書き換えが行われるまで、上記不揮発性記憶装置からのリードが阻止されるように構成することができる。
【発明の効果】
【００３７】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００３８】
すなわち、ランダムアクセスによってリード・ライト可能な不揮発性記憶装置（ＮＶＲＡＭ）をプログラム／データ兼用のメモリとして搭載した場合のセキュリティの向上を図ることができる。
【図面の簡単な説明】
【００３９】
【図１】本発明の一実施例とされるマイクロコンピュータの構成例ブロック図である。
【図２】上記マイクロコンピュータの別の構成例ブロック図である。
【図３】上記マイクロコンピュータに含まれるＮＶＭＣの構成例ブロック図である。
【図４】上記マイクロコンピュータに含まれるＮＶＭＣの別の構成例ブロック図である。
【図５】上記マイクロコンピュータに含まれるＣＰＵによって管理されるアドレス空間の説明図である。
【図６】上記マイクロコンピュータに含まれるＮＶＲＡＭの格納データ例の説明図である。
【図７】上記マイクロコンピュータに含まれるＮＶＭＣの状態遷移説明図である。
【図８】上記マイクロコンピュータに含まれるＮＶＭＣの別の状態遷移説明図である。
【図９】上記マイクロコンピュータにおける主要部の動作タイミング図である。
【図１０】上記マイクロコンピュータにおける主要部の別の動作タイミング図である。
【図１１】上記マイクロコンピュータにおける主要部の別の動作タイミング図である。
【図１２】図４に示される構成を採用した場合のマイクロコンピュータの動作タイミング図である。
【図１３】上記マイクロコンピュータに含まれるＣＰＵのリセット解除時のフローチャートである。
【図１４】上記マイクロコンピュータの応用例の説明図である。
【図１５】図１４に示される応用例における処理のフローチャートである。
【発明を実施するための形態】
【００４０】
図１には、本発明にかかるマイクロコンピュータの構成例が示される。
【００４１】
図１に示されるマイクロコンピュータ１００は、シングルチップマイクロコンピュータとされ、特に制限されないが、中央処理装置（ＣＰＵ）１０３、不揮発性記憶装置（ＮＶＲＡＭ）１０１、メモリコントローラ（ＮＶＭＣ）１０２、バスコントローラ（ＢＳＣ）１１１、リセットコントローラ（ＲＥＳＣ）１１３、割り込みコントローラ（ＩＮＴ）１１２、暗号処理機能部１０６、及び入出力（Ｉ／Ｏ）部１０７を含み、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。
【００４２】
Ｉ／Ｏ部１０７は、外部との間で各種信号の入出力を可能とする入出力ポートの他に、内部バス（Ｉバス）と外部バス（ＥＸＡＢ，ＥＸＤＢ）との間に介在されたバッファ（ＢＵＦ）１０８、ＣＰＵ１０３の動作を監視するためのウォッチドッグタイマ（ＷＤＴ）１０９、シリアル通信ラインを介してシリアル通信を可能とするシリアルコミュニケーションインタフェース（ＳＣＩ）１１０、及びアナログ信号をディジタル信号に変換するためのＡ／Ｄ（アナログ／ディジタル）変換器１２２などの各種周辺回路を含む。
【００４３】
尚、このマイクロコンピュータ１００には、図示されないが、クロック発振器（ＣＰＧ）などの機能ブロックが設けられている。
【００４４】
ＣＰＵ１０３は、制御部１０４と実行部１０５を含み、主として、ＮＶＲＡＭ１０１からフェッチした命令を実行する。作業用のデータ領域としてＮＶＲＡＭ１０１が使用される。
【００４５】
ＮＶＲＡＭ１０１は、特に制限されないが、不揮発性メモリでありながら、読み書き回数に制限がないメモリの一例であるマグネトロレジスティブ・ランダム・アクセス・メモリ（ＭＲＡＭ）とされる。ＭＲＡＭは、磁化の向きで素子の抵抗が異なる磁気抵抗効果を利用して情報を記憶可能な複数のメモリセルがアレイ状に配列されて成る。このメモリセルは、マグネティック・トンネル・ジャンクション（ＭＴＪ）素子などとされる。ＮＶＲＡＭ１０１の動作は、ＮＶＭＣ１０２によって制御される。ＮＶＲＡＭ１０１は、ＮＶＭＣ１０２を介して、Ｉバス１１５に接続され、このＩバス１１５経由でリード／ライト可能とされる。ＮＶＭＣ１０２は、所定のアドレスに対するライトを行うことが可能で、このライトのための制御信号や、アドレス信号及びデータを生成し、Ｉバス１１５による相当信号とマルチプレクスを行い、ＮＶＲＡＭ１０１に供給する。すなわち、ＮＶＲＡＭ１０１は、Ｉバス１１５からのライトと、ＮＶＭＣ１０２からのライトが可能にされる。ＮＶＭＣ１０２は、必要に応じてウェイト信号を生成し、それをＢＳＣ１１１に供給する。
【００４６】
マイクロコンピュータ１００は、Ｉバス（第１内部バス）１１５、Ｐバス（第２内部バス）１１６を有し、これらのバスによって、上記各機能ブロックが相互に接続される。それぞれのバスはアドレスバス及びデータバスの他、バス権要求信号、バスアクノレッジ信号、バスコマンド（又はリード信号、ライト信号、バスサイズ信号）、レディ信号（またはウェイト信号）などを伝達するためのコントロールバスを含む。
【００４７】
Ｉバス１１５は、ＣＰＵ１０３によるＮＶＲＡＭ１０１の高速アクセスを可能とする。ＮＶＲＡＭ１０１のアクセスは１ステートで行われる。接続先が少数であるため、バス幅は任意にでき、例えば３２ビットなどとされる。尚、ＤＭＡＣ（ダイレクト・メモリ・アクセス・コントローラ）などの内部バスマスタを設ける場合、当該バスマスタはこのＩバスに接続される。
【００４８】
暗号機能部１０６は、Ｉバス１１５に接続され、ＣＰＵ１０３の制御下で、暗号化処理及び復号化処理を行う。暗号機能部１０６は、バスマスタとしてもよいし、バススレーブとしてもよい。バスマスタとする場合には、ＮＶＲＡＭ１０１に対してリード／ライトを行う。不揮発保持無効領域に格納された鍵情報を用いた暗号化処理が実行可能に構成される。
【００４９】
Ｐバス１１６には、上記Ｉ／Ｏ部１０７に含まれるＩ／Ｏレジスタ１２１、前記周辺回路などが接続される。Ｉバス１１５とＰバス１１６とが分離されているため、ＣＰＵ１０３のプログラムリードなどで、主として使用されるＩバス１１５の負荷を軽減することで高速化を図ることができ、未使用時のＰバス１１６の状態を保持するなどして低消費電力化を図ることができる。
【００５０】
ＣＰＵ１０３が、Ｐバス１１６に接続されるＩ／Ｏレジスタ１２１をアクセスする場合は、Ｉバス１１５及びＢＳＣ１１１を経由して行われる。Ｉ／Ｏレジスタ１２１のアクセスは２ステートで行われる。接続先が多数であり、バス幅を広げると物理的な規模が増加するため、例えば１６ビットとする。
【００５１】
Ｉバス１１５と外部バス１１７とは、バッファ（ＢＵＦ）１０８によってインタフェースされる。外部バス１１７には、外部メモリなどを接続することができる。これらのバスを、バスコントローラ（ＢＳＣ）が制御する。ＮＶＭＣ１０２やＢＵＦ１０８からＢＳＣ１１１に対してウェイトが要求される。また、ＢＳＣ１１１はＣＰＵ１０３に対してウェイトを要求することができる。
【００５２】
リセットコントローラ（ＲＥＳＣ）１１３は、マイクロコンピュータ１００の外部から入力されるリセット信号ＲＥＳなどのリセット要因を取り込み、マイクロコンピュータ１００の各モジュールに対するリセット信号１２０を出力する。このリセット信号１２０には、ＣＰＵ１０３に供給されるリセット信号や、ＮＶＭＣ１０２に供給されるリセット状態遷移信号も含まれる。リセット要因には、ＷＤＴ１０９のオーバフローなども含まれる。また、ＲＥＳＣ１１３は、電源電圧Ｖｃｃレベルを検出するための電源検出回路１１４を含み、この電源検出回路１１４での検出結果に基づいてリセット信号を発生することができる。
【００５３】
マイクロコンピュータ１００は、上記の他に以下の機能を備える。
【００５４】
割り込みントローラ（ＩＮＴ）１１２は、周辺回路（ＷＤＴ１０９、ＳＣＩ１１０、Ａ／Ｄ変換器１２２）からの割り込み信号を取り込み、ＣＰＵ１０３に割り込要求信号を出力する。ＷＤＴ１０９は、ＣＰＵ１０３の暴走を検知してリセットを要求する。
【００５５】
図３には、上記ＮＶＭＣ１０２の構成例が示される。
【００５６】
ＮＶＭＣ１０２は、マルチプレクサ１０２１、ライト制御部１０２２、アドレス判定部１０２３を含む。ライト制御部１０２２は、動作開始後に、所定のアドレスに対するライト制御信号１０２４を生成する。所定のアドレスは、１ビット又は複数ビット、バイト／ワードなどのＣＰＵ１０３のデータの単位、ＮＶＲＡＭ１０１のワード線単位、あるいはそれ以上のいずれでもよい。ライト制御信号１０２４には、アドレス、データ、ライト信号などが含まれ、それらは、マルチプレクサ１０２１を介して、ＮＶＲＡＭ１０１に供給される。ライトデータは、ＮＶＲＡＭ１０１の記憶領域の一部についての不揮発保持を無効とするためのもので、論理値‘０’でも論理値‘１’でもよく、さらには‘０’と‘１’との混在データであっても、ユーザによって設定可能な所定の任意の値であってもよい。ライト回数は、ＮＶＭＣ１０２の外部から指定できるようにしてよい。この指定は、固定的なものであってもよい。この指定に拘らず、一部領域は必ずライトを行うようにするとよい。ライトデータのサイズと、ライト回数とを設定することによって、不揮発保持無効領域のサイズを任意に変更することが可能となる。
【００５７】
また、ＮＶＭＣ１０２がＮＶＲＡＭ１０１に対するライトを行っている状態では、ＣＰＵ１０３やＢＳＣ１１１に対し、ウェイト要求を行うようにする。マルチプレクサ１０２１は、上記ライト制御信号１０２４と、Ｉバス１１５によるバス制御信号を選択的にＮＶＲＡＭ１０１に与える。ライト制御部１０２２によってライト制御が行われている期間は、マルチプレクサ１０２１によってライト制御信号１０２４が選択される。アドレス判定部１０２３は、Ｉバス１１５から入力されたアドレス（ＣＰＵ１０３のアドレス）を判定し、後述する第１の領域に対するライトが行われた場合は、ＮＶＲＡＭ１０１に対するライトを抑止するように、マルチプレクサ１０２１に第１領域ライト抑止信号を与える。
【００５８】
尚、ＮＶＲＡＭ１０１が複数モジュールに分割されている場合において、不揮発保持無効領域を持たないモジュールがある場合、当該モジュールについては、ＮＶＭＣ１０２を介さずに当該ＮＶＲＡＭ１０１をＩバス１１５に接続することができる。
【００５９】
図５には上記ＣＰＵ１０３によって管理されるアドレス空間が示される。
【００６０】
特に制限されないが、ＣＰＵ１０３のアドレス空間は４Ｇバイトである。マイクロコンピュータ１００内部のＮＶＲＡＭ１０１、Ｉ／Ｏレジスタ１２１は、それぞれ固有のアドレス、バス幅、アクセスステート数で動作する。前記の通り、ＮＶＲＡＭ１０１は、ＮＶＭＣ１０２を介して内部バス（Ｉバス１１５）によって接続され、通常は１ステートでリード／ライトが行われる。ＮＶＲＡＭ１０１は、複数のアドレスに配置される。
【００６１】
ＣＰＵ１０３は、第１動作モードと第２動作モードとを含む。上記第１動作モードでは、例えば図５（Ａ）に示されるように、第１の領域ＮＶＲＡＭ−１は主としてプログラム用、第２の領域ＮＶＲＡＭ−２は主としてデータ用とされる。第１の領域ＮＶＲＡＭ−１は、ＣＰＵ１０３の例外処理ベクタを含む。第１の領域ＮＶＲＡＭ−１、及び第２の領域ＮＶＲＡＭ−２は、ＣＰＵ１０３のアドレッシングモードなどに応じて配置すればよい。主としてプログラム用の第１の領域に対するライトは、プログラム保護のため、ＮＶＭＣ１０２によって禁止される。動作開始後に書き換えする領域（不揮発保持無効領域）は、例外処理ベクタと重ならないようにする。ＮＶＲＡＭ１０１を複数モジュールに分割する場合は、互いに異なるモジュールに配置するとよい。本例では、第２の領域ＮＶＲＡＭ−２の一部に不揮発保持無効領域が形成される。第２動作モードにおいて、第１の領域ＮＶＲＡＭ−１は、図５（Ｂ）に示されるように外部空間とされる。この場合、ＮＶＲＡＭ１０１は、主としてデータ領域として使用され、プログラムは主として、外部バスに接続されたメモリが使用される。
【００６２】
尚、図５（Ａ）に示されるように、プログラムの初期書き込み又は書き換え（ブート）などのためのプログラムを格納する、通常動作時には使用しない領域（ブート領域）を持つ場合があるが、この領域は、不揮発保持無効領域の対象外とする。この領域は、所定のブートモードなどのみで、リードできるようにしてよい。ブートモード又はブート領域でのプログラム実行時は、第１の領域ＮＶＲＡＭ−１に対するライトを許可するようにしてよい。
【００６３】
図６には、ＮＶＲＡＭ１０１の格納データの一例が示される。
【００６４】
ＮＶＲＡＭ１０１は、ランダムアクセスによるリード又はライトが可能であって、フラッシュメモリのように、書き込みに際して消去などの特別な動作を行う必要がなく、ＮＶＲＡＭ１０１上のプログラム実行によって、ＮＶＲＡＭ１０１への書き込みを行うことができる。このため、単一のＮＶＲＡＭ１０１に、プログラム領域とデータ領域を設けることができる。データ領域には、要保存のデータ領域と、保持すべきでない（消去すべき）データ領域とがある。例えばセキュリティの関係で保持すべきでない（消去すべき）データ領域は、上記不揮発保持無効領域とする。ＮＶＲＡＭ１０１の不揮発保持無効領域以外の不揮発保持領域に、プログラム及びデータ保存領域を設けることができる。不揮発保持無効領域は、ＣＰＵ１０３の作業領域とされ、保持すべきでない（消去すべき）秘密情報が格納される。秘密ではない作業用データは、前記不揮発保持領域に格納してもよい。
【００６５】
図７には、上記ＮＶＭＣ１０２の状態遷移が示される。
【００６６】
マイクロコンピュータ１００のリセットなどによりＲＥＳＣ１１３からのリセット状態遷移信号ｒｓｔが論理値‘１’にアサートされることによって、ＮＶＭＣ１０２がリセット状態に遷移される。リセット後、ＮＶＭＣ１０２は、ライト状態に遷移し、ライト制御部１０２２の制御により、不揮発保持無効領域の所定のアドレスに対するライトサイクルが発行される。ライトすべきデータ数に応じて、ライト状態を複数のステートで構成してもよい。この状態では、ＣＰＵ１０３からＮＶＲＡＭ１０１のリード／ライトができないので、ＣＰＵ１０３がＮＶＲＡＭ１０１をリード又はライトしようとした場合は、ウェイト信号を活性化して、ウェイトを要求し、ＮＶＭＣ１０２による所定のライトが終了後（後述のＣＰＵリードライト状態遷移後）に、ＣＰＵ１０３によるＮＶＲＡＭ１０１のリード／ライトを行うようにする。あるいは、ＮＶＭＣ１０２がライト状態のときは、ＣＰＵ１０３にリセットを継続するようにしてもよい。所定のライトが終了すると、ＮＶＲＡＭ１０１は、ＣＰＵ１０３のリードライト状態に遷移する。上記リセット後の所定のライト状態（ライト動作）により、不揮発保持無効領域に対する無効化処理を行うことが可能となる。
【００６７】
尚、ＲＥＳＣ１１３における電源検出回路１１４により電源投入が検知された場合に、ＮＶＭＣ１０２をリセット状態に遷移させ、電源投入完了後、又は所定時間経過後に、ＮＶＭＣ１０２をライト状態に遷移させるようにしてもよい。また、ＷＤＴ１０９のオーバーフローや、マスク不可能な割り込みなど、異常と判断されるべき状態を検出して、リセット状態に遷移させるようにしても良い。また、ＮＶＲＡＭ１０１に、パラメータ情報などを含む場合には、図８に示されるように、ライト終了後に、パラメータリードの状態を追加してもよい。パラメータ情報としては、例えば、ＮＶＲＡＭ１０１のトリミング情報や、Ａ／Ｄ変換器１２２のアナログ値の調整などが挙げられる。
【００６８】
図９には、マイクロコンピュータ１００における主要部の動作タイミングが示される。
【００６９】
図９に示されるように、外部からのリセット信号ＲＥＳに応じてリセット状態遷移信号ｒｓｔが論理値‘１’となると、ＮＶＭＣ１０２は、リセット状態に遷移され、マルチプレクサ１０２１の選択状態がライト制御部１０２２側に切り換えられて、ＣＰＵ１０３からのリード／ライトコマンド抑止される（ｎｏｐ）。これによりアドレス及びデータは初期化される。
【００７０】
そして、リセット状態遷移信号ｒｓｔが論理値‘０’となり、リセットが解除されると、ライト状態になり、所定のアドレス（ａｄｄｒ−１〜ａｄｄｒ−４）についてのライトが行われる。本例では、ライト動作が４回連続して行われる。このようなライト動作のアドレスは、図５（Ａ），（Ｂ）における不揮発保持無効領域に対応するように、ライト制御部１０２２においてハードウェア的に生成される。書き込みデータは、特に制限されないが、論理値‘０’とされる。上記のライト動作が終了すると、ＮＶＭＣ１０２は、ＣＰＵリードライト状態に遷移し、マルチプレクサ１０２１の選択状態をＩバス１１５に切り換える。上記ライトの完了に相当する期間（本例では４回のライトに相当する時間）、ＲＥＳＣ１１３は、ＣＰＵ１０３に対するリセット信号ｒｓｔ＿ｃｐｕを活性化するようにする。以降は、ＣＰＵ１０３によるリード／ライトが受け付けられる。
【００７１】
図１０には、上記マイクロコンピュータ１００における主要部の別の動作タイミングが示される。
【００７２】
マイクロコンピュータ１００の電源Ｖｃｃが投入されて所定の電源電圧レベルに達したことが電源検出回路１１４によって検出されると、リセット状態遷移信号ｒｓｔが論理値‘１’にされ、それによってＮＶＭＣ１０２は、リセット状態に遷移され、マルチプレクサ１０２１の選択状態がライト制御部１０２２に切り換えられて、ＣＰＵ１０３からのリード／ライトコマンド抑止される（ｎｏｐ）。そして、リセット状態遷移信号ｒｓｔが論理値‘０’となり、リセットが解除されると、ライト状態になり、所定のアドレス（ａｄｄｒ−１〜ａｄｄｒ−４）についてのライトが行われる。それ以降は、図９に示される場合と同様であるので、それについての説明を省略する。
【００７３】
図１１には、マイクロコンピュータ１００における主要部の別の動作タイミングが示される。
【００７４】
マイクロコンピュータ１００の電源電圧Ｖｃｃのレベル低下を検出すると、リセット信号ｒｓｔ＿ｐｄｗｎが論理値‘１’にされる。このリセット信号ｒｓｔ＿ｐｄｗｎは、電源検出回路１１４の検出結果に基づいてＲＥＳＣ１１３で生成される。リセット信号ｒｓｔ＿ｐｄｗｎが論理値‘１’にされることによってライト状態になり、所定のアドレス（ａｄｄｒ−１）に対するライトが行われる。電源電圧Ｖｃｃが、必要最小限のレベル以下にまで低下した場合には、ライトを行うことができない。このため、電圧の低下や保持の程度によって、ライトできる領域が変わる。本例は、図９や図１０に示される動作と組み合わせることが望ましい。図９や図１０に示されるように電源投入後にライトを行えば、論理的に指定した領域を確実にライトすることができる。少なくともＣＰＵ１０３の動作開始以前に、ライトすることができる。
【００７５】
尚、ＮＶＲＡＭ１０１を複数モジュールに分割し、不揮発保持無効領域と、例外処理ベクタ領域が異なるモジュールに配置される場合には、ＣＰＵ１０３に対するリセット信号ｒｓｔ＿ｃｐｕを、リセット状態遷移信号ｒｓｔと同様にし、ＣＰＵ１０３が不揮発保持無効領域を含む領域にアクセスした場合に、ウェイトを要求するようにすればよい。
【００７６】
また、図５（Ｂ）に示される第２動作モードなど、例外処理ベクタ領域がＮＶＲＡＭ１０１に存在しない場合も同様にすることができる。リセット状態遷移信号ｒｓｔの波形立上りの検出後、リセット状態遷移信号ｒｓｔの波形立下りを待たずに、ライト状態に遷移するようにしてもよい。いずれにせよ、ＣＰＵ１０３によるＮＶＲＡＭ１０１のアクセス以前に、自動書き換えを行うようにすればよい。マイクロコンピュータ１００が複数の動作モードを持つ場合にも、動作モードによらずに自動書き換えを行うようにする。
【００７７】
図１３には、ＣＰＵ１０３のリセット解除時のフローチャートが示される。
【００７８】
リセットが解除されると、ＣＰＵ１０３はリセット例外処理を行う。
【００７９】
リセット例外処理時、ＣＰＵ１０３は、不揮発保持無効領域に対するライトを行う（ＮＶＲＡＭライト１〜４）ステップを持つようにする。すなわち、ＮＶＭＣ１０２によらず、ＮＶＲＡＭ１０１の自動書き換えが行われる。このための、ＣＰＵ１０３の実行部１０５に、アドレスやデータの生成論理、すなわち、通常の命令実行のアドレスやデータのセレクタを設け、制御部１０４に、前記セレクタの制御、バスコマンドの発生、フローの制御のための論理を設ける。それによりＣＰＵ１０３は、例外処理ベクタをリードし、プログラムの先頭命令に分岐する。これは、通常のＣＰＵと同様である。
【００８０】
自動書き換えのためのプログラムを、リセット例外処理後に実行するようにし、その後に、本来のプログラムの先頭命令に分岐するようにしてもよい。あるいは、ＤＭＡコントローラなどを持ち、リセット後に、かかるＤＭＡコントローラを自動的に起動して、上記不揮発保持無効領域に対するライトを行うようにしてもよい。
【００８１】
図１４には、上記マイクロコンピュータ１００の応用例が示される。また、図１５には、図１４に示される応用例における処理フローチャートが示される。
【００８２】
図１４に示されるように、マイクロコンピュータ１００は、それに接続された他のマイクロコンピュータ２００との間で通信を行う。そしてマイクロコンピュータ１００は、通信の内容に従って所要の動作を行う。尚、接続先は変更される。通信の情報には、接続先のマイクロコンピュータに固有のＩＤ情報や鍵情報などの秘密情報が含まれ、接続先のマイクロコンピュータ２００の認証を行うことがある。ＩＤ情報や鍵情報などの秘密情報は、通信時には、暗号化などを行って接続先から入力されたとしても、マイクロコンピュータ内部では復号されたデータ、又は暗号化する前のデータが存在する。これを、ＮＶＲＡＭ１０１に保持していれば、それが、悪意のプログラム実行によってリードされる可能性が高まる。通信時に暗号化を行い、秘密を保持するのであるから、マイクロコンピュータ内の復号されたデータなどの秘密情報をリードされることも阻止すべきである。かかる秘密情報を不所望に保持しないために、所要の処理終了後に、当該秘密情報を、マイクロコンピュータ１００のプログラムで初期化又は書き換えることも考えられるが、初期化又は書き換える前に、悪意を持って電源遮断などをされれば、初期化又は書き換えができないことも考えられる。
【００８３】
このような使用方法において、マイクロコンピュータ１００は、リセット後に不揮発保持無効領域の初期化又は書き換え（不揮発保持無効化処理）を行うようにする（Ｓ１）。その後、マイクロコンピュータ１００は、ＮＶＲＡＭ１０１上に格納されたプログラムに従い、ＣＰＵ１０３の制御に基づき、接続先のマイクロコンピュータ２００のＩＤ情報や鍵情報は、当該接続時には、ＳＣＩ１１０を介して入力される（Ｓ２）。入力されたデータは、一旦、ＮＶＲＡＭ１０１にライトされて保持される。このデータが暗号化されたデータであれば、ＮＶＲＡＭ１０１の不揮発保持領域に格納してよい（Ｓ３）。ＣＰＵ１０３の制御により暗号機能部１０６において、入力データの復号化処理などが行われる（Ｓ４）。暗号機能部１０６には、適宜、鍵情報などが与えられる。ＩＤ情報や鍵情報、および復号化されたデータ（平文）は必要に応じて任意のタイミングにおいて不揮発保持無効領域に格納（ライト）され、悪意によるリードが抑止される（Ｓ５）。
【００８４】
逆に、暗号化を行う場合は、元のデータ（平文）を不揮発保持無効領域に格納するようにする。暗号化されたデータは、不揮発保持領域に格納してもよい。暗号機能がデータを処理する場合も、平文を不揮発保持無効領域に格納するようにし、一方、暗号を不揮発保持領域に格納することができる。この復号されたデータは、認証などのＣＰＵ１０３の作業に随時参照（リード／ライト）される（Ｓ６）。認証が確認されれば、当該システムに所要の処理が行われる（Ｓ７）。認証がなされなければ、処理を行わずに終了する。
【００８５】
接続先のマイクロコンピュータとの接続が解消されれば、接続先のマイクロコンピュータ２００に固有のＩＤ情報や鍵情報などの秘密情報は保持する必要はない。別のマイクロコンピュータと接続する場合には、不揮発保持無効領域に対し別のＩＤ情報や鍵情報を入力し、同様の処理が行われる。
【００８６】
本マイクロコンピュータ１００においては、上記のＩＤ情報や鍵情報、復号化されたデータなどの、保持すべきでない（消去すべき）秘密情報を、前記不揮発保持無効領域に格納しておけば、前記のようなマイクロコンピュータ１００のプログラムで初期化又は書き換えする手間も不要であるし、悪意により動作中に電源が遮断されたような場合も、マイクロコンピュータ１００の次の電源投入時に、当該マイクロコンピュータ１００の動作開始前に書き換えされるから、悪意／善意によらず、リードすることができないので、セキュリティの強化を図ることができる。
【００８７】
上記例によれば、以下の作用効果を得ることができる。
【００８８】
（１）ランダムアクセスによってリード・ライト可能なＮＶＲＡＭ１０１を、ＣＰＵ１０３のプログラム領域と作業用データ領域として使用することにより、ハードウェア資源を節約できるし、製造工程の簡略化に寄与できるので、製造費用を低減できる。ＮＶＲＡＭ１０１とは別に一般的なＲＡＭを搭載していないので、当該ＲＡＭにおける記憶データを保持するための電流を考慮しないで良いし、ソフトエラー対策も不要となる。この場合において、上記ＮＶＲＡＭ１０１の記憶領域の一部に不揮発保持が無効とされる領域が設けられているため、この領域を、秘密を保持すべきデータの格納用とすることにより、この秘密を保持すべきデータが上記ＮＶＲＡＭ１０１に不揮発保持されることが回避される。これによって、ランダムアクセスによってリード・ライト可能な不揮発性記憶装置（ＮＶＲＡＭ）を、プログラム／データ兼用のメモリとして搭載した場合のセキュリティの向上を達成することができる。
【００８９】
（２）ＮＶＭＣ１０２で、自動書き換え（不揮発保持無効領域に対する無効化処理）を行うことにより、ＣＰＵ１０３は既存のものを使用することができる。ＣＰＵ１０３を停止して、ＮＶＲＡＭ１０１他のモジュールを、外部からリード／ライトするようなテストモードなどがあっても、自動書き換えを行うことができる。
【００９０】
（３）ＮＶＭＣ１０２による自動書き換え中、ＣＰＵ１０３をリセット状態に保持すれば、マイクロコンピュータ１００の内部状態を簡略化できる。
【００９１】
（４）例外処理ベクタ領域が、不揮発保持無効領域を含むＮＶＲＡＭ１０１以外に存在する場合は、自動書き換え中も、ＣＰＵ１０３を動作させ、自動書き換え中のＮＶＲＡＭ１０１に対するアクセスがあったときにウェイトを要求することにより、不所望の待機時間を抑止することができる。
【００９２】
（５）ＣＰＵ１０３によって、自動書き換えを行うことにより、ＮＶＭＣ１０２を不要とすることができる。
【００９３】
（６）ＮＶＲＡＭ１０２のプログラム用に使用する領域を、ライト禁止にすることによって、フラッシュメモリなどに相違して、書き換えが容易であることによる、不所望のプログラムの書き換えを抑止できる。
【００９４】
図２には、上記マイクロコンピュータ１００における主要部の別の構成例が示される。
【００９５】
図２に示されるマイクロコンピュータ１００は、二つの半導体チップによって構成される。すなわち、図２に示されるマイクロコンピュータ１００が、図１に示されるのと大きく相違するのは、それぞれＮＶＲＡＭ１０１及びＮＶＭＣ１０２に対応するＮＶＲＡＭ２０１及びＮＶＭＣ２０２が、ＣＰＵ１０３とは別のチップ３００に形成されている点である。また、このチップ３００内には、チップ３００内の電源電圧を検出可能な電源検出回路２１４を含むＲＥＳＣ２１３が設けられ、このＲＥＳＣ２１４によって形成されるリセット状態遷移信号によってＮＶＭＣ２０２がリセットされるようになっている。また、ＮＶＭＣ２０２は、外部バス１１７及びＢＵＦ１０８を介してＩバス１１５に結合される。ＮＶＲＡＭ２０１、ＮＶＭＣ２０２、及びＲＥＳＣ２１３の機能は、それぞれ図１に示されるＮＶＲＡＭ２０１、ＮＶＭＣ２０２、及びＲＥＳＣ１１３と同様とされるため、その詳細な説明は省略する。このようにマイクロコンピュータシステム１００が複数の半導体チップによって構成される場合にも、図１に示される場合と同様の作用効果を得ることができる。
【００９６】
図４には、ＮＶＭＣ１０２の別の構成例が示される。
【００９７】
ＮＶＭＣ１０２は、アドレス判定部１０３３、リード制御部１０３１を含んで成る。アドレス判定部１０３３は、動作開始後に、リセットによってリード阻止状態に遷移される。この状態では、アドレスの判定結果に従い、不揮発保持無効領域以外のリードは許可される。また、不揮発保持無効領域のリードは禁止される。ライトは領域によらず許可される。さらに、不揮発保持無効領域へのライトが観測される。不揮発保持無効領域の全てのアドレスにライトされたことが判定され、リード許可状態に遷移される。この状態では、領域によらず、リードを許可する。リード制御部１０３１は、アドレス判定のリード許可／禁止に従って、ＮＶＲＡＭ１０１のリードの許可／禁止が行われる。これによって、不揮発保持無効領域は、ライトするまでリードすることができないから、動作開始以前の内容をリードすることを阻止できる。ライトした内容はリードできるから、作業領域として使用することに不都合はない。リードの禁止は、ＮＶＲＡＭ１０１に対するリード信号を抑止してもよいし、リードデータをマスクするようにしてもよい。
【００９８】
図１２には、図４に示される構成を採用した場合のマイクロコンピュータ１００の動作タイミングが示される。
【００９９】
リセット状態遷移信号ｒｓｔが論理値‘１’となると、ＮＶＭＣ１０２はリード阻止状態に遷移される。ＣＰＵ１０３による、所定のアドレス（ａｄｄｒ−１〜ａｄｄｒ−４）に対するライトを検出すると、リード許可状態に遷移される。この例では、４回のライト後に遷移するようにしている。尚、１つのライト毎に、当該アドレスに対するリードを許可するようにしてもよい。
【０１００】
リード禁止を行うことで、リセット後のＣＰＵ１０３のプログラム実行を早期に開始することができる。プログラムの実行によって、作業領域の初期化を行う場合は、二重にライトしたり、使用しないアドレスにライトしたりすることがない。
【０１０１】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【０１０２】
例えば、ＮＶＲＡＭ１０１は、ＭＲＡＭに限らず、ランダムなライトアクセスが可能で、不揮発保持が可能であればよい。ＮＶＲＡＭ１０１の構成も任意にでき、例えば、プログラム用とデータ用に複数のＮＶＲＡＭ１０１を持ってもよい。プログラム用とデータ用に、一種類のＮＶＲＡＭ１０１で構成することが望ましい。ＮＶＲＡＭ１０１とＮＶＭＣ１０２とを一体的に構成してもよい。メモリアレイとＮＶＭＣに相当する機能を持てばよい。ＮＶＲＡＭは、ＥＣＣ（Error-Correcting Code）によるエラー訂正が行えるように、データとシンドロームを持つようにしてもよい。
【０１０３】
また、リード禁止の手段も任意にできる。動作開始以前の内容をリードできず、動作開始以後にライトした内容をリードできるものであればよい。
【０１０４】
自動書き換え（不揮発保持無効領域に対する無効化処理）用データの内容も任意にできる。古いデータを保持しなければよく、固定値のほか、ランダムなものであってもよい。不揮発保持無効化とは、動作開始以前にすでに格納されているデータをリードできなくすることであって、フラッシュメモリのように、記憶素子の状態を、書き込み可能な状態に戻すことに限らない。不揮発保持無効化動作ということができる。自動書き換えのためのアドレス配置やアドレス範囲も任意にできる。自動書き換えのためのアドレス範囲については、フラッシュメモリで採用されているようにブロック単位で一括書き込みを可能とする構成を採ってもよい。
【０１０５】
さらに、自動書き換えのためのアドレス範囲については、ＣＰＵ１０３のプログラム実行によるライトシーケンスと異なるようにしてもよい。例えば、アドレスに対応したバイト領域をライトする代わりに、ビット０のみを、８アドレスに対してライトしてもよい。バイト単位で意味を持つデータは、そのうちの１ビットを書き換えるだけでも意味をなさなくなるからである。上記ＥＣＣによるエラー訂正を行っている場合は、シンドロームのみをライトするようにしてもよい。
【０１０６】
マイクロコンピュータの構成や、アドレス空間の大きさや配置についても限定されない。そのほかや機能ブロックなども種々変更できる。ＣＰＵ１０３や、暗号機能部１０６の他に、ＤＭＡコントローラなどのように、ＮＶＲＡＭ１０１に対するライトを可能とするモジュールを搭載してもよい。
【０１０７】
マイクロコンピュータ１００と通信を行うべき相手は、マイクロコンピュータに限定されない。通信すべきデータは、ＩＤ情報や鍵情報に限定されず、任意の著作物などであってもよい。不揮発保持無効領域に格納すべきデータとしては、ＩＤ情報や鍵情報に限定されず、マイクロコンピュータ内部で生成又は復号化される全ての秘密情報に対応できる。
【０１０８】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるシングルチップマイクロコンピュータに適用した場合について説明したが、本発明はそれに限定されるものではなく、ランダムアクセスを可能とする不揮発性記憶装置を含むマイクロコンピュータに広く適用することができる。
【符号の説明】
【０１０９】
１０１，２０１  ＮＶＲＡＭ
１０２，２０２  ＮＶＭＣ
１０３  ＣＰＵ
１０４  制御部
１０５  実行部
１０６  暗号機能部
１０７  Ｉ／Ｏ部
１０８  ＢＵＦ
１０９  ＷＤＴ
１１０  ＳＣＩ
１１１  ＢＳＣ
１１２  ＩＮＴ
１１３，２１３  ＲＥＳＣ
１１４，２１４  電源検出回路
１１５  Ｉバス
１１６  Ｐバス
１１７  外部バス
１２１  Ｉ／Ｏレジスタ
１２２  Ａ／Ｄ変換器
１０２１  マルチプレクサ
１０２２  ライト制御部
１０２３  アドレス判定部
１０３１  リード制御部
【図１】
2011141888.tif 000003
【図２】
2011141888.tif 000004
【図３】
2011141888.tif 000005
【図４】
2011141888.tif 000006
【図５】
2011141888.tif 000007
【図６】
2011141888.tif 000008
【図７】
2011141888.tif 000009
【図８】
2011141888.tif 000010
【図９】
2011141888.tif 000011
【図１０】
2011141888.tif 000012
【図１１】
2011141888.tif 000013
【図１２】
2011141888.tif 000014
【図１３】
2011141888.tif 000015
【図１４】
2011141888.tif 000016
【図１５】
2011141888.tif 000017