IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 東芝メモリ株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024038856
(43)【公開日】2024-03-21
(54)【発明の名称】メモリシステム
(51)【国際特許分類】
   G06F 11/10 20060101AFI20240313BHJP
【FI】
G06F11/10 648
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2022143180
(22)【出願日】2022-09-08
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】佐貫 朋也
(72)【発明者】
【氏名】藤澤 俊雄
(72)【発明者】
【氏名】中塚 圭祐
(57)【要約】
【課題】メモリデバイスの信頼性を向上させる。
【解決手段】実施形態のメモリシステムは、不揮発性半導体記憶装置と、メモリコントローラとを含む。不揮発性半導体記憶装置は、複数のページに対応する複数のメモリセルを有する。メモリコントローラは、不揮発性半導体記憶装置を制御する。複数のページは、第1ページを含む。メモリコントローラは、第1ページに記憶された第1データを不揮発性半導体記憶装置から読み出し、読み出された第1データに含まれたフェイルビットを訂正し、第1データの訂正したフェイルビットに関する情報を含む第1スペアデータを生成し、第1スペアデータを不揮発性半導体記憶装置に記憶させる。
【選択図】図9
【特許請求の範囲】
【請求項1】
複数のページに対応する複数のメモリセルを有する少なくとも1つのメモリデバイスを含む不揮発性半導体記憶装置と、
前記不揮発性半導体記憶装置を制御するメモリコントローラと、を備え、
前記複数のページは、第1ページを含み、
前記メモリコントローラは、前記第1ページに記憶された第1データを前記不揮発性半導体記憶装置から読み出し、読み出された第1データに含まれたフェイルビットを訂正し、前記第1データの訂正したフェイルビットに関する情報を含む第1スペアデータを生成し、前記第1スペアデータを前記不揮発性半導体記憶装置に記憶させる、
メモリシステム。
【請求項2】
前記メモリコントローラは、前記第1ページの読み出し動作において、前記第1ページに記憶された前記第1データと、前記第1スペアデータとを前記不揮発性半導体記憶装置から読み出し、前記第1スペアデータに基づいて、前記読み出された第1データに含まれたフェイルビットを訂正する、
請求項1に記載のメモリシステム。
【請求項3】
前記読み出された第1データには、前記フェイルビットを含む第2データと、前記第2データと異なる第3データと、が含まれ、
前記第1スペアデータは前記第2データに基づいて生成され、
前記第1スペアデータは前記第3データに基づかない
請求項1に記載のメモリシステム。
【請求項4】
前記第1スペアデータは、訂正されたフェイルビットの訂正後のビットの情報と、前記訂正されたフェイルビットのアドレス情報とを含む、
請求項1に記載のメモリシステム。
【請求項5】
前記第1スペアデータは、前記読み出された第1データを用いて生成されたパリティを含む、
請求項1に記載のメモリシステム。
【請求項6】
前記複数のページは、前記第1ページと異なり且つ前記第1スペアデータが記憶された第2ページを含む、
請求項1に記載のメモリシステム。
【請求項7】
前記不揮発性半導体記憶装置は、前記第1ページを有する第1メモリデバイスと、前記第2ページを有する第2メモリデバイスとを含む、
請求項6に記載のメモリシステム。
【請求項8】
前記メモリコントローラは、前記第1ページの読み出し動作において、前記第1メモリデバイスによる前記第1ページの読み出しと、前記第2メモリデバイスによる前記第2ページの読み出しとを並列に実行させる、
請求項7に記載のメモリシステム。
【請求項9】
前記複数のページは、第3ページを含み、
前記メモリコントローラは、前記第3ページに記憶された第2データを前記不揮発性半導体記憶装置から読み出し、読み出された第2データに含まれたフェイルビットを訂正し、前記第2データの訂正したフェイルビットに関する情報を含む第2スペアデータを生成し、前記第1スペアデータを前記第2ページに記憶させる際に、前記第2スペアデータも前記第2ページに記憶させる、
請求項6に記載のメモリシステム。
【請求項10】
前記第2ページは、前記第1スペアデータと前記第2スペアデータとに基づいて生成されたパリティを含む、
請求項9に記載のメモリシステム。
【請求項11】
前記メモリコントローラは、前記第1スペアデータを前記第1ページに記憶させる、
請求項1に記載のメモリシステム。
【請求項12】
前記メモリデバイスは、前記第1スペアデータを前記第1ページに記憶させる書き込み動作において、前記第1データが記憶された複数のメモリセルを書き込み禁止に設定する、
請求項11に記載のメモリシステム。
【請求項13】
前記メモリコントローラは、外部のホストデバイスからの命令に依らずに、前記複数のページのそれぞれに対する読み出し動作を定期的に実行し、読み出したデータの訂正結果に基づいて前記複数のページのそれぞれのフェイルビット数を確認し、前記フェイルビット数に基づいて、フェイルビットに関する情報を含むスペアデータを生成する、
請求項1に記載のメモリシステム。
【請求項14】
前記メモリコントローラは、前記読み出された第1ページのデータに含まれたフェイルビット数が、第1の閾値以上且つ前記第1の閾値よりも大きい第2の閾値未満である場合に、前記第1スペアデータを生成する、
請求項1に記載のメモリシステム。
【請求項15】
前記メモリコントローラは、前記読み出された第1ページのデータに含まれたフェイルビット数が、前記第1の閾値未満である場合に、前記第1スペアデータを生成しない、
請求項14に記載のメモリシステム。
【請求項16】
前記複数のページは、第4ページを含み、
前記メモリコントローラは、前記読み出された第1ページのデータに含まれたフェイルビット数が、前記第2の閾値以上である場合に、訂正された前記第1データを前記第4ページに記憶させる、
請求項14に記載のメモリシステム。
【請求項17】
前記メモリコントローラは、外部のホストデバイスから受け取った論理アドレスと、前記複数のページの物理アドレスとを関連付けるルックアップテーブルを有し、
前記ルックアップテーブルは、前記第1ページの物理アドレスを含む第1エントリと、前記第1エントリと関連付けられた前記第1スペアデータの物理アドレスとを含み、且つ前記第1エントリと関連付けられた第2エントリとを含む、
請求項1に記載のメモリシステム。
【請求項18】
前記ルックアップテーブルは、前記第1スペアデータの前記物理アドレスを含み、且つ前記第1エントリと関連付けられた第2エントリとを含む、
請求項17に記載のメモリシステム。
【請求項19】
前記第1スペアデータの前記物理アドレスは、前記第1エントリに含まれる、
請求項17に記載のメモリシステム。
【請求項20】
前記複数のメモリセルは、5ビット以上のデータを記憶するメモリセルを含む、
請求項1に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
実施形態は、メモリシステムに関する。
【背景技術】
【0002】
データを不揮発に記憶することが可能なNAND型フラッシュメモリが知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許出願公開第2018/0253347号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
メモリデバイスの信頼性を向上させる。
【課題を解決するための手段】
【0005】
実施形態のメモリシステムは、不揮発性半導体記憶装置と、メモリコントローラとを含む。不揮発性半導体記憶装置は、複数のページに対応する複数のメモリセルを有する。メモリコントローラは、不揮発性半導体記憶装置を制御する。複数のページは、第1ページを含む。メモリコントローラは、第1ページに記憶された第1データを不揮発性半導体記憶装置から読み出し、読み出された第1データに含まれたフェイルビットを訂正し、第1データの訂正したフェイルビットに関する情報を含む第1スペアデータを生成し、第1スペアデータを不揮発性半導体記憶装置に記憶させる。
【図面の簡単な説明】
【0006】
図1】第1実施形態に係るメモリシステムの全体構成の一例を示すブロック図。
図2】第1実施形態に係るメモリデバイスの構成の一例を示すブロック図。
図3】第1実施形態に係るメモリデバイスが備えるメモリセルアレイの回路構成の一例を示す回路図。
図4】第1実施形態に係るメモリデバイスにおけるメモリセルトランジスタの閾値電圧分布の一例を示す模式図。
図5】第1実施形態に係るメモリシステムにおける1ページの構成の一例を示す模式図。
図6】第1実施形態に係るメモリシステムにおけるスペアページの構成の一例を示す模式図。
図7】第1実施形態に係るメモリシステムにおけるLUTの構成の一例を示すテーブル。
図8】第1実施形態に係るメモリシステムの読み出し動作の一例を示すフローチャート。
図9】第1実施形態に係るメモリシステムのパトロール動作の一例を示すフローチャート。
図10】第1実施形態に係るメモリシステムのパトロール読み出し処理の一例を示すフローチャート。
図11】第1実施形態に係るメモリシステムのスペアデータ書き込み処理の一例を示すフローチャート。
図12】第1実施形態に係るメモリシステムのスペアデータ書き込み処理の具体例を示す概略図。
図13】第1実施形態に係るメモリシステムのスペアデータ書き込み処理によるLUTの変化の一例を示す概略図。
図14】第1実施形態に係るメモリシステムのリフレッシュ動作の一例を示すフローチャート。
図15】第1実施形態に係るメモリシステムのリフレッシュ動作によるLUTの変化の一例を示す概略図。
図16】第2実施形態に係るメモリシステムにおけるスペアページの構成の一例を示す模式図。
図17】第2実施形態に係るメモリシステムの読み出し動作の一例を示すフローチャート。
図18】第2実施形態に係るメモリシステムの読み出し動作の具体例を示す概略図。
図19】第3実施形態に係るメモリシステムにおける1ページの構成の一例を示す模式図。
図20】第3実施形態に係るメモリシステムにおいて1ページに記憶される情報の構成の一例を示す模式図。
図21】第3実施形態に係るメモリシステムにおけるLUTの構成の一例を示すテーブル。
図22】第3実施形態に係るメモリシステムの読み出し動作の一例を示すフローチャート。
図23】第3実施形態に係るメモリシステムのスペアデータ書き込み処理の一例を示すフローチャート。
図24】第3実施形態に係るメモリシステムのスペアデータ書き込み処理の具体例を示す概略図。
図25】第3実施形態に係るメモリシステムのスペアデータ書き込み処理によるLUTの変化の一例を示す概略図。
図26】第3実施形態に係るメモリシステムのリフレッシュ動作によるLUTの変化の一例を示す概略図。
図27】第4実施形態に係るメモリシステムにおいて1ページに記憶される情報の構成の一例を示す模式図。
図28】第4実施形態に係るメモリシステムの読み出し動作の一例を示すフローチャート。
図29】第4実施形態に係るメモリシステムの読み出し動作の具体例を示す概略図。
【発明を実施するための形態】
【0007】
以下に、各実施形態について図面を参照して説明する。各実施形態は、発明の技術的思想を具体化するための装置や方法を例示している。図面は、模式的又は概念的なものである。構成の図示は、適宜省略されている。本明細書において、略同一の機能及び構成を有する構成要素には、同一の符号が付加されている。参照符号に付加された数字や文字などは、同じ参照符号により参照され、且つ類似した要素同士を区別するために使用される。
【0008】
<1>第1実施形態
第1実施形態に係るメモリシステム1は、複数のページの各々で検出されたフェイルビットを訂正するための情報を、他のページにまとめて記憶させる機能を有する。以下に、第1実施形態に係るメモリシステム1の詳細について説明する。
【0009】
<1-1>構成
<1-1-1>メモリシステム1の全体構成
図1は、第1実施形態に係るメモリシステム1の全体構成の一例を示すブロック図である。図1に示すように、メモリシステム1は、外部のホストデバイス30に接続され、ホストデバイス30からの命令に応じた動作を実行可能に構成される。メモリシステム1は、例えば、メモリセット10及びメモリコントローラ20を備える。
【0010】
メモリセット10は、互いに異なる半導体チップに設けられた複数のメモリデバイスMD0~15を含む。メモリセット10に含まれたメモリデバイスMDの個数は、任意の個数に設計され得る。各メモリデバイスMDは、例えば、データを不揮発に記憶するNAND型フラッシュメモリである。各メモリデバイスMDは、ページ単位でデータを記憶し得る。メモリデバイスMDの詳細な構成については後述する。
【0011】
メモリコントローラ20は、各メモリデバイスMDを独立に制御可能に構成される。メモリコントローラ20は、ホストデバイス30からの命令に応じて、読み出し動作、書き込み動作、及び消去動作などの実行を各メモリデバイスMDに命令し得る。メモリコントローラ20は、例えば、SoC(System on Chip)である。
【0012】
メモリコントローラ20は、例えば、CPU(Central Processing Unit)21、ROM(Read Only Memory)22、バッファメモリ23、RAM(Random Access Memory)24、ECC(Error Correction Code)回路25、ホストインターフェース回路26、及びNANDインターフェース回路27を含む。
【0013】
CPU21は、メモリコントローラ20全体の動作を制御する回路である。CPU21は、例えば、ホストデバイス30から受信した命令に応じたコマンドを発行して、発行したコマンドをメモリデバイスMDに送信する。また、CPU21は、メモリデバイスMDの記憶空間を管理するための様々な処理を実行する。このような処理としては、パトロール動作、ガベージコレクション、ウェアレベリングなどが挙げられる。パトロール動作は、複数のページの各々で検出されたフェイルビットを訂正するための情報を、他のページにまとめて記憶させる処理を含む。パトロール動作の詳細については後述する。
【0014】
ROM22は、データを不揮発に保持する読み出し専用の記憶装置である。ROM22は、例えば、メモリコントローラ20の制御プログラムや制御データなどを記憶する。
【0015】
バッファメモリ23は、一時的な記憶領域としても使用される記憶装置である。バッファメモリ23は、例えば、ホストデバイス30から書き込みを指示されたデータ(以下、“書き込みデータ”と呼ぶ)や、メモリデバイスMDから読み出されたデータ(以下、“読み出しデータ”と呼ぶ)などを一時的に記憶する。バッファメモリ23は、メモリコントローラ20に外部接続されてもよい。バッファメモリ23としては、例えば、DRAM(Dynamic Random Access Memory)が使用される。
【0016】
RAM24は、CPU21の作業領域として使用される記憶装置である。RAM24は、例えば、メモリデバイスMDの記憶領域を管理するためのルックアップテーブル(LUT:Look Up Table)28を記憶する。LUT28は、メモリシステム1のパワーオン時に、メモリセット10から読み出される。LUT28は、メモリシステム1のパワーオフ時に、メモリセット10に記憶される。LUT28は、メモリシステム1の動作に応じて適宜書き換えられる。CPU21は、LUT28の差分を生成し、メモリセット10に適宜バックアップしてもよい。RAM24としては、例えば、DRAMやSRAM(Static Random Access Memory)などが使用される。
【0017】
ECC回路25は、データのエラー訂正に関する処理を実行する回路である。ECC回路25は、書き込み動作において、ホストデバイス30から受信した書き込みデータのページ毎にパリティを生成する。生成されたパリティは、書き込みデータに付加され、メモリデバイスMDに書き込まれる。ECC回路25は、読み出し動作において、メモリデバイスMDから受信した読み出しデータ(データ及びパリティの組)に基づいて、シンドロームを生成する。そして、ECC回路25は、生成したシンドロームに基づいて読み出しデータのエラーを検出し、検出したエラーを訂正する。以下では、検出されたエラーのことを、“フェイルビットFB”と呼ぶ。データのエラー訂正に関する処理は、“エラー訂正処理”、又は“ECC(Error Checking and Correcting)処理”と呼ばれてもよい。
【0018】
ホストインターフェース回路26は、ホストデバイス30と接続されるハードウェアインターフェースである。ホストインターフェース回路26は、メモリコントローラ20とホストデバイス30との間の通信を司る。ホストインターフェース回路26は、例えば、SATA(Serial Advanced Technology Attachment)、SAS(Serial Attached SCSI)、PCIe(PCI Express)TMなどの通信インターフェイス規格をサポートする。
【0019】
NANDインターフェース回路27は、各メモリデバイスMDと接続されるハードウェアインターフェースである。NANDインターフェース回路27は、メモリコントローラ20とメモリセット10との通信を司る。NANDインターフェース回路27とメモリデバイスMDとの間の接続は、NANDインターフェイス規格をサポートする。
【0020】
NANDインターフェース回路27には、例えば、並列に制御可能なチャネルCH0~CH3が接続される。チャネルCH0は、メモリデバイスMD0、MD4、MD8及びMD12に接続される。チャネルCH1は、メモリデバイスMD1、MD5、MD9及びMD13に接続される。チャネルCH2は、メモリデバイスMD2、MD6、MD10及びMD14に接続される。チャネルCH3は、メモリデバイスMD3、MD7、MD11及びMD15に接続される。並列に制御され得る複数のメモリデバイスMDの組は、例えば、“バンク”と呼ばれる。本例では、メモリセット10が、4つのバンクB0~B3を含む。バンクB0は、メモリデバイスMD0~MD3を含む。バンクB1は、メモリデバイスMD4~MD7を含む。バンクB2は、メモリデバイスMD8~MD11を含む。バンクB3は、メモリデバイスMD12~MD15を含む。同じチャネルCHに接続された複数のメモリデバイスMDは、メモリデバイスMDとNANDインターフェース回路27との間の通信を伴う動作を除き、並列に動作し得る。なお、メモリセット10が備えるメモリデバイスMDの数や、バンク及びチャネルの構成は、任意に設計され得る。
【0021】
<1-1-2>メモリデバイスMDの構成
図2は、第1実施形態に係るメモリデバイスMDの構成の一例を示すブロック図である。図2に示すように、メモリデバイスMDは、例えば、メモリセルアレイ101、入出力回路102、レジスタ回路103、ロジック制御回路104、シーケンサ105、レディビジー制御回路106、ドライバ回路107、ロウデコーダモジュール108、及びセンスアンプモジュール109を含む。
【0022】
メモリセルアレイ101は、複数のブロックBLK0~BLKn(“n”は、1以上の整数)を含む。ブロックBLKは、複数のメモリセルの集合である。ブロックBLKは、複数のページを含む。ページは、データの読み出し及び書き込みが実行される単位である。図示が省略されているが、メモリセルアレイ101には、複数のビット線BL0~BLm(“m”は1以上の整数)と、複数のワード線WLとが設けられる。各メモリセルは、例えば、1つのビット線BLと1つのワード線WLとに関連付けられる。
【0023】
入出力回路102は、メモリコントローラ20との間の入出力信号I/Oの送受信を司るインターフェース回路である。入出力回路102は、例えば、8ビットの信号(I/O0~I/O7)を並列に入出力し得る。入出力信号I/Oは、データ、ステータス情報、アドレス情報、コマンドなどを含み得る。入出力回路102は、データを、センスアンプモジュール109とメモリコントローラ20とのそれぞれとの間で入出力し得る。入出力回路102は、レジスタ回路103から転送されたステータス情報を、メモリコントローラ20に出力し得る。入出力回路102は、メモリコントローラ20から転送されたアドレス情報及びコマンドのそれぞれを、レジスタ回路103に出力し得る。
【0024】
レジスタ回路103は、ステータス情報、アドレス情報、及びコマンドなどを一時的に記憶可能な回路である。ステータス情報は、メモリコントローラ20からの指示に基づいて入出力回路102に転送され、メモリコントローラ20に出力される。アドレス情報は、ブロックアドレス、ページアドレス、カラムアドレスなどを含み得る。ブロックアドレスは、各ブロックBLKに割り当てられる。各ブロックBLKは、ブロックアドレスに基づいて特定され得る。ページアドレスは、例えば、各ワード線WLに割り当てられる。各ページは、ページアドレスに基づいて特定され得る。カラムアドレスは、各ビット線BLに割り当てられる。ページ内の各メモリセルは、カラムアドレスに基づいて特定され得る。コマンドは、メモリデバイスMDの各種動作に関する命令を含む。
【0025】
ロジック制御回路104は、メモリコントローラ20から受信した制御信号に基づいて、入出力回路102及びシーケンサ105のそれぞれを制御する。このような制御信号としては、例えば、信号CEn、CLE、ALE、WEn、REn及びWPnが使用される。信号CEnは、メモリデバイスMDをイネーブルにする信号である。信号CLEは、受け取った入出力信号I/OがコマンドCMDであることを入出力回路102に通知する信号である。信号ALEは、受け取った入出力信号I/Oがアドレス情報ADDであることを入出力回路102に通知する信号である。信号WEnは、入出力信号I/Oの入力を入出力回路102に命令する信号である。信号REnは、入出力信号I/Oの出力を入出力回路102に命令する信号である。信号WPnは、電源のオンオフ時にメモリデバイスMDを保護状態にする信号である。
【0026】
シーケンサ105は、メモリデバイスMDの全体の動作を制御する回路である。例えば、シーケンサ105は、レジスタ回路103に記憶されたコマンド及びアドレス情報に基づいて、読み出し動作、書き込み動作、消去動作などを実行する。また、シーケンサ105は、メモリデバイスMDの動作及び状態に基づいて、レジスタ回路103内のステータス情報を更新する。
【0027】
レディビジー制御回路106は、シーケンサ105の動作状態に基づいて、信号RBnを生成する。信号RBnは、メモリデバイスMDがレディ状態であるかビジー状態であるかを、メモリコントローラ20に通知する信号である。“レディ状態”は、メモリデバイスMDがメモリコントローラ20からの命令を受け付ける状態である。“ビジー状態”は、メモリデバイスMDがメモリコントローラ20からの命令を受け付けない状態である。
【0028】
ドライバ回路107は、シーケンサ105の制御に基づいて、読み出し動作、書き込み動作、消去動作などで使用される電圧を生成する。そして、ドライバ回路107は、生成した電圧を、メモリセルアレイ101、ロウデコーダモジュール108、及びセンスアンプモジュール109に供給する。
【0029】
ロウデコーダモジュール108は、メモリセルアレイ101に設けられたロウ方向の配線(ワード線WLなど)に接続された回路である。ロウデコーダモジュール108は、複数のブロックBLK0~BLKnにそれぞれ関連付けられた複数のロウデコーダRD0~RDnを含む。各ロウデコーダRDは、ブロックアドレスをデコード可能なブロックデコーダを含む。ロウデコーダモジュール108は、各ロウデコーダRDのブロックデコーダのデコード結果に基づいて、ブロックBLKを選択する。ロウデコーダモジュール108は、例えば、選択されたブロックBLK内のワード線WLなどに、関連付けられたロウデコーダRDを介して、ドライバ回路107から供給された電圧を転送する。
【0030】
センスアンプモジュール109は、メモリセルアレイ101に設けられたカラム方向の配線(ビット線BL)に接続された回路である。センスアンプモジュール109は、複数のビット線BL0~BLmにそれぞれ関連付けられた複数のセンスアンプユニットSAU0~SAUmを含む。各センスアンプユニットSAUは、関連付けられたビット線BLに電圧を印加する機能と、ビット線BLの電圧に基づいてデータを判定する機能と、データを一時的に記憶する機能を有する。センスアンプモジュール109は、読み出し動作において、メモリセルアレイ101からデータを読み出し、読み出したデータを入出力回路102に転送する。また、センスアンプモジュール109は、書き込み動作において、入出力回路102から受け取ったデータに基づいて、ビット線BLに所望の電圧を印加する。
【0031】
なお、メモリデバイスMDにおいて、メモリセルアレイ101、ロウデコーダモジュール108、及びセンスアンプモジュール109の組は、例えば、“プレーン”とも呼ばれる。各メモリデバイスMDは、複数のプレーンを備えていてもよい。メモリデバイスMDは、複数のプレーンに対して並列に読み出し動作、書き込み動作、消去動作を実行し得る。プレーンは、メモリセルアレイ101、ロウデコーダモジュール108、及びセンスアンプモジュール109以外の回路を含んでいてもよい。
【0032】
<1-1-3>メモリセルアレイ101の回路構成
図3は、第1実施形態に係るメモリデバイスMDが備えるメモリセルアレイ101の回路構成の一例を示す回路図である。図3は、メモリセルアレイ101に含まれた複数のブロックBLKのうち1つを示している。図3に示すように、ブロックBLKには、複数のビット線BL0~BLmと、複数のワード線WL0~WL7と、選択ゲート線SGD0~SGD4と、選択ゲート線SGSと、ソース線SLとが設けられる。選択ゲート線SGD0~SGD4及びSGSとワード線WL0~WL7とは、ブロックBLK毎に設けられる。ビット線BL0~BLmは、複数のブロックBLKで共有される。ソース線SLは、複数のブロックBLKで共有されてもよいし、分割されてもよい。
【0033】
ブロックBLKは、例えば、5つのストリングユニットSU0~SU4を含む。各ストリングユニットSUは、複数のNANDストリングNSを含む。複数のNANDストリングNSは、それぞれビット線BL0~BLmに関連付けられる。すなわち、各ビット線BLは、複数のブロックBLK間で同一のカラムアドレスが割り当てられたNANDストリングNSにより共有される。各NANDストリングNSは、関連付けられたビット線BLとソース線SLとの間に接続される。
【0034】
各NANDストリングNSは、例えば、メモリセルトランジスタMT0~MT7並びに選択トランジスタSTD及びSTSを含む。各メモリセルトランジスタMTは、制御ゲート及び電荷蓄積層を有するメモリセルであり、データを不揮発に保持(記憶)する。メモリセルトランジスタMTの閾値電圧は、電荷蓄積層に注入された電荷量に基づいて変更され得る。メモリセルトランジスタMTは、閾値電圧に応じたデータを記憶する。選択トランジスタSTD及びSTSのそれぞれは、ストリングユニットSUの選択に使用される。
【0035】
各NANDストリングNSでは、選択トランジスタSTD、メモリセルトランジスタMT7~MT0、及び選択トランジスタSTSが、この順番に、直列に接続される。具体的には、選択トランジスタSTDのドレイン及びソースは、関連付けられたビット線BLと、メモリセルトランジスタMT7のドレインとにそれぞれ接続される。選択トランジスタSTSのドレイン及びソースは、メモリセルトランジスタMT0のソースと、ソース線SLとにそれぞれ接続される。メモリセルトランジスタMT0~MT7は、選択トランジスタSTD及びSTSの間で直列に接続される。
【0036】
選択ゲート線SGD0~SGD4は、それぞれストリングユニットSU0~SU4に関連付けられる。各選択ゲート線SGDは、関連付けられたストリングユニットSUに含まれた複数の選択トランジスタSTDのそれぞれのゲートに接続される。選択ゲート線SGSは、関連付けられたブロックBLKに含まれた複数の選択トランジスタSTSのそれぞれのゲートに接続される。ワード線WL0~WL7は、関連付けられたブロックBLKに含まれた複数のメモリセルトランジスタMT0~MT7のそれぞれの制御ゲートにそれぞれ接続される。
【0037】
本明細書では、同一のストリングユニットSU内で共通のワード線WLに接続された複数のメモリセルトランジスタMTの集合のことを、“セルユニットCU”と呼ぶ。本明細書では、セルユニットCUに含まれた複数のメモリセルトランジスタMTの各々の1ビットデータの集合が、“1ページ”若しくは“1ページデータ”として定義される。セルユニットCUは、各メモリセルトランジスタMTが記憶するデータのビット数に応じて2ページデータ以上の記憶容量を有し得る。
【0038】
なお、第1実施形態に係るメモリデバイスMDが備えるメモリセルアレイ101の回路構成は、その他の構成であってもよい。例えば、各ブロックBLKが含むストリングユニットSUの数や、各NANDストリングNSが含むメモリセルトランジスタMT並びに選択トランジスタSTD及びSTSのそれぞれの数は、任意の数に設計され得る。
【0039】
<1-1-4>メモリセルトランジスタMTの閾値電圧分布
図4は、第1実施形態に係るメモリデバイスMDにおけるメモリセルトランジスタMTの閾値電圧分布の一例を示す模式図である。図4の(1)~(7)は、それぞれ1ビットデータ~7ビットデータがメモリセルトランジスタMTに記憶される場合のメモリセルトランジスタMTの閾値電圧分布を示している。図4に示された各分布図の横軸は、メモリセルトランジスタMTの閾値電圧(Vth)に対応する。図4に示された各分布図の縦軸は、メモリセルトランジスタMTの数(NMTs)に対応する。図4に示すように、メモリセルトランジスタMTの閾値電圧分布では、1つのメモリセルトランジスタMTが記憶するデータのビット数に応じた複数のステートが形成される。
【0040】
1つのメモリセルトランジスタMTに1ビットデータが記憶される場合(1bit/cell)、メモリセルトランジスタMTの閾値電圧分布は、図4の(1)に示すように、2個のステートS0及びS1を有する。1bit/cellでは、互いに異なる1ビットデータが、2個のステートS0及びS1のそれぞれに割り当てられる。
【0041】
1つのメモリセルトランジスタMTに2ビットデータが記憶される場合(2bit/cell)、メモリセルトランジスタMTの閾値電圧分布は、図4の(2)に示すように、4個のステートS0~S3を有する。2bit/cellでは、互いに異なる2ビットデータが、4個のステートS0~S3のそれぞれに割り当てられる。
【0042】
1つのメモリセルトランジスタMTに3ビットデータが記憶される場合(3bit/cell)、メモリセルトランジスタMTの閾値電圧分布は、図4の(3)に示すように、8個のステートS0~S7を有する。3bit/cellでは、互いに異なる3ビットデータが、8個のステートS0~S7のそれぞれに割り当てられる。
【0043】
1つのメモリセルトランジスタMTに4ビットデータが記憶される場合(4bit/cell)、メモリセルトランジスタMTの閾値電圧分布は、図4の(4)に示すように、16個のステートS0~S15を有する。4bit/cellでは、互いに異なる4ビットデータが、16個のステートS0~S15のそれぞれに割り当てられる。
【0044】
1つのメモリセルトランジスタMTに5ビットデータが記憶される場合(5bit/cell)、メモリセルトランジスタMTの閾値電圧分布は、図4の(5)に示すように、32個のステートS0~S31を有する。5bit/cellでは、互いに異なる5ビットデータが、32個のステートS0~S31のそれぞれに割り当てられる。
【0045】
1つのメモリセルトランジスタMTに6ビットデータが記憶される場合(6bit/cell)、メモリセルトランジスタMTの閾値電圧分布は、図4の(6)に示すように、64個のステートS0~S63を有する。6bit/cellでは、互いに異なる6ビットデータが、64個のステートS0~S63のそれぞれに割り当てられる。
【0046】
1つのメモリセルトランジスタMTに7ビットデータが記憶される場合(7bit/cell)、メモリセルトランジスタMTの閾値電圧分布は、図4の(7)に示すように、128個のステートS0~S127を有する。7bit/cellでは、互いに異なる7ビットデータが、128個のステートS0~S127のそれぞれに割り当てられる。
【0047】
なお、メモリセルトランジスタMTには、8ビット以上のデータが記憶されても良い。メモリセルトランジスタMTがkビットデータ(kは1以上の整数)を記憶する場合、メモリセルトランジスタMTの閾値電圧分布は、少なくとも2個のステートが設けられる。また、隣り合うステートの間には、ベリファイ電圧と読み出し電圧とが設定される。
【0048】
メモリデバイスMDは、書き込み動作において、メモリセルトランジスタMTの閾値電圧を上昇させるプログラム動作と、ベリファイ電圧を用いた読み出し動作との組を繰り返し実行する。これにより、メモリデバイスMDは、メモリセルトランジスタMTの閾値電圧を記憶させるデータのステートに対応する電圧に設定することができ、メモリセルトランジスタMTにデータを記憶させることができる。
【0049】
メモリデバイスMDは、読み出し動作において、少なくとも1つの読み出し電圧を用いた読み出し動作を実行する。そして、メモリデバイスMDは、読み出し電圧が印加されたメモリセルトランジスタMTがオンしたか否かに基づいて、当該メモリセルトランジスタMTの閾値電圧に対応するステートを特定する。これにより、メモリデバイスMDは、各メモリセルトランジスタMTに記憶されたデータを判定することができる。
【0050】
<1-1-5>ページの構成
図5は、第1実施形態に係るメモリシステム1における1ページの構成の一例を示す模式図である。図5に示すように、1ページは、例えば、データ領域DSRと、パリティ領域PSRとを含む。データ領域DSRは、データが格納(記憶)される領域である。パリティ領域PSRは、パリティが格納(記憶)される領域である。パリティ領域PSRのサイズは、ECC処理で要求されるエラー訂正能力に基づいて設計される。
【0051】
第1実施形態に係るメモリシステム1では、書き込みデータを記憶するページと、データの訂正に使用されるページとが設けられ得る。以下では、書き込みデータを記憶するページのことを、“メインページMP”と呼ぶ。データの訂正に使用されるページのことを、“スペアページSP”と呼ぶ。メインページMPは、ホストデバイス30から書き込みが要求されたデータと、当該データに基づいて生成されたパリティとを含む。スペアページSPは、少なくとも1つのメインページMPに関連付けられて設けられる。スペアページSPは、関連付けられたメインページMPにおいて検出されたフェイルビットの訂正に使用される情報を含む。なお、メインページMPには、スペアページSPが関連付けられていなくてもよいし、複数のスペアページSPが関連付けられていてもよい。
【0052】
(スペアページSPの構成)
図6は、第1実施形態に係るメモリシステム1におけるスペアページSPの構成の一例を示す模式図である。図6は、スペアページSPが3つのメインページMP1~MP3に関連付けられた情報を格納(記憶)している場合を例示している。図6に示すように、スペアページSPのデータ領域DSRは、スペアデータSD1、SD2及びSD3を格納(記憶)する。スペアページSPのパリティ領域PSRは、当該スペアページSPのデータ領域DSRに格納されたデータに基づいて生成されたパリティを記憶する。
【0053】
スペアデータSD1、SD2及びSD3は、それぞれメインページMP1、MP2及びMP3に関連付けられている。すなわち、スペアデータSD1、SD2及びSD3は、それぞれメインページMP1、MP2及びMP3において検出されたフェイルビットの訂正に使用される情報を含む。以下に、メインページMP1とスペアデータSD1との組を代表として、スペアデータSDに記憶される情報の具体例について説明する。
【0054】
図6には、メインページMP1に対するECC処理により、フェイルビットFB1、FB2及びFB3が検出された場合が例示されている。この場合、スペアデータSD1は、フェイルビットFB1に関する訂正データCD1及びカラムアドレスCA1の組(CD1+CA1)と、フェイルビットFB2に関する訂正データCD2及びカラムアドレスCA2の組(CD2+CA2)と、フェイルビットFB3に関する訂正データCD3及びカラムアドレスCA3の組(CD3+CA3)とを含む。訂正データCD1、CD2及びCD3は、それぞれフェイルビットFB1、FB2及びFB3の訂正後のデータに対応する。
【0055】
なお、スペアデータSD2及びSD3は、スペアデータSD1と同様に、関連付けられたメインページMPにおいて検出されたフェイルビットFBの訂正に使用される情報を含み得る。各スペアデータSDは、少なくとも1つのフェイルビットFBの訂正に使用される情報(訂正データCD及びカラムアドレスCAの組)を含んでいればよい。訂正対象のビットの位置が特定可能であれば、訂正データCDと、カラムアドレスCA以外のアドレス情報とが組み合わされてもよい。同じページに格納された複数のスペアデータSDの間で、関連付けられたフェイルビットFBの数は、異なっていてもよい。第1実施形態において、スペアページSPが含むスペアデータSDの数は、複数であることが好ましい。
【0056】
<1-1-6>LUT28の構成
以下に、LUT28の具体的な構成の一例について説明する。
【0057】
LUT28は、LCA(Logical Cluster Address)をインデックスとしたテーブルである。LCAは、LBA(Logical Block Address)をクラスタ(Cluster)単位にまとめたアドレスである。クラスタ(Cluster)は、例えば、開始LBAから連続する4KiBのユーザデータであり、メディア(Media)上のアドレス管理の最小単位である。“メディア(Media)”は、スーパーブロック(Super Block)とも呼ばれ、複数のブロックBLKをまとめたものである。複数のブロックBLKは、メモリデバイスMDに割り当てられた複数のPBA(Physical Block Address)に対応付けられる。メモリシステム1は、スーパーブロック単位で、メモリデバイスMDの書き込み/消去を管理し得る。LUT28の各エントリには、MCA(Media Cluster Address)が記憶される。MCAは、メディアに書き込まれたデータ(クラスタ)の記憶先を示す物理アドレスである。
【0058】
メモリコントローラ20は、メモリデバイスMDに対してデータの読み出しを行う場合に、ホストデバイス30により発行されたコマンドのLCAをインデックスとしてLUT28にアクセスして、MCAを取得する。そして、メモリコントローラ20は、取得したMCAを対象として、読み出しを行う。また、メモリコントローラ20は、メモリデバイスMDに対してデータの書き込みを行う場合、メモリコントローラ20内で管理しているデータを書き込み可能なメディアのMCAを特定する。そして、メモリコントローラ20は、特定したMCAにデータを書き込む。それから、メモリコントローラ20は、書き込んだデータのLCAをインデックスとして、LUT28のエントリを、データを書きこんだMCAに更新する。つまり、LUT28は、データ(クラスタ)がメモリデバイスMD内のユーザデータの記憶領域に書き込まれる度に更新される。
【0059】
以下では、ホストデバイス30により指定される論理アドレスに関する情報のことを、単に“LBA”と呼ぶ。メモリデバイスMDに割り当てられた物理アドレスに関する情報のことを、単に“PBA”と呼ぶ。
【0060】
図7は、第1実施形態に係るメモリシステム1におけるLUT28の構成の一例を示すテーブルである。図7に示すように、LUT28は、項目(カラム)として、例えば、“ID(識別子)”、“LBA”、“有効”、“PBA”、“スペア利用”、“スペアID”を有する。なお、以下で参照される図面のテーブルに記載された“zz”は、何らかの数値が記録されていることを示している。以下で参照される図面のテーブルに記載された“-”は、そのフィールドがブランク(空き)であることを示している。
【0061】
“ID”は、LUT28のエントリの識別子である。“有効”は、エントリに含まれた情報が有効であるか否かを示す情報である。本例では、“有効”に“○”が格納されている場合、エントリに含まれた情報が有効であることを示している。“有効”に“×”が格納されている場合、そのレコードに含まれた情報が無効であることを示している。“LBA”は、エントリに関連付けられた論理アドレスに対応する。“PBA”は、エントリに関連付けられた物理アドレスに対応する。“PBA”は、例えば、チップアドレス、ブロックアドレス、ページアドレス、及びカラムアドレスを含む。チップアドレスは、複数のメモリデバイスMDのそれぞれに割り当てられる。各メモリデバイスMDは、チップアドレスに基づいて特定され得る。なお、“PBA”の構成は、データの書き込み先が特定可能であればよい。“PBA”としては、以上で説明された構成以外のパラメータが使用されてもよい。
【0062】
“スペア利用”は、エントリのLBAに対応付けられたスペアデータSDが生成されているか否かを示す情報である。本例では、“スペア利用”に“○”が格納されている場合、当該エントリのLBAに関連付けられたスペアデータSDが生成されていることを示している。“スペアID”は、スペアデータSDが格納されているLUT28のエントリの位置を示す情報である。本例では、“スペア利用”に“○”が格納されている場合に、“スペアID”に情報が記録される。メインページMPに対応するエントリの“スペア利用”に“○”が格納されていない場合、そのエントリのLBAは、スペアデータSDを有しない。メインページMPに対応するエントリの“スペア利用”に“○”が格納されている場合、そのエントリのLBAには、少なくとも1つのスペアページSPが関連付けられている。
【0063】
本例では、“ID=2”のエントリにおいて、“スペアID=55”が記録されている。この場合、“ID=2”のエントリは、あるLBAに関連付けられたメインページMPに対応する。そして、“スペアID=55”に基づいて参照される“ID=55”のエントリが、当該メインページMPのスペアデータSDの書き込み先を示す情報に対応する。メインページMPに複数のスペアデータSDが関連付けられる場合、“ID=55”のエントリの“スペア利用”に“○”が格納され、“ID=55”のエントリの“スペアID”により示されるエントリに、続くスペアデータSDのPBAが格納される。
【0064】
なお、LUT28において、メインページMPとスペアデータSD(スペアページSP)とを関連付けるフォーマットは、これに限定されない。LUT28のフォーマットは、少なくともメインページMPの情報とスペアデータSDの情報とを関連付けて管理できればよい。メインページMPのエントリに、複数のスペアデータSD(スペアページSP)の使用有無に関する情報と、複数のスペアデータSDのPBAに関する情報とが格納されてもよい。また、メモリコントローラ20は、メインページMPに対応付けられたLUT28と、スペアページSPに対応付けられたLUT28とを個別に備えていてもよい。
【0065】
<1-2>動作
以下に、第1実施形態に係るメモリシステム1の動作について説明する。
【0066】
<1-2-1>読み出し動作
メモリシステム1では、読み出し動作の処理が、スペアデータSDの有無に応じて変化する。図8は、第1実施形態に係るメモリシステム1の読み出し動作の一例を示すフローチャートである。以下に、図8を参照して、第1実施形態に係るメモリシステム1の読み出し動作のフローについて説明する。
【0067】
メモリコントローラ20は、例えば、ホストデバイス30から読み出し要求を受信すると、読み出し動作の一連の処理を開始する(開始)。メモリコントローラ20がホストデバイス30から受信する読み出し要求は、読み出し対象の論理アドレスを含む。
【0068】
読み出し要求を受信したメモリコントローラ20は、LUT28を参照して、読み出し対象の論理アドレスに対応するエントリを検索する(ST100)。そして、メモリコントローラ20は、検索により特定されたエントリから、読み出し対象のPBAを特定する。
【0069】
次に、メモリコントローラ20は、特定されたPBAの読み出し動作を予約する(ST101)。ST101において予約される読み出し動作は、メインページMPの読み出し動作に対応する。
【0070】
次に、メモリコントローラ20は、特定されたエントリから、スペアデータSDがあるか否かを確認する(ST102)。メモリコントローラ20は、スペアデータSDがあるか否かを、例えば、ST100の処理において特定されたエントリの“スペア利用”のカラムを参照することによって確認する。
【0071】
ST102の処理において、スペアデータSDがあることが確認されなかった場合(ST102:NO)、メモリコントローラ20は、ST104の処理に進む。
【0072】
ST102の処理において、スペアデータSDがあることが確認された場合(ST102:YES)、メモリコントローラ20は、スペアページSPのPBAの読み出し動作を予約する(ST103)。メモリコントローラ20は、スペアページSPのPBAを、例えば、ST101の処理において特定されたエントリの“スペアID”のカラムに格納された情報に基づいて特定されたエントリから特定する。ST103の処理が完了すると、メモリコントローラ20は、ST104の処理に進む。
【0073】
ST104の処理において、メモリコントローラ20は、予約した読み出し動作を実行する。具体的には、メモリコントローラ20は、予約した読み出し動作に基づくコマンド及びアドレス情報を、読み出し対象のページを備えるメモリデバイスMDに送信する。すると、メモリデバイスMDは、受信したコマンド及びアドレス情報に基づいて、アドレス情報により指定されたページからデータを読み出す。そして、メモリデバイスMDは、読み出したデータをメモリコントローラ20に送信する。メモリコントローラ20は、少なくとも1つのメモリデバイスMD(すなわち、メモリセット10)から受信したデータをバッファメモリ23に記憶させる。ST104の処理は、少なくともメインページMPを対象とした読み出し動作を含む。ST104の処理において、メモリシステム1は、メインページMPとスペアページSPとが異なるメモリデバイスMD、又は同じメモリデバイスMDで異なるプレーンに割り当てられている場合に、メインページMPを対象とした読み出し動作と、スペアページSPを対象とした読み出し動作とを並列に実行してもよい。
【0074】
次に、メモリコントローラ20は、メインページMPのエラー訂正(ECC)処理を実行する(ST105)。
【0075】
次に、メモリコントローラ20は、ST105の処理において、エラー訂正に失敗したか否かを確認する(ST106)。
【0076】
エラー訂正に失敗していない、すなわちエラー訂正に成功した場合(ST106:NO)、メモリコントローラ20は、例えば、訂正したメインページMPの読み出しデータをホストデバイス30に送信し、読み出し動作の一連の処理を終了する(終了)。
【0077】
エラー訂正に失敗した場合(ST106:YES)、メモリコントローラ20は、ST106の処理により読み出されたスペアページSPのエラー訂正処理を実行する(ST107)。本例では、ST107におけるエラー訂正処理が成功するものと仮定する。
【0078】
ST107の処理が完了すると、メモリコントローラ20は、スペア反映処理を実行する(ST108)。スペア反映処理は、スペアページSPの読み出しデータから、メインページMPに関連付けられたスペアデータSDを抽出する。そして、メモリコントローラ20は、抽出されたスペアデータSDに含まれた訂正データCDを、関連付けられたカラムアドレスCAに基づいて、メインページMPの読み出しデータに反映させる。
【0079】
ST108の処理が完了すると、メモリコントローラ20は、メインページMPの再エラー訂正処理を実行する(ST109)。具体的には、メモリコントローラ20は、再エラー訂正処理において、訂正データCDが反映されたメインページMPの読み出しデータに対して、メインページMPのパリティを用いたエラー訂正処理を実行する。このエラー訂正処理が成功した場合に、メモリコントローラ20は、例えば、訂正したメインページMPの読み出しデータをホストデバイス30に送信し、図8の一連の処理を終了する(終了)。
【0080】
以上の説明では、読み出し動作がホストデバイス30の要求に基づいて実行される場合について例示したが、これに限定されない。以上で説明された読み出し動作は、メモリコントローラ20が自発的に実行する読み出し動作においても適用され得る。この場合、メモリコントローラ20とホストデバイス30との間の信号のやりとりが省略される。
【0081】
なお、第1実施形態において、メモリコントローラ20は、スペアページSPの読み出し動作が実行された場合に、ステップST105及びST106の処理を省略しても良い。この場合、メモリコントローラ20は、ST104の処理の後に、ST107の処理を実行する。これにより、メモリシステム1は、ST105及びST106の処理に要する時間を省略することができ、ST105及びST106の処理を経由してST107の処理を実行する場合よりも読み出し動作を高速化させることができる。
【0082】
<1-2-2>パトロール動作
第1実施形態に係るメモリシステム1は、ホストデバイス30からの命令に基づいた動作を実行していない期間において、自発的にパトロール動作を実行する。言い換えると、第1実施形態に係るメモリシステム1は、バックグラウンド動作中に、ホストデバイス30からの命令とは独立してパトロール動作を実行する。
【0083】
パトロール動作は、フェイルビットが増加しているページを検出する動作である。メモリシステム1は、パトロール動作において、エラー訂正ができなくなる前に、フェイルビットが増加しているページのスペアデータSDを生成する。また、メモリシステム1は、パトロール動作において、ページの状態(例えば、フェイルビットFBの数)に応じてリフレッシュ動作を実行する。メモリシステム1は、パトロール動作において、ページ毎に読み出し電圧を補正してもよい。
【0084】
図9は、第1実施形態に係るメモリシステム1のパトロール動作の一例を示すフローチャートである。以下に、図9を参照して、第1実施形態に係るメモリシステム1のパトロール動作のフローについて説明する。
【0085】
メモリコントローラ20は、例えば、メモリシステム1がアイドル状態である場合に、所定のスケジュールに基づいてパトロール動作を開始する(開始)。
【0086】
まず、メモリコントローラ20は、パトロール対象のアドレスを選択する(ST110)。パトロール対象のアドレスは、例えば、全てのブロックBLK内の全てのページである。これに限定されず、パトロール対象のアドレスとしては、各ブロックBLKから抽出された代表のページが選択されても良い。パトロール対象のアドレスの設定は、パトロール動作が実行される期間毎に変更されてもよい。
【0087】
次に、メモリコントローラ20は、パトロール読み出し処理を実行する(ST111)。パトロール読み出し処理は、パトロール動作の対象のページを読み出すことが可能であるか否かを確認する処理である。パトロール読み出し処理は、履歴テーブルを参照して実行される。履歴テーブルは、例えば、ワード線WL毎に、当該パトロール期間においてパトロール読み出し処理が実行されたか否かを示す情報を保持する。履歴テーブルは、少なくともCPU21によって参照することが可能な領域に格納されていれば良く、例えばRAM24に格納される。パトロール読み出し処理の詳細については後述する。
【0088】
次に、メモリコントローラ20は、スペアデータSDのバッファ量が所定の閾値を超えたか否かを確認する(ST112)。この所定の閾値は、例えば、バッファメモリ23のサイズに応じて設定される。この所定の閾値としては、例えば、複数のスペアデータSDの合計のサイズが少なくとも1ページ以上となる値が設定される。
【0089】
ST112の処理において、スペアデータSDのバッファ量が所定の閾値を超えていなかった場合(ST112:NO)、メモリコントローラ20は、ST114の処理に進む。
【0090】
ST112の処理において、スペアデータSDのバッファ量が所定の閾値を超えていた場合(ST112:YES)、メモリコントローラ20は、スペアデータ書き込み処理を実行する(ST113)。スペアデータ書き込み処理は、複数のスペアデータSDを、ページ単位で書き込む処理である。スペアデータ書き込み処理の詳細については後述する。ST113の処理が完了すると、メモリコントローラ20は、ST114の処理に進む。
【0091】
ST114の処理において、メモリコントローラ20は、スケジュールされた全てのパトロール読み出し処理が完了したか否かを確認する。
【0092】
ST114の処理において、スケジュールされた全てのパトロール読み出し処理が完了していなかった場合(ST114:NO)、メモリコントローラ20は、ST110の処理に進む。すなわち、メモリコントローラ20は、次のパトロール対象のアドレスを選択してパトロール読み出し処理を実行し、スペアデータSDのバッファ量に基づいて適宜スペアデータ書き込み処理を実行する。
【0093】
ST114の処理において、スケジュールされた全てのパトロール読み出し処理が完了していた場合(ST114:YES)、メモリコントローラ20は、図9の一連の処理を終了する(終了)。
【0094】
<1-2-3>パトロール読み出し処理
図10は、第1実施形態に係るメモリシステム1のパトロール読み出し処理の一例を示すフローチャートである。以下に、図10を参照して、第1実施形態に係るメモリシステム1のパトロール読み出し処理のフローについて説明する。
【0095】
パトロール読み出し処理が開始すると、まず、メモリコントローラ20は、選択されたアドレスの読み出し動作を実行する(ST120)。この選択されたアドレスは、図9のST110の処理により選択されたアドレスに対応する。第1実施形態において、ST120の処理における読み出し動作は、図8を用いて説明された読み出し動作に対応する。
【0096】
次に、メモリコントローラ20は、フェイルビット数NFBと訂正後の値とを決定する(ST121)。フェイルビット数NFBは、読み出し動作において実行されたエラー訂正処理により訂正されたフェイルビットFBの数に応じて決定される。訂正後の値は、読み出し動作において実行されたエラー訂正処理により訂正されたビットの値に対応する。なお、ST121の処理において、メモリコントローラ20は、訂正された各ビットのアドレスも管理する。
【0097】
次に、メモリコントローラ20は、フェイルビット数NFBと、所定の閾値とを比較する(ST122)。本例では、ST122の処理で使用される所定の閾値としては、“TH1”と、“TH1”よりも大きい“TH2”とが使用される。
【0098】
ST122の処理において、フェイルビット数NFBがTH1よりも小さい場合(ST122:NFB<TH1)、メモリコントローラ20は、図10の一連の処理を終了する(リターン)。
【0099】
ST122の処理において、フェイルビット数NFBがTH1以上であり且つTH2よりも小さい場合(ST122:TH1≦NFB<TH2)、メモリコントローラ20は、ST123の処理に進む。
【0100】
ST122の処理において、フェイルビット数NFBがTH2以上である場合(ST122:TH2≦NFB)、メモリコントローラ20は、ST126の処理に進む。
【0101】
ST123の処理において、メモリコントローラ20は、スペアデータ数(すなわち、選択されたアドレスに対応付けられたスペアデータSDの数)が所定の個数以下であるか否かを確認する。
【0102】
ST123の処理において、スペアデータ数が所定の個数以下でない場合(ST123:NO)、メモリコントローラ20は、ST126の処理に進む。
【0103】
ST123の処理において、スペアデータ数が所定の個数以下である場合(ST123:YES)、メモリコントローラ20は、ST124の処理に進む。
【0104】
ST124の処理において、メモリコントローラ20は、スペアデータSDを生成する。具体的には、メモリコントローラ20は、ST121の処理において決定された訂正後の値に基づいて、少なくとも1つの訂正データCD及びカラムアドレスCAの組の情報を含むスペアデータSDを生成する。
【0105】
ST124の処理が完了すると、メモリコントローラ20は、スペアデータSDをバッファリングする(ST125)。具体的には、メモリコントローラ20は、例えば、訂正データCD及びカラムアドレスCAを含むスペアデータSDをバッファメモリ23に記憶させる。ST125の処理が完了すると、メモリコントローラ20は、図10の一連の処理を終了する(リターン)。
【0106】
ST126の処理において、メモリコントローラ20は、リフレッシュ動作を実行する。リフレッシュ動作は、訂正された読み出しデータを、他のページに書き込む動作を含む。リフレッシュ動作の詳細については後述する。ST126の処理が完了すると、メモリコントローラ20は、図10の一連の処理を終了する(リターン)。
【0107】
なお、パトロール読み出し処理は、メモリセルトランジスタMTが複数ビットデータを記憶する場合に、全てのビットを対象として実行されることが好ましい。すなわち、メモリコントローラ20は、例えば、2bit/cell以上である場合に、ST120の処理において、複数ビットデータにそれぞれ対応した複数のページのそれぞれの読み出し動作を実行する。このとき、メモリシステム1は、同じセルユニットCUに記憶された複数ページのデータを、シーケンシャルに読み出してもよい。
【0108】
<1-2-4>スペアデータ書き込み処理
図11は、第1実施形態に係るメモリシステム1のスペアデータ書き込み処理の一例を示すフローチャートである。以下に、図11を参照して、第1実施形態に係るメモリシステム1のスペアデータ書き込み処理のフローについて説明する。
【0109】
スペアデータ書き込み処理が開始すると(開始)、まず、メモリコントローラ20は、複数のスペアデータSDを含むスペアページSPの書き込み先を決定する(ST130)。
【0110】
次に、メモリコントローラ20は、決定した書き込み先のメモリデバイスMDに対して書き込み動作の実行を指示する(ST131)。
【0111】
次に、メモリコントローラ20は、ST131の処理において、書き込みに成功したか否かを確認する(ST132)。
【0112】
ST132の処理において、書き込みに成功していなかった場合(ST132:NO)、メモリコントローラ20は、ST130の処理に進む。つまり、メモリコントローラ20は、書き込み先のアドレスを変更して、スペアページSPの書き込み動作を実行する。
【0113】
ST132の処理において、書き込みに成功していた場合(ST132:YES)、メモリコントローラ20は、スペアページSPの書き込み先の情報をLUT28に記録する(ST133)。
【0114】
次に、メモリコントローラ20は、スペアページSPに含まれた各スペアデータSDと、対応するメインページMPとの関連付け処理を実行する(ST134)。ST134の処理において、メモリコントローラ20は、LUT28に、各スペアデータSDと対応するメインページMPとを関連付けた情報を記録する。
【0115】
図12は、第1実施形態に係るメモリシステム1のスペアデータ書き込み処理の具体例を示す概略図である。図12の(1)は、ページアドレスPA1~PA4に記憶されている情報を示している。図12の(1)に示すように、ページアドレスPA1~PA3は、それぞれメインページMP1~MP3に対応する。メインページMP1は、フェイルビットFB1~FB3を含む。メインページMP2は、フェイルビットFB4~FB6を含む。メインページMP3は、フェイルビットFB7~FB9を含む。ページアドレスPA4は、データ領域DSR及びパリティ領域PSRのそれぞれが空き状態である。TH1=3である場合、メモリコントローラ20は、メインページMP1~MP3のそれぞれのスペアデータSDを生成し、バッファリングする。ST113の処理によりスペアデータ書き込み処理が実行されると、図12の(1)は、図12の(2)の状態に遷移する。
【0116】
図12の(2)に示すように、本例では、ページアドレスPA4に、スペアページSPが書き込まれる。ページアドレスPA4のデータ領域DSRには、メインページMP1~MP3にそれぞれ対応するスペアデータSD1~SD3が記憶されている。ページアドレスPA4のパリティ領域PSRには、スペアデータSD1~SD3に基づいて生成されたパリティが記憶されている。スペアデータSD1は、フェイルビットFB1~FB3に対応する訂正データCD及びカラムアドレス(すなわち、CD1+CA1、CD2+CA2、及びCD3+CA3)を含む。スペアデータSD2は、フェイルビットFB4~FB6に対応する訂正データCD及びカラムアドレス(すなわち、CD4+CA4、CD5+CA5、及びCD6+CA6)を含む。スペアデータSD3は、フェイルビットFB7~FB9に対応する訂正データCD及びカラムアドレス(すなわち、CD7+CA7、CD8+CA8、及びCD9+CA9)を含む。
【0117】
図13は、第1実施形態に係るメモリシステム1のスペアデータ書き込み処理によるLUT28の変化の一例を示す概略図であり、スペアデータSDの生成前後のLUT28の変化を例示している。図13の(1)は、LUT28において、ID=2のエントリに“LBA=100”、“チップアドレス=MD0”、“ブロックアドレス=BLK1”、“ページアドレス=PA1”、“カラムアドレス=CAxx”が記憶され、スペア利用及びスペアIDのカラムが空きである場合を示している。また、ID=55のエントリは、未使用の状態となっている。
【0118】
ST133及びS134の処理によりスペアデータ書き込み処理が実行されると、図13の(1)に示されたLBA28は、図13の(2)の状態に更新される。図13の(2)に示すように、本例では、ID=2のエントリに関連付けられたスペアデータSDのアドレス情報が、ID=55に記憶されている。この場合、ID=2のエントリにおいて、“スペア利用=○”及び“スペアID=55”が記録される。そして、ID=55のエントリにおいて、“LBA=100”、“チップアドレス=MD1”、“ブロックアドレス=BLK2”、“ページアドレス=PA4”、“カラムアドレス=CAyy”が記憶される。このように、本例では、メインページMPのエントリとスペアページSPのエントリとで、同じLBAが記録され、その他のアドレス情報が異なっている。
【0119】
<1-2-5>リフレッシュ動作
図14は、第1実施形態に係るメモリシステム1のリフレッシュ動作の一例を示すフローチャートである。以下に、図14を参照して、第1実施形態に係るメモリシステム1のリフレッシュ動作のフローについて説明する。
【0120】
リフレッシュ動作が開始すると(開始)、まず、メモリコントローラ20は、訂正されたデータの書き込み先を決定する(ST140)。
【0121】
次に、メモリコントローラ20は、決定した書き込み先のメモリデバイスMDに対して書き込み動作の実行を指示する(ST141)。
【0122】
次に、メモリコントローラ20は、ST141の処理において、書き込みに成功したか否かを確認する(ST142)。
【0123】
ST142の処理において、書き込みに成功していなかった場合(ST142:NO)、メモリコントローラ20は、ST140の処理に進む。つまり、メモリコントローラ20は、書き込み先のアドレスを変更して、訂正されたデータの書き込み動作を実行する。
【0124】
ST142の処理において、書き込みに成功していた場合(ST142:YES)、メモリコントローラ20は、訂正されたデータの書き込み先の情報をLUT28に記録する(ST143)。
【0125】
次に、メモリコントローラ20は、リフレッシュ動作前のメインページMPとスペアデータSDの書き込み先の情報を、LUT28内で無効化する(ST144)。
【0126】
図15は、第1実施形態に係るメモリシステム1のリフレッシュ動作によるLUT28の変化の一例を示す概略図であり、第1実施形態におけるリフレッシュ動作前後のLUT28の変化を例示している。図15の(1)に示されたLBA28では、ID=2のエントリとID=55のエントリとに、図13の(2)に示された情報と同じ情報が記憶されている。また、ID=70のエントリは、未使用の状態となっている。
【0127】
ST143及びS144の処理によりリフレッシュ動作が実行されると、図15の(1)に示されたLBA28は、図15の(2)の状態に更新される。図15の(2)に示すように、本例では、リフレッシュ動作が実行されたLBA=100に対応するデータの書き込み先のアドレス情報が、ID=70のエントリに記憶されている。また、ID=70のエントリが有効化され(“有効=○”)、メインページMPに対応するID=2のエントリと、スペアページSPに対応するID=55のエントリとのそれぞれが無効化されている(“有効=×”)。なお、メモリコントローラ20は、あるエントリで“有効”のカラムが無効に設定されている場合に、当該エントリにおいてスペア利用のカラムも無効と認識する。このため、無効化されたエントリにおけるスペア利用のカラムは、無効化されたことを示す情報に更新されてもよいし、されなくてもよい。
【0128】
<1-3>第1実施形態の効果
以上で説明された第1実施形態に係るメモリシステム1に依れば、メモリデバイスMDの信頼性を向上させることができる。以下に、第1実施形態の効果の詳細について説明する。
【0129】
NAND型フラッシュメモリは、低コストな不揮発性メモリであり、様々なアプリケーションにおいて大容量のストレージとして用いられる。NAND型フラッシュメモリのコストを抑制する方法としては、多値化技術が使用されている。多値化技術は、1つのメモリセルトランジスタMTに複数ビットデータを記憶させる技術である。図4を用いて説明されたように、メモリセルトランジスタMTの閾値電圧分布のステート数を増やすことによって、例えば、7bit/cellが実現され得る。
【0130】
一方で、メモリセルトランジスタMTから読み出されるデータのエラーは、時間経過に伴い増加する傾向を有する。このようなデータリテンション特性の影響は、メモリセルトランジスタMTが記憶するデータのビット数が多くなるほど、すなわち多値化するほど大きくなる。メモリシステムでは、データリテンションの対策のために、リフレッシュ動作が実行される。リフレッシュ動作は、メモリデバイスに書き込まれた有効なデータがデータリテンションにより読み出せなくなる前に、新しいブロックBLKに書き直す動作である。メモリシステムは、リフレッシュ動作を実行するトリガーとして、例えば、所定の周期でパトロール動作を実行する。そして、メモリシステムは、パトロール動作において、フェイルビットを多く含むページを検出し、当該ページのリフレッシュ動作を実行する。
【0131】
しかしながら、リフレッシュ動作は、有効なデータは保持できるが、書き込み及び消去(W/E)回数が増加し、メモリセルトランジスタMTの疲弊(データリテンション特性の劣化)の要因となり得る。例えば、メモリセルトランジスタMTのW/E回数のスペックは、4bit/cellでは、例えば数千回である。一方で、5bit/cell及び6bit/cellの場合のW/E回数のスペックは、例えば数百回程度である。また、7bit/cellの場合のW/E回数のスペックは、例えば数十回程度である。このように、リフレッシュ動作によるW/E回数の増加は、多値化するほど、メモリシステム1の寿命に対する影響が大きくなる。従って、メモリセルトランジスタMTにより多くのデータを記憶させるためには、リフレッシュ動作の回数が少なくなることが好ましい。
【0132】
そこで、第1実施形態に係るメモリシステム1は、パトロール読み出し処理により検出されたフェイルビット数NFBに応じて、検出されたフェイルビットFBを訂正可能なスペアデータSDを生成する。そして、メモリシステム1は、複数のページに対応してそれぞれ生成された複数のスペアデータSDを、有効なデータが記憶されたページとは別の空きページにまとめて書き込む。言い換えると、メモリシステム1は、パトロール読み出し処理でフェイルビットFBのあるページに対してリフレッシュ動作を実行する前に、スペアデータSDの生成と、スペアデータ書き込み処理を実行する。
【0133】
第1実施形態に係るメモリシステム1は、スペアデータSDを用いることによって、データリテンション特性によりフェイルビット数NFBが増加したページのデータを訂正することができ、正確なデータを取得することができる。また、第1実施形態に係るメモリシステム1は、スペアデータSDによりリフレッシュ動作を実行するまでの期間が延びるため、W/E回数を減らすことができる。さらに、スペアデータSDを生成し、複数のスペアデータSDを1ページにまとめて記憶させることによって、データの訂正に必要なデータ量を抑制することができ、空き領域の使用効率を向上させることができる。
【0134】
以上のように、第1実施形態に係るメモリシステム1は、リフレッシュ動作の回数を減らすことができ、全体のW/E回数を減らすことができる。その結果、第1実施形態に係るメモリシステム1は、メモリセルトランジスタMTを5bit/cell~7bit/cellのように多値化した場合においても、データの信頼性を維持し、且つメモリセルトランジスタMTの寿命を延ばすことができる。従って、第1実施形態に係るメモリシステム1は、メモリデバイスMDの信頼性を向上させることができ、5bit/cell以上の多値化を実用化することができる。
【0135】
<2>第2実施形態
第2実施形態に係るメモリシステム1は、メインページMPで検出されたフェイルビットが考慮された新パリティを含むスペアデータSDを生成する。以下に、第2実施形態に係るメモリシステム1の詳細について、第1実施形態と異なる点を説明する。
【0136】
<2-1>構成
第2実施形態に係るメモリシステム1の構成は、例えば、スペアページSPの構成を除いて、第1実施形態に係るメモリシステム1と同様である。以下に、第2実施形態におけるスペアページSPの構成について説明する。
【0137】
図16は、第2実施形態に係るメモリシステム1におけるスペアページSPの構成の一例を示す模式図である。図16は、スペアページSPが3つのメインページMP1~MP3に関連付けられた情報を格納(記憶)している場合を例示している。
【0138】
図16に示すように、スペアページSPのデータ領域DSRは、スペアデータSD1、SD2及びSD3を記憶する。スペアページSPのパリティ領域PSRは、当該スペアページSPのデータ領域DSRに格納されたデータに基づいて生成されたパリティを記憶する。スペアデータSD1、SD2及びSD3は、それぞれメインページMP1、MP2及びMP3に関連付けられている。第2実施形態において、各スペアデータSDは、関連付けられたメインページMPにおいて検出されたフェイルビットFBの訂正に使用される情報と、フェイルビットFBが検出されたメインページMPのデータ領域DSRのパリティ(以下、新パリティと呼ぶ)とを含む。
【0139】
図16には、メインページMP1に対するECC処理により、フェイルビットFB1、FB2及びFB3が検出された場合が例示されている。この場合、スペアデータSD1は、第1実施形態と同様に、フェイルビットFB1に関する訂正データCD1及びカラムアドレスCA1の組(CD1+CA1)と、フェイルビットFB2に関する訂正データCD2及びカラムアドレスCA2の組(CD2+CA2)と、フェイルビットFB3に関する訂正データCD3及びカラムアドレスCA3の組(CD3+CA3)とを含む。そして、第2実施形態では、スペアデータSD1が、フェイルビットFBが検出されたメインページMP1のデータ領域DSRのパリティをさらに含む。
【0140】
なお、スペアデータSD2及びSD3は、スペアデータSD1と同様に、関連付けられたメインページMPにおいて検出されたフェイルビットFBの訂正に使用される情報と、新パリティとを含み得る。各スペアデータSDは、少なくとも1つのフェイルビットFBの訂正に使用される情報(訂正データCD及びカラムアドレスCAの組)と、対応付けられたメインページMPのデータ領域DSRの新パリティとを含んでいればよい。訂正対象のビットの位置が特定可能であれば、訂正データCDと、カラムアドレスCA以外のアドレス情報とが組み合わされてもよい。同じページに格納された複数のスペアデータSDの間で、関連付けられたフェイルビットFBの数は、異なっていてもよい。第2実施形態において、スペアページSPが含むスペアデータSDの数は、複数であることが好ましい。
【0141】
<2-2>動作
第2実施形態に係るメモリシステム1の動作は、例えば、読み出し動作を除いて、第1実施形態に係るメモリシステム1と同様である。以下に、第2実施形態における読み出し動作について説明する。
【0142】
図17は、第2実施形態に係るメモリシステム1の読み出し動作の一例を示すフローチャートである。以下に、図17を参照して、第2実施形態に係るメモリシステム1の読み出し動作のフローについて説明する。
【0143】
メモリコントローラ20は、第1実施形態と同様に、例えば、ホストデバイス30から読み出し要求を受信すると、読み出し動作の一連の処理を開始する(開始)。
【0144】
まず、メモリコントローラ20は、第1実施形態と同様に、LUT28を参照して、読み出し対象の論理アドレスに対応するエントリを検索する(ST100)。
【0145】
次に、メモリコントローラ20は、第1実施形態と同様に、特定されたPBAの読み出し動作を予約する(ST101)。
【0146】
次に、メモリコントローラ20は、第1実施形態と同様に、特定されたエントリから、スペアデータSDがあるか否かを確認する(ST102)。
【0147】
ST102の処理において、スペアデータSDがあることが確認されなかった場合(ST102:NO)、メモリコントローラ20は、ST104の処理に進む。
【0148】
ST102の処理において、スペアデータSDがあることが確認された場合(ST102:YES)、メモリコントローラ20は、第1実施形態と同様に、スペアページSPのPBAの読み出し動作を予約する(ST103)。ST103の処理が完了すると、メモリコントローラ20は、ST104の処理に進む。
【0149】
ST104の処理において、メモリコントローラ20は、第1実施形態と同様に、予約した読み出し動作を実行する。
【0150】
次に、メモリコントローラ20は、ST104の処理において、スペアデータSDを読み出したか否かを確認する(ST200)。言い換えると、メモリコントローラ20は、ST200の処理の時点で、ST103の処理を経由したか否かを確認する。
【0151】
ST104の処理においてスペアデータSDを読み出していない、すなわちスペアデータSDの読み出し動作が実行されていない場合(ST200:NO)、メモリコントローラ20は、第1実施形態と同様に、メインページMPのエラー訂正(ECC)処理を実行する(ST105)。メモリコントローラ20は、ST105のエラー訂正処理に成功すると、例えば、訂正したメインページMPの読み出しデータをホストデバイス30に送信し、読み出し動作の一連の処理を終了する(終了)。
【0152】
ST104の処理においてスペアデータSDを読み出している、すなわちスペアデータSPの読み出し動作が実行されている場合(ST200:YES)、メモリコントローラ20は、スペアページSPのエラー訂正(ECC)処理を実行する(ST201)。本例では、ST201におけるエラー訂正処理が成功するものと仮定する。
【0153】
ST201の処理が完了すると、メモリコントローラ20は、新パリティを用いて、メインページMPのエラー訂正処理を実行する(ST202)。具体的には、メモリコントローラ20は、スペアページSP内の関連付けられたスペアデータSDに含まれた新パリティを用いて、メインページMPのデータ領域DSRに対応する読み出しデータのエラー訂正処理を実行する。ST202の処理において、エラー訂正に成功すると、メモリコントローラ20は、スペアデータSDに含まれた訂正データCDにより訂正可能なフェイルビットのみを含むデータを生成することができる。
【0154】
ST202の処理が完了すると、メモリコントローラ20は、スペア反映処理を実行する(ST203)。すなわち、メモリコントローラ20は、訂正されたスペアページSPから抽出されたスペアデータSDに含まれた訂正データCDを、関連付けられたカラムアドレスCAに基づいて、ST202の処理において生成されたデータに反映させる。そして、メモリコントローラ20は、例えば、スペアデータSDにより訂正されたデータをホストデバイス30に送信し、図17の一連の処理を終了する(終了)。
【0155】
以上の説明では、読み出し動作がホストデバイス30の要求に基づいて実行される場合について例示したが、これに限定されない。以上で説明された読み出し動作は、メモリコントローラ20が自発的に実行する読み出し動作においても適用され得る。この場合、メモリコントローラ20とホストデバイス30との間の信号のやりとりが省略される。
【0156】
図18は、第2実施形態に係るメモリシステム1の読み出し動作の具体例を示す概略図である。図18は、図16に示されたスペアページSPを利用して、メインページMP1のデータを読み出す場合の動作を示している。図18に示すように、まず、メモリコントローラ20は、メインページMP1とスペアページSPと読み出す(S104)。そして、メモリコントローラ20は、S201の処理によって、スペアページSPのパリティ領域PSRのパリティを用いて、スペアページSPのデータ領域DSRに記憶されたデータのエラー訂正処理を実行する。これにより、メモリコントローラ20は、メインページMP1に関連付けられ、少なくとも1つの訂正データCDと新パリティとを含むスペアデータSD1を取得することができる。
【0157】
その後、メモリコントローラ20は、S202の処理によって、スペアデータSD1に含まれた新パリティを用いて、メインページMP1のデータ領域DSRに記憶されたデータのエラー訂正処理を実行する。なお、この場合、メインページMP1のパリティ領域PSRに記憶されたパリティは無効化されている。すると、メモリコントローラ20は、フェイルビットFB1~FB3を含むデータを取得することができる。それから、メモリコントローラ20は、S203の処理によって、スペアデータSD1に含まれた訂正データCD1~CD3を、それぞれカラムアドレスCA1~CA3に基づいて、S202の処理により取得されたデータに反映させる。その結果、メモリコントローラ20は、フェイルビットFB1~FB3がそれぞれ訂正データCD1~CD3に置き換えられたデータ、すなわちフェイルビットFBを含まないデータを取得することができる。
【0158】
<2-3>第2実施形態の効果
第2実施形態に係るメモリシステム1は、第1実施形態と同様に、メモリデバイスMDの信頼性を向上させることができる。また、第2実施形態に係るメモリシステム1は、第1実施形態よりもエラー訂正処理の回数が少なくなるため、読み出し動作を第1実施形態よりも高速化させることができる。
【0159】
<3>第3実施形態
第3実施形態に係るメモリシステム1は、第1実施形態で説明されたスペアデータSDを、メインページMPの余剰領域に記憶させる。以下に、第3実施形態に係るメモリシステム1の詳細について、第1実施形態と異なる点を説明する。
【0160】
<3-1>構成
第3実施形態に係るメモリシステム1の構成は、例えば、ページの構成と、LUT28の構成とを除いて、第1実施形態に係るメモリシステム1と同様である。以下に、第3実施形態におけるページの構成とLUT28の構成とについて順に説明する。
【0161】
<3-1-1>ページの構成
第3実施形態に係るメモリシステム1では、第1実施形態で説明されたメインページMPとスペアページSPとの組が、同じ1ページに記憶される。
【0162】
図19は、第3実施形態に係るメモリシステム1における1ページの構成の一例を示す模式図である。図19に示すように、第3実施形態における1ページは、例えば、データ領域DSRと、パリティ領域PSRと、スペア領域SSRとを含む。スペア領域SSRは、スペアデータSDに関連するデータを記憶可能な領域である。スペア領域SSRは、スペアデータSDが生成されていないLBAに関連付けられたページにおいて、空き(ブランク)である。一方で、スペア領域SSRは、スペアデータSDが生成されているLBAに関連付けられたページにおいて、当該ページのスペアデータSDを含む。
【0163】
図20は、第3実施形態に係るメモリシステム1において1ページに記憶される情報の構成の一例を示す模式図である。図20は、1ページにデータと当該データに関連付けられたスペアデータSDとが記憶されている場合を例示している。
【0164】
図20に示すように、第3実施形態におけるデータ領域DSRは、(ユーザ)データを記憶する。第3実施形態におけるパリティ領域PSRは、データ領域DSRに記憶されたデータに基づいて生成されたパリティ(以下、“第1パリティ”と呼ぶ)を記憶する。スペア領域SSRは、スペアデータSDを記憶する。第3実施形態におけるスペアデータSDは、関連付けられたデータにおいて検出されたフェイルビットFBの訂正に使用される情報と、当該情報に基づいて生成されたパリティ(以下、“第2パリティ”と呼ぶ)とを含む。
【0165】
図20には、データ領域DSRに記憶されたデータに対するECC処理により、フェイルビットFB1、FB2及びFB3が検出された場合が例示されている。この場合、スペアデータSDは、第1実施形態と同様に、フェイルビットFB1に関する訂正データCD1及びカラムアドレスCA1の組(CD1+CA1)と、フェイルビットFB2に関する訂正データCD2及びカラムアドレスCA2の組(CD2+CA2)と、フェイルビットFB3に関する訂正データCD3及びカラムアドレスCA3の組(CD3+CA3)と、第2パリティとを含む。
【0166】
なお、第3実施形態において、スペア領域SSRには、2つ以上のスペアデータSDが記憶されていてもよい。訂正対象のビットの位置が特定可能であれば、訂正データCDと、カラムアドレスCA以外のアドレス情報とが組み合わされてもよい。同じページに格納された複数のスペアデータSDの間で、関連付けられたフェイルビットFBの数は、異なっていてもよい。
【0167】
<3-1-2>LUT28の構成
図21は、第3実施形態に係るメモリシステム1におけるLUT28の構成の一例を示すテーブルである。図21に示すように、第3実施形態におけるLUT28は、項目(カラム)として、例えば、“ID(識別子)”、“LBA”、“有効”、“PBA”、“スペア利用”、及び“スペアアドレス”を有する。第3実施形態における“ID(識別子)”、“LBA”、“有効”、“PBA”、及び“スペア利用”のそれぞれは、第1実施形態のLUT28と同様である。“スペアアドレス”は、エントリのLBAに対応付けられたスペアデータSDが生成されている場合に、スペアデータSDが記憶されたアドレス情報を示している。スペアアドレスは、例えば、カラムアドレスである。
【0168】
本例では、“ID=2”のエントリにおいて、“スペアアドレス=CAxy”が記録されている。CAxyは、“ID=2”のエントリにおいて示されたデータのPBAのカラムアドレスCAxxと異なっている。つまり、メモリコントローラ20は、“スペア利用”に“○”が格納されたエントリにおいて、データのPBAと、スペアデータSDのスペアアドレスとに基づいて、同じページに記憶されたデータとスペアデータSDとのそれぞれの記憶位置を特定することができる。なお、スペアアドレスとしては、スペアデータSDの記憶位置が特定可能であれば、その他の情報が使用されてもよい。
【0169】
なお、LUT28において、データとスペアデータSDとを関連付けるフォーマットは、これに限定されない。LUT28のフォーマットは、少なくともデータの情報とスペアデータSDの情報とを関連付けて管理できればよい。ページのエントリに、複数のスペアデータSDの使用有無に関する情報と、複数のスペアデータSDのスペアアドレスに関する情報とが格納されてもよい。また、メモリコントローラ20は、データに対応付けられたLUT28と、スペアデータSDに対応付けられたLUT28とを個別に備えていてもよい。この場合、スペアデータSDに対応付けられたLUT28は、スペアデータSDに対応付けられたスペアアドレスと、データに対応付けられたPBAのチップアドレス、ブロックアドレス、及びページアドレスとを含む。
【0170】
<3-2>動作
第3実施形態に係るメモリシステム1の動作は、例えば、読み出し動作と、スペアデータ書き込み処理とを除いて、第1実施形態に係るメモリシステム1と同様である。以下に、第3実施形態における読み出し動作とスペアデータ書き込み処理とについて順に説明する。
【0171】
<3-2-1>読み出し動作
図22は、第3実施形態に係るメモリシステム1の読み出し動作の一例を示すフローチャートである。以下に、図22を参照して、第1実施形態に係るメモリシステム1の読み出し動作のフローについて説明する。
【0172】
メモリコントローラ20は、第1実施形態と同様に、例えば、ホストデバイス30から読み出し要求を受信すると、読み出し動作の一連の処理を開始する(開始)。
【0173】
まず、メモリコントローラ20は、第1実施形態と同様に、LUT28を参照して、読み出し対象の論理アドレスに対応するエントリを検索する(ST100)。
【0174】
次に、メモリコントローラ20は、第1実施形態と同様に、特定されたPBAの読み出し動作を予約する(ST101)。
【0175】
次に、メモリコントローラ20は、第1実施形態と同様に、特定されたエントリから、スペアデータSDがあるか否かを確認する(ST102)。
【0176】
ST102の処理において、スペアデータSDがあることが確認されなかった場合(ST102:NO)、メモリコントローラ20は、ST301の処理に進む。
【0177】
ST102の処理において、スペアデータSDがあることが確認された場合(ST102:YES)、メモリコントローラ20は、スペアページSPのPBA、すなわちスペアページSPのスペアアドレスの読み出し動作を予約する(ST300)。具体的には、ST300の処理において、メモリコントローラ20は、ST101で予約された読み出し動作に対して、読み出し対象のカラムアドレスを追加する。ST300の処理が完了すると、メモリコントローラ20は、ST301の処理に進む。
【0178】
ST301の処理において、メモリコントローラ20は、予約した読み出し動作を実行する。具体的には、メモリコントローラ20は、予約した読み出し動作に基づくコマンド及びアドレス情報を、読み出し対象のページを備えるメモリデバイスMDに送信する。すると、メモリデバイスMDは、受信したコマンド及びアドレス情報に基づいて、アドレス情報により指定されたページからデータを読み出す。そして、メモリデバイスMDは、読み出したデータをメモリコントローラ20に送信する。メモリコントローラ20は、メモリデバイスMDから受信したデータをバッファメモリ23に記憶させる。
【0179】
次に、メモリコントローラ20は、データ領域DSRのエラー訂正(ECC)処理を実行する(ST302)。言い換えると、ST302の処理において、メモリコントローラ20は、パリティ領域PSRから読み出されたパリティを用いて、データ領域DSRから読み出されたデータのエラー訂正処理を実行する。
【0180】
次に、メモリコントローラ20は、ST302の処理において、エラー訂正に失敗したか否かを確認する(ST303)。
【0181】
エラー訂正に失敗していない、すなわちエラー訂正に成功した場合(ST303:NO)、メモリコントローラ20は、例えば、ST302の処理により訂正されたデータをホストデバイス30に送信し、読み出し動作の一連の処理を終了する(終了)。
【0182】
エラー訂正に失敗した場合(ST303:YES)、メモリコントローラ20は、ST301の処理により読み出されたスペア領域SSRのエラー訂正処理を実行する(ST304)。言い換えると、ST304の処理において、メモリコントローラ20は、スペア領域SSRから読み出されたスペアデータSDに含まれたパリティを用いて、スペアデータSDに含まれた訂正データCD及びカラムアドレスCAのエラー訂正処理を実行する。本例では、ST304におけるエラー訂正処理が成功するものと仮定する。
【0183】
ST304の処理が完了すると、メモリコントローラ20は、スペア反映処理を実行する(ST305)。ST305の処理において、メモリコントローラ20は、訂正されたスペアデータSDに含まれた訂正データCDを、関連付けられたカラムアドレスCAに基づいて、ST301の処理においてデータ領域DSRから読み出されたデータに反映させる。
【0184】
ST305の処理が完了すると、メモリコントローラ20は、データ領域DSRの再エラー訂正処理を実行する(ST306)。具体的には、メモリコントローラ20は、再エラー訂正処理において、訂正データCDが反映されたデータ領域DSRの読み出しデータに対して、パリティ領域PSRのパリティを用いたエラー訂正処理を実行する。このエラー訂正処理が成功した場合に、メモリコントローラ20は、例えば、訂正したデータをホストデバイス30に送信し、読み出し動作の一連の処理を終了する(終了)。
【0185】
以上の説明では、読み出し動作がホストデバイス30の要求に基づいて実行される場合について例示したが、これに限定されない。以上で説明された読み出し動作は、メモリコントローラ20が自発的に実行する読み出し動作においても適用され得る。この場合、メモリコントローラ20とホストデバイス30との間の信号のやりとりが省略される。
【0186】
なお、第3実施形態において、メモリコントローラ20は、スペアデータSDの読み出しが実行された場合に、ステップST302及びS303の処理を省略しても良い。この場合、メモリコントローラ20は、ST301の処理の後に、ST304の処理を実行する。これにより、メモリシステム1は、ST302及びST303の処理に要する時間を省略することができ、ST302及びST303の処理を経由してST304の処理を実行する場合よりも読み出し動作を高速化させることができる。
【0187】
<3-2-2>スペアデータ書き込み処理
図23は、第3実施形態に係るメモリシステム1のスペアデータ書き込み処理の一例を示すフローチャートである。以下に、図23を参照して、第3実施形態に係るメモリシステム1のスペアデータ書き込み処理のフローについて説明する。
【0188】
スペアデータ書き込み処理が開始すると(開始)、まず、メモリコントローラ20は、関連付けられたデータの書き込み先ページを特定する(ST310)。
【0189】
次に、メモリコントローラ20は、書き込み先のメモリデバイスMDに対して書き込み動作の実行を指示し、データ領域DSR及びパリティ領域PSRを書き込み禁止に設定した書き込み動作を実行する(ST311)。
【0190】
次に、メモリコントローラ20は、スペアデータSDが作成されたことをLUT28に記録する(ST312)。ST312の処理が完了すると、メモリコントローラ20は、図23の一連の処理を終了する(リターン)。
【0191】
なお、第3実施形態において、メモリコントローラ20は、スペアデータSDが作成されたタイミングで、スペアデータ書き込み処理を実行してもよいし、スペアデータSDがある程度バッファされたタイミングでスペアデータ書き込み処理を実行してもよい。スペアデータSDが作成されたタイミングでスペアデータ書き込み処理を実行される場合には、ST125の処理が、スペアデータ書き込み処理に置き換えられる。
【0192】
図24は、第3実施形態に係るメモリシステム1のスペアデータ書き込み処理の具体例を示す概略図である。図24の(1)は、ページアドレスPA1に対応するページのスペアデータ書き込み処理前の状態と、対応する閾値電圧分布を示している。図24の(1)に示すように、データ領域DSRに、データが記憶されている。パリティ領域PSRに、パリティが記憶されている。スペア領域SSRは、空き状態である。この場合、データ領域DSR及びパリティ領域PSRの組に含まれた複数のメモリセルトランジスタMTの閾値電圧分布は、複数のステートS0~S(N)(Nは1以上の整数)を形成している。一方で、スペア領域SSRに含まれた複数のメモリセルトランジスタMTの閾値電圧分布は、ステートS0のみを有する。
【0193】
スペアデータ書き込み処理が実行されると、図24の(1)に示された1ページの状態は、図24の(2)の状態に更新される。図24の(2)に示すように、スペアデータ書き込み処理が実行されると、ページアドレスPA1のスペア領域SSRに、スペアデータSDが書き込まれる。つまり、スペア領域SSRに含まれた複数のメモリセルトランジスタMTの閾値電圧分布に、ステートS0~S(N)が形成される。一方で、データ領域DSR及びパリティ領域PSRは、スペアデータ書き込み処理において書き込み禁止に設定される。このため、データ領域DSR及びパリティ領域PSRに含まれた複数のメモリセルトランジスタMTの閾値電圧分布は、図24の(1)の状態からの変動が抑制される。
【0194】
図25は、第3実施形態に係るメモリシステム1のスペアデータ書き込み処理によるLUT28の変化の一例を示す概略図であり、リフレッシュ動作前後のLUT28の変化を例示している。図25の(1)は、LUT28において、ID=2のエントリに“LBA=100”、“チップアドレス=MD0”、“ブロックアドレス=BLK1”、“ページアドレス=PA1”、“カラムアドレス=CAxx”が記憶され、スペア利用及びスペアアドレスのカラムが空きである場合を示している。
【0195】
ST312の処理によりスペアデータ書き込み処理が実行されると、図25の(1)に示されたLBA28は、図25の(2)の状態に更新される。図25の(2)に示すように、本例では、ID=2のエントリにおいて、“スペア利用=○”及び“スペアアドレス=CAxy”が記録される。カラムアドレスCAxxとCAxyとは、同じページで異なるメモリセルトランジスタMTの組の範囲を示している。具体的には、カラムアドレスCAxxは、データ領域DSR及びパリティ領域PSRの位置に対応する。カラムアドレスCAxyは、スペア領域SSRの位置に対応する。
【0196】
<3-2-3>リフレッシュ動作
図26は、第3実施形態に係るメモリシステム1のリフレッシュ動作によるLUT28の変化の一例を示す概略図であり、第3実施形態におけるリフレッシュ動作前後のLUT28の変化を例示している。図26の(1)に示されたLBA28では、ID=2のエントリに、図25の(2)に示された情報と同じ情報が記憶されている。また、ID=70のエントリは、未使用の状態となっている。
【0197】
ST143及びS144の処理によりリフレッシュ動作が実行されると、図26の(1)に示されたLBA28は、図26の(2)の状態に更新される。図26の(2)に示すように、本例では、リフレッシュ動作が実行されたLBA=100に対応するデータの書き込み先のアドレス情報が、ID=70のエントリに記憶されている。また、ID=70のエントリが有効化され(“有効=○”)、リフレッシュ動作の対象のページに対応するID=2のエントリが無効化されている(“有効=×”)。
【0198】
<3-3>第3実施形態の効果
第3実施形態に係るメモリシステム1は、第1実施形態と同様に、メモリデバイスMDの信頼性を向上させることができる。また、第3実施形態に係るメモリシステム1は、スペア領域SSRが予め確保されていることによって、LUT28によるアドレス管理を第1実施形態よりも簡易化させることができる。さらに、第3実施形態に係るメモリシステム1は、1ページの読み出し動作で、データ領域DSRのデータとスペア領域SSRのスペアデータSDとを一括で読み出すことができるため、読み出し動作を第1実施形態よりも高速化させることができる。
【0199】
<4>第4実施形態
第4実施形態に係るメモリシステム1は、第2実施形態で説明されたスペアデータSDを、第3実施形態と同様にページのスペア領域SSRに記憶させる。以下に、第4実施形態に係るメモリシステム1の詳細について、第1~第3実施形態と異なる点を説明する。
【0200】
<4-1>構成
第4実施形態に係るメモリシステム1の構成は、例えば、ページの構成を除いて、第3実施形態に係るメモリシステム1と同様である。以下に、第4実施形態におけるページの構成について説明する。
【0201】
第4実施形態における1ページは、第3実施形態と同様に、データ領域DSRと、パリティ領域PSRと、スペア領域SSRとを含む。図27は、第4実施形態に係るメモリシステム1において1ページに記憶される情報の構成の一例を示す模式図である。図27は、1ページにデータと当該データに関連付けられたスペアデータSDとが記憶されている場合を例示している。
【0202】
図20に示すように、第4実施形態におけるデータ領域DSRは、(ユーザ)データを記憶する。第4実施形態におけるパリティ領域PSRは、第1パリティを記憶する。第4実施形態におけるスペア領域SSRは、スペアデータSDを記憶する。第4実施形態におけるスペアデータSDは、関連付けられたデータにおいて検出されたフェイルビットFBの訂正に使用される情報と、関連付けられたデータ領域DSRにおいて、フェイルビットFBが検出されたデータのパリティ(以下、“新パリティ”と呼ぶ)と、当該情報と新パリティとに基づいて生成されたパリティ(以下、“第2パリティ”と呼ぶ)とを含む。
【0203】
図20には、メインページMP1に対するECC処理により、フェイルビットFB1、FB2及びFB3が検出された場合が例示されている。この場合、スペアデータSD1は、第1実施形態と同様に、フェイルビットFB1に関する訂正データCD1及びカラムアドレスCA1の組(CD1+CA1)と、フェイルビットFB2に関する訂正データCD2及びカラムアドレスCA2の組(CD2+CA2)と、フェイルビットFB3に関する訂正データCD3及びカラムアドレスCA3の組(CD3+CA3)と、スペアデータSDとを含む。
【0204】
なお、第4実施形態において、スペア領域SSRには、2つ以上のスペアデータSDが記憶されていてもよい。各スペアデータSDが記憶する訂正データCDは、訂正対象のビットの位置が特定可能であれば、訂正データCDと、カラムアドレスCA以外のアドレス情報とが組み合わされてもよい。同じページに格納された複数のスペアデータSDの間で、関連付けられたフェイルビットFBの数は、異なっていてもよい。
【0205】
<4-2>動作
第4実施形態に係るメモリシステム1の動作は、例えば、読み出し動作を除いて、第3実施形態に係るメモリシステム1と同様である。以下に、第4実施形態における読み出し動作について説明する。
【0206】
図28は、第4実施形態に係るメモリシステム1の読み出し動作の一例を示すフローチャートである。以下に、図28を参照して、第2実施形態に係るメモリシステム1の読み出し動作のフローについて説明する。
【0207】
メモリコントローラ20は、第1実施形態と同様に、例えば、ホストデバイス30から読み出し要求を受信すると、読み出し動作の一連の処理を開始する(開始)。
【0208】
まず、メモリコントローラ20は、第1実施形態と同様に、LUT28を参照して、読み出し対象の論理アドレスに対応するエントリを検索する(ST100)。
【0209】
次に、メモリコントローラ20は、第1実施形態と同様に、特定されたPBAの読み出し動作を予約する(ST101)。
【0210】
次に、メモリコントローラ20は、第1実施形態と同様に、特定されたエントリから、スペアデータSDがあるか否かを確認する(ST102)。
【0211】
ST102の処理において、スペアデータSDがあることが確認されなかった場合(ST102:NO)、メモリコントローラ20は、ST301の処理に進む。
【0212】
ST102の処理において、スペアデータSDがあることが確認された場合(ST102:YES)、メモリコントローラ20は、第3実施形態と同様に、スペアデータSDのPBAの読み出し動作を予約する(ST300)。ST300の処理が完了すると、メモリコントローラ20は、ST301の処理に進む。
【0213】
ST301の処理において、メモリコントローラ20は、第3実施形態と同様に、予約した読み出し動作を実行する。
【0214】
次に、メモリコントローラ20は、ST301の処理において、スペアデータSDを読み出したか否かを確認する(ST400)。言い換えると、メモリコントローラ20は、ST400の処理の時点で、ST300の処理を経由したか否かを確認する。
【0215】
ST400の処理においてスペアデータSDを読み出していない場合(ST400:NO)、メモリコントローラ20は、第3実施形態と同様に、データ領域DSRのエラー訂正(ECC)処理を実行する(ST302)。メモリコントローラ20は、ST302のエラー訂正処理に成功すると、例えば、訂正したデータをホストデバイス30に送信し、図28の一連の処理を終了する(終了)。
【0216】
ST400の処理においてスペアデータSDを読み出している場合(ST700:YES)、メモリコントローラ20は、スペア領域SSRのエラー訂正(ECC)処理を実行する(ST401)。本例では、ST401におけるエラー訂正処理が成功するものと仮定する。
【0217】
ST401の処理が完了すると、メモリコントローラ20は、新パリティを用いて、データ領域DSRのエラー訂正処理を実行する(ST402)。具体的には、メモリコントローラ20は、スペアデータSDに含まれた新パリティを用いて、データ領域DSRから読み出されたデータのエラー訂正処理を実行する。ST402の処理において、エラー訂正に成功すると、メモリコントローラ20は、スペアデータSDに含まれた訂正データCDにより訂正可能なフェイルビットのみを含むデータを生成することができる。
【0218】
ST402の処理が完了すると、メモリコントローラ20は、スペア反映処理を実行する(ST403)。すなわち、メモリコントローラ20は、訂正されたスペアデータSDに含まれた訂正データCDを、関連付けられたカラムアドレスCAに基づいて、ST402の処理において生成されたデータに反映させる。そして、メモリコントローラ20は、例えば、スペアデータSDにより訂正されたデータをホストデバイス30に送信し、読み出し動作の一連の処理を終了する(終了)。
【0219】
以上の説明では、読み出し動作がホストデバイス30の要求に基づいて実行される場合について例示したが、これに限定されない。以上で説明された読み出し動作は、メモリコントローラ20が自発的に実行する読み出し動作においても適用され得る。この場合、メモリコントローラ20とホストデバイス30との間の信号のやりとりが省略される。
【0220】
図29は、第4実施形態に係るメモリシステム1の読み出し動作の具体例を示す概略図。図29は、図27に示されたスペアデータSDを利用して、データを読み出す場合の動作を示している。図29に示すように、まず、メモリコントローラ20は、1ページに記憶されたデータを読み出す(S301)。そして、メモリコントローラ20は、S401の処理によって、スペア領域SSRの第2パリティを用いて、スペア領域SSRに記憶された情報のエラー訂正処理を実行する。これにより、メモリコントローラ20は、当該ページの訂正データCD及び新パリティを取得することができる。
【0221】
その後、メモリコントローラ20は、S402の処理によって、スペアデータSDに含まれた新パリティを用いて、データ領域DSRに記憶されたデータのエラー訂正処理を実行する。なお、この場合、パリティ領域PSRに記憶された第1パリティは無効化されている。すると、メモリコントローラ20は、フェイルビットFB1~FB3を含むデータを取得することができる。それから、メモリコントローラ20は、S403の処理によって、スペアデータSDに含まれた訂正データCD1~CD3を、それぞれカラムアドレスCA1~CA3に基づいて、S402の処理により取得されたデータに反映させる。その結果、メモリコントローラ20は、フェイルビットFB1~FB3がそれぞれ訂正データCD1~CD3に置き換えられたデータ、すなわちフェイルビットFBを含まないデータを取得することができる。
【0222】
なお、第4実施形態において、ページが複数のスペアデータSDを含む場合、当該ページにおいて最後に記憶されたスペアデータSDに含まれた新パリティが、データ領域DSRにおいて検出されたフェイルビットFBの情報が最新であるデータに対するパリティに対応する。すなわち、ページが複数のスペアデータSDを含む場合、メモリコントローラ20は、ST402の処理において、最後に記憶されたスペアデータSDに含まれた新パリティを用いて、データ領域DSRのデータのエラー訂正処理を実行する。第4実施形態において同じページに複数のスペアデータSDが存在する場合、最後に記憶されたスペアデータSDに、当該ページの全ての訂正データCDが記憶されてもよく、複数のスペアデータSDが、互いに重複しないように訂正データCDの情報を記憶してもよい。
【0223】
<4-3>第4実施形態の効果
第4実施形態に係るメモリシステム1は、第1実施形態と同様に、メモリデバイスMDの信頼性を向上させることができる。また、第4実施形態に係るメモリシステム1は、スペア領域SSRが予め確保されていることによって、LUT28によるアドレス管理を第1実施形態よりも簡易化させることができる。さらに、第4実施形態に係るメモリシステム1は、第3実施形態よりもエラー訂正処理の回数が少なくなるため、読み出し動作を第3実施形態よりも高速化させることができる。
【0224】
<5>その他
本明細書において、入出力回路102、ロジック制御回路104、シーケンサ105、レディビジー制御回路106、及びドライバ回路107を含んだ要素が、“コントローラ”または“制御回路”と呼ばれても良い。つまり、メモリデバイスMDのコントローラが、外部のメモリコントローラ20からの指示に基づいて、メモリセルトランジスタMTへの書き込み動作を実行し得る。本明細書において“接続”とは、電気的に接続されている事を示し、例えば間に別の素子を介することを除外しない。また、本明細書において“オフ状態”とは、対応するトランジスタのゲートに当該トランジスタの閾値電圧未満の電圧が印加されていることを示し、例えばトランジスタのリーク電流のような微少な電流が流れることを除外しない。メモリセット10は、“不揮発性メモリデバイス”、“不揮発性メモリ”、“不揮発性記憶装置”、“不揮発性半導体記憶装置”、又は“不揮発性半導体メモリ”と呼ばれてもよい。エラー訂正に使用されるパリティが、“パリティビット”、“パリティ符号”、又は“パリティデータ”と呼ばれてもよい。
【0225】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことが出来る。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0226】
1…メモリシステム、10…メモリセット、20…メモリコントローラ、21…CPU、22…ROM、23…バッファメモリ、24…RAM、25…ECC回路、26…ホストインターフェース回路、27…NANDインターフェース回路、30…ホストデバイス、CH…チャネル、MD…メモリデバイス、101…メモリセルアレイ、102…入出力回路、103…レジスタ回路、104…ロジック制御回路、105…シーケンサ、106…レディビジー制御回路、107…ドライバ回路、108…ロウデコーダモジュール、109…センスアンプモジュール、BLK…ブロック、WL…ワード線、BL…ビット線、SGD,SGS…選択ゲート線、MT…メモリセルトランジスタ、RD…ロウデコーダ、SAU…センスアンプユニット、SU…ストリングユニット、NS…NANDストリング、FB…フェイルビット、MP…メインページ、SP…スペアページ、SD…スペアデータ、CD…訂正データ、CA…カラムアドレス
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29