(57)【要約】【課題】割り込みを受け付けるまでの時間を外部に通知する不揮発性半導体メモリおよび不揮発性半導体メモリを内蔵したマイクロコンピュータを得ること。【解決手段】不揮発性半導体メモリのメモリブロックの消去動作を制御する自動消去シーケンサ２０８内の自動消去シーケンス制御回路２５４は、消去動作時には消去前書き込み制御回路２５６および消去／消去ベリファイ制御回路２５７を制御するとともに、自動消去実行中であることをステータスレジスタ２０７に設定する。また、デクリメンタ３５０、インクリメンタ３５１を起動する。これにより、デクリメンタ３５０およびインクリメンタ３５１が動作を開始して、処理終了までの時間およびサスペンド要求受付までの時間をカウントして外部に出力する。【選択図】      図９
2004227635.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性トランジスタからなる複数のメモリセルが行列状に配置されたメモリアレイで構成された複数のメモリブロックを有する不揮発性半導体メモリにおいて、
サスペンド要求が入力されると前記メモリブロックの消去時における所定のポイントで前記メモリブロックのデータの消去を中断するサスペンド要求受付回路と、
前記メモリブロックの消去開始時から所定のポイントまでの処理時間を外部に出力するサスペンド制御回路と、
を備えることを特徴とする不揮発性半導体メモリ。
【請求項２】
前記メモリブロックの消去開始時または前記所定のポイントで、つぎに消去動作を中断可能なポイントまでの消去動作の基準クロックの数が設定され、前記基準クロックの周期ごとにデクリメントする第１のデクリメンタをさらに備え、
前記サスペンド制御回路は、
前記第１のデクリメンタの値を出力することを特徴とする請求項１に記載の不揮発性半導体メモリ。
【請求項３】
前記サスペンド制御回路は、
前記基準クロックに基づいて前記第１のデクリメンタの値を時間に換算して出力することを特徴とする請求項２に記載の不揮発性半導体メモリ。
【請求項４】
前記サスペンド制御回路は、
前記メモリブロックのデータの消去が完了するまでの処理時間を出力することを特徴とする請求項１〜３の何れか一つに記載の不揮発性半導体メモリ。
【請求項５】
前記メモリブロックの消去開始時に、消去動作完了までの基準クロックの数が設定され、前記基準クロックの周期ごとにデクリメントする第２のデクリメンタをさらに備え、
前記サスペンド制御回路は、
前記第２のデクリメンタの値を出力することを特徴とする請求項４に記載の不揮発性半導体メモリ。
【請求項６】
前記サスペンド制御回路は、
前記基準クロックに基づいて前記第２のデクリメンタの値を時間に換算して出力することを特徴とする請求項５に記載の不揮発性半導体メモリ。
【請求項７】
前記メモリブロックの消去を中断する所定のポイントを外部より設定するサスペンド位置レジスタをさらに備え、
前記設定された所定のポイントでサスペンド要求を前記サスペンド要求受付回路に出力することを特徴とする請求項１〜６の何れか一つに記載の不揮発性半導体メモリ。
【請求項８】
前記サスペンド要求受付回路が、
前記メモリブロックの消去処理を中断して所定の処理が終了した後、メモリブロックの消去処理を再開することを特徴とする請求項１〜７の何れか一つに記載の不揮発性半導体メモリ。
【請求項９】
前記メモリブロックのデータの消去時の動作状態である再開情報を記憶する自動消去シーケンス状態記憶回路をさらに備え、
自動消去中断コマンドが入力された時の再開情報を自動消去シーケンス状態記憶回路に記憶させて、前記メモリブロックのデータの消去動作を完全に停止することを特徴とする請求項１〜８の何れか一つに記載の不揮発性半導体メモリ。
【請求項１０】
自動消去再開コマンドが入力されると、前記自動消去シーケンス状態記憶回路に記憶されている再開情報に基づいて、前記メモリブロックのデータの消去動作を再開することを特徴とする請求項９に記載の不揮発性半導体メモリ。
【請求項１１】
請求項１〜１０の何れか一つに記載の不揮発性半導体メモリを内蔵するマイクロコンピュータにおいて、
前記不揮発性半導体メモリにサスペンド要求を行う際に、該不揮発性半導体メモリから出力されるサスペンド要求受け付けまでの時間を参照してサスペンド要求のタイミングを調整する割り込み制御回路、
を備えることを特徴とする不揮発性半導体メモリを内蔵するマイクロコンピュータ。
【請求項１２】
前記割り込み制御回路は、
前記サスペンド要求受け付けまでの時間を参照して、サスペンド要求を出力するか、自動消去中断コマンドを出力するかを判断することを特徴とする請求項１１に記載の不揮発性半導体メモリを内蔵するマイクロコンピュータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、メモリセルとして不揮発性トランジスタを用いた不揮発性半導体メモリおよび不揮発性半導体メモリを内蔵したマイクロコンピュータに関するものである。
【０００２】
【従来の技術】
不揮発性半導体メモリは、データを一度書き込むと電源を切っても書き込まれたデータは保持される。また、データを消去して新しいデータを書き込むことが可能である。そのため、たとえば、デジタルカメラの画像データの記録媒体、コンピュータのプログラム格納メモリなどに利用されている。
【０００３】
不揮発性半導体メモリは、その構成上データの書き込みはアドレス毎に指定して書き込むことが可能であるが、データを消去する場合は、アドレスを指定して特定のアドレスのデータだけを消去することはできない。これは、メモリセルである不揮発性トランジスタに高電圧を供給してデータを消去するためである。したがって、不揮発性半導体メモリのデータの消去は、メモリブロックをいくつかに分割してそのブロックのデータを消去する自動ブロック消去かメモリ全体のデータを消去する自動一括消去のどちらかとなる。
【０００４】
データの消去処理を実行中の不揮発性半導体メモリにその処理を中断させる場合、たとえば、消去中に別のブロックのデータを読み出したい場合、マイクロコンピュータは不揮発性半導体メモリに対して割り込み要求を行う。しかしながら、不揮発性半導体メモリの消去はメモリブロック単位で処理されるため、数百ｎｓ〜数ｍｓの時間を要し、その間マイクロコンピュータのＣＰＵ（Ｃｏｎｔｒｏｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）はホールド状態となってしまう。すなわち、不揮発性半導体メモリの消去が終了するまでの間、ＣＰＵの処理が停止することになり、スループットが低下してしまうという問題があった。
【０００５】
このような問題を改善するために、不揮発性半導体メモリの自動消去処理を保留して他の処理を実行する技術や、不揮発性半導体メモリの状態を外部に通知する技術が考えられている（たとえば、特許文献１，２）。
【０００６】
特許文献１の従来技術には、マイクロコントローラやＣＰＵなどで構成されるフラッシュモジュール制御ユニットが不揮発性半導体メモリの動作を監視して、プログラミングプロセスまたは消去プロセスが実行されていることを外部に通知する技術が開示されている。
【０００７】
また、特許文献２の従来技術には、複数のメモリブロックで構成する不揮発性半導体メモリの消去シーケンス開始後に消去延期指令を受けると、消去シーケンスを所定の時点で延期させ、消去中のメモリブロックとは異なるメモリブロックのデータを読み取る。その後、消去再開の指令により、延期していた消去シーケンスを再開する技術が開示されている。
【０００８】
【特許文献１】
特表２００１−５１６９２３号公報
【特許文献２】
特開平０５−１８２４８２号公報
【０００９】
【発明が解決しようとする課題】
前者の従来技術では、不揮発性半導体メモリの動作状態を外部に通知するようにしているため、ＣＰＵは不揮発性半導体メモリが割り込み要求を受け付けるか否かを判断することができる。しかしながら、不揮発性半導体メモリがプログラミングプロセスまたは消去プロセスを実行中で割り込み要求を受け付けることができない場合、どのくらいの時間が経過すると割り込み要求を受け付けるのかわからないという問題があった。すなわち、割り込み要求を行った場合に、ＣＰＵがどのくらいの時間ホールド状態になるのかわからないという問題があった。
【００１０】
また、後者の従来技術では、不揮発性半導体メモリは消去シーケンスの所定の時点で割り込み要求を受け付けることができる。しかしながら、割り込み要求で実行できる処理は、消去しているメモリブロックとは異なるメモリブロックのデータの読み取りだけであるという問題があった。すなわち、不揮発性半導体メモリの他の動作モード、たとえば、データの書き込み、レジスタの状態を読み出すなどの動作は、消去シーケンスが完全に終了するまでは実行できないという問題があった。
【００１１】
この発明は上記に鑑みてなされたもので、割り込みを受け付けるまでの時間を外部に通知する不揮発性半導体メモリおよび不揮発性半導体メモリを内蔵したマイクロコンピュータを得ることを目的としている。
【００１２】
【課題を解決するための手段】
上記目的を達成するために、この発明にかかる不揮発性半導体メモリは、不揮発性トランジスタからなる複数のメモリセルが行列状に配置されたメモリアレイで構成された複数のメモリブロックを有する不揮発性半導体メモリにおいて、サスペンド要求が入力されると前記メモリブロックの消去時における所定のポイントで前記メモリブロックのデータの消去を中断するサスペンド要求受付回路と、前記メモリブロックの消去開始時から所定のポイントまでの処理時間を外部に出力するサスペンド制御回路とを備えることを特徴とする。
【００１３】
この発明によれば、不揮発性半導体メモリ内のメモリブロックを消去する際に、消去処理の区切りでサスペンド要求を受け付けるとともに、消去処理を開始してからサスペンド要求を受け付けることができる消去処理の区切りまでの時間を外部に出力するようにしている。
【００１４】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかる不揮発性半導体メモリおよび不揮発性半導体メモリを内蔵したマイクロコンピュータの好適な実施の形態を詳細に説明する。
【００１５】
実施の形態１．
図１〜図１８を用いてこの発明の実施の形態１を説明する。図１は、この発明の実施の形態１における不揮発性半導体メモリ２の構成を示すブロック図である。この発明の実施の形態１における不揮発性半導体メモリ２は、ラッチ回路２０５と、マイクロシーケンサ２０１と、メモリデコーダ２０３と、チャージポンプ２０２と、メモリブロック２０４とを備えている。
【００１６】
ラッチ回路２０５は、不揮発性半導体メモリ２の外部端子のインタフェース機能を有する。アドレスバスおよびデータバスから入力される１７ビットのアドレス信号Ａおよび１６ビットのデータ信号Ｄをラッチし、これらラッチした信号をマイクロシーケンサ２０１に出力する。また、ラッチ回路２０５は、マイクロシーケンサ２０１からの信号をアドレスバスおよびデータバスに出力する。
【００１７】
マイクロシーケンサ２０１は、ラッチ回路２０５から入力されるアドレス信号Ａおよびデータ信号Ｄが示すコマンドに基づいて不揮発性半導体メモリ２の各構成要素を統括的に制御する。
【００１８】
図２は、この発明における不揮発性半導体メモリ２の動作モードの一覧を示している。図２に示すように、不揮発性半導体メモリ２は、外部からの１７ビットのアドレス信号Ａおよび１６ビットのデータ信号により動作モードが指定される。読み出しコマンド（データ信号ＤがＦＦｈ）は、メモリブロック２０４の任意のアドレスのデータを読み出す。ステータスレジスタリードコマンド（データ信号Ｄが７０Ｈ）は、不揮発性半導体メモリ２の動作状態を示すステータスレジスタの内容を読み出し、ＦＦｈで戻る。ステータスレジスタクリアコマンド（データ信号Ｄが５０ｈ）は、ステータスレジスタの内容をクリアし、ＦＦｈで戻る。自動書き込みコマンド（データ信号Ｄ４０ｈ）は、つぎのサイクルのアドレス信号で指定されたアドレスにデータ信号で指定されたデータを書き込むとともに、書き込み用のステータスレジスタに書き込みのステータスを書き込む。自動一括消去コマンド（データ信号Ｄが４０ｈ）は、つぎのサイクルのデータ信号が２０ｈでメモリブロック２０４のデータを全て消去するとともに、消去用のステータスレジスタに自動一括消去のステータスを書き込む。自動ブロック消去コマンド（データ信号Ｄが２０ｈ）は、つぎのサイクルでデータ信号ＤがＤ０ｈとなり、アドレス信号Ａで指定されたブロックアドレスのブロックのメモリブロック２０４のデータを消去するとともに、データを消去した後消去用のステータスレジスタに自動ブロック消去のステータスを書き込む。自動消去中断コマンド（データ信号が８０ｈ）は、自動一括消去コマンドまたは自動ブロック消去コマンドによりメモリブロック２０４のデータを消去中にその消去動作を中断する。自動消去再開コマンド（データ信号が２０ｈ）は、自動消去中断コマンドにより中断された消去動作を再開する。マイクロシーケンサ２０１は、これらのコマンドに基づいて不揮発性半導体メモリ２の各構成要素を制御する。
【００１９】
図３は、図１に示したマイクロシーケンサ２０１の構成を示すブロック図である。マイクロシーケンサ２０１は、コマンドポート２０６と、ステータスレジスタ２０７と、自動消去シーケンサ２０８と、自動書き込みシーケンサ３０３と、テストモード・シーケンサ２０９と、パワーリセット回路２１０と、クロック生成回路２１１と、デコーダ・チャージポンプ制御信号生成回路２１２と、アドレスレジスタ２３０と、タイマー回路３０４と、サスペンド制御回路３０５とを備えている。
【００２０】
コマンドポート２０６は、ラッチ回路２０５から入力されたアドレス信号およびデータ信号をデコードして、自動消去シーケンサ２０８、自動書き込みシーケンサ３０３、テストモード・シーケンサ２０９およびパワーリセット回路２１０に出力する。
【００２１】
アドレスレジスタ２３０は、データ読み出しや自動消去／自動書き込み時などに、ラッチ回路２０５を介して外部から入力されたアドレスを一時的に保持し、メモリデコーダ２０３に出力する。
【００２２】
自動消去シーケンサ２０８は、コマンドポート２０６の指示により、消去パルスの発行やポンプ立ち上げ時間設定など自動消去シーケンスで必要な各種時間の計測はタイマー回路３０４を用いて行い、デコーダ・チャージポンプ制御信号生成回路２１２を介して、チャージポンプ２０２、メモリデコーダ２０３およびメモリブロック２０４を制御する。また、自動消去時のステータス状態をステータスレジスタ２０７に書き込む。
【００２３】
自動書き込みシーケンサ３０３は、コマンドポート２０６の指示により、書き込みパルスの発行やポンプ立ち上げ時間設定など自動書き込みシーケンスで必要な各種時間の計測はタイマー回路３０４を用いて行い、デコーダ・チャージポンプ制御信号生成回路２１２を介して、チャージポンプ２０２、メモリデコーダ２０３およびメモリブロック２０４を制御する。
【００２４】
テストモード・シーケンサ２０９は、コマンドポート２０６の指示により、書き込みパルスと消去の発行やポンプ立ち上げ時間設定など各種テストシーケンスで必要な各種時間の計測はタイマー回路３０４を用いて行い、デコーダ・チャージポンプ制御信号生成回路２１２を介して、チャージポンプ２０２、メモリデコーダ２０３およびメモリブロック２０４を制御する。
【００２５】
パワーリセット回路２１０は、電源の立ち上げエッジを検出してリセット信号を内部回路に出力する。また、コマンドポート２０６を経由して入力される外部リセット入力により、マイクロシーケンサ２０１内部のすべての回路をリセット状態にする。
【００２６】
クロック生成回路２１１は、所定のクロックパルスを自動消去シーケンサ２０８、自動書き込みシーケンサ３０３およびテストモード・シーケンサ２０９に出力する。パワーリセット回路２１０によりすべての回路がリセットされ非動作状態になった場合には、クロック生成回路２１１も機能を停止しクロック信号も停止する。
【００２７】
ステータスレジスタ２０７は、マイクロシーケンサ２０１のステータス状態を保持する。すなわち、自動書き込みシーケンサ３０３または自動消去シーケンサ２０８により自動書き込みまたは自動消去動作が実行中であるか否かが設定される。また、自動消去／書き込みの処理終了時にベリファイの結果に基づいて、処理が正常に終了したかエラーが発生したかの情報も保持する。ステータスレジスタ２０７の内容は、ステータスレジスタリードコマンドにより読み出される。また、自動消去または書き込み実行時には、データバスのデータ信号Ｄの所定のビットにステータスレジスタ２０７の値が出力される。
【００２８】
デコーダ・チャージポンプ制御信号生成回路２１２は、自動消去シーケンサ２０８、自動書き込みシーケンサ３０３およびテストモード・シーケンサ２０９の指定に基づいてチャージポンプ２０２、メモリデコーダ２０３およびメモリブロック２０４を制御する制御信号を生成する。
【００２９】
タイマー回路３０４は、自動消去シーケンサ２０８、自動書き込みシーケンサ３０３、テストモード・シーケンサ２０９およびパワーリセット回路２１０により起動され、要求のあった時間を計測する。時間の計測が終了すると、要求もとのブロックに終了信号を出力する。
【００３０】
サスペンド制御回路３０５は、ラッチ回路２０５を介して外部からの割り込み要求に対して、自動消去シーケンサ２０８を停止または再開させるための処理を行う。また、自動消去シーケンサ２０８のシーケンスをモニタして、自動消去シーケンスを停止することのできるポイントまでの時間と、自動消去シーケンス終了までの時間とをラッチ回路２０５を介して外部に出力する。
【００３１】
チャージポンプ２０２は、マイクロシーケンサ２０１から入力される制御信号に基づいてデータの書き込みおよび消去時にメモリブロック２０４に対して印加する電圧を発生する。図４は、図１に示したチャージポンプ２０２の構成を示すブロック図である。チャージポンプ２０２は、負電圧チャージポンプ回路２１３と、正電圧チャージポンプ回路２１４と、読み出し電圧チャージポンプ回路２１５と、電圧切替回路２１６とを備えている。
【００３２】
負電圧チャージポンプ回路２１３は、メモリブロック２０４の消去時に駆動され、メモリブロック２０４を消去するための負電圧を生成する。正電圧チャージポンプ回路２１４は、メモリブロック２０４にデータ“Ｈ”の書き込みおよびデータ消去時の前処理としてメモリブロック２０４に“Ｈ”を書き込むための正電圧を生成する。読み出し電圧チャージポンプ回路２１５は、メモリブロック２０４の読み出しおよびデータ書き込み後のベリファイ時に駆動され、メモリブロック２０４の読み出しおよびベリファイ時に、読み出し用の電圧またはベリファイ用電圧を発生する。電圧切替回路２１６は、負電圧チャージポンプ回路２１３と正電圧チャージポンプ回路２１４と読み出し電圧チャージポンプ回路２１５の何れか１つの回路から出力される電圧を選択し、選択した電圧をメモリデコーダ２０３およびメモリブロック２０４に出力する。
【００３３】
メモリデコーダ２０３は、マイクロシーケンサ２０１を介して入力されるアドレスに基づいてセレクト信号とロウアドレス信号とコラムアドレス信号とを生成してメモリブロック２０４に出力する。
【００３４】
図５は、図１に示したメモリデコーダ２０３の構成を示すブロック図である。メモリデコーダ２０３は、セレクトゲートアドレスラッチ２３２と、ロウアドレスラッチ２１７と、コラムアドレス入力バッファラッチ２１８と、セレクトゲートアドレスプリデコーダ２３３と、ロウアドレスプリデコーダ２１９と、コラムアドレスプリデコーダ２２０とを備えている。
【００３５】
セレクトゲートアドレスラッチ２３２は、アドレス信号をラッチして、セレクトゲートアドレスプリデコーダ２３３にラッチしたアドレス信号を出力する。セレクトゲートアドレスプリデコーダ２３３は、アドレス信号が示すアドレスのプリデコード処理を行い、セレクト信号を生成する。
【００３６】
ロウアドレスラッチ２１７は、アドレス信号をラッチして、ロウアドレスプリデコーダ２１９にラッチしたアドレス信号を出力する。ロウアドレスプリデコーダ２１９は、アドレス信号が示すアドレスのプリデコード処理を行い、ロウアドレス信号を生成する。
【００３７】
コラムアドレス入力バッファラッチ２１８は、アドレス信号をラッチして、コラムアドレスプリデコーダ２２０にラッチしたアドレス信号を出力する。コラムアドレスプリデコーダ２２０は、アドレス信号が示すアドレスのプリデコード処理を行い、コラムアドレス信号を生成する。
【００３８】
メモリブロック２０４は、図６に示すように、メモリブロック２０４−０〜２０４−４の５つのブロックで構成される。メモリブロック２０４−４は、１６進表記で０００００ｈ〜０７ＦＦＦｈの３２ＫＢのアドレス空間を有する。メモリブロック２０４−３は、１６進表記で０８０００ｈ〜０ＦＦＦＦｈの３２ＫＢのアドレス空間を有する。メモリブロック２０４−２は、１６進表記で１００００ｈ〜０７ＦＦＦｈの３２ＫＢのアドレス空間を有する。メモリブロック２０４−１は、１６進表記で１８０００ｈ〜１ＦＦＦＦｈの３２ＫＢのアドレス空間を有する。メモリブロック２０４−０は、１６進表記で０００００ｈ〜０１ＦＦＦｈの８ＫＢのアドレス空間を有する。メモリブロック２０４−０は、スペシャル領域であり、固有の信号線のアクセスにより消去、書き込み、読み出しを実行する。
【００３９】
図７は、図１に示したメモリブロック２０４の構成を示すブロック図である。メモリブロック２０４は、５つのメモリブロック２０４−０〜２０４−４と、センスアンプ／書き込み回路２２６と、セレクタ回路２２７とを備えている。メモリブロック２０４−０は、Ｘデコーダ２０４−１０と、Ｙデコーダ２０４−２０と、ＳＧデコーダ２０４−３０と、８ＫＢのメモリセルアレイ２０４−４０とを備えている。メモリブロック２０４−１は、Ｘデコーダ２０４−１１と、Ｙデコーダ２０４−２１と、ＳＧデコーダ２０４−３１と、３２ＫＢのメモリセルアレイ２０４−４１とを備えている。メモリブロック２０４−２は、Ｘデコーダ２０４−１２と、Ｙデコーダ２０４−２２と、ＳＧデコーダ２０４−３２と、３２ＫＢのメモリセルアレイ２０４−４２とを備えている。メモリブロック２０４−３は、Ｘデコーダ２０４−１３と、Ｙデコーダ２０４−２３と、ＳＧデコーダ２０４−３３と、３２ＫＢのメモリセルアレイ２０４−４３とを備えている。メモリブロック２０４−４は、Ｘデコーダ２０４−１４と、Ｙデコーダ２０４−２４と、ＳＧデコーダ２０４−３４と、３２ＫＢのメモリセルアレイ２０４−４４とを備えている。
【００４０】
メモリセルアレイ２０４−４０〜２０４−４４とセンスアンプ／書き込み回路２２６間はグローバルビット線２３４で接続されている。センスアンプ／書き込み回路２２６は、メモリセルアレイ２０４−４０〜２０４−４４からの出力をグローバルビット線２３４とセレクタ回路２２７を介してデータ信号に出力するとともに、データ信号の値をセレクタ回路２２７、グローバルビット線２３４を介してメモリセルアレイ２０４−４０〜２０４−４４に書き込む。
【００４１】
図８は、図７に示したセレクタ回路２２７とセンスアンプ／書き込み回路２２６とメモリブロック２０４−０とを抽出した図である。図８において、メモリセルアレイ２０４−４０は、１本のグローバルビット線２３４に接続されている部分のみを示している。Ｙデコーダ２０４−１０は、メモリデコーダ２０３から入力されるコラムアドレス信号を１６本のメインビット線２３９〜２４２から一本のビット線を選択するための１６本の制御信号ＣＳ０〜ＣＳ１５を生成する。制御信号ＣＳ０〜ＣＳ１５は、サブビット線を選択するトランジスタ２３５〜２３８のゲートに接続されている。それぞれのメインビット線２３９〜２４２は、それぞれ４本のサブビット線が接続されている。
【００４２】
ＳＧデコーダ２０４−３０は、メモリデコーダ２０３から入力されるセレクト信号により４本のサブビット線ＳＢＬ０〜ＳＢＬ３から１本のサブビット線を選択するための制御信号ＳＧ０〜ＳＧ３を生成する。制御信号ＳＧ０〜ＳＧ３は、サブビット線を選択するトランジスタ２４３〜２４６のゲートに接続されている。
【００４３】
Ｘデコーダ２０４−１０は、メモリデコーダ２０３から入力されるロウアドレス信号により６４本のワード線ＷＬ０〜ＷＬ６３から１本のワード線を選択する。それぞれのサブビット線には、フローティングゲートを有する不揮発性トランジスタからなるメモリセルＴｒ０−０〜Ｔｒ０−３、Ｔｒ１−０〜Ｔｒ１−３、…、Ｔｒ６３−０〜Ｔｒ６３−３が行列状に配置されている。このうち、同一行に配置されたメモリセルＴｒ０−０〜Ｔｒ６３−０のソース端子にはサブビット線ＳＢＬ０が、メモリセルＴｒ０−１〜Ｔｒ６３−１のソース端子にはサブビット線ＳＢＬ１が、メモリセルＴｒ０−２〜Ｔｒ６３−０ソース端子にはサブビット線ＳＢＬ２が、メモリセルＴｒ０−３〜Ｔｒ６３−３のソース端子にはＳＢＬ３がそれぞれ接続されている。また、同一列に配置されたメモリセルＴｒ０−０〜Ｔｒ０−３のゲート端子にはワード線ＷＬ０、メモリセルＴｒ１−０〜Ｔｒ１−３のゲート端子にはワード線ＷＬ１というように、メモリセルＴｒ６３−０〜６３−３まで、ゲート端子には異なるワード線が接続されている。
【００４４】
メモリセルアレイ２０４−４０のデータの読み出しは、Ｘアドレスプリデコーダ２０４−１０、Ｙアドレスプリデコーダ２０４−２０およびＳＧデコーダ２０４−３０の出力に基づいて、サブビット線ＳＢＬ０〜ＳＢＬ３とワード線ＷＬ０〜ＷＬ６３からそれぞれ１本のサブビット線とワード線とが選択され、選択されたビット線とワード線とに接続されたフローティングゲートを有する不揮発性トランジスタからなるメモリセルの内容が、センスアンプ／書き込み回路２２８内のセンスアンプを解してデータ信号に出力される。
【００４５】
メモリセルアレイ２０４−４０へのデータの書き込みは、Ｘアドレスプリデコーダ２０４−１０、Ｙアドレスプリデコーダ２０４−２０およびＳＧデコーダ２０４−３０の出力に基づいて、サブビット線ＳＢＬ０〜ＳＢＬ３とワード線ＷＢＬ０〜ＷＢＬ６３からそれぞれ１本のサブビット線とワード線とが選択され、選択されたビット線とワード線とに接続されたフローティングゲートを有する不揮発性トランジスタからなるメモリセルに、センスアンプ／書き込み回路２２８内の書き込み回路を介してデータ信号の値が書き込まれる。
【００４６】
メモリセルアレイ２０４−４０のデータの消去は、消去パルスが消去の対象となっているメモリブロックに印加されると、フローティングゲートを有する不揮発性トランジスタからなるメモリセルのゲートに消去パルスが印加され、データが消去される。
【００４７】
つぎに、図９〜図１１を用いて、マイクロシーケンサ２０１内の自動消去シーケンサ２０８およびサスペンド制御回路３０５の詳細について説明する。図９は、図３に示した自動消去シーケンサ２０８の構成を示すブロック図である。自動消去シーケンサ２０８は、自動消去シーケンス制御回路２５４と、消去前書き込み制御回路２５６と、消去／消去ベリファイ制御回路２５７と、消去前書き込み信号生成回路２５８と、アドレスインクリメンタ２５９と、消去ベリファイ回路２６０と、サスペンド要求受付回路２５５と、デクリメンタ３５０と、インクリメンタ３５１と、退避用レジスタ３５２と、自動消去シーケンス状態記憶回路３５３とを備えている。
【００４８】
自動消去は、アドレス読み出し、メモリブロック２０４内の分割されたメモリセルアレイ２０４−０〜２０４−４を単位として、消去前書き込み、消去／消去ベリファイの一連の動作を行う。
【００４９】
自動消去シーケンス状態記憶回路３５３は、自動消去を中断した際にその動作を再開するための再開情報を保持する。
【００５０】
自動消去シーケンス制御回路２５４は、パワーリセット回路２１０によりリセットされて初期状態となる。自動消去シーケンス制御回路２５４は、コマンドポート２０６およびクロック生成回路２１１から入力される制御信号により、不揮発性半導体メモリ２が自動消去モードになると、消去前書き込み制御回路２５６および消去／消去ベリファイ制御回路２５７を制御するとともに、自動消去実行中であることをステータスレジスタ２０７に設定する。自動消去終了時には、自動消去が完了したことをステータスレジスタ２０７に設定する。また、前回の自動消去動作が途中で終了したため自動消去シーケンス状態記憶回路３５３に再開情報がある場合には、再開情報に基づいて、特定のアドレスの消去前書き込みを実行するのか消去／消去ベリファイを実行するのかを判断して、消去前書き込み制御回路２５６または消去／消去ベリファイ制御回路２５７を制御するとともに、自動消去実行中であることをステータスレジスタ２０７に設定する。自動消去動作を中断した場合には、再開情報を自動消去シーケンス状態記憶回路３５３に設定するとともに、自動消去の中断をステータスレジスタ２０７に設定する。
【００５１】
消去前書き込み制御回路２５６は、自動消去シーケンス制御回路２５４からの信号に基づいて、消去前書き込み信号生成回路２５８とアドレスインクリメンタ２５９を制御して、メモリブロック２０４に対して消去前書き込み処理を行う。
【００５２】
消去前書き込み信号生成回路２５８は、消去前書き込み制御回路２５６からの信号に基づいて、消去前書き込み信号をデコーダ・チャージポンプ制御信号生成回路２１２に出力する。
【００５３】
消去／消去ベリファイ制御回路２５７は、自動消去シーケンス制御回路２５４からの信号に基づいて、消去前書き込み信号生成回路２５８とアドレスインクリメンタ２５９を制御して、メモリブロック２０４に対して消去および消去ベリファイ処理を行うとともに、消去パルスをデコーダ・チャージポンプ制御信号生成回路２１２に出力する。
【００５４】
消去ベリファイ回路２６０は、消去／消去ベリファイ制御回路２５７からの信号に基づいて、アドレスインクリメンタ２５９を制御して、消去したメモリブロック２０４のデータを読み出す。読み出したデータと予め定められた期待値とを比較して、メモリブロック２０４が消去されているかを確認する。
【００５５】
アドレスインクリメンタ２５９は、消去前書き込み制御回路２５６、消去／消去ベリファイ制御回路２５７および消去ベリファイ回路２６０の指定に基づいて、消去対象となっているメモリブロック２０４のアドレスを最下位アドレスから最上位アドレスまで順に生成し、生成したインクリメンタアドレスをデコーダ・チャージポンプ制御信号生成回路２１２に出力する。
【００５６】
退避用レジスタ３５２は、デクリメンタ３５０の初期値を格納する。退避用レジスタ３５２に格納されている値は、外部からの専用制御信号により、ラッチ回路２０５を介して外部に読み出すことができる。また、読み出した値は、メモリブロック２０４−０に自動消去実行時間として記憶する。
【００５７】
デクリメンタ３５０は、自動消去終了までの時間およびサスペンド要求受付までの時間をデクリメント値としてカウントして、カウント値をラッチ回路２０５を介して外部に出力する。デクリメンタ３５０の初期値は、退避用レジスタ３５２の値またはメモリブロック２０４−０に格納されているインクリメント値を用いる。自動消去中の消去パルスの照射回数などは、自動消去を実行する度に変化するため、消去パルス印加と消去ベリファイのループ処理に入ると、消去ベリファイのアドレスインクリメントの進み具合と印加した消去パルスの回数から、デクリメント値を修正する。
【００５８】
インクリメンタ３５１は、自動消去終了までの時間をインクリメント値としてカウントし、カウントした値を自動消去が終了した後退避用レジスタ３５２に格納する。
【００５９】
サスペンド要求受付回路２５５は、サスペンド制御回路３０５を介して入力された外部からのサスペンド要求信号を受け付ける。サスペンド要求を受け付けると、サスペンド要求受付回路２５５は、実行中の処理に基づいて、消去前書き込み制御回路２５６または消去／消去ベリファイ制御回路２５７にサスペンド要求を受け付けたことを通知する。また、自動消去シーケンス中の処理を停止可能なポイントまでの時間を出力するとともに、自動消去終了までの時間をデクリメント値としてサスペンド制御回路３０５に出力する。
【００６０】
図１０は、図３に示したサスペンド制御回路３０５の構成を示すブロック図である。サスペンド制御回路３０５は、サスペンド要求処理回路３０６と、サスペンド位置設定レジスタ３０７とを備えている。
【００６１】
サスペンド要求処理回路３０６は、ラッチ回路２０５を介して外部から入力されるサスペンド要求の信号を受け付けて、サスペンド要求受付回路２５５に出力する。また、サスペンド位置設定レジスタ３０７に中断ポイントが設定された場合、たとえば、中断ポイントが消去前書き込み終了後であれば消去前書き込み処理中に、中断ポイントが消去パルス印加後であれば消去パルス印加中に、サスペンド要求をサスペンド要求受付回路２５５に出力する。サスペンド要求処理回路３０６は、サスペンド要求受付回路２５５からの信号に基づいて、サスペンド要求を受け付けたことを示すサスペンドホールド信号およびサスペンドポイントまでの時間、自動消去終了までの時間を補正計算してそれらの時間をラッチ回路２０５を介して外部に出力する。
【００６２】
サスペンド位置設定レジスタ３０７は、自動消去処理を中断するポイントを格納する。サスペンド位置設定レジスタ３０７は、制御信号を用いてラッチ回路２０５を介して外部より設定する。サスペンド位置設定レジスタ３０７は、図１１に示すように、２ビットのレジスタである。ｂ０に“１”が設定されると、消去前書き込み終了後にサスペンド処理が実行され、“０”が設定されるとサスペンド処理は実行されない。ｂ１に“１”が設定されると、消去パルス印加後にサスペンド処理が実行され、“０”が設定されるとサスペンド処理は実行されない。すなわち、サスペンド位置設定レジスタ３０７のｂ０またはｂ１に“１”を設定しておけば、サスペンド要求信号がネゲートの場合でもサスペンド処理が実行される。
【００６３】
つぎに、図１２〜図１８を参照して、この実施の形態１の不揮発性半導体メモリ２の動作を説明する。まず、図１２のフローチャートを参照して、この実施の形態１の不揮発性半導体メモリ２の書き込み動作を説明する。ラッチ回路２０５は、図２に示した自動書き込みの第１コマンドとしてデータバスから入力されるデータ信号の４０ｈをラッチする（ステップＳ１００）。コマンドポート２０６は、ラッチ回路２０５がラッチしたデータ信号により、自動書き込みのセットアップモードになり、自動書き込みシーケンサ３０３を制御する。ラッチ回路２０５はつぎのサイクルでアドレスバスから入力されるアドレス信号とデータバスから入力されるデータ信号をラッチする（ステップＳ１１０）。コマンドポート２０６は、ラッチ回路２０５が入力したアドレス信号およびデータ信号を自動書き込みシーケンサ３０３に出力する。これにより、自動書き込みシーケンサ３０３は、書き込み動作を開始する。
【００６４】
自動書き込みシーケンサ３０３は、アドレス信号およびデータ信号に基づいてデコーダ・チャージポンプ制御信号生成回路２１２を介してチャージポンプ２０２、メモリデコーダ２０３およびメモリブロック２０４を制御して書き込みパルスを印加する（ステップＳ１２０）。
【００６５】
自動書き込みシーケンサ３０３は、書き込んだデータのベリファイ処理を行う（ステップＳ１３０）。すなわち、書き込んだアドレスのデータを読み出して、読み出したデータと外部より取り込んだデータとをワード単位で比較する。そして、比較結果が一致した場合は、書き込み処理が正常に終了したことをステータスレジスタ２０７に設定して、処理を終了する。
【００６６】
比較結果が不一致の場合は、自動書き込みシーケンサ３０３は、再度書き込み前処理を行う。このとき、自動書き込みシーケンサ３０３内の書き込み回数をカウントするカウンタをカウントアップする。そして、カウンタの値が予め定められた最大回数と比較する（ステップＳ１４０）。カウンタの値が、最大回数に達しない場合には、書き込みパルスを印加してデータを書き込み、ベリファイ処理を行う（ステップＳ１２０，Ｓ１３０）。カウンタの値が最大回数に達した場合、自動書き込みシーケンサ３０３は、書き込みエラーをステータスレジスタ２０７に設定して（ステップＳ１５０）処理を終了する。
【００６７】
つぎに、図１３のフローチャートを参照して、不揮発性半導体メモリ２のメモリブロック２０４−０〜２０４−４のいずれかのブロックを対象とする自動ブロック消去の動作を説明する。ラッチ回路２０５は、図２に示した自動ブロック消去の第１コマンドとしてデータバスから入力されるデータ信号の２０ｈをラッチする（ステップＳ２００）。コマンドポート２０６は、ラッチ回路２０５がラッチしたデータ信号により、自動ブロック消去のセットアップモードになり、自動消去シーケンサ２０８を制御する。ラッチ回路２０５はつぎのサイクルで入力される確認コマンドである第２コマンドとしてアドレスバスから入力されるアドレス信号とデータバスから入力されるデータ信号のＤ０ｈをラッチする（ステップＳ２１０）。コマンドポート２０６は、ラッチ回路２０５が入力したアドレス信号およびデータ信号を自動消去シーケンサ２０８に出力する。これにより、自動消去シーケンサ２０８は、アドレス信号により指定されたメモリブロックの自動ブロック消去動作を開始する。
【００６８】
自動消去シーケンサ２０８は、アドレス信号で指定されたメモリブロックに対して“１”を書き込む消去前書き込み処理を行う（ステップＳ２２０）。具体的には、自動消去シーケンス制御回路２５４は、デクリメンタ３５０、インクリメンタ３５１および消去前書き込み制御回路２５６を起動する。これにより、デクリメンタ３５０およびインクリメンタ３５１が動作を開始して、処理終了までの時間およびサスペンド要求受付までの時間が外部に出力される。消去前書き込み制御回路２５６は、消去前書き込み信号生成回路２５８とアドレスインクリメンタ２５９を制御する。そして、デコーダ・チャージポンプ制御信号生成回路２１２を介してチャージポンプ２０２とメモリデコーダ２０３によりアドレスインクリメンタ２５９が順次示すアドレスにワード単位でａｌｌ“１”を書き込む。
【００６９】
消去前書き込み処理が終了すると、自動消去シーケンサ２０８は、サスペンド要求の受付があるかを確認する（ステップＳ２３０）。サスペンド要求受付回路２５５からサスペンド要求があった場合、自動消去シーケンス制御回路２５４は、自動消去を中断して、メモリ読み出しを可能とする（ステップＳ２４０）。
【００７０】
メモリ読み出しが終了した場合、または、サスペンド要求の受付がない場合には、自動消去シーケンサ２０８は、消去パルス印加の処理を行う（ステップＳ２５０）。具体的には、自動消去シーケンス制御回路２５４は、消去／消去ベリファイ制御回路２５７とアドレスインクリメンタ２５９を制御する。そして、デコーダ・チャージポンプ制御信号生成回路２１２を介してチャージポンプ２０２とメモリデコーダ２０３により、消去パルスを印加する。
【００７１】
消去パルスの印加が終了すると、自動消去シーケンサ２０８は、サスペンド要求の受付があるかを確認する（ステップＳ２６０）。サスペンド要求受付回路２５５からサスペンド要求があった場合、自動消去シーケンス制御回路２５４は、自動消去を中断して、メモリ読み出しを可能とする（ステップＳ２７０）。
【００７２】
メモリ読み出しが終了した場合、または、サスペンド要求の受付がない場合、アドレスインクリメンタ２５９は、消去対象となっているメモリブロックに対して、最下位アドレスから最上位アドレスまでアドレスをインクリメントさせながら消去ベリファイ処理を行う。消去ベリファイ回路２６０は、読み出したデータが消去されているかを確認する（ステップＳ２８０）。消去されている場合には、最終アドレス（対象となっているメモリブロックの最上位アドレス）までデータが消去されているかの確認を繰り返す（ステップＳ２８０，Ｓ２９０）。
【００７３】
読み出したデータが消去されていない場合、消去ベリファイ回路２６０は、再度消去パルス印加を行う。このとき、消去ベリファイ回路２６０内の消去前処理の回数をカウントするカウンタをカウントアップする。そして、カウンタの値を予め定められた最大回数と比較する（ステップＳ３００）。カウンタの値が、最大回数に達しない場合には、消去パルス印加し（ステップＳ２５０）、その後、サスペンド要求の受付があるかを確認して（ステップＳ２６０，２７０）、消去に失敗したアドレスからベリファイ処理を行う（ステップＳ２８０）。カウンタの値が最大回数に達した場合、消去ベリファイ回路２６０は、消去エラーをステータスレジスタ２０７に設定して（ステップＳ３１０）処理を終了する。
【００７４】
図１４のタイムチャートを参照して、自動消去終了までの時間を示すデクリメント値およびサスペンド要求受付までの時間（停止可能までの時間）の出力タイミングを説明する。ここでは、クロック生成回路２１１が生成するクロックの周期を１００ｎｓとする。
【００７５】
ｔ１のタイミングにおいて、第１コマンドの２０ｈが入力され、ｔ２のタイミングにおいて、第２コマンドのＤ０ｈが入力される。これらのコマンドの入力にはライト信号ＩＷＥが使用され、ライト信号ＩＷＥの立ち上がりでコマンドがラッチされる。
【００７６】
ｔ３のタイミングにおいて、デクリメンタ３５０のデクリメンタ値ＤＥＣ０には、メモリブロック２０４−０に格納された１回前に消去した際にカウントしたインクリメント値または退避用レジスタ３５２に設定された値が設定される。この場合は、“０８００００ｈ”が設定される。この値はクロック数であり、クロックの周期は１００ｎｓであるので約０．８ｓｅｃを示している。また、デクリメンタ３５０のデクリメンタ値ＤＥＣ１には、サスペンド要求時に停止可能なポイントまでの時間が設定される。この場合は、“３００００ｈ”が設定される。この値はクロック数であり、クロックの周期は１００ｎｓであるので約１９ｍｓを示している。インクリメンタ３５１はリセットされて、インクリメンタ３５１のインクリメンタ値ＩＮＣ０は“０”になる。
【００７７】
ｔ４のタイミングにおいて、デクリメンタ値ＤＥＣ０およびデクリメンタ値ＤＥＣ１は、ともに１だけデクリメントされ、インクリメンタ値ＩＮＣ０はインクリメントされ“１”になる。このようにクロックの立ち上がりに同期してデクリメンタ値ＤＥＣ０およびデクリメンタ値ＤＥＣ１はデクリメントされ、インクリメンタ値ＩＮＣ０はインクリメントされる。
【００７８】
また、ｔ３、ｔ４の期間では、サスペンド要求時に停止可能なポイントまでの時間が約１９ｍｓであるのでステータス信号である停止可能まで１０ｍｓ以上を示す信号が“Ｈ”になる。
【００７９】
ｔ５，ｔ６，ｔ７のタイミングでは消去前書き込み処理を行っている。ｔ７のタイミングで消去前書き込み処理が終了する。このとき、デクリメンタ値ＤＥＣ１は、“０００００ｈ”となる。すなわち、消去前書き込み処理が終了したため、サスペンド要求を受け付けることが可能となり、サスペンド要求を受け付けるまでの時間が０ｓとなっている。さらに、ループ処理により消去前書き込みが開始されると、デクリメンタ値ＤＥＣ１に処理終了までの時間を示す値が設定され、クロックの立ち上がりに同期してデクリメントされる。ｔ５のタイミングでは、デクリメンタ値ＤＥＣ１の値は“００１００ｈ”であり、クロックの周期が１００ｎｓであるので、約２５ｎｓを示している。したがって、停止可能まで１０μｓ以上を示す信号（図示せず）が“Ｈ”になる。
【００８０】
ｔ８，ｔ９，ｔ１０，ｔ１１，ｔ１２のタイミングでは消去パルス印加および消去ベリファイのループ処理を行っている。ｔ８のタイミングにおいて、デクリメント値ＤＥＣ１に、処理終了までの時間を示す値“０５０００ｈ”が設定される。クロックに基づいて時間に換算すると約２ｍｓであるので、ステータス信号である停止可能まで１ｍｓ以上５ｍｓ以下を示す信号を“Ｈ”にする。
【００８１】
ｔ１１のタイミングにおいて、デクリメント値ＤＥＣ１が“０００００１ｈ”となり、クロックに基づいて時間に換算すると１００ｎｓであるので、ステータス信号である停止可能まで１ｍｓ以上５ｍｓ以下を示す信号が“Ｌ”に、ステータス信号である停止可能まで１μｓ以下を示す信号が“Ｈ”になる。
【００８２】
ｔ１２のタイミングにおいて、消去パルスの印加の相回数は、自動消去実行の際に毎回微妙に変化するため、ループ処理中に消去パルスの印加回数とベリファイアドレスのインクリメント値に基づいてデクリメンタ３５０の値が修正される。たとえば、ｔ１２のタイミングで修正された値がデクリメンタ３５０のデクリメンタ値ＤＥＣ０は“００ｆｆｆｅｈ”に修正される。デクリメンタ値ＤＥＣ１は、“０００００ｈ”となる。すなわち、消去前書き込み処理が終了したため、サスペンド要求を受け付けることが可能となり、サスペンド要求を受け付けるまでの時間が０ｓとなっている。
【００８３】
さらに、ループ処理によりｔ８のタイミングに戻って消去前書き込みが開始されると、デクリメンタ値ＤＥＣ１に処理終了までの時間を示す値が設定され、クロックの立ち上がりに同期してデクリメントされる。
【００８４】
消去パルス印加および消去ベリファイ終了後のｔ１３〜ｔ１５のタイミングを経て自動ブロック消去が終了する。ｔ１５のタイミングにおいて、インクリメンタ値ＩＮＣ０の値が、退避用レジスタ３５２に格納される。
【００８５】
つぎに、図１５のフローチャートを参照して、自動一括消去の動作を説明する。自動一括消去は、メモリブロック２０４−１〜２０４−４をブロック単位で消去する。
【００８６】
ラッチ回路２０５は、図２に示した自動一括消去の第１コマンドとしてデータバスから入力されるデータ信号の２０ｈをラッチする（ステップＳ４００）。コマンドポート２０６は、ラッチ回路２０５がラッチしたデータ信号により、自動ブロック消去のセットアップモードになり、自動消去シーケンサ２０８を制御する。ラッチ回路２０５はつぎのサイクルで入力される確認コマンドである第２コマンドとしてアドレスバスから入力されるアドレス信号とデータバスから入力されるデータ信号の２０ｈをラッチする（ステップＳ４１０）。コマンドポート２０６は、ラッチ回路２０５が入力したアドレス信号およびデータ信号を自動消去シーケンサ２０８に出力する。これにより、自動消去シーケンサ２０８は、自動一括消去動作を開始する。
【００８７】
自動消去シーケンサ２０８は、図１３のフローチャートに示したブロック消去手順（ステップＳ２３０〜Ｓ３１０）にしたがって、メモリブロック２０４−１〜２０４−４の４つのメモリブロックを１つずつ消去し、最終ブロックの消去が終了すると（ステップＳ４２０）処理を終了する。
【００８８】
図１６のタイムチャートは、自動一括消去終了までの時間を示すデクリメント値およびサスペンド要求受付までの時間（停止可能までの時間）の出力タイミングを示している。自動一括消去は、メモリブロック２０４−１〜２０４−４をブロック単位で消去しているので、図１４のタイムチャートと同様のタイミングについてはその説明を省略する。ｔ１２のタイミングにおいて、１つのメモリブロックの消去が完了すると、消去処理の最終メモリブロックになるまで、ｔ５〜ｔ７のタイミングにおける消去前書き込みと、ｔ８〜ｔ１２のタイミングにおける消去パルス印加および消去ベリファイを繰り返す。
【００８９】
つぎに、消去前書き込み処理終了直後に自動消去中断コマンドが入力された場合を例に挙げて、自動ブロック消去処理が中断され、自動消去再開コマンドにより自動ブロック消去処理を再開する動作を説明する。
【００９０】
図１７のフローチャートを参照して、自動消去中断コマンドが入力されて自動処理ブロック消去処理を中断する動作を説明する。ラッチ回路２０５は、図２に示した自動ブロック消去の第１コマンドとしてデータバスから入力されるデータ信号の２０ｈをラッチする（ステップＳ２００）。コマンドポート２０６は、ラッチ回路２０５がラッチしたデータ信号により、自動ブロック消去のセットアップモードになり、自動消去シーケンサ２０８を制御する。ラッチ回路２０５はつぎのサイクルで入力される確認コマンドである第２コマンドとしてアドレスバスから入力されるアドレス信号とデータバスから入力されるデータ信号のＤ０ｈをラッチする（ステップＳ２１０）。コマンドポート２０６は、ラッチ回路２０５が入力したアドレス信号およびデータ信号を自動消去シーケンサ２０８に出力する。これにより、自動消去シーケンサ２０８は、アドレス信号により指定されたメモリブロックの自動ブロック消去動作を開始する。
【００９１】
自動消去シーケンサ２０８は、アドレス信号で指定されたメモリブロックに対して“１”を書き込む消去前書き込み処理を行う（ステップＳ２２０）。
【００９２】
消去前書き込み処理終了直後に、自動消去中断コマンドが入力されたとする。すなわち、コマンドポート２０６がラッチ回路２０５を介して入力されたデータ信号の８０ｈを認識し、自動消去中断コマンドが入力されたことを自動消去シーケンス制御回路２５４に通知する。
【００９３】
自動消去中断コマンドが入力されたこと通知されると、自動消去シーケンス制御回路２５４は、自動消去再開コマンドが入力された場合に処理を再開するための再開処理情報を自動消去シーケンス状態記憶回路３５３に設定して（ステップＳ５００）処理を終了する。これにより、図２に示したコマンドの実行が可能となる。
【００９４】
つぎに、図１８のタイムチャートを参照して、自動消去再開コマンドにより自動消去処理を再開する動作を説明する。ラッチ回路２０５は、図２に示した自動消去再開コマンドの第１コマンドとしてデータバスから入力されるデータ信号の２０ｈをラッチする（ステップＳ６００）。コマンドポート２０６は、ラッチ回路２０５がラッチしたデータ信号により、自動ブロック消去のセットアップモードになり、自動消去シーケンサ２０８を制御する。ラッチ回路２０５はつぎのサイクルで入力される確認コマンドである第２コマンドとしてデータバスから入力されるデータ信号の４０ｈをラッチする（ステップＳ６１０）。コマンドポート２０６は、自動消去シーケンサ２０８に自動消去再開コマンドが入力されたことを通知する。
【００９５】
自動消去再開コマンドが入力された通知を受けると、自動消去シーケンサ２０８内の自動消去シーケンス制御回路２５４は、自動消去シーケンス状態記憶回路３５３から再開情報を読み出す（ステップＳ６２０）。自動消去シーケンス制御回路２５４は、再開情報に基づいて自動消去動作を再開する。この場合、再開情報は消去前書き込み処理が終了したことを示しているため、消去パルス印加から処理を再開する（ステップＳ２５０）。
【００９６】
消去パルス印加の処理が終了すると、アドレスインクリメンタ２５９は、消去対象となっているメモリブロックに対して、最下位アドレスから最上位アドレスまでのアドレスをインクリメントさせながら消去ベリファイ処理を行う。消去ベリファイ回路２６０は、読み出したデータが消去されているかを確認する（ステップＳ２８０）。消去されている場合には、最終アドレス（対象となっているメモリブロックの最上位アドレス）までデータが消去されているかの確認を繰り返す（ステップＳ２８０，Ｓ２９０）。
【００９７】
読み出したデータが消去されていない場合、消去ベリファイ回路２６０は、再度消去パルス印加を行う。このとき、消去ベリファイ回路２６０内の消去前処理の回数をカウントするカウンタをカウントアップする。そして、カウンタの値を予め定められた最大回数と比較する（ステップＳ３００）。カウンタの値が、最大回数に達しない場合には、消去パルス印加し（ステップＳ２５０）、消去に失敗したアドレスからベリファイ処理を行う（ステップＳ２８０）。カウンタの値が最大回数に達した場合、消去ベリファイ回路２６０は、消去エラーをステータスレジスタ２０７に設定して（ステップＳ３１０）処理を終了する。
【００９８】
なお、自動消去中断コマンドは、自動ブロック消去中の何処でも受け付け可能である。
【００９９】
また、自動一括消去コマンドは、メモリブロック２０４−１〜２０４−４をブロック単位でデータを消去しているので、自動一括消去コマンド実行中についても、自動消去中断コマンドが入力されると、自動消去シーケンス制御回路２５４は、再開情報を自動消去シーケンス状態記憶回路３５３に格納して処理を中断する。そして、自動消去再開コマンドが入力されると、自動消去シーケンス制御回路２５４は、自動消去シーケンス状態記憶回路３５３に格納してある再開情報を読み出して、その再開情報に基づいて自動一括消去処理を再開する。
【０１００】
このようにこの実施の形態１では、自動ブロック消去または自動一括消去によりメモリブロックを消去する際に、消去開始からサスペンド要求を受け付けることができる第１の消去処理の区切りまでの時間または第１の消去処理の区切りから第２の消去処理の区切りまでの処理時間を外部に出力するようにしているため、外部から割り込み処理を受け付けるまでの時間を知ることができる。
【０１０１】
また、自動ブロック消去または自動一括消去のコマンドが終了するまでの時間、すなわち、メモリブロックの消去開始から終了までの時間を外部に出力するようにしているため、外部からコマンド終了までの時間を知ることができる。
【０１０２】
さらに、外部に出力する時間を消去動作に用いるクロック数またはクロック周期を用いて時間に換算して出力するようにしているため、この不揮発性半導体メモリを使用した外部回路は制御方法に合わせてサスペンド要求を受け付けるまでの時間の情報を選択することができる。
【０１０３】
さらにまた、自動消去中断コマンドによりメモリブロックの消去動作を完全に停止する際に、その処理を停止したポイントを記憶しておき、自動消去再開コマンドにより、記憶しておいたポイントから消去の処理を再開するようにしているため、メモリブロックを消去している場合でもいったん処理を停止して、不揮発性半導体メモリが有するコマンドを全て実行することができる。
【０１０４】
実施の形態２．
図１９および図２０を用いてこの発明の実施の形態２を説明する。図１９は、この発明の実施の形態２における不揮発性半導体メモリを内蔵したマイクロコンピュータ１の構成を示すブロック図である。この発明の実施の形態２における不揮発性半導体メモリを内蔵したマイクロコンピュータ１は、不揮発性半導体メモリ２と、インターフェース回路３と、ＣＰＵ／ＢＩＵ４と、割り込み制御回路５と、周辺装置６とを備えている。不揮発性半導体メモリ２は、実施の形態１で説明したものであるので、ここではその説明を省略する。
【０１０５】
不揮発性半導体メモリ２と、インターフェース回路３と、ＣＰＵ／ＢＩＵ４と、割り込み制御回路５と、周辺装置６とは、アドレスバス１６、データバス１７およびＲ／Ｗ制御信号１８とで接続されている。不揮発性半導体メモリ２は、アドレスバス１６、データバス１７およびＲ／Ｗ制御信号１８から入力される制御コマンド（図２参照）により動作する。
【０１０６】
ＣＰＵ／ＢＩＵ４は、中央演算処理装置およびバスインタフェース装置であり、フラッシュメモリ内蔵マイクロコンピュータ１の各構成要素を統括的に制御する。
【０１０７】
周辺装置６は、たとえば、ＣＰＵ／ＢＩＵ４が実行するプログラムを格納したＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、タイマー、シリアル通信回路、ポート制御ブロックなどで構成され、ＣＰＵ／ＢＩＵ４または不揮発性半導体メモリ２に対して割り込み要求が発生すると周辺装置割り込み信号１０を割り込み制御回路５に出力する。
【０１０８】
割り込み制御回路５は、外部からの割り込み要求である外部割込み信号１１または周辺装置６からの周辺装置割り込み信号１０により割り込み制御を行う。
【０１０９】
インターフェース回路３は、ＣＰＵホールド制御回路９と、サスペンド許可レジスタ８と、サスペンド要求レジスタ７と、制御部（図示せず）とを備えている。
【０１１０】
ＣＰＵホールド制御回路９は、不揮発性半導体メモリ２が自動消去コマンド実行中の場合、すべてのバスアクセスを停止させるためのＣＰＵホールド信号１５をＣＰＵ／ＢＩＵ４に出力する。また、サスペンド制御レジスタを設定する。
【０１１１】
図２０は、サスペンド要求レジスタ７およびサスペンド許可レジスタ８の設定モードを示している。サスペンド要求レジスタ７は“０”で自動消去／自動書き込み再開（サスペンド要求なし）を、“１”でサスペンド要求ありを表す。サスペンド許可レジスタ８は、“０”でサスペンドモード無効を、“１”でサスペンドモード有効を表す。サスペンド要求レジスタ７は、サスペンド許可レジスタ８が“１”かつサスペンド要求レジスタ７が“１”の場合、サスペンド要求信号１３を不揮発性半導体メモリ２とＣＰＵホールド制御回路９とに出力する。
【０１１２】
制御部は、アドレスバス１６およびデータバス１７の指定に基づいて、ＣＰＵホールド制御回路９、サスペンド許可レジスタ８およびサスペンド要求レジスタ７を設定する。
【０１１３】
つぎに、この実施の形態２の不揮発性半導体メモリを内蔵したマイクロコンピュータ１の動作を説明する。ＣＰＵ／ＢＩＵ４は、不揮発性半導体メモリ２のデータを消去するために、自動ブロック消去コマンドまたは自動一括消去コマンドを不揮発性半導体メモリ２に出力する。不揮発性半導体メモリ２は、入力されたコマンドに基づいて自動消去処理を開始する。これにより、データバスの所定のビットに自動消去時実行中の情報が出力される。
【０１１４】
インターフェース回路３の制御部は、データバスの所定のビットに自動消去実行中の情報を検出すると、ＣＰＵホールド制御回路９に不揮発性半導体メモリ２が自動消去実行中であることを通知する。この通知を受けるとＣＰＵホールド制御回路９は、ＣＰＵホールド信号１５をＣＰＵ／ＢＩＵ４に出力する。これにより、ＣＰＵ／ＢＩＵ４は、バスアクセスを停止する。
【０１１５】
ここで、外部からの割り込み要求である外部割込み信号１１または周辺装置６からの周辺装置割り込み信号１０が不揮発性半導体メモリ２に対する割り込み要求の場合、割り込み制御回路５は、不揮発性半導体メモリ２がサスペンド要求を受け付けるまでの時間を示す情報であるデクリメンタ値１９とステータス信号２０、不揮発性半導体メモリ２が消去を完了するまでの時間を示す情報であるデクリメンタ値２１およびＣＰＵホールド信号１５に基づいて割り込み要求を行うタイミングを調整して、割り込み要求信号１２をサスペンド要求レジスタ７およびＣＰＵ／ＢＩＵ４に出力する。具体的には、たとえば、デクリメンタ値１９またはステータス信号２０が示す時間が所定の値より大きい場合、不揮発性半導体メモリ２に対して割り込み要求を行っても直ぐに実行されないと判断して待機し、デクリメンタ値１９またはステータス信号２０が所定の値以下になると割り込み要求信号１２をＣＰＵ／ＢＩＵ４とサスペンド要求レジスタ７に出力する。
【０１１６】
割り込み要求信号１２により、サスペンド要求レジスタ７には、サスペンド要求ありが設定される。サスペンド許可レジスタ８がサスペンドモード有効である場合、サスペンド要求レジスタ７は、サスペンド要求信号１３を不揮発性半導体メモリ２とＣＰＵホールド制御回路９とに出力する。
【０１１７】
サスペンド要求信号１３を受け付けると、不揮発性半導体メモリ２は、メモリリードが可能となり、サスペンド受付信号１４をＣＰＵホールド制御回路９に出力する。ＣＰＵホールド制御回路９は、サスペンド受付信号１４を受けると、ＣＰＵ／ＢＩＵ４に出力しているＣＰＵホールド信号１５を停止する。これにより、ＣＰＵ／ＢＩＵ４はバスアクセスが可能となり、割り込み要求に応じた割り込み処理ルーチンを実行する。
【０１１８】
このようにこの実施の形態２では、不揮発性半導体メモリにサスペンド要求を行う際に、不揮発性半導体メモリから出力されるサスペンド要求受け付けまでの時間を参照してサスペンド要求のタイミングを調整するようにしているため、ホールド状態になっているＣＰＵ／ＢＩＵに対して、長時間割り込み要求を発生することを抑制することができる。
【０１１９】
なお、デクリメンタ値１９またはステータス信号２０が示す時間が所定の値より大きく不揮発性半導体メモリ２に対して割り込み要求を行っても直ぐに実行されないと判断した場合、または、サスペンド許可レジスタ８がサスペンドモード無効の場合、割り込み制御回路５は、自動消去中断コマンドを出力するようにしてもよい。これにより、周辺装置または外部からの割り込み要求に対して優先して割り込み処理を実行することができる。
【０１２０】
【発明の効果】
以上説明したように、この発明にかかる不揮発性半導体メモリによれば、不揮発性半導体メモリ内のメモリブロックを消去する際に、消去処理の区切りでサスペンド要求を受け付けるとともに、消去処理を開始してからサスペンド要求を受け付けることができる消去処理の区切りまでの時間を外部に出力するようにしているため、外部から割り込み処理を受け付けるまでの時間を知ることができる。
【図面の簡単な説明】
【図１】この発明の実施の形態１における不揮発性半導体メモリの構成を示すブロック図である。
【図２】この発明における不揮発性半導体メモリの動作モードの一覧を示す図である。
【図３】図１に示したマイクロシーケンサの構成を示すブロック図である。
【図４】図１に示したチャージポンプの構成を示すブロック図である。
【図５】図１に示したメモリデコーダの構成を示すブロック図である。
【図６】図１に示したメモリブロックのアドレス空間を示す図である。
【図７】図１に示したメモリブロックの構成を示すブロック図である。
【図８】図７に示したセレクタ回路とセンスアンプ／書き込み回路とメモリブロック抽出して示す図である。
【図９】図３に示した自動消去シーケンサの構成を示すブロック図である。
【図１０】図３に示したサスペンド制御回路の構成を示すブロック図である。
【図１１】図１０に示したサスペンド位置設定レジスタの構成を示す図である。
【図１２】この発明の実施の形態１における不揮発性半導体メモリの自動書き込みの動作を説明するためのフローチャートである。
【図１３】この発明の実施の形態１における不揮発性半導体メモリの自動ブロック消去の動作を説明するためのフローチャートである。
【図１４】この発明の実施の形態１における不揮発性半導体メモリの自動ブロック消去の動作のタイミングを説明するためのタイムチャートである。
【図１５】この発明の実施の形態１における不揮発性半導体メモリの自動一括消去の動作を説明するためのフローチャートである。
【図１６】この発明の実施の形態１における不揮発性半導体メモリの自動一括消去の動作のタイミングを説明するためのタイムチャートである。
【図１７】この発明の実施の形態１における不揮発性半導体メモリの自動消去中断の動作を説明するためのフローチャートである。
【図１８】この発明の実施の形態１における不揮発性半導体メモリの自動消去再開の動作を説明するためのフローチャートである。
【図１９】この発明の実施の形態２における不揮発性半導体メモリを内蔵したマイクロコンピュータの構成を示すブロック図である。
【図２０】図１９に示したサスペンド要求レジスタおよびサスペンド許可レジスタの構成を示すブロック図である。
【符号の説明】
１  不揮発性半導体メモリを内蔵したマイクロコンピュータ、２  不揮発性半導体メモリ、３  インターフェース回路、４  ＣＰＵ／ＢＩＵ、５  割り込み制御回路、６  周辺装置、７  サスペンド要求レジスタ、８  サスペンド許可レジスタ、９  ＣＰＵホールド制御回路、１０  周辺装置割り込み信号、１１  外部割込み信号、１２  割り込み要求信号、１３  サスペンド要求信号、１４  サスペンド受付信号、１５  ＣＰＵホールド信号、１６  アドレスバス、１７  データバス、１８  Ｒ／Ｗ制御信号、１９  サスペンドまでの時間を示すデクリメンタ値、２０  サスペンドまでの時間を示すステータス信号、２１  消去終了までの時間を示すデクリメンタ値、２０１  マイクロシーケンサ、２０２  チャージポンプ、２０３  メモリデコーダ、２０４，２０４−０，２０４−１，２０４−２，２０４−３  メモリブロック、２０４−１０，２０４−１１，２０４−１２，２０４−１３，２０４−１４  Ｘデコーダ、２０４−２０，２０４−２１，２０４−２２，２０４−２３，２０４−２４  Ｙデコーダ、２０４−３０，２０４−３１，２０４−３２，２０４−３３，２０４−３４  ＳＧデコーダ、２０４−４０，２０４−４１，２０４−４２，２０４−４３，２０４−４４  メモリセルアレイ、２０５  ラッチ回路、２０６  コマンドポート、２０７  ステータスレジスタ、２０８  自動消去シーケンサ、２０９  テストモード・シーケンサ、２１０  パワーリセット回路、２１１  クロック生成回路、２１２  デコーダ・チャージポンプ制御信号生成回路、２１３  負電圧チャージポンプ回路、２１４  正電圧チャージポンプ回路、２１５  読み出し電圧チャージポンプ回路、２１６電圧切り替え回路、２１７  ロウアドレスラッチ、２１８  コラムアドレス入力バッファラッチ、２１９  ロウアドレスプリデコーダ、２２０  コラムアドレスプリデコーダ、２２６  センスアンプ／書き込み回路、２２７  セレクタ回路、２３０  アドレスレジスタ、２３２  セレクトゲートアドレスラッチ、２３３セレクトゲートアドレスプリデコーダ、２３４  グローバルビット線、２５４自動消去シーケンス制御回路、２５５  サスペンド要求受付回路、２５６  消去前書き込み制御回路、２５７  消去／消去ベリファイ制御回路、２５８  消去前書き込み信号生成回路、２５９  アドレスインクリメンタ、２６０  消去ベリファイ回路、３０３  自動書き込みシーケンサ、３０４  タイマー回路、３０５サスペンド制御回路、３０６  サスペンド要求処理回路、３０７  サスペンド位置設定レジスタ、３５０  デクリメンタ、３５１  インクリメンタ、３５２  退避用レジスタ、３５３  自動消去シーケンス状態記憶回路。
【図１】
2004227635.tif 000003
【図２】
2004227635.tif 000004
【図３】
2004227635.tif 000005
【図４】
2004227635.tif 000006
【図５】
2004227635.tif 000007
【図６】
2004227635.tif 000008
【図７】
2004227635.tif 000009
【図８】
2004227635.tif 000010
【図９】
2004227635.tif 000011
【図１０】
2004227635.tif 000012
【図１１】
2004227635.tif 000013
【図１２】
2004227635.tif 000014
【図１３】
2004227635.tif 000015
【図１４】
2004227635.tif 000016
【図１５】
2004227635.tif 000017
【図１６】
2004227635.tif 000018
【図１７】
2004227635.tif 000019
【図１８】
2004227635.tif 000020
【図１９】
2004227635.tif 000021
【図２０】
2004227635.tif 000022