(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025024438
(43)【公開日】2025-02-20
(54)【発明の名称】メモリシステム
(51)【国際特許分類】
G06F 12/00 20060101AFI20250213BHJP
G06F 12/02 20060101ALI20250213BHJP
G11C 16/08 20060101ALI20250213BHJP
G11C 16/26 20060101ALI20250213BHJP
H10B 43/27 20230101ALI20250213BHJP
H10B 41/27 20230101ALI20250213BHJP
H10D 30/68 20250101ALI20250213BHJP
【FI】
G06F12/00 560A
G06F12/00 550Z
G06F12/00 597U
G06F12/02 510A
G11C16/08 120
G11C16/26 100
H10B43/27
H10B41/27
H01L29/78 371
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2023128545
(22)【出願日】2023-08-07
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】高田 万里江
(72)【発明者】
【氏名】白川 政信
(72)【発明者】
【氏名】武田 奈穂美
(72)【発明者】
【氏名】山城 遼
(72)【発明者】
【氏名】武藤 庄吾
(72)【発明者】
【氏名】山田 英樹
【テーマコード(参考)】
5B160
5B225
5F083
5F101
【Fターム(参考)】
5B160AA13
5B160NA01
5B225BA08
5B225BA19
5B225CA14
5B225DA03
5B225DA10
5B225DD06
5B225DE20
5B225EA05
5B225FA01
5F083EP02
5F083EP18
5F083EP23
5F083EP33
5F083EP34
5F083EP76
5F083ER03
5F083ER09
5F083ER14
5F083ER19
5F083GA10
5F083KA01
5F083KA05
5F083KA11
5F083LA21
5F101BA01
5F101BA45
5F101BB05
5F101BC02
5F101BD16
5F101BD22
5F101BD30
5F101BD34
5F101BE02
5F101BE05
5F101BE06
(57)【要約】 (修正有)
【課題】処理能力を向上するメモリシステムを提供する。
【解決手段】メモリシステムは、メモリチップとメモリコントローラとを含む。第1、第2セルユニットCUは第1グループCU_Gr1に分類され、第3セルユニットCUは第2グループCU_Gr2に分類される。メモリコントローラは、第1グループのデータを読み出す際に、読み出し電圧の第1補正量を使用し、第2グループのデータを読み出す際に、読み出し電圧の第2補正量を使用し、第1セルユニットの書き込み動作を実行してから第2セルユニットの書き込み動作を実行するまでの時間差が基準値を超える場合、第1グループと第2グループとの境界位置を、第1セルユニットと第2セルユニットとの間に変更し且つ第2セルユニットを第2グループに分類する。
【選択図】
図14
【特許請求の範囲】
【請求項1】
各々が複数のメモリセルを含む複数のセルユニットを含むブロックを含むメモリチップと、
メモリコントローラと
を備え、
前記複数のセルユニットのうちの第1セルユニットと第2セルユニットとは第1グループに分類され、前記複数のセルユニットのうちの第3セルユニットは第2グループに分類され、
前記メモリコントローラは、
前記複数のセルユニットのうち前記第1グループに分類されるセルユニットの前記複数のメモリセルからデータを読み出す際に、読み出し電圧の第1補正量を使用し、
前記複数のセルユニットのうち前記第2グループに分類されるセルユニットの前記複数のメモリセルからデータを読み出す際に、前記読み出し電圧の第2補正量を使用し、
前記第1セルユニットの書き込み動作を実行してから前記第2セルユニットの前記書き込み動作を実行するまでの時間差が基準値を超える場合、前記第1グループと前記第2グループとの境界位置を、前記第1セルユニットと前記第2セルユニットとの間に変更し且つ前記第2セルユニットを前記第2グループに分類する
ように構成される、
メモリシステム。
【請求項2】
前記メモリコントローラは、前記ブロックにおいて、前記基準値を超える前記時間差の発生回数が、予め設定された設定値を超えた場合、次の前記書き込み動作において、別のブロックにデータを書き込むように構成される、
請求項1に記載のメモリシステム。
【請求項3】
前記ブロックは、前記第1グループ及び前記第2グループを含む複数のグループに分類され、
前記設定値の最大値は、前記ブロックに含まれる前記複数のグループの総数から1減算した値である、
請求項2に記載のメモリシステム。
【請求項4】
前記メモリコントローラは、前記第1セルユニットの前記書き込み動作を実行した後に、前記第2セルユニットへの前記書き込み動作を実行するように構成される、
請求項1に記載のメモリシステム。
【請求項5】
前記メモリコントローラは、前記複数のセルユニットのうちの前記第1グループに分類される第4セルユニットを前記第1補正量の算出に使用し、前記第3セルユニットを前記第2補正量の算出に使用するように構成される、
請求項1に記載のメモリシステム。
【請求項6】
前記複数のセルユニットのうちの第5セルユニット及び第6セルユニットは前記第2グループに分類され、
前記複数のセルユニットのうちの第7セルユニットは第3グループに分類され、
前記メモリコントローラは、
前記複数のセルユニットのうち前記第3グループに分類されるセルユニットの前記複数のメモリセルからデータを読み出す際に、前記読み出し電圧の第3補正量を使用し、
前記第5セルユニットの前記書き込み動作を実行してから前記第6セルユニットの前記書き込み動作を実行するまでの時間差が前記基準値を超える場合、前記第2グループと前記第3グループとの境界位置を、前記第5セルユニットと前記第6セルユニットとの間に変更し且つ前記第6セルユニットを前記第3グループに分類する
ように構成される、
請求項1に記載のメモリシステム。
【請求項7】
前記複数のセルユニットのうちの第8セルユニット、第9セルユニット、第10セルユニット、及び第11セルユニットは第3グループに分類され、
前記メモリコントローラは、
前記複数のセルユニットのうち前記第3グループに分類されるセルユニットの前記複数のメモリセルからデータを読み出す際に、前記第8セルユニットを用いて算出した前記読み出し電圧の第3補正量を使用し、
前記第9セルユニットの前記書き込み動作を実行してから前記第10セルユニットの前記書き込み動作を実行するまでの時間差が前記基準値を超える場合、前記第2グループと前記第3グループとの境界位置を、前記第9セルユニットと前記第10セルユニットとの間に変更し且つ前記第8セルユニット及び前記第9セルユニットを前記第2グループに分類し、前記第11セルユニットを前記第3補正量の算出に使用する
ように構成される、
請求項5に記載のメモリシステム。
【請求項8】
前記複数のセルユニットのうちの第12セルユニットは前記第1グループに分類され、
前記複数のセルユニットのうちの第13セルユニットは第3グループに分類され、
前記メモリコントローラは、
前記複数のセルユニットのうち前記第3グループに分類されるセルユニットの前記複数のメモリセルからデータを読み出す際に、前記第13セルユニットを用いて算出した前記読み出し電圧の第3補正量を使用し、
前記第2セルユニットの前記書き込み動作を実行してから前記第12セルユニットの前記書き込み動作を実行するまでの時間差が前記基準値を超える場合、前記第2グループと前記第3グループとの境界位置を、前記第2セルユニットと前記第12セルユニットとの間に変更し且つ前記第12セルユニットを前記第3グループに分類する
ように構成される、
請求項1に記載のメモリシステム。
【請求項9】
前記メモリコントローラは、前記第1セルユニットを前記第1補正量の算出に使用し、前記第2セルユニットを前記第2補正量の算出に使用し、前記第12セルユニットを前記第3補正量の算出に使用する、
請求項8に記載のメモリシステム。
【請求項10】
前記複数のセルユニットのうちの第14セルユニット及び第15セルユニットは前記第1グループに分類され、
前記メモリコントローラは、
前記第14セルユニットを前記第1補正量の算出に使用し、
前記時間差が前記基準値を超える場合、前記第1補正量の算出に使用するセルユニットを前記第14セルユニットから前記第15セルユニットに変更する
ように構成される、
請求項1に記載のメモリシステム。
【請求項11】
前記ブロックは、前記第1グループ及び前記第2グループを含む複数のグループに分類され、
前記メモリコントローラは、前記ブロックにおいて、前記基準値を超える前記時間差の発生回数が、予め設定された設定値を超えた場合、前記複数のグループに第4グループを追加するように構成される、
請求項1に記載のメモリシステム。
【請求項12】
前記複数のセルユニットのうちの第16セルユニットは前記第4グループに分類され、
前記メモリコントローラは、前記第4グループに対応する前記読み出し電圧の第4補正量の情報、前記第4グループの位置情報、及び前記第4補正量の算出に用いられる前記第16セルユニットの情報を作成するように構成される、
請求項11に記載のメモリシステム。
【請求項13】
各々が複数のメモリセルを含む複数のセルユニットを含むブロックを含むメモリチップと、
メモリコントローラと
を備え、
前記複数のセルユニットのうちの第1セルユニットは第1グループに分類され、前記複数のセルユニットのうちの第2セルユニットは第2グループに分類され、前記複数のセルユニットのうちの第3セルユニット、第4セルユニット、第5セルユニット、及び第6セルユニットは第3グループに分類され、
前記メモリコントローラは、
前記複数のセルユニットのうち前記第1グループに分類されるセルユニットの前記複数のメモリセルからデータを読み出す際に、読み出し電圧の第1補正量を使用し、
前記複数のセルユニットのうち前記第2グループに分類されるセルユニットの前記複数のメモリセルからデータを読み出す際に、前記読み出し電圧の第2補正量を使用し、
前記複数のセルユニットのうち前記第3グループに分類されるセルユニットの前記複数のメモリセルからデータを読み出す際に、前記読み出し電圧の第3補正量を使用し、
前記第4セルユニットの書き込み動作を実行してから前記第5セルユニットの前記書き込み動作を実行するまでの時間差が基準値を超える場合、前記第1グループと前記第2グループとの境界位置を、前記第4セルユニットと前記第5セルユニットとの間に変更し且つ前記第5セルユニットを前記第2グループに分類する
ように構成される、
メモリシステム。
【請求項14】
前記メモリコントローラは、前記第5セルユニットの前記書き込み動作を実行してから前記第6セルユニットの前記書き込み動作を実行するまでの時間差が前記基準値を超える場合、前記第2グループと前記第3グループとの境界位置を、前記第5セルユニットと前記第6セルユニットとの間に変更し且つ前記第6セルユニットを前記第3グループに分類するように構成される、
請求項13に記載のメモリシステム。
【請求項15】
前記メモリコントローラは、前記第5セルユニットを前記第2補正量の算出に使用し、前記第6セルユニットを前記第3補正量の算出に使用するように構成される、
請求項14に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、メモリシステムに関する。
【背景技術】
【0002】
メモリシステムとして、NAND型フラッシュメモリなどの不揮発性メモリデバイスを搭載したSSD(Solid State Drive)が知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許公開公報第2021/0326250号明細書
【特許文献2】米国特許第10048863号明細書
【特許文献3】米国特許公開公報第2020/0225852号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の一実施形態では、処理能力を向上できるメモリシステムを提供する。
【課題を解決するための手段】
【0005】
実施形態に係るメモリシステムは、各々が複数のメモリセルを含む複数のセルユニットを含むブロックを含むメモリチップと、メモリコントローラとを含む。複数のセルユニットのうちの第1セルユニットと第2セルユニットとは第1グループに分類され、複数のセルユニットのうちの第3セルユニットは第2グループに分類される。メモリコントローラは、複数のセルユニットのうち第1グループに分類されるセルユニットの複数のメモリセルからデータを読み出す際に、読み出し電圧の第1補正量を使用し、複数のセルユニットのうち第2グループに分類されるセルユニットの複数のメモリセルからデータを読み出す際に、読み出し電圧の第2補正量を使用し、メモリコントローラは、第1セルユニットの書き込み動作を実行してから第2セルユニットの書き込み動作を実行するまでの時間差が基準値を超える場合、第1グループと第2グループとの境界位置を、第1セルユニットと第2セルユニットとの間に変更し且つ第2セルユニットを第2グループに分類するように構成される。
【図面の簡単な説明】
【0006】
【
図1】第1実施形態に係るメモリシステムを含むデータ処理装置の全体構成の一例を示すブロック図。
【
図2】第1実施形態に係るメモリシステムに含まれるメモリチップの構成の一例を示すブロック図。
【
図3】第1実施形態に係るメモリシステムに含まれるバンクのメモリ領域の構成の一例を示す図。
【
図4】第1実施形態に係るメモリシステムがZNS対応メモリシステムである場合の不揮発性メモリのメモリ領域の構成の一例を示す図。
【
図5】第1実施形態に係るメモリシステムに含まれるメモリセルアレイの構成を示す回路図。
【
図6】第1実施形態に係るメモリシステムに含まれるメモリセルアレイ内のメモリセルトランジスタの閾値電圧分布の一例を示す模式図。
【
図7】第1実施形態に係るメモリシステムに含まれるブロックの一部領域であるNANDストリングの断面図。
【
図8】
図7のVI-VI線に沿ったメモリピラーの断面図。
【
図9】第1実施形態に係るメモリシステムに含まれる1つのブロックにおけるセルユニットグループの構成の一例を示す模式図。
【
図10】第1実施形態に係るメモリシステムにおけるVth情報の構成の一例を示すテーブル。
【
図11】第1実施形態に係るメモリシステムにおけるCU_Gr変換情報の一例を示すテーブル。
【
図12】第1実施形態に係るメモリシステムにおける書き込み動作の流れの一例を示すフローチャート。
【
図13】第1実施形態に係るメモリシステムにおけるCU_Gr変換情報の登録の流れの一例を示すフローチャート。
【
図14】第1実施形態に係るメモリシステムに含まれる1つのブロックにおける境界線移動の第1の具体例を示す模式図。
【
図15】第1実施形態に係るメモリシステムにおける境界線移動の第1の具体例において、CU_Gr変換情報の一例を示すテーブル。
【
図16】第1実施形態に係るメモリシステムに含まれる1つのブロックにおける境界線移動の第2の具体例を示す模式図。
【
図17】第1実施形態に係るメモリシステムにおける境界線移動の第2の具体例において、CU_Gr変換情報の一例を示すテーブル。
【
図18】第1実施形態の第1変形例に係るメモリシステムに含まれる1つのブロックにおけるセルユニットグループの構成の一例を示す模式図。
【
図19】第1実施形態の第1変形例に係るメモリシステムに含まれる1つのブロックにおける境界線移動の第1の具体例を示す模式図。
【
図20】第1実施形態の第1変形例に係るメモリシステムに含まれる1つのブロックにおける境界線移動の第2の具体例を示す模式図。
【
図21】第2実施形態に係るメモリシステムにおけるCU_Gr変換情報及びアンカー変換情報の一例を示すテーブル。
【
図22】第2実施形態に係るメモリシステムにおけるCU_Gr変換情報及びアンカー変換情報の登録の流れの一例を示すフローチャート。
【
図23】第2実施形態に係るメモリシステムに含まれる1つのブロックにおける境界線及びアンカー移動の第1の具体例を示す模式図。
【
図24】第2実施形態に係るメモリシステムにおける境界線及びアンカー移動の第1の具体例において、CU_Gr変換情報及びアンカー変換情報の一例を示すテーブル。
【
図25】第2実施形態に係るメモリシステムに含まれる1つのブロックにおける境界線及びアンカー移動の第2の具体例を示す模式図。
【
図26】第2実施形態に係るメモリシステムにおける境界線及びアンカー移動の第2の具体例において、Vth情報、CU_Gr変換情報、及びアンカー変換情報の一例を示すテーブル。
【
図27】第2実施形態に係るメモリシステムに含まれる1つのブロックにおける境界線及びアンカー移動の第3の具体例を示す模式図。
【
図28】第2実施形態に係るメモリシステムにおける境界線及びアンカー移動の第3の具体例において、Vth情報、CU_Gr変換情報、及びアンカー変換情報の一例を示すテーブル。
【
図29】第2実施形態に係るメモリシステムに含まれる1つのブロックにおける境界線及びアンカー移動の第4の具体例を示す模式図。
【
図30】第2実施形態に係るメモリシステムにおける境界線及びアンカー移動の第4の具体例において、Vth情報、CU_Gr変換情報、及びアンカー変換情報の一例を示すテーブル。
【
図31】第2実施形態の変形例に係るメモリシステムにおけるアンカー変換情報の登録の流れを示すフローチャート。
【
図32】第3実施形態に係るメモリシステムにおけるCU_Gr変換情報及びアンカー変換情報の登録の流れの一例を示すフローチャート。
【
図33】第3実施形態に係るメモリシステムに含まれる1つのブロックにおける境界線及びアンカー移動の具体例を示す模式図。
【
図34】第3実施形態に係るメモリシステムにおける境界線及びアンカー移動の具体例において、Vth情報、CU_Gr変換情報、及びアンカー変換情報の一例を示すテーブル。
【
図35】第3実施形態の変形例に係るメモリシステムにおけるアンカー変換情報の登録の流れを示すフローチャート。
【
図36】第4実施形態に係るメモリシステムにおけるセルユニットグループ及びアンカー追加の流れの一例を示すフローチャート。
【
図37】第4実施形態に係るメモリシステムに含まれる1つのブロックにおいてセルユニットグループ及びアンカーを追加する具体例を示す模式図。
【
図38】第4実施形態に係るメモリシステムにおけるセルユニットグループ及びアンカー追加の具体例において、Vth情報、CU_Gr変換情報、及びアンカー変換情報の一例を示すテーブル。
【
図39】第4実施形態の変形例に係るメモリシステムにおけるセルユニットグループ追加の流れを示すフローチャート。
【
図40】第4実施形態の変形例に係るメモリシステムに含まれる1つのブロックにおいてセルユニットグループを追加する具体例を示す模式図。
【
図41】第4実施形態の変形例に係るメモリシステムにおけるセルユニットグループ追加の具体例において、Vth情報、CU_Gr変換情報、及びアンカー変換情報の一例を示すテーブル。
【
図42】第5実施形態に係るメモリシステムにおけるパディングデータの挿入処理の流れの一例を示すフローチャート。
【
図43】第5実施形態に係るメモリシステムに含まれる1つのブロックにおいてパディングデータを挿入する具体例を示す模式図。
【
図44】第5実施形態の変形例に係るメモリシステムに含まれる1つのブロックにおいてパディングデータを挿入する具体例を示す模式図。
【
図45】第6実施形態に係るメモリシステムにおけるパディングデータの挿入処理及びアンカー変換情報の登録の流れの一例を示すフローチャート。
【
図46】第6実施形態に係るメモリシステムに含まれる1つのブロックにおいてパディングデータを挿入し且つアンカーを移動する具体例を示す模式図。
【
図47】第6実施形態に係るメモリシステムにおけるパディングデータ挿入及びアンカー移動の具体例において、Vth情報及びアンカー変換情報の一例を示すテーブル。
【発明を実施するための形態】
【0007】
以下に、実施形態について図面を参照して説明する。図面は模式的なものである。なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付す。参照符号を構成する文字の後の数字は、同じ文字を含んだ参照符号によって参照され、且つ同様の構成を有する要素同士を区別するために用いられている。同じ文字を含んだ参照符号で示される要素を相互に区別する必要がない場合、これらの要素は同じ文字のみを含んだ参照符号により参照される。
【0008】
以下に、実施形態に係るメモリシステムについて説明する。
【0009】
1 構成
1.1 情報処理装置の構成
1.1.1 データ処理装置の構成
まず、
図1を参照して、メモリシステムを含むデータ処理装置1の構成の一例について説明する。
図1は、データ処理装置1の全体構成の一例を示すブロック図である。
【0010】
図1に示すように、データ処理装置1は、ホストデバイス2及びメモリシステム3を含む。データ処理装置1は、複数のホストデバイス2または複数のメモリシステム3を含み得る。データ処理装置1が複数のホストデバイス2及び複数のメモリシステム3を含む場合、1つのホストデバイス2に、複数のメモリシステム3が接続されていてもよい。また、1つのメモリシステム3に、複数のホストデバイス2が接続されていてもよい。
【0011】
ホストデバイス2は、メモリシステム3にアクセスする情報処理装置(コンピューティングデバイス)である。ホストデバイス2は、メモリシステム3を制御する。より具体的には、例えば、ホストデバイス2は、メモリシステム3にデータの書き込み動作または読み出し動作を要求(命令)する。
【0012】
メモリシステム3は、例えば、SSD(Solid State Drive)である。メモリシステム3は、ホストバスHBを介してホストデバイス2に接続される。本実施形態では、ホストデバイス2とメモリシステム3とを相互接続するための接続規格としてPCIe(Peripheral Component Interconnect Express)(登録商標)を適用し、通信プロトコルとしてNVMe(Non Volatile Memory Express)(登録商標)を適用する場合について説明する。本実施形態のメモリシステム3は、NVMe規格の1つであるZNS(Zoned Namespace)に対応してもよいし(以下、「ZNS対応メモリシステム」と表記する)、ZNSに対応しなくてもよい(以下、「ZNS非対応メモリシステム」と表記する)。メモリシステム3がZNS対応メモリシステムである場合、メモリシステム3は、ホストデバイス2から受信した論理アドレスと不揮発性メモリの物理アドレスとを関連付けるFTL(Flash Translation Layer)としての機能を有していない。この場合、ホストデバイス2は、メモリ領域において、ゾーン毎にホットデータ(比較的アクセス頻度が高いデータ)またはコールドデータ(比較的アクセス頻度が低いデータ)を割り当てる。ゾーンは、不揮発性メモリ10の分割されたメモリ領域である。メモリシステム3は、ゾーン毎に書き込み動作あるいは消去動作等を実行する。例えば、メモリシステム3に複数のホストデバイス2が接続されている場合、各ホストデバイス2には、異なるゾーンが割り当てられる。
【0013】
例えば、メモリシステム3がZNS非対応メモリシステムである場合、メモリシステム3は、ガベージコレクション及びパディングデータの挿入処理を実行する。
【0014】
ガベージコレクションは、複数のブロックから有効データを読み出して、別のブロックに書き直す(コピーする)処理である。ガベージコレクションにより全ての有効データがコピーされたブロックは、消去可能な状態となる。例えば、不揮発性メモリ10におけるデータの消去動作は、「ブロック」と呼ばれるデータ領域毎に実行される。これに対し、データの書き込み動作及び読み出し動作は、「ページ」と呼ばれるデータ単位で実行される。ブロックは、複数のページを含む。従って、データの消去単位は、データの書き込み及び読み出しの単位と異なる。不揮発性メモリ10においてデータを書き換える場合、新しいデータは、別のページに書き込まれる。このため、データの書き換えが進むと、ブロック内に無効データが増加する。ブロック内に無効データが増えても有効データが1つでも残っていると、ブロックの消去動作が実行できない。例えば、消去可能なブロックの数が減少した場合、ガベージコレクションが実行される。
【0015】
パディングデータの挿入処理は、データを書き込み途中のブロック(「書き込みブロック」とも表記する)の未書き込みの領域にパディングデータ(無効データ)を書き込む処理である。例えば、書き込みブロックにおいて、前回(直近)の書き込み動作から次の書き込み動作までの時間が空いてしまう場合がある。以下の説明において、前回(直近)の書き込み動作から次の書き込み動作までの経過時間が予め設定された基準値を超えた場合、「時間差が発生した」と表記する。時間差が発生した前後のデータは、読み出し電圧の最適値が互いに異なる。このため、時間差発生後に書き込まれたデータを読み出すと、誤読み出しによるエラービットが増加する。エラービットの増加を抑制するため、時間差が発生した場合、書き込みブロックの未書き込み領域には有効データの書き込み動作が実行されず、パディングデータの挿入処理が実行される。この場合、次の書き込み動作では、別のブロックが選択される。
【0016】
これに対し、ZNS対応メモリシステムでは、ガベージコレクション及びパディングデータの挿入処理が実行されない。これにより、無効データの増加が抑制されるため、書き込み倍率(WAF:write amplification factor)の増加が抑制される。
【0017】
なお、接続規格としては、SCSI(Small Computer System Interface)、SAS(Serial Attached SCSI)、ATA(Advanced Technology Attachment)、SATA(Serial ATA)、Ethernet(登録商標)、Fibre channel等が使用され得る。
【0018】
1.1.2 メモリシステムの構成
引き続き、
図1を参照して、メモリシステム3の構成の一例について説明する。
【0019】
図1に示すように、メモリシステム3は、不揮発性メモリ10、揮発性メモリ20、及びメモリコントローラ30を含む。
【0020】
不揮発性メモリ10は、不揮発性の記憶媒体(半導体記憶装置)である。不揮発性メモリ10は、メモリコントローラ30から受信したデータを不揮発に記憶する。以下では、不揮発性メモリ10がNAND型フラッシュメモリである場合について説明する。なお、不揮発性メモリ10は、NAND型フラッシュメモリ以外の不揮発性の記憶媒体であってもよい。
【0021】
揮発性メモリ20は、揮発性の記憶媒体(半導体記憶装置)である。以下では、揮発性メモリ20がDRAM(Dynamic Random Access Memory)である場合について説明する。なお、揮発性メモリ20は、DRAM以外の揮発性の記憶媒体であってもよい。
【0022】
メモリコントローラ30は、例えば、SoC(System on a Chip)である。メモリコントローラ30は、ホストデバイス2からの要求(命令)に基づいて、不揮発性メモリ10に、読み出し動作、書き込み動作、及び消去動作等を命令する。また、メモリコントローラ30は、不揮発性メモリ10のメモリ領域を管理する。
【0023】
次に、不揮発性メモリ10の内部構成の一例について説明する。不揮発性メモリ10は、複数のメモリチップ11(単に「チップ」とも表記する)を含み得る。複数のメモリチップ11は、それぞれが独立して動作し得る。なお、不揮発性メモリ10が備えるメモリチップ11の個数は任意である。
【0024】
メモリチップ11は、例えば、NAND型フラッシュメモリが搭載された半導体チップである。なお、メモリチップ11は、他の不揮発性メモリであってもよい。メモリチップ11は、データを不揮発に記憶する。メモリチップ11は、NANDバスNBを介して、メモリコントローラ30と接続される。
【0025】
なお、NANDバスNBの本数及び1つのNANDバスNBに接続されるメモリチップ11の個数は任意である。
【0026】
次に、メモリコントローラ30の内部構成の一例について説明する。メモリコントローラ30は、制御回路31、バッファメモリ32、ホストインターフェース回路(ホストI/F)33、ECC(Error Checking and Correcting)回路34、NANDインターフェース回路(NAND I/F)35、読み出し電圧補正回路36、RAMインターフェース回路(RAM I/F)37、及び時間差タイマー38を含む。これらの回路は、例えばメモリコントローラ30の内部バスにより、互いに接続されている。なお、ホストインターフェース回路33、ECC回路34、NANDインターフェース回路35、読み出し電圧補正回路36、RAMインターフェース回路37、及び時間差タイマー38の各機能は、専用回路により実現されてもよいし、制御回路31がファームウェアを実行することにより実現されてもよい。
【0027】
制御回路31は、メモリコントローラ30の全体を制御する回路である。例えば、制御回路31は、バッファメモリ32、ホストインターフェース回路33、ECC回路34、NANDインターフェース回路35、読み出し電圧補正回路36、RAMインターフェース回路37、及び時間差タイマー38を制御する。制御回路31は、例えば、CPU(Central Processing Unit)のようなプロセッサ及びROM(Read Only Memory)を含む。例えば、制御回路31は、ホストデバイス2の要求に基づいて、不揮発性メモリ10(メモリチップ11)に書き込み動作、読み出し動作、及び消去動作を命令する。制御回路31は、不揮発性メモリ10を制御する。
【0028】
バッファメモリ32は、揮発性の半導体メモリである。バッファメモリ32は、メモリコントローラ30が不揮発性メモリ10から読み出したデータ及びホストデバイス2から受信したデータ等を一時的に記憶する。また、例えば、バッファメモリ32は、ブロック管理情報を記憶する。なお、ブロック管理情報は、揮発性メモリ20に記憶されてもよい。
【0029】
ブロック管理情報は、メモリチップ11に含まれる各ブロックの管理情報である。ブロック管理情報は、閾値電圧情報(以下、「Vth情報」とも表記する)及びセルユニットグループ変換情報(以下、「CU_Gr変換情報」とも表記する)等を含む。
【0030】
Vth情報は、セルユニットグループ毎に設定された読み出し電圧の補正量に関する情報である。セルユニットグループは、1つのブロックに含まれる複数のセルユニットのグループである。セルユニットは、書き込み動作または読み出し動作において一括して選択される複数のメモリセルトランジスタの集合である。例えば、Vth情報は、パトロール処理の結果に基づいて、更新される。
【0031】
パトロール処理は、不揮発性メモリ10に記憶されたデータを少ないエラービット数で読み出すために定期または不定期に実行される。パトロール処理は、例えば、パトロール読み出し処理と、当該パトロール読み出し処理の結果に基づいて読み出し電圧の補正量を算出する補正量算出処理と、を含む。制御回路31は、セルユニットグループ内の各セルユニットに対してパトロール処理を実行してもよく、セルユニットグループ内の任意のセルユニットに対してパトロール処理を実行してもよい。
【0032】
CU_Gr変換情報は、ブロック内におけるセルユニットグループのグルーピングの変換情報である。換言すれば、CU_Gr変換情報は、セルユニットグループ間の境界位置の変更(移動)に関する情報である。例えば、制御回路31は、書き込みブロックにおいて、書き込み動作の時間差が発生した場合、セルユニットグループのグルーピングを変更する。すなわち、制御回路31は、セルユニットグループ間の境界線の位置を変更する。制御回路31は、変更した情報をCU_Gr変換情報として登録する。
【0033】
ホストインターフェース回路33は、ホストデバイス2に接続されるインターフェース回路である。ホストインターフェース回路33は、ホストデバイス2とメモリコントローラ30との間の通信を制御する。ホストインターフェース回路33は、制御回路31及びバッファメモリ32に、ホストデバイス2から受信した要求及びデータをそれぞれ送信する。また、ホストインターフェース回路33は、制御回路31による制御に基づいて、ホストデバイス2に、バッファメモリ32内のデータを送信する。
【0034】
ECC回路34は、不揮発性メモリ10に記憶されるデータに関するエラー検出処理及びエラー訂正処理を行う。すなわちデータの書き込み時には、ECC回路34は、書き込みデータに誤り訂正符号を付与する。データの読み出し処理時には、ECC回路34は、読み出しデータを復号し、エラービットの有無を検出する。そしてエラービットが検出された際には、ECC回路34は、エラービットのカラムアドレス(エラー位置)を特定し、エラー訂正する。
【0035】
NANDインターフェース回路35は、メモリコントローラ30と不揮発性メモリ10との間の通信を制御する。より具体的には、NANDインターフェース回路35は、メモリチップ11に、書き込み動作、読み出し動作、または消去動作等に対応したコマンドを送信する。また、NANDインターフェース回路35は、読み出し動作時には、メモリチップ11から読み出しデータを受信する。NANDインターフェース回路35は、複数のチャネルCH(CH0、CH1、CH2、…)を有し得る。各チャネルCHには、NANDバスNBを介して、複数のメモリチップ11が接続され得る。
【0036】
本実施形態では、各チャネルCH(NANDバスNB)に接続された1つのメモリチップ11によりバンクBKが構成される。バンクBKに含まれる複数のメモリチップ11は、並列に動作可能である。
【0037】
読み出し電圧補正回路36は、不揮発性メモリ10からデータを読み出す際に使用される読み出し電圧の補正量(Vth情報)を算出する機能を有する。
【0038】
RAMインターフェース回路37は、揮発性メモリ20とメモリコントローラ30との間の通信を司る。揮発性メモリ20とメモリコントローラ30との間を接続するバスRBは、例えば、DRAMインターフェース規格に準拠する。
【0039】
時間差タイマー38は、各ブロックにおいて、最後の書き込み動作が実行されてから次の書き込み動作が実行されるまでの経過時間(時間差)を計測する。
【0040】
1.1.3 メモリチップの構成
次に、
図2を参照して、メモリチップ11の構成の一例について説明する。
図2は、メモリチップ11の構成の一例を示すブロック図である。なお、
図2の例では、各構成要素の接続の一部を矢印線により示している。但し、各構成要素間の接続はこれらに限定されない。
【0041】
図2に示すように、メモリチップ11は、NANDバスNBを介して、メモリコントローラ30(より詳しくはNANDインターフェース回路35)と、信号DQ並びにタイミング信号DQS及びbDQSの送受信を行う。信号DQは、例えばデータDAT、アドレスADD、またはコマンドCMDである。タイミング信号DQS及びbDQSは、データDATの入出力の際に用いられるタイミング信号である。タイミング信号bDQSは、タイミング信号DQSの反転信号である。
【0042】
また、メモリチップ11は、NANDバスNBを介して、メモリコントローラ30から、例えば、チップイネーブル信号bCE、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号bWE、及びリードイネーブル信号bREを受信する。また、メモリチップ11は、NANDバスNBを介して、メモリコントローラ30にレディ/ビジー信号bRBを送信する。
【0043】
チップイネーブル信号bCEは、メモリチップ11をイネーブルにするための信号である。信号bCEは、例えばLow(“L”)レベルでアサートされる。
【0044】
コマンドラッチイネーブル信号CLEは、信号DQがコマンドであることを示す信号である。信号CLEは、例えばHigh(“H”)レベルでアサートされる。
【0045】
アドレスラッチイネーブル信号ALEは、信号DQがアドレスであることを示す信号である。信号ALEは、例えば“H”レベルでアサートされる。
【0046】
ライトイネーブル信号bWEは、信号DQがコマンドCMDまたはアドレスADDである場合に、信号DQを取り込むための信号である。信号bWEは、メモリチップ11がコマンドCMDまたはアドレスADDを取り込むタイミングに、例えば“L”レベルでアサートされる。よって、信号bWEがトグルされる度に、コマンドCMDまたはアドレスADDがメモリチップ11に取り込まれる。
【0047】
リードイネーブル信号bREは、メモリコントローラ30が、メモリチップ11からデータを読み出すための信号である。信号bREは、例えば“L”レベルでアサートされる。例えば、メモリチップ11は、データ出力の際、信号bREに基づいて、信号DQS及びbDQSを生成する。
【0048】
レディ/ビジー信号bRBは、メモリチップ11がメモリコントローラ30からコマンドCMDを受信可能な状態か不可能な状態かを示す信号である。レディ状態は、メモリチップ11がメモリコントローラ30からコマンドCMDを受信可能な状態である。ビジー状態は、メモリチップ11がメモリコントローラ30からコマンドCMDを受信不可能な状態である。例えば、レディ/ビジー信号bRBは、メモリチップ11がビジー状態の際に“L”レベルとされる。
【0049】
次に、メモリチップ11の内部構成について説明する。メモリチップ11は、入出力回路101、ロジック制御回路102、アドレスレジスタ103、コマンドレジスタ104、ステータスレジスタ105、シーケンサ106、レディ/ビジー回路107、電圧発生回路108、及び複数のプレーンPLNを含む。
【0050】
入出力回路101は、メモリコントローラ30と信号DQ及びタイミング信号DQS及びbDQSの入出力を行う回路である。入出力回路101は、メモリコントローラ30のNANDインターフェース回路35と接続される。また、入出力回路101は、ロジック制御回路102、アドレスレジスタ103、コマンドレジスタ104、ステータスレジスタ105、及び各プレーンPLNのデータレジスタ112に接続される。
【0051】
ロジック制御回路102は、メモリチップ11のロジック制御を行う回路である。ロジック制御回路102は、メモリコントローラ30から、例えば、信号bCE、CLE、ALE、bWE、及びbREを受信する。ロジック制御回路102は、入出力回路101及びシーケンサ106に接続される。ロジック制御回路102は、受信した信号に基づいて、入出力回路101及びシーケンサ106を制御する。
【0052】
アドレスレジスタ103は、アドレスADDを一時的に記憶するレジスタである。アドレスレジスタ103は、入出力回路101、並びに各プレーンPLNのロウデコーダ110及びカラムデコーダ113に接続される。アドレスADDは、ロウアドレスRAとカラムアドレスCAとを含む。アドレスレジスタ103は、ロウデコーダ110に、ロウアドレスRAを送信する。また、アドレスレジスタ103は、カラムデコーダ113に、カラムアドレスCAを送信する。
【0053】
コマンドレジスタ104は、コマンドCMDを一時的に記憶するレジスタである。コマンドレジスタ104は、入出力回路101及びシーケンサ106に接続される。コマンドレジスタ104は、シーケンサ106に、コマンドCMDを送信する。
【0054】
ステータスレジスタ105は、ステータス情報STSを一時的に記憶するレジスタである。例えば、ステータス情報STSは、書き込み動作、読み出し動作、及び消去動作等の結果についての情報を含む。ステータスレジスタ105は、シーケンサ106に接続される。例えば、ステータス情報STSは、出力信号DQとして、メモリコントローラ30に送信される。
【0055】
シーケンサ106は、メモリチップ11全体の動作を制御する回路である。シーケンサ106は、ロジック制御回路102、アドレスレジスタ103、コマンドレジスタ104、ステータスレジスタ105、レディ/ビジー回路107、電圧発生回路108、並びに各プレーンPLNのロウデコーダ110及びセンスアンプ111等に接続される。シーケンサ106は、ステータスレジスタ105、レディ/ビジー回路107、電圧発生回路108、並びに各プレーンPLNのロウデコーダ110及びセンスアンプ111等を制御する。シーケンサ106は、コマンドCMDに基づいて、書き込み動作、読み出し動作、及び消去動作等を実行する。
【0056】
レディ/ビジー回路107は、レディ/ビジー信号bRBを生成する回路である。レディ/ビジー回路107は、シーケンサ106に接続される。レディ/ビジー回路107は、シーケンサ106の制御に基づいて、レディ/ビジー信号bRBを生成する。レディ/ビジー回路107は、メモリコントローラ30に、レディ/ビジー信号bRBを送信する。
【0057】
電圧発生回路108は、シーケンサ106の制御に基づいて、書き込み動作、読み出し動作、及び消去動作に用いられる各種電圧を発生させる。電圧発生回路108は、各種電圧を各プレーンPLNのメモリセルアレイ109、ロウデコーダ110、及びセンスアンプ111等に供給する。
【0058】
プレーンPLNは、データの書き込み動作、読み出し動作、及び消去動作を行うユニットである。
図2の例では、メモリチップ11は、2つのプレーンPLN0及びPLN1を含む。なお、プレーンPLNは、2つに限定されない。プレーンPLNは、1つであってもよいし、2つ以外の複数個であってもよい。プレーンPLN0及びPLN1は、互いに独立して書き込み動作、読み出し動作、または消去動作を実行することが可能である。また、プレーンPLN0及びPLN1は、並列に動作することも可能である。
【0059】
次に、プレーンPLNの内部構成について説明する。以下では、プレーンPLN0及びPLN1が同じ構成である場合について説明する。なお、各プレーンPLNの構成は異なっていてもよい。以下、プレーンPLN0及びPLN1のいずれかを限定しない場合は、「プレーンPLN」と表記する。プレーンPLNは、メモリセルアレイ109、ロウデコーダ110、センスアンプ111、データレジスタ112、及びカラムデコーダ113を含む。
【0060】
メモリセルアレイ109は、配列された複数のメモリセルトランジスタの集合である。メモリセルアレイ109は、複数のブロックBLKを含む。ブロックBLKは、例えばデータを一括して消去される複数のメモリセルトランジスタの集合である。
図2の例では、メモリセルアレイ109は、4つのブロックBLK0、BLK1、BLK2、及びBLK3を含む。なお、メモリセルアレイ109内のブロックBLKの個数は任意である。
【0061】
ロウデコーダ110は、ロウアドレスRAのデコード回路である。ロウデコーダ110は、アドレスレジスタ103、シーケンサ106、電圧発生回路108、及びメモリセルアレイ109に接続される。ロウデコーダ110は、ロウアドレスRAのデコード結果に基づいて、いずれかのブロックBLKを選択する。ロウデコーダ110は、選択したブロックBLKのロウ方向の配線(後述するワード線及び選択ゲート線)に電圧を印加する。
【0062】
センスアンプ111は、データDATの書き込み及び読み出しを行う回路である。センスアンプ111は、シーケンサ106、電圧発生回路108、メモリセルアレイ109、及びデータレジスタ112に接続される。センスアンプ111は、読み出し動作時には、メモリセルアレイ109からデータDATを読み出す。また、センスアンプ111は、書き込み動作時には、書き込みデータDATに応じた電圧をメモリセルアレイ109に供給する。
【0063】
データレジスタ112は、データDATを一時的に記憶するレジスタである。データレジスタ112は、入出力回路101、シーケンサ106、センスアンプ111、及びカラムデコーダ113に接続される。データレジスタ112は、複数のラッチ回路を含む。各ラッチ回路は、書き込みデータまたは読み出しデータを一時的に記憶する。
【0064】
カラムデコーダ113は、カラムアドレスCAのデコードを行う回路である。カラムデコーダ113は、アドレスレジスタ103、シーケンサ106、及びデータレジスタ112に接続される。カラムデコーダ113は、アドレスレジスタ103からカラムアドレスCAを受信する。カラムデコーダ113は、カラムアドレスCAのデコード結果に基づいて、データレジスタ112内のラッチ回路を選択する。
【0065】
1.1.4 不揮発性メモリのメモリ領域の構成
次に、
図3及び
図4を参照して、メモリシステム3がZNS対応メモリシステムである場合の不揮発性メモリのメモリ領域の構成の一例について説明する。
図3は、バンクBKのメモリ領域の構成の一例を示す図である。
図4は、不揮発性メモリ10のメモリ領域の構成の一例を示す図である。
【0066】
図3に示すように、メモリチップ11のメモリ領域は、プレーンPLN0の1つのブロックBLKと、プレーンPLN1の1つのブロックBLKから構成される複数のブロックユニットBUを含む。ブロックユニットBUの各ブロックBLKは、並列に動作し得る。バンクBKは、各メモリチップ11の1つのブロックユニットBUから構成される複数のスーパーブロックSBを含む。スーパーブロックSB内の各ブロックBLKは、並列に動作し得る。メモリシステム3が、例えば、ZNS対応メモリシステムである場合、スーパーブロックSBがゾーンに対応する。
【0067】
例えば、NANDインターフェース回路35が3つのチャネルCH0~CH2を有し、且つ各メモリチップ11が2つのプレーンPLNを有する場合、1つのスーパーブロックSBは、6つのブロックBLKを含む。なお、スーパーブロックSBの構成はこれに限定されない。例えば、複数のバンクBKの並列に動作可能な複数のブロックBLKによりスーパーブロックSBが構成されてもよい。
【0068】
メモリシステム3がZNS対応メモリシステムである場合、制御回路31は、不揮発性メモリ10のメモリ領域を、
図4に示すような複数のゾーンZN(スーパーブロックSB)に分割して管理する。メモリコントローラ30は、ゾーンZN毎に、書き込み動作、読み出し動作、及び消去動作を実行する。
【0069】
1.1.5 メモリセルアレイの回路構成
次に、
図5を参照して、メモリセルアレイ109の回路構成の一例について説明する。
図5は、メモリセルアレイ109の構成を示す回路図の一例である。
図5の例では、メモリセルアレイ109のうち、1つのブロックBLKが抽出して示される。
【0070】
図5に示すように、ブロックBLKは、複数のストリングユニットSUを含む。
図5の例では、ブロックBLKは、4つのストリングユニットSU0~SU3を含む。なお、
図5において、ストリングユニットSU2及びSU3の構成は簡略化して示している。
【0071】
各ストリングユニットSUは、ビット線BL0~BLm(mは、1以上の整数)にそれぞれ関連付けられた複数のNANDストリングNSを含む。NANDストリングNSは、例えばメモリセルトランジスタMC0~MC15、並びに選択トランジスタST1及びST2を含む。
【0072】
メモリセルトランジスタMCは、制御ゲート及び電荷蓄積層を含み、データを不揮発に記憶する。選択トランジスタST1及びST2のそれぞれは、各種処理時におけるストリングユニットSUの選択に使用される。
【0073】
各NANDストリングNSにおいて、メモリセルトランジスタMC0~MC15は、直列接続される。直列接続されたメモリセルトランジスタMC0~MC15の一端と、関連付けられたビット線BLとの間には、選択トランジスタST1が接続される。直列接続されたメモリセルトランジスタMC0~MC15の他端には、選択トランジスタST2のドレインが接続される。選択トランジスタST2のソースには、ソース線SLが接続される。
【0074】
同一のブロックBLKにおいて、ストリングユニットSU0~SU3に含まれた複数の選択トランジスタST1の各々のゲートは、選択ゲート線SGD0~SGD3にそれぞれ共通接続される。複数のメモリセルトランジスタMC0~MC15の各々の制御ゲートは、ワード線WL0~WL15にそれぞれ共通接続される。複数の選択トランジスタST2の各々のゲートは、選択ゲート線SGSに共通接続される。
【0075】
ビット線BL0~BLmは、複数のブロックBLK間で共有される。同じカラムアドレスに対応するNANDストリングNSには、同じビット線BLが接続される。ワード線WL0~WL15のそれぞれは、ブロックBLK毎に設けられる。ソース線SLは、例えば複数のブロックBLK間で共有される。
【0076】
以下では、1つのストリングユニットSU内で共通のワード線WLに接続された複数のメモリセルトランジスタMCの集合を、「セルユニットCU」と表記する。セルユニットCUは、データの書込み単位として使用される。例えば、それぞれが1ビットデータを記憶するメモリセルトランジスタMCを含むセルユニットCUの記憶容量が、「1ページデータ」として定義される。1ページデータは、例えば、データの読み出し単位として使用される。セルユニットCUは、メモリセルトランジスタMCが記憶するデータのビット数に応じて2ページデータ以上の記憶容量を有し得る。
【0077】
なお、以上で説明したメモリセルアレイ109の回路構成はあくまで一例であり、これに限定されない。例えば、各ブロックBLKが含むストリングユニットSUの個数は、任意の個数に設計され得る。各NANDストリングNSが含むメモリセルトランジスタMC並びに選択トランジスタST1及びST2の各々の個数は、それぞれ任意の個数に設計され得る。
【0078】
本実施形態では、1つのメモリセルトランジスタMCが2ビットデータを記憶する場合について説明する。すなわち、本実施形態におけるメモリセルトランジスタMCは、2ビットのデータを記憶するMLC(Multi Level Cell)である。MLCのメモリセルトランジスタが記憶する2ビットデータを、下位ビットから順に下位(Lower)ビット、及び上位(Upper)ビットと表記する。また、同一のセルユニットCUに含まれるメモリセルトランジスタMCの記憶する下位ビットの集合を“下位ページ”と呼び、上位ビットの集合を“上位ページ”と表記する。なお、メモリセルトランジスタMCは、MLCに限定されない。メモリセルトランジスタMCは、1ビットのデータを記憶するSLC(Single Level Cell)であってもよいし、3ビットのデータを記憶するTLC(Triple Level Cell)であってもよいし、4ビットのデータを記憶するQLC(Quad Level Cell)であってもよいし、5ビットのデータを記憶するPLC(Penta Level Cell)であってもよい。
【0079】
1.1.6 メモリセルトランジスタの閾値分布
次に、
図6を参照して、メモリセルトランジスタMCの閾値分布の一例について説明する。
図6は、メモリセルアレイ109内のメモリセルトランジスタMCの閾値電圧分布の一例を示す模式図である。
【0080】
図6に示すように、メモリセルトランジスタMCが2ビットのデータを記憶する場合、その閾値電圧の分布は4個に分けられる。この4個の閾値電圧分布を、閾値電圧が低いものから順に“Er”状態(ステート)、“A”状態、“B”状態、及び“C”状態と表記する。
【0081】
また、
図6に示す電圧VA、VB、及びVCはそれぞれ、読み出し処理の際に隣り合う2つの状態を区別するために用いられる。電圧VREADは、読み出し処理時において非選択ワード線に印加される電圧である。メモリセルトランジスタMCは、ゲートに電圧VREADが印加されると記憶するデータによらずにオン状態にされる。これらの電圧値の関係は、VA<VB<VC<VREADである。
【0082】
上述した閾値電圧分布のうち“Er”状態は、メモリセルトランジスタMCの消去状態に相当する。“Er”状態における閾値電圧は、電圧VA未満である。“A”状態における閾値電圧は、電圧VA以上且つ電圧VB未満である。“B”状態における閾値電圧は、電圧VB以上且つ電圧VC未満である。“C”状態における閾値電圧は、電圧VC以上且つ電圧VREAD未満である。
【0083】
上述した4個の閾値電圧分布は、下位ビット及び上位ビットを含む2ビット(2ページ)データを書き込むことで形成される。そして4個の閾値電圧分布が、それぞれ異なる2ビットのデータに対応する。本実施形態では、各状態に含まれるメモリセルトランジスタMCに対して、“上位ビット/下位ビット”に以下に示すようにデータを割り付ける。
【0084】
“Er”状態に含まれるメモリセルトランジスタMCは、“11”データを記憶する。“A”状態に含まれるメモリセルトランジスタMCは、“01”データを記憶する。“B”状態に含まれるメモリセルトランジスタMCは、“00”データを記憶する。“C”状態に含まれるメモリセルトランジスタMCは、“10”データを記憶する。
【0085】
下位ページ読み出しは、“A”状態と“B”状態とを区別する電圧VBを読み出し電圧として用いる。電圧VBを用いた読み出し処理を、読み出し処理BRと表記する。
【0086】
上位ページ読み出しは、“Er”状態と“A”状態とを区別する電圧VA、及び“B”状態と“C”状態とを区別する電圧VCを読み出し電圧として用いる。電圧VAを用いた読み出し処理を読み出し処理ARと呼び、電圧VCを用いた読み出し処理を読み出し処理CRと表記する。
【0087】
1.1.7 メモリセルアレイの断面構造
次に、
図7及び
図8を参照して、メモリセルアレイ109の断面構成の一例について説明する。
図7は、ブロックBLKの一部領域であるNANDストリングNSの断面図である。
図8は、
図7のVI-VI線に沿ったメモリピラーMPの断面図である。以下で参照される断面図において、X軸はワード線WLの延伸方向に対応し、Y軸はビット線BLの延伸方向に対応し、Z軸は半導体基板40に対してメモリピラーMPの延伸方向に対応する。また、図を見易くするために絶縁体層(層間絶縁膜)等の構成要素が適宜省略されている。
【0088】
図7に示すように、半導体基板40の上方に形成されるメモリピラーMPが、1つのNANDストリングNSに対応する。
【0089】
半導体基板40の上方には、絶縁体層(図示せず)を介して導電体層41が設けられる。この絶縁体層には、例えば、センスアンプ111等の周辺回路が設けられ得る。導電体層41は、例えばXY平面に沿って広がる板状に形成され、ソース線SLとして使用される。
【0090】
導電体層41の上方に、絶縁体層(図示せず)を介して導電体層42が設けられる。導電体層42は、選択ゲート線SGSとして使用される。
【0091】
導電体層42の上方に、絶縁体層(図示せず)と導電体層43とが交互に複数(
図7では8回)積層される。複数の導電体層43は、半導体基板40側から順に、それぞれワード線WL0~WL7として使用される。
【0092】
最上層の導電体層43の上方に、絶縁体層(図示せず)と導電体層44とが交互に複数(
図7では8回)積層される。複数の導電体層44は、半導体基板40側から順に、それぞれワード線WL8~WL15として使用される。最上層の導電体層43と最下層の導電体層44との間隔は、例えば、隣り合う導電体層43同士の間隔、または隣り合う導電体層44同士の間隔よりも大きい。
【0093】
最上層の導電体層44の上方に、絶縁体層(図示せず)を介して導電体層45が設けられる。導電体層45は、選択ゲート線SGDとして使用される。導電体層42~45は、例えばXY平面に沿って広がった板状に形成される。
【0094】
導電体層45の上方に、絶縁体層(図示せず)を介して導電体層47が設けられる。導電体層47は、Y軸に沿って延伸し、X軸に沿って複数本がライン状に配列され、それぞれがビット線BLとして使用される。
【0095】
メモリピラーMPは、Z軸に沿って延伸して設けられ、導電体層42~45を貫通し、底部が導電体層41に接触している。メモリピラーMPは、下部ピラーLMPと、下部ピラーLMPの上部に形成される上部ピラーUMPと、下部ピラーLMPと上部ピラーUMPとの間を電気的に接続するジョイント部JTと、を含む。下部ピラーLMP及び上部ピラーUMPは、例えば、半導体基板40からビット線BLに向かって(Z軸に沿って)径が大きくなるテーパ形状を有する。ジョイント部JTのXY平面に沿った径は、例えば、ジョイント部JTとの接触部分における下部ピラーLMP及び上部ピラーUMPの径より大きい。
【0096】
メモリピラーMPは、例えば、コア膜50、半導体膜51、積層膜52、及び半導体部53を含む。コア膜50、半導体膜51、積層膜52の各々は、例えば、下部ピラーLMP、ジョイント部JT、及び上部ピラーUMP内において、連続膜として形成されている。
【0097】
具体的には、コア膜50は、メモリピラーMPのほぼ中心に設けられ、Z軸に沿って延伸している。コア膜50は、例えば、導電体層45よりも上方に位置する上端と、導電体層42よりも下方に位置する下端と、を有する。コア膜50は、例えば、酸化シリコン(SiO)等の絶縁体を含む。
【0098】
半導体膜51は、コア膜50の底面及び側面を覆い、Z軸に沿って形成される円筒状の部分を含む。半導体膜51は、導電体層45よりも上方に位置する上端と、導電体層41に接触する下端と、を有する。半導体膜51は、例えば、ポリシリコンを含む。
【0099】
積層膜52は、半導体膜51の側面を覆い、Z軸に沿って形成される円筒状の部分を含む。積層膜52の構造の詳細について説明する。
【0100】
図8に示すように、積層膜52は、トンネル絶縁膜52a、電荷蓄積膜52b、及びブロック絶縁膜52cを含む。トンネル絶縁膜52aは、半導体膜51の側面を覆い、電荷蓄積膜52bは、トンネル絶縁膜52aの側面を覆う。ブロック絶縁膜52cは、電荷蓄積膜52bの側面を覆い、導電体層43に覆われる。
【0101】
再び
図7に戻って、メモリピラーMPの構成について説明する。半導体部53は、コア膜50の上面を覆い、コア膜50の上方における半導体膜51の部分に接触している。半導体部53は、例えば円柱状であり、上部ピラーUMPの上端に位置している。
【0102】
半導体部53の上面と、導電体層47の下面との間には、導電体層46が設けられている。導電体層46は、メモリピラーMPとビット線BLとの間を電気的に接続するコンタクトCPとして使用される。
【0103】
以上で説明したメモリピラーMPの構造では、下部ピラーLMPと導電体層42とが交差する部分が、選択トランジスタST2として機能する。下部ピラーLMPと複数の導電体層43とが交差する部分がそれぞれ、メモリセルトランジスタMC0~MC7として機能する。上部ピラーUMPと複数の導電体層44とが交差する部分がそれぞれ、メモリセルトランジスタMC8~MC15として機能する。上部ピラーUMPと導電体層45とが交差する部分が、選択トランジスタST1として機能する。半導体膜51は、メモリセルトランジスタMC並びに選択トランジスタST1及びST2のそれぞれのチャネルとして機能する。
【0104】
以上のような構造により、メモリピラーMPは、NANDストリングNSとして機能することができる。そして、当該メモリピラーMPが半導体基板40の上方に複数個配置されることによって、メモリセルアレイ109が形成される。
【0105】
図7を用いて説明したように、NANDストリングNSにおいて直列接続されるメモリセルトランジスタMC0~MC15は、Z軸に沿って積層されて形成されるため、Z軸に沿った位置(高さ)に応じて、それぞれ異なる形状を有し得る。このため、メモリセルトランジスタMC0~MC15は、互いに異なる電気的特性を有し得る。また、上部ピラーUMPの両端部はそれぞれ、ビット線BL及びジョイント部JTの上端と電気的に接続するために、上部ピラーUMPの中央部とは異なる電気的特性を有し得る。下部ピラーLMPの両端部はそれぞれ、ソース線SL及びジョイント部JTの下端と電気的に接続するために、下部ピラーLMPの中央部とは異なる電気的特性を有し得る。
【0106】
1.1.8 セルユニットグループの構成
次に、
図9を参照して、ブロックBLK内のセルユニットグループCU_Grの構成の一例について、説明する。
図9は、1つのブロックBLKにおけるセルユニットグループCU_Grの構成の一例を示す模式図である。
図9に示す1つの実線の四角枠が1つのセルユニットCUに対応する。
図9では、1つのブロックBLK内の64個のセルユニットCUが、対応するストリングユニットSU及びワード線WLの組毎に区別して示される。
【0107】
図9に示すように、類似する電気的特性を有するセルユニットCU同士を1つのグループにまとめることにより、ブロックBLK内の各セルユニットCUは、いくつかのグループに分類することができる。例えば、制御回路31は、ブロックBLK内の各セルユニットCUをいくつかのグループに分類し、グループ毎に読み出し電圧の補正量等を管理することができる。
【0108】
64個のセルユニットCUは、例えば、4つのセルユニットグループCU_Gr(CU_Gr0~CU_Gr3)に分類される。具体的には、例えば、下部ピラーLMPの下側に位置する、ワード線WL0~WL3に接続される16個のセルユニットCUは、セルユニットグループCU_Gr0に分類される。下部ピラーLMPの上側に位置する、ワード線WL4~WL7に接続される16個のセルユニットCUは、セルユニットグループCU_Gr1に分類される。上部ピラーUMPの下側に位置する、ワード線WL8~及びWL11に接続される16個のセルユニットCUは、セルユニットグループCU_Gr2に分類される。上部ピラーUMPの上側に位置する、ワード線WL12~WL15に接続される16個のセルユニットCUは、セルユニットグループCU_Gr3に分類される。なお、セルユニットグループCU_Grのグルーピングは、任意に設定可能である。各セルユニットグループCU_Gr内のセルユニットCUの個数は、異なっていてもよい。
【0109】
セルユニットグループCU_Gr0と、セルユニットグループCU_Gr1との間に境界0が設定される。より具体的には、ストリングユニットSU3及びワード線WL3の組に対応するセルユニットCUと、ストリングユニットSU0及びワード線WL4の組に対応するセルユニットCUとの間に境界0が設定される。セルユニットグループCU_Gr1と、セルユニットグループCU_Gr2との間に境界1が設定される。より具体的には、ストリングユニットSU3及びワード線WL7の組に対応するセルユニットCUと、ストリングユニットSU0及びワード線WL8の組に対応するセルユニットCUとの間に境界1が設定される。セルユニットグループCU_Gr2と、セルユニットグループCU_Gr3との間に境界2が設定される。より具体的には、ストリングユニットSU3及びワード線WL11の組に対応するセルユニットCUと、ストリングユニットSU0及びワード線WL12の組に対応するセルユニットCUとの間に境界2が設定される。
【0110】
また、セルユニットグループCU_Gr0~CU_Gr3には、それぞれ1つの代表セルユニットCU(以下、「アンカーAK」とも表記する)が割り当てられる。セルユニットグループCU_Gr0~CU_Gr3にそれぞれ割り当てられるアンカーAK0~AK3は、例えば、パトロール処理が実行されるセルユニットCUである。アンカーAKに対するパトロール処理の結果が代表補正量として、ブロック管理情報のVth情報に記憶される。すなわち、アンカーは、補正量の算出に用いられるセルユニットCUである。なお、パトロール処理が実行されない場合、または、パトロール処理が全セルユニットCUに対して実行される場合、アンカーAKは設定されない。
【0111】
図9の例では、セルユニットグループCU_Gr0のアンカーAK0には、ストリングユニットSU0及びワード線WL0の組に対応するセルユニットCUが割り当てられる。セルユニットグループCU_Gr1のアンカーAK1には、ストリングユニットSU0及びワード線WL4の組に対応するセルユニットCUが割り当てられる。セルユニットグループCU_Gr2のアンカーAK2には、ストリングユニットSU0及びワード線WL8の組に対応するセルユニットCUが割り当てられる。セルユニットグループCU_Gr3のアンカーAK3には、ストリングユニットSU0及びワード線WL12の組に対応するセルユニットCUが割り当てられる。
【0112】
なお、上述のアンカーAKの割り当て方法はあくまで一例であり、これに限定されない。例えば、あるセルユニットグループCU_GrのアンカーAKは、当該セルユニットグループCU_Gr内であればどのセルユニットCUに割り当てられてもよい。また、
図9の例では、1つのブロックBLKに4つのセルユニットグループCU_Grが含まれる場合が示されるが、これに限定されない。例えば、1つのブロックBLKに含まれるセルユニットグループCU_Grは、1つ以上であればよい。
【0113】
また、以下の説明では、全てのブロックBLKについて、
図9を用いて説明したセルユニットグループCU_Grの構成が適用されるものとするが、これに限定されない。例えば、1つのブロックBLK内のセルユニットグループ数及び各セルユニットグループCU_Grの範囲及び境界線の位置は、ブロックBLK毎に異なっていてもよい。
【0114】
1.1.9 ブロック管理情報
次に、
図10及び
図11を参照して、ブロック管理情報の一例について説明する。
図10は、Vth情報の構成の一例を示すテーブルである。
図11は、CU_Gr変換情報の一例を示すテーブルである。なお、
図10及び
図11の例は、ブロックBLK0の例を示している。
【0115】
本実施形態では、ブロック管理情報にVth情報に関するテーブルと、CU_Gr変換情報に関するテーブルとが含まれる場合について説明する。
【0116】
図10に示すように、Vth情報には、各セルユニットグループCU_Grにおける読み出し電圧の補正量の情報が含まれる。具体的には、例えば、メモリセルトランジスタMCがMLCである場合、Vth情報には、読み出し電圧VAの補正量ΔVA、読み出し電圧VBの補正量ΔVB、及び読み出し電圧VCの補正量ΔVCが含まれる。
【0117】
図10の例では、ブロックBLK0内のセルユニットグループCU_Gr0の補正量として、ΔVA0、ΔVB0、及びΔVC0の組が含まれる。同様に、ブロックBLK0内のセルユニットグループCU_Gr1~CU_Gr3に割り当てられた補正量として、それぞれΔVA1、ΔVB1、及びΔVC1の組、ΔVA2、ΔVB2、及びΔVC2の組、並びにΔVA3、ΔVB3、及びΔVC3の組、が含まれる。
【0118】
以上のような構成により、セルユニットグループCU_Grと、補正量ΔVA~ΔVCとが、一意に対応づけられる。
【0119】
次に、CU_Gr変換情報について説明する。例えば、1つのセルユニットグループCU_Gr内において、前回の書き込み動作が実行されてから次の書き込み動作が実行されるまでの経過時間(時間差)が予め設定された基準値を超える場合がある。この場合、制御回路31は、セルユニットグループCU_Grの境界線の位置を、基準値を超える時間差が発生したセルユニットCU間に移動(変換)させる。すなわち、セルユニットグループCU_Grの構成が変更される。CU_Gr変換情報は、移動させた境界線の位置情報を含む。
【0120】
図11に示すように、CU_Gr変換情報には、例えば、移動させた境界線を示す境界情報と、当該境界線の位置情報とが含まれる。
図11の例は、1つのブロックBLKにおいて、境界線の移動回数(すなわち、時間差の発生回数)が1回まで許容される場合を示している。例えば、1つのブロックBLKに含まれる境界数が4つ以下である場合、境界情報は2ビットデータで示される。そして、例えば、セルユニットグループCU_Grに16個のセルユニットCUが含まれる場合、位置情報は、5ビットデータで示される。従って、時間差の発生を1回まで許容する場合、CU_Gr変換情報の追加によるデータの増加量は、1ブロックBLKあたり1バイトである。なお、データの増加量は、境界数及びセルユニットグループCU_Grに含まれるセルユニットCUの個数等により異なる。
【0121】
図11の例は、時間差(境界線の移動)が発生しなかった場合を示している。この場合、境界情報には、“00”が設定される。例えば、境界線の位置情報には、初期状態からの移動量が設定される。移動が生じていない場合、境界線の位置情報は、“00000”に設定される。例えば、セルユニットグループCU_Gr0とセルユニットグループCU_Gr1の境界線を示す境界0がセルユニットグループCU_Gr0方向に移動した場合を負の移動量とし、セルユニットグループCU_Gr1方向に移動した場合を正の移動量とする。例えば、移動量が-16である場合、位置情報は、“10000”に設定される。例えば、移動量が-1である場合、境界線の位置情報は、“11111”に設定される。例えば、移動量が+15である場合、境界線の位置情報は、“01111”に設定される。
【0122】
1.2 書き込み動作の流れ
次に、
図12を参照して、書き込み動作の流れの一例について説明する。
図12は、書き込み動作の流れの一例を示すフローチャートである。
【0123】
図12に示すように、まず、メモリシステム3は、ホストデバイス2から書き込み要求を受信する(S10)。
【0124】
制御回路31は、データの書き込み先が、書き込み対象のブロックBLKの最初のページであるか確認する(S11)。より具体的には、制御回路31は、書き込み先として、ストリングユニットSU0及びワード線WL0の組に対応するセルユニットCUの下位ページが選択されているか確認する。
【0125】
データの書き込み先がブロックBLKの最初のページではない場合(S11_No)、制御回路31は、時間差タイマー38をストップさせる(S12)。より具体的には、時間差タイマー38は、書き込み対象のブロックBLKにおいて、あるセルユニットCUへの書き込み動作が実行されてから、次の書き込み対象のセルユニットCUへの書き込み動作が実行されるまでの経過時間を計測している。各セルユニットCUへの書き込み動作が複数ステップで実行される場合、時間差タイマー38は、書き込み対象のブロックBLKにおいて、あるセルユニットCUへの書き込み動作の最後のステップが実行されてから、次の書き込み対象のセルユニットCUへの書き込み動作の最後のステップが実行されるまでの経過時間を計測している。時間差タイマー38は、計測終了後、当該ブロックBLKにおける経過時間を、「時間差」として、制御回路31に送信する。
【0126】
制御回路31は、時間差が基準値を超えているか確認する(S13)。時間差が基準値を超えている場合(S13_Yes)、制御回路31は、時間差発生フラグを立てる(S14)。すなわち、制御回路31は、時間差発生フラグを“H”レベルに設定する。
【0127】
時間差発生フラグを立てた(S14)後、データの書き込み先がブロックBLKの最初のページである場合(S11_Yes)、または時間差が基準値以下である場合(S13_No)、制御回路31は、書き込み対象のメモリチップ11に、書き込み動作を実行させる(S15)。
【0128】
書き込み動作終了後、制御回路31は、データの書き込み先が、書き込み対象のブロックBLKの最後のページであったか確認する(S16)。
【0129】
データの書き込み先がブロックBLKの最後のページではない場合(S16_No)、制御回路31は、時間差タイマー38を一旦リセットさせた後、スタートさせる(S17)。より具体的には、時間差タイマー38は、当該ブロックBLKのセルユニットCUへの書き込み動作が終了してからの経過時間の計測を開始する。各セルユニットCUへの書き込み動作が複数ステップで実行される場合には、時間差タイマー38は、当該ブロックBLKのセルユニットCUへの書き込み動作の最後のステップが終了してからの経過時間の計測を開始する。
【0130】
時間差タイマースタート(S17)後、またはデータの書き込み先がブロックBLKの最後のページである場合(S16_Yes)、制御回路31は、書き込み動作を終了させる。
【0131】
1.3 CU_Gr変換情報の登録の流れ
次に、
図13を参照して、CU_Gr変換情報の登録の流れの一例について説明する。
図13は、CU_Gr変換情報の登録の流れの一例を示すフローチャートである。
【0132】
図13に示すように、まず、制御回路31は、時間差発生フラグの有無を確認する(S100)。
【0133】
時間差発生フラグがない場合(S101_No)、制御回路31は、CU_Gr変換情報の登録を終了する。
【0134】
時間差発生フラグがある(立っている)場合(S101_Yes)、制御回路31は、1つのブロックBLKにおける時間差発生フラグ(時間差)の発生回数が予め設定された設定値N(Nは、0以上且つ(ブロックBLK内のセルユニットグループ総数-1)以下である整数)以下であるか確認する(S102)。例えば、1つのブロックBLKにつき、1回の時間差発生(境界線の移動)が許容されている場合、設定値はN=1に設定される。境界数は、セルユニットグループ総数-1であるため、設定値Nの最大値は、セルユニットグループ総数-1である。すなわち、セルユニットグループCU_Grの総数から1減算した値である。この場合、全ての境界線の移動が許容される。
【0135】
発生回数が設定値N以下である場合(S102_Yes)、制御回路31は、変更する境界線の情報を取得し(S103)、取得に成功したか確認する(S104)。例えば、境界線の変更方法には2通りの方向がある。
【0136】
第1の方法では、時間差が発生した際に各境界線が対応するアドレス範囲が予め決められている。
図9を用いて説明したセルユニットグループCU_Grの構成であれば、時間差が、ストリングユニットSU0及びワード線WL0の組に対応するセルユニットCUから、ストリングユニットSU3及びワード線WL4の組に対応するセルユニットCUまでの間に発生した場合、制御回路31は、境界0を移動させる。時間差が、ストリングユニットSU0及びワード線WL5の組に対応するセルユニットCUから、ストリングユニットSU3及びワード線WL9の組に対応するセルユニットCUまでの間に発生した場合、制御回路31は、境界1を移動させる。時間差が、ストリングユニットSU0及びワード線WL10の組に対応するセルユニットCUから、ストリングユニットSU3及びワード線WL15の組に対応するセルユニットCUまでの間に発生した場合、制御回路31は、境界2を移動させる。例えば、変更された境界線を、変数k(kは、0以上且つ(ブロックBLK内のセルユニットグループ総数-1)以下である整数)を用いて、境界kとする。例えば、境界kを動かした後のアドレス範囲は、次の境界線(k+1)が対応する。時間差発生に対応できる境界線が無い場合、制御回路31は、取得失敗と判定する。
【0137】
第2の方法では、時間差が発生した場合、時間差が発生した箇所を、前回の書き込み先のアドレスが属するセルユニットグループCU_Grと次のセルユニットグループCU_Grとの境界線とする。最終のセルユニットグループCU_Gr(
図9の例では、セルユニットグループCU_Gr3)で時間差が発生した場合、制御回路31は、取得失敗と判定する。
【0138】
取得成功の場合(S104_Yes)、制御回路31は、境界線の位置を更新する(S105)。例えば、制御回路31は、前回の書き込み先アドレス(に対応するセルユニットCU)と次の書き込み先アドレス(に対応するセルユニットCU)との間の位置に境界線を移動させる。
【0139】
制御回路31は、移動させた境界線の情報を、CU_Gr変換情報に登録する(S106)。
【0140】
発生回数が設定値Nを超えている場合(S102_No)、または取得失敗の場合(S104_No)、制御回路31は、ブロック引っ越しフラグを立てる(S107)。すなわち、制御回路31は、ブロック引っ越しフラグを“H”レベルに設定する。ブロック引っ越しフラグは、ブロックBLKの全てのセルユニットCUへの書き込み動作が終了した後、当該ブロックBLKをデータ移動の対象として優先的に選択するフラグである。例えば、制御回路31は、ブロックBLK内の全てのセルユニットCUへの書き込み動作が終了すると、ブロック引っ越しフラグを確認する。ブロック引っ越しフラグが立っている場合、制御回路31は、当該ブロックBLKをデータ移動の対象として選択する。そして、制御回路31は、当該ブロックBLKの有効データを読み出し、ECC回路34によるエラー訂正処理後に別のブロックBLKに書き込む。
【0141】
1.4 境界線移動の具体例
次に、境界線を移動させた場合の具体例を2つ示す。
【0142】
1.4.1 第1の具体例
まず、第1の具体例について説明する。第1の具体例では、N=1、すなわち1つのブロックBLKにおいて境界線の移動回数(すなわち、時間差の発生回数)が1回まで許容される場合について説明する。
図14は、1つのブロックBLKにおける境界線移動の第1の具体例を示す模式図である。
図15は、第1の具体例におけるCU_Gr変換情報の一例を示すテーブルである。
【0143】
図14に示すように、本例では、ストリングユニットSU2及びワード線WL6の組に対応するセルユニットCUと、ストリングユニットSU3及びワード線WL6の組に対応するセルユニットCUとの間に時間差が発生している。換言すれば、ストリングユニットSU2及びワード線WL6の組に対応するセルユニットCUに対する書き込み動作が実行されてから、ストリングユニットSU3及びワード線WL6の組に対応するセルユニットCUに対する書き込み動作が実行されるまでの経過時間が、予め設定された基準値を超えている。このため、制御回路31は、この2つのセルユニットCUの間に、境界1を移動させている。この場合の境界1の移動量は、-5である。
【0144】
この結果、セルユニットグループCU_Gr0には、ストリングユニットSU0及びワード線WL0の組に対応するセルユニットCUから、ストリングユニットSU3及びワード線WL3の組に対応するセルユニットCUまでが属する。セルユニットグループCU_Gr1には、ストリングユニットSU0及びワード線WL4の組に対応するセルユニットCUから、ストリングユニットSU2及びワード線WL6の組に対応するセルユニットCUまでが属する。また、セルユニットグループCU_Gr2には、ストリングユニットSU3及びワード線WL6の組に対応するセルユニットCUから、ストリングユニットSU3及びワード線WL11の組に対応するセルユニットCUまでが属する。そして、セルユニットグループCU_Gr3には、ストリングユニットSU0及びワード線WL12の組に対応するセルユニットCUから、ストリングユニットSU3及びワード線WL15の組に対応するセルユニットCUまでが属する。
【0145】
図15に示すように、CU_Gr変換情報として、境界情報“01”及び位置情報“11011”が登録される。境界情報“01”は、境界1を示す。位置情報“11011”は、移動量が-5であることを示す。
【0146】
1.4.2 第2の具体例
次に、第2の具体例について説明する。第2の具体例では、N=(セルユニットグループ総数-1)、すなわち1つのブロックBLKにおいて境界線の移動回数(すなわち、時間差の発生回数)が境界線の総数まで許容される場合について説明する。換言すれば、制御回路31が全ての境界線を移動させる場合について説明する。
図16は、1つのブロックBLKにおける境界線移動の第2の具体例を示す模式図である。
図17は、第2の具体例におけるVth情報及びCU_Gr変換情報の一例を示すテーブルである。
【0147】
図16に示すように、本例では、制御回路31は、境界0~境界2をそれぞれ移動させている。より具体的には、ストリングユニットSU1及びワード線WL2の組に対応するセルユニットCUと、ストリングユニットSU2及びワード線WL2の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、境界0を移動させている。境界0の移動量は、-6である。
【0148】
ストリングユニットSU2及びワード線WL6の組に対応するセルユニットCUと、ストリングユニットSU3及びワード線WL6の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、境界1を移動させている。境界1の移動量は、-5である。
【0149】
そして、ストリングユニットSU0及びワード線WL9の組に対応するセルユニットCUと、ストリングユニットSU1及びワード線WL9の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、境界2を移動させている。境界2の移動量は、-11である。
【0150】
この結果、セルユニットグループCU_Gr0には、ストリングユニットSU0及びワード線WL0の組に対応するセルユニットCUから、ストリングユニットSU1及びワード線WL2の組に対応するセルユニットCUまでが属する。セルユニットグループCU_Gr1には、ストリングユニットSU2及びワード線WL2の組に対応するセルユニットCUから、ストリングユニットSU2及びワード線WL6の組に対応するセルユニットCUまでが属する。セルユニットグループCU_Gr2には、ストリングユニットSU3及びワード線WL6の組に対応するセルユニットCUから、ストリングユニットSU0及びワード線WL9の組に対応するセルユニットCUまでが属する。そして、セルユニットグループCU_Gr3には、ストリングユニットSU1及びワード線WL9の組に対応するセルユニットCUから、ストリングユニットSU3及びワード線WL15の組に対応するセルユニットCUまでが属する。
【0151】
図17に示すように、例えば、ブロック管理情報において、Vth情報とCU_Gr変換情報とが1つのテーブルで管理されてもよい。この場合、CU_Gr変換情報には、セルユニットグループCU_Grに対応する境界線の位置情報が含まれる。例えば、境界線の位置情報は、7ビットデータ(-64≦移動量≦+63)で示される。例えば、時間差の発生が3回まで許容される場合、CU_Gr変換情報の追加によるデータ量の増加は、1ブロックBLKあたり3バイトである。
【0152】
例えば、境界線の位置情報には、初期状態からの移動量が設定される。移動が生じていない場合、境界線の位置情報は、“0000000”に設定される。例えば、境界線の移動量が-64である場合、境界線の位置情報は、“1000000”に設定される。例えば、境界線の移動量が-1である場合、境界線の位置情報は、“1111111”に設定される。例えば、境界線の移動量が+63である場合、境界線の位置情報は、“0111111”に設定される。
図17の例では、境界0のCU_Gr変換情報として、“1111010”が登録される。“1111010”は、移動量が-6であることを示す。境界1のCU_Gr変換情報として、“1111011”が登録される。“1111011”は、移動量が-5であることを示す。境界2のCU_Gr変換情報として、“1110101”が登録される。“1110101”は、移動量が-11であることを示す。
【0153】
1.5 本実施形態に係る効果
本実施形態に係る構成であれば、メモリシステムは、処理能力を向上できる。本効果につき、詳述する。
【0154】
例えば、ZNS対応メモリシステムの場合、書き込み動作において、ブロックBLK内に時間差が発生しても、パディングデータの挿入処理は実行されない。当該ブロックBLKにおいて、そのまま有効データの書き込み動作が継続される。時間差発生前後で読み出し電圧の最適値が異なるため、時間差が発生したセルユニットグループCU_Grでは、エラービットが増加する。このため、データの信頼性が低下する。また、エラー訂正のため、リフレッシュリード、あるいは、リトライリードといったエラービットを低減するための処理が実行される頻度が増加する。リトライリードは、読み出し電圧をシフトさせて再度読み出し動作を行う動作である。リフレッシュリードは、データを他のメモリ領域に書き直す処理である。このため、メモリシステムの処理能力が低下する。
【0155】
また、ZNS非対応メモリシステムの場合、時間差が発生すると、当該ブロックのデータ未書き込みのセルユニットCUに対してパディングデータの挿入処理が実行される。このため、無効データが増加し、WAFが増加する。また、パディングデータの挿入処理により、メモリシステムの処理能力が低下する。
【0156】
これに対し、本実施形態に係る構成であれば、時間差が発生した場合、当該ブロックBLKにおけるセルユニットグループCU_Grの構成を動的に変更できる。時間差が発生した箇所にセルユニットグループCU_Grの境界線を移動できる。時間差発生前後で読み出し電圧の最適値が異なっていてもセルユニットグループCU_Gr毎に、読み出し電圧の最適値が設定できるため、エラービットの増加を抑制できる。このため、データの信頼性の低下を抑制できる。従って、メモリシステム3の信頼性を向上できる。また、エラービット低減のため処理を実行する頻度を低減できるため、メモリシステム3の処理能力を向上できる。
【0157】
1.6 第1実施形態の変形例
次に、第1実施形態の変形例について説明する。本変形例では、アンカーAKが設定されていない場合について説明する。以下、第1実施形態と異なる点を中心に説明する。
【0158】
1.6.1 セルユニットグループの構成
まず、
図18を参照して、ブロックBLK内のセルユニットグループCU_Grの構成について説明する。
図18は、1つのブロックBLKにおけるセルユニットグループCU_Grの構成を示す模式図である。
【0159】
図18に示すように、セルユニットグループCU_Grの初期の構成は、アンカーAKが設定されていない点を除き、第1実施形態の
図9の説明と同様である。
【0160】
1.6.2 境界線移動の具体例
次に、境界線を移動させた場合の具体例を2つ示す。
【0161】
1.6.2.1 第1の具体例
まず、第1の具体例について説明する。第1の具体例では、N=1、すなわち1つのブロックBLKにおいて境界線の移動回数(すなわち、時間差の発生回数)が1回まで許容される場合について説明する。
図19は、1つのブロックBLKにおける境界線移動の第1の具体例を示す模式図である。
【0162】
図19に示すように、本例では、第1実施形態の第1の具体例と同様に、ストリングユニットSU2及びワード線WL6の組に対応するセルユニットCUと、ストリングユニットSU3及びワード線WL6の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、境界1を移動させている。この場合の境界1の移動量は、-5である。
【0163】
各セルユニットグループCU_Grの構成は、
図14の説明と同様である。
【0164】
1.6.2.2 第2の具体例
次に、第2の具体例について説明する。第2の具体例では、N=(セルユニットグループ総数-1)、すなわち1つのブロックBLKにおいて境界線の移動回数(すなわち、時間差の発生回数)が境界線の総数まで許容される場合について説明する。換言すれば、制御回路31が全ての境界線を移動させる場合について説明する。
図20は、1つのブロックBLKにおける境界線移動の第2の具体例を示す模式図である。
【0165】
図20に示すように、本例では、第1実施形態の第2の具体例と同様に、制御回路31は、境界0~境界2をそれぞれ移動させている。より具体的には、ストリングユニットSU1及びワード線WL2の組に対応するセルユニットCUと、ストリングユニットSU2及びワード線WL2の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、境界0を移動させている。境界0の移動量は、-6である。
【0166】
ストリングユニットSU2及びワード線WL6の組に対応するセルユニットCUと、ストリングユニットSU3及びワード線WL6の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、境界1を移動させている。境界1の移動量は、-5である。
【0167】
そして、ストリングユニットSU0及びワード線WL9の組に対応するセルユニットCUと、ストリングユニットSU1及びワード線WL9の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、境界2を移動させている。境界2の移動量は、-11である。
【0168】
各セルユニットグループCU_Grの構成は、
図16の説明と同様である。
【0169】
1.6.3 本変形例に係る効果
本変形例に係る構成であれば、第1実施形態と同様の効果が得られる。
【0170】
2.第2実施形態
次に、第2実施形態について説明する。第2実施形態では、境界線及びアンカーAKを移動させる場合について説明する。以下、第1実施形態と異なる点を中心に説明する。
【0171】
2.1 CU_Gr変換情報及びアンカー変換情報
まず、
図21を参照して、CU_Gr変換情報及びアンカー変換情報の一例について説明する。
図21は、CU_Gr変換情報及びアンカー変換情報の一例を示すテーブルである。CU_Gr変換情報及びアンカー変換情報は、ブロック管理情報に含まれる。
【0172】
図21に示すように、CU_Gr変換情報には、第1実施形態の
図11の説明と同様に、移動させた境界線を示す境界情報と、当該境界線の位置情報とが含まれる。
【0173】
アンカー変換情報は、アンカーAKとして設定されたセルユニットCUの変更情報である。アンカー変換情報には、移動させたアンカーAKを示すアンカー情報と、当該アンカーAKの位置情報とが含まれる。例えば、1つのブロックBLKに含まれるアンカー数が4つ以下である場合、アンカー情報は2ビットデータで示される。そして、例えば、アンカーAKの位置情報は、境界線の位置情報と同様に、5ビットデータで示される。例えば、時間差の発生を1回まで許容する場合、アンカー変換情報の追加によるデータの増加量は、1ブロックBLKあたり1バイトである。この場合、CU_Gr変換情報及びアンカー変換情報によるデータの増加量は、1ブロックBLKあたり2バイトである。
【0174】
図21の例は、時間差(境界線の移動)が発生しなかった場合を示している。境界情報には、“00”が設定される。境界線の位置情報は、“00000”に設定される。アンカー情報には、“00”が設定される。アンカー位置情報は、“00000”に設定される。例えば、アンカーAKの移動量が-16である場合、アンカー位置情報は、“10000”に設定される。例えば、アンカーAKの移動量が-1である場合、アンカー位置情報は、“11111”に設定される。例えば、アンカーAKの移動量が+15である場合、アンカー位置情報は、“01111”に設定される。
【0175】
2.2 CU_Gr変換情報及びアンカー変換情報の登録の流れ
次に、
図22を参照して、CU_Gr変換情報及びアンカー変換情報の登録の流れの一例について説明する。
図22は、CU_Gr変換情報及びアンカー変換情報の登録の流れの一例を示すフローチャートである。
【0176】
図22に示すように、ステップS100~S107の流れは、第1実施形態の
図13を用いた説明と同様である。
【0177】
制御回路31は、CU_Gr変換情報を登録(S106)した後、変更後のセルユニットグループCU_GrにアンカーAKが含まれているか確認する(S108)。
【0178】
アンカーAKが含まれていない場合(S108_No)、制御回路31は、変更するアンカーAKの情報を取得する(S109)。例えば、制御回路31は、前回の書き込み先アドレス(セルユニットCU)が属するセルユニットグループCU_Grに含まれているアンカーAKを対象として選択する。より具体的には、例えば、前回の書き込み先アドレス(セルユニットCU)が属するセルユニットグループCU_Grに2つのアンカーAKが含まれている状態にある場合、移動させた境界線に近い位置にあるアンカーAKが移動対象として選択される。他方で、アンカーAKが含まれている場合(S108_Yes)、制御回路31は、登録を終了する。
【0179】
制御回路31は、変更対象として選択したアンカーAKの位置情報を更新する(S110)。制御回路31は、次の書き込み先アドレス(セルユニットCU)が属するセルユニットグループCU_Grに含まれているセルユニットCUの1つをアンカーAKとして設定する。
【0180】
制御回路31は、移動させたアンカーAKの情報を、アンカー変換情報に登録する(S111)。
【0181】
2.3 境界線及びアンカー移動の具体例
次に、境界線及びアンカーAKを移動させた場合の具体例を4つ示す。
【0182】
2.3.1 第1の具体例
まず、第1の具体例について説明する。第1の具体例では、N=1、すなわち1つのブロックBLKにおいて境界線の移動回数(すなわち、時間差の発生回数)が1回まで許容される場合について説明する。
図23は、1つのブロックBLKにおける境界線及びアンカーAK移動の第1の具体例を示す模式図である。
図24は、第1の具体例におけるCU_Gr変換情報及びアンカー変換情報の一例を示すテーブルである。
【0183】
図23に示すように、本例では、ストリングユニットSU1及びワード線WL9の組に対応するセルユニットCUと、ストリングユニットSU2及びワード線WL9の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、境界1を移動させている。この場合の境界1の移動量は、+6である。
【0184】
境界1の移動により、アンカーAK2が、セルユニットグループCU_Gr1に含まれる。このため、アンカーAK2が移動の対象として選択される。例えば、セルユニットグループCU_Gr2のストリングユニットSU3及びワード線WL10の組に対応するセルユニットCUが、新しいアンカーAK2として割り当てられる。すなわち、制御回路31は、アンカーAK2を、ストリングユニットSU0及びワード線WL8の組に対応するセルユニットCUからストリングユニットSU3及びワード線WL10の組に対応するセルユニットCUに移動させている。この場合のアンカーAK2の移動量は、+11である。なお、アンカーAK2として選択されるセルユニットCUは、セルユニットグループCU_Gr2内のいずれのセルユニットCUであってもよい。
【0185】
この結果、セルユニットグループCU_Gr0には、ストリングユニットSU0及びワード線WL0の組に対応するセルユニットCUから、ストリングユニットSU3及びワード線WL3の組に対応するセルユニットCUまでが属する。セルユニットグループCU_Gr1には、ストリングユニットSU0及びワード線WL4の組に対応するセルユニットCUから、ストリングユニットSU1及びワード線WL9の組に対応するセルユニットCUまでが属する。また、セルユニットグループCU_Gr2には、ストリングユニットSU2及びワード線WL9の組に対応するセルユニットCUから、ストリングユニットSU3及びワード線WL11の組に対応するセルユニットCUまでが属する。そして、セルユニットグループCU_Gr3には、ストリングユニットSU0及びワード線WL12の組に対応するセルユニットCUから、ストリングユニットSU3及びワード線WL15の組に対応するセルユニットCUまでが属する。
【0186】
例えば、アンカーAK0には、ストリングユニットSU0及びワード線WL0の組に対応するセルユニットCUが割り当てられる。例えば、アンカーAK1には、ストリングユニットSU0及びワード線WL4の組に対応するセルユニットCUが割り当てられる。例えば、アンカーAK2には、ストリングユニットSU3及びワード線WL10の組に対応するセルユニットCUが割り当てられる。例えば、アンカーAK3には、ストリングユニットSU0及びワード線WL12の組に対応するセルユニットCUが割り当てられる。
【0187】
図24に示すように、CU_Gr変換情報として、境界情報“01”及び位置情報“00110”が登録される。境界情報“01”は、境界1を示す。境界線の位置情報“00110”は、移動量が+6であることを示す。アンカー変換情報として、アンカー情報“10”及びアンカー位置情報“01011”が登録される。アンカー情報“10”は、アンカーAK2を示す。アンカー位置情報“01011”は、移動量が+11であることを示す。
【0188】
2.3.2 第2の具体例
次に、第2の具体例について説明する。第2の具体例では、N=(セルユニットグループ総数-1)、すなわち1つのブロックBLKにおいて境界線の移動回数(すなわち、時間差の発生回数)が境界線の総数まで許容される場合について説明する。
図25は、1つのブロックBLKにおける境界線及びアンカーAK移動の第2の具体例を示す模式図である。
図26は、第2の具体例におけるVth情報、CU_Gr変換情報、及びアンカー変換情報の一例を示すテーブルである。
【0189】
図25に示すように、本例では、制御回路31は、境界0~境界2をそれぞれ移動させている。これに伴い、制御回路31は、アンカーAK3を移動させている。
【0190】
より具体的には、ストリングユニットSU1及びワード線WL2の組に対応するセルユニットCUと、ストリングユニットSU2及びワード線WL2の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、境界0を移動させている。境界0の移動量は、-6である。
【0191】
ストリングユニットSU2及びワード線WL6の組に対応するセルユニットCUと、ストリングユニットSU3及びワード線WL6の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、境界1を移動させている。境界1の移動量は、-5である。
【0192】
ストリングユニットSU1及びワード線WL12の組に対応するセルユニットCUと、ストリングユニットSU2及びワード線WL12の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、境界2を移動させている。境界2の移動量は、+2である。
【0193】
制御回路31は、アンカーAK3を、ストリングユニットSU0及びワード線WL12の組に対応するセルユニットCUから、ストリングユニットSU0及びワード線WL14の組に対応するセルユニットCUに移動させている。アンカーAK3の移動量は、+8である。
【0194】
この結果、セルユニットグループCU_Gr0には、ストリングユニットSU0及びワード線WL0の組に対応するセルユニットCUから、ストリングユニットSU1及びワード線WL2の組に対応するセルユニットCUまでが属する。セルユニットグループCU_Gr1には、ストリングユニットSU2及びワード線WL2の組に対応するセルユニットCUから、ストリングユニットSU2及びワード線WL6の組に対応するセルユニットCUまでが属する。セルユニットグループCU_Gr2には、ストリングユニットSU3及びワード線WL6の組に対応するセルユニットCUから、ストリングユニットSU1及びワード線WL12の組に対応するセルユニットCUまでが属する。そして、セルユニットグループCU_Gr3には、ストリングユニットSU2及びワード線WL12の組に対応するセルユニットCUから、ストリングユニットSU3及びワード線WL15の組に対応するセルユニットCUまでが属する。
【0195】
例えば、アンカーAK0には、ストリングユニットSU0及びワード線WL0の組に対応するセルユニットCUが割り当てられる。例えば、アンカーAK1には、ストリングユニットSU0及びワード線WL4の組に対応するセルユニットCUが割り当てられる。例えば、アンカーAK2には、ストリングユニットSU0及びワード線WL8の組に対応するセルユニットCUが割り当てられる。例えば、アンカーAK3には、ストリングユニットSU0及びワード線WL14の組に対応するセルユニットCUが割り当てられる。
【0196】
図26に示すように、例えば、ブロック管理情報において、Vth情報、CU_Gr変換情報、及びアンカー変換情報が1つのテーブルで管理されてもよい。この場合、アンカー変換情報には、セルユニットグループCU_Grに含まれるアンカーAKの位置情報が含まれる。CU_Gr変換情報には、セルユニットグループCU_Grに対応する境界線の位置情報が含まれる。例えば、アンカー位置情報及び境界線の位置情報は、7ビットデータ(-64≦移動量≦+63)で示される。従って、例えば、時間差の発生が3回まで許容される場合、CU_Gr変換情報の追加によるデータの増加量は、1ブロックBLKあたり最大6バイトである。なお、移動していないアンカーAK及び境界線については、データが省略され得る。このため、
図26の例は、4バイトのデータ追加を示している。
【0197】
例えば、アンカーAK及び境界線の位置情報には、初期状態からの移動量が設定される。移動が生じていない場合、位置情報は、“0000000”に設定される。例えば、移動量が-64である場合、位置情報は、“1000000”に設定される。例えば、移動量が-1である場合、位置情報は、“1111111”に設定される。例えば、移動量が+63である場合、境界線の位置情報は、“0111111”に設定される。
【0198】
図26の例では、アンカー変換情報には、セルユニットグループCU_Gr3に含まれるアンカーAK3の変換情報として、“0001000”が登録される。“0001000”は、アンカーAK3の移動量が+8であることを示す。
【0199】
CU_Gr変換情報には、境界0のCU_Gr変換情報として、“1111010”が登録される。“1111010”は、境界0の移動量が-6であることを示す。境界1のCU_Gr変換情報として、“1111011”が登録される。“1111011”は、境界1の移動量が-5であることを示す。境界2のCU_Gr変換情報として、“0000010”が登録される。“0000010”は、境界2の移動量が+2であることを示す。
【0200】
2.3.3 第3の具体例
次に、第3の具体例について説明する。第3の具体例では、境界線がワード線WL0に対応するセルユニットCU間に集中している場合について説明する。第3の具体例においても、第2実施形態の第2の具体例と同様に、1つのブロックBLKにおいて境界線の移動回数(すなわち、時間差の発生回数)が境界線の総数まで許容されている。
図27は、1つのブロックBLKにおける境界線及びアンカーAK移動の第3の具体例を示す模式図である。
図28は、第3の具体例におけるVth情報、CU_Gr変換情報、及びアンカー変換情報の一例を示すテーブルである。
【0201】
図27に示すように、本例では、制御回路31は、境界0~境界2をそれぞれ移動させている。これに伴い、制御回路31は、アンカーAK1及びAK2を移動させている。
【0202】
より具体的には、ストリングユニットSU0及びワード線WL0の組に対応するセルユニットCUと、ストリングユニットSU1及びワード線WL0の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、境界0を移動させている。境界0の移動量は、-15である。
【0203】
ストリングユニットSU1及びワード線WL0の組に対応するセルユニットCUと、ストリングユニットSU2及びワード線WL0の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、境界1を移動させている。境界1の移動量は、-30である。
【0204】
ストリングユニットSU2及びワード線WL0の組に対応するセルユニットCUと、ストリングユニットSU3及びワード線WL0の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、境界2を移動させている。境界2の移動量は、-45である。
【0205】
制御回路31は、アンカーAK1を、ストリングユニットSU0及びワード線WL4の組に対応するセルユニットCUから、ストリングユニットSU1及びワード線WL0の組に対応するセルユニットCUに移動させている。アンカーAK1の移動量は、-15である。制御回路31は、アンカーAK2を、ストリングユニットSU0及びワード線WL8の組に対応するセルユニットCUから、ストリングユニットSU2及びワード線WL0の組に対応するセルユニットCUに移動させている。アンカーAK1の移動量は、-30である。
【0206】
この結果、セルユニットグループCU_Gr0には、ストリングユニットSU0及びワード線WL0の組に対応するセルユニットCUが属する。セルユニットグループCU_Gr1には、ストリングユニットSU1及びワード線WL0の組に対応するセルユニットCUが属する。セルユニットグループCU_Gr2には、ストリングユニットSU2及びワード線WL0の組に対応するセルユニットCUが属する。そして、セルユニットグループCU_Gr3には、ストリングユニットSU3及びワード線WL0の組に対応するセルユニットCUから、ストリングユニットSU3及びワード線WL15の組に対応するセルユニットCUまでが属する。
【0207】
例えば、アンカーAK0には、ストリングユニットSU0及びワード線WL0の組に対応するセルユニットCUが割り当てられる。例えば、アンカーAK1には、ストリングユニットSU1及びワード線WL0の組に対応するセルユニットCUが割り当てられる。例えば、アンカーAK2には、ストリングユニットSU2及びワード線WL0の組に対応するセルユニットCUが割り当てられる。例えば、アンカーAK3には、ストリングユニットSU0及びワード線WL12の組に対応するセルユニットCUが割り当てられる。
【0208】
図28に示すように、アンカー変換情報には、セルユニットグループCU_Gr1に含まれるアンカーAK1の変換情報として、“1110001”が登録される。“1110001”は、アンカーAK1の移動量が-15であることを示す。セルユニットグループCU_Gr2に含まれるアンカーAK2の変換情報として、“1110010”が登録される。“1110010”は、アンカーAK2の移動量が-30であることを示す。
【0209】
CU_Gr変換情報には、境界0のCU_Gr変換情報として、“1110001”が登録される。“1110001”は、境界0の移動量が-15であることを示す。境界1のCU_Gr変換情報として、“1110010”が登録される。“1110010”は、境界1の移動量が-30であることを示す。境界2のCU_Gr変換情報として、“1010011”が登録される。“1010011”は、境界2の移動量が-45であることを示す。
【0210】
2.3.4 第4の具体例
次に、第4の具体例について説明する。第4の具体例では、境界線がワード線WL15に対応するセルユニットCU間に集中している場合について説明する。第4の具体例においても、第2実施形態の第2の具体例及び第3の具体例と同様に、1つのブロックBLKにおいて境界線の移動回数(すなわち、時間差の発生回数)が境界線の総数まで許容されている。
図29は、1つのブロックBLKにおける境界線及びアンカーAK移動の第4の具体例を示す模式図である。
図30は、第4の具体例におけるVth情報、CU_Gr変換情報、及びアンカー変換情報の一例を示すテーブルである。
【0211】
図29に示すように、本例では、制御回路31は、境界0~境界2をそれぞれ移動させている。これに伴い、制御回路31は、アンカーAK1~AK3を移動させている。
【0212】
より具体的には、ストリングユニットSU0及びワード線WL15の組に対応するセルユニットCUと、ストリングユニットSU1及びワード線WL15の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、境界0を移動させている。境界0の移動量は、+45である。
【0213】
ストリングユニットSU1及びワード線WL15の組に対応するセルユニットCUと、ストリングユニットSU2及びワード線WL15の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、境界1を移動させている。境界1の移動量は、+30である。
【0214】
ストリングユニットSU2及びワード線WL15の組に対応するセルユニットCUと、ストリングユニットSU3及びワード線WL15の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、境界2を移動させている。境界2の移動量は、+15である。
【0215】
制御回路31は、アンカーAK1を、ストリングユニットSU0及びワード線WL4の組に対応するセルユニットCUから、ストリングユニットSU1及びワード線WL15の組に対応するセルユニットCUに移動させている。アンカーAK1の移動量は、+45である。制御回路31は、アンカーAK2を、ストリングユニットSU0及びワード線WL8の組に対応するセルユニットCUから、ストリングユニットSU2及びワード線WL15の組に対応するセルユニットCUに移動させている。アンカーAK1の移動量は、+30である。制御回路31は、アンカーAK3を、ストリングユニットSU0及びワード線WL12の組に対応するセルユニットCUから、ストリングユニットSU3及びワード線WL15の組に対応するセルユニットCUに移動させている。アンカーAK3の移動量は、+15である。
【0216】
この結果、セルユニットグループCU_Gr0には、ストリングユニットSU0及びワード線WL0の組に対応するセルユニットCUから、ストリングユニットSU0及びワード線WL15の組に対応するセルユニットCUまでが属する。セルユニットグループCU_Gr1には、ストリングユニットSU1及びワード線WL15の組に対応するセルユニットCUが属する。セルユニットグループCU_Gr2には、ストリングユニットSU2及びワード線WL15の組に対応するセルユニットCUが属する。そして、セルユニットグループCU_Gr3には、ストリングユニットSU3及びワード線WL15の組に対応するセルユニットCUが属する。
【0217】
例えば、アンカーAK0には、ストリングユニットSU0及びワード線WL0の組に対応するセルユニットCUが割り当てられる。例えば、アンカーAK1には、ストリングユニットSU1及びワード線WL15の組に対応するセルユニットCUが割り当てられる。例えば、アンカーAK2には、ストリングユニットSU2及びワード線WL15の組に対応するセルユニットCUが割り当てられる。例えば、アンカーAK3には、ストリングユニットSU3及びワード線WL15の組に対応するセルユニットCUが割り当てられる。
【0218】
図30に示すように、アンカー変換情報には、セルユニットグループCU_Gr1に含まれるアンカーAK1の変換情報として、“0101101”が登録される。“0101101”は、アンカーAK1の移動量が+45であることを示す。セルユニットグループCU_Gr2に含まれるアンカーAK2の変換情報として、“0011110”が登録される。“0011110”は、アンカーAK2の移動量が+30であることを示す。セルユニットグループCU_Gr3に含まれるアンカーAK3の変換情報として、“0001111”が登録される。“0001111”は、アンカーAK3の移動量が+15であることを示す。
【0219】
CU_Gr変換情報には、境界0のCU_Gr変換情報として、“0101101”が登録される。“0101101”は、境界0の移動量が+45であることを示す。境界1のCU_Gr変換情報として、“0011110”が登録される。“0011110”は、境界1の移動量が+30であることを示す。境界2のCU_Gr変換情報として、“0001111”が登録される。“0001111”は、境界2の移動量が+15であることを示す。
【0220】
2.4 本実施形態に係る効果
本実施形態に係る構成であれば、第1実施形態と同様の効果が得られる。
【0221】
更に、本実施形態に係る構成であれば、アンカーAKを移動できるため、境界線の移動可能な範囲を増加できる。
【0222】
2.5 第2実施形態の変形例
次に、第2実施形態の変形例について説明する。本変形例では、第2実施形態と異なるアンカー変換情報の登録の流れについて説明する。
【0223】
2.5.1 アンカー変換情報の登録の流れ
図31を参照して、アンカー変換情報の登録の流れについて説明する。
図31は、アンカー変換情報の登録の流れを示すフローチャートである。
【0224】
本変形例では、書き込み対象ブロックBLKの全てセルユニットCUへの書き込み動作が終了した後に、当該ブロックBLKのアンカー変換情報が登録される。以下の説明において、アンカーAK及びセルユニットグループCU_Grを、変数i(iは、0以上且つ(セルユニットグループ総数-1)以下である整数)を用いて、アンカーAKi及びセルユニットグループCU_Griと表記する。
【0225】
なお、CU_Gr変換情報の流れは、第1実施形態の
図13を用いて説明したCU_Gr変換情報の流れが適用され得る。
【0226】
図31に示すように、制御回路31は、書き込み対象ブロックBLKの全てセルユニットCUへの書き込み動作が終了したことを確認する(S200)。
【0227】
まず、制御回路31は、変数i=0に設定する(S201)。
【0228】
制御回路31は、ブロック管理情報を参照して、アンカーAKiの位置情報を取得する(S202)。そして、制御回路31は、アンカーAKiがセルユニットグループCU_Griの中に含まれているか確認する(S203)。
【0229】
アンカーAKiがセルユニットグループCU_Griにない場合(S203_No)、制御回路31は、アンカーAKiの位置を更新する(S204)。すなわち、制御回路31は、アンカーAKiをセルユニットグループCU_Gri内の任意の位置に移動させる。
【0230】
制御回路31は、更新したアンカーAKiの位置をアンカー変換情報に登録する(S205)。
【0231】
アンカー変換情報を登録(S205)した後、またはアンカーAKiがセルユニットグループCU_Griにある場合(S203_Yes)、制御回路31は、変数iをインクリメントして、i=i+1とする(S206)。そして、制御回路31は、変数iが、セルユニットグループCU_Grの総数未満であるか確認する(S207)。
【0232】
変数iが、セルユニットグループCU_Grの総数未満である場合(S207_Yes)、制御回路31は、ステップS202に進む。他方で、変数iが、セルユニットグループCU_Grの総数未満ではない場合(S207_No)、制御回路31は、当該ブロックBLKに対するアンカー変換情報の登録を終了する。
【0233】
2.5.2 本変形例に係る効果
本変形例に係る構成であれば、第2実施形態と同様の効果が得られる。
【0234】
3.第3実施形態
次に、第3実施形態について説明する。第3実施形態では、境界線を移動させた際に、セルユニットグループCU_Gr内にあるアンカーAKの位置を移動させる場合について説明する。以下、第1及び第2実施形態と異なる点を中心に説明する。
【0235】
3.1 CU_Gr変換情報及びアンカー変換情報の登録の流れ
まず、
図32を参照して、CU_Gr変換情報及びアンカー変換情報の登録の流れの一例について説明する。
図32は、CU_Gr変換情報及びアンカー変換情報の登録の流れの一例を示すフローチャートである。
【0236】
図32に示すように、ステップS100~S107の流れは、第1実施形態の
図13を用いた説明と同様である。
【0237】
制御回路31は、CU_Gr変換情報を登録(S106)した後、アンカーAKの変更(移動)があるか確認する(S120)。例えば、アンカーAKが含まれていないセルユニットグループCU_Grがある場合、またはセルユニットグループCU_Gr内にあっても移動させる必要があるアンカーAKがある場合、制御回路31は、アンカーAKの変更ありと判定する。
【0238】
アンカーAKの変更がある場合(S120_Yes)、制御回路31は、変更するアンカーAKの情報を取得する(S121)。例えば、アンカーAKの位置を対応するセルユニットグループCU_Grの中央付近に移動させる場合、制御回路31は、境界線の移動に合わせて、セルユニットグループCU_Gr内にあるアンカーAKを移動させる。他方で、アンカーAKの変更がない場合(S120_No)、制御回路31は、登録を終了する。
【0239】
制御回路31は、変更対象として選択したアンカーAKの位置を更新する(S122)。
【0240】
制御回路31は、移動させたアンカーAKの情報を、アンカー変換情報に登録する(S111)。
【0241】
3.2 境界線及びアンカー移動の具体例
次に、
図33及び
図34を参照して、境界線及びアンカーAKを移動させた場合の具体例について説明する。本具体例では、N=(セルユニットグループ総数-1)、すなわち1つのブロックBLKにおいて境界線の移動回数(すなわち、時間差の発生回数)が境界線の総数まで許容される場合について説明する。
図33は、1つのブロックBLKにおける境界線及びアンカーAK移動の具体例を示す模式図である。
図34は、具体例におけるVth情報、CU_Gr変換情報、及びアンカー変換情報の一例を示すテーブルである。
【0242】
図33に示すように、本例では、制御回路31は、境界0~境界2をそれぞれ移動させている。これに伴い、制御回路31は、各アンカーAKを対応するセルユニットグループCU_Grの中央付近に移動させている。
【0243】
より具体的には、ストリングユニットSU1及びワード線WL2の組に対応するセルユニットCUと、ストリングユニットSU2及びワード線WL2の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、境界0を移動させている。境界0の移動量は、-6である。
【0244】
ストリングユニットSU0及びワード線WL9の組に対応するセルユニットCUと、ストリングユニットSU1及びワード線WL9の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、境界1を移動させている。境界1の移動量は、+5である。
【0245】
ストリングユニットSU2及びワード線WL14の組に対応するセルユニットCUと、ストリングユニットSU3及びワード線WL14の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、境界2を移動させている。境界2の移動量は、+11である。
【0246】
この結果、セルユニットグループCU_Gr0には、ストリングユニットSU0及びワード線WL0の組に対応するセルユニットCUから、ストリングユニットSU1及びワード線WL2の組に対応するセルユニットCUまでが属する。セルユニットグループCU_Gr1には、ストリングユニットSU2及びワード線WL2の組に対応するセルユニットCUから、ストリングユニットSU0及びワード線WL9の組に対応するセルユニットCUまでが属する。セルユニットグループCU_Gr2には、ストリングユニットSU1及びワード線WL9の組に対応するセルユニットCUから、ストリングユニットSU2及びワード線WL14の組に対応するセルユニットCUまでが属する。そして、セルユニットグループCU_Gr3には、ストリングユニットSU3及びワード線WL14の組に対応するセルユニットCUから、ストリングユニットSU3及びワード線WL15の組に対応するセルユニットCUまでが属する。
【0247】
制御回路31は、アンカーAK0を、ストリングユニットSU0及びワード線WL0の組に対応するセルユニットCUから、ストリングユニットSU0及びワード線WL1の組に対応するセルユニットCUに移動させている。アンカーAK0の移動量は、+4である。制御回路31は、アンカーAK1を、ストリングユニットSU0及びワード線WL4の組に対応するセルユニットCUから、ストリングユニットSU3及びワード線WL5の組に対応するセルユニットCUに移動させている。アンカーAK1の移動量は、+7である。制御回路31は、アンカーAK2を、ストリングユニットSU0及びワード線WL8の組に対応するセルユニットCUから、ストリングユニットSU0及びワード線WL12の組に対応するセルユニットCUに移動させている。アンカーAK2の移動量は、+16である。制御回路31は、アンカーAK3を、ストリングユニットSU0及びワード線WL12の組に対応するセルユニットCUから、ストリングユニットSU1及びワード線WL15の組に対応するセルユニットCUに移動させている。アンカーAK3の移動量は、+13である。
【0248】
図34に示すように、アンカー変換情報には、セルユニットグループCU_Gr0に含まれるアンカーAK0の変換情報として、“0000100”が登録される。“0000100”は、アンカーAK0の移動量が+4であることを示す。セルユニットグループCU_Gr1に含まれるアンカーAK1の変換情報として、“0000111”が登録される。“0000111”は、アンカーAK1の移動量が+7であることを示す。セルユニットグループCU_Gr2に含まれるアンカーAK2の変換情報として、“0010000”が登録される。“0010000”は、アンカーAK2の移動量が+16であることを示す。セルユニットグループCU_Gr3に含まれるアンカーAK3の変換情報として、“0001101”が登録される。“0001101”は、アンカーAK3の移動量が+13であることを示す。
【0249】
CU_Gr変換情報には、境界0のCU_Gr変換情報として、“1111010”が登録される。“1111010”は、境界0の移動量が-6であることを示す。境界1のCU_Gr変換情報として、“0000101”が登録される。“0000101”は、境界1の移動量が+5であることを示す。境界2のCU_Gr変換情報として、“0001011”が登録される。“0001011”は、境界2の移動量が+11であることを示す。
【0250】
3.3 本実施形態に係る構成
本実施形態に係る構成であれば、第1及び第2実施形態と同様の効果が得られる。
【0251】
3.4 第3実施形態の変形例
次に、第3実施形態の変形例について説明する。本変形例では、第3実施形態と異なるアンカー変換情報の登録の流れについて説明する。
【0252】
3.4.1 アンカー変換情報の登録の流れ
図35を参照して、アンカー変換情報の登録の流れについて説明する。
図35は、アンカー変換情報の登録の流れを示すフローチャートである。
【0253】
本変形例では、第2実施形態の変形例と同様に、書き込み対象ブロックBLKの全てセルユニットCUへの書き込み動作が終了した後に、当該ブロックBLKのアンカー変換情報が登録される。
【0254】
なお、CU_Gr変換情報の流れは、第1実施形態の
図13を用いて説明したCU_Gr変換情報の流れが適用され得る。
【0255】
図35に示すように、ステップS200~S202の流れは、第2実施形態の変形例の
図31を用いた説明と同様である。
【0256】
制御回路31は、アンカーAKiの位置情報を取得(S202)した後、アンカーAKiの位置の変更が必要か確認する(S210)。
【0257】
アンカーAKiの位置の変更が必要である場合(S210_Yes)、制御回路31は、アンカーAKiの位置を更新する(S204)。すなわち、制御回路31は、アンカーAKiをセルユニットグループCU_Gri内の任意の位置に移動させる。他方で、アンカーAKiの位置の変更が必要ではない場合(S210_No)、制御回路31は、ステップS206に進む。
【0258】
ステップS205~S207の流れは、第2実施形態の変形例の
図31を用いた説明と同様である。
【0259】
3.4.2 本変形例に係る効果
本変形例に係る構成であれば、第3実施形態と同様の効果が得られる。
【0260】
4.第4実施形態
次に、第4実施形態について説明する。第4実施形態では、セルユニットグループCU_Gr及びアンカーAKを追加する場合について説明する。
【0261】
4.1 セルユニットグループ及びアンカー追加の流れ
次に、
図36を参照して、セルユニットグループCU_Gr及びアンカーAK追加の流れの一例について説明する。
図36は、セルユニットグループCU_Gr及びアンカーAK追加の流れの一例を示すフローチャートである。なお、
図36の例は、セルユニットグループCU_Gr及びアンカーAKの追加に着目したフローチャートであり、既存のセルユニットグループCU_Gr及びアンカーAKの移動に関するフローは省略されている。
【0262】
図36に示すように、ステップS100~S104の流れは、第1実施形態の
図13を用いた説明と同様である。
【0263】
取得成功の場合(S104_Yes)、第1実施形態の
図13を用いて説明した流れ、第2実施形態の
図22を用いて説明した流れ、または第3実施形態の
図32を用いて説明した流れのいずれかに従って、制御回路31は登録処理を実行する。
【0264】
取得失敗の場合(S104_No)、または、時間差の発生回数が設定値Nを超えている場合(S102_No)、制御回路31は、セルユニットグループCU_Grの追加回数が、予め設定された判定値M(Mは、1以上の整数)以下であるか確認する(S130)。例えば、セルユニットグループCU_Grの追加回数は、時間差の発生回数から設定値Nを減算した値である。例えば、判定値Mは、セルユニットグループCU_Grに含まれるセルユニットCUの個数を参考にして設定される。制御回路31は、追加回数が(N+M)以上であるか確認する。例えば、制御回路31は、時間差の発生回数がセルユニットグループ総数以上である場合、セルユニットグループCU_Grの追加が可能か確認する。
【0265】
セルユニットグループCU_Grの追加回数が判定値M以下である場合(S130_Yes)、制御回路31は、セルユニットグループCU_Grを追加可能と判定し、追加するセルユニットグループCU_Grに対応したVth情報を作成する(S131)。
【0266】
次に、制御回路は、追加するセルユニットグループCU_Grに対応したCU_Gr変換情報を作成する(S132)。
【0267】
次に、制御回路は、追加するセルユニットグループCU_Grに対応したアンカー変換情報を作成する(S133)。なお、ステップS131~S133の順序は入れ替えてもよいし、並列に実行されてもよい。
【0268】
また、セルユニットグループCU_Grの追加回数が判定値Mを超える場合(S130_No)、制御回路31は、ブロック引っ越しフラグを立てる(S107)。
【0269】
4.2 セルユニットグループ及びアンカー追加の具体例
次に、
図37及び
図38を参照して、セルユニットグループCU_Gr及びアンカーAKを追加する場合の具体例について説明する。本具体例では、N=(セルユニットグループ総数-1)、すなわち1つのブロックBLKにおいて境界線の移動回数(すなわち、時間差の発生回数)が境界線の総数まで許容される場合について説明する。
図37は、1つのブロックBLKにおいてセルユニットグループCU_Gr及びアンカーAKを追加する具体例を示す模式図である。
図38は、具体例におけるVth情報、CU_Gr変換情報、及びアンカー変換情報の一例を示すテーブルである。
【0270】
図37に示すように、本例では、制御回路31は、境界0~境界2をそれぞれ移動させている。これに伴い、制御回路31は、アンカーAK0~AK3を移動させている。また、制御回路31は、新たにセルユニットグループCU_Gr4及びアンカーAK4を追加している。
【0271】
より具体的には、ストリングユニットSU1及びワード線WL2の組に対応するセルユニットCUと、ストリングユニットSU2及びワード線WL2の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、境界0を移動させている。境界0の移動量は、-6である。
【0272】
ストリングユニットSU0及びワード線WL9の組に対応するセルユニットCUと、ストリングユニットSU1及びワード線WL9の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、境界1を移動させている。境界1の移動量は、+5である。
【0273】
ストリングユニットSU2及びワード線WL14の組に対応するセルユニットCUと、ストリングユニットSU3及びワード線WL14の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、境界2を移動させている。境界2の移動量は、+11である。
【0274】
ストリングユニットSU1及びワード線WL15の組に対応するセルユニットCUと、ストリングユニットSU2及びワード線WL15の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、新たに境界3を追加している。そして、制御回路31は、セルユニットグループCU_Gr4及びアンカーAK4を追加している。
【0275】
この結果、セルユニットグループCU_Gr0には、ストリングユニットSU0及びワード線WL0の組に対応するセルユニットCUから、ストリングユニットSU1及びワード線WL2の組に対応するセルユニットCUまでが属する。セルユニットグループCU_Gr1には、ストリングユニットSU2及びワード線WL2の組に対応するセルユニットCUから、ストリングユニットSU0及びワード線WL9の組に対応するセルユニットCUまでが属する。セルユニットグループCU_Gr2には、ストリングユニットSU1及びワード線WL9の組に対応するセルユニットCUから、ストリングユニットSU2及びワード線WL14の組に対応するセルユニットCUまでが属する。セルユニットグループCU_Gr3には、ストリングユニットSU3及びワード線WL14の組に対応するセルユニットCUから、ストリングユニットSU1及びワード線WL15の組に対応するセルユニットCUまでが属する。そして、追加されたセルユニットグループCU_Gr4には、ストリングユニットSU2及びワード線WL15の組に対応するセルユニットCU、及びストリングユニットSU3及びワード線WL15の組に対応するセルユニットCUが属する。
【0276】
制御回路31は、アンカーAK0を、ストリングユニットSU0及びワード線WL0の組に対応するセルユニットCUから、ストリングユニットSU0及びワード線WL1の組に対応するセルユニットCUに移動させている。アンカーAK0の移動量は、+4である。制御回路31は、アンカーAK1を、ストリングユニットSU0及びワード線WL4の組に対応するセルユニットCUから、ストリングユニットSU3及びワード線WL5の組に対応するセルユニットCUに移動させている。アンカーAK1の移動量は、+7である。制御回路31は、アンカーAK2を、ストリングユニットSU0及びワード線WL8の組に対応するセルユニットCUから、ストリングユニットSU0及びワード線WL12の組に対応するセルユニットCUに移動させている。アンカーAK2の移動量は、+16である。制御回路31は、アンカーAK3を、ストリングユニットSU0及びワード線WL12の組に対応するセルユニットCUから、ストリングユニットSU0及びワード線WL15の組に対応するセルユニットCUに移動させている。アンカーAK3の移動量は、+12である。そして、制御回路31は、アンカーAK4を、ストリングユニットSU2及びワード線WL15の組に対応するセルユニットCUに割り当てている。
【0277】
図38に示すように、ブロックBLK0内にセルユニットグループCU_Gr4が追加されている。
図38の例では、追加回数を1回許容する場合、MCLのVth情報(ΔVA、ΔVB、及びΔVCの組)の3バイト、アンカー変換情報の1バイト、及びCu_Gr変換情報の1バイト、の合計5バイト追加される。従って、時間差発生が4か所である場合、データの増加量は、1ブロックあたり最大11バイトである。
【0278】
セルユニットグループCU_Gr4に対応するVth情報として、ΔVA4、ΔVB4、及びΔVC4の組が作成されている。
【0279】
アンカー変換情報には、セルユニットグループCU_Gr0に含まれるアンカーAK0の変換情報として、“0000100”が登録される。“0000100”は、アンカーAK0の移動量が+4であることを示す。セルユニットグループCU_Gr1に含まれるアンカーAK1の変換情報として、“0000111”が登録される。“0000111”は、アンカーAK1の移動量が+7であることを示す。セルユニットグループCU_Gr2に含まれるアンカーAK2の変換情報として、“0010000”が登録される。“0010000”は、アンカーAK2の移動量が+16であることを示す。セルユニットグループCU_Gr3に含まれるアンカーAK3の変換情報として、“0001100”が登録される。“0001100”は、アンカーAK3の移動量が+12であることを示す。例えば、セルユニットグループCU_Gr4に含まれるアンカーAK4の変換情報として、“0111010”が登録される。“0111010”は、アンカーAK0を基準とした移動量が+58であることを示す。なお、アンカーAK4の移動量は、ストリングユニットSU0及びワード線WL0の組に対応するセルユニットCUを基準としてもよいし、1つ前のアンカーAK3を基準としてもよい。
【0280】
CU_Gr変換情報には、境界0のCU_Gr変換情報として、“1111010”が登録される。“1111010”は、境界0の移動量が-6であることを示す。境界1のCU_Gr変換情報として、“0000101”が登録される。“0000101”は、境界1の移動量が+5であることを示す。境界2のCU_Gr変換情報として、“0001011”が登録される。“0001011”は、境界2の移動量が+11であることを示す。例えば、追加された境界3のCU_Gr変換情報として、“0111000”が登録される。“0111000”は、境界0を基準とした移動量が+56であることを示す。なお、境界3の移動量は、例えば、1つ前の境界2を基準としてもよい。
【0281】
4.3 本実施形態に係る効果
本実施形態に係る構成であれば、第1乃至第3実施形態と同様の効果が得られる。
【0282】
更に、本実施形態に係る構成であれば、セルユニットグループCU_Gr及びアンカーAKを追加できる。このため、例えば、メモリシステム3がZNS対応メモリシステムである場合、時間差の発生回数が、(セルユニットグループCU_Grの総数-1)よりも多くなった場合においても、時間差発生によるエラービットの増加を抑制できる。よって、メモリシステム3の信頼性を向上できる。また、エラー訂正のための処理による処理能力の低下を抑制できる。また、例えば、メモリシステム3がZNS非対応メモリシステムである場合、時間差の発生回数が、(セルユニットグループCU_Grの総数-1)よりも多くなった場合においても、パディングデータの挿入処理を実行せずに、当該ブロックBLKにおける書き込み動作を継続できる。従って、WAFの増加を抑制できる。
【0283】
4.4 第4実施形態の変形例
次に、第4実施形態の変形例について説明する。本変形例では、第1実施形態の変形例と同様に、アンカーAKが設定されていない場合について説明する。以下、第4実施形態と異なる点を中心に説明する。
【0284】
4.4.1 セルユニットグループ追加の流れ
まず、
図39を参照して、セルユニットグループCU_Gr追加の流れについて説明する。
図39は、セルユニットグループCU_Gr追加の流れを示すフローチャートである。なお、
図39の例は、セルユニットグループCU_Grの追加に着目したフローチャートであり、既存のセルユニットグループCU_Grの移動に関するフローは省略されている。
【0285】
図39に示すように、ステップS100~S104の流れは、第1実施形態の
図13を用いた説明と同様である。
【0286】
取得成功の場合(S104_Yes)、第1実施形態の
図13を用いて説明した流れに従って、制御回路31は登録処理を実行する。
【0287】
他方で、取得失敗の場合(S104_No)、制御回路31は、セルユニットグループCU_Grの追加回数が、予め設定された判定値M(Mは、1以上の整数)以下であるか確認する(S130)。すなわち、制御回路31は、時間差の発生回数が、(N+M)以下であるか確認する。
【0288】
セルユニットグループCU_Grの追加回数が判定値M以下である場合(S130_Yes)、制御回路31は、追加するセルユニットグループCU_Grに対応したVth情報を作成する(S131)。
【0289】
次に、制御回路は、追加するセルユニットグループCU_Grに対応したCU_Gr変換情報を作成する(S132)。なお、ステップS131及びS132の順序は入れ替えてもよいし、並列に実行されてもよい。本例では、第4実施形態の
図36を用いて説明したステップS133のアンカー変換情報の作成が省略されている。
【0290】
セルユニットグループCU_Grの追加回数が判定値Mを超える場合(S130_No)、制御回路31は、ブロック引っ越しフラグを立てる(S107)。
【0291】
4.4.2 セルユニットグループ追加の具体例
次に、
図40及び
図41を参照して、セルユニットグループCU_Grを追加する場合の具体例について説明する。本具体例では、N=(セルユニットグループ総数-1)、すなわち1つのブロックBLKにおいて境界線の移動回数(すなわち、時間差の発生回数)が境界線の総数まで許容される場合について説明する。
図40は、1つのブロックBLKにおいてセルユニットグループCU_Grを追加する具体例を示す模式図である。
図41は、具体例におけるVth情報及びCU_Gr変換情報の一例を示すテーブルである。
【0292】
図40に示すように、第4実施形態の
図37を用いて説明した具体例と同様に、制御回路31は、境界0~境界2をそれぞれ移動させている。また、制御回路31は、セルユニットグループCU_Gr4を追加している。
【0293】
より具体的には、ストリングユニットSU1及びワード線WL2の組に対応するセルユニットCUと、ストリングユニットSU2及びワード線WL2の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、境界0を移動させている。境界0の移動量は、-6である。
【0294】
ストリングユニットSU0及びワード線WL9の組に対応するセルユニットCUと、ストリングユニットSU1及びワード線WL9の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、境界1を移動させている。境界1の移動量は、+5である。
【0295】
ストリングユニットSU2及びワード線WL14の組に対応するセルユニットCUと、ストリングユニットSU3及びワード線WL14の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、境界2を移動させている。境界2の移動量は、+11である。
【0296】
ストリングユニットSU1及びワード線WL15の組に対応するセルユニットCUと、ストリングユニットSU2及びワード線WL15の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、この2つのセルユニットCUの間に、新たに境界3を追加している。
【0297】
各セルユニットグループCU_Grの構成は、
図37の説明と同様である。
【0298】
図41に示すように、ブロックBLK0内にセルユニットグループCU_Gr4が追加されている。
【0299】
セルユニットグループCU_Gr4に対応するVth情報として、ΔVA4、ΔVB4、及びΔVC4の組が作成されている。
【0300】
CU_Gr変換情報には、境界0のCU_Gr変換情報として、“1111010”が登録される。“1111010”は、境界0の移動量が-6であることを示す。境界1のCU_Gr変換情報として、“0000101”が登録される。“0000101”は、境界1の移動量が+5であることを示す。境界2のCU_Gr変換情報として、“0001011”が登録される。“0001011”は、境界2の移動量が+11であることを示す。追加された境界3のCU_Gr変換情報として、“0111000”が登録される。“0111000”は、境界0を基準とした移動量が+56であることを示す。なお、境界3の移動量は、例えば、1つ前の境界2を基準としてもよい。
【0301】
4.4.3 本変形例に係る効果
本変形例に係る構成であれば、第4実施形態と同様の効果が得られる。
【0302】
5.第5実施形態
次に、第5実施形態について説明する。第5実施形態では、メモリシステム3がZNS非対応メモリシステムである場合において、書き込みブロックにパディングデータの挿入処理(以下、単に「パディング処理」とも表記する)を実行する場合について説明する。以下、第1乃至第4実施形態と異なる点を中心に説明する。
【0303】
5.1 パディングデータの挿入処理の流れ
まず、
図42を参照して、パディングデータの挿入処理の流れの一例について説明する。
図42は、パディングデータの挿入処理の流れの一例を示すフローチャートである。
【0304】
本実施形態では、時間差が発生した際に、時間差が発生したセルユニットグループCU_Grにおいて、残り(未書き込み)のセルユニットCUにパディングデータが挿入される。
【0305】
図42に示すように、まず、制御回路31は、時間差発生フラグの有無を確認する(S300)。
【0306】
時間差発生フラグがない場合(S301_No)、制御回路31は、パディングデータの挿入処理を終了する。
【0307】
時間差発生フラグがある(立っている)場合(S301_Yes)、制御回路31は、パディングデータの挿入処理を開始する開始アドレスを取得する(S302)。例えば、時間差が発生した次のセルユニットCUのアドレスが開始アドレスとして取得される。
【0308】
次に、制御回路31は、パディングデータの挿入処理を終了する終了アドレスを取得する(S303)。例えば、時間差が発生したセルユニットグループCU_Grの最後のセルユニットCUのアドレスが終了アドレスとして取得される。
【0309】
制御回路31は、パディングデータの挿入処理を実行する(S304)。より具体的には、制御回路31は、開始アドレスから終了アドレスの間にあるセルユニットCUにパディングデータを書き込む。換言すれば、制御回路31は、時間差が発生したセルユニットグループCU_Gr内の未書き込みのセルユニットCUにパディングデータを書き込む。
【0310】
制御回路31は、パディングデータの挿入処理が終了すると、次の書き込み先のアドレスを設定する(S305)。より具体的には、例えば、制御回路31は、次のセルユニットグループCU_Grの最初のセルユニットCUのアドレスを次の書き込み先のアドレスに設定する。なお、時間差が発生したセルユニットグループCU_Grが、ブロックBLK内の最後のセルユニットグループCU_Grである場合、制御回路31は、次の書き込み先のアドレスとして、別のブロックBLKのアドレスを設定する。
【0311】
5.2 パディングデータ挿入の具体例
次に、
図43を参照して、パディングデータPD挿入の具体例について説明する。
図43は、1つのブロックBLKにおいてパディングデータPDを挿入する具体例を示す模式図である。
【0312】
図43に示すように、セルユニットグループCU_Grの構成及びアンカーAKの配置は、第1実施形態の
図9と同様である。
【0313】
例えば、セルユニットグループCU_Gr2のストリングユニットSU0及びワード線WL9の組に対応するセルユニットCUと、ストリングユニットSU1及びワード線WL9の組に対応するセルユニットCUとの間に時間差が発生している。この場合、制御回路31は、セルユニットグループCU_Gr2の残りのセルユニットCUに、パディングデータPDの挿入処理を実行する。より具体的には、ストリングユニットSU1及びワード線WL9の組に対応するセルユニットCUから、ストリングユニットSU3及びワード線WL11の組に対応するセルユニットCUまでの、11個のセルユニットCUに、パディングデータPDが書き込まれる。
【0314】
そして、制御回路31は、次の書き込み先アドレスとして、セルユニットグループCU_Gr3のストリングユニットSU0及びワード線WL12の組に対応するセルユニットCUのアドレスを設定する。
【0315】
5.3 本実施形態に係る効果
本実施形態に係る構成であれば、パディングデータPDの挿入が可能なメモリシステム3、すなわち、ZNS非対応メモリシステムにおいて、パディングデータPDの挿入範囲を、時間差が発生したセルユニットグループCU_Grの未書き込みのセルユニットCUに設定できる。これにより、パディングデータPDの挿入範囲を、書き込み対象ブロックBLKの全ての未書き込みのセルユニットCUとする場合よりも狭くできる。これにより、無効データの増加が抑制されるため、WAFの増加が抑制される。よって、メモリシステム3の実効的なメモリ容量の低下が抑制できる。また、無効データの書き込み頻度の増加を抑制できるため、書き込み動作と消去動作の繰り返しの回数増加を抑制できる。よって、メモリシステム3の寿命劣化を抑制できる。
【0316】
5.4 第5実施形態の変形例
次に、第5実施形態の変形例について説明する。本変形例では、第1実施形態の変形例と同様に、アンカーAKが設定されていない場合について説明する。以下、第5実施形態と異なる点を中心に説明する。
【0317】
5.4.1 パディングデータ挿入の具体例
次に、
図44を参照して、パディングデータPD挿入の具体例について説明する。
図44は、1つのブロックBLKにおいてパディングデータを挿入する具体例を示す模式図である。
【0318】
図44に示すように、本例では、第5実施形態の具体例と同様に、セルユニットグループCU_Gr2のストリングユニットSU0及びワード線WL9の組に対応するセルユニットCUと、ストリングユニットSU1及びワード線WL9の組に対応するセルユニットCUとの間に時間差が発生している。このため、制御回路31は、セルユニットグループCU_Gr2の残りのセルユニットCUに、パディングデータPDの挿入処理を実行する。
【0319】
そして、制御回路31は、次の書き込み先アドレスとして、セルユニットグループCU_Gr3のストリングユニットSU0及びワード線WL12の組に対応するセルユニットCUのアドレスを設定する。
【0320】
5.4.2 本変形例に係る効果
本変形例に係る構成であれば、第5実施形態と同様の効果が得られる。
【0321】
6.第6実施形態
次に、第6実施形態について説明する。第6実施形態では、時間差が発生したセルユニットグループCU_GrにパディングデータPDを挿入し、アンカーAKの位置も変更する場合について説明する。以下、第1乃至第5実施形態と異なる点を中心に説明する。
【0322】
6.1 パディングデータの挿入処理及びアンカー変換情報の登録の流れ
まず、
図45を参照して、パディングデータPDの挿入処理及びアンカー変換情報の登録の流れの一例について説明する。
図45は、パディングデータPDの挿入処理及びアンカー変換情報の登録の流れの一例を示すフローチャートである。
【0323】
本実施形態では、時間差が発生した際に、時間差が発生したセルユニットグループCU_Grにおいて、残りのセルユニットCUにパディングデータPDが挿入される。
【0324】
図45に示すように、ステップS300~S305の流れは、第5実施形態の
図42を用いた説明と同様である。
【0325】
制御回路31は、次の書き込み先のアドレスを設定(S305)した後、アンカーAKの変更(移動)があるか確認する(S306)。例えば、パディングデータPD挿入対象のセルユニットCUにアンカーAKが含まれている場合、または移動させるアンカーAKがある場合、制御回路31は、アンカーAKの変更ありと判定する。
【0326】
アンカーAKの変更がある場合(S306_Yes)、制御回路31は、変更するアンカーAKの情報を取得する(S307)。例えば、アンカーAKの位置をセルユニットグループCU_Grの中央付近に設定する場合、制御回路31は、パディングデータPDの挿入に合わせて、セルユニットグループCU_Gr内の有効データが書き込まれたセルユニットCUの中央付近にアンカーAKを移動させる。他方で、アンカーAKの変更がない場合(S306_No)、制御回路31は、登録を終了する。
【0327】
制御回路31は、変更対象として選択したアンカーAKの位置を更新する(S308)。
【0328】
制御回路31は、移動させたアンカーAKの情報を、アンカー変換情報に登録する(309)。
【0329】
6.2 パディングデータ挿入及びアンカー移動の具体例
次に、
図46及び
図47を参照して、パディングデータPD挿入及びアンカーAK移動の具体例について説明する。
図46は、1つのブロックBLKにおいてパディングデータPDを挿入し且つアンカーAKを移動する具体例を示す模式図である。
図47は、具体例におけるVth情報及びアンカー変換情報の一例を示すテーブルである。
【0330】
図46に示すように、セルユニットグループCU_Grの構成及び変更前のアンカーAKの配置は、第1実施形態の
図9と同様である。
【0331】
例えば、第5実施形態の
図43の説明と同様に、セルユニットグループCU_Gr2のストリングユニットSU0及びワード線WL9の組に対応するセルユニットCUと、ストリングユニットSU1及びワード線WL9の組に対応するセルユニットCUとの間に時間差が発生している。この場合、制御回路31は、セルユニットグループCU_Gr2の残りのセルユニットCUに、パディングデータPDの挿入処理を実行する。より具体的には、ストリングユニットSU1及びワード線WL9の組に対応するセルユニットCUから、ストリングユニットSU3及びワード線WL11の組に対応するセルユニットCUまでの、11個のセルユニットCUに、パディングデータが書き込まれる。
【0332】
制御回路31は、次の書き込み先アドレスとして、セルユニットグループCU_Gr3のストリングユニットSU0及びワード線WL12の組に対応するセルユニットCUのアドレスを設定する。
【0333】
また、制御回路31は、アンカーAK2を、ストリングユニットSU0及びワード線WL8の組に対応するセルユニットCUから、ストリングユニットSU2及びワード線WL8の組に対応するセルユニットCUに移動させている。アンカーAK2の移動量は、+2である。
【0334】
図47に示すように、アンカー変換情報は、例えば4ビットデータ(0≦移動量≦+15)で示される。アンカーAKの移動が生じていない場合、アンカー位置情報は、“0000”に設定される。例えば、移動量が+15である場合、境界線の位置情報は、“1111”に設定される。
【0335】
図47の例では、アンカー変換情報には、セルユニットグループCU_Gr2に含まれるアンカーAK2の変換情報として、“0010”が登録される。“0010”は、アンカーAK2の移動量が+2であることを示す。
【0336】
6.3 本実施形態に係る効果
本実施形態に係る構成であれば、第5実施形態と同様の効果が得られる。
【0337】
更に、本実施形態に係る構成であれば、アンカーAKを移動できるため、パディングデータPDの挿入可能な範囲を増加できる。
【0338】
7.変形例等
上記実施形態に係る構成であれば、メモリシステムは、各々が複数のメモリセル(MC)を含む複数のセルユニット(CU)を含むブロック(BLK)を含むメモリチップ(11)と、メモリコントローラ(30)とを含む。複数のセルユニットのうちの第1セルユニット(CU、SU2_WL6)と第2セルユニット(CU、SU3_WL6)とは第1グループ(CU_Gr1)に分類され、複数のセルユニットのうちの第3セルユニット(CU、SU0_WL8)は第2グループ(CU_Gr2)に分類される。メモリコントローラは、複数のセルユニットのうち第1グループに分類されるセルユニットの複数のメモリセルからデータを読み出す際に、読み出し電圧の第1補正量(ΔVA1)を使用し、複数のセルユニットのうち第2グループに分類されるセルユニットの複数のメモリセルからデータを読み出す際に、読み出し電圧の第2補正量(ΔVA2)を使用し、第1セルユニットの書き込み動作を実行してから第2セルユニットの書き込み動作を実行するまでの時間差が基準値を超える場合、第1グループと第2グループとの境界位置(境界1)を、第1セルユニットと第2セルユニットとの間に変更し且つ第2セルユニットを第2グループに分類するように構成される。
【0339】
上記実施形態を適用することにより、処理能力を向上できる半導体記憶装置を提供できる。
【0340】
なお、実施形態は上記説明した形態に限定されるものではなく、種々の変形が可能である。
【0341】
更に、上記実施形態における「接続」とは、間に例えばトランジスタあるいは抵抗等、他の何かを介在させて間接的に接続されている状態も含む。
【0342】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0343】
1…データ処理装置、2…ホストデバイス、3…メモリシステム、10…不揮発性メモリ、11…メモリチップ、20…揮発性メモリ、30…メモリコントローラ、31…制御回路、32…バッファメモリ、33…ホストインターフェース回路、34…ECC回路、35…NANDインターフェース回路、36…読み出し電圧補正回路、37…RAMインターフェース回路、38…時間差タイマー、40…半導体基板、41…導電体層、42~47…導電体層、50…コア膜、51…半導体膜、52…積層膜、52a…トンネル絶縁膜、52b…電荷蓄積膜、52c…ブロック絶縁膜、53…半導体部、101…入出力回路、102…ロジック制御回路、103…アドレスレジスタ、104…コマンドレジスタ、105…ステータスレジスタ、106…シーケンサ、107…レディ/ビジー回路、108…電圧発生回路、109…メモリセルアレイ、110…ロウデコーダ、111…センスアンプ、112…データレジスタ、113…カラムデコーダ、AK0~AK4…アンカー
BL0~BLm…ビット線、BLK…ブロック、CH0~CH2…チャネル、MC0~MC15…メモリセルトランジスタ、PLN0、PLN1…プレーン、SGD0~SGD3…選択ゲート線、ST1、ST2…選択トランジスタ、SU0~SU3…ストリングユニット、WL0~WL15…ワード線。