(57)【要約】【課題】多値データを記憶する不揮発性半導体記憶装置において、書き込みベリファイ動作を省略する書き込み電圧の印加回数の検証を容易にする。【解決手段】本発明の実施の形態に係る不揮発性半導体記憶装置は、複数の閾値レベルの何れかに対応付けられた多値データを電気的に書き換え可能な複数のメモリセルが、一括して書き込み及び読み出し動作が行われるページ単位に配置されたメモリセルアレイと、前記ページ単位を構成する複数の前記メモリセルに共通接続されたワード線に、所定の電圧幅でステップアップする書き込み電圧または各々の前記閾値レベルに対応する書き込みベリファイ電圧を選択的に印加するロウデコーダと、前記ワード線に書き込み電圧を印加した後、少なくとも１つの前記閾値レベルに対応する書き込みベリファイ電圧を印加し、規定ビット数以上の前記メモリセルが前記閾値レベルに達したか否かの判定処理を行う制御回路と、を具備する。【選択図】図８
2010033637.tif 000002
【特許請求の範囲】
【請求項１】
複数の閾値レベルのいずれかに対応付けられた多値データを電気的に書き換え可能な複数のメモリセルが、一括して書き込み及び読み出し動作が行われるページ単位に配置されたメモリセルアレイと、
前記ページ単位を構成する複数の前記メモリセルに共通接続されたワード線に、所定の電圧幅でステップアップする書き込み電圧または各々の前記閾値レベルに対応する書き込みベリファイ電圧を選択的に印加するロウデコーダと、
前記ワード線に書き込み電圧を印加した後、少なくとも１つの前記閾値レベルに対応する書き込みベリファイ電圧を印加し、規定ビット数以上の前記メモリセルが前記閾値レベルに達したか否かの判定処理を行う制御回路と、を具備し、
前記制御回路は、前記判定処理に伴い、前記規定ビット数以上の前記メモリセルが前記閾値レベルに達するまでに要した書き込み電圧の印加回数を計数可能であることを特徴とする不揮発性半導体記憶装置。
【請求項２】
前記制御回路は、前記規定ビット数以上の前記メモリセルが前記閾値レベルに達するまでに要した書き込み電圧の印加回数の計数結果に基づいて、前記ページ単位に対する書き込み動作において、前記規定ビット数以上の前記メモリセルが前記閾値レベルに達するまでは書き込みベリファイ電圧の印加を省略することを特徴とする請求項１に記載の不揮発性半導体記憶装置。
【請求項３】
少なくとも１つの前記閾値レベルについて、前記判定処理で参照される前記規定ビット数を設定可能な第１の記憶部と、
前記規定ビット数が設定される前記閾値レベルについて、前記規定ビット数以上の前記メモリセルが前記閾値レベルに達するまでに要した書き込み電圧の印加回数から１を引いた値を設定可能な第２の記憶部と、を更に具備し、
前記制御回路は、前記第２の記憶部に保持された値を書き込みベリファイ電圧の印加を省略するベリファイスキップ回数として参照することを特徴とする請求項２に記載の不揮発性半導体記憶装置。
【請求項４】
前記制御回路は、前記ページ単位の書き換え回数を計数して規定書き換え回数に達したページを検知すると、前記判定処理を再度実行し、前記ベリファイスキップ回数を変更することを特徴とする請求項３に記載の不揮発性半導体記憶装置。
【請求項５】
前記ページ単位の書き換え回数が前記規定書き換え回数に達した後に、前記規定ビット数以上の前記メモリセルが前記閾値レベルに達するまでに要した書き込み電圧の印加回数から１を引いた値を設定可能な第３の記憶部と、を更に具備し、
前記制御回路は、前記ページ単位の書き換え回数が前記規定書き換え回数に達した後に、前記第３の記憶部に保持された値を前記ベリファイスキップ回数として参照することを特徴とする請求項４に記載の不揮発性半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性半導体記憶装置に関する。
【背景技術】
【０００２】
ＮＡＮＤ型フラッシュメモリ等の不揮発性半導体記憶装置は、一つのメモリセルに記憶するデータの多値化（例えば、８値や１６値等）が進むに従い書き込み時間が増大する。書き込み時間が増大する要因は、書き込みデータの多値化に伴って細かい書き込み電圧レベルの設定が必要になること、書き込み電圧レベルの増加に伴って書き込みベリファイ動作の回数が増加することが挙げられる。
【０００３】
多値データを書き込む際に、閾値電圧が低いレベルのデータを書き込む場合は、書き込み電圧を印加する回数が少ないため、書き込みベリファイ動作の回数は少ない。しかし、閾値電圧が高いレベルのデータを書き込む場合は、書き込み電圧を印加する回数が多くなるため、書き込みベリファイ動作の回数も増加する。例えば、１６値のデータを記憶可能なＮＡＮＤ型フラッシュメモリに対して全ての閾値レベルを同時に書き込む場合、書き込みベリファイ動作の回数は膨大になり、データ書き込み動作期間の大部分を書き込みベリファイ動作が占めることになりかねない。
【０００４】
書き込みベリファイ動作の回数を低減する書き込み方法は、例えば、特許文献１に記載されたフラッシュメモリの書き込み・消去制御方法や、特許文献２に記載された半導体記憶装置に開示されている。特許文献１では、初回に書き込みベリファイ動作をパスした書き込み電圧の印加回数又は印加時間をフラッシュメモリ内に設定した記憶領域に記憶する。そして、次回以降の書き込み処理時は記憶領域に記憶した初回の情報を用いて書き込みベリファイ動作を実行して、書き込み動作に関わるテスト時間を短縮するようにしている。
【０００５】
また、特許文献２では、メモリセルが所望の閾値電圧に達したかどうかを検証する書き込みベリファイ動作において、メモリセルの一端の電圧を第１の検知レベルに基づき検出する第１の検出回路と、第１の検出回路による検出から所定時間経過後にメモリセルの一端の電圧を第２の検知レベルに基づき検出する第２の検出回路とを用いて、書き込みベリファイに要する時間の増大を抑えている。
【特許文献１】特開２００１−２７３７９２号公報
【特許文献２】特開２００６−１７２５２３号公報
【特許文献３】特開２００８−４１７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、多値データを記憶する不揮発性半導体記憶装置において、書き込みベリファイ動作を省略する書き込み電圧の印加回数の検証を容易にする不揮発性半導体記憶装置を提供する。
【課題を解決するための手段】
【０００７】
本発明の実施の形態に係る不揮発性半導体記憶装置は、複数の閾値レベルのいずれかに対応付けられた多値データを電気的に書き換え可能な複数のメモリセルが、一括して書き込み及び読み出し動作が行われるページ単位に配置されたメモリセルアレイと、前記ページ単位を構成する複数の前記メモリセルに共通接続されたワード線に、所定の電圧幅でステップアップする書き込み電圧または各々の前記閾値レベルに対応する書き込みベリファイ電圧を選択的に印加するロウデコーダと、前記ワード線に書き込み電圧を印加した後、少なくとも１つの前記閾値レベルに対応する書き込みベリファイ電圧を印加し、規定ビット数以上の前記メモリセルが前記閾値レベルに達したか否かの判定処理を行う制御回路と、を具備し、前記制御回路は、前記判定処理に伴い、前記規定ビット数以上の前記メモリセルが前記閾値レベルに達するまでに要した書き込み電圧の印加回数を計数可能であることを特徴とする。
【発明の効果】
【０００８】
本発明よれば、書き込みベリファイ動作を省略する書き込み電圧の印加回数の検証を容易にする不揮発性半導体記憶装置を提供することができる。
【発明を実施するための最良の形態】
【０００９】
例えば、８値や１６値のデータを記憶可能なＮＡＮＤ型フラッシュメモリでは、書き込み時間を短縮するために、ベリファイ動作を省略する機能（以下、ベリファイスキップ機能という）の提供が望まれる。このベリファイスキップ機能とは、高い閾値レベルのデータを書き込む場合、書き込み電圧を繰り返し印加する必要があるが、最初の何回かの書き込みパルスでは書き込みができていない前提で、書き込みベリファイ動作を省略するというものである。
【００１０】
また、ベリファイスキップ機能では、書き込みベリファイ動作を開始する際の書き込み電圧パルスの設定は書き込む閾値レベルによって可変可能であり、その書き込み電圧パルスの設定を例えばＲＯＭフューズ（ＲＯＭ＿ＦＵＳＥ）等に登録可能である。このため、ベリファイスキップ機能を適用することは、書き込み時間の短縮に有効である。
【００１１】
しかし、各閾値レベルのデータ書き込みに対して書き込みベリファイ動作を省略する回数を適切に設定することは困難であり、仮に、書き込みベリファイ動作を省略する回数が適正値よりも多い場合、オーバープログラム（過書き込み）が発生する可能性が高くなる。
【００１２】
以下、本願発明者が見出した上記知見に基づき、本発明の実施の形態を、図面を参照しつつ、説明する。実施の形態に係る不揮発性半導体記憶装置はここではＮＡＮＤ型フラッシュメモリを例に取って説明する。なお、実施の形態において、同一構成要素には同一符号を付け、実施の形態の間において重複する説明は省略する。
【００１３】
（第１の実施の形態）
図１は、本実施の形態に係るＮＡＮＤ型フラッシュメモリ１の概略構成を示す図である。図１に示すように、ＮＡＮＤ型フラッシュメモリ１は、Ｉ／Ｏコントロール回路１２、ロジックコントロール回路１３、ステータスレジスタ１４、アドレスレジスタ１５、コマンドレジスタ１６、制御回路１７、電圧発生回路１８、ロウデコーダ１９、ロウアドレスバッファ２０、メモリセルアレイ２１、センスアンプ回路２２、データレジスタ２３、カラムデコーダ２４、カラムバッファ２５、及びパラメータレジスタ２６を備える。
【００１４】
Ｉ／Ｏコントロール回路１２は、データ読み出し時又はデータ書き込み時に、外部入出力端子Ｉ／Ｏ１〜Ｉ／Ｏ１６とデータレジスタ２３との間でデータを授受する。また、Ｉ／Ｏコントロール回路１２は、データ読み出し時又はデータ書き込み時に、外部入出力端子Ｉ／Ｏ１〜Ｉ／Ｏ１６から入力されるアドレスデータをアドレスレジスタ１５に出力する。
【００１５】
また、Ｉ／Ｏコントロール回路１２は、外部入出力端子Ｉ／Ｏ１〜Ｉ／Ｏ１６から供給されるコマンドをコマンドレジスタ１６に出力する。また、Ｉ／Ｏコントロール回路１２は、ステータスレジスタ１４から入力されるステータスデータ（チップ内部の種々の状態を外部に知らせるためのデータ）を外部入出力端子Ｉ／Ｏ１〜Ｉ／Ｏ１６を介して外部のホスト装置（例えば、テスタ等）に出力する。
【００１６】
ロジックコントロール回路１３は、外部から入力されるチップイネーブル信号／ＣＥ、ライトイネーブル信号／ＷＥ、リードイネーブル信号／ＲＥ、アドレスラッチイネーブル信号ＡＬＥ、コマンドラッチイネーブル信号ＣＬＥ、ライトプロテクト信号／ＷＰ等の外部制御信号を制御回路１７に出力する。
【００１７】
ステータスレジスタ１４は、チップ内部の種々の状態を外部に知らせるためのものであって、チップがレディ／ビジー状態のいずれにあるかを示すデータを保持するレディ／ビジーレジスタ、書き込みのパス／フェイルを示すデータを保持する書き込みステータスレジスタを有する。
【００１８】
また、例えば、誤書き込み状態の有無（誤書き込みベリファイのパス／フェイル）を示すデータを保持する誤書き込みステータスレジスタ、過書き込み状態の有無（過書き込みベリファイのパス／フェイル）を示すデータを保持する過書き込みステータスレジスタ等を有していてもよい。
【００１９】
アドレスレジスタ１５は、Ｉ／Ｏコントロール回路１２から入力されるアドレスデータをデコードして、ロウアドレスをロウアドレスバッファ２０に出力し、カラムアドレスをカラムバッファ２５に出力する。
【００２０】
コマンドレジスタ１６は、Ｉ／Ｏコントロール回路１２から入力されるコマンドを制御回路１７に出力する。
【００２１】
制御回路１７は、動作モードに応じてロジックコントロール回路１３から入力される外部制御信号、及びコマンドレジスタ１６から入力されるコマンドに基づいて、データ書き込み、データ読み出し、及びデータ消去のシーケンス制御を行う。また、制御回路１７は、動作モードに応じて、電圧発生回路１８、ロウデコーダ１９、センスアンプ回路２２、データレジスタ２３、及びカラムデコーダ２４を制御する。
【００２２】
また、制御回路１７は、ＲＯＭ−ＦＵＳＥ２１ａに記憶されたベリファイスキップ動作に関するパラメータ（閾値レベル毎の規定ビット数）をパラメータレジスタ２６に読み出して参照することで、後述するメモリセルアレイ２１に対するデータ書き込み動作を検証するシーケンス制御を行う。
【００２３】
更に、制御回路１７は、上記データ書き込み動作を検証するシーケンス制御を実行することによってＲＯＭ−ＦＵＳＥ２１ａに格納されたパラメータ（閾値レベル毎のベリファイスキップ回数）を、パラメータレジスタ２６に読み出して参照することで、データ書き込み動作を行う。
【００２４】
電圧発生回路１８は、動作モードに応じて種々の高電圧Ｖｐｐ（書き込み電圧Ｖｐｇｍ、ベリファイ電圧Ｖｒ、書き込みパス電圧Ｖｐａｓｓ、読み出し電圧Ｖｒｅａｄ等）を発生する回路である。この電圧発生回路１８は、制御回路１７により制御される。発生した高電圧Ｖｐｐは、ロウデコーダ１９等に転送される。
【００２５】
ロウデコーダ１９は、ロウアドレスバッファ２０に記憶されたロウアドレス（ページアドレス）に基づいて、メモリセル２１のワード線選択とワード線の駆動を行うワード線駆動回路を含む。
【００２６】
ロウアドレスバッファ２０は、アドレスレジスタ１５から入力されるロウアドレスを記憶する。
【００２７】
メモリセルアレイ２１は、複数のＮＡＮＤセルユニット（図示せず）を配列して構成される。各ＮＡＮＤセルユニットは、複数の電気的に書き換え可能な不揮発性メモリセルと、その両端をそれぞれビット線とソース線に接続するための選択ゲートトランジスタを有する。メモリセルの制御ゲートは、各々のＮＡＮＤセルユニットにおいて、それぞれ異なるワード線に接続される。選択ゲートトランジスタのゲートは、ワード線と並行する選択ゲート線に接続される。
【００２８】
ワード線を共有するメモリセルの集合は、データ書き込み／読み出しの単位となるページを構成する。選択ゲート線に挟まれた複数のワード線に接続されるメモリセルの集合は、データ消去の単位となるメモリブロックを構成する。本実施の形態のメモリセルは、複数の閾値レベルに応じた多値データ（例えば、８値、１６値等）が電気的に書き換え可能な不揮発性メモリセルである。
【００２９】
また、メモリセルアレイ２１内には、複数のメモリセルの一部を利用してＲＯＭ−ＦＵＳＥ２１ａが割り当てられている。ＲＯＭ−ＦＵＳＥ（設定部）２１ａは、ＮＡＮＤ型フラッシュメモリ１の各種動作シーケンスを制御する際に用いられるパラメータ等が記憶される領域である。
【００３０】
本実施の形態では、上記データ書き込み動作を検証するシーケンス制御において用いるパラメータ（閾値レベル毎の規定ビット数）をＲＯＭ−ＦＵＳＥ２１ａに記憶するものとする。また、上記データ書き込み動作を検証するシーケンス制御を実行することによって得られたパラメータ（閾値レベル毎のベリファイスキップ回数）を、ＲＯＭ−ＦＵＳＥ２１ａに記憶するものとする。なお、パラメータ情報は、ＲＯＭ−ＦＵＳＥ２１ａに限らず、電気フューズ、レーザーフューズ等の手段を用いて記憶されていてもよい。
【００３１】
センスアンプ回路２２は、データ読み出し時、ロウデコーダ１９及びカラムデコーダ２４により選択された不揮発性メモリセルに記憶されたデータを読み出してデータレジスタ２３に出力する。
【００３２】
データレジスタ２３は、Ｉ／Ｏコントロール回路１２との間を、８ビット又は１６ビットのバス幅で利用可能なＩ／Ｏバスにより接続されている。データレジスタ２３は、データ読み出し時、センスアンプ回路２２により読み出されたデータを、Ｉ／Ｏコントロール回路１２を介して入出力端子Ｉ／Ｏ１〜Ｉ／Ｏ１６に出力する。また、データレジスタ２３は、データ書き込み時、外部のホスト装置から入出力端子Ｉ／Ｏ１〜Ｉ／Ｏ１６及びＩ／Ｏコントロール回路１２を介してロードされる書き込みデータを、センスアンプ回路２２に出力する。
【００３３】
カラムデコーダ２４は、カラムバッファ２５に記憶されたカラムアドレスに基づいて、メモリセルアレイ２１内のビット線を選択する。
【００３４】
カラムバッファ２５は、アドレスレジスタ１５から入力されるカラムアドレスを記憶する。
【００３５】
パラメータレジスタ２６は、各種動作シーケンスを実行する際にＲＯＭ−ＦＵＳＥ２１ａに記憶されたパラメータを一時的に記憶するレジスタである。パラメータレジスタ２６は、後述する閾値レベル毎の規定ビット数を格納するクライテリア保存用レジスタ（第１の記憶部）Ｒ１（ｎ）、閾値レベル毎のベリファイスキップ回数を格納するベリファイスキップ回数保存用レジスタ（第２の記憶部）Ｒ２（ｎ）を含む。例えば、ＮＡＮＤ型フラッシュメモリ１の電源投入時に、ＲＯＭ−ＦＵＳＥ２１ａに記憶されたパラメータがパラメータレジスタ２６に格納される。
【００３６】
次に、メモリセルアレイ２１内のメモリセルに書き込まれる多値データの閾値分布の例を図２と図３に示す。図２は８値の閾値分布を示す図である。図３は１６値の閾値分布を示す図である。図２に示す８値の場合、その閾値レベルはＬｅｖｅｌ０〜Ｌｅｖｅｌ７まで８分割される。なお、閾値レベルＬｅｖｅｌ０は消去状態に対応する。また、図２において、各閾値レベルＬｅｖｅｌ０〜Ｌｅｖｅｌ７に対応する書き込みベリファイ電圧Ｖ０〜Ｖ７を示す。
【００３７】
図３に示す１６値の場合、その閾値レベルはＬｅｖｅｌ０〜ＬｅｖｅｌＦ（Ｆは１６進数）まで１６分割される。なお、閾値レベルＬｅｖｅｌ０は消去状態に対応する。また、図３において、各閾値レベルＬｅｖｅｌ０〜ＬｅｖｅｌＦに対応する書き込みベリファイ電圧Ｖ０〜ＶＦを示す。
【００３８】
ＮＡＮＤ型フラッシュメモリ１では、ホスト装置からのデータ書き込み要求に応じて、書き込みデータの値に応じた閾値レベルが割り当てられる。このような多値記憶方式では、各閾値レベルの分布を狭くし、各閾値レベルを明確に分離することが重要になる。
【００３９】
図２及び図３に示した８値や１６値の多値記憶方式では、それぞれの閾値レベルをより狭い範囲に分布させる必要がある。このため、データ書き込みを制御する際は、書き込み電圧を徐々にステップアップしながら各メモリセルに印加する方法を採る。この時、ある書き込み電圧を印加した後、次の書き込み電圧を印加するまでの間に、各々の閾値レベルに応じた書き込みベリファイ電圧を各メモリセルに印加して所望の閾値レベルに達したか否かをチェックする書き込みベリファイ動作も行われる。そして、各メモリセルが所望の閾値レベルに達するまで書き込み電圧をステップアップしながら書き込みベリファイ電圧をメモリセルに印加する動作が繰り返し行われる。
【００４０】
上述したように多値データの書き込み動作において、閾値レベルが低いデータを書き込む場合は、書き込み電圧を印加する回数が少なく書き込みベリファイ動作の回数は少ない。しかし、閾値レベルが高いデータを書き込む場合は、書き込み電圧を印加する回数が多く、書き込みベリファイ動作の回数も増加する。８値や１６値のデータを記憶可能なＮＡＮＤ型フラッシュメモリでは、高い閾値レベルのデータを書き込む場合、書き込み電圧を繰り返し印加する必要があるため、本実施の形態に係るＮＡＮＤ型フラッシュメモリ１は、最初の何回かの書き込みパルスでは書き込みができていない前提で書き込みベリファイを省略するベリファイスキップ機能を実装して、書き込みベリファイ動作の回数を低減する。
【００４１】
このベリファイスキップ動作の具体例を図４及び図５に示す。図４は、１６値データに対応する各閾値レベルＬｅｖｅｌ１〜ＬｅｖｅｌＦの書き込みを行う際のベリファイスキップ動作を模式的に示す図である。なお、書き込み前のメモリセルは全て閾値レベルＬｅｖｅｌ０に設定されている。図４において「Ｐ」は書き込み動作を示す。図４中の左端部から右端部に遷移するに従って、多値データとして１６値データの各ビットに対する書き込み動作が行われる場合を示している。また、図４中の上部から下部に遷移するに従って、各ビットデータの書き込み動作の際に、各閾値レベルＬｅｖｅｌ１〜ＬｅｖｅｌＦの書き込みベリファイ動作が行われる場合を示している。図５は、図４の動作例に対応する書き込み電圧パルスと書き込みベリファイ電圧パルスの一例を示す図である。
【００４２】
図４及び図５では、１６値データに対応する各閾値レベルＬｅｖｅｌ１〜ＬｅｖｅｌＦの書き込み動作において、閾値レベル毎に書き込みベリファイ動作を省略した場合の一例を示している。この場合、閾値レベル毎に書き込みベリファイ動作を省略する回数がＲＯＭ−ＦＵＳＥ２１ａに登録されており、これをパラメータレジスタ２６に読み出した値を参照することで、多値データの書き込み動作に要する時間を短縮することが可能になる。
【００４３】
例えば、１回目の書き込み動作「Ｐ」を行った後は、レベルＬｅｖｅｌ１の書き込みベリファイ動作のみを行い、レベルＬｅｖｅｌ２〜ＬｅｖｅｌＦまでの書き込みベリファイ動作は省略する。２回目の書き込み動作「Ｐ」を行った後は、レベルＬｅｖｅｌ１〜Ｌｅｖｅｌ２の書き込みベリファイ動作を行い、レベルＬｅｖｅｌ３〜ＬｅｖｅｌＦまでの書き込みベリファイ動作は省略する。以下同様に、書き込みパルスを印加する毎に、書き込みベリファイ動作の対象とする閾値レベルを１つずつ増加させる。即ち、図４の場合、レベルＬｅｖｅｌ１の書き込みベリファイ動作省略回数は０回、レベルＬｅｖｅｌ２の書き込みベリファイ動作省略回数は１回、レベルＬｅｖｅｌ３の書き込みベリファイ動作省略回数は２回であり、以下同様である。
【００４４】
しかし、上述したように、閾値レベル毎にベリファイ動作を省略する回数を適正値に決定することは困難であった。すなわち、メモリセルアレイ２１内の各メモリセルの特性は均一ではなく、所望の閾値レベルに達するまでに必要な書き込みパルスの印加回数にバラツキがある。このため、予め設定したベリファイスキップ回数が、あるメモリセルに対して適正値であったとしても、他のメモリセルに対してはオーバープログラム（過書き込み）不良となる可能性がある。このオーバープログラムが発生すると、例えば、図６に波線で示すように８値データの各閾値レベルＬｅｖｅｌ０〜Ｌｅｖｅｌ７の分布が広がり、各閾値レベルを明確に分離することが難しくなる。
【００４５】
そこで、本実施の形態のＮＡＮＤ型フラッシュメモリ１では、後述する書き込み動作検証処理に際して、次のような動作を実行する。ＮＡＮＤ型フラッシュメモリ１は、閾値レベル毎にベリファイスキップ回数を決定する際の基準となる規定ビット数を予めＲＯＭ−ＦＵＳＥ２１ａに設定し、書き込み動作時に閾値レベル毎に規定ビット数以上のメモリセルが書き込みベリファイ電圧に達したか否かを判定し、規定ビット数に達するまでにメモリセルに印加した書き込み電圧の印加回数を計数しこれを出力する。この検証動作により、メモリセルアレイ２１に対して閾値レベル毎にベリファイスキップ回数の適正値を決定することを可能にする。
【００４６】
次に、上記書き込み検証動作の詳細について説明する前に、メモリセルアレイ２１に対する書き込み動作と書き込みベリファイ動作の概要について、図７を参照して説明する。図７は、メモリセルアレイ２１に対する書き込み動作と書き込みベリファイ動作の概要を模式的に示す図である。図７では、外部のホスト装置から入力される書き込みデータＤをメモリセルアレイ２１内のあるＮＡＮＤページＰｘ（ページ単位）に書き込む場合を示している。
【００４７】
図７に示すベリファイ用ラッチ回路３１は、図１のセンスアンプ回路２２に含まれる回路である。このベリファイ用ラッチ回路３１は、書き込みデータをメモリセルアレイ２１内のあるＮＡＮＤページＰｘに書き込む際に、メモリセル毎に閾値レベルをベリファイした結果をセットするための回路である。
【００４８】
図７において、まず、外部のホスト装置から書き込み要求コマンド（書き込み先アドレスを含む）と書き込みデータＤがＮＡＮＤ型フラッシュメモリ１に入力される。ＮＡＮＤ型フラッシュメモリ１では、書き込み要求コマンドに応じて書き込みデータＤをメモリセルアレイ２１内の書き込み先であるＮＡＮＤページＰｘに書き込む動作が実行される。この時、書き込みデータＤは、ＮＡＮＤページＰｘ内の全メモリセル（全ビット）に対して同時に書き込まれるものとする。
【００４９】
ＮＡＮＤ型フラッシュメモリ１は、書き込みデータＤを書き込む際に、書き込み電圧Ｖｐｇｍを所定の電圧幅でステップアップしながらＮＡＮＤページＰｘ内の全メモリセルに印加する。この時、ＮＡＮＤ型フラッシュメモリ１は、書き込み電圧Ｖｐｇｍを印加する毎に、書き込みデータＤの閾値レベルに応じた書き込みベリファイ電圧Ｖｒを各メモリセルに印加して、各メモリセルが所望の閾値レベルに達した否か（パス／フェイル）をチェックする書き込みベリファイ動作を実行する。
【００５０】
そして、ＮＡＮＤ型フラッシュメモリ１は、上記書き込みベリファイ動作によりパスと判定（閾値レベルに達した）したメモリセルは、ベリファイ用ラッチ回路３１内の対応するビットを「１」にセットする。また、ＮＡＮＤ型フラッシュメモリ１は、上記書き込みベリファイ動作によりフェイルと判定（閾値レベルに達していない）したメモリセルは、ベリファイ用ラッチ回路３１内の対応するビットを「０」にセットする。
【００５１】
上記書き込み動作と書き込みベリファイ動作により、ＮＡＮＤページＰｘ内では、図中の左端と左端から５番目に位置する各メモリセルがデータ「１」から「０」に書き換えられた状態を示している。ＮＡＮＤページＰｘ内の他のメモリセルは、ベリファイの結果がフェイルであるため、データ「１」のままである。
【００５２】
以上の動作概要は、データＤの書き込み対象としたＮＡＮＤページＰｘ内においてメモリセル毎に書き込み速度にバラツキがあることを示している。すなわち、ＮＡＮＤページＰｘ内の複数のメモリセルのうち、最初にデータ「０」に書き換えられるメモリセルは最も書き込みが早いメモリセルであり、最後にデータ「０」に書き換えられるメモリセルは最も書き込みが遅いメモリセルとなる。これは、所望の閾値レベルに達するまでに必要な書き込み電圧Ｖｐｇｍの印加回数がメモリセル毎に異なることを示している。
【００５３】
なお、このようなＮＡＮＤページＰｘ内のメモリセル毎の書き込み速度のバラツキを検証する技術として、例えば、特開２００８−４１７８号に開示されたものがある。本実施の形態において、主制御回路１７は、ＮＡＮＤページＰｘ内で書き込みベリファイ動作の結果パスと判定されたビット数（または、フェイルと判定されたビット数）を検知可能な構成とされている。
【００５４】
また、図７では、書き込みデータＤが全て「０」である場合を示したが、後述する書き込み動作検証処理において、外部のホスト装置から入力される書き込みデータは「０」と「１」の出現はランダムであるとする。ＮＡＮＤ型フラッシュメモリ１にランダムデータを入力する場合、メモリセルに書き込まれるデータは、全閾値レベルＬｅｖｅｌ０〜ＬｅｖｅｌＦが均等に分散した状態となることが予想される。
【００５５】
本実施の形態では、書き込み動作検証処理における書き込みデータがランダムデータであることを前提として、ベリファイスキップ回数を決定するためのクライテリア値が設定されるものとする。更に、例えば、閾値レベル毎に書き込み速度にバラツキがある場合は、このバラツキを考慮してクライテリア値が設定されるものとする。
【００５６】
また、ＮＡＮＤ型フラッシュメモリ１では、メモリセルアレイ２１内に含まれる全ＮＡＮＤＰｘページに対する書き換え回数が平均化するように書き込み動作が行われるものとする。これは、ＮＡＮＤ型フラッシュメモリを有するメモリシステムでは一般に、ウェアレベリング処理等によって、各ブロックの書き換え回数が平均化されているからである。従って、以下に示す書き込み動作検証動作では、メモリセルアレイ２１内の全ＮＡＮＤページＰｘに対して、共通のベリファイスキップ回数を設定する場合について説明する。
【００５７】
次に、ＮＡＮＤ型フラッシュメモリ１において実行される書き込み動作検証処理について図８に示すフローチャートを参照して説明する。以下に示す書き込み動作検証処理は、例えば、製品出荷前のテスト工程の一環として行われるシーケンスであり、本シーケンスの適用により、各々のデバイスについて適切なベリファイスキップ回数を設定することが可能となる。なお、以下に示す書き込み動作検証処理は、製品出荷後に、ＮＡＮＤ型フラッシュメモリ１が自動的に行う事としてもよい。
【００５８】
図８に示す書き込み動作検証処理では、書き込みデータの閾値レベルｎ毎に、ベリファイスキップ回数を決定する際に基準となるクライテリア値（規定ビット数）Ｂを設定するクライテリア保存用レジスタＲ１（ｎ）が用いられる。また、図８に示す書き込動作検証処理では、書き込みデータの閾値レベルｎ毎に、規定ビット数Ｂ分のベリファイがパスするまでに必要な書き込みパルスの印加回数から１を引いた数を保存するベリファイスキップ回数保存用レジスタＲ２（ｎ）が用いられる。クライテリア保存用レジスタＲ１（ｎ）が保持する値は、ＲＯＭ−ＦＵＳＥ２１ａ内に格納されている。
【００５９】
図９（Ａ）に示すクライテリア保存用レジスタＲ１（ｎ）では、例えば、規定ビット数Ｂ＝６として、Ｂｉｔ「１」とＢｉｔ「２」の各々に「１」を設定した場合を示す。この場合、閾値レベルｎの書き込みに際して、６ビット以上の書き込みが終了したか否か（６ビット以上書き込みベリファイ動作をパスしたか否か）を、後述する書き込み動作検証処理において判定する。なお、本実施の形態ではクライテリア保存用レジスタＲ１（ｎ）が８ビットで構成される場合を示したが、実際に保持すべき値の範囲に応じて適宜設定すればよい。
【００６０】
また、図９（Ｂ）に示すベリファイスキップ回数保存用レジスタＲ２（ｎ）では、初期値が０に設定され、以下の書き込動作検証処理において、各閾値レベルｎ（ｎ：１〜１５）の書き込みデータに対して規定ビット数Ｂ以上のメモリセルがパスするまでに必要とした書き込みパルスの印加回数から１を引いた数（書き込みベリファイ動作を省略する回数：ベリファイスキップ回数）が保存される。なお、本実施の形態ではベリファイスキップ回数保存用レジスタＲ２（ｎ）が８ビットで構成される場合を示したが、実際に保持すべき値の範囲に応じて適宜設定すればよい。
【００６１】
図８において、ＮＡＮＤ型フラッシュメモリ１内の制御回路１７は、閾値レベルＬｅｖｅｌｎ（但し、ｎ：１〜１５）を「１」に設定する(ステップＳ１０１)。
【００６２】
次いで、制御回路１７は、上記ＲＯＭ−ＦＵＳＥ２１ａから閾値レベルＬｅｖｅｌｎに対応する規定ビット数Ｂを読み出し、クライテリア保存用レジスタＲ１（ｎ）に設定する(ステップＳ１０２)。
【００６３】
次いで、制御回路１７は、閾値レベルＬｅｖｅｌｎのベリファイスキップ回数を保存するための、ベリファイスキップ回数保存用レジスタＲ２（ｎ）の保持する値を“０”にリセットする(ステップＳ１０３)。
【００６４】
次いで、制御回路１７は、ｎが「１５」より小さいか否かを確認する(ステップＳ１０４)。即ち、全閾値レベルについて、クライテリア保存用レジスタＲ１（ｎ）の設定が終了したか否かを判定する。
【００６５】
ｎが「１５」より小さい場合(ステップＳ１０４：ＹＥＳ)、制御回路１７は、クライテリア保存用レジスタＲ１（ｎ）とベリファイスキップ回数保存用レジスタＲ２（ｎ）との各ｎを「ｎ＝ｎ＋１」して(ステップＳ１０５)、ステップＳ１０２に戻る。
【００６６】
制御回路１７は、上記ステップＳ１０２〜ステップＳ１０５の処理を繰り返し実行することにより、閾値レベルＬｅｖｅｌ１〜ＬｅｖｅｌＦに各々対応する規定ビット数Ｂの設定用のレジスタＲ１（１）〜Ｒ１（１５）と、ベリファイスキップ回数の設定用のレジスタＲ２（１）〜Ｒ２（１５）との値を設定する。
【００６７】
次いで、制御回路１７は、書き込みパルスの印加回数ＮをＮ＝０に設定する(ステップＳ１０６)。書き込みパルスの印加回数ＮをＮ＝０に設定後、ホスト装置（例えば、外部テスタ）は書き込みデータＤをＮＡＮＤ型フラッシュメモリ１に入力する。なお、書き込みデータはＮＡＮＤ型フラッシュメモリ内部に設けられたテスト回路が生成してもよい。
【００６８】
次いで、制御回路１７はロウデコーダ１９を制御し、書き込み電圧Ｖｐｇｍをワード線を介してＮＡＮＤページＰｘ内の各メモリセルに印加し(ステップＳ１０７)、書き込み電圧Ｖｐｇｍの印加回数Ｎをアップカウント（Ｎ＝Ｎ＋１）する(ステップＳ１０８)。
【００６９】
次いで、制御回路１７は、閾値レベルＬｅｖｅｌ１〜ＬｅｖｅｌＦに各々対応する書き込みベリファイ電圧Ｖｒを順にＮＡＮＤページＰｘ内の各メモリセルに印加して、閾値レベルＬｅｖｅｌ１〜ＬｅｖｅｌＦの書き込みベリファイ動作を行う(ステップＳ１０９)。書き込み動作検証処理では、通常のデータ書き込み動作とは異なり、書き込みベリファイ動作の省略は行わず、書き込み電圧Ｖｐｇｍの印加後、各々の閾値レベルｎの書き込みベリファイ動作を閾値電圧の低い順に行う。
【００７０】
次いで、制御回路１７は、ｎ＝１に設定し(ステップＳ１１０)、ｎが「１６」より小さいか否かを確認する(ステップＳ１１１)。
【００７１】
ｎが「１６」より小さい場合(ステップＳ１１１：ＹＥＳ)、制御回路１７は、閾値レベルＬｅｖｅｌｎの規定ビット数Ｂ＝６とベリファイパスしたビット数とを比較して、ベリファイパスしたビット数が規定ビット数Ｂ以上であるか否かを判定する(ステップＳ１１２)。
【００７２】
ベリファイパスしたビット数が規定ビット数Ｂ以上である場合(ステップＳ１１２：ＹＥＳ)、ベリファイスキップ回数保存用レジスタＲ２（ｎ）の保持する値がＲ２（ｎ）＝０か否かを確認する(ステップＳ１１３)。
【００７３】
ベリファイスキップ回数保存用レジスタＲ２（ｎ）の保持する値がＲ２（ｎ）＝０である場合(ステップＳ１１３：Ｙｅｓ)、すなわち、ベリファイスキップ回数保存用レジスタＲ２（ｎ）に検証処理の結果が設定されていない場合、制御回路１７は、規定ビット数Ｂ以上のビットがベリファイパスした時の書き込みパルスの印加回数“Ｎ”から“１”を引いた値、すなわち、“Ｎ−１（ベリファイスキップ回数）”をベリファイスキップ回数保存用レジスタＲ２（ｎ）に格納する(ステップＳ１１４)。
【００７４】
この場合、ベリファイスキップ回数を、書き込みパルスの印加回数Ｎから１を引いた値である“Ｎ−１”としたのは、印加回数Ｎ以下で書き込みが終了したメモリセルが、Ｎ＋１回目の書き込みパルスの印加によりオーバープログラムとなる可能性を排除するためである。この時、閾値レベルＬｅｖｅｌ１に対応するベリファイスキップ回数保存用レジスタＲ２（１）には、規定ビット数Ｂ＝６に達するまでに印加された書き込みパルスの印加回数Ｎから“１”を引いた値、“Ｎ−１”が格納される。このベリファイスキップ回数保存用レジスタＲ２（１）には、以降、ベリファイスキップ回数は格納されない。
【００７５】
また、ステップＳ１１２においてベリファイパスしたビット数が規定ビット数Ｂ以上でない場合(ステップＳ１１２：ＮＯ)、又は、ベリファイスキップ回数保存用レジスタＲ２（ｎ）の保持する値がＲ２（ｎ）＝０でない場合(ステップＳ１１３：Ｎｏ)、制御回路１７は、ｎをアップカウント（ｎ＝ｎ＋１）し(ステップＳ１１５)、所定の電圧幅だけステップアップした書き込み電圧Ｖｐｇｍを、ＮＡＮＤページＰｘ内の各メモリセルに印加して、ステップＳ１１１に戻る。
【００７６】
ステップＳ１１１において、ｎは“２”であり「１６」より小さいため、制御回路１７は、閾値レベルＬｅｖｅｌ２に対応する上記ステップＳ１１２〜ステップＳ１１４の処理を繰り返し実行する。その結果、閾値レベルＬｅｖｅｌ２に対応するベリファイスキップ回数保存用レジスタＲ２（１）には、規定ビット数Ｂ＝６に達するまでに必要とした書き込みパルスの印加回数Ｎから“１”を引いた値、“Ｎ−１”が格納される。
【００７７】
このベリファイスキップ回数保存用レジスタＲ２（２）には、以降、ベリファイスキップ回数は格納されない。以降、制御回路１７は、ｎが「１６」になるまで、上記ステップＳ１１１〜ステップＳ１１５の処理を繰り返し実行する。その結果、閾値レベルＬｅｖｅｌ３〜ＬｅｖｅｌＦに各々対応するベリファイスキップ回数保存用レジスタＲ２（３）〜Ｒ２（１５）には、規定ビット数Ｂ＝６に達するまでに印加された書き込みパルスの印加回数Ｎから“１”を引いた値、“Ｎ−１”が各々格納される。
【００７８】
ステップＳ１１１において、ｎが「１６」になると、制御回路１７は、閾値レベルＬｅｖｅｌ１〜ＬｅｖｅｌＦに対して、ＮＡＮＤページＰｘ内の全ビットのベリファイ動作がパスしたか否かをチェックする(ステップＳ１１６)。
【００７９】
閾値レベルＬｅｖｅｌ１〜ＬｅｖｅｌＦに対するベリファイ動作がパスしていない場合(ステップＳ１１６：ＮＯ)、制御回路１７は、ステップＳ１０７に戻り、上記ステップＳ１０７〜ステップＳ１１５の処理を繰り返し実行する。
【００８０】
また、閾値レベルＬｅｖｅｌ１〜ＬｅｖｅｌＦに対するベリファイ動作がパスしている場合(ステップＳ１１６：ＹＥＳ)、制御回路１７は、書き込動作検証処理を終了する。
【００８１】
上記書き込み動作検証処理を終了した後、制御回路１７は、閾値レベルＬｅｖｅｌ１〜ＬｅｖｅｌＦ毎に、ベリファイスキップ回数保存用レジスタＲ２（１）〜Ｒ２（１５）に保存したベリファイスキップ回数“Ｎ−１”をＲＯＭ−ＦＵＳＥ２１ａに格納する。これによりベリファイスキップ回数が不揮発に記憶される。従って、ＮＡＮＤ型フラッシュメモリ１の出荷後、主制御回路１７がベリファイスキップ回数を参照して書き込み動作を行うことが可能となる。
【００８２】
具体的には、ＮＡＮＤ型フラッシュメモリ１の主制御回路１７は、電源投入時にＲＯＭ−ＦＵＳＥ２１ａに格納されたベリファイスキップ回数“Ｎ−１”をベリファイスキップ回数保存用レジスタＲ２（ｎ）に読み出す。主制御回路１７は、ホスト装置から書き込みコマンドの入力を受けた場合、このベリファイスキップ回数を参照して、データ書き込み動作を行う。
【００８３】
以上のように、第１の実施の形態に係るＮＡＮＤ型フラッシュメモリ１では、多値データの閾値レベルｎ毎に規定ビット数Ｂを予め設定する。主制御回路１７は、書き込み動作検証処理において多値データの閾値レベルｎに対して書き込みベリファイ動作を実行し、規定ビット数Ｂ以上のビットの書き込みベリファイ動作がパスするまでの書き込みパルスの印加回数Ｎを計数する。そして、書き込みパルスの印加回数Ｎから１を引いた値（ベリファイスキップ回数）を保存するようにした。
【００８４】
したがって、多値データの書き込み動作におけるベリファイスキップ回数を検証することが容易になる。その結果、出荷前のＮＡＮＤ型フラッシュメモリ１に対して適切なベリファイスキップ回数を設定することが可能になり、ＮＡＮＤ型フラッシュメモリ１の性能向上を図ることができる。即ち、オーバープログラムが発生しない範囲での適切なベリファイスキップ回数を設定することで、書き込み速度を向上させることが可能となる。
【００８５】
また、第１の実施の形態に係るＮＡＮＤ型フラッシュメモリ１では、ＮＡＮＤページＰｘ内で閾値レベルｎに書き込むビットの内、最初に書き込みベリファイ動作をパスした（最も早く書き込みされた）メモリセルを検出し、各ＮＡＮＤページＰｘに印加した書き込みパルスの印加回数Ｎｍｉｎを閾値レベル毎に出力するようにしてもよい。
【００８６】
また、ＮＡＮＤページＰｘ内で閾値レベルｎに書き込むビットの内、最後に書き込みベリファイ動作をパスした（最も遅く書き込みされた）メモリセルを検出し、各ＮＡＮＤページＰｘに印加した書き込みパルスの印加回数Ｎｍａｘを閾値レベル毎に出力するようにしてもよい。
【００８７】
また、ＮＡＮＤページＰｘ内で閾値レベルｎに書き込むビットの内、最初に書き込みベリファイ動作をパスしたメモリセル及び最後に書き込みベリファイ動作をパスしたメモリセルの両方を検出し、各ＮＡＮＤページＰｘに印加した書き込みパルスの印加回数Ｎｍｉｎ，Ｎｍａｘを閾値レベル毎に出力するようにしてもよい。
【００８８】
外部のホスト装置では、ＮＡＮＤ型フラッシュメモリ１から受け付けた各書き込みパルスの印加回数Ｎｍｉｎ，Ｎｍａｘに応じて、出荷前のＮＡＮＤ型フラッシュメモリ１に対して閾値レベル毎のベリファイスキップ回数を設定するようにしてもよい。
【００８９】
また、第１の実施の形態では、書き込み動作検証処理においてＮＡＮＤ型フラッシュメモリ１にランダムデータを入力する事としたが、必ずしもこれに限定されない。例えば、同一のワード線に接続された全メモリセルに同一の閾値レベルのデータを書き込み、ベリファイスキップ回数を決定してもよい。この場合、同一のワード線に接続される全メモリセルを全て同一の閾値レベルに書き込む事を前提として、適切なクライテリア値を定めればよい。
【００９０】
また、上記書き込み動作検証処理は、単一のＮＡＮＤページＰｘに対してのみ実行してもよいし、ブロック内の複数のＮＡＮＤページＰｘに対して実行し、得られた結果の統計値を用いることとしてもよい。また、複数のブロックに対して同様の書き込み動作検証処理を実行してもよい。
【００９１】
また、クライテリア値及びベリファイスキップ回数を一時的に格納する記憶部は、必ずしもレジスタに限定されず、ＮＡＮＤ型フラッシュメモリ１の動作時に、制御回路１７が参照することが可能であればよい。
【００９２】
また、出荷前のテスト工程においてのみ上記書き込み動作検証処理を行い、出荷後の動作において規定ビット数を保持する必要がない場合は、規定ビット数をＲＯＭ−ＦＵＳＥ２１ａに格納しなくともよい。即ち、書き込み動作検証処理において規定ビット数を参照し、規定ビット数分のビットの書き込みベリファイ動作がパスするまでの書き込みパルスの印加回数Ｎを計数可能であればよい。
【００９３】
また、本実施の形態では、消去状態である閾値レベルＬｅｖｅｌ０以外の、閾値レベルＬｅｖｅｌ１〜ＬｅｖｅｌＦの書き込み動作及び書き込みベリファイ動作について説明したが、消去動作中のソフトプログラムにおいても、同様に適切なベリファイスキップ回数を設定することが可能である。
【００９４】
消去動作直後のメモリセルの閾値分布は、各々のメモリセルの特性バラツキにより、深く（閾値が相対的に低電圧側）消去されたメモリセルと、浅く（閾値が相対的に高電圧側）消去されたメモリセルとが混在した状態であり、その閾値分布は広い。消去状態としてこのような広い閾値分布を有するメモリセルに対して書き込み動作を行うと、書き込み後の閾値分布も広がる傾向がある。
【００９５】
従って、ＮＡＮＤ型フラッシュメモリ１では、消去後のメモリセルに対して弱い書き込み電圧を印加して、深く消去されたメモリセルの閾値分布を書き戻す作業が行われる。この消去後の書き戻し動作をソフトプラグラムと称する。このようなソフトプログラムにおいても、ベリファイスキップ回数を適切に設定することが可能である。
【００９６】
また、ＮＡＮＤ型フラッシュメモリ１を制御するフラッシュコントローラを備えるメモリシステムの場合、ＮＡＮＤ型フラッシュメモリ１がフラッシュコントローラに対して、閾値レベル毎に規定ビット数Ｂ以上のビットの書き込みベリファイ動作がパスするまでに印加された書き込みパルスの計数結果を出力し、フラッシュコントローラ側で適切なベリファイスキップ回数を設定可能な構成としてもよい。このような場合であっても、ＮＡＮＤ型フラッシュメモリ１の書き込みパフォーマンスを最適化することが可能である。
【００９７】
（第２の実施の形態）
第２の実施の形態では、出荷後、ＮＡＮＤ型フラッシュメモリ１内で、予め定められた規定書き換え回数に応じてベリファイスキップ回数を自動的に変更する例を説明する。
【００９８】
第１の実施の形態で述べた通り、ＮＡＮＤ型フラッシュメモリを含むメモリシステム（メモリカード、ＳＳＤ：Solid State Drive等）では、メモリセルアレイを構成する各々のブロックの書き換え回数（例えば、ブロック毎の消去回数で規定する）が平均化されるようにデータ管理が行われる。従って、ページ毎の書き換え回数は実質的に均一化されている。即ち、あるＮＡＮＤページＰｘの書き換え回数が規定書き換え回数に達した場合、その他のＮＡＮＤページＰｘの書き換え回数もほぼ同様の時期に規定書き換え回数に達する事が予想される。
【００９９】
以下、上記ＮＡＮＤ型フラッシュメモリの特徴点に着目して、メモリセルの書き込み特性の経時変化に対応した適切なベリファイスキップ回数を設定する方法について説明する。なお、第２の実施の形態に係るＮＡＮＤ型フラッシュメモリ１の構成は、図１に示したものと同様であるため、その図示及び構成説明は省略する。
【０１００】
図１のＮＡＮＤ型フラッシュメモリ１内のＲＯＭ−ＦＵＳＥ２１ａには、第１の実施の形態と同様に、クライテリア保存用レジスタＲ１（ｎ）に設定される規定ビット数Ｂと、ベリファイスキップ回数保存用レジスタＲ２(ｎ)に設定されるベリファイスキップ回数とが記憶されている。これらのパラメータ値は、例えば、出荷前のテスト工程における書き込み動作検証処理で予め設定された値である。
【０１０１】
本実施の形態では、このクライテリア保存用レジスタＲ１（ｎ）とベリファイスキップ回数保存用レジスタＲ２（ｎ）とに加えて、規定回数書き換え後のベリファイスキップ回数保存用レジスタＲ３（第３の記憶部）（ｎ）を備える点で、第１の実施の形態と相違する。ベリファイスキップ回数保存用レジスタＲ３（ｎ）は、例えば、ベリファイスキップ回数保存用レジスタＲ２（ｎ）と同様の構成を有する。
【０１０２】
図１０（Ａ）は、図９（Ｂ）に示したベリファイスキップ回数保存用レジスタＲ２（ｎ）と同様のものである。但し、既に出荷前の書き込み動作検証処理に基づいて、ベリファイスキップ回数が設定されている。本実施の形態では、例えば、ベリファイスキップ回数“Ｎ−１（ｎ）”＝８として、Ｂｉｔ「３」に「１」を設定した場合を示す。即ち、初期設定では、閾値レベルｎの書き込みにおいて、最初の８回は書き込みが出来ていない前提で書き込みベリファイ動作を省略する。
【０１０３】
図１０（Ｂ）は、ＮＡＮＤページＰｘの書き換え回数ＮＲが、規定書き換え回数ＮＰに達した後のベリファイスキップ回数保存用レジスタＲ３（ｎ）の例を示す。このレジスタＲ３（ｎ）では、書き換え回数ＮＲが、例えば、規定書き換え回数ＮＰ＝５００回に達した時に、上記書き込み動作検証処理を再度実行することにより、ベリファイパスしたビット数が規定ビット数Ｂに達した時の書き込みパルスの印加回数Ｎから１を引いた値、即ち更新されたベリファイスキップ回数が保存される。
【０１０４】
この場合、ベリファイスキップ回数“Ｎ−１（ｎ）”＝４として、Ｂｉｔ「２」に「１」を設定した場合を示す。即ち、規定書き換え回数ＮＰ＝５００回の書き換えを行った後は、閾値レベルｎの書き込みにおいて、最初の４回は書き込みが出来ていない前提で書き込みベリファイ動作を省略する。このように、規定回数書き換え後のベリファイスキップ回数として、初期設定におけるベリファイスキップ回数とは異なる値を設定可能な構成とされている。
【０１０５】
次に、ＮＡＮＤ型フラッシュメモリ１内の制御回路１７において実行されるベリファイスキップ変更処理について図１１に示すフローチャートを参照して説明する。
【０１０６】
図１１において、ＮＡＮＤ型フラッシュメモリ１内の制御回路１７は、外部からのデータ書き込み要求に対するメモリセルアレイ２１内のＮＡＮＤページＰｘ毎にデータ書き換え動作を監視する(ステップＳ２０１)。
【０１０７】
制御回路１７は、あるＮＡＮＤページＰｘにおいてデータ書き換え動作が発生したことを検出すると(ステップＳ２０１：ＹＥＳ)、そのＮＡＮＤページＰｘに対応する書き換え回数ＮＲのカウンタをカウントアップ（ＮＲ＝ＮＲ＋１）する(ステップＳ２０２)。
【０１０８】
次いで、制御回路１７は、カウントアップした書き換え回数ＮＲが上記規定書き換え回数ＮＰを超えたか否かをチェックする(ステップＳ２０３)。
【０１０９】
制御回路１７は、書き換え回数ＮＲが規定書き換え回数ＮＰを超えていないと判定した場合(ステップＳ２０３：ＮＯ)、ステップＳ２０１に戻る。
【０１１０】
また、制御回路１７は、書き換え回数ＮＲが規定書き換え回数ＮＰを超えていると判定した場合(ステップＳ２０３：ＹＥＳ)、図８に示した書き込み動作検証処理を実行する(ステップＳ２０４)。
【０１１１】
制御回路１７は、書き込み動作検証処理を再度実行することにより新たに得られたベリファイスキップ回数を、図１０（Ｂ）に示すベリファイスキップ回数保存用レジスタＲ３（ｎ）に設定する。制御回路１７は、以降のデータ書き込み動作では、ベリファイスキップ回数保存用レジスタＲ２（ｎ）に保持された値ではなく、ベリファイスキップ回数保存用レジスタＲ３（ｎ）に保持された値を使用するようにベリファイスキップの設定を変更して(ステップＳ２０５)、本処理を終了する。
【０１１２】
なお、ベリファイスキップ回数保存用レジスタＲ３（ｎ）に保持された値は、電源入力が断たれた場合にその情報が失われてしまうため、電源断の前等の任意のタイミングで、ＲＯＭ−ＦＵＳＥ２１ａに記憶する。これにより、次回以降、ＮＡＮＤ型フラッシュメモリ１を起動した際には、ＲＯＭ−ＦＵＳＥ２１ａに記憶されたベリファイスキップ回数を、ベリファイスキップ回数保存用レジスタに読み出して参照することが可能となる。
【０１１３】
また、ベリファイスキップ回数保存用レジスタＲ２（ｎ）とベリファイスキップ回数保存用レジスタＲ３（ｎ）との２つのレジスタを設けることで、規定書き換え回数に達したＮＡＮＤページＰｘと、規定回数に達していないＮＡＮＤページＰｘとで互いに異なるベリファイスキップ回数を用いてデータ書き込み動作を行うことも可能である。
【０１１４】
また、ＮＡＮＤページＰｘの書き換え回数ＮＲを、例えば、当該ＮＡＮＤページＰｘを含むブロックの消去回数と定義した場合、ＮＡＮＤ型フラッシュメモリ１内部の何れかのブロックの消去回数が５００回に達した場合に、書き込み動作検証処理を実行し、ベリファイスキップ回数を更新すればよい。
【０１１５】
ＮＡＮＤ型フラッシュメモリは、一般的にデータの書き換えを繰り返すことにより書き込み速度が速くなる傾向にある。この性質のため、出荷当時のＮＡＮＤ型フラッシュメモリに設定されるベリファイスキップ回数は、将来的な書き込み速度が早くなることを見込んで少なめに設定されている。これは、出荷からあまり時間の経過していない段階では、ＮＡＮＤ型フラッシュメモリの書き込み速度を不必要に抑制することとなる。
【０１１６】
一方で、本実施の形態に係るＮＡＮＤ型フラッシュメモリ１は、上記のベリファイスキップ変更処理を実行することにより、規定書き換え回数ＮＰに適した場合のベリファイスキップ回数を適宜設定することが可能になる。その結果、出荷後の書き換え動作の繰り返しによって生じたメモリセルの特性変化に対応して、適切なベリファイスキップ回数を再設定することができるため、ＮＡＮＤ型フラッシュメモリ１の性能向上を図ることができる。
【０１１７】
なお、図１１に示したベリファイスキップ変更処理は、書き換え回数ＮＲが「５００」に達した時に実行するようにしてもよいし、また、例えば、一定の規定書き換え回数ＮＰに達したことを繰り返し判定する度に実行するようにしてもよい。更に、例えば、「１０００」、「２０００」等のように複数の規定書き換え回数ＮＰを設定し、書き換え回数ＮＲが複数の規定書き換え回数ＮＰに達したことを判定する度にベリファイスキップ変更処理を実行するようにしてもよい。
【０１１８】
なお、第２の実施の形態では、上記図１１に示したベリファイスキップ回数の変更処理に限るものではない。例えば、メモリセルアレイ２１内に予め書き換えストレスを印加したリファレンスユニットを設けておき、このリファレンスユニットにおいて書き込み検証動作で検証した規定ビット数Ｂ以上の書き込みパルスの印加回数Ｎを設定するようにしてもよい。
【０１１９】
以上、本願発明の説明を行ったが、本願発明は上記各実施の形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々変形する事が可能である。また、本実施形態には種々の段階の発明が含まれており、開示される複数の構成要件の適宜な組み合わせにより種々の発明が抽出され得る。例えば、本実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題の少なくとも１つが解決でき、発明の効果の欄で述べられている効果の少なくとも１つが得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【図面の簡単な説明】
【０１２０】
【図１】第１の実施の形態に係るＮＡＮＤ型フラッシュメモリ内部の構成を示す図である。
【図２】第１の実施の形態に係る８値データの閾値分布を示す図である。
【図３】第１の実施の形態に係る１６値データの閾値分布を示す図である。
【図４】第１の実施の形態に係るＮＡＮＤ型フラッシュメモリにおいて実行されるベリファイスキップ動作の具体例を模式的に示す図である。
【図５】第１の実施の形態に係る図４の動作例に対応する書き込み電圧パルスと書き込みベリファイ電圧パルスの一例を示す図である。
【図６】第１の実施の形態に係る８値データの閾値レベルの分布がオーバープログラムにより広がった例を示す図である。
【図７】第１の実施の形態に係るメモリセルアレイに対する書き込み動作と書き込みベリファイ動作の概要を模式的に示す図である。
【図８】第１の実施の形態に係るＮＡＮＤ型フラッシュメモリにおいて実行される書き込動作検証処理を示すフローチャートである。
【図９】第１の実施の形態に係るＮＡＮＤ型フラッシュメモリ内に格納される（Ａ）はクライテリア保存用レジスタＲ１（ｎ）の一例を示す図、（Ｂ）はベリファイスキップ回数保存用レジスタＲ２（ｎ）の一例を示す図である。
【図１０】第２の実施の形態にＮＡＮＤ型フラッシュメモリ内に格納される（Ａ）は初期の書き込みパルスの印加回数を保存するベリファイスキップ回数保存用レジスタＲ２（ｎ）の一例を示す図、（Ｂ）は規定書き換え回数“ＮＰ”に達した際の書き込みパルスの印加回数を保存するするベリファイスキップ回数保存用レジスタＲ３（ｎ）の一例を示す図である。
【図１１】第２の実施の形態に係るＮＡＮＤ型フラッシュメモリにおいて実行されるベリファイスキップ回数変更処理を示すフローチャートである。
【符号の説明】
【０１２１】
１…ＮＡＮＤ型フラッシュメモリ、１７…制御回路、２１…メモリセルアレイ、２１ａ…ＲＯＭ−ＦＵＳＥ、２６…パラメータレジスタ、Ｒ１（ｎ）…クライテリア保存用レジスタ、Ｒ２（ｎ）…ベリファイスキップ回数保存用レジスタ、Ｒ３（ｎ）…ベリファイスキップ回数保存用レジスタ。
【図１】
2010033637.tif 000003
【図２】
2010033637.tif 000004
【図３】
2010033637.tif 000005
【図４】
2010033637.tif 000006
【図５】
2010033637.tif 000007
【図６】
2010033637.tif 000008
【図７】
2010033637.tif 000009
【図８】
2010033637.tif 000010
【図９】
2010033637.tif 000011
【図１０】
2010033637.tif 000012
【図１１】
2010033637.tif 000013