(57)【要約】 【課題】  不揮発性記憶装置の書込み消去によってデータ処理のリアルタイム性を損なわず、不揮発性記憶装置に対する特性評価などを詳細に行うことを可能にする。【解決手段】  半導体集積回路（１）は、書込み及び消去可能な不揮発性メモリモジュール（４，５）とＣＰＵ（２）とを有する。不揮発性メモリモジュールはローカルＣＰＵ（１２）を備える。不揮発性メモリモジュールに対する書込み及び消去制御をＣＰＵの逐次命令実行によって可能にする第１動作モードと、ＣＰＵから発行されたコマンドに応答するローカルＣＰＵの逐次命令実行によって書込み及び消去制御を可能にする第２動作モードとを有する。不揮発性メモリモジュールに対する書込み及び消去をその制御プログラムに従って実行するから、試作評価、実動作の双方において柔軟な制御が可能になる。ローカルＣＰＵの処理中にＣＰＵはその他の処理を実行可能であり、リアルタイム性の維持が可能になる。【選択図】        図１
2007034554.tif 000002
【特許請求の範囲】
【請求項１】
電気的に書込み及び消去可能な不揮発性メモリモジュールとＣＰＵとを有する半導体集積回路であって、
前記不揮発性メモリモジュールはローカルＣＰＵを備え、
前記不揮発性メモリモジュールに対する書込み及び消去制御を前記ＣＰＵの逐次命令実行によって可能にする第１の動作と、前記ＣＰＵから発行された所定のコマンドに応答して前記ローカルＣＰＵの逐次命令実行によって前記書込み及び消去制御を可能にする第２の動作とを選択可能である半導体集積回路。
【請求項２】
前記半導体集積回路のテストモードにおいて前記第１の動作又は第２の動作が選択可能にされ、
前記半導体集積回路の通常モードにおいて前記第２動作が可能にされる請求項１記載の半導体集積回路。
【請求項３】
前記通常モードにおいて前記不揮発性メモリモジュールのアドレスにデータを書き込みアクセスする指示の発行が前記所定のコマンドとみなされる請求項２記載の半導体集積回路。
【請求項４】
前記不揮発性メモリモジュールのアドレスは、前記不揮発性メモリモジュールの不揮発性メモリアレイに割り当てられたアドレス又は前記不揮発性メモリアレイの消去領域を指定するレジスタに割り当てられたアドレスである請求項３記載の半導体集積回路。
【請求項５】
前記テストモードにおいて前記ＣＰＵから発行される所定のテストコマンドが前記所定のコマンドとみなされる請求項２記載の半導体集積回路。
【請求項６】
前記不揮発性メモリモジュールは、電気的に書込み及び消去可能な不揮発性記憶装置とその制御装置とを備え、
前記制御装置は、前記ローカルＣＰＵと共に揮発性記憶装置を備え、
前記揮発性記憶装置は前記ＣＰＵによって書込みアクセス可能にされ、
前記不揮発性記憶装置は前記ＣＰＵによって前記揮発性記憶装置に転送される前記ローカルＣＰＵの動作プログラムを保有し、
前記ローカルＣＰＵは前記揮発性記憶装置が保持する前記動作プログラムを実行する請求項１記載の半導体集積回路。
【請求項７】
前記ＣＰＵは、パワーオンリセットの指示に応答して、前記不揮発性記憶装置から前記揮発性記憶装置へ前記ローカルＣＰＵの動作プログラムを転送する請求項６記載の半導体集積回路。
【請求項８】
第１のデータ処理装置と、
電気的に書込み及び消去可能な不揮発性記憶装置と、
前記不揮発性記憶装置の書込み及び消去を制御するための書込み消去制御回路と、
前記第１のデータ処理装置とインタフェースされるインタフェース回路と、
前記インタフェース回路によって起動される第２のデータ処理装置と、を有し、
前記第１のデータ処理装置が前記書込み消去制御回路をアクセスすることによって前記不揮発性記憶装置の書込み及び消去を行う第１の動作と、第２のデータ処理装置が前記書込み消去制御回路をアクセスすることによって前記不揮発性記憶装置の書込み及び消去を行う第２の動作とを選択可能なマイクロコンピュータ。
【請求項９】
前記マイクロコンピュータのテストモードにおいて前記第１の動作又は第２の動作が選択可能にされ、
前記マイクロコンピュータの通常モードにおいて前記第２動作が可能にされる請求項８記載のマイクロコンピュータ。
【請求項１０】
前記インタフェース回路は、前記通常モードにおいて前記不揮発性記憶装置のアドレスにデータを書き込みアクセスする指示が前記第１のデータ処理装置から発行されることに応答して前記第２のデータ処理装置を第１の割り込みによって起動する請求項９記載のマイクロコンピュータ。
【請求項１１】
第１の割り込みによって起動された前記第２のデータ処理装置は、前記アクセスする指示に係るアドレスにそのデータを書き込む処理を実行する請求項１０記載のマイクロコンピュータ。
【請求項１２】
前記インタフェース回路は、前記通常モードにおいて前記書込み消去制御回路の所定のレジスタにデータを書き込みアクセスする指示が前記第１のデータ処理装置から発行されることに応答して前記第２のデータ処理装置を第２の割り込みによって起動する請求項９記載のマイクロコンピュータ。
【請求項１３】
第２の割り込みによって起動された前記第２のデータ処理装置は、前記所定のレジスタへのデータ書込みによって指定される不揮発性記憶装置の領域に対する消去処理を実行する請求項１２記載のマイクロコンピュータ。
【請求項１４】
前記インタフェース回路は、前記テストモードにおいて前記第１のデータ処理装置から発行される所定のテストコマンドに応答して前記第２のデータ処理装置を起動する請求項９記載のマイクロコンピュータ。
【請求項１５】
前記第１のデータ処理装置は、第１のバスによって前記不揮発性記憶装置の読出し動作が可能とされ、
前記第１のデータ処理装置は、第２のバスによって前記インタフェース回路への読出し及び書込みが可能にされる請求項８記載のマイクロコンピュータ。
【請求項１６】
前記揮発性記憶装置を有し、前記揮発性記憶装置は前記第２のデータ処理装置のプログラムを格納し、
前記揮発性記憶装置は、前記インタフェース回路を介して第１のデータ処理装置によるライトアクセスが可能にされる請求項８記載のマイクロコンピュータ。
【請求項１７】
前記書込み消去制御回路は、前記不揮発性記憶装置の書込み及び消去の動作モードを指定する込み消去コントロールレジスタを有する請求項８記載のマイクロコンピュータ。
【請求項１８】
前記書込み消去制御回路は、前記不揮発性記憶装置の書込み又は消去に使用する高電圧の印加時間又は印加電圧の少なくとも一方の微調整を指示するトリミングレジスタを有する請求項１７記載のマイクロコンピュータ。
【請求項１９】
バス制御回路を有し、前記バス制御回路は、前記第２のデータ処理装置によるアクセス要求又は前記インタフェース回路に与えられた第１のデータ処理装置によるアクセス要求に応答して、前記書込み消去制御回路、前記不揮発性記憶装置、及び前記揮発性記憶装置に対するアクセスを実現可能である請求項８記載のマイクロコンピュータ。
【請求項２０】
前記インタフェース回路は、前記第１の動作モードにおいて、前記第１のデータ処理装置による所定のデータの書き込みを検出して、前記第２のデータ処理装置を起動する請求項８記載のマイクロコンピュータ。
【請求項２１】
前記インタフェース回路は、前記第１のデータ処理装置が書込み可能であって前記第２のデータ処理装置が読出し可能なコントロールレジスタと、前記第２のデータ処理装置が書込み可能であって前記第１のデータ処理装置が読出し可能なステータスレジスタと、の少なくとも一方を有する請求項８記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は電気的に書き換え可能な不揮発性記憶装置を備えたマイクロコンピュータ更には半導体集積回路にかかり、例えば、電気的に書込み及び消去可能なフラッシュメモリを内蔵した、シングルチップマイクロコンピュータに利用して有効な技術に関するものである。
【背景技術】
【０００２】
特許文献１にはフラッシュメモリを内蔵したシングルチップマイクロコンピュータについて記載がある。これに記載のシングルチップマイクロコンピュータは中央処理装置（ＣＰＵ）に接続されたデータ保持用のランダムアクセスメモリ（ＲＡＭ）とともにフラッシュメモリを備える。フラッシュメモリはＣＰＵのプログラムやデータの保持に利用される。フラッシュメモリによって、その内容を、随時書換え可能にし、使い勝手を向上することができる。特許文献１に記載されたマイクロコンピュータでは、オンチップのフラッシュメモリに対する書込み／消去を内蔵ＣＰＵに制御させる動作モードと外部のＰＲＯＭライタに制御させる動作モードとを選択可能になっている。ＣＰＵで制御する場合、ＣＰＵは書込み／消去を制御する専用のプログラムを逐次実行ながら、消去電圧の印加と消去ベリファイの制御を繰り返し、また、書込み電圧の印加と書込みベリファイの制御を繰り返す。ＰＲＯＭライタで制御する動作モードが設定されると、マイクロコンピュータは外部から見かけ上フラッシュメモリ単体チップと同じように見える。この状態でＰＲＯＭライタが消去電圧の印加及び消去ベリファイの制御、書込み電圧の印加及び書込みベリファイの制御を繰り返し行う。
【０００３】
一方特許文献２に記載されたメモリ単体チップとしてのフラッシュメモリは、外部から供給される書込みコマンドや消去コマンドに応答して書込み及び消去の制御を内部で行う専用ハードウェアを有する。専用ハードウェアを備える場合、システム上外部のＣＰＵはフラッシュメモリに書込みや消去のコマンドを発行するだけでよい。ＣＰＵはフラッシュメモリの書込み及び消去の動作制御に占有されない。
【０００４】
【特許文献１】特開平５−２６６２２０号公報
【特許文献２】特開平１０−９２９５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明者はマイクロコンピュータにオンチップされたフラッシュメモリの書込み及び消去に対するＣＰＵ制御と専用ハードウェア制御について検討した。
【０００６】
半導体プロセスの微細化に従い、フラッシュメモリの書込み及び消去の制御は複雑になっている。試作評価時に、書込み及び消去の時間や、あるいは与える電圧などを変更して評価し、最適な制御を得られるように、評価を行う必要がある。専用のハードウェアで制御する方式では、このような評価が困難である。製造工程において、個体に即した制御を実現する場合も同様である。
【０００７】
一方、書込み及び消去を制御する専用のプログラムをＣＰＵが実行して、フラッシュメモリの書込み及び消去を実現する場合、その制御に占有されるＣＰＵは容易に割込みを受付けることができない。シングルチップマイクロコンピュータは機器制御に用いられ、機器制御においては、所定のイベント（割込み発生など）から、これに対応した処理を所定の時間内で行うというリアルタイム性が要求されるから、割込みを受付けることができない時間が存在することは望ましくない。
【０００８】
本発明の目的は、不揮発性記憶装置に対する書込み及び消去によってデータ処理のリアルタイム性が損なわれず、しかも、不揮発性記憶装置に対する試作評価、並びに製造過程における特性評価などを詳細に行うことを可能にするマイクロコンピュータ、更には半導体集積回路を提供することにある。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１１】
〔１〕本発明に係る半導体集積回路（１）は、電気的に書込み及び消去可能な不揮発性メモリモジュール（４，５）とＣＰＵ（２）とを有する。前記不揮発性メモリモジュールはローカルＣＰＵ（１２）を備える。この半導体集積回路は、前記不揮発性メモリモジュールに対する書込み及び消去制御を前記ＣＰＵの逐次命令実行によって可能にする第１の動作と、前記ＣＰＵから発行されたコマンドに応答する前記ローカルＣＰＵの逐次命令実行によって前記書込み及び消去制御を可能にする第２の動作とを選択可能である。
【００１２】
前記ＣＰＵとローカルＣＰＵの何れも不揮発性メモリモジュールに対する書込み及び消去をその制御プログラムに従って実行するから、試作評価、製造過程における特性評価、システム上での実動作のいずれにおいても、柔軟で、最適な書込み及び消去動作を得る事が可能になる。
【００１３】
第１の動作では、ＣＰＵがコマンドを発行した後は、ローカルＣＰＵが処理を行うから、ＣＰＵはその他の処理を実行可能であり、例えば割込みを受付けて、リアルタイム性を維持することが可能になる。
【００１４】
本発明の具体的な一つの形態として、前記半導体集積回路のテストモードにおいて前記第１の動作又は第２の動作が選択可能にされ、前記半導体集積回路の通常モードにおいて前記第２動作が可能にされる。これにより、テストモードではＣＰＵにテスト用プログラムを実行させ、その一環として前記第１動作によって書込み消去動作の試作評価やテスト評価を自在に行うことができる。このようなテストモードにおいては、リアルタイム性を要求されるイベントの発生は考え難く、ＣＰＵが割込を受付けられない状態であったとしても特段の悪影響は生じない。実動作を行う通常モードではローカルＣＰＵにそのような評価を経たプログラムを実行させれば、最適条件で書込み及び消去動作を制御することができる。通常モードにおいてＣＰＵは不揮発性メモリモジュールの書込み及び消去制御に占有されず、リアルタイム性の維持が可能である。
【００１５】
本発明の更に具体的な一つの形態として、前記通常モードにおいて前記不揮発性メモリモジュールのアドレスにデータを書き込みアクセスする指示の発行が前記所定のコマンドとみなされる。例えば前記不揮発性メモリモジュールのアドレスは、前記不揮発性メモリモジュールの不揮発性メモリアレイに割り当てられたアドレス又は前記不揮発性メモリアレイの消去領域を指定するレジスタに割り当てられたアドレスである。前者のアドレスに対する書込みアクセス指示を書き込みコマンドとみなし、後者のアドレスに対する書込みアクセス指示を消去コマンドとみなすことによって、書込み指示と消去指示を区別可能になる。
【００１６】
前記テストモードにおいては前記ＣＰＵから発行される所定のテストコマンドを前記所定のコマンドとみなせばよい。これによりテストモードにおいて第１の動作によって得られた評価結果を反映した書込み消去プログラムや書込み消去条件を適用して実際にローカルＣＰＵの制御による書込み消去動作を容易に検証することができる。
【００１７】
本発明の具体的な別の一つの形態として、前記不揮発性メモリモジュールは電気的に書き換え可能な不揮発性記憶装置（４）とその制御装置（５）とを有する。前記制御装置は前記ローカルＣＰＵ（１２）と共に揮発性記憶装置（１５）を備える。前記揮発性記憶装置は前記ＣＰＵによって書き込みアクセス可能とされる。前記不揮発性記憶装置は前記ローカルＣＰＵの動作プログラムを保有し、前記ＣＰＵによって前記ローカルＣＰＵの動作プログラムを前記揮発性記憶装置に転送される。前記ローカルＣＰＵは前記揮発性記憶装置に転送された前記動作プログラムを読み出し実行する。前記不揮発性記憶装置から前記揮発性記憶装置に前記ローカルＣＰＵの動作プログラムを転送するのは、パワーオンリセットの指示に応答して、前記ＣＰＵが行えば良い。
【００１８】
揮発性記憶装置は前記ＣＰＵによって書き込みアクセス可能とされるから、テストモードにおける評価結果に従って揮発性記憶装置が保持する前記動作プログラムを随時修正することができる。これにより、テストモードにおいてローカルＣＰＵによる書込み及び消去動作を随時変更可能である。
【００１９】
〔２〕本発明に係るマイクロコンピュータ（１）は、第１のデータ処理装置（２）と、電気的に書込み及び消去可能な不揮発性記憶装置（４）と、前記不揮発性記憶装置の書込み及び消去を制御するための書込み消去制御回路（１６）と、前記第１のデータ処理装置とインタフェースされるインタフェース回路（１３）と、前記インタフェース回路によって起動される第２のデータ処理装置（１２）と、を有する。このマイクロコンピュータは、前記第１のデータ処理装置が前記書込み消去制御回路をアクセスすることによって前記不揮発性記憶装置の書込み及び消去を行う第１の動作と、第２のデータ処理装置が前記書込み消去制御回路をアクセスすることによって前記不揮発性記憶装置の書込み及び消去を行う第２の動作とを選択可能である。
【００２０】
前記第１及び第２のデータ処理装置の何れも不揮発性記憶装置に対する書込み及び消去をその制御プログラムに従って実行するから、試作評価、製造過程における特性評価、システム上での実動作のいずれにおいても、柔軟で、最適な書込み及び消去動作を得る事が可能になる。
【００２１】
第２の動作において第１のデータ処理装置が前記インタフェース回路を介して第２のデータ処理装置を起動した後は、第２のデータ処理装置が書込み及び消去の処理を行うから、第１のデータ処理装置はその他の処理を実行可能であり、例えば割込みを受付けて、リアルタイム性を維持することが可能になる。
【００２２】
本発明の具体的な一つの形態として、前記マイクロコンピュータのテストモードにおいて前記第１の動作又は第２の動作が選択可能にされ、前記マイクロコンピュータの通常モードにおいて前記第２動作が可能にされる。これにより、テストモードでは第１のデータ処理装置にテスト用プログラムを実行させ、その一環として前記第１の動作によって書込み消去動作の試作評価やテスト評価を自在に行うことができる。実動作を行う通常モードでは第２のデータ処理装置にそのような評価を経たプログラムを実行させれば、最適条件で書込み及び消去動作を制御することができる。通常モードにおいて第１のデータ処理装置は不揮発性記憶装置の書込み及び消去制御に占有されず、リアルタイム性の維持が可能である。
【００２３】
本発明の更に具体的な一つの形態として、前記インタフェース回路は、前記通常モードにおいて前記不揮発性記憶装置のアドレスにデータを書き込みアクセスする指示が前記第１のデータ処理装置から発行されることに応答して前記第２のデータ処理装置を第１の割り込みによって起動する。第１の割り込みによって起動された前記第２のデータ処理装置は、前記書き込みアクセスする指示に係るアドレスにそのデータを書き込む処理を実行する。
【００２４】
本発明の別の具体的な一つの形態として、前記インタフェース回路は、前記通常モードにおいて前記書込み消去制御回路の所定のレジスタにデータを書き込みアクセスする指示が前記第１のデータ処理装置から発行されることに応答して前記第２のデータ処理装置を第２の割り込みによって起動する。第２の割り込みによって起動された前記第２のデータ処理装置は、前記所定のレジスタへのデータ書き込みによって指定される不揮発性記憶装置の領域に対する消去処理を実行する。
【００２５】
テストモードでは、前記インタフェース回路は前記第１のデータ処理装置から発行される所定のテストコマンドに応答して前記第２のデータ処理装置を起動する。これによりテストモードにおいて第１の動作によって得られた評価結果を反映した書込み消去プログラムや書込み消去条件を適用して実際に第２のデータ処理装置の制御による書込み消去動作を容易に検証することができる。
【００２６】
本発明の具体的な別の一つの形態として、第１のデータ処理装置は、第１のバス（ＩＢＵＳ）によって前記不揮発性記憶装置の読出し動作が可能とされ、第１のデータ処理装置は、第２のバス（ＰＢＵＳ）によって前記インタフェース回路への読出し及び書込みが可能にされる。不揮発性記憶装置に対する書込み及び消去動作用のバスを、通常モードにおける読出し動作用のバスと分離することにより、読出し用の第１のバスの、アクセスステートを短縮したり、バス幅を拡張したりするのが容易になる。不揮発性記憶装置等に対する読出し動作の高速化が容易になり、また、不揮発性記憶装置の接続による第１バスの負荷の増大を極力抑えることが可能になる。
【００２７】
本発明の具体的な更に別の一つの形態として、マイクロコンピュータは揮発性記憶装置（１５）を有する。前記揮発性記憶装置は前記第２のデータ処理装置のプログラムを格納する。前記揮発性記憶装置は、前記インタフェース回路を介して第１のデータ処理装置によるライトアクセスが可能にされる。揮発性記憶装置は前記第１のデータ処理装置によって書き込みアクセス可能とされるから、テストモードにおける評価結果に従って揮発性記憶装置が保持する前記動作プログラムを随時修正することができる。これにより、テストモードにおいて第２のデータ処理装置による書込み及び消去動作を随時変更可能である。
【００２８】
本発明の具体的な更に別の一つの形態として、前記書込み消去制御回路は、前記不揮発性記憶装置の書込み及び消去の動作モードを指定する書込み消去コントロールレジスタを有する。
【００２９】
前記書込み消去制御回路は、前記不揮発性記憶装置の書込み又は消去に使用する高電圧の印加時間、高電圧を印加するための待機時間又は印加電圧の少なくとも一方の微調整を指示するトリミングレジスタを有する。不揮発性メモリセルの特性に応じた書込み及び消去処理の微調整が可能になる。
【００３０】
本発明の具体的な更に別の一つの形態として、マイクロコンピュータは前記第２のデータ処理装置によるアクセス要求又は前記インタフェース回路に与えられた第１のデータ処理装置によるアクセス要求に応答するバス制御回路（１４）を有する。このバス制御回路は前記要求に応答して、前記書込み消去制御回路、前記不揮発性記憶装置、及び前記揮発性記憶装置に対するアクセスを実現する。
【００３１】
本発明の具体的な更に別の一つの形態として、前記第２のデータ処理装置の起動には、上述の第１のデータ処理装置による前記不揮発性記憶装置に対する書込みアクセスの検出に代えて、前記第１のデータ処理装置による所定のデータの書き込みを検出するようにしてもよい。所定のデータの書込みとは例えばコマンドレジスタに対する所定のコマンドの書込みである。
【００３２】
本発明の具体的な更に別の一つの形態として、前記インタフェース回路は、前記第１のデータ処理装置が書込み可能であって前記第２のデータ処理装置が読出し可能なコントロールレジスタと、前記第２のデータ処理装置が書込み可能であって前記第１のデータ処理装置が読出し可能なステータスレジスタと、の少なくとも一方を有してよい。例えばコントロールレジスタは、書込み消去の許可フラグ（ＦＥＮＴＲＹ）等の書込みに割り当てられる。ステータスレジスタはビジーフラグ等の書込みに割り当てられる。
【発明の効果】
【００３３】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００３４】
すなわち、不揮発性記憶装置に対する書込み及び消去によってデータ処理のリアルタイム性を損なわず、しかも、不揮発性記憶装置に対する試作評価、並びに製造過程における特性評価などを詳細に行うことが可能になる。
【発明を実施するための最良の形態】
【００３５】
図１には本発明が適用されたマイクロコンピュータが例示される。同図に示されるマイクロコンピュータ１を構成する回路素子は、公知のＣＭＯＳ（相補型ＭＯＳ）トランジスタやバイポーラトランジスタ等の半導体集積回路技術によって、単結晶シリコンのような１個の半導体基板上に形成される。
【００３６】
マイクロコンピュータ（ＭＣＵ）１は、第１のデータ処理装置としての中央処理装置（ＣＰＵ）２、ランダムアクセスメモリ（ＲＡＭ）３、不揮発性記憶装置としてのフラッシュメモリ（ＦＬＡＳＨ）４、制御装置としてのフラッシュコントロールユニット（ＦＣＵ）５、バスコントローラ（ＢＳＣ）６、周辺回路（ＰＲＨＲＬ）７、Ｉ／Ｏポート（ＩＯＰ）８及びシステムコントローラ（ＳＹＳＣ）９を有する。周辺回路７には、タイマ、パルス出力回路、シリアルコミュニケーションインタフェース、Ａ／Ｄ変換器などが含まれる。図示はしないが、割込みコントローラやクロック発振器などの回路モジュールも搭載される。ＣＰＵ２は命令をフェッチしてデコードする命令制御部と、命令制御部による命令デコード結果に基づいて演算等を行って命令を実行する命令実行部とを有する。ＲＡＭ３はＣＰＵ２のワーク領域とされる。
【００３７】
フラッシュメモリ４はＣＰＵ２のプログラムを格納し、或いは不揮発的に保持すべきデータの格納に利用される。フラッシュメモリ４は、電気的に消去及び書込み可能な多数の不揮発性メモリトランジスタを有する。不揮発性メモリトランジスタには、特に制限されないが、ソースとドレインの間のチャネル形成領域の上に各々絶縁されたフローティングゲートのような電荷蓄積領域とコントロールゲートを積み重ねたスタックドゲート構造を採用可能である。或いはチャネル形成領域の上に選択ゲートとメモリゲートを分離して配置し、メモリゲートとチャンネル形成領域との間にシリコンナイトライドのような電荷蓄積領域を形成したスプリット構造等を採用してもよい。不揮発性メモリトランジスタは電荷蓄積領域に電子が注入される書込みによって閾値電圧が高くされ、書込みによって蓄積された電子の放出又はホールの注入によって閾値電圧が低くされる。例えばメモリゲートと基板の間に高電界を形成し、ソース・ドレイン間電流によって発生されるホットエレクトロンを電荷蓄積領域に注入することによって書込みが行われる。消去の場合にはホットホールを発生させ、これを電荷蓄積領域に注入すればよい。高電界を形成するのに、書込みでは書込みパルス電圧を用い、消去では消去パルス電圧を用いる。不揮発性メモリトランジスタはその閾値電圧の相違として情報を記憶する。１個のメモリセルによる情報記憶は１ビットの２値、或いは２ビット以上の多値の何れであっても良い。
【００３８】
システムコントローラ９は外部のモード端子ＭＤ０〜ＭＤ２及びリセット端子ＲＥＳＥＴ等が接続される。リセット端子ＲＥＳＥＴがローレベルにされると内部の初期化が開始され、リセット端子ＲＥＳＥＴがハイレベルにされてリセット指示が解除されると、ＣＰＵ２は例えばプログラムの先頭アドレスの命令をフェッチして命令実行動作を開始する。リセットの指示が解除されるとき、モード端子ＭＤ０〜ＭＤ２の状態に応じてマイクロコンピュータの動作モードが決定される。例えば通常モード又はテストモードにされる。テストモードは、特に制限されないが、通常モードに比べ、デバイステスト、デバイス評価、更にはシステム評価の便に供する機能を利用可能な動作モードである。
【００３９】
マイクロコンピュータ１は、内部バスＩＢＵＳ、周辺バスＰＢＵＳ、及び外部バスＥＸＢＵＳを有する。夫々のバスは、アドレスバス、データバスの他、バス権要求信号、バスアクノレッジ信号、バスコマンド（またはリード信号、ライト信号、バスサイズ信号）、レディ信号（またはウェイト信号）等の信号線を含む。
【００４０】
内部バスＩＢＵＳは、ＣＰＵ２或いは図示を省略するダイレクトメモリアクセスコントローラ（ＤＭＡＣ）のようなそのほかの内部バスマスタに直接接続されるバスである。内部バスＩＢＵＳにはＲＡＭ３、バスコントローラ６、フラッシュメモリ４、及びＩ／Ｏポート等、少数の回路モジュールが接続される。内部バスＩＢＵＳを介するＲＡＭ３及びフラッシュメモリ４に対する読出しアクセスは１ステートで可能にされる。内部バスＩＢＵＳの接続先が少数であるため、バス幅は任意にでき、例えばそのデータバスは３２ビット幅とされる。
【００４１】
周辺バスＰＢＵＳには、前記周辺回路７、システムコントローラ９、フラッシュコントロールユニット５及びＩ／Ｏポート８などが接続される。周辺バスＰＢＵＳはバスコントローラ６を介して内部バスＩＢＵＳと分離される。これにより、ＣＰＵ２のプログラムリードなどで、主として使用する内部バスＩＢＵＳの負荷を軽減し、アクセスの高速化に資することができる。更に、ＣＰＵ２等が周辺バスＰＢＵＳを使用しないとき、周辺バスの状態を保持することが可能になるから、これによって低消費電力化することができる。ＣＰＵ２が周辺バスＰＢＵＳに接続される回路モジュール内の内部Ｉ／Ｏレジスタをアクセスする場合は、内部バスＩＢＵＳ及びバスコントローラ６を経由して行う。内部Ｉ／Ｏレジスタのアクセスは２ステートで行われる。内部バスＩＢＵＳに比べて周辺バスＰＢＵＳの接続先は多数であるため、周辺バスＰＢＵＳのバス幅を広げると物理的な規模が増加するため、周辺バスＰＢＵＳは例えば１６ビットのデータバスを有する。
【００４２】
内部バスＩＢＵＳと外部バスＥＸＢＵＳは、外部バスバッファ回路（ＢＵＦ）１０によってインタフェースされる。外部バスバッファ回路１０は、入出力ポート８に含まれる。周辺バスＰＢＵＳ及び外部バスＥＸＢＵＳに対するバス制御はバスコントローラ６が行う。
【００４３】
前記通常モードにおける前記フラッシュメモリ４のリード動作は内部バスＩＢＵＳを経由して行う。書込み及び消去を指示するためのコマンド及びデータの供給は周辺バスＰＢＵＳを介してフラッシュコントロールユニット５に対して行う。書込み及び消去動作は、それ自体に時間がかかり、また、書込み及び消去動作の頻度はそれほど高くなく、少なくとも内部バスＩＢＵＳを経由したリード動作より大幅に少ない、ということを考慮したものである。フラッシュコントロールユニット５を内部バスＩＢＵＳに接続すれば内部バスＩＢＵＳの負荷が大幅に増えることになるからである。
【００４４】
フラッシュコントロールユニット５は第２のデータ処理装置としてローカルＣＰＵ（ＦＣＰＵ）１２を備える。通常モードにおいてＦＣＰＵ１２はＣＰＵ２から発行されたコマンドに応答して逐次命令を実行してフラッシュメモリ４に対する書き込み及び消去制御を行うことが可能にされる。ＣＰＵ２はコマンド発行後に書き込み及び消去制御から開放される。テストモードではＣＰＵ２が逐次命令を実行してフラッシュメモリ４に対する書き込み及び消去制御を行うことが可能にされる。ＦＣＰＵ１２の動作プログラムに制限されることなくＣＰＵ２のプログラムに従ってテストや検証のための書き込み及び消去制御を自由に行うことができる。
【００４５】
図２にはフラッシュコントロールユニット５の一例が示される。フラッシュコントロールユニット５は、前記ＦＣＰＵ１２の他に、ＣＰＵインタフェースコントローラ（ＦＩＭＣ）１３、バス制御回路（ＦＢＳＣ）１４、コントロールＲＡＭ（ＣＲＡＭ）１５、書込み消去制御回路（ＦＬＣ）１６、及びローカルバスＦＢＵＳを有する。
【００４６】
フラッシュコントロールユニット５はＣＰＵ２のアドレス空間に配置され、ＣＰＵ２は周辺バスＰＢＵＳを介してフラッシュコントロールユニット５の内部をアクセスすることができる。すなわち、ＣＰＵインタフェースコントローラ１３は周辺バスＰＢＵＳに接続され、ＣＰＵ２からのアクセスに対してフラッシュコントロールユニット５の全体的な制御を行う。第１に、ＣＰＵインタフェースコントローラ１３は割込み要求信号ＩＲＱと対応するベクタを発行してＦＣＰＵ１２を起動する。第２に、ＣＰＵインタフェースコントローラ１３はバス制御回路１４にバスコマンドを発行することによってコントロールＲＡＭ１５及びＦＬＣ１６に対するローカルバスＦＢＵＳ経由のバス制御を行う。コントロールＲＡＭ１５はＦＣＰＵ１２の動作プログラムの格納領域、或いはＦＣＰＵ１２のワーク領域等に用いられる。ＦＬＣ１６は、フラッシュメモリ４に対する動作制御レジスタ（ＦＣＮＴＲ）１８、トリミングレジスタ（ＴＲＭＲ）１９及び消去ブロック指定レジスタ（ＥＢＬＫＲ）１７を有する。ＦＬＣ１６は動作制御レジスタ１８に設定される制御ビットの状態に従ってフラッシュメモリ４の動作を制御する。動作制御レジスタ１８の制御ビットは、例えば書込みイネーブルビットＷＥ、書込み指示ビットＰ、及び消去指示ビットＥ等とされる。書込みイネーブルビットＷＥは論理値１によって書込み消去動作の指示の有効性を示す。書込み指示ビット１は論理値１によって書込みパルス電圧の印加を指示する。消去指示ビットは消去パルス電圧の印加を指示する。前記トリミングレジスタ１９はフラッシュメモリ４の書込みパルス電圧、消去パルス電圧、ドレイン電圧、ソース電圧、ベリファイ電圧の各々の電圧レベルの微調整や、書込みパルス電圧及び消去パルス電圧のパルス幅の微調整を行うためのトリミングデータが設定される。トリミングデータやＦＣＰＵ１２の動作プログラムの初期値はフラッシュメモリ４が保有し、その初期値データはパワーオンリセットに応答してＣＰＵ２がトリミングデータレジスタ１９及びコントロールＲＡＭ１５に内部転送する。トリミングデータレジスタ１９及びコントロールＲＡＭ１５のプログラム領域は通常モードではユーザプログラムを実行しているＣＰＵからの書込みアクセス不可能にされ、保護される。テストモードでは自由にアクセス可能にされる。消去ブロック指定レジスタ１７には消去ブロック又は消去アドレスが指定される。書込みデータ及び書き込みアドレスはフラッシュメモリ内部のデータレジスタ及びアドレスレジスタにセットされる。
【００４７】
前記割り込みによるＦＣＰＵ１２の起動について説明する。ＣＰＵインタフェースコントローラ１３はＣＰＵ２から周辺バスＰＢＵＳを介してアクセス可能にされる内部Ｉ／Ｏレジスタ（ＩＩＯＲ）２０、コントロールレジスタ（ＣＮＴＲ）２１及びステータスレジスタ（ＳＴＳＲ）２２を有する。コントロールレジスタ２１は書込み消去フラグＦＥＮＴＲＹ等の設定領域とされ、ＣＰＵ２によって書込み可能にされ、ＦＣＰＵ１２によって読出し可能にされる。前記ステータスレジスタ２２はビジーフラグＢＵＳＹやコマンドエンドフラグＣＭＤＥ等の記憶領域とされ、ＦＣＰＵ１２によってライト可能にされ、ＣＰＵ２によってリード可能にされる。ＦＣＰＵ１２は経路２３からステータスレジスタ２２に対する書込みを行う。
【００４８】
通常モードにおいて書込み消去フラグＦＥＮＴＲＹ＝１のとき、ＣＰＵインタフェースコントローラ１３は、フラッシュメモリ４の不揮発性メモリアレイにマッピングされたアドレスにデータを書き込むＣＰＵ２からのアクセスを検出すると、その書込みアクセスをフラッシュ書込みコマンドとして認識する。また、ＣＰＵインタフェースコントローラ１３は、消去ブロック指定レジスタ１７に消去アドレス若しくは消去ブロック指定情報を書込むＣＰＵ２からのアクセスを検出すると、その書込みアクセスをフラッシュ消去コマンドとして認識する。ＣＰＵインタフェースコントローラ１３はそのコマンド解釈に従って割り込み要求信号ＩＲＱを活性化し、コマンドに応ずるベクタを発行する。これによってＦＣＰＵ１２はベクタによって指定される書込み制御プログラム又は消去制御プログラムをコントロールＲＡＭ１５からフェッチして実行する。フラッシュ書込みコマンドに応答する場合、ＦＣＰＵ１２はその書込み制御プログラムに従って、前記フラッシュ書込みコマンドと認識した書込みアクセスに係るアドレスとデータを内部ＩＯレジスタ２０からコントロールＲＡＭ１５に取り込み、フラッシュメモリに転送し、ＦＣＮＴＲ１８のＷＥ，Ｐビット等を順次設定しながら、フラッシュメモリ４に対する書込みを行う。フラッシュ消去コマンドに応答する場合、ＦＣＰＵ１２はその消去制御プログラムに従って、前記フラッシュ消去コマンドと認識した消去ブロック指定データを内部ＩＯレジスタ２０からコントロールＲＡＭ１５に取り込み、フラッシュメモリに転送し、ＦＣＮＴＲ１８のＷＥ，Ｅビット等を順次設定しながら、フラッシュメモリ４に対する消去を行う。
【００４９】
前記書込み消去フラグＦＥＮＴＲＹは前記バスコントローラ６に供給され、通常モードにおいて書込み消去フラグＦＥＮＴＲＹ＝０のとき、バスコントローラ６がフラッシュメモリ４のマッピングアドレス又は消去ブロック指定レジスタ１７に対するＣＰＵ２からの書込みアクセスを検出すると、例えばアドレスエラーを発生させ、フラッシュメモリ４に対する当該書込み動作を無効とする。したがって、通常モードにおいて書込み消去フラグＦＥＮＴＲＹ＝０のときは、フラッシュメモリ４は内部バスＩＢＵＳ経由のリードアクセスだけが可能にされる。尚、テストモードでは書込み消去フラグＦＥＮＴＲＹはバスコントローラ６によるフラッシュメモリ４に対するアクセス経路の制御だけに用いられる。即ち、フラッシュメモリ４に対しては、テストモードにおいてＦＥＮＴＲＹ＝１の時はバスコントローラ６及び周辺バスＰＢＵＳ経由のアクセスだけが許容され、ＦＥＮＴＲＹ＝０の時は内部バスＩＢＵＳ経由のリードアクセスだけが許容される。
【００５０】
前記バス制御回路１４を経由するコントロールＲＡＭ１５及びＦＬＣ１６のアクセス制御について説明する。ＣＰＵインタフェースコントローラ１３は、通常モード及びテストモードのいずれにおいても、フラッシュコントロールユニット５のマッピングアドレス（消去ブロック指定レジスタ１７のマッピングアドレスを除く）に対するＣＰＵ２からのアクセスに対して、アクセスコマンドをＦＢＳＣ１４に発行する。発行されたアクセスコマンドに従ってＦＢＳＣ１４はローカルバスＦＢＵＳの制御を行ってコントロールＲＡＭ１５及びＦＬＣ１６に対するリードアクセス及びライトアクセスを行うことができる。特に制限されないが、通常モードではトリミングレジスタ１９に対する自由なアクセスは許容されていない。テストモードでは、ＣＰＵ２からフラッシュメモリ４のマッピングアドレスにデータを書き込むアクセスがあっても、また、ＣＰＵ２から消去ブロック指定レジスタ１７に対してデータを書込むアクセスがあっても、ＣＰＵインタフェースコントローラ１３はＦＣＰＵ１２を起動せず、対応するアクセスコマンドをＦＢＳＣ１４に発行する。それに従ってＦＢＳＣ１４がローカルバスＦＢＵＳの制御を行って、ＣＰＵインタフェースコントローラ１３の内部ＩＯレジスタ２０に保持された書込みデータ及び書込みアドレスをフラッシュメモリ４に供給し、又は消去ブロックアドレスを消去ブロック指定レジスタ１７に供給する。この後、ＣＰＵ２はＦＬＣ１６のレジスタ１８に対する書込みアクセスを発行することによって消去ビットＥやプログラムビットＰを直接操作して、消去動作又は書込み動作を行うことができる。
【００５１】
テストモードでは、ＣＰＵ２は前記トリミングレジスタ１９を直接操作することができるから、トリミングデータの設定次第で、例えば、フラッシュメモリ４における書込みパルス電圧、消去パルス電圧、パルス印加時間、ドレイン電圧、及びソース電圧等を微調整することができる。そのような電圧や時間を微調整することによって、マイクロコンピュータ１の製造プロセス、不揮発性メモリの素子構成、あるいはマイクロコンピュータ１の個体差などに即して、最適な書込み、最適な消去の制御が可能にされる。これらの電圧や時間は量産時には固定にされるのがよいが、少なくとも試作評価時には可変にする必要がある。
【００５２】
更にテストモードでは、ＣＰＵ２はコントロールＲＡＭ１５が保有するＦＣＰＵ１２のプログラムを書き換えることができる。試作評価時には、前記テストモードで、ＣＰＵ２による制御プログラム実行で書込み／消去を実行し、基本機能や所要のパラメータなどの確認を行うことができる。試作評価時は、機器制御を行うわけではないので、リアルタイム性の要求される割込み処理などを考慮する必要がない。その後は、前記制御プログラムをＦＣＰＵ１２用に変更し、コントロールＲＡＭ１５に転送し、この後、テストコマンドを用いてＣＰＵ２がＣＰＵインタフェースコントローラ１３に書込み／消去動作を指示することで、ＦＣＰＵ１２にそのプログラムを実行させて書込み及び消去を行わせることも可能である。当然この場合には、ＣＰＵインタフェースコントローラ１３の内部ＩＯレジスタ２０には書込みアドレス及び書き込みデータ、或いは消去ブロック指定データが保持されているとよい。
【００５３】
図３にはＣＰＵ２のアドレス空間が示される。ＣＰＵ２のアドレス空間は例えば４ギガバイト（ＧＢ）である。その内の先頭側１６メガバイト（ＭＢ）がフラッシュコントロールユニット５にマッピングされる。ＣＰＵ２とＦＣＰＵ１２の双方がフラッシュコントロールユニット５のマッピングアドレスをアクセス可能である。このＦＣＰＵ１２のアドレス空間は、前記ＦＢＳＣ１４が管理し、ＦＣＰＵ１２がバス制御回路１４に対し、バスコマンドとアドレスを与えることによって、アクセスが実行される。前述の如くフラッシュメモリ４は、ＦＥＮＴＲＹ＝１のとき周辺バスＰＢＵＳアクセスが可能にされ、ＦＥＮＴＲＹ＝０のとき内部バスＩＢＵＳアクセスが可能にされる。フラッシュコントロールユニット５のコントロールＲＡＭ１５も、ＣＰＵ２のアドレス空間上に配置されているから、ＣＰＵ２によって、前記フラッシュメモリ４上に保持したＦＣＰＵ１２のプログラムをコントロールＲＡＭ１５に転送し、コントロールＲＡＭ１５に格納することができる。あるいは、任意のプログラムをコントロールＲＡＭ１５に格納し、ＦＣＰＵ１２に実行させることができる。なお、コントロールＲＡＭ１５は、誤動作などによって不所望に書換えられないように、アクセスイネーブルビットなどを持つようにするのがよい。
【００５４】
図４にはフラッシュコントロールユニット５の状態遷移の概略が示される。マイクロコンピュータ１のリセット後は、フラッシュコントロールユニット５は停止状態である（ＦＥＮＴＲＹ＝０）。通常モードとしての通常動作状態（ＴＥＳＴ＝０）で、ＣＰＵ２が、ＣＰＵインタフェースコントローラ１３のフラグＦＥＮＴＲＹを１にセットすると、書込み／消去状態（コマンド待ち状態）に遷移する。
【００５５】
次に、フラッシュメモリ４の所定のアドレスに対して、周辺バスＰＢＵＳから書込みアクセスが行われると、ＣＰＵインタフェースコントローラ１３はその書込みアドレスに応じて当該書込みアクセスをフラッシュ書込みコマンド又はフラッシュ消去コマンドとして解釈し、その解釈に従ってＦＣＰＵ１２を起動し、書き込み動作又は消去動作の制御を開始させ、ＦＣＰＵ１２によってコマンドエンド（ＣＭＤＥＮＤ）フラグが１にセットされるのを待つ。これらの状態では、ＢＵＳＹフラグを１にセットするようにする。周辺バスＰＢＵＳからフラッシュメモリ４のアドレスに対する読出しアクセスがあった場合、ＣＰＵインタフェースコントローラ１３はバス制御装置１４にリードバスコマンドを発行してフラッシュメモリ４のリード動作を行い、その後、ただちにコマンド待ち状態に遷移する。
【００５６】
テストモード（ＴＥＳＴ＝１）を指定すると、ＣＰＵ２は、ＣＰＵインタフェースコントローラ１３を経由して、ＦＣＰＵ１２の全アドレス空間をアクセスすることができる。ＣＰＵ２は、ＦＣＰＵ１２に代わって、書込み及び消去動作を実行することができる。
【００５７】
試作評価時には、このテストモードで、ＣＰＵ２による制御プログラム実行で書込み／消去を実行し、基本機能や所要のパラメータなどの確認を行うのがよい。試作評価時は、機器制御を行うわけではないので、リアルタイム性の要求される割込み処理などを考慮する必要がない。その後は、試作評価内容を前記制御プログラムに反映し、これをＦＣＰＵ１２用に変換し、コントロールＲＡＭ１５に転送した状態で、ＣＰＵ２からのフラッシュ書き込みコマンド又はフラッシュ消去コマンドに応答してＣＰＵインタフェースコントローラ１３がＦＣＰＵ１２に書込み及び消去を実行させて、そのプログラムを更に検証する事が可能になる。この一連の検証動作をテストモードで行うことができる。
【００５８】
図５にはフラッシュコントロールユニット５によるＦＣＰＵ１２を介する書込み動作のフローチャートが示される。
【００５９】
通常モードにおいてＦＥＮＴＲＹ＝１のときＣＰＵインタフェースコントローラ１３がフラッシュ書込みコマンドを認識すると（Ｓ１）、割り込みによってＦＣＰＵ１２を起動し（Ｓ２）、フラッシュ書込み制御をＦＣＰＵ１２に処理を委ねる。ＦＣＰＵ１２は、割り込みベクタで指示されるスタートアドレスに従って、コントロールＲＡＭ１５上の所定の書き込み処理プログラムを実行し、ＣＰＵインタフェースコントローラ１３の内部ＩＯレジスタ２０に保持されている書込みデータ及び書き込みアドレスを入力する。入力したデータ及び書き込みアドレスを、一旦コントロールＲＡＭ１５に格納する（Ｓ３）。
【００６０】
引続き、コントロールＲＡＭ１５に格納した書込みデータ及び書き込みアドレスをフラッシュメモリ４のレジスタに転送する（Ｓ４）。その後、書込み消去制御回路１６のライトイネーブルビットＷＥを１にセットし（Ｓ５）、所定時間ウェイトを行ってフラッシュメモリ内の電源が書き込みに対応した状態になるのを待つ（Ｓ６）。ウェイトの後、プログラムビットＰを１にセットし（Ｓ７）、所定時間ウェイトし（Ｓ８）、次いで、プログラムビットＰを０にクリアし（Ｓ９）、単位書込みを行う。Ｐ＝１の期間にフラッシュメモリの不揮発性メモリセルへの書込みが行われる。
【００６１】
次に、書込みによって所定の書き込み状態（書き込み状態に対応した閾値電圧状態）に到達したか否かをベリファイによって確認する（Ｓ１０）。ベリファイ結果により所定の書込み状態に到達していないときは、所定回数になるまで単位書込みを繰返す（Ｓ１１）。所定回数繰返しても書込み状態に到達しない場合は、不良と判断され（Ｓ１６）、ＣＰＵインタフェースコントローラ１３上のプログラムエラービットを１にセットするなどの所用のエラー処理を実行し、コマンドエンドフラグ（ＣＭＤＥＮＤ）を１にセットして（Ｓ１７）、コマンド待ち状態に遷移する（Ｓ１８）。
【００６２】
ステップＳ１０におけるベリファイによって不揮発性メモリセルが書き込み状態に到達すると、ライトイネーブルビットを０にクリアし（Ｓ１２）、所定時間ウェイト（フラッシュメモリ内の電源が書き込み完了に対応した状態になるのを待つ）した後（Ｓ１３）、コマンドエンドビット（ＣＭＤＥＮＤ）を１にセットして（Ｓ１４）、コマンド待ち状態に遷移する（Ｓ１５）。コマンドエンドフラグが１にセットされると、ＣＰＵインタフェースコントローラ１３はＦＣＰＵ１２を待機状態にする。
【００６３】
通常モードにおいてＦＥＮＴＲＹ＝１のときＣＰＵインタフェースコントローラ１３がフラッシュ消去コマンドを認識したときは、割り込みによってＦＣＰＵ１２を起動し、フラッシュ消去制御をＦＣＰＵ１２に処理を委ねる。このときの処理手順は、特に図示はしないが、図５においてプログラムビットＰの代わりに消去ビットＥが操作の対象にされる点およびフラッシュメモリ内の電源が消去に対応じた状態にされ、また不揮発性メモリセルが消去状態に対応したしきい値電圧状態である消去状態にされる点が相違され、基本的な手順はほぼ同じである。
【００６４】
図６にはフラッシュコントロールユニット５によるＦＣＰＵ１２を介する書込み動作のタイミングチャートが示され、図５のフローチャートで示される書込みフローに対応される。
【００６５】
ＣＰＵインタフェースコントローラ１３によってフラッシュ書込みコマンドが認識された場合、ＣＰＵインタフェースコントローラ１３は書込み状態に遷移し、ＦＣＰＵ１２を起動する（時刻ｔ１）。ビジーフラグＢＵＳＹを１にセットする。ＦＣＰＵ１２は、フラッシュ書込みコマンドとして認識されたライトアクセスの書込みデータ及び書き込みアドレスを内部Ｉレジスタ２０からコントロールＲＡＭ１５に取り込む（時刻ｔ２）。これはＣＰＵインタフェースコントローラ１３の内部入出力レジスタ２０の内容をリードし、これをコントロールＲＡＭ１５上の所定のアドレスにライトすることによって実現する。このときのバス制御はバス制御装置１４が行う。
【００６６】
取り込んだ書き込みデータ及び書き込みアドレスはフラッシュメモリ４のデータレジスタ及びアドレスレジスタに転送される(時刻ｔ３)。これは書き込みアドレス及び書き込みデータをコントロールＲＡＭ１５からリードして、フラッシュメモリ４のアドレスレジスタ及びデータレジスタにライトすることによって行う。この時点では、書込みデータはフラッシュメモリ４のバッファであるデータレジスタに格納されるのみで、不揮発性メモリセルへの書込みはまだ行われない。
【００６７】
その後、ＦＣＰＵ１２の制御により前記の通り、書込み消去制御回路１６の所定のビットＷＥ、Ｐのライトや、ベリファイのためのフラッシュメモリ４のリードを行って、書込み制御を行う(時刻ｔ４)。
【００６８】
ＦＣＰＵ１２は書き込みの完了に応じて、最後にＦＩＭＣ１３のＣＭＤＥＮＤフラグを１にセットする(時刻ｔ５)。ＣＰＵインタフェースコントローラ１３はコマンド待ち状態に、ＦＣＰＵ１２は待機状態とされ、ＢＵＳＹフラグが０にクリアされる。
【００６９】
ＦＣＰＵ１２を、所定のコマンドの実行以外には待機状態にすることで、ノイズなどによる不所望の誤動作の可能性を低減できる。また、ＣＰＵインタフェースコントローラ１３によるＦＢＳＣ１４経由のアクセスとＦＣＰＵ１２によるバス制御装置１４経由のアクセスとの排他性を確保しながらバス権の調停などを不要にでき、論理の簡略化に資することができる。
【００７０】
図７にはテストモードにおける動作としてコントロールＲＡＭ１５に対するライト動作が示される。テストモードで、周辺バスＰＢＵＳを介した、コントロールＲＡＭ１５のアドレスに対するライトを検出すると、ＣＰＵインタフェースコントローラ１３は、バス制御装置１４にコントロールＲＡＭ１５をライトするためバス制御を行わせる。ＣＰＵインタフェースコントローラ１３を介してバス制御装置１４を制御するため、周辺バスＰＢＵＳにウェイトを要求するようにする。特に図示はしないが、ＣＰＵ２からの書込み消去制御装置１６に対するリード／ライトも同様に行われる。
【００７１】
以上説明したマイクロコンピュータ1によれば以下の作用効果を得ることができる。
【００７２】
トリミングレジスタ１９をＣＰＵ２で制御して、フラッシュメモリ４の書込み／消去を実行することにより、書込み電圧やその印加時間、待機時間等を微調整することによって、マイクロコンピュータ４の製造プロセス、不揮発性メモリセルの構成、あるいはマイクロコンピュータの個体差などに即して、最適な書込み、最適な消去の制御を行うことができる。微細化に伴って、フラッシュメモリ４の書込み及び消去特性のばらつきが大きくなっても対応が容易になる。
【００７３】
テストモードにおいてＦＣＰＵ１２の書込み消去プログラムをコントロールＲＡＭ１５に格納し、ＣＰＵ２がコントロールＲＡＭ１５をライトアクセス可能であるから、最適な書込み、最適な消去を行うように、書込み消去プログラムを修正することができる。テストモードにおいてＣＰＵ２がフラッシュコントロールユニット５にテストコマンドを発行してＦＣＰＵ１２にコントロールＲＡＭ１５上の書き込み消去プログラムを実行させて随時その評価を行うことができる。
【００７４】
テストモードにおいてＣＰＵ２は、トリミングデータを変更しつつ、書込み、消去、あるいはベリファイを行って、随時結果を確認することができるから、試作評価などを容易に行うことができる。
【００７５】
通常モード時は、ＣＰＵ２から書込みコマンド又は消去コマンドとみなされるライトアクセスを発行することにより、ＦＣＰＵ１２に書込み／消去の制御を実行させるから、その間、ＣＰＵ２はその他の処理を行うことができる。例えば、フラッシュメモリ４の書込み／消去中でも、ＣＰＵ２は割込みを受付けることができ、リアルタイム性を損なうことがない。
【００７６】
通常モードにおいてフラッシュメモリのリードのバスを内部バスＩＢＵＳとすることにより、フラッシュメモリに対する高速アクセスが可能になる。フラッシュメモリ４には、ＣＰＵ２の処理プログラムが格納されるから、このリード動作を高速にして、処理性能を向上することができる。
【００７７】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００７８】
例えば、フラッシュコントロールユニット５内のブロック分割は任意にできる。ＣＰＵインタフェースコントローラ１３とＦＣＰＵ１２の機能分割も任意にできる。コマンドも任意にしたり、追加したりすることもできる。フラッシュ書込みコマンド、フラッシュ消去コマンドと認識されるライトアクセスについてもフラッシュメモリの特定アドレスに限定しなくてもよい。書込み指示と消去指示をアドレス以外の信号で区別できる場合にはフラッシュメモリの任意のアドレスに対する書込みアクセスをフラッシュ書込みコマンド、フラッシュ消去コマンドと認識すればよい。フラッシュメモリ４の書込み／消去に必要なレジスタの構成や配置についても変更可能である。また、マイクロコンピュータのオンチップモジュールの種類や機能、アドレス空間の大きさやマッピングの状態、についても適宜変更可能である。
【００７９】
ローカルＣＰＵ１２の起動はＣＰＵ１２によるフラッシュメモリのアドレスにデータを書き込むライトアクセス、消去ブロック指定レジスタに対すライトアクセスに限定されない。上記とは異なる特定のアドレスに対する書込み、特定のデータを書き込むライトアクセス、或いは特定コードを有するコマンド入力等であってもよい。トリミングレジスタは通常モードにおいてＣＰＵ２によるライトを可能にしてもよい。ローカルメモリとしてＲＯＭを持ってもよい。
【００８０】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるシングルチップマイクロコンピュータに適用した場合について説明したが、それに限定されるものではなく、その他の半導体集積回路装置、例えば、デジタルシグナルプロセッサ（ＤＳＰ）を中心にした半導体集積回路装置にも適用可能であり、本発明は少なくとも、不揮発性メモリとデータ処理装置を内蔵した半導体集積回路装置に適用することができる。
【図面の簡単な説明】
【００８１】
【図１】本発明が適用されたマイクロコンピュータのブロック図である。
【図２】フラッシュコントロールユニット５の一例を示すブロック図である。
【図３】ＣＰＵのアドレス空間を示すアドレスマップである。
【図４】フラッシュコントロールユニットの状態遷移の概略を示す状態遷移図である。
【図５】フラッシュコントロールユニットによるＦＣＰＵを介する書込み動作を示すフローチャートである。
【図６】フラッシュコントロールユニットによるＦＣＰＵ１２を介する書込み動作を示すタイミングチャートである。
【図７】テストモードにおける動作としてコントロールＲＡＭに対するライト動作を示すタイミングチャートである。
【符号の説明】
【００８２】
１  マイクロコンピュータ
２  中央処理装置（ＣＰＵ）
３  ランダムアクセスメモリ（ＲＡＭ）
４  不揮発性記憶装置としてのフラッシュメモリ（ＦＬＡＳＨ）
５  制御装置としてのフラッシュコントロールユニット（ＦＣＵ）
６  バスコントローラ（ＢＳＣ）
７  周辺回路（ＰＲＨＲＬ）
８  Ｉ／Ｏポート（ＩＯＰ）
９  システムコントローラ（ＳＹＳＣ）
ＭＤ０〜ＭＤ２  モード端子
ＩＢＵＳ  内部バス
ＰＢＵＳ  周辺バス
ＥＸＢＵＳ  外部バス
１３  ＣＰＵインタフェースコントローラ（ＦＩＭＣ）
１４  バス制御回路（ＦＢＳＣ）
１５  コントロールＲＡＭ（ＣＲＡＭ）
１６  書込み消去制御回路（ＦＬＣ）
１７  消去ブロック指定レジスタ（ＥＢＬＫＲ）
ＦＢＵＳ  ローカルバス
１８  動作制御レジスタ（ＦＣＮＴＲ）
１９  トリミングレジスタ（ＴＲＭＲ）
２０  内部Ｉ／Ｏレジスタ（ＩＩＯＲ）
２１  コントロールレジスタ（ＣＮＴＲ）
２２  ステータスレジスタ（ＳＴＳＲ）
【図１】
2007034554.tif 000003
【図２】
2007034554.tif 000004
【図３】
2007034554.tif 000005
【図４】
2007034554.tif 000006
【図５】
2007034554.tif 000007
【図６】
2007034554.tif 000008
【図７】
2007034554.tif 000009