(57)【要約】【課題】揮発性メモリに格納されたデータの退避を小さい容量のキャパシタによって実現すること。【解決手段】メモリシステムは、不揮発性の第１メモリと、揮発性の第２メモリと、キャパシタと、メモリコントローラとを備える。第１メモリは、複数のメモリセルを備える記憶領域を備える。キャパシタは、電力を蓄えるように構成される。メモリコントローラは、外部から供給された電力を用いて、複数のメモリセルのそれぞれに１ビットのデータを書き込む第１モードで揮発性の第２メモリに保存された第１データを記憶領域に書き込む。外部からの電力の供給が停止すると、メモリコントローラは、キャパシタに蓄えられた電力を用いて、複数のメモリセルのそれぞれに１ビットのデータを書き込むモードであって第１モードと異なる第２モードで第１データを記憶領域に書き込む。【選択図】図８
2020030875.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリセルを備える記憶領域を備える不揮発性の第１メモリと、
揮発性の第２メモリと、
電力を蓄えるように構成されるキャパシタと、
外部から供給された電力を用いて、前記複数のメモリセルのそれぞれに１ビットのデータを書き込む第１モードで前記揮発性の第２メモリに保存された第１データを前記記憶領域に書き込み、前記外部からの電力の供給が停止すると、前記キャパシタに蓄えられた電力を用いて、前記複数のメモリセルのそれぞれに１ビットのデータを書き込むモードであって前記第１モードと異なる第２モードで前記第１データを前記記憶領域に書き込むように構成されるメモリコントローラと、
を備えるメモリシステム。
【請求項２】
前記第２モードでの書き込みは、前記第１モードでの書き込みよりも各メモリセルにプログラミングパルスが印加される回数の上限値が小さい
請求項１に記載のメモリシステム。
【請求項３】
前記メモリコントローラは、前記第１モードでの書き込みの前に第１のベリファイレベルを指定して前記第１モードでの書き込み対象である前記記憶領域を消去し、前記第２モードでの書き込みの前に前記第１のベリファイレベルよりも電圧値の低い第２のベリファイレベルを指定して前記第２モードでの書き込み対象である前記記憶領域を消去する
請求項１または請求項２に記載のメモリシステム。
【請求項４】
前記複数のメモリセルに書き込まれたデータの各々は、前記複数のメモリセルの各々のしきい値電圧が消去された状態に対応する第１分布または前記第１分布と異なる第２分布に対応し、
前記第２モードで書き込まれた場合の前記第２分布の幅は、前記第１モードで書き込まれた場合の前記第２分布の幅よりも広い、
請求項１乃至請求項３の何れか１項に記載のメモリシステム。
【請求項５】
前記複数のメモリセルに書き込まれたデータの各々は、前記複数のメモリセルの各々のしきい値電圧が消去された状態に対応する第１分布または前記第１分布と異なる第２分布に対応し、
前記第２モードで書き込まれた場合の前記第１分布の幅は、前記第１モードで書き込まれた場合の前記第１分布の幅よりも狭い、
請求項１乃至請求項４の何れか１項に記載のメモリシステム。
【請求項６】
前記メモリシステムは、ホストに接続され、
前記第１データは、前記ホストからの書き込みコマンドで指定された第２データを含み、
前記メモリコントローラは、前記外部からの電力の供給が停止すると、前記キャパシタに蓄えられた電力を用いて前記第２データを前記第２モードで書き込む、
請求項１乃至請求項５の何れか１項に記載のメモリシステム。
【請求項７】
前記メモリシステムは、ホストに接続され、
前記複数のメモリセルの各々は複数ビットのデータを保存可能であり、
前記メモリコントローラは、前記外部から供給された電力を用いて前記ホストからの書き込みコマンドで指定された第２データを前記記憶領域の前記複数のメモリセルのそれぞれに前記複数ビットのデータとして書き込むように構成された
請求項１乃至請求項５の何れか１項に記載のメモリシステム。
【請求項８】
前記第１データは、前記メモリシステムの管理のためのデータを含む
請求項１乃至請求項７の何れか１項に記載のメモリシステム。
【請求項９】
前記外部から電力を供給されている場合は、前記外部から供給された電力を使用して、電力を前記メモリコントローラへ供給し、前記キャパシタを充電し、
前記外部から電力の供給が停止すると、前記キャパシタに蓄えられた電力を前記メモリコントローラへ供給する
電力供給回路をさらに備える請求項１乃至請求項８の何れか１項に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、メモリシステムに関する。
【背景技術】
【０００２】
従来、不揮発性メモリと揮発性メモリとを備えるメモリシステムが知られている。不揮発性メモリは、ストレージとして機能する。揮発性メモリは、不揮発性メモリに書き込まれる予定のデータのバッファとして使用されたり、各種の管理データが置かれるエリアとして使用される。
【０００３】
メモリシステムは、キャパシタを有している場合がある。メモリシステムは、電力供給の停止を検知した場合、揮発性メモリに格納されているデータを、キャパシタに蓄えられた電力を用いて不揮発性メモリに書き込む。これによって、揮発性メモリに格納されたデータは、不揮発性メモリに退避され、その結果、そのデータがメモリシステムから失われることが防止される。このような機能は、ＰＬＰ（Power  Loss  Protection）機能として知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−００８６５１号公報
【特許文献２】米国特許出願公開第２０１６／０１６２３５４号明細書
【特許文献３】米国特許出願公開第２０１５／０１７９２６９号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一つの実施形態は、揮発性メモリに格納されたデータを小さい容量のキャパシタで退避することができるメモリシステムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
一つの実施形態によれば、メモリシステムは、不揮発性の第１メモリと、揮発性の第２メモリと、キャパシタと、メモリコントローラとを備える。第１メモリは、複数のメモリセルを備える記憶領域を備える。キャパシタは、電力を蓄えるように構成される。メモリコントローラは、外部から供給された電力を用いて、複数のメモリセルのそれぞれに１ビットのデータを書き込む第１モードで揮発性の第２メモリに保存された第１データを記憶領域に書き込む。外部からの電力の供給が停止すると、メモリコントローラは、キャパシタに蓄えられた電力を用いて、複数のメモリセルのそれぞれに１ビットのデータを書き込むモードであって第１モードと異なる第２モードで第１データを記憶領域に書き込む。
【図面の簡単な説明】
【０００７】
【図１】図１は、実施形態のメモリシステムの構成例を示す図である。
【図２】図２は、実施形態のメモリチップの構成例を示す図である。
【図３】図３は、メモリセルアレイに含まれる１個のブロックの構成例を示す回路図である。
【図４】図４は、ＭＬＣモードでデータが書き込まれた場合における実施形態のメモリセルＭＴのしきい値電圧の分布を示す図である。
【図５】図５は、ＳＬＣモード（第１ＳＬＣモード）でデータが書き込まれた場合における実施形態のメモリセルＭＴのしきい値電圧の分布を示す図である。
【図６】図６は、第２ＳＬＣモードでデータが書き込まれた場合における実施形態のメモリセルＭＴのしきい値電圧の分布を示す図である。
【図７】図７は、実施形態のメモリシステムが実行する通常動作モードでのデータの書き込みの動作の概要を示すフローチャートである。
【図８】図８は、実施形態のメモリシステムが実行するＰＬＰモードでの動作の概要を示すフローチャートである。
【図９】図９は、実施形態のメモリシステムが実行する第１ＳＬＣモードでのデータの書き込みの動作の一例を示すフローチャートである。
【図１０】図１０は、実施形態のメモリシステムが実行する第２ＳＬＣモードでのデータの書き込みの動作の一例を示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下に添付図面を参照して、実施形態にかかるメモリシステムを詳細に説明する。なお、この実施形態により本発明が限定されるものではない。
【０００９】
（実施形態）
図１は、実施形態のメモリシステムの構成例を示す図である。メモリシステム１は、ホスト２と所定の通信インタフェースで接続される。ホスト２は、例えばパーソナルコンピュータ、携帯情報端末、またはサーバなどが該当する。
【００１０】
メモリシステム１は、メモリシステム１の外部に設けられた電源３に接続され、電源３から電力が供給される。メモリシステム１は、電源３からの電力を利用して動作することができる。電源３はホスト２内部に搭載されてもよく、ホスト２とは別の装置に搭載されてもよい。
【００１１】
メモリシステム１は、ホスト２からアクセス要求（リード要求およびライト要求）を受信する。メモリシステム１は、ライト要求とともに、書き込み対象のデータを受信する。以降、ホスト２から受信した書き込み対象のデータを、ユーザデータと表記する。
【００１２】
メモリシステム１は、ＮＡＮＤ型のフラッシュメモリ（ＮＡＮＤメモリ）１０と、ホスト２とＮＡＮＤメモリ１０との間のデータ転送を実行するメモリコントローラ１１と、ＲＡＭ（Random  Access  Memory）１２と、を備えている。
【００１３】
ＮＡＮＤメモリ１０は、不揮発性メモリの一例である。ＮＡＮＤメモリ１０は、１以上のメモリチップ３０を含む。図２は、実施形態のメモリチップ３０の構成例を示す図である。図示するようにメモリチップ３０は、周辺回路３１およびメモリセルアレイ３２を備える。
【００１４】
メモリセルアレイ３２は、それぞれが複数の不揮発性のメモリセルトランジスタ（メモリセル）の集合である複数のブロックを備える。ブロックに格納された全てのデータは、一括して消去される。
【００１５】
周辺回路３１は、例えば、ロウデコーダ、カラムデコーダ、センスアンプ、ラッチ回路、および電圧発生回路を含む。周辺回路３１は、メモリコントローラ１１からコマンドを受信すると、メモリセルアレイ３２に対し、プログラム処理、リード処理、およびイレース処理のうちの当該コマンドに対応した処理を実行する。
【００１６】
図３は、メモリセルアレイ３２に含まれる１個のブロックの構成例を示す回路図である。図示するように、各ブロックは、Ｘ方向に沿って順に配列された（ｐ＋１）個のＮＡＮＤストリングを備えている（ｐ≧０）。（ｐ＋１）個のＮＡＮＤストリングにそれぞれ含まれる選択トランジスタＳＴ１は、ドレインがビット線ＢＬ０〜ＢＬｐに接続され、ゲートが選択ゲート線ＳＧＤに共通接続されている。また、選択トランジスタＳＴ２は、ソースがソース線ＳＬに共通接続され、ゲートが選択ゲート線ＳＧＳに共通接続されている。
【００１７】
各メモリセルＭＴは、半導体基板上に形成された積層ゲート構造を備えたＭＯＳＦＥＴ（Metal  Oxide  Semiconductor  Field  Effect  Transistor）から構成される。積層ゲート構造は、半導体基板上にトンネル酸化膜を介在して形成されたフローティングゲート、及びフローティングゲート上にゲート間絶縁膜を介在して形成された制御ゲート電極を含んでいる。フローティングゲートに蓄えられる電子の数に応じてしきい値電圧が変化する。メモリセルＭＴは、しきい値電圧の違いに応じてデータを記憶する。即ち、メモリセルＭＴは、フローティングゲートに、データに応じた量の電荷を保持する。
【００１８】
各ＮＡＮＤストリングにおいて、（ｑ＋１）個のメモリセルＭＴは、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に、それぞれの電流経路が直列接続されるように配置されている。そして、最もドレイン側に位置するメモリセルＭＴから順に、制御ゲート電極がワード線ＷＬ０〜ＷＬｑにそれぞれ接続されている。従って、ワード線ＷＬ０に接続されたメモリセルＭＴのドレインは選択トランジスタＳＴ１のソースに接続され、ワード線ＷＬｑに接続されたメモリセルＭＴのソースは選択トランジスタＳＴ２のドレインに接続されている。
【００１９】
ワード線ＷＬ０〜ＷＬｑは、ブロック内のＮＡＮＤストリング間で、メモリセルＭＴの制御ゲート電極を共通に接続している。つまり、ブロック内において同一行にあるメモリセルＭＴの制御ゲート電極は、同一のワード線ＷＬに接続される。各メモリセルＭＴに１ビットの値を保持可能に構成される場合には、同一のワード線ＷＬに接続される（ｐ＋１）個のメモリセルＭＴは１ページとして取り扱われ、このページごとにプログラム処理及びリード処理が行われる。
【００２０】
各メモリセルＭＴには、複数ビットのデータが格納され得る。例えば、各メモリセルＭＴがｎ（ｎ≧２）ビットのデータを格納可能な場合、ワード線当たりの記憶容量はｎページ分のサイズに等しくなる。
【００２１】
各メモリチップ３０は、各メモリセルＭＴに複数のビットのデータが格納されるモードと、各メモリセルＭＴへ複数のビットのデータが格納可能であるものの各メモリセルＭＴに１ビットのデータが格納されるモードであるＳＬＣ（Single  Level  Cell）モードと、のうちの何れのモードでも動作可能に構成されている。各メモリセルＭＴに複数のビットのデータが格納されるモードの一例として、ここでは、各メモリセルＭＴに２ビットのデータが格納されるモードであるＭＬＣ（Multi  Level  Cell）モードを挙げて説明する。
【００２２】
図４は、ＭＬＣモードでデータが書き込まれた場合における実施形態のメモリセルＭＴのしきい値電圧の分布を示す図である。本図において、横軸はしきい値電圧を表し、縦軸はメモリセル数を表す。
【００２３】
ＭＬＣモードでデータが書き込まれた場合、各メモリセルのしきい値電圧が、分布Ｅｒ、分布Ａ、分布Ｂ、および分布Ｃの４つの分布のうちの何れかに含まれるように、各メモリセルＭＴのしきい値電圧が制御される。分布Ｅｒ、分布Ａ、分布Ｂ、および分布Ｃのそれぞれは、“００”、“０１”、“１１”および“１０”のうちの１つと１対１に対応付けられている。これによって、各メモリセルＭＴは、２ビットのデータを保持することができる。なお、“００”、“０１”、“１１”および“１０”と各分布との関係は上記に限定されるものではなく、適宜変更可能である。
【００２４】
分布Ｅｒは消去された状態に対応する。即ち、イレース処理が実行された後のメモリセルＭＴのしきい値電圧は、分布Ｅｒに含まれる。メモリセルＭＴのしきい値電圧は、プログラム処理によって、分布Ｅｒ内に維持されるか、または分布Ａ〜分布Ｃのうちのデータに対応した分布に至るまで上昇する。
【００２５】
具体的には、プログラム処理においては、周辺回路３１によって、例えば下記の処理が実施される。即ち、まず、周辺回路３１は、書き込み対象のページを構成する１以上のビット線を選択する。そして、周辺回路３１は、書き込み対象のページに対応したワード線を選択し、選択されたワード線に、プログラミングパルスを印加する。すると、選択されたビット線および選択されたワード線との交点に位置するメモリセルＭＴのフローティングゲートに電子が注入され、その結果、そのメモリセルＭＴのしきい値電圧が上昇する。
【００２６】
１回のプログラミングパルスの印加によるしきい値電圧の上昇量は、メモリセルＭＴ毎に異なる。また、格納対象のデータは、メモリセルＭＴ毎に異なる。周辺回路３１は、分布毎に目標電圧（ベリファイレベル）が設定されており、プログラミングパルスが印加される毎に、しきい値電圧が格納対象のデータに応じた分布のベリファイレベルに到達したか否かを確認する。この処理は、ベリファイと称され得る。
【００２７】
周辺回路３１は、しきい値電圧が格納対象のデータに応じた分布のベリファイレベルに到達していないメモリセルＭＴが残っている場合、そのメモリセルＭＴを選択して、さらにプログラミングパルスの印加を実行する。しきい値電圧が格納対象のデータに応じた分布のベリファイレベルに到達するまでプログラミングパルスの印加が繰り返されることで、選択されたワード線に接続された全てのメモリセルＭＴのしきい値電圧が格納対象のデータに対応した分布内に設定される。
【００２８】
なお、プログラミングパルスの印加の回数の上限値は、パラメータとしてメモリコントローラ１１から設定される。メモリセルＭＴがＭＬＣモードで動作する場合、後述するＳＬＣモードで動作する場合に比べて各分布に対応するしきい値電圧の幅が狭いため、例えば、ＳＬＣモードに比べて大きい値がプログラミングパルスの印加の回数の上限値として設定される。なお、以降では、分布に対応するしきい値電圧の幅を、単に、分布の幅と表記する。
【００２９】
イレース処理においては、周辺回路３１によって、例えば下記の処理が実施される。即ち、周辺回路３１は、メモリセルアレイ３２の基板にイレース電圧を印加する。そして、周辺回路３１は、イレース対象のブロックの全てのワード線ＷＬを接地電位に導通させる。すると、選択されたブロック内の各メモリセルＭＴにおいては、フローティングゲートに蓄えられていた電荷が放出され、各メモリセルＭＴのしきい値電圧が下降せしめられる。
【００３０】
イレース処理においては、分布Ｅｒに対応したベリファイレベルが設定される。周辺回路３１は、選択されたブロック内の各メモリセルＭＴのしきい値が当該ベリファイレベル以下となるまで、イレース電圧の印加を繰り返す。これによって、選択されたブロック内の各メモリセルＭＴのしきい値電圧は、分布Ｅｒ内に設定される。
【００３１】
隣接する２つの分布間には、リード処理用のリードレベルが設定される。ＭＬＣモードの場合、分布Ｅｒと分布Ａとの間と、分布Ａと分布Ｂとの間と、分布Ｂと分布Ｃとの間と、のそれぞれにリードレベルが設定される。リード処理においては、周辺回路３１は、メモリセルＭＴのしきい値電圧が属する分布を、当該しきい値電圧とリードレベルとの比較に基づいて特定する。そして、周辺回路３１は、特定した分布を当該分布に対応するデータにデコードして、デコードによって得られたデータをメモリコントローラ１１に送信する。
【００３２】
なお、図４に例示されるように、隣接する２つの分布間で裾野が重複する場合がある。その場合、ある分布を構成する一部のメモリセルＭＴのしきい値がリードレベルを越えてその分布に隣接する別の分布に含まれることによって、データの誤判定が発生し得る。即ち、プログラムされたビットデータと異なるビットデータが読み出される、ビットエラーが発生し得る。ビットエラーによって化けたデータは、メモリコントローラ１１が備えるＥＣＣ（Error  Correction  Circuit）２０によって正しいデータに訂正され得る。
【００３３】
図５は、ＳＬＣモードでデータが書き込まれた場合における実施形態のメモリセルＭＴのしきい値電圧の分布を示す図である。本図において、横軸はしきい値電圧を表し、縦軸はメモリセル数を表す。
【００３４】
ＳＬＣモードにおいても、ＭＬＣモードと同様の手順でプログラム処理、イレース処理、リード処理が実行され得る。ただし、各メモリセルＭＴのしきい値電圧が、分布Ｅｒおよび分布Ａの２つの分布のうちの何れかに含まれるように、各メモリセルＭＴのしきい値電圧が制御される。分布Ｅｒには、“０”および“１”のうちの一方が割り当てられ、分布Ａには“０”および“１”のうちの他方が割り当てられる。これによって、各メモリセルＭＴは、１ビットのデータを保持することができる。
【００３５】
分布Ｅｒは、消去された状態に対応する。即ち、イレース処理が実行された後のメモリセルＭＴのしきい値電圧は、分布Ｅｒに含まれる。メモリセルＭＴのしきい値電圧は、プログラム処理によって、分布Ｅｒ内に維持されるか、または分布Ａに至るまで上昇する。
【００３６】
ＳＬＣモードの場合、ＭＬＣモードの場合に比べて少ない数の分布が設けられている。これによって、ＳＬＣモードの場合、ＭＬＣモードの場合に比べて各分布の幅が広くなっている。各分布の幅が狭いほど、より多くの回数のプログラミングパルスの印加を要する。つまり、ＳＬＣモードによれば、ＭＬＣモードの場合に比べて、少ない回数のプログラミングパルスの印加によって、プログラム処理が完了する。
【００３７】
また、ＳＬＣモードの場合、ＭＬＣモードの場合に比べて分布Ｅｒの幅を広くすることができる。したがって、ＳＬＣモードの場合、ＭＬＣモードの場合に比べて少ない回数のイレース電圧の印加によって、イレース処理が完了する。
【００３８】
プログラミングパルスやイレース電圧の印加の回数は、処理速度、消費電力、およびメモリセルＭＴの疲弊の進行に影響を与える。プログラミングパルスやイレース電圧の印加の回数が多いほど、処理速度は遅く、消費電力は多く、メモリセルＭＴの疲弊の進行が早くなる。つまり、ＳＬＣモードによれば、ＭＬＣモードに比べて保持出来るデータの容量が小さくなることと引き替えに、処理速度が早く、消費電力が少なく、メモリセルＭＴの疲弊の進行が遅くなる。
【００３９】
実施形態では、各メモリチップ３０は、さらに、図５を用いて説明したＳＬＣモードとは異なるＳＬＣモードで動作可能である。以降、図５を用いて説明したＳＬＣモードを第１ＳＬＣモードと表記する。また、第１ＳＬＣモードと異なるＳＬＣモードを、第２ＳＬＣモードと表記する。
【００４０】
図６は、第２ＳＬＣモードでデータが書き込まれた場合における実施形態のメモリセルＭＴのしきい値電圧の分布を示す図である。本図において、横軸はしきい値電圧を表し、縦軸はメモリセル数を表す。
【００４１】
第２ＳＬＣモードによれば、第１ＳＬＣモードに比べて小さい値（例えば「１」）が、プログラミングパルスの印加の回数の上限値として設定される。これによって、図６に示されるように、第２ＳＬＣモードによれば、分布Ａの幅が第１ＳＬＣモードの場合に比べて広くなる。
【００４２】
第２ＳＬＣモードによれば、第１ＳＬＣモードよりも少ない回数のプログラミングパルスの印加によってプログラム処理が完了する。よって、第２ＳＬＣモードによれば、第１ＳＬＣモードに比べ、処理速度がさらに早くなり、消費電力がさらに少なくなる。
【００４３】
また、第２ＳＬＣモードによれば、図６に示されるように、分布Ｅｒの幅が第１ＳＬＣモードの場合に比べて狭くなっている。これは、第２ＳＬＣモードの場合に第１ＳＬＣモードの場合に比べて低い電圧値をイレース処理のためのベリファイレベルとして設定することで実現する。イレース処理のためのベリファイレベルを低くすると、イレース電圧の印加の回数が増加するが、分布Ｅｒの幅を小さくすることができる。
【００４４】
なお、第１ＳＬＣモードと第２ＳＬＣモードとで分布Ｅｒの幅が同じであってもよい。第１ＳＬＣモードの場合に第２ＳＬＣモードの場合に比べて分布Ｅｒの幅を狭くすることで、分布Ｅｒと分布Ａとが重なる範囲を狭くすることができるので、リード処理の際のビットエラーの発生頻度を低減することが可能である。
【００４５】
このように、各メモリチップ３０は、ＭＬＣモード、第１ＳＬＣモード、および第２ＳＬＣモードの何れのモードでも動作可能である。データの書き込み時のメモリコントローラ１１によるモードの選択方法については後述する。
【００４６】
図１に説明を戻す。
ＲＡＭ１２は、揮発性メモリの一例である。ＲＡＭ１２は、例えば、ＤＲＡＭ（Dynamic  Random  Access  Memory）、ＳＲＡＭ（Static  Random  Access  Memory）、またはこれらの組み合わせなどによって構成される。なお、揮発性メモリを構成するメモリの種類はこれらに限定されない。メモリシステム１は、ＲＡＭ１２の代わりに任意の種類の揮発性メモリを具備し得る。
【００４７】
メモリコントローラ１１は、ホスト２から受信したユーザデータをＲＡＭ１２にいったん格納し（図１のユーザデータ２２）、ＲＡＭ１２に格納されたユーザデータ２２を所定のタイミングでＮＡＮＤメモリ１０に書き込む。
【００４８】
また、メモリコントローラ１１は、ＲＡＭ１２に管理データ２１を格納することができる。管理データ２１は、メモリシステム１の管理のためにメモリシステム１内で使用されるデータである。つまり、管理データ２１は、ホスト２から受信したデータ（ユーザデータ）とは異なる種類のデータである。
【００４９】
管理データ２１は、例えば、論物変換テーブルを含む。論物変換テーブルは、メモリシステム１がホスト２に提供する論理アドレス空間内の位置を示すアドレス情報（論理アドレス）とＮＡＮＤメモリ１０内の物理的な位置（メモリセルアレイ３２内の位置）を示すアドレス情報（物理アドレス）とを対応付ける情報である。
【００５０】
論物変換テーブルは、例えばＮＡＮＤメモリ１０の所定の位置に格納されており、メモリコントローラ１１は、その論物変換テーブルの一部または全部を管理データ２１としてＲＡＭ１２にキャッシュする。そして、メモリコントローラ１１は、ＮＡＮＤメモリ１０にアクセスする際に、ＲＡＭ１２にキャッシュされた論物変換テーブルを参照したり更新したりする。メモリコントローラ１１は、ＲＡＭ１２にキャッシュされた論物変換テーブルのうちの少なくとも更新された部分を、所定のタイミングでＮＡＮＤメモリ１０に書き込む。
【００５１】
なお、管理データ２１は、論物変換テーブルだけに限定されない。例えば、所定の記憶領域（例えばブロック）毎にカウントされたアクセス回数を記録した情報が、管理データ２１としてＲＡＭ１２に格納されてもよい。
【００５２】
メモリコントローラ１１は、例えば、プロセッサを備え、当該プロセッサが所定のファームウェアプログラムを実行することによって、ホスト２とＮＡＮＤメモリ１０との間のデータ転送を含む各種の制御を実現する。
【００５３】
なお、メモリコントローラ１１は、１つのＳｏＣ（System-on-a-Chip）として構成されてもよいし、複数のチップによって構成されてもよい。メモリコントローラ１１は、ＲＡＭ１２を内部に備えていてもよい。
【００５４】
また、メモリコントローラ１１は、プロセッサとともに、またはプロセッサに代えて、ＦＰＧＡ（field-programmable  gate  array）やＡＳＩＣ（application  specific  integrated  circuit）を備えていてもよい。即ち、メモリコントローラ１１は、ソフトウェア、ハードウェア、またはこれらの組み合わせによって構成され得る。
【００５５】
メモリコントローラ１１は、さらに、ＥＣＣ２０を備える。
【００５６】
ＥＣＣ２０は、ＮＡＮＤメモリ１０にデータが書き込まれる前に、当該データに対し、ビットエラーの検出および訂正のための符号化を実施する。つまり、ＮＡＮＤメモリ１０には、符号化されたデータが書き込まれる。
【００５７】
ＥＣＣ２０は、ＮＡＮＤメモリ１０からデータが読み出された際には、ＮＡＮＤメモリ１０から読み出されたデータ（符号化されたデータ）を復号化することによって、当該データに含まれるビットエラーの検出を実施する。ＥＣＣ２０は、ビットエラーが検出された場合には、ビットエラーによって化けたデータを正しいデータに訂正する。
【００５８】
なお、ＥＣＣ２０による符号化／復号化の方式としては、任意の方式が採用され得る。例えば、ＢＣＨ符号やＬＤＰＣ(Low-Density  Parity-Check)符号などがＥＣＣ２０による符号化／復号化の方式として採用され得る。訂正能力が可変の方式がＥＣＣ２０による符号化／復号化の方式として採用されてもよい。
【００５９】
また、ビットエラーの検出または訂正は、プロセッサによって実現されてもよい。
【００６０】
メモリシステム１は、さらに、電力供給回路１３およびキャパシタ１４を備える。
【００６１】
電力供給回路１３は、電源３から供給される電力を、変換して、または、そのまま、ＮＡＮＤメモリ１０、メモリコントローラ１１、およびＲＡＭ１２に供給する。メモリコントローラ１１、ＮＡＮＤメモリ１０、およびＲＡＭ１２は、電力供給回路１３から供給される電力を利用して動作する。
【００６２】
キャパシタ１４は、充電可能な電池である。電源３から電力が供給されているとき、電力供給回路１３によってキャパシタ１４は充電される。電源３からの電力の供給が予告なく停止した場合、電力供給回路１３によって電力供給源が電源３からキャパシタ１４に切り替えられる。これによって、キャパシタ１４に蓄えられていた電力がＮＡＮＤメモリ１０、メモリコントローラ１１、およびＲＡＭ１２に電力供給回路１３を経由して供給される。メモリコントローラ１１、ＮＡＮＤメモリ１０、およびＲＡＭ１２は、電源３からの電力の供給が停止した後においても、しばらくの間、キャパシタ１４に蓄えられていた電力によって動作することができる。
【００６３】
一例では、電力供給回路１３は、電源３の電圧を監視する。電圧が所定のしきい値を下回った場合、電力供給回路１３は、電源３からの電力の供給が停止したと判断し、電源断信号をメモリコントローラ１１に送信する。そして、電力供給回路１３は、電力供給源を電源３からキャパシタ１４に切り替える。メモリコントローラ１１は、電源断信号の受信に応じて切り替え信号を電力供給回路１３に送信し、電力供給回路１３は、切り替え信号に応じて電力供給源を切り替えてもよい。
【００６４】
なお、メモリシステム１は、キャパシタ１４として、任意の電池が採用可能である。例えば、電解コンデンサ（electrolytic  capacitor）または電気二重層コンデンサ（electrical  double  layer  capacitor）がキャパシタ１４として採用され得る。
【００６５】
以降、電源３から供給された電力に基づいて動作するモードを、通常動作モードと表記する。また、キャパシタ１４に蓄えられた電力に基づいて動作するモードを、ＰＬＰモードと表記する。つまり、メモリシステム１は、電源３から電力が供給されている間には、通常動作モードで動作し、電力供給回路１３が電力供給源を電源３からキャパシタ１４に切り替えると、メモリシステム１の動作モードが通常動作モードからＰＬＰモードに遷移する。
【００６６】
通常動作モードにおいては、メモリコントローラ１１は、ユーザデータ２２をＮＡＮＤメモリ１０に書き込む際にはＭＬＣモードを使用し、管理データ２１をＮＡＮＤメモリ１０に書き込む際には第１ＳＬＣモードを使用する。
【００６７】
メモリコントローラ１１は、ユーザデータ２２を、各メモリセルＭＴに格納されるデータのビット数がＳＬＣモードより多いＭＬＣモードで書き込むことで、ホスト２に提供する記憶領域の容量をできるだけ多くすることができる。
【００６８】
また、メモリコントローラ１１は、管理データ２１を、疲弊の進行がＭＬＣモードより遅い第１ＳＬＣモードで書き込むことで、管理データ２１がメモリシステム１から失われるリスクを低減することができる。
【００６９】
ＰＬＰモードにおいては、メモリコントローラ１１は、ＲＡＭ１２に格納されたデータ（ユーザデータ２２、管理データ２１）を、第２ＳＬＣモードでＮＡＮＤメモリ１０に書き込む。
【００７０】
第２ＳＬＣモードによれば、ＭＬＣモードや第１ＳＬＣモードに比べて、少ない回数のプログラミングパルスの印加によってプログラム処理が完了するので、ＭＬＣモードや第１ＳＬＣモードに比べて、処理速度が早く、かつ消費電力が少ない。ＰＬＰモードにおいて第２ＳＬＣモードが使用されることによって、ＲＡＭ１２内のデータをＮＡＮＤメモリ１０に書き込む際の消費電力を低減することができる。つまり、少ない容量のキャパシタ１４であっても、ＲＡＭ１２内のデータの退避を実現することが可能となる。
【００７１】
容量が小さい電池をキャパシタ１４として採用することが可能であるので、メモリシステム１のコストを削減することが可能となる。
【００７２】
なお、ＰＬＰモードにおいてメモリコントローラ１１がＲＡＭ１２に格納されたデータをＮＡＮＤメモリ１０に書き込むことによって、ＲＡＭ１２に格納されたデータがメモリシステム１から失われることを防止することができる。
【００７３】
続いて、実施形態のメモリシステム１の動作について説明する。
【００７４】
図７は、実施形態のメモリシステム１が実行する通常動作モードでのデータの書き込みの動作の概要を示すフローチャートである。
【００７５】
ＲＡＭ１２に格納されたデータ（管理データ２１、ユーザデータ２２）のうちの何れかが、書き込み対象となる。図７の説明において、書き込み対象のデータを、対象データと表記する。
【００７６】
対象データが管理データ２１であるかユーザデータ２２であるかによって動作が異なる。対象データが管理データ２１に該当する場合（Ｓ１０１、Ｙｅｓ）、メモリコントローラ１１は、対象データを第１ＳＬＣモードでＮＡＮＤメモリ１０に書き込む（Ｓ１０２）。対象データが管理データ２１に該当しない場合（Ｓ１０１、Ｎｏ）、即ち対象データがユーザデータ２２に該当する場合、メモリコントローラ１１は、対象データをＭＬＣモードでＮＡＮＤメモリ１０に書き込む（Ｓ１０３）。Ｓ１０２またはＳ１０３の処理によって、書き込みの動作が完了する。
【００７７】
図８は、実施形態のメモリシステム１が実行するＰＬＰモードでの動作の概要を示すフローチャートである。
【００７８】
メモリコントローラ１１は、電源３からの電力の供給の停止を検知すると（Ｓ２０１）、ＰＬＰモードの動作を開始する。具体的には、メモリコントローラ１１は、まず、フリーブロックを一つ、選択する（Ｓ２０２）。Ｓ２０２の処理によって選択されたフリーブロックを、対象ブロックと表記する。
【００７９】
なお、フリーブロックは、そのブロックに書き込まれた全てのユーザデータが無効化されたブロックをいう。データが無効化されたとは、そのデータが記憶されている記憶領域の物理アドレスの位置に対応付けられた論理アドレスが存在しないことをいい、有効なデータとは、そのデータが記憶されている記憶領域の物理アドレスの位置に対応付けられた論理アドレスが存在することをいう。フリーブロックは、ガベージコレクションなどによって生成され得る。
【００８０】
ガベージコレクションは、あるブロック（第１のブロックと表記する）に格納されたデータのうち、有効なデータを他のブロック（第２のブロックと表記する）に転記し、その後、第１のブロックに格納された全てのデータを無効と見なす処理である。ガベージコレクションによって、第１のブロックは、フリーブロックとなる。
【００８１】
メモリコントローラ１１は、ガベージコレクションを実施し、ガベージコレクションによって生成されたフリーブロックをフリーブロックプールに登録する。Ｓ２０２の処理では、メモリコントローラ１１は、フリーブロックプールに登録されている１以上のブロックのうちから、対象ブロックを選択する。
【００８２】
Ｓ２０２の処理に続いて、メモリコントローラ１１は、第１ＳＬＣモードの場合に比べて分布Ｅｒの幅が狭くなるように対象ブロックのイレース処理を実行する（Ｓ２０３）。つまり、メモリコントローラ１１は、対象ブロックの全てのメモリセルＭＴのしきい値電圧が、第２ＳＬＣモードの場合の分布Ｅｒ内となるように、イレース処理を実行する。
【００８３】
例えば、メモリコントローラ１１は、対象ブロックを含むメモリチップ３０に、ベリファイレベルを指定するコマンドと、イレースコマンドとを送信する。対象ブロックを含むメモリチップ３０では、周辺回路３１が、対象ブロックに含まれるメモリセルＭＴのしきい値電圧がメモリコントローラ１１からのコマンドで指定されたベリファイレベル以下となるまで、イレース電圧の印加を繰り返す。
【００８４】
ここで、第２ＳＬＣモードの場合においては、ベリファイレベルの値は、第１ＳＬＣモードの場合に比べて小さい。これによって、対象ブロックに含まれる各メモリセルＭＴのしきい値電圧を、第１ＳＬＣモードの場合に比べて小さくすることができるので、第２ＳＬＣモードの場合の分布Ｅｒの幅を第１ＳＬＣモードの場合に比べて狭くすることができる。
【００８５】
Ｓ２０３の処理に続いて、メモリコントローラ１１は、第２ＳＬＣモードでＲＡＭ１２内のデータ（管理データ２１、ユーザデータ２２）を対象ブロックに書き込む（Ｓ２０４）。そして、ＰＬＰモードでの動作が終了する。
【００８６】
図９は、実施形態のメモリシステム１が実行する第１ＳＬＣモードでのデータの書き込みの動作の一例を示すフローチャートである。本図に例示される動作は、例えば、図７のＳ１０２の処理において実行される。
【００８７】
まず、メモリコントローラ１１は、所定値（Cs1とする）をプログラミングパルスを印加する回数の上限値として設定する（Ｓ３０１）。Cs1は、例えば、分布Ａに対応したデータの書き込み先のメモリセルＭＴのしきい値電圧を第１ＳＬＣモードの分布Ａ内に設定するために要するプログラミングパルスの印加の回数の最大値である。Cs1は、計算または実験などにより予め決められている。Ｓ３０１では、例えば、メモリコントローラ１１はCs1をデータの書き込み先のメモリチップ３０に通知する。
【００８８】
Ｓ３０１の処理に続いて、メモリコントローラ１１は、所定値（Vv1とする）をベリファイレベルとして設定する（Ｓ３０２）。Vv1は、第１ＳＬＣモードの分布Ａに対応した電圧値である。Vv1は、計算または実験などにより予め決められている。Ｓ３０２では、例えば、メモリコントローラ１１はVv1を書き込み先のメモリチップ３０に通知する。
【００８９】
Ｓ３０２の処理に続いて、メモリコントローラ１１は、書き込み先のメモリチップ３０に書き込み対象のデータを送信する（Ｓ３０３）。
【００９０】
書き込み先のメモリチップ３０では、周辺回路３１は、ｉをゼロで初期化する（Ｓ３０４）。本図の説明において、ｉの値は、Ｓ３０５〜Ｓ３０９によって構成されるループ処理の実行回数に対応する。
【００９１】
続いて、周辺回路３１は、プログラミングパルスの印加を実行する（Ｓ３０５）。そして、周辺回路３１は、Vv1を用いてベリファイを実行する（Ｓ３０６）。
【００９２】
周辺回路３１は、ベリファイの結果が合格であるか否かを判定する（Ｓ３０７）。
【００９３】
例えば、周辺回路３１は、分布Ａに対応したデータの書き込み先の全てのメモリセルＭＴのしきい値電圧がVv1を越えた場合、ベリファイの結果は合格であると判断する。また、周辺回路３１は、分布Ａに対応したデータの書き込み先の全てのメモリセルＭＴのうちの一部または全部のメモリセルＭＴのしきい値電圧がVv1に達していない場合、ベリファイの結果は合格でないと判断する。
【００９４】
ベリファイの結果が合格でない場合（Ｓ３０７、Ｎｏ）、周辺回路３１は、ｉの値を１だけインクリメントして（Ｓ３０８）、ｉの値がCs1に達したか否かを判定する（Ｓ３０９）。ｉの値がCs1に達していない場合（Ｓ３０９、Ｎｏ）、制御がＳ３０５の処理に移行する。
【００９５】
ベリファイの結果が合格である場合（Ｓ３０７、Ｙｅｓ）、またはｉの値がCs1に達した場合（Ｓ３０９、Ｙｅｓ）、第１ＳＬＣモードでのデータの書き込みが完了する。
【００９６】
図１０は、実施形態のメモリシステム１が実行する第２ＳＬＣモードでのデータの書き込みの動作の一例を示すフローチャートである。本図に例示される動作は、例えば、図８のＳ２０４の処理において実行される。
【００９７】
まず、メモリコントローラ１１は、所定値（Cs2とする）をプログラミングパルスを印加する回数の上限値として設定する（Ｓ４０１）。Cs2は、例えば、分布Ａに対応したデータの書き込み先のメモリセルＭＴのしきい値電圧を第２ＳＬＣモードの分布Ａ内に設定するために要するプログラミングパルスの印加の回数の最大値である。Cs2は、Cs1よりも小さい。Cs2は、計算または実験などにより予め決められている。Ｓ４０１では、例えば、メモリコントローラ１１はCs2をデータの書き込み先のメモリチップ３０に通知する。
【００９８】
Ｓ４０１の処理に続いて、メモリコントローラ１１は、所定値（Vv2とする）をベリファイレベルとして設定する（Ｓ４０２）。Vv2は、第２ＳＬＣモードの分布Ａに対応した電圧値である。Vv2は、Vv1よりも小さい。Vv2は、計算または実験などにより予め決められている。Ｓ４０２では、例えば、メモリコントローラ１１はVv2を書き込み先のメモリチップ３０に通知する。
【００９９】
Ｓ４０２の処理に続いて、メモリコントローラ１１は、書き込み先のメモリチップ３０に書き込み対象のデータを送信する（Ｓ４０３）。
【０１００】
書き込み先のメモリチップ３０において周辺回路３１は、ｉをゼロで初期化する（Ｓ４０４）。本図の説明において、ｉの値は、Ｓ４０５〜Ｓ４０９によって構成されるループ処理の実行回数に対応する。
【０１０１】
続いて、周辺回路３１は、プログラミングパルスの印加を実行する（Ｓ４０５）。そして、周辺回路３１は、Vv2を用いてベリファイを実行する（Ｓ４０６）。
【０１０２】
周辺回路３１は、ベリファイの結果が合格であるか否かを判定する（Ｓ４０７）。
【０１０３】
例えば、周辺回路３１は、分布Ａに対応したデータの書き込み先の全てのメモリセルＭＴのしきい値電圧がVv2を越えた場合、ベリファイの結果は合格であると判断する。また、周辺回路３１は、分布Ａに対応したデータの書き込み先の全てのメモリセルＭＴのうちの一部または全部のメモリセルＭＴのしきい値電圧がVv2に達していない場合、ベリファイの結果は合格でないと判断する。
【０１０４】
ベリファイの結果が合格でない場合（Ｓ４０７、Ｎｏ）、周辺回路３１は、ｉの値を１だけインクリメントして（Ｓ４０８）、ｉの値がCs2に達したか否かを判定する（Ｓ４０９）。ｉの値がCs2に達していない場合（Ｓ４０９、Ｎｏ）、制御がＳ４０５の処理に移行する。
【０１０５】
ベリファイの結果が合格である場合（Ｓ４０７、Ｙｅｓ）、またはｉの値がCs2に達した場合（Ｓ４０９、Ｙｅｓ）、第２ＳＬＣモードによるデータの書き込みが完了する。
【０１０６】
以上述べたように、実施形態によれば、メモリコントローラ１１は、通常動作モードにおいては、ＲＡＭ１２に格納された管理データ２１を第１ＳＬＣモードでＮＡＮＤメモリ１０に書き込む。メモリコントローラ１１は、電源３からの電力の供給が停止すると、即ちＰＬＰモードに遷移すると、ＲＡＭに格納されたデータ（ユーザデータ２２および管理データ２１）を第２ＳＬＣモードでＮＡＮＤメモリ１０に書き込む。
【０１０７】
このように、メモリコントローラ１１は、ＰＬＰモードにおいては、通常動作モードにおけるＳＬＣモード（第１ＳＬＣモード）と異なるＳＬＣモード（第２ＳＬＣモード）を用いてＲＡＭ１２内のデータのＮＡＮＤメモリ１０への書き込みを実行するように構成される。ＰＬＰモードにおいては、２つのＳＬＣモードのうちの消費電力が少ないＳＬＣモードを適用することによって、ＲＡＭ１２内のデータのＮＡＮＤメモリ１０への書き込みに要するトータルの消費電力を低減することが可能となる。その結果、少ない容量のキャパシタ１４によっても、ＲＡＭ１２内のデータの退避を実現することが可能となる。
【０１０８】
また、実施形態によれば、第２ＳＬＣモードは、各メモリセルＭＴにプログラミングパルスが印加される回数の上限値が、第１ＳＬＣモードに比べて小さいモードである。
【０１０９】
よって、ＰＬＰモードにおいてＲＡＭ１２内のデータのＮＡＮＤメモリ１０への書き込みに要するトータルの消費電力を低減することが可能となる。その結果、少ない容量のキャパシタ１４によっても、ＲＡＭ１２内のデータの退避を実現することが可能となる。また、容量の小さいキャパシタを適用することによって、メモリシステム１のコストを削減することが可能となる。
【０１１０】
なお、実施形態によれば、メモリコントローラ１１は、第１ＳＬＣモードおよび第２ＳＬＣモードにおいて、各メモリセルＭＴのしきい値電圧を、消去された状態に対応する分布Ｅｒと、分布Ｅｒと異なる分布Ａと、の何れかに含まれるように制御する。そして、メモリコントローラ１１は、第２ＳＬＣモードの場合の分布Ａの幅を、第１ＳＬＣモードの場合の分布Ａの幅よりも広くする。
【０１１１】
具体的には、前述したように、メモリコントローラ１１は、第２ＳＬＣモードでは、各メモリセルＭＴにプログラミングパルスが印加される回数を、第１ＳＬＣモードに比べて少なくすることによって、第２ＳＬＣモードの場合の分布Ａの幅を、第１ＳＬＣモードの場合の分布Ａの幅よりも広くすることができる。各メモリセルＭＴにプログラミングパルスが印加される回数を少なくすることで、分布Ａの幅が広がる。
【０１１２】
また、実施形態によれば、メモリコントローラ１１は、第２ＳＬＣモードの場合の分布Ｅｒの幅を、第１ＳＬＣモードの場合の分布Ｅｒの幅よりも狭くする。
【０１１３】
分布Ｅｒの幅を、第１ＳＬＣモードの場合の分布Ｅｒの幅よりも狭くすることによって、第１ＳＬＣモードの場合に比べて分布Ａがより広くなったとしても、分布Ｅｒの裾野と分布Ａの裾野とが重なる範囲を小さく保つことができる。つまり、リード処理時におけるビットエラーの発生を抑制しつつプログラミングパルスの印加の回数を低減することが可能となる。
【０１１４】
なお、メモリコントローラ１１は、第２ＳＬＣモードの場合、イレース処理のベリファイレベルを第１ＳＬＣモードの場合よりも低い値に設定することによって、第２ＳＬＣモードの場合の分布Ｅｒの幅を第１ＳＬＣモードの場合の分布Ｅｒの幅よりも狭くすることができる。
【０１１５】
また、実施形態によれば、メモリコントローラ１１は、ＰＬＰモードにおいては、ＲＡＭ１２に格納されたユーザデータ２２を第２ＳＬＣモードでＮＡＮＤメモリ１０に書き込む。つまり、メモリコントローラ１１は、ホスト２から受信したが、まだＮＡＮＤメモリ１０への書き込みが完了していないデータを、第２ＳＬＣモードでＮＡＮＤメモリ１０に書き込む。
【０１１６】
よって、メモリシステム１への電力の供給が突然停止した場合であっても、ホスト２から受信したがまだＮＡＮＤメモリ１０への書き込みが完了していないデータがメモリシステム１から失われることを防止することが可能となる。
【０１１７】
ところで、実施形態の技術は、フォギーファインと呼ばれる書き込み方式が採用される場合においても適用され得る。フォギーファインは、１つのワード線に対して、書き込み対象のデータを、２回に分けて書き込む方式である。２回の書き込みのうちの最初の書き込みは、フォギー書き込みと呼ばれ、次の書き込みは、ファイン書き込みと呼ばれる。例えば、メモリコントローラ１１は、通常動作モードにおいては、ユーザデータ２２をＮＡＮＤメモリ１０に書き込む場合、ファイン書き込みが完了するまで当該ユーザデータ２２をＲＡＭ１２に保持しておき、ファイン書き込みが完了した後に、当該ユーザデータ２２をＲＡＭ１２から削除する。ファイン書き込みが完了する前に電源３からの電力の供給が停止した場合、メモリコントローラ１１は、ＰＬＰモードに遷移して、当該ユーザデータ２２をＮＡＮＤメモリ１０に第２ＳＬＣモードで書き込むことができる。
【０１１８】
また、実施形態によれば、メモリコントローラ１１は、ＰＬＰモードにおいては、ＲＡＭ１２に格納された管理データ２１を第２ＳＬＣモードでＮＡＮＤメモリ１０に書き込む。
【０１１９】
管理データ２１は、メモリシステム１の管理に使用される。使用とは、更新を含む。つまり、管理データ２１は、更新され得る。メモリコントローラ１１は、ＰＬＰモードにおいて管理データ２１をＮＡＮＤメモリ１０に書き込むので、メモリシステム１への電力の供給が突然停止した場合であっても、最新の状態の管理データ２１がメモリシステム１から失われることを防止することが可能となる。
【０１２０】
また、実施形態によれば、メモリコントローラ１１は、通常動作モードにおいては、ＲＡＭ１２に格納された管理データ２１を第１ＳＬＣモードでＮＡＮＤメモリ１０に書き込むことができる。
【０１２１】
また、実施形態によれば、メモリコントローラ１１は、通常動作モードにおいては、ＲＡＭ１２に格納されたユーザデータ２２をＭＬＣモードでＮＡＮＤメモリ１０に書き込む。
【０１２２】
よって、各メモリセルＭＴに書き込めるデータのビット数を多くすることができるので、メモリシステム１がホスト２に提供する記憶領域の容量、つまり表記容量を大きくすることが可能となる。
【０１２３】
なお、以上の説明においては、各メモリセルに複数ビットのデータを書き込むモードの一例として、ＭＬＣモードを挙げた。各メモリセルに複数ビットのデータを書き込むモードとしては、各メモリセルに３ビット以上のデータを書き込むモードが採用可能である。例えば、各メモリセルに３ビットのデータを書き込むモードであるＴＬＣ（Triple  Level  Cell）モードや、各メモリセルに４ビットのデータを書き込むモードであるＱＬＣ（Quad  level  Cell）モードが採用され得る。
【０１２４】
また、以上の説明においては、メモリセルアレイ３２がメモリセルＭＴが２次元的に配列された構成を有する場合を挙げた。メモリセルアレイ３２は、メモリセルＭＴが３次元的に配列された構成を有していてもよい。その場合には、例えば、導電膜と絶縁膜とが交互に積層された積層体が柱状の半導体柱で貫通され、導電膜と半導体柱とが交差する部分にメモリセルＭＴが設けられる。
【０１２５】
また、以上の説明においては、ＭＬＣモードでのデータの書き込みの動作の説明を省略した。データの書き込み後のメモリセルＭＴのしきい値電圧の分布が図４に示した状態とすることができる限り、プログラミングパルスの印加の回数の上限値や、ベリファイレベルは、任意の方法で設定され得る。
【０１２６】
また、以上の説明においては、電源３からの電力の供給が回復した後の動作の説明を省略した。メモリコントローラ１１は、電源３からの電力の供給が回復した後は、任意の動作を実行することができる。例えば、メモリコントローラ１１は、第２ＳＬＣモードでＮＡＮＤメモリ１０に書き込んだデータ（管理データ２１、ユーザデータ２２）を読み出して、読み出したデータをＲＡＭ１２に格納してもよい。このようにすることによって、メモリシステム１は、電源３からの電力の供給が停止する直前の状態に復帰することが可能となる。
【０１２７】
なお、第２ＳＬＣモードで書き込まれたデータを読み出す方法は、特定の方法に限定されない。例えば、メモリコントローラ１１は、メモリチップ３０に対し、第２ＳＬＣモードで書き込まれたデータを対象としたリードコマンドを送信する。メモリコントローラ１１は、当該メモリチップ３０からデータを受信すると、ＥＣＣ２０によってエラービットの検出および訂正を実行する。ＥＣＣ２０がエラービットの訂正に失敗した場合、メモリコントローラ１１は、リードレベルを変更して、第２ＳＬＣモードで書き込まれたデータを対象としたリードコマンドを再び送信する。このように、メモリコントローラ１１は、正しいデータが取得できるまで、リードレベルを変更しながらリード処理を繰り返し実行してもよい。
【０１２８】
または、メモリコントローラ１１は、データを第１ＳＬＣモードで書き込む場合と、データを第２ＳＬＣモードで書き込む場合とで、ＥＣＣ２０による訂正の能力を異ならせてもよい。例えば、メモリコントローラ１１は、データを第２ＳＬＣモードで書き込む場合、データを第１ＳＬＣモードで書き込む場合に比べて、ＥＣＣ２０による訂正の能力をより強くする。これによって、第２ＳＬＣモードで書き込まれたデータの読み出しの際に正しいデータを取得できる可能性を向上させることが可能となる。
【０１２９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１３０】
１  メモリシステム、２  ホスト、３  電源、１０  ＮＡＮＤメモリ、１１  メモリコントローラ、１２  ＲＡＭ、１３  電力供給回路、１４  キャパシタ、２１  管理データ、２２  ユーザデータ、３０  メモリチップ、３１  周辺回路、３２  メモリセルアレイ。
【図１】
2020030875.tif 000003
【図２】
2020030875.tif 000004
【図３】
2020030875.tif 000005
【図４】
2020030875.tif 000006
【図５】
2020030875.tif 000007
【図６】
2020030875.tif 000008
【図７】
2020030875.tif 000009
【図８】
2020030875.tif 000010
【図９】
2020030875.tif 000011
【図１０】
2020030875.tif 000012