(57)【特許請求の範囲】
【請求項１】
プログラム動作の対象となる選択メモリセルを含むメモリセルアレイと、前記選択メモリセルに接続される選択ワード線を選択するロウデコーダと、前記選択メモリセルに記録するプログラムデータをラッチするデータラッチ回路と、前記選択メモリセルへの前記プログラムデータの記録の完了／未完了を判定するベリファイ回路と、前記プログラム動作の終了前に外部コントローラにステータス情報を出力する制御回路とを具備し、
前記制御回路は、
前記選択ワード線に対する書き込みパルスの印加とベリファイ読み出し動作とを繰り返す第１の手段と、前記ベリファイ回路により前記プログラムデータの記録が完了と判断された後に前記選択メモリセルに対して読み出し動作を行う第２の手段と、前記読み出し動作により読み出されたデータと前記プログラムデータとが一致するときに前記外部コントローラに前記プログラム動作がパスしたことを示す前記ステータス情報を出力し、両者が一致しないときに前記外部コントローラに前記プログラム動作がフェイルしたことを示す前記ステータス情報を出力する第３の手段とを備え、
前記データラッチ回路は、前記ベリファイ回路により前記プログラムデータの記録が完了と判断された後も前記プログラムデータをラッチし続ける
ことを特徴とする不揮発性半導体メモリ。
【請求項２】
プログラム動作の対象となる選択メモリセルを含むメモリセルアレイと、前記選択メモリセルに接続される選択ワード線を選択するロウデコーダと、前記選択メモリセルに記録するプログラムデータをラッチするデータラッチ回路と、前記選択メモリセルへの前記プログラムデータの記録の完了／未完了を判定するベリファイ回路と、前記プログラム動作の終了前に外部コントローラにステータス情報を出力する制御回路とを具備し、
前記制御回路は、
前記選択ワード線に対する書き込みパルスの印加とベリファイ読み出し動作とを繰り返す第１の手段と、前記ベリファイ回路により前記プログラムデータの記録が完了と判断された後に前記選択メモリセル以外の前記選択ワード線に接続される不良判定セルに対して読み出し動作を行う第２の手段と、前記読み出し動作により読み出されたデータが期待値とが一致するときに前記外部コントローラに前記プログラム動作がパスしたことを示す前記ステータス情報を出力し、両者が一致しないときに前記外部コントローラに前記プログラム動作がフェイルしたことを示す前記ステータス情報を出力する第３の手段とを備え、
前記不良判定セルは、前記選択ワード線の先端部に接続される
ことを特徴とする不揮発性半導体メモリ。
【請求項３】
プログラム動作の対象となる選択メモリセルを含むメモリセルアレイと、前記選択メモリセルに接続される選択ワード線を選択するロウデコーダと、前記選択メモリセルに記録するプログラムデータをラッチするデータラッチ回路と、前記選択メモリセルへの前記プログラムデータの記録の完了／未完了を判定するベリファイ回路と、前記プログラム動作の終了前に外部コントローラにステータス情報を出力する制御回路とを具備し、
前記制御回路は、
前記選択ワード線に対する書き込みパルスの印加とベリファイ読み出し動作とを繰り返す第１の手段と、前記ベリファイ回路により前記プログラムデータの記録が完了と判断された後に前記選択メモリセル以外の前記選択ワード線に接続される第１及び第２の不良判定セルに対して読み出し動作を行う第２の手段と、前記読み出し動作により読み出されたデータが期待値とが一致するときに前記外部コントローラに前記プログラム動作がパスしたことを示す前記ステータス情報を出力し、両者が一致しないときに前記外部コントローラに前記プログラム動作がフェイルしたことを示す前記ステータス情報を出力する第３の手段とを備え、
前記第１の不良判定セルは、前記選択ワード線の先端部に接続され、前記第２の不良判定セルは、前記選択ワード線の中央部に接続される
ことを特徴とする不揮発性半導体メモリ。
【請求項４】
プログラム動作の対象となる選択メモリセルを含むメモリセルアレイと、前記選択メモリセルに接続される選択ワード線を選択するロウデコーダと、前記選択メモリセルに記録するプログラムデータをラッチするデータラッチ回路と、前記選択メモリセルへの前記プログラムデータの記録の完了／未完了を判定するベリファイ回路と、前記プログラム動作の終了前に外部コントローラにステータス情報を出力する制御回路とを具備し、
前記制御回路は、
前記選択ワード線に対する書き込みパルスの印加とベリファイ読み出し動作とを繰り返す第１の手段と、前記ベリファイ回路により前記プログラムデータの記録が完了と判断された後に前記選択メモリセル以外の前記選択ワード線に接続される不良判定セルに対して読み出し動作を行う第２の手段と、前記読み出し動作により読み出されたデータが期待値とが一致するときに前記外部コントローラに前記プログラム動作がパスしたことを示す前記ステータス情報を出力し、両者が一致しないときに前記外部コントローラに前記プログラム動作がフェイルしたことを示す前記ステータス情報を出力する第３の手段とを備え、
前記不良判定セルは、前記選択メモリセルがｎ（ｎは、２以上の自然数）ビットを記録可能であるときに、前記プログラムデータが前記ｎビットのうちのいずれであるかを示すデータを記録する
ことを特徴とする不揮発性半導体メモリ。
【請求項５】
前記外部コントローラは、前記プログラム動作がフェイルしたことを示す前記ステータス情報を受けとったときに、前記選択メモリセル及び前記選択ワード線を変更し、再び前記プログラム動作を開始することを特徴とする請求項１乃至４のいずれか１項に記載の不揮発性半導体メモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、不揮発性半導体メモリに関する。
【背景技術】
【０００２】
近年、不揮発性半導体メモリの微細化が進んだ結果、製品出荷後にワード線が高抵抗化する、といった不良モードが発生することが確認された。
【０００３】
ワード線が完全に切断されたときは、プログラムを正常に行うことができないため、不揮発性半導体メモリは、プログラムベリファイ動作でその不良（ステータスフェイル）を外部コントローラに知らせることができる。従って、外部コントローラは、例えば、ワード線を変更するなどの処置を施した後に、再びプログラム動作を指示することができる。
【０００４】
しかし、プログラムベリファイ動作が正常に行え、読み出し動作が正常に行えない、といったようなワード線の微妙な高抵抗化が発生したときは、プログラムベリファイ動作が終了（ステータスパス）し、プログラムは正常に行われたと判断されるため、外部コントローラは、既にプログラムデータを保持していない。従って、この後、読み出し動作が行われると、不揮発性半導体メモリからデータを読み出すことができないばかりか、再びプログラム動作を行うこともできず、結果として、システムエラーとなる。
【０００５】
これでは、ユーザは、不揮発性半導体メモリに記録したデータを永久に読み出すことができず、非常に問題である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−９７３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
実施形態は、プログラムが正常に行われた後にそのデータを読み出すことができないといった不良の有無をプログラム動作の終了前に判定する技術を提案する。
【課題を解決するための手段】
【０００８】
実施形態によれば、不揮発性半導体メモリは、プログラム動作の対象となる選択メモリセルを含むメモリセルアレイと、前記選択メモリセルに接続される選択ワード線を選択するロウデコーダと、前記選択メモリセルに記録するプログラムデータをラッチするデータラッチ回路と、前記選択メモリセルへの前記プログラムデータの記録の完了／未完了を判定するベリファイ回路と、前記プログラム動作の終了前に外部コントローラにステータス情報を出力する制御回路とを備え、前記制御回路は、前記選択ワード線に対する書き込みパルスの印加とベリファイ読み出し動作とを繰り返す第１の手段と、前記ベリファイ回路により前記プログラムデータの記録が完了と判断された後に前記選択メモリセルに対して読み出し動作を行う第２の手段と、前記読み出し動作により読み出されたデータと前記プログラムデータとが一致するときに前記外部コントローラに前記プログラム動作がパスしたことを示す前記ステータス情報を出力し、両者が一致しないときに前記外部コントローラに前記プログラム動作がフェイルしたことを示す前記ステータス情報を出力する第３の手段とを備え、前記データラッチ回路は、前記ベリファイ回路により前記プログラムデータの記録が完了と判断された後も前記プログラムデータをラッチし続ける。
【図面の簡単な説明】
【０００９】
【図１】実施形態のメモリシステムを示す図。
【図２】プログラム動作のフローチャート。
【図３】プログラム動作終了前の読み出し動作の例を示す図。
【図４】プログラム動作終了前の読み出し動作の例を示す図。
【図５】プログラム動作終了前の読み出し動作の例を示す図。
【図６】プログラム動作終了前の読み出し動作の例を示す図。
【図７】プログラム動作終了前の読み出し動作の例を示す図。
【図８】適用例のＮＡＮＤフラッシュメモリを示す図。
【図９】メモリセルの閾値分布の例を示す図。
【図１０】メモリセルアレイコア部を示す図。
【図１１】ＬＭフラグの閾値分布の例を示す図。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら実施形態を説明する。
【００１１】
１．  実施形態  
実施形態は、プログラムが正常に行われた後にそのデータを読み出すことができないといった不良（読み出し不良）の有無をプログラム動作の終了前に判定する技術を提案するものである。ここで、プログラム動作は、プログラムデータに応じて、閾値を変化させない動作（書き込み禁止）と閾値を上昇させる動作（書き込み実行）とを備える。また、単に読み出しといったときは、プログラム完了後の読み出しを意味し、プログラムが完了したか否かを判定するベリファイ動作中の読み出し（ベリファイ読み出し）を含まないものとする。読み出し動作とベリファイ読み出し動作とは、動作上、明確に異なるため、以下の説明では、両者を明確に区別する。
【００１２】
図１は、実施形態に係わるメモリシステムを示している。
【００１３】
不揮発性半導体メモリ（例えば、ＮＡＮＤフラッシュメモリ）１０Ａ及び外部コントローラ（例えば、ＮＡＮＤコントローラ）１０Ｂは、データバス１０Ｃを介して互いに接続される。外部コントローラ１０Ｂは、不揮発性半導体メモリ１０Ａに対するプログラム動作を制御する。
【００１４】
メモリセルアレイ１１は、プログラム動作の対象となる選択メモリセルを含む。ロウデコーダ１２は、選択メモリセルに接続される選択ワード線を選択する。電位発生回路１３は、プログラム動作において、選択ワード線に印加する高電位（プログラム電位）を発生する。
【００１５】
データラッチ回路１４は、選択メモリセルに記録するプログラムデータをラッチする。データバッファ１５は、不揮発性半導体メモリ１０Ａのデータ入出力のインターフェイス回路として機能する。ベリファイ回路１６は、選択メモリセルへのプログラムデータの記録の完了／未完了を判定する。
【００１６】
制御回路１７は、ベリファイ回路１６による判定結果に基づいて、プログラム動作の終了前に外部コントローラ１０Ｂにステータス情報ＳＴＡＴＵＳを出力する。
【００１７】
図２は、図１の制御回路１７によるプログラム動作を示している。
【００１８】
外部コントローラ１０Ｂが不揮発性半導体メモリ１０Ａに対してプログラム動作を指示すると、制御回路１７は、まず、プログラム動作のセットアップ（レジスタのリセット、チャージポンプ回路の起動など）を行う（ステップＳＴ１）。
【００１９】
次に、プログラム動作の対象となる選択メモリセルに接続される選択ワード線に書き込みパルスを印加し、選択メモリセルに対するプログラム動作を実行する（ステップＳＴ２）。例えば、“１”−プログラミングの場合、書き込みパルスの印加により選択メモリセルのチャネル電位がブーストされ、書き込み（閾値の上昇）が禁止される。また、“０”−プログラミングの場合、書き込みパルスの印加中に選択メモリセルのチャネル電位が０Ｖに固定され、書き込み（閾値の上昇）が実行される。
【００２０】
選択メモリセルのチャネル電位をブーストするか、又は０Ｖに固定するかは、データラッチ回路１４にラッチされたプログラムデータに基づいて判断する。例えば、データラッチ回路１４にラッチされたデータが“１”であれば、選択メモリセルのチャネルにプラス電位を転送することにより、選択メモリセルのチャネル電位をブーストすることが可能である。また、データラッチ回路１４にラッチされたデータが“０”であれば、選択メモリセルのチャネルに０Ｖを転送することにより、選択メモリセルのチャネル電位を０Ｖに固定することが可能である。
【００２１】
この後、選択メモリセルへのプログラムデータの記録の完了／未完了を判定するベリファイ動作（ベリファイ読み出し）が実行される（ステップＳＴ３〜ＳＴ５）。ベリファイ動作では、“０”−プログラミングの選択メモリセルの閾値がベリファイ読み出し電位よりも大きいか否かについて判定される。
【００２２】
選択メモリセルの閾値がベリファイ読み出し電位よりも小さいときは、プログラムデータの記録が未完了であるため、再び書き込みパルスの印加が実行される。選択メモリセルの閾値がベリファイ読み出し電位よりも大きいときは、プログラムデータの記録が完了であるため、この後、再び書き込みが行われないように、データラッチ回路にラッチされたデータを“０”から“１”に変更する。
【００２３】
ここで、選択メモリセルがｎ（ｎは、２以上の自然数）ビット（２ｎ値）を記録可能であり、かつ、下位ビット以外の上位ビットを記録するときは、ベリファイ読み出しは、複数の値を持つベリファイ読み出し電位を用いて行う。これら複数の値のうちのいずれを基準とするかは、選択メモリセルに既に記録されている下位ビットの値と、これから記録する上位ビットの値に基づいて判断する。
【００２４】
そして、選択ワード線に接続されるプログラム動作の対象となる全ての選択メモリセルに対してプログラムデータの記録が完了したとき、データラッチ回路１４にラッチされたデータは、全て“１”になるため、ベリファイ回路１６は、このプログラム完了を制御回路１７に通知する。
【００２５】
コンベンショナルな技術によれば、制御回路１７によるプログラム動作は、ここまで（図２の破線内）である。従って、制御回路１７は、ベリファイ回路１６によりプログラムデータの記録が完了と判断されると、外部コントローラ１０Ｂにプログラム動作がパスしたことを示すステータス情報ＳＴＡＴＵＳ（パス）を出力し、書き込み回数が最大値Ｎmaxになってもプログラムデータの記録が未完了と判断されると、外部コントローラ１０Ｂにプログラム動作がフェイルしたことを示すステータス情報ＳＴＡＴＵＳ（フェイル）を出力する。
【００２６】
しかし、これでは、プログラム動作が正常に行え、読み出し動作が正常に行えない、といったようなワード線の微妙な高抵抗化不良を検出することができない。
【００２７】
そこで、実施形態では、ベリファイ回路１６によりプログラムデータの記録が完了と判断された後（プログラムベリファイがパスした後）に、選択メモリセルに対して読み出し不良を検出するための読み出し動作を行う（ステップＳＴ６〜ＳＴ７）。
【００２８】
この読み出し動作では、読み出し電位に基づいて、選択メモリセルに記録されたデータが“１”であるか、又は“０”であるかについて判定される。例えば、選択メモリセルの閾値が読み出し電位よりも小さいときは、選択メモリセルに記録されたデータが“１”であると判定され、選択メモリセルの閾値が読み出し電位よりも大きいときは、選択メモリセルに記録されたデータが“０”であると判定される。
【００２９】
ここで、選択メモリセルがｎビット（２ｎ値）を記録可能であり、かつ、選択メモリセルに２ビット（４値）以上が記録されているときは、読み出しは、複数の値を持つ読み出し電位を用いて行う。これら複数の値を用いることにより、選択メモリセルに記録されたｎビット（２ｎ値）の全てを読み出すことができる。
【００３０】
そして、この読み出し動作により読み出されたデータとプログラムデータとが一致するときは、制御回路１７は、読み出し不良が存在しないと判定し、外部コントローラ１０Ｂにプログラム動作がパスしたことを示すステータス情報ＳＴＡＴＵＳ（パス）を出力し、両者が一致しないときは、制御回路１７は、読み出し不良が存在すると判定し、外部コントローラ１０Ｂにプログラム動作がフェイルしたことを示すステータス情報ＳＴＡＴＵＳ（フェイル）を出力する。
【００３１】
即ち、実施形態によれば、不揮発性半導体メモリ１０Ａから外部コントローラ１０Ｂに転送するステータス情報ＳＴＡＴＵＳは、プログラムが正確に行われたか否かを示す情報と、読み出し不良が存在するか否かを示す情報とのアンドとなっている。
【００３２】
従って、プログラム動作が正常に行え、読み出し動作が正常に行えない、といったようなワード線の微妙な高抵抗化不良の有無を、プログラム動作の終了前に判定することができる。
【００３３】
プログラム動作の終了前においては、外部コントローラ１０Ｂは、プログラムデータを保持しているため、その不良が検出されたときは、例えば、ワード線を変更するなどの処置を施した後に、再びプログラム動作を行うことができる。このため、ユーザが不揮発性半導体メモリに記録したデータを永久に読み出すことができなくなる、といった問題が発生することはない。
【００３４】
ところで、上述のプログラム動作で説明したように、選択ワード線に接続されるプログラム動作の対象となる全ての選択メモリセルに対してプログラムデータの記録が完了したとき、データラッチ回路１４にラッチされたデータは、全て“１”になる。即ち、コンベンショナルな技術によれば、プログラムデータの記録が完了と判断された後（プログラムベリファイがパスした後）において、データラッチ回路は、プログラムデータをラッチしていない。
【００３５】
そこで、実施形態では、データラッチ回路１４は、ベリファイ回路１６によりプログラムデータの記録が完了と判断された後もプログラムデータをラッチし続ける。これについては、以下の手段により実現する。
【００３６】
例えば、プログラムデータの記録の完了／未完了を判定するために、１つの選択メモリセルに対して１つのデータラッチ部が必要であるため、これとは別に、その１つの選択メモリセルに対して、プログラムデータの記録が完了と判断された後もプログラムデータをラッチし続けるもう１つのデータラッチ部を設ける。
【００３７】
後者のデータラッチ部は、コンベンショナルな不揮発性半導体メモリに既存の回路を用いることも可能であるし、新規に追加することも可能である。また、読み出し不良を検出するためのプログラムデータは、データラッチ回路１４以外の記録部に記録しておいても構わない。
【００３８】
図３は、読み出し不良を検出するための読み出し動作の例を示している。  
本例は、上述のプログラム動作における読み出し動作に相当する。
【００３９】
この読み出し動作は、プログラム動作の対象となる選択メモリセルに対して行うものであるから、読み出し不良が存在するか否かの判定は、選択メモリセルからの読み出しデータとプログラムデータとの比較により行わなければならない。
【００４０】
しかし、プログラムベリファイがパスした後においても、プログラムデータをラッチし続けておくことは、容易なことではない。
【００４１】
そこで、読み出し不良の性質を考慮し、選択メモリセル以外のメモリセル（不良判定セル）を対象とする読み出し動作の例について説明する。
【００４２】
プログラム動作後の読み出し不良は、ワード線が微妙に高抵抗化する、といった不良であり、主に、ワード線の先端部（高電位の供給源となるロウデコーダ１２側を基準とする）において発生し易い。
【００４３】
そこで、例えば、不良判定セルは、選択ワード線の先端部に接続され、プログラム動作の対象とならないリファレンスセルとする。この不良判定セルから読み出されたデータが期待値と一致するか否かを判定することにより、ワード線の先端部において発生し易いワード線の高抵抗化（切断を含む）、即ち、読み出し不良を検出することができる。
【００４４】
即ち、両者が一致するときは、外部コントローラ１０Ｂにプログラム動作がパスしたことを示すステータス情報ＳＴＡＴＵＳを出力し、両者が一致しないときは、外部コントローラ１０Ｂにプログラム動作がフェイルしたことを示すステータス情報ＳＴＡＴＵＳを出力する。
【００４５】
尚、プログラム動作中において、不良判定セルに対して書き込みを行わなければ、期待値は、消去状態（例えば、“１”）となる。また、不良判定セルは、選択ワード線に接続される複数の選択メモリセルのうち、最も選択ワード線の先端部にある１つ以上の選択メモリセルとしても良い。
【００４６】
図４は、読み出し不良を検出するための読み出し動作の他の例を示している。
【００４７】
本例は、読み出し不良を判定するために、第１、第２及び第３の不良判定セルを用意し、第１の不良判定セルをワード線ＷＬの先端部（カラムＣ１）に接続し、第２の不良判定セルをワード線ＷＬの中央部（カラムＣ２）に接続し、第３の不良判定セルをワード線ＷＬの根元部（カラムＣ３）に接続する。
【００４８】
この例によれば、不良範囲を特定することが可能になる。
【００４９】
例えば、第１の不良判定セル（カラムＣ１）からの読み出しが不可であり、第２及び第３の不良判定セル（カラムＣ２，Ｃ３）からの読み出しが可であるとき、ワード線ＷＬの切断部Ａは、カラムＣ１とカラムＣ２との間にあると想定される。そこで、このような不良が発生したときは、カラムＣ１とカラムＣ２との間の選択メモリセルに対しては、ステータスフェイルとし、カラムＣ２とカラムＣ３との間の選択メモリセルに対しては、ステータスパスとすることも可能である。
【００５０】
図５は、図４の読み出し動作の変形例である。
【００５１】
この例では、メモリセルアレイの両側にそれぞれロウデコーダが配置される。例えば、右側のロウデコーダを基準としたときは、ワード線ＷＬの先端部は、カラムＣ３、ワード線ＷＬの中央部は、カラムＣ２、ワード線ＷＬの根元部は、カラムＣ１である。
【００５２】
ワード線ＷＬの切断部ＢがカラムＣ２とカラムＣ３との間にあるとき、図４と同様の手法により、カラムＣ２とカラムＣ３との間の選択メモリセルに対しては、ステータスフェイルとし、カラムＣ１とカラムＣ２との間の選択メモリセルに対しては、ステータスパスとすることも可能である。
【００５３】
図６は、読み出し不良を検出するための読み出し動作の他の例を示している。
【００５４】
本例は、不良判定セルとして、２ｎ（ｎは、２以上の自然数）値不揮発性半導体メモリに既存のＬＭ（lower middle）フラグエリア内のメモリセルを利用する。ＬＭフラグエリアは、選択メモリセルがｎビット（２ｎ値）を記録可能であるときに、プログラムデータがｎビットのうちのいずれであるかを示すデータを記録する。
【００５５】
また、ＬＭフラグエリアは、一般的にワード線ＷＬの先端部に設けられるため、そのデータを読み出し、読み出し不良の判定に用いることは、ワード線の先端部においてワード線の高抵抗化（切断を含む）による読み出し不良が発生し易い、といった実情にマッチする。
【００５６】
この例によれば、読み出し不良を検出するための専用の不良判定セル（リファレンスセル）を設けることなく、既存のＬＭフラグエリア内のメモリセルのデータを読み出すことにより読み出し不良を判定することができるため、メモリセルアレイの大容量化に影響を与えることがない。
【００５７】
図７は、図６の読み出し動作の変形例である。
【００５８】
この例では、メモリセルアレイの両側にそれぞれロウデコーダが配置される。この場合、ＬＭフラグエリアも、メモリセルアレイの両側にそれぞれ配置される。
【００５９】
この場合、左側のロウデコーダにより駆動されるワード線に接続されるメモリセルの読み出し不良を検出するときは、メモリセルアレイの右端にあるＬＭフラグエリア内のメモリセルのデータを読み出し、右側のロウデコーダにより駆動されるワード線に接続されるメモリセルの読み出し不良を検出するときは、メモリセルアレイの左端にあるＬＭフラグエリア内のメモリセルのデータを読み出す。
【００６０】
２．  適用例  
実施形態は、微細化によりワード線が細くかつ長くなった不揮発性半導体メモリ全般に適用可能である。そのようなメモリとして、ＮＡＮＤフラッシュメモリや、ＮＯＲフラッシュメモリなどがある。また、実施形態は、デバイス構造、読み出し／書き込み方式、１セルに記録するビット数（２値又は多値）などに制限されることはない。例えば、実施形態は、読み出し／書き込みを偶数番目のビット線と奇数番目のビット線とに分けるシールドビット線方式、及び、読み出し／書き込みを全てのビット線に対して同時に行うＡＢＬ（All bit line）方式のいずれにも適用可能である。
【００６１】
以下、実施形態をＮＡＮＤフラッシュメモリに適用した適用例を説明する。
【００６２】
図８は、ＮＡＮＤフラッシュメモリを示している。
【００６３】
メモリセルアレイ１１は、例えば、Ｙ方向に並んで配置されるｊ（ｊは、２以上の自然数）個のＮＡＮＤブロックＢＫ０，ＢＫ１，…ＢＫｊ−１から構成される。ＮＡＮＤブロックＢＫ０，ＢＫ１，…ＢＫｊ−１は、それぞれ、ＮＡＮＤセルユニットＣＵを有する。
【００６４】
ＮＡＮＤセルユニットＣＵは、直列接続されるｎ（ｎは、２以上の自然数）個のメモリセルＭＣ０，…ＭＣｎ−１と、その両端に一つずつ接続される２個のセレクトゲートトランジスタＳＴＳ，ＳＴＤとから構成される。
【００６５】
ＮＡＮＤブロックＢＫ０，ＢＫ１，…ＢＫｊ−１内において、ｎ本のワード線ＷＬ０，…ＷＬｎ−１は、Ｘ方向に延び、メモリセルＭＣ０，…ＭＣｎ−１のコントロールゲートに接続される。また、２本のセレクトゲート線ＳＧＳ，ＳＧＤは、Ｘ方向に延び、２個のセレクトゲートトランジスタＳＴＳ，ＳＴＤのゲートに接続される。
【００６６】
ｍ（ｍは、２以上の自然数）本のビット線ＢＬ０，ＢＬ１，…ＢＬｍ−２，ＢＬｍ−１は、Ｙ方向に延び、ＮＡＮＤセルユニットＣＵのドレイン側に配置されるセレクトゲートトランジスタＳＴＤに接続される。ＮＡＮＤセルユニットＣＵのソース側に配置されるセレクトゲートトランジスタＳＴＳは、ソース線（セルソース）ＳＬに接続される。
【００６７】
メモリセルアレイ１１のＸ方向の端部には、ロウデコーダ１２が配置される。本例では、ロウデコーダ１２は、メモリセルアレイ１１のＸ方向の二つの端部にそれぞれ配置されるが、メモリセルアレイ１１のＸ方向の二つの端部のうちの一つに配置してもよい。
【００６８】
メモリセルアレイ１１のＹ方向の端部には、データラッチ回路１４及びデータ転送制御回路１８が配置される。
【００６９】
データラッチ回路１４は、読み出し／書き込み時に、データを一時的にラッチする機能を有する。また、データ転送制御回路１８は、カラムデコーダを含み、読み出し／書き込み時に、メモリセルアレイ１１内の各カラムに対するデータ転送を制御する。
【００７０】
本例では、データラッチ回路１４及びデータ転送制御回路１８は、メモリセルアレイ１１のＹ方向の二つの端部にそれぞれ配置される。このようなフロアプランは、例えば、メモリセルアレイ１１内の全てのビット線からデータを読み出すＡＢＬ方式に採用される。
【００７１】
但し、データラッチ回路１４及びデータ転送制御回路１８は、メモリセルアレイ１１のＹ方向の二つの端部のうちの一つに配置してもよい。
【００７２】
図９は、メモリセルの閾値分布の例を示している。  
同図（ａ）は、下位ビットの書き込みが行われた状態である。
【００７３】
メモリセルの初期状態は、消去状態であり、その閾値分布は、Ｅｒである。下位ビットが“１”のときは、書き込みが禁止されるため、メモリセルの閾値分布は、Ｅｒのままとなる。これに対し、下位ビットが“０”のときは、書き込みが行われ、メモリセルの閾値分布は、ＥｒからＡ-lowerにシフトする。
【００７４】
実施形態のベリファイ読み出しは、対象となるメモリセルに読み出し電位としてＡvr-lowerを与えることにより行う。また、実施形態の読み出しは、対象となるメモリセルに読み出し電位としてＡrを与えることにより行う。
【００７５】
ここで、下位ビットの書き込みのみが行われた状態において、下位ビット“０”のメモリセルの閾値分布Ａ-lowerは、同図（ｂ）の下位ビット及び上位ビットの双方を書き込んだ状態のメモリセルの閾値分布とは異なる。
【００７６】
この状態は、粗書き状態、又は、Ａ-lowerが同図（ｂ）のＥｒ、Ａ、Ｂ、Ｃの中央に位置することから、ＬＭ(Lower middle)状態と称される。
【００７７】
同図（ｂ）は、下位ビット及び上位ビットの書き込みが行われた状態である。
【００７８】
４値データを記録可能なメモリセルに対して２値データを記録させる場合には、これを下位ビットとして記録する。また、４値データを記録可能なメモリセルに対して４値データを記録させる場合には、まず、下位ビットの書き込みを行った後に上位ビットの書き込みを行う。
【００７９】
そこで、以下では、下位ビットが書き込まれた状態から、上位ビットを書き込む場合について説明する。
【００８０】
まず、下位ビットが“１”の場合を説明する。
【００８１】
この場合、上位ビットが“１”のときは、書き込みが禁止されるため、メモリセルの閾値分布は、Ｅｒのままとなる。これに対し、上位ビットが“０”のときは、書き込みが行われ、メモリセルの閾値分布は、ＥｒからＡにシフトする。
【００８２】
次に、下位ビットが“０”の場合を説明する。
【００８３】
この場合、上位ビットが“１”のときは、書き込みが行われ、メモリセルの閾値分布は、Ａ-lowerからＣにシフトする。また、上位ビットが“０”のときは、書き込みが行われ、メモリセルの閾値分布は、Ａ-lowerからＢにシフトする。
【００８４】
実施形態のベリファイ読み出しは、対象となるメモリセルに読み出し電位として、Ａvr、Ｂvr、又は、Ｃvrを与えることにより行う。また、実施形態の読み出しは、対象となるメモリセルに読み出し電位としてＡr、Ｂr、又は、Ｃrを与えることにより行う。
【００８５】
ここで、下位ビットが書き込まれた状態から上位ビットを書き込むに当っては、ＥｒからＡへ、Ａ-lowerからＢへ、さらに、Ａ-lowerからＣへの閾値分布のシフト量が小さくなっている。
【００８６】
従って、上位ビットを書き込むときに発生する容量結合効果による閾値分布の広がりを抑えることができる。
【００８７】
ところで、ＬＭモードでは、読み出し／書き込みの対象となるメモリセルに記録されているデータが、下位ビットのみであるのか、又は、下位ビット及び上位ビットの双方であるのかを、ＬＭフラグを用いて判断する。
【００８８】
そこで、以下、ＬＭフラグについて説明する。
【００８９】
図１０は、メモリセルアレイコア部の詳細を示している。
【００９０】
メモリセルアレイコア部は、メモリセルアレイ１１、データラッチ回路１４及びデータ転送制御回路１８を含む。１９は、データバスである。
【００９１】
メモリセルアレイ１１は、メインデータ（例えば、ファイルデータ）が記録されるメインエリア１１−１と、ＥＣＣ(Error correct circuit)によるデータ訂正のためのデータが記録されるＥＣＣエリア１１−２と、ＬＭフラグが記録されるＬＭフラグエリア１１−３と、冗長データが記録されるリダンダンシイエリア１１−４とから構成される。
【００９２】
また、データラッチ回路１４は、第１ラッチ回路ＬＡ−１と第２ラッチ回路ＬＡ−２とから構成される。この２つのラッチ回路ＬＡ−１，ＬＡ−２は、４値（２ビット）データの読み出し／書き込みに使用する。
【００９３】
データラッチ回路１４−１は、メインエリア１１−１に対応し、データラッチ回路１４−２は、ＥＣＣエリア１１−２に対応し、データラッチ回路１４−３は、ＬＭフラグエリア１１−３に対応し、データラッチ回路１４−４は、リダンダンシイエリア１１−４に対応する。
【００９４】
図１１は、ＬＭフラグの閾値分布の例を示している。
【００９５】
ここでは、ＬＭフラグは、１つのメモリセルから構成され、１つのロウ（例えば、ページ）に１つ設けられるものとする。
【００９６】
まず、メインエリアのメモリセルに下位ビットのみが書き込まれている場合、ＬＭフラグに対しても下位ビットのみが書き込まれている必要がある。なぜなら、メインエリアのメモリセルとＬＭフラグとは、両者に共通のワード線に接続され、同じ読み出し電位により読み出されるからである。
【００９７】
この場合、ＬＭフラグの閾値分布は、消去状態Ｅｒに設定される。
【００９８】
従って、メモリセルに記録されているデータが下位ビットのみであるときは、読み出し電位Ａrにより、ＬＭフラグデータ“Ｌ”、即ち、下位ビット“１”が読み出される。これを実施形態における読み出し不良の検出に使用することができる。
【００９９】
次に、メインエリアのメモリセルに下位ビット及び上位ビットの双方が書き込まれている場合、ＬＭフラグに対しても下位ビット及び上位ビットの双方が書き込まれている必要がある。
【０１００】
この場合、ＬＭフラグの閾値分布は、書き込み状態Ｂに設定される。
【０１０１】
その理由は、４値データを読み出すとき、まず、閾値分布Ａと閾値分布Ｂとの間のＢrを読み出し電位として読み出しを行い、下位ビットの値を判断するためであり、この時、ＬＭフラグの値として“Ｈ”と判断できれば非常に好ましいためである。
【０１０２】
また、閾値分布Ｃでも、読み出し電位ＢrによりＬＭフラグの値として“Ｈ”と判断できるが、Ｅrからの閾値のシフト量は、小さいほうが好ましい。
【０１０３】
そこで、メインエリアのメモリセルに下位ビット及び上位ビットの双方が書き込まれているときのＬＭフラグの閾値分布は、書き込み状態Ｂに設定される。
【０１０４】
従って、メモリセルに記録されているデータが下位ビット及び上位ビットの双方であるときは、読み出し電位Ｂrにより、ＬＭフラグデータ“Ｈ”、即ち、下位ビット“０”が読み出される。これを実施形態における読み出し不良の検出に使用することができる。
【０１０５】
このように、ＬＭフラグの閾値分布は、メインエリアのメモリセルに下位ビットのみが書き込まれている状態では、Ｅｒとなり、メインエリアのメモリセルに下位ビット及び上位ビットの双方が書き込まれている状態では、Ｂとなる。
【０１０６】
尚、ＬＭフラグの閾値分布をＥｒからＢにシフトさせるときは、プログラムデータとしては、下位ビット及び上位ビット共に“０”となっている必要があるため、上位ビットのプログラム時にＬＭフラグから読み出される下位ビット“１”を、強制的に“０”に変更することが必要である。
【０１０７】
３．  むすび  
実施形態によれば、プログラムが正常に行われた後に、新たなコマンド入力なしに、自動的に読み出し動作を行うことにより、プログラム動作後にデータを読み出すことができない、といった不良の有無を、プログラム動作の終了前に判定することができる。
【０１０８】
プログラム動作の終了前においては、外部コントローラは、プログラムデータを保持しているため、その不良が検出されたときは、ステータスフェイルを外部コントローラに知らせることにより、例えば、ワード線を変更するなどの処置を施した後に、再びプログラム動作を行うことができる。従って、ユーザが不揮発性半導体メモリに記録したデータを永久に読み出すことができなくなる、といった問題が発生することはない。
【０１０９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１０】
１０Ａ：  不揮発性半導体メモリ、  １０Ｂ：  外部コントローラ、  １０Ｃ，１９：  データバス、  １１：  メモリセルアレイ、  １２：  ロウデコーダ、  １３：  電位発生回路、  １４：  データラッチ回路、  １５：  データバッファ、  １６：  ベリファイ回路、  １７：  制御回路、  １８：  データ転送制御回路。
【図１】
0005306399.tif 000002
【図２】
0005306399.tif 000003
【図３】
0005306399.tif 000004
【図４】
0005306399.tif 000005
【図５】
0005306399.tif 000006
【図６】
0005306399.tif 000007
【図７】
0005306399.tif 000008
【図８】
0005306399.tif 000009
【図９】
0005306399.tif 000010
【図１０】
0005306399.tif 000011
【図１１】
0005306399.tif 000012