(57)【要約】【課題】書き込み動作又は消去動作中の割り込みによる中断命令の供給から実際の中断迄の移行時間を短くする一方、復帰命令により中断した書き込み動作又は消去動作を再開する際不揮発性メモリへのストレスを低減する、又は書き込み・消去処理時間を短縮すること。【解決手段】不揮発性メモリ（４）の書き込み又は消去の制御を行うコントローラ（５）は第１の動作（ＳＵＳＰ＝“１”）と第２の動作（ＳＵＳＰ＝“０”）とに設定される。第１の動作ではコントローラ（５）は、中断命令に応答してパルス印加を解除して（Ｓ７Ａ）、復帰命令に応答して中断したパルス印加の再印加から中断処理を再開する（Ｓ８Ａ）。第２の動作（ＳＵＳＰ＝“０”）ではコントローラ（５）は、中断命令に応答してパルス印加を継続して印加の完了した時点で処理を中断し（Ｓ７Ｂ）、復帰命令に応答してパルス印加の完了した不揮発性メモリセルのベリファイから中断処理を再開する。【選択図】図５
2008034045.tif 000002
【特許請求の範囲】
【請求項１】
電気的に書き込み又は消去可能な不揮発性メモリと当該不揮発性メモリの書き込みと消去との少なくともひとつの動作の制御を行うコントローラを具備して、
前記コントローラは、書き込み命令又と消去命令との少なくともひとつの命令に応答して前記不揮発性メモリへ前記書き込みと前記消去との前記少なくともひとつの動作のパルスの印加とベリファイとの反復処理により前記少なくともひとつの動作の不揮発記憶動作を制御して、
前記コントローラは、第１の動作と第２の動作とに設定されることができ、
前記第１の動作に設定された前記コントローラは、前記不揮発記憶動作の前記反復処理の前記パルスの前記印加中に中断命令に応答して前記パルスの前記印加の解除により前記不揮発記憶動作を中断して、前記第１の動作に設定された前記コントローラは、復帰命令に応答して前記解除となった前記パルスの印加から中断された前記不揮発記憶動作の前記反復処理を再開して、
前記第２の動作に設定された前記コントローラは、前記不揮発記憶動作の前記反復処理の前記パルスの前記印加中に中断命令に応答して前記パルスの前記印加を継続して前記印加の完了した時点で前記不揮発記憶動作を中断して、前記第２の動作に設定された前記コントローラは、復帰命令に応答して前記印加の完了した不揮発性メモリセルのベリファイから中断された前記不揮発記憶動作の前記反復処理を再開する半導体集積回路。
【請求項２】
前記コントローラは揮発性メモリと前記反復処理による前記不揮発記憶動作の制御のための動作制御レジスタとを含み、
前記不揮発記憶動作の中断の後に前記復帰命令に応答して前記不揮発記憶動作の前記反復処理の再開に必要な前記動作制御レジスタの情報を、前記コントローラは前記不揮発記憶動作の前記中断の前に前記揮発性メモリに退避して、
前記復帰命令に応答して前記コントローラは、前記揮発性メモリに退避した前記情報を前記動作制御レジスタに回復して中断された前記不揮発記憶動作の前記反復処理を再開する請求項１記載の半導体集積回路。
【請求項３】
前記コントローラは前記消去命令に応答して前記不揮発性メモリへ前記消去のパルスの印加とベリファイとの反復処理により消去の前記不揮発記憶動作を制御して、
前記コントローラは前記中断命令に応答して前記消去の前記不揮発記憶動作を中断して、前記消去の前記不揮発記憶動作の中断の間に、前記不揮発性メモリは読み出し可能な状態とされる請求項１または請求項２に記載の半導体集積回路。
【請求項４】
前記第１の動作に設定された前記コントローラが前記不揮発記憶動作の前記反復処理の前記パルスの前記印加中に前記中断命令に応答して前記不揮発記憶動作の中断に際して前記パルスの前記印加を解除すると、前記コントローラの動作モードを前記第１の動作から前記第２の動作に変更するフラグ情報を設定して、
前記コントローラが前記復帰命令に応答して前記解除となった前記パルスの印加からの中断された前記不揮発記憶動作の前記反復処理の再開中に再び中断命令を受けると、前記設定されたフラグ情報に応答して前記コントローラは前記第２の動作に設定されることによって前記不揮発記憶動作の再開された前記反復処理の前記パルスの前記印加中に前記中断命令に応答して前記パルスの前記印加を継続して前記印加の完了した時点で前記不揮発記憶動作を中断して、前記第２の動作に設定された前記コントローラは、復帰命令に応答して前記印加の完了した不揮発性メモリセルのベリファイから中断された前記不揮発記憶動作の前記反復処理を再開する請求項３に記載の半導体集積回路。
【請求項５】
前記不揮発性メモリに格納されたプログラムによって動作可能な中央処理ユニットと、前記中央処理ユニットのワーク領域として動作可能なランダムアクセスメモリと、内部バスと、バスコントローラと、周辺バスと、周辺回路とを含み、
前記中央処理ユニットと前記ランダムアクセスメモリと前記不揮発性メモリの読み出しポートとは前記内部バスに接続され、
前記内部バスは前記バスコントローラを介して前記周辺バスに接続され、
前記周辺バスに前記周辺回路と前記コントローラとが接続され、
前記不揮発性メモリの不揮発記憶ポートは前記コントローラを介して前記周辺バスに接続され、
前記中央処理ユニットは前記内部バスを介して前記不揮発性メモリの前記読み出しポートからのデータの読み出しを行い、前記コントローラは前記不揮発性メモリの前記不揮発記憶ポートから前記不揮発記憶動作を制御する請求項３又は請求項４に記載の半導体集積回路。
【請求項６】
前記中断命令に応答して前記不揮発記憶動作が中断されている間に前記中央処理ユニットは読み出し命令に応答して前記内部バスと前記バスコントローラと前記周辺バスと前記コントローラとを介して前記不揮発性メモリの前記不揮発記憶ポートからのデータの読み出しを行う請求項５に記載の半導体集積回路。
【請求項７】
前記コントローラに供給される動作モード信号により前記コントローラは前記第１の動作と前記第２の動作とのいずれにも任意に設定される請求項１から請求項６のいずれかに記載の半導体集積回路。
【請求項８】
前記不揮発性メモリは、プログラムを格納する第１不揮発性メモリと、ユーザーデータを格納する第２不揮発性メモリとを含み、前記第１不揮発性メモリと前記第２不揮発性メモリとは異なる不揮発性メモリアレーにより構成され、前記第１不揮発性メモリと前記第２不揮発性メモリとは異なるワード線と異なるビット線と異なる消去ブロックとを有する請求項５又は請求項６に記載の半導体集積回路。
【請求項９】
前記第２不揮発性メモリに格納される少なくとも一部のユーザーデータの書き込み又は消去の不揮発記憶動作の中断に際しては、前記コントローラは前記第１の動作に設定され、前記不揮発記憶動作の前記反復処理の前記パルスの前記印加中に中断命令に応答して前記パルスの前記印加の解除により前記不揮発記憶動作を中断して、その後、前記復帰命令に応答して前記解除となった前記パルスの印加から中断された前記不揮発記憶動作の前記反復処理を再開して、
前記第１不揮発性メモリに格納される少なくとも一部のプログラムの書き込み又は消去の不揮発記憶動作の中断に際しては、前記コントローラは前記第２の動作に設定され、前記不揮発記憶動作の前記反復処理の前記パルスの前記印加中に中断命令に応答して前記パルスの前記印加を継続して前記印加の完了した時点で前記不揮発記憶動作を中断して、その後、前記復帰命令に応答して前記印加の完了した不揮発性メモリセルのベリファイから中断された前記不揮発記憶動作の前記反復処理を再開する請求項８に記載の半導体集積回路。
【請求項１０】
前記第２不揮発性メモリに格納される前記一部のユーザーデータに関係する管理データの前記第２不揮発性メモリでの書き込み又は消去の不揮発記憶動作の中断に際しては、前記コントローラは前記第２の動作に設定され、前記不揮発記憶動作の前記反復処理の前記パルスの前記印加中に中断命令に応答して前記パルスの前記印加を継続して前記印加の完了した時点で前記不揮発記憶動作を中断して、その後、前記復帰命令に応答して前記印加の完了した不揮発性メモリセルのベリファイから中断された前記不揮発記憶動作の前記反復処理を再開する請求項９に記載の半導体集積回路。
【請求項１１】
電気的に書き込み又は消去可能な不揮発性メモリと当該不揮発性メモリの書き込みと消去との少なくともひとつの動作の制御を行うコントローラを具備して、
前記コントローラは、書き込み命令又と消去命令との少なくともひとつの命令に応答して前記不揮発性メモリへ前記書き込みと前記消去との前記少なくともひとつの動作のパルスの印加とベリファイとの反復処理により前記少なくともひとつの動作の不揮発記憶動作を制御して、
前記コントローラは、第１の動作と第２の動作とに設定されることができ、
前記第１の動作に設定された前記コントローラは、前記不揮発記憶動作の前記反復処理の前記パルスの前記印加中に中断命令に応答して前記パルスの前記印加の解除により前記不揮発記憶動作を中断して、前記第１の動作に設定された前記コントローラは、復帰命令に応答して前記解除となった前記パルスの印加から中断された前記不揮発記憶動作の前記反復処理を再開して、
前記第２の動作に設定された前記コントローラは、前記不揮発記憶動作の前記反復処理の前記パルスの前記印加中に中断命令に応答して前記パルスの前記印加を継続して前記印加の完了した時点で前記不揮発記憶動作を中断して、前記第２の動作に設定された前記コントローラは、復帰命令に応答して前記印加の完了した不揮発性メモリセルのベリファイから中断された前記不揮発記憶動作の前記反復処理を再開する記憶装置。
【請求項１２】
前記コントローラは揮発性メモリと前記反復処理による前記不揮発記憶動作の制御のための動作制御レジスタとを含み、
前記不揮発記憶動作の中断の後に前記復帰命令に応答して前記不揮発記憶動作の前記反復処理の再開に必要な前記動作制御レジスタの情報を、前記コントローラは前記不揮発記憶動作の前記中断の前に前記揮発性メモリに退避して、
前記復帰命令に応答して前記コントローラは、前記揮発性メモリに退避した前記情報を前記動作制御レジスタに回復して中断された前記不揮発記憶動作の前記反復処理を再開する請求項１１記載の記憶装置。
【請求項１３】
前記コントローラは前記消去命令に応答して前記不揮発性メモリへ前記消去のパルスの印加とベリファイとの反復処理により消去の前記不揮発記憶動作を制御して、
前記コントローラは前記中断命令に応答して前記消去の前記不揮発記憶動作を中断して、前記消去の前記不揮発記憶動作の中断の間に、前記不揮発性メモリは読み出し可能な状態とされる請求項１１または請求項１２に記載の記憶装置。
【請求項１４】
前記第１の動作に設定された前記コントローラが前記不揮発記憶動作の前記反復処理の前記パルスの前記印加中に前記中断命令に応答して前記不揮発記憶動作の中断に際して前記パルスの前記印加を解除すると、前記コントローラの動作モードを前記第１の動作から前記第２の動作に変更するフラグ情報を設定して、
前記コントローラが前記復帰命令に応答して前記解除となった前記パルスの印加からの中断された前記不揮発記憶動作の前記反復処理の再開中に再び中断命令を受けると、前記設定されたフラグ情報に応答して前記コントローラは前記第２の動作に設定されることによって前記不揮発記憶動作の再開された前記反復処理の前記パルスの前記印加中に前記中断命令に応答して前記パルスの前記印加を継続して前記印加の完了した時点で前記不揮発記憶動作を中断して、前記第２の動作に設定された前記コントローラは、復帰命令に応答して前記印加の完了した不揮発性メモリセルのベリファイから中断された前記不揮発記憶動作の前記反復処理を再開する請求項１３に記載の記憶装置。
【請求項１５】
前記コントローラに供給される動作モード信号により前記コントローラは前記第１の動作と前記第２の動作とのいずれにも任意に設定される請求項１１から請求項１４のいずれかに記載の記憶装置。
【請求項１６】
前記不揮発性メモリに格納される少なくとも一部のユーザーデータの書き込み又は消去の不揮発記憶動作の中断に際しては、前記コントローラは前記第１の動作に設定され、前記不揮発記憶動作の前記反復処理の前記パルスの前記印加中に中断命令に応答して前記パルスの前記印加の解除により前記不揮発記憶動作を中断して、その後、前記復帰命令に応答して前記解除となった前記パルスの印加から中断された前記不揮発記憶動作の前記反復処理を再開して、
前記不揮発性メモリに格納される少なくとも一部のプログラムの書き込み又は消去の不揮発記憶動作の中断に際しては、前記コントローラは前記第２の動作に設定され、前記不揮発記憶動作の前記反復処理の前記パルスの前記印加中に中断命令に応答して前記パルスの前記印加を継続して前記印加の完了した時点で前記不揮発記憶動作を中断して、その後、前記復帰命令に応答して前記印加の完了した不揮発性メモリセルのベリファイから中断された前記不揮発記憶動作の前記反復処理を再開する請求項１５に記載の記憶装置。
【請求項１７】
前記不揮発性メモリに格納される前記一部のユーザーデータに関係する管理データの前記不揮発性メモリでの書き込み又は消去の不揮発記憶動作の中断に際しては、前記コントローラは前記第２の動作に設定され、前記不揮発記憶動作の前記反復処理の前記パルスの前記印加中に中断命令に応答して前記パルスの前記印加を継続して前記印加の完了した時点で前記不揮発記憶動作を中断して、その後、前記復帰命令に応答して前記印加の完了した不揮発性メモリセルのベリファイから中断された前記不揮発記憶動作の前記反復処理を再開する請求項１６に記載の記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は電気的に書き込み又は消去が可能な不揮発性メモリを備えた半導体集積回路及び記憶装置に関わり、特に、書き込み動作又は消去動作の間の割り込みによる中断命令の供給から実際の中断までの移行時間を短くする一方、復帰命令により中断した書き込み動作又は消去動作を再開するに際して不揮発性メモリへのストレスを低減する、あるいは書き込み又は消去処理全体に要する時間を短縮するのに有効な技術に関する。
【背景技術】
【０００２】
下記非特許文献１には、書き込みステートマシンを具備することにより、消去中に特定コマンドを書き込みステートマシンが受け付けて消去を中断するようにしたフラッシュメモリが記載されている。
【０００３】
フラッシュメモリのような不揮発性メモリでは、不揮発性メモリセルの蓄積ノードの電荷レベルを読み出すための読み出し時間に比較すると、不揮発性メモリセルの蓄積ノードへの電荷注入による書き込み時間や、蓄積ノードからの電荷放出による消去時間は長くなる。特に、大量のプログラムのデータや大量のコンテンツデータの長時間の書き込み中や消去中にサスペンドコマンドやインターラプトコマンドの中断命令の割り込みを受け付けて、書き込み動作や消去動作を中断して中断期間中に不揮発性メモリからデータを読み出すことが有効となる。
【０００４】
下記特許文献１には、書き込み動作中や消去動作中に割り込みによる中断命令を受け付けて書き込み動作や消去動作を中断した後、レジュームコマンドの復帰命令が入力されることにより、書き込み動作の初期化状態に復帰する不揮発性メモリが記載されている。
【０００５】
また、下記特許文献２には、イレーズコマンドの消去命令を受け取って消去動作を開始した後にサスペンド信号がアクティブとなるとイレーズアイドル状態の中断状態となり、サスペンド信号が非アクティブとなると、イレーズベリファイの開始から再開されるか、もしくは中断されたイレーズパルスの印加の途中から再開する不揮発性メモリが記載されている。
【０００６】
【非特許文献１】Ａｌａｎ  Ｂａｋｅｒ  ｅｔ  ａｌ，  ”Ａ  ３．３Ｖ  １６Ｍｂ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  ｗｉｔｈ  Ａｄｖａｎｃｅｄ  Ｗｒｉｔｅ  Ａｕｔｏｍａｔｉｏｎ”，  １９９４  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ  Ｃｏｎｆｅｒｅｎｃｅ  ＤＩＧＥＳＴ  ＯＦ  ＴＥＣＨＮＩＣＡＬ  ＰＡＰＥＲＳ，  ＰＰ．１４６−１４７．
【特許文献１】特開２００４−２３４７２０号公報
【特許文献２】特開２００４−３４８８０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明者は本発明に先立ってフラッシュメモリモジュールとメインＣＰＵ(以下、ＣＰＵと言う)をチップ上に搭載したマイクロコントローラの開発に従事した。フラッシュメモリモジュールは、フラッシュメモリとフラッシュコントロールユニットとを含み、フラッシュメモリモジュールのフラッシュメモリの書き込み及び消去の制御はフラッシュコントロールユニットのローカルＣＰＵのプログラム制御によって行われる。
【０００８】
マイクロコントローラのＣＰＵはフラッシュコントロールユニットのローカルＣＰＵにフラッシュメモリの書き込み又は消去を行う所定のコマンドを発行すると、所定のコマンドに応答してローカルＣＰＵは命令の逐次実行によりフラッシュメモリの書き込み又は消去を行う。その結果、フラッシュコントロールユニットのローカルＣＰＵによるフラッシュメモリの書き込み又は消去の動作と並列に、ＣＰＵはフラッシュメモリへのアクセス以外のその他のデータ処理の動作を実行することが可能となり、リアルタイム性能を向上することができる。
【０００９】
フラッシュメモリモジュールとＣＰＵとを内蔵するマイクロコントローラを搭載する種々の電子機器では、稼働中の種々のユーザーデータや稼働終了時の種々のユーザーデータがフラッシュメモリに書き込まれることによって不揮発性メモリへと記憶される。これらのユーザーデータの不揮発性メモリに対する記憶により、電子機器の稼動状況が把握される。フラッシュメモリでは、データの書き込みは消去済みの領域に行われる。また、フラッシュメモリでは、消去単位はハードディスクの１セクター(５１２バイト)の整数倍、例えば２０４８バイトの消去ブロックとされることが多い。一方、データの書き込み単位は１２８バイトのページと、消去ブロックよりも小さなものとなる。小さなサイズの同一ファイル名でも生成日時の異なる複数のユーザーデータは１つの消去ブロック中に書き込まれるが、１つの消去ブロックに空き領域が無くなると、同一ファイル名でも生成日時の新しいユーザーデータは別の１つの消去済みの消去ブロック中に書き込まれる。同一ファイル名で生成日時の古いユーザーデータを格納して空き領域が無くなった古い消去ブロックは一般に不必要であるので、古い消去ブロックの有効フラグは無効にマークされる。無効な古い消去ブロックは稼働中の適切なタイミングで消去されることにより、空き領域が生成されて再利用が可能となる。
【００１０】
冒頭で説明したように、フラッシュメモリでは、読み出し動作の時間と比較すると消去の動作時間は長い。無効な古い消去ブロックの消去は空き領域の生成による再利用のために必須であるが、この古い消去ブロックに対する長時間の消去動作の間に、新しいユーザーデータが書き込まれた別の消去ブロックの読み出しが必要になる。古い消去ブロックに対する消去中には、割り込みによる中断命令を用いて消去動作を中断して、中断期間中に新しいユーザーデータを読み出すことが可能である。しかし、リアルタイム性の高い機器制御を実現するためには、新しいユーザーデータの読み出し要求に対する応答時間を短縮するために、消去動作の間の割り込みによる中断命令を供給してから実際に中断されるまでの移行時間を短くする必要性が明らかになった。
【００１１】
一方、消去に際して不揮発性フラッシュメモリセルへの電気的ストレスを低減しないと、良く知られているようにフラッシュメモリの寿命を短くする。フラッシュメモリの消去回数は１０万回程度と言うことも、良く知られている。フラッシュメモリでは、書き込み単位は１２８バイトのページと小さく、消去単位はハードディスクの１セクターの整数倍と大きいので、フラッシュメモリを長寿命化するには書き込み時のストレスよりも消去時のストレスを低減することが必要である。フラッシュメモリの長寿命化のために、不揮発性フラッシュメモリセルへ書き込み時に印加される書き込みパルスの振幅値よりも消去時に印加される消去パルスの振幅値を小さくして消去時のストレスを低減する。その結果、消去パルスの印加と消去ベリファイとの反復による消去動作の時間は、書き込みパルスの印加と書き込みベリファイとの反復による書き込み動作の時間よりも長くなる。この長時間の消去動作中に割り込みによる中断命令を供給して消去動作を中断して読み出し動作を行った後に、レジュームコマンドの復帰命令により中断した消去動作を再開するに際しては、不揮発性フラッシュメモリセルへのストレスが低い再開方法が必要となることが明らかとなった。
【００１２】
フラッシュメモリモジュールとＣＰＵとをチップ上に搭載したマイクロコントローラを種々の電子機器に搭載するに際して、種々の電子機器の制御プログラムがマイクロコントローラ搭載のフラッシュメモリモジュールのフラッシュメモリに格納される。大量のプログラムのデータをマイクロコントローラ搭載のフラッシュメモリモジュールのフラッシュメモリに書き込もうとすると、書き込み動作の時間は非常に長くなる。また、マイクロコントローラを出荷する半導体メーカーは、出荷前にマイクロコントローラ内蔵のフラッシュメモリを消去する。しかし、消去が不完全な場合もあり、電子機器メーカーはマイクロコントローラ内蔵フラッシュメモリの消去を行うことになる。この消去は内蔵フラッシュメモリの全てのユーザーデータ領域のデータを消去することになるので、消去動作の時間も更に非常に長くなる。
【００１３】
このような長時間の書き込み動作もしくは消去動作の間に、書き込み対象もしくは消去対象のマイクロコントローラが不良である場合もある。半導体メーカーは出荷前にマイクロコントローラの試験を行い、良品のみを出荷する。しかし、試験が完璧でなく、不良品が混入する可能性もあり、また出荷後の在庫期間中に良品が不良品となる可能性もある。不良品に長時間の書き込み動作もしくは消去動作を行っても、書き込み動作もしくは消去動作が完了しないことが多い。従って、電子機器メーカーは、生産ラインでの長時間の書き込み動作もしくは消去動作の途中で良品のマイクロコントローラから生産ラインの書き込み・消去装置へ定期的に通信する方式を採用する。不良品は書き込み・消去装置へ定期的な通信も行えないので、書き込み・消去装置は定期的な通信のないマイクロコントローラを不良品として認識して、この不良品への書き込み動作もしくは消去動作を中止することができる。
【００１４】
この長時間の書き込み動作もしくは消去動作の間の書き込み・消去装置への通信に、割り込みによる中断命令を用いて書き込み動作もしくは消去動作を中断して、中断期間中にマイクロコントローラから書き込み・消去装置へ良品としての適切なデータの転送を行うことが可能である。しかし、長時間の書き込み動作もしくは消去動作中に割り込みによる中断命令を供給して書き込み・消去装置への通信を行った後に、レジュームコマンドの復帰命令により書き込み動作もしくは消去動作を再開するに際しては、同一の書き込み動作もしくは消去動作を繰り返さないようにしないと生産ラインでの書き込み・消去のトータル時間を短縮することができないことが明らかとなった。
【００１５】
無効な古い消去ブロックの消去中の割り込みによる中断命令の供給から実際の中断までの移行時間を短くするためには、中断命令に応答して消去パルスの印加を直ちに解除することが望ましい。しかし、この方法では、復帰命令により中断した消去動作を再開するに際して印加解除した同一の消去パルスが再び不揮発性フラッシュメモリセルに印加される。従って、不揮発性フラッシュメモリセルへの消去パルスの印加回数が大きくなり、不揮発性フラッシュメモリセルへのストレスが高いことが明らかとなった。また、同一の消去パルス印加処理が繰り返される方法では、消去処理全体に要する時間を短縮することができないことも明らかになった。
【００１６】
本発明は上記の如き本発明に先立った本発明者等の検討により明らかとなった事項を基にしてなされたものであり、本発明の目的とするところは書き込み動作又は消去動作中の割り込みによる中断命令の供給から実際の中断までの移行時間を短くする一方、復帰命令により中断した書き込み動作又は消去動作を再開するに際して不揮発性メモリへのストレスを低減すること、あるいは書き込み・消去処理全体に要する時間を短縮することにある。
【００１７】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１８】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１９】
〔１〕本発明に係る半導体集積回路（１）は、電気的に書き込み又は消去可能な不揮発性メモリ（４）と当該不揮発性メモリ（４）の書き込みと消去との少なくともひとつの動作の制御を行うコントローラ（５）を具備する。
【００２０】
前記コントローラ（５）は、書き込み命令又と消去命令との少なくともひとつの命令に応答して前記不揮発性メモリ（４）へ前記書き込みと前記消去との前記少なくともひとつの動作のパルスの印加とベリファイとの反復処理により前記少なくともひとつの動作の不揮発記憶動作を制御する。
【００２１】
前記コントローラは、第１の動作（ＳＵＳＰ＝“１”）と第２の動作（ＳＵＳＰ＝“０”）とに設定されることができる。
【００２２】
前記第１の動作（ＳＵＳＰ＝“１”）に設定された前記コントローラ（５）は、前記不揮発記憶動作の前記反復処理の前記パルスの前記印加中に中断命令に応答して前記パルスの前記印加の解除により前記不揮発記憶動作を中断する（Ｓ７Ａ）。前記第１の動作（ＳＵＳＰ＝“１”）に設定された前記コントローラ（５）は、復帰命令に応答して前記解除となった前記パルスの印加から中断された前記不揮発記憶動作の前記反復処理を再開する（Ｓ８Ａ）。
【００２３】
前記第２の動作（ＳＵＳＰ＝“０”）に設定された前記コントローラ（５）は、前記不揮発記憶動作の前記反復処理の前記パルスの前記印加中に中断命令に応答して前記パルスの前記印加を継続して前記印加の完了した時点で前記不揮発記憶動作を中断する（Ｓ７Ｂ）。前記第２の動作に設定された前記コントローラ（５）は、復帰命令に応答して前記印加の完了した不揮発性メモリセルのベリファイから中断された前記不揮発記憶動作の前記反復処理を再開する（Ｓ８Ｂ；図５参照）。
【００２４】
前記第１の動作に設定された前記コントローラ（５）による前記不揮発記憶動作の中断処理と再開処理とにより、割り込みによる中断命令の供給から実際の中断までの移行時間を短くすることが可能となる。
【００２５】
また、前記第２の動作に設定された前記コントローラ（５）による前記不揮発記憶動作の中断処理と再開処理とにより、不揮発性記憶装置へのストレスを低減すること、および書き込み又は消去処理全体に要する時間を短縮することが可能となる。
【００２６】
本発明の好適な形態による半導体集積回路（１）は、前記コントローラ（５）は揮発性メモリ（１５）と前記反復処理による前記不揮発記憶動作の制御のための動作制御レジスタ（１８）とを含む。前記不揮発記憶動作の中断の後に前記復帰命令に応答して前記不揮発記憶動作の前記反復処理の再開に必要な前記動作制御レジスタ（１８）の情報を、前記コントローラ（５）は前記不揮発記憶動作の前記中断の前に前記揮発性メモリ（１５）に退避する（Ｓ４５、Ｓ４９；図７参照）。前記復帰命令に応答して前記コントローラ（５）は、前記揮発性メモリ（１５）に退避した前記情報を前記動作制御レジスタ（１８）に回復して中断された前記不揮発記憶動作の前記反復処理を再開する（Ｓ６１、Ｓ６４、Ｓ６７；図８参照）。
【００２７】
本発明のより好適な形態による半導体集積回路（１）では、前記コントローラ（５）は前記消去命令に応答して前記不揮発性メモリ（４）へ前記消去のパルスの印加とベリファイとの反復処理により消去（Ｓ６）の前記不揮発記憶動作を制御する。前記コントローラ（５）は前記中断命令に応答して前記消去の前記不揮発記憶動作を中断する（Ｓ７Ａ、Ｓ７Ｂ）。前記消去の前記不揮発記憶動作の中断の間に、前記不揮発性メモリ（４）は読み出し可能な状態とされる（Ｓ４；図５参照）。
【００２８】
本発明のより好適な形態による半導体集積回路（１）では、前記第１の動作（ＳＵＳＰ＝“１”）に設定された前記コントローラ（５）が前記不揮発記憶動作の前記反復処理の前記パルスの前記印加中に前記中断命令に応答して前記不揮発記憶動作の中断に際して前記パルスの前記印加を解除すると（Ｓ１１１）、前記コントローラ（５）の動作モードを前記第１の動作（ＳＵＳＰ＝“１”）から前記第２の動作（ＳＵＳＰ＝“０”）に変更するフラグ情報を設定する（Ｓ１１２）。前記コントローラ（５）が前記復帰命令に応答して前記解除となった前記パルスの印加からの中断された前記不揮発記憶動作の前記反復処理の再開中に再び中断命令を受けると、前記設定されたフラグ情報に応答して前記コントローラ（５）は前記第２の動作（ＳＵＳＰ＝“０”）に設定されることによって前記不揮発記憶動作の再開された前記反復処理の前記パルスの前記印加中に前記中断命令に応答して前記パルスの前記印加を継続して前記印加の完了した時点で前記不揮発記憶動作を中断する（Ｓ４２、Ｓ４３、Ｓ１１３；図１２参照）。前記第２の動作に設定された前記コントローラ（５）は、復帰命令に応答して前記印加の完了した不揮発性メモリセルのベリファイから中断された前記不揮発記憶動作の前記反復処理を再開する（Ｓ１７；図１１参照）。
【００２９】
本発明の前記より好適な形態による手段によれば、前記コントローラ（５）の前記第１の動作（ＳＵＳＰ＝“１”）により書き込み動作又は消去動作中の割り込みによる中断命令の供給から実際の中断までの移行時間は短くなるが、中断によって不揮発記憶動作の反復処理のパルス印加が一向に進展しないと言う事態を回避することができる。
【００３０】
本発明のより好適な形態による半導体集積回路（１）は、前記不揮発性メモリ（４）に格納されたプログラムによって動作可能な中央処理ユニット（２）と、前記中央処理ユニット（２）のワーク領域として動作可能なランダムアクセスメモリ（３）と、内部バス（ＩＢＵＳ）と、バスコントローラ（６）と、周辺バス（ＰＢＵＳ）と、周辺回路（７）とを含む。前記中央処理ユニット（２）と前記ランダムアクセスメモリ（３）と前記不揮発性メモリ（４）の読み出しポートとは前記内部バス（ＩＢＵＳ）に接続され、前記内部バス（ＩＢＵＳ）は前記バスコントローラ（６）を介して前記周辺バス（ＰＢＵＳ）に接続され、前記周辺バス（ＰＢＵＳ）に前記周辺回路（７）と前記コントローラ（５）とが接続され、前記不揮発性メモリ（４）の不揮発記憶ポートは前記コントローラ（５）を介して前記周辺バス（ＰＢＵＳ）に接続される。前記中央処理ユニット（２）は前記内部バス（ＩＢＵＳ）を介して前記不揮発性メモリ（４）の前記読み出しポートからのデータの読み出しを行い、前記コントローラ（５）は前記不揮発性メモリ（４）の前記不揮発記憶ポートから前記不揮発記憶動作を制御する。
【００３１】
本発明のより好適な形態による手段によれば、前記中央処理ユニット（２）による前記内部バス（ＩＢＵＳ）を介して前記不揮発性メモリ（４）の前記読み出しポートからのデータの高速読み出しが可能となる。また、前記中央処理ユニット（２）による前記内部バス（ＩＢＵＳ）を介して前記ランダムアクセスメモリ（３）へのアクセスと並列に、前記周辺バス（ＰＢＵＳ）と前記不揮発性メモリ（４）の前記不揮発記憶ポートとを介して前記コントローラ（５）は前記不揮発性メモリ（４）の前記不揮発記憶動作を制御することが可能となる。
【００３２】
本発明のより好適な形態による半導体集積回路（１）では、前記中断命令に応答して前記不揮発記憶動作が中断されている間に、前記中央処理ユニット（２）は読み出し命令に応答して前記内部バス（ＩＢＵＳ）と前記バスコントローラ（６）と前記周辺バス（ＰＢＵＳ）と前記コントローラ（５）とを介して前記不揮発性メモリ（４）の前記不揮発記憶ポートからのデータの読み出しを行うものである。
【００３３】
本発明の具体的な形態による半導体集積回路（１）では、前記コントローラ（５）に供給される動作モード信号（ＳＵＳＰ）により前記コントローラ（５）は前記第１の動作（ＳＵＳＰ＝“１”）と前記第２の動作（ＳＵＳＰ＝“０”）とのいずれにも任意に設定される。
【００３４】
本発明のより具体的な形態では、前記不揮発性メモリ（４）は、プログラムを格納する第１不揮発性メモリ（４Ａ）と、ユーザーデータを格納する第２不揮発性メモリ（４Ｂ）とを含む。前記第１不揮発性メモリ（４Ａ）と前記第２不揮発性メモリ（４Ｂ）とは、異なるフラッシュメモリアレーにより構成され、前記第１不揮発性メモリと前記第２不揮発性メモリとは異なるワード線と異なるビット線と異なる消去ブロックとを有する。
【００３５】
本発明のより具体的な形態による手段によれば、前記第２不揮発性メモリ（４Ｂ）への前記ユーザーデータの頻繁な書き込みや頻繁な消去による前記プログラムを格納した前記第１不揮発性メモリ（４Ａ）でのディスターブの影響を低減することができる。
【００３６】
本発明の更に具体的な形態では、前記第２不揮発性メモリ（４Ｂ）に格納される少なくとも一部のユーザーデータの書き込み又は消去の不揮発記憶動作の中断に際しては、前記コントローラ（５）は前記第１の動作（ＳＵＳＰ＝“１”）に設定され、前記不揮発記憶動作の前記反復処理の前記パルスの前記印加中に中断命令に応答して前記パルスの前記印加の解除により前記不揮発記憶動作を中断して（Ｓ７Ａ）、その後、前記復帰命令に応答して前記解除となった前記パルスの印加から中断された前記不揮発記憶動作の前記反復処理を再開する（Ｓ８Ａ）。前記第１不揮発性メモリ（４Ａ）に格納される少なくとも一部のプログラムの書き込み又は消去の不揮発記憶動作の中断に際しては、前記コントローラ（５）は前記第２の動作（ＳＵＳＰ＝“０”）に設定され、前記不揮発記憶動作の前記反復処理の前記パルスの前記印加中に入力される中断命令に応答して前記パルスの前記印加を継続して前記印加の完了した時点で前記不揮発記憶動作を中断して（Ｓ７Ｂ）、その後、前記復帰命令に応答して前記印加の完了した不揮発性メモリセルのベリファイから中断された前記不揮発記憶動作の前記反復処理を再開する（Ｓ８Ｂ；図５、図１７参照）。
【００３７】
本発明の最も具体的な形態では、前記第２不揮発性メモリ（４Ｂ）に格納される前記一部のユーザーデータに関係する管理データ（ＭＤ＿Ｄ１…）の前記第２不揮発性メモリ（４Ｂ）での書き込み又は消去の不揮発記憶動作の中断に際しては、前記コントローラ（５）は前記第２の動作（ＳＵＳＰ＝“０”）に設定され、前記不揮発記憶動作の前記反復処理の前記パルスの前記印加中に中断命令に応答して前記パルスの前記印加を継続して前記印加の完了した時点で前記不揮発記憶動作を中断して（Ｓ７Ｂ）、その後、前記復帰命令に応答して前記印加の完了した不揮発性メモリセルのベリファイから中断された前記不揮発記憶動作の前記反復処理を再開する（Ｓ８Ｂ；図５、図１７参照）。
【００３８】
〔２〕本発明に係る記憶装置（１）は、電気的に書き込み又は消去可能な不揮発性メモリ（４）と当該不揮発性メモリ（４）の書き込みと消去との少なくともひとつの動作の制御を行うコントローラ（５）を具備する。
【００３９】
前記コントローラ（５）は、書き込み命令と消去命令との少なくともひとつの命令に応答して前記不揮発性メモリ（４）へ前記書き込みと前記消去との前記少なくともひとつの動作のパルスの印加とベリファイとの反復処理により前記少なくともひとつの動作の不揮発記憶動作を制御する。
【００４０】
前記コントローラは、第１の動作（ＳＵＳＰ＝“１”）と第２の動作（ＳＵＳＰ＝“０”）とに設定されることができる。
【００４１】
前記第１の動作（ＳＵＳＰ＝“１”）に設定された前記コントローラ（５）は、前記不揮発記憶動作の前記反復処理の前記パルスの前記印加中に中断命令に応答して前記パルスの前記印加の解除により前記不揮発記憶動作を中断する（Ｓ７Ａ）。前記第１の動作（ＳＵＳＰ＝“１”）に設定された前記コントローラ（５）は、復帰命令に応答して前記解除となった前記パルスの印加から中断された前記不揮発記憶動作の前記反復処理を再開する（Ｓ８Ａ）。
【００４２】
前記第２の動作（ＳＵＳＰ＝“０”）に設定された前記コントローラ（５）は、前記不揮発記憶動作の前記反復処理の前記パルスの前記印加中に中断命令に応答して前記パルスの前記印加を継続して前記印加の完了した時点で前記不揮発記憶動作を中断する（Ｓ７Ｂ）。前記第１の動作に設定された前記コントローラ（５）は、復帰命令に応答して前記印加の完了した不揮発性メモリセルのベリファイから中断された前記不揮発記憶動作の前記反復処理を再開する（Ｓ８Ｂ；図５参照）。
【００４３】
前記第１の動作に設定された前記コントローラ（５）による前記不揮発記憶動作の中断処理と再開処理とにより、割り込みによる中断命令の供給から実際の中断までの移行時間を短くすることが可能となる。
【００４４】
また、前記第２の動作に設定された前記コントローラ（５）による前記不揮発記憶動作の中断処理と再開処理とにより、不揮発性記憶装置へのストレスを低減すること、および書き込み又は消去処理全体に要する時間を短縮することが可能となる。
【００４５】
本発明の好適な形態による記憶装置（１）は、前記コントローラ（５）は揮発性メモリ（１５）と前記反復処理による前記不揮発記憶動作の制御のための動作制御レジスタ（１８）とを含む。前記不揮発記憶動作の中断の後に前記復帰命令に応答して前記不揮発記憶動作の前記反復処理の再開に必要な前記動作制御レジスタ（１８）の情報を、前記コントローラ（５）は前記不揮発記憶動作の前記中断の前に前記揮発性メモリ（１５）に退避する（Ｓ４５、Ｓ４９；図７参照）。前記復帰命令に応答して前記コントローラ（５）は、前記揮発性メモリ（１５）に退避した前記情報を前記動作制御レジスタ（１８）に回復して中断された前記不揮発記憶動作の前記反復処理を再開する（Ｓ６１、Ｓ６４、Ｓ６７；図８参照）。
【００４６】
本発明のより好適な形態による記憶装置（１）では、前記コントローラ（５）は前記消去命令に応答して前記不揮発性メモリ（４）へ前記消去のパルスの印加とベリファイとの反復処理により消去（Ｓ６）の前記不揮発記憶動作を制御する。前記コントローラ（５）は前記中断命令に応答して前記消去の前記不揮発記憶動作を中断する（Ｓ７Ａ、Ｓ７Ｂ）。前記消去の前記不揮発記憶動作の中断の間に、前記不揮発性メモリ（４）は読み出し可能な状態とされる（Ｓ４；図５参照）。
【００４７】
本発明のより好適な形態による記憶装置（１）では、前記第１の動作（ＳＵＳＰ＝“１”）に設定された前記コントローラ（５）が前記不揮発記憶動作の前記反復処理の前記パルスの前記印加中に前記中断命令に応答して前記不揮発記憶動作の中断に際して前記パルスの前記印加を解除すると（Ｓ１１１）、前記コントローラ（５）の動作モードを前記第１の動作（ＳＵＳＰ＝“１”）から前記第２の動作（ＳＵＳＰ＝“０”）に変更するフラグ情報を設定する（Ｓ１１２）。前記コントローラ（５）が前記復帰命令に応答して前記解除となった前記パルスの印加からの中断された前記不揮発記憶動作の前記反復処理の再開中に再び中断命令を受けると、前記設定されたフラグ情報に応答して前記コントローラ（５）は前記第２の動作（ＳＵＳＰ＝“０”）に設定されることによって前記不揮発記憶動作の再開された前記反復処理の前記パルスの前記印加中に前記中断命令に応答して前記パルスの前記印加を継続して前記印加の完了した時点で前記不揮発記憶動作を中断する（Ｓ４２、Ｓ４３、Ｓ１１３；図１２参照）。前記第２の動作に設定された前記コントローラ（５）は、復帰命令に応答して前記印加の完了した不揮発性メモリセルのベリファイから中断された前記不揮発記憶動作の前記反復処理を再開する（Ｓ１７；図１１参照）。
【００４８】
本発明の前記より好適な形態による手段によれば、前記コントローラ（５）の前記第１の動作（ＳＵＳＰ＝“１”）により書き込み動作又は消去動作中の割り込みによる中断命令の供給から実際の中断までの移行時間は短くなるが、中断によって不揮発記憶動作の反復処理のパルス印加が一向に進展しないと言う事態を回避することができる。
【００４９】
本発明の具体的な形態による記憶装置（１）では、前記コントローラ（５）に供給される動作モード信号（ＳＵＳＰ）により前記コントローラ（５）は前記第１の動作（ＳＵＳＰ＝“１”）と前記第２の動作（ＳＵＳＰ＝“０”）とのいずれにも任意に設定される。
【００５０】
本発明のより具体的な形態では、前記不揮発性メモリ（４）に格納される少なくとも一部のユーザーデータの書き込み又は消去の不揮発記憶動作の中断に際しては、前記コントローラ（５）は前記第１の動作（ＳＵＳＰ＝“１”）に設定され、前記不揮発記憶動作の前記反復処理の前記パルスの前記印加中に中断命令に応答して前記パルスの前記印加の解除により前記不揮発記憶動作を中断して（Ｓ７Ａ）、その後、前記復帰命令に応答して前記解除となった前記パルスの印加から中断された前記不揮発記憶動作の前記反復処理を再開する（Ｓ８Ａ）。前記不揮発性メモリ（４）に格納される少なくとも一部のプログラムの書き込み又は消去の不揮発記憶動作の中断に際しては、前記コントローラ（５）は前記第２の動作（ＳＵＳＰ＝“０”）に設定され、前記不揮発記憶動作の前記反復処理の前記パルスの前記印加中に中断命令に応答して前記パルスの前記印加を継続して前記印加の完了した時点で前記不揮発記憶動作を中断して（Ｓ７Ｂ）、その後、前記復帰命令に応答して前記印加の完了した不揮発性メモリセルのベリファイから中断された前記不揮発記憶動作の前記反復処理を再開する（Ｓ８Ｂ；図５、図１７参照）。
【００５１】
本発明の最も具体的な形態では、前記不揮発性メモリ（４）に格納される前記一部のユーザーデータに関係する管理データ（ＭＤ＿Ｄ１…）の前記不揮発性メモリ（４Ｂ）での書き込み又は消去の不揮発記憶動作の中断に際しては、前記コントローラ（５）は前記第２の動作（ＳＵＳＰ＝“０”）に設定され、前記不揮発記憶動作の前記反復処理の前記パルスの前記印加中に中断命令に応答して前記パルスの前記印加を継続して前記印加の完了した時点で前記不揮発記憶動作を中断して（Ｓ７Ｂ）、その後、前記復帰命令に応答して前記印加の完了した不揮発性メモリセルのベリファイから中断された前記不揮発記憶動作の前記反復処理を再開する（Ｓ８Ｂ；図５、図１７参照）。
【発明の効果】
【００５２】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００５３】
すなわち、本発明によれば、書き込み動作又は消去動作中の割り込みによる中断命令の供給から実際の中断までの移行時間を短くする一方、復帰命令により中断した書き込み動作又は消去動作を再開するに際して不揮発性メモリへのストレスを低減すること、および書き込み又は消去処理全体に要する時間を短縮することが可能になる。
【発明を実施するための最良の形態】
【００５４】
（第１の実施形態）
≪マイクロコントローラの全体構成≫
図１は本発明の第１の実施形態によるマイクロコントローラを示すブロック図である。
【００５５】
同図に示されたマイクロコントローラ１を構成する回路素子は、ＣＭＯＳフラッシュメモリ製造プロセスによって、単結晶シリコンの１個の半導体基板上に形成される。
【００５６】
マイクロコントローラ（ＭＣＵ）１は、中央処理ユニット（ＣＰＵ）２、ランダムアクセスメモリ（ＲＡＭ）３、不揮発性記憶装置としてのフラッシュメモリ（ＦＬＡＳＨ）４、制御装置としてのフラッシュコントロールユニット（ＦＣＵ）５、バスコントローラ（ＢＳＣ）６、周辺回路（ＰＲＨＲＬ）７、Ｉ／Ｏポート（ＩＯＰ）８及びシステムコントローラ（ＳＹＳＣ）９を有する。周辺回路７には、タイマ、パルス出力回路、シリアルコミュニケーションインタフェース、Ａ／Ｄ変換器などが含まれる。図示はしないが、割込みコントローラやクロック発振器などの回路モジュールも搭載される。中央処理ユニット２は命令をフェッチしてデコードする命令制御部と、命令制御部による命令デコード結果に基づいて演算等を行って命令を実行する命令実行部とを有する。ランダムアクセスメモリ３は、中央処理ユニット２のワーク領域とされる。
【００５７】
≪マイクロコントローラのフラッシュメモリ≫
フラッシュメモリ４は中央処理ユニット２のプログラムを格納したり、あるいは不揮発記憶すべきデータの格納に利用される。フラッシュメモリ４は、電気的に消去及び書き込み可能な不揮発性メモリトランジスタを含む複数の不揮発性メモリセルを有する。不揮発性メモリトランジスタには、特に制限されないが、ソースとドレインの間のチャネル形成領域の上に各々絶縁されたフローティングゲートのような電荷蓄積領域とコントロールゲートを積み重ねたスタックドゲート構造を採用可能である。あるいはチャネル形成領域の上に選択ゲートとメモリゲートを分離して配置して、メモリゲートとチャンネル形成領域との間にシリコンナイトライドのような電荷蓄積領域を形成したスプリット構造等を採用してもよい。
【００５８】
不揮発性メモリセルのトランジスタは電荷蓄積領域に電子が注入される書き込みによってしきい値電圧が高くされ、書き込みによって蓄積された電子の放出又はホールの注入によってしきい値電圧が低くされる。例えばメモリゲートと基板の間に高電界を形成して、ソース・ドレイン間電流によって発生されるホットエレクトロンを電荷蓄積領域に注入することによって書き込みが行われる。消去の場合には、ホットホールを発生させてこれを電荷蓄積領域に注入するか、高電界によるトンネル効果により電荷蓄積領域から電子を放出すればよい。高電界を形成するのに、書き込みでは書き込みパルス電圧を用い、消去では消去パルス電圧を用いる。不揮発性メモリセルのトランジスタは、そのしきい値電圧の相違として情報を記憶する。１個のメモリセルによる情報記憶は１ビットを示す低いしきい値電圧と高いしきい値電圧との２値、或いは２ビットを示す低いしきい値電圧と低中間のしきい値電圧と高中間のしきい値電圧と高いしきい値電圧との４値等の多値のいずれであっても良い。
【００５９】
≪フラッシュメモリの消去動作≫
消去命令に応答するフラッシュコントロールユニット５の制御によるフラッシュメモリ４の消去動作では、ハードディスクの１セクターのユーザーデータが５１２バイトの整数倍の例えば２０４８バイトのユーザーデータの消去ブロックの複数のフラッシュメモリセルが一括して消去される。一括消去（フラッシュ消去）は、消去ブロックの複数のフラッシュメモリセルへの消去パルスの並列印加と複数のセルの消去並列ベリファイとの反復処理により実行される。例えば、消去並列ベリファイの単位は、３２個のメモリセルである。消去パルスの印加により所定の消去レベルのしきい値電圧に到達したセルは、次回の消去パルス印加の対象から除外され、消去レベルに未到達のセルが次回の消去パルス印加の対象とされる。良好な電気的特性を持つ消去ブロックでは、妥当な回数の反復処理によって全ての複数のフラッシュメモリセルのしきい値電圧が消去レベルに到達する。
【００６０】
しかし、製造時の不具合もしくは使用によるストレス劣化により、若干の消去ブロックでは、妥当な回数の反復処理によって全ての複数のフラッシュメモリセルのしきい値電圧が消去レベルに到達しない。反復処理の上限は、例えば２０回に設定される。消去パルス印加と消去ベリファイとの２０回の反復処理によっても、しきい値電圧が消去レベルに到達しないメモリセルを含む消去ブロックの管理領域にはこの消去ブロックの不良を示す不良フラグが書き込まれる。不良消去ブロックが他の良消去ブロックにより代替される場合には、不良消去ブロックの管理領域に代替の良消去ブロックのアドレスが書き込まれる。更に、不良消去ブロックの管理領域に書き込まれた不良フラグや代替アドレスの読み出し際のビットエラーを訂正するＥＣＣ（誤り訂正コード）データを管理領域に書き込むことが推奨される。
【００６１】
反復処理の回数が上限に達する前に全ての複数のフラッシュメモリセルのしきい値電圧が消去レベルに到達すると、その消去ブロックの消去動作が完了する。この消去動作の完了の際に、消去動作が完了した消去ブロックの管理領域に格納された消去・書き込み回数を＋１インクリメントすることが推奨される。フラッシュメモリ４の多くの消去ブロックの間の疲弊度を均一化（ウェアレベリング）するために、フラッシュメモリ４の稼働中の適切なタイミングで消去・書き込み回数の非常に大きな消去ブロックのデータと消去・書き込み回数の非常に小さな消去ブロックのデータとを置換することが推奨される。この置換によって、回数の小さな消去ブロックのデータのディスターブによるデータ破壊と回数の大きな消去ブロックのデータの疲弊によるデータ破壊とが、回避される。以上の制御は、フラッシュコントロールユニット５によって実行される。
【００６２】
≪フラッシュメモリの書き込み動作≫
書き込み命令に応答するフラッシュコントロールユニット５の制御によるフラッシュメモリ４の書き込み動作は、上記の消去動作により消去が完了した消去ブロックに行われる。フラッシュメモリ４の書き込み動作では、書き込み単位である例えば１２８バイトのページで、２０４８バイトのユーザーデータの消去ブロックよりもはるかに小さい。１ページの書き込み動作は、１ページの複数のフラッシュメモリセルへの書き込みパルスの並列印加と複数のセルの書き込み並列ベリファイとの反復処理により実行される。例えば、書き込み並列ベリファイの単位は、３２個のメモリセルである。書き込みパルスの印加により消去レベルのしきい値電圧から所定の書き込みレベルのしきい値電圧に到達したセルは、次回の書き込みパルス印加の対象から除外され、書き込みレベルに未到達のセルが次回の書き込みパルス印加の対象とされる。良好な電気的特性を持つページでは、妥当な回数の反復処理によって全ての複数のフラッシュメモリセルのしきい値電圧が書き込みレベルに到達する。
【００６３】
しかし、製造時の不具合もしくは使用によるストレス劣化により、若干のページでは、妥当な回数の反復処理によって全ての複数のフラッシュメモリセルのしきい値電圧が書き込みレベルに到達しない。反復処理の上限は、例えば２０回に設定される。書き込みパルス印加と書き込みベリファイとの２０回の反復処理によっても、しきい値電圧が書き込みレベルに到達しないメモリセルのページを含む消去ブロックの管理領域にはこの消去ブロックの不良を示す不良フラグが書き込まれる。不良消去ブロックが他の良消去ブロックにより代替される場合には、不良消去ブロックの管理領域に代替の良消去ブロックのアドレスが書き込まれる。
【００６４】
反復処理の回数が上限に達する前に消去ブロックの１ページの全ての複数のフラッシュメモリセルのしきい値電圧が書き込みレベルに到達すると、１ページの書き込み動作が完了する。同様にして１つの消去ブロックの残りのページの書き込み動作を行うことができる。この書き込み動作で、１つの消去ブロックの２０４８バイトのユーザーデータ領域にユーザーデータが書き込まれるだけでなく、１つの消去ブロックの適切な大きさの管理領域にユーザーデータの読み出しのビットエラーを訂正するＥＣＣ（誤り訂正コード）データが書き込まれる。
【００６５】
≪フラッシュメモリの管理動作≫
上述したように、データの書き込み単位は１２８バイトのページと、消去ブロックよりも小さなものとなる。小さなサイズの同一ファイル名でも生成日時の異なる複数のユーザーデータは１つの消去ブロック中に書き込まれるが、１つの消去ブロックに空き領域が無くなると、同一ファイル名でも生成日時の新しいユーザーデータは別の１つの消去済みの消去ブロック中に書き込まれる。同一ファイル名で生成日時の古いユーザーデータを格納して空き領域が無くなった古い消去ブロックは一般に不必要であるので、古い消去ブロックの有効フラグは無効にマークされる。無効な古い消去ブロックは稼働中の適切なタイミングで消去されることにより、空き領域が生成されて再利用が可能となる。無効な古い消去ブロックの消去は空き領域の生成による再利用のために必須で、ガーベージコレクションと呼ばれている処理である。
【００６６】
また、ファイル名はマイクロコントローラ１の中央処理ユニット２の論理アドレスで示され、この論理アドレスに対応する最新のユーザーデータを格納した物理領域（物理アドレス）が刻々と変化することになる。従って、マイクロコントローラ１の中央処理ユニット２が論理アドレスに対応する最新のユーザーデータをフラッシュメモリ４から読み出すためのアドレス変換テーブルが、フラッシュメモリ４に格納されている。マイクロコントローラ１に電源が供給された稼動状態では、論理アドレスと物理アドレスとの対応を示すアドレス変換テーブルはＲＡＭ３に存在して、フラッシュメモリ４のユーザーデータが更新される毎にＲＡＭ３上のアドレス変換テーブルの論理アドレスと物理アドレスとの対応も更新される。マイクロコントローラ１の電源が遮断される際には、ＲＡＭ３上の最新のアドレス変換テーブルはフラッシュメモリ４の適切な格納領域に退避される。また、マイクロコントローラ１の電源の投入時には、フラッシュメモリ４の適切な格納領域から最新のアドレス変換テーブルから読み出されてＲＡＭ３に転送されるので、中央処理ユニット２は論理アドレスに対応する最新のユーザーデータをフラッシュメモリ４から読み出すことが可能となる。
【００６７】
≪マイクロコントローラのシステムコントローラ≫
システムコントローラ９には、外部のモード端子ＭＤ０〜ＭＤ２及びリセット端子ＲＥＳＥＴ等が接続される。リセット端子ＲＥＳＥＴがローレベルにされるとシステムコントローラ９内部の初期化が開始され、リセット端子ＲＥＳＥＴがハイレベルにされてリセット指示が解除されると、中央処理ユニット２は例えばプログラムの先頭アドレスの命令をフェッチして命令実行動作を開始する。リセットの指示が解除される時に、モード端子ＭＤ０〜ＭＤ２の状態に応じてマイクロコントローラの動作モードが決定される。例えば通常モード又はテストモードにされる。テストモードは、特に制限されないが、通常モードに比べ、デバイステスト、デバイス評価、更にはシステム評価の便に供する機能を利用可能な動作モードである。
【００６８】
≪マイクロコントローラのバス≫
マイクロコントローラ１は、内部バスＩＢＵＳ、周辺バスＰＢＵＳ、及び外部バスＥＸＢＵＳを有する。それぞれのバスは、アドレスバス、データバスの他、バス権要求信号、バスアクノレッジ信号、バスコマンド（またはリード信号、ライト信号、バスサイズ信号）、レディ信号（またはウェイト信号）等の信号線を含む。
【００６９】
内部バスＩＢＵＳは、中央処理ユニット２或いは図示を省略するダイレクトメモリアクセスコントローラ（ＤＭＡＣ）のようなそのほかの内部バスマスタに直接接続されるバスである。内部バスＩＢＵＳにはランダムアクセスメモリ３、バスコントローラ６、フラッシュメモリ４、及びＩ／Ｏポート等、少数の回路モジュールが接続される。内部バスＩＢＵＳを介するランダムアクセスメモリ３及びフラッシュメモリ４に対する読み出しアクセスは１ステートで可能にされる。内部バスＩＢＵＳの接続先が少数であるため、バス幅は任意にでき、例えばそのデータバスは３２ビット幅とされる。
【００７０】
周辺バスＰＢＵＳには、周辺回路７、システムコントローラ９、フラッシュコントロールユニット５及びＩ／Ｏポート８などが接続される。周辺バスＰＢＵＳは、バスコントローラ６を介して内部バスＩＢＵＳと接続される。これにより、中央処理ユニット２のプログラムリードなどで、主として使用する内部バスＩＢＵＳの負荷を軽減して、アクセスの高速化ができる。更に、中央処理ユニット２等が周辺バスＰＢＵＳを使用しない時に周辺バスの状態を保持することが可能になるから、これによって低消費電力化することができる。中央処理ユニット２が周辺バスＰＢＵＳに接続される回路モジュール内の内部Ｉ／Ｏレジスタをアクセスする場合には、内部バスＩＢＵＳ及びバスコントローラ６を経由して行う。内部Ｉ／Ｏレジスタのアクセスは２ステートで行われる。内部バスＩＢＵＳに比べて周辺バスＰＢＵＳの接続先は多数であるため、周辺バスＰＢＵＳのバス幅を広げると物理的な規模が増加するため、周辺バスＰＢＵＳは例えば１６ビットのデータバスを有する。
【００７１】
内部バスＩＢＵＳと外部バスＥＸＢＵＳは、外部バスバッファ回路（ＢＵＦ）１０によってインタフェースされる。外部バスバッファ回路１０は、入出力ポート８に含まれる。周辺バスＰＢＵＳ及び外部バスＥＸＢＵＳに対するバス制御はバスコントローラ６が行う。
【００７２】
通常モードにおけるフラッシュメモリ４のリード動作は内部バスＩＢＵＳを経由して行う。書き込み及び消去を指示するためのコマンド及びデータの供給は周辺バスＰＢＵＳを介してフラッシュコントロールユニット５に対して行う。書き込み及び消去動作は、それ自体に時間がかかり、また、書き込み及び消去動作の頻度はそれほど高くなく、少なくとも内部バスＩＢＵＳを経由したリード動作より大幅に少ないということを考慮したものである。フラッシュコントロールユニット５を内部バスＩＢＵＳに接続すれば、内部バスＩＢＵＳの負荷が大幅に増えることになるからである。
【００７３】
≪マイクロコントローラのフラッシュコントロールユニット≫
フラッシュコントロールユニット５は、ローカルＣＰＵ（ＦＣＰＵ）１２を備える。通常モードにおいてローカルＣＰＵ１２は中央処理ユニット２から発行されたコマンドに応答して逐次命令を実行してフラッシュメモリ４に対する書き込み及び消去制御を行うことが可能とされる。中央処理ユニット２は、コマンド発行後に書き込み及び消去制御から開放される。テストモードでは、中央処理ユニット２が逐次命令を実行してフラッシュメモリ４に対する書き込み及び消去制御を行うことが可能にされる。ローカルＣＰＵ１２の動作プログラムに制限されることなく、中央処理ユニット２のプログラムに従ってテストや検証のための書き込み及び消去制御を自由に行うことができる。
【００７４】
図２は、図１に示したマイクロコントローラ１のフラッシュコントロールユニット５の構成を示すブロック図である。フラッシュコントロールユニット５は、ローカルＣＰＵ１２の他に、ＣＰＵインタフェースコントローラ（ＦＩＭＣ）１３、バス制御回路（ＦＢＳＣ）１４、コントロールＲＡＭ（ＣＲＡＭ）１５、書き込み消去制御回路（ＦＬＣ）１６、及びローカルバスＦＢＵＳを有する。
【００７５】
フラッシュコントロールユニット５は中央処理ユニット２のアドレス空間に配置され、中央処理ユニット２は周辺バスＰＢＵＳを介してフラッシュコントロールユニット５の内部をアクセスすることができる。すなわち、ＣＰＵインタフェースコントローラ１３は周辺バスＰＢＵＳに接続され、中央処理ユニット２からのアクセスに対してフラッシュコントロールユニット５の全体的な制御を行う。第１に、ＣＰＵインタフェースコントローラ１３は、割込み要求信号ＩＲＱと対応するベクタを発行してローカルＣＰＵ１２を起動する。第２に、ＣＰＵインタフェースコントローラ１３は、バス制御回路１４にバスコマンドを発行することによってコントロールＲＡＭ１５及び書き込み消去制御回路１６に対するローカルバスＦＢＵＳ経由のバス制御を行う。コントロールＲＡＭ１５はローカルＣＰＵ１２の動作プログラムの格納領域、或いはローカルＣＰＵ１２のワーク領域等に用いられる。
【００７６】
≪フラッシュコントロールユニットの書き込み消去制御回路≫
書き込み消去制御回路１６は、フラッシュメモリ４に対する動作制御レジスタ（ＦＣＮＴＲ）１８を有する。動作制御レジスタ１８は、種々の制御ビットを含むとともに、トリミングビット情報及び消去ブロックビット情報も含んでいる。書き込み消去制御回路１６は動作制御レジスタ１８に設定される制御ビットの状態に従ってフラッシュメモリ４の動作を制御する。動作制御レジスタ１８の制御ビットは、例えば書き込みイネーブルビットＷＥ、書き込み指示ビットＰ、消去指示ビットＥ、書き込みベリファイ指示ビットＰＶ、及び消去ベリファイ指示ビットＥＶ等とされる。書き込みイネーブルビットＷＥは、論理値“１”によって書き込み消去動作の指示の有効性を示す。書き込み指示ビットＰは、論理値“１”によって書き込みパルス電圧の印加を指示する。消去指示ビットＥは、論理値“１”によって消去パルス電圧の印加を指示する。トリミングビット情報はフラッシュメモリ４の書き込みパルス電圧、消去パルス電圧、ドレイン電圧、ソース電圧、ベリファイ電圧の各々の電圧レベルの微調整や、書き込みパルス電圧及び消去パルス電圧のパルス幅の微調整を行うためのトリミングビット情報が設定される。トリミングデータやローカルＣＰＵ１２の動作プログラムの初期値はフラッシュメモリ４が保有し、その初期値データはパワーオンリセットに応答して中央処理ユニット２が動作制御レジスタ１８及びコントロールＲＡＭ１５に内部転送する。動作制御レジスタ１８は通常モードではユーザプログラムを実行しているＣＰＵ２からの書き込みアクセス不可能にされ、保護される。テストモードでは自由にアクセス可能にされる。消去ブロックビット情報には、消去ブロック又は消去アドレスが指定される。書き込みデータ及び書き込みアドレスはフラッシュメモリ内部のデータレジスタ及びアドレスレジスタにセットされる。
【００７７】
≪フラッシュコントロールユニットのＣＰＵインタフェースコントローラ≫
ＣＰＵインタフェースコントローラ１３は、中央処理ユニット２から周辺バスＰＢＵＳを介してアクセス可能にされる内部Ｉ／Ｏレジスタ（ＩＩＯＲ）２０、コントロールレジスタ（ＣＮＴＲ）２１、ステータスレジスタ（ＳＴＳＲ）２２およびサスペンドモードレジスタ（ＳＵＳＭＤ）３１を有する。コントロールレジスタ２１は書き込み消去フラグＦＥＮＴＲＹ等の設定領域とされ、中央処理ユニット２によって書き込み可能にされ、ローカルＣＰＵ１２によって読み出し可能にされる。ステータスレジスタ２２はビジーフラグＢＵＳＹやコマンドエンドフラグＣＭＤＥ等の記憶領域とされ、ローカルＣＰＵ１２によってライト可能にされ、中央処理ユニット２によってリード可能にされる。ローカルＣＰＵ１２は経路２３からステータスレジスタ２２に対する書き込みを行う。本発明の特徴であるサスペンドモードレジスタ３１は、フラッシュコントロールユニット５の動作モードを設定する動作モードビット信号ＳＵＳＰを格納する。動作モードビット信号ＳＵＳＰが“１”レベルであるとフラッシュコントロールユニット５は第１の動作モードに設定され、動作モードビット信号ＳＵＳＰが“０”レベルであるとフラッシュコントロールユニット５は第２の動作モードに設定される。動作モードを設定する動作モードビット信号ＳＵＳＰは、図１のシステムコントローラ９にシステム起動時にリセット信号ＲＥＳＥＴとともに供給されるモード信号ＭＤ０〜ＭＤ２から供給することもできる。また、通常モードの動作中でも、中央処理ユニット２から内部バスＩＢＵＳ、バスコントローラ６、周辺バスＰＢＵＳを介して動作モードビット信号ＳＵＳＰがサスペンドモードレジスタ３１に供給されることもできる。
【００７８】
≪フラッシュコントロールユニットによる書き込み処理と消去処理≫
フラッシュコントロールユニット５は、書き込み命令又は消去命令に応答してフラッシュメモリ４へ書き込み又は消去のパルスの印加とベリファイとの反復処理により書き込み又は消去の不揮発記憶動作を制御する。第１の動作（ＳＵＳＰ＝“１”レベル）に設定されたフラッシュコントロールユニット５は、不揮発記憶動作の反復処理のパルスの印加中に中断命令に応答してパルスの印加の解除により不揮発記憶動作を中断する。第１の動作（ＳＵＳＰ＝“１”レベル）に設定されたフラッシュコントロールユニット５は、復帰命令に応答して解除となったパルスの印加から中断された不揮発記憶動作の反復処理を再開する。第２の動作（ＳＵＳＰ＝“０”レベル）に設定されたフラッシュコントロールユニット５は、不揮発記憶動作の反復処理のパルスの印加中に中断命令に応答してパルスの印加を継続して印加の完了した時点で不揮発記憶動作を中断する。第２の動作（ＳＵＳＰ＝“０”レベル）に設定されたフラッシュコントロールユニット５は、復帰命令に応答して印加の完了した不揮発性メモリセルのベリファイから、中断された不揮発記憶動作に対する反復処理を再開する。
【００７９】
サスペンドモードレジスタ３１の動作モードビット信号ＳＵＳＰは、中央処理ユニット２からは周辺バスＰＢＵＳを経由して書き込みと読み出しが可能であり、ローカルＣＰＵ１２からは経路２３とフラッシュバスＦＢＵＳとバス制御回路１４とを使用して読み出し可能な制御ビットで、消去サスペンド時の中断処理を切り替えるために使用される。また、書き込み消去制御回路１６の動作制御レジスタ１８の消去ベリファイ指示ビット（ＥＶ）と書き込みベリファイ指示ビット（ＰＶ）は、ローカルＣＰＵ１２から経路２３を使用して書き込み／読み出し可能なビットで、フラッシュメモリ４をそれぞれ消去ベリファイ、書き込みベリファイする場合に使用される。
【００８０】
通常モードにおいて書き込み消去フラグＦＥＮＴＲＹ＝“１”の時に、ＣＰＵインタフェースコントローラ１３は、フラッシュメモリ４の不揮発性メモリアレイにマッピングされたアドレスにデータを書き込む中央処理ユニット２からのアクセスを検出すると、その書き込みアクセスを書き込みデータに応じてフラッシュ書き込みコマンド、フラッシュ消去コマンド、レジュームコマンドとして認識する。ＣＰＵインタフェースコントローラ１３はそのコマンド解釈に従って割り込み要求信号ＩＲＱを活性化して、コマンドに応ずるベクタを発行する。これによってローカルＣＰＵ１２は、ベクタによって指定される書き込み制御プログラム又は消去制御プログラムをコントロールＲＡＭ１５からフェッチして実行する。フラッシュ書き込みコマンドに応答する場合、ローカルＣＰＵ１２は、その書き込み制御プログラムに従ってフラッシュ書き込みコマンドと認識した書き込みアクセスに係るアドレスとデータを内部ＩＯレジスタ２０からコントロールＲＡＭ１５に取り込み、フラッシュメモリに転送して、動作制御レジスタ１８の書き込みイネーブルビットＷＥ、書き込み指示ビットＰ等を順次設定しながら、フラッシュメモリ４に対する書き込みを行う。フラッシュ消去コマンドに応答する場合、ローカルＣＰＵ１２はその消去制御プログラムに従ってフラッシュ消去コマンドと認識した消去ブロック指定データを内部ＩＯレジスタ２０から読み出して動作制御レジスタ１８に消去ブロック番号を設定し、動作制御レジスタ１８の書き込みイネーブルビットＷＥ、消去指示ビットＥ等を順次設定しながら、フラッシュメモリ４に対する消去を行う。
【００８１】
書き込み消去フラグＦＥＮＴＲＹはバスコントローラ６に供給され、通常モードにおいて書き込み消去フラグＦＥＮＴＲＹ＝“０”レベルの時に、バスコントローラ６がフラッシュメモリ４のマッピングアドレスに対する中央処理ユニット２からの書き込みアクセスを検出すると、例えばアドレスエラーを発生させて、フラッシュメモリ４に対する当該書き込み動作を無効とする。従って、通常モードにおいて書き込み消去フラグＦＥＮＴＲＹ＝“０”レベルの時には、フラッシュメモリ４は内部バスＩＢＵＳ経由のリードアクセスだけが可能にされる。尚、テストモードでは書き込み消去フラグＦＥＮＴＲＹはバスコントローラ６によるフラッシュメモリ４に対するアクセス経路の制御だけに用いられる。即ち、フラッシュメモリ４に対しては、テストモードにおいて書き込み消去フラグＦＥＮＴＲＹ＝“１”レベルの時にはバスコントローラ６及び周辺バスＰＢＵＳ経由のアクセスだけが許容され、書き込み消去フラグＦＥＮＴＲＹ＝“０”レベルの時には内部バスＩＢＵＳ経由のリードアクセスだけが許容される。
【００８２】
≪フラッシュコントロールユニットのバス制御回路≫
フラッシュコントロールユニット５のバス制御回路１４を経由するコントロールＲＡＭ１５及び書き込み消去制御回路１６のアクセス制御について説明する。ＣＰＵインタフェースコントローラ１３は、通常モード及びテストモードのいずれにおいても、コントロールＲＡＭ１５のマッピングアドレスに対する中央処理ユニット２からのアクセスに対して、アクセスコマンドをバス制御回路１４に発行する。発行されたアクセスコマンドに従ってバス制御回路１４は、ローカルバスＦＢＵＳの制御を行ってコントロールＲＡＭ１５に対するリードアクセス及びライトアクセスを行うことができる。特に制限されないが、通常モードでは書き込み消去制御回路１６の動作制御レジスタ１８に対する自由なアクセスは、許容されていない。テストモードでは、中央処理ユニット２からフラッシュメモリ４のマッピングアドレスにデータを書き込むアクセスがあっても、また、中央処理ユニット２から動作制御レジスタ１８に対してデータを書込むアクセスがあっても、ＣＰＵインタフェースコントローラ１３はローカルＣＰＵ１２を起動せず、対応するアクセスコマンドをバス制御回路１４に発行する。それに従ってバス制御回路１４がローカルバスＦＢＵＳの制御を行って、ＣＰＵインタフェースコントローラ１３の内部ＩＯレジスタ２０に保持された書き込みデータ及び書き込みアドレスをフラッシュメモリ４に供給し、又は消去ブロックアドレスを動作制御レジスタ１８に供給する。この後、中央処理ユニット２は書き込み消去制御回路１６の動作制御レジスタ１８に対する書き込みアクセスを発行することによって消去ビットＥや書き込み指示ビットＰを直接操作して、消去動作又は書き込み動作を行うことができる。
【００８３】
テストモードでは、中央処理ユニット２は書き込み消去制御回路１６の動作制御レジスタ１８のトリミング情報ビットを直接操作することができるから、トリミングデータの設定次第で、例えば、フラッシュメモリ４における書き込みパルス電圧、消去パルス電圧、パルス印加時間、ドレイン電圧、及びソース電圧等を微調整することができる。そのような電圧や時間を微調整することによって、マイクロコントローラ１の製造プロセス、不揮発性メモリの素子構成、あるいはマイクロコントローラ１の個体差などに即して、最適な書き込み、最適な消去の制御が可能にされる。これらの電圧や時間は量産時には固定にされるのがよいが、少なくとも試作評価時には可変にする必要がある。
【００８４】
更にテストモードでは、中央処理ユニット２はコントロールＲＡＭ１５が保有するローカルＣＰＵ１２のプログラムを書き換えることができる。試作評価時には、テストモードで、中央処理ユニット２による制御プログラム実行で書き込み／消去を実行し、基本機能や所要のパラメータなどの確認を行うことができる。試作評価時は、機器制御を行うわけではないので、リアルタイム性の要求される割込み処理などを考慮する必要がない。その後は、制御プログラムをローカルＣＰＵ１２用に変更して、コントロールＲＡＭ１５に転送し、この後、テストコマンドを用いて中央処理ユニット２がＣＰＵインタフェースコントローラ１３に書き込み／消去動作を指示することで、ローカルＣＰＵ１２にそのプログラムを実行させて書き込み及び消去を行わせることも可能である。当然この場合には、ＣＰＵインタフェースコントローラ１３の内部ＩＯレジスタ２０には書き込みアドレス及び書き込みデータ、あるいは消去ブロック指定データが保持されているとよい。
【００８５】
≪中央処理ユニットのアドレス空間≫
図３は、図１に示したマイクロコントローラ１の中央処理ユニット２のアドレス空間を示す図である。中央処理ユニット２のアドレス空間は、例えば４ギガバイト（ＧＢ）である。その内の先頭側１６メガバイト（ＭＢ）が、フラッシュコントロールユニット５にマッピングされる。中央処理ユニット２とローカルＣＰＵ１２の双方が、フラッシュコントロールユニット５のマッピングアドレスをアクセス可能である。このローカルＣＰＵ１２のアドレス空間は、バス制御回路１４が管理し、ローカルＣＰＵ１２がバス制御回路１４に対し、バスコマンドとアドレスを与えることによって、アクセスが実行される。前述の如くフラッシュメモリ４は、書き込み消去フラグＦＥＮＴＲＹ＝“１”レベルの時に周辺バスＰＢＵＳアクセスが可能にされ、書き込み消去フラグＦＥＮＴＲＹ＝“０”レベルの時に内部バスＩＢＵＳアクセスが可能にされる。フラッシュコントロールユニット５のコントロールＲＡＭ１５も、中央処理ユニット２のアドレス空間上に配置されているから、中央処理ユニット２によって、フラッシュメモリ４上に保持したローカルＣＰＵ１２のプログラムをコントロールＲＡＭ１５に転送し、コントロールＲＡＭ１５に格納することができる。あるいは、任意のプログラムをコントロールＲＡＭ１５に格納し、ローカルＣＰＵ１２に実行させることができる。なお、コントロールＲＡＭ１５は、誤動作などによって不所望に書き換えられないように、アクセスイネーブルビットなどを持つようにするのがよい。更に、フラッシュコントロールユニット５のＣＰＵインタフェースコントローラ１３内部の内部Ｉ／Ｏレジスタ（ＩＩＯＲ）２０、コントロールレジスタ（ＣＮＴＲ）２１、ステータスレジスタ（ＳＴＳＲ）２２およびサスペンドモードレジスタ（ＳＵＳＭＤ）３１も、中央処理ユニット２のアドレス空間上に配置されている。書き込み消去制御回路１６に含まれる動作制御レジスタ（ＦＣＮＴＲ）１８もアドレス空間上に配置されており、テストモードでは周辺バスＰＢＵＳ経由で中央処理ユニット２によりアクセス可能とされている。
【００８６】
≪フラッシュコントロールユニット５の状態遷移≫
図４は、図１に示したマイクロコントローラ１のフラッシュコントロールユニット５の状態遷移の概略を示す図である。マイクロコントローラ１がリセットされるとフラッシュコントロールユニット５はリセット状態（Ｓ１）になる。リセット解除後はＣＰＵインターフェースコントローラ１３のコントロールレジスタ２１の書き込み消去フラグＦＥＮＴＲＹのビットが“０”のレベルであるため、フラッシュコントロールユニット５は停止状態（Ｓ２）である。また、書き込み消去フラグＦＥＮＴＲＹのビットが“０”のレベルの場合には、バスコントローラ６によってフラッシュメモリ４は内部バスＩＢＵＳにマッピングされ、中央処理ユニット２によるフラッシュメモリ４の読み出しアクセスが可能となる。中央処理ユニット２が、ＣＰＵインターフェースコントローラ１３のコントロールレジスタ２１の書き込み消去フラグＦＥＮＴＲＹのビットを“１”のレベルにセットすると、フラッシュコントロールユニット５はコマンド待ち状態（Ｓ３）に遷移する。書き込み消去フラグＦＥＮＴＲＹのビットが“１”のレベルの場合には、バスコントローラ６によってフラッシュメモリ４は周辺バスＰＢＵＳにマッピングされる。コマンド待ち状態（Ｓ３）で、周辺バスＰＢＵＳからフラッシュメモリ４のアドレスに対する読み出しアクセスがあった場合、ＣＰＵインターフェースコントローラ１３はバス制御回路１４にリードバスコマンドを発行してフラッシュメモリ４のリード動作（Ｓ４）を行い、リード動作（Ｓ４）の後は、ただちにコマンド待ち状態（Ｓ３）に遷移する。
【００８７】
コマンド待ち状態（Ｓ３）で、周辺バスＰＢＵＳからフラッシュメモリ４の所定のアドレスに対して書き込みが行われた場合には、ＣＰＵインターフェースコントローラ１３はその書き込みデータに応じて当該書き込みアクセスをフラッシュ書き込みコマンド、フラッシュ消去コマンド、またはレジュームコマンドと解釈し、割り込み要求信号ＩＲＱを活性化してそれぞれのコマンドに対応するベクタを発行する。ローカルＣＰＵ１２は割り込みベクタで指示されるスタートアドレスに従って、コントロールＲＡＭ１５上に配置したプログラムの実行を開始する。ローカルＣＰＵ１２を割り込み要求信号ＩＲＱにより起動した直後には、ローカルＣＰＵ１２の割り込み要求信号ＩＲＱの受け付けは禁止状態になる。割り込み要求信号ＩＲＱの受け付けの許可／禁止は、ローカルＣＰＵ１２のプログラムで設定可能である。
【００８８】
ＣＰＵインターフェースコントローラ１３がフラッシュ書き込みコマンドを検出してローカルＣＰＵ１２がコントロールＲＡＭ１５上の書き込み制御プログラムの実行を開始すると、フラッシュコントロールユニット５は書き込み処理状態（Ｓ５）に遷移して、コントロールレジスタ２１のビジーフラグ（ＢＵＳＹ）は“１”のレベルにセットされる。書き込み制御プログラムでは、フラッシュ書込みコマンドと認識した周辺バスＰＢＵＳアクセスに関わるアドレスとデータとをＣＰＵインターフェースコントローラ１３の内部ＩＯレジスタ２０から取り込み、フラッシュメモリ４に転送し、書き込み消去制御回路１６の動作制御レジスタ１８の書き込みイネーブルビット（ＷＥ）、書き込み指示ビット（Ｐ）等を順次設定しながら、フラッシュメモリ４に対する書き込みを行う。書き込み制御プログラムの実行が完了して、ローカルＣＰＵ１２がコントロールレジスタ２１のコマンドエンドフラグ（ＣＭＤＥ）を“１”のレベルにセットすると、ビジーフラグ（ＢＵＳＹ）が“０”のレベルにクリアされてフラッシュコントロールユニット５はコマンド待ち状態（Ｓ３）に遷移する。
【００８９】
書き込み処理状態（Ｓ５）でかつローカルＣＰＵ１２の割り込み要求信号ＩＲＱの受け付けが許可された状態で、周辺バスＰＢＵＳからフラッシュメモリ４の所定のアドレスに対して所定のデータが書き込まれた場合には、ＣＰＵインターフェースコントローラ１３がサスペンドコマンドを検出して、割り込み要求信号ＩＲＱを活性化してサスペンドコマンドに対応するベクタを発行する。ローカルＣＰＵ１２がコントロールＲＡＭ１５上のコマンド中断処理プログラムの実行を開始すると、フラッシュコントロールユニット５はコマンド中断処理状態（Ｓ７）に遷移する。コマンド中断処理（Ｓ７）では、ローカルＣＰＵ１２によって実行されていた処理の状態を処理の中断の後の処理の再開前に回復するのに必要な情報を書き込み消去制御回路１６の動作制御レジスタ１８及びローカルＣＰＵ１２の汎用レジスタからコントロールＲＡＭ１５に退避する。退避処理が完了してローカルＣＰＵ１２がコントロールレジスタ２１のコマンドエンドフラグ（ＣＭＤＥ）を“１”のレベルにセットすると、ビジーフラグ（ＢＵＳＹ）が“０”のレベルにクリアされてフラッシュコントロールユニット５はコマンド待ち状態（Ｓ３）に遷移する。
【００９０】
ＣＰＵインターフェースコントローラ１３が消去コマンドを検出してローカルＣＰＵ１２がコントロールＲＡＭ１５上の消去制御プログラムの実行を開始すると、フラッシュコントロールユニット５は消去処理状態（Ｓ６）に遷移してコントロールレジスタ２１のビジーフラグ（ＢＵＳＹ）は“１”のレベルにセットされる。消去制御プログラムでは、フラッシュ消去コマンドと認識した周辺バスＰＢＵＳアクセスに関わる消去ブロックまたは消去アドレスの指定データをＣＰＵインターフェースコントローラ１３の内部ＩＯレジスタ２０から取り込み、書き込み消去制御回路１６の動作制御レジスタ１８の書き込みイネーブルビット（ＷＥ）、消去指示ビット（Ｅ）等を順次設定しながら、フラッシュメモリ４に対する消去を行う。消去制御プログラムの実行が完了して、ローカルＣＰＵ１２がコントロールレジスタ２１のコマンドエンドフラグ（ＣＭＤＥ）を“１”のレベルにセットすると、ビジーフラグ（ＢＵＳＹ）が“０”のレベルにクリアされてフラッシュコントロールユニット５はコマンド待ち状態（Ｓ３）に遷移する。
【００９１】
消去処理状態（Ｓ６）かつローカルＣＰＵ１２の割り込み要求信号ＩＲＱの受け付けが許可された状態で、周辺バスＰＢＵＳからフラッシュメモリ４の所定のアドレスに対して所定のデータが書き込まれた場合には、ＣＰＵインターフェースコントローラ１３がサスペンドコマンドを検出し、割り込み要求信号ＩＲＱを活性化してサスペンドコマンドに対応するベクタを発行する。ローカルＣＰＵ１２がコントロールＲＡＭ１５上のコマンド中断処理プログラムの実行を開始すると、フラッシュコントロールユニット５はコマンド中断処理状態（Ｓ７）に遷移する。コマンド中断処理（Ｓ７）では、ローカルＣＰＵ１２によって実行されていた処理の状態を処理の中断の後の処理の再開前に回復するのに必要な情報を書き込み消去制御回路１６の動作制御レジスタ１８及びローカルＣＰＵ１２の汎用レジスタからコントロールＲＡＭ１５に退避する。退避処理が完了してローカルＣＰＵ１２がコントロールレジスタ２１のコマンドエンドフラグ（ＣＭＤＥ）を“１”のレベルにセットすると、ビジーフラグ（ＢＵＳＹ）が“０”のレベルにクリアされてフラッシュコントロールユニット５はコマンド待ち状態（Ｓ３）に遷移する。
【００９２】
コマンド待ち状態（Ｓ３）でＣＰＵインターフェースコントローラ１３がレジームコマンドを検出してローカルＣＰＵ１２がコントロールＲＡＭ１５上のコマンド再開プログラムの実行を開始すると、フラッシュコントロールユニット５はコマンド再開処理状態（Ｓ８）に遷移してコントロールレジスタ２１のビジーフラグ（ＢＵＳＹ）は“１”のレベルにセットされる。コマンド再開処理状態（Ｓ８）では、コマンド中断処理（Ｓ７）でコントロールＲＡＭ１５に退避したローカルＣＰＵ１２の処理状態が書き込み消去制御回路１６の動作制御レジスタ１８及びローカルＣＰＵ１２の汎用レジスタに回復される。回復された情報が書き込み処理用の情報であった場合には、ローカルＣＰＵ１２は書き込み処理用のプログラムを再開し、フラッシュコントロールユニット５は書き込み処理状態（Ｓ５）に遷移する。回復された情報が消去処理用の情報であった場合には、ローカルＣＰＵ１２は消去処理用のプログラムを再開し、フラッシュコントロールユニット５は消去処理状態（Ｓ６）に遷移する。
【００９３】
書き込み処理状態（Ｓ５）や消去処理状態（Ｓ６）でサスペンドコマンドを発行して処理を中断させてコマンド待ち状態（Ｓ３）に遷移した後に、フラッシュメモリ４のリード動作(Ｓ４)を実行させることにより、中央処理ユニット２は内部バスＩＢＵＳとバスコントローラ６と周辺バスＰＢＵＳとフラッシュコントロールユニット５とフラッシュメモリ４の不揮発性記憶ポートとからフラッシュメモリ４のデータを読み出すことが可能になる。内部バスＩＢＵＳとフラッシュメモリ４の読み出しポートとを使用してフラッシュメモリ４のデータを更に高速に読み出したい場合には、書き込み消去フラグＦＥＮＴＲＹのビットを“０”のレベルに設定することが推奨される。このようなサスペンド機能は、フラッシュコントロールユニット５がフラッシュメモリ４を書き込み／消去処理している状態で、優先度の高い割り込み要求などによって中央処理ユニット２によるフラッシュメモリ４のデータの高速読み出しが必要になる場合などに有用である。
【００９４】
図５は、図１に示したマイクロコントローラ１のフラッシュコントロールユニット５の状態遷移の詳細を示す図である。図４のコマンド中断処理（Ｓ７）は図５の高速中断処理（Ｓ７Ａ）と高信頼中断処理（Ｓ７Ｂ）とに対応して、図４のコマンド再開処理状態（Ｓ８）は図５のコマンド再開処理状態（Ｓ８Ａ）とコマンド再開処理状態（Ｓ８Ｂ）とに対応する。
【００９５】
図５に示すように、フラッシュコントロールユニット５が書き込み処理状態（Ｓ５）もしくは消去処理状態（Ｓ６）で、割り込み要求ＩＲＱが許可され、サスペンドコマンドが検出され、動作モードビット信号ＳＵＳＰの“１”のレベルによりフラッシュコントロールユニット５の第１の動作（ＳＵＳＰ＝“１”レベル）が指定されると、高速中断処理（Ｓ７Ａ）に状態が遷移する。高速中断処理（Ｓ７Ａ）では、書き込み処理状態（Ｓ５）もしくは消去処理状態（Ｓ６）の書き込みもしくは消去の反復処理のＮ番目のパルスの印加中にサスペンドコマンドに応答してＮ番目のパルスの印加の解除により書き込み処理状態（Ｓ５）もしくは消去処理状態（Ｓ６）が中断される。コマンド待ち状態（Ｓ３）でレジュームコマンドが供給されると、コマンド再開処理状態（Ｓ８Ａ）に遷移する。コマンド再開処理状態（Ｓ８Ａ）では、高速中断処理（Ｓ７Ａ）で印加解除となったＮ番目のパルスの印加から中断された書き込み処理（Ｓ５）もしくは消去処理（Ｓ６）が再開される。
【００９６】
フラッシュコントロールユニット５が書き込み処理状態（Ｓ５）もしくは消去処理状態（Ｓ６）で、割り込み要求ＩＲＱが許可され、サスペンドコマンドが検出され、動作モードビット信号ＳＵＳＰの“０”のレベルによりフラッシュコントロールユニット５の第２の動作（ＳＵＳＰ＝“０”レベル）が指定されると、高信頼中断処理（Ｓ７Ｂ）に状態が遷移する。高信頼中断処理（Ｓ７Ｂ）では、書き込み処理状態（Ｓ５）もしくは消去処理状態（Ｓ６）の書き込みもしくは消去の反復処理のＮ番目のパルスの印加中にサスペンドコマンドに応答してＮ番目のパルスの印加を継続し、Ｎ番目のパルスの印加が完了した時点で書き込み処理状態（Ｓ５）もしくは消去処理状態（Ｓ６）が中断される。コマンド待ち状態（Ｓ３）でレジュームコマンドが供給されると、コマンド再開処理状態（Ｓ８Ｂ）に遷移する。コマンド再開処理状態（Ｓ８Ｂ）では、Ｎ番目のパルスの印加が完了した不揮発性メモリセルのベリファイから中断された書き込み処理（Ｓ５）もしくは消去処理（Ｓ６）が再開される。
【００９７】
≪ローカルＣＰＵによる消去制御プログラム≫
図６は図１に示したマイクロコントローラ１のフラッシュコントロールユニット５が消去状態Ｓ７に遷移した場合に、ローカルＣＰＵ１２が実行する消去制御プログラムのフローチャートを示す図である。プログラム処理中で設定する変数などの格納先のハードウェアを特定していない箇所については、ローカルＣＰＵ１２の汎用レジスタまたはコントロールＲＡＭ１５の所定の領域に格納されるものとする。消去制御プログラムの冒頭のステップＳ３０では、プログラム処理中で使用する変数の初期化処理を行う。例えば、ステップＳ１２からステップＳ２４までの一連の処理を実行した回数を示す変数が“１”レベルに初期化される。次に、ステップＳ１０で消去ブロック番号などの消去先アドレスを指定する情報を、ＣＰＵインターフェースコントローラ１３の内部ＩＯレジスタ２０から読み取り、書き込み消去制御回路１６の動作制御レジスタ１８に消去ブロック番号を設定する。次に、ステップＳ１１で書き込み消去制御回路１６の動作制御レジスタ１８の書き込みイネーブルビット（ＷＥ）を“１”のレベルに設定し所定時間ウェイトすることにより、フラッシュメモリ４内の電源が所定の状態になり、フラッシュメモリ４の書き込み／消去が可能になる。次に、ステップＳ１２で処理再開アドレスをステップＳ１２に設定することにより、レジュームコマンド発行後の再開処理において、ローカルＣＰＵ１２のプログラムがステップＳ１２（消去パルス印加前）から再開されるように設定する。次に、ステップＳ１３でローカルＣＰＵ１２の割り込み要求信号ＩＲＱの割り込みの受け付けを許可することにより、サスペンドコマンドの受け付けが可能な状態とする。この状態で、書き込み消去制御回路１６の動作制御レジスタ１８の消去ビット（Ｅ）を“１”のレベルに設定し所定時間ウェイトすることにより、ステップＳ１４でフラッシュメモリ４に消去パルスが印加される。ステップＳ１４での消去パルス印加のウェイトが完了した後に、ステップＳ１５で割り込み要求信号ＩＲＱの受け付けを禁止して、ステップＳ１６で消去ビット（Ｅ）を“０”のレベルに設定して消去パルスの印加を解除する。このため、ステップＳ１４での消去パルスの印加中（ウェイト中）にサスペンドコマンドが受け付けることができる。
【００９８】
消去パルスの印加を解除すると、ステップＳ１７で書き込み消去制御回路１６の動作制御レジスタ１８に消去ベリファイ実行のアドレスを消去ブロック先頭アドレスに設定する。次に、ステップＳ１８で処理再開アドレスをステップＳ１８に設定し、レジュームコマンド発行後の再開処理において、ローカルＣＰＵ１２のプログラムがステップＳ１８（ベリファイ実行前）から再開されるように設定する。次に、ステップＳ１９でローカルＣＰＵ１２の割り込み要求信号ＩＲＱの受け付けを許可することにより、サスペンドコマンドの受け付けが可能な状態にする。ステップＳ２０で、書き込み消去制御回路１６の動作制御レジスタ１８のイレーズベリファイビット（ＥＶ）を“１”のレベルに設定して所定時間ウェイト後に、消去ベリファイ先アドレスのメモリセルが所定の消去状態（所定のしきい値電圧状態）に到達したかを確認して、確認後にイレーズベリファイビット（ＥＶ）を“０”のレベルに設定して所定時間ウェイトする消去ベリファイの動作を実行する。ステップＳ２０の消去ベリファイが完了した後、ステップＳ２１で割り込み要求信号ＩＲＱの割り込みの受け付けを禁止する。このため、ステップＳ２０での消去ベリファイ中にサスペンドコマンドが受け付けることができる。
【００９９】
１回の消去ベリファイでベリファイ可能なメモリのビット数は例えば３２ビット単位であり、これに対して消去ブロックの単位は例えば２０４８ビットであるため、１つの消去ブロック分のデータ消去を確認するためには複数回の消去ベリファイを実行する必要がある。このため、ステップＳ２２で消去ベリファイ先のアドレスを確認して、ブロック最終アドレスでない場合にはステップＳ２３でベリファイ先のアドレスを後続の３２ビットデータのアドレスに更新して、消去ベリファイの動作を継続する。消去ベリファイ先のアドレスがブロック最終アドレスであった場合には、ステップＳ２４で１つの消去ブロック分のデータが全て消去状態であったかを確認する。尚、全ビットの確認をするためには、ステップＳ２０の消去ベリファイにおいて、消去ベリファイの途中結果を記憶しておく必要がある。１つの消去ブロックが全て消去状態であった場合には、ステップＳ２５で書き込みイネーブルビット（ＷＥ）を“０”レベルに設定し所定時間ウェイトすることによりフラッシュメモリ４の書き込み／消去の動作を禁止状態にする。その後、ステップＳ２９でＣＰＵインターフェースコントローラ１３のステータスレジスタ２２のコマンドエンドフラグ（ＣＭＤＥ）を“１”レベルに設定することにより、消去処理が終了する。
【０１００】
ステップＳ２４で消去状態でないビットが含まれていた場合には、ステップＳ１２からステップＳ２４までの一連の処理を実行した回数の確認をステップＳ２６で行う。所定の回数に到達した場合には、ステップＳ２７でフラッシュメモリへの書き込みは禁止に設定され、ステップＳ２８で消去ブロックを不良とするエラーフラグの設定などのエラー処理を実行した後に、ステップＳ２９で消去処理が完了する。回数が未到達の場合には、ステップＳ３１で回数に１を加算した後にステップＳ１２の処理に戻り、消去パルス印加とベリファイが繰り返される。
【０１０１】
≪ローカルＣＰＵによるコマンド中断処理プログラム≫
図７は、図１に示したマイクロコントローラ１のフラッシュコントロールユニット５がコマンド中断処理状態Ｓ７（Ｓ７Ａ、Ｓ７Ｂ）に遷移した場合に、ローカルＣＰＵ１２が実行するコマンド中断処理プログラムのフローチャートを示す図である。尚、図７のフローチャートでは動作モードビット信号ＳＵＳＰの値に影響を受ける消去処理に対する中断処理Ｓ７としてコマンド高速処理状態Ｓ７Ａ（ステップＳ４６）とコマンド高信頼処理状態Ｓ７Ｂ（ステップＳ４２からステップＳ４４）との２つを用意しており、書き込み処理に対する中断処理Ｓ７として１つのコマンド中断処理状態Ｓ７（ステップＳ５１）のみを用意している。これは、発明が解決しようとする課題の欄でも説明したように、下記の事項に起因している。
【０１０２】
すなわち、フラッシュメモリでは、書き込み単位は１２８バイトのページと小さく、消去単位はハードディスクの１セクターの整数倍と大きいので、フラッシュメモリを長寿命化するには書き込み時のストレスよりも消去時のストレスを低減することが必要である。フラッシュメモリの長寿命化ために、不揮発性フラッシュメモリセルへ書き込み時に印加される書き込みパルスの振幅値よりも消去時に印加される消去パルスの振幅値をより小さくして消去時のストレスを低減する。その結果、消去パルスの印加と消去ベリファイとの反復による消去動作の時間は、書き込みパルスの印加と書き込みベリファイとの反復による書き込み動作の時間よりも長くなる。この長時間の消去動作中に割り込みによる中断命令を供給して消去動作を中断して読み出し動作を行った後に、レジュームコマンドの復帰命令により中断した消去動作を再開するに際しては、不揮発性フラッシュメモリセルへのストレスが低い再開方法が必要である。一方、リアルタイム性の高い機器制御用のプログラムを実行している場合には、長時間の消去動作中の割り込みによる中断命令の供給から実際の中断までの移行時間を短くするためには、中断命令に応答して消去パルスの印加を直ちに解除することが望ましい。しかし、この方法では、復帰命令により中断した消去動作を再開するに際して、印加解除した同一の消去パルスが再び不揮発性フラッシュメモリセルに印加される。
【０１０３】
従って、処理時間の長い消去処理Ｓ６での中断処理Ｓ７としてコマンド高速処理状態Ｓ７Ａ（ステップＳ４６の移行時間の短い中断処理）とコマンド高信頼処理状態Ｓ７Ｂ（ステップＳ４２からステップＳ４４の再開後のストレスが低い中断処理）との２つを用意しており、処理時間の短い書き込み処理Ｓ５での中断処理Ｓ７として１つのコマンド中断処理状態Ｓ７（ステップＳ５１）のみを用意している。
【０１０４】
ちなわち、コマンド中断処理状態Ｓ７に遷移すると、図７に示すようにローカルＣＰＵ１２はサスペンドコマンド発行時の処理が、消去パルス印加中（消去ビット（Ｅ）が“１”レベルであったのかをステップＳ４０で判断して、消去ベリファイ中（イレーズベリファイビット（ＥＶ）が“１”レベルであったのかをステップＳ４７で判断して、書き込み処理中（書き込み指示ビット（Ｐ）あるいはプログラムベリファイビット（ＰＶ）が“１”のレベル）であったのかをステップＳ５０で判定する。
【０１０５】
サスペンドコマンド発行時の処理が消去パルスの印加中であった場合、ローカルＣＰＵ１２はＣＰＵインターフェースコントローラ１３のサスペンドモードレジスタ３１の動作モードビット信号ＳＵＳＰを読み出して、ステップＳ４１で中断処理の内容を切り替える。動作モードビット信号ＳＵＳＰが“０”のレベルの場合には、ステップＳ４２でサスペンドコマンド発行前の消去パルス印加時間も含めた時間が所定時間を経過するまで消去パルスの印加が継続され、所定の消去パルス印加時間が経過するとステップＳ４３で消去パルスの印加が解除される。つまり、所定の消去パルス印加が完了される。また、消去パルス印加完了後の処理再開アドレスは図６の消去制御プログラムのステップＳ１７（消去ベリファイアドレスの設定）にステップＳ４４で変更されるため、消去処理が再開される場合には図６のステップＳ１７の消去ベリファイアドレスの設定処理から再開されることになる。次に、ステップＳ４５で消去ブロック番号などの処理再開に必要な変数を書き込み消去制御回路１６の動作制御レジスタ１８からコントロールＲＡＭ１５に退避して、ステップＳ５２で処理再開アドレスをコントロールＲＡＭ１５に退避して、ステップＳ５３でフラッシュメモリを書き込み禁止に設定した後、ＣＰＵインターフェースコントローラ１３のステータスレジスタ２２のコマンドエンドフラグ（ＣＭＤＥ）を“１”のレベルに設定することにより、ステップＳ５４でコマンド中断処理が終了する。動作モードビット信号ＳＵＳＰが“１”のレベルの場合には、ステップＳ４６でローカルＣＰＵ１２はただちに消去パルスの印加を解除して、ステップＳ４５で消去ブロック番号などを動作制御レジスタ１８からコントロールＲＡＭ１５に退避して、ステップＳ５２で処理再開アドレスを動作制御レジスタ１８からコントロールＲＡＭ１５に退避して、ステップＳ５３でフラッシュメモリを書き込み禁止に設定して、ステップＳ５４でコマンド中断処理が終了する。ステップＳ４６でローカルＣＰＵ１２はただちに消去パルスの印加を解除して、ステップＳ４５で消去ブロック番号などを動作制御レジスタ１８からコントロールＲＡＭ１５に退避すると、消去パルス印加完了後の処理再開アドレスは図６の消去制御プログラムのステップＳ１２（処理再開アドレス）のままで変更されないため、消去処理が再開される場合には図６のステップＳ１２（処理再開アドレスの設定）から再開されてステップＳ１４で以前に解除されたパルスが印加されることになる。
【０１０６】
サスペンドコマンド発行前の処理が消去ベリファイ中であった場合は、ステップＳ４８でローカルＣＰＵ１２はただちに消去ベリファイを中断して、ステップＳ４９で消去ブロック番号／消去ベリファイ先アドレス／消去ベリファイ途中結果などの処理再開に必要な変数をコントロールＲＡＭ１５に退避した後、ステップＳ５２で処理再開アドレスを退避して、ステップＳ５３でフラッシュメモリを書き込み禁止に設定して、ステップＳ５４でコマンド中断処理が終了する。
【０１０７】
サスペンド発行前の処理が書き込み処理中であった場合には、書き込み処理と書き込みベリファイ処理とが完了した書き込みページの再書き込みを中断後の処理再開時に、フラッシュコントロールユニット５が要求しないような書き込み処理の中断に必要な処理をステップＳ５１で実行した後、ステップＳ５２で処理再開アドレスをコントロールＲＡＭ１５に退避して、ステップＳ５３でフラッシュメモリを書き込み禁止に設定して、ステップＳ５４でコマンド中断処理が終了する。
【０１０８】
≪ローカルＣＰＵによるコマンド再開処理プログラム≫
図８は、図１に示したマイクロコントローラ１のフラッシュコントロールユニット５がコマンド再開処理状態Ｓ８に遷移した場合に、ローカルＣＰＵ１２が実行するコマンド再開処理プログラムのフローチャートを示す図である。尚、図８のコマンド再開処理プログラムのフローチャートでは、ステップＳ６０やステップＳ６３やステップＳ６６やステップＳ６９でのローカルＣＰＵ１２による種々の処理再開アドレスのコントロールＲＡＭ１５からの読み出しとコントロールＲＡＭ１５に退避していた変数の動作制御レジスタ１８での回復処理の後のステップＳ６２やステップＳ６５やステップＳ６８での図６の消去制御プログラムの処理再開アドレスＳ１２、Ｓ１７、Ｓ１８への分岐と、図８のステップＳ６９でのローカルＣＰＵ１２によるコントロールＲＡＭ１５に退避していた書き込みデータや変数の動作制御レジスタ１８での回復処理の後のステップＳ７０での書き込み制御プログラムの分岐とを示している。しかし、図８のコマンド再開処理プログラムのフローチャートでは、動作モードビット信号ＳＵＳＰの値“１”、“０”に影響を受ける処理の違いは無いかのように見える。しかし、図８のステップＳ６２、６５により図６の消去制御プログラムの処理再開アドレスＳ１２、Ｓ１７へ分岐した後の再開処理が、異なっている。
【０１０９】
すなわち、図７のコマンド中断処理プログラムでサスペンドコマンド発行時の処理が消去パルスの印加中であった場合、ローカルＣＰＵ１２はＣＰＵインターフェースコントローラ１３のサスペンドモードレジスタ３１の動作モードビット信号ＳＵＳＰを読み出して、図７のステップＳ４１で中断処理の内容を切り替えた。動作モードビット信号ＳＵＳＰが“０”のレベルの場合には、ステップＳ４２でサスペンドコマンド発行前の消去パルス印加時間も含めた時間が所定時間を経過するまで消去パルスの印加が継続され、所定の消去パルス印加時間が経過するとステップＳ４３で消去パルスの印加が解除される。つまり、所定の消去パルス印加が完了される。また、消去パルス印加完了後の処理再開アドレスは図６の消去制御プログラムのステップＳ１７（消去ベリファイアドレスの設定）にステップＳ４４で変更されるため、消去処理が再開される場合には図６のステップＳ１７の消去ベリファイアドレスの設定処理から再開されることになる。一方、動作モードビット信号ＳＵＳＰが“１”のレベルの場合には、ステップＳ４６でローカルＣＰＵ１２はただちに消去パルスの印加を解除して、ステップＳ４５で消去ブロック番号などを動作制御レジスタ１８からコントロールＲＡＭ１５に退避する。また、消去パルス印加完了後の処理再開アドレスは図６の消去制御プログラムのステップＳ１２（処理再開アドレス）のままで変更されないため、消去処理が再開される場合には図６のステップＳ１２（処理再開アドレス）から再開されてステップＳ１４で以前に解除されたパルスが印加されることになる。
【０１１０】
コマンド再開処理Ｓ８に遷移すると、図８に示すようにステップＳ６０やステップＳ６３やステップＳ６６でローカルＣＰＵ１２は処理再開アドレスをコントロールＲＡＭ１５から読み出した後、再開する処理に応じてコントロールＲＡＭ１５に退避していた変数の回復処理を行って、処理再開アドレスに分岐する。ステップＳ６０で処理再開アドレスがステップＳ１２であった場合には、ステップＳ６１で消去ブロック番号などをコントロールＲＡＭ１５から読み出して回復して、ステップＳ７１でフラッシュメモリを書き込み許可に設定した後にステップＳ６２で図６のステップＳ１２に分岐することにより、消去パルスの印加前の時点から消去処理を再開する。ステップＳ６３で処理再開アドレスがステップＳ１７であった場合には、ステップＳ６４で消去ブロックなどをコントロールＲＡＭ１５から読み出して回復して、ステップＳ７２でフラッシュメモリを書き込み許可に設定した後にステップＳ６５で図６のステップＳ１７に分岐することにより、消去ブロック先頭の消去ベリファイの時点から消去処理を再開する。ステップＳ６６で処理再開アドレスが図６のステップＳ１８であった場合には、ステップＳ６７で消去ブロック／ベリファイ先アドレス／ベリファイ途中結果などをコントロールＲＡＭ１５から読み出して回復して、ステップＳ７３でフラッシュメモリを書き込み許可に設定した後にステップＳ６８で図６のステップＳ１８に分岐することにより、消去ブロックの任意のアドレスに対する消去ベリファイから消去処理を再開する。処理再開アドレスがステップＳ１２、ステップＳ１７、ステップＳ１８のいずれとも一致しなかった場合には、ステップＳ６９で書き込み処理用のデータを回復して、ステップＳ７４でフラッシュメモリを書き込み許可に設定した後にステップＳ７０で書き込み処理用のプログラムに分岐する。
【０１１１】
≪消去処理と消去サスペンド動作≫
図９は、図１に示したマイクロコントローラ１のＣＰＵインターフェースコントローラ１３のサスペンドモードレジスタ３１の動作モードビット信号ＳＵＳＰが“１”レベルの場合における消去サスペンド動作を示す図である。フラッシュコントロールユニット５は時刻ｔ１で消去コマンドを受け付けると消去処理状態Ｓ６に遷移して、ステータスレジスタ２２のビジーフラグ（ＢＵＳＹ）を“１”レベルに設定する。消去処理が開始されて所定の時間が経過すると、消去処理の制御プログラムによって割り込み要求信号ＩＲＱの受け付けが許可された状態で消去パルスが印加される（消去ビット（Ｅ）＝“１”レベル）。時刻ｔ２において、消去パルスの印加中にサスペンドコマンドがフラッシュコントロールユニット５により受け付けられると、フラッシュコントロールユニット５はコマンド中断処理状態Ｓ７に遷移する。動作モードビット信号ＳＵＳＰが“１”レベルの場合には、消去パルスの印加がただちに解除される（消去ビット（Ｅ）＝“０”レベル）。時刻ｔ３でコマンド中断処理が完了してステータスレジスタ２２のコマンドエンドフラグ（ＣＭＤＥ）が“１”レベルに設定されると、ビジーフラグ（ＢＵＳＹ）が“０”レベルに変化してフラッシュコントロールユニット５はコマンド待ち状態Ｓ３に遷移する。時刻ｔ４においてフラッシュコントロールユニット５がレジュームコマンドを受け付けると、フラッシュコントロールユニット５はコマンド再開処理状態Ｓ８に遷移して、ビジーフラグ（ＢＵＳＹ）が再び“１”レベルに設定される。時刻ｔ２におけるサスペンドコマンド受け付け後に消去パルスの印加を中断したため、時刻ｔ５では消去パルス印加前の時点から処理が再開され、消去パルスの再印加が実施される（消去ビット（Ｅ）＝“１”レベル）。時刻ｔ６において、消去パルスの印加中にサスペンドコマンドがフラッシュコントロールユニット５により再び受け付けられると、フラッシュコントロールユニット５はコマンド中断処理状態Ｓ７に遷移する。中断処理においては、消去パルスの印加が再びただちに解除され（消去ビット（Ｅ）＝“０”レベル）、時刻ｔ７でコマンド中断処理が完了してフラッシュコントロールユニット５はコマンド待ち状態Ｓ３に遷移する。時刻ｔ８においてフラッシュコントロールユニット５がレジュームコマンドを受け付けると、フラッシュコントロールユニット５はコマンド再開処理状態Ｓ８に遷移する。時刻ｔ６におけるサスペンドコマンド受け付け後に消去パルスの印加を中断したため、時刻ｔ９では消去パルス印加前の時点から処理が再開され、消去パルスの再印加が実施される（消去ビット（Ｅ）＝“１”レベル）。尚、消去ベリファイ中のサスペンド受け付け時の動作は動作モードビット信号ＳＵＳＰの値“１”、“０”に影響を受けない。図９では消去ベリファイ中のサスペンドコマンド受け付け時の動作は説明しなかったが、以下の図１０と同様である。
【０１１２】
図１０は、図１に示したマイクロコントローラ１のＣＰＵインターフェースコントローラ１３のサスペンドモードレジスタ３１の動作モードビット信号ＳＵＳＰが“０”のレベルの場合における消去サスペンド動作を示す図である。フラッシュコントロールユニット５は時刻ｔ２０の時点で消去コマンドを受け付けると消去処理状態Ｓ６に遷移して、ステータスレジスタ２２のビジーフラグ（ＢＵＳＹ）を“１”レベルに設定する。消去処理が開始されて所定の時間が経過すると、消去処理の制御プログラムによって割り込み要求信号ＩＲＱの受け付けが許可された状態で消去パルスが印加される（消去ビット（Ｅ）＝“１”レベル）。時刻ｔ２１において、消去パルスの印加中にサスペンドコマンドがフラッシュコントロールユニット５により受け付けられると、フラッシュコントロールユニット５はコマンド中断処理状態Ｓ７に遷移する。動作モードビット信号ＳＵＳＰが“０”のレベルの場合には、消去動作で必要とされる所定時間の消去パルスの印加が継続された後に消去パルスの印加が解除される（消去ビット（Ｅ）＝“０”レベル）。時刻ｔ２２でコマンド中断処理が完了してステータスレジスタ２２のコマンドエンドフラグ（ＣＭＤＥ）が“１”レベルに設定されると、ビジーフラグ（ＢＵＳＹ）が“０”のレベルに変化してフラッシュコントロールユニット５はコマンド待ち状態Ｓ３に遷移する。時刻ｔ２３においてフラッシュコントロールユニット５がレジュームコマンドを受け付けると、フラッシュコントロールユニット５はコマンド再開処理状態Ｓ８に遷移して、ビジーフラグ（ＢＵＳＹ）が再び“１”レベルに設定される。時刻ｔ２１におけるサスペンドコマンド受け付け後に消去パルスの印加を継続したため、時刻ｔ２４では消去ブロック先頭の消去ベリファイ処理前から消去処理が再開され、消去ベリファイが実施される（イレーズベリファイビット（ＥＶ）＝“１”レベル）。時刻ｔ２５において、消去ベリファイ中にサスペンドコマンドがフラッシュコントロールユニット５により受け付けられると、フラッシュコントロールユニット５はコマンド中断処理状態Ｓ７に遷移する。中断処理においては、消去ベリファイがただちに中断され（イレーズベリファイビット（ＥＶ）＝“０”レベル）、時刻ｔ２６でコマンド中断処理が完了してフラッシュコントロールユニット５はコマンド待ち状態Ｓ３に遷移する。時刻ｔ２７においてフラッシュコントロールユニット５がレジュームコマンドを受け付けると、フラッシュコントロールユニット５はコマンド再開処理状態Ｓ８に遷移する。サスペンドコマンド受け付け後に時刻ｔ２５で消去ベリファイを中断したため、時刻ｔ２８では消去ベリファイ前の時点から処理が再開され、消去ベリファイが再実施される（消去ビット（Ｅ）＝“１”レベル）。
【０１１３】
以上説明したように、第１の実施形態では、中央処理ユニット２によりフラッシュコントロールユニット５のＣＰＵインタフェースコントローラ１３のサスペンドモードレジスタ３１の動作モードビット信号ＳＵＳＰの設定を“１”レベルあるには“０”レベルに切り替えることによって、消去パルスの印加を中断してサスペンドモードへ高速移行する方式（中断処理Ｓ７Ａ）と消去パルスの印加を完了してサスペンドモードへ移行する方式（中断処理Ｓ７Ｂ）を切り替え可能であるため、システムの処理内容に合わせたサスペンド処理を実現可能である。例えば、中央処理ユニット２の割り込み処理時にフラッシュメモリ４の読み出しを即時に実行する必要性があるリアルタイム性の高いアプリケーションを実行している場合には消去パルスの印加を中断してサスペンドモードへ高速移行する方式（中断処理Ｓ７Ａ）に設定を行い、不揮発性メモリのストレスを低減する必要性がある場合や消去処理全体に要する時間を短期間に実行する必要性があるアプリケーションを実行している場合には消去パルスの印加を完了してサスペンドモードへ移行する高信頼中断方式（中断処理Ｓ７Ｂ）に設定を行うといった切り替えが可能である。
【０１１４】
消去パルスの印加を中断してサスペンドモードへ移行する設定では、サスペンドモードへの移行時間を短縮できる。消去パルスの印加時間は１ｍＳｅｃ以上におよぶ場合があるが、３２ビット単位の１回の消去ベリファイ時間は１００μＳｅｃ程度である。サスペンドモード移行時間を律速する要因は消去パルスの印加中断処理であるので、高速移行方式（中断処理Ｓ７Ａ）により消去パルス印加を中断することによってサスペンドモード移行時間を短縮することが可能になる。一方、不揮発性メモリのストレスを低減するためあるいは消去処理全体に要する時間を短縮するためには、高信頼中断方式（中断処理Ｓ７Ｂ）により消去パルスの印加を完了してサスペンドモードに移行する方式が有効である。
【０１１５】
（第２の実施形態）
第２の実施形態と上記の第１の実施形態の違いは、ローカルＣＰＵ１２が実行する消去制御プログラム／コマンド中断処理プログラム／コマンド再開処理プログラムの内容のみである。第２の実施形態のフラッシュコントロールユニット５では、動作モードビット信号ＳＵＳＰが“１”レベルで同一の消去パルスの印加時に複数回サスペンドコマンドを受け付けた場合に、１回目のサスペンドコマンドではパルス印加を中断するが、２回目のサスペンドコマンドではパルス印加を継続するものである。その結果、フラッシュコントロールユニット５の第１の動作（ＳＵＳＰ＝“１”レベル）により書き込み動作又は消去動作中の割り込みによる中断命令の供給から実際の中断までの移行時間は短くなるが、中断によって不揮発記憶動作の反復処理のパルス印加が一向に進展しないと言う事態を回避することができる。
【０１１６】
図１１は、本発明の第２の実施形態による消去制御プログラムを示す図である。第２の実施形態の消去制御では消去パルス中断フラグと呼ばれる変数を使用して、消去パルスの中断回数を監視している。消去パルス中断フラグは、サスペンドコマンド受け付け後に、消去パルスの印加を中断した場合に“１”レベル、初回の消去パルスの印加前または消去パルスの印加を完了した場合に“０”のレベルに設定されるフラグである。図１１の消去制御プログラムでは、このフラグを操作する処理が第１の実施形態の図６の消去制御プログラムに対して追加されている。具体的には、ステップＳ１４の消去パルスを印加する前のステップＳ１００とステップＳ１６の消去パルス印加の完了後のステップＳ１０１とで消去パルス中断フラグを“０”のレベルにする処理を追加している。
【０１１７】
図１２は、本発明の第２の実施形態によるコマンド中断処理プログラムを示す図である。第１の実施形態の図７のコマンド中断処理プログラムに対して第２の実施形態の図１２のコマンド中断処理プログラムも消去パルス中断フラグに対応して追加／変更が行われている。図１２のコマンド中断処理プログラムでは、動作モードビット信号ＳＵＳＰが“０”のレベルの場合には所定の消去パルス印加が完了しているので、ステップＳ１１３で処理再開アドレスを図１１の消去制御プログラムのステップＳ１０１に設定することにより消去処理再開後に消去パルス中断フラグが“０”のレベルになるようにしている。また、動作モードビット信号ＳＵＳＰが“１”レベルの場合には、図１２のステップＳ１１０で消去パルス中断フラグの値に従って異なる処理が実行されるようにしている。消去パルス中断フラグが“０”のレベルの場合には、ステップＳ１１１でただちに消去パルスを解除して、ステップＳ１１２で消去パルス中断フラグを“１”レベルに設定する。また、消去パルス中断フラグが“１”レベルの場合には、動作モードビット信号ＳＵＳＰが“０”のレベルの場合と同じ処理をステップＳ４２からステップＳ４３で実行する。ステップＳ１１４、ステップＳ１１５の中断前の変数の退避処理では、消去パルス中断フラグもコントロールＲＡＭ１５に退避される。
【０１１８】
図１３は、本発明の第２の実施形態によるコマンド再開処理プログラムを示す図である。第１の実施形態の図８のコマンド再開処理プログラムに対して第２の実施形態の図１３のコマンド再開処理プログラムも消去パルス中断フラグに対応した変更が行われている。図１３のステップＳ１２０、ステップＳ１２２、ステップＳ１２４でのコントロールＲＡＭ１５に退避した変数の復元処理では、消去パルス中断フラグも回復される。また、消去ブロック先頭の消去ベリファイの時点から消去処理を再開する処理に先立って、ステップＳ１０１で消去パルス中断フラグを“０”のレベルに設定するように変更したため、ステップＳ１２１とステップＳ１２３の分岐先を変更している。
【０１１９】
図１４は、本発明の第２の実施形態において動作モードビット信号ＳＵＳＰが“１”レベルの場合における消去処理と消去サスペンド動作を示す図である。第１実施形態と第２実施形態の動作の違いは、動作モードビット信号ＳＵＳＰが“１”レベルの場合のみ現れる。フラッシュコントロールユニット５は時刻ｔ１００で消去コマンドを受け付けると消去処理状態Ｓ６に遷移して、ステータスレジスタ２２のビジーフラグ（ＢＵＳＹ）を“１”レベルに設定する。消去処理が開始されて所定の時間が経過すると、消去処理の制御プログラムによって割り込み要求信号ＩＲＱの受け付けが許可かつ消去パルス中断フラグが“０”のレベルに設定された状態で消去パルスが印加される（消去ビット（Ｅ）＝“１”レベル）。時刻ｔ１０１において、消去パルスの印加中にサスペンドコマンドが受け付けられると、フラッシュコントロールユニット５はコマンド中断処理状態Ｓ７Ａに遷移する。動作モードビット信号ＳＵＳＰが“１”レベルで消去パルス中断フラグが“０”のレベルの場合には、消去パルスの印加がただちに解除されて（消去ビット（Ｅ）＝“０”のレベル）、消去パルス中断フラグが“１”レベルに設定される。時刻ｔ１０２でコマンド中断処理が完了してステータスレジスタ２２のコマンドエンドフラグ（ＣＭＤＥ）が“１”レベルに設定されると、ビジーフラグ（ＢＵＳＹ）が“０”のレベルに変化してフラッシュコントロールユニット５はコマンド待ち状態Ｓ３に遷移する。時刻ｔ１０３においてフラッシュコントロールユニット５がレジュームコマンドを受け付けると、フラッシュコントロールユニット５はコマンド再開処理状態Ｓ８Ａに遷移して、ビジーフラグ（ＢＵＳＹ）が再び“１”レベルに設定される。時刻ｔ１０３におけるサスペンドコマンド受け付け後に消去パルスの印加を中断したため、時刻ｔ１０４では消去パルス印加前の時点から処理が再開され、消去パルスの再印加が実施される（消去ビット（Ｅ）＝“１”レベル）。時刻ｔ１０５において、消去パルスの印加中にサスペンドコマンドが再び受け付けられると、フラッシュコントロールユニット５はコマンド中断処理状態Ｓ７Ｂに遷移する。動作モードビット信号ＳＵＳＰが“１”レベルで消去パルス中断フラグが“１”レベルの場合には、消去動作で必要とされる所定時間の消去パルスの印加が継続された後に消去パルスの印加が解除される（消去ビット（Ｅ）＝“０”のレベル）。時刻ｔ１０６でコマンド中断処理が完了するとフラッシュコントロールユニット５はコマンド待ち状態Ｓ３に遷移する。時刻ｔ１０５におけるサスペンドコマンド受け付け後に消去パルスの印加を継続したため、時刻ｔ１０８では消去パルス中断フラグを“０”のレベルに設定する処理から消去処理が再開され、その後に消去ブロック先頭の消去ベリファイが実施される（イレーズベリファイビット（ＥＶ）＝“１”レベル）。
【０１２０】
以上説明したように、第２の実施形態では動作モードビット信号ＳＵＳＰを“１”レベルに設定することにより、消去パルス印加中の１回目の中断処理では消去パルス印加を中断するコマンド高速中断処理状態Ｓ７Ａへ移行する。従って、平均的なサスペンドモードへの移行時間を動作モードビット信号ＳＵＳＰが“０”のレベルの場合よりも短縮できる。また、２回目の中断処理では消去パルスの印加を完了するコマンド高信頼中断処理状態Ｓ７Ｂへ移行する。また、コマンド高速中断処理状態Ｓ７Ａとコマンド高信頼中断処理状態Ｓ７Ｂとは、交互に発生する。従って、第１の実施形態で動作モードビット信号ＳＵＳＰ＝“１”レベルによる第１の動作モードと動作モードビット信号ＳＵＳＰ＝“０”レベルによる第２の動作モードとが交互に発生しているのが、第２の実施形態である。従って、第２の実施形態によれば、中断命令の供給から実際の中断までの平均的な移行時間の短縮と不揮発性メモリへの平均的なストレスの低減とをバランス良く実現することができる。
【０１２１】
（第３の実施形態）
図１５は、本発明の第３の実施形態による書き込み制御プログラムを示す図である。この図１５に示した書き込み制御プログラムは書き込みパルスの印加と書き込みベリファイとの反復処理による書き込み処理で、図６に示した本発明の第１の実施形態による消去制御プログラムの消去パルスの印加と消去ベリファイとの反復処理による書き込み処理と類似している。図１５の書き込み制御プログラムでも、ステップＳ´１４での書き込みパルスの印加中（ウェイト中）にサスペンドコマンドが受け付けられることができ、ステップＳ´２０での書き込みベリファイ中にサスペンドコマンドが受け付けられることができる。
【０１２２】
図１６は、本発明の第３の実施形態によるコマンド中断処理プログラムを示す図である。この図１６に示したコマンド中断処理プログラムは、図７に示した本発明の第１の実施形態によるコマンド中断処理プログラムのステップ５１の書き込み中断処理を図１６のステップＳ８１〜Ｓ８６に置き換えている。この図１６のステップＳ８１〜Ｓ８６の書き込み中断処理は図７および図１６のステップＳ４１〜Ｓ４６の消去中断処理と類似している。図１６のコマンド中断処理プログラムでは、サスペンドコマンド発行時の処理が書き込みパルスの印加中であった場合、ローカルＣＰＵ１２はＣＰＵインターフェースコントローラ１３のサスペンドモードレジスタ３１の動作モードビット信号ＳＵＳＰを読み出して、ステップＳ８１で中断処理の内容を切り替える。動作モードビット信号ＳＵＳＰが“０”のレベルの場合には、ステップＳ８２でサスペンドコマンド発行前の書き込みパルス印加時間も含めた時間が所定時間を経過するまで書き込みパルスの印加が継続され、所定の書き込みパルス印加時間が経過するとステップＳ８３で書き込みパルスの印加が解除される。また、書き込みパルス印加完了後の処理再開アドレスは図１５の書き込み制御プログラムのステップＳ´１７（書き込みベリファイアドレスの設定）にステップＳ８４で変更されるため、書き込み処理が再開される場合には図１５のステップＳ´１７の書き込みベリファイアドレスの設定処理から再開されることになる。次に、ステップＳ８５で書き込みブロック番号などの処理再開に必要な変数をコントロールＲＡＭ１５に退避する。動作モードビット信号ＳＵＳＰが“１”のレベルの場合には、ステップＳ８６でローカルＣＰＵ１２はただちに書き込みパルスの印加を解除される。この時の処理再開アドレスは、図１５の書き込み制御プログラムのステップＳ´１２（処理再開アドレスの設定）となる。
【０１２３】
この第３の実施形態では動作モードビット信号ＳＵＳＰを“１”レベルに設定することにより、図５の書き込み処理状態Ｓ５でサスペンドコマンドが受け付けると、書き込みパルス印加中の中断処理では書き込みパルス印加を中断するコマンド高速中断処理状態Ｓ７Ａへ移行する。このコマンド高速中断処理状態Ｓ７Ａは、図１６のコマンド中断処理プログラムのステップＳ８６での書き込みパルスの印加解除である。この時の処理再開アドレスは、図１５の書き込み制御プログラムのステップＳ´１２（処理再開アドレスの設定）となる。
【０１２４】
また、動作モードビット信号ＳＵＳＰを“０”レベルに設定することにより、図５の書き込み処理状態Ｓ５でサスペンドコマンドが受け付けると、書き込みパルス印加中の中断処理では書き込みパルス印加を継続して印加を完了するコマンド高信頼中断処理状態Ｓ７Ｂへ移行する。このコマンド高信頼中断処理状態Ｓ７Ｂは、図１６のコマンド中断処理プログラムのステップＳ８２〜Ｓ８４となる。この時の処理再開アドレスは、図１５のステップＳ´１７の書き込みベリファイアドレスの設定処理となる。
【０１２５】
以上説明したように、本発明の第３の実施形態では動作モードビット信号ＳＵＳＰを“１”レベルに設定することにより、書き込みパルス印加中の中断処理では書き込みパルス印加を中断してコマンド高速中断処理状態Ｓ７Ａへ高速移行することが可能である。また、動作モードビット信号ＳＵＳＰを“０”レベルに設定することにより、中断処理では書き込みパルス印加を継続して印加を完了する不揮発性メモリのストレスが低減されるコマンド高信頼中断処理状態Ｓ７Ｂすることが可能である。
【０１２６】
また、本発明の第３の実施形態でも本発明の第２の実施形態と同様に書き込みパルス中断フラグを使用することにより、動作モードビット信号ＳＵＳＰ＝“１”レベルによる第１の動作モードと動作モードビット信号ＳＵＳＰ＝“０”レベルによる第２の動作モードとが交互に発生させることも可能である。
【０１２７】
（第４の実施形態）
図１７は、本発明の第４の実施形態によるマイクロコントローラ１を示すブロック図である。図１７に示したマイクロコントローラ１が、図１のマイクロコントローラ１と相違する点を説明する。
【０１２８】
図１７ではフラッシュメモリ４は、プログラムを格納するプログラムフラッシュメモリ４Ａと、ユーザーデータを格納するデータフラッシュメモリ４Ｂとを含み、プログラムフラッシュメモリ４Ａとデータフラッシュメモリ４Ｂとは異なるフラッシュメモリアレーで構成され、異なるフラッシュメモリアレーにより構成され、プログラムフラッシュメモリ４Ａとデータフラッシュメモリ４Ｂとは異なるワード線と異なるビット線と異なる消去ブロックとを有する。
【０１２９】
その結果、データフラッシュメモリ４Ｂへのユーザーデータの頻繁な書き込みや頻繁な消去によるプログラムを格納したプログラムフラッシュメモリ４Ａでのディスターブの影響を低減することができる。もし、２つのフラッシュメモリでワード線やビット線や消去ブロックが共通していると、相互のディスターブの影響でフラッシュメモリセルのしきい値電圧が不所望に変化してしまう。
【０１３０】
図１７のプログラムフラッシュメモリ４Ａとデータフラッシュメモリ４Ｂとは、それぞれファイル・アロケーション・テーブル（ＦＡＴ＿Ｐ、ＦＡＴ＿Ｄ）とルート・ディレクトリー（ＲｔＤｉ＿Ｐ、ＲｔＤｉ＿Ｄ）とを含むことにより、フラッシュメモリによる磁気ディスク・エミュレーションを実現している。すなわち、ブートレコードとファイル・アロケーション・テーブルとルート・ディレクトリーとをシステム領域に含むことにより、ＭＳ−ＤＯＳオペレーティングシステムを不揮発性フラッシュメモリに構築することができる。尚、ＭＳ−ＤＯＳは、Ｍｉｃｒｏｓｏｆｔ  Ｄｉｓｋ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍの略称である。このために、磁気ディスクの論理クラスターを不揮発性半導体メモリのファイル構造の物理セクターにマッピングするクラスター・マッピング・テーブルが構築される。尚、論理クラスターは磁気ディスクにて論理的にアドレス可能な最小の記憶単位であり、３．５インチディスクの場合には、論理クラスターは５１２バイトの１つの物理セクターに対応している。また、ファイル・アロケーション・テーブル（ＦＡＴ）は１つのファイルを構成する複数のクラスターがどのようにリンクされているかを示すチェーン形式の記録を含んでおり、更に、ルート・ディレクトリーは、ファイル名と、１つのファイルを形成する複数のクラスターのスタート・クラスター番号と、ファイル・サイズ等とを含んでいる。論理クラスターをファイル構造の物理セクターにマッピングするクラスター・マッピング・テーブルは、外部の論理アドレスとファイル構造の物理セクターとをリンクする。
【０１３１】
プログラムフラッシュメモリ４Ａには、ファイル・アロケーション・テーブルＦＡＴ＿Ｐとルート・ディレクトリーＲｔＤｉ＿Ｐとその管理データＭＤ＿Ｐ１が格納され、さらにブートプログラムＢｏｏｔ＿ＰＲＧとその管理データＭＤ＿Ｐ２、オペレーティングシステムプログラムＯＳ＿ＰＲＧとその管理データＭＤ＿Ｐ３、複数のアプリケーションプログラムＡＰ＿ＰＲＧ１、ＡＰ＿ＰＲＧ２、ＡＰ＿ＰＲＧ３…とその管理データＭＤ＿Ｐ４、ＭＤ＿Ｐ５、ＭＤ＿Ｐ６…も格納されている。特に、管理データＭＤ＿Ｐ１…ＭＤ＿Ｐ６は、それが格納された消去ブロックの良・不良コード、書き換え・消去回数、ＥＣＣ（誤り訂正コード）データ、代替アドレス情報等の重要な管理データを含んでいる。
【０１３２】
データフラッシュメモリ４Ｂにも、ファイル・アロケーション・テーブルＦＡＴ＿Ｄとルート・ディレクトリーＲｔＤｉ＿Ｄとその管理データＭＤ＿Ｄ１が格納され、さらに大きなユーザーデータを格納可能なユーザーデータ領域Ｕｓｅｒ＿Ｄａｔａとその管理データを格納可能な管理領域ＭＤ＿Ｄ２を含んでいる。
【０１３３】
図１７では、データフラッシュメモリ４Ｂのユーザーデータ領域Ｕｓｅｒ＿Ｄａｔａでの大容量データのダウンロード等の書き込みもしくは大容量データの削除等の消去に際しては、フラッシュコントロールユニット５のＣＰＵインタフェースコントローラ１３のサスペンドモードレジスタ３１の動作モードビット信号ＳＵＳＰが“１”レベルにセットされる。その結果、大容量データの書き込み処理もしくは消去処理の間にサスペンドコマンドに応答して高速のリアルタイム性に優れた高速中断処理状態Ｓ７Ａに遷移することができる。高速中断処理状態Ｓ７Ａに遷移した後、コマンド待ち状態Ｓ３でレジームコマンドを受け付けると、中断したパルスを再印加するコマンド再開処理Ｓ８Ａに推移する。
【０１３４】
一方、プログラムフラッシュメモリ４Ａでのプログラムのインストール等の書き込みもしくはアンインストール等の消去に際しては、プログラムフラッシュメモリ４Ａへのストレスを低減することが望ましい。データフラッシュメモリ４Ｂのユーザーデータ領域Ｕｓｅｒ＿Ｄａｔａでのユーザーデータの頻繁な書き込みや頻繁な消去と比較すると、プログラムフラッシュメモリ４Ａでのプログラムのインストール等の書き込みもしくはやアンインストール等の消去の頻度は極めて低くプログラムフラッシュメモリ４ＡはＲＯＭ（リードオンリメモリ）に近い動作環境である。プログラムフラッシュメモリ４Ａでの頻度の少ない書き込みや消去に際して、プログラムフラッシュメモリ４Ａへのストレスが高い書き込み処理の中断や消去処理の中断が生じると、プログラムフラッシュメモリ４ＡへのストレスによりブートプログラムＢｏｏｔ＿ＰＲＧやオペレーティングシステムプログラムＯＳ＿ＰＲＧや管理データＭＤ＿Ｐ２、ＭＤ＿Ｐ３のデータがディスターブにより読み出し不能となる危険性がある。特に、管理データＭＤ＿Ｐ２、ＭＤ＿Ｐ３のＥＣＣデータや代替アドレス情報等の重要な管理データが読み出し不能となると、マイクロコントローラ１はパワーオン時にブートプログラムＢｏｏｔ＿ＰＲＧやオペレーティングシステムプログラムＯＳ＿ＰＲＧを起動できなくなり、システムクラッシュとなる。従って、プログラムフラッシュメモリ４Ａでの書き込みや消去処理では、サスペンドモードレジスタ３１の動作モードビット信号ＳＵＳＰが“０”レベルにセットされる。その結果、書き込み処理もしくは消去処理の間にサスペンドコマンドに応答してプログラムフラッシュメモリ４Ａへのストレスが低減された高信頼性中断処理状態Ｓ７Ｂに遷移することができる。高信頼性中断処理状態Ｓ７Ｂに遷移した後、コマンド待ち状態Ｓ３でレジームコマンドを受け付けると、パルス印加を継続してパルス印加を完了したフラッシュメモリセルのベリファイから再開するコマンド再開処理Ｓ８Ｂに推移する。
【０１３５】
また、データフラッシュメモリ４Ｂのユーザーデータ領域Ｕｓｅｒ＿Ｄａｔａでのデータの書き込みもしくはデータの消去に際しては、上述のようにサスペンドモードレジスタ３１の動作モードビット信号ＳＵＳＰが“１”レベルにセットされた。しかし、データフラッシュメモリ４Ｂの管理領域ＭＤ＿Ｄ１、ＭＤ＿Ｄ２のＥＣＣデータや代替アドレス情報等の重要な管理データが読み出し不能となると、ファイル・アロケーション・テーブルＦＡＴ＿Ｄやルート・ディレクトリーＲｔＤｉ＿Ｄやユーザーデータ領域Ｕｓｅｒ＿Ｄａｔａの重要な管理データが読み出し不可能となる。従って、データフラッシュメモリ４Ｂの管理領域ＭＤ＿Ｄ１、ＭＤ＿Ｄ２の書き込みや消去処理では、サスペンドモードレジスタ３１の動作モードビット信号ＳＵＳＰが“０”レベルにセットされる。その結果、書き込み処理もしくは消去処理の間にサスペンドコマンドに応答してプログラムフラッシュメモリ４Ａへのストレスが低減された高信頼性中断処理状態Ｓ７Ｂに遷移することができる。この時も、高信頼性中断処理状態Ｓ７Ｂに遷移した後、コマンド待ち状態Ｓ３でレジームコマンドを受け付けると、パルス印加を継続してパルス印加を完了したフラッシュメモリセルのベリファイから再開するコマンド再開処理Ｓ８Ｂに推移する。
【０１３６】
以上のように、データフラッシュメモリ４Ｂのユーザーデータ領域ＵＳｅｒ＿Ｄａｔａへの書き込みや消去には動作モードビット信号ＳＵＳＰ＝“１”レベルによる第１の動作に設定して、プログラムフラッシュメモリ４Ａでのプログラムのインストール等の書き込みもしくはアンインストール等の消去とデータフラッシュメモリ４Ｂの管理領域ＭＤ＿Ｄ１、管理領域ＭＤ＿Ｄ２…の書き込みや消去に際しては動作モードビット信号ＳＵＳＰ＝“０”レベルによる第２の動作に設定すると言う制御は、プログラムフラッシュメモリ４ＡのオペレーティングシステムプログラムＯＳ＿ＰＲＧで実行することも可能である。
【０１３７】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１３８】
例えば、本発明はマイクロコントローラ以外にも、フラッシュメモリカードのような記憶装置にも適用することができる。
【０１３９】
（第５の実施形態）
図１８は、本発明の第５の実施形態によるフラッシュメモリカード１を示すブロック図である。フラッシュメモリカード１は、ＵＳＢ（ユニバーサルシリアルバス）等のような外部バスＥｘｔ＿Ｂｕｓを介してパーソナルコンピュータ等のホスト機器Ｈｏｓｔと接続可能なリムーバブルな２次記憶装置として構成されている。またリムーバブルな２次記憶装置以外にも、携帯電話やモバイル機器に搭載される組込型記憶装置にも応用することが可能である。外部バスＥｘｔ＿Ｂｕｓには、メモリコントローラ２のホストインターフェースＨｏｓｔ＿Ｉｎｔが接続される。メモリコントローラ２では、ホストインターフェースＨｏｓｔ＿ＩｎｔにマイクロコントローラＭＣＵとバッファ制御ユニットＢｕｆｆｅｒ  Ｃｎｔが接続され、バッファ制御ユニットＢｕｆｆｅｒ  Ｃｎｔにはバッファメモリ３が接続され、マイクロコントローラＭＣＵにはデータ転送制御ユニットＣｎｔ＿Ｕｎｉｔが接続され、データ転送制御ユニットＣｎｔ＿ＵｎｉｔにはＥＣＣ（誤り訂正）制御ユニットＥＣＣが接続されている。
【０１４０】
メモリコントローラ２のデータ転送制御ユニットＣｎｔ＿Ｕｎｉｔには、内部バスＩｎｔ＿Ｂｕｓを介して複数のフラッシュメモリデバイスＦＬＡＳＨ  ４（１）…ＦＬＡＳＨ  ４（Ｎ）が接続されている。複数のフラッシュメモリデバイスＦＬＡＳＨ  ４（１）…ＦＬＡＳＨ  ４（Ｎ）は、フラッシュメモリアレーＦＬＡＳＨ  ＡＲＲＡＹ（１）…ＦＬＡＳＨ  ＡＲＲＡＹ（Ｎ）とオンチップ・フラッシュメモリコントロールユニットＦＣＵ  ５（１）…ＦＣＵ  ５（Ｎ）とを含んでいる。
【０１４１】
フラッシュメモリデバイスＦＬＡＳＨ  ４（１）…ＦＬＡＳＨ  ４（Ｎ）の上のこのオンチップ・フラッシュメモリコントロールユニットＦＣＵ  ５（１）…ＦＣＵ  ５（Ｎ）のそれぞれの構成と動作とは、図１に示したマイクロコントローラ１のフラッシュコントロールユニット（ＦＣＵ）５と同様となっている。すなわち、オンチップ・フラッシュメモリコントロールユニットＦＣＵ  ５（１）…ＦＣＵ  ５（Ｎ）の内部のサスペンドモードレジスタ３１の動作モードビット信号ＳＵＳＰの値によって、その動作モードが制御される。動作モードビット信号ＳＵＳＰが“１”レベルであるとオンチップ・フラッシュメモリコントロールユニットＦＣＵ  ５（１）…ＦＣＵ  ５（Ｎ）は第１の動作モードに設定され、動作モードビット信号ＳＵＳＰが“０”レベルであるとオンチップ・フラッシュメモリコントロールユニットＦＣＵ  ５（１）…ＦＣＵ  ５（Ｎ）は第２の動作モードに設定される。尚、複数のオンチップ・フラッシュメモリコントロールユニットＦＣＵ  ５（１）…ＦＣＵ  ５（Ｎ）への複数の動作モードビット信号ＳＵＳＰは、書き込み処理や消去処理の前に内部バスＩｎｔ＿Ｂｕｓを介してメモリコントローラ２から供給される。
【０１４２】
第１の動作（ＳＵＳＰ＝“１”レベル）に設定されたオンチップ・フラッシュメモリコントロールユニットＦＣＵ  ５（１）…ＦＣＵ  ５（Ｎ）は、不揮発記憶動作の反復処理のパルスの印加中に中断命令に応答してパルスの印加の解除により不揮発記憶動作を中断する。第１の動作（ＳＵＳＰ＝“１”レベル）に設定されたオンチップ・フラッシュメモリコントロールユニットＦＣＵ  ５（１）…ＦＣＵ  ５（Ｎ）は、復帰命令に応答して解除となったパルスの印加から中断された不揮発記憶動作の反復処理を再開する。
【０１４３】
第２の動作（ＳＵＳＰ＝“０”）に設定されたオンチップ・フラッシュメモリコントロールユニットＦＣＵ  ５（１）…ＦＣＵ  ５（Ｎ）は、不揮発記憶動作の反復処理のパルスの印加中に中断命令に応答してパルスの印加を継続して印加の完了した時点で不揮発記憶動作を中断する。第２の動作に設定されたオンチップ・フラッシュメモリコントロールユニットＦＣＵ  ５（１）…ＦＣＵ  ５（Ｎ）は、復帰命令に応答して印加の完了した不揮発性メモリセルのベリファイから中断された不揮発記憶動作の反復処理を再開する。
【０１４４】
本発明の第５の実施形態によるフラッシュメモリカードのような記憶装置においても、第１の動作（ＳＵＳＰ＝“１”レベル）に設定することにより書き込み動作又は消去動作中の割り込みによる中断命令の供給から実際の中断までの移行時間を短くする一方、第２の動作（ＳＵＳＰ＝“０”）に設定することにより復帰命令により中断した書き込み動作又は消去動作を再開するに際して不揮発性メモリへのストレスを低減することや書き込み・消去処理全体に要する時間を短縮することが可能になる。
【０１４５】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるマイクロコントローラに適用した場合について説明したが、それに限定されるものではなく、その他の半導体集積回路装置、例えば、シングルチップマイクロコンピュータ、デジタルシグナルプロセッサ（ＤＳＰ）を中心にした半導体集積回路装置にも適用可能である。
【０１４６】
さらに不揮発性メモリ４としては、フラッシュメモリ等のように電荷蓄積領域に電荷を注入したり電荷蓄積領域から電荷を放出するタイプ以外に、例えば相変化メモリも採用することができる。例えば、相変化メモリの消去はメモリセルの抵抗に電流を流すことにより抵抗を溶融した後に電流を激減させることで多結晶化して高抵抗とし、相変化メモリの書き込みはメモリセルの抵抗に電流を流すことにより抵抗を溶融した後に電流を徐々に減少させることで単結晶化して低抵抗とすることで実現することができる。この相変化メモリでも、消去処理や書き込み処理は消去または書き込みの電流パルスの印加とベリファイ動作との反復処理となる。相変化メモリの消去処理や書き込み処理の間の割り込みによる中断処理を、動作モード信号によってリアルタイム性能に優れた高速中断処理とメモリセルの抵抗へのストレスの低減された高信頼中断処理とに切り換えることも有益であろう。
【図面の簡単な説明】
【０１４７】
【図１】図１は本発明の第１の実施形態によるマイクロコントローラを示すブロック図である。
【図２】図２は、図１に示したマイクロコントローラのフラッシュコントロールユニットの構成を示すブロック図である。
【図３】図３は、図１に示したマイクロコントローラの中央処理ユニットのアドレス空間を示す図である。
【図４】図４は、図１に示したマイクロコントローラのフラッシュコントロールユニットの状態遷移の概略を示す図である。
【図５】図５は、図１に示したマイクロコントローラのフラッシュコントロールユニットの状態遷移の詳細を示す図である。
【図６】図６は図１に示したマイクロコントローラのフラッシュコントロールユニットが消去状態に遷移した場合に、ローカルＣＰＵが実行する消去制御プログラムのフローチャートを示す図である。
【図７】図７は、図１に示したマイクロコントローラのフラッシュコントロールユニットがコマンド中断処理状態に遷移した場合に、ローカルＣＰＵが実行するコマンド中断処理プログラムのフローチャートを示す図である。
【図８】図８は、図１に示したマイクロコントローラのフラッシュコントロールユニットがコマンド再開処理状態に遷移した場合に、ローカルＣＰＵが実行するコマンド再開処理プログラムのフローチャートを示す図である。
【図９】図９は、図１に示したマイクロコントローラのＣＰＵインターフェースコントローラのサスペンドモードレジスタの動作モードビット信号ＳＵＳＰが“１”レベルの場合における消去サスペンド動作を示す図である。
【図１０】図１０は、図１に示したマイクロコントローラのＣＰＵインターフェースコントローラのサスペンドモードレジスタの動作モードビット信号ＳＵＳＰが“０”のレベルの場合における消去サスペンド動作を示す図である。
【図１１】図１１は、本発明の第２の実施形態による消去制御プログラムを示す図である。
【図１２】図１２は、本発明の第２の実施形態によるコマンド中断処理プログラムを示す図である。
【図１３】図１３は、本発明の第２の実施形態によるコマンド再開処理プログラムを示す図である。
【図１４】図１４は、本発明の第２の実施形態において動作モードビット信号ＳＵＳＰが“１”レベルの場合における消去処理と消去サスペンド動作を示す図である。
【図１５】図１５は、本発明の第３の実施形態による書き込み制御プログラムを示す図である。
【図１６】図１６は、本発明の第３の実施形態によるコマンド中断処理プログラムを示す図である。
【図１７】図１７は、本発明の第４の実施形態によるマイクロコントローラを示すブロック図である。
【図１８】図１８は、本発明の第５の実施形態によるフラッシュメモリカード１を示すブロック図である。
【符号の説明】
【０１４８】
１  マイクロコントローラ
２  中央処理ユニット（ＣＰＵ）
３  ランダムアクセスメモリ（ＲＡＭ）
４  不揮発性記憶装置としてのフラッシュメモリ（ＦＬＡＳＨ）
５  制御装置としてのフラッシュコントロールユニット（ＦＣＵ）
６  バスコントローラ（ＢＳＣ）
７  周辺回路（ＰＲＨＲＬ）
８  Ｉ／Ｏポート（ＩＯＰ）
９  システムコントローラ（ＳＹＳＣ）
ＭＤ０〜ＭＤ２  モード端子
内部バスＩＢＵＳ  内部バス
周辺バスＰＢＵＳ  周辺バス
ＥＸＢＵＳ  外部バス
１３  ＣＰＵインタフェースコントローラ（ＦＩＭＣ）
１４  バス制御回路（ＦＢＳＣ）
１５  コントロールＲＡＭ（ＣＲＡＭ）
１６  書き込み消去制御回路（ＦＬＣ）
１７  消去ブロック指定レジスタ（ＥＢＬＫＲ）
ＦＢＵＳ  ローカルバス
１８  動作制御レジスタ（ＦＣＮＴＲ）
１９  トリミングレジスタ（ＴＲＭＲ）
２０  内部Ｉ／Ｏレジスタ（ＩＩＯＲ）
２１  コントロールレジスタ（ＣＮＴＲ）
２２  ステータスレジスタ（ＳＴＳＲ）
３１  サスペンドモードレジスタ（ＳＵＳＭＤ）
ＳＵＳＰ  動作モードビット信号
【図１】
2008034045.tif 000003
【図２】
2008034045.tif 000004
【図３】
2008034045.tif 000005
【図４】
2008034045.tif 000006
【図５】
2008034045.tif 000007
【図６】
2008034045.tif 000008
【図７】
2008034045.tif 000009
【図８】
2008034045.tif 000010
【図９】
2008034045.tif 000011
【図１０】
2008034045.tif 000012
【図１１】
2008034045.tif 000013
【図１２】
2008034045.tif 000014
【図１３】
2008034045.tif 000015
【図１４】
2008034045.tif 000016
【図１５】
2008034045.tif 000017
【図１６】
2008034045.tif 000018
【図１７】
2008034045.tif 000019
【図１８】
2008034045.tif 000020