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

メモリシステム Download PDF

Info

Publication number
JP2023139827A
JP2023139827A JP2022045555A JP2022045555A JP2023139827A JP 2023139827 A JP2023139827 A JP 2023139827A JP 2022045555 A JP2022045555 A JP 2022045555A JP 2022045555 A JP2022045555 A JP 2022045555A JP 2023139827 A JP2023139827 A JP 2023139827A
Authority
JP
Japan
Prior art keywords
word line
error bits
group
parameter set
worst
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
JP2022045555A
Other languages
English (en)
Inventor
京香 小西
Kyoka Konishi
康之 牛島
Yasuyuki Ushijima
寿樹 新倉
Toshiki Niikura
瑛莉子 赤井畑
Eriko Akaihata
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 JP2022045555A priority Critical patent/JP2023139827A/ja
Priority to US17/902,279 priority patent/US20230307061A1/en
Publication of JP2023139827A publication Critical patent/JP2023139827A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • 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/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/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

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)

Abstract

【課題】エラービット数を低減できるメモリシステムを実現する。【解決手段】メモリシステムのコントローラは、ブロックのプログラム/イレーズサイクルの回数が第1の回数だけ増える度、複数のワード線の各々に接続された複数のメモリセルから読み出されるデータのエラービット数を計測する。閾値を超えるエラービット数に対応するワード線を含むワード線グループを特定する。コントローラは、特定したワード線グループの平均エラービット数に基づいて、複数のパラメータセットから、特定したワード線グループに適用されるパラメータセットを選択する。コントローラは、特定したワード線グループに対するプログラム動作を規定するパラメータセットを、選択したパラメータセットに変更する。【選択図】図15

Description

本発明の実施形態は、不揮発性メモリを制御するメモリシステムに関する。
近年、不揮発性メモリを制御するメモリシステムが広く普及している。このようなメモリシステムとして、NAND型フラッシュメモリを備えるソリッドステートドライブ(SSD)が知られている。SSDのようなメモリシステムにおいては、不揮発性メモリから読み出されるデータに含まれるエラービット数を低減する技術が必要とされている。
米国特許第10,698,636号明細書 米国特許第10,482,986号明細書 米国特許第10,490,288号明細書
本発明が解決しようとする課題は、エラービット数を低減できるメモリシステムを提供することである。
実施形態によれば、メモリシステムは、不揮発性メモリと、前記不揮発性メモリへのデータの書き込みと前記不揮発性メモリからのデータの読み出しとを実行するコントローラと、を具備する。前記不揮発性メモリは、各々が消去動作の単位である複数のブロックを含む。前記複数のブロックの各々は、複数のワード線の各々に接続された複数のメモリセルを含む。前記コントローラは、各々が前記複数のワード線のうちの1以上のワード線を含む複数のワード線グループを管理する。前記コントローラは、前記複数のブロックのうちの第1のブロックのプログラム/イレーズサイクルの回数が第1の回数だけ増える度、前記第1のブロックの複数のワード線の各々に接続された複数のメモリセルから読み出されるデータのエラービット数を計測する。前記コントローラは、前記複数のワード線グループのうち、閾値を超えるエラービット数に対応するワード線を含む第1のワード線グループを特定する。前記コントローラは、前記第1のワード線グループに含まれる1以上のワード線のエラービット数の平均を示す平均エラービット数を算出する。前記コントローラは、前記第1のワード線グループの前記平均エラービット数に基づいて、各々が前記不揮発性メモリに対するプログラム動作を規定する複数のパラメータセットから、前記第1のワード線グループに適用されるパラメータセットを選択する。前記コントローラは、前記第1のブロックの前記第1のワード線グループに含まれる前記1以上のワード線の各々に対するプログラム動作を規定するパラメータセットを、前記選択したパラメータセットに変更する。
本発明の第1実施形態に係るメモリシステムを含む情報処理システムの構成例を示すブロック図。 本発明の第1実施形態に係る不揮発性メモリの内部構成の例を示すブロック図。 本発明の第1実施形態に係る不揮発性メモリに記憶されるデータの例を示すブロック図。 本発明の第1実施形態に係るRAMに記憶されるデータの例を示すブロック図。 本発明の第1実施形態に係るCPUの機能構成の例を示すブロック図。 本発明の第1実施形態に係るメモリシステムにおいて管理されるエラービット数テーブルの例を示す図。 本発明の第1実施形態に係るメモリシステムにおいて管理されるワーストワード線グループテーブルの例を示す図。 本発明の第1実施形態に係るメモリシステムにおいて管理されるパラメータセットテーブルの例を示す図。 本発明の第1実施形態に係るメモリシステムにおいて管理される複数のパラメータセットの例を示す図。 本発明の第1実施形態に係るメモリシステムにおけるパラメータ調整動作の例を示すシーケンス図。 本発明の第1実施形態に係るメモリシステムにおける、プログラム/イレーズサイクルとエラービット数の平均との関係を示す図。 本発明の第1実施形態に係るメモリシステムにおける500サイクル目のパラメータ調整後の複数のワード線の各々のエラービット数の例を示す図。 本発明の第1実施形態に係るメモリシステムにおける1000サイクル目のパラメータ調整後の複数のワード線の各々のエラービット数の例を示す図。 本発明の第1実施形態に係るメモリシステムにおけるパラメータ調整動作において計測される複数のワード線の各々のエラービット数の例を示す図。 本発明の第1実施形態に係るメモリシステムにおける、パラメータ調整動作が実行された際の複数のワード線の各々のエラービット数の例を示す図。 本発明の第1実施形態に係るメモリシステムにおける、二つのワード線グループそれぞれに新たなパラメータセットが適用された際のエラービット数の例を示す図。 本発明の第1実施形態に係るメモリシステムにおいて実行されるパラメータ調整動作の手順を示すフローチャート。 本発明の第2実施形態に係るメモリシステムを含む情報処理システムの構成例を示すブロック図。 本発明の第2実施形態に係る不揮発性メモリに記憶されるデータの例を示すブロック図。 本発明の第2実施形態に係るRAMに記憶されるデータの例を示すブロック図。 本発明の第2実施形態に係るCPUの機能構成の例を示すブロック図。 本発明の第2実施形態に係るメモリシステムにおいて管理されるワーストダイテーブルの例を示す図。 本発明の第2実施形態に係るメモリシステムにおけるパラメータ調整動作の例を示すシーケンス図。 本発明の第2実施形態に係るメモリシステムにおいて実行されるパラメータ調整動作の手順を示すフローチャート。
以下、図面を参照して、本発明の実施形態を説明する。
(第1実施形態)
本発明の第1実施形態に係るメモリシステムを含む情報処理システムの構成について説明する。図1は、本発明の第1実施形態に係るメモリシステムを含む情報処理システムの構成例を示すブロック図である。情報処理システム1は、ホスト2と、メモリシステム3とを含む。
ホスト2は、情報処理装置である。ホスト2は、例えば、パーソナルコンピュータ、またはサーバコンピュータである。ホスト2は、メモリシステム3にアクセスする。具体的には、ホスト2は、データを書き込むためのコマンドであるライトコマンドをメモリシステム3に送信する。また、ホスト2は、データを読み出すためのコマンドであるリードコマンドをメモリシステム3に送信する。
メモリシステム3は、ストレージデバイスである。メモリシステム3は、例えば、NAND型フラッシュメモリを含むSSDである。メモリシステム3は、不揮発性メモリにデータを書き込む。そして、メモリシステム3は、不揮発性メモリからデータを読み出す。
ホスト2と、メモリシステム3とは、バス4を介して接続可能である。バス4を介したホスト2とメモリシステム3との間の通信は、例えば、NVM ExpressTM(NVMeTM)規格、またはSerial Attached SCSI(SAS)規格に準拠して実行される。バス4は、例えば、PCI ExpressTMバス(PCIeTMバス)である。バス4は、主として、ホスト2からメモリシステム3へのI/Oコマンドの送信、およびメモリシステム3からホスト2への応答の送信のために使用される。I/Oコマンドは、不揮発性メモリに対するデータの書き込みまたは読み出しを行うためのコマンドである。I/Oコマンドとしては、例えば、ライトコマンド、リードコマンドがある。
次に、ホスト2の内部構成を説明する。ホスト2は、プロセッサ21と、メモリ22とを含む。
プロセッサ21は、CPU(Central Processing Unit)である。プロセッサ21は、バス4を介してメモリシステム3との通信を行う。プロセッサ21は、メモリ22にロードされるソフトウェア(ホストソフトウェア)を実行する。ホストソフトウェアは、例えば、メモリシステム3からメモリ22にロードされる。ホストソフトウェアは、オペレーティングシステム、ファイルシステム、デバイスドライバ、アプリケーションプログラムなどを含む。
メモリ22は、揮発性のメモリである。メモリ22は、例えば、DRAM(Dynamic Random Access Memory)のようなランダムアクセスメモリである。
次に、メモリシステム3の内部構成を説明する。メモリシステム3は、コントローラ5と、不揮発性メモリ6と、ランダムアクセスメモリ(RAM)7とを含む。
コントローラ5は、メモリコントローラである。コントローラ5は、例えば、System-on-a-Chip(SoC)のような制御回路である。コントローラ5は、不揮発性メモリ6と通信可能に接続される。コントローラ5は、不揮発性メモリ6へのデータの書き込みと、不揮発性メモリ6からのデータの読み出しとを実行する。また、コントローラ5は、RAM7と通信可能に接続される。コントローラ5は、RAM7へのデータの書き込みと、RAM7からのデータの読み出しとを実行する。また、コントローラ5は、バス4を介してホスト2との通信を実行する。
不揮発性メモリ6は、不揮発性のメモリである。不揮発性メモリ6は、例えば、NAND型フラッシュメモリである。また、不揮発性メモリ6は、例えば、2次元構造のフラッシュメモリ、または3次元構造のフラッシュメモリである。不揮発性メモリ6は、複数のブロックを含む。複数のブロックの各々は、データ消去動作の単位である。データ消去動作は、ブロックに記憶されているデータを消去する動作である。複数のブロックの各々は、物理ブロック、消去ブロック、フラッシュブロック、またはメモリブロックとも称される。複数のブロックの各々は、複数のワード線の各々に接続された複数のメモリセルを含む。
RAM7は、揮発性のメモリである。RAM6は、例えば、ダイナミックRAM(DRAM)である。RAM7は、例えば、受信されたライトデータ、または不揮発性メモリ6から読み出されたリードデータを一時的に保持する。
次に、コントローラ5の内部構成について説明する。コントローラ5は、ホストインタフェース回路51、CPU52、直接メモリアクセスコントローラ(DMAC)53、ECC回路54、不揮発性メモリ制御回路55、およびRAMインタフェース回路56を含む。ホストインタフェース回路51、CPU52、DMAC53、ECC回路54、不揮発性メモリ制御回路55、およびRAMインタフェース回路56は、内部バス50に接続される。
ホストインタフェース回路51は、ハードウェアインターフェースである。ホストインタフェース回路51は、ホスト2との通信を実行する。ホストインタフェース回路51は、ホスト2から様々なコマンドを受信する。様々なコマンドには、例えば、I/Oコマンドがある。
CPU52は、プロセッサである。CPU52は、ホストインタフェース回路51と、DMAC53と、ECC回路54と、不揮発性メモリ制御回路55と、RAMインタフェース回路56とを制御する。CPU52は、図示しないROMまたは不揮発性メモリ6から制御プログラム(ファームウェア)をRAM7にロードする。CPU52は、制御プログラム(ファームウェア)を実行する。CPU52は、制御プログラムに基づいて、様々な処理を行う。CPU52は、例えば、フラッシュトランスレーション層(FTL)として、不揮発性メモリ6に記憶されたデータの管理と、不揮発性メモリ6に含まれるブロックの管理とを実行する。不揮発性メモリ6に記憶されたデータの管理とは、例えば、論理アドレスと物理アドレスとの間の対応関係を示す情報であるマッピング情報の管理である。論理アドレスは、不揮発性メモリ6にアクセスするためにホスト2によって使用されるアドレスである。物理アドレスは、不揮発性メモリ6に含まれる物理的な記憶位置を示すアドレスである。不揮発性メモリ6に含まれるブロックの管理とは、例えば、不揮発性メモリ6に含まれる不良ブロック(バッドブロック)の管理と、ウェアレベリングと、ガベージコレクションである。ウェアレベリングは、ブロックそれぞれのプログラム/イレーズサイクル(P/Eサイクル)の回数を均一化する動作である。
DMAC53は、直接メモリアクセス(DMA)を実行する回路である。DMAC53は、ホスト2のメモリ22とRAM7との間のデータ転送を実行する。
ECC回路54は、データのエンコードと、データのデコードとを実行する回路である。ECC回路54は、不揮発性メモリ6に書き込まれるデータにエラー訂正コード(ECC)を冗長コードとして付加する(ECCエンコード)。不揮発性メモリ6からデータが読み出された時、ECC回路54は、読み出されたデータに付加されたECCを使用して、読み出されたデータのエラー訂正を行う(ECCデコード)。
不揮発性メモリ制御回路55は、不揮発性メモリ6を制御する回路である。不揮発性メモリ制御回路55は、例えば、ダイ(不揮発性メモリダイ)を制御する回路である。
RAMインタフェース回路56は、RAM7を制御する回路である。
次に、不揮発性メモリ6の内部構成の一例について説明する。図2は、本発明の第1実施形態に係る不揮発性メモリ6の内部構成の例を示すブロック図である。ここでは、ブロックの数がy+1、ワード線の数がm+11である場合について説明する。
不揮発性メモリ6は、y+1個のブロックBLK0、BLK1、…、BLKyを含む。ブロックBLK0、BLK1、…、BLKyの各々は、m+11本のワード線WL0、WL1、…、WL(m+10)の各々に接続された複数のメモリセルを含む。
また、ブロックBLK0、BLK1、…、BLKyの各々に対応するm+11本のワード線(WL)の各々は、コントローラ5によって管理されるX+1個のワード線グループ(WLグループ)のいずれかに属する。ここで、Xは、1以上の整数である。一つのWLグループに含まれるワード線の数は、例えば、1以上である。X+1個のWLグループの各々は、一つのワード線または互いに物理的に隣接する2以上のワード線を含む。一つのWLグループに含まれるワード線の数は、WLグループ毎に異なっていてもよい。どのブロックにおいても、m+11本のワード線WL0、WL1、…、WL(m+10)は、X+1個のWLグループに区分される。例えば、WLグループ#0は、互いに物理的に隣接する16本のワード線WL0、WL1、…、WL15を含む。また、WLグループ#1は、例えば、互いに物理的に隣接する6本のワード線WL16、WL17、…、WL21を含む。また、WLグループ#Xは、例えば、互いに物理的に隣接する11本のワード線WLm、WL(m+1)、…、WL(m+10)を含む。
次に、不揮発性メモリ6に記憶されるデータについて説明する。図3は、本発明の第1実施形態に係る不揮発性メモリ6に記憶されるデータの例を示すブロック図である。
不揮発性メモリ6は、ユーザデータ61、論理物理アドレス変換テーブル(L2Pテーブル)62、エラービット数テーブル63、ワーストWLグループテーブル64、およびパラメータセットテーブル65を記憶する。
ユーザデータ61は、ホスト2から受信されたライトコマンドに基づいて不揮発性メモリ6に書き込まれるデータである。
L2Pテーブル62は、マッピング情報を保持するテーブルである。マッピング情報とは、論理アドレスと物理アドレスとの間の対応関係を示す情報である。
エラービット数テーブル63は、閾値を超えるエラービット数と、閾値を超えるエラービット数に対応するワード線の識別子とを保持するテーブルである。
ワーストWLグループテーブル64は、ワーストWLグループの識別子を保持するテーブルである。ワーストWLグループは、閾値を超えるエラービット数に対応するワード線を含むWLグループである。
パラメータセットテーブル65は、複数のパラメータセットを保持するテーブルである。複数のパラメータセットの各々は、不揮発性メモリ6に対するプログラム動作を規定するパラメータセットである。複数のパラメータセットの各々は、複数のパラメータを含む。パラメータセットに含まれる複数のパラメータの値の組み合わせは、メモリシステム3の出荷前に、パラメータの値の組み合わせとエラービット数との関係を分析することによって決定される。
次に、RAM7に記憶されるデータについて説明する。図4は、本発明の第1実施形態に係るRAM7に記憶されるデータの例を示すブロック図である。
RAM7は、ライトデータ71、L2Pテーブル72、エラービット数テーブル73、ワーストWLグループテーブル74、およびパラメータセットテーブル75を記憶する。
ライトデータ71は、ホスト2から受信されたライトコマンドに基づいてRAM7に一時的に記憶されるデータである。
L2Pテーブル72は、不揮発性メモリ6に記憶されているL2Pテーブル62のマッピング情報の一部と同一の情報を保持するテーブルである。また、エラービット数テーブル73、ワーストWLグループテーブル74、およびパラメータセットテーブル75の各々は、不揮発性メモリ6に記憶されているエラービット数テーブル63、ワーストWLグループテーブル64、およびパラメータセットテーブル65の各々の一部または全てと同一の情報を保持するテーブルである。
次に、CPU52の機能構成について説明する。図5は、本発明の第1実施形態に係るCPU52の機能構成の例を示すブロック図である。
CPU52は、エラービット数計測部521と、ワーストWLグループ特定部522と、パラメータ調整部523とを含む。エラービット数計測部521、ワーストWLグループ特定部522、およびパラメータ調整部523の一部または全ては、コントローラ4の別のハードウェアによって実現されてもよい。
エラービット数計測部521は、エラービット数計測動作を実行する。エラービット数計測動作は、ワード線それぞれに対応するエラービット数を計測する動作である。エラービット数計測動作において、エラービット数計測部521は、複数のワード線WL0、WL1、…、WL(m+10)の各々に対応するエラービット数を計測する。エラービット数は、ワード線に接続されている複数のメモリセルから読み出されるデータに含まれるエラービットの数である。エラービット数計測部521は、ワード線WL0、WL1、…、WL(m+10)の各々に対応するエラービット数を閾値と比較し、対応するエラービット数が閾値を超えるワード線を特定する。エラービット数計測部521は、例えば、ECC回路54によってエラー訂正される前のデータと、ECC回路54によってエラー訂正された後のデータとを比較することによって、エラービット数を計測する。ECC回路54がエラービット数を計測する機能を有している場合、エラービット数計測部521は、エラービット数を計測する代わりに、エラービット数をECC回路54から取得することがある。エラービット数計測部521は、P/Eサイクルの回数に基づいて、エラービット数を計測する。例えば、測定対象ブロックのP/Eサイクルの回数がある回数だけ増える度に、エラービット数計測部521は、測定対象ブロックに含まれるワード線の各々(ワード線WL0、WL1、…、WL(m+10))に対応するエラービット数を計測する。測定対象ブロックとは、不揮発性メモリ6に含まれるブロックのうち、ワード線それぞれに対応するエラービット数が計測されるブロックである。測定対象ブロックが複数ある場合、エラービット数計測部521は、複数のワード線WL0、WL1、…、WL(m+10)の各々に対応するエラービット数の平均を、第1平均エラービット数として算出する。第1平均エラービット数は、複数の測定対象ブロックそれぞれに含まれる同じ識別子を有するワード線に対応するエラービット数の平均である。例えば、第1のブロックと第2のブロックとが測定対象ブロックに設定されている場合、第1のブロックのワード線WL0に対応するエラービット数と第2のブロックのワード線WL0に対応するエラービット数との平均が、ワード線WL0に対応する第1平均エラービット数である。エラービット数計測部521は、エラービット数計測動作を、例えば、不揮発性メモリ6に対するデータ書き込み動作の直後、アイドル時、ガベージコレクション動作時、リフレッシュ動作時、パトロールリード時、あるいはリードリトライ時に実行する。
ワーストWLグループ特定部522は、閾値を超えるエラービット数に対応するワード線を含むWLグループ(ワーストWLグループ)を特定する。また、ワーストWLグループ特定部522は、第2平均エラービット数を算出する。第2平均エラービット数とは、ワーストWLグループに含まれるワード線それぞれに対応するエラービット数の平均である。なお、測定対象ブロックが複数ある場合、ワーストWLグループに含まれるワード線それぞれに対応する第1平均エラービット数の平均が、第2平均エラービット数として、算出される。
パラメータ調整部523は、ワーストWLグループに対応する第2平均エラービット数に基づいて、複数のパラメータセットから、パラメータセットを選択する。パラメータ調整部523は、ワーストWLグループに対するプログラム動作を規定するパラメータセットを、選択したパラメータセットに変更する。
次に、エラービット数テーブル73の構成について説明する。図6は、第1実施形態に係るメモリシステム3において管理されるエラービット数テーブル73の例を示す図である。エラービット数テーブル73は、閾値を超えるエラービット数に対応するワード線毎に、ワード線の識別子と、ワード線に対応するエラービット数とを保持するテーブルである。
図6では、ワード線WL0、WL2、WL30、WL32、…に対応するエラービット数が閾値を超えている場合が例示されている。ワード線WL0、WL2、WL30、WL32、…のエラービット数は、例えば、「a」、「b」、「c」、「d」、…である。この場合、エラービット数テーブル73は、ワード線WL0の識別子「WL0」およびワード線WL0のエラービット数「a」の組と、ワード線WL2の識別子「WL2」およびワード線WL2のエラービット数「b」の組と、ワード線WL30の識別子「WL30」およびワード線WL30のエラービット数「c」の組と、ワード線WL32の識別子「WL32」およびワード線WL32のエラービット数「d」の組とを保持する。
次に、ワーストWLグループテーブル74の構成について説明する。図7は、本発明の第1実施形態に係るメモリシステム3において管理されるワーストWLグループテーブル74の例を示す図である。
ワーストWLグループテーブル74は、ワーストWLグループ毎に、ワーストWLグループの識別子と、第2平均エラービット数とを保持するテーブルである。
図7では、ワード線WL0、WL2、WL30、WL32、…、に対応するエラービット数が閾値を超えている場合が例示されている。ワード線WL0およびWL2が、WLグループ0に含まれており、且つ、ワード線WL30およびWL32が、WLグループ3に含まれている場合、WLグループ0およびWLグループ3の各々は、ワーストWLグループである。この場合、ワーストWLグループテーブル74は、WLグループ0の識別子「0」およびWLグループ0に対応する第2平均エラービット数「a’」の組と、WLグループ3の識別子「3」およびWLグループ3に対応する第2平均エラービット数「c’」の組と、を保持する。「a’」は、ワーストWLグループ(WLグループ0)に対応する第2平均エラービット数である。「c’」は、ワーストWLグループ(WLグループ3)に対応する第2平均エラービット数である。
次に、パラメータセットテーブル75の構成について説明する。図8は、本発明の第1実施形態に係るメモリシステム3において管理されるパラメータセットテーブル75の例を示す図である。
パラメータセットテーブル75は、複数のパラメータセットを保持するテーブルである。パラメータセットテーブル75は、例えば、k+1個のパラメータセット(パラメータセット0~k)に対応するk+1個のエントリを含む。k+1個のエントリの各々は、「エラービット数」記憶領域、「パラメータセット識別子」記憶領域、および「パラメータ」記憶領域を含む。
パラメータセット0の「エラービット数」記憶領域は、パラメータセット0が選択される条件を示す情報を保持する。パラメータセット0が選択される条件は、例えば、第2平均エラービット数がN1未満であることである。パラメータセット0の「パラメータセット識別子」記憶領域は、パラメータセット0の識別子を保持する。パラメータセット0の「パラメータ」記憶領域は、パラメータセット0に含まれる複数のパラメータ(a0、b0、…)を保持する。
パラメータセット1の「エラービット数」記憶領域は、パラメータセット1が選択される条件を示す情報を保持する。パラメータセット1が選択される条件は、例えば、第2平均エラービット数がN1以上であり、且つ、N2未満であることである。ここで、N2は、N1よりも大きな数値である。パラメータセット1の「パラメータセット識別子」記憶領域は、パラメータセット1の識別子を保持する。パラメータセット1の「パラメータ」記憶領域は、パラメータセット1に含まれる複数のパラメータ(a1、b1、…)を保持する。
パラメータセットkの「エラービット数」記憶領域は、パラメータセットkが選択される条件を示す情報を保持する。パラメータセットkが選択される条件は、例えば、第2平均エラービット数がNk以上であることである。ここで、Nkは、N2よりも大きな数値である。パラメータセットkの「パラメータセット識別子」記憶領域は、パラメータセットkの識別子を保持する。パラメータセットkの「パラメータ」記憶領域は、パラメータセットkに含まれる複数のパラメータ(ak、bk、…)を保持する。
次に、パラメータセットの具体例について説明する、図9は、本発明の第1実施形態に係るメモリシステムにおいて管理されるパラメータセットの具体例を示す図である。
ここでは、パラメータセット0~4の5つのパラメータセットが管理されている。5つのパラメータセットの各々は、AからFの6種類の制御動作に対応する6つのパラメータを有する。6つのパラメータは、不揮発性メモリ6のプログラム動作におけるプログラム電圧、ベリファイ動作、および昇圧タイミングなどを規定する値である。プログラム電圧を規定するパラメータは、ワード線に印可される電圧であるプログラム電圧を規定する。プログラム電圧を規定するパラメータは、例えば、プログラム電圧のパルスの振幅を規定する。ベリファイ動作を規定するパラメータは、メモリセルの閾値電圧が目的の閾値電圧に達したか否かを検証する動作であるベリファイ動作を規定する。昇圧タイミングを規定するパラメータは、プログラム電圧を昇圧するタイミングを規定する。昇圧タイミングを規定するパラメータとしては、例えば、プログラム電圧の昇圧幅(ステップアップ幅)を規定するパラメータ、プログラム電圧のパルスの幅を規定するパラメータがある。
6つのパラメータの値は、エラービット数の低減量がパラメータセット0~4間で互いに異なるように予め決められている。エラービット数の低減量とは、パラメータ調整前のエラービット数とパラメータ調整後のエラービット数との差分である。エラービット数の低減量は、例えば、パラメータセット0が一番小さく、パラメータセット4が一番大きい。また、エラービット数低減量が1レベル大きいパラメータセットに変更された場合のプログラム時間は、エラービット数低減量が1レベル小さいパラメータセットに変更された場合のプログラム時間と同等か、あるいは長くなる。プログラム時間は、例えば、tPROGである。tPROGは、プログラム動作が開始されてからプログラム動作およびベリファイ動作が完了するまでの時間である。
次に、パラメータ調整動作について説明する。図10は、本発明の第1実施形態に係るメモリシステムにおけるパラメータ調整動作の例を示すシーケンス図である。
(1)エラービット数計測部521は、不揮発性メモリ6に含まれる複数のブロックの各々のP/Eサイクルの回数が第1の回数だけ増える度、不揮発性メモリ6の測定対象ブロックの複数のワード線の各々からデータを読み出す。第1の回数は、例えば、500回である。エラービット数計測部521は、例えば、測定対象ブロックのP/Eサイクルの回数を示す情報を管理する。この場合、エラービット数計測部521は、測定対象ブロックのP/Eサイクルが第1の回数だけ増える度に、測定対象ブロックの複数のワード線の各々からデータを読み出す。不揮発性メモリ6がQLC-フラッシュメモリである場合、エラービット数計測部521は、一つのワード線から16ページ(=4ページ×4ストリングユニット)分のデータを1ページずつ読み出す。
(2)エラービット数計測部521は、読み出されたデータを使用して、測定対象ブロックの複数のワード線の各々に対応するエラービット数を計測する。エラービット数は、例えば、ページの単位で、あるいはECCフレーム(符号語)の単位で計測される。エラービット数計測部521は、計測したエラービット数を閾値と比較し、閾値を超えるエラービット数を特定する。エラービット数計測部521は、特定したエラービット数に対応するワード線を特定する。
(3)エラービット数計測部521は、特定した閾値を超えるエラービット数と、閾値を超えるエラービット数に対応するワード線の識別子とをRAM7のエラービット数テーブル73に保存する。
(4)エラービット数計測部521は、(3)の処理が終了したことを、ワーストWLグループ特定部522に通知する。
(5)エラービット数計測部521から処理が終了したことが通知されると、ワーストWLグループ特定部522は、エラービット数テーブル73から、閾値を超えるエラービット数を取得する。具体的には、ワーストWLグループ特定部522は、閾値を超えるエラービット数と、閾値を超えるエラービット数に対応するワード線の識別子とをエラービット数テーブル73から取得する。
(6)閾値を超えるエラービット数と、識別子とを取得すると、ワーストWLグループ特定部522は、閾値を超えるエラービット数を有するに対応するワード線を含むWLグループ(ワーストWLグループ)を特定する。ワーストWLグループを特定すると、ワーストWLグループ特定部522は、ワーストWLグループに対応する第2平均エラービット数を算出する。
(7)ワーストWLグループ特定部522は、ワーストWLグループの識別子と、算出したワーストWLグループに対応する第2平均エラービット数とを、RAM7のワーストWLグループテーブル74に保存する。
(8)ワーストWLグループ特定部222は、(7)の処理が終了したことを、パラメータ調整部523に通知する。
(9)ワーストWLグループ特定部522から処理が終了したことが通知されると、パラメータ調整部523は、ワーストWLグループに対応する第2平均エラービット数を、RAM7のワーストWLグループテーブル74から取得する。
(10)パラメータ調整部523は、取得した第2平均エラービット数に基づいて、パラメータセットテーブル75に保持されている複数のパラメータセットから、パラメータセットを選択する。
(11)パラメータ調整部523は、選択したパラメータセットを、RAM7のパラメータセットテーブル75から取得する。
(12)パラメータ調整部523は、測定対象ブロックのワーストWLグループに含まれるワード線の各々と、測定対象ブロック以外の他のブロックのワーストWLグループに含まれるワード線の各々とに対するプログラム動作を規定するパラメータセットを、取得したパラメータセットに変更する。
次に、パラメータ調整について説明する。図11は、本発明の第1実施形態に係るメモリシステム3における、プログラム/イレーズサイクルとエラービット数の平均との関係を示す図である。図11における縦軸は、全てのワード線に対応するエラービット数の平均を示す。横軸は、例えば、測定対象ブロックのプログラム/イレーズサイクルを示す。
図11における破線のグラフは、プログラム動作を規定するパラメータが一定である場合のエラービット数の平均を示す。P/Eサイクルが進むにつれて、すべてのワード線に対応するエラービット数の平均は、増加する。
図11における実線のグラフは、プログラム動作を規定するパラメータが調整される場合のエラービット数の平均を示す。図中の星印は、パラメータの調整が実行されるタイミングを示す。パラメータが調整される場合、全てのワード線に対応するエラービット数の平均の増加の程度は、パラメータが一定の場合と比べて抑えられている。
図12は、本発明の第1実施形態に係るメモリシステム3における500サイクル目のパラメータ調整後の複数のワード線の各々のエラービット数の例を示す図である。図12における横軸は、複数のワード線(WL0~WL(m+10))のそれぞれを示す。縦軸は、複数のワード線それぞれに対応するエラービット数を示す。破線で示されるエラービット数は、閾値Th1である。
図12における破線のグラフは、P/Eサイクルが500サイクル目に達した際に計測されたワード線WL0~WL(m+10)の各々に対応するエラービット数を示す。計測されたエラービット数のうち、閾値Th1を超えるエラービット数に対応するワード線に対してパラメータ調整が実行される。
図12における実線のグラフは、パラメータ調整が実行された後のワード線WL0~WL(m+10)の各々に対応するエラービット数を示す。パラメータ調整が実行されたワード線に対応するエラービット数は、引き下げられる。
図13は、本発明の第1実施形態に係るメモリシステム3における1000サイクル目のパラメータ調整後の複数のワード線の各々のエラービット数の例を示す図である。図13における横軸は、複数のワード線(WL0~WL(m+10))のそれぞれを示す。縦軸は、複数のワード線それぞれに対応するエラービット数を示す。破線で示されるエラービット数は、閾値Th2である。
図13における破線のグラフは、P/Eサイクルが1000サイクル目に達した際に計測されたワード線WL0~WL(m+10)の各々に対応するエラービット数を示す。計測されたエラービット数のうち、閾値Th2を超えるエラービット数に対応するワード線に対してパラメータ調整が実行される。
図13における実線のグラフは、パラメータ調整が実行された後のワード線WL0~WL(m+10)の各々に対応するエラービット数を示す。パラメータ調整が実行されたワード線に対応するエラービット数は、引き下げられる。
図14は、本発明の第1実施形態に係るメモリシステム3におけるパラメータ調整動作において計測される複数のワード線の各々のエラービット数の例を示す図である。図14における横軸は、複数のワード線(WL0~WL(m+10))のそれぞれを示す。縦軸は、複数のワード線それぞれに対応するエラービット数を示す。破線で示されるエラービット数は、閾値Thである。
図14における実線のグラフは、複数のワード線それぞれに対応するエラービット数を示す。ワード線WLiに対応するエラービット数は、閾値と一致する。ワード線WLi+1~WLi+3それぞれに対応するエラービット数は、閾値を超えている。ワード線WLi+4に対応するエラービット数は、閾値と一致する。この場合、ワード線WLi+1~WLi+3の3つのワード線が、閾値を超えるエラービット数に対応するワード線として特定される。
図15は、本発明の第1実施形態に係るメモリシステム3における、パラメータ調整動作が実行された際の複数のワード線の各々のエラービット数の例を示す図である。図15における横軸は、複数のワード線(WL0~WL(m+10))を示す。縦軸は、複数のワード線それぞれに対応するエラービット数を示す。破線で示されるエラービット数は、閾値Thである。
図15における破線のグラフは、パラメータ調整前の複数のワード線それぞれに対応するエラービット数を示す。図15では、WLグループXに含まれるワード線に対応するエラービット数と、WLグループYに含まれるワード線に対応するエラービット数とが、閾値を超えている。WLグループXおよびWLグループYは、ワーストWLグループであると特定される。
図15における実線のグラフは、特定されたWLグループXおよびWLグループYに対してパラメータ調整が実行された後の複数のワード線それぞれに対応するエラービット数を示す。パラメータ調整が実行された後の、WLグループXに含まれる複数のワード線それぞれに対応するエラービット数と、WLグループYに含まれる複数のワード線それぞれに対応するエラービット数とは、パラメータ調整前のエラービット数よりも低い値であり、且つ閾値よりも低い値である。
図16は、本発明の第1実施形態に係るメモリシステム3における、二つのワード線グループそれぞれに対するプログラム動作を規定するパラメータセットが新たなパラメータセットに変更された際のエラービット数の例を示す図である。図16における横軸は、複数のワード線(WL0~WL(m+10))を示す。縦軸は、複数のワード線それぞれに対応するエラービット数を示す。
図16における破線のグラフは、パラメータ調整前の複数のワード線それぞれに対応するエラービット数を示す。ここでは、WLグループXと、WLグループYとが、閾値を超えるエラービット数に対応するワード線を含むWLグループである場合が想定されている。WLグループXおよびWLグループYは、ワーストWLグループとして特定される。WLグループXに対応する第2平均エラービット数と、WLグループYに対応する第2平均エラービット数とが算出される。そして、WLグループXに対応する第2平均エラービット数に基づいて、パラメータセット3が選択される。また、WLグループYに対応する第2平均エラービット数に基づいて、パラメータセット2が選択される。破線で示されるエラービット数は、閾値Thである。
WLグループXに対応する第2平均エラービット数は、パラメータセット3に対応する第2平均エラービット数の範囲に属する。WLグループXのプログラム動作を規定するパラメータセットが、パラメータセット3に変更される。
一方、WLグループYに対応する第2平均エラービット数は、パラメータセット2に対応する第2平均エラービット数の範囲に属する。WLグループYのプログラム動作を規定するパラメータセットが、パラメータセット2に変更される。
図16における実線のグラフは、パラメータ調整が実行された後の複数のワード線それぞれに対応するエラービット数を示す。パラメータセット3に変更されたWLグループXに含まれるワード線の各々に対応するエラービット数は、パラメータセット2に変更されたWLグループYに含まれるワード線の各々に対応するエラービット数よりも大きく低減される。例えば、WLグループXに含まれるワード線の各々に対応するエラービット数と、WLグループYに含まれるワード線の各々に対応するエラービット数とは、同程度の値になる。
次に、パラメータ調整動作の手順について説明する。図17は、本発明の第1実施形態に係るメモリシステム3において実行されるパラメータ調整動作の手順を示すフローチャートである。ここでは、一つの測定対象ブロックBLKzに注目して、パラメータ調整動作を説明する。
新たな書き込み先ブロックとしてブロックが選択されると(開始)、コントローラ5は、測定対象ブロックBLKzが新たな書き込み先ブロックに選択されたか否かを判定する(S101)。書き込み先ブロックは、例えば、ライトコマンドに関連付けられたデータが書き込まれるブロック、または、ガベージコレクション動作のような内部動作によってデータが移動される移動先のブロックである。
ブロックBLKzが新たな書き込み先ブロックに選択されていない場合(S101No)、コントローラ5は、パラメータ調整動作を終了する(終了)。コントローラ5は、ブロックBLKzが新たな書き込み先ブロックに選択されるまで待つ。
ブロックBLKzが新たな書き込み先ブロックに選択された場合(S101Yes)、コントローラ5は、ブロックBLKzに対する消去動作を実行する。そして、コントローラ5は、ブロックBLKzのプログラム/イレーズサイクルの回数izを1だけインクリメントする(S102)。izの初期値は、0である。
コントローラ5は、ブロックBLKzのプログラム/イレーズサイクルの回数izが、回数jzに達したか否かを判定する(S103)。jzの初期値は、例えば、500である。jzは、500、1000、1500、…といった500の倍数である。
プログラム/イレーズサイクルの回数izが回数jzに達していない場合(S103No)、コントローラ5は、コントローラ5は、パラメータ調整動作を終了する(終了)。
プログラム/イレーズサイクルの回数izが回数jzに達した場合(S103Yes)、コントローラ5は、ブロックBLKzのワード線WL0、WL1、…、WL(m+10)の各々に対応するエラービット数を計測する(S104)。測定対象ブロックが複数ある場合、コントローラ5は、複数の測定対象ブロックの各々について、ワード線WL0、WL1、…、WL(m+10)の各々に対応するエラービット数を計測する。ウェアレベリングによっていずれのブロックのP/Eサイクルも同程度に進行している。そのため、ブロックBLKzが、パラメータ調整が実行されるP/Eサイクルに達している場合には、他の測定対象ブロックもパラメータ調整が実行されるP/Eサイクルに達していることが期待できる。
コントローラ5は、プログラム/イレーズサイクルの回数izに基づいて、閾値を更新する(S105)。コントローラ5は、例えば、プログラム/イレーズサイクルの回数izが増加するにつれて閾値がより大きい値になるように、閾値を更新する。複数のワード線の各々のエラービット数は、P/Eサイクルが増加するに連れて大きくなる。閾値が一定であった場合、P/Eサイクルが増加するに連れて、閾値を超えるエラービット数に対応するワード線の数が多くなる。この場合、多くのワード線に対してパラメータ調整が実行されることになる。しかし、増加したP/Eサイクルに基づいて、閾値がより高い値に更新される場合、特に高いエラービット数に対応するワード線に対してパラメータ調整が実行される。
コントローラ5は、閾値を超えるエラービット数に対応するワード線が存在するか否かを判定する(S106)。コントローラ5は、ワード線WL0、WL1、…、WL(m+10)の各々に対応するエラービット数と閾値とを比較する。比較結果に基づき、コントローラ5は、ワード線WL0、WL1、…、WL(m+10)のうちで、閾値を超えるエラービット数に対応するワード線を特定する。閾値を超えるエラービット数に対応するワード線を特定すると、コントローラ5は、閾値を超えるエラービット数に対応するワード線を含むWLグループを、ワーストWLグループとして特定する。なお、複数の測定対象ブロックの各々に含まれるワード線WL0、WL1、…、WL(m+10)の各々に対応するエラービット数を計測した場合、コントローラ5は、ワード線WL0、WL1、…、WL(m+10)の各々の第1平均エラービット数と閾値とを比較する。
閾値を超えるエラービット数に対応するワード線が存在する場合(S106Yes)、コントローラ5は、閾値を超えるエラービット数に対応するワード線を含むWLグループ(ワーストWLグループ)を示す識別子と、ワーストWLグループに対応する第2平均エラービット数とをワーストWLテーブル74に保存する(S107)。コントローラ5は、ワーストWLグループに対応する第2平均エラービット数を算出する。コントローラ5は、ワーストWLグループを示す識別子と、ワーストWLグループに対応する第2平均エラービット数とをワーストWLテーブル74に保存する。
コントローラ5は、保存した第2平均エラービット数に基づいて、パラメータセットを選択する(S108)。コントローラ5は、ワーストWLグループに対応する第2平均エラービット数に対応するパラメータセットを、パラメータセットテーブル75から選択する。
コントローラ5は、ワーストWLグループに対するプログラム動作を規定するパラメータセットを、選択したパラメータセットに変更する(S109)。この場合、コントローラ5は、選択したパラメータセットを、ブロックBLKzのワーストWLグループに含まれるワード線の各々に対するプログラム動作の際に使用する。また、コントローラ5は、ブロックBLKz以外の他の全てのブロックのワーストWLグループに含まれるワード線の各々に対するプログラム動作を規定するパラメータセットを、選択したパラメータセットに変更し得る。
閾値を超えるエラービット数に対するワード線が存在しない場合(S106No)、コントローラ5は、S107からS109の手順を省略する。
コントローラ5は、回数jzの値を500インクリメントする(S110)。
コントローラ5は、パラメータ調整動作を終了する(終了)。このとき、iz、およびjzの値は、維持される。そして、コントローラ5は、ブロックBLKzが書き込み先ブロックに再度選択されるまで待つ。
以上説明したように、第1実施形態に係るメモリシステム3においては、P/Eサイクルの回数がある回数増加する度、閾値よりも大きいエラービット数に対応するワード線を含むWLグループが特定される。そして、特定されたWLグループに含まれるワード線に対するプログラム動作を規定するパラメータセットが、特定されたWLグループに対応する第2平均エラービット数に基づいて選択された新たなパラメータセットに変更される。よって、特定されたWLグループに含まれるワード線それぞれに対応するエラービット数を引き下げることができる。この結果、不揮発性メモリ6全体のエラービット数の増加を抑えることができる。
(第2実施形態)
次に、本発明の第2実施形態に係るメモリシステムについて説明する。第2実施形態に係るメモリシステムは、第1実施形態に係るメモリシステム3に含まれる不揮発性メモリ6が複数のダイ(不揮発性メモリダイ)を有する形態である。複数のダイの各々は、複数のブロックを含む。複数のブロックの各々は、図2で説明したブロックの構成と同じ構成を有している。図18は、本発明の第2実施形態に係るメモリシステム3を含む情報処理システム1の構成例を示すブロック図である。ここでは、第1実施形態に係るメモリシステム3と異なる箇所に注目して説明する。
コントローラ5は、不揮発性メモリインタフェース回路550を含む。不揮発性メモリインタフェース回路550は、不揮発性メモリ6を制御する回路である。不揮発性メモリインタフェース回路550は、例えば、不揮発性メモリ制御回路55-0、55-1、55-2、55-3を含む。不揮発性メモリ制御回路55-0、55-1、55-2、55-3は、チャンネルch.0、ch.1、ch.2、ch.3にそれぞれ接続される。不揮発性メモリ6が複数のダイを含む場合、不揮発性メモリ制御回路55-0、55-1、55-2、55-3の各々は、対応するチャンネルを介して、1以上のダイに接続される。例えば、不揮発性メモリ制御回路55-0は、チャンネルch.0を介して、ダイ60-0に接続される。不揮発性メモリ制御回路55-1は、チャンネルch.1を介して、ダイ60-1に接続される。不揮発性メモリ制御回路55-2は、チャンネルch.2を介して、ダイ60-2に接続される。不揮発性メモリ制御回路55-3は、チャンネルch.3を介して、ダイ60-3に接続される。
次に、不揮発性メモリ6に記憶されるデータについて説明する。図19は、本発明の第2実施形態に係る不揮発性メモリ6に記憶されるデータの例を示すブロック図である。
不揮発性メモリ6は、ユーザデータ61、論理物理アドレス変換テーブル(L2Pテーブル)62、エラービット数テーブル63、ワーストWLグループテーブル64、およびパラメータセットテーブル65に加え、ワーストダイテーブル66をさらに記憶する。
ワーストダイテーブル66は、ワーストダイに関する情報を保持するテーブルである。ワーストダイは、一つ以上のワーストWLグループを含む不揮発性メモリダイである。ワーストダイテーブル66は、ワーストダイに関する情報として、ワーストダイの識別子と、ワーストWLグループの識別子と、ワーストWLグループに対応する第2平均エラービット数とを保持する。
次に、RAM7に記憶されるデータについて説明する。図20は、本発明の第2実施形態に係るRAM7に記憶されるデータの例を示すブロック図である。
RAM7は、ライトデータ71、L2Pテーブル72、エラービット数テーブル73、ワーストWLグループテーブル74、およびパラメータセットテーブル75に加え、ワーストダイテーブル76をさらに記憶する。
ワーストダイテーブル76は、不揮発性メモリ6に記憶されているワーストダイテーブル66の情報の全てまたは一部を保持するテーブルである。
次に、CPU52の機能構成について説明する。図21は、本発明の第2実施形態に係るCPU52の機能構成の例を示すブロック図である。
CPU52は、エラービット数計測部521、ワーストWLグループ特定部522、およびパラメータ調整部523に加え、ワーストダイ特定部524をさらに含む。
ワーストダイ特定部524は、ワーストWLグループを含む不揮発性メモリダイを特定する。ワーストダイ特定部524は、ワーストWLグループ特定部522によって特定されたワーストWLグループを含むダイを、ワーストダイとして特定する。
次に、ワーストダイテーブル76の構成について説明する。図22は、本発明の第2実施形態に係るメモリシステム3において管理されるワーストダイテーブル76の例を示す図である。
ワーストダイテーブル76は、ワーストダイの各々について、ワーストダイの識別子と、ワーストダイに含まれる1以上のワーストWLグループの識別子と、1以上のワーストWLグループの各々に対応する第2平均エラービット数とを保持するテーブルである。
図22では、WLグループ0-0、WLグループ0-3およびWLグループ2-0がワーストWLグループである場合が例示されている。WLグループ0-0およびWLグループ0-3は、「0」の識別子を有するダイに含まれている。また、WLグループ2-0は、「2」の識別子を有するダイに含まれている。WLグループ0-0、WLグループ0-3およびWLグループ2-0の第2平均エラービット数は、「a’」、「c’」、「e’」である。
次に、パラメータ調整動作について説明する。図23は、本発明の第2実施形態に係るパラメータ調整動作の例を示すシーケンス図である。
(1)エラービット数計測部521は、複数のダイの各々に含まれる複数のブロックの各々のP/Eサイクルの回数が第1の回数だけ増える度、複数のダイの各々に含まれる測定対象ブロックのワード線WL0、WL1、…、WL(m+10)の各々からデータを読み出す。例えば、エラービット数計測部521は、複数のダイの各々に含まれる測定対象ブロックのP/Eサイクルが第1の回数だけ増える度に、複数のダイの各々に含まれる測定対象ブロックのワード線WL0、WL1、…、WL(m+10)の各々からデータを読み出す。
(2)エラービット数計測部521は、読み出されたデータを使用して、測定対象ブロックの複数のワード線のそれぞれに対応するエラービット数を計測する。エラービット数計測部521は、計測したエラービット数を閾値と比較し、閾値を超えるエラービット数を特定する。エラービット数計測部521は、特定したエラービット数に対応するワード線を特定する。
(3)エラービット数計測部521は、特定した閾値を超えるエラービット数と、閾値を超えるエラービット数に対応するワード線の識別子とをRAM7のエラービット数テーブル73に保存する。例えば、エラービット数テーブル73は、ダイ毎に設けられる。例えば、第1のダイの測定対象ブロックに含まれるワード線WL0、WL1、…、WL(m+10)のうちのいずれかのワード線に対応するエラービット数が閾値を超える場合を想定する。この場合、エラービット数計測部521は、閾値を超えるエラービット数と、閾値を超えるエラービット数に対応するワード線の識別子とを、第1のダイに対応するエラービット数テーブル73に保存する。また、第2のダイの測定対象ブロックに含まれるワード線WL0、WL1、…、WL(m+10)のうちのいずれかのワード線に対応するエラービット数が閾値を超える場合を想定する。この場合、エラービット数計測部521は、閾値を超えるエラービット数と、閾値を超えるエラービット数に対応するワード線の識別子とを、第2のダイに対応するエラービット数テーブル73に保存する。
(4)エラービット数計測部521は、(3)の処理が終了したことをワーストWLグループ特定部522に通知する。
(5)エラービット数計測部521から処理が終了したことが通知されると、ワーストWLグループ特定部522は、エラービット数テーブル73から、閾値を超えるエラービット数を取得する。具体的には、ワーストWLグループ特定部522は、閾値を超えるエラービット数と、閾値を超えるエラービット数に対応するワード線の識別子とを、エラービット数テーブル73から取得する。
(6)閾値を超えるエラービット数と、識別子とを取得すると、ワーストWLグループ特定部522は、閾値を超えるエラービット数に対応するワード線を含むWLグループ(ワーストWLグループ)を特定する。ワーストWLグループを特定すると、ワーストWLグループ特定部522は、ワーストWLグループに対応する第2平均エラービット数を算出する。例えば、閾値を超えるエラービット数に対応するワード線を含む測定対象ブロックが、複数のダイのうちの第1のダイの測定対象ブロックである場合を想定する。この場合、ワーストWLグループ特定部522は、第1のダイの測定対象ブロックのワーストWLグループに含まれるワード線の各々に対応するエラービット数に基づいて、ワーストWLグループに対応する第2平均エラービット数を算出する。また、閾値を超えるエラービット数に対応するワード線を含む測定対象ブロックが、複数のダイのうちの第2のダイの測定対象ブロックである場合を想定する。この場合、ワーストWLグループ特定部522は、第2のダイの測定対象ブロックのワーストWLグループに含まれるワード線の各々に対応するエラービット数に基づいて、ワーストWLグループに対応する第2平均エラービット数を算出する。
(7)ワーストWLグループに対応する第2平均エラービット数を算出すると、ワーストWLグループ特定部522は、ワーストWLグループの識別子と、ワーストWLグループに対応する第2平均エラービット数とを、RAM7のワーストWLグループテーブル74に保存する。
(8)ワーストWLグループ特定部522は、(7)の処理が終了したことをワーストダイ特定部524に通知する。
(9)ワーストWLグループ特定部522から処理が終了したことが通知されると、ワーストダイ特定部524は、RAM7のワーストWLグループテーブル74から、ワーストWLグループの識別子を取得する。
(10)ワーストダイ特定部524は、ワーストWLグループを含むダイ(不揮発性メモリダイ)をワーストダイとして特定する。
(11)ワーストダイ特定部524は、ワーストダイの識別子と、ワーストダイに含まれるワーストWLグループの識別子と、ワーストWLグループに対応する第2平均エラービット数とをRAM7のワーストダイテーブル76に保存する。
(12)ワーストダイ特定部524は、(11)の処理が終了したことをパラメータ調整部523に通知する。
(13)ワーストダイ特定部524から処理が終了したことが通知されると、パラメータ調整部523は、RAM7のワーストダイテーブル76から、ワーストダイの識別子と、ワーストWLグループの識別子と、第2平均エラービット数とを取得する。
(14)パラメータ調整部523は、取得した第2平均エラービット数に基づいて、パラメータセットテーブル75に保持されている複数のパラメータセットから、パラメータセットを選択する。
(15)パラメータ調整部523は、選択したパラメータセットを、RAM7のパラメータセットテーブル75から取得する。
(16)パラメータ調整部523は、ワーストダイに含まれる複数のブロックの各々のワーストWLグループに対するプログラム動作を規定するパラメータセットを、取得したパラメータセットに変更する。
次に、パラメータ調整動作の手順について説明する。図24は、本発明の第2実施形態に係るメモリシステム3において実行されるパラメータ調整動作の手順を示すフローチャートである。ここでは、一つの測定対象ブロックBLKzに注目して、パラメータ調整動作を説明する。
新たな書き込み先ブロックとしてブロックが選択されると(開始)、コントローラ5は、測定対象ブロックBLKzが新たな書き込み先ブロックに選択されたか否かを判定する(S201)。
ブロックBLKzが新たな書き込み先ブロックに選択されていない場合(S201No)、コントローラ5は、パラメータ調整動作を終了する(終了)。コントローラ5は、ブロックBLKzが新たな書き込み先ブロックに選択されるまで待つ。
ブロックBLKzが新たな書き込み先ブロックに選択された場合(S201Yes)、コントローラ5は、ブロックBLKzに対する消去動作を実行する。そして、コントローラ5は、ブロックBLKzのプログラム/イレーズサイクルの回数izを1だけインクリメントする(S202)。
コントローラ5は、ブロックBLKzのプログラム/イレーズサイクルの回数izが、回数jzに達したか否かを判定する(S203)。
プログラム/イレーズサイクルの回数izが回数jzに達していない場合(S203No)、コントローラ5は、パラメータ調整動作を終了する(終了)。
プログラム/イレーズサイクルの回数izが回数jzに達した場合(S203Yes)、コントローラ5は、ブロックBLKzのワード線WL0、WL1、…、WL(m+10)の各々に対応するエラービット数を計測する(S204)。このとき、コントローラ5は、複数のダイの各々に含まれる測定対象ブロックのワード線WL0、WL1、…、WL(m+10)の各々に対応するエラービット数を計測する。
コントローラ5は、プログラム/イレーズサイクルの回数izに基づいて、閾値を更新する(S205)。
コントローラ5は、閾値を超えるエラービット数に対応するワード線が存在するか否かを判定する(S206)。コントローラ5は、ワード線WL0、WL1、…、WL(m+10)の各々に対応するエラービット数と閾値とを比較する。コントローラ5は、閾値を超えるエラービット数に対応するワード線を含むWLグループを、ワーストWLグループとして特定する。
閾値を超えるエラービット数に対応するワード線が存在する場合(S206Yes)、コントローラ5は、ワーストWLグループを示す識別子と、ワーストWLグループに対応する第2平均エラービット数とをワーストWLテーブル74に保存する(S207)。コントローラ5は、ワーストWLグループに対応する第2平均エラービット数を算出する。コントローラ5は、ワーストWLグループを示す識別子と、算出した第2平均エラービット数とをワーストWLテーブル74に保存する。
コントローラ5は、ブロックBLKzが含まれている不揮発性メモリダイの識別子を、ワーストダイの識別子として、ワーストダイテーブル76に保存する(S208)。ここでは、ブロックBLKzは、ワーストWLグループを含むブロックである。したがって、ブロックBLKzが含まれている不揮発性メモリダイは、ワーストダイである。また、コントローラ5は、ワーストWLグループを示す識別子と、ワーストWLグループに対応する第2平均エラービット数とを、ワーストダイテーブル76に保存する。
コントローラ5は、パラメータセットを選択する(S209)。コントローラ5は、ワーストダイテーブル76に保存したワーストWLグループに対応する第2平均エラービット数に基づいて、パラメータセットを選択する。
コントローラ5は、ワーストダイに含まれる複数のブロックの各々のワーストWLグループに含まれるワード線に対するプログラム動作を規定するパラメータセットを、選択したパラメータセットに変更する(S210)。ワーストダイ以外の他のダイに対するプログラム動作を規定するパラメータセットは、選択したパラメータセットには変更されない。なお、コントローラ5は、ワーストダイのブロックBLKzのワーストWLグループに対するプログラム動作を規定するパラメータセットのみ、選択したパラメータセットに変更してもよい。
ワーストWLグループが存在しない場合(S206No)、コントローラ5は、S207からS210の手順を省略する。
コントローラ5は、回数jzの値を500インクリメントする(S211)。
コントローラ5は、パラメータ調整動作を終了する(終了)。このとき、iz、およびjzの値は、維持される。そして、コントローラ5は、ブロックBLKzが書き込み先ブロックに再度選択されるまで待つ。
以上説明したように、第2実施形態によれば、コントローラ5は、複数のダイのうちのワーストダイに含まれるワーストWLグループに対してパラメータ調整動作を実行することができる。
したがって、他のダイに比べ品質の低いダイに含まれるワーストWLグループに対してパラメータ調整を実行することができる。品質の低いダイとは、他のダイよりもエラービット数が多いダイである。これにより、コントローラ5は、複数のダイを含む不揮発性メモリ6全体のエラービット数の増加を抑えることができる。
実施形態は例示であり、発明の範囲はそれらに限定されない。
1 情報処理システム
2 ホスト
3 メモリシステム
4 バス
5 コントローラ
6 不揮発性メモリ
7 ランダムアクセスメモリ(RAM)
21 プロセッサ
22 メモリ
50 バス
51 ホストインタフェース回路
52 CPU
53 直接メモリアクセスコントローラ(DMAC)
54 ECC回路
55 不揮発性メモリ制御回路
56 RAMインタフェース回路
61 ユーザデータ
62 L2Pテーブル
63 エラービット数テーブル
64 ワーストWLグループテーブル
65 パラメータセットテーブル
66 ワーストダイテーブル
71 ライトデータ
72 L2Pテーブル
73 エラービット数テーブル
74 ワーストWLグループテーブル
75 パラメータセットテーブル
76 ワーストダイテーブル
521 エラービット数計測部
522 ワーストWLグループ特定部
523 パラメータ調整部
524 ワーストダイ特定部

Claims (10)

  1. 不揮発性メモリと、
    前記不揮発性メモリへのデータの書き込みと前記不揮発性メモリからのデータの読み出しとを実行するコントローラと、を具備し、
    前記不揮発性メモリは、各々が消去動作の単位である複数のブロックを含み、
    前記複数のブロックの各々は、複数のワード線の各々に接続された複数のメモリセルを含み、
    前記コントローラは、
    各々が前記複数のワード線のうちの1以上のワード線を含む複数のワード線グループを管理し、
    前記複数のブロックのうちの第1のブロックのプログラム/イレーズサイクルの回数が第1の回数だけ増える度、
    前記第1のブロックの複数のワード線の各々に接続された複数のメモリセルから読み出されるデータのエラービット数を計測し、
    前記複数のワード線グループのうち、閾値を超えるエラービット数に対応するワード線を含む第1のワード線グループを特定し、
    前記第1のワード線グループに含まれる1以上のワード線のエラービット数の平均を示す平均エラービット数を算出し、
    前記第1のワード線グループの前記平均エラービット数に基づいて、各々が前記不揮発性メモリのプログラム動作を規定する複数のパラメータセットから、前記第1のワード線グループに適用されるパラメータセットを選択し、
    前記第1のブロックの前記第1のワード線グループに含まれる前記1以上のワード線の各々に対するプログラム動作を規定するパラメータセットを、前記選択したパラメータセットに変更するように構成される、
    メモリシステム。
  2. 前記コントローラは、
    前記第1のワード線グループの前記平均エラービット数が、前記閾値よりも大きく、且つ前記閾値よりも大きい第1の値未満である場合、前記複数のパラメータセットから第1のパラメータセットを選択し、
    前記第1のワード線グループの前記平均エラービット数が、前記第1の値以上であり、且つ前記第1の値よりも大きい第2の値未満である場合、前記複数のパラメータセットから第2のパラメータセットを選択し、
    前記第1のワード線グループの前記平均エラービット数が、前記第1の値以上であり、且つ前記第2の値よりも大きい第3の値未満である場合、前記複数のパラメータセットから第3のパラメータセットを選択するように構成される、
    請求項1に記載のメモリシステム。
  3. 前記コントローラは、
    前記プログラム/イレーズサイクルの進行に応じて前記閾値を大きくするように構成される、
    請求項1に記載のメモリシステム。
  4. 前記複数のワード線グループの各々は、一つのワード線または互いに隣接する2以上のワード線を含む、
    請求項1に記載のメモリシステム。
  5. 前記複数のパラメータセットの各々は、ワード線に印可されるプログラム電圧を示すパラメータと、ベリファイ動作を規定するパラメータと、プログラム電圧を昇圧するタイミングを規定するパラメータと、を少なくとも含む、
    請求項1に記載のメモリシステム。
  6. 複数のダイを含む不揮発性メモリと、
    前記不揮発性メモリへのデータの書き込みと前記不揮発性メモリからのデータの読み出しとを実行するコントローラと、を具備し、
    前記複数のダイの各々は、各々が消去動作の単位である複数のブロックを含み、
    前記複数のブロックの各々は、複数のワード線の各々に接続された複数のメモリセルを含み、
    前記コントローラは、
    各々が前記複数のワード線のうちの1以上のワード線を含む複数のワード線グループを管理し、
    前記複数のダイの各々に含まれる前記複数のブロックの各々のプログラム/イレーズサイクルの回数が第1の回数だけ増える度、
    前記複数のダイの各々に含まれる測定対象ブロックの複数のワード線の各々に接続されている複数のメモリセルから読み出されるデータのエラービット数を計測し、
    閾値を超えるエラービット数に対応するワード線を含む第1のワード線グループと、前記第1のワード線グループを含む第1のダイと、を特定し、
    前記第1のダイの前記第1のワード線グループに含まれる1以上のワード線のエラービット数の平均を示す平均エラービット数を算出し、
    前記第1のワード線グループの前記平均エラービット数に基づいて、各々が前記不揮発性メモリのプログラム動作を規定する複数のパラメータセットから、前記第1のワード線グループに適用される一つのパラメータセットを選択し、
    前記第1のダイに含まれる複数のブロックの各々の前記第1のワード線グループに対するプログラム動作を規定するパラメータセットを、前記選択したパラメータセットに変更するように構成される、
    メモリシステム。
  7. 前記コントローラは、
    前記第1のダイの前記第1のワード線グループの前記平均エラービット数が、前記閾値よりも大きく、且つ前記閾値よりも大きい第1の値未満である場合、前記複数のパラメータセットから第1のパラメータセットを選択し、
    前記第1のダイの前記第1のワード線グループの前記平均エラービット数が、前記第1の値以上であり、且つ前記第1の値よりも大きい第2の値未満である場合、前記複数のパラメータセットから第2のパラメータセットを選択し、
    前記第1のダイの前記第1のワード線グループの前記平均エラービット数が、前記第1の値以上であり、且つ前記第2の値よりも大きい第3の値未満である場合、前記複数のパラメータセットから第3のパラメータセットを選択するように構成される、
    請求項6に記載のメモリシステム。
  8. 前記コントローラは、
    前記複数のダイの各々に含まれる前記複数のブロックの前記プログラム/イレーズサイクルの進行に応じて、前記閾値を大きくするように構成される、
    請求項6に記載のメモリシステム。
  9. 前記複数のワード線グループの各々は、一つのワード線または互いに隣接する2以上のワード線を含む、
    請求項6に記載のメモリシステム。
  10. 前記複数のパラメータセットの各々は、ワード線に印可されるプログラム電圧を示すパラメータと、プログラムベリファイ動作を規定するパラメータと、前記プログラム電圧を昇圧するタイミングを規定するパラメータと、を少なくとも含む、
    請求項6に記載のメモリシステム。
JP2022045555A 2022-03-22 2022-03-22 メモリシステム Pending JP2023139827A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022045555A JP2023139827A (ja) 2022-03-22 2022-03-22 メモリシステム
US17/902,279 US20230307061A1 (en) 2022-03-22 2022-09-02 Memory system controlling nonvolatile memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022045555A JP2023139827A (ja) 2022-03-22 2022-03-22 メモリシステム

Publications (1)

Publication Number Publication Date
JP2023139827A true JP2023139827A (ja) 2023-10-04

Family

ID=88096345

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022045555A Pending JP2023139827A (ja) 2022-03-22 2022-03-22 メモリシステム

Country Status (2)

Country Link
US (1) US20230307061A1 (ja)
JP (1) JP2023139827A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240111431A1 (en) * 2022-09-30 2024-04-04 Micron Technology, Inc. Adaptive super block wear leveling

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11189352B2 (en) * 2019-03-07 2021-11-30 Micron Technology, Inc. Adjustment of program verify targets corresponding to a last programming distribution and a programming distribution adjacent to an initial programming distribution
US11183255B1 (en) * 2020-07-09 2021-11-23 Stmicroelectronics S.R.L. Methods and devices for erasing non-volatile memory
TWI798616B (zh) * 2020-09-10 2023-04-11 日商鎧俠股份有限公司 記憶系統及資訊處理系統
KR20220072242A (ko) * 2020-11-25 2022-06-02 삼성전자주식회사 비휘발성 메모리 장치의 데이터 기입 방법 및 이를 수행하는 비휘발성 메모리 장치

Also Published As

Publication number Publication date
US20230307061A1 (en) 2023-09-28

Similar Documents

Publication Publication Date Title
US9507711B1 (en) Hierarchical FTL mapping optimized for workload
US9189313B2 (en) Memory system having NAND-type flash memory and memory controller with shift read controller and threshold voltage comparison module
US20100332729A1 (en) Memory operations using location-based parameters
TWI759686B (zh) 記憶體系統及用於控制該記憶體系統的方法
US11960409B2 (en) Zone-aware memory management in memory sub-systems
EP3494478A1 (en) Proactive corrective actions in memory based on a probabilistic data structure
US10977189B2 (en) Reducing forward mapping table size using hashing
US10168951B2 (en) Methods for accessing data in a circular block mode and apparatuses using the same
CN115148267A (zh) 基于块族的电压分布参数来避免错误
CN115148266A (zh) 基于块的电压分布参数来避免错误
CN115938434A (zh) 具有动态扫描频率的概率数据完整性扫描
US20230307061A1 (en) Memory system controlling nonvolatile memory
CN114613405A (zh) 频繁读取干扰攻击者的标识和高速缓存
US11360885B2 (en) Wear leveling based on sub-group write counts in a memory sub-system
CN112349334A (zh) 跨越块池的耗损均衡
US11960745B2 (en) Empty page scan operations adjustment
US20240231666A1 (en) Empty page scan operations adjustment
WO2024020929A1 (en) Short stripe repair in memory systems
WO2024026659A1 (en) Balancing pec in memory systems
US20230221872A1 (en) Method and non-transitory computer-readable storage medium and apparatus for reading data with optimization read voltage table
US20230221873A1 (en) Method and non-transitory computer-readable storage medium and apparatus for dynamically updating optimization read voltage table
US11934685B2 (en) Performing memory access operations based on quad-level cell to single-level cell mapping table
US11941276B2 (en) Incomplete superblock management for memory systems
US20240069723A1 (en) Memory system and method for controlling the same
US20230185469A1 (en) Memory system and controlling method