JP2022139171A - メモリシステム - Google Patents

メモリシステム Download PDF

Info

Publication number
JP2022139171A
JP2022139171A JP2021039433A JP2021039433A JP2022139171A JP 2022139171 A JP2022139171 A JP 2022139171A JP 2021039433 A JP2021039433 A JP 2021039433A JP 2021039433 A JP2021039433 A JP 2021039433A JP 2022139171 A JP2022139171 A JP 2022139171A
Authority
JP
Japan
Prior art keywords
correction amount
state
memory
read
memory system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2021039433A
Other languages
English (en)
Inventor
奈穂美 武田
Naomi Takeda
政信 白川
Masanobu Shirakawa
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kioxia Corp
Original Assignee
Kioxia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kioxia Corp filed Critical Kioxia Corp
Priority to JP2021039433A priority Critical patent/JP2022139171A/ja
Priority to US17/349,358 priority patent/US11605440B2/en
Publication of JP2022139171A publication Critical patent/JP2022139171A/ja
Priority to US18/163,906 priority patent/US20230187008A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/1202Word line control
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/1204Bit line control

Abstract

Figure 2022139171000001
【課題】読出し電圧の管理負荷の増加を抑制するメモリシステムを提供する。
【解決手段】情報処理システム1のメモリシステムは、複数のグループを含む不揮発性メモリと、第1動作を実行するメモリコントローラと、を備える。複数のグループの各々は、複数のセルユニットを含む。複数のセルユニットの各々は、複数のメモリセルを含む。第1動作は、対象グループに対応づけられた第1補正量に基づいて対象グループからデータを読み出すことと、データに基づき第1補正量を第2補正量に更新することと、を含む。メモリコントローラは、第1グループを対象グループとして選択し、条件が満たされる場合、第1グループに関する第1動作を実行した後に、第2グループを対象グループとして選択する。
【選択図】図1

Description

実施形態は、メモリシステムに関する。
不揮発性メモリとしてのNAND型フラッシュメモリと、不揮発性メモリを制御するメモリコントローラと、を含むメモリシステムが知られている。メモリコントローラは、NAND型フラッシュメモリからデータを読み出す際に使用される読出し電圧を補正する。
特開2010-244605号公報 特開2020-047337号公報 米国特許第10346177号明細書
読出し電圧の管理負荷の増加を抑制する。
実施形態のメモリシステムは、複数のグループを含む不揮発性メモリと、第1動作を実行するように構成されたメモリコントローラと、を備える。上記複数のグループの各々は、複数のセルユニットを含む。上記複数のセルユニットの各々は、複数のメモリセルを含む。上記第1動作は、対象グループに対応づけられた第1補正量に基づいて、上記対象グループからデータを読み出すことと、上記データに基づき、上記第1補正量を第2補正量に更新することと、を含む。上記メモリコントローラは、第1グループを上記対象グループとして選択し、条件が満たされる場合、上記第1グループに関する上記第1動作を実行した後に、第2グループを上記対象グループとして選択するように構成される。
第1実施形態に係る情報処理システムの構成の一例を示すブロック図。 第1実施形態に係るメモリバスで用いられる信号の一例を示すブロック図。 第1実施形態に係る不揮発性メモリの構成の一例を示すブロック図。 第1実施形態に係る物理ブロックの構成の一例を示す回路図。 第1実施形態に係る複数のメモリセルトランジスタの閾値電圧分布の一例を示す模式図。 第1実施形態に係るメモリシステムの代表補正量情報の一例を示す図。 第1実施形態に係る物理ブロック内における代表補正量と換算補正量との関係の一例を示す模式図。 第1実施形態に係るメモリシステムのメモリ管理情報の一例を示す図。 第1実施形態に係るメモリシステムにおける書込み処理を含む一連の処理の一例を示すフローチャート。 第1実施形態に係るメモリシステムにおける判定処理及び補正量算出処理を含む一連の処理の一例を示すフローチャート。 第1実施形態に係るメモリシステムにおける補正量算出処理の詳細を示す模式図。 第1実施形態の変形例に係るメモリシステムにおける判定処理及び補正量算出処理を含む一連の処理の一例を示すフローチャート。 第2実施形態に係るメモリシステムのメモリ管理情報の一例を示す図。 第2実施形態に係るメモリシステムにおける書込み処理を含む一連の処理の一例を示すフローチャート。 第2実施形態に係るメモリシステムにおける判定処理及び補正量算出処理を含む一連の処理の一例を示すフローチャート。 第2実施形態の第1変形例に係るメモリシステムのメモリ管理情報の一例を示す図。 第2実施形態の第1変形例に係るメモリシステムにおける判定処理及び補正量算出処理を含む一連の処理の一例を示すフローチャート。 第2実施形態の第1変形例に係るメモリシステムにおける補正量算出処理の実施タイミングの一例を示す模式図。 第2実施形態の第2変形例に係る不揮発性メモリの構成の一例を示すブロック図。 第2実施形態の第2変形例に係るメモリシステムのメモリ管理情報の一例を示す図。 第2実施形態の第2変形例に係るメモリシステムにおける補正量算出処理の実施タイミングの一例を示す模式図。 第3実施形態に係るメモリシステムにおける判定処理及び補正量算出処理を含む一連の処理の一例を示すフローチャート。 第4実施形態に係るメモリシステムにおける判定処理及び補正量算出処理を伴う状態遷移の一例を示す状態遷移図。 第4実施形態の変形例に係るメモリシステムにおける判定処理及び補正量算出処理を伴う状態遷移の一例を示す状態遷移図。 第5実施形態に係るメモリシステムのメモリ管理情報の一例を示す図。 第5実施形態に係るメモリシステムにおける書込み処理を含む一連の処理の一例を示すフローチャート。 第5実施形態に係るメモリシステムにおける判定処理及び補正量算出処理を伴う状態遷移の一例を示す状態遷移図。 第5実施形態に係るメモリシステムにおける補正頻度の変更処理の一例を示すフローチャート。
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。また、共通する参照符号を有する複数の構成要素を区別する場合、当該共通する参照符号に添え字を付して区別する。なお、複数の構成要素について特に区別を要さない場合、当該複数の構成要素には、共通する参照符号のみが付され、添え字は付さない。
1.第1実施形態
1.1 構成
1.1.1 情報処理システム
第1実施形態に係る情報処理システムの構成について説明する。
1.1.1 メモリシステム
図1は、第1実施形態に係る情報処理システムの構成を示すブロック図である。図1に示すように、情報処理システム1は、ホスト機器2及びメモリシステム3を含む。
ホスト機器2は、メモリシステム3を使用してデータを処理するデータ処理装置である。ホスト機器2は、例えば、パーソナルコンピュータ又はデータセンタ内のサーバである。
メモリシステム3は、ホスト機器2に接続されるように構成された記憶装置である。メモリシステム3は、例えば、SDTMカードのようなメモリカード、UFS(Universal Flash Storage)、SSD(Solid State Drive)である。メモリシステム3は、ホスト機器2からの要求(コマンド)に応じてデータの書込み処理、読出し処理、消去処理を実行する。メモリシステム3は、内部処理として書込み処理、読出し処理、及び消去処理を実行してもよい。
1.1.2 メモリシステム
第1実施形態に係るメモリシステムの内部構成について説明する。
メモリシステム3は、不揮発性メモリ10、揮発性メモリ20、及びメモリコントローラ30を含む。
不揮発性メモリ10は、不揮発にデータを記憶する複数のメモリセルトランジスタを含む。不揮発性メモリ10は、例えば、NANDフラッシュメモリである。
揮発性メモリ20は、不揮発性メモリ10からデータを正しく読み出すための情報を記憶する。具体的には、揮発性メモリ20は、代表補正量情報21、メモリ管理情報22、及びルックアップテーブル(LUT)23を記憶する。揮発性メモリ20は、例えば、DRAM(Dynamic Random Access Memory)である。代表補正量情報21及びメモリ管理情報22の詳細については、後述する。
LUT23は、論理アドレスと物理アドレスとを対応づける情報を含む。論理アドレスは、データを一意に識別するアドレス情報である。論理アドレスは、ホスト機器2によって指定される。物理アドレスは、不揮発性メモリ10の記憶領域を一意に識別するアドレス情報である。物理アドレスは、メモリコントローラ30によって指定される。
メモリコントローラ30は、例えばSoC(System-on-a-Chip)のような集積回路で構成される。メモリコントローラ30は、ホスト機器2からの要求(ホスト要求)に基づいて、不揮発性メモリ10を制御する。
具体的には、例えば、メモリコントローラ30は、ホスト機器2からの書込み要求(ホスト書込み要求)に基づいて、書込みデータを不揮発性メモリ10に書き込む。また、メモリコントローラ30は、ホスト機器2からの読出し要求(ホスト読出し要求)に基づいて、読出しデータを不揮発性メモリ10から読み出す。そして、メモリコントローラ30は、読出しデータに基づくデータをホスト機器2に送信する。
ホスト機器2からの書込み要求及び読出し要求はそれぞれ、書込み対象及び読出し対象となるデータの論理アドレスを含む。メモリコントローラ30は、LUT23を参照して論理アドレスを物理アドレスに変換することにより、書込み対象及び読出し対象となる不揮発性メモリ10内の記憶領域にアクセスする。以下の説明では、「アドレス」は、特に指定がない限り、物理アドレスを指すものとする。
1.1.3 メモリコントローラ
次に、メモリコントローラ30の内部構成について説明する。メモリコントローラ30は、制御回路31、バッファメモリ32、ホストインタフェース回路(ホストI/F)33、ECC(Error Correction and Check)回路34、読出し電圧補正回路35、不揮発性メモリインタフェース回路(NVM I/F)36、及び揮発性メモリインタフェース回路(VM I/F)37を含む。以下に説明されるメモリコントローラ30の各部31-37の機能は、ハードウェア構成、又はハードウェア資源とファームウェアとの組合せ構成のいずれでも実現可能である。
制御回路31は、メモリコントローラ30の全体を制御する回路である。制御回路31は、例えば、CPU(Central Processing Unit)のようなプロセッサ、及びROM(Read Only Memory)を含む。
バッファメモリ32は、ホスト機器2と不揮発性メモリ10との間でデータをバッファリングするためのメモリである。バッファメモリ32は、例えば、SRAM(Static Random Access Memory)である。バッファメモリ32は、書込みデータ、及び読出しデータを一時的に記憶する。
ホストインタフェース回路33は、メモリコントローラ30とホスト機器2との間の通信を司る。ホストインタフェース回路33は、ホストバスを介してホスト機器2と接続される。ホストバスは、例えば、SDTMインタフェース、SAS(Serial Attached SCSI(Small Computer System Interface))、SATA(Serial ATA(Advanced Technology Attachment))、又はPCIeTM(Peripheral Component Interconnect express)に準拠する。
ECC回路34は、不揮発性メモリ10に記憶されるデータに関するエラー検出処理及びエラー訂正処理を行う。すなわちデータの書き込み時には、ECC回路34は、書込みデータに誤り訂正符号を付与する。データの読出し処理時には、ECC回路34は、読出しデータを復号し、エラービットの有無を検出する。そしてエラービットが検出された際には、ECC回路34は、エラービットのカラムアドレス(エラー位置)を特定し、エラー訂正する。
読出し電圧補正回路35は、不揮発性メモリ10からデータを読み出す際に使用される読出し電圧の補正量を算出する機能を有する。
不揮発性メモリインタフェース回路36は、不揮発性メモリ10とメモリコントローラ30との間の通信を司る。不揮発性メモリインタフェース回路36は、メモリバスBUSを介して不揮発性メモリ10と接続される。メモリバスBUSは、例えば、SDR(single data rate)インタフェース、トグルDDR(double data rate)インタフェース、又はONFI(Open NAND flash interface)に準拠する。
揮発性メモリインタフェース回路37は、揮発性メモリ20とメモリコントローラ30との間の通信を司る。揮発性メモリ20とメモリコントローラ30との間を接続するバスは、例えば、DRAMインタフェース規格に準拠する。
1.1.4 メモリバス
次に、不揮発性メモリ10とメモリコントローラ30との間でやり取りされる信号の一例を説明する。図2は、第1実施形態に係るメモリバスで用いられる信号の一例を示すブロック図である。
メモリバスBUSで用いられる信号は、例えば、チップイネーブル信号CEn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号WEn、リードイネーブル信号REn、ライトプロテクト信号WPn、レディ・ビジー信号RBn、及び入出力信号I/Oを含む。本明細書において、信号の名称の末尾のnは、その信号が“L(Low)”レベルの場合にアサートされることを意味する。
チップイネーブル信号CEnは、不揮発性メモリ10をイネーブルにするための信号である。
コマンドラッチイネーブル信号CLE及びアドレスラッチイネーブル信号ALEは、不揮発性メモリ10への入力信号I/Oがそれぞれコマンド及びアドレスであることを不揮発性メモリ10に通知する信号である。
ライトイネーブル信号WEnは、入力信号I/Oを不揮発性メモリ10に取り込ませるための信号である。
リードイネーブル信号REnは、不揮発性メモリ10から出力信号I/Oを読み出すための信号である。
ライトプロテクト信号WPnは、データの書き込み及び消去の禁止を不揮発性メモリ10に指示するための信号である。
レディ・ビジー信号RBnは、不揮発性メモリ10がレディ状態であるか、それともビジー状態であるかを示す信号である。レディ状態は、不揮発性メモリ10がメモリコントローラ30からの命令を受信出来る状態である。ビジー状態は、後述するサスペンド処理の実行を指示するサスペンドコマンドのような一部のコマンドを除き、不揮発性メモリ10がメモリコントローラ30からの命令を受信出来ない状態である。レディ・ビジー信号RBnは、“L”レベルがビジー状態を示す。
入出力信号I/Oは、例えば8ビットの信号である。入出力信号I/Oは、不揮発性メモリ10とメモリコントローラ30との間で送受信されるデータの実体である。入出力信号I/Oは、コマンド、アドレス、並びに書込みデータ及び読出しデータ等のデータを含む。
1.1.5 不揮発性メモリ
次に、不揮発性メモリ10の内部構成について説明する。図3は、第1実施形態に係る不揮発性メモリの構成の一例を示すブロック図である。不揮発性メモリ10は、複数のチップChip(Chip0、Chip1、…、ChipN)(Nは、2以上の整数)を含む。各チップChipは、互いに独立に動作可能である。各チップChipは、1つのNANDフラッシュメモリとして機能する。
各チップChipは、複数の物理ブロックPBLKを含む。物理ブロックPBLKは、複数のメモリセルトランジスタの集合である。物理ブロックPBLKは、例えばデータの消去単位として使用される。図3の例では、各チップChipが4つの物理ブロックPBLK0~PBLK3を含む場合が示される。しかしながら、各チップChipに含まれる物理ブロックPBLKの数は、4つに限られず、任意の数に設定され得る。
図4は、第1実施形態に係る物理ブロックの構成の一例を示す回路図である。物理ブロックPBLKは、例えば、4つのストリングユニットSU0~SU3を含む。なお、図4において、ストリングユニットSU2及びSU3の構成は簡略化して示される。
各ストリングユニットSUは、ビット線BL0~BLm(mは、1以上の整数)にそれぞれ関連付けられた複数のNANDストリングNSを含む。NANDストリングNSは、例えばメモリセルトランジスタMT0~MT7、並びに選択トランジスタST1及びST2を含む。
メモリセルトランジスタMTは、制御ゲート及び電荷蓄積層を含み、データを不揮発に記憶する。選択トランジスタST1及びST2のそれぞれは、各種処理時におけるストリングユニットSUの選択に使用される。
各NANDストリングNSにおいて、メモリセルトランジスタMT0~MT7は、直列接続される。直列接続されたメモリセルトランジスタMT0~MT7の一端と、関連付けられたビット線BLとの間には、選択トランジスタST1が接続される。直列接続されたメモリセルトランジスタMT0~MT7の他端には、選択トランジスタST2のドレインが接続される。選択トランジスタST2のソースには、ソース線SLが接続される。
同一の物理ブロックPBLKにおいて、ストリングユニットSU0~SU3に含まれた複数の選択トランジスタST1の各々のゲートは、選択ゲート線SGD0~SGD3にそれぞれ共通接続される。複数のメモリセルトランジスタMT0~MT7の各々の制御ゲートは、ワード線WL0~WL7にそれぞれ共通接続される。複数の選択トランジスタST2の各々のゲートは、選択ゲート線SGSに共通接続される。
ビット線BL0~BLmは、同一のチップChip内の複数の物理ブロックPBLKで共有される。同じカラムアドレスに対応するNANDストリングNSには、同じビット線BLが接続される。ワード線WL0~WL7のそれぞれは、物理ブロックPBLK毎に設けられる。ソース線SLは、例えば、同一のチップChip内の複数の物理ブロックPBLKで共有される。
1つのストリングユニットSU内で共通のワード線WLに接続された複数のメモリセルトランジスタMTの集合は、例えばセルユニットCUと称され、データの書込み単位として使用される。例えば、それぞれが1ビットデータを記憶するメモリセルトランジスタMTを含むセルユニットCUの記憶容量が、「1ページデータ」として定義される。1ページデータは、例えば、データの読出し単位として使用される。セルユニットCUは、メモリセルトランジスタMTが記憶するデータのビット数に応じて2ページデータ以上の記憶容量を有し得る。
なお、以上で説明した物理ブロックPBLKの回路構成はあくまで一例であり、これに限定されない。例えば、各物理ブロックPBLKが含むストリングユニットSUの個数は、任意の個数に設計され得る。各NANDストリングNSが含むメモリセルトランジスタMT並びに選択トランジスタST1及びST2の各々の個数は、それぞれ任意の個数に設計され得る。
本実施形態では、1つのメモリセルトランジスタMTが2ビットデータを記憶することができる。すなわち、本実施形態におけるメモリセルトランジスタMTは、2ビットのデータを記憶するMLC(Multi Level Cell)である。MLCのメモリセルトランジスタが記憶する2ビットデータを、下位ビットから順に下位(Lower)ビット、及び上位(Upper)ビットと呼ぶ。また、同一のセルユニットCUに含まれるメモリセルトランジスタMTの記憶する下位ビットの集合を“下位ページ”と呼び、上位ビットの集合を“上位ページ”と呼ぶ。
図5は、第1実施形態に係る複数のメモリセルトランジスタMTの閾値電圧分布の一例を示す模式図である。メモリセルトランジスタMTが2ビットのデータを記憶する場合、その閾値電圧の分布は4個に分けられる。この4個の閾値電圧分布を、閾値電圧が低いものから順に“Er”状態(ステート)、“A”状態、“B”状態、及び“C”状態と呼ぶ。
また、図5に示す電圧VA、VB、及びVCはそれぞれ、読出し処理の際に隣り合う2つの状態を区別するために用いられる。電圧VREADは、読出し処理時において非選択ワード線に印加される電圧である。メモリセルトランジスタMTは、ゲートに電圧VREADが印加されると記憶するデータに依らずにオン状態になる。これらの電圧値の関係は、VA<VB<VC<VREADである。
上述した閾値電圧分布のうち“Er”状態は、メモリセルトランジスタMTの消去状態に相当する。“Er”状態における閾値電圧は、電圧VA未満である。“A”状態における閾値電圧は、電圧VA以上且つ電圧VB未満である。“B”状態における閾値電圧は、電圧VB以上且つ電圧VC未満である。“C”状態における閾値電圧は、電圧VC以上且つ電圧VREAD未満である。
上述した4個の閾値電圧分布は、下位ビット及び上位ビットを含む2ビット(2ページ)データを書き込むことで形成される。そして4個の閾値電圧分布が、それぞれ異なる2ビットのデータに対応する。本実施形態では、各状態に含まれるメモリセルトランジスタMTに対して、“上位ビット/下位ビット”に以下に示すようにデータを割り付ける。
“Er”状態に含まれるメモリセルトランジスタMTは、“11”データを記憶する。“A”状態に含まれるメモリセルトランジスタMTは、“01”データを記憶する。“B”状態に含まれるメモリセルトランジスタMTは、“00”データを記憶する。“C”状態に含まれるメモリセルトランジスタMTは、“10”データを記憶する。
下位ページ読出しは、“A”状態と“B”状態とを区別する電圧VBを読出し電圧として用いる。電圧VBを用いた読出し処理を、読出し処理BRと呼ぶ。
上位ページ読出しは、“Er”状態と“A”状態とを区別する電圧VA、及び“B”状態と“C”状態とを区別する電圧VCを読出し電圧として用いる。電圧VAを用いた読出し処理を読出し処理ARと呼び、電圧VCを用いた読出し処理を読出し処理CRと呼ぶ。
1.1.6 代表補正量情報
次に、代表補正量情報21の構成について説明する。図6は、第1実施形態に係るメモリシステムの代表補正量情報の構成を示す図である。図6に示すように、代表補正量情報21には、読出し電圧のデフォルト値からの補正量に関する情報が記憶される。代表補正量情報21では、不揮発性メモリ10内の全てのメモリセルが、いくつかのグループに分類される。そして、グループ毎に、読出し電圧の代表補正量ΔVaとして、読出し電圧VAの代表補正量ΔVA、読出し電圧VBの代表補正量ΔVB、及び読出し電圧VCの代表補正量ΔVCが、例えばDAC(Digital to Analogue Convertor)値として記憶される。すなわち、代表補正量ΔVA、ΔVB、及びΔVCはそれぞれ、読出し電圧VA、VB、及びVCのデフォルト値からの差分を示す。
図6の例では、代表補正量ΔVaが対応づけられるグループが、物理ブロックPBLKである場合が示される。具体的には、チップChip0の物理ブロックPBLK0に割り当てられた代表補正量ΔVaとして、ΔVA0、ΔVB0、及びΔVC0の組が含まれる。同様に、チップChip0の物理ブロックPBLK1~PBLK3に割り当てられた代表補正量ΔVaとして、ΔVA1、ΔVB1、及びΔVC1の組、ΔVA2、ΔVB2、及びΔVC2の組、並びにΔVA3、ΔVB3、及びΔVC3の組が含まれる。以上のような構成により、物理ブロックPBLKと、代表補正量ΔVaとが、一意に対応づけられる。
代表補正量ΔVaは、物理ブロックPBLK内の特定のセルユニットCU(代表セルユニットCU)の読出し電圧の補正量として使用できる。一方、代表補正量ΔVaは、代表セルユニットCU以外のセルユニットCUの読出し電圧の補正量として使用する場合、最適ではない可能性がある。このため、制御回路31は、代表セルユニットCU以外のセルユニットCUに最適な読出し電圧の補正量を、代表補正量ΔVaに基づいて算出する。以下の説明では、代表補正量ΔVaに基づいて算出される補正量を「換算補正量ΔVb」と呼ぶ。
図7は、第1実施形態に係る物理ブロック内における代表補正量と換算補正量との関係の一例を示す模式図である。図7の例では、或る物理ブロックPBLK内において、ワード線WL3及びストリングユニットSU2の組に対応するセルユニットCUが代表セルユニットCUとして割り当てられる場合が示される。
図7に示すように、代表補正量ΔVaは、代表セルユニットCUに割り当てられる。換算補正量ΔVbは、代表セルユニットCU以外のセルユニットCU毎に個別に割り当てられる。
具体的には、例えば、ワード線WL2及びストリングユニットSU0の組に対応するセルユニットCUでは、換算補正量ΔVb<2,0>が使用される。ワード線WL7及びストリングユニットSU1の組に対応するセルユニットCUでは、換算補正量ΔVb<7,1>が使用される。ワード線WL5及びストリングユニットSU2の組に対応するセルユニットCUでは、換算補正量ΔVb<5,2>が使用される。ワード線WL0及びストリングユニットSU3の組に対応するセルユニットCUでは、換算補正量ΔVb<0,3>が使用される。換算補正量ΔVb同士は、互いに異なる値でもよいし、同じ値でもよい。換算補正量ΔVbは、代表補正量Δaと異なる値でもよいし、同じ値でもよい。
制御回路31は、代表補正量ΔVaに基づき、物理ブロックPBLK内の任意のセルユニットCUにおいて使用される換算補正量ΔVbを算出することができる。また、制御回路31は、物理ブロックPBLK内の任意のセルユニットCUにおいて使用される換算補正量ΔVbに基づき、代表補正量ΔVaを算出することができる。すなわち、制御回路31は、代表補正量ΔVaと換算補正量ΔVbとを相互に換算する機能を有する。このような換算機能は、例えば、制御回路31内のROMに予め記憶される。換算機能は、例えば、代表補正量ΔVaと換算補正量ΔVbとの関係を関数形式又はテーブル形式で関連づける換算情報によって実現される。
1.1.7 メモリ管理情報
次に、メモリ管理情報22の構成について説明する。図8は、第1実施形態に係るメモリシステムのメモリ管理情報の構成を示す図である。
図8に示すように、メモリ管理情報22には、物理ブロックPBLKに有効なデータが書き込まれているか否かを示す有効フラグが記憶される。有効フラグが“true”の場合、当該物理ブロックPBLKには有効データが書き込まれている(当該物理ブロックPBLKは有効ブロックである)ことを示す。一方、有効フラグが“false”の場合、当該物理ブロックPBLKには有効データが書き込まれていない(当該物理ブロックPBLKは有効ブロックでない)ことを示す。
また、メモリ管理情報22には、1つの物理ブロックPBLKを指すポインタptrが割り当てられる。ポインタptrによって指し示された物理ブロックPBLKは、代表補正量ΔVaを算出する処理(補正量算出処理)の実行対象であることを示す。以下の説明では、補正量算出処理の実行対象となっている物理ブロックPBLKのことを「補正対象ブロック」とも呼ぶ。図8の例では、有効ブロックであるチップChip0の物理ブロックPBLK0及びPBLK2のうち、物理ブロックPBLK0が補正対象ブロックである場合が示される。
1.2 動作
次に、第1実施形態に係るメモリシステムにおける動作について説明する。
1.2.1 書込み処理
図9は、第1実施形態に係るメモリシステムにおける書込み処理を含む一連の処理の一例を示すフローチャートである。
書込み条件が満たされると(開始)、メモリコントローラ30は、書込み対象のセルユニットCUに対する書込み処理を不揮発性メモリ10に実行させる(S11)。
書込み条件が満たされることは、ホスト書込み要求に応じて、バッファメモリ32内に一定量の書込みデータが記憶されることを含む。また、書込み条件が満たされることは、メモリコントローラ30が内部処理において実行する書込み処理の開始条件が、満たされることを含む。内部処理は、ガベージコレクション(コンパクション)処理、リフレッシュ処理、ウェアレベリング処理、及び不揮発性メモリ10の管理情報の不揮発化処理を含む。
書込み処理に際して、メモリコントローラ30は、バッファメモリ32内の書込みデータを不揮発性メモリ10に送信する。不揮発性メモリ10は、受信した書込みデータを不揮発性メモリ10内のページバッファ(図示せず)に記憶させる(データイン)。不揮発性メモリ10は、ページバッファに記憶された書込みデータに基づき、書込み対象のセルユニットCUへの書込み処理を実行する。
S11の書込み処理が終了すると、メモリコントローラ30は、メモリ管理情報22内の有効フラグを更新する(S12)。具体的には、S11の処理によって有効なデータが書き込まれた物理ブロックPBLKに対応する有効フラグが“false”から“true”に更新される。これにより、メモリコントローラ30は、補正量算出処理の対象となり得る物理ブロックPBLKを管理することができる。
S12の処理が終了すると、書込み処理を含む一連の処理は終了となる(終了)。
1.2.2 判定処理及び補正量算出処理
図10は、第1実施形態に係るメモリシステムにおける判定処理及び補正量算出処理を含む一連の処理の一例を示すフローチャートである。判定処理及び補正量算出処理を含む一連の処理は、補正量算出処理の実行可否を判定する処理(判定処理)の開始条件に応じて実行される。図10の例では、判定処理の開始条件は、メモリコントローラ30がホスト読出し要求を受信することである。
すなわち、ホスト機器2からホスト読出し要求を受信すると(開始)、メモリコントローラ30は、読出し対象のセルユニットCUに対する読出し処理を不揮発性メモリ10に実行させる(S21)。
S21の読出し処理に際して、メモリコントローラ30は、読出し電圧の補正量を不揮発性メモリ10に送信する。読出し対象のセルユニットCUが代表セルユニットCUである場合、メモリコントローラ30は、当該代表セルユニットCUに対応する代表補正量ΔVaを不揮発性メモリ10に送信する。読出し対象のセルユニットCUが代表セルユニットCU以外のセルユニットCUである場合、メモリコントローラ30は、代表補正量ΔVaに基づいて当該セルユニットCUに対応する換算補正量ΔVbを算出し、不揮発性メモリ10に送信する。
不揮発性メモリ10は、受信した代表補正量ΔVa又は換算補正量ΔVbに基づき、読出し対象のセルユニットCUからの読出し処理を実行する。不揮発性メモリ10は、読出しデータをメモリコントローラ30に送信する。
メモリコントローラ30は、受信した読出しデータをバッファメモリ32内に一時的に記憶する。また、メモリコントローラ30は、受信した読出しデータに対してエラー検出処理、及びエラー訂正処理を実行することにより、エラー訂正済みデータを生成する。そして、メモリコントローラ30は、エラー訂正済みデータをホスト機器2に送信する。つまり、メモリコントローラ30は、受信した読出しデータに基づくデータを、ホスト機器2に送信する。
メモリコントローラ30は、S21の読出し処理の対象となった物理ブロックPBLKが、補正対象ブロックであるか否かを判定する(S22)。具体的には、メモリコントローラ30は、メモリ管理情報22を参照し、ポインタptrが指す物理ブロックPBLKが読出し対象のセルユニットCUが含まれる物理ブロックPBLKであるか否かを判定する。
読出し対象の物理ブロックPBLKが補正対象ブロックでない場合(S22;no)、判定処理及び補正量算出処理を含む一連の処理は終了となる(終了)。読出し対象の物理ブロックPBLKが補正対象ブロックである場合(S22;yes)、メモリコントローラ30は、読出し対象のセルユニットCUが代表セルユニットCUであるか否かを更に判定する(S23)。具体的には、メモリコントローラ30は、S21の処理に際して、不揮発性メモリ10に代表補正量ΔVaを送信したか否かを判定する。
読出し対象のセルユニットCUが代表セルユニットCUでない場合(S23;no)、判定処理及び補正量算出処理を含む一連の処理は終了となる(終了)。読出し対象のセルユニットCUが代表セルユニットCUである場合(S23;yes)、メモリコントローラ30は、読出し対象のセルユニットCUに対する追加の読出し処理を不揮発性メモリ10に実行させる(S24)。S24の読出し処理は、S21の読出し処理で読み出されたページとは異なるページの読出し処理である。例えば、S21の読出し処理で下位ページが読み出された場合、S24の読出し処理では、同一のセルユニットCUの上位ページが読み出される。メモリコントローラ30は、S24の読出し処理によって受信した読出しデータを、バッファメモリ32内に一時的に記憶する。
S21及びS24の読出し処理による読出しデータに基づき、メモリコントローラ30は、読出し対象のセルユニットCU(すなわち、代表セルユニットCU)に対する補正量算出処理を実施する(S25)。これにより、メモリコントローラ30は、読出し対象のセルユニットCUの代表補正量ΔVaを算出する。
メモリコントローラ30は、S25の処理で算出された代表補正量ΔVaを揮発性メモリ20内の代表補正量情報21に記憶させる(S26)。これにより、補正対象ブロックの代表補正量ΔVaが最適な状態に更新される。
メモリコントローラ30は、メモリ管理情報22を参照し、補正対象ブロックとなった物理ブロックPBLKとは別の有効ブロックをポインタptrが指すまで、ポインタptrをインクリメントする(S27)。これにより、次回の補正量算出処理を含む一連の処理における補正対象ブロックは、今回の補正量算出処理を含む一連の処理における補正対象ブロックとは異なる物理ブロックPBLKとなる。
S27の処理が終わると、判定処理及び補正量算出処理を含む一連の処理は終了となる(終了)。
1.2.3 補正量算出処理の詳細
S25の補正量算出処理の詳細について説明する。以下では、読出し電圧のデフォルト値を使用して読み出されたデータに基づく補正量算出処理について説明する。
S24の処理の後、ECC回路34は、S21及びS24の読出し処理によって読み出されたデータの各々に対して、エラー検出処理を実行する。これにより、読出し電圧補正回路35は、読出しデータのカラムアドレス毎に、訂正前のデータ列と、訂正後のデータ列と、を把握できる。このため、読出し電圧補正回路35は、読出しデータのカラムアドレス毎に、書き込まれた際の(真の)状態と、読み出された際の(誤りを含み得る)状態と、を把握できる。具体的には、例えば、読出し電圧補正回路35は、“A”状態として書き込まれたデータが“Er”状態として誤って読み出されたメモリセル数E12を把握できる。また、読出し電圧補正回路35は、“Er”状態として書き込まれたデータが“A”状態として誤って読み出されたメモリセル数E21を把握できる。
図11は、第1実施形態に係るメモリシステムにおける補正量算出処理の詳細を示す模式図である。図11の例では、読出し電圧VAの補正量を算出する場合が示される。図11において、“A”状態として書き込まれたデータが“Er”状態として誤って読み出されたメモリセル数E12は、図13(A)~図13(C)における領域(a)の面積に相当する。また、“Er”状態として書き込まれたデータが“A”状態として誤って読み出されたメモリセル数E21は、図13(A)~図13(C)における領域(b)の面積に相当する。
図11(A)では、読出し電圧VAが“Er”状態及び“A”状態に対応する2つの閾値電圧分布の交差する位置における閾値電圧VAoptと等しい場合が示される。図11(A)の場合、領域(a)の面積と、領域(b)の面積とは、等しくなる。この場合、“Er”状態と“A”状態との間で発生するエラービット数E(=E12+E21)は最小となることが期待される。このため、読出し電圧補正回路35は、読出し電圧VAが更新不要であると判定する。つまり、読出し電圧補正回路35は、“0”の補正量ΔVAを算出する(ΔVA=0)。
図11(B)では、読出し電圧VAが“Er”状態及び“A”状態に対応する2つの閾値電圧分布の交差する位置における閾値電圧VAoptよりも高電圧側に位置する場合が示される。図11(B)の場合、領域(a)の面積は、領域(b)の面積よりも大きくなる。この場合、エラービット数Eは、図11(A)の場合のエラービット数Eよりも多くなり、好ましくない。このため、読出し電圧補正回路35は、読出し電圧VAを電圧VAoptに近づけるように、低電圧側にシフトさせる。つまり、読出し電圧補正回路35は、負の補正量ΔVAを算出する(ΔVA<0)。
図11(C)では、読出し電圧VAが“Er”状態及び“A”状態に対応する2つの閾値電圧分布の交差する位置における閾値電圧VAoptよりも低電圧側に位置する場合が示される。図11(C)の場合、領域(a)の面積は、領域(b)の面積よりも小さくなる。この場合、エラービット数Eは、図11(A)の場合のエラービット数Eよりも多くなり、好ましくない。このため、読出し電圧補正回路35は、読出し電圧VAを電圧VAoptに近づけるように、高電圧側にシフトさせる。つまり、読出し電圧補正回路35は、正の補正量ΔVAを算出する(ΔVA>0)。
なお、領域(a)の面積及び領域(b)の面積の差の絶対値は、読出し電圧VAが閾値電圧VAoptから離れるほど大きくなることが期待される。このため、読出し電圧補正回路35は、読出し電圧VAの補正量ΔVAを、領域(a)の面積及び領域(b)の面積の比の大きさに応じて決定する。これにより、閾値電圧分布の重複の度合いに応じて適切な補正量を決定することができ、閾値電圧VAoptに近づくように補正量ΔVAを算出することができる。
なお、図示は省略されるが、他の読出し電圧VB及びVCについても、読出し電圧VAの場合と同様に補正量ΔVB及びΔVCが算出される。
以上のように動作することにより、代表セルユニットCUから読み出されたデータに基づいて、代表補正量情報21に記憶される代表補正量ΔVaが更新される。そして、以降の読出し処理では、更新された代表補正量ΔVaを読出し電圧のデフォルト値に加えた値を、新たな読出し電圧として使用することができる。
なお、補正量ΔVApreを読出し電圧VAのデフォルト値VA0に加えた値(VA0+ΔVApre)を使用して読み出されたデータに基づく補正量算出処理では、補正量ΔVApreは、以下のような補正量ΔVApostに更新される。すなわち、図11(A)のように、領域(a)の面積と領域(b)の面積とが等しい場合、補正量ΔVAの更新は不要である。このため、補正量ΔVApost=補正量ΔVApreとなる。図11(B)のように、領域(a)の面積が領域(b)の面積よりも大きい場合、補正量ΔVApostは、補正量ΔVApreよりも低い値に更新される。図11(C)のように、領域(a)の面積が領域(b)の面積よりも小さい場合、補正量ΔVApostは、補正量ΔVApreよりも高い値に更新される。
1.3 第1実施形態に係る効果
第1実施形態によれば、メモリコントローラ30は、物理ブロックPBLKの1つを指すポインタptrを定義する。ポインタptrによって指し示された物理ブロックPBLKは、補正対象ブロックとなる。これにより、メモリコントローラ30は、補正量算出処理の実行可否を判定する前に、補正量算出処理の実行対象となる物理ブロックPBLKを選択することができる。
また、メモリコントローラ30は、ホスト読出し要求を受信した場合、判定処理及び補正量算出処理を含む一連の処理を開始する。そして、メモリコントローラ30は、読出し対象が補正対象ブロック内の代表セルユニットCUである場合、当該補正対象ブロックに関する補正量算出処理を実行する。具体的には、メモリコントローラ30は、代表セルユニットCUに対応する代表補正量ΔVaを使用して代表セルユニットCUから必要なデータを読み出し、当該データに基づいて代表補正量ΔVaを更新する。これにより、補正対象ブロックの代表補正量ΔVaを最適な状態に保つことができる。
また、メモリコントローラ30は、補正量算出処理の後、補正対象ブロックとなった物理ブロックPBLKとは別の有効ブロックをポインタptrが指すまで、ポインタptrをインクリメントする。これにより、全ての有効ブロックに関する補正量算出処理が同程度の頻度で実行されるように、補正対象ブロックを巡回させることができる。加えて、ホスト読出し要求によって読み出されたデータを補正量算出処理に流用できるため、補正量算出処理に要する処理量の増加を抑制できる。したがって、読出し電圧の管理負荷の増加を抑制できる。
1.4 第1実施形態の変形例
上述の第1実施形態は、ホスト読出し要求の読出し対象が補正対象ブロック内の代表セルユニットCUである場合について説明したが、これに限られない。例えば、読出し対象は、補正対象ブロック内の代表セルユニットCU以外のセルユニットCUであってもよい。
図12は、第1実施形態の変形例に係るメモリシステムにおける判定処理及び補正量算出処理を含む一連の処理の一例を示すフローチャートである。図12は、第1実施形態の図10に対応する。図12の例では、図10と同様、判定処理の開始条件は、メモリコントローラ30がホスト読出し要求を受信することである。
すなわち、ホスト機器2からホスト読出し要求を受信すると(開始)、メモリコントローラ30は、読出し対象のセルユニットCUに対する読出し処理を不揮発性メモリ10に実行させる(S31)。S31の処理は、図10のS21の処理と同等であるため、説明を省略する。
メモリコントローラ30は、S21の読出し処理の対象となった物理ブロックPBLKが、補正対象ブロックであるか否かを判定する(S32)。具体的には、メモリコントローラ30は、メモリ管理情報22を参照し、ポインタptrが指す物理ブロックPBLKが読出し対象のセルユニットCUが含まれる物理ブロックPBLKであるか否かを判定する。
読出し対象の物理ブロックPBLKが補正対象ブロックでない場合(S32;no)、判定処理及び補正量算出処理を含む一連の処理は終了となる(終了)。読出し対象の物理ブロックPBLKが補正対象ブロックである場合(S32;yes)、メモリコントローラ30は、読出し対象のセルユニットCUに対する追加の読出し処理を不揮発性メモリ10に実行させる(S33)。S33の読出し処理は、S31の読出し処理で読み出されたページとは異なるページの読出し処理である。例えば、S31の読出し処理で下位ページが読み出された場合、S33の読出し処理では、同一のセルユニットCUの上位ページが読み出される。メモリコントローラ30は、S33の読出し処理によって受信した読出しデータを、バッファメモリ32内に一時的に記憶する。
S31及びS33の読出し処理による読出しデータに基づき、メモリコントローラ30は、読出し対象のセルユニットCUに対する補正量算出処理を実施する(S34)。これにより、メモリコントローラ30は、読出し対象のセルユニットCUの補正量を算出する。
補正量算出処理が終了すると、メモリコントローラ30は、読出し対象のセルユニットCUが代表セルユニットCUであるか否かを判定する(S35)。具体的には、メモリコントローラ30は、S31の処理に際して、不揮発性メモリ10に代表補正量ΔVaを送信したか否かを判定する。
読出し対象のセルユニットCUが代表セルユニットCUでない場合(S35;no)、メモリコントローラ30は、S34の補正量算出処理において算出した補正量を代表補正量ΔVaに換算する(S36)。具体的には、メモリコントローラ30は、S34の補正量算出処理において算出した補正量を、読出し対象のセルユニットCUに関する換算補正量ΔVbとみなす。上述の通り、メモリコントローラ30は、ROMに記憶された換算情報を用いて、任意のセルユニットCUに関する換算補正量ΔVbと、対応する代表補正量ΔVaとを相互に換算可能である。このため、メモリコントローラ30は、当該換算情報に基づき、S34の補正量算出処理において算出した補正量を代表補正量ΔVaに換算する。読出し対象のセルユニットCUが代表セルユニットCUである場合(S35;yes)、S34の補正量算出処理において算出した補正量は、代表補正量ΔVaであるため、S36の処理は省略される。
S36の処理の後、メモリコントローラ30は、S34又はS36の処理で算出された代表補正量ΔVaを揮発性メモリ20内の代表補正量情報21に記憶させる(S37)。これにより、補正対象ブロックの代表補正量ΔVaが最適な状態に更新される。
メモリコントローラ30は、メモリ管理情報22を参照し、補正対象ブロックとなった物理ブロックPBLKとは別の有効ブロックをポインタptrが指すまで、ポインタptrをインクリメントする(S38)。これにより、次回の補正量算出処理を含む一連の処理における補正対象ブロックは、今回の補正量算出処理を含む一連の処理における補正対象ブロックとは異なる物理ブロックPBLKとなる。
S38の処理が終わると、判定処理及び補正量算出処理を含む一連の処理は終了となる(終了)。
第1実施形態の変形例によれば、メモリコントローラ30は、読出し対象が代表セルユニットCU以外のセルユニットCUである場合でも、補正対象ブロックに関する補正量算出処理を実行する。具体的には、メモリコントローラ30は、換算補正量ΔVbを使用して読出し対象のセルユニットCUから必要なデータを読み出す。メモリコントローラ30は、当該データに基づいて補正量算出処理を実行し、換算補正量ΔVbを更新する。メモリコントローラ30は、換算情報を使用して、更新された換算補正量ΔVbから、新たな代表補正量ΔVaを算出する。そして、メモリコントローラ30は、当該新たな代表補正量ΔVaで代表補正量ΔVaを更新する。これにより、補正対象ブロックの代表補正量ΔVaを最適な状態に保つことができる。
2. 第2実施形態
次に、第2実施形態に係るメモリシステムについて説明する。第2実施形態は、補正対象ブロックを示すポインタptrが定義されない点において、第1実施形態と異なる。以下の説明では、第1実施形態と同等の構成及び動作については説明を省略し、第1実施形態と異なる構成及び動作について主に説明する。
2.1 メモリ管理情報
図13は、第2実施形態に係るメモリシステムのメモリ管理情報の構成を示す図である。図13は、第1実施形態の図8に対応する。
図13に示すように、メモリ管理情報22には、有効フラグに加え、残読出し数が記憶される。残読出し数は、対応する有効な物理ブロックPBLKに関する補正量算出処理の実行が許可されるまでに実行される読出し処理の回数を示す。すなわち、メモリコントローラ30は、有効フラグが“true”である物理ブロックPBLKの残読出し数が0になると、当該物理ブロックPBLKに関する補正量算出処理を実行することができる。
なお、第2実施形態に係るメモリ管理情報22には、ポインタptrは定義されない。すなわち、第2実施形態では、補正対象ブロックは、判定処理によって補正量算出処理を実行すると判定される際に、同時に決定される。この点において、第2実施形態は、補正量算出処理の実行可否を判定する判定処理の前に、補正対象ブロックがポインタptrによって決定される第1実施形態とは、異なる。
2.2 書込み処理
図14は、第2実施形態に係るメモリシステムにおける書込み処理を含む一連の処理の一例を示すフローチャートである。図14では、第1実施形態の図10に、処理S13が更に追加される。
図14のS11及びS12の処理は、図10のS11及びS12の処理と同等である。すなわち、書込み条件が満たされると(開始)、メモリコントローラ30は、書込み対象のセルユニットCUに対する書込み処理を不揮発性メモリ10に実行させる(S11)。S11の書込み処理が終了すると、メモリコントローラ30は、メモリ管理情報22内の有効フラグを更新する(S12)。
S12の処理が終了すると、メモリコントローラ30は、メモリ管理情報22内の残読出し数を初期化する(S13)。具体的には、S12の処理によって有効フラグが“false”から“true”に更新された物理ブロックPBLKに対応する残読出し数を、1以上の任意の値(例えば、3)に初期化する。残読出し数が3に初期化された場合、当該物理ブロックPBLKを読出し対象とする読出し処理が3回実行されると、当該物理ブロックPBLKが補正対象ブロックとなる。
S13の処理が終了すると、書込み処理を含む一連の処理は終了となる(終了)。
2.3 判定処理及び補正量算出処理
図15は、第2実施形態に係るメモリシステムにおける判定処理及び補正量算出処理を含む一連の処理の一例を示すフローチャートである。図15は、第1実施形態の変形例の図12に対応する。
図15の例では、判定処理の開始条件は、メモリコントローラ30が読出しコマンドを発行することである。読出しコマンドは、ホスト読出し要求を受信した場合に限らず、メモリコントローラ30の内部処理において読出し処理を実行する場合にも発行され得る。このため、内部処理に伴う読出し処理の場合は、メモリコントローラ30が、不揮発性メモリ10から読み出されたデータを受信しない(不揮発性メモリ10が読み出したデータをメモリコントローラ30に送信しない)場合も含む。また、内部処理に伴う読出し処理の場合は、メモリコントローラ30が、不揮発性メモリ10から受信したデータに基づくデータをホスト機器2に送信しない場合も含む。
図15に示すように、メモリコントローラ30が読出しコマンドを発行すると(開始)、メモリコントローラ30は、読出し対象のセルユニットCUに対する読出し処理を不揮発性メモリ10に実行させる(S41)。
不揮発性メモリ10は、読出し対象のセルユニットCUからの読出し処理を実行する。上述の通り、不揮発性メモリ10は、発行された読出しコマンドに応じて、読出しデータをメモリコントローラ30に送信してもよいし、送信しなくてもよい。読出しデータをメモリコントローラ30に送信しない場合、不揮発性メモリ10は、読出しコマンドに伴う読出し処理が終了した旨をメモリコントローラ30に通知してもよい。
不揮発性メモリ10から読出しデータを受信した場合、メモリコントローラ30は、読出しデータをバッファメモリ32内に一時的に記憶する。ホスト機器2から読出し要求を受信している場合、メモリコントローラ30は、不揮発性メモリ10から受信した読出しデータに基づくデータをホスト機器2に送信する。
S41の処理が終了すると、メモリコントローラ30は、読出し対象の物理ブロックPBLKの残読出し数をデクリメントする(S42)。
そして、メモリコントローラ30は、読出し対象の物理ブロックPBLKの残読出し数が、S42のデクリメント処理によって0となったか否かを判定する(S43)。
読出し対象の物理ブロックPBLKの残読出し数が0でない場合(S43;no)、メモリコントローラ30は、補正対象ブロックがないと判定する。これにより、判定処理及び補正量算出処理を含む一連の処理は終了となる(終了)。
読出し対象の物理ブロックPBLKの残読出し数が0である場合(S43;yes)、メモリコントローラ30は、読出し対象のセルユニットCUを含む物理ブロックPBLKが補正対象ブロックであると判定する。そして、メモリコントローラ30は、読出し対象のセルユニットCUに対する追加の読出し処理を不揮発性メモリ10に実行させる(S44)。S41の読出し処理でメモリコントローラ30が不揮発性メモリ10から読出しデータを受信した場合、S44の読出し処理は、S41の読出し処理で読み出されたページとは異なるページの読出し処理である。S41の読出し処理でメモリコントローラ30が不揮発性メモリ10から読出しデータを受信しなかった場合、S44の読出し処理は、読出し対象のセルユニットCUの全てのページの読出し処理である。メモリコントローラ30は、S44の読出し処理によって受信した読出しデータを、バッファメモリ32内に一時的に記憶する。
S41及びS44の読出し処理による読出しデータに基づき、メモリコントローラ30は、読出し対象のセルユニットCUに対する補正量算出処理を実施する(S45)。これにより、メモリコントローラ30は、読出し対象のセルユニットCUの補正量を算出する。
以降のS46~S48の処理は、図12のS35~37の処理と同等である。すなわち、補正量算出処理が終了すると、メモリコントローラ30は、読出し対象のセルユニットCUが代表セルユニットCUであるか否かを判定する(S46)。読出し対象のセルユニットCUが代表セルユニットCUでない場合(S46;no)、メモリコントローラ30は、S45の補正量算出処理において算出した補正量を代表補正量ΔVaに換算する(S47)。読出し対象のセルユニットCUが代表セルユニットCUである場合(S46;yes)、S45の補正量算出処理において算出した補正量は、代表補正量ΔVaであるため、S47の処理は省略される。S47の処理の後、メモリコントローラ30は、S45又はS47の処理で算出された代表補正量ΔVaを揮発性メモリ20内の代表補正量情報21に記憶させる(S48)。これにより、補正対象ブロックの代表補正量ΔVaが最適な状態に更新される。
S48の処理が終わると、判定処理及び補正量算出処理を含む一連の処理は終了となる(終了)。
2.4 第2実施形態に係る効果
第2実施形態によれば、メモリコントローラ30は、読出しコマンドを発行した場合、判定処理及び補正量算出処理を含む一連の処理を開始する。これにより、メモリコントローラ30は、補正量算出処理を実行すると判定する際に、補正量算出処理の実行対象となる物理ブロックPBLKを選択することができる。
補足すると、メモリコントローラ30は、ホスト読出し要求によらず、内部処理として読出しコマンドを発行し得る。例えば、メモリコントローラ30は、読出し電圧の安定性を向上させるために、不揮発性メモリ10に定期的に読出し処理を実行させる場合がある。このような定期的な読出し処理で読み出されたデータは、正しく読み出されたか否かが問われないため、メモリコントローラ30及びホスト機器2に送信されない。一方、ホスト読出し要求に伴う読出し処理で読み出されたデータは、正しく読み出されることが要求される。
第2実施形態によれば、メモリコントローラ30は、内部処理を含む読出し処理の実行に応じて、読出し対象の物理ブロックPBLKに対応する残読出し数をデクリメントする。そして、メモリコントローラ30は、残読出し数が0となった物理ブロックPBLKに関する補正量算出処理を実行する。このため、有効ブロックに対して定期的に実行される内部処理を利用して、ホスト読出し要求を受信する前に、補正量算出処理を実行することができる。したがって、ホスト読出し要求を受信する際に、読出し電圧を最適な状態に保つことができる。
2.5 第2実施形態の第1変形例
上述の第2実施形態は、読出しコマンドの発行数が閾値に達した物理ブロックPBLKに対して補正量算出処理を実行する場合について説明したが、これに限られない。例えば、読出し対象のアドレスが特定のアドレスにヒットした場合に、当該読出し対象の物理ブロックPBLKに対して補正量算出処理を実行してもよい。
図16は、第2実施形態の第1変形例に係るメモリシステムのメモリ管理情報の構成を示す図である。図16は、第2実施形態の図13に対応する。
メモリ管理情報22には、有効フラグに加え、指定アドレスが記憶される。メモリコントローラ30は、指定アドレスを含む読出しコマンドを発行した場合、当該指定アドレスに対応する物理ブロックPBLKに関する補正量算出処理を実行することができる。
図16の例では、指定アドレスは、<x、y、z>の形式で記載される。ここで、xは、ワード線WLxを示す。yは、ストリングユニットSUyを示す。zは、上位ページU又は下位ページLを示す。すなわち、図16の例では、物理ブロックPBLK0は、ワード線WL2及びストリングユニットSU0の組に対応するセルユニットCUの上位ページを読出し対象とする読出しコマンドが発行された場合、補正対象ブロックとなる。物理ブロックPBLK1は、ワード線WL5及びストリングユニットSU2の組に対応するセルユニットCUの下位ページを読出し対象とする読出しコマンドが発行された場合、補正対象ブロックとなる。物理ブロックPBLK2は、ワード線WL0及びストリングユニットSU3の組に対応するセルユニットCUの下位ページを読出し対象とする読出しコマンドが発行された場合、補正対象ブロックとなる。物理ブロックPBLK3は、ワード線WL7及びストリングユニットSU1の組に対応するセルユニットCUの上位ページを読出し対象とする読出しコマンドが発行された場合、補正対象ブロックとなる。
図17は、第2実施形態の第1変形例に係るメモリシステムにおける判定処理及び補正量算出処理を含む一連の処理の一例を示すフローチャートである。図17は、第2実施形態の図15に対応する。
図17の例では、判定処理の開始条件は、図15の場合と同様、メモリコントローラ30が読出しコマンドを発行することである。
図17のS51の処理は、図15のS41の処理と同等である。すなわち、メモリコントローラ30が読出しコマンドを発行すると(開始)、メモリコントローラ30は、読出し対象のセルユニットCUに対する読出し処理を不揮発性メモリ10に実行させる(S51)。不揮発性メモリ10は、発行された読出しコマンドに応じて、読出しデータをメモリコントローラ30に送信してもよいし、送信しなくてもよい。不揮発性メモリ10から読出しデータを受信した場合、メモリコントローラ30は、読出しデータをバッファメモリ32内に一時的に記憶する。
S51の処理が終了すると、メモリコントローラ30は、読出し対象の読出しコマンドに含まれるアドレスが指定アドレスと一致するか否かを判定する(S52)。
読出し対象の読出しコマンドに含まれるアドレスが指定アドレスと一致しない場合(S52;no)、メモリコントローラ30は、補正対象ブロックがないと判定する。これにより、判定処理及び補正量算出処理を含む一連の処理は終了となる(終了)。
読出し対象の読出しコマンドに含まれるアドレスが指定アドレスと一致する場合(S52;yes)、メモリコントローラ30は、読出し対象のセルユニットCUを含む物理ブロックPBLKが補正対象ブロックであると判定する。そして、メモリコントローラ30は、読出し対象のセルユニットCUに対する追加の読出し処理を不揮発性メモリ10に実行させる(S53)。S51の読出し処理でメモリコントローラ30が不揮発性メモリ10から読出しデータを受信した場合、S53の読出し処理は、S51の読出し処理で読み出されたページとは異なるページの読出し処理である。S51の読出し処理でメモリコントローラ30が不揮発性メモリ10から読出しデータを受信しなかった場合、S53の読出し処理は、読出し対象のセルユニットCUの全てのページの読出し処理である。メモリコントローラ30は、S53の読出し処理によって受信した読出しデータを、バッファメモリ32内に一時的に記憶する。
以降のS54~S57の処理は、図15のS45~S48の処理と同等である。すなわち、S51及びS53の読出し処理による読出しデータに基づき、メモリコントローラ30は、読出し対象のセルユニットCUに対する補正量算出処理を実施する(S54)。補正量算出処理が終了すると、メモリコントローラ30は、読出し対象のセルユニットCUが代表セルユニットCUであるか否かを判定する(S55)。読出し対象のセルユニットCUが代表セルユニットCUでない場合(S55;no)、メモリコントローラ30は、S54の補正量算出処理において算出した補正量を代表補正量ΔVaに換算する(S56)。読出し対象のセルユニットCUが代表セルユニットCUである場合(S55;yes)、S54の補正量算出処理において算出した補正量は、代表補正量ΔVaであるため、S56の処理は省略される。S56の処理の後、メモリコントローラ30は、S54又はS56の処理で算出された代表補正量ΔVaを揮発性メモリ20内の代表補正量情報21に記憶させる(S57)。これにより、補正対象ブロックの代表補正量ΔVaが最適な状態に更新される。
S57の処理が終わると、判定処理及び補正量算出処理を含む一連の処理は終了となる(終了)。
第2実施形態の第1変形例によれば、メモリコントローラ30は、読出しコマンドに含まれるアドレスが指定アドレスと一致する場合、当該指定アドレスに対応する物理ブロックPBLKに関する補正量算出処理を実行する。このため、有効ブロックに対して定期的に実行される内部処理を利用して、ホスト読出し要求を受信する前に、補正量算出処理を実行することができる。したがって、ホスト読出し要求を受信する際に、読出し電圧を最適な状態に保つことができる。
補足すると、メモリコントローラ30は、内部処理において、データが正しく読み出せるか否かを判定するために、不揮発性メモリ10内の全てのページを巡回する読出し処理(パトロール読出し処理)を実行させる場合がある。
図18は、第2実施形態の第1変形例に係るメモリシステムにおけるパトロール読出し処理及び補正量算出処理の実施タイミングの一例を示す模式図である。図18では、パトロール読出し処理の実行順番が数字で示される。また、図18では、図16のメモリ管理情報22に基づく指定アドレスがハッチングで示される。
図18の例では、メモリコントローラ30は、1番目に巡回するページとして、全ての物理ブロックPBLKについてアドレス<0,0,L>を選択し、パトロール読出し処理を実行させる。そして、メモリコントローラ30は、2番目に巡回するページとして、全ての物理ブロックPBLKについてアドレス<0,1,L>を選択し、パトロール読出し処理を実行させる。このような順番でパトロール読出し処理を巡回させる場合、4番目、23番目、41番目、及び62番目に巡回するページのアドレスが、それぞれ物理ブロックPBLK2、PBLK1、PBLK0、及びPBLK3の指定アドレスにヒットする。
このように、第2実施形態の第1変形例によれば、指定アドレスを物理ブロックPBLK毎に独立に設定することにより、指定アドレスがヒットするタイミング(補正量算出処理の実行タイミング)を独立に設定することができる。このため、全ての物理ブロックPBLKに対して補正量算出処理を実行しつつ、補正量算出処理の実行タイミングが特定の期間に集中しないように分散させることができる。したがって、補正量算出処理に伴うメモリコントローラ30の負荷の増加を抑制できる。
2.6 第2実施形態の第2変形例
第2実施形態の第1変形例は、パトロール読出し処理の実行単位が物理ブロックPBLKである場合について説明したが、これに限られない。例えば、パトロール読出し処理の実行単位は、複数の物理ブロックPBLKであってもよい。
図19は、第2実施形態の第2変形例に係る不揮発性メモリの構成の一例を示すブロック図である。図19は、第1実施形態の図3に対応する。
図19に示すように、不揮発性メモリ10は、複数の論理ブロックLBLK(LBLK0、LBLK1、LBLK2、LBLK3、…)を含んでもよい。各論理ブロックLBLKは、複数の物理ブロックPBLKを含む。論理ブロックLBLKに含まれる複数の物理ブロックPBLKは、それぞれ異なるチップChipに属し得る。
図19の例では、論理ブロックLBLK0は、チップChip0の物理ブロックPBLK0と、チップChip1の物理ブロックPBLK0と、を含む。論理ブロックLBLK1は、チップChip0の物理ブロックPBLK1と、チップChip1の物理ブロックPBLK1と、を含む。論理ブロックLBLK2は、チップChip0の物理ブロックPBLK2と、チップChip1の物理ブロックPBLK2と、を含む。論理ブロックLBLK3は、チップChip0の物理ブロックPBLK3と、チップChip1の物理ブロックPBLK3と、を含む。
メモリコントローラ30は、論理ブロックLBLK単位で、書込み処理及び読出し処理等の各種処理を実行し得る。論理ブロックLBLK単位で処理が実行される場合、メモリコントローラ30は、論理ブロックLBLK内の複数の物理ブロックPBLKに対して並列して処理を実行し得る。また、メモリコントローラ30は、論理ブロックLBLK単位に限らず、物理ブロックPBLK単位でも各種処理を実行し得る。
図20は、第2実施形態の第2変形例に係るメモリシステムのメモリ管理情報の構成を示す図である。図20は、第2実施形態の図16に対応する。図20では、有効フラグが論理ブロックLBLK単位で記憶され、指定アドレスが物理ブロックPBLK単位で記憶される場合が示される。
具体的には、論理ブロックLBLK0に含まれるチップChip0の物理ブロックPBLK0の指定アドレス、及びチップChip1の物理ブロックPBLK0の指定アドレスは、それぞれ<2,0,U>及び<2,0,L>である。論理ブロックLBLK1に含まれるチップChip0の物理ブロックPBLK1の指定アドレス、及びチップChip1の物理ブロックPBLK1の指定アドレスは、それぞれ<5,2,L>及び<5,2,U>である。論理ブロックLBLK2に含まれるチップChip0の物理ブロックPBLK2の指定アドレス、及びチップChip1の物理ブロックPBLK2の指定アドレスは、それぞれ<0,3,L>及び<0,3,U>である。論理ブロックLBLK3に含まれるチップChip0の物理ブロックPBLK3の指定アドレス、及びチップChip1の物理ブロックPBLK3の指定アドレスは、それぞれ<7,1,U>及び<7,1,L>である。
図21は、第2実施形態の第2変形例に係るメモリシステムにおけるパトロール読出し処理及び補正量算出処理の実施タイミングの一例を示す模式図である。図21は、第2実施形態の第1変形例の図18に対応する。
図21の例では、4番目に巡回するページのアドレスが、チップChip0の物理ブロックPBLK2の指定アドレスにヒットする。9番目に巡回するページのアドレスが、チップChip1の物理ブロックPBLK0の指定アドレスにヒットする。23番目に巡回するページのアドレスが、チップChip0の物理ブロックPBLK1の指定アドレスにヒットする。30番目に巡回するページのアドレスが、チップChip1の物理ブロックPBLK3の指定アドレスにヒットする。36番目に巡回するページのアドレスが、チップChip1の物理ブロックPBLK2の指定アドレスにヒットする。41番目に巡回するページのアドレスが、チップChip0の物理ブロックPBLK0の指定アドレスにヒットする。55番目に巡回するページのアドレスが、チップChip1の物理ブロックPBLK1の指定アドレスにヒットする。62番目に巡回するページのアドレスが、チップChip0の物理ブロックPBLK3の指定アドレスにヒットする。
このように、第2実施形態の第2変形例によれば、パトロール読出し処理が論理ブロックLBLK単位で実行される場合でも、指定アドレスが物理ブロックPBLK毎に独立に設定される。これにより、指定アドレスがヒットするタイミング(補正量算出処理の実行タイミング)を物理ブロックPBLK毎に独立に設定することができる。このため、同一の論理ブロックLBLKに含まれる複数の物理ブロックPBLKの補正量算出処理の実行タイミングが特定の期間に集中しないように分散させることができる。したがって、補正量算出処理に伴うメモリコントローラ30の負荷の増加を抑制できる。
3. 第3実施形態
次に、第3実施形態に係るメモリシステムについて説明する。第3実施形態は、補正対象ブロックを示すポインタptrが定義される点においては、第1実施形態と同等である。一方、第3実施形態は、判定処理の開始条件がホスト読出し要求の受信に限らず、任意のホスト要求の受信である点において、第1実施形態と異なる。以下の説明では、第1実施形態と同等の構成及び動作については説明を省略し、第1実施形態と異なる構成及び動作について主に説明する。
3.1 判定処理及び補正量算出処理
図22は、第3実施形態に係るメモリシステムにおける判定処理及び補正量算出処理を含む一連の処理の一例を示すフローチャートである。図22は、第1実施形態の変形例の図12に対応する。
図22の例では、判定処理の開始条件は、メモリコントローラ30がホスト要求を受信することである。ホスト要求は、ホスト読出し要求に限らず、ホスト機器2からの任意の要求を含む。
図22に示すように、メモリコントローラ30がホスト要求を受信すると(開始)、メモリコントローラ30は、受信したホスト要求に基づく処理を実行する(S61)。例えば、ホスト要求がホスト読出し要求である場合、S61の処理は、図12のS31の処理と同等である。
S61の処理が終了すると、メモリコントローラ30は、累積要求数NRをインクリメントする(S62)。累積要求数NRは、例えば、初期化されて0になる、0以上の整数である。
そして、メモリコントローラ30は、S61の処理によってインクリメントされた累積要求数NRが、閾値TH以上となったか否かを判定する(S63)。
累積要求数NRが閾値TH以上でない場合(S63;no)、判定処理及び補正量算出処理を含む一連の処理は終了となる(終了)。累積要求数NRが閾値TH以上である場合(S63;yes)、ポインタptrが指し示す補正対象ブロックの代表セルユニットCUが、読出し対象のセルユニットCUであると判定する。そして、メモリコントローラ30は、補正対象ブロックの代表セルユニットCUに対する追加の読出し処理を不揮発性メモリ10に実行させる(S64)。
S61の処理が補正対象ブロックの代表セルユニットCUに対する読出し処理であった場合、S64の読出し処理は、S61の読出し処理で読み出されたページとは異なるページの読出し処理である。S61の処理が読出し処理以外の処理、又は補正対象ブロックの代表セルユニットCU以外のセルユニットCUに対する読出し処理であった場合、S64の読出し処理は、補正対象ブロックの代表セルユニットCUの全てのページの読出し処理である。メモリコントローラ30は、S64の読出し処理によって受信した読出しデータを、バッファメモリ32内に一時的に記憶する。
S61及びS64の読出し処理による読出しデータに基づき、メモリコントローラ30は、補正対象ブロックの代表セルユニットCUに対する補正量算出処理を実施する(S65)。これにより、メモリコントローラ30は、補正対象ブロックの代表補正量ΔVaを算出する。
メモリコントローラ30は、S65の処理で算出された代表補正量ΔVaを揮発性メモリ20内の代表補正量情報21に記憶させる(S66)。これにより、補正対象ブロックの代表補正量ΔVaが最適な状態に更新される。
メモリコントローラ30は、メモリ管理情報22を参照し、補正対象ブロックとなった物理ブロックPBLKとは別の有効ブロックをポインタptrが指すまで、ポインタptrをインクリメントする(S67)。これにより、次回の補正量算出処理を含む一連の処理における補正対象ブロックは、今回の補正量算出処理を含む一連の処理における補正対象ブロックとは異なる物理ブロックPBLKとなる。
メモリコントローラ30は、累積要求数NRを0に初期化する(S68)。これにより、次の補正対象ブロックに関する補正量算出処理は、少なくとも閾値TH以上のホスト要求を受信した後となる。
S68の処理が終わると、判定処理及び補正量算出処理を含む一連の処理は終了となる(終了)。
3.2 第3実施形態に係る効果
第3実施形態によれば、メモリコントローラ30は、ホスト要求を受信した場合、判定処理及び補正量算出処理を含む一連の処理を開始する。そして、メモリコントローラ30は、ホスト要求の累積要求数NRが閾値TH以上である場合、ポインタptrが指し示す補正対象ブロックに関する補正量算出処理を実行する。これにより、補正対象ブロックの代表補正量ΔVaを最適な状態に保つことができる。
また、メモリコントローラ30は、補正量算出処理の後、補正対象ブロックとなった物理ブロックPBLKとは別の有効ブロックをポインタptrが指すまで、ポインタptrをインクリメントする。これにより、全ての有効ブロックに関する補正量算出処理が同程度の頻度で実行されるように、補正対象ブロックを巡回させることができる。したがって、読出し電圧の管理負荷の増加を抑制できる。
4. 第4実施形態
次に、第4実施形態に係るメモリシステムについて説明する。第4実施形態は、補正対象ブロックを示すポインタptrが定義される点においては、第1実施形態と同等である。一方、第4実施形態は、判定処理の開始条件がメモリシステム3の状態が遷移を開始することである点において、第1実施形態と異なる。以下の説明では、第1実施形態と同等の構成及び動作については説明を省略し、第1実施形態と異なる構成及び動作について主に説明する。
4.1 判定処理及び補正量算出処理
図23は、第4実施形態に係るメモリシステムにおける判定処理及び補正量算出処理を伴う状態遷移の一例を示す状態遷移図である。図23では、判定処理及び補正量算出処理に関してメモリシステム3が取り得る複数の状態間の関係が示される。
まず、メモリシステム3の取り得る複数の状態について説明する。
図23に示すように、メモリシステム3の判定処理及び補正量算出処理に関する状態は、アクティブ状態STS1、アクティブ-スタンバイ間遷移中状態STS2、スタンバイ状態STS3、アクティブ-パワーオフ間遷移中状態STS4、及びパワーオフ状態STS5を含む。アクティブ状態STS1は、メモリシステム3における全ての機能が有効となっている状態である。上述の第1実施形態乃至第3実施形態では、メモリシステム3は、アクティブ状態STS1である。アクティブ-スタンバイ間遷移中状態STS2は、メモリシステム3がアクティブ状態とスタンバイ状態との間を遷移している状態である。スタンバイ状態STS3は、メモリシステム3の一部の機能が無効となっている状態である。スタンバイ状態STS3におけるメモリシステム3の電力消費量は、アクティブ状態STS1におけるメモリシステム3の電力消費量より少ない。アクティブ-パワーオフ間遷移中状態STS4は、メモリシステム3がアクティブ状態とパワーオフ状態との間を遷移している状態である。パワーオフ状態STS5は、メモリシステム3に対する電力の供給が停止した状態である。パワーオフ状態STS5において、メモリシステム3は、電力を消費しない。
アクティブ-スタンバイ間遷移中状態STS2は、補正量算出処理中状態STS21、スタンバイ移行処理中状態STS22、アクティブ復帰処理中状態STS23、及び補正対象ブロック更新中状態STS24を含む。補正量算出処理中状態STS21は、メモリシステム3が補正量算出処理を実行している状態である。スタンバイ移行処理中状態STS22は、メモリシステム3がアクティブ状態STS1からスタンバイ状態STS3に移行するための処理を実行している状態である。アクティブ復帰処理中状態STS23は、メモリシステム3がスタンバイ状態STS3からアクティブ状態STS1に復帰するための処理を実行している状態である。補正対象ブロック更新中状態STS24は、メモリシステム3がメモリ管理情報22内のポインタptrをインクリメントして、補正対象ブロックを更新している状態である。
アクティブ-パワーオフ間遷移中状態STS4は、補正量算出処理中状態STS41、パワーオフ移行処理中状態STS42、アクティブ復帰処理中状態STS43、及び補正対象ブロック更新中状態STS44を含む。パワーオフ移行処理中状態STS42は、メモリシステム3がアクティブ状態STS1からパワーオフ状態STS5に移行するための処理を実行している状態である。アクティブ復帰処理中状態STS43は、メモリシステム3がパワーオフ状態STS5からアクティブ状態STS1に復帰するための処理を実行している状態である。補正量算出処理中状態STS41及び補正対象ブロック更新中状態STS44は、それぞれ補正量算出処理中状態STS21及び補正対象ブロック更新中状態STS24と同等の状態である。
次に、各状態を遷移させるイベントについて説明する。
アクティブ状態STS1においてスタンバイエントリ条件が満たされると(E1)、メモリコントローラ30は、補正量算出処理を実行すると判定し、補正量算出処理の実行を開始する。これにより、メモリシステム3は、アクティブ状態STS1からスタンバイ状態STS3への遷移を開始する。すなわち、メモリシステム3は、補正量算出処理中状態STS21に遷移する。スタンバイエントリ条件は、例えば、ホスト機器2からホスト要求を受信しない期間が指定期間以上となる場合が想定される。
補正量算出処理中状態STS21において補正量算出処理が終了すると(E2)、メモリシステム3は、スタンバイ移行処理中状態STS22に遷移する。スタンバイ移行処理は、メモリシステム3の一部の機能を停止させる処理を含む。スタンバイ移行処理は、揮発性メモリ20に記憶された情報のうち、スタンバイ状態STS3に遷移することで失われる情報を、不揮発性メモリ10に記憶させることによって不揮発化する処理を含んでもよい。例えば、スタンバイ移行処理において不揮発化される情報は、代表補正量情報21及びメモリ管理情報22を含んでもよい。スタンバイ移行処理中状態STS22において、スタンバイ移行処理が終了すると(E3)、メモリシステム3は、スタンバイ状態STS3に遷移する。以上により、アクティブ状態STS1からスタンバイ状態STS3への遷移が終了する。
スタンバイ状態STS3においてスタンバイイグジット条件が満たされると(E4)、メモリシステム3は、スタンバイ状態STS3からアクティブ状態STS1への遷移を開始する。すなわち、メモリシステム3は、アクティブ復帰処理中状態STS23に遷移する。スタンバイイグジット条件は、例えば、メモリシステム3がホスト機器2から新たなホスト要求を受信する場合が想定される。アクティブ復帰処理中状態STS23におけるアクティブ復帰処理は、停止していたメモリシステム3の一部の機能を復帰させる処理を含む。アクティブ復帰処理中状態STS23におけるアクティブ復帰処理は、スタンバイ移行処理において不揮発化された情報を揮発性メモリ20に再び記憶させる処理を含んでもよい。例えば、アクティブ復帰処理中状態STS23におけるアクティブ復帰処理において揮発性メモリ20に記憶される情報は、代表補正量情報21及びメモリ管理情報22を含んでもよい。アクティブ復帰処理中状態STS23においてアクティブ復帰処理が終了すると(E5)、メモリシステム3は、補正対象ブロック更新中状態STS24に遷移する。補正対象ブロック更新中状態STS24において補正対象ブロックの更新が終了すると(E6)、メモリシステム3は、アクティブ状態STS1に遷移する。以上により、スタンバイ状態STS3からアクティブ状態STS1への遷移が終了する。
また、アクティブ状態STS1においてパワーオフエントリ条件が満たされると(E7)、メモリコントローラ30は、補正量算出処理を実行すると判定し、補正量算出処理の実行を開始する。これにより、メモリシステム3は、アクティブ状態STS1からパワーオフ状態STS5への遷移を開始する。すなわち、メモリシステム3は、補正量算出処理中状態STS41に遷移する。パワーオフエントリ条件は、例えば、メモリシステム3への電力供給が停止する場合が想定される。
補正量算出処理中状態STS41において余裕時間がある場合(E8)、メモリシステム3は、補正量算出処理中状態STS41を維持する。すなわち、メモリシステム3は、内部容量(図示せず)によってパワーオフ状態STS5に遷移可能な範囲において、補正量算出処理を1又は複数の補正対象ブロックについて実行し続ける。補正量算出処理中状態STS41において余裕時間がない場合(E9)、メモリシステム3は、パワーオフ移行処理中状態STS42に遷移する。パワーオフ移行処理は、メモリシステム3の内部容量を使用して、揮発性メモリ20に記憶された少なくとも一部の情報を、不揮発性メモリ10に記憶させることによって不揮発化する処理を含む。例えば、パワーオフ移行処理において不揮発化される情報は、代表補正量情報21及びメモリ管理情報22を含んでもよい。パワーオフ移行処理中状態STS42において、パワーオフ移行処理が終了すると(E10)、メモリシステム3は、パワーオフ状態STS5に遷移する。以上により、アクティブ状態STS1からパワーオフ状態STS5への遷移が終了する。
パワーオフ状態STS5においてパワーオフイグジット条件が満たされると(E11)、メモリシステム3は、パワーオフ状態STS5からアクティブ状態STS1への遷移を開始する。すなわち、メモリシステム3は、アクティブ復帰処理中状態STS43に遷移する。パワーオフイグジット条件は、例えば、停止していたメモリシステム3への電力供給が再開する場合が想定される。アクティブ復帰処理中状態STS43におけるアクティブ復帰処理は、停止していたメモリシステム3の機能を復帰させる処理を含む。アクティブ復帰処理中状態STS43におけるアクティブ復帰処理は、パワーオフ移行処理において不揮発化された情報を揮発性メモリ20に再び記憶させる処理を含んでもよい。例えば、アクティブ復帰処理中状態STS43におけるアクティブ復帰処理において揮発性メモリ20に記憶される情報は、代表補正量情報21及びメモリ管理情報22を含んでもよい。アクティブ復帰処理中状態STS43においてアクティブ復帰処理が終了すると(E12)、メモリシステム3は、補正対象ブロック更新中状態STS44に遷移する。補正対象ブロック更新中状態STS44において補正対象ブロックの更新が終了すると(E13)、メモリシステム3は、アクティブ状態STS1に遷移する。以上により、パワーオフ状態STS5からアクティブ状態STS1への遷移が終了する。
4.2 第4実施形態に係る効果
第4実施形態によれば、メモリコントローラ30は、スタンバイエントリ条件が満たされると、スタンバイ移行処理を実行する前に、補正量算出処理を実行する。これにより、ホスト機器2からの要求を頻繁に受信しない期間においても、補正対象ブロックの代表補正量ΔVaを最適な状態に保つことができる。
また、メモリコントローラ30は、パワーオフエントリ条件が満たされると、パワーオフ移行処理を実行する前に、補正量算出処理を実行する。これにより、メモリシステム3への電力供給が再開した際に、補正対象ブロックの代表補正量ΔVaを最適な状態に保つことができる。
また、メモリコントローラ30は、内部容量に基づく余裕時間がある範囲において、1又は複数の補正対象ブロックに対する補正量算出処理を実行する。これにより、メモリシステム3への電力供給が再開した際に、代表補正量ΔVaが最適な状態に保たれている補正対象ブロックの数を、多くすることができる。
また、メモリコントローラ30は、スタンバイイグジット条件又はパワーオフイグジット条件が満たされると、アクティブ復帰処理を実行した後に、補正対象ブロックとなった物理ブロックPBLKとは別の有効ブロックをポインタptrが指すまで、ポインタptrをインクリメントする。これにより、状態遷移に伴って補正量算出処理が実行されなかった物理ブロックPBLKが次の補正対象となるように、補正対象ブロックを巡回させることができる。したがって、読出し電圧の管理負荷の増加を抑制できる。
4.3 第4実施形態の変形例
上述の第4実施形態は、メモリシステム3がスタンバイ状態STS3に遷移する前、及びパワーオフ状態STS5に遷移する前に、補正量算出処理が実行される場合について説明したが、これに限られない。例えば、補正量算出処理は、メモリシステム3がアクティブ状態STS1に遷移する前に、実行されてもよい。
図24は、第4実施形態の変形例に係るメモリシステムにおける判定処理及び補正量算出処理を伴う状態遷移の一例を示す状態遷移図である。図24は、第4実施形態の図23に対応する。
図24に示すように、アクティブ状態STS1においてスタンバイエントリ条件が満たされると(E1)、アクティブ状態STS1からスタンバイ状態STS3への遷移を開始する。すなわち、メモリシステム3は、メモリシステム3は、スタンバイ移行処理中状態STS22に遷移する。スタンバイ移行処理中状態STS22においてスタンバイ移行処理が終了すると(E3)、メモリシステム3は、スタンバイ状態STS3に遷移する。以上により、アクティブ状態STS1からスタンバイ状態STS3への遷移が終了する。
スタンバイ状態STS3においてスタンバイイグジット条件が満たされると(E4)、メモリシステム3は、スタンバイ状態STS3からアクティブ状態STS1への遷移を開始する。すなわち、メモリシステム3は、アクティブ復帰処理中状態STS23に遷移する。アクティブ復帰処理中状態STS23においてアクティブ復帰処理が終了すると(E5)、メモリコントローラ30は、補正量算出処理を実行すると判定し、補正量算出処理の実行を開始する。これにより、メモリシステム3は、補正量算出処理中状態STS21に遷移する。補正量算出処理中状態STS21において補正量算出処理が終了すると(E2)、メモリシステム3は、補正対象ブロック更新中状態STS24に遷移する。補正対象ブロック更新中状態STS24において補正対象ブロックの更新が終了すると(E6)、メモリシステム3は、アクティブ状態STS1に遷移する。以上により、スタンバイ状態STS3からアクティブ状態STS1への遷移が終了する。
また、アクティブ状態STS1においてパワーオフエントリ条件が満たされると(E7)、メモリシステム3は、アクティブ状態STS1からパワーオフ状態STS5への遷移を開始する。すなわち、メモリシステム3は、パワーオフ移行処理中状態STS42に遷移する。パワーオフ移行処理中状態STS42においてパワーオフ移行処理が終了すると(E10)、メモリシステム3は、パワーオフ状態STS5に遷移する。以上により、アクティブ状態STS1からパワーオフ状態STS5への遷移が終了する。
パワーオフ状態STS5においてパワーオフイグジット条件が満たされると(E11)、メモリシステム3は、パワーオフ状態STS5からアクティブ状態STS1への遷移を開始する。すなわち、メモリシステム3は、アクティブ復帰処理中状態STS43に遷移する。アクティブ復帰処理中状態STS43においてアクティブ復帰処理が終了すると(E12)、メモリコントローラ30は、補正量算出処理を実行すると判定し、補正量算出処理の実行を開始する。これにより、メモリシステム3は、補正量算出処理中状態STS41に遷移する。補正量算出処理中状態STS41において補正量算出処理が終了すると(E9A)、メモリシステム3は、補正対象ブロック更新中状態STS44に遷移する。補正対象ブロック更新中状態STS44において補正対象ブロックの更新が終了すると(E13)、メモリシステム3は、アクティブ状態STS1に遷移する。以上により、パワーオフ状態STS5からアクティブ状態STS1への遷移が終了する。
第4実施形態の変形例によれば、メモリコントローラ30は、スタンバイイグジット条件が満たされると、アクティブ復帰処理を実行した後に、補正量算出処理を実行する。メモリコントローラ30は、パワーオフイグジット条件が満たされると、アクティブ復帰処理を実行した後に、補正量算出処理を実行する。これにより、スタンバイ状態STS3及びパワーオフ状態STS5に遷移したことによって生じ得る読出し電圧の変動の影響を抑制することができる。
なお、メモリコントローラ30は、アクティブ-パワーオフ間遷移中状態STS4において、補正量算出処理を複数回実行しない。これにより、メモリシステム3をパワーオフ状態STS5からアクティブ状態STS1へ速やかに遷移させることができる。
5. 第5実施形態
次に、第5実施形態に係るメモリシステムについて説明する。第5実施形態は、補正量算出処理を実行した回数に応じて、補正対象ブロックに対して補正量算出処理を実行する頻度を変更する点において、第4実施形態と異なる。以下の説明では、第4実施形態と同等の構成及び動作については説明を省略し、第4実施形態と異なる構成及び動作について主に説明する。
5.1 メモリ管理情報
図25は、第5実施形態に係るメモリシステムのメモリ管理情報の構成を示す図である。図25は、第1実施形態の図8に対応する。図25に示すように、メモリ管理情報22には、有効フラグに加え、補正回数が記憶される。補正回数は、対応する物理ブロックPBLKに関して実行された補正量算出処理の回数を示す。
第5実施形態に係るメモリ管理情報22は、不揮発性メモリ10内の複数の物理ブロックPBLKが、有効フラグ及び上述の補正回数に応じて、複数のリストに分類される。図25の例では、メモリ管理情報22が4つのリストに分類される場合が示される。具体的には、メモリ管理情報22は、未書込みリスト、未補正リスト、少数回補正済リスト、及び多数回補正済リストに分類される。
未書込みリストは、有効なデータが書き込まれていない、すなわち有効フラグが“false”の物理ブロックPBLKが分類される。未書込みリストに分類される物理ブロックPBLKは、補正対象ブロックとはならない。このため、未書込みリストに分類される物理ブロックPBLKは、ポインタが指し示す対象とはならない。
未補正リストは、有効ブロック、すなわち有効フラグが“true”の物理ブロックPBLKのうち、補正回数が0の物理ブロックPBLKが分類される。未補正リストに分類される物理ブロックPBLKは、ポインタptr1に指し示されることによって、補正対象ブロックとなる。
少数回補正済みリストは、有効ブロックのうち、補正回数が1以上閾値X未満の物理ブロックPBLKが分類される。閾値Xは、2以上の整数である。図25の例では、閾値Xが5の場合が示される。少数回補正済みリストに分類される物理ブロックPBLKは、ポインタptr1と異なるポインタptr2に指し示されることによって、補正対象ブロックとなる。
多数回補正済みリストは、有効ブロックのうち、補正回数が閾値X以上の物理ブロックPBLKが分類される。多数回補正済みリストに分類される物理ブロックPBLKは、ポインタptr1及びptr2と異なるポインタptr3に指し示されることによって、補正対象ブロックとなる。
ポインタptr1~ptr3は、互いに独立に定義される。ポインタptr1がインクリメントされる頻度は、ポインタptr2及びptr3がインクリメントされる頻度より高い。ポインタptr2がインクリメントされる頻度は、ポインタptr3がインクリメントされる頻度より高い。このため、未補正リストに分類される物理ブロックPBLKは、少数回補正済みリスト及び多数回補正済みリストに分類される物理ブロックPBLKよりも高頻度で補正対象ブロックとなる。少数回補正済みリストに分類される物理ブロックPBLKは、多数回補正済みリストに分類される物理ブロックPBLKよりも高頻度で補正対象ブロックとなる。このように、第5実施形態に係るメモリ管理情報22では、補正回数の増加に応じて補正量算出処理の対象となる頻度が低くなるように、物理ブロックPBLKが分類される。
5.2 書込み処理
図26は、第5実施形態に係るメモリシステムにおける書込み処理を含む一連の処理の一例を示すフローチャートである。図26では、第1実施形態の図10に、処理S14が更に追加される。
図26のS11及びS12の処理は、図10のS11及びS12の処理と同等である。すなわち、書込み条件が満たされると(開始)、メモリコントローラ30は、書込み対象のセルユニットCUに対する書込み処理を不揮発性メモリ10に実行させる(S11)。S11の書込み処理が終了すると、メモリコントローラ30は、メモリ管理情報22内の有効フラグを更新する(S12)。
S12の処理が終了すると、メモリコントローラ30は、書込み対象の物理ブロックPBLKに対応する列を未書込みリストから削除すると共に、未補正リストのポインタptr1が指し示す列の直前の列に移動させる(S14)。これにより、メモリコントローラ30は、データが書き込まれた物理ブロックPBLKに対する補正量算出処理の順番を、未実施リスト内の現時点における最後にすることができる。
S14の処理が終了すると、書込み処理を含む一連の処理は終了となる(終了)。
5.3 判定処理及び補正量算出処理
図27は、第5実施形態に係るメモリシステムにおける判定処理及び補正量算出処理を伴う状態遷移の一例を示す状態遷移図である。図27は、第4実施形態の図23に対応する。図27に示すように、メモリシステム3は、アクティブ状態STS1、複数の遷移中状態STS2A~STS2C、及び複数のスタンバイ状態STS3A~STS3Cを含む。
スタンバイA状態STS3Aは、例えば、消費電力が最も少なくできるスタンバイ状態である。具体的には、例えば、スタンバイA状態STS3Aにおいてメモリシステム3は、不揮発性メモリ10への電力供給を停止させる。スタンバイA状態STS3Aにおいてメモリシステム3が揮発性メモリ20に記憶させ続ける情報量は、スタンバイB状態STS3B及びスタンバイC状態STS3Cよりも少ない。スタンバイA状態STS3Aにおいてメモリシステム3は、ホスト機器2との間で通信されるクロック信号を除いて、クロック信号の通信を停止する。
スタンバイB状態STS3Bは、例えば、スタンバイA状態STS3AとスタンバイC状態STS3Cとの間の特性を有するスタンバイ状態である。具体的には、例えば、スタンバイB状態STS3Bにおいてメモリシステム3は、不揮発性メモリ10への電力供給を維持する。スタンバイB状態STS3Bにおいてメモリシステム3が揮発性メモリ20に記憶させ続ける情報量は、スタンバイA状態STS3Aより多く、かつスタンバイC状態STS3Cよりも少ない。スタンバイB状態STS3Bにおいてメモリシステム3は、ホスト機器2との間で通信されるクロック信号を除いて、クロック信号の通信を停止する。
スタンバイC状態STS3Cは、例えば、アクティブ状態STS1への復帰時間を元雄も短くできるスタンバイ状態である。具体的には、例えば、スタンバイC状態STS3Cにおいてメモリシステム3は、電力供給を停止させない。スタンバイC状態STS3Cにおいてメモリシステム3が揮発性メモリ20に記憶させ続ける情報量は、スタンバイA状態STS3A及びスタンバイB状態STS3Bよりも多い。スタンバイC状態STS3Cにおいてメモリシステム3は、ホスト機器2との間で通信されるクロック信号を除いて、クロック信号の通信を停止する。
複数の遷移中状態STS2A~STS2Cは、それぞれ複数の状態STS21A~STS24A、STS21B~STS24B、及びSTS21C~STS24Cを含む。複数の状態STS21A~STS24A、STS21B~STS21B、及びSTS21C~STS24Cの各々は、図23の複数の状態STS21~STS24と同等であるため、説明を省略する。なお、複数の遷移中状態STS2A~STS2Cの各々へのエントリ条件は、互いに異なる。すなわち、メモリコントローラ30は、複数の遷移中状態STS2A~STS2Cの各々に含まれる補正量算出処理について、互いに異なる条件を使用して実行可否を判定する。
メモリシステム3におけるスタンバイ状態への遷移の発生頻度は、例えば、スタンバイA状態STS3A、スタンバイB状態STS3B、スタンバイC状態STS3Cの順に高くなる。このため、補正量算出処理の頻度は、アクティブ-スタンバイA間の遷移中状態STS2Aにおいて実行される場合、アクティブ-スタンバイB間の遷移中状態STS2Bにおいて実行される場合、アクティブ-スタンバイC間の遷移中状態STS2Cにおいて実行される場合、の順に高くなる。
第5実施形態では、上述したスタンバイ状態への遷移の発生頻度の違いと、図25に示した物理ブロックPBLK毎の補正量算出処理の実行頻度の違いと、が相互に関連づけられる。すなわち、メモリコントローラ30は、アクティブ-スタンバイC間の遷移中状態STS2Cで実行される補正量算出処理において、未補正リストに分類される物理ブロックPBLKの補正量を算出する。メモリコントローラ30は、アクティブ-スタンバイB間の遷移中状態STS2Bで実行される補正量算出処理において、少数回補正済リストに分類される物理ブロックPBLKの補正量を算出する。メモリコントローラ30は、アクティブ-スタンバイA間の遷移中状態STS2Aで実行される補正量算出処理において、多数回補正済リストに分類される物理ブロックPBLKの補正量を算出する。以上により、物理ブロックPBLK毎の補正量算出処理の発生頻度を異ならせる動作を実現することができる。
5.4 補正頻度の変更処理
図28は、第5実施形態に係るメモリシステムにおける補正頻度の変更処理の一例を示すフローチャートである。図28の例では、補正頻度の変更処理の開始条件は、補正量算出処理が終了することである。
図28に示すように、補正量算出処理が終了すると(開始)、メモリコントローラ30は、メモリ管理情報22を参照する。そして、メモリコントローラ30は、補正対象の物理ブロックPBLKに対応する列の補正回数をインクリメントする(S71)。
メモリコントローラ30は、補正対象の補正回数が1であるか否かを判定する(S72)。補正対象の補正回数が1である場合(S72;yes)、メモリコントローラ30は、補正対象の物理ブロックPBLKが未補正リストに分類されていると判定する。そして、メモリコントローラ30は、未補正リスト内において、ポインタptr1をインクリメントする(S73)。
S73の処理の後、メモリコントローラ30は、補正対象の物理ブロックPBLKに対応する列を、未補正リストから、少数回補正済リストのポインタptr2が指す列の直前の列に移動させる(S74)。これにより、メモリコントローラ30は、補正量算出処理が実行された物理ブロックPBLKに対する次の補正量算出処理の順番を、少数回実施済みリスト内の現時点における最後にすることができる。そして、S74の処理が終了すると、補正頻度の変更処理は終了となる(終了)。
補正対象の補正回数が1でない場合(S72;no)、メモリコントローラ30は、補正対象の物理ブロックPBLKが少数回補正済みリスト又は多数回補正済みリストに分類されていると判定する。そして、メモリコントローラ30は、補正対象の補正回数が閾値X以下であるか否かを判定する(S75)。
補正対象の補正回数が閾値X以下である場合(S75;yes)、メモリコントローラ30は、補正対象の物理ブロックPBLKが少数回補正済みリストに分類されていると判定する。そして、メモリコントローラ30は、少数回補正済みリスト内において、ポインタptr2をインクリメントする(S76)。
S76の処理の後、メモリコントローラ30は、補正対象の補正回数が閾値Xであるか否かを判定する(S77)。補正対象の補正回数が閾値Xでない場合(すなわち、補正回数が2以上X未満の場合)(S77;no)、補正頻度の変更処理は終了となる(終了)。
補正対象の補正回数が閾値Xである場合(S77;yes)、メモリコントローラ30は、補正対象の物理ブロックPBLKに対応する列を、少数回補正済みリストから、多数回補正済リストのポインタptr3が指す列の直前の列に移動させる(S78)。これにより、メモリコントローラ30は、補正量算出処理が実行された物理ブロックPBLKに対する次の補正量算出処理の順番を、多数回実施済みリスト内の現時点における最後にすることができる。そして、S78の処理が終了すると、補正頻度の変更処理は終了となる(終了)。
補正対象の補正回数が閾値Xを超える場合(S75;no)、メモリコントローラ30は、補正対象の物理ブロックPBLKが多数回補正済みリストに分類されていると判定する。そして、メモリコントローラ30は、多数回補正済みリスト内において、ポインタptr3をインクリメントする(S79)。そして、S79の処理が終了すると、補正頻度の変更処理は終了となる(終了)。
5.5 第5実施形態に係る効果
第5実施形態によれば、メモリコントローラ30は、スタンバイC状態STS3Cへのエントリ条件が満たされる場合、未補正リストに分類される補正対象ブロックに関する補正量算出処理を実行する。メモリコントローラ30は、スタンバイB状態STS3Bへのエントリ条件が満たされる場合、少数回補正済みリストに分類される補正対象ブロックに関する補正量算出処理を実行する。メモリコントローラ30は、スタンバイA状態STS3Aへのエントリ条件が満たされる場合、多数回補正済リストに分類される補正対象ブロックに関する補正量算出処理を実行する。スタンバイC状態STS3Cへのエントリ条件は、最も発生頻度が高い。スタンバイA状態STS3Aへのエントリ条件は、最も発生頻度が低い。スタンバイB状態STS3Bへのエントリ条件は、スタンバイA状態STS3Aへのエントリ条件とスタンバイC状態STS3Cへのエントリ条件との間の発生頻度である。これにより、補正回数が少ない物理ブロックPBLKほど、補正量算出処理の実行頻度を高くすることができる。このため、補正量が最適値から離れている可能性が高い物理ブロックPBLKに対しては補正量算出処理を速やかに実行しつつ、補正量が適切な値に近い可能性が高い物理ブロックPBLKに対しては補正量算出処理の実行数を減らすことができる。
なお、第5実施形態では、状態遷移の発生頻度の違いを補正量算出処理の実行頻度の違いと関連づける場合について説明したが、これに限られない。例えば、第1実施形態において、補正量算出処理を実行するための条件として、代表セルユニットCUへのホスト読出し要求数を考慮してもよい。具体的には、補正量算出処理を高頻度で実行させたい場合には代表セルユニットCUへのホスト読出し要求数を1回とし、低頻度で実行させたい場合には代表セルユニットCUへのホスト読出し要求数を5回とする、といった制御が考えられる。
6. その他
上述の第1実施形態乃至第5実施形態は、上述の例に限られず、種々の変形が適用可能である。
例えば、上述した第1実施形態乃至第5実施形態では、1つの物理ブロックPBLKについて1つの代表セルユニットCU及び1つの代表補正量ΔVaの組が割り当てられる場合について説明したが、これに限られない。例えば、代表セルユニットCU及び代表補正量ΔVaの組は、1つの物理ブロックPBLKについて複数割り当てられてもよい。
また、上述の第1実施形態乃至第5実施形態では、1つのメモリセルトランジスタMTに2ビットのデータを記憶可能な場合について説明したが、これに限られず、3ビット、4ビット、又は5ビット以上のデータを記憶可能な場合についても、同様に適用可能である。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1…情報処理システム、2…ホスト機器、3…メモリシステム、10…不揮発性メモリ、20…揮発性メモリ、21…代表補正量情報、22…メモリ管理情報、30…メモリコントローラ、31…制御回路、32…バッファメモリ、33…ホストインタフェース回路、34…ECC回路、35…読出し電圧補正回路、36…不揮発性メモリインタフェース回路、37…揮発性メモリインタフェース回路。

Claims (18)

  1. 複数のグループを含む不揮発性メモリと、ここで、前記複数のグループの各々は、複数のセルユニットを含み、前記複数のセルユニットの各々は、複数のメモリセルを含む、
    第1動作を実行するように構成されたメモリコントローラと、
    を備え、
    前記第1動作は、
    対象グループに対応づけられた第1補正量に基づいて、前記対象グループからデータを読み出すことと、
    前記データに基づき、前記第1補正量を第2補正量に更新することと、
    を含み、
    前記メモリコントローラは、
    第1グループを前記対象グループとして選択し、
    条件が満たされる場合、前記第1グループに関する前記第1動作を実行した後に、第2グループを前記対象グループとして選択する
    ように構成された、
    メモリシステム。
  2. 前記条件は、ホスト機器から受信した読出し要求に基づいて前記第1グループ内に含まれる第1セルユニットからデータを読み出すことを含み、
    前記メモリコントローラは、前記条件が満たされる場合、前記第1補正量を使用して前記第1セルユニットから読み出されたデータに基づき、前記第1補正量を前記第2補正量に更新するように構成された、
    請求項1記載のメモリシステム。
  3. 前記条件は、前記第1グループ内に含まれ、かつ前記第1セルユニットと異なる第2セルユニットに対する読出し要求をホスト機器から受信することを含み、
    前記メモリコントローラは、前記条件が満たされる場合、
    前記第1補正量に基づいて第3補正量を算出し、
    前記第3補正量を使用して前記第2セルユニットから読み出されたデータに基づき、前記第1補正量を前記第2補正量に更新する
    ように構成された、
    請求項2記載のメモリシステム。
  4. 前記条件は、ホスト機器から受信した要求の数が第1閾値以上となることを含む、
    請求項1記載のメモリシステム。
  5. 前記条件は、前記メモリシステムが第1状態から第2状態への遷移を開始することを含む、
    請求項1記載のメモリシステム。
  6. 前記第1状態は、アクティブ状態であり、
    前記第2状態は、スタンバイ状態である、
    請求項5記載のメモリシステム。
  7. 前記第1状態は、アクティブ状態であり、
    前記第2状態は、パワーオフ状態である、
    請求項5記載のメモリシステム。
  8. 前記条件が満たされることは、第1条件又は第2条件が満たされることを含み、
    前記メモリコントローラは、
    前記第1グループが前記対象グループとして選択される際に前記第1条件が満たされる場合、前記第1グループに関する前記第1動作を実行した後に、前記第2グループを前記対象グループとして選択し、
    第3グループが前記対象グループとして選択される際に前記第2条件が満たされる場合、前記第3グループに関する前記第1動作を実行した後に、第4グループを前記対象グループとして選択する
    ように構成された、
    請求項1記載のメモリシステム。
  9. 前記メモリコントローラは、前記第1グループに関する前記第1動作の実行回数が第2閾値以上となった場合、前記第1グループに関する前記第1動作が発動する条件を前記第1条件から前記第2条件へと変更するように構成された、
    請求項8記載のメモリシステム。
  10. 前記第1条件は、前記メモリシステムが第1状態から第2状態への遷移を開始することを含み、
    前記第2条件は、前記メモリシステムが前記第1状態から第3状態への遷移を開始することを含む、
    請求項8記載のメモリシステム。
  11. 前記第1状態は、アクティブ状態であり、
    前記第2状態は、第1スタンバイ状態であり、
    前記第3状態は、前記第1スタンバイ状態より発生頻度が低い第2スタンバイ状態である、
    請求項10記載のメモリシステム。
  12. 前記メモリコントローラは、前記第1グループに関する前記第1動作の実行回数が第2閾値以上となった場合、前記第1グループに関する前記第1動作が発動する条件を前記第1条件から前記第2条件へと変更するように構成された、
    請求項11記載のメモリシステム。
  13. 前記複数のグループの各々は、データの消去単位である、
    請求項1記載のメモリシステム。
  14. 前記複数のセルユニットの各々は、データの書込み単位である、
    請求項13記載のメモリシステム。
  15. 前記複数のセルユニットのうちの1つのセルユニット内の前記複数のメモリセルは、
    同一のワード線に共通接続され、
    それぞれ異なるビット線に接続される、
    請求項14記載のメモリシステム。
  16. 複数のグループを含む不揮発性メモリと、ここで、前記複数のグループの各々は、複数のセルユニットを含み、前記複数のセルユニットの各々は、複数のメモリセルを含む、
    第1動作を実行するように構成されたメモリコントローラと、
    を備え、
    前記第1動作は、
    対象グループに対応づけられた第1補正量に基づいて、前記対象グループからデータを読み出すことと、
    前記データに基づき、前記第1補正量を第2補正量に更新することと、
    を含み、
    前記メモリコントローラは、第1グループに関する条件が満たされる場合、
    前記第1グループを前記対象グループとして選択し、
    前記第1グループに関する第1動作を実行する
    ように構成された、
    メモリシステム。
  17. 前記条件は、前記第1グループを対象とする読出しコマンドの発行数が第1数に達することを含む、
    請求項16記載のメモリシステム。
  18. 前記メモリコントローラは、前記第1グループ内の第1アドレスを選択するように構成され、
    前記条件は、前記第1グループを対象とする読出しコマンドに含まれるアドレスが前記第1アドレスと一致することを含む、
    請求項16記載のメモリシステム。
JP2021039433A 2021-03-11 2021-03-11 メモリシステム Pending JP2022139171A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2021039433A JP2022139171A (ja) 2021-03-11 2021-03-11 メモリシステム
US17/349,358 US11605440B2 (en) 2021-03-11 2021-06-16 Memory system
US18/163,906 US20230187008A1 (en) 2021-03-11 2023-02-03 Memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021039433A JP2022139171A (ja) 2021-03-11 2021-03-11 メモリシステム

Publications (1)

Publication Number Publication Date
JP2022139171A true JP2022139171A (ja) 2022-09-26

Family

ID=83194017

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021039433A Pending JP2022139171A (ja) 2021-03-11 2021-03-11 メモリシステム

Country Status (2)

Country Link
US (2) US11605440B2 (ja)
JP (1) JP2022139171A (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010244605A (ja) 2009-04-03 2010-10-28 Toshiba Corp メモリシステム
JP2016162466A (ja) * 2015-02-26 2016-09-05 株式会社東芝 半導体記憶装置及びメモリシステム
US10222990B2 (en) * 2015-07-24 2019-03-05 Sandisk Technologies Llc Optimistic read operation
US10346177B2 (en) 2016-12-14 2019-07-09 Intel Corporation Boot process with parallel memory initialization
JP2020047337A (ja) 2018-09-18 2020-03-26 キオクシア株式会社 メモリシステム
JP2020155174A (ja) * 2019-03-19 2020-09-24 キオクシア株式会社 メモリシステム
JP2021190150A (ja) * 2020-06-02 2021-12-13 キオクシア株式会社 メモリシステム及びメモリコントローラ

Also Published As

Publication number Publication date
US11605440B2 (en) 2023-03-14
US20230187008A1 (en) 2023-06-15
US20220293204A1 (en) 2022-09-15

Similar Documents

Publication Publication Date Title
US10324788B2 (en) Memory system
US10698762B2 (en) Data reading method and storage controller
JP2012084127A (ja) 半導体装置
US10860251B2 (en) Semiconductor memory device
US11790993B2 (en) Memory system having a non-volatile memory and a controller configured to switch a mode for controlling an access operation to the non-volatile memory
US10755785B2 (en) Memory system and method of operating the same
JP2021007061A (ja) メモリシステム
US10922200B2 (en) Memory system and method of operating the same
US10684672B2 (en) Selection of a low power consumption mode in a memory system based on information on a data transfer state
JP2020155052A (ja) メモリシステムおよび制御方法
US11768634B2 (en) Memory system and information processing system
JP2020107376A (ja) メモリシステム
US20130166949A1 (en) Semiconductor memory device and method for operating the same
US10936421B2 (en) Memory system having storage device and memory controller and operating method thereof
US11017837B2 (en) Memory system
US11710515B2 (en) Memory system
CN115206357B (zh) 在电荷泵恢复周期期间使用动态计时得到的峰值电流减少
JP2022139171A (ja) メモリシステム
US11715535B2 (en) Semiconductor storage device
US11721381B2 (en) Performing refresh operations of a memory device according to a dynamic refresh frequency
US11488639B2 (en) Input circuit capable of stabilizing power voltage and memory device including the same
JP2023002208A (ja) メモリシステム及びリード方法
US11645001B2 (en) Memory system and controlling method of memory system
US20240005969A1 (en) Memory system
US20230298672A1 (en) Memory system and read method

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20230106