JP2022051399A - メモリシステム - Google Patents
メモリシステム Download PDFInfo
- Publication number
- JP2022051399A JP2022051399A JP2020157850A JP2020157850A JP2022051399A JP 2022051399 A JP2022051399 A JP 2022051399A JP 2020157850 A JP2020157850 A JP 2020157850A JP 2020157850 A JP2020157850 A JP 2020157850A JP 2022051399 A JP2022051399 A JP 2022051399A
- Authority
- JP
- Japan
- Prior art keywords
- read
- data
- memory
- layer
- voltage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/12005—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising voltage or current generators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
- G11C29/20—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits using counters or linear-feedback shift registers [LFSR]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C2029/1202—Word line control
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C2029/1204—Bit line control
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
- G11C2029/1802—Address decoder
Landscapes
- Read Only Memory (AREA)
- Detection And Correction Of Errors (AREA)
- Semiconductor Memories (AREA)
Abstract
【課題】メモリシステムが記憶するデータの信頼性を向上させる。【解決手段】実施形態のメモリシステムは、メモリデバイスとメモリコントローラとを含む。メモリデバイスは、基板の上方に積層された第1及び第2メモリセルと、第1及び第2メモリセルに接続された第1ワード線とを含む。メモリコントローラは、第1及び第2層にそれぞれ関連付けられた第1及び第2補正値を格納する補正値テーブルを記憶する記憶回路を含む。メモリコントローラが、第1ワード線を選択して、第1ページデータの読み出しを前記メモリデバイスに指示し、メモリデバイスから読み出された第1ページデータに対して硬判定復号処理を実行し、読み出された第1ページデータと第1エラー訂正処理により訂正された第1ページデータとに基づいて、第1及び第2層にそれぞれ最適化された第1及び第2シフト量を算出し、第1及び第2シフト量とに基づいて補正値テーブルの第1及び第2補正値とをそれぞれ更新する。【選択図】図24
Description
実施形態は、メモリシステムに関する。
データを不揮発に記憶することが可能なNAND型フラッシュメモリが知られている。
メモリシステムが記憶するデータの信頼性を向上させる。
実施形態のメモリシステムは、メモリデバイスとメモリコントローラとを含む。メモリデバイスは、基板の上方に積層された第1及び第2メモリセルと、第1及び第2メモリセルに接続された第1ワード線と、第1メモリセルに接続された第1ビット線と、第2メモリセルに接続された第2ビット線とを含む。メモリコントローラは、第1メモリセルが設けられた第1層に関連付けられた読み出し電圧の第1補正値と、第2メモリセルが設けられた第2層に関連付けられた読み出し電圧の第2補正値とを格納する補正値テーブルを記憶する記憶回路を含み、メモリデバイスを制御する。メモリコントローラが、第1ワード線を選択して、第1ビットデータの集合である第1ページデータの読み出しを前記メモリデバイスに指示する。メモリコントローラが、メモリデバイスから読み出された第1ページデータに対して硬判定復号処理を実行する。メモリコントローラが、読み出された第1ページデータと第1エラー訂正処理により訂正された第1ページデータとに基づいて、第1層に最適化された読み出し電圧の第1シフト量と第2層に最適化された読み出し電圧の第2シフト量とを算出する。メモリコントローラが、第1シフト量と第2シフト量とに基づいて補正値テーブルの第1補正値と第2補正値とをそれぞれ更新する。
以下に、実施形態について図面を参照して説明する。各実施形態は、発明の技術的思想を具体化するための装置や方法を例示している。図面は模式的又は概念的なものであり、各図面の寸法及び比率等は必ずしも現実のものと同一とは限らない。本発明の技術的思想は、構成要素の形状、構造、配置等によって特定されるものではない。
なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付す。参照符号を構成する文字の後の数字は、同じ文字を含んだ参照符号によって参照され、且つ同様の構成を有する要素同士を区別するために使用される。同様に、参照符号を構成する数字の後の文字は、同じ数字を含んだ参照符号によって参照され、且つ同様の構成を有する要素同士を区別するために使用される。
[1]第1実施形態
以下に、第1実施形態に係るメモリシステム1について説明する。
以下に、第1実施形態に係るメモリシステム1について説明する。
[1-1]構成
[1-1-1]メモリシステム1の全体構成
図1は、第1実施形態に係るメモリシステム1の構成の一例を示すブロック図である。図1に示すように、メモリシステム1は、例えば、NAND型フラッシュメモリ100及びメモリコントローラ200を備えている。メモリコントローラ200とNAND型フラッシュメモリ100とは、それらの組み合わせにより1つの半導体記憶装置が構成されてもよい。このような半導体記憶装置としては、SDTMカードのようなメモリカードや、SSD(solid state drive)等が挙げられる。以下では、NAND型フラッシュメモリ100のことを、“メモリデバイス100”と呼ぶ。
[1-1-1]メモリシステム1の全体構成
図1は、第1実施形態に係るメモリシステム1の構成の一例を示すブロック図である。図1に示すように、メモリシステム1は、例えば、NAND型フラッシュメモリ100及びメモリコントローラ200を備えている。メモリコントローラ200とNAND型フラッシュメモリ100とは、それらの組み合わせにより1つの半導体記憶装置が構成されてもよい。このような半導体記憶装置としては、SDTMカードのようなメモリカードや、SSD(solid state drive)等が挙げられる。以下では、NAND型フラッシュメモリ100のことを、“メモリデバイス100”と呼ぶ。
メモリデバイス100は、複数のメモリセルトランジスタを備え、データを不揮発に記憶する。メモリデバイス100は、例えば、複数のメモリセルトランジスタが半導体基板の上方に三次元に積層された三次元積層型NAND型フラッシュメモリである。メモリデバイス100は、NANDバスによってメモリコントローラ200と接続され、メモリコントローラ200からの命令に基づいて動作する。メモリデバイス100とメモリコントローラ200との間では、例えば8ビットの信号DQ[7:0]が送受信される。信号DQ[7:0]は、データ、アドレス、コマンド等を含み得る。
また、メモリデバイス100は、メモリコントローラ200から、例えば、チップイネーブル信号CEn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号WEn、及びリードイネーブル信号REnを受信する。チップイネーブル信号CEnは、メモリデバイス100をイネーブルにするための信号であり、例えばLow(“L”)レベルでアサートされる。コマンドラッチイネーブル信号CLEは、信号DQがコマンドであることを示す信号であり、例えばHigh(“H”)レベルでアサートされる。アドレスラッチイネーブル信号ALEは、信号DQがアドレスであることを示す信号であり、例えば“H”レベルでアサートされる。ライトイネーブル信号WEnは、受信した信号をメモリデバイス100内に取り込むための信号であり、メモリコントローラ200からコマンド、アドレス、及びデータ等を受信する度に、例えば“L”レベルでアサートされる。つまり、信号DQ[7:0]は、ライトイネーブル信号WEnがトグルされる度に、メモリデバイス100に取り込まれる。リードイネーブル信号REnは、メモリコントローラ200が、メモリデバイス100からデータを読み出すための信号であり、例えば“L”レベルでアサートされる。
また、メモリデバイス100は、メモリコントローラ200に、レディ/ビジー信号RBnを送信する。レディ/ビジー信号RBnは、メモリデバイス100がレディ状態であるかビジー状態であるかを示す信号である。レディ状態は、メモリデバイス100がメモリコントローラ200からコマンドを受信することが可能である状態である。レディ状態は、メモリデバイス100がメモリコントローラ200からコマンドを受信することが不可能である状態である。例えば、レディ/ビジー信号RBnの“H”レベルが、メモリデバイス100がレディ状態であることを示し、レディ/ビジー信号RBnの“L”レベルが、メモリデバイス100がビジー状態であることを示す。
メモリコントローラ200は、ホストデバイス2からの要求(命令)に応答して、メモリデバイス100に対して、データの読み出し動作、書き込み動作、消去動作等を命令する。また、メモリコントローラ200は、メモリデバイス100の記憶空間を管理する。メモリコントローラ200は、例えば、ホストインターフェイス回路210、内蔵メモリ(RAM:Random Access Memory)220、プロセッサ(CPU:Central Processing Unit)230、バッファメモリ240、NANDインターフェイス回路250、及びECC(ECC:error checking and correcting)回路260を含む。
ホストインターフェイス回路210は、コントローラバスを介してホストデバイス2に接続され、ホストデバイス2との通信を司る。ホストインターフェイス回路210は、CPU230及びバッファメモリ240に、ホストデバイス2から受信した要求及びデータをそれぞれ転送する。また、ホストインターフェイス回路210は、CPU230の命令に応答して、バッファメモリ240内のデータをホストデバイス2へ転送する。
RAM220は、例えば、CPU230の作業領域として使用される。RAM220は、メモリデバイス100を管理するためのファームウェアや、各種の管理テーブル等を保持する。RAM220としては、例えば、SRAM(Static Random Access Memory)や、DRAM(Dynamic Random Access Memory)等の半導体メモリが使用される。
CPU230は、メモリコントローラ200の全体の動作を制御する。例えば、CPU230は、ホストデバイス2からコマンド、論理アドレス、及びデータを含む書き込み要求を受信すると、受信した書き込み要求に応答して、コマンド、物理アドレス、及びデータを含む書き込み命令を発行する。そして、発行された書き込み命令がメモリデバイス100へ転送され、メモリデバイス100が、当該書き込み命令に基づいた書き込み動作を実行する。CPU230は、読み出し動作及び消去動作のそれぞれについても、書き込み動作と同様に実行し得る。また、CPU230は、ウェアレベリング等の、メモリデバイス100を管理するための様々な処理を実行し得る。さらに、CPU230は、データの暗号化処理やランダマイズ処理等の、様々な演算処理を実行し得る。
バッファメモリ240は、メモリコントローラ200がメモリデバイス100から受信した読み出しデータを一時的に保持する。また、バッファメモリ240は、メモリコントローラ200がホストデバイス2から受信した書き込みデータ等を一時的に保持する。バッファメモリ240としては、例えば、DRAM等の半導体メモリが使用される。なお、バッファメモリ240は、メモリコントローラ200に外部接続されてもよいし、RAM220と統合されてもよい。
NANDインターフェイス回路250は、NANDバスを介してメモリデバイス100に接続され、メモリデバイス100とメモリコントローラ200との間の通信を司る。NANDインターフェイス回路250は、メモリデバイス100に、CPU230により発行された命令を転送する。書き込み動作時に、NANDインターフェイス回路250は、メモリデバイス100に、バッファメモリ240に保持された書き込みデータを転送する。読み出し動作時に、NANDインターフェイス回路250は、バッファメモリ240に、メモリデバイス100から受信した読み出しデータを転送する。
ECC回路260は、メモリデバイス100に記憶されたデータのエラー訂正に関連する処理を実行する。書き込み動作時に、ECC回路260は、ホストデバイス2から受信した書き込みデータに基づいてパリティを生成し、生成したパリティを書き込みデータに付与する。読み出し動作時に、ECC回路260は、メモリデバイス100から受信した読み出しデータに基づいてシンドロームを生成し、生成したシンドロームに基づいて読み出しデータのエラーを検出及び訂正をする。
[1-1-2]メモリデバイス100の構成
図2は、第1実施形態に係るメモリシステム1が備えるメモリデバイス100の構成の一例を示すブロック図である。なお、図2では、各ブロックの接続が矢印線により示されているが、ブロック間の接続は、図示された接続に限定されない。図2に示すように、メモリデバイス100は、例えば、入出力回路10、ロジック制御回路11、ステータスレジスタ12、アドレスレジスタ13、コマンドレジスタ14、シーケンサ15、レディ/ビジー回路16、電圧発生回路17、メモリセルアレイ18、ドライバモジュール19、ロウデコーダモジュール20、センスアンプモジュール21、データレジスタ22、及びカラムデコーダ23を含む。
図2は、第1実施形態に係るメモリシステム1が備えるメモリデバイス100の構成の一例を示すブロック図である。なお、図2では、各ブロックの接続が矢印線により示されているが、ブロック間の接続は、図示された接続に限定されない。図2に示すように、メモリデバイス100は、例えば、入出力回路10、ロジック制御回路11、ステータスレジスタ12、アドレスレジスタ13、コマンドレジスタ14、シーケンサ15、レディ/ビジー回路16、電圧発生回路17、メモリセルアレイ18、ドライバモジュール19、ロウデコーダモジュール20、センスアンプモジュール21、データレジスタ22、及びカラムデコーダ23を含む。
入出力回路10は、メモリデバイス100とメモリコントローラ200との間の信号DQ[7:0]の入力及び出力を制御する。入出力回路10は、メモリコントローラ200から受信したデータDAT(書き込みデータ)を、データレジスタ22に送信する。入出力回路10は、メモリコントローラ200から受信したアドレスADDを、アドレスレジスタ13に送信する。入出力回路10は、メモリコントローラ200から受信したコマンドCMDを、コマンドレジスタ14に送信する。入出力回路10は、ステータスレジスタ12から受信したステータス情報STSや、データレジスタ22から受信したデータDAT(読み出しデータ)や、アドレスレジスタ13から受信したアドレスADD等を、メモリコントローラ200に送信する。
ロジック制御回路11は、メモリコントローラ200から、例えばチップイネーブル信号CEn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号WEn、及びリードイネーブル信号REnを受信する。そして、ロジック制御回路11は、メモリコントローラ200から受信した信号に応じて、入出力回路10及びシーケンサ15を制御する。
ステータスレジスタ12は、例えば書き込み動作、読み出し動作、及び消去動作のそれぞれにおいて、シーケンサ15から受信したステータス情報STSを一時的に保持する。ステータス情報STSは、例えば、書き込み動作、読み出し動作、消去動作等が正常に終了したか否かをメモリコントローラ200に通知する情報を含む。
アドレスレジスタ13は、入出力回路10から受信したアドレスADDを一時的に保持する。アドレスADDは、例えば、ページアドレスPA、ブロックアドレスBA、カラムアドレスCA等を含み得る。アドレスレジスタ13は、例えば、ページアドレスPAをドライバモジュール19に送信し、ブロックアドレスBAをロウデコーダモジュール20に送信し、カラムアドレスCAをカラムデコーダ23に送信する。
コマンドレジスタ14は、入出力回路10から受信したコマンドCMDを一時的に保持する。コマンドCMDは、メモリデバイス100が実行することが可能な動作に関連付けられている。コマンドレジスタ14によって保持されたコマンドCMDは、シーケンサ15によって参照される。
シーケンサ15は、メモリデバイス100全体の動作を制御する。例えば、シーケンサ15は、ステータスレジスタ12、レディ/ビジー回路16、電圧発生回路17、ドライバモジュール19、ロウデコーダモジュール20、センスアンプモジュール21、データレジスタ22、及びカラムデコーダ23を制御し得る。そして、シーケンサ15は、コマンドレジスタ14によって保持されたコマンドCMDに応じて、書き込み動作、読み出し動作、消去動作等を実行する。
レディ/ビジー回路16は、シーケンサ15の動作状態に基づいて、レディ/ビジー信号RBnを生成する。そして、レディ/ビジー回路16は、生成したレディ/ビジー信号RBnを、メモリコントローラ200に送信する。
電圧発生回路17は、シーケンサ15の制御に応じて、書き込み動作、読み出し動作、消去動作等に必要な電圧を発生させる。そして、電圧発生回路17は、発生させた電圧を、メモリセルアレイ18、ドライバモジュール19、センスアンプモジュール21、データレジスタ22、カラムデコーダ23等に供給する。
メモリセルアレイ18は、複数のブロックBLK(BLK1、BLK2、…)を含む。ブロックBLKは、各々が不揮発にデータを記憶する複数のメモリセルトランジスタの集合である。ブロックBLKは、例えばデータの消去単位として使用される。つまり、同一のブロックBLKに含まれた複数のメモリセルトランジスタが保持するデータは、一括で消去され得る。ブロックBLKの各々は、複数のメモリユニットMU(MU0、MU1、…)を含む。メモリユニットMUの各々は、複数のストリングユニットSU(SU0、SU1)を含む。ストリングユニットSUは、複数のNANDストリングNS(NS0、NS1、NS2、…)を含む。NANDストリングNSは、直列に接続された複数のメモリセルトランジスタを含む。メモリセルトランジスタの各々は、1本のワード線と1本のビット線とに関連付けられる。
ドライバモジュール19は、読み出し動作、書き込み動作、消去動作等で使用される電圧を生成し、生成した電圧をロウデコーダモジュール20に印加する。具体的には、ドライバモジュール19とロウデコーダモジュール20との間は、複数の信号線によって接続される。そして、ドライバモジュール19は、読み出し動作、書き込み動作、消去動作等に設定された複数種類の電圧を、ページアドレスPAに基づいて、複数の信号線にそれぞれ印加する。
ロウデコーダモジュール20は、ドライバモジュール19に接続された複数の信号線と、メモリセルアレイ18内の複数のブロックBLKのそれぞれに設けられた複数の配線との間に接続される。ロウデコーダモジュール20は、ブロックアドレスBAに基づいて、メモリセルアレイ18内の1つのブロックBLKを選択する。例えば、ロウデコーダモジュール20は、ドライバモジュール19によって複数の信号線のそれぞれに印加された電圧を、選択されたブロックBLK内のワード線等に転送する。
センスアンプモジュール21は、読み出し動作時に、ビット線の電圧に基づいてメモリセルトランジスタに記憶されたデータを判定する。そして、センスアンプモジュール21は、判定結果を読み出しデータとして、データレジスタ22に転送する。また、センスアンプモジュール21は、書き込み動作時に、データレジスタ22から受信した書き込みデータに応じて、各ビット線に電圧を印加する。
データレジスタ22は、複数のラッチ回路を含む。複数のラッチ回路は、書き込みデータや読み出しデータ等を保持し得る。データレジスタ22は、書き込み動作時に、入出力回路10から受信した書き込みデータを一時的に保持し、センスアンプモジュール21に転送する。データレジスタ22は、読み出し動作時に、センスアンプモジュール21から受信した読み出しデータを一時的に保持し、入出力回路10に転送する。入出力回路10とデータレジスタ22との間は、例えば8本のデータバスを介して接続される。
カラムデコーダ23は、例えば、書き込み動作、読み出し動作、及び消去動作のそれぞれにおいて、カラムアドレスCAをデコードする。そして、カラムデコーダ23は、デコード結果に応じて、データレジスタ22内のラッチ回路を選択する。
[1-1-3]メモリセルアレイ18の回路構成
図3は、第1実施形態に係るメモリシステム1が備えるメモリデバイス100に含まれたメモリセルアレイ18の回路構成の一例を示す回路図である。図3は、メモリセルアレイ18に含まれた2つのメモリユニットMU0及びMU1の回路構成を示している。図3に示すように、各ブロックBLKは、例えば、ワード線WL0~WL3、選択ゲート線SGD0及びSGD1、並びに選択ゲート線SGSを含む。本例において、メモリユニットMUの各々は、2つのストリングユニットSU0及びSU1を含む。本例において、ストリングユニットSUの各々は、3つのNANDストリングNS0~NS2を含む。
図3は、第1実施形態に係るメモリシステム1が備えるメモリデバイス100に含まれたメモリセルアレイ18の回路構成の一例を示す回路図である。図3は、メモリセルアレイ18に含まれた2つのメモリユニットMU0及びMU1の回路構成を示している。図3に示すように、各ブロックBLKは、例えば、ワード線WL0~WL3、選択ゲート線SGD0及びSGD1、並びに選択ゲート線SGSを含む。本例において、メモリユニットMUの各々は、2つのストリングユニットSU0及びSU1を含む。本例において、ストリングユニットSUの各々は、3つのNANDストリングNS0~NS2を含む。
ワード線WL0~WL3、選択ゲート線SGD0及びSGD1、並びに選択ゲート線SGSは、ロウデコーダモジュール20に接続される。ワード線WL0~WL3、選択ゲート線SGD0及びSGD1、並びに選択ゲート線SGSは、ロウデコーダモジュール20によって独立に制御され得る。複数のビット線BLが、ブロックBLK毎に割り当てられる。ソース線SLは、例えば、複数のブロックBLK間で共有される。ソース線は、複数のブロックBLK間で、独立に設けられてもよい。
同じストリングユニットSUに含まれた複数のNANDストリングNSは、互いに異なるビット線BLに関連付けられている。また、同じメモリユニットMUに含まれた同じ番号のNANDストリングNSは、共通のビット線BLに接続される。具体的には、メモリユニットMU0のストリングユニットSU0に含まれたNANDストリングNS0~NS2が、それぞれビット線BL0~BL2に接続される。同様に、メモリユニットMU0のストリングユニットSU1に含まれたNANDストリングNS0~NS2が、それぞれビット線BL0~BL2に接続される。また、メモリユニットMU1のストリングユニットSU0に含まれたNANDストリングNS0~NS2が、それぞれビット線BL3~BL5に接続される。同様に、メモリユニットMU1のストリングユニットSU1に含まれたNANDストリングNS0~NS2が、それぞれビット線BL3~BL5に接続される。
各NANDストリングNSは、例えば、4つのメモリセルトランジスタMC0~MC3、並びに選択トランジスタST1及びST2を含む。メモリセルトランジスタMCは、制御ゲート及び電荷蓄積層を含み、データを不揮発に保持する。第1実施形態におけるメモリセルトランジスタMCは、電荷蓄積層に絶縁層が用いられたMONOS型のメモリセルである。なお、メモリセルトランジスタMCは、電荷蓄積層に導電層が用いられたフローティングゲート型であってもよい。選択トランジスタST1及びST2のそれぞれは、書き込み動作や読み出し動作等におけるストリングユニットSUの選択に使用される。また、選択トランジスタST1及びST2のそれぞれは、非選択のブロックBLKに含まれたNANDストリングNSのチャネルをフローティング状態にするためにも使用され得る。
各NANDストリングNSにおいて、選択トランジスタST1、メモリセルトランジスタMC3~MC0、及び選択トランジスタST2のそれぞれの電流経路が、この順番に、直列に接続される。具体的には、選択トランジスタST1のドレインが、関連付けられたビット線BLに接続される。選択トランジスタST1のソースが、直列に接続されたメモリセルトランジスタMC3~MC0のうちメモリセルトランジスタMC3のドレインに接続される。直列に接続されたメモリセルトランジスタMC3~MC0のうちメモリセルトランジスタMC0のソースが、選択トランジスタST2のドレインに接続される。
同一のブロックBLKに含まれた複数のメモリセルトランジスタMC0のそれぞれの制御ゲートが、ワード線WL0に接続される。同一のブロックBLKに含まれた複数のメモリセルトランジスタMC1のそれぞれの制御ゲートが、ワード線WL1に接続される。同一のブロックBLKに含まれた複数のメモリセルトランジスタMC2のそれぞれの制御ゲートが、ワード線WL2に接続される。同一のブロックBLKに含まれた複数のメモリセルトランジスタMC3のそれぞれの制御ゲートが、ワード線WL3に接続される。
同一のブロックBLK内の複数のストリングユニットSU0に含まれた複数の選択トランジスタST1のそれぞれのゲートが、選択ゲート線SGD0に接続される。同一のブロックBLK内の複数のストリングユニットSU1に含まれた複数の選択トランジスタST1のそれぞれのゲートが、選択ゲート線SGD1に接続される。同一のブロックBLKに含まれた複数の選択トランジスタST2のそれぞれのゲートが、選択ゲート線SGSに接続される。同一のブロックBLKに含まれた複数の選択トランジスタST2のそれぞれのソースが、ソース線SLに接続される。なお、同一のブロックBLKに含まれた複数の選択トランジスタST2のそれぞれのゲートが、選択ゲート線SGDと同様に、ストリングユニットSU毎に異なる選択ゲート線SGSに接続されてもよい。
以下では、共通の選択ゲート線SGDに接続されたストリングユニットSUに含まれ、且つ共通のワード線WLに接続された複数のメモリセルトランジスタMCの集合のことを、“セルユニットCU”と呼ぶ。例えば、1つのセルユニットCUは、メモリユニットMU0のストリングユニットSU0に含まれたNANDストリングNS0~NS2のそれぞれのメモリセルトランジスタMC3と、メモリユニットMU1のストリングユニットSU0に含まれたNANDストリングNS0~NS2のそれぞれのメモリセルトランジスタMC3とを含む。例えば、各々が1ビットデータを記憶するメモリセルトランジスタMCを含むセルユニットCUの記憶容量が、“1ページデータ”として定義される。セルユニットCUは、メモリセルトランジスタMCが記憶するデータのビット数に応じて、2ページデータ以上の記憶容量を有し得る。書き込み動作及び読み出し動作のそれぞれは、1つのセルユニットCUに含まれた複数のメモリセルトランジスタMCに対して一括で実行される。
なお、メモリセルアレイ18の回路構成は、その他の回路構成であってもよい。例えば、メモリセルアレイ18が含むブロックBLKの数は、その他の数であってもよい。各ブロックBLKが含むメモリユニットMUの数は、その他の数であってもよい。各メモリユニットMUが含むストリングユニットSUの数は、その他の数であってもよい。各ストリングユニットSUが含むNANDストリングNSの数は、後述される半導体層33の積層数に応じて、適宜変更され得る。各NANDストリングNSが含むメモリセルトランジスタMCの数は、その他の数であってもよい。各NANDストリングNSが含む選択トランジスタST1及びST2のそれぞれの数は、その他の数であってもよい。
[1-1-4]メモリセルアレイ18の構造
以下に、第1実施形態に係るメモリシステム1が備えるメモリデバイス100に含まれたメモリセルアレイ18の構造の一例について説明する。以下で説明に使用されるX方向、Y方向、及びZ方向は、互いに交差する方向である。X方向は、メモリデバイス100の形成に使用される半導体基板30の表面に対して略平行であり、且つワード線WLが延伸している方向に対応している。Y方向は、半導体基板30の表面に対して略平行であり、且つビット線BLが延伸している方向に対応している。Z方向は、半導体基板30の表面に対する鉛直方向に対応している。以下で参照される図面では、図を見易くするために、絶縁体層等の構成の図示が適宜省略されている。
以下に、第1実施形態に係るメモリシステム1が備えるメモリデバイス100に含まれたメモリセルアレイ18の構造の一例について説明する。以下で説明に使用されるX方向、Y方向、及びZ方向は、互いに交差する方向である。X方向は、メモリデバイス100の形成に使用される半導体基板30の表面に対して略平行であり、且つワード線WLが延伸している方向に対応している。Y方向は、半導体基板30の表面に対して略平行であり、且つビット線BLが延伸している方向に対応している。Z方向は、半導体基板30の表面に対する鉛直方向に対応している。以下で参照される図面では、図を見易くするために、絶縁体層等の構成の図示が適宜省略されている。
図4は、第1実施形態に係るメモリシステム1が備えるメモリデバイス100に含まれたメモリセルアレイ18の構造の一例を示す斜視図である。図4は、1つのメモリユニットMU0に対応する構造体を含む領域を表示している。図4に示すように、メモリデバイス100は、例えば、半導体基板30、絶縁体層31、複数の絶縁体層32、複数の半導体層33、コンタクトプラグBC0~BC2、並びにコンタクトプラグSC0及びSC1を含む。
絶縁体層31は、半導体基板30の上に設けられる。絶縁体層31は、例えば、酸化シリコン(SiO2)を含む。絶縁体層31の上に、メモリユニットMU0に対応する構造体が設けられる。具体的には、絶縁体層31の上に、絶縁体層32及び半導体層33が交互に積層される。絶縁体層32は、例えば酸化シリコン(SiO2)を含む。半導体層33は、例えば、不純物がドープされたシリコンである。以下では、交互に積層された絶縁体層32及び半導体層33のことを、“積層体34”と呼ぶ。
本例では、積層体34が、4層の絶縁体層32と、3層の半導体層33とを含む。以下では、4層の絶縁体層32のことを、半導体基板30側から順に、それぞれ絶縁体層32-0~32-3と呼ぶ。3層の半導体層33のことを、半導体基板30側から順に、それぞれ半導体層33-0~33-2と呼ぶ。半導体層33-0を含む配線層のことを、“レイヤL0”と呼ぶ。半導体層33-1を含む配線層のことを、レイヤ“L1”と呼ぶ。半導体層33-2を含む配線層のことを、“レイヤL2”と呼ぶ。
1つの積層体34が、1つのメモリユニットMUに対応している。積層体34は、ビット線接続部BLCPと、メモリセル部MCP0及びMCP1とを含む。ビット線接続部BLCPは、X方向に延伸して設けられた部分を有する。メモリセル部MCP0及びMCP1のそれぞれは、Y方向に延伸して設けられた部分を有する。複数のメモリセル部MCP0及びMCP1のそれぞれの一端が、ビット線接続部BLCPに接続される。言い換えると、各メモリセル部MCP内で積層された絶縁体層32及び半導体層33が、ビット線接続部BLCP内で積層された絶縁体層32及び半導体層33とそれぞれ連続的に設けられている。
1つのメモリセル部MCPが、1つのストリングユニットSUに対応している。具体的には、メモリセル部MCP0及びMCP1が、それぞれストリングユニットSU0及びSU1に対応している。各メモリセル部MCPの半導体層33-0~33-2が、それぞれNANDストリングNS0~NS2に対応して設けられている。つまり、1つのストリングユニットSUが含むNANDストリングNSの数が、半導体層33の積層数に対応している。また、メモリセル部MCPに含まれた半導体層33が、メモリセルトランジスタMC並びに選択トランジスタST1及びST2のチャネル層を含むアクティブエリアとして機能する。つまり、各NANDストリングNSのチャネル層が、半導体基板30の表面と平行な方向に延伸して設けられている。
ビット線BLは、積層体34の上方に設けられる。そして、ビット線とNANDストリングNSとの間が、ビット線接続部BLCPの半導体層33とコンタクトプラグBCとを介して接続される。具体的には、コンタクトプラグBC0~BC2のそれぞれの底部が、それぞれ半導体層33-0~33-2と電気的に接続される。コンタクトプラグBC0~BC2のそれぞれの上面を介して、それぞれビット線BL0~BL2が電気的に接続される。尚、各コンタクトプラグBCは、底部で電気的に接続された半導体層33以外の半導体層33と電気的に絶縁される。
ソース線SLは、積層体34の上方に設けられる。ソース線SLは、例えば、X方向に延伸して設けられた部分を有する。そして、ソース線SLとNANDストリングNSとの間が、メモリセル部MCPの半導体層33とコンタクトプラグSCとを介して接続される。具体的には、コンタクトプラグSC0の側面又は底面が、メモリセル部MCP0の他端部分の半導体層33-0~33-2のそれぞれと電気的に接続される。コンタクトプラグSC1の側面又は底面が、メモリセル部MCP1の他端部分の半導体層33-0~33-2のそれぞれと電気的に接続される。コンタクトプラグSC0及びSC1のそれぞれの上面を介して、ソース線SLが電気的に接続される。
積層体34の側面及び上面には、図示が省略されたトンネル絶縁膜、電荷蓄積層、及びブロック絶縁膜(以下、積層膜とも呼ぶ)が積層される。また、メモリセル部MCPのコンタクトプラグSCが接続された部分とビット線接続部BLCPとの間に、選択ゲート線SGS、ワード線WL0~WL3、及び選択ゲート線SGDが、ビット線接続部BLCP側に向かってこの順番に、並んで配置されている。選択ゲート線SGS並びにワード線WL0~WL3のそれぞれは、積層体34のメモリセル部MCPに設けられた積層膜の側面及び上面を覆う(跨ぐ)ように、X方向に延伸して設けられた部分を有する。選択ゲート線SGD0は、積層体34のメモリセル部MCP0に設けられた積層膜の側面及び上面を覆うように設けられた部分を有する。選択ゲート線SGD1は、積層体34のメモリセル部MCP1に設けられた積層膜の側面及び上面を覆うように設けられた部分を有する。
(メモリセルアレイ18の平面レイアウト)
図5は、第1実施形態に係るメモリシステム1が備えるメモリデバイス100に含まれたメモリセルアレイ18の平面レイアウトの一例を示す平面図である。図5は、隣り合う2つのメモリユニットMU0及びMU1を含む領域を表示している。図5に示すように、複数の積層体34が、互いに離隔し、且つX方向に並んで配置されている。
図5は、第1実施形態に係るメモリシステム1が備えるメモリデバイス100に含まれたメモリセルアレイ18の平面レイアウトの一例を示す平面図である。図5は、隣り合う2つのメモリユニットMU0及びMU1を含む領域を表示している。図5に示すように、複数の積層体34が、互いに離隔し、且つX方向に並んで配置されている。
メモリユニットMU0に対応する積層体34のビット線接続部BLCPには、ビット線BL0~BL2にそれぞれ接続されるコンタクトプラグBC0~BC2が設けられる。メモリユニットMU1に対応する積層体34のビット線接続部BLCPには、ビット線BL3~BL5にそれぞれ接続されるコンタクトプラグBC3~BC5が設けられる。このように、本例では、1つのメモリユニットMUの積層体34のビット線接続部BLCPに、3本のビット線BLにそれぞれ接続される3本のコンタクトプラグBCが設けられる。
メモリユニットMU0に対応する積層体34には、メモリセル部MCP0及びMCP1にそれぞれ接続されるコンタクトプラグSC0~SC1が設けられる。メモリユニットMU1に対応する積層体34には、メモリセル部MCP0及びMCP1にそれぞれ接続されるコンタクトプラグSC0~SC1が設けられる。このように、1つのメモリユニットMUの積層体34の各メモリセル部MCPに、ソース線SLに接続される少なくとも1本のコンタクトプラグSCが設けられる。
1つのブロックBLKに対応する複数の積層体34が形成される領域には、選択ゲート線SGS並びにワード線WL0~WL3が設けられる。選択ゲート線SGS並びにワード線WL0~WL3のそれぞれは、X方向に延伸した部分を有し、複数の積層体34と重なって配置される。これにより、選択ゲート線SGS並びにワード線WL0~WL3のそれぞれが、同一のブロックBLK内の複数のメモリユニットMUの間で共有される。
メモリユニットMU0に対応する積層体34のメモリセル部MCP0及びMCP1には、それぞれ選択ゲート線SGD0及びSGD1が設けられる。メモリユニットMU1に対応する積層体34のメモリセル部MCP0及びMCP1には、それぞれ選択ゲート線SGD0及びSGD1が設けられる。このように、1つのメモリユニットMUに対応する積層体34のメモリセル部MCP0及びMCP1には、それぞれ選択ゲート線SGD0及びSGD1が設けられる。同一のブロックBLKにおいて、複数の選択ゲート線SGD0と、複数の選択ゲート線SGD1とのそれぞれは、図示が省略されたコンタクト及び配線を介して電気的に接続される。
(メモリセルアレイ18の断面構造)
図6~図9のそれぞれは、第1実施形態に係るメモリシステム1が備えるメモリデバイス100に含まれたメモリセルアレイ18の断面構造の一例を示す断面図である。以下に、図6~図9を用いて、第1実施形態におけるメモリセルアレイ18の断面構造の一例について説明する。
図6~図9のそれぞれは、第1実施形態に係るメモリシステム1が備えるメモリデバイス100に含まれたメモリセルアレイ18の断面構造の一例を示す断面図である。以下に、図6~図9を用いて、第1実施形態におけるメモリセルアレイ18の断面構造の一例について説明する。
図6は、図5のVI-VI線に沿った断面図であり、2つのメモリユニットMU0及びMU1の、ワード線WL0を含み且つX方向に沿った断面を表示している。図6に示すように、メモリデバイス100は、トンネル絶縁膜35、電荷蓄積層36、ブロック絶縁膜37、及び導電体層38をさらに含む。
トンネル絶縁膜35は、各メモリユニットMUの積層体34の上面及び側面を覆うように、連続的に設けられる。言い換えると、トンネル絶縁膜35は、各メモリユニットMUの積層体34を跨ぐように、絶縁体層31の上方に設けられる。トンネル絶縁膜35の上に、電荷蓄積層36、ブロック絶縁膜37、及び導電体層38が、この順番に積層される。トンネル絶縁膜35、及びブロック絶縁膜37のそれぞれは、例えば酸化シリコン(SiO2)を含む。電荷蓄積層36は、例えば、窒化シリコン(SiN)を含む。導電体層38は、例えば、タングステン(W)を含む。図6に示された断面に含まれた導電体層38は、ワード線WL0として使用される。
各メモリユニットMUにおいて、メモリセル部MCP0内の半導体層33-0とワード線WL0とが近接した部分が、ストリングユニットSU0に含まれたNANDストリングNS0のメモリセルトランジスタMC0として機能する。各メモリユニットMUにおいて、メモリセル部MCP1内の半導体層33-0とワード線WL0とが近接した部分が、ストリングユニットSU1に含まれたNANDストリングNS0のメモリセルトランジスタMC0として機能する。つまり、NANDストリングNS0に割り当てられた複数のメモリセルトランジスタMC0は、レイヤL0に含まれている。
各メモリユニットMUにおいて、メモリセル部MCP0内の半導体層33-1とワード線WL0とが近接した部分が、ストリングユニットSU0に含まれたNANDストリングNS1のメモリセルトランジスタMC0として機能する。各メモリユニットMUにおいて、メモリセル部MCP1内の半導体層33-1とワード線WL0とが近接した部分が、ストリングユニットSU1に含まれたNANDストリングNS1のメモリセルトランジスタMC0として機能する。つまり、NANDストリングNS1に割り当てられた複数のメモリセルトランジスタMC0は、レイヤL1に含まれている。
各メモリユニットMUにおいて、メモリセル部MCP0内の半導体層33-2とワード線WL0とが近接した部分が、ストリングユニットSU0に含まれたNANDストリングNS2のメモリセルトランジスタMC0として機能する。各メモリユニットMUにおいて、メモリセル部MCP1内の半導体層33-2とワード線WL0とが近接した部分が、ストリングユニットSU1に含まれたNANDストリングNS2のメモリセルトランジスタMC0として機能する。つまり、NANDストリングNS2に割り当てられた複数のメモリセルトランジスタMC0は、レイヤL2に含まれている。
なお、X方向に沿った断面構造は、ワード線WL0を含む断面構造と、他のワード線WLを含む断面構造との間で同様である。また、X方向に沿った断面構造は、ワード線WL0を含む断面構造と、選択ゲート線SGSを含む断面構造との間で同様である。つまり、NANDストリングNS0に割り当てられた複数のメモリセルトランジスタMC1~MC3並びに複数の選択トランジスタST2は、レイヤL0に含まれている。NANDストリングNS1に割り当てられた複数のメモリセルトランジスタMC1~MC3並びに複数の選択トランジスタST2は、レイヤL1に含まれている。NANDストリングNS2に割り当てられた複数のメモリセルトランジスタMC1~MC3並びに複数の選択トランジスタST2は、レイヤL2に含まれている。
図7は、図5のVII-VII線に沿った断面図であり、2つのメモリユニットMU0及びMU1の、選択ゲート線SGD0及びSGD1を含み且つX方向に沿った断面を表示している。図7に示すように、選択ゲート線SGD0及びSGD1を含み且つX方向に沿った断面構造は、ワード線WL0を含み且つX方向に沿った断面構造に対して、異なる形状の導電体層38を含む。
具体的には、選択ゲート線SGD0及びSGD1を含み且つX方向に沿った断面において、導電体層38は、メモリセル部MCP毎に分離されている。言い換えると、複数の選択ゲート線SGDを含み且つX方向に沿った断面において、導電体層38は、ストリングユニットSU毎に独立して設けられている。
選択ゲート線SGD0及びSGD1を含み且つX方向に沿った断面のその他の構造は、ワード線WL0を含み且つX方向に沿った断面の構造と同様である。つまり、NANDストリングNS0に割り当てられた複数の選択トランジスタST1は、レイヤL0に含まれている。NANDストリングNS1に割り当てられた複数の選択トランジスタST1は、レイヤL1に含まれている。NANDストリングNS2に割り当てられた複数の選択トランジスタST1は、レイヤL2に含まれている。
また、図6及び図7に示すように、積層体34のX方向に沿った断面形状が、テーパー形状を有している。このように、メモリデバイス100では、積層体34のX方向に沿った断面形状は、積層体34を形成するプロセスにおけるドライエッチングの加工特性等に基づいて変化し得る。このため、積層体34のX方向に沿った断面形状は、逆テーパー形状やボーイング形状等にもなり得る。
本例では、積層体34に含まれた半導体層33-0~33-2のそれぞれのX方向の幅や、積層体34に含まれた半導体層33-0~33-2のそれぞれの側面のZ方向に沿った長さが、レイヤ毎に異なっている。その結果、NANDストリングNS0に含まれたメモリセルトランジスタMCのゲート長と、NANDストリングNS1に含まれたメモリセルトランジスタMCのゲート長と、NANDストリングNS2に含まれたメモリセルトランジスタMCのゲート長とが、レイヤ毎に異なっている。
具体的には、レイヤL0に設けられたメモリセルトランジスタMCのゲート長、すなわちメモリセルトランジスタMCと隣接し且つZ方向に沿った部分のワード線WLの長さが、レイヤL1に設けられたメモリセルトランジスタMCのゲート長よりも短い。レイヤL1に設けられたメモリセルトランジスタMCのゲート長が、レイヤL2に設けられたメモリセルトランジスタMCのゲート長よりも短い。つまり、本例において、メモリセルトランジスタMCのゲート長は、半導体基板30から離れるほど長くなる。
また、レイヤL0に設けられた半導体層33-0のX方向の長さ(幅)が、レイヤL1に設けられた半導体層33-1のX方向の長さよりも長い。レイヤL1に設けられた半導体層33-1のX方向の長さが、レイヤL2に設けられた半導体層33-2のX方向の長さよりも長い。つまり、本例において、メモリセルトランジスタMCの一部として使用される半導体層33のX方向の長さは、半導体基板30から離れるほど短くなる。
図8は、図5のVIII-VIII線に沿った断面図であり、1つのメモリユニットMUに含まれたNANDストリングNS0~NS2のそれぞれのチャネルを含み且つY方向に沿った断面を表示している。図8に示すように、メモリデバイス100は、導電部材40、及び導電体層41をさらに含む。
導電部材40は、例えばZ方向に沿って延伸した柱状に設けられ、コンタクトプラグSCとして使用される。導電部材40は、ビット線接続部BLCPから離れた側のメモリセル部MCPの端部の近傍において、ブロック絶縁膜37、電荷蓄積層36、トンネル絶縁膜35、絶縁体層32-3~32-1、並びに半導体層33-2及び33-1を貫通している。導電部材40の底部は、半導体層33-0に達している。これにより、導電部材40が、半導体層33-0~33-2と電気的に接続される。導電部材40は、例えばタングステン(W)を含む。
導電部材40の上に、導電体層41が設けられる。導電体層41は、例えば、X方向に沿って延伸した部分を有し、ソース線SLとして使用される。つまり、導電体層41は、導電部材40(コンタクトプラグSC)を介して、半導体層33-0~33-2のそれぞれと電気的に接続される。導電体層41は、例えば銅(Cu)を含む。
また、図8に示すように、配線毎に分離された導電体層38のY方向の幅が、高さに応じて変化している。このように、メモリデバイス100では、配線毎に分離された導電体層38のY方向の幅は、導電体層38を配線毎に分離するプロセスにおけるドライエッチングの加工特性等に基づいて変化し得る。本例では、配線毎に分離された導電体層38のY方向の幅が、半導体基板30から離れるほど短くなっている。このような場合、メモリセルトランジスタMCのゲート幅が、NANDストリングNS毎に異なる。
具体的には、レイヤL0に設けられたメモリセルトランジスタMCのゲート幅が、レイヤL1に設けられたメモリセルトランジスタMCのゲート幅よりも長い。レイヤL1に設けられたメモリセルトランジスタMCのゲート幅が、レイヤL2に設けられたメモリセルトランジスタMCのゲート幅よりも長い。つまり、本例において、メモリセルトランジスタMCのゲート幅は、半導体基板30から離れるほど短くなる。
図9は、図5のIX-IX線に沿った断面図であり、2つのメモリユニットMU0及びMU1の、ビット線接続部BLCPを含み且つX方向に沿った断面を表示している。図9に示すように、メモリデバイス100は、複数の導電部材42と、複数の導電体層43と、複数の絶縁体層39とをさらに含む。
各導電部材42は、例えばZ方向に延伸した柱状に設けられ、コンタクトプラグBCとして使用される。具体的には、メモリユニットMU0のビット線接続部BLCPにおいて、半導体層33-0~33-2のそれぞれの上に、3つの導電部材42(コンタクトプラグBC0~BC2)がそれぞれ設けられる。メモリユニットMU1のビット線接続部BLCPにおいて、半導体層33-0~33-2のそれぞれの上に、3つの導電部材42(コンタクトプラグBC3~BC5)がそれぞれ設けられる。また、各導電部材42は、ブロック絶縁膜37、電荷蓄積層36、及びトンネル絶縁膜35を貫通している。
レイヤL0に含まれた半導体層33-0に接続された導電部材42は、レイヤL1に含まれた半導体層33-1と、レイヤL1に含まれた半導体層33-2とをさらに貫通している。半導体層33-0に接続された導電部材42と半導体層33-1との間と、半導体層33-0に接続された導電部材42と半導体層33-2との間とのそれぞれは、絶縁体層39によって離隔及び絶縁されている。同様に、レイヤL1に含まれた半導体層33-1に接続された導電部材42は、レイヤL2に含まれた半導体層33-2をさらに貫通している。半導体層33-1に接続された導電部材42と半導体層33-2との間は、絶縁体層39によって離隔及び絶縁されている。絶縁体層39は、例えば、酸化シリコン(SiO2)を含む。
複数の導電部材42のそれぞれの上に、複数の導電体層43がそれぞれ設けられる。導電体層43は、例えば、Y方向に延伸した部分を有し、ビット線BLとして使用される。具体的には、コンタクトプラグBC0に対応する導電部材42の上に設けられた導電体層43が、ビット線BL0として使用される。コンタクトプラグBC1に対応する導電部材42の上に設けられた導電体層43が、ビット線BL1として使用される。コンタクトプラグBC2に対応する導電部材42の上に設けられた導電体層43が、ビット線BL2として使用される。以下同様に、各導電体層43は、コンタクトプラグBCを介して接続された半導体層33に関連付けられたビット線BLとして使用される。導電体層43は、例えば、銅(Cu)を含む。
[1-1-4]センスアンプモジュール21及びデータレジスタ22の構成
図10は、第1実施形態に係るメモリシステム1が備えるメモリデバイス100に含まれたセンスアンプモジュール21及びデータレジスタ22の構成の一例を示すブロック図である。図10に示すように、センスアンプモジュール21は、例えば、複数のビット線BLにそれぞれ関連付けられた複数のセンスアンプユニットSAU(SAU0、SAU1、SAU2、SAU3、SAU4、SAU5、…)を含む。データレジスタ22は、例えば、複数のセンスアンプユニットSAUにそれぞれ関連付けられた複数のラッチ回路XDL(XDL0、XDL1、XDL2、XDL3、XDL4、XDL5、…)を含む。
図10は、第1実施形態に係るメモリシステム1が備えるメモリデバイス100に含まれたセンスアンプモジュール21及びデータレジスタ22の構成の一例を示すブロック図である。図10に示すように、センスアンプモジュール21は、例えば、複数のビット線BLにそれぞれ関連付けられた複数のセンスアンプユニットSAU(SAU0、SAU1、SAU2、SAU3、SAU4、SAU5、…)を含む。データレジスタ22は、例えば、複数のセンスアンプユニットSAUにそれぞれ関連付けられた複数のラッチ回路XDL(XDL0、XDL1、XDL2、XDL3、XDL4、XDL5、…)を含む。
各センスアンプユニットSAUは、例えば、センス回路SA、ラッチ回路SDL、ADL、BDL、CDL及びDDL、並びにバスLBUSを含む。センス回路SA、ラッチ回路SDL、ADL、BDL、CDL及びDDL、並びに関連付けられたラッチ回路XDLは、共通のバスLBUSに接続される。これにより、センス回路SA、並びにラッチ回路SDL、ADL、BDL、CDL、DDL及びXDLは、バスLBUSを介して互いにデータを送受信することができる。
センス回路SAは、当該センスアンプユニットSAUに関連付けられたビット線BLに接続される。例えば、センス回路SAは、読み出し動作時に、関連付けられたビット線BLに読み出されたデータをセンスして、選択されたメモリセルトランジスタMCが記憶しているデータを判定する。具体的には、センス回路SAは、読み出し動作時に制御信号STBがアサートされると、関連付けられたビット線BLの電圧、又は関連付けられたビット線BLに流れる電流に基づいて、選択されたメモリセルトランジスタMCの読み出しデータが“0”であるか“1”であるかを判定する。また、センス回路SAは、書き込み動作時に、当該センスアンプユニットSAUに含まれた少なくとも1つのラッチ回路に格納された書き込みデータに基づいて、ビット線BLに電圧を印加する。
ラッチ回路SDL、ADL、BDL、CDL、DDL及びXDLのそれぞれは、読み出しデータや書き込みデータを一時的に保持する。読み出し動作時に、センス回路SAが確定させた読み出しデータは、例えばラッチ回路SDL、ADL、BDL、CDL及びDDLのいずれかに転送される。書き込み動作時に、ラッチ回路XDLに転送された書き込みデータは、例えばラッチ回路SDL、ADL、BDL、CDL及びDDLのいずれかに転送される。また、ラッチ回路XDLは、センスアンプユニットSAUと入出力回路10との間のデータの入出力に使用される。ラッチ回路XDLは、メモリデバイス100のキャッシュメモリとしても使用され得る。メモリデバイス100は、少なくともラッチ回路XDLが空いていれば、レディ状態になることができる。
第1実施形態のメモリデバイス100では、シーケンサ15が、メモリセルトランジスタMCのレイヤ数に合わせて、複数の制御信号STBを生成する。本例では、シーケンサ15が、レイヤL0~L2にそれぞれ関連付けられた制御信号STB0~STB2を生成する。そして、シーケンサ15は、制御信号STB0を複数のビット線BL(k×3)(kは0以上の整数)に入力し、制御信号STB1を複数のビット線BL(1+k×3)に入力し、制御信号STB2を複数のビット線BL(2+k×3)に入力する。具体的には、シーケンサ15は、制御信号STB0を、センスアンプユニットSAU0及びSAU3のそれぞれのセンス回路SAに入力し、制御信号STB1を、センスアンプユニットSAU1及びSAU4のそれぞれのセンス回路SAに入力し、制御信号STB2を、センスアンプユニットSAU2及びSAU5のそれぞれのセンス回路SAに入力する。
(センスアンプユニットSAUの回路構成)
図11は、第1実施形態に係るメモリシステム1が備えるメモリデバイス100に含まれたセンスアンプユニットSAUの回路構成の一例を示す回路図である。図11に示すように、センスアンプユニットSAUのセンス回路SAは、トランジスタT0~T8及びキャパシタCPを含む。センスアンプユニットSAUのラッチ回路SDLは、インバータIV0及びIV1、並びにトランジスタT10及びT11を含む。トランジスタT0は、P型のMOSトランジスタである。トランジスタT1~T7、T10及びT11のそれぞれは、N型のMOSトランジスタである。トランジスタT8は、トランジスタT0~T7のそれぞれよりも高耐圧なN型のMOSトランジスタである。
図11は、第1実施形態に係るメモリシステム1が備えるメモリデバイス100に含まれたセンスアンプユニットSAUの回路構成の一例を示す回路図である。図11に示すように、センスアンプユニットSAUのセンス回路SAは、トランジスタT0~T8及びキャパシタCPを含む。センスアンプユニットSAUのラッチ回路SDLは、インバータIV0及びIV1、並びにトランジスタT10及びT11を含む。トランジスタT0は、P型のMOSトランジスタである。トランジスタT1~T7、T10及びT11のそれぞれは、N型のMOSトランジスタである。トランジスタT8は、トランジスタT0~T7のそれぞれよりも高耐圧なN型のMOSトランジスタである。
トランジスタT0のソースは、電源線に接続される。トランジスタT0のドレインは、ノードND1に接続される。トランジスタT0のゲートは、ラッチ回路SDL内のノードSINVに接続される。トランジスタT1のドレインは、ノードND1に接続される。トランジスタT1のソースは、ノードND2に接続される。トランジスタT1のゲートには、制御信号BLXが入力される。トランジスタT2のドレインは、ノードND1に接続される。トランジスタT2のソースは、ノードSENに接続される。トランジスタT2のゲートには、制御信号HLLが入力される。
トランジスタT3のドレインは、ノードSENに接続される。トランジスタT3のソースは、ノードND2に接続される。トランジスタT3のゲートには、制御信号XXLが入力される。トランジスタT4のドレインは、ノードND2に接続される。トランジスタT4のゲートには、制御信号BLCが入力される。トランジスタT5のドレインは、ノードND2に接続される。トランジスタT5のソースは、ノードSRCに接続される。トランジスタT5のゲートは、例えばラッチ回路SDL内のノードSINVに接続される。
トランジスタT6のソースは、接地される。トランジスタT6のゲートは、ノードSENに接続される。トランジスタT7のドレインは、バスLBUSに接続される。トランジスタT7のソースは、トランジスタT6のドレインに接続される。トランジスタT7のゲートには、制御信号STBが入力される。キャパシタCPの一方電極は、ノードSENに接続される。キャパシタCPの他方電極には、クロック信号CLKが入力される。トランジスタT8のドレインは、トランジスタT4のソースに接続される。トランジスタT8のソースは、関連付けられたビット線BLに接続される。トランジスタT8のゲートには、制御信号BLSが入力される。
インバータIV0の入力ノードは、ノードSLATに接続される。インバータIV0の出力ノードは、ノードSINVに接続される。インバータIV1の入力ノードは、ノードSINVに接続される。インバータIV1の出力ノードは、ノードSLATに接続される。トランジスタT10の一端は、ノードSINVに接続される。トランジスタT10の他端は、バスLBUSに接続される。トランジスタT10のゲートには、制御信号STIが入力される。トランジスタT11の一端は、ノードSLATに接続される。トランジスタT11の他端は、バスLBUSに接続される。トランジスタT11のゲートには、制御信号STLが入力される。例えば、ノードSLATに保持されるデータが、ラッチ回路SDLに保持されるデータに相当する。一方で、ノードSINVに保持されるデータが、ノードSLATに保持されるデータの反転データに相当する。
ラッチ回路ADL、BDL、CDL、DDL及びXDLの回路構成は、例えばラッチ回路SDLと同様である。例えば、ラッチ回路ADLは、ノードALATにおいてデータを保持し、ノードAINVにおいてその反転データを保持する。そして、ラッチ回路ADLのトランジスタT10のゲートには制御信号ATIが入力され、ラッチ回路ADLのトランジスタT11のゲートには制御信号ATLが入力される。ラッチ回路BDLは、ノードBLATにおいてデータを保持し、ノードBINVにおいてその反転データを保持する。そして、ラッチ回路BDLのトランジスタT10のゲートには制御信号BTIが入力され、ラッチ回路BDLのトランジスタT11のゲートには制御信号BTLが入力される。ラッチ回路CDL、DDL及びXDLについても同様のため、説明を省略する。
以上で説明されたセンスアンプユニットSAUの回路構成において、トランジスタT0のソースに接続された電源線には、例えば電源電圧VDDが印加される。ノードSRCには、例えば接地電圧VSSが印加される。制御信号BLX、HLL、XXL、BLC、STB、BLS、STI及びSTL並びにクロック信号CLKのそれぞれは、例えばシーケンサ15によって生成される。ノードSENは、センス回路SAのセンスノードと呼ばれてもよい。
なお、センスアンプユニットSAUの回路構成は、その他の回路構成であってもよい。例えば、各センスアンプユニットSAUが備えるラッチ回路の個数は、1つのセルユニットCUが記憶するページ数に基づいて適宜変更され得る。センスアンプユニットSAUは、簡単な論理演算を実行することが可能な演算回路を含み得る。第1実施形態におけるメモリデバイス100では、制御信号をアサートすることが、“L”レベルの電圧を一時的に“H”レベルの電圧に変化させることに対応している。ゲートがセンスノードに接続されるトランジスタがP型のトランジスタである場合に、制御信号STBをアサートすることは、“H”レベルを一時的に“L”レベルに変化させることに対応する。
(データレジスタ22と入出力回路10の接続関係)
図12は、第1実施形態に係るメモリシステム1が備えるメモリデバイス100におけるデータレジスタ22と入出力回路10との接続関係の一例を示す回路図である。また、図12には、入出力回路10に接続された8本のデータバスIO0~IO7が表示されている。図12に示すように、データレジスタ22は、複数のトランジスタTR(TR0、TR1、TR2、TR3、TR4、TR5、TR6、TR7、TR8、TR9、TR10、TR11、TR12、TR13、TR14、TR15、…)をさらに含む。
図12は、第1実施形態に係るメモリシステム1が備えるメモリデバイス100におけるデータレジスタ22と入出力回路10との接続関係の一例を示す回路図である。また、図12には、入出力回路10に接続された8本のデータバスIO0~IO7が表示されている。図12に示すように、データレジスタ22は、複数のトランジスタTR(TR0、TR1、TR2、TR3、TR4、TR5、TR6、TR7、TR8、TR9、TR10、TR11、TR12、TR13、TR14、TR15、…)をさらに含む。
トランジスタTR(k×8)(kは0以上の整数)のソース及びドレインは、ラッチ回路XDL(k×8)とデータバスIO0との間に接続される。トランジスタTR(1+k×8)のソース及びドレインは、ラッチ回路XDL(1+k×8)とデータバスIO1との間に接続される。トランジスタTR(2+k×8)のソース及びドレインは、ラッチ回路XDL(2+k×8)とデータバスIO2との間に接続される。トランジスタTR(3+k×8)のソース及びドレインは、ラッチ回路XDL(3+k×8)とデータバスIO3との間に接続される。トランジスタTR(4+k×8)のソース及びドレインは、ラッチ回路XDL(4+k×8)とデータバスIO4との間に接続される。トランジスタTR(5+k×8)のソース及びドレインは、ラッチ回路XDL(5+k×8)とデータバスIO5との間に接続される。トランジスタTR(6+k×8)のソース及びドレインは、ラッチ回路XDL(6+k×8)とデータバスIO6との間に接続される。トランジスタTR(7+k×8)のソース及びドレインは、ラッチ回路XDL(7+k×8)とデータバスIO7との間に接続される。
シーケンサ15は、複数の制御信号CSを生成及び制御する。制御信号CSkは、トランジスタTRk、TR(1+k×8)、TR(2+k×8)、TR(3+k×8)、TR(4+k×8)、TR(5+k×8)、TR(6+k×8)及びTR(7+k×8)のそれぞれのゲートに入力される。具体的には、制御信号CS0が、トランジスタTR0~TR7のそれぞれのゲートに入力され、制御信号CS1が、トランジスタTR8~TR15のそれぞれのゲートに入力される。つまり、同じ制御信号CSが入力されるトランジスタTRは、互いに異なるデータバスIOに接続される。例えば、シーケンサ15は、複数の制御信号CSを順に“H”レベルに制御して、8つずつトランジスタTRをオンさせることによって、データレジスタ22内の複数のラッチ回路XDLと入出力回路10との間で、8ビットずつデータを送受信することができる。以下では、読み出しデータが8ビット単位での出力される処理のことを、“1回の出力サイクル”と呼ぶ。
[1-1-5]データの記憶方式
第1実施形態に係るメモリシステム1は、1つのメモリセルトランジスタMCに記憶させるデータのビット数に応じた複数種類の書き込みモードを使用することができる。例えば、第1実施形態に係るメモリシステム1は、SLC(Single-Level Cell)モード、MLC(Multi-Level Cell)モード、TLC(Triple-Level Cell)モード、QLC(Quadruple-Level Cell)モードのいずれかの書き込みモードを使用する。SLCモード、MLCモード、TLCモード、及びQLCモードは、1つのメモリセルトランジスタMCに対して、それぞれ1ビットデータ、2ビットデータ、3ビットデータ、及び4ビットデータを記憶させる書き込みモードである。
第1実施形態に係るメモリシステム1は、1つのメモリセルトランジスタMCに記憶させるデータのビット数に応じた複数種類の書き込みモードを使用することができる。例えば、第1実施形態に係るメモリシステム1は、SLC(Single-Level Cell)モード、MLC(Multi-Level Cell)モード、TLC(Triple-Level Cell)モード、QLC(Quadruple-Level Cell)モードのいずれかの書き込みモードを使用する。SLCモード、MLCモード、TLCモード、及びQLCモードは、1つのメモリセルトランジスタMCに対して、それぞれ1ビットデータ、2ビットデータ、3ビットデータ、及び4ビットデータを記憶させる書き込みモードである。
図13は、第1実施形態に係るメモリシステム1におけるメモリセルトランジスタMCの閾値電圧の分布の一例を示す模式図である。図13は、SLCモード、MLCモード、TLCモード、及びQLCモードにそれぞれ対応する4種類の閾値電圧分布及び読み出し電圧のグループの一例を示している。縦軸の“NMTs”は、メモリセルトランジスタMCの個数を示している。横軸の“Vth”は、メモリセルトランジスタMCの閾値電圧を示している。図13に示すように、複数のメモリセルトランジスタMCは、適用される書き込みモード、すなわち記憶するデータのビット数に応じて複数のステートを形成する。
SLCモード(1bit/cell)が使用された場合、メモリセルトランジスタMCの閾値電圧分布は、2つのステートを含む。この2つのステートは、例えば、閾値電圧の低い方から順に、それぞれ“S0”ステート、“S1”ステートと呼ばれる。SLCモードでは、互いに異なる1ビットデータが、“S0”及び“S1”ステートのそれぞれに割り当てられる。
MLCモード(2bit/cell)が使用された場合、メモリセルトランジスタMCの閾値電圧分布は、4つのステートを含む。この4つのステートは、例えば、閾値電圧の低い方から順に、それぞれ“S0”ステート、“S1”ステート、“S2”ステート、“S3”ステートと呼ばれる。MLCモードでは、互いに異なる2ビットデータが、“S0”~“S3”ステートのそれぞれに割り当てられる。
TLCモード(3bit/cell)が使用された場合、メモリセルトランジスタMCの閾値電圧分布は、8つのステートを含む。この8つのステートは、例えば、閾値電圧の低い方から順に、それぞれ“S0”ステート、“S1”ステート、“S2”ステート、“S3”ステート、“S4”ステート、“S5”ステート、“S6”ステート、“S7”ステートと呼ばれる。TLC方式では、互いに異なる3ビットデータが、“S0”~“S7”ステートのそれぞれに割り当てられる。
QLCモード(4bit/cell)が使用された場合、メモリセルトランジスタMCの閾値電圧分布は、16つのステートを含む。この16つのステートは、例えば、閾値電圧の低い方から順に、それぞれ“S0”ステート、“S1”ステート、“S2”ステート、“S3”ステート、“S4”ステート、“S5”ステート、“S6”ステート、“S7”ステート、“S8”ステート、“S9”ステート、“S10”ステート、“S11”ステート、“S12”ステート、“S13”ステート、“S14”ステート、“S15”ステートと呼ばれる。QLC方式では、互いに異なる4ビットデータが、“S0”~“S15”ステートのそれぞれに割り当てられる。
各書き込みモードでは、読み出し電圧が、隣り合うステートの間のそれぞれに設定される。具体的には、読み出し電圧R1が、“S0”及び“S1”ステートの間に設定される。読み出し電圧R2が、“S1”及び“S2”ステートの間に設定される。読み出し電圧R3が、“S2”及び“S3”ステートの間に設定される。読み出し電圧R4が、“S3”及び“S4”ステートの間に設定される。読み出し電圧R5が、“S4”及び“S5”ステートの間に設定される。読み出し電圧R6が、“S5”及び“S6”ステートの間に設定される。読み出し電圧R7が、“S6”及び“S7”ステートの間に設定される。読み出し電圧R8が、“S7”及び“S8”ステートの間に設定される。読み出し電圧R9が、“S8”及び“S9”ステートの間に設定される。読み出し電圧R10が、“S9”及び“S10”ステートの間に設定される。読み出し電圧R11が、“S10”及び“S11”ステートの間に設定される。読み出し電圧R12が、“S11”及び“S12”ステートの間に設定される。読み出し電圧R13が、“S12”及び“S13”ステートの間に設定される。読み出し電圧R14が、“S13”及び“S14”ステートの間に設定される。読み出し電圧R15が、“S14”及び“S15”ステートの間に設定される。
また、各書き込みモードでは、読み出しパス電圧VREADが、最も閾値電圧が高いステートよりも高い電圧に設定される。読み出しパス電圧VREADがゲートに印加されたメモリセルトランジスタMCは、当該メモリセルトランジスタMCが記憶するデータに依らずにオン状態になる。また、各書き込みモードにおいて、隣り合う閾値分布の間には、それぞれベリファイ電圧が設定される。具体的には、書き込み動作において、“S1”~“S15”ステートのそれぞれのベリファイ動作には、それぞれベリファイ電圧V1~V15が使用される。例えば、ベリファイ電圧V1~V15は、それぞれ読み出し電圧R1~R15よりも高い電圧に設定される。
以上で説明されたメモリシステム1が使用する書き込みモードは、あくまで一例である。各メモリセルトランジスタMCには、5ビット以上のデータが記憶されてもよい。また、読み出し電圧、読み出しパス電圧、ベリファイ電圧のそれぞれは、各書き込みモードで同じ電圧値に設定されてもよいし、異なる電圧値に設定されてもよい。本明細書では、メモリシステム1が、データの記憶方式としてTLCモードを使用する場合について説明する。以下で説明される動作は、その他の書き込みモードに対しても適用され得る。
(TLCモードのデータの割り当て)
図14は、第1実施形態に係るメモリシステムで使用されるTLCモードのデータの割り当ての一例を示す模式図である。図14に示すように、TLCモードでは、互いに異なる3ビットデータが、8つのステートのそれぞれに割り当てられる。以下に、8つのステートに対するデータの割り付けの一例を羅列する。
図14は、第1実施形態に係るメモリシステムで使用されるTLCモードのデータの割り当ての一例を示す模式図である。図14に示すように、TLCモードでは、互いに異なる3ビットデータが、8つのステートのそれぞれに割り当てられる。以下に、8つのステートに対するデータの割り付けの一例を羅列する。
“S0”ステート:“111(上位ビット/中位ビット/下位ビット)”データ
“S1”ステート:“110”データ
“S2”ステート:“100”データ
“S3”ステート:“000”データ
“S4”ステート:“010”データ
“S5”ステート:“011”データ
“S6”ステート:“001”データ
“S7”ステート:“101”データ
“S1”ステート:“110”データ
“S2”ステート:“100”データ
“S3”ステート:“000”データ
“S4”ステート:“010”データ
“S5”ステート:“011”データ
“S6”ステート:“001”データ
“S7”ステート:“101”データ
TLCモードで図14に示されたデータの割り当てが適用された場合、下位ビットで構成される1ページデータ(下位ページデータ)は、読み出し電圧R1及びR5を用いた読み出し動作によって確定する。中位ビットで構成される1ページデータ(中位ページデータ)は、読み出し電圧R2、R4及びR6を用いた読み出し動作によって確定する。上位ビットで構成される1ページデータ(上位ページデータ)は、読み出し電圧R3及びR7を用いた読み出し動作によって確定する。複数の読み出し電圧が使用されるページの読み出し動作では、演算処理がセンスアンプユニットSAU内で適宜実行される。なお、TLCモードで使用されるデータの割り当ては、その他の設定であってもよい。以下で説明される動作は、その他のデータの割り当てに対しても適用され得る。
なお、以下では、読み出し電圧R1を用いた判定処理のことを、“R1読み出し”と呼ぶ。読み出し電圧R2を用いた判定処理のことを、“R2読み出し”と呼ぶ。読み出し電圧R3を用いた判定処理のことを、“R3読み出し”と呼ぶ。読み出し電圧R4を用いた判定処理のことを、“R4読み出し”と呼ぶ。読み出し電圧R5を用いた判定処理のことを、“R5読み出し”と呼ぶ。読み出し電圧R6を用いた判定処理のことを、“R6読み出し”と呼ぶ。読み出し電圧R7を用いた判定処理のことを、“R7読み出し”と呼ぶ。
(メモリセルトランジスタMCの閾値電圧分布のレイヤ依存性)
図6~図8を用いて説明したように、メモリセルトランジスタMCは、レイヤ毎に異なる特性を有し得る。このため、レイヤが異なるメモリセルトランジスタMCに同じ書き込み条件が適用された書き込み動作が実行された場合にも、メモリセルトランジスタMCの閾値電圧分布がレイヤに応じてシフトし得る。
図6~図8を用いて説明したように、メモリセルトランジスタMCは、レイヤ毎に異なる特性を有し得る。このため、レイヤが異なるメモリセルトランジスタMCに同じ書き込み条件が適用された書き込み動作が実行された場合にも、メモリセルトランジスタMCの閾値電圧分布がレイヤに応じてシフトし得る。
図15は、第1実施形態に係るメモリシステム1におけるレイヤ毎のメモリセルトランジスタMCの閾値電圧の分布の一例を示す模式図である。図15(1)~(3)は、それぞれレイヤL2~L0に対応するメモリセルトランジスタMCの閾値電圧分布を示している。図15に示すように、メモリセルトランジスタMCの閾値電圧分布は、レイヤ依存性を有し得る。
本例では、レイヤL2、すなわちNANDストリングNS2に含まれたメモリセルトランジスタMCの閾値電圧分布が、レイヤL1、すなわちNANDストリングNS1に含まれたメモリセルトランジスタMCの閾値電圧分布よりも低くシフトしている。レイヤL1、すなわちNANDストリングNS1に含まれたメモリセルトランジスタMCの閾値電圧分布が、レイヤL0、すなわちNANDストリングNS0に含まれたメモリセルトランジスタMCの閾値電圧分布よりも低くシフトしている。つまり、本例では、半導体基板30に近いレイヤほど、メモリセルトランジスタMCの閾値電圧分布が高くシフトしている。
なお、メモリセルトランジスタMCの閾値電圧分布のレイヤ依存性は、積層体34の形状やワード線WLの形状に基づくメモリセルトランジスタMCのサイズに応じて変化し得る。例えば、複数のレイヤのうち最上層のレイヤ(例えばレイヤL2)に含まれたメモリセルトランジスタMCの閾値電圧分布が、その他のレイヤに含まれたメモリセルトランジスタMCの閾値電圧分布よりも高電圧側に位置していてもよい。例えば、複数のレイヤLのうち中間のレイヤ(例えばレイヤL1)に含まれたメモリセルトランジスタMCの閾値電圧分布が、その他のレイヤに含まれたメモリセルトランジスタMCの閾値電圧分布よりも高電圧側に位置していてもよい。
第1実施形態に係るメモリシステム1は、メモリセルトランジスタMCが形成されたレイヤ毎に異なる読み出し電圧を設定することができる。例えば、R1読み出しでは、レイヤL0~L2に対応して、それぞれ読み出し電圧R1_L0~R1_L2が設定される。R2読み出しでは、レイヤL0~L2に対応して、それぞれ読み出し電圧R2_L0~R2_L2が設定される。R3読み出しでは、レイヤL0~L2に対応して、それぞれ読み出し電圧R3_L0~R3_L2が設定される。R4読み出しでは、レイヤL0~L2に対応して、それぞれ読み出し電圧R4_L0~R4_L2が設定される。R5読み出しでは、レイヤL0~L2に対応して、それぞれ読み出し電圧R5_L0~R5_L2が設定される。R6読み出しでは、レイヤL0~L2に対応して、それぞれ読み出し電圧R6_L0~R6_L2が設定される。R7読み出しでは、レイヤL0~L2に対応して、それぞれ読み出し電圧R7_L0~R7_L2が設定される。
本例では、読み出し電圧R1_L0~R1_L2が、“R1_L0>R1_L1>R1_L2”の関係を有している。読み出し電圧R2_L0~R2_L2が、“R2_L0>R2_L1>R2_L2”の関係を有している。読み出し電圧R3_L0~R3_L2が、“R3_L0>R3_L1>R3_L2”の関係を有している。読み出し電圧R4_L0~R4_L2が、“R4_L0>R4_L1>R4_L2”の関係を有している。読み出し電圧R5_L0~R5_L2が、“R5_L0>R5_L1>R5_L2”の関係を有している。読み出し電圧R6_L0~R6_L2が、“R6_L0>R6_L1>R6_L2”の関係を有している。読み出し電圧R7_L0~R7_L2が、“R7_L0>R7_L1>R7_L2”の関係を有している。
なお、レイヤ毎に設定された読み出し電圧の関係は、メモリセルトランジスタMCの閾値電圧分布のレイヤ依存性に応じて変化し得る。また、レイヤ毎に設定された読み出し電圧は、例えば図14に示された読み出し電圧R1~R7を基準として設定される。以下では、基準と使用される読み出し電圧R1~R7のことを、“デフォルト電圧”とも呼ぶ。例えば、レイヤ毎に設定された読み出し電圧のデフォルト電圧からのシフト量は、DAC(digital analog converter)値により管理される。この場合、読み出し電圧のシフト量は、DAC値に所定の電圧値を掛けた値に対応する。
[1-2]動作
次に、第1実施形態に係るメモリシステム1の動作について説明する。以下の説明では、選択されたワード線WLのことを“WLsel”と呼ぶ。ワード線WLに電圧が印加されることは、ドライバモジュール19がロウデコーダモジュール20を介して当該ワード線WLに電圧を印加することに対応している。メモリデバイス100が受信したアドレスADD及びコマンドCMDは、それぞれアドレスレジスタ13及びコマンドレジスタ14に転送される。メモリデバイス100が受信した書き込みデータは、データレジスタ22内の複数のラッチ回路XDLに転送される。
次に、第1実施形態に係るメモリシステム1の動作について説明する。以下の説明では、選択されたワード線WLのことを“WLsel”と呼ぶ。ワード線WLに電圧が印加されることは、ドライバモジュール19がロウデコーダモジュール20を介して当該ワード線WLに電圧を印加することに対応している。メモリデバイス100が受信したアドレスADD及びコマンドCMDは、それぞれアドレスレジスタ13及びコマンドレジスタ14に転送される。メモリデバイス100が受信した書き込みデータは、データレジスタ22内の複数のラッチ回路XDLに転送される。
[1-2-1]読み出し動作
まず、第1実施形態に係るメモリシステム1の前提とされる動作として、読み出し動作とシフトリードについて説明する。シフトリードは、デフォルト電圧からシフトされた読み出し電圧を用いた読み出し動作である。以下に、通常の読み出し動作のコマンドシーケンスと、シフトリードのコマンドシーケントとについて順に説明し、続けて読み出し動作における信号DQとメモリセルアレイ18のレイヤとの関係について説明する。
まず、第1実施形態に係るメモリシステム1の前提とされる動作として、読み出し動作とシフトリードについて説明する。シフトリードは、デフォルト電圧からシフトされた読み出し電圧を用いた読み出し動作である。以下に、通常の読み出し動作のコマンドシーケンスと、シフトリードのコマンドシーケントとについて順に説明し、続けて読み出し動作における信号DQとメモリセルアレイ18のレイヤとの関係について説明する。
(読み出し動作のコマンドシーケンス)
図16は、第1実施形態に係るメモリシステム1におけるTLCモードの読み出し動作のコマンドシーケンスの一例を示す模式図である。図16(1)~(3)は、それぞれ下位ページ読み出し、中位ページ読み出し、及び上位ページ読み出しのコマンドシーケンスを示している。DQ[7:0]は、メモリコントローラ200及びメモリデバイス100間で送受信されるコマンドCMD、アドレスADD、データDAT等を示している。
図16は、第1実施形態に係るメモリシステム1におけるTLCモードの読み出し動作のコマンドシーケンスの一例を示す模式図である。図16(1)~(3)は、それぞれ下位ページ読み出し、中位ページ読み出し、及び上位ページ読み出しのコマンドシーケンスを示している。DQ[7:0]は、メモリコントローラ200及びメモリデバイス100間で送受信されるコマンドCMD、アドレスADD、データDAT等を示している。
図16(1)に示すように、下位ページ読み出しを実行する場合に、メモリコントローラ200は、コマンド“01h”、コマンド“00h”、アドレス“ADD”、コマンド“30h”を、この順番に、メモリデバイス100に送信する。コマンド“01h”は、下位ページを選択した動作を指定するコマンドである。コマンド“00h”は、読み出し動作を指定するコマンドである。アドレス“ADD”は、読み出し対象のワード線WLのアドレスを含む。なお、アドレス“ADD”は、複数サイクルで送信されてもよい。コマンド“30h”は、読み出し動作の開始を指示するコマンドである。メモリデバイス100がコマンド“30h”を受信すると、シーケンサ15が、メモリデバイス100をレディ状態からビジー状態に遷移させて、下位ページ読み出しを実行する。
下位ページ読み出しにおいて、シーケンサ15は、R1読み出しとR5読み出しとを実行し、読み出し結果をデータレジスタ22に転送させる。シーケンサ15は、例えば、読み出し結果がデータレジスタ22に転送されると、メモリデバイス100をビジー状態からレディ状態に遷移させる。そして、データレジスタ22に格納された読み出しデータDoutが、メモリコントローラ200の制御に基づいて、メモリデバイス100からメモリコントローラ200に出力される(Dout)。図16(1)には、メモリデバイス100が読み出し動作を実行していた期間が、“tR”として示されている。
図16(2)に示すように、中位ページ読み出しを実行する場合に、メモリコントローラ200は、コマンド“02h”、コマンド“00h”、アドレス“ADD”、コマンド“30h”を、この順番に、メモリデバイス100に送信する。コマンド“02h”は、中位ページを選択した動作を指定するコマンドである。メモリデバイス100がコマンド“30h”を受信すると、シーケンサ15が、メモリデバイス100をレディ状態からビジー状態に遷移させて、中位ページ読み出しを実行する。中位ページ読み出しにおいて、シーケンサ15は、R2読み出しと、R4読み出しと、R6読み出しとを実行して、読み出し結果をデータレジスタ22に転送させる。中位ページ読み出しのその他の動作は、下位ページ読み出しと同様である。
図16(3)に示すように、上位ページ読み出しを実行する場合に、メモリコントローラ200は、コマンド“03h”、コマンド“00h”、アドレス“ADD”、コマンド“30h”を、この順番に、メモリデバイス100に送信する。コマンド“03h”は、上位ページを選択した動作を指定するコマンドである。メモリデバイス100がコマンド“30h”を受信すると、シーケンサ15が、メモリデバイス100をレディ状態からビジー状態に遷移させて、上位ページ読み出しを実行する。上位ページ読み出しにおいて、シーケンサ15は、R3読み出しとR7読み出しとを実行して、読み出し結果をデータレジスタ22に転送させる。上位ページ読み出しのその他の動作は、下位ページ読み出しと同様である。
(シフトリードのコマンドシーケンス)
図17は、第1実施形態に係るメモリシステム1におけるシフトリードのコマンドシーケンスの一例を示す模式図である。DQ[7:0]は、メモリコントローラ200及びメモリデバイス100間で送受信されるコマンドCMD、アドレスADD、データDAT等を示している。
図17は、第1実施形態に係るメモリシステム1におけるシフトリードのコマンドシーケンスの一例を示す模式図である。DQ[7:0]は、メモリコントローラ200及びメモリデバイス100間で送受信されるコマンドCMD、アドレスADD、データDAT等を示している。
図17に示すように、シフトリードを実行する場合に、メモリコントローラ200は、まず、コマンド“XXh”、コマンド“YYh”、並びにデータ“P0”、“P1”、“P2”及び“P3”を、この順番に、メモリデバイス100に送信する。コマンド“XXh”は、メモリデバイス100の設定の変更を指示するコマンドである。コマンド“YYh”は、設定の変更が適用される設定項目に対応するアドレスを含む。データ“P0”、“P1”、“P2”及び“P3”は、コマンド“XXh”及び“YYh”に関連付けられたデータであり、アドレス“YYh”によって指定された設定項目に適用されるパラメータを含む。
続けて、メモリコントローラ200は、下位ページのシフトリードを実行する場合に、コマンド“01h”、コマンド“00h”、アドレス“ADD”、コマンド“30h”を、この順番に、メモリデバイス100に送信する。このコマンド“01h”は、読み出し動作の対象ページに応じて適宜変更され得る。メモリデバイス100がコマンド“30h”を受信すると、シーケンサ15が、メモリデバイス100をレディ状態からビジー状態に遷移させて、下位ページのシフトリードを実行する。シフトリードにおいて、シーケンサ15は、データ“P0”、“P1”、“P2”及び“P3”に含まれたパラメータを用いて、シフトリードで使用する読み出し電圧のデフォルト電圧からのシフト量を決定する。シフトリードのその他の動作は、通常の読み出し動作と同様である。
図18は、第1実施形態に係るメモリシステム1におけるシフトリードで使用されるパラメータの割り当ての一例を示すテーブルである。図18に示すように、データ“P0”、P1”、“P2”及び“P3”に、シフトリードに関するパラメータが割り当てられる。
具体的には、シフトリードの対象が下位ページ読み出しである場合に、データ“P0”に、例えば“00h”が格納される。この“00h”は、下位ページ読み出しに関するパラメータであることを示している。“P0”が“00h”を格納している場合に、“P1”は読み出し電圧R1のシフト量“ΔR1”を格納し、“P2”は読み出し電圧R5のシフト量“ΔR5”を格納し、“P3”は無効なデータとして取り扱われる。
シフトリードの対象が中位ページ読み出しである場合に、データ“P0”に、例えば“01h”が格納される。この“01h”は、中位ページ読み出しに関するパラメータであることを示している。“P0”が“01h”を格納している場合に、“P1”は読み出し電圧R2のシフト量“ΔR2”を格納し、“P4”は読み出し電圧R4のシフト量“ΔR4”を格納し、“P3”は読み出し電圧R6のシフト量“ΔR6”を格納する。
シフトリードの対象が上位ページ読み出しである場合に、データ“P0”に、例えば“02h”が格納される。この“02h”は、上位ページ読み出しに関するパラメータであることを示している。“P0”が“02h”を格納している場合に、“P1”は読み出し電圧R3のシフト量“ΔR3”を格納し、“P7”は読み出し電圧R7のシフト量“ΔR7”を格納し、“P3”は無効なデータとして取り扱われる。
なお、シフトリードで使用されるパラメータの割り当ては、その他の割り当てであってもよい。シフトリードで使用されるパラメータの割り当ては、使用される書き込みモードや、使用されるデータの割り当てに応じて変更され得る。
(信号DQとメモリセルアレイ18のレイヤとの関係)
図19は、第1実施形態に係るメモリシステム1の読み出し動作においてメモリデバイス100からメモリコントローラ200に出力される出力信号の一例を示すテーブルである。図19は、読み出しデータの各出力サイクルにおいて、出力信号(信号DQ[7:0])に割り当てられた読み出しデータを示している。データD0~D31は、それぞれビット線BL0~BL31に接続されたメモリセルトランジスタMCから読み出されたデータを示している。尚、以下の説明では、同時に出力された信号DQ0~DQ7の出力順番が、信号DQに付与された番号が小さい程、先に出力されたデータであるものと仮定する。つまり、本例において、同時に出力された信号DQ0~DQ7の出力順番は、DQ0、DQ1、DQ2、DQ3、DQ4、DQ5、DQ6、DQ7の順である。
図19は、第1実施形態に係るメモリシステム1の読み出し動作においてメモリデバイス100からメモリコントローラ200に出力される出力信号の一例を示すテーブルである。図19は、読み出しデータの各出力サイクルにおいて、出力信号(信号DQ[7:0])に割り当てられた読み出しデータを示している。データD0~D31は、それぞれビット線BL0~BL31に接続されたメモリセルトランジスタMCから読み出されたデータを示している。尚、以下の説明では、同時に出力された信号DQ0~DQ7の出力順番が、信号DQに付与された番号が小さい程、先に出力されたデータであるものと仮定する。つまり、本例において、同時に出力された信号DQ0~DQ7の出力順番は、DQ0、DQ1、DQ2、DQ3、DQ4、DQ5、DQ6、DQ7の順である。
図19に示すように、読み出しデータの出力サイクルの1回目において、信号DQ0~DQ7には、データD0~D7がそれぞれ格納される。読み出しデータの出力サイクルの2回目において、信号DQ0~DQ7には、データD8~D15がそれぞれ格納される。読み出しデータの出力サイクルの3回目において、信号DQ0~DQ7には、データD16~D23がそれぞれ格納される。読み出しデータの出力サイクルの4回目において、信号DQ0~DQ7には、データD24~D31がそれぞれ格納される。以降も同様に、メモリデバイス100からメモリコントローラ200にデータが出力される。
このように、各読み出しデータが出力される信号DQの割り当ては、固定され得る。また、第1実施形態では、出力される読み出しデータとレイヤLとの対応関係が、レイヤL0~L2の順番で循環している。つまり、CPU230は、何番目に受け取った読み出しデータであるかを把握することによって、当該読み出しデータがどのレイヤLに対応する読み出しデータであるのかを知ることができる。
本例では、データD(k×3)(kは0以上の整数)が、レイヤL0に設けられたメモリセルトランジスタMCからの読み出しデータ、すなわちNANDストリングNS0に含まれたメモリセルトランジスタMCの読み出しデータに対応している。データD(1+k×3)が、レイヤL1に設けられたメモリセルトランジスタMCからの読み出しデータ、すなわちNANDストリングNS1に含まれたメモリセルトランジスタMCの読み出しデータに対応している。データD(2+k×3)が、レイヤL2に設けられたメモリセルトランジスタMCからの読み出しデータ、すなわちNANDストリングNS2に含まれたメモリセルトランジスタMCの読み出しデータに対応している。
なお、レイヤLと信号DQとの関係は、データレジスタ22と入出力回路10との間のデータバスIOの接続方法や、データの転送順番に応じて変わり得る。第1実施形態では、メモリコントローラ200のCPU230が、少なくともメモリデバイス100から受信した読み出しデータとレイヤLとの関係を把握できていればよい。
[1-2-2]パトロール動作
第1実施形態に係るメモリシステム1は、ホストデバイス2からの命令に基づいた動作を実行していない期間において、自発的にパトロール動作を実行し得る。言い換えると、第1実施形態に係るメモリシステム1は、バックグラウンド動作中に、ホストデバイス2からの命令とは独立してパトロール動作を実行し得る。
第1実施形態に係るメモリシステム1は、ホストデバイス2からの命令に基づいた動作を実行していない期間において、自発的にパトロール動作を実行し得る。言い換えると、第1実施形態に係るメモリシステム1は、バックグラウンド動作中に、ホストデバイス2からの命令とは独立してパトロール動作を実行し得る。
パトロール動作は、メモリシステム1における読み出しエラーの低減と、不良が発生したブロックBLKの検出とに寄与する。例えば、パトロール動作においてメモリシステム1は、所定のパトロール期間毎に、全てのブロックBLK内の全てのページを対象としたパトロール読み出し及び補正動作を実行する。
パトロール読み出しは、パトロール動作の対象のページを読み出すことが可能であるか否かを確認する読み出し動作であり、履歴テーブルを参照して実行される。履歴テーブルは、例えばワード線WL毎に、当該パトロール期間においてパトロール動作が実行されたか否かを示す情報を保持する。履歴テーブルは、少なくともCPU230によって参照することが可能な領域に格納されていれば良く、例えばRAM220に格納される。
補正動作は、パトロール読み出しの結果に基づいて最適な読み出し電圧を見積もり、補正値テーブルを更新する動作である。補正値テーブルは、読み出し動作においてCPU230によって参照される読み出し電圧の補正値を保持する。補正値テーブルは、少なくともCPU230によって参照することが可能な領域に格納されていれば良く、例えばRAM220に格納される。
以下の説明では、補正値テーブルに基づいた読み出し電圧を用いた判定処理により得られたデータのことをハードビットデータと呼び、ハードビットデータの読み出しに使用される読み出し電圧から電圧をシフトさせた読み出し電圧を用いた判定処理により得られたデータのことをソフトビットデータと呼ぶ。また、ハードビットデータを用いたエラー訂正処理のことを硬判定復号処理と呼び、ハードビットデータ及びソフトビットデータを用いたエラー訂正処理のことを軟判定復号処理と呼ぶ。
(パトロール動作の流れ)
図20は、第1実施形態に係るメモリシステム1におけるパトロール動作の処理の一例を示すフローチャートである。図20に示すように、パトロール動作が開始すると、CPU230は、履歴テーブルを参照してパトロール動作の進捗状況を確認する(ステップS10)。
図20は、第1実施形態に係るメモリシステム1におけるパトロール動作の処理の一例を示すフローチャートである。図20に示すように、パトロール動作が開始すると、CPU230は、履歴テーブルを参照してパトロール動作の進捗状況を確認する(ステップS10)。
次に、CPU230は、確認したパトロール動作の進捗状況に基づいて、パトロール動作が実行されていないワード線WLを対象としたパトロール読み出しを実行する(ステップS11)。具体的には、ステップS11においてCPU230は、下位ページ、中位ページ、及び上位ページのそれぞれの読み出し動作をメモリデバイス100に実行させる。これらの読み出し動作では、補正値テーブルに基づいた読み出し電圧が使用される。
次に、CPU230は、受信した読み出し結果に対するエラー訂正処理をECC回路260に実行させる(ステップS12)。パトロール読み出しは、補正値テーブルに基づいた読み出し電圧を用いて実行される。ステップS12におけるエラー訂正処理は、硬判定復号処理に対応している。ECC回路260によるエラー訂正処理が完了すると、CPU230は、エラー訂正に成功したか否かを確認する(ステップS13)。
ステップS13においてエラー訂正に成功していた場合(ステップS13、YES)、続けてCPU230は、補正動作を実行する(ステップS14)。補正動作の詳細については後述する。CPU230は、補正動作が完了すると、補正動作により得られた最適な読み出し電圧の補正値に基づいて履歴テーブルを更新する(ステップS15)。履歴テーブルの更新が完了すると、CPU230は、当該ワード線WLを選択したパトロール動作を終了して、続くワード線WLを選択したパトロール動作を適宜実行する。
ステップS13においてエラー訂正に失敗していた場合(ステップS13、NO)、続けてCPU230はリトライシーケンスを実行する(ステップS16)。リトライシーケンスでは、例えば読み出し電圧に所定の補正を適用したシフトリードや、複数回の読み出しによって最適な読み出し電圧を探索するトラッキングリードや、軟判定復号処理等が実行され得る。リトライシーケンスにおいてこれらの動作は、エラー訂正が成功するまで複数回実行されてもよいし、複数種類実行されてもよい。例えば、リトライシーケンスにおいてCPU230は、シフトリードを複数回実行してもよいし、トラッキング読み出しを複数回実行してもよいし、シフトリードを実行した後にトラッキング読み出しを実行してもよい。リトライシーケンスの詳細については、第2~第4実施形態で説明する。
リトライシーケンスによってエラー訂正可能なデータが読み出されると、続けてCPU230は、リフレッシュ処理を実行する(ステップS17)。リフレッシュ処理は、リトライシーケンスが実行されたページのデータを、当該ページとは異なるブロックBLKに待避する書き込み動作である。CPU230は、リフレッシュ動作が完了すると、当該ワード線WLを選択したパトロール動作を終了して、続くワード線WLを選択したパトロール動作を適宜実行する。
なお、パトロール読み出しは、ページ単位で実行されてもよいし、ワード線WL単位で実行されてもよい。リフレッシュ動作は、その他のタイミングで実行されてもよい。例えば、リフレッシュ動作はブロックBLK単位で実行され得る。リトライシーケンスにより得られたデータは、RAM220等に保持される。そして、CPU230が、ブロックBLK内の全てのページのパトロール動作が完了した後に、当該ブロックBLKのリフレッシュ動作が一括で実行される。
[1-2-3]補正動作
補正動作では、隣り合う2つのステート間で発生するフェイルビットの数に応じて、最適な読み出し電圧の補正値が算出される。第1実施形態に係るメモリシステム1では、最適な読み出し電圧の補正値を、ワード線WL毎だけでなく、レイヤL毎にも管理する。まず、図21を用いて、補正動作で使用されるフェイルビットの定義について説明する。
補正動作では、隣り合う2つのステート間で発生するフェイルビットの数に応じて、最適な読み出し電圧の補正値が算出される。第1実施形態に係るメモリシステム1では、最適な読み出し電圧の補正値を、ワード線WL毎だけでなく、レイヤL毎にも管理する。まず、図21を用いて、補正動作で使用されるフェイルビットの定義について説明する。
図21は、第1実施形態に係るメモリシステム1における隣り合う2つのステート間のフェイルビットの一例を示す模式図である。図21(a)は、隣り合う2つのステート間でオーバーラップした部分を加算して示している。図21(b)及び(c)は、隣り合う2つのステート間でオーバーラップした部分を独立させて示している。また、図21(b)及び(c)では、それぞれ“1”データ及び“0”データに対応するステートが実線で示され、他方のステートが破線で示されている。
図21に示すように、2つのステートのうち一方が“1”データに対応し、他方が“0”データに対応している。また、VCGは、“1”データのステートと“0”データのステートとの間に設定された読み出し電圧である。隣り合う2つのステートは、離れていることが望ましい。しかしながら、図21(a)に示すように、隣り合う2つのステートには、オーバーラップした部分が形成され得る。このオーバーラップした部分には、隣り合う2つのステートのいずれかのフェイルビットが含まれている。
図21(b)に示すように、“1”データに対応するステートでは、閾値電圧が読み出し電圧VCG以上であるメモリセルトランジスタMCのデータがフェイルビットとなる。当該フェイルビットは、エラー訂正処理によって“1”データから“0”データに変化していることが検出され、“1”データに訂正される。
図21(c)に示すように、“0”データに対応するステートでは、閾値電圧が読み出し電圧VCG未満であるメモリセルトランジスタMCのデータがフェイルビットとなる。当該フェイルビットは、エラー訂正処理によって“0”データから“1”データに変化していることが検出され、“0”データに訂正される。
図21に示された隣り合う2つのステートにおけるデータの定義は入れ替えられてもよい。以下では、隣り合う2つのステートのうち、閾値電圧が低い方のステートの上裾で発生したフェイルビットのことを上裾フェイルビットTFBと呼び、閾値電圧が高い方のステートの下裾で発生したフェイルビットのことを下裾フェイルビットBFBと呼ぶ。また、上裾フェイルビットTFBの数を上裾フェイルビット数TFBCと呼び、下裾フェイルビットBFBの数を下裾フェイルビット数BFBCと呼ぶ。
メモリセルトランジスタMCのデータの割り当ては、隣り合うステート間で1ビットのみが異なるように設定される。このため、CPU230は、メモリセルトランジスタMCが複数ビットデータを記憶する場合に、エラー訂正処理によって検出されたフェイルビットの種類を、エラー訂正前のデータとエラー訂正後のデータとの組み合わせによって特定することができる。TLC方式が使用される場合、例えば以下に羅列するように、隣り合う2つのステート間の上裾フェイルビットTFBと下裾フェイルビットBFBとが対応づけられる。
(例)“訂正前の上位ビット/訂正前の中位ビット/訂正前の下位ビット”→“訂正後の上位ビット/訂正後の中位ビット/訂正後の下位ビット”:対応するフェイルビットの種類
“110”→“111”:“S0”ステートの上裾フェイルビットTFB
“111”→“110”:“S1”ステートの下裾フェイルビットBFB
“100”→“110”:“S1”ステートの上裾フェイルビットTFB
“110”→“100”:“S2”ステートの下裾フェイルビットBFB
“000”→“100”:“S2”ステートの上裾フェイルビットTFB
“100”→“000”:“S3”ステートの下裾フェイルビットBFB
“010”→“000”:“S3”ステートの上裾フェイルビットTFB
“000”→“010”:“S4”ステートの下裾フェイルビットBFB
“011”→“010”:“S4”ステートの上裾フェイルビットTFB
“010”→“011”:“S5”ステートの下裾フェイルビットBFB
“001”→“011”:“S5”ステートの上裾フェイルビットTFB
“011”→“001”:“S6”ステートの下裾フェイルビットBFB
“101”→“001”:“S6”ステートの上裾フェイルビットTFB
“001”→“101”:“S7”ステートの下裾フェイルビットBFB
“110”→“111”:“S0”ステートの上裾フェイルビットTFB
“111”→“110”:“S1”ステートの下裾フェイルビットBFB
“100”→“110”:“S1”ステートの上裾フェイルビットTFB
“110”→“100”:“S2”ステートの下裾フェイルビットBFB
“000”→“100”:“S2”ステートの上裾フェイルビットTFB
“100”→“000”:“S3”ステートの下裾フェイルビットBFB
“010”→“000”:“S3”ステートの上裾フェイルビットTFB
“000”→“010”:“S4”ステートの下裾フェイルビットBFB
“011”→“010”:“S4”ステートの上裾フェイルビットTFB
“010”→“011”:“S5”ステートの下裾フェイルビットBFB
“001”→“011”:“S5”ステートの上裾フェイルビットTFB
“011”→“001”:“S6”ステートの下裾フェイルビットBFB
“101”→“001”:“S6”ステートの上裾フェイルビットTFB
“001”→“101”:“S7”ステートの下裾フェイルビットBFB
(読み出し電圧の補正方法について)
図22は、第1実施形態に係るメモリシステムの補正動作における読み出し電圧のシフト量の設定の一例を示すテーブルである。フェイルビット数FBCは、隣り合う2つのステート間におけるフェイルビットの総数に対応し、下裾フェイルビット数BFBCと上裾フェイルビット数TFBCとの合計に相当する。フェイル割合RATは、隣り合う2つのステート間における下裾フェイルビット数BFBCと上裾フェイルビット数TFBCとの割合に対応し、例えばBFBCをTFBCで割った数値に相当する。読み出し電圧のシフト量は、DAC値によって記載されている。
図22は、第1実施形態に係るメモリシステムの補正動作における読み出し電圧のシフト量の設定の一例を示すテーブルである。フェイルビット数FBCは、隣り合う2つのステート間におけるフェイルビットの総数に対応し、下裾フェイルビット数BFBCと上裾フェイルビット数TFBCとの合計に相当する。フェイル割合RATは、隣り合う2つのステート間における下裾フェイルビット数BFBCと上裾フェイルビット数TFBCとの割合に対応し、例えばBFBCをTFBCで割った数値に相当する。読み出し電圧のシフト量は、DAC値によって記載されている。
図22に示すように、例えば、BFBC=10且つTFBC=100である場合、フェイルビット数FBCは“110”であり、フェイル割合RATは“0.1”である。BFBC=30且つTFBC=60である場合、フェイルビット数FBCは“90”であり、フェイル割合RATは“0.5”である。BFBC=40且つTFBC=40である場合、フェイルビット数FBCは“80”であり、フェイル割合RATは“1”である。BFBC=60且つTFBC=30である場合、フェイルビット数FBCは“90”であり、フェイル割合RATは“2”である。BFBC=100且つTFBC=10である場合、フェイルビット数FBCは“110”であり、フェイル割合RATは“10”である。
このように、フェイルビット数FBCは、例えばフェイル割合RATが“1”に近づく程小さくなる傾向がある。また、読み出し電圧を正方向にシフトした場合、下裾フェイルビット数BFBCが増加し且つ上裾フェイルビット数TFBCが減少すると考えられ、読み出し電圧を負方向にシフトした場合、下裾フェイルビット数BFBCが減少し且つ上裾フェイルビット数TFBCが増加すると考えられる。
このため、読み出し電圧のシフト量は、フェイル割合RATが“1”よりも小さい場合に正方向に設定され、フェイル割合RATが“1”よりも大きい場合に負方向に設定される。さらに、読み出し電圧のシフト量は、フェイル割合RATが1から離れる程大きくなるように設定される。例えば、RAT=0.1である場合、読み出し電圧が+5DAC分だけシフトされる。RAT=0.5である場合、読み出し電圧が+3DAC分だけシフトされる。RAT=1である場合、読み出し電圧はシフトされない。RAT=2である場合、読み出し電圧が-3DAC分だけシフトされる。RAT=10である場合、読み出し電圧が-5DAC分だけシフトされる。
なお、フェイル割合RATに対する読み出し電圧のシフト量は、図22に示された設定に限定されない。第1実施形態に係るメモリシステム1では、補正動作における読み出し電圧のシフト量が、少なくともフェイル割合RATに基づいて決定されていればよい。
以上で説明された読み出し電圧の補正は、読み出し電圧毎、且つレイヤ(NANDストリングNS)毎に実行される。具体的には、CPU230は、図19を用いて説明されたように、読み出しデータの出力順番に応じて、レイヤ毎のメモリセルトランジスタMCの閾値電圧分布を抽出する。そして、CPU230は、レイヤ毎に抽出されたメモリセルトランジスタMCの閾値電圧分布毎に、上記補正動作を実行する。
TLC方式が使用される場合、読み出し電圧R1に対応するフェイルビット数FBCは、“S0”ステートのTFBCと“S1”ステートのBFBCとの合計に対応する。読み出し電圧R2に対応するフェイルビット数FBCは、“S1”ステートのTFBCと“S2”ステートのBFBCとの合計に対応する。読み出し電圧R3に対応するフェイルビット数FBCは、“S2”ステートのTFBCと“S3”ステートのBFBCとの合計に対応する。読み出し電圧R4に対応するフェイルビット数FBCは、“S3”ステートのTFBCと“S4”ステートのBFBCとの合計に対応する。読み出し電圧R5に対応するフェイルビット数FBCは、“S4”ステートのTFBCと“S5”ステートのBFBCとの合計に対応する。読み出し電圧R6に対応するフェイルビット数FBCは、“S5”ステートのTFBCと“S6”ステートのBFBCとの合計に対応する。読み出し電圧R7に対応するフェイルビット数FBCは、“S6”ステートのTFBCと“S7”ステートのBFBCとの合計に対応する。
そして、CPU230は、“S0”及び“S1”ステートに対応するフェイル割合RATと、“S1”及び“S2”ステートに対応するフェイル割合RATと、“S2”及び“S3”ステートに対応するフェイル割合RATと、“S3”及び“S4”ステートに対応するフェイル割合RATと、“S4”及び“S5”ステートに対応するフェイル割合RATと、“S5”及び“S6”ステートに対応するフェイル割合RATと、“S6”及び“S7”ステートに対応するフェイル割合RATとをそれぞれレイヤL毎に算出し、読み出し電圧R1~R7のそれぞれに対して読み出し電圧のシフト量をレイヤL毎に決定する。それから、CPU230は、決定された読み出し電圧のレイヤL毎のシフト量に基づいて、補正値テーブルを適宜更新する。
図23は、第1実施形態に係るメモリシステムで使用される補正値テーブルの一例を示すテーブルである。図23に示すように、読み出し電圧の補正値COLは、例えばブロックBLK、ストリングユニットSU、ワード線WL、及びレイヤIDの組み合わせ毎に管理される。補正値COLは、読み出し動作で使用される各読み出し電圧の補正値に対応している。補正値COLは、例えば読み出し電圧毎にDAC(digital analog converter)値により管理される。レイヤIDは、例えば、NANDストリングNSに割り当てられた識別子と同じである。
読み出し動作において、CPU230は、選択ワード線WLselに対応するアドレスのレイヤL0~L2に対応する補正値COLを参照し、補正値COLに基づいてデフォルト電圧からシフトされた電圧を、読み出し電圧として使用する。この場合、CPU230は、例えば、最適な補正値COLを用いた読み出し動作を、レイヤ毎に実行する。本動作の一例については第2実施形態で説明する。
なお、ページ単位の読み出し動作では、読み出し対象のページの読み出し動作で使用される読み出し電圧の補正値COLのみが参照されてもよい。また、補正値COLは、適宜グルーピングされてもよい。例えば、メモリユニットMUがZ方向に積層された4つ以上のメモリセルトランジスタMCを備える場合に、複数のレイヤのそれぞれに適用され得る補正値COLが、レイヤの高さに応じて適宜グルーピングされてもよい。また、メモリシステム1は、類似した特性を有する複数のワード線WLに対して共通の補正値COLを適用してもよい。これにより、メモリシステム1は、補正値テーブルのサイズを小さくすることができる。
(補正動作の流れ)
図24は、第1実施形態に係るメモリシステムの補正動作の一例を示すフローチャートである。図24に示すように、補正動作が開始すると、CPU230は、ステップS12及びS13におけるエラー訂正処理の結果に基づいて、隣り合うステート間のフェイルビット数FBC及びフェイル割合RATを算出する(ステップS20)。
図24は、第1実施形態に係るメモリシステムの補正動作の一例を示すフローチャートである。図24に示すように、補正動作が開始すると、CPU230は、ステップS12及びS13におけるエラー訂正処理の結果に基づいて、隣り合うステート間のフェイルビット数FBC及びフェイル割合RATを算出する(ステップS20)。
次に、CPU230は、算出したフェイルビット数FBC又はフェイル割合RATが所定の基準を満たしたか否かを確認する(ステップS21)。所定の基準は、フェイルビット数FBCとフェイル割合RATとのそれぞれに設定される。例えば、フェイルビット数FBCの基準はFBCが所定の数値を下回ることであり、フェイル割合RATの基準はRATが“1”を含む所定の範囲内に含まれることである。
ステップS21においてFBC又はRATが基準を満たしていない場合(ステップS21、NO)、CPU230はフェイル割合RATに基づいて読み出し電圧の補正値をレイヤ毎に算出する(ステップS22)。CPU230は、この補正値の算出に、例えば、図22を用いて説明した方法を適用する。そして、CPU230は、算出した読み出し電圧の補正値を用いてシフトリードを実行する(ステップS23)。このシフトリードは、ステップS11のパトロール読み出しに対して、使用される読み出し電圧がシフトされた読み出し動作である。それから、CPU230は、シフトリードの読み出し結果に対するエラー訂正処理をECC回路260に実行させる(ステップS24)。ステップS24のエラー訂正処理は、ステップS12と同様の硬判定復号処理に対応している。ステップS24のエラー訂正処理では、補正された読み出し電圧を使用するシフトリードの読み出し結果が使用されるため、エラーの訂正が、読み出し電圧の補正前よりも高確率で成功する。ステップS24の硬判定復号処理が完了すると、CPU230はステップS20の処理に戻る。つまり、CPU230は、ステップS20~S24の処理を適宜繰り返し実行される。
ステップS21においてFBC又はRATが基準を満たしている場合(ステップS21、YES)、CPU230は、例えばシフトリードに使用した読み出し電圧の補正値とエラー訂正処理の結果とに基づいて、補正値テーブルを更新する(ステップS25)。補正値テーブルの更新が完了すると、CPU230は補正動作を完了する。すなわち、CPU230は、ステップS15の処理に移行して、パトロール動作の履歴テーブルを更新する。
なお、以上で説明した補正動作におけるステップS20~S22の処理は、設定された読み出し電圧毎に実行される。つまり、ステップS21では、条件を満たした読み出し電圧と、条件を満たしていない読み出し電圧とが混在する場合がある。この場合にCPU230は、例えばステップS21の次の動作を、条件を満たしていない場合を優先的に選択する。ステップS21からステップS25に処理が移行する条件としては、ステップS20~S24の処理が所定の回数繰り返されたことや、所定のステートがステップS21の条件をパスしたこと等が設定されてもよい。
なお、FBC及びRATは、ECC回路260によって算出されてもよい。また、ステップS20~S24の処理の繰り返しにおいてステップS21の条件を満たしたページがある場合に、CPU230は、ステップS23の当該ページに対するシフトリードを省略してもよい。この場合に、CPU230は、ステップS20におけるFBC及びRATの算出に、当該ページに対する直近のシフトリードに基づく結果を使用する。また、CPU230は、ステップS22の後に、算出された補正値に基づいて補正値テーブルを更新してもよい。この場合に、CPU230は、ステップS23で補正値テーブルに基づいた読み出し動作を実行する。
(補正動作の具体例)
以下に、補正動作の具体例について、下位ページに着目して説明する。以下の説明において、読み出し電圧R1のフェイルビット数FBCは、“S0”及び“S1”ステートの組に対応するFBCのことを示している。読み出し電圧R1のフェイル割合RATは、“S0”及び“S1”ステートの組に対応するRATのことを示している。同様に、読み出し電圧R5のフェイルビット数FBCは、“S4”及び“S5”ステートの組に対応するFBCのことを示し、読み出し電圧R5のフェイル割合RATは、“S4”及び“S5”ステートの組に対応するRATのことを示している。
以下に、補正動作の具体例について、下位ページに着目して説明する。以下の説明において、読み出し電圧R1のフェイルビット数FBCは、“S0”及び“S1”ステートの組に対応するFBCのことを示している。読み出し電圧R1のフェイル割合RATは、“S0”及び“S1”ステートの組に対応するRATのことを示している。同様に、読み出し電圧R5のフェイルビット数FBCは、“S4”及び“S5”ステートの組に対応するFBCのことを示し、読み出し電圧R5のフェイル割合RATは、“S4”及び“S5”ステートの組に対応するRATのことを示している。
図25は、第1実施形態に係るメモリシステム1の補正動作における読み出し電圧の補正値COL、フェイルビット数FBC、及びフェイル割合RATの変化の一例を示すテーブルである。図25に示すように、補正動作の前の読み出し電圧R1及びR5のそれぞれの補正値COLが、“0”に設定されている。ステップS21におけるFBC及びRATの基準の一例として、“FBC<30又は0.7<RAT<1.5”が設定されている。
図25(a)に示すように、1回目の読み出し動作では、補正値COL=0が適用された読み出し電圧R1と、補正値COL=0が適用された読み出し電圧R5とが使用される。1回目の読み出し結果では、読み出し電圧R1及びR5のそれぞれのFBCがそれぞれ“60”及び“80”であり、読み出し電圧R1及びR5のそれぞれのRATがそれぞれ“0.5”及び“2”となっている。つまり、読み出し電圧R1及びR5のそれぞれが、FBC及びRATの基準を満たしていない。
この場合、CPU230は、読み出し電圧R1及びR5のそれぞれに対して補正値の算出を実行する。例えば、CPU230は、RAT=0.5に基づいて読み出し電圧R1に対する+2DACの補正を適用し、RAT=2に基づいて読み出し電圧R5に対する-5DACの補正を適用する。そしてCPU230は、得られた読み出し電圧の補正値を適用した2回目の読み出し動作を実行する。
図25(b)に示すように、2回目の読み出し動作では、補正値COL=+2DACが適用された読み出し電圧R1と、補正値COL=-5DACが適用された読み出し電圧R5とが使用される。2回目の読み出し結果では、読み出し電圧R1及びR5のそれぞれのFBCがそれぞれ“25”及び“50”であり、読み出し電圧R1及びR5のそれぞれのRATがそれぞれ“0.8”及び“0.5”となっている。つまり、読み出し電圧R1がFBC及びRATの基準を満たしている(“A”パス)。一方で、読み出し電圧R5がFBC及びRATの基準を満たしていない。
この場合、CPU230は、読み出し電圧R5に対して補正値の算出を実行する。例えば、CPU230は、RAT=0.5に基づいて読み出し電圧R5に対する+3DACの補正を適用する。また、CPU230は、基準を満たした読み出し電圧R1に対する微調整を実行し、RAT=0.8に基づいて読み出し電圧R1に対する+1DACの補正を適用する。そしてCPU230は、得られた読み出し電圧の補正値を適用した2回目の読み出し動作を実行する。
図25(c)に示すように、3回目の読み出し動作では、補正値COL=+3DACが適用された読み出し電圧R1と、補正値COL=-2DACが適用された読み出し電圧R5とが使用される。3回目の読み出し結果では、読み出し電圧R1及びR5のそれぞれのFBCがそれぞれ“20”及び“40”であり、読み出し電圧R1及びR5のそれぞれのRATがそれぞれ“1”及び“1.2”となっている。つまり、読み出し電圧R1が2回目の読み出し結果と同様にFBC及びRATの基準を満たしている。一方で、読み出し電圧R5がFBCの基準を満たしていない且つRATの基準を満たしている。
このように、FBC及びRATのうち一方の基準のみを満たしている場合にも、読み出し電圧R5に対するステップS21の基準は満たされる(“C”パス)。そして、CPU230は、基準を満たした読み出し電圧R5に対する微調整を実行し、RAT=1.2に基づいて読み出し電圧R5に対する-1DACの補正を適用し、補正動作を完了する。
その結果、図25(d)に示すように、補正動作後の読み出し電圧R1及びR5の補正値COLは、それぞれ“+3”及び“-3”に設定される。説明が省略されているが、シーケンサ15は、下位ページの補正動作と並行して、中位ページ及び上位ページの補正動作も実行し得る。なお、ステップS21の基準を満たした読み出し電圧に対する±1DACの補正は、よりエラーの少ない読み出し電圧にするための微調整であるため、補正量が変更されてもよいし、省略されてもよい。
図26は、第1実施形態に係るメモリシステム1の補正動作におけるフェイルビット数の変化の一例を示す模式図である。図26は、図25を用いて説明された各読み出し動作で、読み出し電圧R5に関連するステートの閾値電圧分布を示している。“R1ref”、“R1col1”、“R1col2”、及び“R1col3”は、それぞれ補正値COL=0DAC、-5DAC、-2DAC、及び-3DACが適用された読み出し電圧R5である。
図26(a)に示すように、R5refが使用された1回目の読み出し結果では、BFBC≫TFBCとなっている。このため、続く2回目の読み出し動作では、読み出し電圧R5が、下裾フェイルビット数BFBCが減少する負方向に大きく補正されている。
図26(b)に示すように、R5col1が使用された2回目の読み出し結果では、BFBC<TFBCとなっている。このため、続く3回目の読み出し動作では、読み出し電圧R5が、上裾フェイルビット数TFBCが減少する正方向に補正されている。
図26(c)に示すように、R5col2が使用された3回目の読み出し結果では、BFBC>FBCとなっている。一方で、図25を用いて説明されたように、3回目の読み出し結果ではステップS21におけるRATの条件が満たされている。このため、補正後の読み出し電圧では、読み出し電圧が、下裾フェイルビット数BFBCが減少する負方向に微調整される。
図26(d)に示すように、補正後の読み出し電圧R5col3を用いた読み出し動作では、BFBC=TFBCに近づくことが期待される。言い換えると、補正後の読み出し電圧R5col3を用いた読み出し動作では、フェイル割合RATが“1”に近づき、且つフェイルビット数FBCが極小になっていることが期待される。
[1-3]第1実施形態の効果
以上で説明した第1実施形態に係るメモリシステム1に依れば、データの信頼性を向上させることができる。以下に、第1実施形態に係るメモリシステム1における詳細な効果について説明する。
以上で説明した第1実施形態に係るメモリシステム1に依れば、データの信頼性を向上させることができる。以下に、第1実施形態に係るメモリシステム1における詳細な効果について説明する。
メモリセルトランジスタMCは、電荷蓄積層内の電子の数に応じて閾値電圧が変化し、閾値電圧に基づいて異なるデータを記憶する。しかしながら、電荷蓄積層内の電子は、各種動作により生じるストレスや時間経過によって増減する可能性がある。つまり、メモリセルトランジスタMCの閾値電圧は、当該メモリセルトランジスタMCにデータが書き込まれた後に変化する可能性がある。例えば、リードディスターブやプログラムディスターブ等の影響を受けてメモリセルトランジスタMCの閾値電圧分布の形状が変化すると、フェイルビット数FBCが増加して、読み出しデータのエラー訂正が失敗し得る。
これに対して、第1実施形態に係るメモリシステム1は、フェイルビット数FBCの増加を抑制するために、パトロール動作を定期的に実行する。そして、メモリシステム1は、パトロール読み出しの後に実行する補正動作によって、読み出し電圧を適宜補正する。これにより、第1実施形態に係るメモリシステム1は、読み出し電圧の補正値が最適な状態に維持することができ、メモリセルトランジスタMCに書き込まれたデータがエラー訂正不可能になるリスクを抑制することができる。
また、第1実施形態に係るメモリシステム1では、補正動作において下裾フェイルビット数BFBCと上裾フェイルビット数TFBCとの割合であるフェイル割合RATを使用する。フェイル割合RATは、読み出し電圧を補正する方向と大きさとの見積もりに使用される。そして、メモリシステム1は、補正動作において補正値の算出とシフトリードとの組を繰り返し、フェイル割合RATを1に近づけることによって、読み出し電圧を高精度に補正することができる。その結果、第1実施形態に係るメモリシステム1は、フェイルビット数FBCの増加を抑制することができる。
なお、第1実施形態に係るメモリシステム1において、メモリセルトランジスタMCの形状は、メモリデバイス100の製造プロセスに応じて変化し得る。そして、メモリセルトランジスタMCのゲート長及びゲート幅が、レイヤ毎にばらつき得る。つまり、メモリセルトランジスタMCの特性が、レイヤ毎にばらつき得る。このため、最適な読み出し電圧が、メモリセルトランジスタMCが設けられたレイヤ毎に異なることが考えられる。
そこで、第1実施形態に係るメモリシステム1では、上述した補正動作を、レイヤ毎に実行する。つまり、第1実施形態に係るメモリシステム1は、レイヤ毎に、最適な読み出し電圧の補正値を算出する。その結果、第1実施形態に係るメモリシステム1は、レイヤ毎の最適値を用いた読み出し動作を実行することができ、フェイルビット数FBCの増加を抑制することができる。従って、第1実施形態に係るメモリシステム1は、メモリシステム1記憶するデータの信頼性を向上させることができる。
[2]第2実施形態
第2実施形態に係るメモリシステム1は、第1実施形態に係るメモリシステム1と同様のハードウェア構成を有する。第2実施形態は、第1実施形態で説明されたリトライシーケンスの第1の例に関する。以下に、第2実施形態に係るメモリシステム1について、第1実施形態と異なる点を説明する。
第2実施形態に係るメモリシステム1は、第1実施形態に係るメモリシステム1と同様のハードウェア構成を有する。第2実施形態は、第1実施形態で説明されたリトライシーケンスの第1の例に関する。以下に、第2実施形態に係るメモリシステム1について、第1実施形態と異なる点を説明する。
[2-1]動作
第2実施形態に係るメモリシステム1は、リトライシーケンスにおいて、トラッキングリード及び最適値リードを実行する。トラッキングリードは、閾値電圧分布において、隣り合うステート間の谷部分を検出して、最適な読み出し電圧を算出する動作である。トラッキングリードは、“Vthトラッキング”と呼ばれてもよい。最適値リードは、トラッキングリードによって得られた読み出し電圧の補正値を用いた読み出し動作である。以下に、第2実施形態に係るメモリシステム1の前提とされる動作としてワンレベルリードについて説明し、続けてトラッキングリードとリトライシーケンスとのそれぞれの詳細について順に説明する。
第2実施形態に係るメモリシステム1は、リトライシーケンスにおいて、トラッキングリード及び最適値リードを実行する。トラッキングリードは、閾値電圧分布において、隣り合うステート間の谷部分を検出して、最適な読み出し電圧を算出する動作である。トラッキングリードは、“Vthトラッキング”と呼ばれてもよい。最適値リードは、トラッキングリードによって得られた読み出し電圧の補正値を用いた読み出し動作である。以下に、第2実施形態に係るメモリシステム1の前提とされる動作としてワンレベルリードについて説明し、続けてトラッキングリードとリトライシーケンスとのそれぞれの詳細について順に説明する。
[2-1-1]ワンレベルリード
図27は、第2実施形態に係るメモリシステム1におけるワンレベルリードのコマンドシーケンスの一例を示す模式図である。DQ[7:0]は、メモリコントローラ200及びメモリデバイス100間で送受信されるコマンドCMD、アドレスADD、データDAT等を示している。
図27は、第2実施形態に係るメモリシステム1におけるワンレベルリードのコマンドシーケンスの一例を示す模式図である。DQ[7:0]は、メモリコントローラ200及びメモリデバイス100間で送受信されるコマンドCMD、アドレスADD、データDAT等を示している。
図27に示すように、ワンレベルリードを実行する場合に、メモリコントローラ200は、まず、コマンド“XXh”、アドレス“ZZh”、並びにデータ“P0”、“P1”、“P2”及び“P3”を、この順番に、メモリデバイス100に送信する。アドレス“ZZh”は、ワンレベルリードを指定するコマンドである。データ“P0”、“P1”、“P2”及び“P3”は、コマンド“XXh”及び“ZZh”に関連付けられたデータであり、アドレス“ZZh”によって指定されたワンレベルリードに関する情報を含む。
続けて、メモリコントローラ200は、コマンド“00h”、アドレス“ADD”、コマンド“30h”を、この順番に、メモリデバイス100に送信する。メモリデバイス100がコマンド“30h”を受信すると、シーケンサ15が、メモリデバイス100をレディ状態からビジー状態に遷移させて、ワンレベルリードを実行する。ワンレベルリードにおいて、シーケンサ15は、データ“P0”、“P1”、“P2”及び“P3”によって指定された1種類の読み出し電圧を用いた読み出し動作を実行する。ワンレベルリードのその他の動作は、通常の読み出し動作と同様である。
図28は、第2実施形態に係るメモリシステム1におけるワンレベルリードで使用されるパラメータの割り当ての一例を示すテーブルである。図28に示すように、データ“P0”に、ワンレベルリードを実行する読み出し電圧を指定するコマンドが割り当てられる。具体的には、データ“P0”には、ワンレベルリードの対象がR1読み出し、R2読み出し、R3読み出し、R4読み出し、R5読み出し、R6読み出し、及びR7読み出しである場合に、例えば“00h”、“01h”、“02h”、“03h”、“04h”、“05h”及び“06h”がそれぞれ格納される。なお、ワンレベルリードのパラメータ設定において、“P1”、“P2”及び“P3”のそれぞれは、例えば無効なデータとして取り扱われる。
なお、ワンレベルリードで使用されるパラメータの割り当ては、その他の割り当てであってもよい。ワンレベルリードで使用されるパラメータの割り当ては、使用される書き込みモードに応じて変更され得る。
[2-1-2]トラッキングリード
図29は、第2実施形態に係るメモリシステム1のトラッキングリードで使用される読み出し電圧の一例を示す模式図である。図29は、メモリセルトランジスタMCの閾値電圧分布のうち下位ページ読み出しに関連する“S0”、“S1”、“S4”及び“S5”ステートを抽出して示している。図29に示すように、トラッキングリードにおいて、CPU230は、隣り合う2つのステートの谷部分を対象として、読み出し電圧をシフトさせた読み出し動作(シフトリード)を複数回実行する。
図29は、第2実施形態に係るメモリシステム1のトラッキングリードで使用される読み出し電圧の一例を示す模式図である。図29は、メモリセルトランジスタMCの閾値電圧分布のうち下位ページ読み出しに関連する“S0”、“S1”、“S4”及び“S5”ステートを抽出して示している。図29に示すように、トラッキングリードにおいて、CPU230は、隣り合う2つのステートの谷部分を対象として、読み出し電圧をシフトさせた読み出し動作(シフトリード)を複数回実行する。
本例では、読み出し電圧R1を対象としたトラッキングリードにおいて、読み出し電圧R1_SFT1~5が設定され、読み出し電圧R5を対象としたトラッキングリードにおいて、読み出し電圧R1_SFT1~5が設定されている。また、CPU230は、下位ページ読み出しに対応するトラッキングリードにおいて、例えば、読み出し電圧R3を用いたワンレベルリードを実行する。なお、ワンレベルリードで使用される読み出し電圧は、少なくとも、当該ページの読み出し動作で使用される複数種類の読み出し電圧の間に設定された読み出し電圧であればよい。
設定された各読み出し電圧の高さは、R1_SFT1<R1_SFT2<R1_SFT3<R1_SFT4<R1_SFT5<R3<R5_SFT1<R5_SFT2<R5_SFT3<R5_SFT4<R5_SFT5である。読み出し電圧R1_SFT1~5は、“S0”及び“S1”ステートの谷部分の近傍に設定される。読み出し電圧R5_SFT1~5は、“S4”及び“S5”ステートの谷部分の近傍に設定される。また、これらの読み出し電圧によって、閾値電圧分布が、12個の領域(1)~(12)に分割される。
図30は、第2実施形態に係るメモリシステム1のトラッキングリードで得られる読み出しデータの一例を示すテーブルである。セクション“R3”は、読み出し電圧R3のワンレベルリードによって得られた読み出し結果に対応している。セクション“SFT1”は、読み出し電圧R1_SFT1及びR5_SFT1によって得られた読み出し結果に対応している。セクション“SFT2”は、読み出し電圧R1_SFT2及びR5_SFT2によって得られた読み出し結果に対応している。セクション“SFT3”は、読み出し電圧R1_SFT3及びR5_SFT3によって得られた読み出し結果に対応している。セクション“SFT4”は、読み出し電圧R1_SFT4及びR5_SFT4によって得られた読み出し結果に対応している。セクション“SFT5”は、読み出し電圧R1_SFT5及びR5_SFT5によって得られた読み出し結果に対応している。
図30に示すように、セクション“R3”の読み出し結果は、メモリセルトランジスタMCの閾値電圧が領域(1)~(6)のいずれかに含まれる場合に“0”になり、メモリセルトランジスタMCの閾値電圧が領域(7)~(12)のいずれかに含まれる場合に“1”になる。
セクション“SFT1”の読み出し結果は、メモリセルトランジスタMCの閾値電圧が、領域(1)及び(8)~(12)のいずれかに含まれる場合に“1”になり、領域(2)~(7)のいずれかに含まれる場合に“0”になる。
セクション“SFT2”の読み出し結果は、メモリセルトランジスタMCの閾値電圧が、領域(1)、(2)及び(9)~(12)のいずれかに含まれる場合に“1”になり、領域(3)~(8)のいずれかに含まれる場合に“0”になる。
セクション“SFT3”の読み出し結果は、メモリセルトランジスタMCの閾値電圧が、領域(1)~(3)及び(10)~(12)のいずれかに含まれる場合に“1”になり、領域(4)~(9)のいずれかに含まれる場合に“0”になる。
セクション“SFT4”の読み出し結果は、メモリセルトランジスタMCの閾値電圧が、領域(1)~(4)、(11)及び(12)のいずれかに含まれる場合に“1”になり、領域(5)~(10)のいずれかに含まれる場合に“0”になる。
セクション“SFT5”の読み出し結果は、メモリセルトランジスタMCの閾値電圧が、領域(1)~(5)及び(12)のいずれかに含まれる場合に“1”になり、領域(6)~(11)のいずれかに含まれる場合に“0”になる。
図31は、第2実施形態に係るメモリシステム1のトラッキングリードにおける読み出し電圧の最適値の検出方法の一例を示す模式図である。図31(a)は、図29に示された閾値電圧分布を示している。図31(b)は、図31(a)に対応するオン状態のメモリセルトランジスタMCの数(オンセル数)を示している。図31(c)は、図31(b)に対応する領域(1)~(12)毎のオンセル数のカウント結果を示し、オンセル数の変化量に対応している。
図31(a)に示すようにトラッキングリードが実行されると、CPU230は、図31(b)に示すようにメモリセルトランジスタMCのオンセル数をカウントする。オンセル数は、読み出し結果が図30に示されたデータ“0”であるメモリセルトランジスタMCの数に対応している。具体的には、CPU230は、読み出し電圧R3よりも低い領域(1)~(6)に含まれるオンセル数をカウントする場合に、カウント対象のセクションの読み出し結果とセクション“R3”の読み出し結果との論理積演算を使用してオン状態かオフ状態かを特定することによって、オンセル数をカウントする。一方で、CPU230は、読み出し電圧R3よりも高い領域(7)~(12)に含まれるオンセル数をカウントする場合に、カウント対象のセクションの読み出し結果とセクション“R3”の読み出し結果の反転データとの論理積演算を使用してオン状態かオフ状態かを特定することによって、オンセル数をカウントする。
例えば、CPU230は、領域(1)に含まれるオンセル数をカウントする場合に、セクション“SFT1”の読み出し結果とセクション“R3”の読み出し結果との論理積演算を使用してオン状態かオフ状態かを特定することによって、領域(1)に含まれるオンセル数をカウントする。CPU230は、領域(7)に含まれるオンセル数をカウントする場合に、セクション“SFT1”の読み出し結果とセクション“R3”の読み出し結果の反転データとの論理積演算を使用してオン状態かオフ状態かを特定することによって、領域(7)に含まれるオンセル数をカウントする。その他のセクションに関連付けられた領域におけるオンセル数は、セクション“SFT1”に関連付けられた領域(1)及び(7)と同様の方法で算出される。
本例では、オンセル数が、領域(1)から領域(5)に向かって増加し、領域(7)から領域(12)に向かって減少している。そして、CPU230は、図31(a)に示すように領域(1)~(12)毎のオンセル数をカウントする。すると、“S0”及び“S1”ステートの谷部分と、“S4”及び“S5”ステートの谷部分とのそれぞれで、凹状に並んだカウント結果が得られる。それから、CPU230は、領域(1)~(5)で検出された谷部分に基づいて、読み出し電圧R1の最適値を検出し、読み出し電圧R1の補正値を算出する。同様に、CPU230は、領域(7)~(12)で検出された谷部分に基づいて、読み出し電圧R5の最適値を検出し、読み出し電圧R5の補正値を算出する。なお、CPU230は、下位ページ以外を対象としたトラッキングリードについても、下位ページを対象としたトラッキングリードと同様に実行することができる。
[2-1-3]リトライシーケンス
図32は、第2実施形態に係るメモリシステム1のリトライシーケンスの一例を示すフローチャートである。
図32は、第2実施形態に係るメモリシステム1のリトライシーケンスの一例を示すフローチャートである。
図32に示すように、図20のステップS16のリトライシーケンスが開始すると、CPU230は、レイヤ毎のトラッキングリードを実行する(ステップS30)。具体的には、CPU230は、まず図29を用いて説明されたように、読み出し電圧をシフトさせた読み出し動作(シフトリード)を複数回実行する。そして、CPU230は、図19を用いて説明されたように、読み出しデータの出力順番に応じて、レイヤ毎のメモリセルトランジスタMCの閾値電圧分布を抽出する。それから、CPU230は、レイヤ毎に抽出されたメモリセルトランジスタMCの閾値電圧分布毎に、読み出し電圧の最適値の算出を実行する。
次に、CPU230は、レイヤ毎の最適値リードを実行する(ステップS31)。つまり、CPU230が、ステップS30の処理によって得られたレイヤ毎の読み出し電圧の最適値を用いたシフトリードを実行する。そして、CPU230は、最適値リードの読み出し結果に対するエラー訂正処理(硬判定復号処理)をECC回路260に実行させる(ステップS32)。
ステップS32においてエラー訂正が成功した場合(ステップS33、YES)、CPU230は、当該ページの読み出し動作の結果を“読み出しパス”として(ステップS34)、リトライシーケンスを終了する(リターン)。読み出し動作の結果が読み出しパスである場合、CPU230は、最適値リードによる読み出しデータを用いて、続くステップS17のリフレッシュ動作を実行する。
ステップS32においてエラー訂正が失敗した場合(ステップS33、NO)、CPU230は、当該ページの読み出し動作の結果を“読み出しフェイル”として(ステップS34)、リトライシーケンスを終了する(リターン)。読み出し動作の結果が読み出しフェイルである場合、CPU230は、当該ページの読み出しデータを消失したものと認識する。
(レイヤ毎の最適値算出)
図33は、第2実施形態に係るメモリシステム1のレイヤ毎のトラッキングリードの処理の一例を示すフローチャートである。図33は、レイヤ毎のトラッキングリードが下位ページを対象として実行された場合の動作の具体例を示している。CPU230は、トラッキングリードの処理に、例えば、複数のカウンタを使用する。以下では、第1のカウンタの数値を変数iとし、第2のカウンタの数値を変数jと定義して説明する。
図33は、第2実施形態に係るメモリシステム1のレイヤ毎のトラッキングリードの処理の一例を示すフローチャートである。図33は、レイヤ毎のトラッキングリードが下位ページを対象として実行された場合の動作の具体例を示している。CPU230は、トラッキングリードの処理に、例えば、複数のカウンタを使用する。以下では、第1のカウンタの数値を変数iとし、第2のカウンタの数値を変数jと定義して説明する。
図33に示すように、図32のステップS30のレイヤ毎のトラッキングリードが開始すると、CPU230は、トラッキングリードの対象であるワード線WLnを選択したワンレベルリードをメモリデバイス100に実行させ、メモリデバイス100から受信したワンレベルリードの結果をRAM220に格納させる(ステップS100)。
次に、CPU230は、第1のカウンタに“1”を代入する(ステップS101)。すなわち、CPU230は、“i=1”の処理を実行する。第1のカウンタの数値は、シフトリードの実行回数を示している。
次に、CPU230は、ワード線WLnを選択し、且つ読み出し電圧R1及びR5のi回目のシフトリードをメモリデバイス100に実行させ、メモリデバイス100から受信したシフトリードの結果をRAM220に格納させる(ステップS102)。
次に、CPU230は、R1(i)のレベル分離演算を実行する(ステップS103)。“R1(i)のレベル分離演算”は、i回目のシフトリードにおける読み出し電圧R1_SFTi及びR5_SFTiの読み出し結果と、ワンレベルリードの読み出し結果との論理積演算に対応している。これにより、CPU230は、i回目のシフトリードにおいて読み出し電圧R1(i)に関連付けられたオンセル数を示すデータを取得する。
次に、CPU230は、第2のカウンタをリセットする(ステップS104)。すなわち、CPU230は、“j=0”の処理を実行する。第2のカウンタの数値は、メモリセルトランジスタMCのレイヤ位置を示している。
次に、CPU230は、レイヤLjの“1”をカウントする(ステップS105)。具体的には、CPU230は、ステップS103により得られた演算結果のうち、レイヤLjに対応する演算結果を抽出する。そして、CPU230は、抽出した演算結果のうち、“1”データである演算結果の数をカウントして、カウント結果を読み出し電圧R1_SFTiのオンセル数のカウント結果として例えばRAM220に格納させる。
次に、CPU230は、第2のカウンタの数値が所定の数に達したか否かを確認する(ステップS106)。具体的には、CPU230は、“j==2”が満たされるか否かを確認する。j==2は、メモリセルトランジスタMCの積層数が3層であることを示している。なお、ステップS106における判定の数値は、メモリセルトランジスタMCの積層数に応じて変更され得る。
ステップS106において、“j==2”が満たされない場合に(ステップS106、NO)、CPU230は、第2のカウンタの数値をインクリメントして(ステップS107、j++)、ステップS105の処理に戻る。
ステップS106において、“j==2”が満たされる場合に(ステップS106、YES)、CPU230は、R5(i)のレベル分離演算を実行する(ステップS108)。“R5(i)”は、i回目のシフトリードにおける読み出し電圧R1_SFTi及びR5_SFTiの読み出し結果と、ワンレベルリードの読み出し結果の反転データとの論理積演算の結果に対応している。これにより、CPU230は、i回目のシフトリードにおいて読み出し電圧R5(i)に関連付けられたオンセル数を示すデータを取得する。
次に、CPU230は、第2のカウンタをリセットする(ステップS109)。すなわち、CPU230は、“j=0”の処理を実行する。
次に、CPU230は、レイヤLjの“1”をカウントする(ステップS110)。具体的には、CPU230は、ステップS108により得られた演算結果のうち、レイヤLjに対応する演算結果を抽出する。そして、CPU230は、抽出した演算結果のうち、“1”データである演算結果の数をカウントして、カウント結果を読み出し電圧R5_SFTiのオンセル数のカウント結果として例えばRAM220に格納させる。
次に、CPU230は、第2のカウンタの数値が所定の数に達したか否かを確認する(ステップS111)。具体的には、CPU230は、“j==2”が満たされるか否かを確認する。なお、ステップS111における判定の数値は、メモリセルトランジスタMCの積層数に応じて変更され得る。
ステップS111において、“j==2”が満たされない場合に(ステップS111、NO)、CPU230は、第2のカウンタの数値をインクリメントして(ステップS112、j++)、ステップS110の処理に戻る。
ステップS111において、“j==2”が満たされる場合に(ステップS111、YES)、CPU230は、第1のカウンタの数値が所定の数に達したか否かを確認する(ステップS113)。具体的には、CPU230は、“i==5”が満たされるか否かを確認する。なお、ステップS113における判定の数値は、トラッキングリードにおけるシフトリードの実行回数に応じて変更され得る。
ステップS113において、“i==5”が満たされない場合に(ステップS113、NO)、CPU230は、第1のカウンタの数値をインクリメントして(ステップS114、i++)、ステップS102の処理に戻る。
ステップS113において、“i==5”が満たされる場合に(ステップS113、YES)、CPU230は、第2のカウンタをリセットする(ステップS115)。すなわち、CPU230は、“j=0”の処理を実行する。
次に、CPU230は、レイヤLjのR1最適値を検出する(ステップS116)。具体的には、CPU230は、レイヤLjに対応する複数のメモリセルトランジスタMCの読み出し電圧R1_SFT1~5のそれぞれのオンセル数のカウント結果に基づいて、レイヤLjにおける読み出し電圧R1の最適値を検出する。すなわち、CPU230は、レイヤLjにおける読み出し電圧R1の補正値を算出する。
次に、CPU230は、第2のカウンタの数値が所定の数に達したか否かを確認する(ステップS117)。具体的には、CPU230は、“j==2”が満たされるか否かを確認する。なお、ステップS111における判定の数値は、メモリセルトランジスタMCの積層数に応じて変更され得る。
ステップS117において、“j==2”が満たされない場合に(ステップS117、NO)、CPU230は、第2のカウンタの数値をインクリメントして(ステップS118、j++)、ステップS116の処理に戻る。
ステップS117において、“j==2”が満たされる場合に(ステップS117、YES)、CPU230は、第2のカウンタをリセットする(ステップS119)。すなわち、CPU230は、“j=0”の処理を実行する。
次に、CPU230は、レイヤLjのR5最適値を検出する(ステップS120)。具体的には、CPU230は、レイヤLjに対応する複数のメモリセルトランジスタMCの読み出し電圧R5_SFT1~5のそれぞれのオンセル数のカウント結果に基づいて、レイヤLjにおける読み出し電圧R5の最適値を検出する。すなわち、CPU230は、レイヤLjにおける読み出し電圧R5の補正値を算出する。
次に、CPU230は、第2のカウンタの数値が所定の数に達したか否かを確認する(ステップS121)。具体的には、CPU230は、“j==2”が満たされるか否かを確認する。なお、ステップS121における判定の数値は、メモリセルトランジスタMCの積層数に応じて変更され得る。
ステップS121において、“j==2”が満たされない場合に(ステップS121、NO)、CPU230は、第2のカウンタの数値をインクリメントして(ステップS122、j++)、ステップS120の処理に戻る。
ステップS121において、“j==2”が満たされる場合に(ステップS122、YES)、CPU230は、レイヤ別のトラッキングリードの処理を終了する(リターン)。すなわち、CPU230は、ステップS30の処理を完了してステップS31の処理に移行する。
なお、CPU230は、レイヤ毎のトラッキングリードを、図33を用いて説明された以外の方法を用いて実行してもよい。CPU230は、同様の結果が得られるのであれば、図33に示された処理の順番を適宜入れ替えてもよいし、その他の動作を活用してもよい。また、CPU230は、下位ページ以外のページに対しても同様に、レイヤ別のトラッキングリードを実行することができる。
図34は、第2実施形態に係るメモリシステム1のレイヤ毎のカウント対象の読み出しデータの一例を示すテーブルである。図34の上側に示されたテーブルの内容は、図19に示されたテーブルの内容と同様である。図34の下側は、カウント対象のレイヤと読み出しデータとの組み合わせを示している。
図34の下側に示すように、CPU230は、カウント対象のレイヤが“L0”である場合に、読み出しデータの出力順番が(1+k×3)(kは0以上の整数)番目である読み出しデータを抽出する。具体的には、CPU230は、レイヤL0のカウント対象の読み出しデータとして、データD0、D3、D6、D9、D12、D15、D18、D21、…、を抽出する。
CPU230は、カウント対象のレイヤが“L1”である場合に、読み出しデータの出力順番が(2+k×3)番目である読み出しデータを抽出する。具体的には、CPU230は、レイヤL1のカウント対象の読み出しデータとして、データD1、D4、D7、D10、D13、D16、D19、D22、…、を抽出する。
CPU230は、カウント対象のレイヤが“L2”である場合に、読み出しデータの出力順番が(3+k×3)番目である読み出しデータを抽出する。具体的には、CPU230は、レイヤL2のカウント対象の読み出しデータとして、データD2、D5、D8、D11、D14、D17、D20、D23、…、を抽出する。
このように、CPU230は、データの出力順番に応じてレイヤ毎の読み出しデータを抽出することによって、ステップS105及びS110のそれぞれの処理を実行することができる。すなわち、CPU230は、レイヤ毎の所定のビットの数を数えることができる。
(最適値リード)
図35は、第2実施形態に係るメモリシステム1のレイヤ毎の最適値リードの処理の一例を示すフローチャートである。図35は、レイヤ毎の最適値リードが下位ページを対象として実行された場合の動作の具体例を示している。CPU230は、トラッキングリードの処理に、例えば、第2のカウンタを使用する。以下では、第2のカウンタの数値を変数jと定義して説明する。
図35は、第2実施形態に係るメモリシステム1のレイヤ毎の最適値リードの処理の一例を示すフローチャートである。図35は、レイヤ毎の最適値リードが下位ページを対象として実行された場合の動作の具体例を示している。CPU230は、トラッキングリードの処理に、例えば、第2のカウンタを使用する。以下では、第2のカウンタの数値を変数jと定義して説明する。
図35に示すように、図32のステップS31のレイヤ毎のトラッキングリードが開始すると、CPU230は、第2のカウンタをリセットする(ステップS200)。すなわち、CPU230は、“j=0”の処理を実行する。第2のカウンタの数値は、メモリセルトランジスタMCのレイヤ位置を示している。
次に、CPU230は、ワード線WLnを選択し、且つレイヤLjのR1最適値とR5最適値とを用いたシフトリードをメモリデバイス100に実行させ、メモリデバイス100から受信したシフトリードの結果をRAM220に格納させる(ステップS201)。
次に、CPU230は、読み出しデータの出力順番に応じて、ステップS102により得られたシフトリードの結果からレイヤLjの読み出し結果を抽出する(ステップS202)。
次に、CPU230は、ステップS202により抽出された読み出し結果を合成する(ステップS203)。読み出し結果の合成方法の詳細については後述する。
次に、CPU230は、第2のカウンタの数値が所定の数に達したか否かを確認する(ステップS204)。具体的には、CPU230は、“j==2”が満たされるか否かを確認する。なお、ステップS204における判定の数値は、メモリセルトランジスタMCの積層数に応じて変更され得る。
ステップS204において、“j==2”が満たされない場合に(ステップS204、NO)、CPU230は、第2のカウンタの数値をインクリメントして(ステップS205、j++)、ステップS201の処理に戻る。
ステップS204において、“j==2”が満たされる場合に(ステップS204、YES)、CPU230は、レイヤ別の最適値リードの処理を終了する(リターン)。すなわち、CPU230は、ステップS31の処理を完了してステップS32の処理に移行する。
なお、CPU230は、レイヤ毎の最適値リードを、図35を用いて説明された以外の方法を用いて実行してもよい。CPU230は、同様の結果が得られるのであれば、図35に示された処理の順番を適宜入れ替えてもよいし、その他の動作を活用してもよい。また、CPU230は、下位ページ以外のページに対しても同様に、レイヤ別の最適値リードを実行することができる。
図36は、第2実施形態に係るメモリシステム1の読み出し動作で合成される読み出しデータの一例を示すテーブルである。図36は、最適値リードの対象の各レイヤにおいて、出力信号(信号DQ[7:0])に割り当てられた最初の8ビットの読み出しデータを示している。レイヤL0の読み出しデータには、“_L0”が付加されている。レイヤL1の読み出しデータには、“_L1”が付加されている。レイヤL2の読み出しデータには、“_L2”が付加されている。合成データは、ステップS203においてCPU230が合成する読み出し結果の組み合わせである。図36に示すように、CPU230は、最適値リードの読み出し結果を合成する。
本例では、読み出しデータの出力順番が(1+k×3)(kは0以上の整数)番目である読み出しデータがレイヤL0に対応する。このため、CPU230は、レイヤL0の最適値リードの読み出し結果から、データD0_L0、データD3_L0、データD6_L0、…を抽出して、合成データに格納する。
本例では、読み出しデータの出力順番が(2+k×3)番目である読み出しデータがレイヤL1に対応する。このため、CPU230は、レイヤL1の最適値リードの読み出し結果から、データD1_L1、データD4_L1、データD7_L1、…を抽出して、合成データに格納する。
本例では、読み出しデータの出力順番が(3+k×3)番目である読み出しデータがレイヤL2に対応する。このため、CPU230は、レイヤL2の最適値リードの読み出し結果から、データD2_L2、データD5_L2、…を抽出して、合成データに格納する。
CPU230は、上述したように合成データを生成し、ECC回路260が、生成された合成データを参照して、硬判定復号処理S32を実行する。なお、CPU230は、読み出し電圧の補正値が同じである複数のレイヤが存在する場合に、当該複数のレイヤに対する最適値リードを統合して実行してもよい。この場合、CPU230が実行する最適値リードの回数が、メモリセルトランジスタMCの積層数よりも少なくなる。
また、CPU230は、バッファメモリ240に格納されたトラッキングリードのデータから、最適値リードと同じ読み出し電圧を用いた結果を抽出してもよい。この場合、CPU230は、最適値リードの実行回数を減らすことができ、リトライシーケンスの処理を高速化させることができる。
[2-2]第2実施形態の効果
以上で説明されたように、第2実施形態に係るメモリシステム1は、リトライシーケンスにおいて、レイヤ毎の読み出し電圧の最適値を探索するトラッキングリードと、検出した最適値を用いたレイヤ毎の最適値リードとを実行する。これにより、第2実施形態に係るメモリシステム1は、通常の読み出し動作において読み出すことができなかったページのデータを、通常の読み出し動作よりも正確に読み出すことができ、高確率でエラーを訂正することができる。その結果、第2実施形態に係るメモリシステム1は、フェイルビット数FBCが増加したページのデータを救済することができ、メモリシステム1が記憶するデータの信頼性を向上させることができる。
以上で説明されたように、第2実施形態に係るメモリシステム1は、リトライシーケンスにおいて、レイヤ毎の読み出し電圧の最適値を探索するトラッキングリードと、検出した最適値を用いたレイヤ毎の最適値リードとを実行する。これにより、第2実施形態に係るメモリシステム1は、通常の読み出し動作において読み出すことができなかったページのデータを、通常の読み出し動作よりも正確に読み出すことができ、高確率でエラーを訂正することができる。その結果、第2実施形態に係るメモリシステム1は、フェイルビット数FBCが増加したページのデータを救済することができ、メモリシステム1が記憶するデータの信頼性を向上させることができる。
[3]第3実施形態
第3実施形態に係るメモリシステム1は、第1実施形態に係るメモリシステム1と同様のハードウェア構成を有する。第3実施形態は、第1実施形態で説明されたリトライシーケンスの第2の例に関する。以下に、第3実施形態に係るメモリシステム1について、第1及び第2実施形態と異なる点を説明する。
第3実施形態に係るメモリシステム1は、第1実施形態に係るメモリシステム1と同様のハードウェア構成を有する。第3実施形態は、第1実施形態で説明されたリトライシーケンスの第2の例に関する。以下に、第3実施形態に係るメモリシステム1について、第1及び第2実施形態と異なる点を説明する。
[3-1]動作
第3実施形態に係るメモリシステム1は、リトライシーケンスにおいて、第1軟判定復号処理を実行する。第1軟判定復号処理は、ハードビットデータと2種類のソフトビットデータ(-Δのソフトビットデータと+Δのソフトビットデータ)とを用いた軟判定復号処理である。以下に、第3実施形態におけるリトライシーケンスと、第1軟判定復号処理とのそれぞれの詳細について順に説明する。
第3実施形態に係るメモリシステム1は、リトライシーケンスにおいて、第1軟判定復号処理を実行する。第1軟判定復号処理は、ハードビットデータと2種類のソフトビットデータ(-Δのソフトビットデータと+Δのソフトビットデータ)とを用いた軟判定復号処理である。以下に、第3実施形態におけるリトライシーケンスと、第1軟判定復号処理とのそれぞれの詳細について順に説明する。
[3-1-1]リトライシーケンス
図37は、第3実施形態に係るメモリシステムのリトライシーケンスの一例を示すフローチャートである。
図37は、第3実施形態に係るメモリシステムのリトライシーケンスの一例を示すフローチャートである。
図37に示すように、ステップS16のリトライシーケンスが開始すると、CPU230は、第2実施形態と同様に、レイヤ毎のトラッキングリードを実行する(ステップS30)。次に、CPU230は、第2実施形態と同様に、レイヤ毎の最適値リードを実行する(ステップS31)。そして、CPU230は、第2実施形態と同様に、最適値リードの読み出し結果に対するエラー訂正処理(硬判定復号処理)をECC回路260に実行させる(ステップS32)。
ステップS32においてエラー訂正が成功した場合(ステップS33、YES)、CPU230は、当該ページの読み出し動作の結果を“読み出しパス”として(ステップS34)、リトライシーケンスを終了する(リターン)。
ステップS32においてエラー訂正が失敗した場合(ステップS33、NO)、CPU230は、レイヤ毎の第1ソフトビットデータ生成処理を実行する(ステップS40)。そして、CPU230は、ステップS30の読み出し結果と、ステップS40の読み出し結果とを用いて、第1軟判定復号処理を実行する(ステップS41)。レイヤ毎の第1ソフトビットデータ生成処理と第1軟判定復号処理とのそれぞれの詳細については後述する。
ステップS42においてエラー訂正が成功した場合(ステップS42、YES)、CPU230は、当該ページの読み出し動作の結果を“読み出しパス”として(ステップS34)、リトライシーケンスを終了する(リターン)。
ステップS42においてエラー訂正が失敗した場合(ステップS42、NO)、CPU230は、当該ページの読み出し動作の結果を“読み出しフェイル”として(ステップS35)、リトライシーケンスを終了する(リターン)。
[3-1-2]レイヤ毎の第1ソフトビットデータ生成処理
図38は、第3実施形態に係るメモリシステムのレイヤ毎の第1ソフトビットデータ生成処理の一例を示すフローチャートである。図38は、レイヤ毎の第1ソフトビットデータ生成処理が下位ページを対象として実行された場合の動作の具体例を示している。CPU230は、トラッキングリードの処理に、例えば、第2のカウンタを使用する。以下では、第2のカウンタの数値を変数jと定義して説明する。
図38は、第3実施形態に係るメモリシステムのレイヤ毎の第1ソフトビットデータ生成処理の一例を示すフローチャートである。図38は、レイヤ毎の第1ソフトビットデータ生成処理が下位ページを対象として実行された場合の動作の具体例を示している。CPU230は、トラッキングリードの処理に、例えば、第2のカウンタを使用する。以下では、第2のカウンタの数値を変数jと定義して説明する。
図38に示すように、ステップS40のレイヤ毎の第1ソフトビットデータ生成処理が開始すると、CPU230は、第2のカウンタをリセットする(ステップS300)。すなわち、CPU230は、“j=0”の処理を実行する。第2のカウンタの数値は、メモリセルトランジスタMCのレイヤ位置を示している。
次に、CPU230は、ワード線WLnを選択し、且つレイヤLjのR1最適値-ΔとレイヤLjのR5最適値-Δとを用いたシフトリードをメモリデバイス100に実行させ、メモリデバイス100から受信したシフトリードの結果をRAM220に格納させる(ステップS301)。“R1最適値-Δ”は、ステップS30により算出されたレイヤLjの読み出し電圧R1の最適値から、所定の値(Δ)を減算した読み出し電圧である。“R5最適値-Δ”は、ステップS30により算出されたレイヤLjの読み出し電圧R5の最適値から、所定の値(Δ)を減算した読み出し電圧である。なお、読み出し電圧R1から差し引かれる所定の値と、読み出し電圧R5から差し引かれる所定の値とは、同じであってもよいし、異なっていても良い。
次に、CPU230は、ステップS301のシフトリードによる読み出し結果から、レイヤLjの読み出し結果を抽出する(ステップS302)。具体的には、CPU230は、図19を用いて説明されたように、読み出しデータの出力順番に応じて、レイヤLjに対応するメモリセルトランジスタMCの読み出し結果を抽出する。
次に、CPU230は、-Δの読み出し結果を合成する(ステップS303)。この-Δの読み出し結果の合成方法は、例えば、図36を用いて説明された方法と同様である。
次に、CPU230は、第2のカウンタの数値が所定の数に達したか否かを確認する(ステップS304)。具体的には、CPU230は、“j==2”が満たされるか否かを確認する。なお、ステップS304における判定の数値は、メモリセルトランジスタMCの積層数に応じて変更され得る。
ステップS304において、“j==2”が満たされない場合に(ステップS304、NO)、CPU230は、第2のカウンタの数値をインクリメントして(ステップS305、j++)、ステップS301の処理に戻る。
ステップS304において、“j==2”が満たされる場合に(ステップS304、YES)、CPU230は、第2のカウンタをリセットする(ステップS306)。すなわち、CPU230は、“j=0”の処理を実行する。
次に、CPU230は、ワード線WLnを選択し、且つレイヤLjのR1最適値+ΔとレイヤLjのR5最適値+Δとを用いたシフトリードをメモリデバイス100に実行させ、メモリデバイス100から受信したシフトリードの結果をRAM220に格納させる(ステップS307)。“R1最適値+Δ”は、ステップS30により算出されたレイヤLjの読み出し電圧R1の最適値から、所定の値(Δ)を加算した読み出し電圧である。“R5最適値+Δ”は、ステップS30により算出されたレイヤLjの読み出し電圧R5の最適値から、所定の値(Δ)を加算した読み出し電圧である。なお、読み出し電圧R1に加算される所定の値と、読み出し電圧R5に加算される所定の値とは、同じであってもよいし、異なっていても良い。
次に、CPU230は、ステップS307のシフトリードによる読み出し結果から、レイヤLjの読み出し結果を抽出する(ステップS302)。具体的には、CPU230は、図19を用いて説明されたように、読み出しデータの出力順番に応じて、レイヤLjに対応するメモリセルトランジスタMCの読み出し結果を抽出する。
次に、CPU230は、+Δの読み出し結果を合成する(ステップS303)。この+Δの読み出し結果の合成方法は、例えば、図36を用いて説明された方法と同様である。
次に、CPU230は、第2のカウンタの数値が所定の数に達したか否かを確認する(ステップS310)。具体的には、CPU230は、“j==2”が満たされるか否かを確認する。なお、ステップS310における判定の数値は、メモリセルトランジスタMCの積層数に応じて変更され得る。
ステップS310において、“j==2”が満たされない場合に(ステップS310、NO)、CPU230は、第2のカウンタの数値をインクリメントして(ステップS311、j++)、ステップS307の処理に戻る。
ステップS311において、“j==2”が満たされる場合に(ステップS310、YES)、CPU230は、レイヤ毎の第1ソフトビットデータ生成処理を終了する(リターン)。すなわち、CPU230は、ステップS40の処理を完了してステップS41の処理に移行する。
レイヤ毎の第1ソフトビットデータ生成処理において、ステップS303の繰り返しにより合成された読み出し結果が-Δのソフトビットに対応し、ステップS309の繰り返しにより合成された読み出し結果が+Δのソフトビットに対応している。なお、CPU230は、レイヤ毎の第1ソフトビットデータ生成処理を、図38を用いて説明された以外の方法を用いて実行してもよい。CPU230は、同様の結果が得られるのであれば、図38に示された処理の順番を適宜入れ替えてもよいし、その他の動作を活用してもよい。また、CPU230は、下位ページ以外のページに対しても同様に、レイヤ毎の第1ソフトビットデータ生成処理を実行することができる。
[3-1-3]第1軟判定復号処理
第3実施形態において、メモリコントローラ200内のRAM220は、対数尤度比(Log Likelihood Ratio:LLR)テーブルを格納している。対数尤度比テーブル(以下、LLRテーブルと呼ぶ)は、軟判定復号処理においてECC回路260により参照される。LLRテーブルは、メモリセルトランジスタMCが有し得る閾値電圧の範囲が複数の範囲に分割された場合における分割された各範囲と、対数尤度比(LLR)値との関係を保持する。LLR値は、ある読み出し電圧により読み出されたデータの信頼度(確からしさ)を示し、事前評価によって確定される。
第3実施形態において、メモリコントローラ200内のRAM220は、対数尤度比(Log Likelihood Ratio:LLR)テーブルを格納している。対数尤度比テーブル(以下、LLRテーブルと呼ぶ)は、軟判定復号処理においてECC回路260により参照される。LLRテーブルは、メモリセルトランジスタMCが有し得る閾値電圧の範囲が複数の範囲に分割された場合における分割された各範囲と、対数尤度比(LLR)値との関係を保持する。LLR値は、ある読み出し電圧により読み出されたデータの信頼度(確からしさ)を示し、事前評価によって確定される。
図39は、第3実施形態に係るメモリシステム1におけるLLRテーブルの設定の一例を示す模式図である。図39は、下位ページに対する第1軟判定復号処理において、2種類のソフトビットデータ(-ΔのソフトビットデータSB1と+ΔのソフトビットデータSB2)が利用される場合のLLRテーブルの一例を示している。尚、各LLRテーブルにおけるデータの割り付けやLLR値は、あくまで一例である。LLR値は、設定されたソフトビットの読み出し電圧を用いた事前評価によって予め設定された値であればよい。
図39に示された一例では、-ΔのソフトビットデータSB1の読み出し電圧として、R1_M及びR5_Mが設定され、+ΔのソフトビットデータSB1の読み出し電圧として、R1_P及びR5_Pが設定されている。ワンレベルリードの読み出し電圧として、読み出し電圧R3が設定されている。そして、本例では、下位ページのLLR値が、ワンレベルリードのビットデータOBと、下位ページのハードビットデータHBと、+Δ及び-ΔのソフトビットデータSB1及びSB2とに基づいて決定される。以下に、本LLRテーブルのデータの割り付けとLLR値の一例を羅列する。
(例)“ワンレベルリードのビットデータOB/下位ページのハードビットデータHB/-ΔのソフトビットデータSB1/+ΔのソフトビットデータSB2”:“LLR値”
“1111”:“-Na”
“1101”:“-Nb”
“1001”:“Nb”
“1000”:“Na”
“0000”:“Na”
“0010”:“Nb”
“0110”:“-Nb”
“0111”:“-Na”
“1111”:“-Na”
“1101”:“-Nb”
“1001”:“Nb”
“1000”:“Na”
“0000”:“Na”
“0010”:“Nb”
“0110”:“-Nb”
“0111”:“-Na”
このように、本LLRテーブルでは、ワンレベルリードのビットデータOBと下位ページのハードビットデータHBと-Δ及び+ΔのソフトビットデータSB1及びSB2との組み合わせが、8種類形成される。そして、形成された8種類の組み合わせのそれぞれに対して、それぞれ下位ビットのLLR値が割り当てられる。
“Na”の絶対値は、“Nb”の絶対値よりも大きい。LLR値の絶対値の大きさは、ハードビット=“0”データであることの確からしさを示している。例えば、隣接している2つのステートで、LLR値の絶対値が小さいほど、誤読み出しされているビットの割合が低いことを示している。ECC回路260は、このようなLLRテーブルを用いることにより、下位ページデータの第1軟判定復号処理を実行することができる。
[3-2]第3実施形態の効果
以上で説明されたように、第3実施形態に係るメモリシステム1は、リトライシーケンスにおいて、第2実施形態で説明されたトラッキングリード及び最適値リードの後に、硬判定復号処理よりもエラー訂正能力が高い第1軟判定復号処理をレイヤ毎に実行する。これにより、第3実施形態に係るメモリシステム1は、第2実施形態よりも高確率でエラーを訂正することができ、フェイルビット数FBCが増加したページのデータを救済することができる。その結果、第3実施形態に係るメモリシステム1は、第2実施形態よりも、メモリシステム1が記憶するデータの信頼性を向上させることができる。
以上で説明されたように、第3実施形態に係るメモリシステム1は、リトライシーケンスにおいて、第2実施形態で説明されたトラッキングリード及び最適値リードの後に、硬判定復号処理よりもエラー訂正能力が高い第1軟判定復号処理をレイヤ毎に実行する。これにより、第3実施形態に係るメモリシステム1は、第2実施形態よりも高確率でエラーを訂正することができ、フェイルビット数FBCが増加したページのデータを救済することができる。その結果、第3実施形態に係るメモリシステム1は、第2実施形態よりも、メモリシステム1が記憶するデータの信頼性を向上させることができる。
[4]第4実施形態
第4実施形態に係るメモリシステム1は、第1実施形態に係るメモリシステム1と同様のハードウェア構成を有する。第4実施形態は、第1実施形態で説明されたリトライシーケンスの第3の例に関する。以下に、第4実施形態に係るメモリシステム1について、第1~第3実施形態と異なる点を説明する。
第4実施形態に係るメモリシステム1は、第1実施形態に係るメモリシステム1と同様のハードウェア構成を有する。第4実施形態は、第1実施形態で説明されたリトライシーケンスの第3の例に関する。以下に、第4実施形態に係るメモリシステム1について、第1~第3実施形態と異なる点を説明する。
[4-1]動作
第4実施形態に係るメモリシステム1は、リトライシーケンスにおいて、第2軟判定復号処理をさらに実行する。第2軟判定復号処理は、選択ワード線WLselと隣接したワード線WLの読み出し結果を用いた軟判定復号処理である。以下に、第3実施形態におけるリトライシーケンスと、第2軟判定復号処理とのそれぞれの詳細について順に説明する。
第4実施形態に係るメモリシステム1は、リトライシーケンスにおいて、第2軟判定復号処理をさらに実行する。第2軟判定復号処理は、選択ワード線WLselと隣接したワード線WLの読み出し結果を用いた軟判定復号処理である。以下に、第3実施形態におけるリトライシーケンスと、第2軟判定復号処理とのそれぞれの詳細について順に説明する。
[4-1-1]リトライシーケンス
図40は、第4実施形態に係るメモリシステムのリトライシーケンスの一例を示すフローチャートである。
図40は、第4実施形態に係るメモリシステムのリトライシーケンスの一例を示すフローチャートである。
図40に示すように、図20のステップS16のリトライシーケンスが開始すると、CPU230は、第2実施形態と同様に、レイヤ毎のトラッキングリードを実行する(ステップS30)。次に、CPU230は、第2実施形態と同様に、レイヤ毎の最適値リードを実行する(ステップS31)。そして、CPU230は、第2実施形態と同様に、最適値リードの読み出し結果に対するエラー訂正処理(硬判定復号処理)をECC回路260に実行させる(ステップS32)。
ステップS32においてエラー訂正が成功した場合(ステップS33、YES)、CPU230は、当該ページの読み出し動作の結果を“読み出しパス”として(ステップS34)、リトライシーケンスを終了する(リターン)。
ステップS32においてエラー訂正が失敗した場合(ステップS33、NO)、CPU230は、第3実施形態と同様に、レイヤ毎の第1ソフトビットデータ生成処理を実行する(ステップS40)。そして、CPU230は、第3実施形態と同様に、第1軟判定復号処理を実行する(ステップS41)。
ステップS42においてエラー訂正が成功した場合(ステップS42、YES)、CPU230は、当該ページの読み出し動作の結果を“読み出しパス”として(ステップS34)、リトライシーケンスを終了する(リターン)。
ステップS42においてエラー訂正が失敗した場合(ステップS42、NO)、CPU230は、第2ソフトビットデータ生成処理を実行する(ステップS50)。そして、CPU230は、ステップS30の読み出し結果と、ステップS40の読み出し結果と、ステップS50の読み出し結果とを用いて、第2軟判定復号処理を実行する(ステップS51)。第2ソフトビットデータ生成処理と第2軟判定復号処理とのそれぞれの詳細については後述する。
ステップS52においてエラー訂正が成功した場合(ステップS52、YES)、CPU230は、当該ページの読み出し動作の結果を“読み出しパス”として(ステップS34)、リトライシーケンスを終了する(リターン)。
ステップS52においてエラー訂正が失敗した場合(ステップS52、NO)、CPU230は、当該ページの読み出し動作の結果を“読み出しフェイル”として(ステップS35)、リトライシーケンスを終了する(リターン)。
[4-1-2]第2ソフトビットデータ生成処理
図41は、第4実施形態に係るメモリシステムの第2ソフトビットデータ生成処理の一例を示すフローチャートである。図41を用いて、第2ソフトビットデータ生成処理が下位ページを対象として実行された場合の動作の具体例について説明する。
図41は、第4実施形態に係るメモリシステムの第2ソフトビットデータ生成処理の一例を示すフローチャートである。図41を用いて、第2ソフトビットデータ生成処理が下位ページを対象として実行された場合の動作の具体例について説明する。
図41に示すように、ステップS50の第2ソフトビットデータ生成処理が開始すると、CPU230は、リトライシーケンスの対象であるワード線WLnと隣り合うワード線WL(n-1)を選択したワンレベルリードをメモリデバイス100に実行させ、メモリデバイス100から受信したワンレベルリードの結果をRAM220に格納させる(ステップS400)。このワンレベルリードで使用される読み出し電圧としては、例えば、図33のステップS100でワード線WLnを選択して実行されたワンレベルリードと同じ読み出し電圧が使用される。本例では、CPU230は、ステップS400のワンレベルリードに、読み出し電圧R3を使用する。
CPU230は、リトライシーケンスの対象であるワード線WLnと隣り合うワード線WL(n+1)を選択したワンレベルリードをメモリデバイス100に実行させ、メモリデバイス100から受信したワンレベルリードの結果をRAM220に格納させる(ステップS401)。このワンレベルリードで使用される読み出し電圧としては、例えば、ステップS100でワード線WLnを選択して実行されたワンレベルリードと同じ読み出し電圧が使用される。本例では、CPU230は、ステップS400と同様に、ステップS401のワンレベルリードに読み出し電圧R3を使用する。
ステップS400及びS401の処理が完了すると、CPU230は、第2ソフトビットデータ生成処理を終了する(リターン)。すなわち、CPU230は、ステップS50の処理を完了してステップS51の処理に移行する。なお、ワンレベルリードが実行される順番は、ステップS400及びS401の間で入れ替えられても良い。また、CPU230は、下位ページ以外のページに対しても同様に、第2ソフトビットデータ生成処理を実行することができる。
[4-1-3]第2軟判定復号処理
図42は、第4実施形態に係るメモリシステム1におけるLLRテーブルの設定の一例を示す模式図である。図42は、下位ページに対する第2軟判定復号処理において、第1軟判定復号処理で使用された2種類のソフトビットデータと、隣接ワード線WL(n-1)及びWL(n+1)のワンレベルリードのビットデータとが利用される場合のLLRテーブルの一例を示している。尚、各LLRテーブルにおけるデータの割り付けやLLR値は、あくまで一例である。LLR値は、設定されたソフトビットの読み出し電圧を用いた事前評価によって予め設定された値であればよい。
図42は、第4実施形態に係るメモリシステム1におけるLLRテーブルの設定の一例を示す模式図である。図42は、下位ページに対する第2軟判定復号処理において、第1軟判定復号処理で使用された2種類のソフトビットデータと、隣接ワード線WL(n-1)及びWL(n+1)のワンレベルリードのビットデータとが利用される場合のLLRテーブルの一例を示している。尚、各LLRテーブルにおけるデータの割り付けやLLR値は、あくまで一例である。LLR値は、設定されたソフトビットの読み出し電圧を用いた事前評価によって予め設定された値であればよい。
図42に示された一例では、下位ページのLLR値が、ワンレベルリードのビットデータOBと、下位ページのハードビットデータHBと、+Δ及び-ΔのソフトビットデータSB1及びSB2と、隣接ワード線WL(n-1)及びWL(n+1)のワンレベルリードのビットデータOBa及びOBbとに基づいて決定される。
以下では、説明を簡潔にするために、“ワンレベルリードのビットデータOB/下位ページのハードビットデータHB/-ΔのソフトビットデータSB1/+ΔのソフトビットデータSB2”が、“1001”である場合に着目して説明する。第2軟判定復号処理では、第1軟判定復号処理におけるデータの組み合わせ毎に、以下に羅列された隣接ワード線WL(n-1)及びWL(n+1)のワンレベルリードのビットデータOBa及びOBbの組み合わせが追加される。
(例)“ワード線WL(n-1)のワンレベルリードのビットデータOBa/ワード線WL(n+1)のワンレベルリードのビットデータOBb”:“LLR値”
“11”:“Nb1”
“10”:“Nb2”
“01”:“Nb3”
“00”:“Nb4”
“11”:“Nb1”
“10”:“Nb2”
“01”:“Nb3”
“00”:“Nb4”
このように、本LLRテーブルでは、第1軟判定復号処理におけるデータの組み合わせ毎に、4種類の組み合わせが追加される。そして、追加された4種類の組み合わせのそれぞれに対して、それぞれ下位ビットのLLR値が割り当てられる。例えば、絶対値の大きさが、“Nb1>Nb2=Nb3>Nb4”に設定される。例えば、隣接している2つのステートで、LLR値の絶対値が小さいほど、誤読み出しされているビットの割合が低いことを示している。ECC回路260は、このようなLLRテーブルを用いることにより、下位ページデータの第2軟判定復号処理を実行することができる。
[4-2]第4実施形態の効果
以上で説明されたように、第4実施形態に係るメモリシステム1は、リトライシーケンスにおいて、第3実施形態で説明された第1軟判定復号処理の後に、第1軟判定復号処理よりもエラー訂正能力が高い第2軟判定復号処理をレイヤ毎に実行する。これにより、第4実施形態に係るメモリシステム1は、第3実施形態よりも高確率でエラーを訂正することができ、フェイルビット数FBCが増加したページのデータを救済することができる。その結果、第4実施形態に係るメモリシステム1は、第3実施形態よりも、メモリシステム1が記憶するデータの信頼性を向上させることができる。
以上で説明されたように、第4実施形態に係るメモリシステム1は、リトライシーケンスにおいて、第3実施形態で説明された第1軟判定復号処理の後に、第1軟判定復号処理よりもエラー訂正能力が高い第2軟判定復号処理をレイヤ毎に実行する。これにより、第4実施形態に係るメモリシステム1は、第3実施形態よりも高確率でエラーを訂正することができ、フェイルビット数FBCが増加したページのデータを救済することができる。その結果、第4実施形態に係るメモリシステム1は、第3実施形態よりも、メモリシステム1が記憶するデータの信頼性を向上させることができる。
[5]第5実施形態
第5実施形態に係るメモリシステム1は、第1実施形態に係るメモリシステム1に対して、メモリセルトランジスタMCの積層数が異なる。そして、第5実施形態では、メモリセルトランジスタMCの積層位置と信号DQとの対応関係が固定される。以下に、第5実施形態に係るメモリシステム1について、第1~第4実施形態と異なる点を説明する。
第5実施形態に係るメモリシステム1は、第1実施形態に係るメモリシステム1に対して、メモリセルトランジスタMCの積層数が異なる。そして、第5実施形態では、メモリセルトランジスタMCの積層位置と信号DQとの対応関係が固定される。以下に、第5実施形態に係るメモリシステム1について、第1~第4実施形態と異なる点を説明する。
[5-1]構成
[5-1-1]メモリセルアレイ18の構成
図43は、第5実施形態に係るメモリシステム1が備えるメモリデバイス100に含まれたメモリセルアレイ18の構造の一例を示す斜視図である。図43は、1つのメモリユニットMU0に対応する積層体34を含む領域を表示している。図43に示すように、第5実施形態における積層体34は、第1実施形態における積層体34に対して、半導体層33-3と絶縁体層32-4とをさらに有している。半導体層33-3は、絶縁体層32-3の上に設けられる。半導体層33-3の上に、絶縁体層32-4が設けられる。つまり、第4実施形態における積層体34は、5層の絶縁体層32と、4層の半導体層33とを含む。以下では、半導体層33-0~33-3を含む配線層のことを、それぞれレイヤL0~L3と呼ぶ。
[5-1-1]メモリセルアレイ18の構成
図43は、第5実施形態に係るメモリシステム1が備えるメモリデバイス100に含まれたメモリセルアレイ18の構造の一例を示す斜視図である。図43は、1つのメモリユニットMU0に対応する積層体34を含む領域を表示している。図43に示すように、第5実施形態における積層体34は、第1実施形態における積層体34に対して、半導体層33-3と絶縁体層32-4とをさらに有している。半導体層33-3は、絶縁体層32-3の上に設けられる。半導体層33-3の上に、絶縁体層32-4が設けられる。つまり、第4実施形態における積層体34は、5層の絶縁体層32と、4層の半導体層33とを含む。以下では、半導体層33-0~33-3を含む配線層のことを、それぞれレイヤL0~L3と呼ぶ。
各メモリセル部MCPの半導体層33-0~33-3が、それぞれNANDストリングNS0~NS3に対応している。ビット線とNANDストリングNSとの間が、ビット線接続部BLCPの半導体層33とコンタクトプラグBCとを介して接続される。具体的には、コンタクトプラグBC0~BC3のそれぞれの底部が、それぞれ半導体層33-0~33-3と電気的に接続される。コンタクトプラグBC0~BC3のそれぞれの上面を介して、それぞれビット線BL0~BL3が電気的に接続される。各コンタクトプラグBCは、底部で電気的に接続された半導体層33以外の半導体層33と電気的に絶縁される。
コンタクトプラグSC0の側面又は底面が、メモリセル部MCP0の他端部分の半導体層33-0~33-3のそれぞれと電気的に接続される。コンタクトプラグSC1の側面又は底面が、メモリセル部MCP1の他端部分の半導体層33-0~33-3のそれぞれと電気的に接続される。コンタクトプラグSC0及びSC1のそれぞれの上面を介して、ソース線SLが電気的に接続される。積層体34の側面及び上面には、図示が省略されたトンネル絶縁膜、電荷蓄積層、及びブロック絶縁膜が積層される。また、メモリセル部MCPのコンタクトプラグSCが接続された部分とビット線接続部BLCPとの間に、選択ゲート線SGS、ワード線WL0~WL3、及び選択ゲート線SGDが、第1実施形態と同様に、ビット線接続部BLCP側に向かってこの順番に、並んで配置されている。
[5-1-2]センスアンプモジュール21及びデータレジスタ22の構成
図44は、第5実施形態に係るメモリシステム1が備えるメモリデバイス100に含まれたセンスアンプモジュール21及びデータレジスタ22の構成の一例を示すブロック図である。図44に示すように、第5実施形態のメモリデバイス100では、シーケンサ15が、メモリセルトランジスタMCのレイヤ数に合わせて、4種類の制御信号STB0~STB3を生成する。
図44は、第5実施形態に係るメモリシステム1が備えるメモリデバイス100に含まれたセンスアンプモジュール21及びデータレジスタ22の構成の一例を示すブロック図である。図44に示すように、第5実施形態のメモリデバイス100では、シーケンサ15が、メモリセルトランジスタMCのレイヤ数に合わせて、4種類の制御信号STB0~STB3を生成する。
具体的には、シーケンサ15が、レイヤL0~L3にそれぞれ関連付けられた制御信号STB0~STB3を生成する。そして、シーケンサ15は、制御信号STB0を、ビット線BL(k×4)に接続されたセンスアンプユニットSAU(k×4)のセンス回路SAに入力し、制御信号STB1を、ビット線BL(1+k×4)に接続されたセンスアンプユニットSAU(1+k×4)のセンス回路SAに入力し、制御信号STB2を、ビット線BL(2+k×4)に接続されたセンスアンプユニットSAU(2+k×4)のセンス回路SAに入力し、制御信号STB3を、ビット線BL(3+k×4)に接続されたセンスアンプユニットSAU(3+k×4)のセンス回路SAに入力する。第5実施形態に係るメモリシステム1のその他のハードウェア構成は、第1実施形態に係るメモリシステム1と同様である。
[5-2]動作
[5-2-1]信号DQとメモリセルアレイ18のレイヤとの関係
図45は、第5実施形態に係るメモリシステムの読み出し動作においてメモリデバイスからメモリコントローラに出力される出力信号の一例を示すテーブルである。図45は、読み出しデータの各出力サイクルにおいて、出力信号(信号DQ[7:0])に割り当てられた読み出しデータを示している。データD0~D39は、それぞれビット線BL0~BL39に接続されたメモリセルトランジスタMCから読み出されたデータを示している。
[5-2-1]信号DQとメモリセルアレイ18のレイヤとの関係
図45は、第5実施形態に係るメモリシステムの読み出し動作においてメモリデバイスからメモリコントローラに出力される出力信号の一例を示すテーブルである。図45は、読み出しデータの各出力サイクルにおいて、出力信号(信号DQ[7:0])に割り当てられた読み出しデータを示している。データD0~D39は、それぞれビット線BL0~BL39に接続されたメモリセルトランジスタMCから読み出されたデータを示している。
図45に示すように、読み出しデータの出力サイクルの1回目において、信号DQ0~DQ7には、データD0~D7がそれぞれ格納される。読み出しデータの出力サイクルの2回目において、信号DQ0~DQ7には、データD8~D15がそれぞれ格納される。読み出しデータの出力サイクルの3回目において、信号DQ0~DQ7には、データD16~D23がそれぞれ格納される。読み出しデータの出力サイクルの4回目において、信号DQ0~DQ7には、データD24~D31がそれぞれ格納される。読み出しデータの出力サイクルの5回目において、信号DQ0~DQ7には、データD32~D39がそれぞれ格納される。以降も同様に、メモリデバイス100からメモリコントローラ200にデータが出力される。
本例では、データD(k×4)(kは0以上の整数)が、レイヤL0に設けられたメモリセルトランジスタMCからの読み出しデータ、すなわちNANDストリングNS0に含まれたメモリセルトランジスタMCの読み出しデータに対応している。データD(1+k×4)が、レイヤL1に設けられたメモリセルトランジスタMCからの読み出しデータ、すなわちNANDストリングNS1に含まれたメモリセルトランジスタMCの読み出しデータに対応している。データD(2+k×4)が、レイヤL2に設けられたメモリセルトランジスタMCからの読み出しデータ、すなわちNANDストリングNS2に含まれたメモリセルトランジスタMCの読み出しデータに対応している。データD(3+k×4)が、レイヤL3に設けられたメモリセルトランジスタMCからの読み出しデータ、すなわちNANDストリングNS3に含まれたメモリセルトランジスタMCの読み出しデータに対応している。
このように、各読み出しデータが出力される信号DQの割り当ては、固定され得る。また、第5実施形態では、出力される読み出しデータとレイヤLとの対応関係が、レイヤL0~L3の順番で循環している。これにより、CPU230は、どの信号DQを介して受け取った読み出しデータであるかを把握することによって、当該読み出しデータがどのレイヤLに対応する読み出しデータであるのかを知ることができる。
[5-2-2]レイヤ毎の最適値算出
図46は、第5実施形態に係るメモリシステムのレイヤ毎のカウント対象の読み出しデータの一例を示すテーブルである。図46の上側に示されたテーブルの内容は、図45に示されたテーブルの内容と同様である。図46の下側は、カウント対象のレイヤと読み出しデータとの組み合わせを示している。
図46は、第5実施形態に係るメモリシステムのレイヤ毎のカウント対象の読み出しデータの一例を示すテーブルである。図46の上側に示されたテーブルの内容は、図45に示されたテーブルの内容と同様である。図46の下側は、カウント対象のレイヤと読み出しデータとの組み合わせを示している。
図46の下側に示すように、CPU230は、カウント対象のレイヤが“L0”である場合に、読み出しデータの出力順番が(1+k×4)(kは0以上の整数)番目である読み出しデータを抽出する。具体的には、CPU230は、レイヤL0のカウント対象の読み出しデータとして、データD0、D4、D8、D12、D16、D20、D24、D28、…、を抽出する。つまり、レイヤL0の読み出しデータが出力される経路が、信号DQ0又はDQ4に固定されている。
CPU230は、カウント対象のレイヤが“L1”である場合に、読み出しデータの出力順番が(2+k×4)番目である読み出しデータを抽出する。具体的には、CPU230は、レイヤL1のカウント対象の読み出しデータとして、データD1、D5、D9、D13、D17、D21、D25、D29、…、を抽出する。つまり、レイヤL1の読み出しデータが出力される経路が、信号DQ1又はDQ5に固定されている。
CPU230は、カウント対象のレイヤが“L2”である場合に、読み出しデータの出力順番が(3+k×4)番目である読み出しデータを抽出する。具体的には、CPU230は、レイヤL2のカウント対象の読み出しデータとして、データD2、D6、D10、D14、D18、D22、D26、D30、…、を抽出する。つまり、レイヤL2の読み出しデータが出力される経路が、信号DQ2又はDQ6に固定されている。
CPU230は、カウント対象のレイヤが“L3”である場合に、読み出しデータの出力順番が(4+k×4)番目である読み出しデータを抽出する。具体的には、CPU230は、レイヤL3のカウント対象の読み出しデータとして、データD3、D7、D11、D15、D19、D23、D27、D31、…、を抽出する。つまり、レイヤL3の読み出しデータが出力される経路が、信号DQ3又はDQ7に固定されている。
以上のように、CPU230は、データの出力順番に応じてレイヤ毎の読み出しデータを抽出することによって、レイヤ毎の読み出しデータを抽出することができる。また、第5実施形態では、メモリセルトランジスタMCのレイヤと信号DQとの関係が固定されている。これにより、CPU230は、信号DQ毎にデータを振り分けることによって、簡便にレイヤ毎の読み出しデータを収集することができる。
[5-2-3]最適値リード
図47は、第5実施形態に係るメモリシステムの読み出し動作で合成される読み出しデータの一例を示すテーブルである。図47は、最適値リードの対象の各レイヤにおいて、出力信号(信号DQ[7:0])に割り当てられた最初の8ビットの読み出しデータを示している。レイヤL0の読み出しデータには、“_L0”が付加されている。レイヤL1の読み出しデータには、“_L1”が付加されている。レイヤL2の読み出しデータには、“_L2”が付加されている。レイヤL3の読み出しデータには、“_L3”が付加されている。合成データは、レイヤ毎の最適値リードにおいてCPU230が合成する読み出し結果の組み合わせである。図47に示すように、CPU230は、最適値リードの読み出し結果を合成する。
図47は、第5実施形態に係るメモリシステムの読み出し動作で合成される読み出しデータの一例を示すテーブルである。図47は、最適値リードの対象の各レイヤにおいて、出力信号(信号DQ[7:0])に割り当てられた最初の8ビットの読み出しデータを示している。レイヤL0の読み出しデータには、“_L0”が付加されている。レイヤL1の読み出しデータには、“_L1”が付加されている。レイヤL2の読み出しデータには、“_L2”が付加されている。レイヤL3の読み出しデータには、“_L3”が付加されている。合成データは、レイヤ毎の最適値リードにおいてCPU230が合成する読み出し結果の組み合わせである。図47に示すように、CPU230は、最適値リードの読み出し結果を合成する。
本例では、読み出しデータの出力順番が(1+k×4)(kは0以上の整数)番目である読み出しデータがレイヤL0に対応する。このため、CPU230は、レイヤL0の最適値リードの読み出し結果から、データD0_L0、データD4_L0、…を抽出して、合成データに格納する。
本例では、読み出しデータの出力順番が(2+k×4)番目である読み出しデータがレイヤL1に対応する。このため、CPU230は、レイヤL1の最適値リードの読み出し結果から、データD1_L1、データD5_L1、…を抽出して、合成データに格納する。
本例では、読み出しデータの出力順番が(3+k×4)番目である読み出しデータがレイヤL2に対応する。このため、CPU230は、レイヤL2の最適値リードの読み出し結果から、データD2_L2、データD6_L2、…を抽出して、合成データに格納する。
本例では、読み出しデータの出力順番が(4+k×4)番目である読み出しデータがレイヤL3に対応する。このため、CPU230は、レイヤL3の最適値リードの読み出し結果から、データD3_L3、データD7_L3、…を抽出して、合成データに格納する。
CPU230は、上述したように合成データを生成し、ECC回路260が、生成された合成データを参照して、硬判定復号処理S32を実行する。なお、CPU230は、読み出し電圧の補正値が同じである複数のレイヤが存在する場合に、当該複数のレイヤに対する最適値リードを統合して実行してもよい。この場合、CPU230が実行する最適値リードの回数が、メモリセルトランジスタMCの積層数よりも少なくなる。
また、CPU230は、バッファメモリ240に格納されたトラッキングリードのデータから、最適値リードと同じ読み出し電圧を用いた結果を抽出してもよい。この場合、CPU230は、最適値リードの実行回数を減らすことができ、リトライシーケンスの処理を高速化させることができる。
[5-3]第5実施形態の効果
以上で説明されたように、第5実施形態に係るメモリシステム1は、メモリセルトランジスタMCの積層位置(レイヤ)と、信号DQ[7:0]との対応関係を固定する。これにより、第5実施形態に係るメモリシステム1は、第1~第4実施形態で説明された動作を実行する際のメモリコントローラ200の制御を簡便にすることができる。その結果、第5実施形態に係るメモリシステム1は、メモリコントローラ200の設計難易度を下げることができ、メモリシステム1の製造コストを抑制することができる。
以上で説明されたように、第5実施形態に係るメモリシステム1は、メモリセルトランジスタMCの積層位置(レイヤ)と、信号DQ[7:0]との対応関係を固定する。これにより、第5実施形態に係るメモリシステム1は、第1~第4実施形態で説明された動作を実行する際のメモリコントローラ200の制御を簡便にすることができる。その結果、第5実施形態に係るメモリシステム1は、メモリコントローラ200の設計難易度を下げることができ、メモリシステム1の製造コストを抑制することができる。
なお、メモリセルトランジスタMCの積層位置と、信号DQとの対応関係が固定されていれば、メモリセルトランジスタMCの積層数と信号DQの数とのそれぞれはその他の数であってもよい。このような場合においても、メモリシステム1は、第5実施形態で説明された効果を実現し得る。
[6]その他
上記実施形態において、CPU230は、レイヤ毎の補正値を用いた読み出し動作において、読み出し電圧毎に、レイヤ毎の補正値が適用された複数の読み出し電圧を順に印加して、レイヤ毎に判定処理を実行してもよい。例えば、シーケンサ15は、レイヤL0の補正値が適用された読み出し電圧R1と、レイヤL1の補正値が適用された読み出し電圧R1と、レイヤL2の補正値が適用された読み出し電圧R1とを順に選択ワード線WLselに印加させる。そして、シーケンサ15は、選択ワード線WLselにレイヤL0の補正値が適用された読み出し電圧R1が印加されている間に、制御信号STB0をアサートし、選択ワード線WLselにレイヤL1の補正値が適用された読み出し電圧R1が印加されている間に、制御信号STB1をアサートし、選択ワード線WLselにレイヤL2の補正値が適用された読み出し電圧R1が印加されている間に、制御信号STB2をアサートする。これにより、CPU230は、R1読み出しで、レイヤ毎に異なる補正値COLが適用された判定処理を実行し得る。CPU230は、その他の読み出し電圧についても同様に、レイヤ毎に異なる補正値COLが適用された判定動作を実行することができる。
上記実施形態において、CPU230は、レイヤ毎の補正値を用いた読み出し動作において、読み出し電圧毎に、レイヤ毎の補正値が適用された複数の読み出し電圧を順に印加して、レイヤ毎に判定処理を実行してもよい。例えば、シーケンサ15は、レイヤL0の補正値が適用された読み出し電圧R1と、レイヤL1の補正値が適用された読み出し電圧R1と、レイヤL2の補正値が適用された読み出し電圧R1とを順に選択ワード線WLselに印加させる。そして、シーケンサ15は、選択ワード線WLselにレイヤL0の補正値が適用された読み出し電圧R1が印加されている間に、制御信号STB0をアサートし、選択ワード線WLselにレイヤL1の補正値が適用された読み出し電圧R1が印加されている間に、制御信号STB1をアサートし、選択ワード線WLselにレイヤL2の補正値が適用された読み出し電圧R1が印加されている間に、制御信号STB2をアサートする。これにより、CPU230は、R1読み出しで、レイヤ毎に異なる補正値COLが適用された判定処理を実行し得る。CPU230は、その他の読み出し電圧についても同様に、レイヤ毎に異なる補正値COLが適用された判定動作を実行することができる。
第1実施形態において、ステップS11のパトロール読み出し(読み出し動作)のコマンドシーケンスとしては、例えば図16に示されたコマンドシーケンスが使用される。第1実施形態のステップS23や、第2実施形態のステップS102及びS201や、第3実施形態のステップS301等のシフトリードのコマンドシーケンスとしては、例えば図17に示されたコマンドシーケンスが使用される。第2実施形態のステップS100や、第4実施形態のステップS400等のワンレベルリードのコマンドシーケンスとしては、例えば図27に示されたコマンドシーケンスが使用される。
なお、読み出し動作、シフトリード、ワンレベルリードのそれぞれの説明に使用された各コマンドは、任意のコマンドに置き換えることが可能である。各動作で使用されるコマンドとしては、上記実施形態で説明された機能を有していれば、その他のコマンドが使用されてもよい。シフトリードやワンレベルリードのコマンドシーケンスにおいて、メモリデバイス100は、“XXh”、“ZZh”、“P0”、“P1”、“P2”、“P3”を受信した後に、一時的にビジー状態に遷移してもよい。
上記実施形態において、パトロール動作内の補正動作は、必ずしも全てのワード線WLに対して実行される必要は無く、少なくとも任意で設定した代表のワード線WLに対して実行されていればよい。この場合、補正動作が省略されたワード線WLに対応する読み出し電圧の補正値は、例えば代表のワード線WLに対する補正動作で得られた結果に基づいて決定される。一方で、パトロール読み出しによる不良検知は、例えば隣り合うワード線WL間のショート等の物理不良を検知することが目的であるため、全てのワード線WLに対して実行することが好ましい。
上記実施形態では、メモリシステム1がパトロール動作時のリトライシーケンスにおいてトラッキングリード、第1軟判定復号処理、第2軟判定復号処理を実行する場合について例示したが、これに限定されない。例えば、メモリシステム1は、ホストデバイス2からの指示に基づいた読み出し動作のリトライシーケンス時に、第2~第4実施形態で説明された動作を実行してもよい。
上記実施形態において、あるワード線WL選択したパトロール読み出しがページ単位で実行された場合に、エラー訂正に成功したページとエラー訂正に失敗したページとの両方が発生することがある。この場合にメモリシステム1は、エラー訂正に成功したページの補正値に基づいた補正値を用いて、エラー訂正に失敗したページに対するリトライシーケンスを実行しても良い。
第3及び第4実施形態では、ソフトビットデータの読み出し動作において、ソフトビットの読み出し電圧のシフト量が正方向及び負方向のそれぞれにおいて均一である場合について説明したが、これに限定されない。例えば、ソフトビットの読み出し電圧のシフト量の幅は、均一でなくても良い。ソフトビットデータの読み出し動作で使用される読み出し電圧は、事前評価に使用された電圧値であれば良く、LLRテーブルが区切られた閾値分布の領域毎に適切なLLR値が設定されていれば良い。
上記実施形態の補正動作において、読み出されたページデータと訂正されたページデータとは、例えばメモリコントローラ200が有するRAM220やバッファメモリ240に一時的に格納される。メモリコントローラ200は、一時的に格納されたこれらのページデータの差異、すなわちフェイルビット数をカウントするカウンタを備えていても良い。上記実施形態におけるメモリコントローラ200の各動作は、例えばCPU230がメモリコントローラ200内のROM(Read Only Memory)等に保持されたファームウェアを実行することによって実現されても良いし、専用の回路によって実現されても良い。
上記実施形態では、データの記憶方式にTLC方式が適用された場合について例示したが、これに限定されない。例えば、メモリセルトランジスタMTが1ビット、2ビット、又は4ビット以上のデータを記憶する場合においても、第1~第5実施形態のそれぞれで説明された動作が実行され得る。
本明細書において、“軟判定復号処理”は、LLRテーブルに基づいた読み出し動作を含めても良い。“最適値リード”は、補正動作により算出された隣り合う2つのステートの間の谷部分に相当する読み出し電圧が使用されることが好ましいが、少なくとも補正値が適用された読み出し動作であればよい。言い換えると、最適値リードは、第1実施形態の補正動作若しくは第2実施形態のトラッキングリードにより更新された補正値テーブルを参照した読み出し動作であればよい。
本明細書において“接続”とは、電気的に接続されている事を示し、例えば間に別の素子を介することを除外しない。“H”レベルとは、nチャネルMOSトランジスタがオン状態になり、pチャネルMOSトランジスタがオフ状態になる電圧のことを示している。“L”レベルとは、pチャネルMOSトランジスタがオン状態になり、nチャネルMOSトランジスタがオフ状態になる電圧のことを示している。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…メモリシステム、2…ホストデバイス、10…入出力回路、11…ロジック制御回路、12…ステータスレジスタ、13…アドレスレジスタ、14…コマンドレジスタ、15…シーケンサ、16…レディ/ビジー回路、17…電圧発生回路、18…メモリセルアレイ、19…ドライバモジュール、20…ロウデコーダモジュール、21…センスアンプモジュール、22…データレジスタ、23…カラムデコーダ、30…半導体基板、31…絶縁体層、32…絶縁体層、33…半導体層、34…積層体、35…トンネル絶縁膜、36…電荷蓄積層、37…ブロック絶縁膜、38…導電体層、39…絶縁体層、40…導電部材、41…導電体層、42…導電部材、43…導電体層、100…NAND型フラッシュメモリデバイス、200…メモリコントローラ、210…ホストインターフェイス回路、220…RAM、230…CPU、240…バッファメモリ、250…NANDインターフェイス回路、260…ECC回路、MCP…メモリセル部、BLCP…ビット線接続部、BC,SC…コンタクトプラグ、BLK…ブロック、MU…メモリユニット、SU…ストリングユニット、NS…NANDストリング、CU…セルユニット、MC…メモリセルトランジスタ、ST1,ST2…選択トランジスタ、WL…ワード線、BL…ビット線、SL…ソース線、SGD,SGS…選択ゲート線、SAU…センスアンプユニット、SA…センス回路、XDL,ADL,BDL,CDL,DDL…ラッチ回路、T0~T8,T10,T11,TR0~TR15…トランジスタ、CS…制御信号、DQ0~DQ7…信号、IO0~IO7…データバス、L0~L3…レイヤ、SB1,SB2…ソフトビットデータ、HB…ハードビットデータ
Claims (8)
- 基板の上方に積層された第1及び第2メモリセルと、前記第1及び第2メモリセルに接続された第1ワード線と、前記第1メモリセルに接続された第1ビット線と、前記第2メモリセルに接続された第2ビット線と、を含むメモリデバイスと、
前記第1メモリセルが設けられた第1層に関連付けられた読み出し電圧の第1補正値と、前記第2メモリセルが設けられた第2層に関連付けられた読み出し電圧の第2補正値とを格納する補正値テーブルを記憶する記憶回路を含み、前記メモリデバイスを制御するメモリコントローラと、を備え、
前記メモリコントローラが、
前記第1ワード線を選択して、第1ビットデータの集合である第1ページデータの読み出しを前記メモリデバイスに指示し、
前記メモリデバイスから読み出された第1ページデータに対して硬判定復号処理を実行し、
前記読み出された第1ページデータと前記硬判定復号処理により訂正された第1ページデータとに基づいて、前記第1層に最適化された読み出し電圧の第1シフト量と前記第2層に最適化された読み出し電圧の第2シフト量とを算出し、
前記第1シフト量と前記第2シフト量とに基づいて前記補正値テーブルの前記第1補正値と前記第2補正値とをそれぞれ更新する、
メモリシステム。 - 前記メモリコントローラは、
前記読み出された第1ページデータに含まれ且つ前記第1層に対応する第1データセットと、前記訂正された第1ページデータに含まれ且つ前記第1層に対応する第2データセットとに基づいて、第1組み合わせに対応するメモリセルの第1の数と、第2組み合わせに対応するメモリセルの第2の数とのそれぞれをカウントし、
前記読み出された第1ページデータに含まれ且つ前記第2層に対応する第3データセットと前記訂正された第1ページデータに含まれ且つ前記第2層に対応する第4データセットとに基づいて、前記第1組み合わせに対応するメモリセルの第3の数と、前記第2組み合わせに対応するメモリセルの第4の数とのそれぞれをカウントし、
前記第1シフト量の算出において、前記第1の数と前記第2の数との比に基づいて、読み出し電圧のシフト量の大きさ及びシフトする方向を決定し、
前記第2シフト量の算出において、前記第3の数と前記第4の数との比に基づいて、読み出し電圧のシフト量の大きさ及びシフトする方向を決定する、
請求項1に記載のメモリシステム。 - 基板の上方に積層された第1及び第2メモリセルと、前記第1及び第2メモリセルに接続された第1ワード線と、前記第1メモリセルに接続された第1ビット線と、前記第2メモリセルに接続された第2ビット線と、を含むメモリデバイスと、
前記第1メモリセルが設けられた第1層に関連付けられた読み出し電圧の第1補正値と、前記第2メモリセルが設けられた第2層に関連付けられた読み出し電圧の第2補正値とを格納する補正値テーブルを記憶する記憶回路を含み、前記メモリデバイスを制御するメモリコントローラと、を備え、
前記メモリコントローラが、
前記第1ワード線を選択して、第1ビットデータの集合である第1ページデータの読み出しを、互いに異なる読み出し電圧のシフト量で複数回、前記メモリデバイスに指示し、
前記複数回の読み出しにより前記メモリデバイスから受信した複数の第1ページデータに基づいて、前記第1層に最適化された読み出し電圧の第1シフト量と前記第2層に最適化された読み出し電圧の第2シフト量とを算出し、
前記第1ワード線を選択して、前記第1シフト量を適用した第1読み出し電圧を用いた前記第1ページデータの読み出しと、前記第2シフト量を適用した第2読み出し電圧を用いた前記第1ページデータの読み出しとを前記メモリデバイスに指示する、
メモリシステム。 - 前記メモリコントローラが、
前記第1読み出し電圧を用いて読み出された前記第1ページデータから、前記第1層に対応する第1データセットを抽出し、
前記第2読み出し電圧を用いて読み出された前記第1ページデータから、前記第2層に対応する第2データセットを抽出し、
前記第1データセットと、前記第2データセットとを組み合わせて、硬判定復号処理を実行する、
請求項3に記載のメモリシステム。 - 前記メモリコントローラが、
前記第1ワード線を選択して、前記第1読み出し電圧から負方向にシフトされた第3読み出し電圧を用いた前記第1ページデータの読み出しと、前記第1読み出し電圧から正方向にシフトされた第4読み出し電圧を用いた前記第1ページデータの読み出しとを、前記メモリデバイスに指示し、
前記第3読み出し電圧を用いて読み出された前記第1ページデータから、前記第1層に対応する第3データセットを抽出し、前記第4読み出し電圧を用いて読み出された前記第1ページデータから、前記第2層に対応する第4データセットを抽出し、前記第3データセットと、前記第4データセットとを組み合わせた第5データセットを生成し、
前記第1ワード線を選択して、前記第2読み出し電圧から負方向にシフトされた第5読み出し電圧を用いた前記第1ページデータの読み出しと、前記第2読み出し電圧から正方向にシフトされた第6読み出し電圧を用いた前記第1ページデータの読み出しとを、前記メモリデバイスに指示し、
前記第5読み出し電圧を用いて読み出された前記第1ページデータから、前記第1層に対応する第6データセットを抽出し、前記第6読み出し電圧を用いて読み出された前記第1ページデータから、前記第2層に対応する第7データセットを抽出し、前記第6データセットと、前記第7データセットとを組み合わせた第8データセットを生成し、
前記第1データセットと、前記第2データセットと、前記第5データセットと、前記第8データセットとを組み合わせたデータを用いて、第1の軟判定復号処理を実行する、
請求項4に記載のメモリシステム。 - 前記メモリデバイスが、
各々が前記第1ビット線に接続され、且つ前記基板の表面と平行な第1方向に前記第1メモリセルを挟んで設けられた第3及び第4メモリセルと、
各々が前記第2ビット線に接続され、且つ前記第1方向に前記第2メモリセルを挟んで設けられた第5及び第6メモリセルと、
前記第3及び第5メモリセルに接続された第2ワード線と、
前記第4及び第6メモリセルに接続された第3ワード線と、
をさらに含み、
前記メモリコントローラが、
前記第1ワード線を選択して、前記第1ページデータの読み出し電圧セットに含まれた第1電圧と第2電圧との間の第3電圧を用いた読み出しを前記メモリデバイスに指示し、
前記第2ワード線を選択して、第4電圧を用いた読み出しを前記メモリデバイスに指示し、
前記第3ワード線を選択して、第5電圧を用いた読み出しを前記メモリデバイスに指示し、
前記第1データセットと、前記第2データセットと、前記第5データセットと、前記第8データセットと、前記第3電圧を用いて読み出された第9データセットと、前記第4電圧を用いて読み出された第10データセットと、前記第5電圧を用いて読み出された第11データセットとを組み合わせたデータを用いて、第2の軟判定復号処理を実行する、
請求項5に記載のメモリシステム。 - 前記メモリコントローラは、前記メモリデバイスから読み出された前記第1ページデータのうち、第1の順番に受信したデータを前記第1層に対応するデータとみなし、第2の順番に受信したデータを前記第2層に対応するデータとみなす、
請求項1乃至請求項6のいずれか一項に記載のメモリシステム。 - 前記メモリデバイスと前記メモリコントローラとの間を接続し、各々がデータの送受信に使用される第1信号線及び第2信号線をさらに備え、
前記メモリデバイスから読み出された前記第1ページデータのうち、前記第1信号線を介して受信したデータを前記第1層に対応するデータとみなし、前記第2信号線を介して受信したデータを前記第2層に対応するデータとみなす、
請求項1乃至請求項6のいずれか一項に記載のメモリシステム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020157850A JP2022051399A (ja) | 2020-09-18 | 2020-09-18 | メモリシステム |
US17/202,432 US11776651B2 (en) | 2020-09-18 | 2021-03-16 | Controlling memory including managing a correction value table |
US18/453,567 US20230395178A1 (en) | 2020-09-18 | 2023-08-22 | Controlling memory including managing a correction value table |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020157850A JP2022051399A (ja) | 2020-09-18 | 2020-09-18 | メモリシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022051399A true JP2022051399A (ja) | 2022-03-31 |
Family
ID=80740805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020157850A Pending JP2022051399A (ja) | 2020-09-18 | 2020-09-18 | メモリシステム |
Country Status (2)
Country | Link |
---|---|
US (2) | US11776651B2 (ja) |
JP (1) | JP2022051399A (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220143446A (ko) * | 2021-04-16 | 2022-10-25 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
JP2023027622A (ja) * | 2021-08-17 | 2023-03-02 | キオクシア株式会社 | メモリデバイス及びメモリシステム |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2015037159A1 (ja) * | 2013-09-13 | 2017-03-02 | 株式会社東芝 | 半導体記憶装置及びメモリシステム |
US10158380B2 (en) | 2016-12-06 | 2018-12-18 | Sandisk Technologies Llc | ECC and read adjustment based on dynamic memory error model estimation |
KR20200016606A (ko) | 2018-08-07 | 2020-02-17 | 삼성전자주식회사 | 메모리 컨트롤러, 메모리 컨트롤러의 동작 방법 및 메모리 시스템 |
JP2020047312A (ja) | 2018-09-14 | 2020-03-26 | キオクシア株式会社 | メモリシステム |
JP7158965B2 (ja) | 2018-09-14 | 2022-10-24 | キオクシア株式会社 | メモリシステム |
JP2022041503A (ja) | 2020-09-01 | 2022-03-11 | キオクシア株式会社 | メモリシステム |
-
2020
- 2020-09-18 JP JP2020157850A patent/JP2022051399A/ja active Pending
-
2021
- 2021-03-16 US US17/202,432 patent/US11776651B2/en active Active
-
2023
- 2023-08-22 US US18/453,567 patent/US20230395178A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US11776651B2 (en) | 2023-10-03 |
US20230395178A1 (en) | 2023-12-07 |
US20220093199A1 (en) | 2022-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9792175B2 (en) | Bad column management in nonvolatile memory | |
JP5584595B2 (ja) | フラッシュメモリ装置及びそのプログラム方法 | |
US11188414B2 (en) | Memory system | |
JP6991084B2 (ja) | 不揮発性メモリデバイス及び制御方法 | |
US11955183B2 (en) | Memory device and method of reading data | |
US10706944B2 (en) | Memory controller for controlling memory device based on erase state information and method of operating the memory controller | |
US20160011970A1 (en) | Memory controller, storage device and memory control method | |
US20230395178A1 (en) | Controlling memory including managing a correction value table | |
US10803954B2 (en) | Memory system | |
TWI709971B (zh) | 半導體記憶體 | |
JP2011204298A (ja) | 不揮発性半導体メモリ | |
JP2020047337A (ja) | メモリシステム | |
US11107537B2 (en) | Memory device and method of reading data | |
US9502130B2 (en) | Semiconductor memory device | |
US10297338B2 (en) | Memory system | |
CN116110471A (zh) | 闪存设备及其数据恢复读取方法 | |
US9558815B2 (en) | Semiconductor storage device | |
US10078550B2 (en) | Memory system, error correction device, and error correction method | |
TWI777715B (zh) | 半導體記憶裝置 | |
US11798647B2 (en) | Apparatus and methods for determining memory cell data states | |
US11934701B2 (en) | Storage controller determining distribution type, method of operating the same, and method of operating storage device including the same | |
US20220076773A1 (en) | Memory system | |
JP5710815B1 (ja) | 半導体記憶装置 | |
TW202307859A (zh) | 記憶體系統 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200928 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20230106 |