(57)【要約】【課題】動作速度を向上できる半導体記憶装置を提供する。【解決手段】実施形態の半導体記憶装置は、複数のストリングユニットと、第１レジスタBS_REGと、第２レジスタFS_REGと、第３レジスタPS_REGと、制御回路14とを具備する。ストリングユニットは、複数のメモリセルが積層されたＮＡＮＤストリングの集合である。第１レジスタBS_REGは、ストリングユニットがバッドストリングであることを示す情報を保持可能である。第２レジスタFS_REGは、ストリングユニットがベリファイにフェイルしたことを示す情報を保持可能である。第３レジスタPS_REGは、ストリングユニットがベリファイにパスしたストリングであることを示す情報を保持である。制御回路は、第１乃至第３レジスタ内の情報に基づいて、いずれかのストリングユニットに対する消去ベリファイ動作をスキップする。【選択図】図１
2015176627.tif 000002
【特許請求の範囲】
【請求項１】
各々が、複数のメモリセルが積層されたＮＡＮＤストリングの集合である複数のストリングユニットと、
前記ストリングユニットがバッドストリングであることを示す情報を保持可能な第１レジスタと、
前記ストリングユニットがベリファイにフェイルしたことを示す情報を保持可能な第２レジスタと、
前記ストリングユニットがベリファイにパスしたストリングであることを示す情報を保持可能な第３レジスタと、
前記メモリセルに対する消去動作を制御する制御回路と
を具備し、前記制御回路は、前記第１乃至第３レジスタ内の情報に基づいて、いずれかのストリングユニットに対する消去ベリファイ動作をスキップする
ことを特徴とする半導体記憶装置。
【請求項２】
データの消去は、複数の前記ストリングユニットの集合であるブロック単位で行われ、
前記半導体記憶装置は、複数の前記ブロックの集合であり、且つ互いに独立して動作可能な複数のプレーンを備え、
前記制御回路は、前記複数のプレーンに対して同時に消去動作を実行する場合、前記複数のプレーンの各々において、前記複数のストリングユニットに対して順次、前記消去ベリファイ動作を実行し、
前記消去ベリファイ動作時において、第１プレーンのいずれかのストリングユニットがフェイルした場合、その時点で第１プレーンにおける消去ベリファイ動作は停止されるが、第２プレーンにおいてフェイルしたストリングユニットが検出されていない場合、該第２プレーンにおける消去ベリファイ動作は続行される
ことを特徴とする請求項１記載の半導体記憶装置。
【請求項３】
前記制御回路は、前記ストリングユニットが前記消去ベリファイ動作にフェイルした際、前記第２レジスタを更新し、パスした際、前記第３レジスタを更新する
ことを特徴とする請求項２記載の半導体記憶装置。
【請求項４】
前記制御回路は、同時に消去動作が実行された全てのプレーンにおいて、前記消去ベリファイ動作にフェイルしたストリングユニットが検出された時点で、再度、前記複数のプレーンに対して同時に消去動作を実行すると共に、
前記第３レジスタ内の情報に基づき、既にパスしたストリングユニットに対しては消去ベリファイ動作を行わない
ことを特徴とする請求項３記載の半導体記憶装置。
【請求項５】
前記ＮＡＮＤストリングは、第１選択トランジスタと、第２選択トランジスタと、前記第１、第２選択トランジスタの間に電流経路が直列接続された複数のメモリセルトランジスタを備え、
前記第１、第２選択トランジスタの少なくとも一方は、対応するストリングユニットがバッドストリングであることがマーキング可能であり、
前記制御回路は、前記データの消去後、前記マーキングされた情報を読み出す判定読み出し動作を実行し、その結果に基づいて前記第１レジスタ内の情報を更新すると共に、
前記第１レジスタ内の情報に基づいて、バッドストリングに対しては消去ベリファイ動作を行わない
ことを特徴とする請求項１乃至４いずれか１項記載の半導体記憶装置。
【請求項６】
前記第１乃至第３レジスタの情報は、前記半導体記憶装置を制御するメモリコントローラによって読み出し可能である
ことを特徴とする請求項１乃至５いずれか１項記載の半導体記憶装置。
【請求項７】
前記ＮＡＮＤストリングは、該ＮＡＮＤストリングを選択するための選択トランジスタを含み、
前記メモリコントローラは、前記第２レジスタの情報に基づいて前記選択トランジスタの閾値を上昇させることで、対応するＮＡＮＤストリングがバッドストリングであることをマーキングする
ことを特徴とする請求項６記載の半導体記憶装置。
【請求項８】
複数のメモリセルが積層されたメモリセルアレイと、
前記メモリセルアレイからデータを読み出すセンスアンプと、
前記メモリセルアレイに対する消去動作を制御する制御回路と
を具備し、前記メモリセルアレイは、第１、第２選択トランジスタと、前記第１、第２選択トランジスタ間に電流経路が直列接続された複数の前記メモリセルとを含む複数のＮＡＮＤストリングの集合であるストリングユニットを複数備え、
前記第１、第２選択トランジスタの少なくとも一方はバッドストリング情報を保持可能であり、
前記消去動作時において前記センスアンプは、前記制御回路の命令に従って前記バッドストリング情報を読み出す判定読み出し動作と、消去ベリファイ動作とを行い、前記判定読み出し動作の結果と前記消去ベリファイ動作との結果の論理演算を行い、前記論理演算の結果に基づいて、前記制御回路に対して、バッドストリングをグッドストリングに見せかける
ことを特徴とする半導体記憶装置。
【請求項９】
前記制御回路は、前記論理演算の結果に基づいて、いずれかの前記ストリングユニットの前記消去ベリファイ動作をスキップする
ことを特徴とする請求項８記載の半導体記憶装置。
【請求項１０】
各々の前記ストリングユニット内の前記ＮＡＮＤストリングは、それぞれが対応付けられたビット線に接続され、
前記センスアンプは、各ビット線に関連付けられた複数のセンスアンプユニットを備え、
前記センスアンプユニットは、第１乃至第３ラッチ回路及び演算回路を備え、
前記第１ラッチ回路は前記判定読み出し動作の結果を保持し、前記第２ラッチ回路は前記消去ベリファイ動作の結果を保持し、前記演算回路は、前記第１ラッチ回路内のデータと前記第２ラッチ回路内のデータの論理演算を行い、演算結果を前記第３ラッチ回路に格納する
ことを特徴とする請求項８または９記載の半導体記憶装置。
【請求項１１】
前記判定読み出し動作にフェイルしたことを示すデータが前記第１ラッチ回路に保持され、前記消去ベリファイ動作にフェイルしたことを示すデータが前記第２ラッチ回路に保持される場合、前記演算回路は、前記論理演算を行うことにより、前記第３ラッチ回路に、前記消去ベリファイにパスしたことを示すデータを格納する
ことを特徴とする請求項１０記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体記憶装置に関する。
【背景技術】
【０００２】
メモリセルが三次元に配列されたＮＡＮＤ型フラッシュメモリが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２５８２８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
動作速度を向上できる半導体記憶装置を提供する。
【課題を解決するための手段】
【０００５】
実施形態の半導体記憶装置は、複数のストリングユニットと、第１レジスタと、第２レジスタと、第３レジスタと、制御回路とを具備する。ストリングユニットは、複数のメモリセルが積層されたＮＡＮＤストリングの集合である。第１レジスタは、ストリングユニットがバッドストリングであることを示す情報を保持可能である。第２レジスタは、ストリングユニットがベリファイにフェイルしたことを示す情報を保持可能である。第３レジスタは、ストリングユニットがパスストリングであることを示す情報を保持である。制御回路は、第１乃至第３レジスタ内の情報に基づいて、いずれかのストリングユニットに対する消去ベリファイ動作をスキップする。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１実施形態に係る半導体記憶装置のブロック図である。
【図２】図２は、第１実施形態に係るメモリセルアレイの回路図である。
【図３】図３は、第１実施形態に係るメモリセルアレイの断面図である。
【図４】図４は、第１実施形態に係るメモリセルの閾値分布を示すグラフである。
【図５】図５は、第１実施形態に係るメモリセルアレイの断面図である。
【図６】図６は、第１実施形態に係るメモリセルアレイの断面図である。
【図７Ａ】図７Ａは、第１実施形態に係る消去動作のフローチャートである。
【図７Ｂ】図７Ｂは、図７Ａに続くフローチャートである。
【図８Ａ】図８Ａは、第１実施形態に係る消去動作のタイミングチャートである。
【図８Ｂ】図８Ｂは、図８Ａに続くフローチャートである。
【図９】図９は、第１実施形態に係る消去時のブロックを示す模式図である。
【図１０】図１０は、第１実施形態に係る消去時のブロックを示す模式図である。
【図１１】図１１は、第１実施形態に係る消去時のブロックを示す模式図である。
【図１２】図１２は、第１実施形態に係る消去時のブロックを示す模式図である。
【図１３】図１３は、第１実施形態に係る消去時のブロックを示す模式図である。
【図１４】図１４は、第１実施形態に係る消去時のブロックを示す模式図である。
【図１５】図１５は、第１実施形態に係る消去時のブロックを示す模式図である。
【図１６】図１６は、第１実施形態に係る消去時のブロックを示す模式図である。
【図１７】図１７は、第１実施形態に係る消去時のブロックを示す模式図である。
【図１８】図１８は、第１実施形態に係る消去時のブロックを示す模式図である。
【図１９】図１９は、第１実施形態に係る消去時のブロックを示す模式図である。
【図２０】図２０は、第１実施形態に係る消去時のブロックを示す模式図である。
【図２１】図２１は、第１実施形態に係る消去時のブロックを示す模式図である。
【図２２】図２２は、第１実施形態に係る消去時のブロックを示す模式図である。
【図２３】図２３は、第１実施形態に係る消去時のブロックを示す模式図である。
【図２４Ａ】図２４Ａは、第１実施形態に係る消去動作のタイミングチャートである。
【図２４Ｂ】図２４Ｂは、図２４Ａに続くタイミングチャートである。
【図２５】図２５は、第１実施形態に係る消去時のブロックを示す模式図である。
【図２６】図２６は、第１実施形態に係る消去時のブロックを示す模式図である。
【図２７】図２７は、第１実施形態に係る消去時のブロックを示す模式図である。
【図２８】図２８は、第１実施形態に係る消去時のブロックを示す模式図である。
【図２９】図２９は、第１実施形態に係る消去時のブロックを示す模式図である。
【図３０】図３０は、第１実施形態に係る消去時のブロックを示す模式図である。
【図３１】図３１は、第１実施形態に係る消去時のブロックを示す模式図である。
【図３２】図３２は、第１実施形態に係る消去時のブロックを示す模式図である。
【図３３】図３３は、第１実施形態に係る消去時のブロックを示す模式図である。
【図３４】図３４は、第１実施形態に係る消去時のブロックを示す模式図である。
【図３５】図３５は、第１実施形態に係る消去時のブロックを示す模式図である。
【図３６】図３６は、第１実施形態に係る消去時のブロックを示す模式図である。
【図３７】図３７は、消去動作の概念図である。
【図３８】図３８は、第１実施形態に係る各種レジスタの概念図である。
【図３９】図３９は、第１実施形態に係る各種レジスタの概念図である。
【図４０】図４０は、第１実施形態に係る各種レジスタの概念図である。
【図４１】図４１は、第１実施形態に係る各種レジスタの概念図である。
【図４２】図４２は、第１実施形態に係る各種レジスタの概念図である。
【図４３】図４３は、第１実施形態に係る各種レジスタの概念図である。
【図４４】図４４は、第１実施形態に係る各種レジスタの概念図である。
【図４５】図４５は、第１実施形態に係る各種レジスタの概念図である。
【図４６】図４６は、第１実施形態に係る各種レジスタの概念図である。
【図４７】図４７は、第１実施形態に係る各種レジスタの概念図である。
【図４８】図４８は、第２実施形態に係るメモリセルアレイの断面図である。
【図４９】図４９は、第２実施形態に係る消去動作のタイミングチャートである。
【図５０】図５０は、第２実施形態に係る消去動作のタイミングチャートである。
【図５１】図５１は、第２実施形態に係るメモリセルアレイの断面図である。
【図５２】図５２は、第２実施形態に係る消去動作のタイミングチャートである。
【図５３】図５３は、第３実施形態に係るセンスアンプのブロック図である。
【図５４】図５４は、第３実施形態に係るセンスアンプの動作を示すフローチャートである。
【図５５】図５５は、第３実施形態に係るラッチ回路のブロック図である。
【図５６】図５６は、第４実施形態に係るロジック回路のブロック図である。
【図５７Ａ】図５７Ａは、第４実施形態に係る消去動作のフローチャートである。
【図５７Ｂ】図５７Ｂは、図５７Ａに続くフローチャートである。
【図５８Ａ】図５８Ａは、第４実施形態に係る消去動作のタイミングチャートである。
【図５８Ｂ】図５８Ｂは、図５８Ａに続くフローチャートである。
【図５８Ｃ】図５８Ｃは、図５８Ｂに続くフローチャートである。
【図５９Ａ】図５９Ａは、第４実施形態に係る消去動作のタイミングチャートである。
【図５９Ｂ】図５９Ｂは、図５９Ａに続くフローチャートである。
【図５９Ｃ】図５９Ｃは、図５９Ｂに続くフローチャートである。
【図６０】図６０は、第５実施形態に係るメモリシステムのブロック図である。
【図６１】図６１は、第５実施形態に係るステータス読み出し時における各種信号のタイミングチャートである。
【図６２】図６２は、第５実施形態に係るコマンドの内容を示すダイアグラムである。
【図６３】図６３は、第５実施形態に係るコマンドの内容を示すダイアグラムである。
【図６４】図６４は、第５実施形態に係るコマンドの内容を示すダイアグラムである。
【図６５】図６５は、第５実施形態に係るコマンドの内容を示すダイアグラムである。
【図６６】図６６は、第５実施形態に係るコマンドの内容を示すダイアグラムである。
【図６７】図６７は、第５実施形態に係るステータス読み出し時における各種信号のタイミングチャートである。
【図６８】図６８は、第５実施形態に係るコマンドの内容を示すダイアグラムである。
【図６９】図６９は、第５実施形態に係るコマンドの内容を示すダイアグラムである。
【図７０】図７０は、第５実施形態に係るコマンドの内容を示すダイアグラムである。
【図７１】図７１は、第５実施形態に係るコマンドの内容を示すダイアグラムである。
【図７２】図７２は、第１乃至第５実施形態の変形例に係るメモリセルアレイの断面図である。
【発明を実施するための形態】
【０００７】
以下、実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【０００８】
１．第１実施形態  
第１実施形態に係る半導体記憶装置について説明する。以下では半導体記憶装置として、メモリセルが半導体基板の上方に積層された三次元積層型ＮＡＮＤ型フラッシュメモリを例に挙げて説明する。
【０００９】
１．１  構成について  
１．１．１  半導体記憶装置の全体構成について
図１は、本実施形態に係る半導体記憶装置のブロック図である。図示するように半導体記憶装置１は、ロジック回路２、パーシャルバッドインフォメーションレジスタ３、及び複数のプレーンＰＢ（本例では２つのプレーンＰＢ０及びＰＢ１の場合を例示する）を備えている。
【００１０】
プレーンＰＢは、データを記憶するメモリセルを備えると共に、メモリセルへのデータの書き込み、及びメモリセルからのデータの読み出しを行うユニットである。プレーンＰＢ０及びＰＢ１は互いに独立して動作可能であり、また同時に動作することも可能である。
【００１１】
プレーンＰＢの各々は、メモリセルアレイ１０、ロウデコーダ１１、及びセンスアンプ１２を備えている。
【００１２】
メモリセルアレイ１０は、それぞれがワード線及びビット線に関連付けられた複数の不揮発性メモリセルの集合である複数のブロックＢＬＫ（ＢＬＫ０、ＢＬＫ１、ＢＬＫ２、…）を備えている。ブロックＢＬＫはデータの消去単位となり、同一ブロックＢＬＫ内のデータは一括して消去される。ブロックＢＬＫの各々は、メモリセルが直列接続されたＮＡＮＤストリング１３の集合である複数のストリングユニットＳＵ（ＳＵ０〜ＳＵ３）を備えている。もちろん、ブロックＢＬＫの数や、１ブロックＢＬＫ内のストリングユニットＳＵの数は任意である。
【００１３】
ロウデコーダ１１は、ブロックアドレスやページアドレスをデコードして、対応するブロックのいずれかのワード線を選択する。そしてロウデコーダ１１２は、選択ワード線及び非選択ワード線等に、適切な電圧を印加する。
【００１４】
センスアンプ１２は、データの読み出し時には、メモリセルからビット線に読み出されたデータをセンス・増幅する。またデータの書き込み時には、書き込みデータをメモリセルに転送する。メモリセルアレイ１０へのデータの読み出し及び書き込みは、複数のメモリセル単位で行われ、この単位がページとなる。
【００１５】
メモリセルからのデータの読み出し、及びメモリセルへのデータの書き込みは、ロウデコーダ１１及びセンスアンプ１２によって行われる。
【００１６】
次にロジック回路２について説明する。ロジック回路２は、半導体記憶装置１を制御するメモリコントローラと通信可能とされている。そしてロジック回路２は、メモリコントローラからの命令に従って、半導体記憶装置１全体の動作を制御する。
【００１７】
図１に示すようにロジック回路２は、シーケンサ１４、アドレスレジスタＡＤＤ＿ＲＥＧ、バッドストリングレジスタＢＳ＿ＲＥＧ、フェイルストリングレジスタＦＳ＿ＲＥＧ、及びパスストリングレジスタＰＳ＿ＲＥＧを備えている。
【００１８】
アドレスレジスタＡＤＤ＿ＲＥＧは、メモリコントローラから受信したアドレス（ブロックアドレス及びページアドレス）を保持する。アドレスレジスタＡＤＤ＿ＲＥＧは、プレーンＰＢ０用のレジスタＡＤＤ＿ＲＥＧ＿ＰＢ０と、プレーンＰＢ１用のレジスタＡＤＤ＿ＲＥＧ＿ＰＢ１とを備えている。すなわち、プレーンＰＢ０にアクセスされる際には、レジスタＡＤＤ＿ＲＥＧ＿ＰＢ０にアドレスが格納され、プレーンＰＢ１にアクセスされる際には、レジスタＡＤＤ＿ＲＥＧ＿ＰＢ１にアドレスが格納される。
【００１９】
バッドストリングレジスタＢＳ＿ＲＥＧは、各ブロックのバッドストリング（bad string）情報を保持する。バッドストリング情報とは、各ブロックにおいて、各ストリングユニットＳＵがグッドストリングであるか、または使用不可のバッドストリングであるかを示す情報である。図１の例では、各ブロックは４つのストリングユニットＳＵを含む。従って、各ブロックに対応するバッドストリング情報は例えば４ビットデータであり、各ビットが、例えば下位ビットから順番にストリングユニットＳＵ０〜ＳＵ３がバッドストリングであるか否かを示す。例えばバッドストリング情報が“００１０”であったとすると、ストリングユニットＳＵ１がバッドストリングであることを示す。バッドストリングレジスタＢＳ＿ＲＥＧもまた、プレーンＰＢ０用のレジスタＢＳ＿ＲＥＧ＿ＰＢ０と、プレーンＰＢ１用のレジスタＢＳ＿ＲＥＧ＿ＰＢ１とを備えている。すなわち、レジスタＢＳ＿ＲＥＧ＿ＰＢ０は、プレーンＰＢ０のバッドストリング情報を保持し、レジスタＢＳ＿ＲＥＧ＿ＰＢ１は、プレーンＰＢ１のバッドストリング情報を保持する。
【００２０】
フェイルストリングレジスタＦＳ＿ＲＥＧは、各ブロックのフェイルストリング（failed string）情報を保持する。フェイルストリング情報とは、後述する消去動作における消去ベリファイや、後述するダミープログラムベリファイにおいて、各ストリングユニットがパスしたかフェイルしたかを示す情報である。言い換えれば、消去動作における何らかの動作でフェイルになったことを示す情報であり、ストリングユニットＳＵでのフェイルを示す。図１の例ではバッドストリング情報と同じくフェイルストリング情報も４ビットデータであり、各ビットが下位から順番にストリングユニットＳＵ０〜ＳＵ３に相当する。そして、例えばフェイルストリング情報が“０１００”であったとすると、ストリングユニットＳＵ２がフェイルであることを示す。フェイルストリングレジスタＦＳ＿ＲＥＧもまた、プレーンＰＢ０用のレジスタＦＳ＿ＲＥＧ＿ＰＢ０と、プレーンＰＢ１用のレジスタＦＳ＿ＲＥＧ＿ＰＢ１とを備えている。すなわち、レジスタＦＳ＿ＲＥＧ＿ＰＢ０は、プレーンＰＢ０のフェイルストリング情報を保持し、レジスタＦＳ＿ＲＥＧ＿ＰＢ１は、プレーンＰＢ１のフェイルストリング情報を保持する。
【００２１】
パスストリングレジスタＰＳ＿ＲＥＧは、各ブロックのパスストリング（passed string）情報を保持する。パスストリング情報とは、各ストリングユニットＳＵが消去ベリファイにパスしたかを示す情報である。図１の例では、パスストリング情報も４ビットデータであり、各ビットが下位から順番にストリングユニットＳＵ０〜ＳＵ３に相当する。そして、例えばフェイルストリング情報が“１０００”であったとすると、ストリングユニットＳＵ３がパスしたことを示す。ストリングユニットＳＵ（パスストリング：passed string）のアドレスを保持する。パスストリングレジスタＰＳ＿ＲＥＧもまた、プレーンＰＢ０用のレジスタＰＳ＿ＲＥＧ＿ＰＢ０と、プレーンＰＢ１用のレジスタＰＳ＿ＲＥＧ＿ＰＢ１とを備えている。すなわち、レジスタＰＳ＿ＲＥＧ＿ＰＢ０は、プレーンＰＢ０のパスストリング情報を保持し、レジスタＰＳ＿ＲＥＧ＿ＰＢ１は、プレーンＰＢ１のパスストリング情報を保持する。
【００２２】
バッドストリングレジスタＢＳ＿ＲＥＧ、フェイルストリングレジスタＦＳ＿ＲＥＧ、及びパスストリングレジスタＰＳ＿ＲＥＧに保持される情報は、メモリコントローラからも参照することが出来る。すなわち、メモリコントローラはコマンドを発行することにより、各レジスタＢＳ＿ＲＥＧ、ＦＳ＿ＲＥＧ、及びＰＳ＿ＲＥＧ内のデータを読み出すことが出来る。このメモリコントローラの動作の詳細に関しては、後述する第５実施形態において詳細に説明する。
【００２３】
シーケンサ１４は、メモリコントローラから受信したコマンドに従って、プレーンＰＢ０及びＰＢ１の動作を制御する。すなわち、メモリコントローラから読み出し、書き込み、または消去コマンドが送信されると、このコマンドは、図示せぬコマンドレジスタに格納される。またアクセス対象アドレスがアドレスレジスタＡＤＤ＿ＲＥＧに格納される。これらの情報に従って、シーケンサ１４はプレーンＰＢ０及び／またはプレーンＰＢ１の動作を制御し、データの読み出し、書き込み、または消去を実行する。また、バッドストリングレジスタＢＳ＿ＲＥＧ、フェイルストリングレジスタＦＳ＿ＲＥＧ、及びパスストリングレジスタＰＳ＿ＲＥＧへの情報の書き込みも、シーケンサ１４が行う。
【００２４】
次に、パーシャルバッドインフォメーションレジスタ３について説明する。パーシャルバッドインフォメーションレジスタ３は、既知のバッドストリング情報を保持する。すなわち、半導体記憶装置１は、製造時点において、バッドブロックには分類されないが、部分的な不良を含むものがある。パーシャルバッドインフォメーションレジスタ３は、これらの部分的な不良の位置情報を保持する。
【００２５】
図１の例では、プレーンＰＢ０及びＰＢ１用にそれぞれレジスタが設けられ、このレジスタがバッドストリング情報を保持する場合を一例に示している。図１の４桁の不良情報は、下位ビットから順番にＳＵ０〜ＳＵ３の状態を示し、“１”がバッドストリング、“０”がグッドストリングであることを示している。よって図１の例では、プレーンＰＢ０では、ブロックＢＬＫ１のストリングユニットＳＵ０、ＢＬＫ５のＳＵ０及びＳＵ３、並びにＢＬＫ１１のＳＵ３がバッドストリングである。なお、部分的な不良の位置情報としては、このようにストリングユニット単位で登録されても良いし、別の単位で登録されても良い。
【００２６】
上記の部分的な不良の位置情報は、製造時においてパーシャルバッドインフォメーションレジスタ３に揮発的に記憶され、製造時のテスト工程が完了する際に、例えばメモリセルアレイ１０の特定の領域（ＲＯＭフューズ領域）に書き込まれても良い。この情報は、半導体記憶装置１へのパワーオン時に、メモリコントローラからの命令を受信することなくシーケンサ１４によって自発的にＲＯＭフューズ領域から読み出され（パワーオンリード）、パーシャルバッドインフォメーションレジスタ３に格納される。このように、出荷前に判明している不良位置情報をレジスタ３等に記憶させておく機能を、以下では第１登録機能と呼ぶ。第１登録機能はオプションであり、ＮＡＮＤ型フラッシュメモリ１が第１登録機能を持たない場合であっても良い。また第１登録機能は、後述する第２登録機能のような、不良情報を保持するためにレジスタを使用しないようなタイプの機能とも共存出来る。第２登録機能については、後述する１．１．３及び１．１．４の項で詳細に説明する。
【００２７】
なお、半導体記憶装置１とメモリコントローラは、例えばそれらの組み合わせにより一つの半導体装置を構成しても良く、その例としてはＳＤＴＭカードのようなメモリカードや、ＳＳＤ（solid state drive）等が挙げられる。
【００２８】
１．１．２  メモリセルアレイ１０の詳細について  
次に、上記メモリセルアレイ１０の詳細について説明する。図２は、あるブロックＢＬＫの回路図である。他のブロックＢＬＫも同様の構成を有している。図示するようにブロックＢＬＫは、例えば４つのストリングユニットＳＵ（ＳＵ０〜ＳＵ３）を含む。また各々のストリングユニットＳＵは、複数（Ｌ個、Ｌは２以上の自然数）のＮＡＮＤストリング１３を含む。
【００２９】
ＮＡＮＤストリング１３の各々は、例えば８個のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ７）と、ダミートランジスタＤＴＤ、ＤＴＳと、選択トランジスタＳＴ１、ＳＴ２とを含んでいる。メモリセルトランジスタＭＴは、制御ゲートと電荷蓄積層とを含む積層ゲートを備え、データを不揮発に保持する。なお、メモリセルトランジスタＭＴの個数は８個に限られず、１６個や３２個、６４個、１２８個等であってもよく、その数は限定されるものではない。ダミートランジスタＤＴＤ、ＤＴＳもメモリセルトランジスタＭＴと同様に、制御ゲートと電荷蓄積層とを含む積層ゲートを備える。但しダミートランジスタＤＴＤ及びＤＴＳはデータを保持するためのものでは無く、データの書き込み、読み出し、及び消去時には単なる電流経路として機能する。メモリセルトランジスタＭＴ及びダミートランジスタＤＴＤ、ＤＴＳは、選択トランジスタＳＴ１、ＳＴ２間に、その電流経路が直列接続されるようにして配置されている。なおダミートランジスタＤＴＤはメモリセルトランジスタＭＴ７と選択トランジスタＳＴ１との間に設けられ、ダミートランジスタＤＴＳはメモリセルトランジスタＭＴ０と選択トランジスタＳＴ２との間に設けられる。
【００３０】
ストリングユニットＳＵ０〜ＳＵ３の各々の選択トランジスタＳＴ１のゲートは、それぞれセレクトゲート線ＳＧＤ０〜ＳＧＤ３に共通接続され、選択トランジスタＳＴ２のゲートは、それぞれセレクトゲート線ＳＧＳ０〜ＳＧＳ３に共通接続される。これに対して、同一のブロックＢＬＫ内にあるメモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲートは、それぞれワード線ＷＬ０〜ＷＬ７に共通接続され、ダミートランジスタＤＴＤ及びＤＴＳの制御ゲートも、ダミーワード線ＤＷＬＤ及びＤＷＬＳに共通接続される。
【００３１】
すなわち、ワード線ＷＬ０〜ＷＬ７、及びダミーワード線ＤＷＬＤ及びＤＷＬＳは同一ブロックＢＬＫ内の複数のストリングユニットＳＵ０〜ＳＵ３間で共通に接続されているのに対し、セレクトゲート線ＳＧＤ及びＳＧＳは、同一ブロックＢＬＫ内であってもストリングユニットＳＵ０〜ＳＵ３毎に独立している。なおセレクトゲート線ＳＧＳに関しては、それぞれが独立しておらず、ワード線ＷＬ等と同様に共通に接続されても良い。
【００３２】
また、メモリセルアレイ１０内でマトリクス状に配置されたＮＡＮＤストリング１３のうち、同一行にあるＮＡＮＤストリング１３の選択トランジスタＳＴ１の電流経路（ドレイン）は、いずれかのビット線ＢＬ（ＢＬ０〜ＢＬ（Ｌ−１））に共通接続される。すなわち、ビット線ＢＬは、複数のブロックＢＬＫ間でＮＡＮＤストリング１３を共通に接続する。また、選択トランジスタＳＴ２の電流経路（ソース）は、ソース線ＳＬに共通に接続されている。ソース線ＳＬは、例えば複数のブロック間で、ＮＡＮＤストリング１３を共通に接続する。
【００３３】
前述の通り、同一のブロックＢＬＫ内にあるメモリセルトランジスタＭＴのデータは、一括して消去される。これに対してデータの読み出し及び書き込みは、いずれかのブロックＢＬＫのいずれかのストリングユニットＳＵにおける、いずれかのワード線ＷＬに共通に接続された複数のメモリセルトランジスタＭＴにつき、一括して行われる。この単位を「ページ」と呼ぶ。
【００３４】
メモリセルアレイ１０の構成については、例えば、“三次元積層不揮発性半導体メモリ”という２００９年３月１９日に出願された米国特許出願１２／４０７，４０３号に記載されている。また、“三次元積層不揮発性半導体メモリ”という２００９年３月１８日に出願された米国特許出願１２／４０６，５２４号、“不揮発性半導体記憶装置及びその製造方法”という２０１０年３月２５日に出願された米国特許出願１２／６７９，９９１号“半導体メモリ及びその製造方法”という２００９年３月２３日に出願された米国特許出願１２／５３２，０３０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００３５】
メモリセルアレイ１０の一構成例につき、図３を用いて簡単に説明する。図３はＮＡＮＤストリング１３の断面図である。図３に示す構造が、図３を記載した紙面の奥行き方向（Ｄ２）に複数配列され、且つそれらがワード線ＷＬ、ダミーワード線ＤＷＬＤ及びＤＷＬＳ、並びにセレクトゲート線ＳＧＤ及びＳＧＳを共有することにより、ストリングユニットＳＵが形成される。図３では紙面の都合上、３つのストリングユニットＳＵのみを図示している。
【００３６】
図示せぬ半導体基板上には、例えばセンスアンプ１２やロウデコーダ１１等の周辺回路が形成される。そして周辺回路を被覆するようにして層間絶縁膜が形成され、層間絶縁膜上に、メモリセルアレイ１０が形成される。すなわち図３に示すように、図示せぬ層間絶縁膜上に、例えばｐ型半導体層２０が形成される。半導体層２０はウェル領域として機能する。
【００３７】
半導体層２０上には、セレクトゲート線ＳＧＳとして機能する配線層２１、ダミーワード線ＤＷＬＳとして機能する配線層２２、ワード線ＷＬ０〜ＷＬ７として機能する配線層２３、ダミーワード線ＤＷＬＤとして機能する配線層２４、及びセレクトゲート線ＳＧＤとして機能する配線層２５が順次積層されている。これらの配線層２１〜２５は導電物により形成される。また、これらの配線層の間には、層間絶縁膜が形成される。
【００３８】
そして、上記半導体層２１〜２５を貫通して配線層（ｐ型ウェル領域）２０に達する円筒形のホール（メモリホール）２６が形成される。このメモリホール２６の周囲には、配線層２１と接する領域に、選択トランジスタＳＴ２のゲート絶縁膜２７が形成される。また、配線層２２〜２４と接する領域に、ダミートランジスタＤＴＤ、ＤＴＳ及びメモリセルトランジスタＭＴのブロック層２８、電荷蓄積層２９、及びゲート絶縁膜３０が順次形成される。更に、配線層２５と接する領域に、選択トランジスタＳＴ１のゲート絶縁膜３１が形成される。そして、メモリホール２６の内部に、半導体層３２〜３４が順次埋め込まれる。
【００３９】
以上により、ウェル領域２０上に、選択トランジスタＳＴ２、ダミートランジスタＤＴＳ、メモリセルトランジスタＭＴ０〜ＭＴ７、ダミートランジスタＤＴＤ、及び選択トランジスタＳＴ１が順次形成される。
【００４０】
そして、半導体層３４上には、第１方向に沿った金属配線層３５が形成される。配線層３５はビット線ＢＬとして機能し、複数のメモリホール２６内の半導体層３４に接続されている。
【００４１】
ウェル領域２０の表面内には、ｎ＋型不純物拡散層３６が形成されている。拡散層３６は、コンタクトプラグ３７によって金属配線層３８に接続される。配線層３８は、ソース線ＳＬとして機能する。更にウェル領域２０の表面内には、ｐ＋型不純物拡散層３９が形成されている。拡散層３９は、コンタクトプラグ４０によって金属配線層４１に接続される。配線層４１は、ウェル配線ＣＰＷＥＬＬとして機能する。そして配線層３８及び４１は、セレクトゲート線ＳＧＤよりも上層であって、且つ配線層３５よりも下層のレイヤに形成される。
【００４２】
上記構成において、配線層２２〜２４は、隣接するストリングユニットＳＵ間で接続されており、配線層２１及び２５はストリングユニットＳＵ毎に分離されている。またコンタクトプラグ３７に隣接するストリングユニットＳＵでは、ゲート絶縁膜２７及びセレクトゲート線２１は、拡散層３６と近接する領域にまで設けられる。これにより、選択トランジスタＳＴ２に形成されるチャネルは、拡散層３６に接続される。これにより、データの読み出し時には、半導体層３２だけでなくウェル領域２０の表面にもチャネルが形成され、このチャネルによりＮＡＮＤストリングは拡散層３６及びコンタクトプラグ３７を介してソース線ＳＬに電気的に接続される。
【００４３】
１．１．３  トランジスタの閾値分布について  
図４は、本実施形態に係るメモリセルトランジスタＭＴ及び選択トランジスタＳＴ１の取りうるデータ及び閾値分布を示す。
【００４４】
図示するように、各々のメモリセルトランジスタＭＴは、その閾値に応じて例えば２ビットのデータを保持可能である。この２ビットデータは、閾値の低いものから順番に、例えば“１１”、“０１”、“００”、“１０”である。
【００４５】
“１１”データを保持するメモリセルの閾値は、“Ｅｒ”レベルまたは“ＥＰ”レベルである。Ｅｒレベルは、電荷蓄積層内の電荷が引き抜かれて、データが消去された状態における閾値であり、正の値だけでなく負の値をも取り得る。ＥＰレベルは、電荷蓄積層内に電荷が注入された状態の閾値であり、Ｅｒレベルまたはそれ以上のレベルであり、正の値を有する。
【００４６】
“０１”、“００”、及び“１０”も、電荷蓄積層内に電荷が注入された状態の閾値である。“０１”データを保持するメモリセルの閾値は“Ａ”レベルであり、Ｅｒレベル及びＥＰレベルよりも高い。“００”データを保持するメモリセルの閾値は“Ｂ”レベルであり、Ａレベルよりも高い。“１０”データを保持するメモリセルの閾値は“Ｃ”レベルであり、Ｂレベルよりも高い。もちろん、２ビットデータと閾値との関係はこの関係に限定されるものでは無く、例えば“１１”データが“Ｃ”レベルに対応するような場合であっても良く、両者の関係については適宜選択出来る。
【００４７】
ダミートランジスタＤＴＤ及びＤＴＳは、“Ｅｒ”レベルまたは“ＥＰ”レベルの閾値を保持する。
【００４８】
選択トランジスタＳＴ１の閾値は、通常は“ＳＧ／ＥＰ”レベルとされる。この閾値は、通常の読み出し及び書き込み動作において、セレクトゲート線ＳＧＤが選択されて電圧ＶＳＧが印加された際に、選択ストリングユニットＳＵ内の全ての選択トランジスタＳＴ１がオンされるレベルである。この電圧は、例えばＥＰレベルからＡレベルの範囲の値である。選択トランジスタＳＴ２の閾値も“ＳＧ／ＥＰ”レベルである。
【００４９】
他方で選択トランジスタＳＴ１の閾値は、“ＳＧ／ＡＣ”レベルとされる場合がある。このレベルは、“ＡＧ／ＡＣ”レベルが高電圧方向へシフトさせたものであり、その閾値分布の一部はＶＳＧよりも高い。従って、電圧ＶＳＧがセレクトゲート線ＳＧＤに印加された際、選択ページ内において、ある一定数の選択トランジスタＳＴ１はオフ状態となる。本実施形態では、ストリングユニットＳＵが不良であった場合（バッドストリング）、その旨の情報が、当該ストリングユニットＳＵ内の選択トランジスタＳＴ１に書き込まれることが出来る。つまり、選択トランジスタＳＴ１の閾値を高めに設定することで、当該ストリングユニットＳＵがバッドストリングであることを示すマーキングがなされる。マーキングがなされた結果、当該ストリングユニットＳＵの選択トランジスタＳＴ１の閾値は“ＳＧ／ＡＣ”レベルとされる。
【００５０】
選択トランジスタＳＴ１へのマーキングは、ＮＡＮＤ型フラッシュメモリ１の例えば出荷前のテスト時に行われる。このテストは、例えばテスタによって行われる。テスタは、メモリセルアレイ１０内のメモリセルトランジスタＭＴが正常に動作するか否かをテストする。そして、いずれかのストリングユニットＳＵにおいて書き込み不良ページが発見された場合、テスタは、当該ストリングユニットＳＵの全ての選択トランジスタＳＴ１の電荷蓄積層に電荷を注入して、その閾値を“ＳＧ／ＥＰ”レベルから“ＳＧ／ＡＣ”レベルに上昇させる。
【００５１】
上記のように、選択トランジスタＳＴ１にマーキングすることを、以下では第２登録機能と呼ぶ。そして、第２登録機能を用いた判定読み出しにより、各ストリングユニットＳＵがバッドストリングであるかを判断出来る。第２登録機能は第１登録機能と同様にオプションであり、ＮＡＮＤ型フラッシュメモリ１が第２登録機能を持たない場合であっても良い。
【００５２】
上記のように、第２登録機能は第１登録機能のように専用のレジスタ群を持たず、メモリセルアレイ内のマーキング情報に基づく方法である。そしてダイソートが終了すると、後述する判定読み出しによってマーキング箇所を検出し、不良ストリングユニット情報を、チップ内のＲＯＭフューズや管理ブロックにあらかじめ書き込んでおく。
【００５３】
第１登録機能であると、チップ内のレジスタに不良情報とともに登録されているので、誤ってアクセスした場合でもセルアレイ内の駆動を止めるような制御が容易にできる。そのため、セレクトゲート線間のショートを含むブロックもバッドブロックとせず、不良ストリングユニットとして扱うことが可能となる。他方で、レジスタを多数配置する必要があるため、チップ面積に対するデメリットが発生する。
【００５４】
これに対して第２登録機能では、特にレジスタなどを用意する必要はないため、チップ面積に対するデメリットがない。また、ＰＯＲでレジスタに情報を設定するような動作も不要なため、ＲＯＭフューズに登録する必要もなく、登録数の上限がない。つまり、ＲＯＭフューズに登録できる情報には限りがあるが、第２登録機能による不良ストリングユニットの情報は出荷時にいずれかのブロックＢＬＫのいずれかのページに書いておく、というような情報を書いておけばよい。
【００５５】
このように、第１、第２登録機能にはメリットとデメリットがあるため、半導体記憶装置の要求にあわせて、いずれか一方、または両方を実装すれば良い。
【００５６】
次に、第２登録機能を用いた際の判定読み出しにつき、以下説明する。
【００５７】
１．１．４  判定読み出しの詳細について  
次に、上記判定読み出しの詳細につき説明する。判定読み出しは、選択されたストリングユニットにおけるセレクトゲートＳＧＤに電圧ＶＳＧ、またはＶＳＧよりも低いＶＳＧ’（図４参照）が印加され、非選択のストリングユニットにおけるセレクトゲート線ＳＧＤに例えば０Ｖが印加され、セレクトゲート線ＳＧＳに電圧ＶＳＧが印加され、全ワード線ＷＬ（及びダミーワード線ＤＷＬＤ及びＤＷＬＳ）に電圧ＶＲＥＡＤが印加された状態で行われる。電圧ＶＲＥＡＤは、保持データに関わらずメモリセルトランジスタＭＴをオン状態とする電圧である
＜マーキングされていない場合＞  
まず、選択されたストリングユニットＳＵの選択トランジスタＳＴ１がマーキングされていない場合について、図５を用いて説明する。図５はビット線方向に沿ったブロックＢＬＫの一部領域を簡略化した断面図である。ダミーワード線ＤＷＬＤ及びＤＷＬＳの図示は省略している。図中において選択トランジスタＳＴ１及びＳＴ２に付した丸印はオン状態を示し、バツ印はオフ状態を示す。
【００５８】
図示するように、選択されたストリングユニットＳＵがグッドストリングであれば、このストリングユニットＳＵ内の選択トランジスタＳＴ１の閾値はＳＧ／ＥＰレベルである。従って、選択トランジスタＳＴ１、ＳＴ２は、電圧ＶＳＧまたはＶＳＧ’を印加されることでオン状態とされる。また、電圧ＶＲＥＡＤが印加されることで、全メモリセルトランジスタＭＴは、保持データに関わらずオン状態とされる。
【００５９】
その結果、当該ストリングユニットＳＵ内の全ＮＡＮＤストリング１３において、ビット線ＢＬからソース線ＳＬに向かってセル電流Ｉcellが流れる（Ｉcellが流れた際のビット線ＢＬの状態を“０”状態（ＢＬは論理“Ｌ”レベルとなる）と定義する）。
【００６０】
すなわち、全ワード線ＷＬにＶＲＥＡＤを印加してデータを読み出した際に、全ビット線ＢＬあるいは所定の数以上のビット線ＢＬが“０”であれば、選択したストリングユニットＳＵはバッドストリングとしてマーキングされていない、と判断出来る。
【００６１】
＜マーキングされている場合＞  
次に、選択されたストリングユニットＳＵの選択トランジスタＳＴ１がマーキングされている場合について図６を用いて説明する。図６は図５と同様にビット線方向に沿ったブロックＢＬＫの一部領域の断面図である。
【００６２】
図示するように、選択されたストリングユニットがバッドストリングとしてマーキングされていれば、選択トランジスタＳＴ１の閾値はＳＧ／ＡＣレベルである。従って、一定数以上の選択トランジスタＳＴ１は、電圧ＶＳＧまたはＶＳＧ’を印加されてもオフ状態を維持する。図６ではオフ状態とされたＮＡＮＤストリングを示している。
【００６３】
選択トランジスタＳＴ１がオフ状態を維持する結果、当該ストリングユニットＳＵ内の全ＮＡＮＤストリング１３において、セル電流Ｉcellは流れない（この際のビット線ＢＬの状態を“１”状態（ＢＬは論理“Ｈ”レベルとなる）と定義する）。
【００６４】
すなわち、全ワード線ＷＬにＶＲＥＡＤを印加してデータを読み出した際に、所定の数以上のビット線ＢＬが“１”であれば、選択したストリングユニットＳＵはバッドストリングとしてマーキングされている、と判断出来る。例えば１ページが２５６バイトであったとすると、１００ビット以上がオフ状態ならば、バッドストリングとしてマーキングされている、と判断出来る。
【００６５】
１．２  消去動作について  
次に、本実施形態に係るＮＡＮＤ型フラッシュメモリ１のデータ消去方法について説明する。
【００６６】
１．２．１  消去動作の全体の流れ  
はじめに消去動作の全体の流れにつき、図７Ａ及び図７Ｂを用いて説明する。図７Ａ及び図７Ｂは消去動作のフローチャートであり、図７Ｂは図７Ａに引き続く処理を示し、各ステップにおける処理は、主にシーケンサ１４が行う。
【００６７】
まずロジック回路２は、メモリコントローラから消去コマンドと共に、消去対象となるプレーン及びブロックのアドレスを受信する（ステップＳ１０）。受信された消去コマンドは、図示せぬコマンドレジスタに格納される。この消去コマンドに応答してシーケンサ１４は、各レジスタを初期化する（ステップＳ１１）。初期化対象となるレジスタは、図１に示すバッドストリングレジスタＢＳ＿ＲＥＧ、フェイルストリングレジスタＦＳ＿ＲＥＧ、及びパスストリングレジスタＰＳ＿ＲＥＧ等である。
【００６８】
次にシーケンサ１４は、第１登録機能がイネーブルの場合（ステップＳ１２、ＹＥＳ）、メモリコントローラから受信したブロックアドレスがパーシャルバッドインフォメーションレジスタ３に登録されているか否かを判断し、登録されている場合には、そのバッドストリング情報をバッドストリングレジスタＢＳ＿ＲＥＧにロードする（ステップＳ１３）。第１登録機能がディセーブルの場合（ステップＳ１２、ＮＯ）には、シーケンサ１４はステップＳ１３の処理を省略する。
【００６９】
次にシーケンサ１４は、信号ＰＢｘ＿ＥＮＡＢＬＥを確認する。本例では、ｘ＝０または１であり、プレーン番号である。そして、ステップＳ１０で受信したプレーンアドレスに対応する信号ＰＢｘ＿ＥＮＡＢＬＥがアサート（本例では“１”）される。複数のプレーンが選択された際には、複数の信号ＰＢｘ＿ＥＮＡＢＬＥがアサートされ、マルチプレーン動作となる。シーケンサは、ＰＢｘ＿ＥＮＡＢＬＥ＝“１”であるプレーンに対応するパスストリングレジスタＰＳ＿ＲＥＧ＿ＰＢｘ及びバッドストリングレジスタＢＳ＿ＲＥＧ＿ＰＢｘのステータスが全て確定しているか否かを確認する。そして確定していた場合、当該プレーンＰＢｘに対応する信号ＰＢｘ＿ＥＮＡＢＬＥを“０”とする（ステップＳ１４）。信号ＰＢｘ＿ＥＮＡＢＬＥは、例えばシーケンサ１４によって出力される信号であり、プレーンＰＢｘをイネーブルまたはディセーブルにするための信号である。すなわちシーケンサ１４は、プレーンＰＢ０をイネーブルにする際にはＰＢ０＿ＥＮＡＢＬＥ＝“１”とし、プレーンＰＢ１をイネーブルにする際にはＰＢ１＿ＥＮＡＢＬＥ＝“１”とする。
【００７０】
引き続きシーケンサ１４は、ＰＢｘ＿ＥＮＡＢＬＥ＝“１”とされたプレーンＰＢｘが存在するか否か確認する（ステップＳ１５）。存在しなければ（ステップＳ１５、ＮＯ）、シーケンサ１４は消去動作を終了する。
【００７１】
いずれかのプレーンＰＢｘにつきＰＢｘ＿ＥＮＡＢＬＥ＝“１”であれば、シーケンサ１４は、対応するプレーンＰＢｘに対して消去動作を実行する（ステップＳ１６）。すなわちシーケンサ１４は、ロウデコーダ１１を制御して、選択プレーンＰＢｘのメモリセルトランジスタＭＴの電荷蓄積層から電荷を半導体層３３に引き抜く（ステップＳ１６の詳細は、第２実施形態において説明する）。この結果、メモリセルトランジスタＭＴの閾値電圧が低下する。
【００７２】
そしてシーケンサ１４は、消去ループ回数を示す信号ＯＥＣをカウントアップする（ステップＳ１７）。データの消去は、ステップＳ１６において電荷蓄積層から電荷を引き抜く動作と、それによってメモリセルトランジスタＭＴの閾値が所望の値に変化しているかを確認する消去ベリファイ動作との組み合わせによって行われる。そしてこの組み合わせを複数回繰り返すことで、閾値は所望の値に徐々に近づいていく。信号ＯＥＣは、この繰り返し回数を示す信号である。ステップＳ１７は、カウントアップに限らず例えばカウントダウンであっても良く、信号ＯＥＣが消去回数を示す値であれば限定されない。
【００７３】
次にシーケンサ１４は、ＰＢｘ＿ＥＮＡＢＬＥ＝“１”であるプレーンにおいて、（ＦＳ＿ＲＥＧ＿ＰＢｘ[n]｜ＰＳ＿ＲＥＧ＿ＰＢｘ[n]｜ＢＳ＿ＲＥＧ＿ＰＢｘ[n]）＝“０”であるストリングユニットＳＵｎが存在するか否かを確認する（ｎは０〜３のいずれかであり、ストリングユニットＳＵ０〜ＳＵ３のいずれかを示す）。“｜”は論理和（ＯＲ）演算を示す。そして、存在すれば、シーケンサ１４はそのストリングユニットＳＵを選択し、存在しなければ、シーケンサ１４は対応する信号ＰＢｘ＿ＥＮＡＢＬＥを“０”にセットする（ステップＳ１８）。
【００７４】
フェイルストリングレジスタＦＳ＿ＲＥＧ、パスストリングレジスタＰＳ＿ＲＥＧ、及びバッドストリングレジスタＢＳ＿ＲＥＧは、例えば図１のブロックレジスタ３に保持される不良情報と同様に、少なくともストリングユニットＳＵの数のビット数を有するデータである。そして各ビットが、対応するストリングユニットＳＵがバッドストリングであるか否かを示す。例えば図１の例であると、１つのブロックＢＬＫは４つのストリングユニットＳＵを含むので、各レジスタＦＳ＿ＲＥＧ、ＰＳ＿ＲＥＧ、及びＢＳ＿ＲＥＧはそれぞれ少なくとも４ビットのデータを保持する。そして本例の場合、４ビットの下位ビットから順番にストリングユニットＳＵ０〜ＳＵ３の状態を示し、ストリングユニットＳＵがフェイルした場合、パスした場合、及びバッドストリングであった場合に、それぞれのレジスタに“１”がセットされる。従って、（ＦＳ＿ＲＥＧ＿ＰＢｘ[n]｜ＰＳ＿ＲＥＧ＿ＰＢｘ[n]｜ＢＳ＿ＲＥＧ＿ＰＢｘ[n]）＝“０”が成立するには、ストリングユニットＳＵｎがバッドストリングでは無く、且つ消去ベリファイにおいてフェイルもパスもしていない場合である。
【００７５】
引き続きシーケンサ１４は、ＰＢｘ＿ＥＮＡＢＬＥ＝“１”のプレーンが存在するか否かを確認する（ステップＳ１９）。存在しない場合（ステップＳ１９、ＮＯ）には、シーケンサ１４は、信号ＯＥＣが、最大繰り返し回数に達しているか否かを判断する（ステップＳ２０）。達していれば（ステップＳ２０、ＹＥＳ）、シーケンサ１４は消去動作を終了する。他方、達していなければ（ステップＳ２０、ＮＯ）、シーケンサ１４はフェイルストリングレジスタＦＳ＿ＲＥＧ＿ＰＢｘをリセットする（ステップＳ２１）。すなわちシーケンサ１４は、ＦＳ＿ＲＥＧ＿ＰＢｘに保持されるストリングユニットＳＵに関するデータの全ビットを“０”にする。そしてステップＳ１４の処理に戻る。
【００７６】
ステップＳ１９においてＰＢｘ＿ＥＮＡＢＬＥ＝“１”のプレーンが存在する場合（ステップＳ１９、ＹＥＳ）、シーケンサ１４は、第２登録機能がイネーブルであるか否か、またはメモリホールオープンマスク機能がイネーブルであるか否かを判断する（ステップＳ２２）。メモリホールオープンマスク機能はＮＡＮＤ型フラッシュメモリ１の例えばオプション機能であり、その詳細は第３実施形態で説明する。少なくともいずれかの機能がイネーブルの場合（ステップＳ２２、ＹＥＳ）、シーケンサ１４は、図５及び図６で説明したような判定読み出しを行う（ステップＳ２３）。そしてシーケンサ１４は、第２登録機能がイネーブルの場合（ステップＳ２４、ＹＥＳ）、ステップＳ２３における判定読み出しの結果に基づき、オフ状態と判断されたビット数（オフビット数）をカウントする（ステップＳ２５）。
【００７７】
引き続きシーケンサ１４は、“オフビット数＞予め定められた規定値”を満たすプレーンが存在しないかを判断する（ステップＳ２６）。つまり、２プレーン動作において、プレーンＰＢ０が“オフビット数＞規定値”となった場合、プレーンＰＢ１では信号ＳＴＲ＿ＦＩＸＥＤ＿ＰＢ０が立ち、消去ベリファイ対象のストリングユニットＳＵが確定していないプレーンＰＢ０に対してだけ、もう一度、判定読み出しからやり直す。すなわち、上記条件が満たされなければ、当該プレーンについてのバッドストリングレジスタＢＳ＿ＲＥＧ＿ＰＢｘの、当該ストリングユニットＳＵに対応するビットを“１”にセットする（ステップＳ２７）。そしてステップＳ１８の処理に戻る。
【００７８】
ステップＳ２４の条件が満たされれば、シーケンサ１４は引き続き、メモリホールオープンマスク機能がイネーブルであるか否かを判断する（ステップＳ２８）。イネーブルであれば（ステップＳ２８、ＹＥＳ）、シーケンサ１４は、ステップＳ２３における判定読み出しの結果を、センスアンプ１２のラッチ回路ＵＤＬに格納する（ステップＳ２９）。ディセーブルであれば（ステップＳ２８、ＮＯ）、ステップＳ２９は省略される。
【００７９】
次にシーケンサ１４は、消去ベリファイを実行する（ステップＳ３０）。ステップＳ２２において、第２登録機能もメモリホールオープンマスク機能もディセーブルの場合（ステップＳ２２、ＮＯ）にも、シーケンサ１４はステップＳ３０の処理に進む。すなわちシーケンサ１４は、選択したいずれかのストリングユニットＳＵ内のメモリセルトランジスタＭＴの閾値が、所望のレベルまで低下しているか否かを確認する。消去ベリファイ時の詳細については、第２実施形態で説明する。
【００８０】
引き続きシーケンサ１４は、消去ベリファイの結果を内部に取り込む（ステップＳ３１）。そしてシーケンサ１４は、消去ベリファイにパスしたプレーンのストリングユニットＳＵに対応するＰＳ＿ＲＥＧ＿ＰＢｘのビットを“１”にセットする。他方で、フェイルしたプレーンのストリングユニットＳＵに対応するＦＳ＿ＲＥＧ＿ＰＢｘのビットを“１”にセットする。
【００８１】
その後シーケンサ１４は、ＰＢｘ＿ＥＮＡＢＬＥ＝“１”である全てのプレーンにおいて、ＦＳ＿ＲＥＧのいずれかのビットが“１”であるか否かを判断する（ステップＳ３２）。いずれかのプレーンでＦＳ＿ＲＥＧ＝“１”である場合、すなわち、ＰＢｘ＿ＥＮＡＢＬＥ＝“１”であるプレーンのうち、パスし続けているプレーンがある場合（ステップＳ３２、ＮＯ）、シーケンサ１４はステップＳ１８の処理に戻る。他方で、ＰＢｘ＿ＥＮＡＢＬＥ＝“１”である全てのプレーンにおいて、ＦＳ＿ＲＥＧのいずれかのビットが“１”である場合（ステップＳ３２、ＹＥＳ）、シーケンサ１４は、信号ＯＥＣが、最大繰り返し回数に達しているか否かを判断する（ステップＳ３３）。達していれば（ステップＳ３３、ＹＥＳ）、シーケンサ１４はステップＳ１８の処理に戻る。他方、達していなければ（ステップＳ３３、ＮＯ）、ステップＳ２１の処理に進む。
【００８２】
なお、ステップＳ１８、Ｓ１９、Ｓ２２〜Ｓ２９の処理は、後述する信号ＳＴＲ＿ＦＩＸＥＤ＿ＰＢｘが“Ｌ”レベルであるプレーンに対して行われる。すなわち、消去ベリファイ対象が決まっていないプレーンに対して行われる。換言すれば、ステップＳ１８、Ｓ１９、Ｓ２２〜Ｓ２７の処理は、消去ベリファイ対象となるストリングユニットＳＵを決定するために行われ、消去ベリファイ対象が決まるまで繰り返される。第１及び第２登録機能のいずれもがディセーブルの場合には、ＦＳ＿ＲＥＧ、ＰＳ＿ＲＥＧ、及びＢＳ＿ＲＥＧのいずれもが“０”であるストリングユニットＳＵのうち、最もストリングアドレスの小さいものが消去ベリファイ対象とされる。第１登録機能がイネーブルの場合には、ＦＳ＿ＲＥＧ、ＰＳ＿ＲＥＧ、及びＢＳ＿ＲＥＧのいずれもが“０”であるストリングユニットＳＵのうち、判定読み出しにおいてマーキングされていないと判断され、且つ最もストリングアドレスの小さいものが消去ベリファイ対象とされる。
【００８３】
また、ステップＳ１６以降の処理は、ＰＢｘ＿ＥＮＡＢＬＥ＝“１”であるプレーンに対してのみ実行される。
【００８４】
１．２．２  消去動作の具体例その１  
上記消去動作の具体例について、まずシングルプレーン動作につき、図８Ａ及び図８Ｂ並びに図９乃至図２３を用いて説明する。図８Ａ及び図８Ｂは、消去動作時における種々の信号の変化を順次示すタイミングチャートである。また図９乃至図２３は、選択ブロックＢＬＫの様子を示す模式図であり、選択されたストリングユニットＳＵには斜線を付して。以下では、プレーンＰＢ０のいずれかのブロックＢＬＫが消去対象とされ、且つ第１登録機能及び第２登録機能がイネーブルとされている場合を例に説明する。
【００８５】
ＮＡＮＤ型フラッシュメモリ１は、ＮＡＮＤ型フラッシュメモリ１がメモリコントローラから命令を受け付けることが可能なレディ状態か、それとも受け付けないビジー状態であるかを示すレディ／ビジー信号ＲＢを出力する。本例では、レディ状態の際にＲＢ＝“Ｈ”であり、ビジー状態の際にＲＢ＝“Ｌ”とされる。
【００８６】
メモリコントローラは、ＮＡＮＤ型フラッシュメモリ１がレディ状態である際に、消去コマンドを発行する。すなわち、ブロック消去コマンド“６０ｈ”を発行し、引き続き消去対象となるブロックＢＬＫを指定するブロックアドレスＡＤＤ１〜ＡＤＤ３が発行され、最後にコマンド“Ｄ０ｈ”が発行される。
【００８７】
この命令を受けてシーケンサ１４は消去動作を開始し、ＮＡＮＤ型フラッシュメモリ１はビジー状態となる。またシーケンサ１４は、消去対象とされたプレーンＰＢ０の信号ＰＢ０＿ＥＮＡＢＬＥを“Ｈ”レベルとし、消去非対象のプレーンＰＢ１の信号ＰＢ１＿ＥＮＡＢＬＥを“Ｌ”レベルに維持する。
【００８８】
まずシーケンサ１４は、各レジスタをリセットする（時刻ｔ０〜ｔ１）。この結果、レジスタＢＳ＿ＲＥＧ＿ＰＢ０、ＦＳ＿ＲＥＧ＿ＰＢ０、及びＰＳ＿ＲＥＧ＿ＰＢ０のデータはそれぞれ“００００”となる。この４ビットデータは、下位ビットから順番にストリングユニットＳＵ０〜ＳＵ３の状態を示している。この様子を図９に示す。またシーケンサ１４は、ロジック回路のストリングアドレスレジスタＳＴＲ＿ＡＤＤ＿ＰＢ０を“００００”にリセットする。レジスタＳＴＲ＿ＡＤＤはプレーン毎に設けられ、４ビットデータは、下位ビットから順番にストリングユニットＳＵ０〜ＳＵ３を選択する際に“１”とされる。更にシーケンサ１４は、信号ＳＴＲ＿ＦＩＸＥＤ＿ＰＢ０を“Ｌ”レベルとする。信号ＳＴＲ＿ＦＩＸＥＤもプレーン毎に用意され、“Ｈ”レベルとされることで、消去ベリファイの対象ストリングが確定し、消去ベリファイ実行可能可能となる。またシーケンサ１４は、信号ＯＥＣを“０”にセットする。
【００８９】
次にシーケンサ１４は、パーシャルバッドインフォメーションレジスタ３から不良の位置情報をロードする（時刻ｔ１〜ｔ２）。本例では、パーシャルバッドインフォメーションレジスタ３には、選択ブロックの全てのストリングユニットＳＵにつき、不良では無い旨の情報が保持されていた場合を示している。従って、レジスタＢＳ＿ＲＥＧ＿ＰＢ０のデータは“００００”のままである。
【００９０】
次にシーケンサ１４は、選択ブロックＢＬＫのデータを消去する（時刻ｔ２〜ｔ３）。この様子を図１０に示す。シーケンサ１４は、レジスタＳＴＲ＿ＡＤＤ＿ＰＢ０のデータを“１１１１”とする。この結果、全ストリングユニットＳＵ０〜ＳＵ３のデータが一括して消去される。そしてシーケンサ１４は、信号ＯＥＣを“１”にカウントアップする。
【００９１】
次にシーケンサ１４は、第２登録機能の判定読み出しを行うため、いずれかのストリングユニットＳＵを選択する（時刻ｔ３〜ｔ４）。本例では、レジスタＢＳ＿ＲＥＧ、ＦＳ＿ＲＥＧ、及びＰＳ＿ＲＥＧにおける対応するビットが“０”であり、且つストリングアドレスの小さいストリングユニットから順に選択される。従ってシーケンサ１４は、ストリングユニットＳＵ０を選択するため、レジスタＳＴＲ＿ＡＤＤ＿ＰＢ０を“０００１”とする。
【００９２】
そしてシーケンサ１４は判定読み出しを行う（時刻ｔ４〜ｔ５）。この様子を図１１に示す。すなわち、ストリングユニットＳＵ０に対して、判定読み出しが行われる。本例では、ストリングユニットＳＵ０の選択トランジスタＳＴ１がマーキングされていた場合を示している（このようなストリングユニットＳＵには、“ＢＳＭ”なる記号を付す）。従ってシーケンサ１４は、レジスタＢＳ＿ＲＥＧ＿ＰＢ０を“００００”から“０００１”に更新する（時刻ｔ５）。この状態では、まだ消去ベリファイの対象となるストリングユニットＳＵが定まらないため、信号ＳＴＲ＿ＦＩＸＥＤ＿ＰＢ０は“Ｌ”レベルのままである。
【００９３】
シーケンサ１４は、再度、判定読み出しを行うため、レジスタＳＴＲ＿ＡＤＤ＿ＰＢ０を“００１０”として、ストリングユニットＳＵ１を選択する（時刻ｔ５〜ｔ６）。
【００９４】
そしてシーケンサ１４は判定読み出しを行う（時刻ｔ６〜ｔ７）。この様子を図１２に示す。図示するように、本例ではストリングユニットＳＵ１は判定読み出しにおいてマーキングされていないと判断されたとする（このようなストリングユニットＳＵには、“not BSM”なる記号を付す）。
【００９５】
従ってシーケンサ１４は、信号ＳＴＲ＿ＦＩＸＥＤ＿ＰＢ０を“Ｈ”レベルにする（時刻ｔ７）。
【００９６】
信号ＳＴＲ＿ＦＩＸＥＤ＿ＰＢ０が“Ｈ”レベルとされたことで、シーケンサ１４は消去ベリファイを実行する（時刻ｔ７〜ｔ８）。この様子を図１３に示す。レジスタＳＴＲ＿ＡＤＤ＿ＰＢ０＝“００１０”であるから、消去ベリファイ対象となるストリングユニットはＳＵ１である。図１３に示すように、ストリングユニットＳＵ１は消去ベリファイにフェイルしたとする。するとシーケンサ１４は、レジスタＦＳ＿ＲＥＧ＿ＰＢ０を“００００”から“００１０”に更新する（時刻ｔ８）。
【００９７】
ＦＳ＿ＲＥＧのビットに“１”が立ったため（ステップＳ３２、ＹＥＳ）、シーケンサ１４はＦＳ＿ＲＥＧを“００００”にリセットし（ステップＳ２１）、ステップＳ１４に戻る（ＢＳ＿ＲＥＧは“０００１”のままで維持される）。
【００９８】
そしてシーケンサ１４は、選択ブロックＢＬＫのデータを消去する（時刻ｔ９〜ｔ１０）。この様子を図１４に示す。シーケンサ１４は、レジスタＳＴＲ＿ＡＤＤ＿ＰＢ０のデータを“１１１１”とする。この結果、全ストリングユニットＳＵ０〜ＳＵ３のデータが一括して消去される。そしてシーケンサ１４は、信号ＯＥＣを“２”にカウントアップする。
【００９９】
次にシーケンサ１４は判定読み出しを行うため、いずれかのストリングユニットＳＵを選択する（時刻ｔ１０〜ｔ１１）。この時点では、ストリングユニットＳＵがバッドストリングであると確定しているので、シーケンサ１４は、ストリングユニットＳＵ１を選択するため、レジスタＳＴＲ＿ＡＤＤ＿ＰＢ０を“００１０”とする。
【０１００】
そしてシーケンサ１４は判定読み出しを行う（時刻ｔ１１〜ｔ１２）。この様子を図１５に示す。図示するように、本例ではストリングユニットＳＵ１は判定読み出しにおいてマーキングされていないと判断されたとする。
【０１０１】
従ってシーケンサ１４は、信号ＳＴＲ＿ＦＩＸＥＤ＿ＰＢ０を“Ｈ”レベルにして（時刻ｔ１２）、消去ベリファイを実行する（時刻ｔ１２〜ｔ１３）。この様子を図１６に示す。レジスタＳＴＲ＿ＡＤＤ＿ＰＢ０＝“００１０”であるから、消去ベリファイ対象となるストリングユニットはＳＵ１である。図１６に示すように、ストリングユニットＳＵ１は消去ベリファイにパスしたとする。するとシーケンサ１４は、レジスタＰＳ＿ＲＥＧ＿ＰＢ０を“００００”から“００１０”に更新する（時刻ｔ１３）。
【０１０２】
この時点でＦＳ＿ＲＥＧのビットには“１”が立っていないので（ステップＳ３２、ＮＯ）、シーケンサ１４は引き続き、判定読み出しを行う。すなわち、ストリングユニットＳＵ０及びＳＵ１のステータスがこの時点で決まっているので、シーケンサ１４はレジスタＳＴＲ＿ＡＤＤ＿ＰＢ０を“０１００”として、ストリングユニットＳＵ２を選択する（時刻ｔ１４）。
【０１０３】
そしてシーケンサ１４は判定読み出しを行う（時刻ｔ１４〜ｔ１５）。この様子を図１７に示す。図示するように、本例ではストリングユニットＳＵ１は判定読み出しにおいてマーキングされていないと判断されたとする。
【０１０４】
従ってシーケンサ１４は、信号ＳＴＲ＿ＦＩＸＥＤ＿ＰＢ０を“Ｈ”レベルにして（時刻ｔ１５）、消去ベリファイを実行する（時刻ｔ１５〜ｔ１６）。この様子を図１８に示す。レジスタＳＴＲ＿ＡＤＤ＿ＰＢ０＝“０１００”であるから、消去ベリファイ対象となるストリングユニットはＳＵ２である。図１８に示すように、ストリングユニットＳＵ２は消去ベリファイにパスしたとする。するとシーケンサ１４は、レジスタＰＳ＿ＲＥＧ＿ＰＢ０を“００１０”から“０１１０”に更新する（時刻ｔ１６）。
【０１０５】
この時点においてもＦＳ＿ＲＥＧのビットには“１”が立っていないので（ステップＳ３２、ＮＯ）、シーケンサ１４は引き続き、判定読み出しを行う。すなわち、シーケンサ１４はレジスタＳＴＲ＿ＡＤＤ＿ＰＢ０を“１０００”として、ストリングユニットＳＵ３を選択する（時刻ｔ１７）。
【０１０６】
そしてシーケンサ１４は判定読み出しを行う（時刻ｔ１７〜ｔ１８）。この様子を図１９に示す。図示するように、本例ではストリングユニットＳＵ１は判定読み出しにおいてマーキングされていないと判断されたとする。
【０１０７】
従ってシーケンサ１４は、信号ＳＴＲ＿ＦＩＸＥＤ＿ＰＢ０を“Ｈ”レベルにして（時刻ｔ１８）、消去ベリファイを実行する（時刻ｔ１８〜ｔ１９）。この様子を図２０に示す。レジスタＳＴＲ＿ＡＤＤ＿ＰＢ０＝“１０００”であるから、消去ベリファイ対象となるストリングユニットはＳＵ３である。図２０に示すように、ストリングユニットＳＵ３は消去ベリファイにフェイルしたとする。するとシーケンサ１４は、レジスタＦＳ＿ＲＥＧ＿ＰＢ０を“００００”から“１０００”に更新する（時刻ｔ１９）。
【０１０８】
ＦＳ＿ＲＥＧのビットに“１”が立ったため（ステップＳ３２、ＹＥＳ）、シーケンサ１４はＦＳ＿ＲＥＧを“００００”にリセットし（ステップＳ２１）、ステップＳ１４に戻る（ＢＳ＿ＲＥＧは“０００１”で維持され、ＰＳ＿ＲＥＧは“０１１０”で維持される）。
【０１０９】
そしてシーケンサ１４は、選択ブロックＢＬＫのデータを消去する（時刻ｔ２０〜ｔ２１）。この様子を図２１に示す。シーケンサ１４は、レジスタＳＴＲ＿ＡＤＤ＿ＰＢ０のデータを“１１１１”とする。この結果、全ストリングユニットＳＵ０〜ＳＵ３のデータが一括して消去される。そしてシーケンサ１４は、信号ＯＥＣを“３”にカウントアップする。
【０１１０】
次にシーケンサ１４は判定読み出しを行うため、いずれかのストリングユニットＳＵを選択する（時刻ｔ２１〜ｔ２２）。この時点では、ストリングユニットＳＵ０〜ＳＵ２のステータスが確定しているので、シーケンサ１４は、ストリングユニットＳＵ３を選択するため、レジスタＳＴＲ＿ＡＤＤ＿ＰＢ０を“１０００”とする。
【０１１１】
そしてシーケンサ１４は判定読み出しを行う（時刻ｔ２２〜ｔ２３）。この様子を図２２に示す。すなわち、ストリングユニットＳＵ３に対して、判定読み出しが行われる。図示するように、本例ではストリングユニットＳＵ１は判定読み出しにおいてマーキングされていないと判断されたとする。
【０１１２】
従ってシーケンサ１４は、信号ＳＴＲ＿ＦＩＸＥＤ＿ＰＢ０を“Ｈ”レベルにして（時刻ｔ２３）、消去ベリファイを実行する（時刻ｔ２３〜ｔ２４）。この様子を図２３に示す。レジスタＳＴＲ＿ＡＤＤ＿ＰＢ０＝“１０００”であるから、消去ベリファイ対象となるストリングユニットはＳＵ３である。図２３に示すように、ストリングユニットＳＵ１は消去ベリファイにパスしたとする。するとシーケンサ１４は、レジスタＰＳ＿ＲＥＧ＿ＰＢ０を“０１１０”から“１１１０”に更新する（時刻ｔ２４）。
【０１１３】
すると、この時点でプレーンＰＢ０ではＰＳ＿ＲＥＧ及びＢＳ＿ＲＥＧのステータスが全て確定する。従って、シーケンサ１４はＰＢ０＿ＥＮＡＢＬＥを“０”として、処理を終了する。
【０１１４】
１．２．３  消去動作の具体例その２  
次に、消去動作の具体例として、マルチプレーン動作について説明する。以下では、２つのプレーンＰＢ０及びＰＢ１に対して同時に消去動作を実行する場合につき、図２４Ａ及び図２４Ｂ並びに図２５乃至図３６を用いて説明する。図２４Ａ及び図２４Ｂは、消去動作時における種々の信号の変化を順次示すタイミングチャートである。また図２５乃至図３６は、２つのプレーンＰＢ０及びＰＢ１における選択ブロックＢＬＫの様子を示す模式図である。以下では、特にシングルプレーン動作と異なる点に着目して説明する。なお、３つ以上のプレーンに対して同時に消去動作を実行する場合も同様である。
【０１１５】
図示するように、まずメモリコントローラがブロック消去コマンド“６０ｈ”を発行する。引き続きメモリコントローラは、プレーンＰＢ０のブロックＢＬＫを指定するブロックアドレスＡＤＤ１〜ＡＤＤ３を発行し、更にプレーンＰＢ１のブロックＢＬＫを指定するブロックアドレスＡＤＤ１〜ＡＤＤ３を発行し、最後にコマンド“Ｄ０ｈ”を発行する。
【０１１６】
コマンド“Ｄ０ｈ”を受けて、シーケンサ１４は信号ＰＢ０＿ＥＮＡＢＬＥ及びＰＢ１＿ＥＮＡＢＬＥを“Ｈ”レベルとする。
【０１１７】
シングルプレーン動作時と同様に、シーケンサ１４は、まず各レジスタをリセットし（時刻ｔ０〜ｔ１）、次にパーシャルバッドインフォメーションレジスタ３から不良の位置情報をロードする（時刻ｔ１〜ｔ２）。この様子を図２５に示す。本例では、パーシャルバッドインフォメーションレジスタ３には、プレーンＰＢ０の選択ブロックにおけるストリングユニットＳＵ１がバッドストリングである旨の情報が保持されている（このようなストリングユニットには、“ＢＳＣ”なる記号を付す）。従ってシーケンサ１４は、レジスタＢＳ＿ＲＥＧ＿ＰＢ０を“００１０”にセットする。
【０１１８】
次にシーケンサ１４は、プレーンＰＢ０及びＰＢ１のデータを同時に消去する（時刻ｔ２〜ｔ３）。この様子を図２６に示す。
【０１１９】
次にシーケンサ１４は、プレーンＰＢ０及びＰＢ１のストリングユニットＳＵ０に対して判定読み出しを行う（時刻ｔ３〜ｔ５）。この様子を図２７に示す。図示するように、プレーンＰＢ０のストリングユニットＳＵ０の選択トランジスタＳＴ１はマーキングされているため、シーケンサ１４はＢＳ＿ＲＥＧ＿ＰＢ０を“００１０”から“００１１”に更新する（時刻ｔ５）。また、信号ＳＴＲ＿ＦＩＸＥＤ＿ＰＢ０も“Ｌ”レベルのままである。他方で、プレーンＰＢ１のストリングユニットＳＵ０は判定読み出しにおいてマーキングされていないと判断される。従ってシーケンサ１４は、信号ＳＴＲ＿ＦＩＸＥＤ＿ＰＢ１を“Ｈ”レベルとする（時刻ｔ５）。
【０１２０】
この時点で、プレーンＰＢ１では消去ベリファイの対象となるストリングユニットが決まるが、プレーンＰＢ０ではまだ定まっていない。従って、次にシーケンサ１４は、プレーンＰＢ０に対してのみ判定読み出しを行う（時刻ｔ５〜ｔ７）。この様子を図２８に示す。図示するように、プレーンＰＢ０のストリングユニットＳＵ０は判定読み出しにおいてマーキングされていないと判断される。これにより、信号ＳＴＲ＿ＦＩＸＥＤ＿ＰＢ０も“Ｈ”レベルとされる。
【０１２１】
信号ＳＴＲ＿ＦＩＸＥＤ＿ＰＢ０及びＳＴＲ＿ＦＩＸＥＤ＿ＰＢ１が共に“Ｈ”レベルとされたことを受けて、シーケンサ１４は、プレーンＰＢ０及びＰＢ１に対して消去ベリファイを実行する（時刻ｔ７〜ｔ８）。この様子を図２９に示す。図示するように、プレーンＰＢ０ではストリングユニットＳＵ２が消去ベリファイにフェイルし、プレーンＰＢ１ではストリングユニットＳＵ０がパスする。よってシーケンサ１４は、ＦＳ＿ＲＥＧ＿ＰＢ０を“０１００”に更新し、ＰＳ＿ＲＥＧ＿ＰＢ１を“０００１”に更新する。
【０１２２】
引き続き、シーケンサ１４は判定読み出しを行う（時刻ｔ８〜ｔ１０）。この様子を図３０に示す。図示するように、プレーンＰＢ０ではストリングユニットＳＵ３が判定読み出しにおいてマーキングされていないと判断され、プレーンＰＢ１ではストリングユニットＳＵ１がマーキングされていないと判断される。これにより、シーケンサ１４は信号ＳＴＲ＿ＦＩＸＥＤ＿ＰＢ０及びＳＴＲ＿ＦＩＸＥＤ＿ＰＢ１を“Ｈ”レベルとする（時刻ｔ１０）。
【０１２３】
信号ＳＴＲ＿ＦＩＸＥＤ＿ＰＢ０及びＳＴＲ＿ＦＩＸＥＤ＿ＰＢ１が共に“Ｈ”レベルとされたことを受けて、シーケンサ１４は、プレーンＰＢ０及びＰＢ１に対して消去ベリファイを実行する（時刻ｔ１０〜ｔ１１）。この様子を図３１に示す。図示するように、プレーンＰＢ０ではストリングユニットＳＵ３が消去ベリファイにフェイルし、プレーンＰＢ１ではストリングユニットＳＵ１がパスする。よってシーケンサ１４は、ＦＳ＿ＲＥＧ＿ＰＢ０を“０１００”から“１１００”に更新し、ＰＳ＿ＲＥＧ＿ＰＢ１を“０００１”から“００１１”に更新する。
【０１２４】
この時点で、プレーンＰＢ０では、選択ブロックＢＬＫにおける全てのストリングユニットＳＵ０〜ＳＵ３の状態が、レジスタＢＳ＿ＲＥＧ、ＦＳ＿ＲＥＧ、及びＰＳ＿ＲＥＧのいずれかにセットされる。従ってシーケンサ１４は、ＰＢ０＿ＥＮＡＢＬＥを“Ｌ”レベルとする（時刻ｔ１１）。他方で、プレーンＰＢ１では、ＰＢ１＿ＥＮＡＢＬＥが“Ｈ”レベルを維持すると共に、ＦＳ＿ＲＥＧ＿ＰＢ１の４ビットデータはいずれも“０”である（ステップＳ３０、ＮＯ）。従ってシーケンサ１４は、プレーンＰＢ１に対してのみ判定読み出しを行う（時刻ｔ１１〜ｔ１３）。すなわち、時刻ｔ１１以降は、シングルプレーン動作となる。
【０１２５】
判定読み出しの様子を図３２に示す。図示するように、プレーンＰＢ１のストリングユニットＳＵ２は、判定読み出しにおいてマーキングされていないと判断される。これによりシーケンサ１４は、信号ＳＴＲ＿ＦＩＸＥＤ＿ＰＢ１を“Ｈ”レベルとする（時刻ｔ１３）。
【０１２６】
信号ＳＴＲ＿ＦＩＸＥＤ＿ＰＢ１が“Ｈ”レベルとされたことを受けて、シーケンサ１４は、プレーンＰＢ１に対してのみ消去ベリファイを実行する（時刻ｔ１３〜ｔ１４）。この様子を図３３に示す。図示するように、プレーンＰＢ１のストリングユニットＳＵ２が消去ベリファイにフェイルする。よってシーケンサ１４は、ＦＳ＿ＲＥＧ＿ＰＢ１を“０１００”に更新する（時刻ｔ１４）。
【０１２７】
ＦＳ＿ＲＥＧ＿ＰＢ１に“１”データが書き込まれたことで（ステップＳ３０、ＹＥＳ）、シーケンサ１４はＦＳ＿ＲＥＧ＿ＰＢ０及びＦＳ＿ＲＥＧ＿ＰＢ１をリセットする（ステップＳ２１、時刻ｔ１５）。
【０１２８】
ＦＳ＿ＲＥＧ＿ＰＢ０がリセットされたことで、シーケンサ１４はＰＢ０＿ＥＮＡＢＬＥを“Ｈ”レベルにする。これにより、再びマルチプレーン動作が開始される。
【０１２９】
そしてシーケンサ１４は、プレーンＰＢ０及びＰＢ１のデータを同時に消去する（時刻ｔ１５〜ｔ１６）。この様子を図３４に示す。
【０１３０】
次にシーケンサ１４は、判定読み出しを行うためのストリングユニットＳＵを選択する。この際、プレーンＰＢ０ではストリングユニットＳＵ０及びＳＵ１がバッドストリングで確定しており、プレーンＰＢ１ではストリングユニットＳＵ０及びＳＵ１がグッドストリングで確定している。従って、プレーンＰＢ０及びＰＢ１の両方で、ストリングユニットＳＵ２が選択される。すなわち、ＳＴＲ＿ＡＤＤ＿ＰＢ０＝ＳＴＲ＿ＡＤＤ＿ＰＢ１＝“０１００”とされる（時刻ｔ１７）。
【０１３１】
そしてシーケンサ１４は判定読み出しを行う（時刻ｔ１７〜ｔ１８）。この様子を図３５に示す。図示するように、プレーンＰＢ０及びＰＢ１は共に判定読み出しにおいてマーキングされていないと判断される。従ってシーケンサ１４は、信号ＳＴＲ＿ＦＩＸＥＤ＿ＰＢ０及びＳＴＲ＿ＦＩＸＥＤ＿ＰＢ１を“Ｈ”レベルとする（時刻ｔ１８）。
【０１３２】
信号ＳＴＲ＿ＦＩＸＥＤ＿ＰＢ０及びＳＴＲ＿ＦＩＸＥＤ＿ＰＢ１が“Ｈ”レベルとされたことで、シーケンサ１４はプレーンＰＢ０及びＰＢ１に対して消去ベリファイを実行する（時刻ｔ１８〜ｔ１９）。この様子を図３６に示す。図３６に示すように、プレーンＰＢ０及びＰＢ１は共に消去ベリファイにフェイルする。よってシーケンサ１４は、ＦＳ＿ＲＥＧ＿ＰＢ０及びＦＳ＿ＲＥＧ＿ＰＢ１をそれぞれ“００００”から“０１００”に更新する（時刻ｔ１９）。
【０１３３】
時刻ｔ１９においてＦＳ＿ＲＥＧに“１”データがセットされたため（ステップＳ３０、ＹＥＳ）、シーケンサ１４はＦＳ＿ＲＥＧ＿ＰＢ０及びＦＳ＿ＲＥＧ＿ＰＢ１を“００００”にリセットする（ステップＳ２１、図２４の時刻ｔ２０）。
【０１３４】
その後、図２４に示すように、消去動作及び２回の消去ベリファイを行って、消去動作が完了する。
【０１３５】
１．３  本実施形態に係る効果  
本実施形態に係る構成であると、まず消去動作を高速化出来る。本効果につき、以下詳細に説明する。
【０１３６】
図３７は、マルチプレーン動作によるデータ消去方法の一例（比較例）を示す模式図であり、１つのプレーンに１２個のストリングユニットＳＵ０〜ＳＵ１１が含まれる例を示している。
【０１３７】
図示するように、まずプレーンＰＢ０及びＰＢ１のデータが消去され、１回目の消去ベリファイが行われる。消去ベリファイは、ストリングユニットＳＵ０から順番に行われ、プレーンＰＢ０ではストリングユニットＳＵ０〜ＳＵ５がパスし、ＳＵ６がフェイルする。他方でプレーンＰＢ１では、ストリングユニットＳＵ０〜ＳＵ７がパスし、ＳＵ８がフェイルしたとする。
【０１３８】
マルチプレーン動作においてフェイルストリングが検出されると、そのプレーンはその時点でフェイルと判定され、それ以降は非選択とされる。つまり図３７の例では、１回目の消去ベリファイでは、ストリングユニットＳＵ０〜ＳＵ６についてはマルチプレーン動作であるのに対して、プレーンＰＢ１のストリングユニットＳＵ７及びＳＵ８の消去ベリファイはシングルプレーン動作となる。そしてプレーンＰＢ１にもフェイルストリングが検出されると、消去ベリファイは終了し、再度プレーンＰＢ０及びＰＢ１のデータが消去される。
【０１３９】
２回目の消去ベリファイも１回目と同様に、ストリングユニットＳＵ０から順番に行われる。２回目の消去ベリファイでは、プレーンＰＢ０においてストリングユニットＳＵ０〜ＳＵ５がパスし、ＳＵ６がフェイルする。他方でプレーンＰＢ１においては、ストリングユニットＳＵ０〜ＳＵ１１がパスしたとする。この場合も、プレーンＰＢ１のストリングユニットＳＵ７〜ＳＵ１１の消去ベリファイはシングルプレーン動作となる。
【０１４０】
プレーンＰＢ１が消去ベリファイにパスしたので、次にプレーンＰＢ０のデータのみが消去される。そしてプレーンＰＢ０において、ストリングユニットＳＵ０から順番に消去ベリファイが行われる。
【０１４１】
以上のような方法であると、消去動作に時間がかかる。なぜなら、２回目以降の消去ベリファイ動作時において、既にベリファイにパスしているストリングユニットＳＵについても、再度ベリファイを実行しているからである。例えば図３７の例であると、２回目の消去ベリファイを実行する時点で、プレーンＰＢ０ではストリングユニットＳＵ０〜ＳＵ５がパスしていることは既知である。よって、ストリングユニットＳＵ０〜ＳＵ５についての消去ベリファイは無駄である。プレーンＰＢ１についても同様である。
【０１４２】
この点、本実施形態に係る構成であると、ＮＡＮＤ型フラッシュメモリ１は、ストリングユニット毎のステータスを保持するレジスタＰＳ＿ＲＥＧ、ＦＳ＿ＲＥＧ、及びＢＳ＿ＲＥＧを備えている。従って、ストリングユニット毎のパス／フェイル情報を保持することが出来、図３７のような無駄な動作を省き、消去動作を高速化出来る。
【０１４３】
より具体的には、レジスタＰＳ＿ＲＥＧ、ＦＳ＿ＲＥＧ、及びＢＳ＿ＲＥＧのステータスが確定していないストリングユニットＳＵを選択して、消去ベリファイが行われる。この際、いずれかのプレーンが消去ベリファイにフェイルしても、他のプレーンでフェイルストリングが存在しなければ、その時点では当該プレーンを非選択とせずに、消去ベリファイを続行する（図３７の例であると、１回目の消去ベリファイにおいて、プレーンＰＢ０のベリファイがストリングユニットＳＵ８まで継続される）。そして、全てのプレーンにおいて、少なくとも１つのフェイルストリングが検出された場合、あるいは全てのストリングユニットにつき消去ベリファイが完了するまで、ベリファイを継続する。
【０１４４】
本実施形態に係る動作を、図３８乃至図４７を用いて簡単に説明する。図３８乃至図４７は、４プレーンに含まれるストリングユニットＳＵの状態を示す模式図である。
【０１４５】
図３８に示すように、各プレーンＰＢ０〜ＰＢ３には１２個のストリングユニットＳＵ０〜ＳＵ１１が含まれる。まず、パーシャルバッドインフォメーションレジスタ３に登録されている不良の位置情報がチェックされる。本例では図３９に示すように、プレーンＰＢ０のストリングユニットＳＵ０、ＳＵ２、ＳＵ５、ＳＵ１０、及びＳＵ１１がバッドストリングとしてパーシャルバッドインフォメーションレジスタ３に登録されていたと仮定する。この情報が、レジスタＢＳ＿ＲＥＧ＿ＰＢ０に登録される（ＢＳ＿ＲＥＧ＿ＰＢ０＝“１２ｂ１１００＿００１０＿０１０１”）。その後、次のようにして消去動作が実行される。
【０１４６】
まず、全プレーンのデータが一括して消去される。
【０１４７】
（１−１）次に図４０に示すように、各プレーンＰＢにおいて、ＢＳ＿ＲＥＧ、ＰＳ＿ＲＥＧ、及びＦＳ＿ＲＥＧの全てが“０”であるストリングユニットのうち、アドレスの小さいストリングユニットが仮選択される（図４０において“ＴｍｐＳｅｌ”で示されたストリングユニット）。
【０１４８】
（１−２）次に図４１に示すように、判定読み出しを行い、バッドストリングと判定されたストリングユニットＳＵについては、ＢＳ＿ＲＥＧに“１”がセットされる。図４１では、ＢＳ＿ＲＥＧ＿ＰＢ０［１］とＢＳ＿ＲＥＧ＿ＰＢ２［０］に“１”がセットされる。
【０１４９】
（１−３）判定読み出しの結果、バッドストリングで無いと判定されたストリングユニットは、消去ベリファイ対象ストリングとして本選択される（図４１において“Ｓｅｌ”で示されたストリングユニット）。つまり、“ＴｅｍｐＳｅｌ”から“Ｓｅｌ”へ移行するということは、当該ストリングユニットＳＵにつき、信号ＳＴＲ＿ＦＩＸＥＤ＿ＰＢが“Ｈ”レベルになったことに相当する。
【０１５０】
（１−４）本選択されたストリングユニットを持たないプレーンＰＢ２では、上記（１−１）のルールに基づいて、いずれかのストリングユニットが仮選択される。
【０１５１】
（１−５）各プレーンで本選択ストリングユニットが確定するまで、上記（１−１）〜（１−４）が繰り返される。図４２の例であると、プレーンＰＢ１及びＰＢ３では、最初に選択されたストリングユニットが本選択されるのに対し、プレーンＰＢ０では、５回目に選択されたストリングユニットＳＵ７が本選択される（１回目〜４回目に仮選択されたストリングユニットはいずれも、選択トランジスタＳＴ１にバッドストリングである旨の情報が書き込まれていた）。この間、本選択ストリングユニットを有するプレーンは非選択状態となり、判定読み出し等は行わない。
【０１５２】
（２−１）次に、本選択ストリングユニットに対して消去ベリファイが行われる。この消去ベリファイにフェイルした場合にはＦＳ＿ＲＥＧに“１”がセットされ、パスした場合にはＰＳ＿ＲＥＧに“１”がセットされる。図４３の例では、ＦＳ＿ＲＥＧ＿ＰＢ０［７］、ＦＳ＿ＲＥＧ＿ＰＢ１［０］、ＦＳ＿ＲＥＧ＿ＰＢ２［１］、及びＰＳ＿ＲＥＧ＿ＰＢ３［０］に“１”がセットされる。
【０１５３】
（２−２）ＦＳ＿ＲＥＧ［１１：０］のどこにも“１”がセットされていないプレーンがある場合、つまり消去ベリファイにパスし続けているプレーンがある場合、別のストリングユニットを選択して消去ベリファイを続行する。図４３の例では、プレーンＰＢ３のＦＳ＿ＲＥＧに“１”がセットされていないので、消去ベリファイが続行される。
【０１５４】
（２−３）消去ベリファイが続行される場合、ＦＳ＿ＲＥＧに“１”がセットされているプレーンに関しても、消去ベリファイの行われていないストリングユニットが存在する場合には、上記（１−１）〜（１−５）の方法で、本選択ストリングを確定する。図４４の例では、プレーンＰＢ０に関してはストリングユニットＳＵ８及びＳＵ９がバッドストリングであるため、プレーンＰＢ０は非選択となる。よって、プレーンＰＢ１〜ＰＢ３の３プレーン動作となる。
【０１５５】
（２−４）各プレーンで、ＦＳ＿ＲＥＧの少なくとも１ビットが“１”にセットされるまで、消去ベリファイが続行される。図４４ではプレーンＰＢ３のみＦＳ＿ＲＥＧに“１”がセットされていなかったが、図４５の段階で、プレーンＰＢ３のストリングユニットＳＵ３にＦＳ＿ＲＥＧ＝“１”が出現した。従って、２回目のデータ消去が実行される。
【０１５６】
（３−１）２回目のデータ消去の後、全プレーンＰＢ０〜ＰＢ３につき、ＦＳ＿ＲＥＧのみリセットされ、上記（１−１）〜（２−４）が繰り返される。図４６は、ＦＳ＿ＲＥＧのみリセットされた様子を示す。
【０１５７】
（４−１）その後、全てのストリングユニットＳＵのステータスが、ＰＳ＿ＲＥＧまたはＢＳ＿ＲＥＧに確定するまで、消去ベリファイが続行される。図４７は、全てのストリングユニットＳＵにつき消去ベリファイが完了した際のレジスタの状態を示している。
【０１５８】
以上のように本実施形態によれば、ストリングユニットＳＵの状態をレジスタに保持させている。そして、この情報に基づいて、不要な消去ベリファイはスキップさせている。従って、消去動作を高速化出来る。
【０１５９】
また本実施形態によれば、レジスタＰＳ＿ＲＥＧ、ＦＳ＿ＲＥＧ、及びＢＳ＿ＲＥＧの保持する情報を、外部のメモリコントローラに出力出来る。これによりメモリコントローラは、ＮＡＮＤ型フラッシュメモリ１の状態をより詳細に把握することが出来る。例えばメモリコントローラは、例えばＦＳ＿ＲＥＧの状態に応じて、出荷後にバッドストリングとなったストリングユニットにつき、その旨の情報を選択トランジスタＳＴ１に書き込むことも出来る。
【０１６０】
このように、メモリコントローラによるＮＡＮＤ型フラッシュメモリ１の制御の自由度を格段に高めることが出来る。もちろん、必要に応じて各ストリングユニットの状態を、メモリコントローラを介してホスト機器に出力することも可能である。この点については、第５実施形態で詳細に説明する。
【０１６１】
２．第２実施形態  
次に、第２実施形態に係る半導体記憶装置について説明する。本実施形態は、上記第１実施形態における消去動作時の電圧の詳細に関するものである。以下では、第１実施形態と異なる点についてのみ説明する。
【０１６２】
２．１  第１の例について  
まず、消去動作の第１の例について説明する。図４８は選択ブロックＢＬＫの断面図であり、図４９は各配線に印加される電圧のタイミングチャートである。図４８及び図４９のいずれも、電荷蓄積層から電荷を引き抜き、メモリセルトランジスタＭＴの閾値を低下させる際の様子を示している。
【０１６３】
図示するように、ウェル配線ＣＰＷＥＬＬには、例えばウェルドライバによって消去電圧ＶＥＲＡ（例えば２０Ｖ）が印加される。従って、各ＮＡＮＤストリングにおけるピラー３３の電位も略ＶＥＲＡまで上昇する。また、ワード線ＷＬには、ロウデコーダ１１によって電圧Ｖｅ（例えば０〜０．５Ｖ）が印加される。この結果、各メモリセルトランジスタＭＴにおいて、電荷蓄積層内の電荷がピラー３３に引き抜かれ、閾値が低下する。
【０１６４】
また、セレクトゲート線ＳＧＤ及びダミーワード線ＤＷＬＤ及びＤＷＬＳには、ロウデコーダ１１によって電圧Ｖ１（例えば１０Ｖ）が印加される。これにより、選択トランジスタＳＴ１、並びにダミートランジスタＤＴＤ及びＤＴＳでは、ゲートとピラー３３との電位差が小さくなる。よって、これらのトランジスタにおいては、電荷蓄積層内の電荷がピラー３３に引き抜かれることが抑制され、従前の閾値をほぼ維持する。
【０１６５】
またセレクトゲート線ＳＧＳには、ロウデコーダ１１によって例えば電圧Ｖ１より大きい電圧Ｖ２（例えば１５Ｖ）が印加される。これにより、ピラー３３はウェル配線ＣＰＷＥＬＬの電圧により満たされる。
【０１６６】
図５０は、データ消去時における各種配線の電圧を示すタイミングチャートである。図５０では、プレーンＰＢ０のストリングユニットＳＵ０が第２登録機能によってマーキングされ（ＢＳＭ）、ストリングユニットＳＵ１が第１登録機能によって不良と登録（ＢＳＣ）されていた場合を示している。そして図５０では、１回の消去パルスが印加されて、プレーンＰＢ０ではその後の消去ベリファイでストリングユニットＳＵ２及びＳＵ３がフェイルし、プレーンＰＢ１ではストリングＳＵ０及びＳＵ１がパスし、ストリングユニットＳＵ２がフェイルした場合について示している。
【０１６７】
図示するように、ソース線ＳＬ（及びウェル配線ＣＰＷＥＬＬ）に消去電圧ＶＥＲＡ（例えば２０Ｖ）が印加され、ワード線ＷＬには電圧Ｖｅ（例えば０〜０．５Ｖ）が印加される。これにより、メモリセルトランジスタＭＴ０〜ＭＴ７のデータが消去され、これらの閾値が低下する。この際、セレクトゲート線ＳＧＤには電圧Ｖ１が印加され、図示せぬセレクトゲート線ＳＧＳ及びダミーワード線ＤＷＬには電圧Ｖ２（＜Ｖ１）が印加される。これにより、選択トランジスタＳＴ１、ＳＴ２及びダミートランジスタＤＴの閾値低下が抑制される。
【０１６８】
次に、判定読み出しが行われる。図示するように、判定読み出しの期間、ワード線ＷＬには電圧ＶＲＥＡＤが印加される。プレーンＰＢ０では、２回目の判定読み出しで、消去ベリファイ対象となるストリングユニットＳＵ２が見つかるため、ＶＲＥＡＤは２回印加される。他方でプレーンＰＢ０では１回目の判定読み出しで、消去ベリファイ対象となるストリングユニットＳＵ０が見つかるため、ＶＲＥＡＤの印加回数は１回である。その後、プレーンＰＢ０及びＰＢ１において同時に消去ベリファイが印加される。すなわち、ワード線ＷＬにベリファイ電圧Ｖevが印加される。判定読み出しの間、セレクトゲート線ＳＧＳの電位変化はＳＧＤと同様である。
【０１６９】
その後、プレーンＰＢ０及びＰＢ１の両方でフェイルストリングが出現するまで、もしくは全てのストリングユニットＳＵのステータスが確定するまで、判定読み出しと消去ベリファイが繰り返される。なお、判定読み出し及び消去ベリファイの期間、ソース線ＳＬには電圧Ｖsl（＞０Ｖ）が印加される。
【０１７０】
以上のように、第２登録機能がイネーブルにされている場合、消去動作時であっても、ワード線ＷＬに電圧ＶＲＥＡＤが印加される期間が存在する。
【０１７１】
２．２  第２の例について  
次に、消去動作の第２の例について説明する。図５１は選択ブロックＢＬＫの断面図であり、図５２は各配線に印加される電圧のタイミングチャートである。図５１及び図５２のいずれも、電荷蓄積層から電荷を引き抜き、メモリセルトランジスタＭＴの閾値を低下させる際の様子を示している。
【０１７２】
本例は、消去ベリファイにパスしたか（ＰＳ＿ＲＥＧ＝“１”）、あるいはバッドストリングと判断された（ＢＳ＿ＲＥＧ＝“１”）ストリングユニットＳＵは、消去非対象とされる。そのため、図５２に示すように、同一ストリングユニットＳＵ内における複数のセレクトゲート線ＳＧＳが、互いに独立して制御可能とされている。すなわち、ストリングユニットＳＵ０〜ＳＵ３の選択トランジスタＳＴ２のゲートは、セレクトゲート線ＳＧＳ０〜ＳＧＳ３にそれぞれ接続され、ロウデコーダ１１によって制御される。
【０１７３】
第１の例で説明した図４８及び図４９の場合と異なる点は、非選択ストリングユニットＳＵのセレクトゲート線ＳＧＳには電圧Ｖ３が印加される点である。電圧Ｖ３は、電圧Ｖ２及びＶ１よりも高い電圧である。従って、ゲートに電圧Ｖ３を印加されると、選択トランジスタＳＴ２のピラー３２は空乏化する。従って、この空乏化されたピラー３２により、ｐ型ウェル領域２０に与えられた電圧ＶＥＲＡはピラー３３に転送されない。従って、ピラー３３の電位上昇が抑えられる。この結果、非選択ストリングユニットＳＵのメモリセルトランジスタＭＴ、ダミートランジスタＤＴＤ及びＤＴＳ、並びに選択トランジスタＳＴ１に電圧ストレスがかかることを抑制出来る。
【０１７４】
なお図５１及び図５２の例では、非選択ストリングユニットのセレクトゲート線ＳＧＤには電圧Ｖ４が与えられる（Ｖ４＜Ｖ１）。このことも、選択トランジスタＳＴ１への電圧ストレスの軽減に寄与する。ダミーワード線ＤＷＬＤ及びＤＷＬＳも独立して制御可能であれば、セレクトゲート線ＳＧＤと同様に、非選択ストリングユニットのダミーワード線ＤＷＬＤ及びＤＷＬＳには電圧Ｖ１よりも低い電圧を印加しても良い。
【０１７５】
以上のように、消去非対象のストリングユニットＳＵにかかる電圧ストレスを軽減することで、メモリセルトランジスタＭＴ及びダミートランジスタＤＴＤ、及びＤＴＳが過消去されることを防止し、また選択トランジスタＳＴ１に書き込まれたバッドストリング情報が破壊されることも防止出来る。
【０１７６】
２．３  本実施形態に係る効果  
以上のように、消去動作時の各配線の電圧は本実施形態で説明したように設定することが出来る。特に第２の例によれば、消去ベリファイにパスしたストリングユニットＳＵ及び既にバッドストリングであることが分かっているストリングユニットＳＵに対して消去を行わない。従って、各トランジスタに加わる電圧ストレスを軽減し、動作信頼性を向上出来る。
【０１７７】
３．第３実施形態  
次に、第３実施形態に係る半導体記憶装置について説明する。本実施形態は、上記第１実施形態で説明したメモリホール（ＭＨ）オープンマスク機能に関するものである。ＭＨオープンマスク機能とは、メモリホールのオープン不良を持つＮＡＮＤストリングについては、消去ベリファイにパスしたとみなして、データ消去が無駄に繰り返されることを防止するための機能である。以下では、第１及び第２実施形態と異なる点についてのみ説明する。
【０１７８】
３．１  センスアンプ１２の構成について  
まず、センスアンプ１２の構成について図５３を用いて説明する。図５３は、センスアンプ１２のブロック図である。
【０１７９】
図示するようにセンスアンプ１２は、ビット線ＢＬ毎に設けられた複数のセンスアンプユニットＳＡＵを備えている。センスアンプユニットＳＡＵは、センスアンプ部ＳＡ、演算部ＯＰ、並びにラッチ回路ＬＤＬ、ＳＤＬ、ＵＤＬ、及びＸＤＬを備えている。
【０１８０】
センスアンプ部ＳＡは、データの読み出し時（ベリファイ読み出しも含む）には、対応するビット線ＢＬに読み出されたデータをセンス・増幅する。またデータの書き込み時には、対応するビット線ＢＬに、書き込みデータに応じた電圧を印加する。
【０１８１】
演算部ＯＰは、ラッチ回路ＬＤＬ、ＳＤＬ、ＵＤＬ、及びＸＤＬに保持されるデータに基づき、種々の論理演算を実行する。
【０１８２】
ラッチ回路ＬＤＬ、ＳＤＬ、ＵＤＬ、及びＸＤＬは、メモリコントローラから受信した書き込みデータ、センスアンプ部ＳＡでセンス・増幅された読み出しデータ、または演算部５１での演算結果を保持する。そしてセンスアンプ１２と外部との間のデータの受信は、ラッチ回路ＸＤＬを介して行われる。
【０１８３】
３．２  センスアンプ１２の動作について  
次に、ＭＨオープンマスク機能に係るセンスアンプ１２の動作につき、図５４を用いて説明する。図５４は、センスアンプ１２の動作を示すフローチャートであり、図７で説明したステップＳ２７〜Ｓ２９の詳細に相当する。
【０１８４】
まずセンスアンプ部ＳＡが判定読み出しを行い、その結果をラッチ回路ＵＤＬに格納する（ステップＳ４０）。例えばセンスアンプ部ＳＡにおいては、判定読み出しにおいて、マーキングされていない（メモリホールオープン不良が無い）と判断されたビットには“０”が格納され、マーキングされていると判断されたビットには“１”が格納される。そして、この結果がラッチ回路ＵＤＬに転送される。
【０１８５】
引き続きセンスアンプ部ＳＡが消去ベリファイを行い、その結果をラッチ回路ＬＤＬに格納する（ステップＳ４１）。この場合もセンスアンプ部ＳＡには、ステップＳ４０と同様に、消去ベリファイにパスしたビットには“０”が格納され、フェイルしたビットには“１”が格納される。そして、この結果がラッチ回路ＬＤＬに転送される。
【０１８６】
次に演算部ＯＰが、ラッチ回路ＵＤＬ内のデータと、ラッチ回路ＬＤＬ内のデータとの論理演算を行う（ステップＳ４２）。本例では、演算部ＯＰは、／（ＵＤＬ ＆ ＬＤＬ）なる演算を行う。すなわち、ラッチ回路ＵＤＬ内のデータと、ラッチ回路ＬＤＬ内のデータとの論理積演算を行い、これを反転する。つまり、演算部ＯＰは、ＭＨオープンでないビットで、且つ消去ベリファイにフェイルしたビットのＸＤＬが“０”となるような演算を行う。演算結果が“０”の場合、ＭＨオープンでは無く、消去ベリファイにフェイルしたことを示し、“１”の場合、ＭＨオープンまたは消去ベリファイにパスしたこととなり、この結果、当該ビットはパスと判断される。
【０１８７】
その後シーケンサ１４は、ラッチ回路ＸＤＬの結果に応じてレジスタＰＳ＿ＲＥＧ、ＦＳ＿ＲＥＧ、及びＢＳ＿ＲＥＧをセットする。
【０１８８】
図５５は、上記動作の具体例であり、ラッチ回路ＵＤＬ、ＬＤＬ、及びＸＤＬに保持されるデータを示している。図５５では簡単化のために、ビット線本数が７本（ＢＬ０〜ＢＬ６）であり、このうちビット線ＢＬ０及びＢＬ４に対応するＮＡＮＤストリングにＭＨオープン不良があったと仮定する。
【０１８９】
すると、ステップＳ４０の結果、ラッチ回路ＵＤＬには“００１０００１”が格納される。すなわち、７ビットデータは下位ビットから順にビット線ＢＬ０〜ＢＬ６について示しており、ＭＨオープン不良が存在すると判断されたビット線ＢＬ０及びＢＬ４に対応する下位から１ビット目と５ビット目が“１”にセットされる。
【０１９０】
引き続き、ステップＳ４１の結果、ラッチ回路ＬＤＬには“１０１１０１１”が格納される。すなわち、ビット線ＢＬ１、ＢＬ３、及びＢＬ６が消去ベリファイにフェイルした。当然ながら、ビット線ＢＬ０及びＢＬ５もフェイルする。
【０１９１】
その後、ステップＳ４２において演算部ＯＰが、それぞれのビットにおけるＬＤＬとＵＤＬのＡＮＤ演算後の反転データをＸＤＬに格納する。その結果、ラッチ回路ＸＤＬには“１００１０１０”が格納される。すなわち、ＭＨオープン不良のあるビット線ＢＬ０及びＢＬ５に対応するビットが“０”に変換される。これによりラッチ回路ＸＤＬは、シーケンサ１４に対してビット線ＢＬ０及びＢＬ５が、判定読み出し及び消去ベリファイの両方にパスしたようにみせかける。
【０１９２】
そしてシーケンサ１４は、ラッチ回路ＸＤＬに格納されているデータに基づいて、レジスタＰＳ＿ＲＥＧ、ＦＳ＿ＲＥＧ、及びＢＳ＿ＲＥＧをセットする。
【０１９３】
３．３  本実施形態に係る効果  
メモリホールのオープン不良とは、あるＮＡＮＤストリングにおいて、メモリホール２６が目詰まりを起こす、あるいはメモリホール２６形成時のエッチングが不十分である等の理由で、メモリホール２６がウェル領域２０に達せず、ビット線ＢＬとソース線ＳＬとが電気的に非接続とされる不良のことである。このような不良が発生した場合、当該ＮＡＮＤストリングは、何度消去を繰り返しても消去ベリファイにはパスしない。
【０１９４】
この点、本実施形態によれば、メモリホールのオープン不良が存在するＮＡＮＤストリングを、センスアンプ１２における論理演算によって消去ベリファイにパスしたものとみなす。つまり、メモリホールのオープン不良が検出された時点で、当該ビットは消去ベリファイの対象から除外される。従って、メモリホールのオープン不良により無駄に消去が繰り返されることを防止し、メモリセルトランジスタＭＴが過消去されることを防止出来る。
【０１９５】
４．第４実施形態  
次に、第４実施形態に係る半導体記憶装置について説明する。本実施形態は、上記第１乃至第３実施形態において、図７及び図８で説明した消去動作後に、ダミートランジスタＤＴＤ及びＤＴＳへの書き込み（これをダミープログラムと呼ぶ）を行うものである。以下では、第１乃至第３実施形態と異なる点についてのみ説明する。
【０１９６】
４．１  ロジック回路について  
まず、本実施形態に係るロジック回路２の構成につき、図５６を用いて説明する。図５６は、ロジック回路２のブロック図である。
【０１９７】
図示するように本実施形態に係るロジック回路２は、第１実施形態で説明した図１において、更にダミーレジスタＤＭＹ＿ＲＥＧを有するものである。ダミーレジスタＤＭＹ＿ＲＥＧは、ＢＳ＿ＲＥＧ、ＦＳ＿ＲＥＧ、及びＰＳ＿ＲＥＧと同様に４ビットデータを保持し、各ビットが下位から順番にストリングユニットＳＵ０〜ＳＵ３に相当する。そして各ビットは、対応するストリングユニットＳＵが、後述するプログラム前ベリファイ及びダミープログラムベリファイにパスしたか否かの情報を保持する。ダミーレジスタＤＭＹ＿ＲＥＧは、プレーンＰＢ０用のレジスタＤＭＹ＿ＲＥＧ＿ＰＢ０と、プレーンＰＢ１用のレジスタＤＭＹ＿ＲＥＧ＿ＰＢ１とを備えている。
【０１９８】
４．２  ダミープログラムの全体の流れ  
次に、ダミープログラムの全体の流れにつき、図５７Ａ及び図５７Ｂを用いて説明する。図５７Ａ及び図５７Ｂはダミープログラム動作のフローチャートであり、各ステップにおける処理は、主にシーケンサ１４が行う。
【０１９９】
ダミープログラムは、セレクトゲート線ＳＧＤ型のダミートランジスタＳＴ１とセレクトゲート線ＳＧＳ側のダミートランジスタＳＴ２の一方、または両方に対して実行出来る。シーケンサ１４は、図７で説明したフローチャートの“ＥＮＤ”の後に、ダミープログラムを行うか否かを判断し、行う場合に図５７に示す処理を開始する。
【０２００】
セレクトゲート線ＳＧＳ側のダミートランジスタＤＴＳへのダミープログラムを行う場合（ステップＳ５０、ＹＥＳ）、またはセレクトゲート線ＳＧＤ側のダミートランジスタＤＴＤへのダミープログラムを行う場合（ステップＳ５１、ＹＥＳ）、ステップＳ５２に進む。ステップＳ５２においてシーケンサ１４は、（ＰＳ＿ＲＥＧ＿ＰＢｘ＝１ ＆ ＦＳ＿ＲＥＧ＿ＰＢｘ＝０）が“１”であるストリングユニットＳＵを含むプレーンにつきＰＢｘ＿ＥＮＡＢＬＥ＝１に設定し、そうでないプレーンにつきＰＢｘ＿ＥＮＡＢＬＥ＝０を設定する（ステップＳ５２）。言い換えれば、消去ベリファイでパスしたストリングユニットに対してのみダミープログラムを行うため、そのようなストリングユニットＳＵを含むプレーンを選択する。つまり、選択ブロックの全てのストリングユニットＳＵがフェイルストリングまたはバッドストリングと判断されていれば、ダミープログラム動作を行っても、対象となるストリングユニットＳＵは存在しない、ということである。
【０２０１】
ＰＢｘ＿ＥＮＡＢＬＥ＝１のプレーンが存在しなければ（ステップＳ５３、ＮＯ）、処理は終了する。存在する場合（ステップＳ５３、ＹＥＳ）、ステップＳ５４の処理に進む。ステップＳ５４においてシーケンサ１４は、ＰＢｘ＿ＥＮＡＢＬＥ＝１のプレーンにおいて、（ＰＳ＿ＲＥＧ＿ＰＢｘ［ｎ］ ＆ ／ＦＳ＿ＲＥＧ＿ＰＢｘ［ｎ］ ＆ ／ＤＭＹ＿ＲＥＧ＿ＰＢｘ［ｎ］）＝１が存在するプレーンでは、そのストリングユニットＳＵを選択し、存在しないプレーンについてはＰＢｘ＿ＥＮＡＢＬＥ＝０とする。つまり、ＰＳ＿ＲＥＧ＝１、ＦＳ＿ＲＥＧ＝０、及びＤＭ＿ＲＥＧ＝０を満たすストリングユニットＳＵが選択される。上記条件を満たすストリングユニットＳＵが複数存在する場合には、そのうちで最もストリングアドレスＳＵの小さいものが選択される。
【０２０２】
そしてシーケンサ１４は、ＰＢｘ＿ＥＮＡＢＬＥ＝１のプレーンが存在するか判定する（ステップＳ５５）。存在しなければ（ステップＳ５５、ＮＯ）、ＳＧＤ側のダミープログラムを行うかを判定し（ステップＳ５６）、行わない場合には処理を終了し、行う場合には、ＳＧＳ側のダミープログラムと同じ処理を繰り返す。
【０２０３】
ステップＳ５５においてＰＢｘ＿ＥＮＡＢＬＥ＝１のプレーンが存在すれば（ステップＳ５５、ＹＥＳ）、シーケンサ１４はプログラム前ベリファイを行う（ステップＳ５７）。プログラム前ベリファイとは、ダミートランジスタＤＴに対して読み出し動作を行い、ダミートランジスタＤＴの閾値が低下しすぎていないか否かを確認する動作である。従って以下では、ダミートランジスタＤＴの閾値が所定の値より高い場合を、プログラム前ベリファイにパスした、と定義し、所定の値以下である場合（過消去されている場合）を、プログラム前ベリファイにフェイルした、と定義する。
【０２０４】
引き続きシーケンサ１４は、プログラム前バリファイの結果を取り込み、パスしたプレーンについてはＤＭＹ＿ＲＥＧ＿ＰＢｘ＝１をセットする（ステップＳ５８）。そしてシーケンサ１４は、ＰＢｘ＿ＥＮＡＢＬＥ＝１のプレーンのうち、フェイルしたプレーンが存在しなければ、ステップＳ５４に戻り、再度プログラム前ベリファイを実行する。
【０２０５】
いずれかのプレーンにおいてプログラム前ベリファイにフェイルした場合（ステップＳ５９、ＮＯ）、ステップＳ６０の処理に進む。すなわちシーケンサ１４は、パスしたプレーンのＰＢｘ＿ＥＮＡＢＬＥを０に設定し、ＰＢｘ＿ＥＮＡＢＬＥ＝１のプレーンのうち、ＤＭＹ＿ＲＥＧ＝１のストリングユニットＳＵに対してプログラム（ダミープログラム）を行い、プログラムベリファイを実行する（ステップＳ６０）。
【０２０６】
引き続きシーケンサ１４は、ステップＳ６０におけるプログラムベリファイの結果を取り込み、パスしたプレーンについては、ＤＭＹ＿ＲＥＧ＿ＰＢｘ［ｎ］＝１をセットする（ステップＳ６１）。他方で、ＰＢｘ＿ＥＮＡＢＬＥ＝１のプレーンのうち、フェイルしたプレーンが存在する場合（ステップＳ６２、ＹＥＳ）は、ダミープログラムの最大繰り返し回数に達するまで、ステップＳ６０〜Ｓ６２を繰り返す（ステップＳ６３）。他方で、フェイルしたプレーンが存在しなければ、ステップＳ５４の処理に戻る。
【０２０７】
そして、最大繰り返し回数に達した場合は（ステップＳ６３、ＹＥＳ）、フェイルしたプレーンにおける対応するストリングユニットのＦＳ＿ＲＥＧ＿ＰＢｘを１に設定して（ステップＳ６４）、ステップＳ５２に戻る。
【０２０８】
以上のように、本例ではまずソース側の選択トランジスタＳＴ２に隣接するダミートランジスタＤＴＳにつき、図５８で説明した処理が行われる。その後、ドレイン側の選択トランジスタＳＴ１に隣接するダミートランジスタＤＴＤにつき、同様の処理が行われる。但し、ダミートランジスタＤＴＳがフェイルしたストリングユニットＳＵ（換言すればレジスタＦＳ＿ＲＥＧに“１”がセットされたストリングユニットＳＵ）では、ダミートランジスタＤＴＤに対するダミープログラムは実行されない。
【０２０９】
４．３  ダミープログラムの具体例について  
次に、上記ダミープログラム動作の具体例につき、マルチプレーン動作の場合を例に挙げて説明する。図５８Ａ乃至図５８Ｃは消去動作時における種々の信号の変化を順次示すタイミングチャートであり、図５９Ａ乃至図５９Ｃは図５８Ｃに引き続くダミープログラム動作時のタイミングチャートである。
【０２１０】
図５８Ａ乃至図５８Ｃは、第１実施形態で説明した図２４Ａ及び図２４Ｂとほぼ同様である。図２４Ａ及び図２４Ｂの場合と異なるのは、シーケンサ１４が、ダミーレジスタＤＭＹ＿ＲＥＧ＿ＰＢ０［３：０］及びＤＭＹ＿ＲＥＧ＿ＰＢ１［３：０］、並びに信号ＯＰＣ及びＯＰＣ＿ＭＡＸを制御する点だけである。消去動作の間、ダミーレジスタＤＭＹ＿ＲＥＧ＿ＰＢ０及びＤＭＹ＿ＲＥＧ＿ＰＢ１のデータは、共に“００００”に初期化された状態を維持する。信号ＯＰＣは、ダミープログラム回数を示す信号であり、シーケンサ１４はダミープログラムを実行する毎に信号ＯＰＣをカウントアップする。従って消去動作の間、信号ＯＰＣは“０”である。また信号ＯＰＣ＿ＭＡＸは、ダミープログラム回数が最大繰り返し回数に達した際に“Ｈ”レベルとされる信号である。
【０２１１】
第１実施形態で説明した消去動作の後、シーケンサ１４は、ダミートランジスタＤＴＳへのダミープログラム動作を開始する（時刻ｔ３０）。プレーンＰＢ０ではＢＳ＿ＲＥＧ＝“００１１”、ＦＳ＿ＲＥＧ＝“００００”、及びＰＳ＿ＲＥＧ＝“１１００”であるので、シーケンサ１４はＳＴＲ＿ＡＤＤを“０１００”にセットして、ストリングユニットＳＵ２を選択する。他方でプレーンＰＢ１ではＢＳ＿ＲＥＧ＝“００００”、ＦＳ＿ＲＥＧ＝“００００”、及びＰＳ＿ＲＥＧ＝“１１１１”であるので、シーケンサ１４はＳＴＲ＿ＡＤＤを“０００１”にセットして、ストリングユニットＳＵ０を選択する。そして、プログラム前ベリファイ（Dummy Pre Pvfy）を実行する（時刻ｔ３２〜ｔ３３）。
【０２１２】
プログラム前ベリファイの結果、プレーンＰＢ０及びＰＢ１の両方でベリファイにパスしたとする。するとシーケンサ１４は、レジスタＤＭＹ＿ＲＥＧにおいて、対応するビットを“１”にセットする。すなわち、レジスタＤＭＹ＿ＲＥＧ＿ＰＢ０を“０１００”にセットし、レジスタＤＭＹ＿ＲＥＧ＿ＰＢ１を“０００１”にセットする（時刻ｔ３３）。
【０２１３】
図５８のステップＳ５４の条件を満たすストリングユニットが残っているので、シーケンサ１４は引き続き、ＳＴＲ＿ＡＤＤ＿ＰＢ０を“１０００”にセットしてプレーンＰＢ０のストリングユニットＳＵ３を選択し、ＳＴＲ＿ＡＤＤ＿ＰＢ１を“００１０”にセットしてプレーンＰＢ１のストリングユニットＳＵ１を選択する。そして、プログラム前ベリファイを実行する（時刻ｔ３４〜ｔ３５）。
【０２１４】
プログラム前ベリファイの結果、プレーンＰＢ０ではベリファイにパスし、プレーンＰＢ１ではフェイルしたとする。するとシーケンサ１４は、ＤＭＹ＿ＲＥＧ＿ＰＢ０を“０１００”から“１１００”に更新し、ＤＭＹ＿ＲＥＧ＿ＰＢ１を“０００１”に維持する（時刻ｔ３５）。
【０２１５】
時刻ｔ３５において、プレーンＰＢ０では図５８のステップＳ５４の条件を満たすストリングユニットＳＵが無くなったので、シーケンサ１４はＰＢ０＿ＥＮＡＢＬＥを“Ｌ”レベルとする。よって、時刻ｔ３５以降はシングルプレーン動作となる。
【０２１６】
またプレーンＰＢ１ではベリファイにフェイルしたので、ストリングユニットＳＵ１に対してダミープログラム（Dummy Prog）を実行する（時刻ｔ３５〜ｔ３６）。そしてシーケンサ１４は、信号ＯＰＣを“０”から“１”にカウントアップする。
【０２１７】
その後シーケンサ１４は、ストリングユニットＳＵ１に対してダミープログラムベリファイ（Dummy Pvfy）を実行する（時刻ｔ３６〜ｔ３７）。その結果、ベリファイにフェイルしたため、シーケンサ１４は再度、ダミープログラムを実行する（時刻ｔ３７〜ｔ３８）。すると、ダミープログラム回数が“２”となり、最大繰り返し回数に達するので、シーケンサ１４は信号ＯＰＣ＿ＭＡＸを“Ｈ”レベルにする。
【０２１８】
引き続きシーケンサ１４は、ストリングユニットＳＵ１に対してダミープログラムベリファイを実行するが（時刻ｔ３８〜ｔ３９）、フェイルする。するとシーケンサ１４は、信号ＯＰＣ＿ＭＡＸが“Ｈ”レベルであるので、ＦＳ＿ＲＥＧ＿ＰＢ１において、対応するビットを“１”とする。すなわち、ＦＳ＿ＲＥＧ＿ＰＢ１＝“００１０”とする（時刻ｔ３９）。
【０２１９】
引き続きシーケンサ１４は、ステップＳ５４の処理に進み、プレーンＰＢ１のストリングユニットＳＵ２を選択する（時刻ｔ４０）。ストリングユニットＳＵ２は、２回のダミープログラムで、ダミープログラムベリファイにパスする。従ってシーケンサ１４は、時刻ｔ４３においてＤＭＹ＿ＲＥＧ＿ＰＢ０を“０００１”から“０１０１”に更新する。
【０２２０】
更にシーケンサ１４は、プレーンＰＢ１のストリングユニットＳＵ３を選択する（時刻ｔ４４）。ストリングユニットＳＵ３は、プログラム前ベリファイにパスする。よってシーケンサ１４は、時刻ｔ４５においてＤＭＹ＿ＲＥＧ＿ＰＢ０を“０１０１”から“１１０１”に更新する。
【０２２１】
この時点で、プレーンＰＢ０にもステップＳ５４の条件を満たすストリングユニットが残っていないため、シーケンサ１４はＰＢ１＿ＥＮＡＢＬＥを“Ｌ”レベルにする。
【０２２２】
以上により、ソース側のダミートランジスタＤＴＳに対するダミープログラムが終了する。引き続きシーケンサ１４は、ドレイン側のダミートランジスタＤＴＤに対するダミープログラムを開始する（時刻ｔ４６）。
【０２２３】
ダミートランジスタＤＴＤに対するダミープログラムも、ダミートランジスタＤＴＳと同様であるので、その詳細は省略する。但し、プレーンＰＢ１のストリングユニットＳＵ２のダミートランジスタＤＴＳは、ダミープログラムにフェイルしている。従って、プレーンＰＢ１では、同じストリングユニットＳＵ２のダミートランジスタＤＴＤに対するダミープログラムは行われない（時刻ｔ５４参照）。
【０２２４】
４．４  本実施形態に係る効果  
ＮＡＮＤ型フラッシュメモリでは、選択トランジスタとメモリセルトランジスタとの間にダミートランジスタを設けることがある。ダミートランジスタは、データの記憶素子としては機能せず、単なる電流経路として機能するものである。ＮＡＮＤストリングが正常に動作するためには、このダミートランジスタの閾値も、予め定められた所定の範囲内に設定されておくことが望ましい。
【０２２５】
この点、データの消去時には、ダミートランジスタに対しても一定程度の電圧ストレスがかかり、場合によっては閾値が過度に低下するケースがあり得る。そこで本実施形態では、消去後に、ダミートランジスタに対するプログラムを実行し、これにより過消去状態のダミートランジスタの閾値を、正常な値に設定している。よって、ＮＡＮＤ型フラッシュメモリ１の動作信頼性を向上出来る。
【０２２６】
さらにこの際、シーケンサ１４はレジスタＢＳ＿ＲＥＧ、ＦＳ＿ＲＥＧ、及びＰＳ＿ＲＥＧの状態に応じて、ダミープログラム対象の候補となるストリングユニットＳＵを決定している。すなわち、ＰＳ＿ＲＥＧ＝“１”、ＦＳ＿ＲＥＧ＝“０”、及びＢＳ＿ＲＥＧ＝“０”であるストリングユニットＳＵを、ダミープログラム対象の候補としている。
【０２２７】
すなわち、ＦＳ＿ＲＥＧ＝“１”及び／またはＢＳ＿ＲＥＧ＝“１”であるストリングユニットは、ダミープログラムを行う前の時点で既に不良ストリングである。従って、これらのストリングユニットに対してダミープログラムを行うことは無駄である。よって本実施形態では、まずこれらのストリングユニットを、ダミープログラムの候補から外す。これにより、ダミープログラム動作を高速化出来る。
【０２２８】
更に本実施形態では、ダミープログラムを行う前に、ＰＳ＿ＲＥＧ＝“１”、ＦＳ＿ＲＥＧ＝“０”、及びＢＳ＿ＲＥＧ＝“０”を満たすストリングユニットに対してベリファイを行う。すなわち、ダミートランジスタが過消去されているか否かを確認する。そして、過消去されているダミートランジスタのみに対してダミープログラムを実行する。このため、本当にダミープログラムを必要とするダミートランジスタに対してのみプログラムを行えば良く、このことによってもダミープログラム動作を高速化出来る。
【０２２９】
更に、ソース側のダミートランジスタＤＴＳがフェイルしたストリングユニットＳＵでは、ドレイン側のダミートランジスタＤＴＤのダミープログラムは無条件で行わない。これは、ダミートランジスタＤＴＳがフェイルした時点で、当該ストリングユニットは不良であることが判明しており、そのようなストリングユニットＳＵのダミートランジスタＤＴＤに対してダミープログラムを行う必要は無いからである。このことも、ダミープログラムの高速化に寄与する。
【０２３０】
５．第５実施形態  
次に、第５実施形態に係る半導体記憶装置について説明する。本実施形態は、半導体記憶装置を制御するメモリコントローラによって、上記第１乃至第４実施形態で説明した半導体記憶装置のステータスを読み出すものである。以下では、第１乃至第４実施形態と異なる点についてのみ説明する。
【０２３１】
５．１  メモリコントローラの構成について  
まず本実施形態に係るメモリコントローラについて、図６０を用いて説明する。図６０は、本実施形態に係るメモリシステムのブロック図である。
【０２３２】
図示するようにメモリシステムは、ＮＡＮＤ型フラッシュメモリ１００及びコントローラ２００を備えている。コントローラ２００とＮＡＮＤ型フラッシュメモリ１００は、例えばそれらの組み合わせにより一つの半導体装置を構成しても良く、その例としてはＳＤＴＭカードのようなメモリカードや、ＳＳＤ（solid state drive）等が挙げられる。
【０２３３】
ＮＡＮＤ型フラッシュメモリ１００は、上記実施形態で説明した半導体記憶装置１である。
【０２３４】
コントローラ２００は、外部のホスト機器からの命令に応答して、ＮＡＮＤ型フラッシュメモリ１００に対して読み出し、書き込み、及び消去等を命令する。また、ＮＡＮＤ型フラッシュメモリ１００におけるメモリ空間を管理する。
【０２３５】
コントローラ２００は、ホストインターフェイス回路２１０、内蔵メモリ（ＲＡＭ）２２０、プロセッサ（ＣＰＵ）２３０、バッファメモリ２４０、ＮＡＮＤインターフェイス回路２５０、及びＥＣＣ回路２６０を備えている。
【０２３６】
ホストインターフェイス回路２１０は、コントローラバスを介してホスト機器と接続され、ホスト機器との通信を司る。そして、ホスト機器から受信した命令及びデータを、それぞれＣＰＵ２３０及びバッファメモリ２４０に転送する。またＣＰＵ２３０の命令に応答して、バッファメモリ２４０内のデータをホスト機器へ転送する。
【０２３７】
ＮＡＮＤインターフェイス回路２５０は、ＮＡＮＤバスを介してＮＡＮＤ型フラッシュメモリ１００と接続され、ＮＡＮＤ型フラッシュメモリ１００との通信を司る。そして、ＣＰＵ２３０から受信した命令をＮＡＮＤ型フラッシュメモリ１００に転送し、また書き込み時にはバッファメモリ２４０内の書き込みデータをＮＡＮＤ型フラッシュメモリ１００へ転送する。更に読み出し時には、ＮＡＮＤ型フラッシュメモリ１００から読み出されたデータをバッファメモリ２４０へ転送する。
【０２３８】
ＣＰＵ２３０は、コントローラ２００全体の動作を制御する。例えば、ＣＰＵ２３０は、ホスト機器から書き込み命令を受信した際には、それに応答して、ＮＡＮＤインターフェイスに基づく書き込み命令を発行する。読み出し及び消去の際も同様である。またＣＰＵ２３０は、ウェアレベリング等、ＮＡＮＤ型フラッシュメモリ１００を管理するための様々な処理を実行する。更にＣＰＵ２３０は、各種の演算を実行する。例えば、データの暗号化処理やランダマイズ処理等を実行する。また、種々のステータスリードコマンドを発行して、ＮＡＮＤ型フラッシュメモリ１００のステータスを読み出す。
【０２３９】
ＥＣＣ回路２６０は、データの誤り訂正（ＥＣＣ：Error Checking and Correcting）処理を実行する。すなわちＥＣＣ回路２６０は、データの書き込み時には書き込みデータに基づいてパリティを生成し、読み出し時にはパリティからシンドロームを生成して誤りを検出し、この誤りを訂正する。なお、ＣＰＵ２３０がＥＣＣ回路２６０の機能を有していても良い。
【０２４０】
内蔵メモリ２２０は、例えばＤＲＡＭ等の半導体メモリであり、ＣＰＵ２３０の作業領域として使用される。そして内蔵メモリ２２０は、ＮＡＮＤ型フラッシュメモリ１００を管理するためのファームウェアや、各種の管理テーブル等を保持する。
【０２４１】
５．２  ステータスリードコマンドについて  
次に、メモリコントローラ２００の発行するステータスリードコマンドについて説明する。図６１は、ステータスリード時における各種信号のタイミングチャートである。
【０２４２】
。図中における、チップイネーブル信号／ＣＥ、アドレスラッチイネーブル信号ＡＬＥ、コマンドラッチイネーブル信号ＣＬＥ、ライトイネーブル信号／ＷＥ、リードイネーブル信号／ＲＥ、及び入出力信号Ｉ／Ｏは、コントローラ２００とＮＡＮＤ型フラッシュメモリ１００との間で送受信される信号である。
【０２４３】
／ＣＥは、ＮＡＮＤ型フラッシュメモリ１００をイネーブルにするための信号であり、Lowレベルでイネーブルとアサートされる。ＡＬＥは、入力信号がアドレス信号であることをＮＡＮＤ型フラッシュメモリに通知する信号である。ＣＬＥは、入力信号がコマンドであることをＮＡＮＤ型フラッシュメモリに通知する信号である。／ＷＥは、入力信号をＮＡＮＤ型フラッシュメモリ１００に取り込ませるための信号である。
【０２４４】
図示するようにコントローラ２００は、まずステータスリードコマンド（図６１では“ＸＸＨ”）“８０Ｈ”を発行すると共に、ＣＬＥをアサート（“Ｈ”レベル）する。／ＷＥをアサートする。これにより、ステータスリードコマンドが、ＮＡＮＤ型フラッシュメモリ１００のレジスタに格納される。
【０２４５】
その後、コントローラ２００が／ＲＥをアサートすると、これに応答してＮＡＮＤ型フラッシュメモリ１００は、要求されたステータス情報を出力する。
【０２４６】
図６２及び図６３は、一般的なステータスリードコマンドであるＣＭＤ７０及びＣＭＤ７１の内容を示すダイアグラムであり、ＣＭＤ７１は２プレーンチップで使用されるステータスリードコマンドである。
【０２４７】
本実施形態では、ＰＳ＿ＲＥＧ、ＦＳ＿ＲＥＧ、及びＢＳ＿ＲＥＧの情報を読み出すためのコマンド“ＸＨ”、“ＹＨ”、及び“ＺＨ”が用意されている。これらのコマンドの内容を図６４乃至図６６に示す。図６４乃至図６６は、コマンド“ＸＨ”、“ＹＨ”、及び“ＺＨ”によって読み出される、入出力信号（８ビット）の各ビット情報を示す。本例では、プレーン数が２個で、１ブロックに４つのストリングユニットが含まれている場合を示す。図示するように、これらのコマンドにより、各プレーンの各ストリングユニットＳＵについての、ＰＳ＿ＲＥＧ、ＦＳ＿ＲＥＧ、及びＢＳ＿ＲＥＧに保持される情報を読み出すことが出来る。
【０２４８】
図６７は、プレーンが２個で１ブロックに１２個のストリングユニットＳＵが含まれる場合の／ＣＥ、ＡＬＥ、ＣＬＥ、／ＷＥ、／ＲＥ、及びＩ／Ｏはについて示している。本例では、ステータスリードコマンドの直後にアドレスが入力される。そして本例の場合のステータスコマンド“ＸＨ”、“ＹＨ”、及び“ＺＨ”の内容を図６８乃至図７０に示す。図示するように、入力されたアドレスによって、読み出すべき情報を指定出来る。
【０２４９】
また、ダミープログラムを行う場合には、ダミーレジスタＤＭＹ＿ＲＥＧの情報を読み出すことも出来る。図７１は、このようなコマンド“ＷＨ”を示しており、２プレーンで１ブロックあたり４ストリングユニットの場合を示している。図示するように、８ビットの入出力信号により、各プレーンの各ストリングユニットについてのダミーレジスタの情報を読み出すことが出来る。
【０２５０】
５．３  本実施形態に係る効果  
本例によれば、メモリコントローラはＮＡＮＤ型フラッシュメモリのステータスを、ストリングユニット単位で読み出すことが出来る。これにより、ＮＡＮＤ型フラッシュメモリをより精密に制御出来る。
【０２５１】
例えば消去動作の完了後、ＦＳ＿ＲＥＧの情報に基づいて、フェイルしたストリングユニットの選択トランジスタＳＴ１の閾値を上昇させるコマンドを発行することも出来る。これにより、後発性の不良についても、選択トランジスタに対してバッドストリングである旨をマーキング出来る。より具体的には、ＦＳ＿ＲＥＧ＝“１”であるストリングユニットの選択トランジスタＳＴ１に対しての書き込みコマンドを発行する。
【０２５２】
５．変形例等  
以上のように、上記実施形態に係るＮＡＮＤ型フラッシュメモリ１は、複数のストリングユニットと、第１レジスタ(BS_REG)と、第２レジスタ(FS_REG)と、第３レジスタ(PS_REG)と、制御回路(シーケンサ14)とを具備する。ストリングユニットは、複数のメモリセルが積層されたＮＡＮＤストリングの集合である。第１レジスタ(BS_REG)は、ストリングユニットがバッドストリングであることを示す情報を保持可能である。第２レジスタ(FS_REG)は、ストリングユニットがベリファイにフェイルしたことを示す情報を保持可能である。第３レジスタ(PS_REG)は、ストリングユニットがベリファイにパスしたストリングであることを示す情報を保持である。制御回路は、第１乃至第３レジスタ内の情報に基づいて、いずれかのストリングユニットに対する消去ベリファイ動作をスキップする。
【０２５３】
本構成により、無駄な消去ベリファイを省くことが出来、ＮＡＮＤ型フラッシュメモリの動作速度を向上出来る。
【０２５４】
但し、実施形態は上記説明した形態に限定されるものではなく、種々の変形が可能である。例えば、上記実施形態では、ドレイン側とソース側にダミートランジスタＤＴが１個ずつ設けられる場合を例に説明したが、複数個設けられても良い。この場合、ダミープログラムにおいていずれか１個のダミートランジスタＤＴがフェイルした時点で、当該ストリングユニットに対するダミープログラムは中止して良い。
【０２５５】
また、メモリセルアレイの構成は、例えば図７２のような構成であっても良い。すなわち、ソース線ＳＬ上にピラー３２〜３４が形成され、セレクトゲート線ＳＧＳがストリングユニットＳＵ毎に独立していても良い。
【０２５６】
更に、上記実施形態で説明したフローチャートは、可能な限り処理の順序を入れ替えることが出来る。
【０２５７】
更に、上記実施形態では三次元積層型メモリセルアレイを有するＮＡＮＤ型フラッシュメモリを例に説明したが、メモリセルが二次元的に配列されたＮＡＮＤ型フラッシュメモリであっても良いし、ＮＡＮＤ型フラッシュメモリ以外の半導体記憶装置全般に適用可能である。また、各実施形態はそれぞれが単独で実施されても良いが、組み合わせ可能な複数の実施形態が組み合わされて実施されても良い。
【０２５８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０２５９】
１…ＮＡＮＤ型フラッシュメモリ、２…ロジック回路、３…パーシャルバッドインフォメーションレジスタ、１０…メモリセルアレイ、１１…ロウデコーダ、１２…センスアンプ、１３…ＮＡＮＤストリング、１４…シーケンサ
【図１】
2015176627.tif 000003
【図２】
2015176627.tif 000004
【図３】
2015176627.tif 000005
【図４】
2015176627.tif 000006
【図５】
2015176627.tif 000007
【図６】
2015176627.tif 000008
【図７Ａ】
2015176627.tif 000009
【図７Ｂ】
2015176627.tif 000010
【図８Ａ】
2015176627.tif 000011
【図８Ｂ】
2015176627.tif 000012
【図９】
2015176627.tif 000013
【図１０】
2015176627.tif 000014
【図１１】
2015176627.tif 000015
【図１２】
2015176627.tif 000016
【図１３】
2015176627.tif 000017
【図１４】
2015176627.tif 000018
【図１５】
2015176627.tif 000019
【図１６】
2015176627.tif 000020
【図１７】
2015176627.tif 000021
【図１８】
2015176627.tif 000022
【図１９】
2015176627.tif 000023
【図２０】
2015176627.tif 000024
【図２１】
2015176627.tif 000025
【図２２】
2015176627.tif 000026
【図２３】
2015176627.tif 000027
【図２４Ａ】
2015176627.tif 000028
【図２４Ｂ】
2015176627.tif 000029
【図２５】
2015176627.tif 000030
【図２６】
2015176627.tif 000031
【図２７】
2015176627.tif 000032
【図２８】
2015176627.tif 000033
【図２９】
2015176627.tif 000034
【図３０】
2015176627.tif 000035
【図３１】
2015176627.tif 000036
【図３２】
2015176627.tif 000037
【図３３】
2015176627.tif 000038
【図３４】
2015176627.tif 000039
【図３５】
2015176627.tif 000040
【図３６】
2015176627.tif 000041
【図３７】
2015176627.tif 000042
【図３８】
2015176627.tif 000043
【図３９】
2015176627.tif 000044
【図４０】
2015176627.tif 000045
【図４１】
2015176627.tif 000046
【図４２】
2015176627.tif 000047
【図４３】
2015176627.tif 000048
【図４４】
2015176627.tif 000049
【図４５】
2015176627.tif 000050
【図４６】
2015176627.tif 000051
【図４７】
2015176627.tif 000052
【図４８】
2015176627.tif 000053
【図４９】
2015176627.tif 000054
【図５０】
2015176627.tif 000055
【図５１】
2015176627.tif 000056
【図５２】
2015176627.tif 000057
【図５３】
2015176627.tif 000058
【図５４】
2015176627.tif 000059
【図５５】
2015176627.tif 000060
【図５６】
2015176627.tif 000061
【図５７Ａ】
2015176627.tif 000062
【図５７Ｂ】
2015176627.tif 000063
【図５８Ａ】
2015176627.tif 000064
【図５８Ｂ】
2015176627.tif 000065
【図５８Ｃ】
2015176627.tif 000066
【図５９Ａ】
2015176627.tif 000067
【図５９Ｂ】
2015176627.tif 000068
【図５９Ｃ】
2015176627.tif 000069
【図６０】
2015176627.tif 000070
【図６１】
2015176627.tif 000071
【図６２】
2015176627.tif 000072
【図６３】
2015176627.tif 000073
【図６４】
2015176627.tif 000074
【図６５】
2015176627.tif 000075
【図６６】
2015176627.tif 000076
【図６７】
2015176627.tif 000077
【図６８】
2015176627.tif 000078
【図６９】
2015176627.tif 000079
【図７０】
2015176627.tif 000080
【図７１】
2015176627.tif 000081
【図７２】
2015176627.tif 000082