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

メモリシステム Download PDF

Info

Publication number
JP2022118299A
JP2022118299A JP2021014718A JP2021014718A JP2022118299A JP 2022118299 A JP2022118299 A JP 2022118299A JP 2021014718 A JP2021014718 A JP 2021014718A JP 2021014718 A JP2021014718 A JP 2021014718A JP 2022118299 A JP2022118299 A JP 2022118299A
Authority
JP
Japan
Prior art keywords
memory
read
order
error correction
controller
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
JP2021014718A
Other languages
English (en)
Inventor
昂 岡本
Noboru Okamoto
敏克 檜田
Toshikatsu Hida
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 JP2021014718A priority Critical patent/JP2022118299A/ja
Priority to US17/464,552 priority patent/US11561854B2/en
Publication of JP2022118299A publication Critical patent/JP2022118299A/ja
Priority to US18/086,206 priority patent/US11874738B2/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/20Initialising; Data preset; Chip identification
    • 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/26Sensing or reading circuits; Data output 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/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • 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/023Detection or location of defective auxiliary circuits, e.g. defective refresh counters in clock generator or timing circuitry
    • 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/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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/0409Online test
    • 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/4402Internal storage of test result, quality data, chip identification, repair information

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】リードレイテンシの悪化を低減したメモリシステムの提供。【解決手段】閾値電圧の経時変化進行に対応した順位と複数の判定電圧の値とを対応付けるシフトテーブルを第2メモリに記憶させ、第1の順位に対応する判定電圧の値をシフトテーブルから取得し、取得した判定電圧の値に基づいて第1メモリに対する第1のリード処理を実行する。第1のメモリから取得したデータにエラー訂正を実行するとともに検出されたエラービットの数を取得する。エラー訂正が成功し、かつエラービットの数が閾値以上であるとき、第2の順位を第2メモリに記憶させる。エラー訂正が成功し、かつエラービットの数が閾値未満であるとき、第1の順位を第3の順位として第2メモリに記憶させる。ホストからリード要求を受信した場合、第3の順位に対応する判定電圧の値をシフトテーブルから取得し、取得した判定電圧の値に基づいて第1メモリに対する第2のリード処理を実行する。【選択図】図5

Description

本実施形態は、メモリシステムに関する。
従来、メモリセルトランジスタを有するメモリシステムが広く知られている。そのようなメモリシステムにおけるリード処理においては、メモリセルトランジスタの閾値電圧と判定電圧との比較に基づいて、そのメモリセルトランジスタに保持されるデータが判定される。
しかしながら、メモリセルトランジスタの閾値電圧は、種々の要因によって変化する。そこで、メモリシステムでは、判定電圧の値の変更が可能に構成され、リード処理においてデータの誤判定が発生した場合には判定電圧の値を変更してリード処理をリトライすることが行われる。一方、データの誤判定の発生およびリード処理のリトライは、リードレイテンシの悪化の一因となる。
米国特許明細書第10102920号
一つの実施形態は、リードレイテンシの悪化を低減したメモリシステムを提供することを目的とする。
実施形態のメモリシステムは、ホストに接続可能であって、閾値電圧に応じてデータを記憶するメモリセルトランジスタを含む不揮発性の第1メモリと、閾値電圧と判定電圧との比較に基づいて第1メモリからデータを取得するリード処理を実行するコントローラと、第2メモリとを備える。コントローラは、閾値電圧の経時変化の進行に対応した順位と複数の判定電圧の値とを対応付けるシフトテーブルを第2メモリに記憶させ、第1の順位に対応する判定電圧の値をシフトテーブルから取得し、取得した判定電圧の値に基づいて第1メモリに対する第1のリード処理を実行する。コントローラは、第1のリード処理において、第1のメモリから取得したデータについてエラー訂正を実行するとともに該エラー訂正において検出されたエラービットの数を取得する。コントローラは、エラー訂正が成功し、かつ、エラービットの数が閾値以上であるとき、第2の順位を第2メモリに記憶させる。第2の順位は、シフトテーブルにおいて第1の順位よりも閾値電圧の経時変化が進行した順位に対応する。コントローラは、エラー訂正が成功し、かつ、エラービットの数が閾値未満であるとき、第1の順位を第3の順位として第2メモリに記憶させる。コントローラは、ホストからリード要求を受信した場合、第3の順位に対応する判定電圧の値をシフトテーブルから取得し、取得した判定電圧の値に基づいて第1メモリに対する第2のリード処理を実行する。
ホスト装置と接続された実施形態に係るメモリシステムの構成を示すブロック図である。 実施形態に係るメモリシステムにおけるメモリセルトランジスタの閾値電圧の分布例を示す図である。 実施形態に係るメモリシステムにおけるパトロールリード処理の一例を示すフローチャートである。 実施形態に係るメモリシステムにおけるシフトテーブルの一例を示す図である。 実施形態に係るメモリシステムにおけるパトロールリード処理の別の一例を示すフローチャートである。 実施形態に係るメモリシステムにおける成否テーブルの一例を示す図である。 実施形態に係るメモリシステムにおける成否テーブルの一例を示す図である。
以下に図面を参照して、実施形態に係るメモリシステムを詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
(実施形態の構成)
図1は、実施形態のメモリシステムの構成の一例を示す図である。図1に示すように、メモリシステム1は、ホスト装置30と接続可能である。ホスト装置30は、例えば、サーバ、パーソナルコンピュータ、またはモバイル型の情報処理装置である。メモリシステム1は、ホスト装置30の外部記憶装置として機能する。ホスト装置30は、メモリシステム1に対して要求を発行することができる。要求は、リード要求およびライト要求を含む。
メモリシステム1は、NAND型フラッシュメモリ10と、コントローラ20とを備えている。NAND型フラッシュメモリ10はメモリチップ11を含む。メモリチップ11は、複数のメモリセルトランジスタを備え、データを不揮発に記憶することができる。メモリチップ11は、NANDバス40によってコントローラ20と接続されている。
コントローラ20は、ホストインタフェース(HOST I/F)21、RAM(Random Access Memory)22、CPU(Central Processing Unit)23、バッファメモリ(Buffer)24、NANDインタフェース(NAND I/F)25、およびECC回路(ECC)26を備えている。
コントローラ20は、NAND型フラッシュメモリ10に対してプログラム処理、リード処理、イレース処理などを行う。コントローラ20は、例えばSoC(System-On-a-Chip)として構成される。コントローラ20は、FPGA(field-programmable gate array)やASIC(application specific integrated circuit)として構成されてもよい。コントローラ20は、複数のチップによって構成されてもよい。コントローラ20の各機能は、ソフトウェア(ファームウェア)を実行するCPU23、専用ハードウェア、またはこれらの組み合わせによって実現され得る。
ホストインタフェース21は、例えばSATA(Serial Advanced Technology Attachment)規格、SAS(Serial Attached SCSI)規格、またはPCI(Peripheral Components Interconnect) Express(登録商標)規格に準拠したバスを介してホスト装置30と接続され、コントローラ20とホスト装置30との通信を実現する。
NANDインタフェース25は、NANDバス40を介してNAND型フラッシュメモリ10のメモリチップ11と接続され、コントローラ20とメモリチップ11との通信を実現する。
CPU23は、コントローラ20の動作を制御する。
RAM22は、CPU23に作業領域を提供する。バッファメモリ24は、NAND型フラッシュメモリ10のメモリチップ11に送信されるデータ、およびメモリチップ11から受信したデータを一時的に保持する。RAM22およびバッファメモリ24は、例えばDRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)、またはこれらの組み合わせによって実現され得る。なお、RAM22およびバッファメモリ24を構成するメモリの種類は、これらに限定されない。バッファメモリ24は、コントローラ20の外部に実装されてもよい。
ECC回路26は、誤り訂正符号を用いて、NAND型フラッシュメモリ10から読み出したデータに対するエラーの検出および検出されたエラーの訂正を実行する。エラー訂正が失敗した場合、コントローラ20は、メモリセルトランジスタに対する判定電圧を変更してリード処理を再実行(リトライ)する。ここで、エラー訂正が失敗するとは、変化後のデータ(すなわち、NAND型フラッシュメモリ10から読み出したデータ)から変化前のデータ(すなわち、NAND型フラッシュメモリ10へ書き込んだデータ)を復元できないことをいう。具体的には、エラー訂正が失敗するとは、リードデータに含まれるエラービットを訂正できないことをいう。エラー訂正が成功するとは、リードデータに含まれる全てのエラービットが訂正されたことをいう。コントローラ20は、エラー訂正が成功するまで、判定電圧を変化させながらリトライリードを繰り返し実行する。
判定電圧の変更は、複数の判定電圧の組み合わせをリストしたシフトテーブルをRAM22に記憶させておき、コントローラ20がそのシフトテーブルを参照することで実現することができる。
シフトテーブルに記憶される判定電圧の値は、種々の量で表現することができる。また、判定電圧の値は、種々の表現で指示することができる。例えば、判定電圧の値は、シフト量で表現することができる。シフト量は、判定電圧の種類(VXday_Y)毎に予め設定されている基準値からの差分である。メモリチップ11内の所定の位置に判定電圧の種類毎に基準値が記録されてもよい。そして、コントローラ20は、判定電圧の種類毎に基準値からのシフト量をメモリチップ11に指示する。
なお、判定電圧の表現方法および指示の方法は、これに限定されない。例えば、判定電圧の値は差分ではなく電圧値で表現され、判定電圧は、メモリチップ11に対し、差分ではなく電圧値で指示されてもよい。
(メモリトランジスタのData Retention)
実施形態のメモリシステムは、リード処理においてメモリセルトランジスタの閾値電圧と判定電圧との比較を行うことによって、そのメモリセルトランジスタに保持されるデータを判定する。しかしながら、メモリセルトランジスタの閾値電圧は、経時変化等種々の要因によって変化する。実施形態のメモリシステムは、判定電圧の値の変更が可能に構成され、リード処理においてエラー訂正に失敗した場合には判定電圧の値を変更してリード処理をリトライする。
図2は、実施形態のメモリセルトランジスタの取り得る閾値電圧の一例を示している。図2の縦軸はメモリセルトランジスタを含むメモリセルの数を示し、横軸は閾値電圧および判定電圧を示している。図2に示す例では、メモリセルトランジスタは4つの閾値電圧の分布をもち、各メモリセルトランジスタは4値のデータを保持することができる。メモリセルトランジスタにデータが書き込まれた直後の「Day1」における判定電圧として「VDay1_0」、「VDay1_1」および「VDay1_2」が規定されている。
しかし、経時変化等によりメモリセルトランジスタの閾値電圧の分布が、例えば電圧の低い方へシフトする。図2に示す例において、閾値電圧分布は、「Day1」に示す閾値電圧分布から、経時変化等により「Day2」に示すように「Day1」よりも低い電圧域にシフトし、さらには「Day3」に示すようにより低い電圧域にシフトする。仮に判定電圧が「VDay1_0」、「VDay1_1」および「VDay1_2」のままで「Day3」の閾値電圧分布のメモリセルトランジスタについてリード処理を行うと、閾値電圧の分布域と判定電圧とが重なってしまい、閾値電圧を正しく識別することができなくなってしまう。こうした電圧シフトに対応してリード処理を行うには、判定電圧「VDayX_Y」を変更していく必要がある。
そこで、「Day1」の時点における判定電圧「VDay1_0」「VDay1_1」「VDay1_2」の組み合わせを「Index1」として規定しておく。同様に、「Day2」の時点における判定電圧「VDay2_0」「VDay2_1」「VDay2_2」の組み合わせを「Index2」として規定し、「Day3」の時点における判定電圧「VDay3_0」「VDay3_1」「VDay3_2」の組み合わせを「Index3」として規定する。そして、これら「IndexX」をシフトテーブル(Shift Table)に定義しておけば、「IndexX」のXの数字を変更することで判定電圧の組み合わせを一斉に変更することができる。シフトテーブルは、前述の通り、RAM22に記憶される。図4はシフトテーブルの一例を示す。
判定電圧の組み合わせの変更は、ECC回路26がエラー訂正に失敗した場合に行われる。しかし、ホスト装置30からの命令によるリード処理の際にエラー訂正に失敗し、判定電圧の組み合わせの変更が行われると、リードレイテンシ(Read Latency)が悪化する要因となる。そこで、実施形態のメモリシステムでは、バックグラウンドでパトロールリード処理を実行し、判定電圧の組み合わせを最適なものに変更する。パトロールリード処理では、シフトテーブルにおけるIndexの更新が行われる。
リード処理を実行する際に参照されるシフトテーブルには、閾値電圧の変化の進行に対応した順番で、対応する判定電圧のシフトパターン(図4の例ではシフト量)が配列されている。シフト量a~cは、図2に示す判定電圧VDayX_Yを相対的に示す値である。各シフトパターンには、配列の順番に対応した値のIndexが付されている。即ち、Indexの値は、閾値電圧の変化の進行に対応した順位を示す。
例えば、閾値電圧の変化の進行が第1の度合いと、第1の度合いよりも変化がより進行した第2の度合いとを考える。第1の度合いに対応した第1のシフトパターンには、第2の度合いに対応した第2のシフトパターンよりも小さい順位が設定される。図4では、例えば第1のシフトパターンに対応するIndexの値には1が設定され、第2のシフトパターンに対応するIndexの値には2が設定される。
コントローラ20は、リトライリードを繰り返す際、それぞれのリトライリードで適用されるシフトパターンを、Indexの値の順番で選択する。リード処理において用いられるIndexの値が変更されると、その値が履歴IndexとしてRAM22に記憶される。
なお、閾値電圧の変化の進行の傾向は、設計者によって予め推定することができる。つまり、シフトテーブルには、設計者によって予め推定された閾値電圧の変化の進行に対応した順番で、各シフトパターンが配列されている。例えば、閾値電圧の変化の進行は、メモリセルトランジスタから電荷が抜ける現象を考慮して推定することができる。メモリセルトランジスタから電荷が抜ける現象による閾値電圧の変化の進行は、例えば、イレース処理・プログラム処理の実行回数によって異なる。イレース処理・プログラム処理の実行回数に応じて異なるシフトテーブルが設けられてもよい。
(パトロールリード処理)
図3を参照して、実施形態のメモリシステムにおけるパトロールリード処理について説明する。コントローラ20は、定期的(例えば3~4日に一回程度)にパトロールリード処理を実行する。コントローラ20によるパトロールリード処理の実行頻度は、NAND型フラッシュメモリ10の容量などを勘案して決定される。
コントローラ20は、RAM22からシフトテーブルを読み出し、所定のIndex(履歴Index)に対応するシフト量を取得する(S100)。図4に示すシフトテーブルの例において、コントローラ20は、例えば初期段階のIndex1に対応するシフト量a~cを読み出す。
コントローラ20は、取得したシフト量に基づいてリード処理を実行する(S110)。
ECC回路26は、リード処理により取得したデータについてエラー訂正を行う(S120)。エラーがないか、エラー訂正に成功した場合(S120でYes)、コントローラ20は、当該リード処理に用いたIndex(ここでは例えばIndex1)を履歴IndexとしてRAM22に記憶する(S130)。
エラー訂正に失敗した場合(S120でNo)、コントローラ20は当該リード処理に用いたIndexとリフレッシュ基準値とを比較する(S140)。リフレッシュ基準値は、当該リード処理を行ったNAND型フラッシュメモリ10の領域に対する再生処理(リフレッシュ)を行うべきか否かを判定する指標である。図4に示す例では、リフレッシュ基準値は例えばIndex5である。コントローラ20は、シフトテーブルによる判定電圧の変更が所定の基準回数を超える場合等において、当該リード処理領域をリフレッシュして情報を再記憶させる。当該リード処理に用いたIndexがリフレッシュ基準値よりも小さい場合(S140のNo)、コントローラ20は、当該リード処理に用いたIndexの番号を1つ増加させて(S150)、履歴IndexとしてRAM22に記憶させる(S160)。すなわち、図4に示す例では、次のパトロールリード処理において用いられるIndexをIndex2とする。次回のリード処理ではIndex2に対応するシフト量が用いられる。
当該リード処理に用いたIndexがリフレッシュ基準値以上である場合(S140でYes)、コントローラ20は、当該リード処理を行った領域をリフレッシュする(S170)。リフレッシュ処理を実行すると、コントローラ20はIndexを初期値(例えば図4におけるIndex1)にリセットする(S180)。コントローラ20は、Indexの初期値を履歴IndexとしてRAM22に記憶する(S130)。コントローラ20は、以上説明した処理をすべてのメモリチップ11について行う。
図3および4を参照して説明したパトロールリード処理では、リード処理により得たデータのエラー訂正を失敗するごとに履歴Indexが更新され、最適なIndexがあらかじめ設定される。従って、ホスト装置30の要求によるリード処理の際にエラー訂正を失敗する可能性を低くすることができる。すなわち、メモリシステム1のQoS(Quality of Service)を改善することができる。
(パトロールリード処理の変形例)
図3に示すパトロールリード処理は、バックグラウンドでパトロールリード処理を実行することで、ホスト装置30からの要求によるリード処理の際のエラー発生やリトライ発生の可能性の低減を可能にする。
一方で、シフトテーブルには、一般に、設計者によって予め推定された閾値電圧の変化の進行に対応した順番で各シフトパターンが配列されている。しかしながら、実際のメモリシステムでは、セル特性のばらつき等により、エラー訂正に成功してはいるが、その時に用いられたIndexよりも先のIndex(Index番号が大きいIndex)の方がより適切な判定電圧の組み合わせである場合が生じ得る。この場合、パトロールリード処理を行った時点からの経時変化により、ホスト装置30からの要求によるリード処理の際にエラー訂正に失敗するおそれがある。一方で、シフトテーブル上のIndexの更新を必要以上に早めてしまうと、リフレッシュ処理までの期間を短くしてしまうことにもつながる。パトロールリード処理の頻度を高めてきめ細かいIndex更新を行うことも考えられるが、これはコントローラ20のバックグランド処理を必要以上に増加させることになり、ホスト装置30によるリード処理を阻害してしまうおそれがある。特に、NAND型フラッシュメモリ10の容量が増大するにつれてこのデメリットが顕著となる。
図5は、図3に示すパトロールリード処理の一部を変形した変形例を示している。図5に示す例では、Indexの早期最適化を図るとともに、リフレッシュ処理が必要以上に行われないようしている。以下、図5を参照してパトロールリード処理の変形例を詳細に説明する。
この変形例では、コントローラ20は、ECC回路26がエラー訂正する際に検出したエラービットの数(Fail Bit Count)を所定の基準値と比較する。すなわち、エラー訂正に成功した場合でも、エラービットの数が所定の基準値を超えた場合はシフトテーブルのIndex更新を行う。これは、シフトテーブルにおけるIndexの早期最適化を促す作用をする。
また、この変形例では、コントローラ20は、新たに成否テーブル(Pass/Fail Table)をRAM22に記憶させておく。図6は、成否テーブルの一例を示している。図6に示すように、成否テーブルは、シフトテーブルにおけるIndexと、当該Indexにおけるエラー訂正の成否とを対応付けた情報である。コントローラ20は、Indexを参照してシフトテーブルから判定電圧の組み合わせを取得し、その時のリード処理におけるエラー訂正の成否を成否テーブルに記録する。成否テーブルは、リフレッシュ処理の実行を最適化するための情報である。
コントローラ20は、RAM22からシフトテーブルを読み出し、所定のIndexに対応するシフト量を取得する(S100)。図4に示すシフトテーブルの例において、コントローラ20は、例えば初期段階のIndex1に対応するシフト量a~cを読み出す。
コントローラ20は、取得したシフト量に基づいてリード処理を実行する(S110)。
ECC回路26は、リード処理により取得したデータについてエラー訂正を行う(S122)。ECC回路26は、RAM22に記憶した成否テーブルを更新する。ECC回路26は、このとき、エラー訂正を行ったデータについてエラービットの個数(Fail Bit Count)を併せて取得する。
エラー訂正処理の結果、エラーがないか、エラー訂正に成功した場合(S122でYes)、ECC回路26は、取得したエラービットの個数が所定の基準値X以上であるかどうか判定する(S124)。判定の結果、取得したエラービットの個数が所定の基準値X未満である場合(S124でNo)、コントローラ20は、当該リード処理に用いたIndex(ここでは例えばIndex1)を履歴IndexとしてRAM22に記憶する(S130)。
エラー訂正に失敗した場合(S122でNo)、または、取得したエラービットの個数が所定の基準値Xに達している場合(S124でYes)、コントローラ20は、当該リード処理に用いたIndexがシフトテーブルにおける最後のIndexであるかどうか判定する(S142)。最後のIndexではない場合(S142でNo)、コントローラ20は、当該リード処理に用いたIndexの番号を1つ増加させて(S150)、履歴IndexとしてRAM22に記憶させる(S160)。すなわち、図4に示す例では、コントローラ20は、次のパトロールリード処理において用いられるIndexをIndex2とする。エラービットの個数による判定は、エラー訂正が成功した場合でも、シフトテーブルのIndexを更新する作用をする。
当該リード処理に用いたIndexがシフトテーブルにおける最後のIndexである場合(S142でYes)、コントローラ20は、RAM22に記憶した成否テーブルを参照し、すべてのIndexを用いたリード処理がエラー訂正失敗(Fail)かどうかを判定する(S144)。成否テーブルにおいて、エラー訂正に成功(Pass)したIndexが記録されている場合、成功したIndexのうち番号が最も小さいものを履歴IndexとしてRAM22に記憶する(S162)。
上述したように、エラー訂正に用いられたIndexが最後のIndexに達した場合(S142でYes)でもシフトテーブルのIndex更新が行われることになる。このような場合、エラー訂正に成功したIndexのうち、最も若い(小さい)Indexが履歴Indexとして記憶される。これにより、必要以上にリフレッシュ処理が行われることを防止できる。
例えば、図6に示す成否テーブルでは、Index1がエラー訂正失敗となっているが、次に番号の大きいIndex2においてエラー訂正が成功している。そこで、コントローラ20は、ステップS162においてIndex2を履歴Indexとして記録する。
成否テーブルにおいて、エラー訂正に成功したIndexが残っておらず、すべてのIndexを用いたリード処理がエラー訂正失敗であった場合(S144でYes)、コントローラ20は、当該リード処理を行ったNAND型フラッシュメモリ10の領域のリフレッシュを実行する(S170)。例えば、図7に示す成否テーブルでは、現在のIndex1から最後のIndex5まですべてエラー訂正に失敗している。そこで、コントローラ20は、ステップ170においてリフレッシュ処理を実行する。リフレッシュ処理を実行すると、コントローラ20はIndexを初期値(例えば図4におけるIndex1)にリセットし、成否テーブルを初期化する(S180)。コントローラ20は、Indexの初期値を履歴IndexとしてRAM22に記憶する(S130)。
コントローラ20は、以上説明した処理をすべてのメモリチップ11について行う。
このように、変形例のメモリシステムでは、バックグラウンドで実行されるパトロールリード処理におけるIndexの更新は、エラー訂正の成否だけでなく、エラービットの個数を判定材料として行われる。従って、Indexを早期に更新可能とするとともに、リフレッシュ処理のタイミングを最適化(例えばできるだけ遅いタイミング)とすることができる。従って、ホスト装置30によるリード処理におけるリード処理失敗を抑制することができる。
なお、ステップ162において、コントローラ20は、エラー訂正に成功したIndexのうちエラービットの数が最小であったIndex番号を履歴Indexとして記憶してもよい。これにより、データリテンション期間を延ばすことができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…メモリシステム、
10…NAND型フラッシュメモリ、
11…メモリチップ、
20…コントローラ、
21…ホストインタフェース、
22…RAM、
23…CPU、
24…バッファ、
25…NANDインタフェース、
26…ECC回路、
30…ホスト装置。

Claims (5)

  1. ホストに接続可能なメモリシステムであって、
    閾値電圧に応じてデータを記憶するメモリセルトランジスタを含む不揮発性の第1メモリと、
    前記閾値電圧と判定電圧との比較に基づいて前記第1メモリからデータを取得するリード処理を実行するコントローラと、
    第2メモリと、
    を備え、
    前記コントローラは、
    前記閾値電圧の経時変化の進行に対応した順位と複数の前記判定電圧の値とを対応付けるシフトテーブルを前記第2メモリに記憶させ、
    第1の順位に対応する前記判定電圧の値を前記シフトテーブルから取得し、前記取得した判定電圧の値に基づいて前記第1メモリに対する第1のリード処理を実行し、
    前記第1のリード処理において、
    前記第1のメモリから取得したデータについてエラー訂正を実行するとともに該エラー訂正において検出されたエラービットの数を取得し、
    前記エラー訂正が成功し、かつ、前記エラービットの数が閾値以上であるとき、第2の順位を前記第2メモリに記憶させ、前記第2の順位は、前記シフトテーブルにおいて前記第1の順位よりも前記閾値電圧の経時変化が進行した順位に対応し、
    前記エラー訂正が成功し、かつ、前記エラービットの数が前記閾値未満であるとき、前記第1の順位を第3の順位として前記第2メモリに記憶させ、
    前記ホストからリード要求を受信した場合、前記第3の順位に対応する前記判定電圧の値を前記シフトテーブルから取得し、前記取得した判定電圧の値に基づいて前記第1メモリに対する第2のリード処理を実行する
    ように構成されているメモリシステム。
  2. 前記コントローラは、
    第4の順位を前記第1の順位として用いるまで前記第1のリード処理を複数回実行ようにさらに構成され、前記第4の順位は、前記シフトテーブルにおける前記閾値電圧の経時変化が最も進行した順位である
    請求項1記載のメモリシステム。
  3. 前記コントローラは、
    前記複数回実行された前記第1のリード処理における前記エラー訂正が全て失敗である場合に、前記第1メモリに対するリフレッシュ処理を行う
    ようにさらに構成されている請求項2記載のメモリシステム。
  4. 前記コントローラは、
    前記複数回実行された前記第1のリード処理のいずれかにおいて前記エラー訂正に成功した場合に、前記成功したエラー訂正を含む前記第1のリード処理で用いられた前記第1の順位のうち、前記シフトテーブルにおける前記閾値電圧の経時変化が最も進行していない順位を、前記第2の順位として前記第2メモリに記憶させる
    ようにさらに構成されている請求項2記載のメモリシステム。
  5. 前記コントローラは、
    前記複数回実行された前記第1のリード処理のいずれかにおいて前記エラー訂正に成功した場合に、前記成功したエラー訂正のうち、前記エラービットの数が最も少ない前記エラー訂正を含む前記第1のリード処理で用いられた前記第1の順位を、前記第2の順位として前記第2メモリに記憶させる
    ようにさらに構成されている請求項2記載のメモリシステム。
JP2021014718A 2021-02-02 2021-02-02 メモリシステム Pending JP2022118299A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2021014718A JP2022118299A (ja) 2021-02-02 2021-02-02 メモリシステム
US17/464,552 US11561854B2 (en) 2021-02-02 2021-09-01 Memory system
US18/086,206 US11874738B2 (en) 2021-02-02 2022-12-21 Memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021014718A JP2022118299A (ja) 2021-02-02 2021-02-02 メモリシステム

Publications (1)

Publication Number Publication Date
JP2022118299A true JP2022118299A (ja) 2022-08-15

Family

ID=82612420

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021014718A Pending JP2022118299A (ja) 2021-02-02 2021-02-02 メモリシステム

Country Status (2)

Country Link
US (2) US11561854B2 (ja)
JP (1) JP2022118299A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022118299A (ja) * 2021-02-02 2022-08-15 キオクシア株式会社 メモリシステム
KR20220143446A (ko) * 2021-04-16 2022-10-25 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5740296B2 (ja) * 2011-12-16 2015-06-24 株式会社東芝 半導体記憶装置、半導体記憶装置の制御方法、制御プログラム
KR102238592B1 (ko) * 2014-08-08 2021-04-09 삼성전자주식회사 비휘발성 메모리 장치의 디폴트 독출 전압 설정 방법 및 비휘발성 메모리 장치의 데이터 독출 방법
US9928138B2 (en) * 2015-02-17 2018-03-27 Toshiba Memory Corporation Memory system
US9606865B2 (en) * 2015-02-23 2017-03-28 Sandisk Technologies Llc Method and apparatus for configuring a memory device
US9799405B1 (en) 2015-07-29 2017-10-24 Ip Gem Group, Llc Nonvolatile memory system with read circuit for performing reads using threshold voltage shift read instruction
US9502129B1 (en) * 2015-09-10 2016-11-22 Kabushiki Kaisha Toshiba Memory system and method of controlling nonvolatile memory
US10102920B2 (en) 2016-08-15 2018-10-16 Sandisk Technologies Llc Memory system with a weighted read retry table
US10558381B2 (en) * 2016-12-16 2020-02-11 Sandisk Technologies Llc Dynamic read table generation
US10095568B2 (en) * 2017-02-08 2018-10-09 Seagate Technology Llc Background reads to condition programmed semiconductor memory cells
US10839886B2 (en) 2018-06-11 2020-11-17 Western Digital Technologies, Inc. Method and apparatus for adaptive data retention management in non-volatile memory
KR20190140788A (ko) * 2018-06-12 2019-12-20 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US10395728B2 (en) * 2018-06-26 2019-08-27 Intel Corporation Demarcation voltage determination via write and read temperature stamps
KR20210063561A (ko) * 2019-11-25 2021-06-02 삼성전자주식회사 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법
JP2022118299A (ja) * 2021-02-02 2022-08-15 キオクシア株式会社 メモリシステム

Also Published As

Publication number Publication date
US20230122474A1 (en) 2023-04-20
US20220245028A1 (en) 2022-08-04
US11874738B2 (en) 2024-01-16
US11561854B2 (en) 2023-01-24

Similar Documents

Publication Publication Date Title
US20200211656A1 (en) Operation method of nonvolatile memory device and storage device
US11874738B2 (en) Memory system
JP5629391B2 (ja) 半導体記憶装置及び半導体記憶装置の制御方法
US11127471B2 (en) Read retry threshold voltage selection
US11609814B2 (en) Memory system
US20190012228A1 (en) Data reading method and storage controller
JP2019169217A (ja) メモリシステム、その制御方法及びプログラム
US10586601B2 (en) Semiconductor memory device and read control method thereof
US10803973B2 (en) Memory management method and storage controller
US10210042B2 (en) Memory system
US9236888B2 (en) Storage device, memory controller and memory control method
US11249685B2 (en) Method for accessing flash memory module, associated flash memory controller and electronic device for accelerating reading speed of flash
US11494254B2 (en) Storage system with predictive adjustment mechanism and method of operation thereof
JP2021174564A (ja) 半導体記憶装置
US20230298685A1 (en) Memory system and method
US20230042340A1 (en) Memory device
CN118069070B (zh) 降低存储器软错误率的回写方法及装置
EP4310847A2 (en) Storage controller
US20230096401A1 (en) Memory system
US20210035648A1 (en) Storage system with error mitigation mechanism and method of operation thereof
US20200285572A1 (en) Flash memory initialization scheme for writing boot up information into selected pages averagely and randomly distributed over more pages and correspondingly method for reading boot up information from selected pages
CN118069070A (zh) 降低存储器软错误率的回写方法及装置
JP2023130864A (ja) メモリシステム