(57)【要約】【課題】処理能力を向上できるメモリシステムを提供する。【解決手段】実施形態によれば、メモリシステム１は、メモリセルＭＴを含むメモリセルアレイ１８を有する半導体記憶装置１００と、半導体記憶装置１００を制御し、メモリセルＭＴから読み出した第１データに基づいて第２データを作成可能なコントローラ２００とを含む。コントローラ２００は、外部機器２からメモリセルＭＴに保持された第１データの物理消去の要求を受信すると、半導体記憶装置１００に、消去命令及び第２データの書き込み命令の１つを送信する。【選択図】図１４
2019053805.tif 000002
【特許請求の範囲】
【請求項１】
メモリセルを含むメモリセルアレイを有する半導体記憶装置と、
前記半導体記憶装置を制御し、前記メモリセルから読み出した第１データに基づいて第２データを作成可能なコントローラと
を備え、前記コントローラは、外部機器から前記メモリセルに保持された前記第１データの物理消去の要求を受信すると、前記半導体記憶装置に、消去命令及び前記第２データの書き込み命令の１つを送信するメモリシステム。
【請求項２】
前記コントローラは、前記消去命令に基づいた前記半導体記憶装置の第１動作期間と、前記書き込み命令に基づいた前記半導体記憶装置の第２動作期間とを見積もり、前記第１動作期間と前記第２動作期間とを比較して短い動作期間の命令を選択する請求項１記載のメモリシステム。
【請求項３】
前記メモリセルは、少なくとも第１閾値分布に対応する第１レベルデータ、及び前記第１閾値分布よりも閾値電圧の高い第２閾値分布に対応する第２レベルデータの１つを記憶可能であり、
前記第１データが前記第１レベルデータである場合、前記コントローラは、前記第２データを前記第２レベルデータとする請求項１または２記載のメモリシステム。
【請求項４】
前記メモリセルは、複数のビットの前記第１データを記憶可能であり、
前記複数のビットのうち、前記物理消去の前記要求の対象ではないビットが有効データである場合、前記コントローラは、前記メモリセルから前記第１データを読み出して前記第２データを作成し、
前記対象ではない前記ビットが前記有効データではない場合、前記コントローラは、前記第１データを読み出さずに、前記第２データを作成する請求項１または２記載のメモリシステム。
【請求項５】
前記書き込み命令は第１書き込み命令と第２書き込み命令とを含み、
前記対象ではない前記ビットが前記有効データである場合、前記コントローラは、前記半導体記憶装置に前記第１書き込み命令を送信し、前記半導体記憶装置は、前記第１書き込み命令に基づいて前記第２データを前記メモリセルに書き込み、
前記対象ではない前記ビットが前記有効データではない場合、前記コントローラは、前記半導体記憶装置に前記第２書き込み命令を送信し、前記半導体記憶装置は、前記第２書き込み命令に基づいて前記第２データに関わらず前記メモリセルに最上位の閾値電圧レベルのデータを書き込む請求項４記載のメモリシステム。
【請求項６】
前記半導体記憶装置は、前記消去命令に応じて、前記メモリセルに消去前書き込み動作をおこなった後に消去動作を行い、前記消去前書き込み動作に対応するプログラムベリファイ動作及び前記消去動作に対応する消去ベリファイ動作を行わない請求項１または２記載のメモリシステム。
【請求項７】
ワード線に接続された複数のメモリセルを含むメモリブロックを含むメモリセルアレイを有する半導体記憶装置と、
前記半導体記憶装置を制御するコントローラと
を備え、前記コントローラは、外部機器から物理消去の要求を受信すると、前記半導体記憶装置に消去命令を送信し、
前記半導体記憶装置は、前記消去命令に応じて、前記メモリブロックの前記複数のメモリセルに消去前書き込み動作をおこなった後に消去動作を行い、前記消去前書き込み動作に対応するプログラムベリファイ動作及び前記消去動作に対応する消去ベリファイ動作を行わないメモリシステム。  
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリシステムに関する。
【背景技術】
【０００２】
半導体記憶装置としてＮＡＮＤ型フラッシュメモリを用いたメモリシステムが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−３８６８７号公報
【特許文献２】特許第５５８３１８５号公報
【特許文献３】特許第５１７５０６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
処理能力を向上できるメモリシステムを提供する。
【課題を解決するための手段】
【０００５】
上記実施形態に係るメモリシステムは、メモリセルを含むメモリセルアレイを有する半導体記憶装置と、半導体記憶装置を制御し、メモリセルから読み出した第１データに基づいて第２データを作成可能なコントローラとを含む。コントローラは、外部機器からメモリセルに保持された第１データの物理消去の要求を受信すると、半導体記憶装置に、消去命令及び第２データの書き込み命令の１つを送信する。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１実施形態に係るメモリシステムのブロック図である。
【図２】図２は、第１実施形態に係るメモリシステムの備える半導体記憶装置のブロック図である。
【図３】図３は、第１実施形態に係るメモリシステムの備える半導体記憶装置におけるメモリセルアレイの回路図である。
【図４】図４は、第１実施形態に係るメモリシステムの備える半導体記憶装置におけるメモリセルアレイの断面図である。
【図５】図５は、第１実施形態に係るメモリシステムにおけるルックアップテーブルを示す図である。
【図６】図６は、第１実施形態に係るメモリシステムの備える半導体記憶装置におけるメモリセルトランジスタの閾値分布図である。
【図７】図７は、第１実施形態に係るメモリシステムの備える半導体記憶装置におけるプログラム動作のときの各種配線の電圧を示すタイミングチャートである。
【図８】図８は、第１実施形態に係るメモリシステムの備える半導体記憶装置におけるプリプログラム動作のときの各種配線の電圧を示すタイミングチャートである。
【図９】図９は、第１実施形態に係るメモリシステムにおける通常消去動作のときの各種信号のタイミングチャートである。
【図１０】図１０は、第１実施形態に係るメモリシステムにおけるセキュアＢＬＫ消去動作のときの各種信号のタイミングチャートである。
【図１１】図１１は、第１実施形態に係るメモリシステムの備える半導体記憶装置における消去動作のフローチャートである。
【図１２】図１２は、第１実施形態に係るメモリシステムにおけるセキュア消去のフローチャートである。
【図１３】図１３は、第１実施形態に係るメモリシステムの備えるコントローラにおける上書きデータの作成の一例を示す図である。
【図１４】図１４は、第１実施形態に係るメモリシステムにおける上書きプログラム動作の一例を示す図である。
【図１５】図１５は、第１実施形態に係るメモリシステムにおけるセキュアＢＬＫ消去動作の一例を示す図である。
【図１６】図１６は、第２実施形態に係るメモリシステムにおける通常書き込み動作のときの各種信号のタイミングチャートである。
【図１７】図１７は、第２実施形態に係るメモリシステムにおける最上位書き込み動作のときの各種信号のタイミングチャートである。
【図１８】図１８は、第２実施形態に係るメモリシステムにおけるセキュア消去のフローチャートである。
【図１９】図１９は、第２実施形態に係るメモリシステムの備える半導体記憶装置における書き込み動作のフローチャートである。
【図２０】図２０は、第３実施形態に係るメモリシステムの備える半導体記憶装置におけるメモリセルトランジスタの閾値分布図である。
【図２１】図２１は、第３実施形態に係るメモリシステムにおけるセキュア消去のフローチャートである。
【図２２】図２２は、第３実施形態に係るメモリシステムの備えるコントローラにおいて、下位ページがセキュア消去対象である場合の上書きデータの作成を示す図である。
【図２３】図２３は、第３実施形態に係るメモリシステムの備えるコントローラにおいて、上位ページがセキュア消去対象である場合の上書きデータの作成を示す図である。
【図２４】図２４は、第３実施形態に係るメモリシステムにおいて、下位ページがセキュア消去対象であり上位ページが有効データを有する場合の上書きプログラム動作の一例を示す図である。
【図２５】図２５は、第３実施形態に係るメモリシステムにおいて、上位ページがセキュア消去対象であり下位ページが有効データを有する場合の上書きプログラム動作の一例を示す図である。
【図２６】図２６は、第３実施形態に係るメモリシステムにおいて、上位ページがセキュア消去対象であり下位ページがデータの上書き済みである場合の上書きプログラム動作の一例を示す図である。
【図２７】図２７は、第３実施形態に係るメモリシステムにおいて、下位及び上位ページがセキュア消去対象である場合の上書きプログラム動作の一例を示す図である。
【図２８】図２８は、第４実施形態に係るメモリシステムにおけるセキュア消去のフローチャートである。
【図２９】図２９は、第５実施形態に係るメモリシステムの備える半導体記憶装置におけるメモリセルトランジスタの閾値分布図である。
【図３０】図３０は、第５実施形態に係るメモリシステムの備えるコントローラにおいて、下位ページがセキュア消去対象であり中位及び上位ページが有効データを有する場合の上書きデータの作成を示す図である。
【図３１】図３１は、第５実施形態に係るメモリシステムにおいて、下位ページがセキュア消去対象であり中位及び上位ページが有効データを有する場合の上書きプログラム動作の一例を示す図である。
【図３２】図３２は、第５実施形態に係るメモリシステムの備えるコントローラにおいて、下位及び中位ページがセキュア消去対象であり上位ページが有効データを有する場合の上書きデータの作成を示す図である。
【図３３】図３３は、第５実施形態に係るメモリシステムにおいて、下位及び中位ページがセキュア消去対象であり上位ページが有効データを有する場合の上書きプログラム動作の一例を示す図である。
【発明を実施するための形態】
【０００７】
以下、実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【０００８】
１．第１実施形態
第１実施形態に係るメモリシステムについて説明する。以下では、半導体記憶装置として、メモリセルトランジスタが半導体基板上方に三次元に積層された三次元積層型ＮＡＮＤ型フラッシュメモリを例に挙げて説明する。なお、半導体記憶装置は、三次元積層型ＮＡＮＤ型フラッシュメモリに限定されず、半導体基板上にメモリセルトランジスタＭＴが配置された平面型ＮＡＮＤ型フラッシュメモリにも適用できる。
【０００９】
１．１  構成について
１．１．１  メモリシステムの全体構成について
まず、メモリシステムの全体構成について、図１を用いて説明する。
【００１０】
図１に示すように、メモリシステム１は、ＮＡＮＤ型フラッシュメモリ１００及びコントローラ２００を備えている。コントローラ２００及びＮＡＮＤ型フラッシュメモリ１００は、例えばそれらの組み合わせにより一つの半導体記憶装置を構成しても良く、その例としてはＳＤＴＭカードのようなメモリカードや、ＳＳＤ（solid state drive）等が挙げられる。
【００１１】
コントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００のメモリ空間を管理する。また、コントローラ２００は、ホスト機器２からの命令（要求）に応答して、ＮＡＮＤ型フラッシュメモリ１００に対してデータの読み出し動作、書き込み動作、及び消去動作等を命令する。
【００１２】
より具体的には、例えば、コントローラ２００は、ホスト機器２から読み出し命令を受信すると、ＮＡＮＤ型フラッシュメモリ１００内に格納された、論理アドレスと物理アドレスとを関連付けたデータ（以下、「論物変換データ」と呼ぶ）が格納されたテーブル（以下、「ルックアップテーブルＬＵＴ」と呼ぶ）から、消去対象の論理アドレスに対応する論物変換データを読み出す。論理アドレスは、ホスト機器２からアクセス（読み出し動作、書き込み動作、及び消去動作等）を要求されたデータに付される。物理アドレスは、ＮＡＮＤ型フラッシュメモリ１００のメモリ空間のある一部を特定する。そして、コントローラ２００は、読み出した論物変換データを用いて、論理アドレスを物理アドレスに変換した後、ＮＡＮＤ型フラッシュメモリ１００に読み出し命令を送信する。
【００１３】
また、コントローラ２００は、ホスト機器２から書き込み命令を受信した場合、論理アドレスに対応する物理アドレスを新規に割り当て、ＮＡＮＤ型フラッシュメモリ１００に書き込み命令を送信する。また、例えば、コントローラ２００は、新規に割り当てた論物変換データが一定量を超えると、ルックアップテーブルＬＵＴを更新する。
【００１４】
また、コントローラ２００は、ホスト機器２から大まかに２つのモードの消去命令を受信する。１つは、消去対象の論理アドレスに対応する論物変換データを消去し（以下、「論物消去」と呼ぶ）、ＮＡＮＤ型フラッシュメモリ１００内のデータを、システム上読み出せなくする論物消去命令である。論物消去の場合、ＮＡＮＤ型フラッシュメモリ１００内にデータは残ったままの状態となっている。もう１つは、論物消去に加えて、ＮＡＮＤ型フラッシュメモリ１００内のデータを物理的に消去する（以下、「物理消去」と呼ぶ）命令である。
【００１５】
更に、物理消去には、例えば、新しいデータを書き込むためにＮＡＮＤ型フラッシュメモリ１００内のデータを物理消去する場合（以下、「通常消去」と呼ぶ）と、セキュリティの観点からデータを物理消去する（物理的に読めなくする）場合（以下、「セキュア消去」と呼ぶ）とが含まれる。例えば、コントローラ２００は、ホスト機器２から通常消去命令を受信した場合、またはコントローラ２００が新規データを書き込むためにデータの消去が必要と判断した場合、通常消去命令をＮＡＮＤ型フラッシュメモリ１００に送信する。
【００１６】
本実施形態に係るコントローラ２００は、ホスト機器２からセキュア消去命令を受信すると、セキュア消去に対応した物理消去動作（以下、「セキュアＢＬＫ消去動作」と呼ぶ）、または、データの上書き動作（以下、「上書きプログラム動作」と呼ぶ）のいずれかを実行する。上書きプログラム動作とは、メモリセルトランジスタが保持しているデータと異なるデータを上書きし（書き込みし）、データを書き換える動作である。コントローラ２００は、例えば、セキュア消去対象の論理アドレスに対応したデータ（以下、「消去対象データ」と呼ぶ）に基づいて上書き用のデータ（以下、「上書きデータ」と呼ぶ）を作成する。上書きプログラム動作では、データを消去する代わりに、元のデータを加工して（書き換えて）、元のデータに関連のないデータとすることでセキュア性を確保している。セキュア消去の詳細については後述する。
【００１７】
コントローラ２００は、ホストインターフェイス回路２１０、内蔵メモリ（ＲＡＭ）２２０、プロセッサ（ＣＰＵ）２３０、バッファメモリ２４０、ＮＡＮＤインターフェイス回路２５０、及びＥＣＣ回路２６０を含む。
【００１８】
ホストインターフェイス回路２１０は、コントローラバスを介してホスト機器２と接続され、ホスト機器２との通信を司る。ホストインターフェイス回路２１０は、プロセッサ２３０及びバッファメモリ２４０に、ホスト機器２から受信した命令及びデータを転送する。また、ホストインターフェイス回路２１０は、プロセッサ２３０の命令に応答して、バッファメモリ２４０内のデータをホスト機器２へ転送する。
【００１９】
ＮＡＮＤインターフェイス回路２５０は、ＮＡＮＤバスを介してＮＡＮＤ型フラッシュメモリ１００と接続され、ＮＡＮＤ型フラッシュメモリ１００との通信を司る。ＮＡＮＤインターフェイス回路２５０は、ＮＡＮＤ型フラッシュメモリ１００にプロセッサ２３０から受信した命令を転送する。また、ＮＡＮＤインターフェイス回路２５０は、書き込み時には、ＮＡＮＤ型フラッシュメモリ１００に、バッファメモリ２４０内の書き込みデータを転送する。更に、ＮＡＮＤインターフェイス回路２５０は、読み出し時には、バッファメモリ２４０に、ＮＡＮＤ型フラッシュメモリ１００から読み出されたデータを転送する。
【００２０】
プロセッサ２３０は、コントローラ２００全体の動作を制御する。また、プロセッサ２３０は、ホスト機器２の命令に応じて、各種コマンドを発行し、ＮＡＮＤ型フラッシュメモリ１００に送信する。例えば、プロセッサ２３０は、ホスト機器２から書き込み命令を受信した際には、それに応答して、ＮＡＮＤ型フラッシュメモリ１００に書き込み命令を送信する。読み出し動作及び消去動作の際も同様に、プロセッサ２３０は、ホスト機器２から受信した命令に応答して、ＮＡＮＤ型フラッシュメモリ１００に各種命令を送信する。また、プロセッサ２３０は、ウェアレベリング等、ＮＡＮＤ型フラッシュメモリ１００を管理するための様々な処理を実行する。更に、プロセッサ２３０は、各種の演算を実行する。例えば、プロセッサ２３０は、データの暗号化処理やランダマイズ処理等を実行する。
【００２１】
また、プロセッサ２３０は、ホスト機器２から受信した論理アドレスと、当該論理アドレスに対応するＮＡＮＤ型フラッシュメモリ１００の物理アドレスとを互いに変換する。更に、プロセッサ２３０は、ルックアップテーブルＬＵＴを管理し、ルックアップテーブルＬＵＴ内に論物変換データと、セキュア消去に関する情報を格納する。また、プロセッサ２３０は、セキュア消去の際、消去対象ブロックＢＬＫのデータを確認し、セキュアＢＬＫ消去動作を実行するか上書きプログラム動作を実行するか判定する（選択する）。また、プロセッサ２３０は、ＮＡＮＤ型フラッシュメモリ１００から読み出したデータを加工し、上書きプログラム動作用の上書きデータを作成する。
【００２２】
ＥＣＣ回路２６０は、データの誤り訂正（ＥＣＣ：Error Checking and Correcting）処理を実行する。
【００２３】
内蔵メモリ２２０は、例えばＤＲＡＭ等の半導体メモリであり、プロセッサ２３０の作業領域として使用される。そして内蔵メモリ２２０は、ＮＡＮＤ型フラッシュメモリ１００を管理するためのファームウェアや、各種の管理テーブル等を保持する。また、ＲＡＭ２２０は、ルックアップテーブルＬＵＴから読み出した論物変換データ、あるいは新規に作成された論物変換データを一時的に保持する。
【００２４】
バッファメモリ２４０は、ＮＡＮＤ型フラッシュメモリ１００に書き込まれるデータ（書き込みデータ）、及びＮＡＮＤ型フラッシュメモリ１００から読み出されたデータ（読み出しデータ）等のデータを保持する。
【００２５】
ＮＡＮＤ型フラッシュメモリ１００は、複数のメモリセルトランジスタを備え、データを不揮発に記憶する。ＮＡＮＤ型フラッシュメモリ１００は、ＮＡＮＤバスによってコントローラ２００と接続され、コントローラ２００からの命令に基づいて動作する。より具体的には、ＮＡＮＤ型フラッシュメモリ１００は、コントローラ２００と、例えば８ビットの信号ＤＱ０〜ＤＱ７（以下、ＤＱ０〜ＤＱ７を限定しない場合は、単に信号ＤＱ、または信号ＤＱ［７：０］と表記する）の送受信を行う。信号ＤＱ０〜ＤＱ７には、例えばデータ、アドレス、及びコマンドが含まれる。また、ＮＡＮＤ型フラッシュメモリ１００は、コントローラ２００から、例えばチップイネーブル信号ＣＥｎ、コマンドラッチイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ、ライトイネーブル信号ＷＥｎ、及びリードイネーブル信号ＲＥｎを受信する。そして、ＮＡＮＤ型フラッシュメモリ１００はコントローラ２００に、レディ／ビジー信号Ｒ／Ｂｎを送信する。
【００２６】
チップイネーブル信号ＣＥｎは、ＮＡＮＤ型フラッシュメモリ１００をイネーブルにするための信号であり、例えばＬｏｗ（“Ｌ”）レベルでアサートされる。コマンドラッチイネーブル信号ＣＬＥは、信号ＤＱがコマンドであることを示す信号であり、例えばＨｉｇｈ（“Ｈ”）レベルでアサートされる。アドレスラッチイネーブル信号ＡＬＥは、信号ＤＱがアドレスであることを示す信号であり、例えば“Ｈ”レベルでアサートされる。ライトイネーブル信号ＷＥｎは、受信した信号をＮＡＮＤ型フラッシュメモリ１００内へ取り込むための信号であり、コントローラ２００よりコマンド、アドレス、及びデータ等を受信する度に、例えば“Ｌ”レベルでアサートされる。よって、ライトイネーブル信号ＷＥｎがトグルされる度に、信号ＤＱがＮＡＮＤ型フラッシュメモリ１００に取り込まれる。リードイネーブル信号ＲＥｎは、コントローラ２００が、ＮＡＮＤ型フラッシュメモリ１００からデータを読み出すための信号である。リードイネーブル信号ＲＥｎは、例えば“Ｌ”レベルでアサートされる。よって、ＮＡＮＤ型フラッシュメモリ１００は、トグルされるリードイネーブル信号ＲＥｎに基づいて、コントローラ２００に信号ＤＱを出力する。レディ／ビジー信号Ｒ／Ｂｎは、ＮＡＮＤ型フラッシュメモリ１００がビジー状態であるかレディ状態であるか（コントローラ２００からコマンドを受信不可能な状態か可能な状態か）を示す信号であり、例えばＮＡＮＤ型フラッシュメモリ１００がビジー状態の際に“Ｌ”レベルとされる。
【００２７】
１．１．２  半導体記憶装置の構成について
次に、半導体記憶装置の構成について、図２を用いて説明する。なお、図２では各ブロック間の接続の一部を矢印線で示しているが、ブロック間の接続はこれに限定されない。
【００２８】
図２に示すように、ＮＡＮＤ型フラッシュメモリ１００は、入出力回路１０、ロジック制御回路１１、ステータスレジスタ１２、アドレスレジスタ１３、コマンドレジスタ１４、シーケンサ１５、レディ／ビジー回路１６、電圧発生回路１７、メモリセルアレイ１８、ロウデコーダ１９、センスアンプ２０、データレジスタ２１、及びカラムデコーダ２２を含む。
【００２９】
入出力回路１０は、コントローラ２００との信号ＤＱの入出力を制御する。より具体的には、入出力回路１０は、入力回路と出力回路を備える。入力回路は、コントローラ２００から受信したデータＤＡＴ（書き込みデータＷＤ）を、データレジスタ２１に送信し、アドレスＡＤＤをアドレスレジスタ１３に送信し、コマンドＣＭＤをコマンドレジスタ１４に送信する。出力回路は、ステータスレジスタ１２から受信したステータス情報ＳＴＳ、データレジスタ２１から受信したデータＤＡＴ（読み出しデータＲＤ）、及びアドレスレジスタ１３から受信したアドレスＡＤＤをコントローラ２００に送信する。入出力回路１０とデータレジスタ２１とは、データバスを介して接続される。
【００３０】
ロジック制御回路１１は、コントローラ２００から例えばチップイネーブル信号ＣＥｎ、コマンドラッチイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ、ライトイネーブル信号ＷＥｎ、及びリードイネーブル信号ＲＥｎを受信する。そしてロジック制御回路１１は、受信した信号に応じて、入出力回路１０及びシーケンサ１５を制御する。
【００３１】
ステータスレジスタ１２は、例えばデータの書き込み動作、読み出し動作、及び消去動作におけるステータス情報ＳＴＳを一時的に保持し、コントローラ２００に動作が正常に終了したか否かを通知する。
【００３２】
アドレスレジスタ１３は、入出力回路１０を介してコントローラ２００から受信したアドレスＡＤＤを一時的に保持する。そしてアドレスレジスタ１３は、ロウアドレスＲＡをロウデコーダ１９へ転送し、カラムアドレスＣＡをカラムデコーダ２２に転送する。
【００３３】
コマンドレジスタ１４は、入出力回路１０を介してコントローラ２００から受信したコマンドＣＭＤを一時的に保存し、シーケンサ１５に転送する。
【００３４】
シーケンサ１５は、ＮＡＮＤ型フラッシュメモリ１００全体の動作を制御する。より具体的には、シーケンサ１５は、コマンドレジスタ１４が保持するコマンドＣＭＤに応じて、例えばステータスレジスタ１２、レディ／ビジー回路１６、電圧発生回路１７、ロウデコーダ１９、センスアンプ２０、データレジスタ２１、及びカラムデコーダ２２等を制御し、書き込み動作、読み出し動作、及び消去動作等を実行する。
【００３５】
レディ／ビジー回路１６は、シーケンサ１５の動作状況に応じて、レディ／ビジー信号Ｒ／Ｂｎをコントローラ２００に送信する。
【００３６】
電圧発生回路１７は、シーケンサ１５の制御に応じて、書き込み動作、読み出し動作、及び消去動作に必要な電圧を発生させ、この発生した電圧を例えばメモリセルアレイ１８、ロウデコーダ１９、及びセンスアンプ２０等に供給する。ロウデコーダ１９及びセンスアンプ２０は、電圧発生回路１７より供給された電圧をメモリセルアレイ１８内のメモリセルトランジスタに印加する。
【００３７】
メモリセルアレイ１８は、ロウ及びカラムに対応付けられた不揮発性のメモリセルトランジスタ（以下、「メモリセル」とも表記する）を含む複数のブロックＢＬＫ（ＢＬＫ０、ＢＬＫ１、…、ＢＬＫ（Ｌ−１））（Ｌは２以上の整数）を備えている。各々のブロックＢＬＫは、複数のストリングユニットＳＵ（ＳＵ０、ＳＵ１、ＳＵ２、ＳＵ３、…）を含む。そして各々のストリングユニットＳＵは、複数のＮＡＮＤストリングＳＲを含む。なお、メモリセルアレイ１８内のブロックＢＬＫ数及びブロックＢＬＫ内のストリングユニットＳＵ数は任意である。メモリセルアレイ１８の詳細については後述する。
【００３８】
ロウデコーダ１９は、ロウアドレスＲＡをデコードする。ロウデコーダ１９は、デコード結果に基づき、ブロックＢＬＫのいずれかを選択し、更にいずれかのストリングユニットＳＵを選択する。そして、ロウデコーダ１９は、必要な電圧をブロックＢＬＫに印加する。
【００３９】
センスアンプ２０は、読み出し動作のときには、メモリセルアレイ１８から読み出されたデータをセンスする。そして、センスアンプ２０は、読み出しデータＲＤをデータレジスタ２１に送信する。また、センスアンプ２０は、書き込み動作のときには、書き込みデータＷＤをメモリセルアレイ１８に送信する。
【００４０】
データレジスタ２１は、複数のラッチ回路を備える。ラッチ回路は、書き込みデータＷＤ及び読み出しデータＲＤを保持する。例えば書き込み動作において、データレジスタ２１は、入出力回路１０から受信した書き込みデータＷＤを一時的に保持し、センスアンプ２０に送信する。また例えば、読み出し動作において、データレジスタ２１は、センスアンプ２０から受信した読み出しデータＲＤを一時的に保持し、入出力回路１０に送信する。
【００４１】
カラムデコーダ２２は、例えば書き込み動作、読み出し動作、及び消去動作の際、カラムアドレスＣＡをデコードし、デコード結果に応じてデータレジスタ２１内のラッチ回路を選択する。
【００４２】
１．１．３  メモリセルアレイの構成について  
次に、メモリセルアレイ１８の構成について、図３を用いて説明する。図３の例は、ブロックＢＬＫ０を示しているが、他のブロックＢＬＫの構成も同じである。
【００４３】
図３に示すように、ブロックＢＬＫ０は、例えば４つのストリングユニットＳＵ（ＳＵ０〜ＳＵ３）を含む。そして、各々のストリングユニットＳＵは、複数のＮＡＮＤストリングＳＲを含む。ＮＡＮＤストリングＳＲの各々は、例えば８個のメモリセルトランジスタＭＴ０〜ＭＴ７、並びに選択トランジスタＳＴ１及びＳＴ２を含んでいる。以下、メモリセルトランジスタＭＴ０〜ＭＴ７を限定しない場合は、メモリセルトランジスタＭＴと表記する。メモリセルトランジスタＭＴは、制御ゲートと電荷蓄積層とを備え、データを不揮発に保持する。
【００４４】
なお、メモリセルトランジスタＭＴは、電荷蓄積層に絶縁膜を用いたＭＯＮＯＳ型であっても良いし、電荷蓄積層に導電層を用いたＦＧ型であっても良い。以下、本実施形態では、ＭＯＮＯＳ型を例として説明する。また、メモリセルトランジスタＭＴの個数は８個に限られず、１６個や３２個、６４個、１２８個等であってもよく、その数は限定されるものではない。更に、選択トランジスタＳＴ１及びＳＴ２の個数は、任意であり、それぞれ１個以上あれば良い。
【００４５】
メモリセルトランジスタＭＴは、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に直列接続されている。より具体的には、メモリセルトランジスタＭＴ０〜ＭＴ７は、その電流経路が直列に接続される。そしてメモリセルトランジスタＭＴ７のドレインは、選択トランジスタＳＴ１のソースに接続され、メモリセルトランジスタＭＴ０のソースは、選択トランジスタＳＴ２のドレインに接続されている。
【００４６】
ストリングユニットＳＵ０〜ＳＵ３の各々における選択トランジスタＳＴ１のゲートは、選択ゲート線ＳＧＤ０〜ＳＧＤ３にそれぞれ接続される。同様に、ストリングユニットＳＵ０〜ＳＵ３の各々における選択トランジスタＳＴ２のゲートは、選択ゲート線ＳＧＳ０〜ＳＧＳ３にそれぞれ接続される。以下、選択ゲート線ＳＧＤ０〜ＳＧＤ３を限定しない場合は、選択ゲート線ＳＧＤと表記する。選択ゲート線ＳＧＳ０〜ＳＧＳ３を限定しない場合は、選択ゲート線ＳＧＳと表記する。なお、各ストリングユニットＳＵの選択ゲート線ＳＧＳ０〜ＳＧＳ３は共通に接続されても良い。
【００４７】
ブロックＢＬＫ内にあるメモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲートは、それぞれワード線ＷＬ０〜ＷＬ７に共通接続される。以下、ワード線ＷＬ０〜ＷＬ７を限定しない場合は、ワード線ＷＬと表記する。
【００４８】
ストリングユニットＳＵ内にある各ＮＡＮＤストリングＳＲの選択トランジスタＳＴ１のドレインは、それぞれ異なるビット線ＢＬ０〜ＢＬ（Ｎ−１）（Ｎは２以上の整数）に接続される。以下、ビット線ＢＬ０〜ＢＬ（Ｎ−１）を限定しない場合は、ビット線ＢＬと表記する。各ビット線ＢＬは、複数のブロックＢＬＫ間で各ストリングユニットＳＵ内にある１つのＮＡＮＤストリングＳＲを共通に接続する。更に、複数の選択トランジスタＳＴ２のソースは、ソース線ＳＬに共通に接続されている。つまり、ストリングユニットＳＵは、異なるビット線ＢＬに接続され、且つ同一の選択ゲート線ＳＧＤ及びＳＧＳに接続されたＮＡＮＤストリングＳＲの集合体である。またブロックＢＬＫは、ワード線ＷＬを共通にする複数のストリングユニットＳＵの集合体である。そしてメモリセルアレイ１８は、ビット線ＢＬを共通にする複数のブロックＢＬＫの集合体である。
【００４９】
データの書き込み動作及び読み出し動作は、いずれかのストリングユニットＳＵにおけるいずれかのワード線ＷＬに接続されたメモリセルトランジスタＭＴに対して、一括して行われる。以下、データの書き込み動作及び読み出し動作の際、一括して選択されるメモリセルトランジスタＭＴの群を「メモリセルグループＭＣＧ」と呼ぶ。そして、１つのメモリセルグループＭＣＧに書き込まれる、または読み出される各メモリセルトランジスタＭＴの１ビットのデータの集まりを「ページ」と呼ぶ。
【００５０】
データの消去動作は、ブロックＢＬＫ単位で一括して行うことができる。
【００５１】
１．１．４  メモリセルアレイの断面構成について  
次に、メモリセルアレイ１８の断面構成について、図４を用いて説明する。図４の例は、ストリングユニットＳＵ０及びＳＵ１の断面を示しており、ストリングユニットＳＵ２及びＳＵ３の構成も同様である。なお、図４において、層間絶縁膜は省略されている。
【００５２】
図４に示すように、半導体基板３０に平行な第１方向Ｄ１に沿って、半導体基板３０に平行で第１方向Ｄ１に垂直な第２方向Ｄ２に延びる複数のソース線コンタクトＬＩが設けられている。２つのソース線コンタクトＬＩの間には、１つのストリングユニットＳＵが配置されている。ソース線コンタクトＬＩは、半導体基板３０とＮＡＮＤストリングＳＲよりも上方に設けられる図示せぬソース線ＳＬとを接続する。なお、ソース線コンタクトＬＩ及びＮＡＮＤストリングＳＲの配置は任意に設定可能である。例えば２つのソース線コンタクトＬＩの間に複数のストリングユニットＳＵが設けられても良い。更に図４の例では、説明を簡略化するために１つのストリングユニットＳＵにおいて、複数のＮＡＮＤストリングＳＲが、第２方向Ｄ２に沿って１列に配列されている場合を示しているが、１つのストリングユニットＳＵにおけるＮＡＮＤストリングＳＲの配列は任意に設定可能である。例えば、第２方向Ｄ２に沿って、２列並行に配置されても良く、４列の千鳥配置に配列されても良い。
【００５３】
各ストリングユニットＳＵにおいて、ＮＡＮＤストリングＳＲは、半導体基板３０に垂直な第３方向Ｄ３に沿って形成されている。より具体的には、半導体基板３０の表面領域には、ｎ型ウェル３１が設けられている。そして、ｎ型ウェル３１の表面領域には、ｐ型ウェル３２が設けられている。また、ｐ型ウェル３２の表面領域の一部には、ｎ＋型拡散層３３が設けられている。そしてｐ型ウェル３２の上方には、選択ゲート線ＳＧＳ、メモリセルトランジスタＭＴ０〜ＭＴ７に接続されるワード線ＷＬ０〜ＷＬ７、及び選択ゲート線ＳＧＤとして機能する１０層の配線層３４が、それぞれ図示せぬ層間絶縁膜を介して順次積層されている。
【００５４】
そして、１０層の配線層３４を貫通してｐ型ウェル３２に達するピラー状の半導体層３５が形成されている。半導体層３５の側面には、トンネル絶縁膜３６、電荷蓄積層３７、及びブロック絶縁膜３８が順次形成される。半導体層３５には、例えば多結晶シリコンが用いられる。トンネル絶縁膜３６及びブロック絶縁膜３８には、例えばシリコン酸化膜が用いられる。電荷蓄積層３７には、例えばシリコン窒化膜が用いられる。半導体層３５は、ＮＡＮＤストリングＳＲの電流経路として機能し、各トランジスタのチャネルが形成される領域となる。そして半導体層３５の上端は、コンタクトプラグ３９を介して、第１方向Ｄ１に延びる配線層４０に接続される。配線層４０は、ビット線ＢＬとして機能する。
【００５５】
なお、図４の例では、選択ゲート線ＳＧＤ及びＳＧＳとして機能する配線層３４は、それぞれ１層設けられているが、複数層設けられても良い。
【００５６】
ソース線コンタクトＬＩは、第２方向Ｄ２に沿ってライン形状を有する。ソース線コンタクトＬＩには、例えば多結晶シリコンが用いられる。そしてソース線コンタクトＬＩの底面はｎ＋型拡散層３３に接続され、上面はソース線ＳＬとして機能する配線層（不図示）に接続される。
【００５７】
１．２  ルックアップテーブルについて
次に、ルックアップテーブルＬＵＴについて、図５を用いて説明する。なお、図５の例では、１つの物理アドレス及び１つの論理アドレスが、メモリセルアレイ１８における１つのページに対応する。
【００５８】
図５に示すように、ルックアップテーブルＬＵＴは、物理アドレス、論理アドレス、及びセキュア消去において上書きプログラム動作が実施されたか否かについての情報を保持する。例えば、物理アドレス“００００１０００”には、論理アドレス“００００００００”が割り当てられており、対応するページには上書きプログラム動作が実施されていない。よって、当該物理アドレスに対応するページには、有効データが格納されている。また、例えば、物理アドレス“００００９０００”には、論理アドレスが割り当てられておらず、対応するページには上書きプログラム動作が実施されている。よって、論理アドレスはセキュア消去により消去されており、当該物理アドレスに対応するページには、上書きされた無効データが格納されている。また、例えば、物理アドレス“００００９００１”には、論理アドレスが割り当てられておらず、データの上書きも実施されていない。よって、当該物理アドレスに対応するページには、データが書き込まれていない。
【００５９】
１．３  メモリセルトランジスタの閾値分布について  
次に、本実施形態に係るメモリセルトランジスタＭＴの取り得る閾値分布について、図６を用いて説明する。以下、本実施形態では、メモリセルトランジスタＭＴが２値（１ビット）のデータを保持可能な場合について説明する。以下、２値のデータを保持するメモリセルトランジスタをＳＬＣ（single-level-cell）と呼ぶ。なお、本実施形態では、ＳＬＣについて説明するが、保持可能なデータは２値に限定されない。メモリセルトランジスタＭＴが４値以上のデータ（２ビット以上のデータ）を保持可能であっても良い。
【００６０】
図示するように、各々のメモリセルトランジスタＭＴの閾値電圧は、離散的な２個の分布のいずれかに含まれる値を取る。以下、２個の分布を閾値電圧の低い順にそれぞれ、“Ｅｒ”レベル及び“Ａ”レベルと呼ぶ。
【００６１】
“Ｅｒ”レベルは、例えばデータの消去状態に相当する。そして“Ａ”レベルは、電荷蓄積層に電荷が注入されてデータが書き込まれた状態に相当する。書き込み動作において、“Ａ”レベルの閾値分布に対応するベリファイ電圧をＡＶとすると、“Ｅｒ”レベルに含まれる閾値電圧は電圧ＡＶ未満である。“Ａ”レベルに含まれる閾値電圧は、電圧ＡＶ以上である。以下、本実施形態では、“Ｅｒ”レベル及び“Ａ”レベルの状態を、２進数表記で“１”データ及び“０”データに割り当てる。以下、各レベルの閾値分布を比較して、低い閾値電圧を有するレベルを「低い（閾値電圧）レベル」または「下位レベル」と呼び、高い閾値電圧を有するレベルを「高い（閾値電圧）レベル」または「上位レベル」と呼ぶ。
【００６２】
なお、データの割り当ては任意に設定可能である。
【００６３】
更に、図６では２個のレベルが離散的に分布する場合を例に説明したが、これは例えばデータの書き込み直後の理想的な状態である。従って、現実的には２つのレベルが重なることが起こり得る。例えばデータの書き込み後、ディスターブ等により“Ｅｒ”レベルの上端と“Ａ”レベルの下端とが重なる場合がある。このような場合には、例えばＥＣＣ技術等を用いてデータが訂正される。
【００６４】
１．４  書き込み動作について
次に、書き込み動作について説明する。書き込み動作は、大まかにはプログラム動作とプログラムベリファイ動作とを含む。そして、プログラム動作とプログラムベリファイ動作との組み合わせ（以下、「プログラムループ」と呼ぶ）を繰り返すことで、メモリセルトランジスタＭＴの閾値電圧がターゲットレベルまで上昇される。
【００６５】
プログラム動作は、電子を電荷蓄積層に注入することにより閾値電圧を上昇させる（または注入を禁止することで閾値電圧を維持させる）動作のことである。以下では、閾値電圧を上昇させる動作を「“０”プログラム動作」または「“０”書き込み動作」と呼び、“０”プログラム対象とされたビット線ＢＬには、センスアンプ２０から“０”データに対応する電圧（例えば電圧ＶＳＳ）が与えられる。他方で、閾値電圧を維持させる動作を「“１”プログラム動作」、「“１”書き込み動作」、または「書き込み禁止」と呼び、“１”プログラム対象とされたビット線ＢＬには、センスアンプ２０から“１”データに対応する電圧（以下、「電圧ＶＢＬ」と表記する）が与えられる。以下、“０”プログラム動作に対応するビット線をＢＬ（“０”）と表記し、“１”プログラム動作に対応するビット線をＢＬ（“１”）と表記する。
【００６６】
プログラムベリファイ動作は、プログラム動作の後、データを読み出し、メモリセルトランジスタＭＴの閾値電圧が目標とするターゲットレベル（ＳＬＣの場合、電圧ＡＶ）に達したか否かを判定する動作である。
【００６７】
また、ＮＡＮＤ型フラッシュメモリ１００における書き込み動作には、３つのモードの書き込み動作がある。１つめは、コントローラ２００から受信したデータをメモリセルアレイ１８に書き込む動作（以下、「通常書き込み動作」と呼ぶ）である。セキュア消去の上書きプログラム動作も、ＮＡＮＤ型フラッシュメモリ１００における動作としては、通常書き込み動作と同じである。
【００６８】
２つめは、消去動作において消去対象ブロックＢＬＫのデータを消去する際に、ブロックＢＬＫ内の消去対象ではないデータ（以下、「非消去対象データ」または、単に「非対象データ」と呼ぶ）を、非消去対象ブロックＢＬＫに移行させる動作（以下、「コピープログラム動作」と呼ぶ）である。コピープログラム動作には、消去対象のブロックＢＬＫから非消去対象データを読み出す動作と、読み出したデータを非消去対象ブロックＢＬＫに書き込む動作とが含まれる。
【００６９】
３つめは、セキュアＢＬＫ消去動作において、消去動作を実施する前に、複数のレベルの閾値分布の分散を低減させる、すなわち、低い閾値電圧レベルの閾値分布が高い閾値電圧レベルの閾値分布に重なる（近づく）ように消去対象ブロックＢＬＫ内のメモリセルトランジスタＭＴの閾値電圧を上昇させる動作（以下、「プリプログラム動作」と呼ぶ）である。より具体的には、シーケンサ１５は、データの消去前に、消去対象ブロックＢＬＫ内のメモリセルトランジスタＭＴに対して一括して書き込み動作を行う。同じ条件で、一括して書き込み動作を行った場合、閾値電圧レベルの低いメモリセルトランジスタＭＴの方が、閾値電圧の変動量（上昇量）が大きくなる。従って、低い閾値電圧レベルの閾値分布が高い閾値電圧レベルの閾値分布に近づき重なるようになる。なお、プリプログラム動作では、プログラムベリファイ動作を必要としない。
【００７０】
１．４．１  通常書き込み動作における各配線の電圧について
次に、通常書き込み動作における各配線の電圧について、図７を用いて説明する。図７の例は、１回目のプログラムループにおけるプログラム動作を示している。なお、コピープログラム動作における書き込み動作も、通常書き込み動作と同様である。
【００７１】
図７に示すように、時刻ｔ１において、センスアンプ２０は、ビット線ＢＬ（“１”）に電圧ＶＢＬを印加し、ＢＬプリチャージを開始する。他方で、センスアンプ２０は、ビット線ＢＬ（“０”）に電圧ＶＳＳを印加する。
【００７２】
ロウデコーダ１９は、選択ブロックＢＬＫにおいて、選択ストリングユニットＳＵの選択ゲート線ＳＧＤ（参照符号“選択ＳＧＤ”）に電圧ＶＳＤ１を印加する。選択トランジスタＳＴ１の閾値電圧をＶｔｓｇとすると、電圧ＶＳＤ１は、“ＶＢＬ＋Ｖｔｓｇ”以上の電圧で、選択トランジスタＳＴ１をオン状態とさせる電圧である。他方で、ロウデコーダ１９は、非選択ストリングユニットＳＵの選択ゲート線ＳＧＤ（参照符号“非選択ＳＧＤ”）に電圧ＶＳＳを印加して、対応する選択トランジスタＳＴ１をオフ状態とさせる。また、ロウデコーダ１９は、選択ストリングユニットＳＵおよび非選択ストリングユニットＳＵの選択ゲート線ＳＧＳに電圧ＶＳＳを印加して、選択トランジスタＳＴ２をオフ状態とさせる。
【００７３】
またソース線ＳＬには、電圧発生回路１７から電圧ＶＣＥＬＳＲＣ（＞ＶＳＳ）が印加される。
【００７４】
時刻ｔ２において、ロウデコーダ１９は、選択ストリングユニットＳＵの選択ゲート線ＳＧＤに電圧ＶＳＤ２を印加する。電圧ＶＳＤ２は、電圧ＶＳＤ１及び電圧ＶＢＬよりも低い電圧で、電圧ＶＳＳを印加された選択トランジスタＳＴ１はオンさせるが、電圧ＶＢＬを印加された選択トランジスタＳＴ１はカットオフさせる電圧である。これにより、ビット線ＢＬ（“１”）に対応するＮＡＮＤストリングＳＲのチャネルはフローティング状態となる。
【００７５】
時刻ｔ３において、ロウデコーダ１９は、選択ストリングユニットＳＵの各ワード線ＷＬに電圧ＶＰＡＳＳを印加する。電圧ＶＰＡＳＳは、メモリセルトランジスタＭＴの閾値電圧によらず、メモリセルトランジスタＭＴをオン状態にする電圧である。
【００７６】
時刻ｔ４において、ロウデコーダ１９は、選択ストリングユニットＳＵの選択ワード線ＷＬに電圧ＶＰＧＭを印加する。電圧ＶＰＧＭは、電子を電荷蓄積層３７に注入するための高電圧である。電圧ＶＰＧＭと電圧ＶＰＡＳＳとは、ＶＰＧＭ＞ＶＰＡＳＳの関係にある。
【００７７】
ビット線ＢＬ（“０”）に対応するＮＡＮＤストリングＳＲでは、選択トランジスタＳＴ１がオン状態となっているため、選択ワード線ＷＬに接続されたメモリセルトランジスタＭＴのチャネル電位はＶＳＳとなる。よって、制御ゲートとチャネルとの間の電位差（ＶＰＧＭ−ＶＳＳ）が大きくなる。その結果、電子が電荷蓄積層３７に注入されて、ビット線ＢＬ（“０”）に対応するメモリセルトランジスタＭＴの閾値電圧が上昇される。
【００７８】
ビット線ＢＬ（“１”）に対応するＮＡＮＤストリングＳＲでは、選択トランジスタＳＴ１がカットオフ状態となっているため、選択ワード線ＷＬに接続されたメモリセルトランジスタＭＴのチャネルは電気的にフローティングとなる。すると、ワード線ＷＬ等との容量カップリングにより、チャネル電位は上昇する。よって、制御ゲートとチャネルとの間の電位差は、ビット線ＢＬ（“０”）に対応するメモリセルトランジスタＭＴよりも小さくなる。その結果、電子が電荷蓄積層３７にほとんど注入されず、ビット線ＢＬ（“１”）に対応するメモリセルトランジスタＭＴの閾値電圧は維持される（閾値分布レベルがより高い分布に遷移するほどには閾値電圧は変動しない）。
【００７９】
時刻ｔ５において、ロウデコーダ１９は、ワード線ＷＬに電圧ＶＳＳを印加する。
【００８０】
時刻ｔ６において、リカバリ処理が実行され、プログラム動作は終了する。
【００８１】
１．４．２  プリプログラム動作における各配線の電圧について
次に、プリプログラム動作における各配線の電圧について、図８を用いて説明する。プリプログラム動作では、例えば、消去対象ブロックＢＬＫの全てのワード線ＷＬ及び選択ゲート線ＳＧＤが選択され、全てのビット線ＢＬが、“０”プログラム動作の対象とされる。
【００８２】
図８に示すように、時刻ｔ１において、センスアンプ２０は、ビット線ＢＬ（“０”）に電圧ＶＳＳを印加する。ロウデコーダ１９は、選択ブロックＢＬＫの選択ゲート線ＳＧＤに電圧ＶＳＤ２を印加し、選択トランジスタＳＴ１をオン状態にする。また、ロウデコーダ１９は、選択ゲート線ＳＧＳに電圧ＶＳＳを印加して、選択トランジスタＳＴ２をオフ状態にする。またソース線ＳＬには、電圧ＶＣＥＬＳＲＣが印加される。
【００８３】
時刻ｔ２において、ロウデコーダ１９は、選択ブロックＢＬＫのワード線ＷＬに電圧ＶＰＧＭを印加する。
【００８４】
時刻ｔ３において、ロウデコーダ１９は、ワード線ＷＬに電圧ＶＳＳを印加する。
【００８５】
時刻ｔ４において、リカバリ処理が実行され、プログラムは終了する。
【００８６】
１．５  物理消去動作について
次に、物理消去動作について説明する。先に述べたように、物理消去動作には、通常消去動作とセキュアＢＬＫ消去動作とがある。
【００８７】
通常消去動作は、後の書き込み動作で消去対象ブロックＢＬＫが使用できるように、消去対象ブロックＢＬＫ内のメモリセルトランジスタＭＴの閾値電圧を“Ｅｒ”レベルにする（電圧ＡＶ未満にする）ための動作である。通常消去動作は、コピープログラム動作、及び消去電圧印加動作と消去ベリファイ動作との組み合わせ（以下、「消去ループ」と呼ぶ）を含む。そして、消去ループを繰り返すことで、メモリセルトランジスタＭＴの閾値電圧はＡＶレベル未満まで低下する。
【００８８】
セキュアＢＬＫ消去動作は、消去対象ブロックＢＬＫのデータが正しく読み出せなくするための消去動作である。従って、セキュアＢＬＫ消去動作では、消去対象ブロックＢＬＫ内のメモリセルトランジスタＭＴの閾値電圧が“Ｅｒ”レベルに達していなくても良い。消去対象ブロックＢＬＫに新規にデータを書き込む場合には、別途、通常消去動作が行われる。セキュアＢＬＫ消去動作は、コピープログラム動作、プリプログラム動作、及び消去電圧印加動作を含む。なお、セキュアＢＬＫ消去動作では、消去対象ブロックＢＬＫ内のメモリセルトランジスタＭＴの閾値電圧が“Ｅｒ”レベルに達していなくても良いため、消去ベリファイ動作が省略される。なお、セキュアＢＬＫ消去動作において、消去ループ（消去ベリファイ）を適用しても良い。
【００８９】
１．５．１  通常消去動作における各種信号の送受信について
まず、通常消去動作における各種信号の送受信について、図９を用いて説明する。
【００９０】
図９に示すように、まず、コントローラ２００は、チップイネーブル信号ＣＥｎを“Ｌ”レベルにしてアサートする。
【００９１】
次に、コントローラ２００は、ライトイネーブル信号ＷＥｎをトグルし、消去動作を実行することを通知するコマンド“６０ｈ”をＮＡＮＤ型フラッシュメモリ１００に送信するとともに、コマンドラッチイネーブル信号ＣＬＥを“Ｈ”レベルにしてアサートする。
【００９２】
次に、コントローラ２００は、ライトイネーブル信号ＷＥｎをトグルし、アドレス“ＡＤＤ”を送信すると共に、アドレスラッチイネーブル信号ＡＬＥを“Ｈ”レベルにしてアサートする。なお、図９の例では、ロウアドレスＲＡを３サイクル送信する場合を示しているが、ロウアドレスＲＡのサイクルは任意に設定可能である。
【００９３】
更にコントローラ２００は、ライトイネーブル信号ＷＥｎをトグルし、消去動作の実行を指示するコマンド“Ｄ０ｈ”を送信すると共に、コマンドラッチイネーブル信号ＣＬＥを“Ｈ”レベルにしてアサートする。
【００９４】
ＮＡＮＤ型フラッシュメモリ１００は、コマンド“Ｄ０ｈ”に応じて、ビジー状態となり（Ｒ／Ｂｎ＝“Ｌ”）、通常消去動作を開始する。ＮＡＮＤ型フラッシュメモリ１００は、通常消去動作が終了するとレディ状態となり、信号Ｒ／Ｂｎは“Ｈ”レベルとされる。
【００９５】
１．５．２  セキュアＢＬＫ消去動作における各種信号の送受信について
次に、セキュアＢＬＫ消去動作における各種信号の送受信について、図１０を用いて説明する。以下では、図９と異なる点についてのみ説明する。
【００９６】
図１０に示すように、コントローラ２００は、コマンド“６０ｈ”の前に、セキュアＢＬＫ消去動作を実行することを通知するプリコマンド“０Ｆｈ”を付与する。より具体的には、コントローラ２００は、ライトイネーブル信号ＷＥｎをトグルし、プリコマンド“０Ｆｈ”をＮＡＮＤ型フラッシュメモリ１００に送信するとともに、コマンドラッチイネーブル信号ＣＬＥを“Ｈ”レベルにしてアサートする。他の信号は、図９と同じである。
【００９７】
１．５．３  ＮＡＮＤ型フラッシュメモリにおける消去動作の流れについて
次に、ＮＡＮＤ型フラッシュメモリ１００における消去動作の流れについて、図１１を用いて説明する。
【００９８】
図１１に示すように、ＮＡＮＤ型フラッシュメモリ１００は、コントローラ２００から消去命令を受信する（ステップＳ１０１）。
【００９９】
消去命令がセキュアＢＬＫ消去命令ではない場合（ステップＳ１０２＿Ｎｏ）、シーケンサ１５は、通常消去動作を選択する（ステップＳ１０３）。
【０１００】
シーケンサ１５は、まず、コピープログラム動作を実行し、消去対象ブロックＢＬＫ内の非消去対象データを非消去対象ブロックＢＬＫに移動させる（ステップＳ１０４）。
【０１０１】
次に、シーケンサ１５は、消去電圧印加動作を実行する（ステップＳ１０５）。より具体的には、センスアンプ２０は、消去対象ブロックＢＬＫに対応する各ビット線ＢＬに消去電圧ＶＥＲＡを印加する。電圧ＶＥＲＡは、メモリセルトランジスタＭＴの電荷蓄積層３７から電子を引き抜く（ホールを注入する）ための高電圧である。同様に、電圧発生回路１７は、ソース線ＳＬに電圧ＶＥＲＡを印加する。また、ロウデコーダ１９は、例えば、選択ブロックＢＬＫの選択ゲート線ＳＧＤ及びＳＧＳに電圧ＶＥＲＡを印加し、ワード線ＷＬに電圧ＶＥＲＡ＿ＷＬを印加する。電圧ＶＥＲＡ＿ＷＬは、電圧ＶＥＲＡよりも十分に低い電圧である。これにより、消去対象ブロックＢＬＫのメモリセルトランジスタＭＴのデータが消去される。
【０１０２】
次に、シーケンサ１５は、消去ベリファイ動作を実行する（ステップＳ１０６）。より具体的には、シーケンサ１５は、メモリセルトランジスタＭＴの閾値電圧が電圧ＡＶ未満か確認する。
【０１０３】
消去ベリファイ動作をパスした場合（ステップＳ１０７＿Ｙｅｓ）、シーケンサ１５は、通常消去動作を終了させる。
【０１０４】
また、消去ベリファイ動作をフェイルした場合（ステップＳ１０７＿Ｎｏ）、シーケンサ１５は、消去ループが予め設定された規定回数に達したか確認する（ステップＳ１０８）。
【０１０５】
消去ループが規定回数に達している場合（ステップＳ１０８＿Ｙｅｓ）、シーケンサ１５は、通常消去動作を終了させ、通常消去動作が正常に終了しなかった旨をコントローラ２００に報告する。
【０１０６】
消去ループが規定回数に達していない場合（ステップＳ１０８＿Ｎｏ）、シーケンサ１５は、ステップＳ１０５に戻り、再度、消去電圧印加動作を実行する。
【０１０７】
他方で、消去命令がセキュアＢＬＫ消去命令である場合（ステップＳ１０２＿Ｙｅｓ）、シーケンサ１５は、セキュアＢＬＫ消去動作を選択する（ステップＳ１０９）。
【０１０８】
シーケンサ１５は、ステップＳ１０４と同様に、コピープログラム動作を実行し、消去対象ブロックＢＬＫ内の非消去対象データを非消去対象ブロックＢＬＫに移動させる（ステップＳ１１０）。
【０１０９】
次に、シーケンサ１５は、プリプログラム動作を実行する（ステップＳ１１１）。
【０１１０】
次に、シーケンサ１５は、消去電圧印加動作を実行する（ステップＳ１０５）。これにより、セキュアＢＬＫ消去動作は終了する。
【０１１１】
なお、図１１の例では、セキュアＢＬＫ消去動作において、プリプログラム動作（ステップＳ１１１）及び消去電圧印加動作（ステップＳ１１２）が１回ずつ実行されているが、プリプログラム動作（ステップＳ１１１）及び消去電圧印加動作（ステップＳ１１２）を複数回繰り返しても良い。
【０１１２】
１．６  セキュア消去について
次に、セキュア消去について説明する。コントローラ２００は、セキュア消去を実行する場合、セキュアＢＬＫ消去動作または上書きプログラム動作のいずれかを選択して実行する。例えば、セキュアＢＬＫ消去動作を行う場合、ブロックＢＬＫ内の非消去対象データのデータ量(ページ数)が多いと、コピープログラム動作の回数が増え、動作期間が長くなる場合がある。このような場合、コントローラ２００は、上書きプログラム動作を選択する。
【０１１３】
例えば、コントローラ２００は、ルックアップテーブルＬＵＴを参照して、消去対象ブロックＢＬＫにある非消去対象データのデータ量（ページ数）を確認する。そして、コントローラ２００は、セキュアＢＬＫ消去に必要な動作期間の長さと上書きプログラム動作に必要な動作期間の長さとを見積もる。そして、コントローラ２００は、これらの動作期間の見積もりを比較して、動作期間が短い動作を選択する。より具体的には、例えば、１ページのデータ読み出し動作に必要な動作期間をａ（ｍｓｅｃ）とし、１ページのデータ書き込み動作に必要な動作期間をｂ（ｍｓｅｃ）とし、ブロックＢＬＫの消去電圧印加動作に必要な動作期間をｃ（ｍｓｅｃ）とする。なお、動作期間ａ、ｂ、及びｃは、例えばａ＜ｂ＜ｃの関係にある。すると、コントローラ２００は、セキュアＢＬＫ消去に必要な動作期間の見積もりとして、例えば、（コピープログラム動作が必要なページ数）×（ａ＋ｂ）＋（消去ブロックＢＬＫ数）×ｃの計算を行う。他方で、コントローラ２００は、上書きプログラム動作に必要な動作期間の見積もりとして、例えば、（上書きプログラム動作を行うページ数）×（ａ＋ｂ）の計算を行う。
【０１１４】
１．６．１  メモリシステムにおけるセキュア消去の流れについて
次に、メモリシステムにおけるセキュア消去の流れについて、図１２を用いて説明する。
【０１１５】
図１２に示すように、コントローラ２００は、ホスト機器２からセキュア消去命令を受信する（ステップＳ１）。すると、コントローラ２００は、セキュアＢＬＫ消去動作及び上書きプログラム動作に必要な動作期間をそれぞれ見積もり、動作期間が短い動作を選択する（ステップＳ２）。
【０１１６】
コントローラ２００は、セキュアＢＬＫ消去動作を選択した場合（ステップＳ３＿Ｙｅｓ）、ＮＡＮＤ型フラッシュメモリ１００にセキュアＢＬＫ消去命令を送信する（ステップＳ４）。ＮＡＮＤ型フラッシュメモリ１００は、セキュアＢＬＫ消去命令を受信すると、セキュアＢＬＫ消去動作を実行する（ステップＳ５）。これによりセキュアＢＬＫ消去動作が終了する。
【０１１７】
また、コントローラ２００は、セキュアＢＬＫ消去動作を選択していない場合（ステップＳ３＿Ｎｏ）、上書きプログラム動作を選択する（ステップＳ６）。
【０１１８】
次に、コントローラ２００は、消去対象データを読み出すために、ＮＡＮＤ型フラッシュメモリ１００に読み出し命令を送信する（ステップＳ７）。ＮＡＮＤ型フラッシュメモリ１００は、読み出し命令に応じて、消去対象データを読み出し、コントローラ２００に送信する（ステップＳ８）。
【０１１９】
次に、コントローラ２００は、読み出した消去対象データに基づいて、上書きデータを作成する（ステップＳ９）。上書きデータは、メモリセルトランジスタＭＴのデータを高い閾値電圧レベルに書き換えるためのデータである。より具体的には、例えば、ＳＬＣの場合、読み出したデータを反転させて上書きデータを作成する。読み出したデータを反転させて上書きデータを作成した場合、“Ｅｒ”レベルのデータ（“１”データ）に“０”プログラム動作が行われ、“Ａ”レベルのデータ（“０”データ）に“１”プログラム動作が行われ、対象ページのデータが“Ａ”レベルに揃う。
【０１２０】
なお、ＳＬＣの場合、上書きデータはオール“０”データであっても良い。また、例えば、コントローラ２００が乱数発生回路（不図示）を含み、上書きデータが乱数であっても良い。上書きデータを乱数とした場合、読み出し動作（ステップＳ６及びＳ７）を省略でき、約１／２の“１”データが“０”データに上書きされる。更に、読み出した消去対象データと乱数とによるＡＮＤ演算、ＸＯＲ演算、またはＸＮＯＲ演算を行った結果を上書きデータとしても良く、乱数との演算を複数回繰り返しても良い。演算回数に応じて、“０”データの頻度を調整することができる。例えば、消去対象データの“１”データの割合が約１／２の場合、乱数との１回のＡＮＤ演算により、上書きデータの“１”データの割合が約１／４となる。同様に、乱数とのＫ回（Ｋは１以上の整数）のＡＮＤ演算により、上書きデータの“１”データの割合が（１／２）（Ｋ＋１）となる。
【０１２１】
次に、コントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００に、上書きデータ及び通常書き込み命令を送信する（ステップＳ１０）。ＮＡＮＤ型フラッシュメモリ１００は、通常書き込み動作を実行し、上書きデータを書き込む（ステップＳ１１）。これにより上書きプログラム動作が終了する。
【０１２２】
次に、コントローラ２００は、セキュアＢＬＫ消去動作または上書きプログラム動作が終了すると、論物消去を実行する（ステップＳ１２）。そして、ＮＡＮＤ型フラッシュメモリ１００は、コントローラ２００の指示に基づき、ルックアップテーブルＬＵＴを更新する（ステップＳ１３）。より具体的には、ＮＡＮＤ型フラッシュメモリ１００は、消去対象の論理アドレスを消去し、セキュア消去に関する情報を更新する。
【０１２３】
１．６．２  上書きデータ作成の具体例について
次に、上書きデータ作成の具体例について、図１３を用いて説明する。
【０１２４】
図１３に示すように、例えば消去対象ページのデータが１１１１００００…であった場合、コントローラ２００は、消去対象ページのデータが上位レベル（ＳＬＣの場合、“Ａ”レベル）に揃うように、すなわちオール“０”データになるように、上書きデータを作成する。より具体的には、コントローラ２００は、消去対象データを反転させて、データ００００１１１１…を作成する。そして、作成した上書きデータを書き込むことにより、消去対象ページのデータは、００００００００…となる。  
１．６．３  セキュア消去における閾値分布の具体例について
次に、セキュア消去における閾値分布の具体例について２つの例を示す。
【０１２５】
１．６．３．１  第１例
第１例として、上書きプログラム動作の例について、図１４を用いて説明する。
【０１２６】
図１４に示すように、例えば、１つのブロックＢＬＫにページ００からページＦＦまで２５６個のページが含まれており、ページＡＡがセキュア消去対象である場合、コントローラ２００は、上書きプログラム動作を選択する。例えば、上書きプログラム動作前には、ページＡＡに“１”データと“０”データが約１／２ずつ含まれている。上書きプログラム動作より、“１”データを保持するメモリセルトランジスタＭＴには“０”データが書き込まれる。このため、上書きプログラム動作後、ページＡＡに対応するほぼ全てのメモリセルトランジスタＭＴは“０”データを保持するようになる。すなわち、高い閾値電圧レベルにデータが統合される。これにより、元のデータを読み出すことができなくなる。
【０１２７】
１．６．３．２  第２例
次に、第２例として、セキュアＢＬＫ消去動作の例について、図１５を用いて説明する。
【０１２８】
図１５に示すように、例えば、１つのブロックＢＬＫ全体がセキュア消去対象である場合、コントローラ２００は、セキュアＢＬＫ消去動作を選択する。ＮＡＮＤ型フラッシュメモリ１００は、セキュアＢＬＫ消去命令を受信すると、コピープログラム動作の後、プリプログラム動作を実行する。プリプログラム動作により“１”データを保持していたメモリセルトランジスタＭＴの閾値電圧が上昇する。これにより、例えば、“１”データを保持していた１部のメモリセルトランジスタＭＴは、電圧ＡＶ以上の高い閾値電圧、すなわち“０”データを保持する。プリプログラム動作により、低いレベルのデータ（“１”データ）の閾値分布が上昇して、高いレベルのデータ（“０”データ）の閾値分布に近づき、一部が重なる。これにより、消去対象データにおける“１”データと“０”データとが区別しにくくなる。その後、消去電圧印加動作が実行されメモリセルトランジスタＭＴの閾値電圧が低下する。これにより、例えば、１部のメモリセルトランジスタＭＴは、電圧ＡＶ未満の閾値電圧、すなわち “１”データを保持する。消去電圧印加動作により、２つレベルの閾値分布の重なりが更に大きくなり、消去対象データにおける“１”データと“０”データの区別が更に困難となる。
【０１２９】
１．７  本実施形態に係る効果について
本実施形態に係る構成であれば、メモリシステムの処理能力を向上できる。本効果につき、詳述する。
【０１３０】
セキュア消去では、物理的なデータの消去が求められる。しかし、ＮＡＮＤ型フラッシュメモリにおいては、消去対象データを含むブロックＢＬＫ全体のデータを消去する場合、非消去対象データに対するコピープログラム動作が必要となる。非消去対象データのデータ量(ページ数)が多いと、コピープログラム動作の回数が増え、消去動作の期間が長くなる場合がある。また、消去動作は、読み出し動作や書き込み動作と比較すると動作期間が比較的長くなる傾向がある。従って、セキュア消去により、メモリシステムの処理能力は低下する傾向にある。
【０１３１】
これに対し、本実施形態に係る構成であれば、セキュア消去における消去動作の代替処理として、消去対象データに対して上書きプログラム動作を実行することができる。上書きプログラム動作により、消去対象データの上書き（書き換え）を行い、上位レベルにデータを統合させることにより、消去対象のデータを正しく読み出すことが困難となり、消去対象データのセキュア性を確保できる。よって、コピープログラム動作を含む消去動作を省略できるため、セキュア消去を高速化でき、メモリシステムの処理能力を向上できる。
【０１３２】
更に、本実施形態に係る構成であれば、セキュア消去を目的としたセキュアＢＬＫ消去動作を実行できる。セキュアＢＬＫ消去動作では、消去電圧印加動作の前にプリプログラム動作を行うことによりデータをランダマイズし、異なるレベルのデータをマージすることができる。よって、消去対象データのセキュア性を向上できる。また、セキュアＢＬＫ消去動作にプリプログラム動作を追加することによりセキュア性が向上するため、全てのデータを“Ｅｒ”レベルまで消去する必要が無くなる。このため、消去ベリファイを省略できる。よって、セキュア消去を高速化でき、メモリシステムの処理能力を向上できる。
【０１３３】
更に、本実施形態に係る構成であれば、コントローラ２００は、上書きプログラム動作に必要な動作期間とセキュアＢＬＫ消去動作に必要な動作期間を見積もることができる。更に、コントローラ２００は、上書きプログラム動作の見積もり動作期間と、セキュアＢＬＫ消去動作の見積もり動作期間とを比較し、動作期間が短い動作を選択することができる。これにより、セキュア消去の効率を改善でき、メモリシステムの処理能力を向上できる。
【０１３４】
更に、本実施形態に係る構成であれば、コントローラ２００は、消去対象データを読み出し、消去対象データに基づいて上書き用データを作成することができる。
【０１３５】
更に、本実施形態に係る構成であれば、乱数を用いた演算により上書きデータを作成できる。この場合、消去対象データの一部が書き換えられるため、データを“１”データと“０”データとに分散させることができる。これにより、データが“１”データまたは”０”データに統一されることによる他のページへの影響を低減できる。
【０１３６】
更に、本実施形態に係る構成であれば、セキュア消去における消去動作を省略できる。このため、書き込みと消去との繰り返しによるメモリセルトランジスタＭＴの特性の劣化を抑制できる。更に、書き込みと消去との繰り返しに対する保証回数に到達するまでの実効的な使用回数を増やすことができる。
【０１３７】
２．第２実施形態
次に、第２実施形態について説明する。第２実施形態では、上書きプログラム動作において、消去対象データの読み出しを省略する場合について説明する。以下、第１実施形態と異なる点についてのみ説明する。
【０１３８】
２．１  書き込み動作について
書き込み動作について説明する。本実施形態に係るＮＡＮＤ型フラッシュメモリ１００における書き込み動作は、第１実施形態で説明した通常書き込み動作、コピープログラム動作、及びプリプログラム動作に加えて、書き込みデータに関わらず閾値電圧レベルが最上位レベルのデータを書き込む動作（以下、「最上位書き込み動作」と呼ぶ）を含む。より具体的には、シーケンサ１５は、コントローラ２００から最上位書き込み命令を受信すると、書き込みデータに関わらず、データレジスタ２１を操作して、対象となるメモリセルトランジスタＭＴの閾値電圧レベルが最上位レベル（ＳＬＣの場合は、“Ａ”レベル）となるように書き込み動作を行う。
【０１３９】
２．２  通常書き込み動作における各種信号の送受信について
次に、通常書き込み動作における各種信号の送受信について、図１６を用いて説明する。
【０１４０】
図１６に示すように、まず、コントローラ２００は、チップイネーブル信号ＣＥｎを“Ｌ”レベルにしてアサートする。
【０１４１】
次に、コントローラ２００は、ライトイネーブル信号ＷＥｎをトグルし、通常書き込み動作を実行することを通知するコマンド“８０ｈ”をＮＡＮＤ型フラッシュメモリ１００に送信するとともに、コマンドラッチイネーブル信号ＣＬＥを“Ｈ”レベルにしてアサートする。
【０１４２】
次に、コントローラ２００は、ライトイネーブル信号ＷＥｎをトグルし、アドレス“ＡＤＤ”を送信すると共に、アドレスラッチイネーブル信号ＡＬＥを“Ｈ”レベルにしてアサートする。なお、図１６の例では、カラムアドレスＣＡを２サイクル送信した後、ロウアドレスＲＡを３サイクル送信する場合を示しているが、カラムアドレス及びロウアドレスのサイクルは任意に設定可能である。
【０１４３】
次に、コントローラ２００は、ライトイネーブル信号ＷＥｎをトグルするとともに、書き込みデータＷＤを必要なサイクル数送信する。
【０１４４】
次に、コントローラ２００は、ライトイネーブル信号ＷＥｎをトグルし、書き込み実行を指示するライトコマンド“１０ｈ”を送信すると共に、コマンドラッチイネーブル信号ＣＬＥを“Ｈ”レベルにしてアサートする。ライトコマンド“１０ｈ”に応答して、ＮＡＮＤ型フラッシュメモリ１００は、書き込み動作を開始し、ビジー状態となる（Ｒ／Ｂｎ＝“Ｌ”）。そして、メモリセルアレイ１８への書き込みが終了すると、レディ／ビジー信号Ｒ／Ｂｎは“Ｈ”レベルとされる。
【０１４５】
２．３  最上位書き込み動作における各種信号の送受信について
次に、最上位書き込み動作における各種信号の送受信について、図１７を用いて説明する。以下、図１６と異なる点についてのみ説明する。
【０１４６】
図１７に示すように、図１６で説明したコマンド“８０ｈ”の代わりに、最上位書き込み動作を実行することを通知するコマンド“８Ｆｈ”をＮＡＮＤ型フラッシュメモリ１００に送信する。他の信号は、図１６と同じである。なお、書き込みデータＲＤを省略しても良い。
【０１４７】
２．４  メモリシステムにおけるセキュア消去の流れについて
次に、メモリシステムにおけるセキュア消去の流れについて、図１８を用いて説明する。
【０１４８】
図１８に示すように、ステップＳ１〜Ｓ６までの動作は、第１実施形態の図１２と同じである。
【０１４９】
コントローラ２００は、上書きプログラム動作を選択する（ステップＳ６）と、ダミーデータを作成するとともに、ＮＡＮＤ型フラッシュメモリ１００に最上位書き込み命令を送信する（ステップＳ２０）。ＮＡＮＤ型フラッシュメモリ１００は、最上位書き込み動作を実行し、書き込みデータに関わらず、最上位レベル（ＳＣＬの場合“Ａ”レベル）のデータを書き込む（ステップＳ２１）。これにより上書きプログラム動作が終了する。
【０１５０】
次に、コントローラ２００は、セキュアＢＬＫ消去動作または最上位書き込み動作が終了すると、論物消去を実行する（ステップＳ１２）。そして、ＮＡＮＤ型フラッシュメモリ１００は、コントローラ２００の指示に基づき、ルックアップテーブルＬＵＴを更新する（ステップＳ１３）。
【０１５１】
２．５  ＮＡＮＤ型フラッシュメモリにおける通常書き込み動作及び最上位書き込み動作の流れについて
次に、ＮＡＮＤ型フラッシュメモリ１００における通常書き込み動作及び最上位書き込み動作の流れについて、図１９を用いて説明する。
【０１５２】
図１９に示すように、ＮＡＮＤ型フラッシュメモリ１００は、コントローラ２００から書き込み命令を受信する（ステップＳ２０１）。
【０１５３】
書き込み命令が通常書き込み動作の場合（ステップＳ２０２＿Ｙｅｓ）、シーケンサ１５は、通常書き込み動作を選択する（ステップＳ２０３）。
【０１５４】
シーケンサ１５は、書き込みデータに基づいてプログラム動作を実行する（ステップＳ２０４）。
【０１５５】
次に、シーケンサ１５は、プログラムベリファイ動作を実行する（ステップＳ２０５）。より具体的には、シーケンサ１５は、ＳＣＬの場合、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＡ以上か確認する。
【０１５６】
プログラムベリファイ動作をパスした場合（ステップＳ２０６＿Ｙｅｓ）、シーケンサ１５は、通常書き込み動作を終了させる。
【０１５７】
また、プログラムベリファイ動作をフェイルした場合（ステップＳ２０６＿Ｎｏ）、シーケンサ１５は、プログラムループが予め設定された規定回数に達したか確認する（ステップＳ２０７）。
【０１５８】
プログラムループが規定回数に達している場合（ステップＳ２０７＿Ｙｅｓ）、シーケンサ１５は、通常書き込み動作を終了させ、通常書き込み動作が正常に終了しなかった旨をコントローラ２００に報告する。
【０１５９】
プログラムループが規定回数に達していない場合（ステップＳ２０７＿Ｎｏ）、シーケンサ１５は、ステップＳ２０４に戻り、再度、プログラム動作を実行する。
【０１６０】
他方で、書き込み命令が最上位書き込み命令である場合（ステップＳ２０２＿Ｙｅｓ）、シーケンサ１５は、最上位書き込み動作を選択する（ステップＳ２０８）。
【０１６１】
シーケンサ１５は、書き込みデータによらず、データレジスタ２１が例えば“０”データを保持するように操作し、メモリセルトランジスタＭＴの閾値電圧レベルが最上位レベルとなるようにプログラム動作を実行する（ステップＳ２０９）。
【０１６２】
次に、シーケンサ１５は、ステップＳ２０５と同様に、プログラムベリファイ動作を実行する（ステップＳ２１０）。
【０１６３】
プログラムベリファイ動作をパスした場合（ステップＳ２１１＿Ｙｅｓ）、シーケンサ１５は、最上位書き込み動作を終了させる。
【０１６４】
また、プログラムベリファイ動作をフェイルした場合（ステップＳ２１１＿Ｎｏ）、シーケンサ１５は、プログラムループが予め設定された規定回数に達したか確認する（ステップＳ２１２）。
【０１６５】
プログラムループが規定回数に達している場合（ステップＳ２１２＿Ｙｅｓ）、シーケンサ１５は、最上位書き込み動作を終了させ、最上位書き込み動作が正常に終了しなかった旨をコントローラ２００に報告する。
【０１６６】
プログラムループが規定回数に達していない場合（ステップＳ２１２＿Ｎｏ）、シーケンサ１５は、ステップＳ２０９に戻り、再度、プログラム動作を実行する。
【０１６７】
２．６  本実施形態に係る効果について
本実施形態に係る構成であれば、第１実施形態と同様の効果を得ることができる。
【０１６８】
更に、本実施形態に係る構成であれば、上書きプログラム動作における消去対象データの読み出しを省略できる。従って、セキュア消去をさらに高速化でき、メモリシステムの処理能力を向上できる。
【０１６９】
３．第３実施形態
次に第３実施形態について説明する。第３実施形態では、メモリセルトランジスタＭＴが４値（２ビットのデータ）を保持する場合について説明する。以下、第１及び第２実施形態と異なる点についてのみ説明する。
【０１７０】
３．１  メモリセルトランジスタの閾値分布について  
次に、本実施形態に係るメモリセルトランジスタＭＴの取り得る閾値分布について、図２０を用いて説明する。以下、４値のデータを保持するメモリセルトランジスタをＭＬＣ（multi-level-cell）と呼ぶ。
【０１７１】
図示するように、各々のメモリセルトランジスタＭＴの閾値電圧は、離散的な４個の分布のいずれかに含まれる値を取る。以下、４個の分布を閾値電圧の低い順にそれぞれ、“Ｅｒ”レベル、“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベルと呼ぶ。書き込み動作において、各閾値分布に対応するベリファイ電圧をＡＶ、ＢＶ、ＣＶとする。すると、これらの電圧値は、ＡＶ＜ＢＶ＜ＣＶの関係にある。
【０１７２】
より具体的には、“Ｅｒ”レベルに含まれる閾値電圧は電圧ＡＶ未満である。“Ａ”レベルに含まれる閾値電圧は、電圧ＡＶ以上であり、且つ電圧ＢＶ未満である。“Ｂ”レベルに含まれる閾値電圧は、電圧ＢＶ以上であり、且つ電圧ＣＶ未満である。“Ｃ”レベルに含まれる閾値電圧は、電圧ＣＶ以上である。従って、ＭＬＣにおける最上位レベルは“Ｃ”レベルとなる。
【０１７３】
各メモリセルトランジスタＭＴは、４個の閾値分布のいずれかを有することで、２ビットのデータを保持できる。以下、２ビットのデータをそれぞれ、上位ビット及び下位ビットと呼ぶ。また、メモリセルグループＭＣＧに一括して書き込まれる（または読み出される）上位ビットの集合を上位ページと呼び、下位ビットの集合を下位ページと呼ぶ。
【０１７４】
図２０の例では、各閾値分布に含まれるメモリセルトランジスタＭＴに対して、以下に示すようにデータを割り付ける。
【０１７５】
“Ｅｒ”レベル：“１１”（“上位ビット／下位ビット”）データ
“Ａ”レベル：“０１”データ
“Ｂ”レベル：“００”データ
“Ｃ”レベル：“１０”データ
なお、データの割り付けは任意に設定可能である。
【０１７６】
３．２  メモリシステムにおけるセキュア消去の流れについて
次に、メモリシステムにおけるセキュア消去の流れについて、図２１〜図２３を用いて説明する。図２１は、メモリシステムにおけるセキュア消去のフローチャートであり、図２２及び図２３は、上書きデータの作成を示す図である。
【０１７７】
図２１に示すように、ステップＳ１〜Ｓ６までの動作は、第１実施形態の図１２と同じである。
【０１７８】
コントローラ２００は、上書きプログラム動作を選択する（ステップＳ６）と、消去対象ページを含むメモリセルグループＭＣＧにおいて、他の非消去対象ページのデータを確認する（ステップＳ３０）。より具体的には、例えば、メモリセルグループＭＣＧの下位ページがセキュア消去の対象である場合、コントローラ２００は、ルックアップテーブルＬＵＴを参照し、同じメモリセルグループＭＣＧの上位ページ（非消去対象ページ）を確認する。そして、コントローラ２００は、上位ページが有効データを含む状態か、有効データを含まない状態かを確認する。有効データを含まない状態には、上位ページの書き込みが行われていない場合、すでに上書きプログラム動作により上位ページのデータが上書きされ無効データとなっている場合、下位及び上位ページが消去対象である場合が含まれる。
【０１７９】
非消去対象ページが有効データを含む場合（ステップＳ３１＿Ｙｅｓ）、コントローラ２００は、非消去対象ページのデータを読み出すために、ＮＡＮＤ型フラッシュメモリ１００に読み出し命令を送信する（ステップＳ７）。ＮＡＮＤ型フラッシュメモリ１００は、読み出し命令に応じて、非消去対象ページのデータを読み出し、コントローラ２００に送信する（ステップＳ８）。
【０１８０】
次に、コントローラ２００は、読み出した非消去対象ページのデータに基づいて、上書きデータを作成する（ステップＳ９）。ＭＬＣの場合、コントローラ２００は、非消去対象のビットが同じ２つのレベルのデータにおいて、データが上位の閾値電圧レベルに揃うように上書きデータを作成する。
【０１８１】
図２２に示すように、より具体的には、例えば、下位ページが消去対象の場合、“Ｅｒ”レベルの“１１”データ及び“Ｃ”レベルの“１０”データは非消去対象の上位ビットが同じ“１”データなので、 下位レベルにある“Ｅｒ”レベルの“１１”データを上位レベルの“Ｃ”レベルの“１０”データに加工して（書き換えて）上書きデータを作成する。なお、“Ｃ”レベルの“１０”データは、そのまま加工しない。また、“Ａ”レベルの“０１”データ及び“Ｂ”レベルの“００”データは非消去対象の上位ビットが同じ“０”データなので、下位レベルにある“Ａ”レベルの“０１”データを上位レベルの“Ｂ”レベルの“００”データに加工して上書きデータを作成する。なお、“Ｂ”レベルの“００”データは、そのまま加工しない。すなわち、コントローラ２００は、“Ｅｒ”及び“Ａ”レベルの下位ビットのデータを反転させて上書きデータを作成する。
【０１８２】
図２３に示すように、例えば、上位ページが消去対象の場合、“Ｅｒ”レベルの“１１”データ及び“Ａ”レベルの“０１”のデータは非消去対象の下位ビットが同じ“１”データなので、 下位レベルにある“Ｅｒ”レベルの“１１”データを上位レベルの“Ａ”レベルの“０１”データに加工して上書きデータを作成する。なお、“Ａ”レベルの“０１”データは、そのまま加工しない。また、“Ｂ”レベルの“００”データ及び“Ｃ”レベルの“１０”データは非消去対象の下位ビットが同じ“０”データなので、下位レベルにある“Ｂ”レベルの“００”データを上位レベルの“Ｃ”レベルの“１０”データに加工して上書きデータを作成する。なお、“Ｃ”レベルの“１０”データは、そのまま加工しない。すなわち、コントローラ２００は、“Ｅｒ”及び“Ｂ”レベルの上位ビットのデータを反転させて上書きデータを作成する。なお、第１実施形態と同様に、乱数を用いて上書きデータを作成しても良い。
【０１８３】
図２１に示すように、非消去対象ページが有効データを含まない場合（ステップＳ３１＿Ｎｏ）、コントローラ２００は、データの読み出しを行わずに、上書きデータを作成する（ステップＳ９）。より具体的には、コントローラ２００は、最上位レベルである“Ｃ”レベル（“１０”データ）に書き換えるため、オール“１０”となる上書きデータを作成する。
【０１８４】
次に、コントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００に上書きデータ及び通常書き込み命令を送信する（ステップＳ１０）。ＮＡＮＤ型フラッシュメモリ１００は、通常書き込み動作を実行し、上書きデータを書き込む（ステップＳ１１）。これにより上書きプログラム動作が終了する。
【０１８５】
次に、コントローラ２００は、セキュアＢＬＫ消去動作または上書きプログラム動作が終了すると、論物消去を実行する（ステップＳ１２）。そして、ＮＡＮＤ型フラッシュメモリ１００は、コントローラ２００の指示に基づき、ルックアップテーブルＬＵＴを更新する（ステップＳ１３）。
【０１８６】
３．３  セキュア消去の具体例について
次に、セキュア消去の具体例について４つの例を示す。
【０１８７】
３．３．１  第１例
まず、第１例として、下位ページが消去対象であり、上位ページに有効データが含まれている場合の上書きプログラム動作の例を、図２４を用いて説明する。
【０１８８】
図２４に示すように、例えば、ページＡＡが下位ページに相当し、セキュア消去対象である場合、コントローラ２００は、同じメモリセルグループＭＣＧの上位ページＡＢを確認する。そして、上位ページＡＢが有効データを含んでいる場合、コントローラ２００は下位ページの上書きプログラム動作を実行する。
【０１８９】
例えば、上書きプログラム動作前には、メモリセルグループＭＣＧには“Ｅｒ”レベルの“１１”データ、“Ａ”レベルの“０１”データ、“Ｂ”レベルの“００”データ、及び“Ｃ”レベルの“１０”データがそれぞれ約１／４含まれており、それぞれが分離した閾値分布を有している。下位ページの上書きプログラム動作を実行することにより、“Ｅｒ”レベルの“１１”データは、非消去対象の上位ビットが同じ“１”データである“Ｃ”レベルの“１０”データに上書きされ、“Ａ”レベルの“０１”データは、非消去対象の上位ビットが同じ“０”データである“Ｂ”レベルの“００”データに上書きされる。これにより、下位ページのデータを正しく読み出すことができなくなる。
【０１９０】
３．３．２  第２例
次に、第２例として、上位ページが消去対象であり、下位ページに有効データが含まれている場合の上書きプログラム動作の例を、図２５を用いて説明する。
【０１９１】
図２５に示すように、例えば、ページＡＢが上位ページに相当し、セキュア消去対象である場合、コントローラ２００は、同じメモリセルグループＭＣＧの下位ページＡＡを確認する。そして、下位ページＡＡが有効データを含んでいる場合、コントローラ２００は上位ページの上書きプログラム動作を実行する。
【０１９２】
例えば、上書きプログラム動作前には、メモリセルグループＭＣＧには“Ｅｒ”レベルの“１１”データ、“Ａ”レベルの“０１”データ、“Ｂ”レベルの“００”データ、及び“Ｃ”レベルの“１０”データがそれぞれ約１／４含まれており、それぞれが分離した閾値分布を有している。上位ページの上書きプログラム動作を実行することにより、“Ｅｒ”レベルの“１１”データは、非消去対象の下位ビットが同じ“１”データである“Ａ”レベルの“０１”データに上書きされ、“Ｂ”レベルの“００”データは、非消去対象の下位ビットが同じ“０”データである“Ｃ”レベルの“１０”データに上書きされる。これにより、上位ページのデータを正しく読み出すことができなくなる。
【０１９３】
３．３．３  第３例
次に、第３例として、下位ページの上書きプログラム動作を実行後に、上位ページの上書きプログラム動作を実行する場合の例を、図２６を用いて説明する。
【０１９４】
図２６に示すように、第１例で説明した下位ページの上書きプログラム動作を実行した後、同じメモリセルグループＭＣＧの上位ページＡＢがセキュア消去対象となった場合、コントローラ２００は、最上位レベルへの上書きプログラム動作を実行する。より具体的には、コントローラ２００は、非消去対象ページに有効データがないため、非消去対象ページの読み出しを行わずに、最上位レベルに対応した上書きデータ（オール“１０”データ）を作成し、通常書き込み動作を行う。
【０１９５】
例えば、上書きプログラム動作前には、メモリセルグループＭＣＧには “Ｂ”レベルの“００”データ及び“Ｃ”レベルの“１０”データが含まれている。最上位レベルへの上書きプログラム動作を実行することにより、“Ｂ”レベルの“００”データは、最上位の“Ｃ”レベルの“１０”データに上書きされる。これにより、下位及び上位ページのデータを正しく読み出すことができなくなる。
【０１９６】
３．３．４  第４例
次に、第４例として、下位及び上位ページが消去対象の場合の上書きプログラム動作の例を、図２７を用いて説明する。
【０１９７】
図２７に示すように、下位ページＡＡ及び上位ページＡＢがセキュア消去対象となった場合、第３例と同様に、コントローラ２００は、最上位レベルに対応した上書きデータを作成し、通常プログラム動作を実行する。最上位レベルへの上書きプログラム動作を実行することにより、“Ｅｒ”レベルの“１１”データ、“Ａ”レベルの“０１”データ、及び“Ｂ”レベルの“００”データは、最上位の“Ｃ”レベルの“１０”データに上書きされる。これにより、下位及び上位ページのデータを正しく読み出すことができなくなる。
【０１９８】
３．４  本実施形態に係る効果について
本実施形態に係る構成であれば、第１実施形態と同様の効果を得ることができる。
【０１９９】
４．第４実施形態
次に、第４実施形態について説明する。第４実施形態は、第２実施形態と第３実施形態を組み合わせた場合、すなわち、ＭＬＣに最上位書き込み動作を適用した場合について説明する。以下、第１乃至第３実施形態と異なる点についてのみ説明する。
【０２００】
４．１  メモリシステムにおけるセキュア消去の流れについて
メモリシステムにおけるセキュア消去の流れについて、図２８を用いて説明する。
【０２０１】
図２１に示すように、ステップＳ１〜Ｓ６、及びステップＳ３０までの動作は、第３実施形態の図２１と同じである。
【０２０２】
非消去対象ページが有効データを含む場合（ステップＳ３１＿Ｙｅｓ）、第３実施形態の図２１のステップＳ７〜Ｓ１１と同様に、コントローラ２００は、読み出しデータに基づいて上書きデータを作成し（ステップＳ９）、ＮＡＮＤ型フラッシュメモリ１００に上書きデータに基づいた通常書き込み命令を送信する（ステップＳ１０）。ＮＡＮＤ型フラッシュメモリ１００は、通常書き込み動作を実行し、上書きデータを書き込む（ステップＳ１１）。
【０２０３】
非消去対象ページが有効データを含まない場合（ステップＳ３１＿Ｎｏ）、コントローラ２００は、ダミーデータを作成するとともに、ＮＡＮＤ型フラッシュメモリ１００に最上位書き込み命令を送信する（ステップＳ２０）。ＮＡＮＤ型フラッシュメモリ１００は、最上位書き込み動作を実行し、書き込みデータに関わらず、最上位レベル（ＭＣＬの場合“Ｃ”レベル）のデータを書き込む（ステップＳ２１）。
【０２０４】
次に、コントローラ２００は、セキュアＢＬＫ消去動作または上書きプログラム動作（通常書き込み動作または最上位書き込み動作）が終了すると、論物消去を実行する（ステップＳ１２）。そして、ＮＡＮＤ型フラッシュメモリ１００は、コントローラ２００の指示に基づき、ルックアップテーブルＬＵＴを更新する（ステップＳ１３）。
【０２０５】
４．２  本実施形態に係る効果について
本実施形態に係る構成であれば、第１乃至第３実施形態と同様の効果を得ることができる。
【０２０６】
５．第５実施形態
次に、第５実施形態について説明する。第５実施形態は、メモリセルトランジスタＭＴが８値（３ビットのデータ）を保持する場合について説明する。以下、第１及び第２実施形態と異なる点についてのみ説明する。
【０２０７】
５．１  メモリセルトランジスタの閾値分布について  
次に、本実施形態に係るメモリセルトランジスタＭＴの取り得る閾値分布について、図２９を用いて説明する。以下、８値のデータを保持するメモリセルトランジスタをＴＬＣ（triple-level-cell）と呼ぶ。
【０２０８】
図示するように、各々のメモリセルトランジスタＭＴの閾値電圧は、離散的な例えば８個の分布のいずれかに含まれる値を取る。以下、８個の分布を閾値電圧の低い順にそれぞれ、“Ｅｒ”レベル、“Ａ”レベル、“Ｂ”レベル、“Ｃ”レベル、“Ｄ”レベル、“Ｅ”レベル、“Ｆ”レベル、及び“Ｇ”レベルと呼ぶ。書き込み動作において、各閾値分布に対応するベリファイ電圧をＡＶ、ＢＶ、ＣＶ、ＤＶ、ＥＶ、ＦＶ、ＧＶとする。すると、これらの電圧値は、ＡＶ＜ＢＶ＜ＣＶ＜ＤＶ＜ＥＶ＜ＦＶ＜ＧＶの関係にある。
【０２０９】
より具体的には、““Ｅｒ”レベルに含まれる閾値電圧は電圧ＡＶ未満である。“Ａ”レベルに含まれる閾値電圧は、電圧ＡＶ以上であり、且つ電圧ＢＶ未満である。“Ｂ”レベルに含まれる閾値電圧は、電圧ＢＶ以上であり、且つ電圧ＣＶ未満である。“Ｃ”レベルに含まれる閾値電圧は、電圧ＣＶ以上であり、且つ電圧ＤＶ未満である。“Ｄ”レベルに含まれる閾値電圧は、電圧ＤＶ以上であり、且つ電圧ＥＶ未満である。“Ｅ”レベルに含まれる閾値電圧は、電圧ＥＶ以上であり、且つ電圧ＦＶ未満である。“Ｆ”レベルに含まれる閾値電圧は、電圧ＦＶ以上であり、且つ電圧ＧＶ未満である。そして、“Ｇ”レベルに含まれる閾値電圧は、電圧ＧＶ以上である。従って、ＴＣＬにおける最上位レベルは“Ｇ”レベルとなる。
【０２１０】
各メモリセルトランジスタＭＴは、８個の閾値分布のいずれかを有することで、３ビットのデータを保持できる。以下、３ビットのデータをそれぞれ、上位ビット、中位ビット、及び下位ビットと呼ぶ。また、メモリセルグループＭＣＧに一括して書き込まれる（または読み出される）上位ビットの集合を上位ページ、中位ビットの集合を中位ページ、下位ビットの集合を下位ページと呼ぶ。
【０２１１】
図２９の例では、各閾値分布に含まれるメモリセルトランジスタＭＴに対して、以下に示すようにデータを割り付ける。
【０２１２】
“Ｅｒ”レベル：“１１１”（“上位ビット／中位ビット／下位ビット”）データ
“Ａ”レベル：“１１０”データ
“Ｂ”レベル：“１００”データ
“Ｃ”レベル：“０００”データ
“Ｄ”レベル：“０１０”データ
“Ｅ”レベル：“０１１”データ
“Ｆ”レベル：“００１”データ
“Ｇ”レベル：“１０１”データ
なお、データの割り付けは任意に設定可能である。
【０２１３】
５．２  メモリシステムにおけるセキュア消去の流れについて
次に、メモリシステムにおけるセキュア消去の流れについて、説明する。本実施形態におけるセキュア消去の流れは、第３実施形態の図２１または、第４実施形態の図２８と同様である。すなわち、メモリセルトランジスタＭＴが４ビット以上のデータを保持する場合、セキュア消去の流れは同様となる。
【０２１４】
５．３  セキュア消去の具体例について
次に、セキュア消去の具体例について２つの例を示す。
【０２１５】
５．３．１  第１例
まず、第１例として、下位ページが消去対象であり、中位ページ及び上位ページに有効データが含まれている場合の上書きプログラム動作の例を、図３０及び図３１を用いて説明する。
【０２１６】
図３０に示すように、下位ページが消去対象の場合、“Ｅｒ”レベルの“１１１”データ及び“Ａ”レベルの“１１０”データは、非消去対象の中位及び上位ビットが同じ“１１”データなので、 下位レベルにある“Ｅｒ”レベルの“１１１”データを上位レベルにある“Ａ”レベルの“１１０”データに加工して上書きデータを作成する。また、“Ｂ”レベルの“１００”データ及び“Ｇ”レベルの“１０１”データは非消去対象の中位及び上位ビットが同じ“１０”データなので、下位レベルにある“Ｂ”レベルの“１００”データを上位レベルにある“Ｇ”レベルの“１０１”データに加工して上書きデータを作成する。また、“Ｃ”レベルの“０００”データ及び“Ｆ”レベルの“００１”データは非消去対象の中位及び上位ビットが同じ“００”データなので、下位レベルにある“Ｃ”レベルの“０００”データを上位レベルにある“Ｆ”レベルの“００１”データに加工して上書きデータを作成する。また、“Ｄ”レベルの“０１０”データ及び“Ｅ”レベルの“０１１”データは非消去対象の中位及び上位ビットが同じ“０１”データなので、下位レベルにある“Ｄ”レベルの“０１０”データを上位レベルにある“Ｅ”レベルの“０１１”データに加工して上書きデータを作成する。なお、“Ａ”、“Ｅ”、“Ｆ”、及び“Ｇ”レベルのデータは、そのまま加工しない。すなわち、コントローラ２００は、“Ｅｒ”、“Ｂ”、“Ｃ”、及び“Ｄ”レベルの下位ビットのデータを反転させて上書きデータを作成する。
【０２１７】
なお、中位ページが消去対象である場合、非消去対象の中位及び上位ビットが同じ２つのデータにおいて、下位レベルのデータを上位レベルのデータに加工して上書きデータを作成する。上位ページが消去対象である場合も同様に、非消去対象の下位及び中位ビットが同じ２つのデータにおいて、下位レベルのデータを上位レベルのデータに加工して上書きデータを作成する。
【０２１８】
次に、上書きプログラム動作による閾値分布の変動について説明する。
【０２１９】
図３１に示すように、例えば、下位ページＡＡがセキュア消去対象である場合、コントローラ２００は、同じメモリセルグループＭＣＧの中位ページＡＢ及び上位ページＡＣを確認する。そして、中位ページＡＢ及び上位ページＡＣが有効データを含んでいる場合、コントローラ２００は下位ページの上書きプログラム動作を実行する。
【０２２０】
例えば、上書きプログラム動作前、メモリセルグループＭＣＧには“Ｅｒ”レベルの“１１１”データ、“Ａ”レベルの“１１０”データ、“Ｂ”レベルの“１００”データ、“Ｃ”レベルの“０００”データ、“Ｄ”レベルの“０１０”データ、“Ｅ”レベルの“０１１”データ、“Ｆ”レベルの“００１”データ、及び“Ｇ”レベルの“１０１”データがそれぞれ約１／８含まれており、それぞれが分離した閾値分布を有している。下位ページの上書きプログラム動作を実行することにより、“Ｅｒ”レベルの“１１１”データは、非消去対象の中位及び上位ビットが同じ“１１”データである“Ａ”レベルの“１１０”データに上書きされる。“Ｂ”レベルの“１００”データは、非消去対象の中位及び上位ビットが同じ“１０”データである“Ｇ”レベルの“１０１”データに上書きされる。“Ｃ”レベルの“０００”データは、非消去対象の中位及び上位ビットが同じ“００”データである“Ｆ”レベルの“００１”データに上書きされる。そして、“Ｄ”レベルの“０１０”データは、非消去対象の中位及び上位ビットが同じ“０１”データである“Ｅ”レベルの“０１１”データに上書きされる。これにより、下位ページのデータを正しく読み出すことができなくなる。
【０２２１】
５．３．２  第２例
次に、第２例として、下位及び中位ページが消去対象であり、上位ページに有効データが含まれている場合の上書きプログラム動作の例を、図３０及び図３１を用いて説明する。
【０２２２】
図３２に示すように、下位及び中位ページが消去対象の場合、“Ｅｒ”レベルの“１１１”データ、“Ａ”レベルの“１１０”データ、“Ｂ”レベルの“１００”データ、及び“Ｇ”レベルの“１０１”データは、非消去対象の上位ビットが同じ“１”データなので、 下位レベルにある“Ｅｒ”、“Ａ”、及び“Ｂ”レベルのデータを上位レベルにある“Ｇ”レベルの“１０１”データに加工して上書きデータを作成する。また、“Ｃ”レベルの“０００”データ、“Ｄ”レベルの“０１０”データ、“Ｅ”レベルの“０１１”データ、及び“Ｆ”レベルの“００１”データは非消去対象の上位ビットが同じ“０”データなので、下位レベルにある“Ｃ”、“Ｄ”、及び“Ｅ”レベルのデータを上位レベルにある“Ｆ”レベルの“００１”データに加工して上書きデータを作成する。なお、“Ｆ”及び“Ｇ”レベルのデータは、そのまま加工しない。
【０２２３】
なお、下位及び上位ページが消去対象である場合、非消去対象の中位ビットが同じ４つのデータにおいて、下位レベルにある３つのデータを上位レベルのデータに加工して上書きデータを作成する。中位及び上位ページが消去対象である場合も同様に、非消去対象の下位ビットが同じ４つのデータにおいて、下位レベルにある３つのデータを上位レベルのデータに加工して上書きデータを作成する。
【０２２４】
次に、上書きプログラム動作による閾値分布の変動について説明する。
【０２２５】
図３３に示すように、例えば、下位ページＡＡ及び中位ページＡＢがセキュア消去対象である場合、コントローラ２００は、同じメモリセルグループＭＣＧの上位ページＡＣを確認する。そして、上位ページＡＣが有効データを含んでいる場合、コントローラ２００は下位ページの上書きプログラム動作を実行する。
【０２２６】
下位及び中位ページの上書きプログラム動作を実行することにより、“Ｅｒ”レベルの“１１１”データ、“Ａ”レベルの“１１０”データ、及び“Ｂ”レベルの“１００”データは、非消去対象の上位ビットが同じ“１”データである“Ｇ”レベルの“１０１”データに上書きされる。“Ｃ”レベルの“０００”データ、“Ｄ”レベルの“０１０”データ、及び“Ｅ”レベルの“０１１”データは、非消去対象の上位ビットが同じ“０”データである“Ｆ”レベルの“００１”データに上書きされる。これにより、下位及び中位ページのデータを正しく読み出すことができなくなる。
【０２２７】
５．４  本実施形態に係る効果について
本実施形態に係る構成であれば、第１乃至第４実施形態と同様の効果を得ることができる。
【０２２８】
６．変形例
上記実施形態に係るメモリシステムは、メモリセル(MT)を含むメモリセルアレイ(18)を有する半導体記憶装置(100)と、半導体記憶装置を制御し、メモリセルから読み出した第１データに基づいて第２データ(上書きデータ)を作成可能なコントローラ(200)とを含む。コントローラは、外部機器(2)からメモリセルに保持された第１データの物理消去の要求(セキュア消去命令)を受信すると、半導体記憶装置に、消去(セキュアBLK消去動作)命令及び第２データの書き込み(上書きプログラム動作)命令の１つを送信する。
【０２２９】
上記実施形態を適用することにより、処理能力を向上できる半導体記憶装置を提供できる。
【０２３０】
なお、実施形態は上記説明した形態に限定されるものではなく、種々の変形が可能である。
【０２３１】
例えば、上記実施形態において、半導体記憶装置はＮＡＮＤ型フラッシュメモリではなくても良い。論物変換データを用いてデータを管理し、書き込み、読み出し、及び消去動作を行う不揮発性メモリにも適用できる。
更に、上記実施形態における「接続」とは、間に例えばトランジスタあるいは抵抗等、他の何かを介在させて間接的に接続されている状態も含む。
【０２３２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０２３３】
１…メモリシステム、２…ホスト機器、１０…入出力回路、１１…ロジック制御回路、１２…ステータスレジスタ、１３…アドレスレジスタ、１４…コマンドレジスタ、１５…シーケンサ、１６…レディ／ビジー回路、１７…電圧発生回路、１８…メモリセルアレイ、１９…ロウデコーダ、２０…センスアンプ、２１…データレジスタ、２２…カラムデコーダ、３０…半導体基板、３１…ｎ型ウェル、３２…ｐ型ウェル、３３…ｎ＋型拡散層、３４、４０…配線層、３５…半導体層、３６…トンネル絶縁膜、３７…電荷蓄積層、３８…ブロック絶縁膜、３９…コンタクトプラグ、１００…ＮＡＮＤ型フラッシュメモリ、２００…コントローラ、２１０…ホストインターフェイス回路、２２０…内蔵メモリ、２３０…プロセッサ、２４０…バッファメモリ、２５０…ＮＡＮＤインターフェイス回路、２６０…ＥＣＣ回路。
【図１】
2019053805.tif 000003
【図２】
2019053805.tif 000004
【図３】
2019053805.tif 000005
【図４】
2019053805.tif 000006
【図５】
2019053805.tif 000007
【図６】
2019053805.tif 000008
【図７】
2019053805.tif 000009
【図８】
2019053805.tif 000010
【図９】
2019053805.tif 000011
【図１０】
2019053805.tif 000012
【図１１】
2019053805.tif 000013
【図１２】
2019053805.tif 000014
【図１３】
2019053805.tif 000015
【図１４】
2019053805.tif 000016
【図１５】
2019053805.tif 000017
【図１６】
2019053805.tif 000018
【図１７】
2019053805.tif 000019
【図１８】
2019053805.tif 000020
【図１９】
2019053805.tif 000021
【図２０】
2019053805.tif 000022
【図２１】
2019053805.tif 000023
【図２２】
2019053805.tif 000024
【図２３】
2019053805.tif 000025
【図２４】
2019053805.tif 000026
【図２５】
2019053805.tif 000027
【図２６】
2019053805.tif 000028
【図２７】
2019053805.tif 000029
【図２８】
2019053805.tif 000030
【図２９】
2019053805.tif 000031
【図３０】
2019053805.tif 000032
【図３１】
2019053805.tif 000033
【図３２】
2019053805.tif 000034
【図３３】
2019053805.tif 000035