(57)【要約】【課題】動作信頼性を向上できるメモリデバイス及びメモリシステムを提供する。【解決手段】メモリデバイスは、データを記憶する第１メモリセルと、第１メモリセルに接続される第１ワード線と、第１ワード線に電圧を供給する第１回路と、第１回路を制御する第２回路と、第１回路及び第２回路を制御するシーケンサと、を備え、第１メモリセルにデータを書込む場合、シーケンサは条件を満たすか否かを判定し、条件を満たさないと判定する場合、第２回路に、第１電圧を生成させ、条件を満たすと判定する場合、第２回路に、第１電圧よりも高い第２電圧を生成させ、第１回路は、第１電圧または第２電圧に基づいて、第２電圧よりも低い第３電圧を、第１ワード線に供給する。【選択図】図７
2018163723.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する第１メモリセルと、
前記第１メモリセルに接続される第１ワード線と、
前記第１ワード線に電圧を供給する第１回路と、
前記第１回路を制御する第２回路と、
前記第１回路及び前記第２回路を制御するシーケンサと、
を備え、
前記第１メモリセルにデータを書込む場合、
前記シーケンサは条件を満たすか否かを判定し、
前記条件を満たさないと判定する場合、前記第２回路に、第１電圧を生成させ、
前記条件を満たすと判定する場合、前記第２回路に、前記第１電圧よりも高い第２電圧を生成させ、
前記第１回路は、前記第１電圧または前記第２電圧に基づいて、前記第２電圧よりも低い第３電圧を、前記第１ワード線に供給するメモリデバイス。
【請求項２】
前記第１メモリセルにデータを書込む場合におけるプログラム動作の回数を記憶する第１記憶部を更に備え、
前記シーケンサは、前記第１記憶部に記憶された前記プログラム動作の回数が、第１回数以下か否かを判定し、
前記プログラム動作の回数が、第１回数以下ではないと判定する場合、前記第２回路に、第１電圧を生成させ、
前記プログラム動作の回数が、第１回数以下であると判定する場合、前記第２回路に、前記第１電圧よりも高い第２電圧を生成させる
請求項１に記載のメモリデバイス。
【請求項３】
データを記憶する第１メモリセルと、
前記第１メモリセルに接続される第１ワード線と、
前記第１ワード線に電圧を供給する第１回路と、
前記第１回路を制御する第２回路と、
前記第１回路及び前記第２回路を制御するシーケンサと、
を備えるメモリデバイス、及び
前記メモリデバイスを制御するコントローラを備え、
前記コントローラは、
前記第１メモリセルにデータを書込む場合、
条件を満たすか否かを判定し、
前記条件を満たさないと判定する場合、前記第２回路に、第１電圧を生成させ、
前記条件を満たすと判定する場合、前記第２回路に、前記第１電圧よりも高い第２電圧を生成させ、
前記第１回路は、前記第１電圧または前記第２電圧に基づいて、前記第２電圧よりも低い第３電圧を、前記第１ワード線に供給するメモリシステム。
【請求項４】
前記コントローラは、前記第１メモリセルへのデータの書込み及び消去回数を記憶する第２記憶部を更に備え、
前記コントローラは、前記第２記憶部に記憶された前記データの書込み及び消去回数が、第２回数以上か否かを判定し、
前記データの書込み及び消去回数が、第２回数以上ではないと判定する場合、前記第２回路に、第１電圧を生成させ、
前記データの書込み及び消去回数が、第２回数以上であると判定する場合、前記第２回路に、前記第１電圧よりも高い第２電圧を生成させる
請求項３に記載のメモリシステム。
【請求項５】
半導体基板と、
第１ワード線と、
ゲートが前記第１ワード線に接続され、一端が前記半導体基板に接続される第１メモリセルと、
前記半導体基板に電圧を供給する第３回路と、
前記第３回路を制御する第４回路と、
前記第３回路及び前記第４回路を制御するシーケンサと、
を備え、
前記第１メモリセルのデータを消去する場合、
前記シーケンサは条件を満たすか否かを判定し、
前記条件を満たさないと判定する場合、前記第４回路に、第４電圧を生成させ、
前記条件を満たすと判定する場合、前記第４回路に、前記第４電圧よりも高い第５電圧を生成させ、
前記第３回路は、前記第４電圧または前記第５電圧に基づいて、前記第４電圧よりも低い第６電圧を、前記半導体基板に供給するメモリデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、メモリデバイス及びメモリシステムに関する。
【背景技術】
【０００２】
メモリセルが三次元に配列されたＮＡＮＤ型フラッシュメモリが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１２９１０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
動作信頼性を向上できるメモリデバイス及びメモリシステムを提供する。
【課題を解決するための手段】
【０００５】
実施形態のメモリデバイスは、データを記憶する第１メモリセルと、第１メモリセルに接続される第１ワード線と、第１ワード線に電圧を供給する第１回路と、第１回路を制御する第２回路と、第１回路及び第２回路を制御するシーケンサと、を備え、第１メモリセルにデータを書込む場合、シーケンサは条件を満たすか否かを判定し、条件を満たさないと判定する場合、第２回路に、第１電圧を生成させ、条件を満たすと判定する場合、第２回路に、第１電圧よりも高い第２電圧を生成させ、第１回路は、第１電圧または第２電圧に基づいて、第２電圧よりも低い第３電圧を、第１ワード線に供給する。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１実施形態に係るメモリシステムのブロック図である。
【図２】図２は、第１実施形態に係るメモリシステムのいずれかのブロックＢＬＫの回路図である。
【図３】図３は、第１実施形態に係るメモリシステムのブロックＢＬＫの一部領域の断面図である。
【図４】図４は、第１実施形態に係るメモリシステムのロウデコーダのブロック図である。
【図５】図５は、第１実施形態に係るメモリシステムの信号線ＣＧに電圧を印加するための構成を示す回路図である。
【図６】図６は、第１実施形態に係るメモリシステムの第１ドライバを示す回路図である。
【図７】図７は、第１実施形態に係るメモリシステムの書込み動作（Ｓ１０００）のフローチャートである。
【図８】図８は、プログラム動作の基本的な動作波形である。
【図９】図９は、ベリファイ動作の基本的な動作波形である。
【図１０】図１０は、第１実施形態に係るメモリシステムの書込み動作時におけるコマンドシーケンスである。
【図１１】図１１は、第１実施形態に係るメモリシステムの電圧ＶＰＧＭの転送経路を示す回路図である。
【図１２】図１２は、比較例に係るメモリシステムのプログラム動作の動作波形である。
【図１３】図１３は、第１実施形態に係るメモリシステムのプログラム動作の動作波形である。
【図１４】図１４は、第１実施形態の変形例１に係るメモリシステムの書込み動作（Ｓ１１００）のフローチャートである。
【図１５】図１５は、第１実施形態の変形例２に係るメモリシステムの書込み動作（Ｓ１２００）のフローチャートである。
【図１６】図１６は、第１実施形態の変形例３に係るメモリシステムの書込み動作（Ｓ１３００）のフローチャートである。
【図１７】図１７は、第１実施形態の変形例４に係るメモリシステムの書込み動作（Ｓ１４００）のフローチャートである。
【図１８】図１８は、第１実施形態の変形例５に係るメモリシステムの書込み動作（Ｓ１５００）のフローチャートである。
【図１９】図１９は、第１実施形態の変形例６に係るメモリシステムの書込み動作（Ｓ１６００）のフローチャートである。
【図２０】図２０は、第２実施形態に係るメモリシステムの信号線ＣＧに電圧を印加するための構成を示す回路図である。
【図２１】図２１は、第２実施形態に係るメモリシステムの書込み動作（Ｓ２０００）のフローチャートである。
【図２２】図２２は、第２実施形態に係るメモリシステムの書込み動作（Ｓ２０００）のフローチャートである。
【図２３】図２３は、第２実施形態に係るメモリシステムのプログラム動作の基本的な動作波形である。
【図２４】図２４は、第２実施形態に係るメモリシステムの電圧ＶＰＧＭの転送経路を示す回路図である。
【図２５】図２５は、第２実施形態の変形例１に係るメモリシステムの書込み動作（Ｓ２１００）のフローチャートである。
【図２６】図２６は、第２実施形態の変形例１に係るメモリシステムの書込み動作（Ｓ２１００）のフローチャートである。
【図２７】図２７は、第２実施形態の変形例２に係るメモリシステムの書込み動作（Ｓ２２００）のフローチャートである。
【図２８】図２８は、第２実施形態の変形例３に係るメモリシステムの書込み動作（Ｓ２３００）のフローチャートである。
【図２９】図２９は、第２実施形態の変形例４に係るメモリシステムの書込み動作（Ｓ２４００）のフローチャートである。
【図３０】図３０は、第２実施形態の変形例４に係るメモリシステムの書込み動作（Ｓ２４００）のフローチャートである。
【図３１】図３１は、第２実施形態の変形例５に係るメモリシステムの書込み動作（Ｓ２５００）のフローチャートである。
【図３２】図３２は、第２実施形態の変形例６に係るメモリシステムの書込み動作（Ｓ２６００）のフローチャートである。
【図３３】図３３は、第３実施形態に係るメモリシステムの書込み動作（Ｓ３０００）のフローチャートである。
【図３４】図３４は、第３実施形態に係るメモリシステムの書込み動作（Ｓ３１００）のフローチャートである。
【図３５】図３５は、第３実施形態に係るメモリシステムの書込み動作時におけるコマンドシーケンスである。
【図３６】図３６は、第３実施形態の変形例１に係るメモリシステムの書込み動作（Ｓ３２００）のフローチャートである。
【図３７】図３７は、第３実施形態の変形例２に係るメモリシステムの書込み動作（Ｓ３３００）のフローチャートである。
【図３８】図３８は、第３実施形態の変形例３に係るメモリシステムの書込み動作（Ｓ３４００）のフローチャートである。
【図３９】図３９は、第４実施形態に係るメモリシステムのウェル配線ＣＰＷＥＬＬに電圧を印加するための構成を示す回路図である。
【図４０】図４０は、第４実施形態に係るメモリシステムの第５ドライバを示す回路図である。
【図４１】図４１は、第４実施形態に係るメモリシステムのデータ消去動作（Ｓ４０００）のフローチャートである。
【図４２】図４２は、イレース動作の基本的な動作波形である。
【図４３】図４３は、第４実施形態に係るメモリシステムのデータ消去動作時におけるコマンドシーケンスである。
【図４４】図４４は、比較例に係るメモリシステムのイレース動作の動作波形である。
【図４５】図４５は、第４実施形態に係るメモリシステムのイレース動作の動作波形である。
【図４６】図４６は、第４実施形態の変形例１に係るメモリシステムのデータ消去動作（Ｓ４１００）のフローチャートである。
【図４７】図４７は、第４実施形態の変形例２に係るメモリシステムのデータ消去動作（Ｓ４２００）のフローチャートである。
【図４８】図４８は、第４実施形態の変形例３に係るメモリシステムのデータ消去動作（Ｓ４３００）のフローチャートである。
【図４９】図４９は、第４実施形態の変形例４に係るメモリシステムのデータ消去動作（Ｓ４４００）のフローチャートである。
【図５０】図５０は、第４実施形態の変形例５に係るメモリシステムのデータ消去動作（Ｓ４５００）のフローチャートである。
【図５１】図５１は、第４実施形態の変形例６に係るメモリシステムのデータ消去動作（Ｓ４６００）のフローチャートである。
【図５２】図５２は、第５実施形態に係るメモリシステムのデータ消去動作（Ｓ５０００）のフローチャートである。
【図５３】図５３は、第５実施形態に係るメモリシステムのデータ消去動作（Ｓ５１００）のフローチャートである。
【図５４】図５４は、第５実施形態に係るメモリシステムのデータ消去動作時におけるコマンドシーケンスである。
【図５５】図５５は、第５実施形態の変形例に係るメモリシステムのデータ消去動作（Ｓ５２００）のフローチャートである。
【発明を実施するための形態】
【０００７】
以下、実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。以下ではメモリデバイスとして、メモリセルトランジスタが半導体基板の上方に積層された三次元積層型ＮＡＮＤ型フラッシュメモリを例に挙げて説明する。
【０００８】
＜１＞第１実施形態
第１実施形態に係るメモリデバイスについて説明する。
【０００９】
＜１−１＞構成
＜１−１−１＞メモリシステムの構成
まず、本実施形態に係るメモリデバイスを含むメモリシステムの大まかな全体構成について、図１を用いて説明する。
【００１０】
図１に示すようにメモリシステム１は、ＮＡＮＤ型フラッシュメモリ（メモリデバイス）１００とメモリコントローラ２００を備えている。ＮＡＮＤ型フラッシュメモリ１００とメモリコントローラ２００とは、例えばそれらの組み合わせにより一つの半導体装置を構成しても良く、その例としてはＳＤＴＭカードのようなメモリカードや、ＳＳＤ（solid state drive）等が挙げられる。
【００１１】
ＮＡＮＤ型フラッシュメモリ１００は、複数のメモリセルを備え、データを不揮発に記憶する。メモリコントローラ２００は、ＮＡＮＤバスによってＮＡＮＤ型フラッシュメモリ１００に接続され、ホストバスによってホスト装置３００に接続される。そしてメモリコントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００を制御し、またホスト装置３００から受信した命令に応答して、ＮＡＮＤ型フラッシュメモリ１００にアクセスする。ホスト装置３００は、例えばデジタルカメラやパーソナルコンピュータ等であり、ホストバスは、例えばＳＤＴＭインターフェースに従ったバスである。
【００１２】
ＮＡＮＤバスは、ＮＡＮＤインターフェースに従った信号の送受信を行う。この信号の具体例は、コマンドラッチイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ、ライトイネーブル信号ＷＥｎ、リードイネーブル信号ＲＥｎ、レディ・ビジー信号ＲＢｎ、及び入出力信号ＤＱである。
【００１３】
信号ＣＬＥ及びＡＬＥは、ＮＡＮＤ型フラッシュメモリ１００への入力信号ＤＱがそれぞれコマンド及びアドレスであることをＮＡＮＤ型フラッシュメモリ１００に通知する信号である。信号ＷＥｎは“Ｌ（low）”レベルでアサートされ、入力信号ＤＱをＮＡＮＤ型フラッシュメモリ１００に取り込ませるための信号である。なお、「アサート」とは、信号（または論理）が有効（アクティブ）な状態とされていることを意味し、これに相対する用語として「ネゲート」は信号（または論理が無効（インアクティブ）な状態とされていることを意味する。信号ＲＥｎも“Ｌ”レベルでアサートされ、ＮＡＮＤ型フラッシュメモリ１００から出力信号ＤＱを読み出すための信号である。レディ・ビジー信号ＲＢｎは、ＮＡＮＤ型フラッシュメモリ１００がレディ状態（メモリコントローラ２００からの命令を受信出来る状態）であるか、それともビジー状態（メモリコントローラ２００からの命令を受信出来ない状態）であるかを示す信号であり、“Ｌ”レベルがビジー状態を示す。入出力信号ＤＱは、例えば８ビットの信号である。そして入出力信号ＤＱは、ＮＡＮＤ型フラッシュメモリ１００とメモリコントローラ２００との間で送受信されるデータの実体であり、コマンド、アドレス、書込みデータ、及び読み出しデータ等である。
【００１４】
＜１−１−２＞メモリコントローラ２００の構成  
引き続き図１を用いて、メモリコントローラ２００の構成の詳細について説明する。図１に示すようにメモリコントローラ２００は、ホストインターフェース回路（ホストＩ／Ｆ）２１０、内蔵メモリ（ＲＡＭ）２２０、プロセッサ（ＣＰＵ）２３０、バッファメモリ２４０、ＮＡＮＤインターフェース回路（ＮＡＮＤ  Ｉ／Ｆ）２５０、及びＥＣＣ回路２６０を備えている。
【００１５】
ホストインターフェース回路２１０は、ホストバスを介してホスト装置３００と接続され、ホスト装置３００から受信した命令及びデータを、それぞれプロセッサ２３０及びバッファメモリ２４０に転送する。またプロセッサ２３０の命令に応答して、バッファメモリ２４０内のデータをホスト装置３００へ転送する。
【００１６】
プロセッサ２３０は、メモリコントローラ２００全体の動作を制御する。例えば、プロセッサ２３０は、ホスト装置３００から書込み命令を受信した際には、それに応答して、ＮＡＮＤインターフェース回路２５０に対して書込み命令を発行する。読み出し及び消去の際も同様である。またプロセッサ２３０は、ウェアレベリング等、ＮＡＮＤ型フラッシュメモリ１００を管理するための様々な処理を実行する。
【００１７】
ＮＡＮＤインターフェース回路２５０は、ＮＡＮＤバスを介してＮＡＮＤ型フラッシュメモリ１００と接続され、ＮＡＮＤ型フラッシュメモリ１００との通信を司る。そして、プロセッサ２３０から受信した命令に基づき、信号ＡＬＥ、ＣＬＥ、ＷＥｎ、及びＲＥｎをＮＡＮＤ型フラッシュメモリ１００へ出力する。また書込み時には、プロセッサ２３０で発行された書込みコマンド、及びバッファメモリ２４０内の書込みデータを、入出力信号ＤＱとしてＮＡＮＤ型フラッシュメモリ１００へ転送する。更に読み出し時には、プロセッサ２３０で発行された読み出しコマンドを、入出力信号ＤＱとしてＮＡＮＤ型フラッシュメモリ１００へ転送し、更にＮＡＮＤ型フラッシュメモリ１００から読み出されたデータを入出力信号ＤＱとして受信し、これをバッファメモリ２４０へ転送する。
【００１８】
バッファメモリ２４０は、書込みデータや読み出しデータを一時的に保持する。
【００１９】
内蔵メモリ２２０は、例えばＤＲＡＭ等の半導体メモリであり、プロセッサ２３０の作業領域として使用される。そして内蔵メモリ２２０は、ＮＡＮＤ型フラッシュメモリ１００を管理するためのファームウェアや、各種の管理テーブル等を保持する。
【００２０】
ＥＣＣ回路２６０は、データの誤り訂正（ＥＣＣ：Error Checking and Correcting）処理を実行する。すなわちＥＣＣ回路２６０は、データの書込み時には書込みデータに基づいてパリティを生成し、読み出し時にはパリティからシンドロームを生成して誤りを検出し、この誤りを訂正する。なお、ＣＰＵ２３０がＥＣＣ回路２６０の機能を有していても良い。
【００２１】
＜１−１−３＞  ＮＡＮＤ型フラッシュメモリ１００の構成  
＜１−１−３−１＞  ＮＡＮＤ型フラッシュメモリ１００の全体構成  
次に、ＮＡＮＤ型フラッシュメモリ１００の構成について説明する。図１に示すように、ＮＡＮＤ型フラッシュメモリ１００は、メモリセルアレイ１１０、ロウデコーダ１２０（１２０−０〜１２０−３）、ドライバ回路１３０、センスアンプ１４０、アドレスレジスタ１５０、コマンドレジスタ１６０、シーケンサ１７０、及びステータスレジスタ１８０を備える。
【００２２】
メモリセルアレイ１１０は、ロウ及びカラムに対応付けられた複数の不揮発性のメモリセルを含む複数のブロックＢＬＫ（図１では一例としてＢＬＫ０〜ＢＬＫ３）を備えている。そしてメモリセルアレイ１１０は、メモリコントローラ２００から与えられたデータを記憶する。
【００２３】
ロウデコーダ１２０−０〜１２０−３は、ブロックＢＬＫ０〜ＢＬＫ３にそれぞれ対応付けて設けられ、対応するブロックＢＬＫを選択する。
【００２４】
ドライバ回路１３０は、ロウデコーダ１２０−０〜１２０−３を介して、選択されたブロックＢＬＫ０〜ＢＬＫ３のいずれかに電圧を出力する。
【００２５】
センスアンプ１４０は、データの読み出し時には、メモリセルアレイ１１０から読み出されたデータをセンスし、このデータＤＡＴをメモリコントローラ２００に出力する。データの書込み時には、メモリコントローラ２００から受信した書込みデータＤＡＴを、メモリセルアレイ１１０に転送する。
【００２６】
アドレスレジスタ１５０は、メモリコントローラ２００から受信したアドレスＡＤＤを保持する。コマンドレジスタ１６０は、メモリコントローラ２００から受信したコマンドＣＭＤを保持する。
【００２７】
シーケンサ１７０は、コマンドレジスタ１６０に保持されたコマンドＣＭＤに基づき、ＮＡＮＤ型フラッシュメモリ１００全体の動作を制御する。
【００２８】
ステータスレジスタ１８０は、ＮＡＮＤ型フラッシュメモリ１００のステータス情報等を記憶する。具体的には、ステータスレジスタ１８０は、後述するプログラムループ数やイレースループ数等を記憶する。
【００２９】
＜１−１−３−２＞  メモリセルアレイ１１０  
次に、上記メモリセルアレイ１１０の構成の詳細について説明する。図２はいずれかのブロックＢＬＫの回路図であり、他のブロックＢＬＫも同様の構成を有している。
【００３０】
図２に示すように、ブロックＢＬＫは複数のストリングユニットＳＵ（図２では一例としてＳＵ０〜ＳＵ３）を含む。また各々のストリングユニットＳＵは、複数のＮＡＮＤストリング１１１を含む。
【００３１】
ＮＡＮＤストリング１１１の各々は、複数のメモリセルトランジスタＭＴ（図２では一例としてＭＴ０〜ＭＴ４７）と、選択トランジスタＳＴ（ＳＴ１、ＳＴ２）とを含んでいる。
【００３２】
メモリセルトランジスタＭＴは、制御ゲートと電荷蓄積層とを含む積層ゲートを備え、データを不揮発に保持する。メモリセルトランジスタＭＴの個数は８個に限られず、１６個や３２個、６４個、１２８個等であってもよく、その数は限定されるものではない。メモリセルトランジスタＭＴは、選択トランジスタＳＴ１、ＳＴ２間に、直列接続されるようにして配置されている。この直列接続の一端側のメモリセルトランジスタＭＴ４７の一端は選択トランジスタＳＴ１の一端に接続され、他端側のメモリセルトランジスタＭＴ０の一端は選択トランジスタＳＴ２の一端に接続されている。
【００３３】
ストリングユニットＳＵ０〜ＳＵ３の各々の選択トランジスタＳＴ１のゲートは、それぞれセレクトゲート線ＳＧＤ０〜ＳＧＤ３に共通接続される。他方で、選択トランジスタＳＴ２のゲートは、複数のストリングユニット間で同一のセレクトゲート線ＳＧＳに共通接続される。また、同一のブロック内にあるメモリセルトランジスタＭＴ０〜ＭＴ４７の制御ゲートはそれぞれワード線ＷＬ０〜ＷＬ４７に共通接続される。
【００３４】
すなわち、ワード線ＷＬ０〜ＷＬ４７及びセレクトゲート線ＳＧＳは同一ブロックＢＬＫ内の複数のストリングユニットＳＵ０〜ＳＵ３間で共通に接続されているのに対し、セレクトゲート線ＳＧＤは、同一ブロックであってもストリングユニットＳＵ０〜ＳＵ３毎に独立している。
【００３５】
また、メモリセルアレイ１１０内でマトリクス状に配置されたＮＡＮＤストリング１１１のうち、同一行にあるＮＡＮＤストリング１１１の選択トランジスタＳＴ１の他端は、いずれかのビット線ＢＬ（ＢＬ０〜ＢＬ（Ｌ−１）：Ｌは２以上の自然数）に共通接続される。すなわちビット線ＢＬは、複数のストリングユニットＳＵ間でＮＡＮＤストリング１１１を共通に接続し、更に複数のブロックＢＬＫ間でもＮＡＮＤストリング１１１を共通に接続する。また、選択トランジスタＳＴ２の他端はソース線ＳＬに共通に接続されている。ソース線ＳＬは、例えば複数のブロック間でＮＡＮＤストリング１１１を共通に接続する。
【００３６】
データの読み出し及び書込みは、いずれかのブロックのいずれかのストリングユニットＳＵにおける、いずれかのワード線ＷＬに共通に接続された複数のメモリセルトランジスタＭＴにつき、一括して行われる。
【００３７】
データの消去は、ブロックＢＬＫ単位、またはブロックＢＬＫよりも小さい単位で行うことが出来る。消去方法に関しては、例えば“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE”という２０１１年９月１８日に出願された米国特許出願１３／２３５，３８９号に記載されている。また、“NON-VOLATILE SEMICONDUCTOR STORAGE DEVICE”という２０１０年１月２７日に出願された米国特許出願１２／６９４，６９０号に記載されている。更に、“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE AND DATA ERASE METHOD THEREOF”という２０１２年５月３０日に出願された米国特許出願１３／４８３，６１０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００３８】
＜１−１−３−３＞  ブロックＢＬＫの一部領域の断面  
図３を用いて、ブロックＢＬＫの一部領域の断面について説明する。図３に示すように、ｐ型ウェル領域２０上に、複数のＮＡＮＤストリング１１１が設けられている。すなわち、ウェル領域２０上には、第３方向に沿ってセレクトゲート線ＳＧＳとして機能する例えば４層の配線層２７、ワード線ＷＬ０〜ＷＬ４７として機能する４８層の配線層２３、及びセレクトゲート線ＳＧＤとして機能する例えば４層の配線層２５が、順次積層されている。積層された配線層間には、図示せぬ絶縁膜が設けられている。
【００３９】
ウェル領域２０上には、第３方向に延伸するピラー状の半導体３１が設けられている。半導体３１の側面には、ゲート絶縁膜３０、電荷蓄積層（絶縁膜）２９、及びブロック絶縁膜２８が順次設けられ、柱状構造が構成される。そして、柱状構造の側面には、配線層２５、２３、２７が設けられ、これらによってメモリセルトランジスタＭＴ、並びに選択トランジスタＳＴ１及びＳＴ２が構成されている。半導体３１は、ＮＡＮＤストリング１１１の電流経路として機能し、各トランジスタのチャネルが形成される領域となる。そして半導体３１の上端は、ビット線ＢＬとして機能する金属配線層３２に接続される。
【００４０】
ウェル領域２０の表面領域内には、ｎ＋型不純物拡散層３３が設けられている。拡散層３３上にはコンタクトプラグ３５が設けられ、コンタクトプラグ３５は、ソース線ＳＬとして機能する金属配線層３６に接続される。更に、ウェル領域２０の表面領域内には、ｐ＋型不純物拡散層３４が設けられている。拡散層３４上にはコンタクトプラグ３７が設けられ、コンタクトプラグ３７は、ウェル配線ＣＰＷＥＬＬとして機能する金属配線層３８に接続される。ウェル配線ＣＰＷＥＬＬは、ウェル領域２０を介して半導体３１に電位を印加するための配線である。
【００４１】
以上の構成が、第２方向（第３方向に直交する方向）に複数配列されており、奥行き方向に並ぶ複数のＮＡＮＤストリング１１１の集合によってストリングユニットＳＵが形成される。
【００４２】
更に、メモリセルアレイ１１０の構成についてはその他の構成であっても良い。すなわちメモリセルアレイ１１０の構成については、例えば、“三次元積層不揮発性半導体メモリ”という２００９年３月１９日に出願された米国特許出願１２／４０７，４０３号に記載されている。また、“三次元積層不揮発性半導体メモリ”という２００９年３月１８日に出願された米国特許出願１２／４０６，５２４号、“不揮発性半導体記憶装置及びその製造方法”という２０１０年３月２５日に出願された米国特許出願１２／６７９，９９１号“半導体メモリ及びその製造方法”という２００９年３月２３日に出願された米国特許出願１２／５３２，０３０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００４３】
＜１−１−３−４＞  ロウデコーダ  
次に、ロウデコーダ１２０の構成について、図４を用いて説明する。
【００４４】
図４に示すようにロウデコーダ１２０は、ブロックデコーダ４０及び高耐圧ｎチャネルＭＯＳトランジスタ５０（５０−０〜５０−５２）を備えている。高耐圧ｎチャネルＭＯＳトランジスタ５０を転送トランジスタとも記載する。
【００４５】
まずブロックデコーダ４０について説明する。ブロックデコーダ４０は、データの書込み、読み出し、及び消去時において、アドレスレジスタ１５０から受信したブロックアドレスＢＡをデコードする。そして、ブロックアドレスＢＡが、対応するブロックＢＬＫに一致した際には、信号ＶＲＤＥＣをアサートする。アサートされた信号ＶＲＤＥＣ（ＢＬＫＳＥＬと記載しても良い）の電位は、トランジスタ５０をオン状態とする電圧とされる。他方で、ブロックアドレスＢＡが当該ブロックＢＬＫに一致しなかった際には、信号ＶＲＤＥＣはネゲートされ、その電位は、トランジスタ５０をオフ状態とする電圧（例えば０Ｖ）とされる。
【００４６】
次に、トランジスタ５０について説明する。トランジスタ５０−０〜５０−４７は、選択ブロックＢＬＫのワード線ＷＬ０〜ＷＬ４７に電圧を転送する。トランジスタ５０−０〜５０−４７はそれぞれ、一端が、対応するブロックＢＬＫのワード線ＷＬ０〜ＷＬ４７にそれぞれ接続され、他端が信号線ＣＧ０〜ＣＧ４７にそれぞれ接続され、ゲートに信号ＶＲＤＥＣが供給される。
【００４７】
トランジスタ５０−４８〜５０−５１は、選択ブロックＢＬＫのセレクトゲート線ＳＧＤ０〜ＳＧＤ３に電圧を転送する。トランジスタ５０−４８〜５０−５１はそれぞれ、一端が、対応するブロックＢＬＫのセレクトゲート線ＳＧＤ０〜ＳＧＤ３に接続され、他端が信号線ＳＧＤＤ０〜ＳＧＤＤ３に接続され、ゲートに信号ＶＲＤＥＣが供給される。
【００４８】
トランジスタ５０−５２は、選択ブロックＢＬＫのセレクトゲート線ＳＧＳに電圧を転送する。トランジスタ５０−５２は、一端が、対応するブロックＢＬＫのセレクトゲート線ＳＧＳに接続され、他端が信号線ＳＧＳＤに接続され、ゲートに信号ＶＲＤＥＣが供給される。
【００４９】
従って、例えば選択ブロックＢＬＫに対応するロウデコーダ１２０では、トランジスタ５０−０〜５０−５２はオン状態とされる。これにより、ワード線ＷＬ０〜ＷＬ４７は信号線ＣＧ０〜ＣＧ４７に接続され、セレクトゲート線ＳＧＤ０〜ＳＧＤ３は信号線ＳＧＤＤ０〜ＳＧＤＤ３に接続され、セレクトゲート線ＳＧＳは信号線ＳＧＳＤに接続される。
【００５０】
他方、非選択ブロックＢＬＫに対応するロウデコーダ１２０では、トランジスタ５０−０〜５０−５２はオフ状態とされる。これにより、ワード線ＷＬ及びセレクトゲート線ＳＧＤ、及びＳＧＳは、信号線ＣＧ、ＳＧＤＤ、及びＳＧＳＤから電気的に分離される。
【００５１】
信号線ＣＧ、ＳＧＤＤ、及びＳＧＳＤは、ロウデコーダ１２０−１〜１２０−３で共通に用いられる。そして、ドライバ回路１３０が、アドレスレジスタ１５０から受信したページアドレスＰＡに従って、信号線ＣＧ、ＳＧＤＤ、及びＳＧＳＤに電圧を印加する。つまり、ドライバ回路１３０から出力される電圧は、選択ブロックに対応するいずれかのロウデコーダ１２０内のトランジスタ５０を介して、選択ブロック内の配線ＷＬ、ＳＧＤ、及びＳＧＳに転送される。
【００５２】
ドライバ回路１３０は、少なくともＣＧドライバ１３１、ＳＧＳドライバ１３２、ＳＧＤドライバ１３３、及びＴＳＦドライバ１３４を備えている。ＣＧドライバ１３１は、信号線ＣＧに信号を供給する。ＳＧＳドライバ１３２は、信号線ＳＧＳＤに信号を供給する。ＳＧＤドライバ１３３は、信号線ＳＧＤＤに信号を供給する。ＴＳＦドライバ１３４は、信号ＶＲＤＥＣを供給する。
【００５３】
なお、本例では、簡単のため１つのロウデコーダ１２０内には、トランジスタ５０（５０−０〜５０−５２）がそれぞれ１つのみ設けられている。しかし、トランジスタ５０は、直列に複数個設けられても良い。
【００５４】
＜１−１−３−５＞  ＣＧドライバ及びＴＳＦドライバ  
次に、図５を用いて、ＣＧドライバ１３１及びＴＳＦドライバ１３４について説明する。
【００５５】
ＴＳＦドライバ１３４は、第１ドライバ１３４０を備えている。第１ドライバ１３４０は、シーケンサ１７０からの制御信号に基づき、電圧ＶＰＧＭＨＬまたはＶＰＧＭＨＨ（ＶＰＧＭＨＬ＜ＶＰＧＭＨＨ）を信号ＶＢＳＴ（またはＶＲＤＥＣ）として、ノードＮ１を介してＣＧドライバ１３１及びロウデコーダ１２０に供給する。
【００５６】
ＣＧドライバ１３１は、信号線ＣＧに対応する複数の高耐圧ｎチャネルＭＯＳトランジスタ１３１０（図５の例では１３１０―０〜１３１０―４７）と、第１レベルシフタ１３１１と、を備えている。第１レベルシフタ１３１１は、ノードＮ１を介して供給された電圧ＶＰＧＭＨＬまたはＶＰＧＭＨＨを、信号ＶＢＳＴとしてトランジスタ１３１０に供給する。
【００５７】
トランジスタ１３１０は、信号線ＣＧに電圧を転送する。トランジスタ１３１０は一端が信号線ＣＧに接続され、他端に電圧が印加され、ゲートに信号ＶＢＳＴが供給される。図５では簡単のため、電圧ＶＰＧＭを転送するためのトランジスタ１３１０のみを示している。しかし、これに限らず、信号線ＣＧに各種電圧を印加するための高耐圧ｎチャネルＭＯＳトランジスタが設けられても良い。この高耐圧ｎチャネルＭＯＳトランジスタ１３１０を転送トランジスタとも記載する。
【００５８】
なお、本例では、簡単のため１つの信号線ＣＧに１つのトランジスタ１３１０が接続されている。しかし、１つの信号線ＣＧに複数のトランジスタ１３１０が直列に接続されても良い。
【００５９】
＜１−１−３−６＞  第１ドライバ  
次に、図６を用いて、第１ドライバ１３４０について説明する。
【００６０】
第１ドライバ１３４０は、高耐圧ｎチャネルＭＯＳトランジスタ１３４０−０〜１３４０−２を備えている。トランジスタ１３４０−０は、ノードＮ２を介して一端に電圧ＶＰＧＭが印加され、他端及びゲートがノードＮ３に接続され、他端及びゲートに信号ＶＰＨＬが供給される。トランジスタ１３４０−１は、一端がノードＮ３に接続され、他端及びゲートがノードＮ１に接続され、他端及びゲートに信号ＶＰＨが供給される。トランジスタ１３４０−２は、ノードＮ２を介して一端に電圧ＶＰＧＭが印加され、他端及びゲートがノードＮ３に接続され、他端及びゲートに信号ＶＰＨＨが供給される。
【００６１】
信号ＶＰＨ、ＶＰＨＬ、及びＶＰＨＨはシーケンサ１７０から供給される。
【００６２】
シーケンサ１７０は、電圧ＶＰＧＭＨＬを生成する場合、信号ＶＰＨを“Ｈ（Ｈ＞Ｌ）”レベルにし、信号ＶＰＨＬを“Ｈ”レベルにし、信号ＶＰＨＨを“Ｌ”レベルにする。それにより、ドライバ１３４０はノードＮ１に電圧ＶＰＧＭＨＬを供給する（矢印Ａ参照）。
【００６３】
シーケンサ１７０は、電圧ＶＰＧＭＨＨを生成する場合、信号ＶＰＨを“Ｈ”レベルにし、信号ＶＰＨＬを“Ｌ”レベルにし、信号ＶＰＨＨを“Ｈ”レベルにする。それにより、ドライバ１３４０はノードＮ１に電圧ＶＰＧＭＨＨを供給する（矢印Ｂ参照）。
【００６４】
なお、ここでは、簡単のため、第１ドライバ１３４０が３つのトランジスタ１３４０−０〜１３４０−２を備えている場合について説明したが、これに限らない。ドライバ１３４０が、電圧ＶＰＧＭＨＬ及び電圧ＶＰＧＭＨＨを選択的に生成できる構成であればどのような回路でも良い。
【００６５】
シーケンサ１７０が、どのように電圧ＶＰＧＭＨＬまたは電圧ＶＰＧＭＨＨを選択するかについては、後述する。
【００６６】
＜１−２＞  動作  
＜１−２−１＞  フローチャート  
図７を用いて、書込み動作（Ｓ１０００）のフローチャートについて説明する。
【００６７】
ところで書込み動作は、プログラム動作とプログラムベリファイ動作とを含んでいる。プログラム動作とは、選択メモリセルトランジスタの電荷蓄積層に電子を注入する動作である。プログラムベリファイ動作とは、プログラム動作が完了したか否かを確認する動作である。
【００６８】
［Ｓ１００１］
シーケンサ１７０は、メモリコントローラ２００からライトコマンドを受信したか否かを判定する。
【００６９】
［Ｓ１００２］
シーケンサ１７０は、メモリコントローラ２００からライトコマンドを受信したと判定する場合（ステップＳ１００１、Ｙｅｓ）、ステータスレジスタ１８０に記憶されているプログラムループ数が第１値以下か否かを判定する。第１値は、予め設定されていても良く、ユーザが任意に設定しても良い。このプログラムループ数とは、ステップＳ１００１にてライトコマンドを受信する前に行われた書込み動作のうちで最新の書込み動作（直前の書込み動作）に係るプログラムループ数である。
【００７０】
［Ｓ１００３］
シーケンサ１７０は、プログラムループ数が第１値以下でないと判定する場合（ステップＳ１００２、Ｎｏ）、プログラム動作時における信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨＬに設定する。具体的には、シーケンサ１７０は、プログラム動作時に、信号ＶＰＨを“Ｈ”レベルにし、信号ＶＰＨＬを“Ｈ”レベルにし、信号ＶＰＨＨを“Ｌ”レベルにする。
【００７１】
［Ｓ１００４］
シーケンサ１７０は、プログラムループ数が第１値以下であると判定する場合（ステップＳ１００２、Ｙｅｓ）、プログラム動作時における信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨＨに設定する。具体的には、シーケンサ１７０は、プログラム動作時に、信号ＶＰＨを“Ｈ”レベルにし、信号ＶＰＨＬを“Ｌ”レベルにし、信号ＶＰＨＨを“Ｈ”レベルにする。
【００７２】
［Ｓ１００５］
シーケンサ１７０は、プログラム動作を行う。
【００７３】
図８を用いて、プログラム動作の基本的な動作波形について説明する。
【００７４】
［時刻Ｔ０］〜［時刻Ｔ１］
ドライバ１３４は、シーケンサ１７０からの信号に基づき、信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨＬ（ＶＳＳ＜ＶＰＧＭＨＬ）または電圧ＶＰＧＭＨＨ（ＶＰＧＭＨＬ＜ＶＰＧＭＨＨ）に昇圧する。電圧ＶＰＧＭＨＬまたは電圧ＶＰＧＭＨＨは、トランジスタ５０、及び１３１０をオン状態にする電圧である。
【００７５】
［時刻Ｔ１］〜［時刻Ｔ２］
時刻Ｔ１においてロウデコーダ１２０は、アドレスレジスタ１５０から与えられるブロックアドレスＢＡに従って、ブロックＢＬＫを選択する。そしてロウデコーダ１２０は、選択セレクトゲート線ＳＧＤ＿ＳＥＬに、電圧ＶＳＧＤ＿ＰＲＯＧ（例えば、ＶＳＳ＜ＶＳＧＤ＿ＰＲＯＧ＜ＶＰＧＭＨＬ）を印加し、選択セレクトゲート線ＳＧＳ＿ＳＥＬ、非選択セレクトゲート線ＳＧＳ＿ＵＳＥＬに電圧ＶＳＧＳを印加し、非選択セレクトゲート線ＳＧＤ＿ＵＳＥＬに電圧ＶＳＳを印加する。電圧ＶＳＧＤ＿ＰＲＯＧは、選択トランジスタＳＴ１をオン状態にする電圧である。
【００７６】
時刻Ｔ１においてセンスアンプ１４０は、メモリセルトランジスタＭＴの電荷蓄積層２９に電子を注入する書込みビット線ＢＬ＿ｐｒｏｇに例えば電圧ＶＳＳを印加し、メモリセルトランジスタＭＴの電荷蓄積層２９への電子の注入を抑制する非書込みビット線ＢＬ＿ｉｎｈｉｂｉｔに電圧ＶＤＤ（ＶＳＳ＜ＶＤＤ＜ＶＳＧＤ＿ＰＲＯＧ）を印加する。
【００７７】
［時刻Ｔ２］〜［時刻Ｔ３］
引き続き時刻Ｔ２においてロウデコーダ１２０は、選択セレクトゲート線ＳＧＤ＿ＳＥＬに電圧ＶＳＧＤ（ＶＳＳ＜ＶＳＧＤ＜ＶＳＧＤ＿ＰＲＯＧ）を印加する。電圧ＶＳＧＤは、選択トランジスタＳＴ１に対して電圧ＶＳＳの転送を可能とさせるが、電圧ＶＤＤの転送は不能とさせる電圧である。従って、非書込みビット線ＢＬ＿ｉｎｈｉｂｉｔに対応する選択トランジスタＳＴ１は、カットオフ状態となる。
【００７８】
［時刻Ｔ３］〜［時刻Ｔ４］
次に、時刻Ｔ３においてロウデコーダ１２０は、ワード線ＷＬ（ＷＬ＿ＳＥＬ及びＷＬ＿ＵＳＥＬ）に電圧ＶＰＡＳＳ（ＶＳＧＤ＜ＶＰＡＳＳ＜ＶＰＧＭＨＬ）を印加する。
【００７９】
［時刻Ｔ４］〜［時刻Ｔ５］
引き続きロウデコーダ１２０は、複数の選択ワード線ＷＬ＿ＳＥＬに印加する電圧を電圧ＶＰＡＳＳから電圧ＶＰＧＭ（ＶＰＡＳＳ＜ＶＰＧＭ＜ＶＰＧＭＨＬ）に昇圧する。これにより、選択ワード線ＷＬ＿ＳＥＬに接続された選択メモリセルトランジスタに電子が注入される。電圧ＶＰＧＭは、書込むデータや、プログラム回数に応じて適宜変更される。
【００８０】
［時刻Ｔ５］〜［時刻Ｔ６］
時刻Ｔ４〜時刻Ｔ５の期間でプログラムされた後、時刻Ｔ５〜時刻Ｔ６においてロウデコーダ１２０は、ワード線ＷＬ、選択セレクトゲート線ＳＧＤ＿ＳＥＬを例えば数Ｖに降圧し、センスアンプ１４０は、非書込みビット線ＢＬ＿ｉｎｈｉｂｉｔを電圧ＶＳＳに降圧する。ドライバ１３４は、シーケンサ１７０からの信号に基づき、信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＳＳに降圧する。これによりプログラム動作が終了する。
【００８１】
［Ｓ１００６］
図７に示すように、シーケンサ１７０は、プログラム動作が終了すると、プログラムベリファイ動作を行う。
【００８２】
図９を用いて、プログラムベリファイ動作の基本的な動作波形について説明する。なお、図９に示す波形は、後述イレースベリファイにも適用可能である。
【００８３】
［時刻Ｔ７］〜［時刻Ｔ８］
ドライバ１３４は、シーケンサ１７０からの信号に基づき、信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＲＥＡＤＨ（ＶＳＳ＜ＶＲＥＡＤＨ）に昇圧する。電圧ＶＲＥＡＤＨは、トランジスタ５０、及び１３１０をオン状態にする電圧である。
【００８４】
［時刻Ｔ８］〜［時刻Ｔ９］
時刻Ｔ８においてロウデコーダ１２０は、選択セレクトゲート線ＳＧＤ＿ＳＥＬ、ＳＧＳ＿ＳＥＬに、電圧ＶＳＧ（例えば、ＶＳＳ＜ＶＳＧ＜ＶＲＥＡＤＨ）を印加し、非選択セレクトゲート線ＳＧＤ＿ＵＳＥＬ、ＳＧＳ＿ＵＳＥＬに電圧ＶＳＳを印加し、非選択ワード線ＷＬ＿ＵＳＥＬに電圧ＶＲＥＡＤ（ＶＳＳ＜ＶＲＥＡＤ＜ＶＲＥＡＤＨ）を印加する。電圧ＶＳＧは、選択トランジスタＳＴ１をオン状態にする電圧である。
【００８５】
時刻Ｔ８においてセンスアンプ１４０は、ビット線ＢＬ（ＢＬ＿ｐｒｏｇ及びＢＬ＿ｉｎｈｉｂｉｔ）に例えば電圧ＶＢＬ（ＶＳＳ＜ＶＢＬ＜ＶＲＥＡＤ）を印加する。
【００８６】
［時刻Ｔ９］〜［時刻Ｔ１０］
時刻Ｔ９においてロウデコーダ１２０は、選択ワード線ＷＬ＿ＳＥＬに電圧ＶＰＶＦＹ（ＶＳＳ＜ＶＰＶＦＹ＜ＶＲＥＡＤ）を印加する。シーケンサ１７０そして、センスアンプ１４０は、選択メモリセルトランジスタのデータを読み出す。これにより、選択メモリセルトランジスタはプログラムベリファイにパスしているかフェイルしているかが判定される。
【００８７】
[時刻Ｔ１０]〜[時刻Ｔ１１]
ロウデコーダ１２０は、ワード線ＷＬ、選択セレクトゲート線ＳＧＤ＿ＳＥＬ、及びＳＧＳ＿ＳＥＬの電位を電圧ＶＳＳに降圧し、センスアンプ１４０は、ビット線ＢＬの電位を電圧ＶＳＳに降圧する。ドライバ１３４は、シーケンサ１７０からの信号に基づき、信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＳＳに降圧する。これによりプログラムベリファイ動作が終了する。
【００８８】
［Ｓ１００７］
図７に示すように、シーケンサ１７０は、プログラムベリファイ動作の結果がパスか否かを判定する。より具体的にはシーケンサ１７０は、プログラムベリファイ動作によってフェイルビットと判定されたフェイルビット数が設定値以上であるか否かを判定する。フェイルビット数が設定値未満である場合、シーケンサ１７０は、プログラムベリファイ動作の結果がパスであると判定する。この設定値は、例えばＥＣＣ回路２６０で救済できないフェイルビット数である。この設定値は、例えばステータスレジスタ１８０に記憶されている。より具体的には、この設定値は、例えば、メモリセルアレイ１１０に記憶されており、ＮＡＮＤ型フラッシュメモリ１００を起動させたときに、ステータスレジスタ１８０に読み出されるような構成でも良い。つまり、シーケンサ１７０は、ステータスレジスタ１８０に記憶された設定値と、フェイルビット数と、を比較する。シーケンサ１７０は、プログラムベリファイ動作の結果がパスであると判定する場合（ステップＳ１００７、Ｙｅｓ）、書込み動作を終了する。
【００８９】
［Ｓ１００８］
シーケンサ１７０は、プログラムベリファイ動作の結果がパスではないと判定する場合（ステップＳ１００７、Ｎｏ）、プログラム動作の繰り返し回数（プログラムループ数）が第２値以上であるか否かを判定する。この第２値は、例えばステータスレジスタ１８０に記憶されている。より具体的には、この第２値は、例えば、メモリセルアレイ１１０に記憶されており、ＮＡＮＤ型フラッシュメモリ１００を起動させたときに、ステータスレジスタ１８０に読み出されるような構成でも良い。つまり、シーケンサ１７０は、ステータスレジスタ１８０に記憶された第２値と、プログラム動作のプログラムループ数と、を比較する。シーケンサ１７０は、プログラムループ数が第２値であると判定する場合（ステップＳ１００８、Ｙｅｓ）、書込み動作を終了する。
【００９０】
例えば、何回プログラムを行っても、データが正しく書込めないメモリセルトランジスタが存在する場合がある。そのようなメモリセルトランジスタがベリファイをパスするまでプログラム動作を繰り返すことは望ましくない。そのため、本ステップにより、プログラム動作のループ数を設定しておくことにより、不要なプログラム動作のループを抑制することができる。
【００９１】
［Ｓ１００９］
シーケンサ１７０は、プログラムループ数が第２値でないと判定する場合（ステップＳ１００８、Ｎｏ）、プログラムループ数（ＮＷｎ＿Ｌｏｏｐ）をカウントアップする。例えば、プログラムループ数は、ステータスレジスタ１８０等に記憶される。そして、プログラムループ数のカウントは、シーケンサ１７０が行っても良いし、それ以外の構成で行っても良い。
【００９２】
［Ｓ１０１０］
そして、シーケンサ１７０は、ループ数をカウントアップした後、プログラム動作の際に用いる電圧ＶＰＧＭを電圧ＤＶＰＧＭだけインクリメントさせる。そして、シーケンサ１７０は、ステップＳ１００５を繰り返す。
【００９３】
なお、ステップＳ１００８とステップＳ１００９との実行順序は入れ替えても良い。なお、その場合、ステップＳ１００８における第２値は“１”だけ大きくなる。以下、ステップＳ１００８とステップＳ１００９とを含む他の動作においても同様にステップＳ１００８とステップＳ１００９との実行順序は入れ替えても良い。
【００９４】
＜１−２−２＞  コマンドシーケンス  
書込み動作時におけるコマンドシーケンスについて、図１０を用いて説明する。図１０に示すようにメモリコントローラ２００は、まず書込みコマンドＡＡＨを発行すると共に、信号ＣＬＥをアサート（“Ｈ”レベル）する。引き続きメモリコントローラ２００は、例えば５サイクルにわたってアドレス（ＡＤＤ：カラムアドレス、ロウアドレス）を発行すると共に、信号ＡＬＥをアサート（“Ｈ”レベル）する。これらのコマンド及びアドレスは例えばアドレスレジスタ１５０及びコマンドレジスタ１６０にそれぞれ格納される。
【００９５】
次にメモリコントローラ２００は、複数サイクルにわたって書込みデータＤinを出力する。この間、信号ＡＬＥ及びＣＬＥはネゲート（“Ｌ”レベル）される。ＮＡＮＤ型フラッシュメモリ１００で受信された書込みデータＤinは、センスアンプ１４０内のページバッファ（不図示）に保持される。
【００９６】
次にメモリコントローラ２００は、書込みコマンド“ＢＢＨ”を発行すると共に、ＣＬＥをアサートする。コマンド“ＢＢｈ”がコマンドレジスタ１６０に格納されたことに応答して、シーケンサ１７０は書込み動作（Ｓ１０００）を開始し、ＮＡＮＤ型フラッシュメモリ１００はビジー状態となる（ＲＢｎ＝“Ｌ”）。なおメモリコントローラ２００は、コマンド、アドレス、及びデータ等の信号を発行する度に、ＷＥｎをアサート（“Ｌ”レベル）する。そして、ＷＥｎがトグルされる度に、信号がＮＡＮＤ型フラッシュメモリ１００に取り込まれる。
【００９７】
＜１−３＞  効果  
上述した実施形態によれば、シーケンサ１７０は、プログラムループ数に応じて、ワード線ＷＬに電圧を転送する転送トランジスタへの制御電圧を変化させる。これにより、転送トランジスタに、適切に電圧を転送させることができる。
【００９８】
上述した実施形態に係る効果について説明する。本実施形態に係るＮＡＮＤ型フラッシュメモリ１００において、複数の転送トランジスタを介してワード線ＷＬに所望の電圧が印加される。
【００９９】
具体的には、図１１に示すように、電圧ＶＰＧＭは、ドライバ回路１３０内に設けられたトランジスタ１３１０、及びロウデコーダ１２０内に設けられたトランジスタ５０―０を介してワード線ＷＬに印加される。
【０１００】
図１２に示すように、電圧ＶＰＧＭを転送するために、転送トランジスタのゲートには、電圧ＶＰＧＭよりも大きな電圧ＶＰＧＭＨを印加する必要がある。しかし、種々の要因（例えば転送トランジスタの劣化）により、転送トランジスタの閾値が上昇してしまい、電圧ＶＰＧＭを適切に転送できなくなる可能性がある。そのため、予め電圧ＶＰＧＭＨをより大きい電圧ＶＰＧＭＨＨにしておくことも考えられる。しかしその場合、転送トランジスタのゲートへの負荷が増大し、転送トランジスタの劣化を早めてしまう可能性がある。その結果、転送トランジスタの閾値が上昇してしまい、電圧ＶＰＧＭを適切に転送できなくなる可能性がある。閾値とは、トランジスタをオン状態にするために必要な電圧を意味する。
【０１０１】
そのため、図１２に示すような方法では、書込み動作を繰り返すと適切な電圧をワード線ＷＬに転送できなくなるという問題が生じる可能性があった。
【０１０２】
そこで、図１３に示すように、上述した実施形態では、シーケンサ１７０は、転送トランジスタが劣化する前（閾値が低い状態）は、転送トランジスタのゲートに電圧ＶＰＧＭＨＨよりも低い電圧ＶＰＧＭＨＬを印加する。そして、シーケンサ１７０は、転送トランジスタが劣化した後（閾値が高い状態）は、転送トランジスタのゲートに電圧ＶＰＧＭＨＨを印加する。
【０１０３】
メモリセルトランジスタは、書込み回数（または消去回数）が増えるにつれ、プログラムループ数が減る傾向がある。そのため、本実施形態では、シーケンサ１７０は、プログラムループ数がある値以下か否かを判定することで、転送トランジスタの使用頻度、つまり転送トランジスタの劣化具合を判定している。
【０１０４】
これにより、転送トランジスタのゲートに不必要に大きな電圧を印加することがなくなるので、転送トランジスタの劣化を抑制することができる。その結果、書込み動作を繰り返しても、シーケンサ１７０は適切な電圧をワード線ＷＬに転送できる。
【０１０５】
＜１−４＞  第１実施形態の変形例１  
図１４を用いて、第１実施形態の変形例１の動作Ｓ１１００について説明する。
【０１０６】
動作Ｓ１１００は、図７のステップＳ１０１０後の動作が図７の動作と異なる。
【０１０７】
具体的には、シーケンサ１７０は、図７のステップＳ１０１０（図１４のステップＳ１１１０）の後、図７のステップＳ１００５ではなくて、図７のステップＳ１００２（図１４のステップＳ１１０２）を実行する。
【０１０８】
なお、図１４のステップＳ１１０２は、図７のステップＳ１００２と同様であり、図１４のステップＳ１１１０は、図７のステップＳ１０１０と同様である。
【０１０９】
＜１−５＞  第１実施形態の変形例２  
図１５を用いて、第１実施形態の変形例２の動作Ｓ１２００について説明する。
【０１１０】
動作Ｓ１２００は、図７のステップＳ１００２〜Ｓ１００４の動作が図７の動作と異なる。
【０１１１】
具体的には、シーケンサ１７０は、図７のステップＳ１００２（図１５のステップＳ１２０２）に相当する動作において、ステータスレジスタ１８０に記憶されたイレースループ数（後述するイレース動作の回数）が第３値以上か否かを判定する。第３値は、予め設定されていても良く、ユーザが任意に設定しても良い。
【０１１２】
シーケンサ１７０は、図７のステップＳ１００３（図１５のステップＳ１２０３）に相当する動作において、イレースループ数が第３値以上でないと判定する場合（ステップＳ１２０２、Ｎｏ）、プログラム動作時における信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨＬに設定する。
【０１１３】
シーケンサ１７０は、図７のステップＳ１００４（図１５のステップＳ１２０４）に相当する動作において、イレースループ数が第３値以上であると判定する場合（ステップＳ１２０２、Ｙｅｓ）、プログラム動作時における信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨＨに設定する。
【０１１４】
以上のように、第１実施形態の変形例２では、シーケンサ１７０は、プログラムループ数ではなく、イレースループ数によって、転送トランジスタの劣化具合を判定している。
【０１１５】
メモリセルトランジスタは、書込み回数（または消去回数）が増えるにつれ、イレースループ数が増える傾向がある。そのため、本実施形態では、シーケンサ１７０は、イレースループ数がある値以上か否かを判定することで、転送トランジスタの使用頻度、つまり転送トランジスタの劣化具合を判定している。その結果、第１実施形態と同様の効果を得ることができる。
【０１１６】
＜１−６＞  第１実施形態の変形例３  
図１６を用いて、第１実施形態の変形例３の動作Ｓ１３００について説明する。
【０１１７】
動作Ｓ１３００は、図７のステップＳ１００２〜Ｓ１００４の動作が図７の動作と異なる。
【０１１８】
具体的には、シーケンサ１７０は、図７のステップＳ１００２（図１６のステップＳ１３０２）に相当する動作において、ステータスレジスタ１８０に記憶されたプログラムループ数が第１値以下か否か、またはステータスレジスタ１８０に記憶されたイレースループ数が第３値以上か否かを判定する。
【０１１９】
シーケンサ１７０は、図７のステップＳ１００３（図１６のステップＳ１３０３）に相当する動作において、プログラムループ数が第１値以下でなく、且つイレースループ数が第３値以上でないと判定する場合（ステップＳ１３０２、Ｎｏ）、プログラム動作時における信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨＬに設定する。
【０１２０】
シーケンサ１７０は、図７のステップＳ１００４（図１６のステップＳ１３０４）に相当する動作において、プログラムループ数が第１値以下、またはイレースループ数が第３値以上であると判定する場合（ステップＳ１３０２、Ｙｅｓ）、プログラム動作時における信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨＨに設定する。
【０１２１】
なお、シーケンサ１７０は、ステップＳ１３０２において、プログラムループ数が第１値以下、且つイレースループ数が第３値以上か否かを判定しても良い。
【０１２２】
この場合、シーケンサ１７０は、ステップＳ１３０３において、プログラムループ数が第１値以下でない、またはイレースループ数が第３値以上でないと判定する場合（ステップＳ１３０２、Ｎｏ）、プログラム動作時における信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨＬに設定する。更に、シーケンサ１７０は、ステップＳ１３０４において、プログラムループ数が第１値以下、且つイレースループ数が第３値以上であると判定する場合（ステップＳ１３０２、Ｙｅｓ）、プログラム動作時における信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨＨに設定する。
【０１２３】
＜１−７＞  第１実施形態の変形例４
図１７を用いて、第１実施形態の変形例４の動作Ｓ１４００について説明する。
【０１２４】
動作Ｓ１４００は、図１６のステップＳ１０１０後の動作が図１６の動作と異なる。
【０１２５】
具体的には、シーケンサ１７０は、図１６のステップＳ１０１０（図１７のステップＳ１１１０）の後、図１６のステップＳ１００５ではなくて、図１６のステップＳ１３０２（図１７のステップＳ１４０２）を実行する。
【０１２６】
なお、図１７のステップＳ１４０２は、図１６のステップＳ１３０２と同様であり、図１７のステップＳ１１１０は、図１６のステップＳ１０１０と同様である。
【０１２７】
また、シーケンサ１７０は、ステップＳ１４０２において、プログラムループ数が第１値以下、且つイレースループ数が第３値以上か否かを判定しても良い。
【０１２８】
＜１−８＞  第１実施形態の変形例５
尚、上述した第１実施形態に係るＴＳＦドライバ１３４は、電圧ＶＰＧＭの転送用の電圧として、２種類の電圧ＶＰＧＭＨＬ及びＶＰＧＭＨＨを生成するように構成されている。しかし、ＴＳＦドライバ１３４は、電圧ＶＰＧＭの転送用の電圧として、３種類以上の電圧を生成するように構成されていても良い。以下に図１８を用いて、３種類の電圧を生成する場合についての具体的な動作について説明する。
【０１２９】
［Ｓ１５０２］
シーケンサ１７０は、メモリコントローラ２００からライトコマンドを受信したと判定する場合（ステップＳ１００１、Ｙｅｓ）、ステータスレジスタ１８０に記憶されているプログラムループ数が複数の範囲（本例では例えば３つの範囲）のうち、どの範囲に属するかを判定する。
【０１３０】
一例としては、第１範囲〜第３範囲の３つの範囲が用意される。そして、シーケンサ１７０は、プログラムループ数が第Ａ値以下の場合は、第１範囲として認定し、プログラムループ数が第Ａ値より大きく、第Ｂ値以下の場合は、第２範囲として認定し、プログラムループ数が第Ｂ値よりも大きい場合は、第３範囲として認定する。第Ａ値、及び第Ｂ値は、予め設定されていても良く、ユーザが任意に設定しても良い。
【０１３１】
［Ｓ１５０３］
シーケンサ１７０は、プログラムループ数がどの範囲に属するかを判定すると、プログラム動作時における信号ＶＢＳＴ及びＶＲＤＥＣの電圧を決定する。
【０１３２】
具体的には、シーケンサ１７０は、プログラムループ数が第３範囲に属すると判定する場合は、信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨ３（ＶＰＧＭ＜ＶＰＧＭＨ３）に設定する。シーケンサ１７０は、プログラムループ数が第２範囲に属すると判定する場合は、信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨ２（ＶＰＧＭＨ３＜ＶＰＧＭＨ２）に設定する。シーケンサ１７０は、プログラムループ数が第１範囲に属すると判定する場合は、信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨ１（ＶＰＧＭＨ２＜ＶＰＧＭＨ１）に設定する。
【０１３３】
このようにして、電圧ＶＰＧＭの転送用の電圧として、３種類の電圧を生成するように構成されていても良い。
【０１３４】
なお、ここでは簡単のため電圧ＶＰＧＭの転送用の電圧として、３種類の電圧を生成する方法について記載したが、同様にして４種類以上の電圧を生成しても良い。
【０１３５】
上記ステップＳ１５０２は、図１４のステップＳ１１０２に置き換え可能である。そして、上記ステップＳ１５０３は、図１４のステップＳ１００３、及びＳ１００４に置き換え可能である。
【０１３６】
＜１−９＞  第１実施形態の変形例６
図１９を用いて、イレースループ数に基づいて、電圧ＶＰＧＭの転送用の電圧として、３種類の電圧を生成する場合について説明する。
【０１３７】
［Ｓ１６０２］
シーケンサ１７０は、メモリコントローラ２００からライトコマンドを受信したと判定する場合（ステップＳ１００１、Ｙｅｓ）、ステータスレジスタ１８０に記憶されているイレースループ数が複数の範囲（本例では例えば３つの範囲）のうち、どの範囲に属するかを判定する。
【０１３８】
一例としては、第４範囲〜第６範囲の３つの範囲が用意される。そして、シーケンサ１７０は、イレースループ数が第Ｃ値以下の場合は、第４範囲として認定し、イレースループ数が第Ｃ値より大きく、第Ｄ値以下の場合は、第５範囲として認定し、イレースループ数が第Ｄ値よりも大きい場合は、第６範囲として認定する。第Ｃ値、及び第Ｄ値は、予め設定されていても良く、ユーザが任意に設定しても良い。
【０１３９】
［Ｓ１６０３］
シーケンサ１７０は、イレースループ数がどの範囲に属するかを判定すると、プログラム動作時における信号ＶＢＳＴ及びＶＲＤＥＣの電圧を決定する。
【０１４０】
具体的には、シーケンサ１７０は、イレースループ数が第４範囲に属すると判定する場合は、信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨ４（ＶＰＧＭ＜ＶＰＧＭＨ４）に設定する。シーケンサ１７０は、イレースループ数が第５範囲に属すると判定する場合は、信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨ５（ＶＰＧＭＨ４＜ＶＰＧＭＨ５）に設定する。シーケンサ１７０は、イレースループ数が第６範囲に属すると判定する場合は、信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨ６（ＶＰＧＭＨ５＜ＶＰＧＭＨ６）に設定する。
【０１４１】
このようにして、電圧ＶＰＧＭの転送用の電圧として、３種類の電圧を生成するように構成されていても良い。
【０１４２】
なお、ここでは簡単のため電圧ＶＰＧＭの転送用の電圧として、３種類の電圧を生成する方法について記載したが、同様にして４種類以上の電圧を生成しても良い。
【０１４３】
＜２＞第２実施形態
第２実施形態について説明する。第２実施形態では、信号ＶＢＳＴと信号ＶＲＤＥＣとを別々に制御する場合について説明する。尚、第２実施形態に係る記憶装置の基本的な構成及び基本的な動作は、上述した第１実施形態に係る記憶装置と同様である。従って、上述した第１実施形態で説明した事項及び上述した第１実施形態から容易に類推可能な事項についての説明は省略する。
【０１４４】
＜２−１＞  ＴＳＦドライバ  
図２０を用いて、第２実施形態に係るＮＡＮＤ型フラッシュメモリ１００のＴＳＦドライバ１３４について説明する。
【０１４５】
第２実施形態に係るＮＡＮＤ型フラッシュメモリ１００のＴＳＦドライバ１３４は、第３ドライバ１３４２と、第４ドライバ１３４３を備えている。第３ドライバ１３４２、及び第４ドライバ１３４３の構成は、第１ドライバ１３４０の構成と同様である。シーケンサ１７０は、第３ドライバ１３４２、及び第４ドライバ１３４３を独立して制御可能である。第３ドライバ１３４２は、シーケンサ１７０からの制御信号に基づき、電圧ＶＰＧＭＨＬまたはＶＰＧＭＨＨを信号ＶＲＤＥＣとして、ロウデコーダ１２０に供給する。第４ドライバ１３４３は、シーケンサ１７０からの制御信号に基づき、電圧ＶＰＧＭＨＬまたはＶＰＧＭＨＨを信号ＶＢＳＴとして、第１レベルシフタ１３１１に供給する。
【０１４６】
＜２−２＞  動作  
図２１及び図２２を用いて、第２実施形態に係る書込み動作（Ｓ２０００）のフローチャートについて説明する。
【０１４７】
［Ｓ１００１］
シーケンサ１７０は、既に説明したステップＳ１００１と同様の動作をする。
【０１４８】
［Ｓ２００２］
シーケンサ１７０は、メモリコントローラ２００からライトコマンドを受信したと判定する場合（ステップＳ１００１、Ｙｅｓ）、ステータスレジスタ１８０に記憶されている第１プログラムループ数が第４値以下か否かを判定する。例えば、第２実施形態では、ステータスレジスタ１８０に、ブロックＢＬＫ毎の最新のプログラムループ数が記憶される。各プログラムループ数は、例えばブロックアドレスと関連付けられてステータスレジスタ１８０に記憶される。例えば、第１プログラムループ数とは、ステータスレジスタ１８０に記憶されている複数のプログラムループ数の中で最小のプログラムループ数のことである。第４値は、予め設定されていても良く、ユーザが任意に設定しても良い。
【０１４９】
［Ｓ２００３］
シーケンサ１７０は、第１プログラムループ数が第４値以下でないと判定する場合（ステップＳ２００２、Ｎｏ）、プログラム動作時における信号ＶＢＳＴを電圧ＶＰＧＭＨＬに設定する。具体的には、シーケンサ１７０は、プログラム動作時に、第４ドライバ１３４３に供給する信号ＶＰＨを“Ｈ”レベルにし、信号ＶＰＨＬを“Ｈ”レベルにし、信号ＶＰＨＨを“Ｌ”レベルにする。
【０１５０】
［Ｓ２００４］
シーケンサ１７０は、第１プログラムループ数が第４値以下であると判定する場合（ステップＳ２００２、Ｙｅｓ）、プログラム動作時における信号ＶＢＳＴを電圧ＶＰＧＭＨＨに設定する。具体的には、シーケンサ１７０は、プログラム動作時に、第４ドライバ１３４３に供給する信号ＶＰＨを“Ｈ”レベルにし、信号ＶＰＨＬを“Ｌ”レベルにし、信号ＶＰＨＨを“Ｈ”レベルにする。
【０１５１】
［Ｓ２００５］
シーケンサ１７０は、ステータスレジスタ１８０に記憶されている第２プログラムループ数が第５値以下か否かを判定する。第２プログラムループ数とは、ステップＳ１００１において受信したライトコマンドに対応するブロックアドレスと同じブロックアドレスに係るプログラムループ数のことである。第５値は、予め設定されていても良く、ユーザが任意に設定しても良い。
【０１５２】
［Ｓ２００６］
シーケンサ１７０は、第２プログラムループ数が第５値以下でないと判定する場合（ステップＳ２００５、Ｎｏ）、プログラム動作時における信号ＶＲＤＥＣを電圧ＶＰＧＭＨＬに設定する。具体的には、シーケンサ１７０は、プログラム動作時に、第３ドライバ１３４２に供給する信号ＶＰＨを“Ｈ”レベルにし、信号ＶＰＨＬを“Ｈ”レベルにし、信号ＶＰＨＨを“Ｌ”レベルにする。
【０１５３】
［Ｓ２００７］
シーケンサ１７０は、第２プログラムループ数が第５値以下であると判定する場合（ステップＳ２００５、Ｙｅｓ）、プログラム動作時における信号ＶＲＤＥＣを電圧ＶＰＧＭＨＨに設定する。具体的には、シーケンサ１７０は、プログラム動作時に、第３ドライバ１３４２に供給する信号ＶＰＨを“Ｈ”レベルにし、信号ＶＰＨＬを“Ｌ”レベルにし、信号ＶＰＨＨを“Ｈ”レベルにする。
【０１５４】
［Ｓ２００８］
シーケンサ１７０は、ステップＳ２００２〜Ｓ２００７によって決定された設定に基づきプログラム動作を行う。図２３にプログラム動作の基本的な動作波形を示している。基本的な動作に関しては図８で示した動作と同様である。図２３に示すように、信号ＶＢＳＴと信号ＶＲＤＥＣとは別々に制御可能である。
【０１５５】
具体的には、時刻Ｔ０〜時刻Ｔ６において、シーケンサ１７０は、信号ＶＢＳＴの電圧を電圧ＶＰＧＭＨＨ、且つ信号ＶＲＤＥＣの電圧を電圧ＶＰＧＭＨＬとすることが可能である。
【０１５６】
［Ｓ１００６］〜［Ｓ１０１０］
シーケンサ１７０は、既に説明したステップＳ１００６〜Ｓ１０１０と同様の動作をする。
【０１５７】
なお、ステップＳ２００２〜Ｓ２００４と、ステップＳ２００５〜Ｓ２００７と、の実行順序は入れ替えても良い。以下、ステップＳ２００２〜Ｓ２００４（と同様のステップ）とステップＳ２００５〜Ｓ２００７（と同様のステップ）とを含む他の動作においても同様にステップＳ２００２〜Ｓ２００４と、ステップＳ２００５〜Ｓ２００７との実行順序は入れ替えても良い。
【０１５８】
＜２−３＞  効果  
上述した実施形態によれば、シーケンサ１７０は、プログラムループ数に応じて、信号ＶＢＳＴ及びＶＲＤＥＣの電圧をそれぞれ変化させる。これにより、転送トランジスタに、適切に電圧を転送させることができる。
【０１５９】
上述した実施形態に係る効果について説明する。
【０１６０】
図２４に示すように、電圧ＶＰＧＭは、ドライバ回路１３０内に設けられたトランジスタ１３１０、及びロウデコーダ１２０内に設けられたトランジスタ５０を介してワード線ＷＬに印加される。
【０１６１】
しかしながら、トランジスタ１３１０が電圧ＶＰＧＭを転送する回数は、トランジスタ５０が電圧ＶＰＧＭを転送する回数よりも多い。第１の実施形態でも説明したように、例えば信号線ＣＧ０には、４つのブロックＢＬＫ０〜ＢＬＫ３に対応するトランジスタ５０−０（ＢＬＫ０〜ＢＬＫ３）が接続されている。しかし、信号線ＣＧ０に接続されるトランジスタ１３１０は実質的に１つ（トランジスタ１３１０は直列に複数設けられても良いが、実質的に１つのトランジスタとして動作する）である。例えば、ブロックＢＬＫ０のワード線ＷＬ０と、ブロックＢＬＫ１のワード線ＷＬ０とに１回ずつ電圧ＶＰＧＭが供給されることがある。この場合、トランジスタ５０−０（ＢＬＫ０）と、トランジスタ５０−０（ＢＬＫ０）と、はそれぞれ１回ずつ電圧ＶＰＧＭを転送することになる。しかし、信号線ＣＧ０に接続されるトランジスタ１３１０は２回電圧ＶＰＧＭを転送することになる。このように、トランジスタ１３１０が電圧ＶＰＧＭを転送する回数は、トランジスタ５０が電圧ＶＰＧＭを転送する回数よりも多い。そのため、トランジスタ１３１０とトランジスタ５０と、の使用頻度の差により、劣化の度合いも異なる可能性がある。
【０１６２】
そこで、本実施形態のシーケンサ１７０は、４つのブロックＢＬＫ０〜ＢＬＫ３におけるプログラムループ数のうち、最も少ないプログラムループ数（第１プログラムループ数）を参照することで、トランジスタ１３１０の劣化具合を判定している。また、本実施形態のシーケンサ１７０は、ブロックＢＬＫ毎のプログラムループ数（第２プログラムループ数）を参照することで、書込み動作対象となったブロックＢＬＫのトランジスタ５０の劣化具合を判定している。
【０１６３】
これにより、各転送トランジスタのゲートに不必要に大きな電圧を印加することがなくなるので、各転送トランジスタの劣化を抑制することができる。その結果、書込み動作を繰り返しても、シーケンサ１７０は適切な電圧をワード線ＷＬに転送できる。
【０１６４】
＜２−４＞  第２実施形態の変形例１
図２５及び図２６を用いて、第２実施形態の変形例１の動作Ｓ２１００について説明する。
【０１６５】
動作Ｓ２１００は、図２２のステップＳ１０１０後の動作が図２２の動作と異なる。
【０１６６】
具体的には、シーケンサ１７０は、図２２のステップＳ１０１０（図２６のステップＳ２１１０）の後、図２２のステップＳ２００８ではなくて、図２１のステップＳ２００２（図２５のステップＳ２１０２）を実行する。
【０１６７】
なお、図２５のステップＳ２１０２は、図２１のステップＳ２００２と同様であり、図２６のステップＳ２１１０は、図２２のステップＳ１０１０と同様である。
【０１６８】
＜２−５＞  第１実施形態の変形例２  
図２７を用いて、第２実施形態の変形例２の動作Ｓ２２００について説明する。
【０１６９】
動作Ｓ２２００は、図２１のステップＳ２００２〜Ｓ２００７の動作が図２１の動作と異なる。
【０１７０】
具体的には、シーケンサ１７０は、図２１のステップＳ２００２（図２７のステップＳ２２０２）に相当する動作において、ステータスレジスタ１８０に記憶された第１イレースループ数が第６値以上か否かを判定する。例えば、第２実施形態の変形例２では、ステータスレジスタ１８０に、ブロックＢＬＫ毎の最新のイレースループ数が記憶される。各イレースループ数は、例えばブロックアドレスと関連付けられてステータスレジスタ１８０に記憶される。例えば、第１イレースループ数とは、ステータスレジスタ１８０に記憶されている複数のイレースループ数の中で最小のイレースループ数のことである。第６値は、予め設定されていても良く、ユーザが任意に設定しても良い。
【０１７１】
シーケンサ１７０は、図２１のステップＳ２００３（図２７のステップＳ２２０３）に相当する動作において、第１イレースループ数が第６値以上でないと判定する場合（ステップＳ２２０２、Ｎｏ）、プログラム動作時における信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨＬに設定する。
【０１７２】
シーケンサ１７０は、図２１のステップＳ２００４（図２７のステップＳ２２０４）に相当する動作において、第１イレースループ数が第６値以上であると判定する場合（ステップＳ２２０２、Ｙｅｓ）、プログラム動作時における信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨＨに設定する。
【０１７３】
シーケンサ１７０は、図２１のステップＳ２００５（図２７のステップＳ２２０５）に相当する動作において、ステータスレジスタ１８０に記憶された第２イレースループ数が第７値以上か否かを判定する。例えば、第２イレースループ数とは、ステップＳ１００１において受信したライトコマンドに対応するブロックアドレスと同じブロックアドレスに係るイレースループ数のことである。第７値は、予め設定されていても良く、ユーザが任意に設定しても良い。
【０１７４】
シーケンサ１７０は、図２１のステップＳ２００６（図２７のステップＳ２２０６）に相当する動作において、第２イレースループ数が第７値以上でないと判定する場合（ステップＳ２２０５、Ｎｏ）、プログラム動作時における信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨＬに設定する。
【０１７５】
シーケンサ１７０は、図２１のステップＳ２００７（図２７のステップＳ２２０７）に相当する動作において、第２イレースループ数が第７値以上であると判定する場合（ステップＳ２２０５、Ｙｅｓ）、プログラム動作時における信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨＨに設定する。
【０１７６】
なお、ステップＳ２２０２〜Ｓ２２０４と、ステップＳ２２０５〜Ｓ２２０７と、の実行順序は入れ替えても良い。
【０１７７】
以上のように、第１実施形態の変形例２では、シーケンサ１７０は、プログラムループ数ではなく、イレースループ数によって、転送トランジスタの劣化具合を判定している。
【０１７８】
＜２−６＞  第２実施形態の変形例３  
図２８を用いて、第２実施形態の変形例３の動作Ｓ２３００について説明する。
【０１７９】
動作Ｓ２３００は、図２１のステップＳ２００２〜Ｓ２００７の動作が図２１の動作と異なる。
【０１８０】
具体的には、シーケンサ１７０は、図２１のステップＳ２００２（図２８のステップＳ２３０２）に相当する動作において、ステータスレジスタ１８０に記憶された第１プログラムループ数が第４値以下か否か、またはステータスレジスタ１８０に記憶された第１イレースループ数が第６値以上か否かを判定する。
【０１８１】
シーケンサ１７０は、図２１のステップＳ２００３（図２８のステップＳ２３０３）に相当する動作において、第１プログラムループ数が第４値以下でなく、且つ第１イレースループ数が第６値以上でないと判定する場合（ステップＳ２３０２、Ｎｏ）、プログラム動作時における信号ＶＢＳＴを電圧ＶＰＧＭＨＬに設定する。
【０１８２】
シーケンサ１７０は、図２１のステップＳ２００４（図２８のステップＳ２３０４）に相当する動作において、第１プログラムループ数が第４値以下、または第１イレースループ数が第６値以上であると判定する場合（ステップＳ２３０２、Ｙｅｓ）、プログラム動作時における信号ＶＢＳＴを電圧ＶＰＧＭＨＨに設定する。
【０１８３】
シーケンサ１７０は、図２１のステップＳ２００５（図２８のステップＳ２３０５）に相当する動作において、ステータスレジスタ１８０に記憶された第２プログラムループ数が第５値以下か否か、またはステータスレジスタ１８０に記憶された第２イレースループ数が第７値以上か否かを判定する。
【０１８４】
シーケンサ１７０は、図２１のステップＳ２００６（図２８のステップＳ２３０６）に相当する動作において、第２プログラムループ数が第５値以下でなく、且つ第２イレースループ数が第７値以上でないと判定する場合（ステップＳ２３０５、Ｎｏ）、プログラム動作時における信号ＶＲＤＥＣを電圧ＶＰＧＭＨＬに設定する。
【０１８５】
シーケンサ１７０は、図２１のステップＳ２００７（図２８のステップＳ２３０７）に相当する動作において、第２プログラムループ数が第５値以下、または第２イレースループ数が第７値以上であると判定する場合（ステップＳ２３０５、Ｙｅｓ）、プログラム動作時における信号ＶＲＤＥＣを電圧ＶＰＧＭＨＨに設定する。
【０１８６】
なお、ステップＳ２３０２〜Ｓ２３０４と、ステップＳ２３０５〜Ｓ２３０７と、の実行順序は入れ替えても良い。以下、ステップＳ２２０２〜Ｓ２２０４とステップＳ２２０５〜Ｓ２２０７とを含む他の動作においても同様にステップＳ２２０２〜Ｓ２２０４と、ステップＳ２２０５〜Ｓ２２０７との実行順序は入れ替えても良い。
【０１８７】
なお、シーケンサ１７０は、ステップＳ２３０２において、第１プログラムループ数が第４値以下、且つ第１イレースループ数が第６値以上か否かを判定しても良い。
【０１８８】
この場合、シーケンサ１７０は、ステップＳ２３０３において、第１プログラムループ数が第４値以下でない、または第１イレースループ数が第６値以上でないと判定する場合（ステップＳ２３０２、Ｎｏ）、プログラム動作時における信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨＬに設定する。更に、シーケンサ１７０は、ステップＳ２３０４において、第１プログラムループ数が第４値以下、且つ第１イレースループ数が第６値以上であると判定する場合（ステップＳ２３０２、Ｙｅｓ）、プログラム動作時における信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨＨに設定する。
【０１８９】
また、シーケンサ１７０は、ステップＳ２３０５において、第２プログラムループ数が第５値以下、且つ第２イレースループ数が第７値以上か否かを判定しても良い。
【０１９０】
この場合、シーケンサ１７０は、ステップＳ２３０６において、第２プログラムループ数が第５値以下でない、または第２イレースループ数が第７値以上でないと判定する場合（ステップＳ２３０５、Ｎｏ）、プログラム動作時における信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨＬに設定する。更に、シーケンサ１７０は、ステップＳ２３０７において、第２プログラムループ数が第５値以下、且つ第２イレースループ数が第７値以上であると判定する場合（ステップＳ２３０５、Ｙｅｓ）、プログラム動作時における信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨＨに設定する。
【０１９１】
＜２−７＞  第２実施形態の変形例４
図２９及び図３０を用いて、第２実施形態の変形例４の動作Ｓ２４００について説明する。
【０１９２】
動作Ｓ２４００は、図２８のステップＳ１０１０後の動作が図２８の動作と異なる。
【０１９３】
具体的には、シーケンサ１７０は、図２８のステップＳ１０１０（図３０のステップＳ２４１０）の後、図２８のステップＳ２００８ではなくて、図２８のステップＳ２３０２（図２９のステップＳ２４０２）を実行する。
【０１９４】
なお、図２９のステップＳ２４０２は、図２８のステップＳ２３０２と同様であり、図３０のステップＳ２４１０は、図２８のステップＳ１０１０と同様である。
【０１９５】
また、シーケンサ１７０は、ステップＳ２４０２において、ステップＳ２３０２と同様に第１プログラムループ数が第４値以下、且つ第１イレースループ数が第６値以上か否かを判定しても良い。
【０１９６】
＜２−８＞  第２実施形態の変形例５
図３１を用いて、電圧ＶＰＧＭの転送用の電圧として、３種類の電圧を生成する場合についての具体的な動作について説明する。
【０１９７】
［Ｓ２５０２］
シーケンサ１７０は、メモリコントローラ２００からライトコマンドを受信したと判定する場合（ステップＳ１００１、Ｙｅｓ）、ステータスレジスタ１８０に記憶されている第１プログラムループ数が複数の範囲（本例では例えば３つの範囲）のうち、どの範囲に属するかを判定する。
【０１９８】
一例としては、第７範囲〜第９範囲の３つの範囲が用意される。そして、シーケンサ１７０は、第１プログラムループ数が第Ｅ値以下の場合は、第７範囲として認定し、第１プログラムループ数が第Ｅ値より大きく、第Ｆ値以下の場合は、第８範囲として認定し、第１プログラムループ数が第Ｆ値よりも大きい場合は、第９範囲として認定する。第Ｅ値、及び第Ｆ値は、予め設定されていても良く、ユーザが任意に設定しても良い。
【０１９９】
［Ｓ２５０３］
シーケンサ１７０は、第１プログラムループ数がどの範囲に属するかを判定すると、プログラム動作時における信号ＶＢＳＴの電圧を決定する。
【０２００】
具体的には、シーケンサ１７０は、第１プログラムループ数が第９範囲に属すると判定する場合は、信号ＶＢＳＴを電圧ＶＰＧＭＨ９（ＶＰＧＭ＜ＶＰＧＭＨ９）に設定する。シーケンサ１７０は、第１プログラムループ数が第８範囲に属すると判定する場合は、信号ＶＢＳＴを電圧ＶＰＧＭＨ８（ＶＰＧＭＨ９＜ＶＰＧＭＨ８）に設定する。シーケンサ１７０は、第１プログラムループ数が第７範囲に属すると判定する場合は、信号ＶＢＳＴを電圧ＶＰＧＭＨ７（ＶＰＧＭＨ８＜ＶＰＧＭＨ７）に設定する。
【０２０１】
なお、ここでは簡単のため電圧ＶＰＧＭの転送時の信号ＶＢＳＴの電圧として、３種類の電圧を生成する方法について記載したが、同様にして４種類以上の電圧を生成しても良い。
【０２０２】
［Ｓ２５０４］
シーケンサ１７０は、ステータスレジスタ１８０に記憶されている第２プログラムループ数が複数の範囲（本例では例えば３つの範囲）のうち、どの範囲に属するかを判定する。
【０２０３】
一例としては、第１０範囲〜第１２範囲の３つの範囲が用意される。そして、シーケンサ１７０は、第２プログラムループ数が第Ｇ値以下の場合は、第１０範囲として認定し、第２プログラムループ数が第Ｇ値より大きく、第Ｈ値以下の場合は、第１１範囲として認定し、第２プログラムループ数が第Ｈ値よりも大きい場合は、第１２範囲として認定する。第Ｇ値、及び第Ｈ値は、予め設定されていても良く、ユーザが任意に設定しても良い。
【０２０４】
［Ｓ２５０５］
シーケンサ１７０は、第２プログラムループ数がどの範囲に属するかを判定すると、プログラム動作時における信号ＶＲＤＥＣの電圧を決定する。
【０２０５】
具体的には、シーケンサ１７０は、第２プログラムループ数が第１２範囲に属すると判定する場合は、信号ＶＲＤＥＣを電圧ＶＰＧＭＨ１２（ＶＰＧＭ＜ＶＰＧＭＨ１２）に設定する。シーケンサ１７０は、第２プログラムループ数が第１１範囲に属すると判定する場合は、信号ＶＲＤＥＣを電圧ＶＰＧＭＨ１１（ＶＰＧＭＨ１２＜ＶＰＧＭＨ１１）に設定する。シーケンサ１７０は、第２プログラムループ数が第１０範囲に属すると判定する場合は、信号ＶＲＤＥＣを電圧ＶＰＧＭＨ１０（ＶＰＧＭＨ１１＜ＶＰＧＭＨ１０）に設定する。
【０２０６】
なお、ここでは簡単のため電圧ＶＰＧＭの転送時の信号ＶＲＤＥＣの電圧として、３種類の電圧を生成する方法について記載したが、同様にして４種類以上の電圧を生成しても良い。
【０２０７】
上記ステップＳ２５０２は、図２４のステップＳ２１０２に置き換え可能である。そして、上記ステップＳ２５０３は、図２４のステップＳ２００３、及びＳ２００４に置き換え可能である。上記ステップＳ２５０４は、図２４のステップＳ２００５に置き換え可能である。そして、上記ステップＳ２５０５は、図２４のステップＳ２００６、及びＳ２００７に置き換え可能である。
【０２０８】
＜２−９＞  第２実施形態の変形例６
図３２を用いて、イレースループ数に基づいて、電圧ＶＰＧＭの転送用の電圧として、３種類の電圧を生成する場合についての具体的な動作について説明する。
【０２０９】
［Ｓ２６０２］
シーケンサ１７０は、メモリコントローラ２００からライトコマンドを受信したと判定する場合（ステップＳ１００１、Ｙｅｓ）、ステータスレジスタ１８０に記憶されている第１イレースループ数が複数の範囲（本例では例えば３つの範囲）のうち、どの範囲に属するかを判定する。
【０２１０】
一例としては、第１３範囲〜第１５範囲の３つの範囲が用意される。そして、シーケンサ１７０は、第１イレースループ数が第Ｉ値以下の場合は、第１３範囲として認定し、第１イレースループ数が第Ｉ値より大きく、第Ｊ値以下の場合は、第１４範囲として認定し、第１イレースループ数が第Ｊ値よりも大きい場合は、第１５範囲として認定する。第Ｉ値、及び第Ｊ値は、予め設定されていても良く、ユーザが任意に設定しても良い。
【０２１１】
［Ｓ２６０３］
シーケンサ１７０は、第１イレースループ数がどの範囲に属するかを判定すると、プログラム動作時における信号ＶＢＳＴの電圧を決定する。
【０２１２】
具体的には、シーケンサ１７０は、第１イレースループ数が第１３範囲に属すると判定する場合は、信号ＶＢＳＴを電圧ＶＰＧＭＨ１３（ＶＰＧＭ＜ＶＰＧＭＨ１３）に設定する。シーケンサ１７０は、第１イレースループ数が第１４範囲に属すると判定する場合は、信号ＶＢＳＴを電圧ＶＰＧＭＨ１４（ＶＰＧＭＨ１３＜ＶＰＧＭＨ１４）に設定する。シーケンサ１７０は、第１イレースループ数が第１５範囲に属すると判定する場合は、信号ＶＢＳＴを電圧ＶＰＧＭＨ１５（ＶＰＧＭＨ１４＜ＶＰＧＭＨ１５）に設定する。
【０２１３】
なお、ここでは簡単のため電圧ＶＰＧＭの転送時の信号ＶＢＳＴの電圧として、３種類の電圧を生成する方法について記載したが、同様にして４種類以上の電圧を生成しても良い。
【０２１４】
［Ｓ２６０４］
シーケンサ１７０は、ステータスレジスタ１８０に記憶されている第２イレースループ数が複数の範囲（本例では例えば３つの範囲）のうち、どの範囲に属するかを判定する。
【０２１５】
一例としては、第１６範囲〜第１８範囲の３つの範囲が用意される。そして、シーケンサ１７０は、第２イレースループ数が第Ｋ値以下の場合は、第１６範囲として認定し、第２イレースループ数が第Ｋ値より大きく、第Ｌ値以下の場合は、第１７範囲として認定し、第２イレースループ数が第Ｌ値よりも大きい場合は、第１８範囲として認定する。第Ｋ値、及び第Ｌ値は、予め設定されていても良く、ユーザが任意に設定しても良い。
【０２１６】
［Ｓ２６０５］
シーケンサ１７０は、第２イレースループ数がどの範囲に属するかを判定すると、プログラム動作時における信号ＶＲＤＥＣの電圧を決定する。
【０２１７】
具体的には、シーケンサ１７０は、第２イレースループ数が第１６範囲に属すると判定する場合は、信号ＶＲＤＥＣを電圧ＶＰＧＭＨ１６（ＶＰＧＭ＜ＶＰＧＭＨ１６）に設定する。シーケンサ１７０は、第２イレースループ数が第１７範囲に属すると判定する場合は、信号ＶＲＤＥＣを電圧ＶＰＧＭＨ１７（ＶＰＧＭＨ１６＜ＶＰＧＭＨ１７）に設定する。シーケンサ１７０は、第２イレースループ数が第１８範囲に属すると判定する場合は、信号ＶＲＤＥＣを電圧ＶＰＧＭＨ１８（ＶＰＧＭＨ１７＜ＶＰＧＭＨ１８）に設定する。
【０２１８】
なお、ここでは簡単のため電圧ＶＰＧＭの転送時の信号ＶＲＤＥＣの電圧として、３種類の電圧を生成する方法について記載したが、同様にして４種類以上の電圧を生成しても良い。
【０２１９】
＜３＞第３実施形態
第３実施形態について説明する。第３実施形態では、メモリコントローラが信号ＶＢＳＴと信号ＶＲＤＥＣとを制御する場合について説明する。尚、第３実施形態に係る記憶装置の基本的な構成及び基本的な動作は、上述した第１実施形態及び第２実施形態に係る記憶装置と同様である。従って、上述した第１実施形態及び第２実施形態で説明した事項及び上述した第１実施形態及び第２実施形態から容易に類推可能な事項についての説明は省略する。
【０２２０】
＜３−１＞  動作  
第３実施形態に係る書込み動作（Ｓ３０００、Ｓ３１００）のフローチャートについて説明する。まず図３３を用いて、メモリコントローラ２００の動作（Ｓ３０００）について説明する。ここでは、簡単のため、動作の主体をプロセッサ２３０にしているが、これに限らない。
【０２２１】
［Ｓ３００１］
プロセッサ２３０は、書込み動作を行うか否かを判定する。
【０２２２】
［Ｓ３００２］
プロセッサ２３０は、書込み動作を行うと判定する場合（ステップＳ３００１、Ｙｅｓ）、ライトイレースサイクル数（ＷＥサイクル数）が第８値以上か否かを判定する。ライトイレースサイクル数とは、書込み動作及び消去動作を行った回数を示す。ＮＡＮＤ型フラッシュメモリ１００に対して、データの書込み動作及びデータの消去動作を行うと、ライトイレースサイクル数はインクリメントされる。このライトイレースサイクル数は、例えば内臓メモリ２２０等に記憶される。
【０２２３】
［Ｓ３００３］
プロセッサ２３０は、ライトイレースサイクル数が第８値以上ではないと判定する場合、信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨＬに設定する。具体的には、プロセッサ２３０は、ＮＡＮＤ型フラッシュメモリ１００に対して書込みコマンドを発行する際に、「信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨＬに設定する」という情報をシーケンサ１７０に供給する。
【０２２４】
［Ｓ３００４］
プロセッサ２３０は、ライトイレースサイクル数が第８値以上であると判定する場合、信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨＨに設定する。具体的には、プロセッサ２３０は、ＮＡＮＤ型フラッシュメモリ１００に対して書込みコマンドを発行する際に、「信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨＨに設定する」という情報をシーケンサ１７０に供給する。
【０２２５】
［Ｓ３００５］
プロセッサ２３０は、ＮＡＮＤ型フラッシュメモリ１００に対して、ステップＳ３００３またはＳ３００４によって得られた情報を含めた書込みコマンドシーケンスを発行する。
【０２２６】
次に、図３４を用いてＮＡＮＤ型フラッシュメモリ１００の動作Ｓ３１００について説明する。
【０２２７】
［Ｓ１００１］
シーケンサ１７０は、既に説明したステップＳ１００１と同様の動作をする。
【０２２８】
［Ｓ３１０５］
シーケンサ１７０は、プロセッサ２３０によって決定された設定に基づきプログラム動作を行う。
【０２２９】
［Ｓ１００６］〜［Ｓ１０１０］
シーケンサ１７０は、既に説明したステップＳ１００６〜Ｓ１０１０と同様の動作をする。
【０２３０】
＜３−２＞  コマンドシーケンス  
書込み動作時におけるコマンドシーケンスについて、図３５を用いて説明する。図３５に示すようにメモリコントローラ２００は、書込みコマンドＣＣＨを発行すると共に、信号ＣＬＥをアサート（“Ｈ”レベル）する。例えば、この書込みコマンドＣＣＨに、ステップＳ３００２〜Ｓ３００４にて決定した信号ＶＢＳＴ及びＶＲＤＥＣに関する情報が含まれている。勿論、ステップＳ３００２〜Ｓ３００４にて決定した信号ＶＢＳＴ及びＶＲＤＥＣに関する情報は、ＮＡＮＤ型フラッシュメモリ１００に伝われば良く、ＣＣＨとは異なるタイミングで発行されても良い。
【０２３１】
その後のコマンドシーケンスに関しては、図１０を用いて説明したシーケンスと同様である。図３５に示すコマンドＤＤＨは、図１０のコマンドＢＢＨに相当する。
【０２３２】
＜３−３＞  効果  
上述した実施形態によれば、シーケンサ１７０は、ライトイレースサイクル数に応じて、信号ＶＢＳＴ及びＶＲＤＥＣの電圧を変化させる。これにより、転送トランジスタに、適切に電圧を転送させることができる。
【０２３３】
上述したように、メモリセルトランジスタは、書込み回数（または消去回数）が増えるにつれ、転送トランジスタが劣化する傾向がある。そのため、本実施形態では、シーケンサ１７０は、ライトイレースサイクル数がある値以上か否かを判定することで、転送トランジスタの使用頻度、つまり転送トランジスタの劣化具合を判定している。
【０２３４】
＜３−４＞  第３実施形態の変形例１
第３実施形態の変形例１では、信号ＶＢＳＴと信号ＶＲＤＥＣとを別々に制御する場合について説明する。
【０２３５】
図３６を用いて、第３実施形態の変形例１のプロセッサ２３０の動作Ｓ３２００について説明する。
【０２３６】
［Ｓ３００１］
プロセッサ２３０は、書込み動作を行うか否かを判定する。
【０２３７】
［Ｓ３２０２］
プロセッサ２３０は、書込み動作を行うと判定する場合（ステップＳ３００１、Ｙｅｓ）、第１ライトイレースサイクル数が第９値以上か否かを判定する。第３実施形態では、内蔵メモリ２２０に、ブロックＢＬＫ毎のライトイレースサイクル数が記憶される。各ライトイレースサイクル数は、例えばブロックアドレスと関連付けられて内蔵メモリ２２０に記憶される。第１ライトイレースサイクル数とは、内蔵メモリ２２０に記憶されている複数のライトイレースサイクル数の中で最小のライトイレースサイクル数のことである。第９値は、予め設定されていても良く、ユーザが任意に設定しても良い。
【０２３８】
［Ｓ３２０３］
プロセッサ２３０は、第１ライトイレースサイクル数が第９値以上ではないと判定する場合、信号ＶＢＳＴを電圧ＶＰＧＭＨＬに設定する。具体的には、プロセッサ２３０は、ＮＡＮＤ型フラッシュメモリ１００に対して書込みコマンドを発行する際に、「信号ＶＢＳＴを電圧ＶＰＧＭＨＬに設定する」という情報をシーケンサ１７０に供給する。
【０２３９】
［Ｓ３２０４］
プロセッサ２３０は、第１ライトイレースサイクル数が第９値以上であると判定する場合、信号ＶＢＳＴを電圧ＶＰＧＭＨＨに設定する。具体的には、プロセッサ２３０は、ＮＡＮＤ型フラッシュメモリ１００に対して書込みコマンドを発行する際に、「信号ＶＢＳＴを電圧ＶＰＧＭＨＨに設定する」という情報をシーケンサ１７０に供給する。
【０２４０】
［Ｓ３２０５］
プロセッサ２３０は、第２ライトイレースサイクル数が第１０値以上か否かを判定する。例えば、第２ライトイレースサイクル数とは、ＮＡＮＤ型フラッシュメモリ１００に送信するライトコマンドに対応するブロックアドレスと同じブロックアドレスに係るライトイレースサイクル数のことである。第１０値は、予め設定されていても良く、ユーザが任意に設定しても良い。
【０２４１】
［Ｓ３２０６］
プロセッサ２３０は、第２ライトイレースサイクル数が第１０値以上ではないと判定する場合、信号ＶＲＤＥＣを電圧ＶＰＧＭＨＬに設定する。具体的には、プロセッサ２３０は、ＮＡＮＤ型フラッシュメモリ１００に対して書込みコマンドを発行する際に、「信号ＶＲＤＥＣを電圧ＶＰＧＭＨＬに設定する」という情報をシーケンサ１７０に供給する。
【０２４２】
［Ｓ３２０７］
プロセッサ２３０は、第２ライトイレースサイクル数が第１０値以上であると判定する場合、信号ＶＲＤＥＣを電圧ＶＰＧＭＨＨに設定する。具体的には、プロセッサ２３０は、ＮＡＮＤ型フラッシュメモリ１００に対して書込みコマンドを発行する際に、「信号ＶＲＤＥＣを電圧ＶＰＧＭＨＨに設定する」という情報をシーケンサ１７０に供給する。
【０２４３】
続いて、プロセッサ２３０はステップＳ３００５を行う。
【０２４４】
これにより、第２実施形態と同様の効果を得ることが可能となる。
【０２４５】
なお、ステップＳ３２０２〜Ｓ３２０４と、ステップＳ３２０５〜Ｓ３２０７と、の実行順序は入れ替えて良い。
【０２４６】
＜３−５＞  第３実施形態の変形例２
図３７を用いて、電圧ＶＰＧＭの転送用の電圧として、３種類の電圧を生成する場合についての具体的な動作（Ｓ３３００）について説明する。
【０２４７】
［Ｓ３３０２］
プロセッサ２３０は、書込み動作を行うと判定する場合（ステップＳ３００１、Ｙｅｓ）、内臓メモリ２２０に記憶されているライトイレースサイクル数が複数の範囲（本例では例えば３つの範囲）のうち、どの範囲に属するかを判定する。
【０２４８】
一例としては、第１９範囲〜第２１範囲の３つの範囲が用意される。そして、プロセッサ２３０は、ライトイレースサイクル数が第Ｍ値以下の場合は、第１９範囲として認定し、ライトイレースサイクル数が第Ｍ値より大きく、第Ｎ値以下の場合は、第２０範囲として認定し、ライトイレースサイクル数が第Ｎ値よりも大きい場合は、第２１範囲として認定する。第Ｍ値、及び第Ｎ値は、予め設定されていても良く、ユーザが任意に設定しても良い。
【０２４９】
［Ｓ３３０３］
プロセッサ２３０は、ライトイレースサイクル数がどの範囲に属するかを判定すると、プログラム動作時における信号ＶＢＳＴ及びＶＲＤＥＣの電圧を決定する。
【０２５０】
具体的には、プロセッサ２３０は、ライトイレースサイクル数が第１９範囲に属すると判定する場合は、信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨ１９（ＶＰＧＭ＜ＶＰＧＭＨ１９）に設定する。プロセッサ２３０は、ライトイレースサイクル数が第２０範囲に属すると判定する場合は、信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨ２０（ＶＰＧＭＨ１９＜ＶＰＧＭＨ２０）に設定する。プロセッサ２３０は、ライトイレースサイクル数が第２１範囲に属すると判定する場合は、信号ＶＢＳＴ及びＶＲＤＥＣを電圧ＶＰＧＭＨ２１（ＶＰＧＭＨ２０＜ＶＰＧＭＨ２１）に設定する。
【０２５１】
このようにして、電圧ＶＰＧＭの転送用の電圧として、３種類の電圧を生成するように構成されていても良い。
【０２５２】
なお、ここでは簡単のため電圧ＶＰＧＭの転送用の電圧として、３種類の電圧を生成する方法について記載したが、同様にして４種類以上の電圧を生成しても良い。
【０２５３】
＜３−６＞  第３実施形態の変形例３
図３８を用いて、電圧ＶＰＧＭの転送用の電圧として、３種類の電圧を生成する場合についての具体的な動作（Ｓ３４００）について説明する。
【０２５４】
［Ｓ３４０２］
プロセッサ２３０は、書込み動作を行うと判定する場合（ステップＳ３００１、Ｙｅｓ）、内臓メモリ２２０に記憶されている第１ライトイレースサイクル数が複数の範囲（本例では例えば３つの範囲）のうち、どの範囲に属するかを判定する。
【０２５５】
一例としては、第２２範囲〜第２４範囲の３つの範囲が用意される。そして、プロセッサ２３０は、第１ライトイレースサイクル数が第Ｏ値以下の場合は、第２２範囲として認定し、第１ライトイレースサイクル数が第Ｏ値より大きく、第Ｐ値以下の場合は、第２３範囲として認定し、第１ライトイレースサイクル数が第Ｐ値よりも大きい場合は、第２４範囲として認定する。第Ｏ値、及び第Ｐ値は、予め設定されていても良く、ユーザが任意に設定しても良い。
【０２５６】
［Ｓ３４０３］
プロセッサ２３０は、第１ライトイレースサイクル数がどの範囲に属するかを判定すると、プログラム動作時における信号ＶＢＳＴの電圧を決定する。
【０２５７】
具体的には、プロセッサ２３０は、第１ライトイレースサイクル数が第２２範囲に属すると判定する場合は、信号ＶＢＳＴを電圧ＶＰＧＭＨ２２（ＶＰＧＭ＜ＶＰＧＭＨ２２）に設定する。プロセッサ２３０は、第１ライトイレースサイクル数が第２３範囲に属すると判定する場合は、信号ＶＢＳＴを電圧ＶＰＧＭＨ２３（ＶＰＧＭＨ２２＜ＶＰＧＭＨ２３）に設定する。プロセッサ２３０は、第１ライトイレースサイクル数が第２４範囲に属すると判定する場合は、信号ＶＢＳＴを電圧ＶＰＧＭＨ２４（ＶＰＧＭＨ２３＜ＶＰＧＭＨ２４）に設定する。
【０２５８】
このようにして、電圧ＶＰＧＭの転送用の電圧として、３種類の電圧を生成するように構成されていても良い。
【０２５９】
なお、ここでは簡単のため電圧ＶＰＧＭの転送用の電圧として、３種類の電圧を生成する方法について記載したが、同様にして４種類以上の電圧を生成しても良い。
【０２６０】
［Ｓ３４０４］
プロセッサ２３０は、内臓メモリ２２０に記憶されている第２ライトイレースサイクル数が複数の範囲（本例では例えば３つの範囲）のうち、どの範囲に属するかを判定する。
【０２６１】
一例としては、第２５範囲〜第２７範囲の３つの範囲が用意される。そして、プロセッサ２３０は、第２ライトイレースサイクル数が第Ｑ値以下の場合は、第２５範囲として認定し、第２ライトイレースサイクル数が第Ｑ値より大きく、第Ｒ値以下の場合は、第２６範囲として認定し、第２ライトイレースサイクル数が第Ｒ値よりも大きい場合は、第２７範囲として認定する。第Ｑ値、及び第Ｒ値は、予め設定されていても良く、ユーザが任意に設定しても良い。
【０２６２】
［Ｓ３４０５］
プロセッサ２３０は、第２ライトイレースサイクル数がどの範囲に属するかを判定すると、プログラム動作時における信号ＶＲＤＥＣの電圧を決定する。
【０２６３】
具体的には、プロセッサ２３０は、第２ライトイレースサイクル数が第２５範囲に属すると判定する場合は、信号ＶＲＤＥＣを電圧ＶＰＧＭＨ２５（ＶＰＧＭ＜ＶＰＧＭＨ２５）に設定する。プロセッサ２３０は、第２ライトイレースサイクル数が第２６範囲に属すると判定する場合は、信号ＶＲＤＥＣを電圧ＶＰＧＭＨ２６（ＶＰＧＭＨ２５＜ＶＰＧＭＨ２６）に設定する。プロセッサ２３０は、第２ライトイレースサイクル数が第２７範囲に属すると判定する場合は、信号ＶＲＤＥＣを電圧ＶＰＧＭＨ２７（ＶＰＧＭＨ２６＜ＶＰＧＭＨ２７）に設定する。
【０２６４】
このようにして、電圧ＶＰＧＭの転送用の電圧として、３種類の電圧を生成するように構成されていても良い。
【０２６５】
なお、ここでは簡単のため電圧ＶＰＧＭの転送用の電圧として、３種類の電圧を生成する方法について記載したが、同様にして４種類以上の電圧を生成しても良い。
【０２６６】
＜４＞第４実施形態
第４実施形態について説明する。第４実施形態では、消去動作に場合について説明する。尚、第４実施形態に係る記憶装置の基本的な構成及び基本的な動作は、上述した第１実施形態に係る記憶装置と同様である。従って、上述した第１実施形態で説明した事項及び上述した第１実施形態から容易に類推可能な事項についての説明は省略する。
【０２６７】
＜４−１＞  構成  
＜４−１−１＞  ドライバ回路  
第４実施形態に係るドライバ回路１３０は、ＣＧドライバ１３１、ＳＧＳドライバ１３２、ＳＧＤドライバ１３３、ＴＳＦドライバ１３４、ＴＳＦＥドライバ１３５、及びＷＥＬＬドライバ１３６を備えている。ＴＳＦＥドライバ１３５は、ＷＥＬＬドライバ１３６を制御する。ＷＥＬＬドライバ１３６は、ウェル配線ＣＰＷＥＬＬに電圧を供給する。
【０２６８】
図３９を用いて、ＴＳＦＥドライバ１３５、及びＷＥＬＬドライバ１３６について説明する。
【０２６９】
ＴＳＦＥドライバ１３５は、第５ドライバ１３５０を備えている。第５ドライバ１３５０は、シーケンサ１７０からの制御信号に基づき、電圧ＶＥＲＡＨＬまたはＶＥＲＡＨＨ（ＶＥＲＡＨＬ＜ＶＥＲＡＨＨ）を、信号ＶＢＳＴＥとしてＷＥＬＬドライバ１３６に供給する。
【０２７０】
ＷＥＬＬドライバ１３６は、高耐圧ｎチャネルＭＯＳトランジスタ１３６０と、第２レベルシフタ１３６１とを備えている。第２レベルシフタ１３６１は、ＴＳＦＥドライバ１３５から受信した信号ＶＢＳＴＥをトランジスタ１３６０に供給する。トランジスタ１３６０は、ウェル配線ＣＰＷＥＬＬに電圧を転送する。トランジスタ１３６０は一端がウェル配線ＣＰＷＥＬＬに接続され、他端に電圧が印加され、ゲートに信号ＶＢＳＴＥが供給される。図３９では簡単のため、電圧ＶＥＲＡを転送するためのトランジスタ１３６０のみを示している。しかし、これに限らず、ウェル配線ＣＰＷＥＬＬに各種電圧を印加するための高耐圧ｎチャネルＭＯＳトランジスタが設けられても良い。この高耐圧ｎチャネルＭＯＳトランジスタ１３６０を転送トランジスタとも記載する。
【０２７１】
なお、本例では、簡単のため１つのウェル配線ＣＰＷＥＬＬに１つのトランジスタ１３６０が接続されている。しかし、１つのウェル配線ＣＰＷＥＬＬに複数のトランジスタ１３６０が直列に接続されても良い。
【０２７２】
＜４−１−２＞  第５ドライバ  
次に、図４０を用いて、第５ドライバ１３５０について説明する。
【０２７３】
第５ドライバ１３５０は、高耐圧ｎチャネルＭＯＳトランジスタ１３５０−０〜１３５０−２を備えている。トランジスタ１３５０−０は、ノードＮ４を介して一端に電圧ＶＥＲＡが印加され、他端及びゲートがノードＮ５に接続され、他端及びゲートに信号ＶＥＨＬが供給される。トランジスタ１３５０−１は、一端がノードＮ５に接続され、他端及びゲートがノードＮ６に接続され、他端及びゲートに信号ＶＥＨが供給される。トランジスタ１３５０−２は、ノードＮ５を介して一端に電圧ＶＥＲＡが印加され、他端及びゲートがノードＮ５に接続され、他端及びゲートに信号ＶＥＨＨが供給される。
【０２７４】
信号ＶＥＨ、ＶＥＨＬ、及びＶＥＨＨはシーケンサ１７０から供給される。
【０２７５】
シーケンサ１７０は、電圧ＶＥＲＡＨＬを生成する場合、信号ＶＥＨを“Ｈ”レベルにし、信号ＶＥＨＬを“Ｈ”レベルにし、信号ＶＥＨＨを“Ｌ”レベルにする。それにより、ドライバ１３５０はノードＮ６に電圧ＶＥＲＡＨＬを供給する（矢印Ｃ参照）。
【０２７６】
シーケンサ１７０は、電圧ＶＥＲＡＨＨを生成する場合、信号ＶＥＨを“Ｈ”レベルにし、信号ＶＥＨＬを“Ｌ”レベルにし、信号ＶＥＨＨを“Ｈ”レベルにする。それにより、ドライバ１３５０はノードＮ６に電圧ＶＥＲＡＨＨを供給する（矢印Ｄ参照）。
【０２７７】
なお、ここでは、簡単のため、第５ドライバ１３５０が３つのトランジスタ１３５０−０〜１３５０−２を備えている場合について説明したが、これに限らない。第５ドライバ１３５０が、電圧ＶＥＲＡＨＬ及び電圧ＶＥＲＡＨＨを選択的に生成できる構成であればどのような回路でも良い。
【０２７８】
シーケンサ１７０が、どのように電圧ＶＥＲＡＨＬまたは電圧ＶＥＲＡＨＨを選択するかについては、後述する。
【０２７９】
＜４−２＞  動作  
＜４−２−１＞  フローチャート  
図３９を用いて、データ消去動作（Ｓ４０００）のフローチャートについて説明する。
【０２８０】
データ消去動作は、消去（イレース）動作と、消去ベリファイ（イレースベリファイ）動作と、含んでいる。
【０２８１】
［Ｓ４００１］
シーケンサ１７０は、メモリコントローラ２００からイレースコマンドを受信したか否かを判定する。
【０２８２】
［Ｓ４００２］
シーケンサ１７０は、メモリコントローラ２００からイレースコマンドを受信したと判定する場合（ステップＳ４００１、Ｙｅｓ）、ステータスレジスタ１８０に記憶されているイレースループ数が第３値以上か否かを判定する。イレースループ数については後述する。
【０２８３】
［Ｓ４００３］
シーケンサ１７０は、イレースループ数が第３値以上でないと判定する場合（ステップＳ４００２、Ｎｏ）、イレース動作時における信号ＶＢＳＴＥを電圧ＶＥＲＡＨＬに設定する。具体的には、シーケンサ１７０は、イレース動作時に、信号ＶＥＨを“Ｈ”レベルにし、信号ＶＥＨＬを“Ｈ”レベルにし、信号ＶＥＨＨを“Ｌ”レベルにする。
【０２８４】
［Ｓ４００４］
シーケンサ１７０は、イレースループ数が第３値以上であると判定する場合（ステップＳ４００２、Ｙｅｓ）、イレース動作時における信号ＶＢＳＴＥを電圧ＶＥＲＡＨＨに設定する。具体的には、シーケンサ１７０は、イレース動作時に、信号ＶＥＨを“Ｈ”レベルにし、信号ＶＥＨＬを“Ｌ”レベルにし、信号ＶＥＨＨを“Ｈ”レベルにする。
【０２８５】
［Ｓ４００５］
シーケンサ１７０は、イレース動作を行う。
【０２８６】
図４２を用いて、イレース動作の基本的な動作波形について説明する。
【０２８７】
［時刻Ｔ２０］〜［時刻Ｔ２１］
ドライバ１３５は、シーケンサ１７０からの信号に基づき、信号ＶＢＳＴＥを電圧ＶＥＲＡＨＬ（ＶＳＳ＜ＶＥＲＡＨＬ）または電圧ＶＥＲＡＨＨ（ＶＥＲＡＨＬ＜ＶＥＲＡＨＨ）に昇圧する。電圧ＶＥＲＡＨＬまたは電圧ＶＥＲＡＨＨは、トランジスタ１３６０をオン状態にする電圧である。
【０２８８】
［時刻Ｔ２１］〜［時刻Ｔ２２］
時刻Ｔ２１において、ドライバ１３６は、ウェル配線ＣＰＷＥＬＬに電圧ＶＥＲＡ（ＶＳＳ＜ＶＥＲＡ＜ＶＥＲＡＨＬ）を印加する。
【０２８９】
また、時刻Ｔ２１においてロウデコーダ１２０は、アドレスレジスタ１５０から与えられるブロックアドレスＢＡに従って、ブロックＢＬＫを選択する。そしてロウデコーダ１２０は、選択セレクトゲート線ＳＧＳ＿ＳＥＬに電圧ＶＥＲＡＧ（ＶＳＳ＜ＶＥＲＡＧ＜ＶＥＲＡ）を印加する。
【０２９０】
また、時刻Ｔ２１においてロウデコーダ１２０は、選択ワード線ＷＬ＿ＳＥＬに電圧ＶＥ（ＶＳＳ＜ＶＥ＜ＶＥＲＡＧ）を印加する。
【０２９１】
［時刻Ｔ２３］〜［時刻Ｔ２４］
時刻Ｔ２２〜時刻Ｔ２３の期間でデータが消去された後、時刻Ｔ２３〜時刻Ｔ２４においてロウデコーダ１２０は、選択ワード線ＷＬ＿ＳＥＬ、選択セレクトゲート線ＳＧＳ＿ＳＥＬを電圧ＶＳＳに降圧し、ドライバ１３６は、ウェル配線ＣＰＷＥＬＬの電圧を電圧ＶＳＳに降圧する。これによりイレース動作が終了する。
【０２９２】
［Ｓ４００６］
図３９に示すように、シーケンサ１７０は、イレース動作が終了すると、イレースベリファイ動作を行う。このイレースベリファイ動作は、上述したプログラムベリファイ動作と同様なので、説明を省略する。
【０２９３】
［Ｓ４００７］
図３９に示すように、シーケンサ１７０は、イレースベリファイ動作の結果がパスか否かを判定する。より具体的にはシーケンサ１７０は、イレースベリファイ動作によってフェイルビットと判定されたフェイルビット数が設定値以上であるか否かを判定する。フェイルビット数が設定値未満である場合、シーケンサ１７０は、イレースベリファイ動作の結果がパスであると判定する。この設定値は、例えばＥＣＣ回路２６０で救済できないフェイルビット数である。この設定値は、例えばステータスレジスタ１８０に記憶されている。つまり、シーケンサ１７０は、ステータスレジスタ１８０に記憶された設定値と、フェイルビット数と、を比較する。シーケンサ１７０は、イレースベリファイ動作の結果がパスであると判定する場合（ステップＳ４００７、Ｙｅｓ）、データ消去動作を終了する。
【０２９４】
［Ｓ４００８］
シーケンサ１７０は、イレースベリファイ動作の結果がパスではないと判定する場合（ステップＳ４００７、Ｎｏ）、イレース動作の繰り返し回数（イレースループ数）が第１１値以上であるか否かを判定する。この第１１値は、例えばステータスレジスタ１８０に記憶されている。つまり、シーケンサ１７０は、ステータスレジスタ１８０に記憶された第１１値と、イレースループ数と、を比較する。シーケンサ１７０は、イレースループ数が第１１値以上であると判定する場合（ステップＳ４００８、Ｙｅｓ）、データ消去動作を終了する。
【０２９５】
［Ｓ４００９］
シーケンサ１７０は、イレースループ数が第１１値以上でないと判定する場合（ステップＳ４００８、Ｎｏ）、イレースループ数（ＮＥｎ＿Ｌｏｏｐ）をカウントアップする。例えば、イレースループ数は、ステータスレジスタ１８０等に記憶される。そして、イレースループ数のカウントは、シーケンサ１７０が行っても良いし、それ以外の構成で行っても良い。
【０２９６】
［Ｓ４０１０］
そして、シーケンサ１７０は、イレースループ数をカウントアップした後、イレース動作の際に用いる電圧ＶＥＲＡを電圧ＤＶＥＲＡだけインクリメントさせる。そして、シーケンサ１７０は、ステップＳ４００５を繰り返す。
【０２９７】
なお、ステップＳ４００８とステップＳ４００９との実行順序は入れ替えても良い。なお、その場合、ステップＳ４００８における第１１値は“１”だけ大きくなる。以下、ステップＳ４００８とステップＳ４００９とを含む他の動作においても同様にステップＳ４００８とステップＳ４００９との実行順序は入れ替えても良い。
【０２９８】
＜４−２−２＞  コマンドシーケンス  
データ消去動作時におけるコマンドシーケンスについて、図４３を用いて説明する。図４３に示すようにメモリコントローラ２００は、まず消去コマンドＥＥＨを発行すると共に、信号ＣＬＥをアサート（“Ｈ”レベル）する。引き続きメモリコントローラ２００は、例えば３サイクルにわたってアドレス（ＡＤＤ：ロウアドレス）を発行すると共に、信号ＡＬＥをアサート（“Ｈ”レベル）する。これらのコマンド及びアドレスは例えばアドレスレジスタ１５０及びコマンドレジスタ１６０にそれぞれ格納される。
【０２９９】
次にメモリコントローラ２００は、書込みコマンド“ＦＦＨ”を発行すると共に、ＣＬＥをアサートする。コマンド“ＦＦｈ”がコマンドレジスタ１６０に格納されたことに応答して、シーケンサ１７０はデータ消去動作（Ｓ４０００）を開始し、ＮＡＮＤ型フラッシュメモリ１００はビジー状態となる（ＲＢｎ＝“Ｌ”）。
【０３００】
＜４−３＞  効果  
上述した実施形態によれば、シーケンサ１７０は、イレースループ数に応じて、ウェル配線ＣＰＷＥＬＬに電圧を転送する転送トランジスタへの制御電圧を変化させる。これにより、転送トランジスタに、適切に電圧を転送させることができる。
【０３０１】
上述した実施形態に係る効果について説明する。本実施形態に係るＮＡＮＤ型フラッシュメモリ１００において、転送トランジスタを介してウェル配線ＣＰＷＥＬＬに所望の電圧が印加される。
【０３０２】
図４４に示すように、電圧ＶＥＲＡを転送するために、転送トランジスタのゲートには、電圧ＶＥＲＡよりも大きな電圧ＶＥＲＡＨを印加する必要がある。しかし、種々の要因（例えば転送トランジスタの劣化）により、転送トランジスタの閾値が上昇してしまい、電圧ＶＰＧＭを適切に転送できなくなる可能性がある。そのため、予め電圧ＶＥＲＡＨをより大きい電圧ＶＥＲＡＨＨにしておくことも考えられる。しかしその場合、転送トランジスタのゲートへの負荷が増大し、転送トランジスタの劣化を早めてしまう可能性がある。その結果、転送トランジスタの閾値が上昇してしまい、電圧ＶＥＲＡを適切に転送できなくなる可能性がある。
【０３０３】
そのため、図４４に示すような方法では、データ消去動作を繰り返すと適切な電圧をウェル配線ＣＰＷＥＬＬに転送できなくなるという問題が生じる可能性があった。
【０３０４】
そこで、図４５に示すように、上述した実施形態では、シーケンサ１７０は、転送トランジスタが劣化する前（閾値が低い状態）は、転送トランジスタのゲートに電圧ＶＥＲＡＨＨよりも低い電圧ＶＥＲＡＨＬを印加する。そして、シーケンサ１７０は、転送トランジスタが劣化した後（閾値が高い状態）は、転送トランジスタのゲートに電圧ＶＥＲＡＨＨを印加する。
【０３０５】
メモリセルトランジスタは、書込み回数（または消去回数）が増えるにつれ、イレースループ数が増える傾向がある。そのため、本実施形態では、シーケンサ１７０は、イレースループ数がある値以上か否かを判定することで、転送トランジスタの使用頻度、つまり転送トランジスタの劣化具合を判定している。
【０３０６】
これにより、転送トランジスタのゲートに不必要に大きな電圧を印加することがなくなるので、転送トランジスタの劣化を抑制することができる。その結果、データ消去動作を繰り返しても、シーケンサ１７０は適切な電圧をウェル配線ＣＰＷＥＬＬに転送できる。
【０３０７】
＜４−４＞  第４実施形態の変形例１  
図４６を用いて、第４実施形態の変形例１の動作Ｓ４１００について説明する。
【０３０８】
動作Ｓ４１００は、図４１のステップＳ４０１０後の動作が図４１の動作と異なる。
【０３０９】
具体的には、シーケンサ１７０は、図４１のステップＳ４０１０（図４６のステップＳ４１１０）の後、図４１のステップＳ４００５ではなくて、図４１のステップＳ４００２（図４６のステップＳ４１０２）を実行する。
【０３１０】
なお、図４６のステップＳ４１０２は、図４１のステップＳ４００２と同様であり、図４６のステップＳ４１１０は、図４１のステップＳ４０１０と同様である。
【０３１１】
＜４−５＞  第４実施形態の変形例２  
図４７を用いて、第４実施形態の変形例２の動作Ｓ４２００について説明する。
【０３１２】
動作Ｓ４２００は、図４１のステップＳ４００２〜Ｓ４００４の動作が図４１の動作と異なる。
【０３１３】
具体的には、シーケンサ１７０は、図４１のステップＳ４００２（図４７のステップＳ４２０２）に相当する動作において、ステータスレジスタ１８０に記憶されたプログラムループ数が第１値以下か否かを判定する。
【０３１４】
シーケンサ１７０は、図４１のステップＳ４００３（図４７のステップＳ４２０３）に相当する動作において、プログラムループ数が第１値以下でないと判定する場合（ステップＳ４２０２、Ｎｏ）、イレース動作時における信号ＶＢＳＴＥを電圧ＶＥＲＡＨＬに設定する。
【０３１５】
シーケンサ１７０は、図４１のステップＳ４００４（図４７のステップＳ４２０４）に相当する動作において、プログラムループ数が第１値以下であると判定する場合（ステップＳ４２０２、Ｙｅｓ）、イレース動作時における信号ＶＢＳＴＥを電圧ＶＥＲＡＨＨに設定する。
【０３１６】
以上のように、第４実施形態の変形例２では、シーケンサ１７０は、イレースループ数ではなく、プログラムループ数によって、転送トランジスタの劣化具合を判定している。
【０３１７】
＜４−６＞  第４実施形態の変形例３  
図４８を用いて、第４実施形態の変形例３の動作Ｓ４３００について説明する。
【０３１８】
動作Ｓ４３００は、図４１のステップＳ４００２〜Ｓ４００４の動作が図４１の動作と異なる。
【０３１９】
具体的には、シーケンサ１７０は、図４１のステップＳ４００２（図４８のステップＳ４３０２）に相当する動作において、ステータスレジスタ１８０に記憶されたプログラムループ数が第１値以下か否か、またはステータスレジスタ１８０に記憶されたイレースループ数が第３値以上か否かを判定する。
【０３２０】
シーケンサ１７０は、図４１のステップＳ４００３（図４８のステップＳ４３０３）に相当する動作において、プログラムループ数が第１値以下でなく、且つイレースループ数が第３値以上でないと判定する場合（ステップＳ４３０２、Ｎｏ）、イレース動作時における信号ＶＢＳＴＥを電圧ＶＥＲＡＨＬに設定する。
【０３２１】
シーケンサ１７０は、図４１のステップＳ４００４（図４８のステップＳ４３０４）に相当する動作において、プログラムループ数が第１値以下、またはイレースループ数が第３値以上であると判定する場合（ステップＳ４３０２、Ｙｅｓ）、イレース動作時における信号ＶＢＳＴＥを電圧ＶＥＲＡＨＨに設定する。
【０３２２】
なお、シーケンサ１７０は、ステップＳ４３０２において、プログラムループ数が第１値以下、且つイレースループ数が第３値以上か否かを判定しても良い。
【０３２３】
この場合、シーケンサ１７０は、ステップＳ４３０３において、プログラムループ数が第１値以下でない、またはイレースループ数が第３値以上でないと判定する場合（ステップＳ４３０２、Ｎｏ）、プログラム動作時における信号ＶＢＳＴＥを電圧ＶＥＲＡＨＬに設定する。更に、シーケンサ１７０は、ステップＳ４３０４において、プログラムループ数が第１値以下、且つイレースループ数が第３値以上であると判定する場合（ステップＳ４３０２、Ｙｅｓ）、プログラム動作時における信号ＶＢＳＴＥを電圧ＶＥＲＡＨＨに設定する。
【０３２４】
＜４−７＞  第４実施形態の変形例４
図４９を用いて、第４実施形態の変形例４の動作Ｓ４４００について説明する。
【０３２５】
動作Ｓ４４００は、図４８のステップＳ４０１０後の動作が図４８の動作と異なる。
【０３２６】
具体的には、シーケンサ１７０は、図４８のステップＳ４０１０（図４９のステップＳ４１１０）の後、図４８のステップＳ４００５ではなくて、図４８のステップＳ４３０２（図４９のステップＳ４４０２）を実行する。
【０３２７】
なお、図４９のステップＳ４４０２は、図４８のステップＳ４３０２と同様であり、図４９のステップＳ４１１０は、図４８のステップＳ４０１０と同様である。
【０３２８】
また、シーケンサ１７０は、ステップＳ４４０２において、プログラムループ数が第１値以下、且つイレースループ数が第３値以上か否かを判定しても良い。
【０３２９】
＜４−８＞  第４実施形態の変形例５
図５０を用いて、イレースループ数に基づいて、電圧ＶＥＲＡの転送用の電圧として、３種類の電圧を生成する場合について説明する。
【０３３０】
［Ｓ４５０２］
シーケンサ１７０は、メモリコントローラ２００からイレースコマンドを受信したと判定する場合（ステップＳ４００１、Ｙｅｓ）、ステータスレジスタ１８０に記憶されているイレースループ数が複数の範囲（本例では例えば３つの範囲）のうち、どの範囲に属するかを判定する。
【０３３１】
一例としては、第２８範囲〜第３０範囲の３つの範囲が用意される。そして、シーケンサ１７０は、イレースループ数が第Ｓ値以下の場合は、第２８範囲として認定し、イレースループ数が第Ｓ値より大きく、第Ｔ値以下の場合は、第２９範囲として認定し、イレースループ数が第Ｔ値よりも大きい場合は、第３０範囲として認定する。第Ｓ値、及び第Ｔ値は、予め設定されていても良く、ユーザが任意に設定しても良い。
【０３３２】
［Ｓ４５０３］
シーケンサ１７０は、イレースループ数がどの範囲に属するかを判定すると、イレース動作時における信号ＶＢＳＴＥの電圧を決定する。
【０３３３】
具体的には、シーケンサ１７０は、イレースループ数が第２８範囲に属すると判定する場合は、信号ＶＢＳＴＥを電圧ＶＥＲＡＨ２８（ＶＥＲＡ＜ＶＥＲＡＨ２８）に設定する。シーケンサ１７０は、イレースループ数が第２９範囲に属すると判定する場合は、信号ＶＢＳＴＥを電圧ＶＥＲＡＨ２９（ＶＥＲＡＨ２８＜ＶＥＲＡＨ２９）に設定する。シーケンサ１７０は、イレースループ数が第３０範囲に属すると判定する場合は、信号ＶＢＳＴＥを電圧ＶＥＲＡＨ３０（ＶＥＲＡＨ２９＜ＶＥＲＡＨ３０）に設定する。
【０３３４】
このようにして、電圧ＶＥＲＡの転送用の電圧として、３種類の電圧を生成するように構成されていても良い。
【０３３５】
なお、ここでは簡単のため電圧ＶＥＲＡの転送用の電圧として、３種類の電圧を生成する方法について記載したが、同様にして４種類以上の電圧を生成しても良い。
【０３３６】
上記ステップＳ４５０２は、図４６のステップＳ４１０２に置き換え可能である。そして、上記ステップＳ４５０３は、図４６のステップＳ４００３、及びＳ４００４に置き換え可能である。
【０３３７】
＜４−９＞  第４実施形態の変形例６
図５１を用いて、プログラムループ数に基づいて、電圧ＶＥＲＡの転送用の電圧として、３種類の電圧を生成する場合について説明する。
【０３３８】
［Ｓ４６０２］
シーケンサ１７０は、メモリコントローラ２００からイレースコマンドを受信したと判定する場合（ステップＳ４００１、Ｙｅｓ）、ステータスレジスタ１８０に記憶されているプログラムループ数が複数の範囲（本例では例えば３つの範囲）のうち、どの範囲に属するかを判定する。
【０３３９】
一例としては、第３１範囲〜第３３範囲の３つの範囲が用意される。そして、シーケンサ１７０は、プログラムループ数が第Ｕ値以下の場合は、第３１範囲として認定し、プログラムループ数が第Ｕ値より大きく、第Ｖ値以下の場合は、第３２範囲として認定し、プログラムループ数が第Ｖ値よりも大きい場合は、第３３範囲として認定する。第Ｕ値、及び第Ｖ値は、予め設定されていても良く、ユーザが任意に設定しても良い。
【０３４０】
［Ｓ４６０３］
シーケンサ１７０は、プログラムループ数がどの範囲に属するかを判定すると、イレース動作時における信号ＶＢＳＴＥの電圧を決定する。
【０３４１】
具体的には、シーケンサ１７０は、プログラムループ数が第３３範囲に属すると判定する場合は、信号ＶＢＳＴＥを電圧ＶＥＲＡＨ３３（ＶＥＲＡ＜ＶＥＲＡＨ３３）に設定する。シーケンサ１７０は、プログラムループ数が第３２範囲に属すると判定する場合は、信号ＶＢＳＴＥを電圧ＶＥＲＡＨ３２（ＶＥＲＡＨ３３＜ＶＥＲＡＨ３２）に設定する。シーケンサ１７０は、プログラムループ数が第３１範囲に属すると判定する場合は、信号ＶＢＳＴＥを電圧ＶＥＲＡＨ３１（ＶＥＲＡＨ３２＜ＶＥＲＡＨ３１）に設定する。
【０３４２】
このようにして、電圧ＶＥＲＡの転送用の電圧として、３種類の電圧を生成するように構成されていても良い。
【０３４３】
なお、ここでは簡単のため電圧ＶＥＲＡの転送用の電圧として、３種類の電圧を生成する方法について記載したが、同様にして４種類以上の電圧を生成しても良い。
【０３４４】
＜５＞第５実施形態
第５実施形態について説明する。第５実施形態では、メモリコントローラが信号ＶＢＳＴＥを制御する場合について説明する。尚、第５実施形態に係る記憶装置の基本的な構成及び基本的な動作は、上述した第１実施形態及び第４実施形態に係る記憶装置と同様である。従って、上述した第１実施形態及び第４実施形態で説明した事項及び上述した第１実施形態及び第４実施形態から容易に類推可能な事項についての説明は省略する。
【０３４５】
＜５−１＞  動作  
第５実施形態に係る書込み動作（Ｓ５０００、Ｓ５１００）のフローチャートについて説明する。まず図５２を用いて、メモリコントローラ２００の動作（Ｓ５０００）について説明する。ここでは、簡単のため、動作の主体をプロセッサ２３０にしているが、これに限らない。
【０３４６】
［Ｓ５００１］
プロセッサ２３０は、データ消去動作を行うか否かを判定する。
【０３４７】
［Ｓ５００２］
プロセッサ２３０は、データ消去動作を行うと判定する場合（ステップＳ５００１、Ｙｅｓ）、ライトイレースサイクル数が第８値以上か否かを判定する。
【０３４８】
［Ｓ５００３］
プロセッサ２３０は、ライトイレースサイクル数が第８値以上ではないと判定する場合、信号ＶＢＳＴＥを電圧ＶＥＲＡＨＬに設定する。具体的には、プロセッサ２３０は、ＮＡＮＤ型フラッシュメモリ１００に対してデータ消去コマンドを発行する際に、「信号ＶＢＳＴＥを電圧ＶＥＲＡＨＬに設定する」という情報をシーケンサ１７０に供給する。
【０３４９】
［Ｓ５００４］
プロセッサ２３０は、ライトイレースサイクル数が第８値以上であると判定する場合、信号ＶＢＳＴＥを電圧ＶＥＲＡＨＨに設定する。具体的には、プロセッサ２３０は、ＮＡＮＤ型フラッシュメモリ１００に対してデータ消去コマンドを発行する際に、「信号ＶＢＳＴＥを電圧ＶＥＲＡＨＨに設定する」という情報をシーケンサ１７０に供給する。
【０３５０】
［Ｓ５００５］
プロセッサ２３０は、ＮＡＮＤ型フラッシュメモリ１００に対して、ステップＳ５００３またはＳ５００４によって得られた情報を含めたデータ消去コマンドシーケンスを発行する。
【０３５１】
次に、図５３を用いてＮＡＮＤ型フラッシュメモリ１００の動作Ｓ５１００について説明する。
【０３５２】
［Ｓ４００１］
シーケンサ１７０は、既に説明したステップＳ４００１と同様の動作をする。
【０３５３】
［Ｓ５１０５］
シーケンサ１７０は、プロセッサ２３０によって決定された設定に基づきイレース動作を行う。
【０３５４】
［Ｓ４００６］〜［Ｓ４０１０］
シーケンサ１７０は、既に説明したステップＳ４００６〜Ｓ４０１０と同様の動作をする。
【０３５５】
＜５−２＞  コマンドシーケンス  
データ消去動作時におけるコマンドシーケンスについて、図５４を用いて説明する。図５４に示すようにメモリコントローラ２００は、データ消去コマンドＧＧＨを発行すると共に、信号ＣＬＥをアサート（“Ｈ”レベル）する。例えば、この書込みコマンドＧＧＨに、ステップＳ５００２〜Ｓ５００４にて決定した信号ＶＢＳＴＥに関する情報が含まれている。勿論、ステップＳ５００２〜Ｓ５００４にて決定した信号ＶＢＳＴＥに関する情報は、ＮＡＮＤ型フラッシュメモリ１００に伝われば良く、ＧＧＨとは異なるタイミングで発行されても良い。
【０３５６】
その後のコマンドシーケンスに関しては、図４３を用いて説明したシーケンスと同様である。図５４に示すコマンドＩＩＨは、図１０のコマンドＦＦＨに相当する。
【０３５７】
＜５−３＞  効果  
上述した実施形態によれば、シーケンサ１７０は、ライトイレースサイクル数に応じて、信号ＶＢＳＴＥの電圧を変化させる。これにより、転送トランジスタに、適切に電圧を転送させることができる。
【０３５８】
上述したように、メモリセルトランジスタは、書込み回数（または消去回数）が増えるにつれ、転送トランジスタが劣化する傾向がある。そのため、本実施形態では、シーケンサ１７０は、ライトイレースサイクル数がある値以上か否かを判定することで、転送トランジスタの使用頻度、つまり転送トランジスタの劣化具合を判定している。
【０３５９】
＜５−４＞  第５実施形態の変形例
図５５を用いて、電圧ＶＥＲＡの転送用の電圧として、３種類の電圧を生成する場合についての具体的な動作について説明する。
【０３６０】
［Ｓ５２０２］
プロセッサ２３０は、データ消去動作を行うと判定する場合（ステップＳ５００１、Ｙｅｓ）、内臓メモリ２２０に記憶されているライトイレースサイクル数が複数の範囲（本例では例えば３つの範囲）のうち、どの範囲に属するかを判定する。
【０３６１】
一例としては、第３４範囲〜第３６範囲の３つの範囲が用意される。そして、プロセッサ２３０は、ライトイレースサイクル数が第Ｗ値以下の場合は、第３４範囲として認定し、ライトイレースサイクル数が第Ｗ値より大きく、第Ｘ値以下の場合は、第３５範囲として認定し、ライトイレースサイクル数が第Ｘ値よりも大きい場合は、第３６範囲として認定する。第Ｗ値、及び第Ｘ値は、予め設定されていても良く、ユーザが任意に設定しても良い。
【０３６２】
［Ｓ５２０３］
プロセッサ２３０は、ライトイレースサイクル数がどの範囲に属するかを判定すると、イレース動作時における信号ＶＢＳＴＥの電圧を決定する。
【０３６３】
具体的には、プロセッサ２３０は、ライトイレースサイクル数が第３４範囲に属すると判定する場合は、信号ＶＢＳＴＥを電圧ＶＥＲＡＨ３４（ＶＥＲＡ＜ＶＥＲＡＨ３４）に設定する。プロセッサ２３０は、ライトイレースサイクル数が第３５範囲に属すると判定する場合は、信号ＶＢＳＴＥを電圧ＶＰＧＭＨ３５（ＶＥＲＡＨ３４＜ＶＥＲＡＨ３５）に設定する。プロセッサ２３０は、ライトイレースサイクル数が第３６範囲に属すると判定する場合は、信号ＶＢＳＴＥを電圧ＶＥＲＡＨ３６（ＶＰＧＭＨ３５＜ＶＰＧＭＨ３６）に設定する。
【０３６４】
このようにして、電圧ＶＥＲＡの転送用の電圧として、３種類の電圧を生成するように構成されていても良い。
【０３６５】
なお、ここでは簡単のため電圧ＶＥＲＡの転送用の電圧として、３種類の電圧を生成する方法について記載したが、同様にして４種類以上の電圧を生成しても良い。
【０３６６】
＜６＞尚書き
また、上述した各実施形態、及び各変形例において、メモリセルアレイ１１０として３次元積層型のメモリを適用する場合について説明した。しかし、メモリセルアレイ１１０として平面型のメモリのメモリを適用しても、上述した各実施形態、及び各変形例と同様の効果を得ることが可能である。
【０３６７】
すなわちメモリセルアレイ１１０の構成については、例えば、“SEMICONDUCTOR MEMORY DEVICE HAVING PLURALITY OF TYPES OF MEMORIES INTEGRATED ON ONE CHIP”という２００９年３月３日に出願された米国特許出願１２／３９７，７１１号に記載されている。また、“SEMICONDUCTOR MEMORY DEVICE INCLUDING STACKD GATE HAVING CHARGE ACCUMULATION LAYER AND CONTROL GATE AND METHOD OF WRITING DATA TO SEMICONDUCTOR MEMORY DEVICE”という２０１２年４月１９日に出願された米国特許出願１３／４５１，１８５号、“NONVOLATILE SEMICONDUCTOR MEMORY ELEMENT, NONVOLATILE SEMICONDUCTOR MEMORY, AND METHOD FOR OPERATING NONVOLATILE SEMICONDUCTOR MEMORY ELEMENT”という２００９年３月１７日に出願された米国特許出願１２／４０５，６２６号、及び“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE HAVING ELEMENT ISOLATING REGION OF TRENCH TYPE AND METHOD OF MANUFACTURING THE SAME”という２００１年９月２１日に出願された米国特許出願０９／９５６，９８６号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【０３６８】
また、上述した各実施形態、及び各変形例において、メモリシステム１は、１つのＮＡＮＤ型フラッシュメモリ１００を備える構成について説明したがこれに限らない。つまり、メモリシステム１は、複数のＮＡＮＤ型フラッシュメモリ１００を備えていても同様の効果を得ることが可能である。
【０３６９】
また、上述した各実施形態、及び各変形例において、ＮＡＮＤ型フラッシュメモリ１００は、１つのメモリセルアレイ１１０を備える構成について説明したがこれに限らない。つまり、ＮＡＮＤ型フラッシュメモリ１００は、複数のメモリセルアレイ１１０を備えていても同様の効果を得ることが可能である。
【０３７０】
また、上述したプログラム動作、プログラムベリファイ動作、イレース動作、イレースベリファイ動作は一例である。信号ＶＢＳＴ、ＶＲＤＥＣ、及びＶＢＳＴＥ以外の波形は種々変更可能である。
【０３７１】
更に、上述した各実施形態、及び各変形例における「接続」とは、間に例えばトランジスタあるいは抵抗等、他の何かを介在させて間接的に接続されている状態も含む。
【０３７２】
また、上述した各実施形態において、
（１）読み出し動作では、
Aレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば０V〜0.55Vの間である。これに限定されることなく、0.1V〜0.24V, 0.21V〜0.31V, 0.31V〜0.4V, 0.4V〜0.5V, 0.5V〜0.55Vいずれかの間にしてもよい。
【０３７３】
Bレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば1.5V〜2.3Vの間である。これに限定されることなく、1.65V〜1.8V, 1.8V〜1.95V, 1.95V〜2.1V,  2.1V〜2.3Vいずれかの間にしてもよい。
【０３７４】
Cレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば3.0V〜4.0Vの間である。これに限定されることなく、3.0V〜3.2V, 3.2V〜3.4V, 3.4V〜3.5V, 3.5V〜3.6V, 3.6V〜4.0Vいずれかの間にしてもよい。
【０３７５】
読み出し動作の時間（tR）としては、例えば25μs〜38μs, 38μs〜70μs, 70μs〜80μsの間にしてもよい。
【０３７６】
（２）書込み動作は、上述したとおりプログラム動作とベリファイ動作を含む。書込み動作では、
プログラム動作時に選択されたワード線に最初に印加される電圧は、例えば13.7V〜14.3Vの間である。これに限定されることなく、例えば13.7V〜14.0V, 14.0V〜14.6Vいずれかの間としてもよい。
【０３７７】
奇数番目のワード線を書込む際の、選択されたワード線に最初に印加される電圧と、偶数番目のワード線を書込む際の、選択されたワード線に最初に印加される電圧を変えてもよい。
【０３７８】
プログラム動作をISPP方式（Ｉｎｃｒｅｍｅｎｔａｌ Ｓｔｅｐ Ｐｕｌｓｅ Ｐｒｏｇｒａｍ）としたとき、ステップアップの電圧として、例えば0.5V程度が挙げられる。
【０３７９】
非選択のワード線に印加される電圧としては、例えば6.0V〜7.3Vの間としてもよい。この場合に限定されることなく、例えば7.3V〜8.4Vの間としてもよく、6.0V以下としてもよい。
非選択のワード線が奇数番目のワード線であるか、偶数番目のワード線であるかで、印加するパス電圧を変えてもよい。
書込み動作の時間（tProg）としては、例えば1700μs〜1800μs, 1800μs〜1900μs, 1900μs〜2000μsの間にしてもよい。
（３）消去動作では、
半導体基板上部に形成され、かつ、上記メモリセルが上方に配置されたウェルに最初に印加する電圧は、例えば12V〜13.6Vの間である。この場合に限定されることなく、例えば13.6V〜14.8V, 14.8V〜19.0V, 19.0〜19.8V, 19.8V〜21Vの間であってもよい。
消去動作の時間（tErase）としては、例えば3000μs〜4000μs, 4000μs〜5000μs, 4000μs〜9000μsの間にしてもよい。
（４）メモリセルの構造は、
半導体基板（シリコン基板）上に膜厚が４〜１０ｎｍのトンネル絶縁膜を介して配置された電荷蓄積層を有している。この電荷蓄積層は膜厚が２〜３ｎｍのＳｉＮ、またはＳＤＱＮなどの絶縁膜と膜厚が３〜８ｎｍのポリシリコンとの積層構造にすることができる。また、ポリシリコンにはＲｕなどの金属が添加されていても良い。電荷蓄積層の上には絶縁膜を有している。この絶縁膜は、例えば、膜厚が３〜１０ｎｍの下層Ｈｉｇｈ−ｋ膜と膜厚が３〜１０ｎｍの上層Ｈｉｇｈ−ｋ膜に挟まれた膜厚が４〜１０ｎｍのシリコン酸化膜を有している。Ｈｉｇｈ−ｋ膜はＨｆＯなどが挙げられる。また、シリコン酸化膜の膜厚はＨｉｇｈ−ｋ膜の膜厚よりも厚くすることができる。絶縁膜上には膜厚が３〜１０ｎｍの仕事関数調整用の材料を介して膜厚が３０ｎｍ〜７０ｎｍの制御電極が形成されている。ここで仕事関数調整用の材料はＴａＯなどの金属酸化膜、ＴａＮなどの金属窒化膜である。制御電極にはＷなどを用いることができる。
【０３８０】
また、メモリセル間にはエアギャップを形成することができる。
【０３８１】
以上、本発明の実施形態を説明したが、本発明は上記実施形態に限定されるものではなく、その趣旨を逸脱しない範囲内において種々変形して実施することが可能である。さらに、上記実施形態には種々の段階の発明が含まれており、開示された構成要件を適宜組み合わせることによって種々の発明が抽出される。例えば、開示された構成要件からいくつかの構成要件が削除されても、所定の効果が得られるものであれば、発明として抽出され得る。
【符号の説明】
【０３８２】
１…メモリシステム
１００…ＮＡＮＤ型フラッシュメモリ
２００…メモリコントローラ
３００…ホスト装置
【図１】
2018163723.tif 000003
【図２】
2018163723.tif 000004
【図３】
2018163723.tif 000005
【図４】
2018163723.tif 000006
【図５】
2018163723.tif 000007
【図６】
2018163723.tif 000008
【図７】
2018163723.tif 000009
【図８】
2018163723.tif 000010
【図９】
2018163723.tif 000011
【図１０】
2018163723.tif 000012
【図１１】
2018163723.tif 000013
【図１２】
2018163723.tif 000014
【図１３】
2018163723.tif 000015
【図１４】
2018163723.tif 000016
【図１５】
2018163723.tif 000017
【図１６】
2018163723.tif 000018
【図１７】
2018163723.tif 000019
【図１８】
2018163723.tif 000020
【図１９】
2018163723.tif 000021
【図２０】
2018163723.tif 000022
【図２１】
2018163723.tif 000023
【図２２】
2018163723.tif 000024
【図２３】
2018163723.tif 000025
【図２４】
2018163723.tif 000026
【図２５】
2018163723.tif 000027
【図２６】
2018163723.tif 000028
【図２７】
2018163723.tif 000029
【図２８】
2018163723.tif 000030
【図２９】
2018163723.tif 000031
【図３０】
2018163723.tif 000032
【図３１】
2018163723.tif 000033
【図３２】
2018163723.tif 000034
【図３３】
2018163723.tif 000035
【図３４】
2018163723.tif 000036
【図３５】
2018163723.tif 000037
【図３６】
2018163723.tif 000038
【図３７】
2018163723.tif 000039
【図３８】
2018163723.tif 000040
【図３９】
2018163723.tif 000041
【図４０】
2018163723.tif 000042
【図４１】
2018163723.tif 000043
【図４２】
2018163723.tif 000044
【図４３】
2018163723.tif 000045
【図４４】
2018163723.tif 000046
【図４５】
2018163723.tif 000047
【図４６】
2018163723.tif 000048
【図４７】
2018163723.tif 000049
【図４８】
2018163723.tif 000050
【図４９】
2018163723.tif 000051
【図５０】
2018163723.tif 000052
【図５１】
2018163723.tif 000053
【図５２】
2018163723.tif 000054
【図５３】
2018163723.tif 000055
【図５４】
2018163723.tif 000056
【図５５】
2018163723.tif 000057