(57)【要約】      （修正有）【課題】動作性能を向上出来る半導体記憶装置及びメモリコントローラを提供する。【解決手段】ＮＡＮＤ型フラッシュメモリ１００は、複数のメモリセルが積層されたＮＡＮＤストリングの集合である複数のストリングユニットＳＵと、複数のストリングユニットＳＵを含み、データの消去単位となるブロックＢＬＫと、データの消去時において、ストリングユニットＳＵ毎に消去特性情報を保持する最遅ストリングレジスタ１２２とを具備する。レジスタ１２２は、消去特性情報をメモリコントローラへ出力可能である。【選択図】図２
2015176628.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリセルが積層されたＮＡＮＤストリングの集合である複数のストリングユニットと、
複数の前記ストリングユニットを含み、データの消去単位となるブロックと、
データの消去時において、前記ストリングユニット毎に消去特性情報を保持するレジスタと
を具備し、前記レジスタは、前記消去特性情報をメモリコントローラへ出力可能である
ことを特徴とする半導体記憶装置。
【請求項２】
前記レジスタは、直列に接続された複数のラッチ回路を備え、前記ストリングユニットのいずれかが消去ベリファイにパスする度に、該パスしたストリングユニットを示す情報とパスした際の消去ループ回数とが前記ラッチ回路に取り込まれる
ことを特徴とする請求項１記載の半導体記憶装置。
【請求項３】
前記レジスタは、前記メモリコントローラから受信したコマンド及びアドレスに応答して、対応するいずれかの前記ラッチ回路内のデータを前記メモリコントローラに出力する
ことを特徴とする請求項２記載の半導体記憶装置。
【請求項４】
前記メモリコントローラから第１コマンドを受信した際には、前記ブロック内の全てのストリングユニットが消去ベリファイ対象とされ、
前記メモリコントローラから第２コマンドを受信した際には、前記ブロック内のいずれかのストリングユニットのみが消去ベリファイ対象とされる
ことを特徴とする請求項１乃至３いずれか１項記載の半導体記憶装置。
【請求項５】
前記第１コマンドが発行された際、使用不可とされたバッドストリングを前記消去ベリファイ対象から除く
ことを特徴とする請求項４記載の半導体記憶装置。
【請求項６】
複数のメモリセルが積層されたＮＡＮＤストリングの集合である複数のストリングユニットを含むブロック単位で消去可能な半導体記憶装置を制御するメモリコントローラであって、
前記半導体記憶装置から、前記ストリングユニット単位でデータの消去特性情報を読み出すためのコマンドを発行可能な制御部と、
前記ストリングユニット毎に前記消去特性情報を保持する記憶部と
を具備することを特徴とするメモリコントローラ。
【請求項７】
前記消去特性情報は、消去ベリファイにパスしたストリングユニットを示す情報と、該ストリングユニットがパスした際の消去ループ回数とを含む
ことを特徴とする請求項６記載のメモリコントローラ。
【請求項８】
前記メモリコントローラは、第１コマンドを発行することにより、前記ブロック内の全てのストリングユニットを消去ベリファイ対象とし、
第２コマンドを発行することにより、前記消去特性情報に基づいて、前記ブロック内のいずれかのストリングユニットのみを消去ベリファイ対象とする
ことを特徴とする請求項６または７記載のメモリコントローラ。
【請求項９】
前記制御部は、前記第２コマンドにより消去ベリファイ対象とするストリングユニットを、定期的に見直す
ことを特徴とする請求項８記載のメモリコントローラ。
【請求項１０】
前記制御部は、前記ブロックの消去回数が増加するにつれて、前記消去ベリファイ対象とするストリングユニットを見直す頻度を高める
ことを特徴とする請求項９記載のメモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、半導体記憶装置及びメモリコントローラに関する。
【背景技術】
【０００２】
メモリセルが三次元に配列されたＮＡＮＤ型フラッシュメモリが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２５８２８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
動作性能を向上出来る半導体記憶装置及びメモリコントローラを提供する。
【課題を解決するための手段】
【０００５】
実施形態による半導体記憶装置は、複数のメモリセルが積層されたＮＡＮＤストリングの集合である複数のストリングユニットと、複数のストリングユニットを含み、データの消去単位となるブロックと、データの消去時において、ストリングユニット毎に消去特性情報を保持するレジスタとを具備する。レジスタは、消去特性情報をメモリコントローラへ出力可能である。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１実施形態に係るメモリシステムのブロック図である。
【図２】図２は、第１実施形態に係る半導体記憶装置のブロック図である。
【図３】図３は、第１実施形態に係るメモリセルアレイの回路図である。
【図４】図４は、第１実施形態に係るＮＡＮＤストリングの一例の断面図である。
【図５】図５は、第１実施形態に係る最遅ストリングレジスタの一部の回路図である。
【図６】図６は、第１実施形態に係る最遅ストリングレジスタの別の一部の回路図である。
【図７】図７は、第１実施形態に係るストリングユニットと消去ループ回数との関係を示すダイアグラムである。
【図８】図８は、第１実施形態に係る最遅ストリングレジスタの模式図である。
【図９】図９は、第１実施形態に係る最遅ストリングレジスタにおける各種信号のタイミングチャートである。
【図１０】図１０は、第１実施形態に係るステータスリード時の各種信号のタイミングチャートである。
【図１１】図１１は、消去回数とバッドストリング発生数との関係を示すグラフである。
【図１２】図１２は、第２実施形態に係る消去動作のフローチャートである。
【図１３】図１３は、第２実施形態に係るコマンドシーケンスである。
【発明を実施するための形態】
【０００７】
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。
【０００８】
１．第１実施形態  
第１実施形態に係る半導体記憶装置及びメモリコントローラについて説明する。以下では半導体記憶装置として、メモリセルが半導体基板の上方に積層された三次元積層型ＮＡＮＤ型フラッシュメモリを例に挙げて説明する。
【０００９】
１．１  構成  
１．１．１  メモリシステムの構成  
まず、本実施形態に係る半導体記憶装置を含むメモリシステムの構成について、図１を用いて説明する。図１は、本実施形態に係るメモリシステムのブロック図である。
【００１０】
図示するようにメモリシステム１は、ＮＡＮＤ型フラッシュメモリ１００及びコントローラ２００を備えている。コントローラ２００とＮＡＮＤ型フラッシュメモリ１００は、例えばそれらの組み合わせにより一つの半導体装置を構成しても良く、その例としてはＳＤＴＭカードのようなメモリカードや、ＳＳＤ（solid state drive）等が挙げられる。
【００１１】
ＮＡＮＤ型フラッシュメモリ１００は、複数のメモリセルを備え、データを不揮発に記憶する。ＮＡＮＤ型フラッシュメモリ１００の構成の詳細は後述する。
【００１２】
コントローラ２００は、外部のホスト機器からの命令に応答して、ＮＡＮＤ型フラッシュメモリ１００に対して読み出し、書き込み、及び消去等を命令する。また、ＮＡＮＤ型フラッシュメモリ１００におけるメモリ空間を管理する。
【００１３】
コントローラ２００は、ホストインターフェイス回路２１０、内蔵メモリ（ＲＡＭ）２２０、プロセッサ（ＣＰＵ）２３０、バッファメモリ２４０、ＮＡＮＤインターフェイス回路２５０、及びＥＣＣ回路２６０を備えている。
【００１４】
ホストインターフェイス回路２１０は、コントローラバスを介してホスト機器と接続され、ホスト機器との通信を司る。そして、ホスト機器から受信した命令及びデータを、それぞれＣＰＵ２３０及びバッファメモリ２４０に転送する。またＣＰＵ２３０の命令に応答して、バッファメモリ２４０内のデータをホスト機器へ転送する。
【００１５】
ＮＡＮＤインターフェイス回路２５０は、ＮＡＮＤバスを介してＮＡＮＤ型フラッシュメモリ１００と接続され、ＮＡＮＤ型フラッシュメモリ１００との通信を司る。そして、ＣＰＵ２３０から受信した命令をＮＡＮＤ型フラッシュメモリ１００に転送し、また書き込み時にはバッファメモリ２４０内の書き込みデータをＮＡＮＤ型フラッシュメモリ１００へ転送する。更に読み出し時には、ＮＡＮＤ型フラッシュメモリ１００から読み出されたデータをバッファメモリ２４０へ転送する。
【００１６】
ＣＰＵ２３０は、コントローラ２００全体の動作を制御する。例えば、ＣＰＵ２３０は、ホスト機器から書き込み命令を受信した際には、それに応答して、ＮＡＮＤインターフェイスに基づく書き込み命令を発行する。読み出し及び消去の際も同様である。またＣＰＵ２３０は、ウェアレベリング等、ＮＡＮＤ型フラッシュメモリ１００を管理するための様々な処理を実行する。更にＣＰＵ２３０は、各種の演算を実行する。例えば、データの暗号化処理やランダマイズ処理等を実行する。
【００１７】
ＥＣＣ回路２６０は、データの誤り訂正（ＥＣＣ：Error Checking and Correcting）処理を実行する。すなわちＥＣＣ回路２６０は、データの書き込み時には書き込みデータに基づいてパリティを生成し、読み出し時にはパリティからシンドロームを生成して誤りを検出し、この誤りを訂正する。なお、ＣＰＵ２３０がＥＣＣ回路２６０の機能を有していても良い。
【００１８】
内蔵メモリ２２０は、例えばＤＲＡＭ等の半導体メモリであり、ＣＰＵ２３０の作業領域として使用される。そして内蔵メモリ２２０は、ＮＡＮＤ型フラッシュメモリ１００を管理するためのファームウェアや、各種の管理テーブル等を保持する。
【００１９】
１．１．２  ＮＡＮＤ型フラッシュメモリの構成  
次に、ＮＡＮＤ型フラッシュメモリ１００の構成について説明する。
【００２０】
１．１．２．１  半導体記憶装置の全体構成  
図２は、本実施形態に係るＮＡＮＤ型フラッシュメモリ１００のブロック図である。図示するようにＮＡＮＤ型フラッシュメモリ１００は、大まかにはコア部１１０及び周辺回路１１０を備えている。
【００２１】
コア部１１０は、メモリセルアレイ１１１、ロウデコーダ１１２、及びセンスアンプ１１３を備えている。
【００２２】
メモリセルアレイ１１１は、複数のプレーン（本例では２つのプレーンＰＢ０及びＰＢ１の場合を例示する）を備えている。
【００２３】
プレーンＰＢは、データを記憶するメモリセルを備えると共に、メモリセルへのデータの書き込み、及びメモリセルからのデータの読み出しを行うユニットである。プレーンＰＢ０及びＰＢ１は互いに独立して動作可能であり、また同時に動作することも可能である。
【００２４】
プレーンＰＢの各々は、メモリセルアレイ１１１、ロウデコーダ１１２、及びセンスアンプ１１３を備えている。
【００２５】
メモリセルアレイ１１１は、それぞれがワード線及びビット線に関連付けられた複数の不揮発性メモリセルの集合である複数のブロックＢＬＫ（ＢＬＫ０、ＢＬＫ１、ＢＬＫ２、…）を備えている。ブロックＢＬＫはデータの消去単位となり、同一ブロックＢＬＫ内のデータは一括して消去される。ブロックＢＬＫの各々は、メモリセルが直列接続されたＮＡＮＤストリング１１５の集合である複数のストリングユニットＳＵ（ＳＵ０〜ＳＵ３）を備えている。もちろん、ブロックＢＬＫの数や、１ブロックＢＬＫ内のストリングユニットＳＵの数は任意である。
【００２６】
ロウデコーダ１１２は、ブロックアドレスやページアドレスをデコードして、対応するブロックのいずれかのワード線を選択する。そしてロウデコーダ１１２は、選択ワード線及び非選択ワード線等に、適切な電圧を印加する。
【００２７】
センスアンプ１１３は、データの読み出し時には、メモリセルからビット線に読み出されたデータをセンス・増幅する。またデータの書き込み時には、書き込みデータをメモリセルに転送する。メモリセルアレイ１１１へのデータの読み出し及び書き込みは、複数のメモリセル単位で行われ、この単位がページとなる。
【００２８】
メモリセルからのデータの読み出し、及びメモリセルへのデータの書き込みは、ロウデコーダ１１２及びセンスアンプ１１３によって行われる。
【００２９】
周辺回路１２０は、シーケンサ１２１、アドレスレジスタ１２２、及び最遅ストリングレジスタ１２３を備える。
【００３０】
アドレスレジスタ１２２は、例えばコントローラ２００からアドレス信号を受け取り、受け取ったアドレス信号を一時的に保持する。最遅ストリングレジスタ１２３は、消去を指示されたブロック中で、最後に消去が成功したと判断されたストリングユニット（最遅ストリングユニット）を示すための構成を有する。したがって、ストリングユニットはストリングアドレスにより特定され、最遅ストリングユニットを示すアドレスを以下では最遅ストリングアドレスと称する。最遅ストリングアドレスについては後に詳述する。
【００３１】
シーケンサ１２１は、ＮＡＮＤ型フラッシュメモリ１００全体の動作を制御する。
【００３２】
１．１．２．２  メモリセルアレイ１１１の構成  
次に、上記メモリセルアレイ１１１の構成の詳細について説明する。図３はいずれかのブロックＢＬＫの回路図であり、他のブロックＢＬＫも同様の構成を有している。
【００３３】
図示するように、ブロックＢＬＫは例えば４つのストリングユニットＳＵ（ＳＵ０〜ＳＵ３）を含む。また各々のストリングユニットＳＵは、複数のＮＡＮＤストリング１１５を含む。
【００３４】
ＮＡＮＤストリング１１５の各々は、例えば８個のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ７）及び選択トランジスタＳＴ１、ＳＴ２を含んでいる。メモリセルトランジスタＭＴは、制御ゲートと電荷蓄積層とを含む積層ゲートを備え、データを不揮発に保持する。なお、メモリセルトランジスタＭＴの個数は８個に限られず、１６個や３２個、６４個、１２８個等であってもよく、その数は限定されるものではない。メモリセルトランジスタＭＴは、選択トランジスタＳＴ１、ＳＴ２間にその電流経路が直列接続されるようにして配置されている。この直列接続の一端側のメモリセルトランジスタＭＴ７の電流経路は選択トランジスタＳＴ１の電流経路の一端に接続され、他端側のメモリセルトランジスタＭＴ０の電流経路は選択トランジスタＳＴ２の電流経路の一端に接続されている。
【００３５】
ストリングユニットＳＵ０〜ＳＵ３の各々の選択トランジスタＳＴ１のゲートは、それぞれセレクトゲート線ＳＧＤ０〜ＳＧＤ３に共通接続される。これに対して、同一のブロック内にある複数の選択トランジスタＳＴ２のゲートは同一のセレクトゲート線ＳＧＳに共通接続され、同一のブロックＢＬＫ０内にあるメモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲートはそれぞれワード線ＷＬ０〜ＷＬ７に共通接続される。もちろん、各ストリングユニットＳＵにおける選択トランジスタＳＴ２は、選択トランジスタＳＴ１と同様に、別々のセレクトゲート線ＳＧＳ０〜ＳＧＳ３に接続されても良い。
【００３６】
また、メモリセルアレイ１１１内でマトリクス状に配置されたＮＡＮＤストリング１１５のうち、同一行にあるＮＡＮＤストリング１１５の選択トランジスタＳＴ１の電流経路の他端は、いずれかのビット線ＢＬ（ＢＬ０〜ＢＬ（Ｌ−１）、（Ｌ−１）は１以上の自然数）に共通接続される。すなわちビット線ＢＬは、複数のブロックＢＬＫ間でＮＡＮＤストリング１１５を共通に接続する。また、選択トランジスタＳＴ２の電流経路の他端はソース線ＳＬに共通に接続されている。ソース線ＳＬは、例えば複数のブロック間でＮＡＮＤストリング１１５を共通に接続する。
【００３７】
前述の通り、同一のブロックＢＬＫ内にあるメモリセルトランジスタＭＴのデータは、一括して消去される。これに対してデータの読み出し及び書き込みは、いずれかのブロックＢＬＫのいずれかのストリングユニットＳＵにおける、いずれかのワード線ＷＬに共通に接続された複数のメモリセルトランジスタＭＴにつき、一括して行われる。この単位を「ページ」と呼ぶ。
【００３８】
図４は、本実施形態に係るメモリセルアレイ１１５の一部領域の断面図である。図示するように、ｐ型ウェル領域２０上に複数のＮＡＮＤストリング１１５が形成されている。すなわち、ウェル領域２０上には、セレクトゲート線ＳＧＳとして機能する複数の配線層２７、ワード線ＷＬとして機能する複数の配線層２３、及びセレクトゲート線ＳＧＤとして機能する複数の配線層２５が形成されている。
【００３９】
そして、これらの配線層２５、２３、及び２７を貫通してウェル領域２０に達するメモリホール２６が形成されている。メモリホール２６の側面には、ブロック絶縁膜２８、電荷蓄積層２９（絶縁膜）、及びゲート絶縁膜２８が順次形成され、更にメモリホール２６内を導電膜３１が埋め込んでいる。導電膜３１は、ＮＡＮＤストリング１１８の電流経路として機能し、メモリセルトランジスタＭＴ並びに選択トランジスタＳＴ１及びＳＴ２の動作時にチャネルが形成される領域である。
【００４０】
各ＮＡＮＤストリング１１５において、複数（本例では４層）設けられた配線層２７は、電気的に共通に接続されて、同一のセレクトゲート線ＳＧＳに接続される。すなわち、この４層の配線層２７は、実質的に１つの選択トランジスタＳＴ２のゲート電極として機能する。これは選択トランジスタＳＴ１（４層のセレクトゲート線ＳＧＤ）についても同様である。
【００４１】
以上の構成により、各ＮＡＮＤストリング１１５において、ウェル領域２０上に選択トランジスタＳＴ２、複数のメモリセルトランジスタＭＴ、及び選択トランジスタＳＴ１が順次積層されている。
【００４２】
なお、図４の例では選択トランジスタＳＴ１及びＳＴ２は、メモリセルトランジスタＭＴと同様に電荷蓄積層２９を備えている。しかし選択トランジスタＳＴ１及びＳＴ２は、実質的にデータを保持するメモリセルとして機能するものでは無く、スイッチとして機能する。この際、選択トランジスタＳＴ１及びＳＴ２がオン／オフする閾値は、電荷蓄積層２９に電荷を注入することによって制御されても良い。
【００４３】
導電膜３１の上端には、ビット線ＢＬとして機能する配線層３２が形成される。ビット線ＢＬは、センスアンプ１１３に接続される。
【００４４】
更に、ウェル領域２０の表面内には、ｎ＋型不純物拡散層３３及びｐ＋型不純物拡散層３４が形成されている。拡散層３３上にはコンタクトプラグ３５が形成され、コンタクトプラグ３５上には、ソース線ＳＬとして機能する配線層３６が形成される。また拡散層３４上にはコンタクトプラグ３７が形成され、コンタクトプラグ３７上には、ウェル配線ＣＰＷＥＬＬとして機能する配線層３８が形成される。配線層３６及び３８は、セレクトゲート線ＳＧＤよりも上層であり、且つ配線層３２よりも下層のレイヤに形成される。
【００４５】
以上の構成が、図４を記載した紙面の奥行き方向に複数配列されており、奥行き方向に並ぶ複数のＮＡＮＤストリング１１５の集合によってストリングユニットＳＵが形成される。また、同一のストリングユニットＳＵ内に含まれる複数のセレクトゲート線ＳＧＳとして機能する配線層２７は、互いに共通に接続されている。つまり、隣接するＮＡＮＤストリング１１８間のウェル領域２０上にもゲート絶縁膜３０が形成され、拡散層３３に隣接する半導体層２７及びゲート絶縁膜３０は、拡散層３３近傍まで形成される。
【００４６】
従って、選択トランジスタＳＴ２がオン状態とされる際には、そのチャネルはメモリセルトランジスタＭＴ０と拡散層３３とを電気的に接続する。また、ウェル配線ＣＰＷＥＬＬに電圧を印加することで、導電膜３１に電位を与えることが出来る。
【００４７】
なお、メモリセルアレイ１１１の構成についてはその他の構成であっても良い。すなわちメモリセルアレイ１１１の構成については、例えば、“三次元積層不揮発性半導体メモリ”という２００９年３月１９日に出願された米国特許出願１２／４０７，４０３号に記載されている。また、“三次元積層不揮発性半導体メモリ”という２００９年３月１８日に出願された米国特許出願１２／４０６，５２４号、“不揮発性半導体記憶装置及びその製造方法”という２０１０年３月２５日に出願された米国特許出願１２／６７９，９９１号“半導体メモリ及びその製造方法”という２００９年３月２３日に出願された米国特許出願１２／５３２，０３０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００４８】
１．１．２．３  最遅ストリングレジスタ１２２について  
次に、上記最遅ストリングレジスタ１２２の構成の詳細について説明する。図５及び図６は、最遅ストリングレジスタ１２２の一部を示している。最遅ストリングレジスタ１２２は、プレーンＰＢごとに、図５及び図６の構成の組を含んでいる。
【００４９】
図５に示すように、最遅ストリングレジスタ１２２は、４つのレジスタユニットＲ０〜Ｒ３を含んでいる。レジスタユニットＲの個数は、１つのブロックＢＬＫ中のストリングユニットＳＵの数に一致する。以下の説明は、１つのブロックＢＬＫが４つのストリングユニットを含んでいる例に関し、よって最遅ストリングレジスタ１２２中の４つのレジスタユニットＲ０〜Ｒ３を取り上げて説明する。各レジスタユニットＲ０〜Ｒ３は複数のレジスタ要素を含んでおり、複数ビットの情報を保持する。そして以下の構成を有する。
【００５０】
すなわち、ＡＮＤゲートＡＤ１は、シーケンサ１２１から、信号｛STR_PB[1:0], OEC[5:0]｝を受け取る。信号｛STR_PB[1:0], OEC[5:0]｝は、ビットSTR_PB[1:0]において、ストリングアドレスを示し、ビットOEC[5:0]｝においてループ回数を示す。ループ回数は、消去の際に繰り返し行われる処理の繰り返し回数を指す。各ループは、関連する要素に消去のための電圧を印加することと、消去ベリファイと、のセットを含んでいる。すなわち、各ループにおいて、シーケンサ１２１は、まず、ソース線ＳＬ、ビット線ＢＬ、セレクトゲート線ＳＧＤ及びＳＧＳ、及びワード線ＷＬに消去のための種々の電圧を印加する。次いで、各ループにおいて、シーケンサ１２１は、消去ベリファイを行う。消去ベリファイは、ストリングユニットＳＵごとに、イレースが完了したかを判断することを含んでいる。シーケンサ１２１は、消去の間、ビットSTR_PB{1:0]によりストリングアドレスを示し、且つビットOEC[5:0]｝により現在のループ回数を示す信号｛STR_PB[1:0], OEC[5:0]｝を随時出力する。
【００５１】
ＡＮＤゲートＡＤ１はまた、信号evfy_pass_delay6を受け取る。信号evfy_pass_delay6は、信号evfy_passを遅延させた信号である。信号evfy_passは、消去対象となるストリングユニットＳＵが消去ベリファイにパスする度にシーケンサ１２１が出力する信号である。そして最遅ストリングレジスタの図示せぬ領域において、信号evfy_passを遅延回路等により遅延させることによって信号evfy_pass_delay6が生成される。なお、後述する信号evfy_pass_delay2はクロックＣＬＫ２サイクル分だけ遅延された信号であり、信号evfy_pass_delay4は更にクロックＣＬＫ２サイクル分だけ遅延された信号（つまりevfy_passをＣＬＫ４サイクル分遅延させた信号）であり、信号evfy_pass_delay6は更にクロックＣＬＫ２サイクル分だけ遅延された信号（つまりevfy_passをＣＬＫ６サイクル分遅延させた信号）である。ＡＮＤゲートＡＤ１は、信号evfy_pass_delay6がハイレベルの間、信号｛STR_PB[1:0], OEC[5:0]｝を出力する。信号｛STR_PB[1:0], OEC[5:0]｝は、レジスタユニットＲ０に供給される。レジスタユニットＲ０は、クロック信号ＣＬＫの立ち上がりで、信号｛STR_PB[1:0], OEC[5:0]｝をラッチする。また、レジスタユニットＲ０は、ラッチしているデータを、信号LAST_STR_info[7:0]として出力する。信号LAST_STR_info[7:0]はまた、レジスタユニットＲ０の入力に供給される。したがって、レジスタユニットＲ０でのラッチ後は、レジスタユニットＲ０の入力には、ＡＮＤゲートＡＤ１の出力によらずに、レジスタユニットＲ０の出力が供給され続ける。クロック信号ＣＬＫは、例えば、周辺回路１２０中のクロック信号生成回路によって生成される。
【００５２】
信号LAST_STR_info[7:0]はまた、ＡＮＤゲートＡＤ２にも供給される。ＡＮＤゲートＡＤ２はまた、前述の信号evfy_pass_delay4を受け取る。ＡＮＤゲートＡＤ２は、信号evfy_pass_delay4がハイレベルの間、信号LAST_STR_info[7:0]を出力する。信号LAST_STR_info[7:0]は、レジスタユニットＲ１に供給される。レジスタユニットＲ１は、クロック信号ＣＬＫの立ち上がりで、信号LAST_STR_info[7:0]をラッチする。また、レジスタユニットＲ１は、ラッチしているデータを、信号2ND_LAST_STR_info[7:0]として出力する。信号2ND_LAST_STR_info[7:0]はまた、レジスタユニットＲ１の入力に供給される。したがって、レジスタユニットＲ１でのラッチ後は、レジスタユニットＲ１の入力には、ＡＮＤゲートＡＤ２の出力によらずに、レジスタユニットＲ１の出力が供給され続ける。
【００５３】
信号2ND_LAST_STR_info[7:0]はまた、ＡＮＤゲートＡＤ３にも供給される。ＡＮＤゲートＡＤ３はまた、前述の信号evfy_pass_delay2を受け取る。ＡＮＤゲートＡＤ３は、信号evfy_pass_delay2がハイレベルの間、信号2ND_AST_STR_info[7:0]を出力する。信号2ND_LAST_STR_info[7:0]は、レジスタユニットＲ２に供給される。レジスタユニットＲ２は、クロック信号ＣＬＫの立ち上がりで、信号2ND_LAST_STR_info[7:0]をラッチする。また、レジスタユニットＲ２は、ラッチしているデータを、信号3RD_LAST_STR_info[7:0]として出力する。信号3RD_LAST_STR_info[7:0]はまた、レジスタユニットＲ２の入力に供給される。したがって、レジスタユニットＲ２でのラッチ後は、レジスタユニットＲ２の入力には、ＡＮＤゲートＡＤ３の出力によらずに、レジスタユニットＲ２の出力が供給され続ける。
【００５４】
信号3RD_LAST_STR_info[7:0]はまた、ＡＮＤゲートＡＤ４にも供給される。ＡＮＤゲートＡＤ４はまた、前述の信号evfy_passを受け取る。ＡＮＤゲートＡＤ４は、信号evfy_passがハイレベルの間、信号3RD_AST_STR_info[7:0]を出力する。信号3RD_LAST_STR_info[7:0]は、レジスタユニットＲ３に供給される。レジスタユニットＲ３は、クロック信号ＣＬＫの立ち上がりで、信号3RD_LAST_STR_info[7:0]をラッチする。また、レジスタユニットＲ３は、ラッチしているデータを、信号4TH_LAST_STR_info[7:0]として出力する。信号4TH_LAST_STR_info[7:0]はまた、レジスタユニットＲ３の入力に供給される。したがって、レジスタユニットＲ３でのラッチ後は、レジスタユニットＲ３の入力には、ＡＮＤゲートＡＤ４の出力によらずに、レジスタユニットＲ３の出力が供給され続ける。
【００５５】
上記構成により、信号evfy_passがアサート（本例では“Ｈ”レベル）されると、レジスタユニットＲ２のデータがレジスタユニットＲ３にコピーされる。そしてその２クロック後、レジスタユニットＲ１のデータがレジスタユニットＲ２にコピーされる。この時点で、もともとレジスタユニットＲ２に保持されていたデータはレジスタユニットＲ３に退避されている。
【００５６】
その２クロック後、レジスタユニットＲ０のデータがレジスタユニットＲ１にコピーされ、その２クロック後、その時点で消去ベリファイにパスした情報｛STR_PB[1:0], OEC[5:0]｝がレジスタユニットＲ０にセットされる。
【００５７】
次に、最遅ストリングレジスタ１２２の別の部分を、図６を参照して説明する。図６に示すように、最遅ストリングレジスタ１２２は、セレクタＳを含んでいる。セレクタＳは、信号LAST_STR_info[7:0]、2ND_LAST_STR_info[7:0]、3RD_LAST_STR_info[7:0]、及び4TH_LAST_STR_info[7:0]を受け取る。セレクタＳはまた、制御信号Ｓｅｌを、受け取る。制御信号Ｓｅｌは、レジスタアドレスおよびプレーンアドレスを含んでいる。レジスタアドレスおよびプレーンアドレスは、コントローラ２００から受け取るストリングアドレス取得コマンドにおいて指定されている。ストリングアドレス取得コマンドは、後に詳述する。
【００５８】
セレクタＳは、受け取った制御信号ＳｅｌがセレクタＳの属するプレーンＰＢを指定している場合、制御信号Ｓｅｌ中のレジスタアドレスにより特定されるレジスタＲ中の信号を出力する。すなわち、制御信号Ｓｅｌは、レジスタＲ０〜Ｒ３のいずれかを指定する。レジスタＲ０が指定されている場合、セレクタＳは信号LAST_STR_info[7:0]を出力する。同様に、レジスタＲ１〜Ｒ３が指定されている場合、セレクタＳは信号LAST_STR_info[7:0]、2ND_LAST_STR_info[7:0]、及び3RD_LAST_STR_info[7:0]をそれぞれ出力する。
【００５９】
１．２  動作  
次に、上記構成のＮＡＮＤ型フラッシュメモリ１００及びメモリコントローラ２００の動作につき、特に最遅ストリングレジスタ１２２の動作について説明する。
【００６０】
１．２．１  最遅ストリングレジスタ１２２の動作について  
まず、最遅ストリングレジスタ１２２の動作について、図７及び図８を参照して説明する。一例として、あるブロックに対して消去動作を実行した際に、ストリングユニットＳＵ０〜ＳＵ３が消去ベリファイにパスするために要したループ回数ＯＥＣが図７の通りであったとする。つまり、ストリングユニットＳＵ０〜ＳＵ３が、それぞれ４、５、２、４回目のループで消去ベリファイをパスしたとする。このときのレジスタユニットＲ０〜Ｒ３の保持データ（ストリングユニット及びＯＥＣ）の変化の様子を図８に示す。
【００６１】
メモリコントローラ２００から消去コマンドを受信したシーケンサ１２１は、消去のためのループ（電圧印加および消去ベリファイ）を行う。この際、消去に先立ってシーケンサ１２１は、レジスタユニットＲ０〜Ｒ３をリセットし、この結果、レジスタユニットＲ０〜Ｒ３は値を保持していない状態となる。１回目のループでは、いずれのストリングユニットＳＵも消去ベリファイをパスしない。このため、信号evfy_passは、ローレベルであり、よって信号｛STR_PB[1:0], OEC[5:0]｝は、レジスタＲ０に保持されない。よって、レジスタＲ０〜Ｒ３は引き続き空のままである。
【００６２】
シーケンサ１２２は、消去のためのループをさらに繰り返し、上記のように、２回目のループで、ストリングユニットＳＵ２が消去ベリファイをパスする。すると、シーケンサ１２２は信号evfy_passを“Ｈ”レベルとする。そして、図示せぬ遅延回路によって、クロック２サイクル後に信号evfy_pass_delay2が“Ｈ”レベルとされ、４サイクル後に信号evfy_pass_delay4が“Ｈ”レベルとされ、６サイクル後に信号evfy_pass_delay6が“Ｈ”レベルとされる。つまり、ＡＮＤゲートＡＤ４、ＡＤ３、ＡＤ２、及びＡＤ１の順に、消去ベリファイにパスした旨を示す信号が入力され、各レジスタユニットＲ０〜Ｒ３内のデータがシフトされる。しかし、この時点ではレジスタユニットＲ０〜Ｒ３はリセットされているので、レジスタＲ１〜Ｒ３の保持するデータは変わらない（換言すれば、空のデータが転送される）。ＡＮＤゲートＡＤ１には、ストリングユニットＳＵ２を特定するアドレスおよびループ回数２を示すビット列を含んだ信号｛STR_PB[1:0], OEC[5:0]｝がシーケンサ１２１から入力されるので、信号evfy_pass_delay_6が“Ｈ”レベルになった時点で、信号｛STR_PB[1:0], OEC[5:0]｝がクロックＣＬＫに同期してレジスタＲ０に取り込まれる。すなわちレジスタユニットＲ０は、ストリングアドレスＳＵ１およびＯＥＣ＝２を保持する。
【００６３】
シーケンサ１２２は、さらに消去のためのループを繰り返して、上記のように、４回目のループでストリングＳＵ０が消去ベリファイをパスする。すると、シーケンサ１２２は信号evfy_passを“Ｈ”レベルとする。そして、前述のように、信号evfy_pass_delay2、evfy_pass_delay4、及びevfy_pass_delay6が順次“Ｈ”レベルとされる。すると、レジスタユニットＲ２及びＲ３の保持データは依然として変わらない（空のデータが転送される）が、レジスタユニットＲ１には、レジスタユニットＲ０からの信号LAST_STR_info[7:0]が、evfy_pass_delay4が“Ｈ”レベルとなった時点で、クロックＣＬＫに同期して取り込まれる。その後、信号evfy_pass_delay6が“Ｈ”レベルになると、信号｛STR_PB[1:0], OEC[5:0]｝がレジスタユニットＲ０にラッチされる。すなわちレジスタユニットＲ０は、今回のループでベリファイしたストリングアドレスＳＵ０およびＯＥＣ＝４を保持する。このように、ストリングユニットＳＵがベリファイパスする度に、レジスタユニットＲ２の保持データ3RD_LAST_STR_info[7:0]がレジスタユニットＲ３に転送され、その２サイクル後に、レジスタユニットＲ１の保持データ2ND_LAST_STR_info[7:0]がレジスタユニットＲ２に転送され、その２サイクル後に、レジスタユニットＲ０の保持データLAST_STR_info[7:0]がレジスタユニットＲ１に転送され、その２サイクル後に、信号{STR_PB0[1:0],OEC[5:0]}がレジスタユニットＲ０に取り込まれる。
【００６４】
以上のように、いずれかのストリングユニットＳＵが消去ベリファイにパスすると、その情報がまずレジスタユニットＲ０に保持され、その後、いずれかのストリングユニットＳＵが消去ベリファイにパスする度に、レジスタユニットＲ０乃至Ｒ２のデータがレジスタユニットＲ１乃至Ｒ３にそれぞれシフトされる。このように、レジスタＲ０〜Ｒ３間でデータをシフトすることにより、図８に示すように、消去ベリファイにパスしたストリングユニットＳＵと、そのストリングユニットＳＵが消去ベリファイにパスするのに要したループ回数ＯＥＣが、レジスタユニットＲ０〜Ｒ３にセットされる。そして、消去ベリファイに最も早くパスしたストリングユニットＳＵに関する情報がレジスタユニットＲ３に保持され、最後にパスしたストリングユニットＳＵに関する情報がレジスタユニットＲ０に保持される。
【００６５】
図９は、上記の動作時における各種信号の変化をより詳細に示すタイミングチャートである。
【００６６】
図示するように、時刻ｔ０〜ｔ１において、あるブロックにおけるワード線ＷＬに消去電圧が印加され、信号ＯＥＣがカウントアップされて“０００００１”となる（時刻ｔ１）。その後、ストリングユニットＳＵ０〜ＳＵ３の消去ベリファイが順次実行される（時刻ｔ１〜ｔ５）。この際、いずれのストリングユニットＳＵも消去ベリファイにパスしなかったため、信号evfy_passは“Ｌ”レベルのままであり、レジスタユニットＲ０〜Ｒ３はリセット状態のままである。
【００６７】
次に時刻ｔ５〜ｔ６において、再度ワード線ＷＬに消去電圧が印加され、信号ＯＥＣが“００００１０”にカウントアップされる（時刻ｔ６）。その後、ストリングユニットＳＵ０〜ＳＵ３の消去ベリファイが順次実行される（時刻ｔ６〜ｔ１０）。すると、ストリングユニットＳＵ２のみが消去ベリファイにパスしたため、シーケンサ１２１は信号evfy_passを“Ｈ”レベルとする（時刻ｔ８〜ｔ９参照）。またこの信号evfy_passがクロックＣＬＫに同期して遅延されることで、信号evfy_pass_delay2、evfy_pass_delay4、及びevfy_pass_delay6が順次“Ｈ”レベルとされる。そして、信号evfy_pass_delay6が“Ｈ”レベルとされるタイミングで、信号LAST_STR_infoが{10,00010}とされる。つまり、ストリングユニットＳＵ２が２回目の消去ループでパスしたことを示す情報がレジスタユニットＲ０にセットされる。  次に時刻ｔ１０〜ｔ１１において、再度ワード線ＷＬに消去電圧が印加され、信号ＯＥＣが“００００１１”にカウントアップされる（時刻ｔ１１）。その後、ストリングユニットＳＵ０、ＳＵ１、及びＳＵ３の消去ベリファイが順次実行される（時刻ｔ１１〜ｔ１４）。なおシーケンサ１２１は、既に消去ベリファイにパスしたストリングユニットＳＵは、それ以降、消去ベリファイの対象としない。従って、時刻ｔ１１〜ｔ１４の消去ベリファイでは、前回の消去ループにおいて消去ベリファイにパスしたストリングユニットＳＵ２は消去ベリファイ対象から外される。
【００６８】
本ループでは、ストリングユニットＳＵ０、ＳＵ１、及びＳＵ３のいずれもが消去ベリファイにパスしなかったため、信号evfy_passは“Ｌ”レベルのままであり、レジスタユニットＲ０〜Ｒ３の保持データも変化しない（つまりレジスタユニット間でのデータ転送は行われない）。
【００６９】
次に時刻ｔ１４〜ｔ１５において、再度ワード線ＷＬに消去電圧が印加され、信号ＯＥＣが“０００１００”にカウントアップされる（時刻ｔ１５）。その後、ストリングユニットＳＵ０、ＳＵ１、及びＳＵ３の消去ベリファイが順次実行される（時刻ｔ１５〜ｔ１８）。すると、まずストリングユニットＳＵ０が消去ベリファイにパスする。よってシーケンサ１２１は、信号evfy_passを“Ｈ”レベルとする（時刻ｔ１５〜ｔ１６参照）。またこの信号evfy_passがクロックＣＬＫに同期して遅延されることで、信号evfy_pass_delay2、evfy_pass_delay4、及びevfy_pass_delay6が順次“Ｈ”レベルとされる。この結果、信号evfy_pass_delay4が“Ｈ”レベルとされるタイミングで、信号2ND_LAST_STR_infoが{10,00010}とされる。つまり、レジスタユニットＲ０のデータがＲ１に転送される。引き続き、信号evfy_pass_delay6が“Ｈ”レベルとされるタイミングで、信号LAST_STR_infoが{00,00100}とされる。つまり、ストリングユニットＳＵ０が４回目の消去ループでパスしたことを示す情報がレジスタユニットＲ０にセットされる。
【００７０】
更に、この消去ループ内において、ストリングユニットＳＵ３も消去ベリファイにパスする。よってシーケンサ１２１は、信号evfy_passを“Ｈ”レベルとする（時刻ｔ１７〜ｔ１８参照）。またこの信号evfy_passが遅延されることで、信号evfy_pass_delay2、evfy_pass_delay4、及びevfy_pass_delay6が順次“Ｈ”レベルとされる。この結果、信号evfy_pass_delay2が“Ｈ”レベルとされるタイミングで、信号3RD_LAST_STR_infoが{10,00010}とされる。つまり、レジスタユニットＲ１のデータがＲ２に転送される。引き続き、信号evfy_pass_delay4が“Ｈ”レベルとされるタイミングで、信号2ND_LAST_STR_infoが{00,00100}とされる。つまり、レジスタユニットＲ０のデータがＲ１に転送される。引き続き、信号evfy_pass_delay6が“Ｈ”レベルとされるタイミングで、信号LAST_STR_infoが{11,00100}とされる。つまり、ストリングユニットＳＵ３が４回目の消去ループでパスしたことを示す情報がレジスタユニットＲ０にセットされる。
【００７１】
次に時刻ｔ１８〜ｔ１９において、再度ワード線ＷＬに消去電圧が印加され、信号ＯＥＣが“０００１０１”にカウントアップされる（時刻ｔ１９）。その後シーケンサ１２１は、消去ベリファイにパスしていない唯一のストリングユニットＳＵ０に対して消去ベリファイを実行する（時刻ｔ１９〜ｔ２０）。すると、ストリングユニットＳＵ０が消去ベリファイにパスする。よってシーケンサ１２１は、信号evfy_passを“Ｈ”レベルとする（時刻ｔ１９５〜ｔ２０参照）。そして同様にして、信号evfy_pass_delay2、evfy_pass_delay4、及びevfy_pass_delay6が順次“Ｈ”レベルとされる。この結果、信号evfy_passが“Ｈ”レベルとされるタイミングで、信号4TH_LAST_STR_infoが{10,00010}とされる。つまり、レジスタユニットＲ２のデータがＲ３に転送される。引き続き、信号evfy_pass_delay2が“Ｈ”レベルとされるタイミングで、信号3RD_LAST_STR_infoが{00,00100}とされる。つまり、レジスタユニットＲ１のデータがＲ２に転送される。また信号evfy_pass_delay4が“Ｈ”レベルとされるタイミングで、信号2ND_LAST_STR_infoが{11,00100}とされる。つまり、レジスタユニットＲ０のデータがＲ１に転送される。最後に、信号evfy_pass_delay6が“Ｈ”レベルとされるタイミングで、信号LAST_STR_infoが{01,00101}とされる。つまり、ストリングユニットＳＵ１が５回目の消去ループでパスしたことを示す情報がレジスタユニットＲ０にセットされる。
【００７２】
以上の結果、レジスタユニットＲ０〜Ｒ３にはそれぞれ{01,00101}、{11,00100}、{00,00100}、及び{10,00010}なるデータが保持される。従って、レジスタユニットＲ３を参照することで、最初に消去ベリファイにパスしたストリングユニットＳＵはＳＵ２であり、ループ回数は２回であることが分かる。またレジスタユニットＲ２を参照することで、２回目に消去ベリファイにパスしたストリングユニットＳＵはＳＵ０であり、ループ回数は４回であることが分かる。更にレジスタユニットＲ１を参照することで、３回目に消去ベリファイにパスしたストリングユニットＳＵはＳＵ３であり、ループ回数は４回であることが分かる。そしてレジスタユニットＲ０を参照することで、最後に消去ベリファイにパスしたストリングユニットＳＵはＳＵ１であり、ループ回数は５回であることが分かる。  １．２．２  メモリコントローラ２００の動作  
次に、最遅ストリングアドレスを取得する際のメモリコントローラ２００の動作について、図１０を参照して説明する。図１０は、ＮＡＮＤバス上で送受信される、チップイネーブル信号／ＣＥ、アドレスラッチイネーブル信号ＡＬＥ、コマンドラッチイネーブル信号ＣＬＥ、ライトイネーブル信号／ＷＥ、リードイネーブル信号／ＲＥ、及び入出力信号Ｉ／Ｏのタイミングチャートである。
【００７３】
なお、／ＣＥはＮＡＮＤ型フラッシュメモリ１００をイネーブルにするための信号であり、Lowレベルでイネーブルとアサートされる。ＡＬＥは、入力信号がアドレス信号であることをＮＡＮＤ型フラッシュメモリに通知する信号である。ＣＬＥは、入力信号がコマンドであることをＮＡＮＤ型フラッシュメモリに通知する信号である。／ＷＥは、入力信号をＮＡＮＤ型フラッシュメモリ１００に取り込ませるための信号である。
【００７４】
メモリコントローラ１００の例えばＣＰＵ２３０は、ＮＡＮＤ型フラッシュメモリ１００における消去動作が終了すると（これはステータスリードコマンドをＮＡＮＤ型フラッシュメモリ１００に発行することで認識出来る）、図１０に示すように、ステータスリードコマンドは別個に用意された、専用のストリングアドレス取得コマンド“ｘＨ”を発行し、入出力信号としてＮＡＮＤ型フラッシュメモリ１００へ出力する。コマンド“ｘＨ”は、最遅ストリング情報を取得するためのコマンドである。またＣＰＵ２３０は、ＣＬＥをアサート（“Ｈ”レベル）し、／ＷＥをアサート（“Ｌ”レベル）する。これにより、コマンド“ｘＨ”が、ＮＡＮＤ型フラッシュメモリ１００の図示せぬコマンドレジスタに格納される。
【００７５】
引き続きＣＰＵ２３０は、ストリングアドレス取得を望むプレーンＰＢのアドレスおよびレジスタユニットＲ０を指定するアドレス信号“ｙＨ”を発行して、ＮＡＮＤ型フラッシュメモリ１００へ送信する。この際には、ＡＬＥをアサート（“Ｈ”レベル）すると共に、／ＷＥをアサートする。このアドレス信号“ｙＨ”は、例えばまずアドレスレジスタ１２３に格納される。その後、シーケンサ１２１の命令により、アドレス信号“ｙＨ”に対応するプレーンＰＢに対応した最遅ストリングレジスタ１２２中のセレクタＳに、信号Ｓｅｌとして供給される。
【００７６】
この結果、セレクタＳは、アドレス信号“ｙＨ”に対応するストリング情報を選択する。一例として、図７において、信号LAST_STR_info[7:0]〜4TH_LAST_STR_info[7:0]のそれぞれは、信号“００”、“０１”、“１０”、及び“１１”に対応付けられる。そして、信号Ｓｅｌとして“００”〜“１１”のいずれかが入力されると、セレクタＳは、対応する信号LAST_STR_info[7:0]〜4TH_LAST_STR_info[7:0]のいずれかを出力する。図９の例であると、信号Ｓｅｌ＝“００”が入力されることで、セレクタＳは、最遅ストリング情報を保持するレジスタユニットＲ０の出力を選択する。
【００７７】
その後、メモリコントローラ２００は／ＲＥをアサート（“Ｌ”レベル）することで、セレクタＳで選択された最遅ストリング情報（図７乃至図９の例ではＳＵ１、ＯＥＣ＝５）を得ることが出来る。
【００７８】
１．３  本実施形態に係る効果  
本実施形態に係る図２に示すような三次元積層型ＮＡＮＤ型フラッシュメモリ半導体記憶装置では、データを消去した後、まず消去対象ブロックの全ストリングユニットＳＵに対して消去ベリファイを行って、全ストリングユニットＳＵが消去ベリファイをパスすると、この消去対象ブロックの消去ベリファイがパスしたと判定する。
【００７９】
しかしながら、各ブロックＢＬＫのストリングユニットＳＵの消去特性（セル特性）が大きくばらついていなければ、消去対象ブロック中の１つのストリングユニットＳＵが消去ベリファイをパスしたことを以て、この消去対象ブロックが消去ベリファイをパスしたと判定することが可能である。これを可能とするために、例えばＲＯＭにおいて保持された、予め定められた１または複数のストリングユニットＳＵに対してメモリコントローラ２００が消去ベリファイを行うモードを用意することが出来る。
【００８０】
しかしながら、消去ベリファイの対象のストリングユニットＳＵが極端に早くまたは遅く消去ベリファイをパスする特性を有している場合、消去対象ブロックが消去ベリファイをパスするタイミングを正しく知ることができない。
【００８１】
この点、本実施形態に係る構成であると、ＮＡＮＤ型フラッシュメモリ１００は最遅ストリングレジスタ１２３を備えている。そしてメモリコントローラ２００は、最遅ストリングレジスタ１２３から、各ストリングユニットＳＵが何回のシーケンスの繰り返しで消去ベリファイにパスしたのかを知ることが出来る。つまり、どのストリングユニットＳＵが最も消去されやすく、またどのストリングユニットＳＵが最も消去され難いのかの情報を得ることが出来る。
【００８２】
従って、この情報に基づき、消去ベリファイ対象とするストリングユニットＳＵを適切に選択出来る。すなわち、例えば最も消去され難いストリングユニットＳＵを消去ベリファイ対象として選ぶことが出来る。より具体的には、メモリコントローラ２００は、ブロックと最遅ストリングユニットとを関連付けて記憶し、ＮＡＮＤ型フラッシュメモリ１００をより適切に管理出来る。この点については、第２実施形態において詳細に説明する。
【００８３】
２．第２実施形態  
次に、第２実施形態に係る半導体記憶装置及びメモリコントローラについて説明する。本実施形態は、上記第１実施形態において、消去動作を繰り返すと共にストリングユニットがバッドストリング化することを考慮したものである。以下では第１実施形態と異なる点についてのみ説明する。
【００８４】
２．１  メモリセルトランジスタの劣化について  
図１１は、ブロックの消去回数と、バッドストリング数との関係を示すグラフである。バッドストリングとは、メモリセルトランジスタＭＴが劣化することにより不良となったＮＡＮＤストリング数がある一定数を超え、その結果として使用不可とすべきストリングユニットＳＵのことである。図示するように、消去回数が増えるに従って、バッドストリングの発生回数は増大する。
【００８５】
例えば、消去回数が０〜Ｎ１回ではほとんどバッドストリングは発生しないが、Ｎ１〜Ｎ４回くらいで徐々に発生するようになり、Ｎ４回以降は急激に増加する。
【００８６】
本実施形態ではこのような傾向に基づき、ブロックの消去回数を勘案して、最遅ストリングの更新等を行う。
【００８７】
２．２  メモリシステム１の動作について  
本実施形態に係るメモリシステム１の動作につき、図１２を用いて説明する。図１２は、メモリシステム１の動作を示すフローチャートであり、ホスト機器、メモリコントローラ２００、及びＮＡＮＤ型フラッシュメモリ１００毎に分けて記載してある。なお、メモリコントローラは２００例えばパワーオン時に、ＮＡＮＤ型フラッシュメモリ１００のＲＯＭフューズ等からバッドストリング情報を取得しているものとする。
【００８８】
図１２に示すように、ホストはメモリコントローラ２００に対して、あるブロックＢＬＫの消去を命令する（ステップＳ１０）。すると、メモリコントローラ２００は、消去対象ブロックについての最遅ストリング情報を保持しているかを判断する（ステップＳ１１）。
【００８９】
メモリコントローラ２００は、例えばＲＡＭ２２０にテーブルを保持する。このテーブルは、最遅ストリング情報、イレース回数Era_counter、最遅ストリング取得モードでのイレース後のイレース回数（サンプリング回数と称する）Sampling_counterを、ブロック毎に保持している。従って、ＣＰＵ２３０がこのテーブルにアクセスすることで、消去対象ブロックについての最遅ストリング情報の有無を判断出来る。
【００９０】
最遅ストリング情報を有していない、すなわち未取得であれば（ステップＳ１１、ＮＯ）、メモリコントローラ２００は、最遅ストリング取得指示コマンドとともに消去コマンドをＮＡＮＤ型フラッシュメモリ１００に発行する。最遅ストリング取得指示コマンドでは、消去対象ブロック中にバッドストリングがあれば、ループ回数をモニターする対象からバッドストリングを外す。すなわち、最遅ストリング取得指示コマンドは、バッドストリングを除いたストリングを対象として指示する。
【００９１】
コマンドを受信すると、ＮＡＮＤ型フラッシュメモリ１００は、消去を実行するとともに、イレース対象ブロックの最遅ストリング情報を取得する（ステップＳ１２）。すなわち、消去対象ブロックの、最遅ストリング取得指示コマンドによって指定された全てのストリングユニットに対して消去ベリファイを行いながら、データ消去のためのループを繰り返し、また、最遅ストリング情報を取得する。また、メモリコントローラ２００は、テーブルにおける消去対象ブロックについての、消去カウントEra_counterを１インクリメントし、サンプリングカウントSampling_counterを０にリセットする。更にメモリコントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００において消去が終了すると、ステータスリードコマンドを発行してステータスデータを読み出すと共に、図１０で説明した専用の取得コマンド“ｘＨ”を発行することにより、最遅ストリング情報を読み出す。
【００９２】
ステップＳ１１において、消去対象ブロックの最遅ストリングが取得済みであれば（ステップＳ１１、ＹＥＳ）、メモリコントローラ２００は、最遅ストリングがバッドストリング化していないかを判断する（ステップＳ１３）。すなわち、以前に最遅であると登録されたストリングが、その後の使用の結果、バッドストリング化していた場合には、新たな最遅ストリングを割り出す必要がある。従って、最遅ストリングがバッドストリング化している場合（ステップＳ１３、ＮＯ）、メモリコントローラ２００は、最遅ストリング取得指示コマンドとともに消去コマンドをＮＡＮＤ型フラッシュメモリに発行する。この最遅ストリング取得指示コマンドは、バッドストリングでないストリングを指定している。
【００９３】
最遅ストリング取得指示コマンド及び消去コマンドを受信したＮＡＮＤ型フラッシュメモリ１００は、データの消去を行うとともに、最新の最遅ストリング情報を取得する（ステップＳ１４）。消去が終了すると、メモリコントローラ２００は、ステータスリードコマンドを用いて、最遅ストリング情報を含んだステータスデータをＮＡＮＤ型フラッシュメモリ１００から読み出す。またメモリコントローラ２００は、テーブルにおける消去対象ブロックについての消去カウントEra_counterを１インクリメントし、サンプリングカウントSampling_counterを０にリセットする。
【００９４】
以前に最遅ストリングとして登録されたストリングがバッドストリング化していない場合（ステップＳ１３、ＹＥＳ）、メモリコントローラ２００は、消去対象ブロック中で、他にバッドストリング化したストリングがあるかを判断する（ステップＳ１５）。
【００９５】
別の新たなバッドストリングが有れば（ステップＳ１５、ＹＥＳ）、メモリコントローラ２００は、現在早急に必要な処理が多い状況である（例えばガベージコレクション中）か否かを判断する（ステップＳ１６）。待機中の処理が多い状況でない場合（ステップＳ１６、ＮＯ）、メモリコントローラ２００は、最遅ストリング取得指示コマンドとともに消去コマンドをＮＡＮＤ型フラッシュメモリ１００に発行する。この最遅ストリング取得指示コマンドは、ステップＳ１５で新たに知ったバッドストリングを含むバッドストリングを除くストリングを対象として指示している。
【００９６】
この最遅ストリング取得指示コマンド及び消去コマンドを受信したＮＡＮＤ型フラッシュメモリ１００は、データの消去を行うとともに、最新の最遅ストリング情報を取得する（ステップＳ１７）。この最遅ストリング情報も、図１０で説明した専用の取得コマンド“ｘＨ”によりメモリコントローラ２００に送信される。またメモリコントローラ２００は、テーブルにおける消去対象ブロックについての消去カウントEra_counterを１インクリメントし、サンプリングカウントSampling_counterを０にリセットする。
【００９７】
処理が多い状況の場合（ステップＳ１６、ＹＥＳ）、処理はステップＳ１８に進む。またステップＳ１５において別の新たなバッドストリングが無い場合（ステップＳ１５、ＮＯ）も、ステップＳ１８に進む。
【００９８】
ステップＳ１８〜Ｓ１９では、メモリコントローラ２００は、最遅ストリングに対してのみ消去ベリファイを行いながら、消去を行うとともに、ある消去回数ごとに基づいて最遅ストリングの見直しを行う。すなわち、メモリコントローラ２００は、消去回数がある範囲にある間は、ある回数ごとに最新の最遅ストリングを割り出し、消去回数が増えると、より短い間隔で最新の最遅ストリングを割り出す。より具体的には以下の通りである。
【００９９】
ステップＳ１８においてメモリコントローラ２００は、最遅ストリング情報の更新の要否を判断する。更新の頻度は消去回数に依存する。例えば、Ｎ１＜Ｎ２＜Ｎ３＜Ｎ４、ｎ１＞ｎ２＞ｎ３＞ｎ４として、メモリコントローラ２００は、消去回数がＮ１までの間はｎ１の自然数倍の回数の消去の時に最新の最遅ストリングを割り出す。さらに、メモリコントローラ２００は、閾値Ｎ２まではｎ２の自然数倍の回数の消去の時に最新の最遅ストリングを割り出し、閾値Ｎ３まではｎ３の自然数倍の回数の消去の時に最新の最遅ストリングを割り出し、閾値Ｎ４まではｎ４の自然数倍の回数の消去の時に最新の最遅ストリングを割り出す。以下、同様にしてＮ５、Ｎ６…、およびｎ５、ｎ６…が定義されてもよい。
【０１００】
ステップＳ１８において、メモリコントローラ２００は、消去対象ブロックについての消去カウントEra_counter及び、サンプリングカウントSampling_counterを参照して、最新の最遅ストリング情報を割り出す条件が満たされているかを判断する。満たされていない場合（ステップＳ１８、ＮＯ）、メモリコントローラ２００は、最遅ストリングのみに対して消去ベリファイを行うことを含んだ消去の実行をＮＡＮＤ型フラッシュメモリに指示する。すなわち、メモリコントローラ２００は、消去対象のブロックの消去を指示し且つ最遅ストリングユニットアドレスを消去ベリファイ対象として指定する消去コマンドをＮＡＮＤ型フラッシュメモリ１００に送信する。
【０１０１】
この消去コマンドを受け取ったＮＡＮＤ型フラッシュメモリ１００は、指定されたストリング（最遅ストリング）に消去ベリファイを行いながら、消去のためのループを繰り返す。ＮＡＮＤ型フラッシュメモリ２００は、最遅ストリングが消去ベリファイをパスすると、消去を終了し、消去成功のステータスをメモリコントローラ２００に送信する。また、メモリコントローラ２００は、消去対象ブロックについての、消去カウントEra_counterを１インクリメントし、サンプリングカウントSampling_counterを０にリセットする。
【０１０２】
一方、最新の最遅ストリング情報を割り出す条件が満たされている場合（ステップＳ１８、ＹＥＳ）、メモリコントローラ２００は、最遅ストリング取得指示コマンドとともに消去コマンドを記憶装置に発行する。例えば、総消去回数Era_counterが０以上Ｎ１未満の場合には、Sampling_counterがｎ１の倍数である時に、条件が満たされる。また、総消去回数Era_counterがＮ１以上Ｎ２未満の場合には、Sampling_counterがｎ２の倍数である時に、条件が満たされる。この最遅ストリング取得指示コマンドは、バッドストリングを含むバッドストリングを除くストリングを対象として指示している。
【０１０３】
このコマンドを受信したＮＡＮＤ型フラッシュメモリ１００は、消去を行うとともに、最新の最遅ストリング情報を取得する（ステップＳ２０）。この最遅ストリング情報は、ステータスリードコマンドによりメモリコントローラ２００に送信される。また、メモリコントローラ２００は、消去対象ブロックについての消去カウントEra_counterを１インクリメントし、サンプリングカウントSampling_counterを０にリセットする。
【０１０４】
２．３  コマンドシーケンスについて  
上記の最遅ストリング取得モードを用いたコマンドシーケンスにつき、図１３を用いて説明する。
【０１０５】
図示するように、従来のＮＡＮＤインターフェイスで定義された消去コマンドシーケンスの前に、メモリコントローラ２００は、コマンドｘｘｈ及びアドレスを発行する。アドレスは例えば８ビット信号であり、１ブロックが４つのストリングユニットを含む場合、アドレス信号の各ビットは以下を意味する。  
[0]：ＳＵ０に対応し、“１”は消去ベリファイの対象とし、“０”は消去ベリファイの対象としない。  
[1]：ＳＵ１に対応し、“１”は消去ベリファイの対象とし、“０”は消去ベリファイの対象としない。  
[2]：ＳＵ２に対応し、“１”は消去ベリファイの対象とし、“０”は消去ベリファイの対象としない。  
[3]：ＳＵ３に対応し、“１”は消去ベリファイの対象とし、“０”は消去ベリファイの対象としない。  
[6:4]：特に指定無し  
[7]：最遅ストリング取得モードの有効／無効に対応し、“１”は最遅ストリング取得モードを有効とし、“０”は無効とする。
【０１０６】
例えば、あるブロックＢＬＫで、ストリングユニットＳＵ３がバッドストリングとして登録されていたと仮定する。
【０１０７】
最初の消去動作では、例えばコマンドとして“８７ｈ”を発行し、最遅取得モードを用いてストリングユニットＳＵ０、ＳＵ１、及びＳＵ２を消去ベリファイ対象とする消去動作を行う（ステップＳ１２）。これにより、メモリコントローラ２００は、最遅ストリング情報を得ることが出来る。
【０１０８】
それ以降は、例えばコマンドとして“０２ｈ”を発行し、最遅取得モードをディセーブルとして、ストリングユニットＳＵ１のみを消去ベリファイ対象とする消去動作を行う（ステップＳ１９）。例えば、Ｎ１＝１０００回であった場合、消去動作を１０００回行うまでは、同様の消去動作が行われる。
【０１０９】
また、例えば８００回目の消去の前に、ストリングユニットＳＵ１がバッドストリングになってしまった場合（例えば、ストリングユニットＳＵ１のあるページに書き込みを行ったらプログラムフェイルとなった）、例えばコマンドとして“８５ｈ”を発行し、最遅取得モードを用いてストリングユニットＳＵ０及びＳＵ２を消去ベリファイ対象とする消去動作を行う（ステップＳ１４）。これにより、メモリコントローラ２００は、最新のグ情報を得ることが出来る。
【０１１０】
２．４  本実施形態に係る効果  
本実施形態に係る構成であると、最遅ストリングを定期的に見直すと共に、消去回数が増加して劣化が顕著となるにつれて、見直す頻度を高めている。従って、最遅ストリング情報の精度を向上させ、ＮＡＮＤ型フラッシュメモリ１００の動作信頼性を向上出来る。
【０１１１】
また、後発的に消去不能となるストリングユニットＳＵが発生する場合がある。すると、このストリングユニットＳＵが消去ベリファイ対象外とされていれば、本来バッドストリングとすべきストリングユニットＳＵが、いつまでもユーザに開放されることになる。つまり、消去出来ていないストリングユニットＳＵのページに対して書き込みが行われることになるため、誤書き込みの原因となる（書き込めない場合にはプログラムフェイルとなって不良を検知出来るが、この場合にはすでに書き込まれているページへの追加書き込みとなるため、プログラムフェイルとならずに不良を検知できない）。
【０１１２】
しかし、本実施形態であると、定期的に全ストリングユニットＳＵ（既にバッドストリングであることが判明しているＳＵは除く）に対して消去ベリファイを行っている。従って、上記のような問題にも対処可能である。
【０１１３】
３．変形例等  
上記のように、実施形態に係る半導体記憶装置１００は、複数のメモリセルが積層されたＮＡＮＤストリングの集合である複数のストリングユニットＳＵと、複数のストリングユニットＳＵを含み、データの消去単位となるブロックＢＬＫと、データの消去時において、ストリングユニットＳＵ毎に消去特性情報を保持するレジスタ１２２とを具備する。レジスタ１２２は、消去特性情報をメモリコントローラ２００へ出力可能である。
【０１１４】
本構成により、メモリコントローラに最遅ストリングをメモリコントローラへ適宜出力することが出来る。これにより、消去ベリファイ対象となるストリングユニット数を最小限とすることが出来、消去動作を高速化し、ＮＡＮＤ型フラッシュメモリの動作性能を向上出来る。
【０１１５】
なお、上記第２実施形態では消去回数をカウントし、これに基づいて最遅ストリングの見直しを図る場合を例に説明した。しかし、消去回数だけでなく、書き込み回数も併せて見直しても良いし、あるいは消去回数ではなく書き込み回数だけを考慮する場合であっても良い。
【０１１６】
更に上記実施形態はＮＡＮＤ型フラッシュメモリに限らず、半導体記憶装置全般に適用することが出来る。
【０１１７】
その他、各実施形態は、上記のものに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で、種々に変形することが可能である。さらに、上記実施形態には種々の段階が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の実施形態が抽出され得る。例えば、上記各実施形態に示される全構成要件から幾つかの構成要件が削除されても、この構成要件が削除された構成が実施形態として抽出され得る。
【符号の説明】
【０１１８】
１…メモリシステム、１００…ＮＡＮＤ型フラッシュメモリ、１１０…コア部、１１１…メモリセルアレイ、１１２…ロウデコーダ、１１３…センスアンプ、１１４…ソース線ドライバ、１１５…ウェルドライバ、１１６…シーケンサ、１１７…レジスタ、１１８…ＮＡＮＤストリング、２００…コントローラ、２１０…ホストインターフェイス、２２０…内蔵メモリ、２３０…ＣＰＵ、２４０…バッファメモリ、２５０…ＮＡＮＤインターフェイス、２６０…ＥＣＣ回路
【図１】
2015176628.tif 000003
【図２】
2015176628.tif 000004
【図３】
2015176628.tif 000005
【図４】
2015176628.tif 000006
【図５】
2015176628.tif 000007
【図６】
2015176628.tif 000008
【図７】
2015176628.tif 000009
【図８】
2015176628.tif 000010
【図９】
2015176628.tif 000011
【図１０】
2015176628.tif 000012
【図１１】
2015176628.tif 000013
【図１２】
2015176628.tif 000014
【図１３】
2015176628.tif 000015