(57)【特許請求の範囲】
【請求項１】
電気的に書き換え可能な複数のメモリセルを有する複数のブロックを含み、各ブロックは、第１の方向に直列に接続された所定数のメモリセルを含む複数のＮＡＮＤストリングを有する、メモリセルアレイと、
前記ブロックのうち前記第１の方向に交差する第２の方向に配列された複数のメモリセル群にそれぞれ接続された複数のワード線と、
（Ａ）データ読み出し時に非選択ワード線に印加される第１の読み出し電圧を用いて、ブロックに含まれる全てのメモリセルがオンするか（パス）、１個以上のメモリセルがオフするか（フェイル）をベリファイし、
（Ｂ）フェイルのブロックに対して、非選択ワード線に印加されかつ前記第１の読み出し電圧より高い第２の読み出し電圧を用いて、データ読み出し動作を実行する
制御部と、
を具備することを特徴とする不揮発性半導体記憶装置。
【請求項２】
前記ワード線に前記第１の読み出し電圧又は前記第２の読み出し電圧を印加するワード線回路をさらに具備することを特徴とする請求項１に記載の不揮発性半導体記憶装置。
【請求項３】
前記複数のＮＡＮＤストリングの一端に複数の選択トランジスタを介して接続された複数のビット線と、
前記複数のビット線に接続され、かつ前記ベリファイ時にパス／フェイルを判定するビット線回路と、
をさらに具備することを特徴とする請求項１又は２に記載の不揮発性半導体記憶装置。
【請求項４】
前記制御部は、前記ベリファイによるパス／フェイル結果をフラグとしてブロックの冗長領域に書き込むことを特徴とする請求項１乃至３のいずれかに記載の不揮発性半導体記憶装置。
【請求項５】
前記ベリファイによるパス／フェイル結果をフラグとして格納するラッチ回路をさらに具備することを特徴とする請求項１乃至３のいずれかに記載の不揮発性半導体記憶装置。
【請求項６】
前記制御部は、データ読み出し時に、前記フラグを参照することを特徴とする請求項４又は５に記載の不揮発性半導体記憶装置。
【請求項７】
前記制御部は、オーバープログラムが発生したＮＡＮＤストリングをカウントし、このカウント値が閾値を超えたブロックに対して（Ｂ）の処理を実行することを特徴とする請求項１乃至６のいずれかに記載の不揮発性半導体記憶装置。
【請求項８】
電気的に書き換え可能な複数のメモリセルを有する複数のブロックを含み、各ブロックは、第１の方向に直列に接続された所定数のメモリセルを含む複数のＮＡＮＤストリングを有する、メモリセルアレイと、前記ブロックのうち前記第１の方向に交差する第２の方向に配列された複数のメモリセル群にそれぞれ接続された複数のワード線とを含む不揮発性半導体メモリと、
（Ａ）データ読み出し時に非選択ワード線に印加される第１の読み出し電圧を用いて、ブロックに含まれる全てのメモリセルがオンするか（パス）、１個以上のメモリセルがオフするか（フェイル）をベリファイし、
（Ｂ）フェイルのブロックに対して、非選択ワード線に印加されかつ前記第１の読み出し電圧より高い第２の読み出し電圧を用いて、データ読み出し動作を実行する
ホストコントローラと、
を具備することを特徴とするメモリシステム。
【請求項９】
前記不揮発性半導体メモリは、前記ベリファイによるパス／フェイル結果を前記ホストコントローラへ出力することを特徴とする請求項８に記載のメモリシステム。
【請求項１０】
前記ホストコントローラは、前記ベリファイによるパス／フェイル結果を前記不揮発性半導体メモリから受け、前記パス／フェイル結果を含むテーブルを作成することを特徴とする請求項８又は９に記載のメモリシステム。
【請求項１１】
前記ホストコントローラは、データ読み出し時に、前記テーブルを参照することを特徴とする請求項１０に記載のメモリシステム。
【請求項１２】
前記不揮発性半導体メモリは、前記ワード線に前記第１の読み出し電圧又は前記第２の読み出し電圧を印加するワード線回路を含むことを特徴とする請求項８乃至１１のいずれかに記載のメモリシステム。
【請求項１３】
前記不揮発性半導体メモリは、前記複数のＮＡＮＤストリングの一端に複数の選択トランジスタを介して接続された複数のビット線と、前記複数のビット線に接続され、かつ前記ベリファイ時にパス／フェイルを判定するビット線回路とを含むことを特徴とする請求項８乃至１２のいずれかに記載のメモリシステム。
【請求項１４】
第１方向に接続された複数のメモリセルを有するブロックを含むＮＡＮＤ型のメモリセルアレイと、
前記ブロックのうち、前記第１方向と交差する第２方向で複数のメモリセルにそれぞれ接続された複数のワード線と、
データ読み出し時に非選択ワード線に印加される第１電圧によって前記ブロックに含まれる全ての前記メモリセルがオンされるか否か判定し、該判定の結果を参照し、非選択ワード線に印加されかつ前記第１電圧より高い第２電圧によってデータ読み出し処理を行う制御部と、
を具備することを特徴とする不揮発性半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性半導体記憶装置及びメモリシステムに係り、例えばＮＡＮＤ型フラッシュメモリを用いた不揮発性半導体記憶装置及びメモリシステムに関する。
【背景技術】
【０００２】
電気的に書き換えが可能で、かつ高集積化が可能な不揮発性半導体記憶装置としてＮＡＮＤ型フラッシュメモリが知られている。ＮＡＮＤ型フラッシュメモリは、データ消去の最小単位であるブロックを複数個備えている。各ブロックは、複数の隣接するメモリセル同士をソース及びドレイン領域を共有する形で直列接続されたＮＡＮＤストリングを複数個備え、ＮＡＮＤストリングの両端はそれぞれ選択ゲートトランジスタを介してビット線及びソース線に接続される。
【０００３】
ＮＡＮＤ型フラッシュメモリのメモリセルは、半導体基板にトンネル絶縁膜を介して形成された浮遊ゲート電極、及びこの浮遊ゲート電極上にゲート間絶縁膜を介して積層された制御ゲート電極を有し、浮遊ゲート電極に蓄積された電荷の多寡による閾値電圧の変化を利用してデータを不揮発に記憶する。
【０００４】
このように構成されたＮＡＮＤ型フラッシュメモリにおいて、選択メモリセルのデータを読み出す場合、非選択メモリセルに接続された非選択ワード線に、記憶データにかかわらずメモリセルをオンさせる読み出し電圧を印加する。しかしながら、いわゆるオーバープログラム不良がメモリセルに発生すると、当該メモリセルをオンさせることができなくなり、結果として、オーバープログラム不良が発生したメモリセルを含むブロック内の全てのＮＡＮＤストリングのデータが読めなくなってしまう。
【０００５】
また、この種の関連技術として、誤書き込み及び過書き込みの判定機能を備えた不揮発性半導体記憶装置が開示されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−２４９０８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、オーバープログラムに起因する不良率を抑制することが可能な不揮発性半導体記憶装置及びメモリシステムを提供する。
【課題を解決するための手段】
【０００８】
本発明の一態様に係る不揮発性半導体記憶装置は、電気的に書き換え可能な複数のメモリセルを有する複数のブロックを含み、各ブロックは、第１の方向に直列に接続された所定数のメモリセルを含む複数のＮＡＮＤストリングを有する、メモリセルアレイと、前記ブロックのうち前記第１の方向に交差する第２の方向に配列された複数のメモリセル群にそれぞれ接続された複数のワード線と、（Ａ）データ読み出し時に非選択ワード線に印加される第１の読み出し電圧を用いて、ブロックに含まれる全てのメモリセルがオンするか（パス）、１個以上のメモリセルがオフするか（フェイル）をベリファイし、（Ｂ）フェイルのブロックに対して、非選択ワード線に印加されかつ前記第１の読み出し電圧より高い第２の読み出し電圧を用いて、データ読み出し動作を実行する制御部とを具備する。
【０００９】
本発明の一態様に係るメモリシステムは、電気的に書き換え可能な複数のメモリセルを有する複数のブロックを含み、各ブロックは、第１の方向に直列に接続された所定数のメモリセルを含む複数のＮＡＮＤストリングを有する、メモリセルアレイと、前記ブロックのうち前記第１の方向に交差する第２の方向に配列された複数のメモリセル群にそれぞれ接続された複数のワード線とを含む不揮発性半導体メモリと、（Ａ）データ読み出し時に非選択ワード線に印加される第１の読み出し電圧を用いて、ブロックに含まれる全てのメモリセルがオンするか（パス）、１個以上のメモリセルがオフするか（フェイル）をベリファイし、（Ｂ）フェイルのブロックに対して、非選択ワード線に印加されかつ前記第１の読み出し電圧より高い第２の読み出し電圧を用いて、データ読み出し動作を実行するホストコントローラとを具備する。
【００１０】
本発明の一態様に係るメモリシステムは、電気的に書き換え可能な複数のメモリセルを有する複数のブロックを含み、各ブロックは、第１の方向に直列に接続された所定数のメモリセルを含む複数のＮＡＮＤストリングを有する、メモリセルアレイと、前記ブロックのうち前記第１の方向に交差する第２の方向に配列された複数のメモリセル群にそれぞれ接続された複数のワード線とを含む不揮発性半導体メモリと、（Ａ）データ読み出し時に非選択ワード線に印加される第１の読み出し電圧を用いて、ブロックに含まれる全てのメモリセルがオンするか（パス）、１個以上のメモリセルがオフするか（フェイル）をベリファイし、（Ｂ）フェイルのブロックのデータを別のブロックに移動するホストコントローラとを具備する。
【発明の効果】
【００１１】
本発明によれば、オーバープログラムに起因する不良率を抑制することが可能な不揮発性半導体記憶装置及びメモリシステムを提供することができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施形態に係るＮＡＮＤフラッシュメモリ１の構成を示すブロック図。
【図２】メモリセルアレイ１０の構成を示す回路図。
【図３】メモリセルアレイ１０の他の構成を示す回路図。
【図４】１個のＮＡＮＤストリングの構成を示す断面図。
【図５】メモリセルトランジスタＭＴの閾値電圧分布を説明する概略図。
【図６】ＮＡＮＤフラッシュメモリ１のオーバープログラム検出動作を示すフローチャート。
【図７】オーバープログラムベリファイ時にＮＡＮＤストリングに印加される電圧関係を説明する図。
【図８】フラグ領域を示す概略図。
【図９】ＮＡＮＤフラッシュメモリ１のデータ読み出し動作を示すフローチャート。
【図１０】リード処理時にＮＡＮＤストリングに印加される電圧関係を説明する図。
【図１１】実施例１に係るフラグ領域を示す概略図。
【図１２】実施例１に係るＮＡＮＤフラッシュメモリ１のデータ読み出し動作を示すフローチャート。
【図１３】実施例２に係るＮＡＮＤフラッシュメモリ１の構成を示すブロック図。
【図１４】実施例２に係るＮＡＮＤフラッシュメモリ１のデータ読み出し動作を示すフローチャート。
【図１５】第２の実施形態に係るメモリシステム３０の構成を示すブロック図。
【図１６】ドライブ制御回路３２のハードウェア的な内部構成例を示すブロック図。
【図１７】メモリシステム３０の書き込み動作を示すフローチャート。
【図１８】論理／物理アドレス変換テーブルの一例を説明する図。
【図１９】メモリシステム３０のデータ読み出し動作を示すフローチャート。
【図２０】変形例に係るメモリシステム３０のデータ書き込み動作を示すフローチャート。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態について図面を参照して説明する。なお、以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【００１４】
［第１の実施形態］
図１は、本発明の第１の実施形態に係る不揮発性半導体記憶装置としてのＮＡＮＤフラッシュメモリ１の構成を示すブロック図である。メモリセルアレイ１０は、電気的に書き換え可能なフラッシュメモリセルがマトリクス状に配置されて構成されている。メモリセルアレイ１０には、カラム方向に延在する複数のビット線ＢＬ、ロウ方向に延在する複数のワード線ＷＬ、及びロウ方向に延在するソース線ＳＬが配設されている。
【００１５】
ビット線ＢＬには、ビット線制御回路１１が接続されている。ビット線制御回路１１は、ビット線ＢＬを選択し、ビット線ＢＬの電圧を制御し、メモリセルのデータ消去、メモリセルへのデータ書き込み、及びメモリセルからのデータ読み出しを行う。ビット線制御回路１１は、カラムデコーダ、センスアンプＳＡ、ページバッファ、データキャッシュなどを含んでいる。
【００１６】
ワード線ＷＬには、ワード線制御回路１２が接続されている。ワード線制御回路１２は、ワード線ＷＬを選択し、また、消去、書き込み及び読み出しに必要な電圧をワード線ＷＬに印加する。ワード線制御回路１２は、ロウデコーダ、ワード線ドライバなどを含んでいる。
【００１７】
ソース線制御回路１３は、ソース線ＳＬの電圧を制御する。Ｐウェル制御回路１４は、メモリセルアレイ１０が形成されるｐ型ウェルの電圧を制御する。
【００１８】
データ入出力バッファ１５は、外部のホストコントローラ２にＩ／Ｏ線を介して接続されており、書き込みデータの受け取り、読み出しデータの出力、アドレスやコマンドの受け取りを行う。データ入出力バッファ１５は、受け取った書き込みデータをビット線制御回路１１に送り、ビット線制御回路１１から読み出された読み出しデータを受け取る。また、データ入出力バッファ１５は、メモリセルの選択をするために、外部からのアドレスをビット線制御回路１１やワード線制御回路１２に制御部１７を介して送る。さらに、データ入出力バッファ１５は、ホストコントローラ２からのコマンドをコマンドインターフェイス１６に送る。
【００１９】
コマンドインターフェイス１６は、ホストコントローラ２からの制御信号を受け、データ入出力バッファ１５に入力されたデータが書き込みデータ、コマンド及びアドレスのいずれであるかを判断し、コマンドであればこれを受け取り、コマンド信号として制御部１７に送る。
【００２０】
制御部１７は、ＮＡＮＤフラッシュメモリ１全体の管理を行う。制御部１７は、ホストコントローラ２からのコマンドを受け、読み出し、書き込み、消去、データの入出力管理を行う。
【００２１】
図２は、メモリセルアレイ１０の構成を示す回路図である。メモリセルアレイ１０は、ｊ個のブロックＢＬＫ０〜ＢＬＫｊ−１（ｊは、１以上の整数）を備えている。ブロックＢＬＫは、データ消去の最小単位である。
【００２２】
各ブロックＢＬＫは、ロウ方向に沿って順に配列されたｍ個のＮＡＮＤストリングを備えている（ｍは、１以上の整数）。ＮＡＮＤストリングに含まれる選択トランジスタＳＴ１は、ドレインがビット線ＢＬに接続され、ゲートが選択ゲート線ＳＧＤに共通接続されている。ＮＡＮＤストリングに含まれる選択トランジスタＳＴ２は、ソースがソース線ＳＬに共通接続され、ゲートが選択ゲート線ＳＧＳに共通接続されている。
【００２３】
各メモリセルトランジスタ（メモリセルとも言う）ＭＴは、ｐ型ウェル上に形成された積層ゲート構造を備えたＭＯＳＦＥＴ（Metal Oxide Semiconductor Field Effect Transistor）により構成されている。積層ゲート構造は、ｐ型ウェル上にゲート絶縁膜を介在して形成された電荷蓄積層（浮遊ゲート電極）、及び浮遊ゲート電極上にゲート間絶縁膜を介在して形成された制御ゲート電極を含んでいる。メモリセルトランジスタＭＴは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じてデータを記憶する。メモリセルトランジスタＭＴは、１ビットを記憶するように構成されていてもよいし、多値（２ビット以上のデータ）を記憶するように構成されていてもよい。
【００２４】
メモリセルトランジスタＭＴは、浮遊ゲート電極を有するフローティングゲート構造に限らず、ＭＯＮＯＳ（Metal-Oxide-Nitride-Oxide-Silicon）型など、電荷蓄積層としての窒化膜界面に電子をトラップさせることにより閾値電圧が調整可能な構造であってもよい。ＭＯＮＯＳ構造のメモリセルトランジスタＭＴについても同様に、１ビットを記憶するように構成されていてもよいし、多値（２ビット以上のデータ）を記憶するように構成されていてもよい。
【００２５】
各ＮＡＮＤストリングにおいて、ｎ個（ｎは、１以上の整数）のメモリセルトランジスタＭＴは、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に、それぞれの電流経路が直列接続されるように配置されている。すなわち、ｎ個のメモリセルトランジスタＭＴは、隣接するもの同士で拡散領域（ソース領域若しくはドレイン領域）を共有するような形でカラム方向に直列接続される。
【００２６】
各ＮＡＮＤストリングにおいて、最もソース側に位置するメモリセルトランジスタＭＴから順に、制御ゲート電極がワード線ＷＬ０〜ＷＬｎ−１にそれぞれ接続されている。従って、ワード線ＷＬｎ−１に接続されたメモリセルトランジスタＭＴのドレインは選択トランジスタＳＴ１のソースに接続され、ワード線ＷＬ０に接続されたメモリセルトランジスタＭＴのソースは選択トランジスタＳＴ２のドレインに接続されている。
【００２７】
ワード線ＷＬ０〜ＷＬｎ−１は、ブロックＢＬＫ内のＮＡＮＤストリング間で、メモリセルトランジスタＭＴの制御ゲート電極を共通に接続している。つまり、ブロック内において同一行にあるメモリセルトランジスタＭＴの制御ゲート電極は、同一のワード線ＷＬに接続される。この同一のワード線ＷＬに接続されるｍ個のメモリセルトランジスタＭＴは１ページとして取り扱われ、このページごとにデータの書き込み及びデータの読み出しが行われる。
【００２８】
また、ビット線ＢＬ０〜ＢＬｍ−１は、ブロックＢＬＫ間で、選択トランジスタＳＴ１のドレインを共通に接続している。つまり、ブロックＢＬＫ０〜ＢＬＫｊ−１内において同一列にあるＮＡＮＤストリングは、同一のビット線ＢＬに接続される。各ビット線ＢＬは、ビット線制御回路１１に含まれるセンスアンプＳＡに接続される。
【００２９】
なお、図２は、各ビット線ＢＬに１個のセンスアンプＳＡが接続された構成例を示しているが、２本のビット線に対して１個のセンスアンプＳＡを配置するようにしてもよい。図３は、メモリセルアレイ１０の他の構成を示す回路図である。
【００３０】
０から数えて偶数番目のビット線ＢＬｅと奇数番目のビット線ＢＬｏとは、互いに独立にデータの書き込み及び読み出しが行われる。１本のワード線ＷＬに繋がる（２×ｍ）個のメモリセルのうち、偶数番目のビット線ＢＬｅに接続されるｍ個のメモリセルに対して同時にデータの書き込み或いは読み出しが行われ、奇数番目のビット線ＢＬｏに接続されるｍ個のメモリセルに対して同時にデータの書き込み或いは読み出しが行われる。よって、１本のワード線ＷＬに繋がる（２×ｍ）個のメモリセルは、２ページのデータを扱う。
【００３１】
偶数番目のビット線ＢＬｅ０と奇数番目のビット線ＢＬｏ０とは、選択回路１８を介して１個のセンスアンプＳＡに接続されている。他の偶数番目のビット線ＢＬｅと奇数番目のビット線ＢＬｏとのペアについても同様である。偶数番目のビット線ＢＬｅと奇数番目のビット線ＢＬｏとの選択動作は、選択線ＳＥＬｅ及びＳＥＬｏによって行われる。
【００３２】
図４は、１個のＮＡＮＤストリングの構成を示す断面図である。ｐ型半導体基板（ｐ−ｓｕｂ）内にはｎ型ウェル（ｎ−ｗｅｌｌ）が形成されており、ｎ型ウェル（ｎ−ｗｅｌｌ）内にはＰ型ウェル（Ｐ−ｗｅｌｌ）が形成されている。各メモリセルトランジスタＭＴは、ｐ型ウェル上に形成された積層ゲート構造と、ｐ型ウェル内に高濃度不純物が導入されたｎ＋型拡散領域とを備えたＭＯＳＦＥＴから構成される。積層ゲート構造は、浮遊ゲート電極ＦＧと制御ゲート電極ＣＧとを含んでいる。
【００３３】
選択トランジスタＳＴ１は、Ｐ型ウェル内に互いに離間して設けられたソース領域Ｓ及びドレイン領域Ｄ、ソース領域Ｓ及びドレイン領域Ｄ間のチャネル領域上に設けられたゲート絶縁膜、及びゲート絶縁膜上に設けられたゲート電極Ｇから構成されている。選択トランジスタＳＴ２についても、選択トランジスタＳＴ１と同様の構成である。
【００３４】
図５は、メモリセルトランジスタＭＴの閾値電圧分布を説明する概略図である。図５には、１ビットを記憶するメモリセルトランジスタＭＴの閾値電圧分布（図５（ａ））と、２ビットを記憶するメモリセルトランジスタＭＴの閾値電圧分布（図５（ｂ））とを載せている。図５の横軸は閾値電圧Ｖｔｈ、縦軸はメモリセルトランジスタＭＴの数（セル数）である。
【００３５】
１ビット記憶方式は、メモリセルトランジスタＭＴの閾値電圧が低い順に、例えば、データ“１”、“０”が割り当てられる。データ“１”は、メモリセルトランジスタＭＴの閾値電圧が例えば負とされた消去状態である。データ“０”は、メモリセルトランジスタＭＴの閾値電圧が正にシフトされた書き込み状態である。
【００３６】
２ビット記憶方式は、上位ページデータ“ｘ”と下位ページデータ“ｙ”とで定義される２ビットデータ“ｘｙ”の何れか１つをメモリセルトランジスタＭＴに記録可能である。２ビットデータ“ｘｙ”は、メモリセルトランジスタＭＴの閾値電圧が低い順に、例えば、データ“１１”、“０１”、“００”、“１０”が割り当てられる。データ“１１”は、メモリセルトランジスタＭＴの閾値電圧が例えば負とされた消去状態である。なお、データの割り当て規則はこれに限らない。また、１個のメモリセルトランジスタＭＴに３ビット以上の記憶を行う構成であってもよい。
【００３７】
下位ページの書き込み動作において、データ“１１”（消去状態）のメモリセルトランジスタＭＴに対して選択的に、下位ビットデータ“ｙ”を書き込むことによって、データ“１０”が書き込まれる。上位ページの書き込み前のデータ“１０”の閾値分布は、上位ページ書き込み後のデータ“０１”とデータ“００”との閾値分布の中間程度に位置しており、上位ページの書き込み後の閾値分布よりブロードであってもよい。上位ページの書き込み動作において、データ“１１”のメモリセルと、データ“１０”のメモリセルに対して、それぞれ選択的に上位ビットデータ“ｘ”が書き込まれることにより、データ“０１”及びデータ“００”が書き込まれる。
【００３８】
（動作）
ＮＡＮＤフラッシュメモリの読み出し動作では、まず、選択ゲート線ＳＧＤに電圧Ｖｓｇが印加され、選択トランジスタＳＴ１がオンする。続いて、選択トランジスタＳＴ２をオフさせた状態で、ビット線ＢＬを電圧Ｖｂｌに充電する。
【００３９】
続いて、選択メモリセル以外の全ての非選択メモリセルに接続された非選択ワード線に、記憶データによらずメモリセルがオンする非選択ワード線読み出し電圧Ｖｒｅａｄが印加され、非選択メモリセルがオンする。続いて、選択メモリセルに接続された選択ワード線に、選択メモリセルの閾値電圧を判定するための電圧Ｖｃｇｒが印加される。続いて、選択ゲート線ＳＧＳに電圧Ｖｓｇが印加され、選択トランジスタＳＴ２がオンする。ソース線ＳＬには、例えば０Ｖが印加される。
【００４０】
この時、選択ワード線に接続された選択メモリセルがオフしている場合は、ビット線が放電されず、充電電圧Ｖｂｌを保持する。一方、選択メモリセルがオンしている場合は、ビット線が放電され、ビット線の電圧がソース線ＳＬと概略同じ電圧になる。この後、読み出し動作後のビット線の電圧をセンスアンプＳＡにより検知することで、選択メモリセルに記憶されたデータを読み出すことができる。
【００４１】
電圧Ｖｒｅａｄは、図５に示すように、最も大きい閾値電圧のメモリセルトランジスタがオンする電圧に設定される。電圧Ｖｒｅａｄを高くすれば、確実に非選択メモリセルをオンさせることができるが、一方で、電圧Ｖｒｅａｄを高くし過ぎると、読み出し動作が繰り返される、すなわち、ワード線への電圧Ｖｒｅａｄの印加が繰り返されることで、メモリセルトランジスタＭＴの閾値電圧が上昇してしまう、いわゆるリードディスターブが発生する。このため、電圧Ｖｒｅａｄは、非選択メモリセルがオンするという条件を満たしつつ、より低く設定することが望ましい。
【００４２】
ここで、書き込み動作において、メモリセルの閾値電圧が電圧Ｖｒｅａｄよりも高い電圧に設定されるオーバープログラムが発生する。あるＮＡＮＤストリングの１個のメモリセルにオーバープログラムが発生すると、電圧Ｖｒｅａｄを印加してもメモリセルがオンしないため、当該ＮＡＮＤストリングのデータを読み出すことが不可能となる。ひいては、オーバープログラムが発生したＮＡＮＤストリングを含むブロックのデータ読み出しができなくなる。
【００４３】
本実施形態では、オーバープログラムが発生したＮＡＮＤストリングに対して、読み出し時に電圧Ｖｒｅａｄを上げて読み出し動作を行う。これにより、オーバープログラムが発生したメモリセルをオンさせることができるため、ＮＡＮＤストリングのデータを読み出すことが可能となる。以下に、オーバープログラム不良を救済するための方式について説明する。
【００４４】
図６は、ＮＡＮＤフラッシュメモリ１のオーバープログラム検出動作を示すフローチャートである。制御部１７は、メモリセルアレイ１０内の任意のブロックＢＬＫにデータを書き込む（ステップＳ１００）。この書き込み動作は、一般的なＮＡＮＤフラッシュメモリの書き込み動作と同じである。
【００４５】
続いて、制御部１７は、オーバープログラムベリファイを行う（ステップＳ１０１）。オーバープログラムベリファイとは、ブロックＢＬＫに含まれる全てのＮＡＮＤストリングに対して、オーバープログラムが発生しているか否かを判定する処理である。
【００４６】
図７は、オーバープログラムベリファイ時にＮＡＮＤストリングに印加される電圧関係を説明する図である。ビット線制御回路１１によりビット線ＢＬを電圧Ｖｂｌに充電した後、ワード線制御回路１２は、選択ゲート線ＳＧＤ及びＳＧＳに電圧Ｖｓｇ（４．３Ｖ程度）を印加し、選択トランジスタＳＴ１及びＳＴ２をオンさせる。続いて、ワード線制御回路１２は、ブロックＢＬＫ内の全てのワード線ＷＬ０〜ＷＬｎ−１に、電圧Ｖｒｅａｄ、若しくはＶｒｅａｄより若干低い電圧“Ｖｒｅａｄ−α”を印加する。電圧“Ｖｒｅａｄ−α”を使う場合は、閾値電圧がＶｒｅａｄ付近のメモリセルを検出することができるため、より信頼性の高いオーバープログラム検出動作が可能となる。
【００４７】
続いて、ビット線制御回路１１は、ビット線ＢＬの電圧を検知し、ビット線ＢＬが放電されているか否かを判定する。電圧Ｖｒｅａｄ（若しくは“Ｖｒｅａｄ−α”）によってＮＡＮＤストリング内の全てのメモリセルがオンした場合、図７に示すように、ＮＡＮＤストリングはチャネルによって電気的に接続され、ビット線ＢＬが放電される。ビット線ＢＬが放電されている場合は、ＮＡＮＤストリング内にオーバープログラムが発生したメモリセルが存在しないことを意味する。一方、ビット線ＢＬが放電されていない場合は、ＮＡＮＤストリング内にオフしたメモリセルが１個以上存在することを意味し、換言すると、ＮＡＮＤストリング内にオーバープログラムが発生したメモリセルが１個以上存在することを意味する。
【００４８】
ビット線制御回路１１により、オーバープログラムが発生していない場合はパス、オーバープログラムが発生した場合にはフェイルと判定される（ステップＳ１０２）。なお、パス／フェイル判定では、ブロックＢＬＫ内にオーバープログラムが発生したＮＡＮＤストリングがゼロの場合はパス、１個以上存在する場合はフェイルとなる。また、オーバープログラムが発生したＮＡＮＤストリングをカウントし、任意に設定したフェイル閾値を超えた場合にフェイルとすることも可能である。
【００４９】
続いて、制御部１７は、オーバープログラムベリファイの結果を、ブロックＢＬＫ内の冗長領域にフラグとして書き込む。フラグの容量は１ビットである。図８は、フラグ領域を示す概略図である。図８は、ブロックＢＬＫ内の任意の１ページの記憶領域を示している。１ページは、ユーザデータや管理情報などを格納するデータ領域と、ＥＣＣ(Error Correction Code)を格納するＥＣＣ領域と、オーバープログラム用のフラグを格納するフラグ領域とを備えている。フラグ領域は、１ページ内の冗長領域から割り当てられる。フラグが格納されたページは、制御部１７が作成する管理情報によって管理される。このように、ブロックＢＬＫ内にオーバープログラムベリファイの結果を示すフラグを格納しているため、このフラグを確認することで、当該ブロックにオーバープログラムが発生しているか否かを判定することができる。
【００５０】
次に、データ読み出し動作について説明する。図９は、ＮＡＮＤフラッシュメモリ１のデータ読み出し動作を示すフローチャートである。
【００５１】
まず、制御部１７は、ホストコントローラ２からリードコマンドを受ける（ステップＳ２００）。続いて、制御部１７は、読み出し対象のブロックＢＬＫに格納されたフラグを読み出す（ステップＳ２０１）。この読み出し動作は、一般的なページ読み出しと同じである。前述したように、フラグが書き込まれたページは、制御部１７が作成した管理情報によって管理されている。そして、制御部１７は、読み出したフラグの状態を確認する（ステップＳ２０２）。
【００５２】
フラグがパスである場合は、ブロックＢＬＫ内にオーバープログラムが発生したメモリセルが存在しない。よって、制御部１７は、電圧Ｖｒｅａｄを用いた通常のリード処理（ノーマルリード処理）を実行する（ステップＳ２０３）。このリード処理は、リードコマンド列に含まれるアドレスに対応するページに対して行われる。
【００５３】
一方、フラグがフェイルである場合は、ブロックＢＬＫ内にオーバープログラムが発生したメモリセルが存在する。よって、制御部１７は、非選択ワード線読み出し電圧Ｖｒｅａｄを変更、すなわち、図５に示すように、Ｖｒｅａｄより高い非選択ワード線読み出し電圧Ｖｒｅａｄ´に変更する（ステップＳ２０４）。そして、制御部１７及びワード線制御回路１２は、電圧Ｖｒｅａｄ´を用いてリード処理を実行する（ステップＳ２０５）。
【００５４】
図１０は、電圧Ｖｒｅａｄ´を用いたリード処理時にＮＡＮＤストリングに印加される電圧関係を説明する図である。例えば、ワード線ＷＬ４に接続されたメモリセルが選択されたものとする。
【００５５】
ビット線制御回路１１によりビット線ＢＬを電圧Ｖｂｌに充電した後、ワード線制御回路１２は、選択ゲート線ＳＧＤ及びＳＧＳに電圧Ｖｓｇ（４．３Ｖ程度）を印加し、選択トランジスタＳＴ１及びＳＴ２をオンさせる。続いて、ワード線制御回路１２は、選択メモリセルに接続された選択ワード線ＷＬ４に、選択メモリセルの記憶データを判定するための読み出し電圧Ｖｃｇｒを印加し、他の全ての非選択メモリセルに接続された非選択ワード線ＷＬに、Ｖｒｅａｄより高い非選択ワード線読み出し電圧Ｖｒｅａｄ´を印加する。これにより、全ての非選択メモリセルはオンする。
【００５６】
続いて、ビット線制御回路１１は、ビット線ＢＬの電圧を検知し、ビット線ＢＬが放電されているか否かを判定する。そして、この判定結果により選択メモリセルのデータを読み出す。なお、図１０は、読み出し電圧Ｖｃｇｒよって選択メモリセルがオンした状態、すなわち、ＮＡＮＤストリングがチャネルによって電気的に接続された状態を示している。ビット線制御回路１１により読み出されたデータは、データ入出力バッファ１５を介して、ホストコントローラ２に出力される。
【００５７】
（効果）
以上詳述したように第１の実施形態では、ブロックＢＬＫに含まれる全てのＮＡＮＤストリングに対して、全てのワード線ＷＬに非選択ワード線読み出し電圧Ｖｒｅａｄを印加してビット線ＢＬが放電されたか否かを判定するオーバープログラムベリファイを行う。そして、オーバープログラムベリファイの判定結果に応じて、オーバープログラムが発生したか否かを確認するためのフラグをブロックＢＬＫの冗長領域に格納する。続いて、オーバープログラムが発生したブロックＢＬＫに対しては、データ読み出し時に、非選択ワード線読み出し電圧Ｖｒｅａｄを本来の電圧より高くしてリード処理を行うようにしている。
【００５８】
従って第１の実施形態によれば、本来であればオーバープログラムによってデータ読み出しが不能になるブロックを救済することができる。このため、オーバープログラムに起因するＮＡＮＤフラッシュメモリ１の不良率を抑制することができる。
【００５９】
また、非選択ワード線読み出し電圧Ｖｒｅａｄを予め高く設定しておく必要がなくなる。このため、リードディスターブを低減することができる。
【００６０】
（実施例１）
次に、オーバープログラムを判定するためのフラグの格納方式に係る他の構成例について説明する。図１１は、フラグ領域を示す概略図である。ブロックＢＬＫ内の各ページは、データ領域及びＥＣＣ領域に加えて、オーバープログラム用のフラグを格納するフラグ領域を備えている。フラグ領域は、１ページ内の冗長領域から割り当てられる。書き込み時には、制御部１７は、オーバープログラムベリファイの結果を、ブロックＢＬＫ内の全てのページのフラグ領域にフラグとして書き込む。
【００６１】
図１２は、ＮＡＮＤフラッシュメモリ１のデータ読み出し動作を示すフローチャートである。まず、制御部１７は、ホストコントローラ２からリードコマンドを受ける（ステップＳ３００）。続いて、制御部１７は、リードコマンド列に含まれるアドレスに対応するページのリード処理を実行する（ステップＳ３０１）。このリード処理は、一般的なページ読み出しと同じである。
【００６２】
続いて、制御部１７は、読み出したページに含まれるフラグを確認する（ステップＳ３０２，Ｓ３０３）。フラグがパスである場合は、ブロックＢＬＫ内にオーバープログラムが発生したメモリセルが存在しない。よって、制御部１７は、読み出したページをリードデータとして出力する。
【００６３】
一方、フラグがフェイルである場合は、ブロックＢＬＫ内にオーバープログラムが発生したメモリセルが存在する。よって、制御部１７は、非選択ワード線読み出し電圧Ｖｒｅａｄを変更、すなわち、Ｖｒｅａｄより高い非選択ワード線読み出し電圧Ｖｒｅａｄ´に変更する（ステップＳ３０４）。続いて、制御部１７及びワード線制御回路１２は、電圧Ｖｒｅａｄ´を用いて再度リード処理を実行する（ステップＳ３０５）。そして、制御部１７は、再度読み出したページをリードデータとして出力する。
【００６４】
実施例１のようにＮＡＮＤフラッシュメモリ１を構成した場合でも、オーバープログラムに起因するＮＡＮＤフラッシュメモリ１の不良率を抑制することができる。
【００６５】
（実施例２）
オーバープログラムを判定するためのフラグの格納方式に係る他の構成例について説明する。図１３は、実施例２に係るＮＡＮＤフラッシュメモリ１の構成を示すブロック図である。ＮＡＮＤフラッシュメモリ１は、図１の構成に加えて、オーバープログラムを判定するためのフラグを格納するラッチ回路１９を新たに備えている。ラッチ回路１９は、ＤＲＡＭ（Dynamic Random Access Memory）などの揮発性半導体メモリからなり、ブロックと同じ数のビット数を記憶可能な容量を有する。
【００６６】
図１４は、ＮＡＮＤフラッシュメモリ１のデータ読み出し動作を示すフローチャートである。なお、フラグは、各ブロックの任意の１ページに格納されていてもよいし、全てのページに格納されていてもよい。
【００６７】
制御部１７は、外部から電源供給を受けると（パワーオン時）（ステップＳ４００）、全てのブロックＢＬＫからオーバープログラム判定用のフラグを読み出す（ステップＳ４０１）。続いて、制御部１７は、読み出されたフラグをラッチ回路１９に格納する（ステップＳ４０２）。
【００６８】
続いて、制御部１７は、ホストコントローラ２からリードコマンドを受ける（ステップＳ４０３）。続いて、制御部１７は、ラッチ回路１９に格納されたフラグのうち読み出し対象のブロックＢＬＫに対応するフラグを確認する（ステップＳ４０４，Ｓ４０５）。
【００６９】
フラグがパスである場合は、ブロックＢＬＫ内にオーバープログラムが発生したメモリセルが存在しない。よって、制御部１７は、電圧Ｖｒｅａｄを用いた通常のリード処理（ノーマルリード処理）を実行する（ステップＳ４０６）。このリード処理は、リードコマンド列に含まれるアドレスに対応するページに対して行われる。
【００７０】
一方、フラグがフェイルである場合は、ブロックＢＬＫ内にオーバープログラムが発生したメモリセルが存在する。よって、制御部１７は、非選択ワード線読み出し電圧Ｖｒｅａｄを変更、すなわち、図５に示すように、Ｖｒｅａｄより高い非選択ワード線読み出し電圧Ｖｒｅａｄ´に変更する（ステップＳ４０７）。そして、制御部１７及びワード線制御回路１２は、電圧Ｖｒｅａｄ´を用いてリード処理を実行する（ステップＳ４０８）。
【００７１】
実施例２のようにＮＡＮＤフラッシュメモリ１を構成した場合でも、オーバープログラムに起因するＮＡＮＤフラッシュメモリ１の不良率を抑制することができる。
【００７２】
なお、第１の実施形態において、図６の制御は、ブロック単位で行っているが、ページ単位で行うようにしてもよい。
【００７３】
また、フラグを管理する方法としては、ブロック単位ではなく、複数のブロックからなるエリアを単位としてフラグを管理するようにしてもよい。
【００７４】
また、フラグの書き込み方法としては、冗長ブロックにまとめて全てのフラグを書き込むようにしてもよい。
【００７５】
[第２の実施形態]
第２の実施形態は、図１に示したＮＡＮＤフラッシュメモリ１を搭載したメモリシステムに本発明を適用した構成例である。
【００７６】
図１５は、本発明の第２の実施形態に係るメモリシステム３０の構成を示すブロック図である。メモリシステム３０としては、例えばＳＳＤ（Solid State Drive）が挙げられる。
【００７７】
メモリシステム３０は、ＡＴＡインタフェース（ＡＴＡ  Ｉ／Ｆ）などのメモリ接続インタフェースを介してパーソナルコンピュータ或いはＣＰＵ（Central Processing Unit）コアなどのホスト装置２０と接続され、ホスト装置２０の外部メモリとして機能する。また、メモリシステム３０は、ＲＳ２３２Ｃインタフェース（ＲＳ２３２Ｃ  Ｉ／Ｆ）などの通信インタフェースを介して、デバッグ／製造検査用機器３１との間でデータを送受信することができる。
【００７８】
メモリシステム３０は、不揮発性半導体メモリとしてのＮＡＮＤフラッシュメモリ（以下、ＮＡＮＤメモリと略す）１と、ホストコントローラとしてのドライブ制御回路３２と、揮発性半導体メモリとしてのＤＲＡＭ３３と、フューズ３４と、電源回路３５と、状態表示用ＬＥＤ３６と、ドライブ内部の温度を検出する温度センサ３７とを備えている。
【００７９】
電源回路３５は、ホスト装置２０側の電源回路から供給される外部直流電源から複数の異なる内部直流電源を生成し、これら内部直流電源をメモリシステム３０内の各回路に供給する。また、電源回路３５は、外部電源の立ち上がりを検知し、パワーオンリセット信号を生成して、ドライブ制御回路３２に供給する。
【００８０】
フューズ３４は、ホスト装置２０側の電源回路とメモリシステム３０内部の電源回路３５との間に設けられている。外部電源回路から過電流が供給された場合、フューズ３４が切断され、内部回路の誤動作を防止する。
【００８１】
ＮＡＮＤメモリ１は、第１の実施形態で示した不揮発性半導体記憶装置（ＮＡＮＤフラッシュメモリ）１から構成される。メモリシステム３０は、複数のＮＡＮＤメモリ１（本実施形態では、一例として４個のＮＡＮＤメモリ１を示している）を備えており、４個のＮＡＮＤメモリ１は、４つのチャネル（ｃｈ０〜ｃｈ３）によってドライブ制御回路３２に接続されている。４個のＮＡＮＤメモリ１は、４つのチャネル（ｃｈ０〜ｃｈ３）によって並列動作やインターリーブ動作が可能である。
【００８２】
ＤＲＡＭ３３は、ホスト装置２０とＮＡＮＤメモリ１との間で、データ転送用キャッシュ及び作業領域用メモリなどとして機能する。ＤＲＡＭ３３の作業領域用メモリに記憶される内容は、例えばＮＡＮＤメモリ１に記憶されている各種管理テーブルが、起動時などに展開されたマスターテーブル（スナップショット）、或いは管理テーブルの変更差分であるログ情報などがある。
【００８３】
なお、ＤＲＡＭ３３の代わりに、ＦｅＲＡＭ（Ferroelectric Random Access Memory）、ＭＲＡＭ（Magnetoresistive Random Access Memory）、ＰＣＲＡＭ（Phase-Change Random Access Memory）などの不揮発性ランダムアクセスメモリを使用することも可能である。不揮発性ランダムアクセスメモリを使用する場合、電源切断時に各種管理テーブルなどをＮＡＮＤメモリ１に退避させる動作の一部又は全部を省略することができる。
【００８４】
ドライブ制御回路（ホストコントローラ）３２は、ホスト装置２０とＮＡＮＤメモリ１との間でＤＲＡＭ３３を介してデータ転送制御を行うとともに、メモリシステム３０内の各モジュールを制御する。また、ドライブ制御回路３２は、状態表示用ＬＥＤ３６にステータス表示用信号を供給するとともに、電源回路３５からのパワーオンリセット信号を受けて、リセット信号及びクロック信号をドライブ制御回路３２内及びメモリシステム３０内の各部に供給する機能も有している。ドライブ制御回路３２は、ＮＡＮＤメモリ１に対してホストコントローラの役割を果たし、すなわち、図１に示したホストコントローラ２に対応する。
【００８５】
図１６は、ドライブ制御回路３２のハードウェア的な内部構成例を示すブロック図である。ドライブ制御回路３２は、データアクセス用バス４１、第１の回路制御用バス４２、及び第２の回路制御用バス４３を備えている。第１の回路制御用バス４２には、ドライブ制御回路３２全体を制御するプロセッサ４４が接続されている。第１の回路制御用バス４２には、ブートＲＯＭ（Read Only Memory）４５がＲＯＭコントローラ４６を介して接続されている。ブートＲＯＭ４５には、ＮＡＮＤメモリ１に記憶された各管理プログラム（ＦＷ：ファームウエア）をブートするブート用プログラムが格納されている。
【００８６】
また、第１の回路制御用バス４２には、クロックコントローラ４７が接続されている。このクロックコントローラ４７は、電源回路３５からのパワーオンリセット信号を受けて、リセット信号及びクロック信号を各モジュールに供給する。
【００８７】
第２の回路制御用バス４３は、第１の回路制御用バス４２に接続されている。第２の回路制御用バス４３には、温度センサ３７からのデータを受けるためのＩ2Ｃ回路４８、状態表示用ＬＥＤ３６にステータス表示用信号を供給するパラレルＩＯ（ＰＩＯ）回路４９、ＲＳ２３２Ｃ  Ｉ／Ｆを制御するシリアルＩＯ（ＳＩＯ）回路５０が接続されている。
【００８８】
ＡＴＡインタフェースコントローラ（ＡＴＡコントローラ）５１、第１のＥＣＣ（Error Checking and Correcting）回路５２、ＮＡＮＤコントローラ５３、及びＤＲＡＭコントローラ５４は、データアクセス用バス４１と第１の回路制御用バス４２との両方に接続されている。ＡＴＡコントローラ５１は、ＡＴＡ  Ｉ／Ｆを介してホスト装置２０との間でデータを送受信する。データアクセス用バス４１には、データ作業領域及びファームウェア展開領域として使用されるＳＲＡＭ（Static Random Access Memory）５５がＳＲＡＭコントローラ５６を介して接続されている。ＮＡＮＤメモリ１に記憶されているファームウェアは起動時、ブートＲＯＭ４５に記憶されたブート用プログラムによってＳＲＡＭ５５に転送される。
【００８９】
ＮＡＮＤコントローラ５３は、ＮＡＮＤ  Ｉ／Ｆ５７、第２のＥＣＣ回路５８、及びＤＭＡ（Direct Memory Access）転送制御用のＤＭＡコントローラ５９を備えている。ＮＡＮＤ  Ｉ／Ｆ５７は、ＮＡＮＤメモリ１とのインタフェース処理を行う。ＤＭＡコントローラ５９は、ＮＡＮＤメモリ１とＤＲＡＭ３３との間のアクセス制御を行う。第２のＥＣＣ回路５８は第２のエラー訂正符号のエンコードを行い、また、第１のエラー訂正符合のエンコード及びデコードを行う。第１のＥＣＣ回路５２は、第２のエラー訂正符号のデコードを行う。第１のエラー訂正符号、第２のエラー誤り訂正符号は、例えば、ハミング符号、ＢＣＨ（Bose Chaudhuri Hocqenghem）符号、ＲＳ(Reed Solomon)符号、或いはＬＤＰＣ（Low Density Parity Check）符号等であり、第２のエラー訂正符号の訂正能力は、第１のエラー訂正符号の訂正能力よりも高いものとする。
【００９０】
（動作）
次に、メモリシステム３０の書き込み動作について説明する。図１７は、メモリシステム３０の書き込み動作を示すフローチャートである。
【００９１】
まず、ドライブ制御回路３２は、ＮＡＮＤメモリ１の任意のブロックに対してライト処理を実行する（ステップＳ５００）。具体的には、ドライブ制御回路３２は、ライトコマンド、アドレス、及びデータをＮＡＮＤメモリ１に送る。このライト処理が終了したか否かを確認する手段としては、例えば、ＮＡＮＤメモリ１から送られるレディー／ビジー信号（Ｒ／Ｂ信号）を用いる。
【００９２】
ブロックへのライト処理が終了した後、ドライブ制御回路３２は、ＮＡＮＤメモリ１に対してオーバープログラムベリファイコマンド（ＯＰＶコマンド）を発行する（ステップＳ５０１）。ＯＰＶコマンド列には、オーバープログラムベリファイの対象であるブロックアドレスも含まれる。このブロックアドレスは、ステップＳ５００においてライト処理を行ったブロックのアドレスである。オーバープログラムベリファイコマンドに応答して、ＮＡＮＤメモリ１は、第１の実施形態で説明したオーバープログラムベリファイを実行する。そして、ＮＡＮＤメモリ１は、オーバープログラムベリファイ対象であるブロックに対して、オーバープログラムが発生しているか否かを判定する。この時、オーバープログラムが発生していない場合はパス、オーバープログラムが発生した場合にはフェイルと判定される。
【００９３】
続いて、ドライブ制御回路３２は、ＮＡＮＤメモリ１に対してステータスリードコマンドを発行する（ステップＳ５０２）。ステータスリードコマンドに応答して、ＮＡＮＤメモリ１は、オーバープログラムベリファイの結果（パス／フェイル情報）であるステータス情報を出力する。ドライブ制御回路３２は、ＮＡＮＤメモリ１からのステータス情報を受ける（ステップＳ５０３）。
【００９４】
続いて、ドライブ制御回路３２は、パス／フェイル情報を、ＤＲＡＭ３３及びＮＡＮＤメモリ１に格納された管理テーブルに書き込む。なお、パス／フェイル情報をＮＡＮＤメモリ１にも書き込むのは、電源がオフされた場合でも、メモリシステム３０が管理テーブルを記憶可能とするためである。このように、ＤＲＡＭ３３及びＮＡＮＤメモリ１の管理テーブルにパス／フェイル情報が含まれているため、このパス／フェイル情報を確認することで、当該ブロックにオーバープログラムが発生しているか否かを判定することができる。
【００９５】
パス／フェイル情報を格納する管理テーブルとしては、論理／物理アドレス変換テーブルを用いることができる。ＮＡＮＤフラッシュメモリは、データの書き換え時にブロック間のデータコピー処理が必要となる特性を有するため、ホスト側で管理されている論理ブロックアドレスと、ＮＡＮＤフラッシュメモリ側の実際の物理ブロックアドレスとは一致しない。よって、論理／物理アドレス変換テーブルにより論理ブロックアドレスを物理ブロックアドレスに変換した後、物理ブロックアドレスに基づいて実際にアクセスすべきブロックが特定される。
【００９６】
図１８は、論理／物理アドレス変換テーブルの一例を説明する図である。昇順に並んだ論理ブロックアドレスの各々に対応して物理ブロックアドレスが記録されている。“０ｘ”は、１６進数を表す記号である。“ＦＦＦＦ”は、未割り当てを意味する。本実施形態では、論理／物理アドレス変換テーブルにフラグ領域を追加し、このフラグ領域に、オーバープログラムベリファイの結果であるパス／フェイル情報を格納する。フラグ領域に書き込まれるフラグのうち、データ“０”がパス、データ“１”がフェイルを意味する。なお、オーバープログラムベリファイの結果を書き込む管理テーブルとしては、論理／物理アドレス変換テーブルに限らず、ブロックの状態を管理する他のテーブル（ウェアレベリングの情報を管理するテーブルなど）を用いてもよい。
【００９７】
次に、データ読み出し動作について説明する。図１９は、メモリシステム３０のデータ読み出し動作を示すフローチャートである。
【００９８】
まず、ドライブ制御回路３２は、ＤＲＡＭ３３に格納された管理テーブルを参照する（ステップＳ６００）。この管理テーブルには、ブロックＢＬＫごとに、オーバープログラムベリファイの結果であるパス／フェイル情報が例えばフラグとして格納されている。続いて、ドライブ制御回路３２は、管理テーブルを用いて、読み出し対象であるブロックＢＬＫのパス／フェイル判定を行う（ステップＳ６０１）。
【００９９】
フラグがパスである場合は、読み出し対象であるブロックＢＬＫ内にオーバープログラムが発生したメモリセルが存在しない。よって、ドライブ制御回路３２は、通常のリード処理（ノーマルリード処理）を実行する（ステップＳ６０２）。すなわち、ドライブ制御回路３２は、ＮＡＮＤメモリ１にリードコマンド及びアドレスを送り、その後、ＮＡＮＤメモリ１からデータを受ける。ＮＡＮＤメモリ１側では、このリードコマンドに応答して、電圧Ｖｒｅａｄを用いた通常のリード処理を実行する。
【０１００】
一方、フラグがフェイルである場合は、読み出し対象であるブロックＢＬＫ内にオーバープログラムが発生したメモリセルが存在する。よって、ドライブ制御回路３２は、非選択ワード線読み出し電圧Ｖｒｅａｄを変更、すなわち、図５に示すように、Ｖｒｅａｄより高い非選択ワード線読み出し電圧Ｖｒｅａｄ´に変更するように、ＮＡＮＤメモリ１に命令する（ステップＳ６０３）。そして、ドライブ制御回路３２は、リード処理（ノーマルリード処理）を実行する（ステップＳ６０４）。すなわち、ドライブ制御回路３２は、ＮＡＮＤメモリ１にリードコマンド及びアドレスを送り、その後、ＮＡＮＤメモリ１からデータを受ける。ＮＡＮＤメモリ１側では、このリードコマンドに応答して、電圧Ｖｒｅａｄ´を用いてリード処理を実行する。
【０１０１】
（効果）
以上詳述したように第２の実施形態では、ホストコントローラ（ドライブ制御回路３２）は、ＮＡＮＤメモリ１の任意の第１のブロックにデータを書き込んだ後、ＮＡＮＤメモリ１に、第１のブロックに対してオーバープログラムベリファイを実行するよう命令する。続いて、ホストコントローラは、オーバープログラムベリファイの結果であるパス／フェイル情報をＮＡＮＤメモリ１から受け、パス／フェイル情報を管理テーブルを用いて管理する。一方、データ読み出し時には、ホストコントローラは、管理テーブルのパス／フェイル情報を用いて読み出し対象のブロックにオーバープログラムが発生しているか否かを判定する。そして、ホストコントローラは、オーバープログラムが発生しているブロックに対しては、非選択ワード線読み出し電圧Ｖｒｅａｄを本来の電圧より高くしてリード処理を行うようにＮＡＮＤメモリ１に命令するようにしている。
【０１０２】
従って第２の実施形態によれば、本来であればオーバープログラムによってデータ読み出しが不能になるブロックを救済することができる。このため、オーバープログラムに起因するメモリシステム３０の不良率を抑制することができる。
【０１０３】
また、非選択ワード線読み出し電圧Ｖｒｅａｄを高く設定する必要がなくなる。このため、リードディスターブを低減することができる。
【０１０４】
（実施例）
次に、メモリシステム３０のデータ書き込み動作の変形例について説明する。図２０は、変形例に係るメモリシステム３０のデータ書き込み動作を示すフローチャートである。なお、図２０において、ステップＳ７００〜Ｓ７０３の工程は、図１７のＳ５００〜Ｓ５０３の工程と同じである。
【０１０５】
続いて、ドライブ制御回路３２は、ステータス情報（パス／フェイル情報）を用いて、書き込み対象であるブロックＢＬＫのパス／フェイル判定を行う（ステップＳ７０４）。
【０１０６】
フラグがパスである場合は、書き込み対象であるブロックＢＬＫ内にオーバープログラムが発生したメモリセルが存在しない。従って、ステップＳ７００によってＮＡＮＤメモリ１に正常にデータが書き込まれているため、ドライブ制御回路３２は、ライト処理を終了する。
【０１０７】
一方、フラグがフェイルである場合は、書き込み対象であるブロックＢＬＫ内にオーバープログラムが発生したメモリセルが存在する。よって、以後、ドライブ制御回路３２は、書き込み対象であるブロックのデータを、別のブロックに移動するデータコピー処理を実行する。
【０１０８】
まず、ドライブ制御回路３２は、書き込み対象であるブロックＢＬＫに対して、リード処理を実行する（ステップＳ７０５）。すなわち、ドライブ制御回路３２は、ＮＡＮＤメモリ１にリードコマンド及びアドレスを送り、その後、ＮＡＮＤメモリ１からデータを受ける。このアドレスは、上記オーバープログラムが発生したブロックのアドレスである。
【０１０９】
続いて、ドライブ制御回路３２に含まれる第２のＥＣＣ回路５８は、ＮＡＮＤメモリ１からのリードデータに対してエラー訂正を実行する（ステップＳ７０６）。このエラー訂正を実行することで、オーバープログラムに起因してエラーとなったデータを訂正することができる。
【０１１０】
続いて、ドライブ制御回路３２は、上記オーバープログラムが発生したブロック以外のブロックに、再度、ライト処理を実行する（ステップＳ７０７）。具体的には、ドライブ制御回路３２は、ライトコマンド、アドレス、及びステップＳ７０６によりエラー訂正されたデータをＮＡＮＤメモリ１に送る。このライトコマンドに応答して、ＮＡＮＤメモリ１は、上記オーバープログラムが発生したブロック以外のブロックに、エラー訂正されたデータを書き込む。なお、オーバープログラムが発生したブロックは、バッドブロック化し、以後使用しないようにする。バッドブロックの管理も管理テーブルを用いて行われる。
【０１１１】
以上詳述したように変形例によれば、ＮＡＮＤメモリ１に格納されたデータの信頼性を向上させることができる。
【０１１２】
本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲内で、構成要素を変形して具体化することが可能である。さらに、上記実施形態には種々の段階の発明が含まれており、１つの実施形態に開示される複数の構成要素の適宜な組み合わせ、若しくは異なる実施形態に開示される構成要素の適宜な組み合わせにより種々の発明を構成することができる。例えば、実施形態に開示される全構成要素から幾つかの構成要素が削除されても、発明が解決しようとする課題が解決でき、発明の効果が得られる場合には、これらの構成要素が削除された実施形態が発明として抽出されうる。
【符号の説明】
【０１１３】
１…ＮＡＮＤフラッシュメモリ、２…ホストコントローラ、１０…メモリセルアレイ、１１…ビット線制御回路、１２…ワード線制御回路、１３…ソース線制御回路、１４…Ｐウェル制御回路、１５…データ入出力バッファ、１６…コマンドインターフェイス、１７…制御部、１８…選択回路、１９…ラッチ回路、２０…ホスト装置、３０…メモリシステム、３１…デバッグ／製造検査用機器、３２…ドライブ制御回路、３３…ＤＲＡＭ、３４…フューズ、３５…電源回路、３６…状態表示用ＬＥＤ、３７…温度センサ、４１…データアクセス用バス、４２…第１の回路制御用バス、４３…第２の回路制御用バス、４４…プロセッサ、４５…ブートＲＯＭ、４６…ＲＯＭコントローラ、４７…クロックコントローラ、４８…Ｉ２Ｃ回路、４９…ＰＩＯ回路、５０…ＳＩＯ回路、５１…ＡＴＡコントローラ、５２…第１のＥＣＣ回路、５３…ＮＡＮＤコントローラ、５４…ＤＲＡＭコントローラ、５５…ＳＲＡＭ、５６…ＳＲＡＭコントローラ、５８…第２のＥＣＣ回路、５９…ＤＭＡコントローラ。
【図１】
0005550386.tif 000002
【図２】
0005550386.tif 000003
【図３】
0005550386.tif 000004
【図４】
0005550386.tif 000005
【図５】
0005550386.tif 000006
【図６】
0005550386.tif 000007
【図７】
0005550386.tif 000008
【図８】
0005550386.tif 000009
【図９】
0005550386.tif 000010
【図１０】
0005550386.tif 000011
【図１１】
0005550386.tif 000012
【図１２】
0005550386.tif 000013
【図１３】
0005550386.tif 000014
【図１４】
0005550386.tif 000015
【図１５】
0005550386.tif 000016
【図１６】
0005550386.tif 000017
【図１７】
0005550386.tif 000018
【図１８】
0005550386.tif 000019
【図１９】
0005550386.tif 000020
【図２０】
0005550386.tif 000021