以下に実施形態が図面を参照して記述される。以下の記述において、略同一の機能および構成を有する構成要素は同一符号を付され、繰り返しの説明は省略される場合がある。また、ある実施形態についての記述はすべて、明示的にまたは自明的に排除されない限り、別の実施形態の記述としても当てはまる。
各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現されることが可能である。各機能ブロックが、以下の例のように区別されていることは必須ではない。例えば、一部の機能が例示の機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示の機能ブロックがさらに細かい機能サブブロックに分割されていてもよい。
また、実施形態の方法のフローにおけるいずれのステップも、例示の順序に限定されず、そうでないと示されない限り、例示の順序とは異なる順序でおよび(または)別のステップと並行して起こることが可能である。
明細書および特許請求の範囲において、「接続」とは、直接的な接続および導電性の要素を介在した接続を含む。
(第1実施形態)
<1.1.構成(構造)>
<1.1.1.メモリシステム>
図1は、第1実施形態のメモリシステム1の機能ブロックを示す。メモリシステム1は、例えばsolid state device(SSD)、またはSDTMカードのようなメモリカードであり得る。
図1に示されるように、メモリシステム1は、ホスト装置2と接続されることが可能であり、ホスト装置2と通信する。ホスト装置2は電源21を含む。電源21は、電源電圧をメモリシステム1に供給する。電源21は、ホスト装置2とは別にメモリシステム1の外部に設けられていてもよい。
メモリシステム1は、半導体記憶媒体100、メモリコントローラ200、および電源制御回路300を含む。メモリシステム1は、2以上の記憶媒体100を含んでいてもよい。電源制御回路300は、電源21から電源電圧を受け、バックアップ電源310を含み、電源21またはバックアップ電源310からの電源電圧をメモリコントローラ200および記憶媒体100に供給する。バックアップ電源310は、電池および/またはキャパシタを含む。
メモリコントローラ200は、ホスト装置2から命令を受け取り、受け取られた命令に基づいて記憶媒体100を制御する。具体的には、メモリコントローラ200は、ホスト装置2から書き込み(プログラム)を指示されたデータ(ホスト書き込みデータ)を記憶媒体100に書き込み、ホスト装置2から読み出しを指示されたデータ(ホスト読み出しデータ)を記憶媒体100から読み出してホスト装置2に送信する。記憶媒体100は、不揮発性の半導体記憶媒体であり、例えばNAND型フラッシュメモリである。
メモリコントローラ200は、ホストインターフェイス210、全体制御部220、RAM230、メモリインターフェイス240、およびECC回路250を含む。メモリコントローラ200は、例えば、ハードウェアとして、CPU(central processing unit)等のプロセッサ、ROM(read only memory)、およびRAM(random access memory)を含み、ROMに保持されているファームウェア(プログラム)がプロセッサによって実行されることによって、ホストインターフェイス210、全体制御部220、メモリインターフェイス240、およびECC回路250の各々の機能の一部または全部を実行する。さらに、全体制御部220、メモリインターフェイス240、ECC回路250の各々の機能の一部または全体がハードウェアにより実現されてもよい。
ホストインターフェイス210は、バスを介してホスト装置2と接続され、メモリコントローラ200とホスト装置2との間の通信を司る。ホストインターフェイス210としては、SATA、SAS、PCI express等があるが、これに限定されない。全体制御部220は、例えば、プロセッサおよびRAMの機能の一部により実現される。全体制御部220は、メモリコントローラ200の全体の制御を司り、メモリインターフェイス240を制御し、RAM230およびメモリインターフェイス240の連携を制御する。
RAM230は、データを一時的に保持し、バッファとしての機能を有する。データは、ホスト書き込みデータ、記憶媒体100に書き込まれるデータ(書き込みデータ)、記憶媒体100から読み出されたデータ(メモリ読み出しデータ)、記憶媒体100の状態を示し且つ記憶媒体100の制御のために全体制御部220によって参照される管理データを含む。RAM230によるバッファは、ライトバッファ230Aおよびデータバッファ230Bを含む。ライトバッファ230Aは、ホスト書き込みデータを保持する。データバッファ230Bは、書き込みデータを保持する。
メモリインターフェイス240は、全体制御部220の制御に従って、記憶媒体100を制御し、また、記憶媒体100の状態を知る。メモリインターフェイス240は、例えば、プロセッサおよびRAMの機能の一部により実現される。
メモリインターフェイス240は、コマンド生成部241を含む。コマンド生成部241は、全体制御部220の制御に従い、全体制御部220からの要求を実現するための種々のコマンドを生成する。
ECC回路250は、ホスト書き込みデータおよび管理データを含め記憶媒体100に書き込まれる実体的データを誤り訂正符号(ECC)に変換する。誤り訂正符号は既知の任意の方法で生成されることが可能である。誤り訂正符号は、一般に、記憶媒体100に書き込まれるデータと誤り訂正のためのデータを含む。誤り訂正のためのデータは、例えばパリティデータを含む。ECC回路250はまた、メモリ読み出しデータに対して演算を行って、メモリ読み出しデータに含まれる正しい(誤りを訂正された)データ(例えばホスト読み出しデータ)を取得することを試みる。ECC回路250の誤り訂正符号生成のための技術によって定まる訂正能力以下の誤りであれば、正しいホスト読み出しデータが得られる。メモリ読み出しデータがECC回路250の訂正能力を超える誤りを含んでいる場合、ECC回路250は正しいホスト読み出しデータが得らなかった旨を全体制御部220に通知する。ECC回路250は、メモリ読み出しデータ中の基準値TN3以下の数の誤りを訂正できる。なお、ECC回路250による誤り訂正能力は、コードレートの設定によって可変である。
ECC回路250は、積符号を生成することもできる。積符号の生成は、例えば、複数の別々の書き込みデータの各々のビット列から別の独立したパリティデータを生成することを含む。生成された積符号も、独立した書き込みデータとして記憶媒体100に書き込まれる。積符号を使用することにより、ある書き込みデータの誤りが、当該書き込みデータを使用して訂正不能である場合に、別の書き込みデータおよび独立したパリティデータから誤りが訂正されることが可能な場合がある。
メモリインターフェイス240は、バスを介して記憶媒体100と接続される。バスは、記憶媒体100がNAND型フラッシュメモリである場合、NANDバスであり、以下の記述および図はNANDバスの例に基づく。NANDバスは、信号CEn、CLE、ALE、WEn、REn、WPn、RY/BYn、DQ、DQS、およびDQSnを伝送する。本明細書において、信号の名称の末尾のnは、末尾のnのない名称の信号の反転論理を示し、信号がローレベルの場合にアサートされていることを意味する。
信号DQ(DQ0〜DQ7)は、例えば8ビットの幅を有し、データの実体であり、コマンド(CMD)、書き込みデータまたはメモリ読み出しデータ(DAT)、アドレス信号(ADD)、ステータスデータ(STA)等を含む。メモリ読み出しデータは、単に読み出しデータと称される場合がある。
アサートされている信号CEnは、記憶媒体100をイネーブルにする。アサートされている信号CLEは、この信号CLEと並行して記憶媒体100に入力される。信号DQがコマンドCMDであることを記憶媒体100に通知する。アサートされている信号ALEは、この信号ALEと並行して記憶媒体100に入力される信号DQがアドレス信号ADDであることを記憶媒体100に通知する。アサートされている信号WEnは、この信号WEnと並行して記憶媒体100に入力される信号DQを記憶媒体100に記憶させることを指示する。アサートされている信号REnは、記憶媒体100に信号DQを出力することを指示する。アサートされている信号WPnは、データ書き込みおよび消去の禁止を記憶媒体100に指示する。信号RY/BYnは、記憶媒体100がレディー状態であるか、ビジー状態であるかを示し、ローレベルによってビジー状態を示す。記憶媒体100は、レディー状態においてメモリコントローラ2からの命令を受け付け、ビジー状態においてメモリコントローラ2からの命令を受け付けない。
メモリコントローラ200から記憶媒体100に向かう信号DQSおよびDQSnは、信号DQを出力するタイミングを記憶媒体100に指示する。記憶媒体100からメモリコントローラ200に向かう信号DQSおよびDQSnは、信号DQを出力するタイミングをメモリコントローラ200に通知する。
メモリシステム1が複数の記憶媒体100を含む場合、信号DQは複数の記憶媒体100で共用される。そして、例えば、メモリコントローラ200は、ある第1の記憶媒体100への信号DQの送信後、第1の記憶媒体100が信号DQに基づく動作を行っている間に、別の第2の記憶媒体100に信号DQを送信する。第1および第2の記憶媒体100は、例えば、指示された動作を並列で実行する。このような1つの記憶媒体100への排他的な指示の送信と、複数の記憶媒体100の並列動作が、3つ以上の記憶媒体100に関して行われる。
<1.1.2.記憶媒体>
図2は、第1実施形態の記憶媒体100の機能ブロックを示す。図2に示されるように、記憶媒体100は、メモリセルアレイ(セルアレイ)11、入出力回路12、入出力制御回路13、シーケンサ(制御回路)14、電位生成回路15、ドライバ16、センスアンプ17、カラムデコーダ18、データラッチ19、およびロウデコーダ20等の要素を含む。
セルアレイ11は複数のメモリブロックBLK(BLK0、BLK1、…)を含む。ブロックBLKは、例えばデータの消去単位であり、各ブロックBLK中のデータは一括して消去される。1つのブロックBLKより小さい単位(例えばブロックBLKの半分)でデータが消去されてもよい。
各ブロックBLKは複数のストリングユニットSU(SU0、SU1、…)の集合である。各ストリングユニットSUは複数のNANDストリングSTR(STR0、STR1、…)の集合である。ストリングSTRは、複数のメモリセルトランジスタMTを含む。セルアレイ11にはさらにワード線WL、ビット線BL、セルソース線CELSRC、および選択ゲート線SGDLならびにSGSL等の配線が設けられている。
入出力回路12は、信号DQを受け取り、信号DQを送信する。入出力回路12は、また、データストローブ信号DQSならびにDQSnを送信する。
入出力制御回路13は、メモリコントローラ200から種々の制御信号を受け取り、制御信号に基づいて、入出力回路12を制御する。制御信号は、信号CEn、CLE、ALE、WEn、REn、WPn、およびデータストローブ信号DQSならびにDQSnを含む。
シーケンサ14は、入出力回路12からコマンドCMDおよびアドレス信号ADDを受け取り、コマンドCMDおよびアドレス信号ADDに基づいて、電位生成回路15、ドライバ16、センスアンプ17、カラムデコーダ18を制御する。シーケンサ14は、レジスタ14aを含み、レジスタ14a中の種々のパラメータの値に基づいて制御を行う。
電位生成回路15は、記憶媒体100の外部から電源電位を受け、電源電位から種々の電位(電圧)を生成する。生成された電位は、ドライバ16およびセンスアンプ17等の要素に供給される。電位生成回路15によって生成される電位は、例えば、ワード線WL、選択ゲート線SGDLおよびSGSL、ならびにソース線CELSRCに印加される電位を含む。種々の電位の印加により、種々の要素に電圧が印加される。ドライバ16は、電位生成回路15によって生成された電位を受け、シーケンサ14の制御に従って、受けた電位のうちの選択されたものをロウデコーダ20に供給する。
ロウデコーダ20は、ドライバ16から種々の電位を受け、入出力回路12からアドレス信号ADDを受け、受けたアドレス信号ADDに基づいて1つのブロックBLKを選択し、選択されたブロックBLKにドライバ16からの電位を転送する。
センスアンプ17は、セルトランジスタMTの状態をセンスし、センスされた状態に基づいてメモリ読み出しデータを生成し、また、書き込みデータをセルトランジスタMTに転送する。
データラッチ19は、入出力回路12からの書き込みデータDATを保持し、書き込みデータDATをセンスアンプ17に供給する。また、データラッチ19は、センスアンプ17からメモリ読み出しデータDATを受け取り、カラムデコーダ18の制御に従って、メモリ読み出しデータDATを入出力回路12に供給する。カラムデコーダ18は、アドレス信号ADDに基づいて、データラッチ19を制御する。
<1.1.3.セルアレイ>
図3は、セルアレイ11の一部の要素および接続の例を示し、1つのブロックBLK0の要素および接続、ならびに関連する要素を示す。複数の(例えば全ての)ブロックBLKは、みな図3に示される要素および接続を含む。
1ブロックBLKは、ストリングユニットSU0〜SU3を含む。1ブロックBLKが1つのストリングユニットSUのみを含んでいてもよい。
m(mは自然数)本のビット線BL0〜BLm−1の各々は、各ブロックBLKにおいて、4つのストリングユニットSU0〜SU3の各々からの1つのストリングSTRと接続されている。
各ストリングSTRは、1つの選択ゲートトランジスタST、n個(nは自然数)のメモリセルトランジスタMT、および1つの選択ゲートトランジスタDT(DT0〜DT3)を含む。トランジスタST、MT、およびDTは、この順で、ソース線CELSRCと1つのビット線BLとの間に直列に接続されている。図3は、8つのセルトランジスタMT0〜MT7の例を示す。セルトランジスタMTは、制御ゲート電極(ワード線WL)、および周囲から絶縁された電荷蓄積層を含み、電荷蓄積層中の電荷の量に基づいてデータを不揮発に保持することができる。セルトランジスタMTは、書き込みにより電荷蓄積層に電子を注入される。
相違する複数のビット線BLとそれぞれ接続された複数のストリングSTRは1つのストリングユニットSUを構成する。各ストリングユニットSUにおいて、セルトランジスタMT0〜MT7の制御ゲート電極(ゲート)は、ワード線WL0〜WL7とそれぞれ接続されている。さらに、各ブロックBLKにおいて、相違するストリングユニットSU中の同じアドレスのワード線WLも相互に接続されている。1つのストリングユニットSU中でワード線WLを共有するセルトランジスタMTの組は、セルユニットCUと称される。
トランジスタDT0〜DT3はストリングユニットSU0〜SU3にそれぞれ属する。各α(αは0または3以下の自然数)について、ストリングユニットSUαの複数のストリングSTRの各々のトランジスタDTαのゲートは選択ゲート線SGDLαに接続されている。トランジスタSTのゲートは、選択ゲート線SGSLに接続されている。
各ブロックBLKは、図4に示される構造を有することが可能である。図4に示されるように、ストリングユニットSUは基板sub上に設けられている。基板subは、xy面に沿って広がり、表面の領域においてp型のウェルpwを含む。各ストリングユニットSUは、x軸に沿って並ぶ複数のストリングSTRを含む。各ストリングSTRは、半導体の柱(ピラー)PLを含む。柱PLは、z軸に沿って延び、下端においてウェルpwと接し、トランジスタMT、DT、およびSTのチャネルが形成されるチャネル領域およびボディとして機能する。柱PLの上端は、導電性のプラグCPPを介して導電体CTと接続されている。導電体CTはy軸に沿って延び、1つのビット線BLとして機能し、x軸上で別の座標に位置する導電体CTと間隔を有する。柱PLの側面はトンネル絶縁体(層)ITにより覆われている。トンネル絶縁体ITは、ウェルpw上にも位置する。トンネル絶縁体ITの側面は、電荷蓄積層CAにより覆われている。電荷蓄積層CAは、絶縁性または導電性であり、側面をブロック絶縁体(層)IBにより覆われている。
各ストリングユニットSUにおいて、ウェルpwの上方に、1つの導電体CS、複数(例えば8つ)の導電体CW、および3つの導電体CDが設けられている。複数の導電体CSが設けられていてもよい。導電体CS、CW、およびCDは、この順で間隔を有してz軸に沿って並び、x軸に沿って延び、ブロック絶縁体IBと接している。導電体CSは、また、ウェルpwの表面とともにトンネル絶縁体ITを挟む。導電体CS、CW、およびCDは、それぞれ、選択ゲート線SGSL、ワード線WL0〜WL7、および選択ゲート線SGDLとして機能する。各ストリングユニットSUにおいて、導電体CS、CW、およびCDは、このストリングユニットSU中の全ての半導体柱PLの側面上のブロック絶縁体IBと内部において接している。
柱PL、トンネル絶縁体IT、電荷蓄積層CA、およびブロック絶縁体IBのうちの導電体CS、CW、およびCDと交わる部分は、それぞれ選択ゲートトランジスタST、セルトランジスタMT、および選択ゲートトランジスタDTとして機能する。柱PLを共有しかつz軸に沿って並ぶトランジスタST、MT、およびDTは、1つのストリングSTRを構成する。
ウェルpwの表面内の領域には、p+型不純物の拡散層DPが設けられている。拡散層DPは、導電性のプラグ(コンタクトプラグ)CPWを介して、導電体CCWと接続されている。プラグCPWは、xz面に沿って広がる。
ウェルpwの表面の領域内には、n+型不純物の拡散層DNがさらに設けられている。拡散層DNは、導電性のプラグCPSを介して、導電体CCSと接続されている。導電体CCWは、セルソース線CELSRCとして機能する。
基板sub上で、導電体CS、CW、CD、CCS、およびCCW、ならびにプラグCPSおよびCPWが設けられていない領域は、絶縁体IIL1を設けられている。
各セルユニットCUは、1つの記憶媒体100において固有の(物理)アドレスを割り当てられている。図5は、1ブロックBLK、特にブロックBLK0でのアドレスの割り当ての例を示す。図5に示されるように、ワード線WL0と接続されたストリングユニットSU0のセルユニットCUは、ブロックBLK中で最小のアドレス(例えば0)を割り当てられている。また、ワード線WL7と接続されたストリングユニットSU3のセルユニットCUは、ブロックBLK中で最大のアドレス(例えば31)を割り当てられている。さらに、ワード線WL0のストリングユニットSU1、SU2、およびSU3のセルユニットCUは、それぞれ、アドレス1、2、および3を割り当てられている。ワード線WL1と接続されたストリングユニットSU0、SU1、SU2、およびSU3のセルユニットCUは、それぞれ、アドレス4、5、6、および7を割り当てられている。同様に、あるワード線WLと接続された4つのセルユニットCUは、ストリングユニットSUの昇順にアドレスを割り当てられており、さらに、ワード線WLのアドレスの昇順にアドレスが並ぶ。さらに、次のアドレスのブロックBLKにおいて、同様のアドレスが、1つ少ないアドレスのブロックBLKのセルユニットCUの最大のアドレスに後続する。図6は、1ブロックBLKがkのストリングユニットSUを含みかつ1ストリングSTRがnのセルトランジスタMTを含む場合の割り当ての例を示す。アドレスは、図5および図6とは異なった形で割り当てられることが可能である。
メモリコントローラ200は、記憶媒体100への書き込みデータの書き込みまたは記憶媒体100からのメモリ読み出しデータの読み出しの際に、書き込みおよび読み出し対象のセルユニットCUをアドレス信号ADDにおいて物理アドレスによって特定する。
<1.1.4.セルトランジスタ>
記憶媒体100は、1つのセルトランジスタMTにおいて1ビット以上のデータを保持することができる。図7は、書き込みの結果、1セルトランジスタ当たり1ビットのデータを保持するセルトランジスタMTの閾値電圧の分布を示す。各セルトランジスタMTの閾値電圧は、保持される1ビットデータに応じた値を有する。各セルトランジスタMTは、2つの閾値電圧のうちのいずれかを有し得る。
ある同じ1ビットデータを保持する複数のセルトランジスタMTであっても、セルトランジスタMTの特性のばらつき等に起因して、互いに相違する閾値電圧を有し得る。このため、ある同じデータを保持する複数のセルトランジスタMTの閾値電圧は1つの分布を形成する。2つの閾値電圧のうち、低い方の分布に属するセルトランジスタMTはErレベルにあり、高い方の分布に属するセルトランジスタMTはPレベルにある。Erレベルは、消去状態に相当する。一般に、データは、消去状態のセルトランジスタMTに書き込まれる。ErレベルおよびPレベルは、例えば、それぞれ“1”データおよび“0”データを保持する状態として扱われる。状態と保持されるデータとの別の対応が用いられてもよい。
P状態のセルトランジスタMTの閾値電圧は、Er状態のセルトランジスタMTの閾値電圧より高い。読み出し電圧VP以上の閾値電圧を有するセルトランジスタMTは、P状態にあると判断され、制御ゲート電極において読み出し電圧VPを受けてもオフを維持する。一方、読み出し電圧VP未満の閾値電圧を有するセルトランジスタMTは、制御ゲート電極において読み出し電圧VPを受けていると、オンしている。電圧Vread1は、非読み出し対象のセルトランジスタMTの制御ゲート電極に印加され、いずれのセルトランジスタMTの閾値電圧よりも高い。
書き込みの際、書き込みの完了の確認(ベリファイ)のために、ベリファイ電圧PVが使用される。ベリファイは、書き込まれるセルトランジスタMTの書き込みが完了したかの確認を指す。書き込まれるセルトランジスタ(選択セルトランジスタ)MTが電圧PV以上の大きさの閾値電圧を有していれば、当該セルトランジスタMTへの書き込みが完了したと判断される。
図8は、書き込みの結果、1セルトランジスタ当たり2ビットのデータを保持するセルトランジスタMTの閾値電圧の分布を示す。各セルトランジスタMTは、4つの閾値電圧のうちのいずれかを有し得る。最も低い分布から順に4つの分布のそれぞれに属するセルトランジスタMTは、それぞれ、Erレベル、Aレベル、Bレベル、およびCレベルにある。Erレベル、Aレベル、Bレベル、およびCレベルは、例えば、それぞれ“11”データ、“01”データ、“00”データ、および“10”データを保持する状態として扱われる。状態と保持されるデータとの別の対応が用いられてもよい。
Aレベル、Bレベル、およびCレベルのセルトランジスタの閾値電圧は、それぞれEr、Aレベル、およびBレベルのセルトランジスタの閾値電圧より高い。読み出し電圧VA未満の閾値電圧を有するセルトランジスタMTはErレベルにあると判断される。読み出し電圧VA以上読み出し電圧VB未満の閾値電圧を有するセルトランジスタMTはAレベルにあると判断される。読み出し電圧VB以上読み出し電圧VC未満の閾値電圧を有するセルトランジスタMTはBレベルにあると判断される。読み出し電圧VC以上の閾値電圧を有するセルトランジスタMTはCレベルにあると判断される。読み出し電圧VA、VB、およびVC以上の閾値電圧を有するセルトランジスタMTは、それぞれ、制御ゲート電極において読み出し電圧VA、VB、およびVCを受けてもオフを維持する。一方、読み出し電圧VA、VB、およびVC未満の閾値電圧を有するセルトランジスタMTは、それぞれ、制御ゲート電極において読み出し電圧VA、VB、およびVCを受けていると、オンしている。電圧Vread2は、非読み出し対象のセルトランジスタMTの制御ゲート電極に印加され、いずれのセルトランジスタMTの閾値電圧よりも高い。
1セルトランジスタMT当たり複数ビットのデータの保持の場合、1つのセルユニットCUのセルトランジスタMTのある同じ位置のビットのデータの組は、1つのページを構成する。1セルトランジスタMT当たり2ビットのデータの保持の場合、1つのセルユニットCUのセルトランジスタMTの上位ビットのデータの組は、アッパーページを構成する。1つのセルユニットCUのセルトランジスタMTの下位ビットのデータの組は、ロワーページを構成する。
Aレベル、Bレベル、およびCレベルへの書き込みのベリファイのために、ベリファイ電圧AV、BV、およびCVが使用される。Aレベル、Bレベル、およびCレベルへと書き込まれる選択セルトランジスタMTがそれぞれベリファイ電圧AV、BV、およびCV以上の大きさの閾値電圧を有していれば、当該レベルへとプログラムされるセルトランジスタMTへのプログラムが完了したと判断される。ベリファイ電圧BVおよびCVは、それぞれベリファイ電圧AVおよびBVより高い。
3ビット以上のデータも、ここまで記述された原理の拡張により1つのセルトランジスタMTよって保持されることが可能である。
<1.2.動作)>
<1.2.1.全体の動作>
図9は、メモリシステム1の全体的な動作のフローを示す。フローにおけるいくつかのステップは後に詳述される。図9に示されるように、メモリシステム1は外部、例えば電源21から、電源電圧を受け始めて起動する(ステップS1)。次いで、メモリコントローラ200は、前回のメモリシステム1の外部からの電源電圧供給の停止が、ホスト装置2からの事前通知無しに行われたかを判断する(ステップS2)。電源電圧供給の停止は、例えば、ホスト装置2のユーザにより行われ、特段の通知なしに行われ得る。よって、ホスト装置2からメモリシステム1への電源電圧供給の停止も通知されないことがある。メモリコントローラ200は、外部からの電源電圧供給の停止の際、事前通知があったかなかったかを示す情報を、記憶媒体100のブロックBLKに保持しておく。そして、ステップS2において、この事前通知の有無についての情報を読み出す。
事前通知があった場合(ステップS2のYes分岐)、メモリシステム1は通常モードで動作する(ステップS3)。通常モードでは、メモリシステム1は通常の状態にある。本明細書において、通常とは、メモリシステム1が外部から(例えばホスト装置2から)電源電圧を受けている期間を指す。通常モードにおいて、メモリシステム1は、ホスト装置2の指示に従って、種々の動作を行う。通常モードでは、メモリコントローラ200は、ホスト装置2からの書き込みの指示に応答して、ブロックBLKに書き込みデータを書き込む。
ホスト装置2は、メモリシステム1への電源電圧供給を停止する(ステップS4)。電源電圧供給の停止は、上記のように例えばホスト装置2のユーザにより行われ得、特段の通知なしに行われる場合がある。
電源制御回路300は、ホスト装置2から電源電圧が供給されているかを監視しており、電源電圧の供給が停止すると、これを知得する。ホスト装置2からの電源電圧供給の停止を知ると、電源制御回路300は、バックアップ電源310からメモリコントローラ200および記憶媒体100に電源電圧を供給し始める(ステップS5)。これにより、メモリシステム1は、バックアップ電源310からの電源電圧で動作し始める。
メモリコントローラ200は、バックアップ電源310からの電源電圧により動作している間、緊急モードで動作する。緊急モードでは、記憶媒体100は、1または複数のパラメータについて、通常モードでのものと異なる値を使用し得る。緊急モードで動作するための方法については後述される。メモリコントローラ200は、緊急モードにおいて、緊急書き込みを行う(ステップS6)。緊急書き込みは、普通、緊急モードにおいて行われ、RAM230中の記憶媒体100にまだ書き込まれていない特定のデータを記憶媒体100に書き込むことを含む。バックアップ電源310は、有限の容量を有し、有限の時間に亘ってのみメモリコントローラ200および記憶媒体100に電源電圧を供給できる。よって、緊急書き込みは、有限の時間の中で完了する必要がある。メモリシステム1は、バックアップ電源310によって電源電圧が供給されている間に緊急書き込みが完了するように構成されている。その詳細については後述される。
メモリコントローラ200は、緊急書き込みに備えるために、一定の数以上の消去状態のブロックBLKを確保しておく。すなわち、メモリコントローラ200は、通常モードにおいて、一定数数以上のブロックBLKにはデータを書き込まず、消去状態に維持しておく。そして、このようなブロックBLKに緊急書き込みを行う。緊急書き込みされるブロックが予め固定されている必要はない。
緊急書き込みの後、メモリコントローラ200は、記憶媒体100の緊急書き込みの結果に関するステータスを記憶媒体100から読み出すステップ(S8)を行わない。このため、メモリコントローラ200は、緊急書き込みの結果を知らず、よってリトライ書き込みを行わない。リトライ書き込みは、緊急書き込みを含めあるセルユニットCUへの書き込みが失敗の場合に行われ得、書込みが失敗したデータに含まれる実体的データと同じ実体的データ(およびパリティ)を別のセルユニットCUへ書き込むことを含む。メモリコントローラ200は、ステップS8を行ってもよい。
また、緊急書き込みの間、メモリコントローラ200は、ホスト装置2からの電源電圧供給の停止がホスト装置2からの通知の後に行われたか通知無しに行われたかを示すデータを、ブロックBLKに書き込む。
バックアップ電源310による電源電圧の供給が可能な時間が過ぎると、メモリシステム1はオフする(ステップS7)。その後、メモリシステム1は、外部、例えば電源21から、電源電圧を受け始めて起動する(ステップS1)。
前回の電源電圧供給の停止が事前の通知無しに行われた場合(ステップS2のNo分岐)、フローはステップS9に移行する。ステップS9において、メモリコントローラ200は、緊急書き込みされたブロックBLKからメモリ読み出しデータを読み出し、得られたメモリ読み出しデータに対して誤り訂正を行い、誤り訂正されたメモリ読み出しデータを別のブロックBLKに書き込む。その後、メモリシステム1は、ステップS3に移行する。以下、緊急書き込みされたブロックは緊急ブロックBLKbと称される。別のブロックBLKに書き込まれたデータを保持していた緊急ブロックBLKb中のデータは、適当なタイミングで消去される。
緊急書き込みは、特定のブロックBLKに書き込まれてもよい。例えば、メモリコントローラ200が使用可能な全てのブロックBLKのうち、予め定められた特定のブロックBLKが緊急書き込み先として使用され、残りのブロックは通常モードにおいて使用される。
<1.2.2.通常モードでの書き込み>
図10は、通常モード、すなわち通常の期間でのデータ書き込みの概要を示す。通常の期間での書き込みは、以下、通常書き込みと称される。
メモリシステム1は、ホスト装置2から、書き込み指示およびホスト書き込みデータを受け取る。メモリコントローラ200は、ホスト書き込みデータを受け取ると、完了応答をホスト装置2に送信する。しかし、実際には、ホスト書き込みデータは、記憶媒体100には、まだ書き込まれていない。メモリコントローラ200は、すぐには、ホスト書き込みデータを記憶媒体100には書き込まず、ある程度の量のホスト書き込みデータがライトバッファ230Aにおいて貯まってから、貯まったホスト書き込みデータをブロックBLKに書き込む。具体的には、例えば予め定められた量のホスト書き込みデータがRAM230に貯まると、メモリコントローラ200は、ホスト書き込みデータにパリティを付して書き込みデータを生成し、生成された書き込みデータを記憶媒体100に書き込む。以下、完了応答の対象のホスト書き込みデータはダーティーデータと称される。
図11は、通常書き込みの指示の送信のために、メモリコントローラ200から記憶媒体100に入力される信号DQの例を示す。図11は、また、信号RY/BYnを示す。記憶媒体100は、図11に示される通常書き込み指示を認識する。
通常書き込み指示は、コマンドX1h、コマンド80h、5サイクルに亘るアドレス信号A1〜A5、書き込みデータD0〜Dp(pは自然数)、および保留コマンドUUhを含む。
書き込みコマンド80hは、1セルトランジスタMT当たり複数ビットの書き込みを指示する。コマンドX1hは、セルトランジスタMU複数ビットのうちの最初のビットのためのデータが後続することを示し、1セルトランジスタMT当たり2ビットの記憶の場合、ロワーページのデータが後続することを示す。
アドレス信号A1〜A5は、記憶媒体100の記憶領域のうちの、あるブロックBLK中の書き込み対象の領域を指定し、書き込み対象のページ(選択ページ)の記憶空間を提供するセルトランジスタMTを含んだセルユニット(選択セルユニット)CUと接続されたワード線(選択ワード線)WLのアドレスを含む。選択セルユニットCU中のセルトランジスタMTは、選択セルトランジスタMTと称される。選択ワード線WL以外のワード線WLは、非選択ワード線WLと称される。
書き込みデータ(D0〜Dp)は、ページと同じ大きさを有する。保留コマンドUUhは、選択セルユニットCUへの別ページ(別の位のビットの組)のデータの書き込み指示が後続することを示す。
さらに、選択セルユニットCUの別のページのデータについての書き込み指示および書き込みデータがメモリコントローラ200から記憶媒体100に送信される。相違するページのためのデータの送信を示すために、書き込みコマンド80hに、相違するコマンド(X2hおよびXnh等)が先行する。選択セルユニットCUに書き込まれる全てのページのための書き込み指示および書き込みデータが記憶媒体100に送信されると、保留コマンドUUhに代えて実行コマンド10hが送信される。記憶媒体100は実行コマンド10hを受け取ると、選択セルユニットCUに指示された書き込みデータを書き込む。書き込みの間、記憶媒体100は、ビジーを示す(ローレベルの)信号RY/BYnを出力し続ける。
通常書き込み指示に応答して、記憶媒体100は、図12に示されるように、選択セルユニットCUに、複数ページのデータ(この例では、ロワーページデータおよびアッパーページデータ)を一括して書き込む。
通常書き込みは図13に示されるように、複数のプログラムループを含む。図13は、第1実施形態の記憶媒体100での書き込みの間に選択ワード線WLおよび非選択ワード線WLに印加される電圧を時間に沿って示す。
各プログラムループは、プログラム、ベリファイ、計数を含む。プログラムは、選択ワード線WLにプログラム電圧Vpgmを印加することを含む。プログラムでは、複数の選択セルトランジスタMTのうち、いくつかはその閾値電圧を上昇させられるために、選択ワード線WLへのプログラム電圧Vpgmの印加によってそのチャネルとワード線WLとの間にプログラム電圧Vpgmと同等の(実質的に等しい)電位差を形成される。一方、複数の選択セルトランジスタMTのうちの残りのものは選択ワード線WLへのプログラム電圧Vpgmの印加によってもそのチャネルと選択ワード線WLとの間にプログラム電圧Vpgmほどの大きな電位差を形成されない。ある選択セルトランジスタMTが、そのチャネルと選択ワード線WLとの間にプログラム電圧Vpgmと同等の電位差を生成されるか生成されないかは書き込みデータに基づく。以下、プログラム電圧Vpgm程度の電位差を生成される選択セルトランジスタMTを含むストリングSTRは、プログラム可能ストリングSTRと称される。一方、プログラム電圧Vpgmと同等の電位差を生成されない選択セルトランジスタMTを含むストリングSTRは、プログラム禁止ストリングSTRと称される。プログラムの間、シーケンサ14は、プログラム可能ストリングSTRと接続されたビット線BLに電圧Vssを印加し続け、プログラム禁止ストリングSTRと接続されたビット線BLに電圧Vinhを印加し続ける。電圧Vssは例えば0Vであり、電圧Vinhは電圧Vssより高く、例えば電源電圧Vddである。
プログラムの間、シーケンサ14は、さらに、選択セルユニットCUを含んだストリングユニット(選択ストリングユニット)SUの選択ゲート線SGDLに電圧Vsgdを印加し続け、選択ゲート線SGSLに電圧Vssを印加し続ける。電圧Vsgdは、プログラム可能ストリングSTR中の選択ゲートトランジスタDTをオンし、かつプログラム禁止ストリングSTR中の選択ゲートトランジスタDTをオフに維持する大きさを有する。
ビット線BL、および選択ゲート線SGDLならびにSGSLに上記の電圧が印加されている間に、プログラム電圧印加時間Tvpgmに亘って、シーケンサ14は、選択ワード線WLに電圧Vpgmを印加し、非選択ワード線WLに電圧Vpassを印加する。電圧Vpassは、プログラム可能ストリングSTRでは非選択セルトランジスタMTの閾値電圧上昇を抑制しつつ、プログラム禁止ストリングSTRでは選択セルトランジスタMTでの閾値上昇を抑制できる程度にカップリングによりチャネルを上昇させることのできる大きさを有する。電圧VpgmおよびVpassの印加の結果、選択セルトランジスタMTのうちのプログラム可能ストリングSTRに含まれているものでのみ、選択ワード線WLにプログラム電圧Vpgmが印加されて、その電荷蓄積層に電子を注入される。プログラム禁止ストリングSTRの選択セルトランジスタMTには、電子は注入されないか、ほとんど注入されない。
相違するプログラムループでは、プログラム電圧Vpgmの値は相違する。各プログラムループでのプログラム電圧Vpgmは、前回のプログラムループでのプログラム電圧Vpgmより増分ΔVpgm1高い。最初のプログラムループでは、開始プログラム電圧Vpgmsが選択ワード線WLに印加される。
ベリファイにおいて、シーケンサ14は、選択セルユニットCUを含んだ選択ストリングユニットSUの選択ゲート線SGDL、および選択ゲート線SGSLに電圧Vsgを印加する。電圧Vsgは、選択ゲートトランジスタSDTおよびSSTをオンさせる大きさを有する。さらに、シーケンサ14は、非選択ワード線WLに電圧Vread2を印加し、選択ワード線WLにベリファイ電圧AV、BV、またはCVを印加し、あるいはベリファイ電圧AV、BV、およびCVの2つ以上を続けて印加する。あるプログラムループにおいてベリファイにパスした選択セルトランジスタMTを含むストリングSTRは、次のプログラムループおよびそれ以降において、プログラム禁止ストリングSTRとして扱われる。
計数において、図14に示されるように、シーケンサ14は、あるX(Xは、A、B、またはC)レベルへとプログラムされる(Xレベルを目標とする)全選択セルトランジスタMTのうちベリファイ電圧XV以上の閾値電圧を有しない(ベリファイフェイルの)選択セルトランジスタMT(文字Fを含んだもの)を計数する。シーケンサ14は、Xレベルへとプログラムされる全選択セルトランジスタMTのうちのベリファイフェイルの選択セルトランジスタMT(フェイルビット)を計数する。シーケンサ14は、計数された数が、基準値TN1(≦TN3)以下である場合、Xレベルへのプログラムは完了したと判断する。基準値TN1は、例えばECC回路250によるデータの誤り訂正能力に基づいて決定され、例えばECC回路250による誤り訂正の単位(ECCワード)に基づいて決定される。プログラムが未完了のレベルがある限り、既定の最大プログラムループ数以下の範囲でプログラムループは繰り返され、全てのレベルについてプログラムが完了したと判断されると書き込みは終了する。書き込みが終了すると、記憶媒体100は、信号RY/BYnをハイレベルにして、レディー状態を示す。最大プログラムループ数の範囲で書き込みが完了しない場合、ステータスフェイルとなる。
メモリコントローラ200は、書き込みコマンド80hに先行して、あるコマンドを送信することにより、記憶媒体100に1セルトランジスタMT当たり1ビットのデータの書き込みを指示することができる。以下、通常の期間での1セルトランジスタMT当たり1ビットのデータの書き込みは、通常単レベル書き込みと称される。他方、図11〜図12に示される通常の期間での1セルトランジスタMT当たり複数ビットのデータの書き込みは、以下、単に通常書き込みまたは通常複数レベル書き込みと称される。
図15は、通常単レベル書き込みの指示の送信のために、メモリコントローラ200から記憶媒体100に入力される信号DQの例を示す。記憶媒体100は、図15に示される通常単レベル書き込み指示を認識する。
通常単レベル書き込み指示は、コマンドXXh、書き込みコマンド80h、アドレス信号A1〜A5、書き込みデータD0〜Dp、実行コマンド15hを含む。アドレス信号A1〜A5は、選択ワード線WLのアドレスを含む。記憶媒体100はコマンド15hを受け取ると、選択セルユニットCUに書き込みデータを書き込む。
通常単レベル書き込み指示に応答して、記憶媒体100は、図16に示されるように、選択セルユニットCUに、1ページのデータを書き込む。
通常単レベル書き込みも、図17に示されるように、複数のプログラムループを含む。図17は、第1実施形態の記憶媒体100での通常単レベル書き込みの間に選択ワード線WLおよび非選択ワード線WLに印加される電圧を時間に沿って示す。通常単レベル書き込みは、通常複数レベル書き込みと、各プログラムループでのベリファイ電圧の印加の回数において相違する。通常単レベル書き込みでは、各ベリファイは、1つのベリファイ電圧PVの印加のみを含む。また、ベリファイでは、非選択ワード線WLに電圧Vread1が印加される。
各プログラムループでのプログラム電圧Vpgmは、前回のプログラムループでのプログラム電圧Vpgmより増分ΔVpgm2高い。増分ΔVpgm2は、通常複数レベル書き込み用の増分ΔVpgm1と同じであってもよいし、異なっていてもよい。
計数についても、通常複数レベル書き込み(図14を参照されたい)でのものと同じである。ただし、Erレベル以外に1レベルのみ存在することに基づいて、計数は1レベルについてのみ行われる。また、通常複数レベル書き込みの場合と同じく、計数された数は基準値TN1と比較される。
<1.2.3.緊急書き込みで書き込まれるデータについて>
図9のステップS9における記憶媒体100への緊急書き込みの間、メモリコントローラ200は、ダーティーデータにパリティデータを付して書き込みデータを生成する。このとき、メモリコントローラ200の全体制御部220は、ECC回路250を使用して、生成された複数の書き込みデータから積符号を生成することができる。積符号は、書き込みデータとして、記憶媒体100に書き込まれる。代替的にまたは加えて、メモリコントローラ200は、記憶媒体100に書き込まれる、ある同じデータ(例えばホスト書き込みデータ)に基づく書き込みデータ(複製データ)を、同じまたは別のブロックBLKの複数のセルユニットCUに書き込むことができる。緊急書き込みで書き込まれた積符号および/または複製データは、緊急書き込みされたダーティーデータが別のブロックBLKに書き込む処理(ステップS9)の完了後の通常モードの間の適当なタイミングで消去される。
<1.2.4.緊急書き込み>
緊急書き込みは、1セルトランジスタ当たり1ビットで書き込みを行い、1または複数のパラメータについて通常の間の書き込みでの値と異なる値が使用される。より具体的には、緊急書き込みは、通常単レベル書き込みでのものと異なる値のパラメータを用いる。緊急書き込みの指示は、複数の方法により行われることが可能である。複数の方法は、専用のコマンドの使用、複数の書き込みに亘るパラメータの変更を含む。
<1.2.4.1.専用コマンドによる緊急書き込み>
メモリコントローラ200は、緊急書き込みのために、緊急書き込み指示を記憶媒体100に送信する。図18は、緊急書き込みの指示の送信のために、メモリコントローラ200から記憶媒体100に入力される信号DQの例を示す。記憶媒体100は、図18に示される緊急書き込み指示を認識する。
緊急書き込み指示は、コマンドYYh、書き込みコマンド80h、アドレス信号A1〜A5、書き込みデータD0、…Dp、コマンド15hを含む。記憶媒体100は、緊急書き込み指示を受け取ると、図19に示されるように、ブロックBLK中の選択セルユニットCUに、1ページのデータを書き込む。緊急書き込みは、通常単レベル書き込みと同じく、選択セルユニットCUに1ページのデータを書き込む。
緊急書き込みは他にも通常単レベル書き込みと同じ特徴を有する。同じ特徴の1つとして、緊急書き込みも、図20に示されるように、複数のプログラムループを含む。図20は、第1実施形態の記憶媒体100での緊急書き込みの間に選択ワード線WLおよび非選択ワード線WLに印加される電圧を時間に沿って示す。
一方、緊急書き込みは、以下に記述されるように、通常単レベルと1または複数の点で異なる。第1に、図20に示されるように、シーケンサ14は、緊急書き込みでの最初のプログラムループにおいて、開始プログラム電圧VpgmsLを選択ワード線WLに印加することができる。開始プログラム電圧VpgmsLは、通常単レベル書き込みでの開始プログラム電圧Vpgmsより大きい。
第2に、図20に示されるように、シーケンサ14は、緊急書き込みにおいて、プログラムループ数の増加の度、プログラム電圧Vpgmの値を増分ΔVpgmL増やすことができる。増分ΔVpgmLは、通常単レベル書き込みでの増分ΔVpgm2より大きい。
第3に、図21に示されるように、シーケンサ14は、緊急書き込みにおいて、基準値TN1に代えて、基準値TN2(≦TN3)を使用することができる。緊急書き込みでの基準値TN2は、通常単レベル書き込みでの基準値TN1より大きい。すなわち、緊急書き込みでは、シーケンサ14は、通常単レベル書き込みでの場合よりも多くのベリファイフェイルの選択セルトランジスタMTが残っていても、書き込みが完了したと判断する。また、緊急書込みでのECC回路250による誤り訂正能力は、例えばコードレートを低くすることによって、通常単レベル書き込みでの誤り訂正能力より高く設定することが可能である。
シーケンサ14は、緊急書き込み用の開始プログラム電圧VpgmsL、増分ΔVpgmL、および基準値TN2の1つ、または2つ、または全てを使用することができる。いずれが使用されるかは予めシーケンサ14により定められていて、静的であることが可能である。緊急書き込み用でない値が使用されるパラメータについては、通常単レベル書き込み用の値が使用される。
さらに、シーケンサ14は、緊急書き込み用の開始プログラム電圧VpgmsLおよび増分ΔVpgmLの一方または両方が使用される場合、図22に示されるように、通常単レベル書き込みでのプログラム電圧印加時間Tvpgmに代えて、プログラム電圧印加時間TvpgmSを使用することができる。緊急書き込みでのプログラム電圧印加時間TvpgmSは、通常書き込みでのプログラム電圧印加時間Tvpgmより短い。
メモリコントローラ200は、RAM230中のダーティーデータを書き込むための緊急書き込みを、全ての不揮発化すべきダーティーデータが記憶媒体100に書き込まれるまで繰り返す。メモリコントローラ200は、図23に示されるように、ブロックBLKの複数のセルユニットCUに、各セルユニットCUのアドレスの昇順に、何れかのセルユニットCUをスキップすることなく、ダーティーデータを書き込む。または、メモリコントローラ200は、ブロックBLKのいくつかのセルユニットCUにダーティーデータを書き込み、残りのセルユニットCUにはダーティーデータを書き込まない。例えば、図24に示されるように、メモリコントローラ200は、各セルユニットCUのアドレスの昇順に、1つおきにセルユニットCUにダーティーデータを書き込む。具体的には、メモリコントローラ200は、セルユニットCU0にダーティーデータを書き込み、次いで、1つおきのセルユニットCU2、CU4、CU6、…、にダーティーデータを書き込む。または、メモリコントローラ200は、セルユニットCU1にダーティーデータを書き込み、次いで、1つおきのセルユニットCU3、CU5、CU7、…、にダーティーデータを書き込む。2つのセルユニットCU毎、または3つ以上のセルユニットCU毎に、1つのセルユニットCUが使用されてもよい。
<1.2.4.2.特定パラメータの設定による緊急書き込み>
記憶媒体100は、種々の動作において、動作に関連するパラメータ(電圧等)について予め定められた標準的な値を使用する。具体的には、シーケンサ14は、複数レベル書き込みにおいて、デフォルトの値の開始プログラム電圧Vpgms、増分ΔVpgm1、電圧Vread2、プログラム電圧印加時間Tvpgmを使用する。一方、シーケンサ14は、パラメータについての値を変更することができる。
図25は、パラメータの設定の指示の送信のために、メモリコントローラ200から記憶媒体100に入力される信号DQの例を示す。記憶媒体100は、図25に示される特定パラメータ設定指示を認識する。メモリコントローラ200は、特定パラメータ設定指示を使用して、特定のパラメータの値を設定する。
特定パラメータ設定指示は、コマンドEFh、5サイクルに亘るアドレス信号A1〜A5、データWB(WB0、WB1、…、WBq(qは自然数))を含む。アドレス信号A1〜A5は、パラメータの組を指定する。データWBは、設定される値を含む。あるアドレス信号はID=0を指定し、ID=0はあるパラメータの組を指定する。別のID=1は、別のパラメータの組を指定する。
記憶媒体100は、データWBqを受け取ると、指定されたパラメータの組について指定された値を設定する。コマンドEfhによって設定された値は、再設定されるまで、または記憶媒体100がオフするまで維持される。
緊急書き込みのために、メモリコントローラ200は、図26に示されるように、特定パラメータ設定指示を記憶媒体100に送信して関連するパラメータを設定し、続けて、通常単レベル書き込み指示を記憶媒体100に送信する。設定され得るパラメータは、図20〜図22を参照して記述されたのと同じであり、開始プログラム電圧Vpgms、増分ΔVpgm1、および/またはプログラム電圧印加時間Tvpgmを含む。通常単レベル書き込み指示は、ダーティーデータをブロックBLK中のセルユニットCUに書き込むことを指示する。
<1.2.4.3.任意パラメータの設定による緊急書き込み>
記憶媒体100の任意のパラメータの値が、任意パラメータの設定指示によって変更されることが可能である。変更されることが可能なパラメータは、特定パラメータ設定指示により設定されることが可能なパラメータ、および設定されることが不能なパラメータを含む。
図27は、パラメータの設定の指示の送信のために、メモリコントローラ200から記憶媒体100に入力される信号DQの別の例を示す。記憶媒体100は、図27に示される任意パラメータ設定指示を認識する。メモリコントローラ200は、任意パラメータ設定指示を使用して、任意のパラメータの値を設定する。
任意パラメータ設定指示は、例えば複数の連続するコマンド(AAh、BBh、…MMh)、およびデータWB(WB0、WB1、…WBq)を含む。連続する特定のコマンドの組は、1つのパラメータを指定する。記憶媒体100は、データWBqを受け取ると、指定されたパラメータについて指定された値を設定する。任意パラメータの設定は、ある特定の期間だけ維持され、例えば、後続の特定の処理(例えば一連の書き込み)についてのみ維持される。
緊急書き込みのために、メモリコントローラ200は、図28に示されるように、任意パラメータ設定指示を記憶媒体100に送信して関連するパラメータを設定し、続けて、通常単レベル書き込み指示を記憶媒体100に送信する。設定され得るパラメータは、図20〜図22を参照して記述されたのと同じであり、開始プログラム電圧Vpgms、増分ΔVpgm1、および/またはプログラム電圧印加時間Tvpgmを含む。通常単レベル書き込み指示は、ダーティーデータをブロックBLK中のセルユニットCUに書き込むことを指示する。
<1.2.4.4.その他のパラメータ>
緊急書き込みにおいて、開始プログラム電圧VpgmsL、増分ΔVpgmL、および基準値TN2以外のパラメータの値が、通常単レベル書き込みでの値と違っていてもよい。特に、シーケンサ14は、図29に示されるように、少なくとも増分ΔVpgmLの使用に加えて、緊急書き込みのベリファイにおいて非選択ワード線WLに電圧Vread1Lを印加することができる。電圧Vread1Lは、電圧Vread1より大きい。また、電圧Vread1Lは、緊急書き込みによって書き込まれたいずれのセルトランジスタMTの閾値電圧より大きい。電圧Vread1Lは、緊急書き込みによって書き込まれたセルトランジスタMTの閾値電圧の分布を、例えば実験および/またはシミュレーションによって割り出すことを通じて、予め決定されることが可能である。電圧Vread1Lの使用は、緊急書き込み指示、またはパラメータの設定とその後の通常単レベル書き込みの組により行われることが可能である。
<1.3.利点(効果)>
第1実施形態によれば、より短い時間で緊急書き込みを完了することが可能である。詳細は以下の通りである。
緊急書き込みは、通常単レベル書き込み指示を使用して行われることが可能である。通常単レベル書き込みでは、選択セルトランジスタMTへの電圧の印加を最小限にするために小さな増分ΔVpgm1が使用される。こうして、選択セルトランジスタMTの疲弊が抑制されている。一方、このような小さな増分ΔVpgm1の使用により、通常単レベル書き込みは時間を要する。このため、通常単レベル書き込み指示を用いた緊急書き込みは、バックアップ電源310による電源電圧の供給が可能な時間の間に完了しない可能性がある。
通常単レベル書き込み指示を用いた緊急書き込みがバックアップ電源310による電源電圧の供給可能な時間の間に完了するように、バックアップ電源310の容量が増加されることが考えられる。しかしながら、そのような大容量のバックアップ電源310は、実装面積において大きなサイズを有し、および/または高コストを要する。低容量のバックアップ電源が緊急書き込みに要する電力量を供給できるためには、緊急書き込みで要する電力量が削減される必要がある。
緊急書き込みにおいてメモリシステム1において消費される電力量は、メモリコントローラ200によって消費される電力量、および記憶媒体100によって消費される電力量を含む。メモリコントローラ200によって消費される電力量は、記憶媒体100が緊急書き込みの完了に必要なメモリコントローラ200の消費電力と、緊急書き込みの完了に要する時間との積である。一方、記憶媒体100のよって消費される電力量は、緊急書き込みのための処理によって記憶媒体100によって消費される電力と、緊急書き込みの完了に要する時間との積である。このように、いずれの消費電力量も緊急書き込み時間に依存し、よって緊急書き込みの短縮はバックアップ電源310の低容量化を可能にする。
一方、緊急書き込みは頻繁には生じない。このため、緊急書き込みは、セルトランジスタMTの疲弊が進むような条件の書き込みであっても、記憶媒体100の寿命を大きく縮める可能性は低い。
以上に鑑みて、第1実施形態によれば、緊急書き込みは、単レベル書き込みで行われ、かついくつかのパラメータについて通常単レベル書き込み指示で使用される値と異なる値を使用して行われる。より具体的には、緊急書き込みでは、開始プログラム電圧VpgmsL、増分ΔVpgmL、基準値TN2、および/または印加時間TvpgmSが使用される。開始プログラム電圧VpgmsL、増分ΔVpgmL、および基準値TN2は、開始プログラム電圧Vpgms、増分ΔVpgm、および基準値TN1よりそれぞれ大きい。開始プログラム電圧VpgmSの使用は、1回目のプログラムループにおいて選択セルトランジスタMTの閾値電圧を開始プログラム電圧Vpgmの使用の場合よりも大きく上昇させる。増分ΔVpgmLの使用は、プログラム電圧の値をプログラムループの増加の度に増分ΔVpgmの使用の場合よりも大きく増加させる。基準値TN2の使用は、プログラムの完了の基準を基準値TN1の使用の場合よりも低くする。このため、開始プログラム電圧VpgmS、増分ΔVpgmL、および/または基準値TN2の使用により、緊急書き込みは、通常単レベル書き込みよりも少ないループ数で完了する。このため、緊急書き込みが、通常単レベル書き込みの完了に要するプログラムループ数よりも少ないプログラムループ数で完了し、ひいては通常単レベル書き込みより短い時間で完了する。このため、緊急書き込みの完了に要する電力量は通常単レベル書き込みの場合よりも短く、ひいては、バックアップ電源310の必要な容量は通常単レベル書き込みの場合よりも小さい。
さらに、開始プログラム電圧VpgmsLおよび増分ΔVpgmLの使用に加えて、プログラム電圧印加時間TvpgmSが使用されることが可能である。プログラム電圧印加時間TvpgmSは、プログラム電圧印加時間Tvpgmより短い。このため、プログラム電圧印加時間TvpgmSの使用は、プログラムの時間を通常単レベル書き込みでの場合よりも短くし、ひいては緊急書き込みの完了に要する時間は通常単レベル書き込みでの場合よりもさらに短い。
なお、開始プログラム電圧VpgmsLおよび/または増分ΔVpgmLが使用された場合も含め、1つのプログラムループで記憶媒体100において消費される電力はほぼ一定である。このため、開始プログラム電圧VpgmsLおよび/または増分ΔVpgmLの使用が、緊急書き込みに必要なプログラムループ数を減じるが、その代償として1回のプログラムループの消費電力量を増加させることにはならない。
また、緊急書き込みがより少ないプログラムループ数で完了することは、複数の記憶媒体100が設けられる場合のメモリシステム1のピーク電力を削減できる。メモリシステム1のピーク電力は、複数の記憶媒体100が並列に動作している間の各記憶媒体100の消費電力の和に依存し、緊急書き込みにおいて生じやすい。一般に、ピーク電力は低い方が望ましい。複数の記憶媒体100の動作を時間的にずらすことによって並列に動作する記憶媒体100の数を減じることができる。しかしながら、緊急書き込みに要する時間がより長いと、記憶媒体100の動作のタイミングを制御されることがより難しい。第1実施形態によるより短い緊急書き込み時間は、複数の記憶媒体100の動作を時間的にずらすことをより容易にし、並列で動作する記憶媒体100の数をより容易に減ることができる。
また、ピーク電力の削減は、ホスト装置2の通常の期間での電源中のDC−DCコンバータの変換効率を改善できる。一般に、高い負荷の駆動を想定される電源は大きな容量を有する。一方、大容量の電源(特に、そのDC−DCコンバータ)が低い負荷を駆動すると、変換効率が悪く、よって、ピーク時の負荷が通常の期間の負荷と大きく異ならないことが望ましい。記憶媒体100の消費電力は、緊急書き込みの間にピークに達しやすい。第1実施形態によれば、プログラム時間を短縮することで複数の記憶媒体100の動作を時間的にずらすことにより、並列動作する記憶媒体100の数を減らせる。この結果、ピーク電力が減少し、緊急書き込み以外、すなわち通常の期間のDC−DCコンバータの変換効率を改善できる。
また、第1実施形態では、メモリコントローラ200は、緊急書き込みの後、緊急書き込みの結果に関するステータスを読み出さない。必要によりメモリコントローラ200が緊急書き込みの後のステータスの読み出しを行うように構成されている場合、ステータスの読み出しに必要な電力量の確保のためにバックアップ電源310は大きな容量を有する必要がある。しかし、ステータスが緊急書き込みの失敗を示していたとしても、バックアップ電源310の容量の制限から、一般に、リトライ書き込みは省略される。よって、ステータスの読み出しはその後の処理に役立たず、このため、ステータスの読み出しは省略されることが可能である。このことは、ステータス読み出し有りの場合よりも少ないバックアップ電源310の必要容量を可能にする。
また、メモリコントローラ200は、複数のセルユニットCU毎に1つのセルユニットCUにダーティーデータを書き込む。このことは、あるセルユニットCUに緊急書き込みされたデータが隣または両隣のセルユニットCUの上昇された閾値電圧によって影響されることを緩和し、緊急書き込みされたデータが高められた信頼性で保持されることを可能にする。特に、この書き込みが緊急書き込みに適用されることは有用である。緊急書き込みされたデータは、いくつかのパラメータについて通常単レベル書き込みの値と異なる値で書き込まれ、よって、通常単レベル書き込みで書き込まれたデータより低い信頼性を有し得るからである。
また、緊急書き込みに要する時間の削減を使用してバックアップ電源310の必要な容量を減じる代わりに、第1実施形態の短縮された緊急書き込みと容量を維持されたバックアップ電源310とが使用されることが可能である。こうすることによって、RAM230は、容量を維持されたバックアップ電源310であっても、より大きい量のダーティーデータを保持できる。メモリコントローラ200は、書き込み倍率(write amplification factor)低減のために、書き込みデータを複数のストリームと呼ばれる単位へとグループ化し、ストリームの単位で管理および書き込みを行う場合がある。このような処理が行われる場合にRAM230がより大きい量のダーティーデータを保持できることは、より多くのストリームがサポートされることを可能にする。
また、電圧Vread1L1の使用により、以下の利点を得られる。一般に、より大きな読み出しのマージンのためには、書き込み直後のセルトランジスタの閾値電圧分布(レベル)はより細いことが望ましく、そのためにはプログラムループの度の閾値電圧の上昇は小さい方が好ましい。よって、セルトランジスタMTの閾値電圧は、プログラムループの度のワード線WLへの電圧の印加により上昇し得る。よって、ベリファイのときに非選択ワード線WLに印加される電圧によるそのセルトランジスタMTの閾値の上昇(セルトランジスタMTへのディスターブ)の抑制のために、非選択ワード線WLに印加される電圧はできるだけ小さい値を有する。しかしながら、緊急書き込みでは、増分ΔVpgmLの使用が、プログラムループごとに選択セルトランジスタMTの閾値電圧を通常単レベル書き込みでの増分ΔVpgmの使用の場合よりも大きく上昇させ得る。このため、そもそも緊急書き込みは、短期間での完了が優先され、通常単レベル書き込みの場合のような細い分布の生成は強く意図されていない。よって、緊急書き込みでは、通常単レベル書き込みのベリファイでのような低い電圧Vread1L1が使用される利点は小さい。そこで、電圧Vread1L1の使用により、緊急書き込みにより書き込まれたセルトランジスタMTからの読み出しのマージンを大きくすることが可能である。Pレベルと電圧Vread1L1の間隔を十分に大きくすることができるからである。電圧Vread1L1の使用は、特段のデメリットをもたらさない。電圧Vread1L1の印加は、通常単レベル書き込みでの電圧Vread1の印加の場合よりも大きなディスターブを引き起こし得るが、緊急書き込みされたデータの読み出しが起動時に1回生じるのみであり、電圧Vread1L1gの印加によって、読み出しデータが変化するほどの大きなディスターブは抑制されるからである。
(第2実施形態)
第2実施形態は、緊急書き込みの詳細に関する。
第2実施形態のメモリシステム1、メモリコントローラ200、および記憶媒体100は、第1実施形態のものと同じ構成である。第2実施形態では、メモリコントローラ200および記憶媒体100は、以下に記述される動作を行えるように構成されている。
<2.1.動作>
記憶媒体100は、図18に示される緊急書き込み指示を受け取ると、以下に示される動作を行う。または、メモリコントローラ200は、図18とは別の指示により、以下に示される緊急書き込みを指示してもよい。この場合の指示は、例えば書き込みコマンドに先行するコマンドにおいて図18の指示と相違する。メモリコントローラ200は、例えばコマンドYYhに代えて、コマンドZZhを送信する。
第2実施形態の緊急書き込みでは、通常単レベル書き込みと異なり、シーケンサ14は、図30に示されるように、各プログラムループにおいてフェイルビットの計数を行わない。さらに、シーケンサ14は、1回の緊急書き込み、すなわち1つの緊急書き込み指示に対して、固定の回数のプログラムループを行う。
フェイルビットが計数されないため、書き込みがフェイルすることなく完了したかは判断されない。このため、次のプログラムループの実行の判断に必要なフェイルビットの計数の結果が得らない。従って、次のプログラムループの実行の判断も行われず、結果として、ある固定の回数のプログラムループが行われる。固定のプログラムループの回数は、例えば、通常単レベル書き込みが完了するまでの平均的または最大のプログラムループの回数として、実験および/またはシミュレーションにより予め割り出されることが可能である。シーケンサ14は、複数の緊急書き込みに亘って、特に全ての緊急書き込みに亘って、固定の回数を使用する。
シーケンサ14は、第1実施形態の緊急書き込みでのいくつかの特徴を付加的に使用することができる。すなわち、シーケンサ14は、開始プログラム電圧VpgmsLおよび/または増分ΔVpgmLを使用することができる。
さらに、シーケンサ14は、図31に示されるように、緊急書き込みのベリファイにおいて、特に増分ΔVpgmLの使用とともに、選択ワード線WLに電圧PVに代えて電圧PVLを印加することができる。電圧PVLは、電圧PVより高い。
緊急書き込みは、第1実施形態と同じく、パラメータの設定と、その後の通常単レベル書き込みの組により行われることも可能である。すなわち、シーケンサ14は、特定パラメータ設定指示または任意パラメータ設定指示を記憶媒体100に送信して、フェイルビットの計数を非実施に設定し、1つの緊急書き込みでのある固定の回数のプログラムループの実行を設定する。
<2.2.効果>
第2実施形態の緊急書き込みは、フェイルビット計数を含まない。このため、緊急書き込みは通常単レベル書き込みより短い時間で完了する。よって、第1実施形態と同じく、バックアップ電源310の必要な容量は標準の値のパラメータを使用した通常単レベル書き込みの場合よりも小さい。
また、電圧PVLが使用されることにより、緊急書き込みによるPレベルは、Erレベルと、電圧PVの使用の場合よりも大きな間隔を有する。このことは、緊急書き込みにより書き込まれたセルトランジスタMTからの読み出しの高いマージンを実現できる。
(第3実施形態)
第3実施形態は、緊急書き込みの詳細に関する。
第3実施形態のメモリシステム1、メモリコントローラ200、および記憶媒体100は、第1実施形態のものと同じ要素および接続を有する。一方、第3実施形態では、メモリコントローラ200および記憶媒体100は、以下に記述される動作を行えるように構成されている。
<3.1.動作>
記憶媒体100は、図18に示される緊急書き込み指示を受け取ると、以下に示される動作を行う。または、メモリコントローラ200は、図18とは別の指示により、以下に示される緊急書き込みを指示してもよい。この場合の指示は、例えば書き込みコマンドに先行するコマンドにおいて図18の指示と相違する。メモリコントローラ200は、例えばコマンドYYhに代えて、コマンドTThを送信する。
第3実施形態の緊急書き込みでは、通常単レベル書き込みと異なり、シーケンサ14は、図32に示されるように、緊急書き込み指示に応答して1回のプログラムのみ行う。シーケンサ14は、ベリファイもフェイルビット計数も行わず、2回目およびそれ以降のプログラムループも行わない。または、図33に示されるように、1回のプログラム電圧の印加のみでプログラムが完了するように、シーケンサ14は開始プログラム電圧VpgmsLを使用し、かつ/またはプログラム電圧印加時間Tvpgmに代えてプログラム電圧印加時間TvpgmLを使用することができる。緊急書き込みでのプログラム電圧印加時間TvpgmLは、通常単レベル書き込みでのプログラム電圧印加時間Tvpgmより長い。
緊急書き込みは、第1実施形態と同じく、パラメータの設定と、その後の通常単レベル書き込みの組により行われることも可能である。すなわち、シーケンサ14は、特定パラメータ設定指示または任意パラメータ設定指示を記憶媒体100に送信して、ベリファイおよびフェイルビットの計数を非実施に設定し、1回のプログラムループの実行を設定する。
さらに、緊急書き込みは、プログラム電圧Vpgmの印加を指示するコマンドとリセットコマンドの併用により行われることが可能である。メモリコントローラ200は、緊急書き込みのために、図34に示されるようにコマンドを送信する。図34は、緊急書き込み指示の送信のために、メモリコントローラ200から記憶媒体100に入力される信号DQの例を示す。
図34に示されるように、メモリコントローラ200は、マニュアル書き込み指示を使用して、プログラムを行う。マニュアル書き込み指示は、マニュアル書き込みコマンドNNh、アドレス信号A1〜A5、書き込みデータD0〜Dp、実行コマンド15hを含む。記憶媒体100は、マニュアル書き込み指示を認識し、マニュアル書き込み指示を受け取ると、プログラムを行って選択ワード線WLにプログラム電圧(VpgmsまたはVpgmsL)を印加し続ける。マニュアル書き込み指示によるプログラム電圧の継続時間は定められておらず、何らかの形で中断されるまで継続する。
その後、メモリコントローラ200は、リセットコマンドFFhを記憶媒体100に送信する。リセットコマンドFFhを受け取ると、記憶媒体100は、進行中の処理、すなわち現行の例ではプログラムを終了する。プログラムの継続の時間は、コマンド15hの受信から、リセットコマンドFFhの受信により決定される。メモリコントローラ200は、例えば予め定められた時間に亘ってプログラムが行われるように選択されたタイミングでリセットコマンドFFhを送信する。
<3.2.効果>
第3実施形態の緊急書き込みは、1回のプログラムのみを含む。このため、緊急書き込みは通常単レベル書き込みより短い時間で完了する。よって、第1実施形態と同じく、バックアップ電源310の必要な容量は標準の値のパラメータを使用した通常単レベル書き込みの場合よりも小さい。
(第4実施形態)
第4実施形態は、緊急書き込みの詳細に関し、第1〜第3実施形態、特に第2または第3実施形態に付加して使用される。
第4実施形態のメモリシステム1、メモリコントローラ200、および記憶媒体100は、第1実施形態のものと同じ要素および接続を有する。一方、第4実施形態では、メモリコントローラ200および記憶媒体100は、以下に記述される動作を行えるように構成されている。
<4.1.動作>
図35に示されるように、メモリコントローラ200は、緊急書き込みにおいて、1ページの大きさのダーティーデータの各々を、1つのブロックBLK中の1つのストリングユニットSU中の1つのセルユニットCUに書き込むように記憶媒体100に指示する。メモリコントローラ200は、ダーティーデータを書き込まれたセルユニットCUを含むストリングユニットSUでは、残りのセルユニットCUを後続の緊急書き込みの際のダーティーデータの書き込み先として指定しない。1つのストリングユニットSUにおいて、どの1つのセルユニットCUが選択されてもよい。
または、メモリコントローラ200は、緊急書き込みにおいて、1つのブロックBLK中の1つのストリングユニットSUのみに、ダーティーデータを書き込んでもよい。特に、各ブロックBLKが1つのストリングユニットSUのみを含む場合に、1ブロックBLK当たり1セルユニットCUのみの書き込みが使用されることが可能である。
また、メモリコントローラ200は、1つのブロックBLKの相違する複数のストリングユニットSUの同じアドレスのワード線WLと接続された複数のセルユニットCUに、ダーティーデータを書き込むことができる。図36は、そのような例を示す。なお、図36は、図4の例と異なり、64個の導電体CW(ワード線WL)が設けられている例を示す。図36は、例として、ワード線WL0と接続されたセルユニットCUへの書き込みを示す。他のワード線WLと接続されたCUに書き込まれてもよい。
または、メモリコントローラ200は、1つのブロックBLKの相違する複数のストリングユニットSUの相違するアドレスのワード線WLと接続された複数のセルユニットCUに、ダーティーデータを書き込むことができる。図37は、そのような例を示す。なお、図37は、図4の例と異なり、64個の導電体CW(ワード線WL)が設けられている例を示す。図37は、例として、ストリングユニットSU0、SU1、SU2、およびSU3において、それぞれワード線WL1、WL31、WL33、およびWL63と接続されたセルユニットCUへの書き込みを示す。他の組み合わせのセルユニットCUに書き込まれてもよい。
ダーティーデータが書き込まれるセルユニットCUは、例えば、セルユニットCUのデータの保持特性に基づいて選択されることが可能である。図4の構造のセルアレイ11では、z軸上で相違する座標(すなわち基板subからの高さ)に位置するセルトランジスタMTは、相違する特性を有し得る。このことに基づいて、データの高い保持特性を有す高さのセルユニットCUにダーティーデータが書き込まれることが可能である。
さらに、シーケンサ14は、図38に示されるように、緊急書き込みのプログラムにおいて、非選択ワード線WLに電圧Vpassに代えて電圧VpassLを印加することができる。電圧VpassLは、電圧Vpassより高い。図38は、第2実施形態との組み合わせの場合を示す。
<4.2.利点>
第2および第3実施形態では、緊急書き込みは、1または複数の固定の回数のプログラム電圧の印加を含み、かつベリファイの結果に基づいて次のプログラムループへと進行するかの判断を含まないかベリファイを含まない。このため、緊急書き込みにより閾値電圧を上昇された選択トランジスタMTは、過大な閾値電圧を有することになる場合がある。特に、書き込まれた選択セルトランジスタMTが、電圧Vread1を超える大きさの閾値電圧を有するに至ると、この選択トランジスタMTと同じストリングSTRに含まれる別のセルトランジスタMTは書き込まれたデータを読み出されることができない。電圧Vread1超の閾値電圧を有するセルトランジスタMTが、接続されたワード線WLにおいて電圧Vread1を受けてもオンせず、よって、残りのセルトランジスタMTの状態が判断されることができないからである。
第4実施形態によれば、メモリコントローラ200は、緊急書き込みにおいて、1つのストリングユニットSU当たり1つのセルユニットCUにのみダーティーデータを書き込む。よって、ダーティーデータを書き込まれたセルユニットCUを含むストリングユニットSU中の他のセルユニットCUからデータが読み出される状況は生じない。よって、書き込まれたセルユニットCUが電圧Vread1超の閾値電圧を有するセルトランジスタMTを含んでいても、記憶媒体100におけるデータの読み出しは阻害されない。
第4実施形態の使用は、ブロックBLKの使用可能な容量を制限し得る。一方、緊急書き込みの後は、図9のステップS9のように、次のメモリシステム1の起動の際、緊急ブロックBLKbからデータが読み出され、読み出されたデータは別のブロックBLKに書き込まれる。そして、データを別のブロックBLKへと移動された緊急ブロックBLKbは、再度、書き込みデータを受け入れ可能になる。このため、第4実施形態の緊急書き込みによってブロックBLKの容量が不足することは無い。
また、例えば図37のように物理的に隣り合うストリングユニットSUにおいて、相違するアドレスのセルユニットCUにダーティーデータが書き込まれることにより、隣合うセルユニットCUにデータは書き込まれない。こうすることにより、書き込まれたセルユニットCUが相互に影響することを回避できる。具体的には、緊急書き込みでPレベルへと書き込まれたセルトランジスタMTは、通常時にPレベルへと書き込まれたセルトランジスタMTより大きな閾値電圧を有し得る。このため、ErレベルのセルトランジスタMTの閾値電圧は、緊急書き込みの結果Pレベルに属するセルトランジスタMTの閾値電圧と大きく異なり得る。よって、書き込まれた2つのセルユニットCUにおいて、ErレベルのセルトランジスタMTが緊急書き込みによりPレベルに属するセルトランジスタMTと隣り合うと、ErレベルのセルトランジスタMTの閾値電圧は、隣のPレベルのセルトランジスタMTによって上昇し得る。このような状態の発生は、図37のような書き込みによって回避されることが可能である。
また、電圧VpassLの使用により、以下の利点を得られる。上記のように、電圧Vpassは、プログラム可能ストリングSTRでは非選択セルトランジスタMTの閾値電圧上昇を抑制しつつ、プログラム禁止ストリングSTRでは選択セルトランジスタMTでの閾値上昇を抑制できる程度にカップリングによりチャネルを上昇させることのできる大きさを有する。プログラム禁止ストリングSTRでの選択セルトランジスタMTでの閾値上昇の抑制のためには、電圧Vpassは、高い方が好ましい。一方、プログラム可能ストリングSTRの非選択セルトランジスタMTの閾値電圧上昇抑制のためには、電圧Vpassは、低い方が好ましい。これに対して、第4実施形態では、1つのストリングユニットSU当たり1つのセルユニットCUにのみダーティーデータが書き込まれ、よって残りのセルユニットCUは読み出されることがない。このため、残りのセルユニットCUのセルトランジスタMTの閾値電圧の上昇は抑制される必要がない。そこで、電圧VpassLの使用が、プログラム禁止ストリングSTRでの選択セルトランジスタMTでの閾値上昇を、電圧Vpassの使用の場合よりも強く抑制することができる。すなわち、プログラム禁止ストリングSTRでの選択セルトランジスタMTへの誤書き込みがより抑制されることが可能である。
(第5実施形態)
第5実施形態は、緊急ブロックからのデータの読み出しにおける、図9のステップS9の詳細に関し、第1〜第3実施形態、特に第2または第3実施形態に付加して使用される。
第5実施形態のメモリシステム1、メモリコントローラ200、および記憶媒体100は、第1実施形態のものと同じ要素および接続を有する。一方、第5実施形態では、メモリコントローラ200、および記憶媒体100は、以下に記述される動作を行えるように構成されている。
<5.1.動作>
図39は、第5実施形態のメモリシステムのフローを示し、図9のステップS9の詳細のフローを示す。図39に示されるように、メモリコントローラ200は、ステップS2でのNoとの判断の後、電圧Vread1の使用に代えて電圧Vread1L2を使用することを記憶媒体100に指示する(ステップS91)。電圧Vread1L2は、電圧Vread1より大きく、固定値であり、図40に示されるように、緊急書き込みによって書き込まれたいずれのセルトランジスタMTの閾値電圧より十分に大きい。電圧Vread1L2は、書き込まれたセルトランジスタMTの閾値電圧の分布を、例えば実験および/またはシミュレーションによって割り出すことを通じて、予め決定されることが可能である。電圧Vread1L2は、電圧Vread1L1と同じであっても良い。
電圧Vread1L2の使用の記憶媒体100への指示は、特定パラメータ設定指示(図25を参照されたい)および/または任意パラメータ設定指示(図27を参照されたい)を使用して行われることが可能である。
図39に戻る。メモリコントローラ200は、通常の読み出し指示を記憶媒体100に送信して、緊急ブロックBLKbからデータを読み出す(ステップS92)。読み出し指示は、緊急書き込みされたデータを保持するセルユニットCUの指定を含む。読み出し指示に応答して、記憶媒体100は、指定された読み出し対象のセルユニット(選択セルユニット)CUからデータを読み出す。読み出しにおいて、シーケンサ14は、選択セルユニットCUを含んだ選択ストリングユニットSUの選択ゲート線SGDLおよびSGSLに電圧Vsgを印加すること、選択ワード線WLに読み出し電圧VPを印加すること、非選択ワード線WLに電圧Vread1L2を印加することを含む。
メモリコントローラ200は、記憶媒体100から、指定されたメモリ読み出しデータを受け取り、受け取られたメモリ読み出しデータ中のパリティデータを使用して誤りの訂正を試みる。メモリコントローラ200は、ある1つの選択セルユニットCUからのメモリ読み出しデータの誤りを訂正できなかった場合、積符号を用いて再度の誤り訂正を試みる。すなわち、誤り訂正不能であったメモリ読み出しデータとともに積符号が生成された別のメモリ読み出しデータを使用して、誤り訂正不能であったメモリ読み出しデータの誤り訂正を試みる。または、メモリコントローラ200は、第1実施形態に記述されているように、ある同じ書き込みデータを複数のセルユニットCUに書き込んでいた場合、誤り訂正に失敗したデータと同じデータを保持している別のセルユニットCUからメモリ読み出しデータを読み出し、誤り訂正を試みる。
メモリコントローラ200は、誤り訂正されたメモリ読み出しデータを、通常書き込みによって別のブロックBLKに書き込む(ステップS93)。メモリコントローラ200は、全ての緊急書き込みされたデータ、すなわち緊急ブロックBLKb中の全てのデータが、ステップS82およびS83の実行を通じて別のブロックBLKに書き込まれたかを判断する(ステップS94)。
緊急ブロックBLKbが、別のブロックBLKに書き込まれていないデータを含む場合(No分岐)、フローはステップS92に戻る。緊急ブロックBLKbが、別のブロックに書き込まれていないデータを含まない場合(Yes分岐)、フローはステップS95に移行する。ステップS95において、メモリコントローラ200は、電圧Vread1L2の使用に代えて電圧Vread1を使用することを記憶媒体100に指示する。ステップS95は、ステップS3に継続する。
<5.2.利点>
第4実施形態において記述されたように、特に第2または第3実施形態において緊急書き込みの対象のセルトランジスタMTは、電圧Vread1超の閾値電圧を有することになる場合がある。このことは、電圧Vread1超の閾値電圧を有するセルトランジスタMTと同じストリングSTRに含まれる別のセルトランジスタMTからのデータの読み出しを阻害し得る。
第5実施形態によれば、メモリシステム1の再起動の後、メモリコントローラ200は、非選択ワード線WLへの電圧Vread1の使用に代えて電圧Vread1L2の使用を記憶媒体100に指示する。メモリコントローラ200は、電圧Vread1L2の使用が指定されているモードにおいて、緊急ブロックBLKb中のデータを別のブロックBLKにコピーする。電圧Vread1L2は緊急書き込みの対象のいずれのセルトランジスタMTの閾値電圧より大きい。よって、たとえ、あるセルトランジスタMTが電圧Vread1超の閾値電圧を有していても、このセルトランジスタMTはゲートにおいて電圧Vread1L2を受けと、オンする。このことは、電圧Vread1超の閾値電圧を有するセルトランジスタMTを含んだストリングSTRからの読み出しを可能にする。
なお、非選択ワード線WLへの電圧Vread1L2の印加は、電圧Vread1の印加の場合よりも大きなディスターブを生じ得、ディスターブは、これらセルトランジスタMTにより保持されているデータを変化させ得る。しかしながら、緊急書き込みされたデータの読み出しは低頻度でしか生じない。このため、電圧Vread1L2の印加によって、読み出しデータが変化するほどの大きなディスターブは抑制される。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。