(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023167896
(43)【公開日】2023-11-24
(54)【発明の名称】メモリシステム
(51)【国際特許分類】
G06F 12/00 20060101AFI20231116BHJP
G11C 16/04 20060101ALI20231116BHJP
G11C 16/34 20060101ALI20231116BHJP
【FI】
G06F12/00 550Z
G11C16/04 170
G11C16/34 120
G06F12/00 597U
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2022079428
(22)【出願日】2022-05-13
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】小島 慶久
(72)【発明者】
【氏名】井川原 俊一
(72)【発明者】
【氏名】檜田 敏克
【テーマコード(参考)】
5B160
5B225
【Fターム(参考)】
5B160NA02
5B225CA19
5B225DD05
5B225DD08
5B225DE08
5B225DE16
5B225EA05
5B225FA01
(57)【要約】 (修正有)
【課題】信頼性の低下を抑制するメモリシステムを提供する。
【解決手段】情報処理システム1において、メモリシステム3は、複数のメモリセルを含む第1ブロックを含む不揮発性メモリ10と、不揮発性メモリに記憶されるデータに対してサブブロック単位の消去処理を実行するメモリコントローラ20と、を備える。第1ブロックは、第1メモリセルを含む第1サブブロックと、第2メモリセルを含む第2サブブロックと、を含む。第2メモリセルは、第1メモリセルに直列接続され、又は同一のビット線に対して第1メモリセルと並列接続される。メモリコントローラは、第1サブブロックに対応する第1値が第1閾値に達したことに応じ、第1サブブロックから第1データを読み出し、第1サブブロックから読み出された第1データに対してエラー訂正処理を実行し、エラー訂正処理が実行された第1データを不揮発性メモリに書き込む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数のメモリセルを含む第1ブロックを含む不揮発性メモリであって、前記第1ブロックは、第1メモリセルを含む第1サブブロックと、前記第1メモリセルに直列接続され、又は同一のビット線に対して前記第1メモリセルと並列接続される第2メモリセルを含む第2サブブロックと、を含む不揮発性メモリと、
前記不揮発性メモリに記憶されるデータに対してサブブロック単位の消去処理を実行するメモリコントローラと、
を備え、
前記メモリコントローラは、前記第1サブブロックに対応する第1値が第1閾値に達したことに応じ、
前記第1サブブロックから第1データを読み出し、
前記第1サブブロックから読み出された前記第1データに対してエラー訂正処理を実行し、
前記エラー訂正処理が実行された前記第1データを前記不揮発性メモリに書き込む
ように構成された、
メモリシステム。
【請求項2】
前記メモリコントローラは、前記第1サブブロックに記憶されるデータの消去処理に応じて前記第1値をリセットするように構成された、
請求項1記載のメモリシステム。
【請求項3】
前記メモリコントローラは、前記第1値を管理するためのアップカウンタを含み、
前記メモリコントローラは、前記第2サブブロックに記憶されるデータの消去処理に応じて前記アップカウンタの値をインクリメントするように構成された、
請求項1記載のメモリシステム。
【請求項4】
前記メモリコントローラは、前記第1値を管理するためのダウンカウンタを含み、
前記メモリコントローラは、前記第2サブブロックに記憶されるデータの消去処理に応じて前記ダウンカウンタの値をデクリメントするように構成された、
請求項1記載のメモリシステム。
【請求項5】
前記メモリコントローラは、前記第2サブブロックに対応する第2値が前記第1閾値に達したことに応じ、
前記第2サブブロックから第2データを読み出し、
前記第2サブブロックから読み出された前記第2データに対してエラー訂正処理を実行し、
前記エラー訂正処理が実行された前記第2データを前記不揮発性メモリに書き込む
ように構成された、
請求項1記載のメモリシステム。
【請求項6】
前記第1値は前記第1サブブロックに記憶されたデータの信頼性に対応し、
前記第2値は前記第2サブブロックに記憶されたデータの信頼性に対応し、
前記メモリコントローラは、
前記第1サブブロックに記憶されるデータの消去処理に応じて、前記第2値を、前記第2サブブロックに記憶されたデータの前記信頼性が低下したことに対応する値に更新し、
前記第2サブブロックに記憶されるデータの消去処理に応じて、前記第1値を、前記第1サブブロックに記憶されたデータの前記信頼性が低下したことに対応する値に更新する
ように構成された、
請求項5記載のメモリシステム。
【請求項7】
前記メモリコントローラは、前記第1値を管理するためのアップカウンタを含み、
前記メモリコントローラは、前記第2サブブロックへのデータの書込み処理に応じて前記アップカウンタの値をインクリメントするように構成された、
請求項1記載のメモリシステム。
【請求項8】
前記メモリコントローラは、前記第1値を管理するためのダウンカウンタを含み、
前記メモリコントローラは、前記第2サブブロックへのデータの書込み処理に応じて前記ダウンカウンタの値をデクリメントするように構成された、
請求項1記載のメモリシステム。
【請求項9】
前記不揮発性メモリは、
第1方向に互いに離れて並ぶ第1導電体層及び第2導電体層と、
前記第1導電体層及び前記第2導電体層と前記第1方向に交差するメモリピラーと、
を含み、
前記メモリピラーのうち前記第1導電体層と交差する部分は、前記第1メモリセルとして機能し、
前記メモリピラーのうち前記第2導電体層と交差する部分は、前記第2メモリセルとして機能する、
請求項1記載のメモリシステム。
【請求項10】
前記メモリピラーは、前記第1導電体層と交差する部分を含む第1部分と、前記第2導電体層と交差する部分を含む第2部分と、を含み、
前記第1部分の側面と、前記第2部分の側面の延長とは、前記第1方向を含む面内でずれている、
請求項9記載のメモリシステム。
【請求項11】
複数のブロックを含む不揮発性メモリであって、前記複数のブロックの各々は複数のサブブロックを含み、前記複数のサブブロックの各々は複数のメモリセルを含む、不揮発性メモリと、
前記不揮発性メモリに記憶されるデータに対してサブブロック単位の消去処理を実行するメモリコントローラと、
を備え、
前記複数のブロックのうちの第1ブロックは、第1メモリセルを含む第1サブブロックと、前記第1メモリセルに直列接続され、又は同一のビット線に対して前記第1メモリセルと並列接続される第2メモリセルを含む第2サブブロックと、を少なくとも含み、
前記メモリコントローラは、前記第1サブブロックの疲弊量を示す第3値と、前記第1ブロックにおけるサブブロックの疲弊量の最大値を示す第4値との差が第2閾値に達したことに応じ、前記第1サブブロックに記憶されるデータを、前記第1サブブロック以外の第3サブブロックに書き込むように構成された、
メモリシステム。
【請求項12】
前記第3サブブロックは、データが消去済みのサブブロックである、
請求項11記載のメモリシステム。
【請求項13】
前記第3サブブロックは、前記第4値に対応するサブブロックであり、
前記メモリコントローラは、前記第1サブブロックに記憶されるデータと、前記第3サブブロックに記憶されるデータとを、前記第1サブブロックと前記第3サブブロックとで交換するように構成された、
請求項11記載のメモリシステム。
【請求項14】
前記不揮発性メモリは、
第1方向に互いに離れて並ぶ第1導電体層及び第2導電体層と、
前記第1導電体層及び前記第2導電体層と前記第1方向に交差するメモリピラーと、
を含み、
前記メモリピラーのうち前記第1導電体層と交差する部分は、前記第1メモリセルとして機能し、
前記メモリピラーのうち前記第2導電体層と交差する部分は、前記第2メモリセルとして機能する、
請求項11記載のメモリシステム。
【請求項15】
前記メモリピラーは、前記第1導電体層と交差する部分を含む第1部分と、前記第2導電体層と交差する部分を含む第2部分と、を含み、
前記第1部分の側面と、前記第2部分の側面の延長とは、前記第1方向を含む面内でずれている、
請求項14記載のメモリシステム。
【請求項16】
複数のブロックを含む不揮発性メモリであって、前記複数のブロックの各々は複数のサブブロックを含み、前記複数のサブブロックの各々は複数のメモリセルを含む、不揮発性メモリと、
前記不揮発性メモリに記憶されるデータに対してサブブロック単位の消去処理を実行するメモリコントローラと、
を備え、
前記複数のブロックのうちの第1ブロックは、第1メモリセルを含む第1サブブロックと、前記第1メモリセルに直列接続され、又は同一のビット線に対して前記第1メモリセルと並列接続される第2メモリセルを含む第2サブブロックと、を含み、
前記メモリコントローラは、前記第1サブブロックの疲弊量を示す第5値と、前記複数のブロックにおけるサブブロックの疲弊量の最大値を示す第6値との差が第3閾値に達したことに応じ、前記第1サブブロックに記憶されるデータを、前記第1サブブロック以外の第3サブブロックに書き込むように構成された、
メモリシステム。
【請求項17】
前記第3サブブロックは、データが消去済みのサブブロックである、
請求項16記載のメモリシステム。
【請求項18】
前記第3サブブロックは、前記第6値に対応するサブブロックであり、
前記メモリコントローラは、前記第1サブブロックに記憶されるデータと、前記第3サブブロックに記憶されるデータとを、前記第1サブブロックと前記第3サブブロックとで交換するように構成された、
請求項16記載のメモリシステム。
【請求項19】
前記不揮発性メモリは、
第1方向に互いに離れて並ぶ第1導電体層及び第2導電体層と、
前記第1導電体層及び前記第2導電体層と前記第1方向に交差するメモリピラーと、
を含み、
前記メモリピラーのうち前記第1導電体層と交差する部分は、前記第1メモリセルとして機能し、
前記メモリピラーのうち前記第2導電体層と交差する部分は、前記第2メモリセルとして機能する、
請求項16記載のメモリシステム。
【請求項20】
前記メモリピラーは、前記第1導電体層と交差する部分を含む第1部分と、前記第2導電体層と交差する部分を含む第2部分と、を含み、
前記第1部分の側面と、前記第2部分の側面の延長とは、前記第1方向を含む面内でずれている、
請求項19記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
実施形態は、メモリシステムに関する。
【背景技術】
【0002】
不揮発性メモリとしてのNANDフラッシュメモリと、不揮発性メモリを制御するメモリコントローラと、を含むメモリシステムが知られている。メモリコントローラは、ホストからの要求に応じて、不揮発性メモリにデータを書き込む。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許出願公開第2020/0210309号明細書
【特許文献2】米国特許出願公開第2020/0411129号明細書
【特許文献3】米国特許出願公開第2021/0011633号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
信頼性の低下を抑制する。
【課題を解決するための手段】
【0005】
実施形態のメモリシステムは、不揮発性メモリと、メモリコントローラと、を備える。上記不揮発性メモリは、複数のメモリセルを含む第1ブロックを含む。上記第1ブロックは、第1メモリセルを含む第1サブブロックと、第2メモリセルを含む第2サブブロックと、を含む。上記第2メモリセルは、上記第1メモリセルに直列接続され、又は同一のビット線に対して上記第1メモリセルと並列接続される。上記メモリコントローラは、上記不揮発性メモリに記憶されるデータに対してサブブロック単位の消去処理を実行する。上記メモリコントローラは、上記第1サブブロックに対応する第1値が第1閾値に達したことに応じ、上記第1サブブロックから第1データを読み出し、上記第1サブブロックから読み出された上記第1データに対してエラー訂正処理を実行し、上記エラー訂正処理が実行された上記第1データを上記不揮発性メモリに書き込むように構成される。
【図面の簡単な説明】
【0006】
【
図1】第1実施形態に係る情報処理システムの構成の一例を示すブロック図。
【
図2】第1実施形態に係るメモリバスで用いられる信号の一例を示すブロック図。
【
図3】第1実施形態に係る不揮発性メモリのメモリ構成の一例を示すブロック図。
【
図4】第1実施形態に係る不揮発性メモリの回路構成の一例を示す回路図。
【
図5】第1実施形態に係る不揮発性メモリが備えるブロックの平面レイアウトの一例を示す平面図。
【
図6】第1実施形態に係る不揮発性メモリが備えるブロックの断面構造の一例を示す、
図5のVI-VI線に沿った断面図。
【
図7】第1実施形態に係る不揮発性メモリが備えるメモリピラーの断面構造の一例を示す、
図6のVII-VII線に沿った断面図。
【
図8】第1実施形態に係るメモリシステムにおけるサブブロック単位の消去処理の第1例を示す図。
【
図9】第1実施形態に係るメモリシステムにおけるサブブロック単位の消去処理の第2例を示す図。
【
図10】第1実施形態に係るメモリシステムにおけるUSBD(Unselected Sub-Block Disturb)量に基づく信頼性判定処理の一例を示すフローチャート。
【
図11】第2実施形態に係るメモリシステムにおける疲弊量に基づく信頼性判定処理の一例を示すフローチャート。
【
図12】第3実施形態に係るメモリシステムにおける疲弊量に基づく信頼性判定処理の一例を示すフローチャート。
【発明を実施するための形態】
【0007】
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。
【0008】
1. 第1実施形態
1.1 構成
1.1.1 情報処理システム
第1実施形態に係る情報処理システムの構成について説明する。
【0009】
図1は、第1実施形態に係る情報処理システムの構成を示すブロック図である。
図1に示すように、情報処理システム1は、ホスト2及びメモリシステム3を含む。
【0010】
ホスト2は、メモリシステム3を使用してデータを処理するデータ処理装置である。ホスト2は、例えば、パーソナルコンピュータ又はデータセンタ内のサーバである。
【0011】
メモリシステム3は、ホスト2に接続されるように構成された記憶装置である。メモリシステム3は、例えば、SDTMカードのようなメモリカード、UFS(Universal Flash Storage)、SSD(Solid State Drive)である。メモリシステム3は、ホスト2からの要求に応じてデータの書込み処理、読出し処理、消去処理を実行する。メモリシステム3は、内部処理として書込み処理、読出し処理、及び消去処理を実行してもよい。
【0012】
1.1.2 メモリシステム
第1実施形態に係るメモリシステムの内部構成について説明する。
【0013】
メモリシステム3は、不揮発性メモリ10、及びメモリコントローラ20を含む。
【0014】
不揮発性メモリ10は、例えば、NANDフラッシュメモリである。不揮発性メモリ10は、複数のブロックBLK(BLK0~BLKn)を含む。各ブロックBLKは、複数のサブブロックSBLK(SBLK0~SBLKm)を含む。m及びnは、1以上の整数である。各サブブロックSBLKは、複数のメモリセルを含む。各メモリセルは、不揮発にデータを記憶する。ブロックBLK及びサブブロックSBLKは、例えば、消去処理におけるデータの消去単位である。以下では、ブロックBLKを消去単位とする消去処理を、ブロック単位の消去処理とも呼ぶ。サブブロックSBLKを消去単位とする消去処理を、サブブロック単位の消去処理とも呼ぶ。以下では、説明の便宜上、1個のブロックBLKに2個のサブブロックSBLK0及びSBLK1が含まれる場合(m=1の場合)について説明する。
【0015】
メモリコントローラ20は、例えばSoC(System-on-a-Chip)のような集積回路で構成される。メモリコントローラ20は、ホスト2からの要求に基づいて、不揮発性メモリ10を制御する。
【0016】
具体的には、例えば、メモリコントローラ20は、ホスト2からの書込み要求に基づいて、書込みデータを不揮発性メモリ10に書き込む。また、メモリコントローラ20は、ホスト2からの読出し要求に基づいて、読出しデータを不揮発性メモリ10から読み出す。そして、メモリコントローラ20は、読出しデータに基づくデータをホスト2に送信する。
【0017】
1.1.3 メモリコントローラ
次に、引き続き
図1を参照して、メモリコントローラ20の内部構成について説明する。メモリコントローラ20は、制御回路21、ホストインタフェース回路(ホストI/F)22、ECC(Error Correction and Check)回路23、メモリインタフェース回路(メモリI/F)24、及び複数のカウンタ25を含む。以下に説明されるメモリコントローラ20の各部21-25の機能は、専用ハードウェア、プログラムを実行するプロセッサ、又はこれらの組合せのいずれでも実現可能である。
【0018】
制御回路21は、メモリコントローラ20の全体を制御する回路である。制御回路21は、例えば、CPU(Central Processing Unit)のようなプロセッサ、ROM(Read Only Memory)、及びRAM(Random Access Memory)を含む。
【0019】
ホストインタフェース回路22は、メモリコントローラ20とホスト2との間の通信を司る。ホストインタフェース回路22は、ホストバスHBを介してホスト2と接続される。ホストバスHBは、例えば、SDTMインタフェース、SAS(Serial Attached SCSI (Small Computer System Interface))、SATA(Serial ATA (Advanced Technology Attachment))、又はPCIeTM(Peripheral Component Interconnect express)に準拠する。
【0020】
ECC回路23は、不揮発性メモリ10に記憶されるデータに関するエラー検出処理及びエラー訂正処理を行う。すなわちデータの書込み処理時には、ECC回路23は、書込みデータに誤り訂正符号を付与する。データの読出し処理時には、ECC回路23は、読出しデータを復号し、フェイルビットの有無を検出する。フェイルビットとは、あるメモリセルから読み出されたデータ(1以上のビットを含む)のうち、当該メモリセルに書き込まれたデータと異なるビットである。そしてフェイルビットが検出された際には、ECC回路23は、フェイルビットの位置を特定し、エラー訂正する。
【0021】
メモリインタフェース回路24は、不揮発性メモリ10とメモリコントローラ20との間の通信を司る。メモリインタフェース回路24は、メモリバスMBを介して不揮発性メモリ10と接続される。メモリバスMBは、例えば、SDR(single data rate)インタフェース、トグルDDR(double data rate)インタフェース、又はONFI(Open NAND flash interface)に準拠する。
【0022】
複数のカウンタ25の各々は、例えば、レジスタを含む。複数のカウンタ25の数は、例えば、不揮発性メモリ10内のサブブロックSBLKの数に対応する。各カウンタ25は、制御回路21からの指示に応じて、カウント値を記憶する。各カウンタ25は、アップカウンタでもよい。アップカウンタである場合、各カウンタ25は、制御回路21からの指示に応じて、カウント値をカウントアップ(インクリメント)する。各カウンタ25は、ダウンカウンタでもよい。ダウンカウンタである場合、各カウンタ25は、制御回路21からの指示に応じて、カウント値をカウントダウン(デクリメント)する。各カウンタ25は、制御回路21からの指示に応じて、カウント値を初期値にリセットする。初期値は、任意の値に設定され得る。具体的には、カウンタ25がアップカウンタである場合、初期値は、0に設定され得る。カウンタ25がダウンカウンタである場合、初期値は、正の値に設定され得る。
【0023】
1.1.4 メモリバス
次に、不揮発性メモリ10とメモリコントローラ20との間でやり取りされる信号の一例を説明する。
図2は、第1実施形態に係るメモリバスで用いられる信号の一例を示すブロック図である。
【0024】
メモリバスMBで用いられる信号は、例えば、チップイネーブル信号CE-、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号WE-、リードイネーブル信号RE-、ライトプロテクト信号WP-、レディ・ビジー信号RB-、及び入出力信号I/Oを含む。本明細書において、信号の名称の末尾の“-”は、その信号が“L(Low)”レベルの場合にアサートされることを意味する。
【0025】
チップイネーブル信号CE-は、不揮発性メモリ10をイネーブルにするための信号である。
【0026】
コマンドラッチイネーブル信号CLE及びアドレスラッチイネーブル信号ALEは、不揮発性メモリ10への入力信号I/Oがそれぞれコマンド及びアドレスであることを不揮発性メモリ10に通知する信号である。
【0027】
ライトイネーブル信号WE-は、入力信号I/Oを不揮発性メモリ10に取り込ませるための信号である。
【0028】
リードイネーブル信号RE-は、不揮発性メモリ10から出力信号I/Oを読み出すための信号である。
【0029】
ライトプロテクト信号WP-は、データの書き込み及び消去の禁止を不揮発性メモリ10に指示するための信号である。
【0030】
レディ・ビジー信号RB-は、不揮発性メモリ10がレディ状態であるか、それともビジー状態であるかを示す信号である。レディ状態は、不揮発性メモリ10がメモリコントローラ20からの命令を受信出来る状態である。ビジー状態は、不揮発性メモリ10がメモリコントローラ20からの命令を受信出来ない状態である。レディ・ビジー信号RB-は、“L”レベルがビジー状態を示す。
【0031】
入出力信号I/Oは、例えば8ビットの信号である。入出力信号I/Oは、不揮発性メモリ10とメモリコントローラ20との間で送受信されるデータの実体である。入出力信号I/Oは、コマンド、アドレス、並びに書込みデータ及び読出しデータ等のデータを含む。
【0032】
1.1.5 不揮発性メモリ
次に、不揮発性メモリ10の構成について説明する。
【0033】
1.1.5.1 メモリ構成
図3は、第1実施形態に係る不揮発性メモリのメモリ構成の一例を示すブロック図である。不揮発性メモリ10は、例えば、システム領域11、及びユーザ領域12を含む。
【0034】
システム領域11は、ホスト2からのアクセスが制限されるメモリ領域である。システム領域11には、複数のサブブロックSBLKが含まれる。具体的には、例えば、システム領域11には、不揮発性メモリ10のメモリ容量に比例した数の割当てが行われるサブブロックSBLKと、不揮発性メモリ10のメモリ容量と無関係に一定数の割当てが行われるサブブロックSBLKと、が含まれる。不揮発性メモリ10のメモリ容量に比例した数の割当てが行われるサブブロックSBLKの例としては、論理アドレスと物理アドレスとの対応関係を示すLUT(Look Up Table)を記憶するためのサブブロックSBLKが挙げられる。不揮発性メモリ10のメモリ容量と無関係に一定数の割当てが行われるサブブロックSBLKの例としては、ファームウェアを格納するためのサブブロックSBLK、管理データを記憶するためのサブブロックSBLK、電源断時にメモリコントローラ20内のデータを退避するためのサブブロックSBLK、及びLUTを記憶するためのサブブロックSBLKのうち、LUTの書込み先として供給されるサブブロックSBLKが挙げられる。
【0035】
ユーザ領域12は、ホスト2からの書込みデータを記憶するためのメモリ領域である。ユーザ領域12には、複数のサブブロックSBLKが含まれる。ユーザ領域12は、オーバープロビジョニングのためのサブブロックSBLKを含んでもよい。ユーザ領域12には、例えば、不揮発性メモリ10内のサブブロックSBLKのうち、システム領域11に割り当てられたサブブロックSBLKを除く全てのサブブロックSBLKが割り当てられてもよい。ユーザ領域12内のサブブロックSBLKには、例えば、有効なデータが記憶される。なお、ユーザ領域12には、不揮発性メモリ10のメモリ容量に比例した数の割当てが行われるサブブロックSBLKと、不揮発性メモリ10のメモリ容量と無関係に一定数の割当てが行われるサブブロックSBLKと、が含まれる。不揮発性メモリ10のメモリ容量と無関係に一定数の割当てが行われるサブブロックSBLKの例としては、性能安定化のためにプールされるフリーブロックBLK、消去済みブロックBLK、及び書込み先として供給されるブロックBLKが挙げられる。
【0036】
なお、各サブブロックSBLKは、システム領域11及びユーザ領域12に動的に割り当てられる。すなわち、システム領域11に割り当てられているサブブロックSBLKは、ユーザ領域12に再割り当てされ得る。ユーザ領域12に割り当てられているサブブロックSBLKは、システム領域11に再割り当てされ得る。
【0037】
1.1.5.2 回路構成
図4は、第1実施形態に係る不揮発性メモリの回路構成の一例を示す回路図である。
図4では、一例として、1個のブロックBLKの構成が示される。ブロックBLKは、例えば、4個のストリングユニットSU0~SU3を含む。なお、
図4において、ストリングユニットSU2及びSU3の構成は簡略化して示される。
【0038】
各ストリングユニットSUは、ビット線BL0~BLk(kは、1以上の整数)にそれぞれ関連付けられた複数のNANDストリングNSを含む。各NANDストリングNSは、例えばメモリセルトランジスタMT0~MT7、並びに選択トランジスタST1及びST2を含む。
【0039】
メモリセルトランジスタMTは、電荷蓄積層を含むトランジスタである。メモリセルトランジスタMTは、電荷蓄積層に蓄積される電荷の量に応じて、データを不揮発に記憶する。選択トランジスタST1及びST2のそれぞれは、各種処理時におけるストリングユニットSUの選択に使用される。
【0040】
各NANDストリングNSにおいて、メモリセルトランジスタMT0~MT7は、直列接続される。直列接続されたメモリセルトランジスタMT0~MT7の一端と、関連付けられたビット線BLとの間には、選択トランジスタST1が接続される。直列接続されたメモリセルトランジスタMT0~MT7の他端には、選択トランジスタST2のドレインが接続される。選択トランジスタST2のソースには、ソース線SLが接続される。
【0041】
同一のブロックBLKにおいて、ストリングユニットSU0~SU3に含まれた複数の選択トランジスタST1の各々のゲートは、選択ゲート線SGD0~SGD3にそれぞれ共通接続される。複数のメモリセルトランジスタMT0~MT7の各々の制御ゲートは、ワード線WL0~WL7にそれぞれ共通接続される。複数の選択トランジスタST2の各々のゲートは、選択ゲート線SGSに共通接続される。
【0042】
ビット線BL0~BLkは、複数のブロックBLK0~BLKnで共有される。同じカラムアドレスに対応するNANDストリングNSには、同じビット線BLが接続される。ワード線WL0~WL7は、ブロックBLK0~BLKnの各々に設けられる。ソース線SLは、例えば、複数のブロックBLKで共有される。
【0043】
1つのストリングユニットSU内で共通のワード線WLに接続された複数のメモリセルトランジスタMTの集合は、セルユニットCUとも呼ばれる。セルユニットCUは、例えば、データの書込み単位として使用される。各々が1ビットデータを記憶する複数のメモリセルトランジスタMTを含むセルユニットCUの記憶容量は、「1ページデータ」として定義される。つまり、1ページデータは、セルユニットCU内のメモリセルトランジスタMTの数に応じた列数を有する1ビットデータ列を記憶するデータ領域である。1ページデータは、例えば、データの読出し単位として使用される。セルユニットCUは、メモリセルトランジスタMTが記憶するビットデータ数に応じて2ページデータ以上の記憶容量を有し得る。書込み処理は、メモリセルトランジスタMTに書き込むビットデータ数に応じた複数の書込みモードに分類される。例えば、1ビットデータを書き込む書込みモードは、SLC(Single Level Cell)モードとも呼ばれる。2ビットデータを書き込む書込みモードは、MLC(Multi Level Cell)モードとも呼ばれる。3ビットデータを書き込む書込みモードは、TLC(Triple Level Cell)モードとも呼ばれる。4ビットデータを書き込む書込みモードは、QLC(Quadruple Level Cell)モードとも呼ばれる。
【0044】
以上のような回路構成のブロックBLKにおいて、複数のメモリセルトランジスタMTは、複数のサブブロックSBLK0~SBLKmのいずれかに割り当てられる。具体的には、1個のNANDストリングNS内のメモリセルトランジスタMT0~MT7のうち、或るサブブロックSBLKに含まれる全てのメモリセルトランジスタMTは、他のサブブロックSBLKに含まれるメモリセルトランジスタを介することなく、直列接続する。
【0045】
図4の例では、ブロックBLK内の複数のメモリセルトランジスタMTが、サブブロックSBLK0及びSBLK1のいずれかに含まれる場合が示される。この場合、ワード線WL0~WL3にそれぞれ接続された複数のメモリセルトランジスタMTは、サブブロックSBLK0に含まれる。ワード線WL4~WL7にそれぞれ接続された複数のメモリセルトランジスタMTは、サブブロックSBLK1に含まれる。言い換えると、NANDストリングNSのうち、メモリセルトランジスタMT0~MT3を含むメモリストリングは、サブブロックSBLK0に含まれる。NANDストリングNSのうち、メモリセルトランジスタMT4~MT7を含むメモリストリングは、サブブロックSBLK1に含まれる。
【0046】
なお、以上で説明したブロックBLKの回路構成はあくまで一例であり、これに限定されない。例えば、不揮発性メモリ10に含まれるブロックBLKの個数は、任意の個数に設計され得る。各ブロックBLKが含むサブブロックSBLKの個数は、任意の個数に設計され得る。各ブロックBLKが含むストリングユニットSUの個数は、任意の個数に設計され得る。各NANDストリングNSが含むメモリセルトランジスタMT並びに選択トランジスタST1及びST2の各々の個数は、それぞれ任意の個数に設計され得る。
【0047】
1.1.5.3 平面レイアウト
以下に、不揮発性メモリ10が備えるブロックBLKの構造の一例について説明する。なお、以下で参照される図面において、X方向はワード線WLの延伸方向に対応する。Y方向はビット線BLの延伸方向に対応する。Z方向はブロックBLKの形成に使用される半導体基板の表面に対する鉛直方向に対応する。
【0048】
平面図において、図を見易くするために、ハッチングが適宜付加される。平面図に付加されたハッチングは、ハッチングが付加された構成要素の素材や特性とは必ずしも関連していない。断面図において、図を見易くするために、構成の図示が適宜省略される。
【0049】
図5は、第1実施形態に係る不揮発性メモリが備えるブロックの平面レイアウトの一例を示す平面図である。
図5では、1個のブロックBLK(すなわち、ストリングユニットSU0~SU3)の部分、並びに当該1個のブロックBLKの部分に対応する複数のビット線BL、2個の部材SLT、及び3個の部材SHEが示される。
【0050】
各部材SLTは、例えば、XZ面に広がる板状の部材である。各部材SLTは、コンタクトLI及びスペーサSPを含む。コンタクトLIは、XZ平面に広がる板状の導電体である。スペーサSPは、コンタクトLIのY方向側の側面に設けられた絶縁体である。コンタクトLIは、Z方向に見て、スペーサSPに囲まれる。2個の部材SLTは、1個のブロックBLKを挟むように、Y方向に並ぶ。
【0051】
各部材SHEは、例えば、XZ面に広がる板状の絶縁体である。3個の部材SHEは、2個の部材SLTの間においてY方向に並ぶ。
【0052】
ブロックBLKは、積層配線LS、複数のメモリピラーMP、及び複数のコンタクトCVを含む。
【0053】
積層配線LSは、各々がZ方向に互いに離れて設けられた複数の導電体層を含む積層構造体である。積層配線LSに含まれる複数の導電体層はそれぞれ、例えば、ソース線SL、ワード線WL、並びに選択ゲート線SGD及びSGSとして機能する。積層配線LSに含まれる複数の導電体層のうちワード線WL、並びに選択ゲート線SGD及びSGSとして機能する導電体層は、各部材SLTによって分断される。積層配線LSに含まれる複数の導電体層のうち選択ゲート線SGDとして機能する導電体層は、各部材SHEによって分断される。
【0054】
各メモリピラーMPは、Z方向に見て、積層配線LSに囲まれる柱状の構造体である。各メモリピラーMPは、例えば、1個のNANDストリングNSとして機能する。複数のメモリピラーMPは、隣り合う部材SLTの間の領域において、例えば19列の千鳥状に配置される。そして、例えば、紙面の上側から数えて、5列目のメモリピラーMPと、10列目のメモリピラーMPと、15列目のメモリピラーMPとのそれぞれに、1個の部材SHEが重なっている。
【0055】
複数のビット線BLは、それぞれがY方向に延び、X方向に並ぶ。各ビット線BLは、ストリングユニットSU毎に、少なくとも1個のメモリピラーMPと重なるように配置される。
図5の例では、2本のビット線BLが、1個のメモリピラーMPと重なるように配置される場合が示される。メモリピラーMPと重なる複数のビット線BLのうち1本のビット線BLと、対応する1個のメモリピラーMPとの間は、コンタクトCVを介して電気的に接続される。
【0056】
例えば、部材SHEと接触しているメモリピラーMPと、ビット線BLとの間のコンタクトCVは、省略される。言い換えると、異なる2つの選択ゲート線SGDに接したメモリピラーMPとビット線BLとの間のコンタクトCVは、省略される。
【0057】
以上で説明された平面レイアウトが、Y方向に繰り返し配置される。そして、部材SLTによって区切られた領域のそれぞれが、1個のブロックBLKに対応する。また、部材SLT又はSHEによって区切られた領域のそれぞれが、1個のストリングユニットSUに対応する。
【0058】
なお、隣り合う部材SLT間におけるメモリピラーMPや部材SHE等の個数及び配置は、
図5を用いて説明された構成に限定されず、適宜変更され得る。各メモリピラーMPと重なるビット線BLの数は、任意の数に設計され得る。
【0059】
1.1.5.4 断面構造
図6は、第1実施形態に係る不揮発性メモリが備えるブロックの断面構造の一例を示す、
図5のVI-VI線に沿った断面図である。
図6に示すように、ブロックBLKは、導電体層50~55を更に含む。
【0060】
導電体層50は、例えば、XY平面に広がる板状の導電体である。導電体層50は、p型ウェル領域として使用される。導電体層50は、例えば、リンがドープされたシリコンを含む。
【0061】
導電体層50の上面上には、図示せぬ絶縁体層を介して導電体層51が設けられる。導電体層51は、例えば、XY平面に広がる板状の導電体である。導電体層51は、選択ゲート線SGSとして使用される。導電体層51は、例えば、タングステンを含む。
【0062】
導電体層51の上面上には、図示せぬ絶縁体層及び導電体層52が交互に積層される。導電体層52は、例えば、XY平面に広がる板状の導電体である。積層された複数の導電体層52は、導電体層51側から順に、それぞれワード線WL0~WL3として使用される。導電体層52は、例えば、タングステンを含む。
【0063】
複数の導電体層52のうち最上層の導電体層52(導電体層52の最上層)の上面上には、図示せぬ絶縁体層及び導電体層53が交互に積層される。導電体層53は、例えば、XY平面に広がる板状の導電体である。積層された複数の導電体層53は、導電体層52側から順に、それぞれワード線WL4~WL7として使用される。導電体層53は、例えば、タングステンを含む。
【0064】
複数の導電体層53のうち最上層の導電体層53(導電体層53の最上層)の上面上には、図示せぬ絶縁体層を介して導電体層54が設けられる。導電体層54は、例えば、XY平面に広がる板状の導電体である。導電体層54は、選択ゲート線SGDとして使用される。導電体層54は、例えば、タングステンを含む。
【0065】
導電体層54の上面上には、図示せぬ絶縁体層を介して導電体層55が設けられる。導電体層55は、例えば、Y方向に延びるライン状の導電体である。導電体層55は、ビット線BLとして使用される。つまり、図示せぬ領域において、複数の導電体層55が、X方向に沿って配列している。導電体層55は、例えば、銅を含む。
【0066】
導電体層51~54を貫通するように、複数のメモリピラーMPが設けられる。各メモリピラーMPは、Z方向に延びる。各メモリピラーMPの底部は、導電体層50に達する。メモリピラーMPと導電体層51とが交差した部分が、選択トランジスタST2として機能する。メモリピラーMPと1個の導電体層52又は1個の導電体層53とが交差した部分が、1個のメモリセルトランジスタMTとして機能する。メモリピラーMPと導電体層54とが交差した部分が、選択トランジスタST1として機能する。
【0067】
各メモリピラーMPは、例えばコア膜60、半導体膜61、及び積層膜62を含む。コア膜60は、Z方向に延びる。例えば、コア膜60の上端は、導電体層54よりも上層に位置する。コア膜60の下端は、導電体層51よりも下層に位置する。半導体膜61は、コア膜60の周囲を覆う。半導体膜61の一部が、導電体層50に接する。積層膜62は、半導体膜61と導電体層50とが接触した部分を除いて、半導体膜61の側面及び底面を覆う。コア膜60は、例えば、酸化シリコン等の絶縁体を含む。半導体膜61は、例えば、シリコンを含む。
【0068】
また、各メモリピラーMPは、上部UMP及び下部LMPを含む。上部UMPの下端及び下部LMPの上端は、導電体層52の最上層と、複数の導電体層53のうち最下層の導電体層53(導電体層53の最下層)との間に位置する。上部UMPの下端及び下部LMPの上端は、半導体膜61が連続するように接触する。下部LMPの側面と、上部UMPの側面の延長とは、一致しない(ずれている)。このような下部LMPの側面と、上部UMPの側面の延長との間のずれは、
図6に示したYZ断面内に限らず、Z方向を含む任意の断面において生じる。下部LMPのうち、複数の導電体層52を含む部分は、サブブロックSBLK0に対応する。上部UMPのうち、複数の導電体層53を含む部分は、サブブロックSBLK1に対応する。
【0069】
メモリピラーMP内の半導体膜61の上面には、柱状のコンタクトCVが設けられる。図示された領域には、部材SLT及びSHEによって区切られた断面領域のそれぞれにおいて2個のメモリピラーMPのうち、1個のメモリピラーMPにそれぞれ対応する1個のコンタクトCVが表示されている。部材SHEと重ならず、かつコンタクトCVが接続されていないメモリピラーMPには、図示されない領域において、対応するコンタクトCVが接続される。
【0070】
コンタクトCVの上面には、1個の導電体層55、すなわち1本のビット線BLが接する。1個の導電体層55は、部材SLT及びSHEによって区切られた空間のそれぞれにおいて、1個のコンタクトCVと接する。つまり、導電体層55の各々には、隣り合う部材SLT及びSHEの間に設けられたメモリピラーMPと、隣り合う2個の部材SHEの間に設けられたメモリピラーMPとが電気的に接続される。
【0071】
部材SLTは、導電体層51~54を分断する。部材SLTの上端は、メモリピラーMPの上端よりも上方に位置する。コンタクトLIの下端は、導電体層50と接する。スペーサSPは、コンタクトLIと導電体層51~54との間に設けられる。つまり、コンタクトLIと、導電体層51~54との間は、スペーサSPによって離隔及び絶縁される。コンタクトLIは、ソース線SLの一部として使用され得る。
【0072】
部材SHEは、導電体層54を分断する。部材SHEの上端は、メモリピラーMPの上端よりも上方に位置する。部材SHEの下端は、導電体層54と導電体層53の最上層との間に位置する。
【0073】
図7は、第1実施形態に係る不揮発性メモリが備えるメモリピラーの断面構造の一例を示す、
図6のVII-VII線に沿った断面図である。より具体的には、
図7は、導電体層52を含む層におけるメモリピラーMP及び積層配線LSの断面構造を示す。
【0074】
積層膜62は、例えばトンネル絶縁膜63、電荷蓄積膜64、及びブロック絶縁膜65を含む。
【0075】
導電体層52を含む断面において、コア膜60は、例えばメモリピラーMPの中央部に設けられる。半導体膜61は、コア膜60の側面を囲む。トンネル絶縁膜63は、半導体膜61の側面を囲む。電荷蓄積膜64は、トンネル絶縁膜63の側面を囲む。ブロック絶縁膜65は、電荷蓄積膜64の側面を囲む。導電体層52は、ブロック絶縁膜65の側面を囲む。
【0076】
半導体膜61は、メモリセルトランジスタMT0~MT7並びに選択トランジスタST1及びST2のチャネル(電流経路)として使用される。トンネル絶縁膜63及びブロック絶縁膜65のそれぞれは、例えば、酸化シリコンを含む。電荷蓄積膜64は、電荷を蓄積する機能を有する。電荷蓄積膜64は、例えば、窒化シリコンを含む。これにより、各メモリピラーMPは、1個のNANDストリングNSとして機能し得る。
【0077】
1.2 動作
次に、第1実施形態に係るメモリシステムにおける動作について説明する。
【0078】
1.2.1 サブブロック単位の消去処理
図8は、第1実施形態に係るメモリシステムにおけるサブブロック単位の消去処理の第1例を示す図である。
図9は、第1実施形態に係るメモリシステムにおけるサブブロック単位の消去処理の第2例を示す図である。
図8及び
図9では、サブブロック単位の消去処理において、NANDストリングNSに印加される電圧の例が示される。第1例は、サブブロックSBLK1に記憶されたデータを維持しつつ、サブブロックSBLK0に記憶されたデータを消去する場合に対応する。第2例は、サブブロックSBLK0に記憶されたデータを維持しつつ、サブブロックSBLK1に記憶されたデータを消去する場合に対応する。
【0079】
図8及び
図9に示すように、いずれの場合においても、p型ウェル領域には、電圧VERAが印加される。電圧VERAは、消去電圧であり、例えば、20Vである。選択ゲート線SGS及びSGD、並びにビット線BLは、フローティング状態にされる。
【0080】
サブブロックSBLK1に記憶されたデータを維持しつつ、サブブロックSBLK0に記憶されたデータを消去する場合、ワード線WL0~WL3には、電圧VSSが印加される。電圧VSSは、接地電圧であり、例えば、0Vである。これにより、メモリセルトランジスタMT0~MT3では、電荷蓄積膜64に正孔(ホール)が注入され、データは消去される。一方、ワード線WL4~WL7は、フローティング状態にされる。これにより、メモリセルトランジスタMT4~MT7では、正孔が注入されず、データは維持される。
【0081】
サブブロックSBLK0に記憶されたデータを維持しつつ、サブブロックSBLK1に記憶されたデータを消去する場合、ワード線WL0~WL3は、フローティング状態にされる。これにより、メモリセルトランジスタMT0~MT3では、正孔が注入されず、データは維持される。一方、ワード線WL4~WL7には、電圧VSSが印加される。これにより、メモリセルトランジスタMT4~MT7では、正孔が注入され、データは消去される。
【0082】
以上のような動作により、サブブロック単位での消去処理が実行される。
【0083】
以下では、サブブロック単位の消去処理の対象となるサブブロックSBLKは、対象サブブロックSBLKとも呼ぶ。また、対象サブブロックSBLK以外のサブブロックSBLKは、非対象サブブロックSBLKとも呼ぶ。
【0084】
1.2.2 信頼性判定処理
対象サブブロックSBLKへのサブブロック単位の消去処理は、対象サブブロックSBLKを含むブロックBLK内の非対象サブブロックSBLKに記憶されたデータの一部にフェイルビットを生じさせる可能性がある。同様に、対象サブブロックSBLKへの書込み処理は、対象サブブロックSBLKを含むブロックBLK内の非対象サブブロックSBLKに記憶されたデータにフェイルビットを生じさせる可能性がある。このような、対象サブブロックSBLKへの消去処理又は書込み処理によって生じるフェイルビットの発生度合いを見積もる指標として、例えば、USBD(Unselected Sub-Block Disturb)量が用いられる。
【0085】
USBD量は、不揮発性メモリ10に記憶されたデータの信頼性を示す。USBD量は、データの信頼性が低下するほど、増加する。USBD量は、データに含まれるフェイルビットがエラー訂正処理等によって訂正されると、低下させることができる。USBD量は、サブブロックSBLK毎に見積もられる。具体的には、例えば、或るサブブロックSBLKのUSBD量は、当該或るサブブロックSBLKに対応するカウンタ25のカウント値に応じて見積もられる。USBD量は、カウンタ25のカウント値そのものであってもよい。USBD量は、カウンタ25のカウント値に基づく値として、制御回路21によって管理されていてもよい。
【0086】
図10は、第1実施形態に係るメモリシステムにおけるUSBD量に基づく信頼性判定処理の一例を示すフローチャートである。
【0087】
対象サブブロックSBLKに対してサブブロック単位の消去処理又は書込み処理が実行されると(開始)、制御回路21は、対象サブブロックSBLKを含むブロックBLKを決定する(S10)。なお、ステップS10の開始条件は、対象サブブロックSBLKに対してサブブロック単位の消去処理が実行されることでもよい。あるいは、ステップS10の開始条件は、対象サブブロックSBLKに対してサブブロック単位の書込み処理が実行されることでもよい。
【0088】
制御回路21は、ステップS10の処理で決定されたブロックBLKに関して、変数xに基づくループ処理を実行する(S20)。変数xは、0以上の整数である。ステップS20のループ処理は、変数xが0の状態で開始する。ステップS20のループ処理では、繰り返し単位が実行されるたび、変数xが1ずつインクリメントされる。ステップS20のループ処理は、変数xがmを超えると、終了する。S20のループ処理は、ステップS21~ステップS26を繰り返し単位として含む。
【0089】
制御回路21は、ステップS10の処理で決定されたブロックBLK内のサブブロックSBLKxが対象サブブロックSBLKであるか否かを判定する(S21)。
【0090】
サブブロックSBLKxが対象サブブロックSBLKである場合(S21;yes)、制御回路21は、信頼性判定処理の開始に際して対象サブブロックSBLKに対して実行された処理が消去処理であったか否かを判定する(S22)。
【0091】
信頼性判定処理の開始に際して対象サブブロックSBLKに対して実行された処理が消去処理であった場合(S22;yes)、制御回路21は、サブブロックSBLKxに対応するUSBD量をリセットする(S23)。具体的には、制御回路21は、サブブロックSBLKxに対応するカウンタ25のカウント値を初期値にリセットさせる。カウンタ25がアップカウンタである場合、制御回路21は、カウンタ25のカウント値を0に設定してもよい。カウンタ25がダウンカウンタである場合、制御回路21は、カウンタ25のカウント値を閾値Th1に設定してもよい。
【0092】
サブブロックSBLKxが対象サブブロックSBLKでない場合(S21;no)、制御回路21は、サブブロックSBLKxに対応するUSBD量をインクリメントする(S24)。具体的には、カウンタ25がアップカウンタである場合、制御回路21は、サブブロックSBLKxに対応するカウンタ25のカウント値をインクリメントさせる。カウンタ25がダウンカウンタである場合、制御回路21は、サブブロックSBLKxに対応するカウンタ25のカウント値をデクリメントさせる。
【0093】
なお、USBD量のインクリメント量は、信頼性判定処理の開始に際して対象サブブロックSBLKに対して実行された処理が消去処理であるか書込み処理であるかに応じて変化させてもよい。例えば、消去処理及び書込み処理に対応するUSBD量のインクリメント量を、それぞれα及びβとする場合、α>βでもよい。αとβの大小関係は、上述の例に限らず、β>αでもよいし、α=βでもよい。
【0094】
また、書込み処理に対応するUSBD量のインクリメント量は、書込みモードに応じて変化させてもよい。例えば、書込みモードがSLCモード、MLCモード、TLCモード、及びQLCモードである場合におけるUSBD量のインクリメント量を、それぞれβ_S、β_M、β_T、及びβ_Qとする場合、β_S<β_M<β_T<β_Qとしてもよい。β_S、β_M、β_T、及びβ_Qの大小関係は、上述の例に限らず、β_S>β_M>β_T>β_Qでもよいし、β_S=β_M=β_T=β_Qでもよい。
【0095】
ステップS24の後、制御回路21は、サブブロックSBLKxに対応するUSBD量が閾値Th1以上であるか否かを判定する(S25)。なお、閾値Th1は、サブブロックSBLKxに適用される書込みモードに応じて変化させてもよい。例えば、サブブロックSBLKxに適用される書込みモードがSLCモード、MLCモード、TLCモード、及びQLCモードである場合におけるUSBD量の閾値を、それぞれTh1_S、Th1_M、Th1_T、及びTh1_Qとする場合、Th1_S>Th1_M>Th1_T>Th1_Qとしてもよい。
【0096】
サブブロックSBLKxに対応するUSBD量が閾値Th1以上である場合(S25;yes)、制御回路21は、サブブロックSBLKxに記憶されているデータにおけるフェイルビットの発生度合いが大きいと判定する。具体的には、制御回路21は、サブブロックSBLKxのリフレッシュ処理を予約する(S26)。
【0097】
リフレッシュ処理は、例えば、サブブロックSBLKxに書き込まれたデータを、フェイルビットを含む状態からフェイルビットが訂正された状態に回復させる処理である。リフレッシュ処理の例として、サブブロックSBLKxに書き込まれたデータは、ECC回路23によってエラー訂正された後、フェイルビットを含むデータが消去されたサブブロックSBLKxに再度書き込まれ得る。また、リフレッシュ処理の別の例として、サブブロックSBLKxに書き込まれたデータは、ECC回路23によってエラー訂正された後、他のサブブロックSBLKに書き写されてもよい。
【0098】
なお、カウンタ25がアップカウンタである場合、制御回路21は、ステップS25の判定処理において、カウンタ25のカウント値が閾値Th1以上であるか否かを判定することによって、USBD量が閾値Th1以上であるか否かを判定してもよい。カウンタ25がダウンカウンタである場合、制御回路21は、ステップS25の判定処理において、カウンタ25のカウント値が0になったか否かを判定することによって、USBD量が閾値Th1以上であるか否かを判定してもよい。
【0099】
信頼性判定処理の開始に際して対象サブブロックSBLKに対して実行された処理が消去処理でなかった(つまり、書込み処理であった)場合(S22;no)、ステップS26の処理の後、又は選択サブブロックSBLKに対応するUSBD量が閾値Th1未満である場合(S25;no)、ステップS20のループ処理の繰り返し単位が終了する。そして、制御回路21は、変数xをインクリメントさせた後、変数xがmを超えたか否かを判定する。変数xがm以下の場合、ステップS20のループ処理の繰り返し単位が実行される。変数xがmを超えた場合、ステップS20のループ処理は終了する。
【0100】
ステップS20のループ処理が終了すると、信頼性判定処理は終了となる(終了)。
【0101】
なお、信頼性判定処理の後、メモリコントローラ20は、例えば、所定のタイミングで、リフレッシュ処理が予約されたサブブロックSBLKに対して、リフレッシュ処理を実行する。このようなリフレッシュ処理は、信頼性判定処理と同期して実行されてもよいし、非同期に実行されてもよい。
【0102】
1.3 第1実施形態に係る効果
第1実施形態によれば、制御回路21は、サブブロックSBLKxに対応するUSBD量が閾値Th1に達した場合、サブブロックSBLKxのリフレッシュ処理を予約する。これにより、後続するリフレッシュ処理によって、サブブロックSBLKxに書き込まれたデータを、フェイルビットが訂正された状態に回復することができる。このため、サブブロックSBLKxの信頼性の低下を抑制できる。
【0103】
また、制御回路21は、対象サブブロックSBLKに対する消去処理に応じて、対象サブブロックSBLKに対応するUSBD量をリセットする。これにより、対象サブブロックSBLKに対する消去処理によって対象サブブロックSBLKのフェイルビットが低減することを、対象サブブロックSBLKに対応するUSBD量に反映させることができる。
【0104】
また、制御回路21は、対象サブブロックSBLKに対する消去処理又は書込み処理に応じて、対象サブブロックSBLKを含むブロックBLK内の非対象サブブロックSBLKに対応するUSBD量をインクリメントする。これにより、対象サブブロックSBLKに対する消去処理又は書込み処理によって当該非対象サブブロックSBLKのフェイルビットが増加することを、当該非対象サブブロックSBLKに対応するUSBD量に反映させることができる。
【0105】
また、カウンタ25がアップカウンタの場合、制御回路21は、カウント値が閾値Th1に達した場合に、当該カウント値に対応するサブブロックSBLKのリフレッシュ処理を予約する。カウンタ25がダウンカウンタの場合、制御回路21は、カウント値が0に達した場合に、当該カウント値に対応するサブブロックSBLKのリフレッシュ処理を予約する。これにより、カウンタ25がアップカウンタであるかダウンカウンタであるかに関わらず、カウンタ25のカウント値に基づいてUSBD量を評価することができる。
【0106】
2. 第2実施形態
次に、第2実施形態に係るメモリシステムについて説明する。第2実施形態は、同一ブロックBLK内のサブブロックSBLK間の疲弊の偏りに伴って生じる信頼性の低下を抑制する点において、第1実施形態と異なる。以下では、第1実施形態と異なる構成及び動作について主に説明する。第1実施形態と同等の構成及び動作については、適宜説明を省略する。
【0107】
2.1 信頼性判定処理
対象サブブロックSBLKに対して実行される書込み処理及び消去処理のサイクルは、当該対象サブブロックSBLKを疲弊させる。疲弊の蓄積は、当該対象サブブロックSBLKの故障を引き起こし得る。対象サブブロックSBLKが故障した場合、対象サブブロックSBLKを含むブロックBLK内の非対象サブブロックSBLKは、対象サブブロックSBLKと共に使用不可となる可能性がある。このため、不揮発性メモリ10の信頼性低下を抑制する観点から、同一のブロックBLK内のサブブロックSBLK間における疲弊の偏りは、小さくすることが望ましい。対象サブブロックSBLKへの書込み処理及び消去処理のサイクルによって生じる対象サブブロックSBLKの疲弊の蓄積の度合いを見積もる指標として、例えば、疲弊量が用いられる。
【0108】
疲弊量は、不揮発性メモリ10のデータ保持能力の不可逆な劣化を示す。このため、疲弊量は、USBD量とは異なり、いったん増加すると、低下させることができない。疲弊量は、サブブロックSBLK毎に見積もられる。具体的には、例えば、或るサブブロックSBLKの疲弊量は、当該或るサブブロックSBLKに対応するカウンタ25のカウント値に応じて見積もられる。疲弊量は、カウンタ25のカウント値そのものであってもよい。疲弊量は、カウンタ25のカウント値に基づく値として、制御回路21によって管理されていてもよい。
【0109】
図11は、第2実施形態に係るメモリシステムにおける信頼性判定処理の一例を示すフローチャートである。
【0110】
対象サブブロックSBLKに対して消去処理が実行されると(開始)、制御回路21は、対象サブブロックSBLKに対応する疲弊量をインクリメントする(S30)。具体的には、カウンタ25がアップカウンタである場合、制御回路21は、対象サブブロックSBLKに対応するカウンタ25のカウント値をインクリメントさせる。カウンタ25がダウンカウンタである場合、制御回路21は、対象サブブロックSBLKに対応するカウンタ25のカウント値をデクリメントさせる。
【0111】
制御回路21は、対象サブブロックを含むブロックBLKを決定する(S31)。
【0112】
制御回路21は、ステップS31の処理で決定されたブロックBLKにおけるサブブロックSBLKの疲弊量の代表値を検出する(S32)。代表値は、ステップS31の処理で決定されたブロックBLKにおけるサブブロックSBLKの疲弊量の最大値でもよい。代表値は、ステップS31の処理で決定されたブロックBLKにおけるサブブロックSBLKの疲弊量の平均値でもよい。なお、カウンタ25がアップカウンタである場合、疲弊量の最大値とは、カウント値の最大値に対応する。カウンタ25がダウンカウンタである場合、疲弊量の最大値とは、カウント値の最小値に対応する。
【0113】
制御回路21は、S31の処理で決定されたブロックBLKに関して、変数xに基づくループ処理を実行する(S40)。変数xは、0以上の整数である。ステップS40のループ処理は、変数xが0の状態で開始する。ステップS40のループ処理では、繰り返し単位が実行されるたび、変数xが1ずつインクリメントされる。ステップS40のループ処理は、変数xがmを超えると、終了する。S40のループ処理は、ステップS41及びステップS42を繰り返し単位として含む。
【0114】
制御回路21は、ステップS32の処理で検出された疲弊量の代表値と、サブブロックSBLKxに対応する疲弊量と、の差が閾値Th2以上であるか否かを判定する(S41)。閾値Th2は、例えば正の実数である。
【0115】
疲弊量の代表値と、サブブロックSBLKxに対応する疲弊量との差が閾値Th2以上である場合(S41;yes)、制御回路21は、サブブロックSBLKxに対するウェアレベリング処理を予約する(S42)。ウェアレベリング処理は、例えば、サブブロックSBLKxに書き込まれたデータを、他のサブブロックSBLKに書き移す処理である。
【0116】
ウェアレベリング処理の例として、制御回路21は、サブブロックSBLKxをコンパクション元とするコンパクション処理を予約し得る。サブブロックSBLKxをコンパクション元とするコンパクション処理は、例えば、サブブロックSBLKxに書き込まれたデータを、コンパクション先となる他のサブブロックSBLKに書き込む処理である。他のサブブロックSBLKは、例えば、コンパクション元であるサブブロックSBLKxを含むブロックBLK内のサブブロックSBLKである。他のサブブロックSBLKは、サブブロックSBLKxを含むブロックBLKとは異なるブロックBLK内のサブブロックSBLKであってもよい。
【0117】
また、ウェアレベリング処理の別の例として、制御回路21は、サブブロックSBLKxに書き込まれたデータと、疲弊量が大きいサブブロックSBLKに書き込まれたデータとを、交換させてもよい。例えば、制御回路21は、疲弊量がステップS32の処理で検出された疲弊量の最大値であるサブブロックSBLK、又は疲弊量がステップS32の処理で検出された疲弊量の平均値以上であるサブブロックSBLKを、疲弊量が大きいサブブロックSBLKとしてもよい。
【0118】
ステップS42の処理の後、又は疲弊量の代表値と選択サブブロックSBLKに対応する疲弊量との差が閾値Th2未満である場合(S41;no)、ステップS40のループ処理の繰り返し単位が終了する。そして、制御回路21は、変数xをインクリメントさせた後、変数xがmを超えたか否かを判定する。変数xがm以下の場合、ステップS40のループ処理の繰り返し単位が実行される。変数xがmを超えた場合、ステップS40のループ処理は終了する。
【0119】
ステップS40のループ処理が終了すると、信頼性判定処理は終了となる(終了)。
【0120】
なお、信頼性判定処理の後、メモリコントローラ20は、例えば、所定のタイミングで、ウェアレベリング処理を実行する。このようなウェアレベリング処理は、信頼性判定処理と同期して実行されてもよいし、非同期に実行されてもよい。
【0121】
2.2 第2実施形態に係る効果
第2実施形態によれば、制御回路21は、選択サブブロックSBLKに対応する疲弊量と、サブブロックSBLKxを含むブロックBLK内の各サブブロックSBLKに対応する疲弊量のうちの代表値との差が閾値Th2に達した場合、サブブロックSBLKxのウェアレベリング処理を予約する。これにより、後続するウェアレベリング処理によって、サブブロックSBLKxに対して実行される書込み処理及び消去処理のサイクルの頻度を、変化させることができる。このため、疲弊量が大きいサブブロックSBLKの信頼性の低下を抑制できる。
【0122】
補足すると、疲弊量が小さいサブブロックSBLKには、書き込まれてから消去されるまでの保持期間が長いデータが書き込まれていることが推測される。ウェアレベリング処理では、このような保持期間が長いデータが、疲弊量が小さいサブブロックSBLKから他のサブブロックSBLKへ書き移される。これにより、疲弊量が小さいサブブロックSBLKに、より保持期間が短いデータが書き込まれる機会を与えることができる。このため、疲弊量が小さいサブブロックSBLKと、疲弊量が大きいサブブロックSBLKとの間の疲弊量の差を小さくすることが期待できる。したがって、疲弊量が大きいサブブロックSBLKの信頼性の低下を抑制できる。
【0123】
また、制御回路21は、対象サブブロックSBLKに対する消去処理及び書込み処理のサイクルに応じて、対象サブブロックSBLKに対応する疲弊量をインクリメントする。これにより、消去処理及び書込み処理のサイクルが対象サブブロックSBLKを疲弊させる効果を、当該対象サブブロックSBLKに対応する疲弊量に反映させることができる。
【0124】
3. 第3実施形態
次に、第3実施形態に係るメモリシステムについて説明する。第3実施形態では、互いに異なるブロックBLKに含まれるサブブロックSBLK間の疲弊の偏りに伴って生じる信頼性低下を抑制する点において、第2実施形態と異なる。以下では、第2実施形態と異なる構成及び動作について主に説明する。第2実施形態と同等の構成及び動作については、適宜説明を省略する。
【0125】
3.1 信頼性判定処理
対象サブブロックSBLKが故障した場合、ユーザ領域12内の、ホスト2からの書込みデータを記憶するためのサブブロックSBLKの数が減少する。これにより、1つのサブブロックSBLKあたりに実行される消去処理及び書込み処理のサイクルの数が増加する可能性がある。このため、不揮発性メモリ10の信頼性低下を抑制する観点から、互いに異なるブロックBLKに含まれるサブブロックSBLK間の疲弊の偏りは、小さくすることが望ましい。
【0126】
図12は、第3実施形態に係るメモリシステムにおける信頼性判定処理の一例を示すフローチャートである。
【0127】
対象サブブロックSBLKに対して消去処理が実行されると(開始)、制御回路21は、対象サブブロックSBLKに対応する疲弊量をインクリメントする(S50)。
【0128】
制御回路21は、不揮発性メモリ10におけるサブブロックSBLKの疲弊量の代表値を検出する(S51)。代表値は、不揮発性メモリ10におけるサブブロックSBLKの疲弊量の最大値でもよい。代表値は、不揮発性メモリ10におけるサブブロックSBLKの疲弊量の平均値でもよい。
【0129】
制御回路21は、不揮発性メモリ10に関して、変数yに基づく第1ループ処理を実行する(S60A)。変数yは、0以上の整数である。ステップS60Aの第1ループ処理は、変数yが0の状態で開始する。ステップS60Aの第1ループ処理では、繰り返し単位が実行されるたび、変数yが1ずつインクリメントされる。ステップS60Aの第1ループ処理は、変数yがnを超えると、終了する。ステップS60Aの第1ループ処理は、変数xに基づく第2ループ処理(S60B)を繰り返し単位として含む。変数xは、0以上の整数である。ステップS60Bの第2ループ処理は、変数xが0の状態で開始する。ステップS60Bの第2ループ処理では、繰り返し単位が実行されるたび、変数xが1ずつインクリメントされる。ステップS60Bの第2ループ処理は、変数xがmを超えると、終了する。ステップS60Bの第2ループ処理は、ステップS61及びステップS62を繰り返し単位として含む。
【0130】
制御回路21は、ステップS51の処理で検出された疲弊量の代表値と、ブロックBLKy内のサブブロックSBLKxに対応する疲弊量と、の差が閾値Th2以上であるか否かを判定する(S61)。
【0131】
疲弊量の代表値と、ブロックBLKy内のサブブロックSBLKxに対応する疲弊量との差が閾値Th2以上である場合(S61;yes)、制御回路21は、ブロックBLKy内のサブブロックSBLKxに対するウェアレベリング処理を予約する(S62)。
【0132】
ウェアレベリング処理の例として、制御回路21は、ブロックBLKy内のサブブロックSBLKxをコンパクション元とするコンパクション処理を予約し得る。この場合、コンパクション先となる他のサブブロックSBLKは、例えば、コンパクション元であるブロックBLKyとは異なるブロックBLK内のサブブロックSBLKである。他のサブブロックSBLKは、ブロックBLKy内のサブブロックSBLKであってもよい。
【0133】
また、ウェアレベリング処理の別の例として、制御回路21は、ブロックBLKy内のサブブロックSBLKxに書き込まれたデータと、疲弊量が大きいサブブロックSBLKに書き込まれたデータとを、交換させてもよい。例えば、制御回路21は、疲弊量がステップS51の処理で検出された疲弊量の最大値であるサブブロックSBLK、又は疲弊量がステップS51の処理で検出された疲弊量の平均値以上であるサブブロックSBLKを、疲弊量が大きいサブブロックSBLKとしてもよい。
【0134】
ステップS62の処理の後、又は疲弊量の代表値とブロックBLKy内のサブブロックSBLKxに対応する疲弊量との差が閾値Th2未満である場合(S61;no)、ステップS60Bの第2ループ処理の繰り返し単位が終了する。そして、制御回路21は、変数xをインクリメントさせた後、変数xがmを超えたか否かを判定する。変数xがm以下の場合、ステップS60Bの第2ループ処理の繰り返し単位が繰り返される。変数xがmを超えた場合、ステップS60Bの第2ループ処理(すなわち、ステップS60Aの第1ループ処理の繰り返し単位)が終了する。そして、制御回路21は、変数yをインクリメントさせた後、変数yがnを超えたか否かを判定する。変数yがn以下の場合、ステップS60Aの第1ループ処理の繰り返し単位が実行される。変数yがnを超えた場合、ステップS60Aの第1ループ処理が終了する。
【0135】
ステップS60Aの第1ループ処理が終了すると、信頼性判定処理は終了となる(終了)。
【0136】
なお、信頼性判定処理の後、メモリコントローラ20は、例えば、所定のタイミングで、ウェアレベリング処理を実行する。このようなウェアレベリング処理は、信頼性判定処理と同期して実行されてもよいし、非同期に実行されてもよい。
【0137】
3.2 第3実施形態に係る効果
第3実施形態によれば、制御回路21は、ブロックBLKy内のサブブロックSBLKxに対応する疲弊量と、不揮発性メモリ10内の各サブブロックSBLKに対応する疲弊量のうちの代表値との差が閾値Th2に達した場合、ブロックBLKy内のサブブロックSBLKxのウェアレベリング処理を予約する。これにより、後続するウェアレベリング処理によって、ブロックBLKy内のサブブロックSBLKxに対して実行される書込み処理及び消去処理のサイクルの頻度を、変化させることができる。このため、疲弊量が大きいサブブロックSBLKの信頼性の低下を抑制できる。
【0138】
4. 変形例等
上述の第1実施形態、第2実施形態、及び第3実施形態は、種々の変形を適用することができる。
【0139】
上述の第1実施形態、第2実施形態、及び第3実施形態では、メモリピラーMPの下部LMP及び上部UMPがそれぞれサブブロックSBLK0及びSBLK1に対応する場合について説明したが、これに限られない。例えば、サブブロックSBLK0及びSBLK1は、メモリピラーMPの下部LMP及び上部UMPと対応していなくてもよい。具体的には、下部LMP及び上部UMPに分かれていないメモリピラーMPを含むブロックBLKが、サブブロックSBLK0及びSBLK1に分かれていてもよい。また、メモリピラーMPが下部LMP及び上部UMPに分かれている場合に、下部LMPと上部UMPとの境界とは異なる境界において、ブロックBLKがサブブロックSBLK0及びSBLK1に分かれていてもよい。また、例えば、サブブロックSBLK0及びSBLK1は、同一のビット線BLに対して並列接続された互いに異なるメモリピラーMPの部分に対応していてもよい。
【0140】
また、上述の第2実施形態及び第3実施形態では、カウンタ25のカウント値の増加量に基づいて疲弊量が増加する場合について説明したが、これに限られない。疲弊量の増加量は、書込み処理及び消去処理のサイクルが実行される際の不揮発性メモリ10の温度に更に基づいて算出されてもよい。例えば、書込み処理及び消去処理のサイクルが実行される際の不揮発性メモリ10の温度が高い場合における疲弊量の増加量は、書込み処理及び消去処理のサイクルが実行される際の不揮発性メモリ10の温度が低い場合における疲弊量の増加量よりも小さくてもよい。
【0141】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0142】
1…情報処理システム
2…ホスト
3…メモリシステム
10…不揮発性メモリ
11…システム領域
12…ユーザ領域
20…メモリコントローラ
21…制御回路
22…ホストインタフェース回路
23…ECC回路
24…メモリインタフェース回路
25…カウンタ
50,51,52,53,54,55…導電体層
60…コア膜
61…半導体膜
62…積層膜
63…トンネル絶縁膜
64…電荷蓄積膜
65…ブロック絶縁膜