JP2019168853A - メモリシステム、その制御方法及びプログラム - Google Patents

メモリシステム、その制御方法及びプログラム Download PDF

Info

Publication number
JP2019168853A
JP2019168853A JP2018055169A JP2018055169A JP2019168853A JP 2019168853 A JP2019168853 A JP 2019168853A JP 2018055169 A JP2018055169 A JP 2018055169A JP 2018055169 A JP2018055169 A JP 2018055169A JP 2019168853 A JP2019168853 A JP 2019168853A
Authority
JP
Japan
Prior art keywords
read
memory
nonvolatile memory
reliability
data
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
JP2018055169A
Other languages
English (en)
Inventor
小島 慶久
Yoshihisa Kojima
慶久 小島
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
Toshiba Memory 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 Toshiba Memory Corp filed Critical Toshiba Memory Corp
Priority to JP2018055169A priority Critical patent/JP2019168853A/ja
Priority to US16/237,592 priority patent/US10910073B2/en
Publication of JP2019168853A publication Critical patent/JP2019168853A/ja
Priority to US17/131,644 priority patent/US11145374B2/en
Priority to US17/410,872 priority patent/US11574688B2/en
Priority to US18/149,373 priority patent/US11776638B2/en
Priority to US18/365,929 priority patent/US20240021252A1/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
    • 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/5628Programming or writing circuits; 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/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/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/32Timing 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
    • G11C16/3422Circuits or methods to evaluate read or write disturbance in nonvolatile memory, without steps to mitigate the problem
    • 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
    • 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
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5648Multilevel memory programming, reading or erasing operations wherein the order or sequence of the operations is relevant
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/04Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/14Word line organisation; Word line lay-out
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/18Address timing or clocking circuits; Address control signal generation or management, e.g. for row address strobe [RAS] or column address strobe [CAS] signals

Abstract

【課題】信頼性を低下させることなくレイテンシを小さくする。【解決手段】実施形態によるメモリシステムは、複数のリード動作のうちのいずれかを選択的に実行する不揮発性メモリと、前記不揮発性メモリに対して前記複数のリード動作のうちのいずれかを実行させるリード・コマンドを発行するメモリコントローラと、を備え、前記メモリコントローラは、リード要求を受け付け、前記リード要求がリード対象とする物理アドレスに対してリード動作を実行したと仮定した場合の信頼性に関する情報を推定し、前記推定された信頼性に関する情報に基づいて前記不揮発性メモリに前記リード要求に対して最初に実行させるリード動作を前記複数のリード動作のうちから選択し、前記リード要求の受け付けに応じて前記不揮発性メモリへ最初に発行する第1リード・コマンドにおいて、前記選択されたリード動作の実行を前記不揮発性メモリに指示する。【選択図】図3

Description

以下の実施形態は、一般的に、メモリシステム、その制御方法及びプログラムに関する。
NAND型フラッシュメモリ(以下、NANDメモリという)からデータを読み出すリード動作には、リード時間と信頼性とが異なる複数のリード方式が存在する。リード時間とは、例えば、NANDメモリに対してリード要求を発行してからこの要求に応じてデータが読出し開始可能になるまでの時間である。一方、信頼性とは、例えば、NANDメモリから読み出されたデータの正確性に相当するものであり、読み出されたデータに含まれるエラービットが少ない場合は信頼性が高く、多い場合は信頼性が低いことを意味している。
ここで、リード時間と信頼性とはトレードオフの関係にある。そこで従来では、最初にリード時間の短いリード方式を実行し、そのリードに失敗した場合に、信頼性を重視したリード方式を実行するのが一般的であった。
米国特許第9223656号明細書 米国特許出願公開第2013/0080858号明細書 米国特許第9025393号明細書 米国特許第8811094号明細書
本発明の一つの実施形態は、信頼性を低下させることなくリード時間を短縮することが可能なメモリシステム、その制御方法及びプログラムを提供することを目的とする。
実施形態によるメモリシステムは、複数のリード動作のうちのいずれかを選択的に実行する不揮発性メモリと、前記不揮発性メモリに対して前記複数のリード動作のうちのいずれかを実行させるリード・コマンドを発行するメモリコントローラと、を備え、前記メモリコントローラは、リード要求を受け付け、前記リード要求がリード対象とする物理アドレスに対してリード動作を実行したと仮定した場合の信頼性に関する情報を推定し、前記推定された信頼性に関する情報に基づいて前記不揮発性メモリに前記リード要求に対して最初に実行させるリード動作を前記複数のリード動作のうちから選択し、前記リード要求の受け付けに応じて前記不揮発性メモリへ最初に発行する第1リード・コマンドにおいて、前記選択されたリード動作の実行を前記不揮発性メモリに指示する。
図1は、第1の実施形態にかかるメモリシステムの概略構成例を示すブロック図である。 図2は、リード動作におけるリード時間とBERとの関係例を示す図である。 図3は、第1の実施形態に係るメモリコントローラのリード動作を実行する構成に着目した機能ブロック図である。 図4は、3次元NAND構造を有するメモリセルアレイの一例を示す断面図である。 図5は、3次元NAND構造を有するメモリセルアレイの他の一例を示す断面図である。 図6は、SLC、MLC及びTLCの閾値電圧分布及びマージンの例を示す図である。 図7は、MLCの閾値電圧分布及びリードレベルの一例を示す図である。 図8は、図7に示すMLCをLOWERページとUPPERページとの2つのページに対応させた場合のそれぞれのページに割り当てられるリードレベルとその数との一例を示す図である。 図9は、TLCの閾値電圧分布及びリードレベルの一例を示す図である。 図10は、図9に示すTLCをLOWERページとMIDDLEページとUPPERページとの3つのページに対応させた場合のそれぞれのページに割り当てられるリードレベルとその数との一例を示す図である。 図11は、TLCの閾値電圧分布及びリードレベルの他の例を示す図である。 図12は、図11に示すTLCをLOWERページとMIDDLEページとUPPERページとの3つのページに対応させた場合のそれぞれのページに割り当てられるリードレベルとその数との他の例を示す図である。 図13は、第1の実施形態に係るリード動作の概略例を示すシーケンス図である。 図14は、第1の実施形態に係るコマンドシーケンスの一例を示す図である。 図15は、第2の実施形態に係る不揮発性メモリの概略構成例を示すブロック図である。 図16は、第2の実施形態に係るコマンドシーケンスの一例を示す図である。
以下に添付図面を参照して、実施形態に係るメモリシステム、その制御方法及びプログラムを詳細に説明する。なお、以下の実施形態により本発明が限定されるものではない。
(第1の実施形態)
まず、第1の実施形態にかかるメモリシステム、その制御方法及びプログラムについて、図面を参照して詳細に説明する。図1は、第1の実施形態にかかるメモリシステムの概略構成例を示すブロック図である。メモリシステム1は、不揮発性メモリ20とメモリコントローラ10とを備える。メモリシステム1は、ホスト装置30と接続可能であり、図1ではホスト装置30と接続された状態が示されている。ホスト装置30は、例えば、パーソナルコンピュータ、携帯端末などの電子機器であってよい。
メモリシステム1は、いわゆるSSD(Solid State Drive)や、メモリコントローラ10と不揮発性メモリ20とが1つのパッケージとして構成されるメモリカード等、不揮発性メモリ20を備える種々のメモリシステムであってよい。
不揮発性メモリ20は、データを不揮発に記憶する不揮発性メモリであり、例えば、NAND型フラッシュメモリ(以下、単にNANDメモリという)である。以下の説明では、不揮発性メモリ20としてNANDメモリが用いられた場合を例示するが、不揮発性メモリ20として3次元構造フラッシュメモリ、ReRAM(Resistive Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)等のNANDメモリ以外の記憶媒体を用いることも可能である。また、不揮発性メモリ20が半導体メモリであることは必須ではなく、半導体メモリ以外の種々の記憶媒体に対して本実施形態を適用することも可能である。
メモリコントローラ10は、例えばSoC(System-On-a-Chip)として構成される半導体集積回路である。以下で説明するメモリコントローラ10の各構成要素の動作の一部又は全部は、CPU(Central Processing Unit)がファームウエアを実行することによって実現されてもよいし、ハードウエアで実現されてもよい。
メモリコントローラ10は、メモリバス18によって不揮発性メモリ20に接続され、ホストバス31によってホスト装置30に接続される。メモリコントローラ10は、ホスト装置30からのライト要求に従って不揮発性メモリ20への書込みを制御する。また、ホスト装置30からのリード要求に従って不揮発性メモリ20からの読出しを制御する。ホスト装置30は、コンピュータの構成を備えている。コンピュータとは、例えば、パーソナルコンピュータ、サーバ装置、ポータブルな情報機器、デジタルスチルカメラ等であってよい。また、ホストバス31の準拠する規格としては、たとえば、SATA(Serial Advanced Technology Attachment)、SAS(Serial Attached SCSI)、PCIe(登録商標)(Peripheral Component Interconnect express)(NVM express(登録商標)を含む)など、任意の規格が採用可能である。
メモリバス18は、メモリコントローラ10と不揮発性メモリ20とを結ぶメモリインタフェースに従った信号の送受信を行う。メモリインタフェースがいわゆるNANDインタフェースである場合、この信号の具体例には、チップイネーブル信号CEn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号WEn、リードイネーブル信号REn、レディ・ビジー信号RBn、入出力信号I/O等が含まれ得る。
信号CEnは、不揮発性メモリ20をイネーブルにするための信号である。信号CLEは、不揮発性メモリ20への入力信号I/Oがコマンドであることを不揮発性メモリ20に通知する信号である。信号ALEは、不揮発性メモリ20への入力信号I/Oがアドレスであることを不揮発性メモリ20に通知する信号である。信号WEnは入力信号I/Oを不揮発性メモリ20に取り込ませるための信号である。信号REnは、不揮発性メモリ20から出力信号I/Oを読み出すための信号である。レディ・ビジー信号RBnは、不揮発性メモリ20がレディ状態(メモリコントローラ10からのコマンドを受信できる状態)であるか、それともビジー状態(メモリコントローラ10からのコマンドを受信できない状態)であるかを示す信号である。入出力信号I/Oは、例えば8ビットの信号である。入出力信号I/Oは、不揮発性メモリ20とメモリコントローラ10との間で送受信されるデータの実体であり、コマンド、アドレス、ライトデータ(書込み対象のデータ)、リードデータ(読み出されたデータ)等である。
また、不揮発性メモリ20からメモリコントローラ10へは、不揮発性メモリ20の温度を検出する温度センサ25で検出された温度を示す信号TEMPも入力される。この温度センサ25は、図1に示すように、不揮発性メモリ20内に設けられてもよいし、不揮発性メモリ20の外部に設けられた独立した部品であってもよい。また、温度センサ25から出力された信号TEMPが伝播する信号線は、メモリバス18に含まれていてもよいし、メモリバス18とは別の独立した信号線であってもよい。
メモリコントローラ10は、ホストインタフェース(ホストI/F)15、RAM(Random Access Memory)12、制御部11、バッファメモリ14、メモリインタフェース(メモリI/F)16、及びECC部(ECC)13を備えている。ホストI/F15、RAM12、制御部11、バッファメモリ14、メモリI/F16、及びECC部13は、内部バス17によって互いに接続されている。
ホストI/F15は、ホストバス31を介してホスト装置30と接続され、ホスト装置30から受信したコマンド及びデータを、それぞれ制御部11及びバッファメモリ14に転送する。また、ホストI/F15は、制御部11からのコマンドに応答して、バッファメモリ14内のデータをホスト装置30へ転送する。
制御部11は、例えばCPU(Central Processing Unit)などの情報処理装置で構成され、メモリコントローラ10全体の動作を制御する。例えば、制御部11は、ホスト装置30からライト要求を受信した際には、それに応答して、メモリI/F16に対してライト・コマンドを発行する。リードの際も同様に、ホスト装置30からリード要求を受信した際には、それに応答して、メモリI/F16に対してリード・コマンドを発行する。一方、消去の場合には、例えば制御部11がガベージコレクションなどの処理の一環として、メモリI/F16に対して消去コマンドを発行する。また、制御部11は、ガベージコレクションの他にも、ウェアレベリング、リフレッシュ、パトロールリード等、不揮発性メモリ20を管理するための様々な処理を実行する。
メモリI/F16は、メモリバス18を介して不揮発性メモリ20と接続され、不揮発性メモリ20との通信を制御する。メモリI/F16は、制御部11から受信したコマンドに基づき、信号ALE、信号CLE、信号WEn、及び信号REnを不揮発性メモリ20へ出力する。また、書込み時には、制御部11で発行されたライト・コマンド、及びバッファメモリ14内のライトデータを、入出力信号I/Oとして不揮発性メモリ20へ転送する。メモリI/F16は、読出し時には、制御部11で発行されたリード・コマンドを、入出力信号I/Oとして不揮発性メモリ20へ転送する。また、メモリI/F16は、不揮発性メモリ20から読み出されたデータを入出力信号I/Oとして受信し、これをバッファメモリ14へ転送する。
バッファメモリ14は、ライトデータまたはリードデータを一時的に保持するメモリ領域として機能する。バッファメモリ14は、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)等で構成され得る。
RAM12は、例えばDRAM等の半導体メモリであり、制御部11の作業領域として使用される。RAM12には、不揮発性メモリ20を制御するためのファームウェアや、ホスト装置30から指定された論理アドレスと不揮発性メモリ20上の物理アドレスとの対応関係を示すアドレス変換テーブル等の各種テーブル等がロードされる。
ECC部13は、リードデータにおけるエラー検出及びエラー訂正のために、データの符号化および復号を行う。具体的には、ECC部13は、不揮発性メモリ20に書き込まれるデータ(ライトデータ)を符号化する。また、ECC部13は、不揮発性メモリ20から読み出されたデータ(リードデータ)を復号する。ECC部13は、復号によって、リードデータにおけるエラー検出及びエラー訂正を実行する。ECC部13は、エラー訂正に失敗した場合には、エラー訂正の失敗を制御部11に通知する。ECC部13による符号化および復号のアルゴリズムには、RS(リード・ソロモン)符号やBCH(Bose-Chaudhuri-Hocquenghem)符号や低密度パリティ検査(LDPC)符号等を用いた任意のアルゴリズムを適用することが可能である。
例えば、ECC部13は、データに基づいてパリティを生成し、パリティをデータに付す。書込み時には、不揮発性メモリ20には、パリティが付されたデータが、符号化データとして書き込まれる。読出し時には、ECC部13は、パリティに基づきシンドロームを生成し、読み出されたデータ内のエラーの有無を判断する。ECC部13は、データにエラーが含まれる場合、エラーの位置を特定し、そのエラーを訂正する。ECC部13において訂正可能なエラーの数は、例えばパリティのビット数等によって決まる。訂正可能なエラーの数を超える数のエラーがデータに含まれる場合には、ECC部13は、エラー訂正ができない。したがって、この場合、ECC部13は、エラー訂正に失敗する。
不揮発性メモリ20は、コマンド処理部21、駆動部22、メモリセルアレイ23、カラムモジュール24、及び、温度センサ25を備える。コマンド処理部21は、シーケンサ211、コマンドレジスタ(CMDレジスタ)212、アドレスレジスタ(ADDレジスタ)213を含む。駆動部22は、ドライバ回路221及びロウデコーダ(R/D)222を含む。
メモリセルアレイ23は、1以上のブロックを備える。各ブロックは、不揮発性のメモリセル(メモリセルトランジスタMT)の集合体であり、各メモリセルは、ロウ及びカラムに対応付けられている。メモリセルアレイ23は、メモリコントローラ10から与えられたデータを記憶する。
ロウデコーダ222は、アクセス対象のブロックを選択し、更に選択したブロックにおけるロウ方向を選択する。
ドライバ回路221は、選択されたブロックに対して、ロウデコーダ222を介して電圧を供給する。
カラムモジュール24は、たとえばセンスアンプと複数のラッチ回路よりなるデータラッチとを含んで構成される。このカラムモジュール24は、ライト動作においては、メモリコントローラ10から受信したライトデータDATをメモリセルアレイ23に転送する。また、カラムモジュール24は、リード動作においては、メモリセルアレイ23から読み出されたデータをセンスし、必要な演算を行う。そして、カラムモジュール24は、得られたデータDATをメモリコントローラ10に出力する。
アドレスレジスタ213は、メモリコントローラ10から受信したアドレスADDを保持する。コマンドレジスタ212は、メモリコントローラ10から受信したコマンドCMDを保持する。
シーケンサ211は、コマンドレジスタ212に保持されたコマンドCMDに基づき、不揮発性メモリ20全体の動作を制御する。
温度センサ25は、常時、定期的又は必要に応じて、メモリセルアレイ23周辺の温度を検出し、検出された温度を示す信号TEMPをメモリコントローラ10へ出力する。
不揮発性メモリ20では、一般に、ページと呼ばれるデータ単位で、書込み及び読出しが行われ、ブロックと呼ばれるデータ単位で消去が行われる。本実施形態では、同一のワード線に接続される複数のメモリセルをメモリセルグループと呼ぶ。各メモリセルが1ビットを格納するSLC(Single Level Cell)である場合は、1つのメモリセルグループが1ページに対応する。各メモリセルが、2ビットを格納するMLC(Multiple Level Cell)や3ビットを格納するTLC(Triple Level Cell)や4ビットを格納するQLC(Quad Level Cell)など、複数のビットを格納する場合は、1つのメモリセルグループが複数ページに対応する。また、各メモリセルはワード線に接続されるとともにビット線にも接続される。したがって、個々のメモリセルは、ワード線を識別するアドレスとビット線を識別するアドレスとで識別することが可能である。
ここで、シーケンサ211が実行するリード動作には、リード時間と信頼性とが異なる複数のリード動作が存在する。本説明では、シーケンサ211が実行するリード動作として、FASTリードと、ノーマルリードと、リトライシフトリードと、隣接ワードライン補償リードと、トラッキングリードとを例示する。メモリコントローラ10は、予め設定されたリードシーケンスに従い、シーケンサ211に対してこれらの動作を選択的に順次実行する指示を出力する。
ここで、ノーマルリードとは、読出し時にワードラインに印加する読出し電圧(リードレベルともいう)として予め設定しておいた基準のリードレベルを用いる通常のリード動作である。なお、使用する基準のリードレベルが1つであるノーマルリードをシングルレベルリードともいい、複数であるノーマルリードをマルチレベルリードともいう。
FASTリードとは、例えばノーマルリードよりもリードレベルの印加時間等を短くすることでリード時間を短縮したリード動作である。
リトライシフトリードとは、例えば、FASTリードやノーマルリード等で目的のデータを復元できなかった場合に実行されるリード動作であり、基準のリードレベルから高電圧側又は低電圧側にシフトしたリードレベルを用いたリード動作である。
隣接ワードライン補償リードとは、例えば読出し対象のメモリセルから読み出した値をワードラインの配列方向に位置する隣接メモリセルから読み出した値に基づいて選択又は補正するリード動作である。
トラッキングリードとは、例えば、リードレベルを所定の刻み幅でシフトしながらシングルレベルリードを複数回実行することで、該当ページに含まれる複数のメモリセルにプログラムされた閾値電圧の分布のヒストグラム(閾値電圧分布)を生成し、生成した閾値電圧分布に基づいて補正したリードレベルを用いて読出しを実行するリード動作である。なお、トラッキングリードには、メモリコントローラ10からの制御に従って実行されるリード方式と、メモリコントローラ10からの制御に依らずに不揮発性メモリ20内で実行されるリード方式(Self-Adjusting Read又はOn-Chip Tracking Readともいう)とが存在するが、本実施形態では何れのリード方式であってもよい。
なお、本実施形態で例示するリードシーケンスでは、FASTリード、ノーマルリード、リトライシフトリード、隣接ワードライン補償リード、トラッキングリードの順番でリード動作が実行される場合を例示するが、このような構成に限定されない。例えば、ノーマルリードからリトライシフトリードまでの流れに代えて、リードレベルのシフト量が異なる複数回のリトライシフトリードが順次実行されてもよい。その場合、1回目のリトライシフトリードには、直前の成功したリード動作で学習しておいたシフト量が用いられてもよい。また、以下の説明では、リードシーケンスにおける2回目以降のリード動作のシーケンスを、リトライリードシーケンスと称する。
ここで、上記したリード動作のうち、FASTリードと、ノーマルリードと、隣接ワードライン補償リードとについて、それぞれのリード時間とBER(Bit Error Rate)との関係を説明する。図2は、リード時間とBERとの関係例を示す図である。図2において、横軸はBERを示し、縦軸はリード時間を示している。また、黒塗りの点PA1〜PA3は、あるページAに対してそれぞれのリード動作を実行した際の関係を示し、白抜きの点PB1〜PB3は、ページAとは異なるページBに対してそれぞれのリード動作を実行した際の関係を示す。さらに、PA1及びPB1はFASTリードの関係を示し、PA2及びPB2はノーマルリードの関係を示し、PA3及びPB3は隣接ワードライン補償リードの関係を示す。
図2に示すように、FASTリード、ノーマルリード及び隣接ワードライン補償リードの中では、FASTリードが最もリード時間が短く、隣接ワードライン補償リードが最もリード時間が長い。一方、BERに関しては、隣接ワードライン補償リードが最もBERが低く、FASTリードが最もBERが高い。これは、隣接ワードライン補償リードの方が、FASTリードよりも信頼性が高いことを示している。
そこで、図2に示すように、ECC部13の誤り訂正能力をある一定の訂正能力と仮定する。なお、誤り訂正能力とは、例えば、リードデータに含まれるエラービットを訂正できる個数である。このような仮定の下では、ページAに関しては、FASTリード、ノーマルリード及び隣接ワードライン補償リードの何れで得られたリードデータであってもECC部13で誤り訂正できる一方、ページBに関しては、隣接ワードライン補償リードで得られたリードデータは誤り訂正できるものの、FASTリードとノーマルリードとで得られたリードデータは誤り訂正できないこととなる。
そのような場合に、FASTリードから順にリード動作を実行するリードシーケンスを実行すると、ページAに関しては、最初のFASTリードで得られたリードデータを誤り訂正できる可能性が高いものの、ページBに関しては、FASTリードとノーマルリードとで得られたリードデータを誤り訂正できる可能性が低い。その場合、FASTリードとノーマルリードとのリード動作が無駄となり、レイテンシを大きくする要因となる。
そこで本実施形態では、それぞれのページに対してリード動作を実行したと仮定した場合に推定される信頼性に基づいて、リードシーケンスにおける最初に実行するリード動作を選択的に切り替える。これにより、本実施形態では、信頼性を低下させることなくレイテンシを小さくすることが可能なメモリシステム、その制御方法及びプログラムを実現することが可能となる。
図3は、本実施形態に係るメモリコントローラのリード動作を実行する構成に着目した機能ブロック図である。なお、図3では、説明の明確化のため、不揮発性メモリ20の構成を簡略化している。
図3に示すように、本実施形態に係るメモリコントローラ10は、リード動作時の構成として、例えば、リード要求受付部101と、コマンド発行部102と、特性情報記憶部103と、信頼性推定部104と、誤り訂正能力管理部105と、リード方式選択部106とを備える。これら、リード要求受付部101、コマンド発行部102、特性情報記憶部103、信頼性推定部104、誤り訂正能力管理部105及びリード方式選択部106は、図1に示すメモリコントローラ10の各部11〜17によって実現される。
リード要求受付部101は、例えばホスト装置30から入力されたリード要求を受け付ける。ただし、ホスト装置30からのリード要求に限定されず、例えばガベージコレクションやリフレッシュやパトロールリードなどのリード動作を伴うイベントが発生した際には、そのイベントの実行に必要となるリード動作の実行要求(以下、これらもリード要求という)を制御部11等から受け付ける。
リード要求を受け付けると、リード要求受付部101は、コマンド発行部102へリード・コマンドの発行を指示すると共に、特性情報記憶部103及び誤り訂正能力管理部105へ、リード要求で指定された論理アドレスに対応する物理アドレスを入力する。これに対し、特性情報記憶部103は、入力された物理アドレスで指定されるページに対して各リード動作を実行したと仮定した場合に推定される信頼性を推定するのに十分な情報(以下、特性情報という)を信頼性推定部104へ出力する。なお、信頼性が推定されるリード動作には、少なくともFASTリードが含まれていればよく、FASTリード以外の他のリード動作もスキップ対象とする場合には、スキップ対象とする他のリード動作が含まれていてもよい。
一方、誤り訂正能力管理部105は、入力された物理アドレスで指定されるページに関して制御部11がECC部13に指定した誤り訂正符号又はその訂正能力を示す情報(以下、訂正能力情報という)をリード方式選択部106へ出力する。
特性情報の例としては、例えば、物理位置、書込みモード、ページ種別、エラー履歴、経過時間(データリテンション:DR)、消去回数、書込み状態(プログラムディスターブ:PD)、読出し回数(リードディスターブ:RD)、温度、温度交差等に関する情報を挙げることができる。
「物理位置」とは、リード要求で指定された論理アドレスに対応する物理アドレスから特定される情報であり、例えばメモリセルアレイ23が3次元NAND構造を有する場合に読出し対象のページが積層構造中の浅い層に位置するか深い層に位置するかを示す情報である。
「書込みモード」とは、リード対象データがSLCモード、MLCモード、TLCモード、QLCモード等のうちのいずれの書込みモードでメモリセルに書き込まれたかを示す情報である。なお、SLCモードとは、1つのメモリセルに1ビットのデータを書き込む書込みモードであり、MLCモードとは、1つのメモリセルに2ビットのデータを書き込む書込みモードであり、TLCモードとは、1つのメモリセルに3ビットのデータを書き込む書込みモードであり、QLCモードとは、1つのメモリセルに4ビットのデータを書き込む書込みモードである。
「ページ種別」とは、リード対象データが格納されているページを特定する情報である。例えばメモリセルアレイ23を構成する各メモリセルがTLCの場合には、LOWERページ、MIDDLEページ及びUPPERページのうちのいずれであるかを特定するための情報となる。
「エラー履歴」とは、過去に該当の物理アドレスから読み出したデータに含まれていたエラーに関する情報であり、例えばFBC(Fail Bit Count)やBERや誤り訂正に成功した頻度及び失敗した頻度などの情報である。このエラー履歴は、例えば過去に該当の物理アドレスから読み出したデータに対してECC部13が実行した復号の結果として得ることができる。なお、FBCとは、例えば、ECCフレーム内(あるいはページ内)に含まれる誤りビットの数である。
「経過時間(データリテンション:DR)」とは、該当の物理アドレスに対してデータの書込みを実行してからの経過時間である。なお、経過時間は、実時間であってもよいし、温度やメモリセルの疲弊度を考慮して実時間を変換することで得られた値であってもよい。たとえば、放置状態における温度が高いほうが正味の経過時間は長く、また、メモリセルの疲弊度が大きいほうが正味の経過時間は長い。
「消去回数」とは、該当の物理アドレスで指定されるページを含むブロックに対して過去に実行された消去動作の累積回数であって、各ブロックの疲弊度を表す指標である。なお、ブロック単位に限らず、ページ単位又はメモリセル単位で消去回数が管理されてもよい。また、各ブロックの疲弊度は、消去回数のほかに、ある消去動作から次の消去動作までの時間間隔や温度等も考慮した値として表されてもよい。たとえば、書き込み・消去動作を行ったときの温度が低いほうが正味の疲弊度が高く、また、ある消去動作から次の消去動作までの時間間隔が短いほうが正味の疲弊度は高い。
「書込み状態(プログラムディスターブ:PD)」とは、該当の物理アドレスで指定されるページを含むブロックに対するデータの書き込みが完了しているか否かを示す情報である。ブロックに対する書込みが途中である場合、当該ブロックの例えば最終書込みページ付近からのデータの読出しの信頼性が低下する場合がある。なお、「書込み状態」には、リード対象のページを含むブロック全体の書込み状態に代えて、リード対象のワードラインに隣接する1つ以上のワードラインの書込み状態が用いられてもよい。
「読出し回数(リードディスターブ:RD)」とは、該当の物理アドレスで指定されるページを含むブロックに対して該当データを書き込んだ後に実行された読出し回数である。
「温度」とは、温度センサ25で検出されたメモリセルアレイ23又はこの付近の現在又は最新の温度を示す情報である。
「温度交差」とは、読出し対象のデータを書き込んだ際の温度と温度センサ25で検出された現在又は最新の温度との差を示す情報である。
特性情報記憶部103は、リード要求受付部101からの指示に従い、上記した情報のうちの1つ以上を特性情報として信頼性推定部104へ出力する。これに対し、信頼性推定部104は、特性情報記憶部103から入力された特性情報の全て又は一部を使用して、リード要求で指定された論理アドレスに対応するページに対して各リード動作を実行したと仮定した場合に推定される信頼性を示す指標(以下、信頼性指標という)を推定し、推定した信頼性指標をリード方式選択部106へ出力する。例えば、信頼性推定部104は、入力された特性情報の全て又は一部を使用して、読み出されるデータのFBCを推定し、この推定したFBC(以下、推定FBCという)を信頼性指標としてリード方式選択部106へ出力する。ただし、信頼性指標は、FBCなどの数値化された情報ではなく、例えば信頼性が「高い」と「低い」との2つの段階を区別する情報など、種々変更することが可能である。
一方、誤り訂正能力管理部105は、各ページに格納されているデータに対して制御部11が決定してECC部13が適用した符号化方式又はその訂正能力を管理している。例えば制御部11は、書込み対象のデータを符号化する符号化方式を決定すると、決定した符号化方式及び/又はその訂正能力を示す情報(以下、訂正能力情報という)と、この書込み対象データの格納位置(ページ位置)を示す物理アドレスとを、逐次、誤り訂正能力管理部105に通知する。誤り訂正能力管理部105は、制御部11から通知された物理アドレスと訂正能力情報とを対応付けて管理する。そして、誤り訂正能力管理部105は、リード要求受付部101からの物理アドレスの入力に応じて、この物理アドレスに対応付けられた訂正能力情報をリード方式選択部106へ出力する。なお、符号化方式の区分けには、採用する誤り訂正符号の違いに基づく区分けの他に、符号化率の違いに基づく区分けなど、種々の要素に基づいた区分けを適用することができる。
リード方式選択部106は、信頼性推定部104から読出し対象のページに関する信頼性指標(推定FBC)が入力されると、この信頼性指標(推定FBC)に基づいて、リードシーケンスにおいて最初に実行するリード動作を選択する。例えばリード方式選択部106は、推定FBCが高い場合、すなわち、該当ページに対して例えばFASTリードを実行した際の信頼性が低いと推定されている場合、信頼性の低いFASTリードをスキップし、最初に実行するリード動作としてノーマルリードを選択する。一方、推定FBCが低い場合、すなわち、該当ページに対して例えばFASTリードを実行した際の信頼性が高いと推定されている場合、最初に実行するリード動作としてFASTリードを選択する。
また、リード方式選択部106は、信頼性推定部104から入力された信頼性指標(推定FBC)に加え、又は、この信頼性指標(推定FBC)とは別に、誤り訂正能力管理部105から入力された訂正能力情報に基づいて、該当ページに対するリード動作を選択してもよい。例えば、該当ページに対して適用されている符号化方式の誤り訂正能力が低い場合、信頼性の低いリード動作では読み出したデータの誤り訂正に失敗する可能性が高い。一方、該当ページに対して適用されている符号化方式の誤り訂正能力が高い場合、信頼性が低いリード動作であっても読み出したデータの誤り訂正に成功する可能性が高い。
そこで、リード方式選択部106は、信頼性推定部104から入力された信頼性指標(推定FBC)と、誤り訂正能力管理部105から入力された訂正能力情報とのいずれか、若しくは、それらの組み合わせに基づいて、最初に実行するリード動作を選択してもよい。
以上のようにしてリードシーケンスにおいて最初に実行するリード動作を選択すると、リード方式選択部106は、この選択したリード動作をコマンド発行部102へ通知する。
コマンド発行部102は、リード方式選択部106で選択されたリード動作を不揮発性メモリ20に実行させるためのリード・コマンドを発行し、発行したリード・コマンドを不揮発性メモリ20のコマンド処理部21へ入力する。これに対し、コマンド処理部21は、入力されたリード・コマンドに従い、駆動部22とカラムモジュール24のセンスアンプ241及びデータラッチ242とを駆動することで、メモリセルアレイ23における読出し対象の物理アドレスから目的のデータを読み出す。読み出されたデータは、メモリI/F16(図1参照)を介してECC部13に転送されて誤り訂正が実行される。
なお、コマンド発行部102は、同一のリード要求に対して次に指定すべきリード動作を特定するための情報を管理する。例えば、コマンド発行部102は、同一のリード要求に対して何回目のリード・コマンドの発行であるかを、不図示のカウンタを用いて管理する。又は、コマンド発行部102は、今回のリード・コマンドの発行が同一のリード要求に対して最初のリード・コマンドの発行であるか否か、及び、前回のリード・コマンドで指定したリード動作が予め設定されているリードシーケンスにおけるどのリード動作であったか、若しくは、何番目のリード動作であったかを特定するための情報を管理する。従って、コマンド発行部102は、同一のリード要求に対して最初のリード・コマンドの発行であれば、リード方式選択部106で選択されたリード動作を指定するリード・コマンドを発行し、2回目以降のリード・コマンドの発行であれば、リードシーケンスにおいて次に実行すべきリード動作を指定するリード・コマンドを発行する。そして、コマンド発行部102は、リード・コマンドに応じて不揮発性メモリ20から転送されたリードデータに対するECC部13による復号が成功した場合、同一のリード要求に対して次に指定すべきリード動作を特定するための情報をリセットして、次のリード要求の受け付けに備える。
ここで、上記で例示した特性情報のうち、物理位置について説明する。例えばメモリセルアレイ23が3次元NAND構造を有するメモリチップである場合に、物理位置を考慮して信頼性を評価することの効果は大きいと考えられる。例えばメモリセルアレイ23が図4に示すような16層の3次元NAND構造を有する場合、下層付近に位置する例えばワードラインWL0〜WL1に対するリード動作を実行した際の信頼性は、上層付近に位置する例えばワードラインWL14〜WL15に対するリード動作を実行した際の信頼性よりも低くなる場合がある。同様に、図5に示すように、例えばメモリセルアレイ23が16層が2段に重ねられた3次元NAND構造を有する場合、それぞれの段の下層付近に位置する例えばワードラインWL0〜WL1及びWL16〜WL17に対するリード動作を実行した際の信頼性は、それぞれの段の上層付近に位置する例えばワードラインWL14〜WL15及びWL30〜WL31に対するリード動作を実行した際の信頼性よりも低くなる場合がある。なお、図4及び図5において、各BLはビットラインを示し、WL0〜WL15はワードラインを示し、231は半導体基板を示し、各232、各232a及び各232bは層間を電気的に接続するビア配線を示し、233、233A及び233Bは16層を1つの単位とした段(Tier)を示している。また、本説明では、それぞれの段の上層側を浅いとし、下層側を深いとする。したがって、本説明では、それぞれの段の最下層が最深層となり、それぞれの段の最上層が最浅層となる。
そこで、本実施形態に係る信頼性推定部104は、メモリセルアレイ23が3次元NAND構造を有する場合、「物理位置」がそれぞれの段233/233A/233Bの下層付近に位置するワードライン(例えばWL0〜WL1)を示している場合、信頼性が低いことを示す信頼性指標を生成するように動作してもよい。
また、リード対象データの書込みに使用した書込みモードによっても、リード動作を実行した際の信頼性が異なる場合がある。例えば、図6に示すように、MLCモードでデータが記録されたメモリセルの4つの閾値電圧分布(Er〜Cステート)それぞれの間の3つのマージンM_vth21〜M_vth23(図6(b)参照)はいずれも、SLCモードでデータが記録されたメモリセルの2つの閾値電圧分布(Er及びAステート)間のマージンM_vth1(図6(a)参照)よりも小さい。そのため、MLCモードでデータが記録されたページに対する読出しの方が、SLCモードでデータが記録されたページに対する読出しよりもBERが悪化し易い傾向にある。
同様に、TLCモードでデータが記録されたメモリセルの8つの閾値電圧分布(Er〜Gステート)それぞれの間の7つのマージンM_vth31〜M_vth37(図6(c)参照)はいずれも、MLCモードの3つのマージンM_vth21〜M_vth23(図6(b)参照)よりも小さい。そのため、TLCモードでデータが記録されたページに対する読出しは、MLCモードよりも更にBERが悪化し易い傾向にある。そこで、本実施形態に係る信頼性推定部104は、リード対象データを書き込んだ際の「書込みモード」に応じて、異なる信頼性を示す信頼性指標を生成するように動作してもよい。
さらに、同一のワードラインに対するリード動作であっても、1つのメモリセルグループが複数ページに対応している場合、それぞれのページに対するリード動作を実行した際の信頼性が異なる場合がある。これを、メモリセルグループがMLCとTLCとQLCとのそれぞれで構成されている場合を例に説明する。図7は、MLCの閾値電圧分布の例を示す図であり、図8は、図7に例示したMLCをLOWERページとUPPERページとの2つのページに対応させた場合のそれぞれのページに割り当てられるリードレベルとその数との一例を示す図である。図9は、TLCの閾値電圧分布の一例を示す図であり、図10は、図9に例示したTLCをLOWERページとMIDDLEページとUPPERページとの3つのページに対応させた場合のそれぞれのページに割り当てられるリードレベルとその数との一例を示す図である。図11は、TLCの閾値電圧分布の他の例を示す図であり、図12は、図11に例示したTLCをLOWERページとMIDDLEページとUPPERページとの3つのページに対応させた場合のそれぞれのページに割り当てられるリードレベルとその数との一例を示す図である。
図7及び図8に示すように、MLCの4つの閾値電圧分布(Er〜Cステート)を読み分けるためにLOWERページ/UPPERページそれぞれに設定されたリードレベルの数が2/1である場合、1つのリードレベルVBが設定されたUPPERページよりも、2つのリードレベルVA及びVCが設定されたLOWERページの方が、リード動作を実行した際の信頼性が低い傾向がある。
同様に、図9及び図10に示すように、TLCの8つの閾値電圧分布(Er〜Gステート)を読み分けるためにLOWERページ/MIDDLEページ/UPPERページそれぞれに設定されたリードレベルの数が2/3/2である場合(以下、2/3/2コーディングのTLCモードである場合という)、2つのリードレベルVA及びVE又はVC及びVGが設定されたLOWERページ及びUPPERページよりも、3つのリードレベルVB、VD及びVFが設定されたMIDDLEページの方が、リード動作を実行した際の信頼性が低い傾向がある。
また、図11及び図12に示すように、TLCの8つの閾値電圧分布(Er〜Gステート)を読み分けるためにLOWERページ/MIDDLEページ/UPPERページそれぞれに設定されたリードレベルの数が1/3/3である場合(以下、1/3/3コーディングのTLCモードという)も同様に、1つのリードレベルVDが設定されたLOWERページよりも、3つのリードレベルVA、VC及びVF又はVB、VE及びVGがそれぞれ設定されたMIDDLEページ及びUPPERページの方が、リード動作を実行した際の信頼性が低い傾向がある。
そこで、本実施形態に係る信頼性推定部104は、「ページ種別」が他のページよりも多くのリードレベルが設定されたページを示している場合、信頼性が低いことを示す信頼性指標を生成するように動作してもよい。
さらにまた、最も電圧値が低い閾値電圧分布(Erステートともいう)と、Erステートの次に電圧値が低い閾値電圧分布(Aステートともいう)との読み分けはエラーを生じさせ易い傾向にある。そこで、本実施形態に係る信頼性推定部104は、「ページ種別」がErステートとAステートとの境界に位置するリードレベルが設定されたページを示している場合、信頼性が低いことを示す信頼性指標を生成するように動作してもよい。
一方で、電圧値が高い閾値電圧分布は、データリテンションの影響により、低電圧側へシフトし易い。これは、高電圧側の閾値電圧分布間のギャップが、低電圧側の閾値電圧分布間のギャップと比較して、データリテンションの影響により狭くなり易いことを意味している。そのため、これらの閾値電圧分布の読み分けはエラーを生じさせ易い傾向にある。そこで、本実施形態に係る信頼性推定部104は、「書込みモード」から特定される最も電圧値が高い閾値電圧分布とこれの次に電圧値が高い閾値電圧分布との境界に位置するリードレベルが設定されたページに対するリード動作であることが「書込みモード」及び「ページ種別」から特定された場合、信頼性が低いことを示す信頼性指標を生成するように動作してもよい。
これを図6(b)又は(c)並びに図7〜図12に示したMLC又はTLCを例に説明すると、図6(b)並びに図7及び図8に例示したMLCでは、電圧値が高くなるほど、データリテンションの影響により、ステート間のギャップが狭くなっている。そのため、例えば高電圧側のCステートとBステートとの読み分けは、低電圧側のErステートとAステートとの読み分けよりも、エラーを生じさせ易い傾向にある。そこで、信頼性推定部104は、「書込みモード」がMLCモードを示し、「ページ種別」が高電圧側のステート間を読み分けるためのリードレベルが設定されたページ(例えば、CステートとBステートとを読み分けるためのリードレベルVCが設定されたLOWERページ)を示している場合、そのリード動作に対しては、信頼性が低いことを示す信頼性指標を生成するように動作してもよい。
同様に、図6(c)並びに図9及び図10又は図11及び図12に例示したTLCでも、電圧値が高くなるほど、データリテンションの影響により、ステート間のギャップが狭くなっている。そこで、信頼性推定部104は、「書込みモード」がTLCモードを示し、「ページ種別」が高電圧側のステート間を読み分けるためのリードレベルが設定されたページ(例えば、GステートとFステートとを読み分けるためのリードレベルVGが設定されたUPPERページ)を示している場合、そのリード動作に対しては、信頼性が低いことを示す信頼性指標を生成するように動作してもよい。
次に、本実施形態に係るリード動作について、図面を参照して詳細に説明する。図13は、本実施形態に係るリード動作の概略例を示すシーケンス図である。なお、図13及び以下の説明では、ホスト装置30からの要求に応じてリード動作を実行する場合(以下、ホストリードともいう)を例示するが、それに限らず、ガベージコレクションやリフレッシュやパトロールリード等のリード動作を伴うイベントが発生した場合も同様である。また、図13及び以下の説明では、メモリセルから硬判定値のデータを読み出す硬判定読出し(ハードビットリードともいう)を例示するが、それに限らず、メモリセルから軟判定値のデータを読み出す軟判定読出し(ソフトビットリードともいう)に対しても同様に適用することが可能である。さらに、図13及び以下の説明では、基本動作として、リード時間の短い順(例えばFASTリード、ノーマルリード、リトライシフトリード、隣接ワードライン補償リード及びトラッキングリードの順)に、読出しに成功するまでリード動作を実行するリードシーケンスを例示するが、このようなリードシーケンスに限定されず、種々のリードシーケンスを適用することが可能である。
図13に示す動作例では、まず、ホスト装置30からのリード要求(S11)がメモリコントローラ10のリード要求受付部101によって受け付けられる(S21)。従来では、リード要求を受け付けたリード要求受付部101は、リード要求に含まれる論理アドレスを所定のアドレス変換テーブルを用いて物理アドレスに変換し、この物理アドレスをコマンド発行部102に入力する。コマンド発行部102は、物理アドレスが入力されると、所定のリードシーケンスに則ったリード動作と、リード対象の物理アドレスとを指定するリード・コマンドを不揮発性メモリ20内のコマンド処理部21へ発行する。従って、リード要求に対して最初に発行するリード・コマンドでは、リードシーケンスにおいて最初に実行するものと設定されているFASTリードが指定される。
これに対し、本実施形態では、リード要求を受け付けたリード要求受付部101は、リード要求に含まれる論理アドレスを所定のアドレス変換テーブルを用いて物理アドレスに変換し、これにより得られた物理アドレスを特性情報記憶部103に入力すると共に、リード・コマンドの発行をコマンド発行部102へ指示する。これに対し、特性情報記憶部103が、物理アドレスから特定される特性情報を信頼性推定部104へ入力する。信頼性推定部104は、入力された特性情報の一部又は全部を使用することで、該当の物理アドレスから読み出されるデータに関する信頼性指標(図13では推定FBC)を生成し(S22)、生成した信頼性指標をリード方式選択部106に入力する。
なお、ステップS21でリード要求を受け付けたリード要求受付部101が、特性情報記憶部103に加え、又は、特性情報記憶部103に代えて、特定した物理アドレスを誤り訂正能力管理部105に入力してもよい。その場合、誤り訂正能力管理部105は、物理アドレスから特定される訂正能力情報をリード方式選択部106に入力する。
次に、リード方式選択部106が、入力された信頼性指標及び/又は訂正能力情報に基づいて、FASTリードをスキップするか否かを判定する。本例では、リード方式選択部106は、推定FBCが予め設定しておいた第1閾値以上であるか否かを判定する(S23)。
推定FBCが第1閾値未満である場合(S23;NO)、リード方式選択部106は、リード動作としてFASTリードを選択し、この選択結果をコマンド発行部102へ通知する。コマンド発行部102は、リード要求受付部101からの指示に対して、FASTリードを実行するリード・コマンドを発行し(S25)、このリード・コマンドを不揮発性メモリ20のコマンド処理部21へ入力する。その結果、ホスト装置30からのリード要求に対して最初に実行されるリード動作がFASTリードとなる。コマンド処理部21は、入力されたFASTリードのリード・コマンドに従いFASTリードを実行する(S51)。これにより得られたリードデータは、データラッチ242からメモリバス18を介してメモリコントローラ10のECC部13に転送される。ECC部13は、転送されたリードデータに対する誤り訂正を実行する(S26)。この誤り訂正に成功した場合(S27;YES)、本動作は、ステップS40へ進む。一方、誤り訂正に失敗した場合(S27;NO)、本動作は、ステップS28へ進む。
また、ステップS23の判定の結果、推定FBCが第1閾値以上である場合(S23;YES)、リード方式選択部106は、FASTリードをスキップするよう、ステップS24へ進む。それにより、リードシーケンスにおいて最初に実行するものと設定されているFASTリードの実行がスキップされる。ステップS24では、リード方式選択部106が、入力された信頼性指標及び/又は訂正能力情報に基づいて、次のリード動作(本説明ではノーマルリード)をスキップするか否かを判定する。本例では、リード方式選択部106は、推定FBCが予め設定しておいた第2閾値以上であるか否かを判定する(S24)。なお、ノーマルリードをリードシーケンスに含めず、FASTリードの次にリトライシフトリードが実行されるように構成されていてもよい。
ステップS26の誤り訂正に失敗した場合(S27;NO)、又は、推定FBCが第2閾値未満である場合(S24;NO)、リード方式選択部106は、リード動作としてノーマルリードを選択し、この選択結果をコマンド発行部102へ通知する。コマンド発行部102は、リード要求受付部101からの指示に対してノーマルリードを実行するリード・コマンドを発行し(S28)、このリード・コマンドを不揮発性メモリ20のコマンド処理部21へ入力する。コマンド処理部21は、入力されたノーマルリードのリード・コマンドに従いノーマルリードを実行する(S52)。これにより得られたリードデータは、データラッチ242からメモリバス18を介してメモリコントローラ10のECC部13に転送される。ECC部13は、転送されたリードデータに対する誤り訂正を実行する(S29)。この誤り訂正に成功した場合(S30;YES)、本動作は、ステップS40へ進む。一方、誤り訂正に失敗した場合(S30;NO)、本動作は、ステップS31へ進む。
また、ステップS29の誤り訂正に失敗した場合(S30;NO)、又は、推定FBCが第2閾値以上である場合(S24;YES)、リード方式選択部106は、リード動作としてリトライシフトリードを選択し、この選択結果をコマンド発行部102へ通知する。コマンド発行部102は、リード要求受付部101からの指示に対してシフトリードを実行するリード・コマンドを発行し(S31)、このリード・コマンドを不揮発性メモリ20のコマンド処理部21へ入力する。コマンド処理部21は、入力されたシフトリードのリード・コマンドに従いシフトリードを実行する(S53)。これにより得られたリードデータは、データラッチ242からメモリバス18を介してメモリコントローラ10のECC部13に転送される。ECC部13は、転送されたリードデータに対する誤り訂正を実行する(S32)。この誤り訂正に成功した場合(S33;YES)、本動作は、ステップS40へ進む。一方、誤り訂正に失敗した場合(S33;NO)、本動作は、ステップS34へ進む。なお、リトライシフトリードは、1回に限らず、シフト値を変えながら複数回実行されてもよい。すなわち、ステップS32の誤り訂正に失敗した場合(S33;NO)、コマンド発行部102が、シフト値を変更したシフトリードを実行するリード・コマンドの発行(S31)を2以上の所定回数、繰返し実行し、それでもステップS32の誤り訂正に失敗した場合(S33;NO)に、本動作がステップS34へ進むように構成されてもよい。
ステップS34では、コマンド発行部102は、ステップS32の誤り訂正に失敗した場合の制御部11からの指示に応じて次のリード動作である隣接ワードライン補償リードを実行するリード・コマンドを発行し(S34)、このリード・コマンドを不揮発性メモリ20のコマンド処理部21へ入力する。コマンド処理部21は、入力された隣接ワードライン補償リードのリード・コマンドに従い隣接ワードライン補償リードを実行する(S54)。これにより得られたリードデータは、データラッチ242からメモリバス18を介してメモリコントローラ10のECC部13に転送される。ECC部13は、転送されたリードデータに対する誤り訂正を実行する(S35)。この誤り訂正に成功した場合(S36;YES)、本動作は、ステップS40へ進む。一方、誤り訂正に失敗した場合(S36;NO)、本動作は、ステップS37へ進む。
ステップS37では、コマンド発行部102は、ステップS35の誤り訂正に失敗した場合の制御部11からの指示に応じて次のリード動作であるトラッキングリードを実行するリード・コマンドを発行し(S37)、このリード・コマンドを不揮発性メモリ20のコマンド処理部21へ入力する。コマンド処理部21は、入力されたトラッキングリードのリード・コマンドに従いトラッキングリードを実行する(S55)。これにより得られたリードデータは、データラッチ242からメモリバス18を介してメモリコントローラ10のECC部13に転送される。ECC部13は、転送されたリードデータに対する誤り訂正を実行する(S38)。この誤り訂正に成功した場合(S39;YES)、本動作は、ステップS40へ進む。一方、誤り訂正に失敗した場合(S39;NO)、本動作は、ステップS41へ進む。
ステップS40では、制御部11は、バッファメモリ14に格納されている誤り訂正後のデータ(以下、訂正済みデータという)からオリジナルのデータ(ライトデータと同一)を復元し(S40)、復元したデータをホスト装置30へ転送する(S12)。一方、ステップS41では、例えば制御部11がリード要求(S11)に対するリード動作に失敗した(リードエラー)と判断し(S41)、これがホスト装置30へ通知される。これに対し、ホスト装置30は、リードエラー時の処理を実行する(S13)。
つづいて、図13のステップS25、S28、S31、S34及びS37で、コマンド発行部102から不揮発性メモリ20のコマンド処理部21へ出力されるコマンドについて説明する。図14は、本実施形態に係るコマンドシーケンスの一例を示す図である。図14に示すように、コマンド発行部102からコマンド処理部21へ出力されるコマンドには、リード・コマンドM10と、データ出力コマンドM20とが含まれる。リード・コマンドM10は、リード動作(例えばFASTリード、ノーマルリード、シフトリード、隣接ワードライン補償リード及びトラッキングリードのうちのいずれか)を指定するプリフィックス“XX”と、該当する物理アドレスにおけるページ種別(例えばLOWERページ、MIDDLEページ及びUPPERページのいずれか)の指定“PSC(Page Select Command)”と、カラムアドレス“C1”、“C2”及びロウアドレス“R1”、“R2”、“R3”を指定するアドレス部M11を含むリード・コマンド(“00h”〜“30h”)とが含まれる。
したがって、本実施形態により、それぞれのリードシーケンスにおける最初のリード動作が変更された場合には、コマンド発行部102からコマンド処理部21へ出力される最初のリード・コマンドM10におけるプリフィックス“XX”が変更されることとなる。例えば、FASTリードを最初に実行する場合には、FASTリードを指定するプリフィックス“XX”を含むリード・コマンドM10がコマンド発行部102からコマンド処理部21へ最初に出力される。また、FASTリードをスキップしてノーマルリードを最初に実行する場合には、ノーマルリードを指定するプリフィックス“XX”を含むリード・コマンドM10がコマンド発行部102からコマンド処理部21へ最初に出力される。
なお、以上のようなリード・コマンドM10に対し、コマンド処理部21は、駆動部22を制御してメモリセルアレイ23の該当ページからデータを読み出すリード動作を実行する。このリード動作の実行中、不揮発性メモリ20からメモリコントローラ10へ入力されるレディ・ビジー信号RBnはビジー状態Bsyを示す。レディ・ビジー信号RBnがビジー状態Bsyを示している期間tRは、実行中のリード動作に依って異なる。例えばFASTリードはノーマルリードやシフトリードよりも期間tRが短く、ノーマルリード及びシフトリードは隣接ワードライン補償リードよりも期間tRが短く、隣接ワードライン補償リードはトラッキングリードよりも期間tRが短い。
その後、レディ・ビジー信号RBnがレディ状態Rdyを示すと、コマンド発行部102は、データ出力コマンドM20をコマンド処理部21へ出力する。データ出力コマンドM20には、カラムアドレス“C1”、“C2”及びロウアドレス“R1”、“R2”、“R3”を指定するアドレス部M21が含まれる。コマンド処理部21は、入力されたデータ出力コマンドM20に従ってセンスアンプ241及びデータラッチ242を制御することで、メモリコントローラ10へリードデータD1を出力する。
以上のように、本実施形態で、リード動作の実行前に、リード要求に基づいて指定されるページに対して各リード動作を実行した際の信頼性を推定し、この推定結果に基づいて、最初に実行するリード動作が選択される。このような構成により、本実施形態によれば、例えば、推定された信頼性が高い場合には、リード時間の短いリード動作(例えばFASTリード)を最初に実行し、推定された信頼性が低い場合には、信頼性の低いリード動作(例えばFASTリード)をスキップして信頼性の高いリード動作(例えばノーマルリードやリトライシフトリード等)を最初に実行することが可能となる。それにより、信頼性を低下させることなく、リード要求に対する実質的なレイテンシを小さくすることが可能なメモリシステム、その制御方法及びプログラムを実現することが可能となる。
また、たとえば、図13におけるステップS22〜S23が無く、どのようなページに対するリードであってもまずFASTリードを適用するように構成されていた場合、FBCが多いページに対しては、ほとんど全てのケースでステップS27の判断結果がNOとなり、ステップS25〜S26の処理を実行しても無駄となってしまう。これに対し、本実施形態では、推定された信頼性が低い場合には信頼性の低いリード動作(例えばFASTリード)をスキップして信頼性の高いリード動作を実行することが可能となるため、ステップS25〜S26の処理の分、リードレイテンシを小さくすることが可能となる。
さらに、たとえば、図13におけるステップS22〜S23及びS25〜S27が無く、どのようなページに対するリードであっても、FASTリードを適用せずにノーマルリードから適用するように構成されていた場合では、たとえFBCが少ないページであったとしても、リード時間(すなわち、データが読出し開始可能になるまでの時間)がノーマルリードのそれとなり、より小さいFASTリードのリード時間が適用されない。これに対し、本実施形態では、FBCが少ないページに対しては、FASTリードのリード時間を適用することが可能となるため、リードレイテンシを小さくすることが可能となる。
なお、上述では、それぞれのページに対してリード動作を実行したと仮定した場合に推定される信頼性に基づいて、リードシーケンスにおける最初に実行するリード動作を選択的に切り替える場合を例示したが、このような構成に限定されない。例えば、信頼性に基づいた判断に代えて、又は、信頼性に基づいた判断に加え、リード要求から特定される特性情報がある条件を満たしている場合には、リードシーケンスにおける最初に実行するリード動作を選択的に切り替えるように構成されてもよい。例えば「書込みモード」がQLCモードを示している場合には、リードシーケンスにおける最初に実行するリード動作を、トラッキングリード(図13のステップS37及びS55)とする、すなわち、FASTリードから隣接ワードライン補償リードまでをスキップすることも可能である。また、「書込みモード」がSLCモード又はMLCモードを示している場合には、リードシーケンスにおいてFASTリードをスキップせずに実行し、TLCモードを示している場合には、リードシーケンスにおいてFASTリードをスキップするように構成することも可能である。
さらに、「書込みモード」が2/3/2コーディングのTLCモードを示している場合において、「ページ種別」がLOWERページ又はUPPERページを示している場合には、リードシーケンスにおいてFASTリードをスキップせずに実行し、MIDDLEページを示している場合には、リードシーケンスにおいてFASTリードをスキップするように構成することも可能である。同様に、「書込みモード」が1/3/3コーディングのTLCモードを示している場合において、「ページ種別」がLOWERページを示している場合には、リードシーケンスにおいてFASTリードをスキップせずに実行し、MIDDLEページ又はUPPERページを示している場合には、リードシーケンスにおいてFASTリードをスキップするように構成することも可能である。
さらに、「書込み状態」が対象のブロックに対するデータの書き込みが完了していないこと、又は、リード対象のワードラインに隣接するワードライン(隣接ワードライン)にデータが書き込まれていないことを示している場合には、リードシーケンスにおける最初に実行するリード動作を、隣接ワードライン補償リード(図13のステップS34及びS54)とする、すなわち、FASTリードからリトライシフトリードまでをスキップすることも可能である。さらにまた、「温度」が予め設定しておいた閾値温度以下の場合には、リードシーケンスにおいてFASTリードをスキップするように構成することも可能である。
(第2の実施形態)
次に、第2の実施形態に係るメモリシステム、その制御方法及びプログラムについて、図面を参照して詳細に説明する。なお、以下の説明において、第1の実施形態と同様の構成及び動作については、それらを引用することで、重複する説明を省略する。
第1の実施形態では、リード動作を実行する際の信頼性を推定し、その推定結果に基づいてリード動作を選択する構成がメモリコントローラ10側に組み込まれている場合を例示した。これに対し、第2の実施形態では、これらの構成が不揮発性メモリ20内に組み込まれた場合を例示する。
図15は、本実施形態に係る不揮発性メモリの概略構成例を示すブロック図である。図15に示すように、本実施形態では、第1の実施形態における特性情報記憶部103、信頼性推定部104及びリード方式選択部106が、不揮発性メモリ20内のコマンド処理部421に実装された構成を備える。
図15に示す構成において、メモリコントローラ10のコマンド発行部102から不揮発性メモリ20のコマンド処理部421には、第1の実施形態と同様に、リード・コマンドが入力される。ただし、本実施形態では、図16に示すように、初回にコマンド発行部102からコマンド処理部421へ送られるリード・コマンドM30では、実行すべきリード動作を指定するプリフィックスが、実行すべきリード方式を不揮発性メモリ20内のコマンド処理部421において選択することを指示するプリフィックス“YY”となっている。コマンド処理部421は、コマンド発行部102からこのようなリード・コマンドが入力されると、特性情報記憶部103へ、リード・コマンドで指定された物理アドレスを入力する。なお、2回目以降にメモリコントローラ10内のコマンド発行部102から不揮発性メモリ20内のコマンド処理部421へ送られるリード・コマンドのプリフィックスは、たとえば第1の実施形態と同様に、実行すべきリード動作を指定するプリフィックスとなる。
物理アドレスの入力に対し、第1の実施形態と同様に、特性情報記憶部103は、入力された物理アドレスで指定されるページに関する特性情報を信頼性推定部104へ出力し、信頼性推定部104は、入力された特性情報の全て又は一部を使用して信頼性指標を推定して、推定した信頼性指標をリード方式選択部106へ出力する。なお、入力された物理アドレスで指定されるページに関する訂正能力情報は、例えば、メモリコントローラ10側で特定され、コマンド発行部102からコマンド処理部421へリード・コマンドと共に入力されてもよい。
そして、リード方式選択部106は、入力された信頼性指標(推定FBC)と訂正能力情報とのいずれか、若しくは、それらの組み合わせに基づいて、実行するリード動作を選択する。コマンド処理部421は、リード方式選択部106で選択されたリード動作に従って、駆動部22、センスアンプ241及びデータラッチ242を制御することで、リード方式選択部106で選択されたリード動作を実行する。
以上のように、1つのリード要求に対してコマンド発行部102からコマンド処理部421に1回以上発行されるリード・コマンドのうち、初回のリード・コマンドでは、初回のリード動作を選択する権限がコマンド処理部421に与えられる。したがって、コマンド処理部421は、初回のリード・コマンドに対して、リード方式選択部106で選択されたリード動作を実行する。ただし、1つのリード要求に対するリード・コマンドのうち、リトライ処理となる2回目以降のリード・コマンドでは、第1の実施形態と同様に、コマンド発行部102からコマンド処理部421へ、逐次、実行するリード動作を指示すリード・コマンドが発行される。
その後、リード動作により読み出されたリードデータは、メモリバス18を介してメモリコントローラ10のECC部13に転送されて復号される。この復号に成功した場合、復元されたデータがホストバス31を介してホスト装置30へ転送される。一方、復号に失敗した場合、以降、メモリコントローラ10のコマンド発行部102から不揮発性メモリ20のコマンド処理部421へは、第1の実施形態と同様に、予め設定されているリトライリードシーケンスに従って、リード動作の実行を指示するリード・コマンドが発行される。これに対し、コマンド処理部421は、指示されたリード動作に基づいて、駆動部22、センスアンプ241及びデータラッチ242を制御することで、目的のデータの読出しを実行する。
なお、本実施形態では、訂正能力情報をメモリコントローラ10側で管理する場合を例示したが、不揮発性メモリ20側で管理することも可能である。その場合、ECC部13は、書込み対象のデータを符号化すると、この符号化に使用した符号化方式又はその訂正能力を示す情報(訂正能力情報)と、この書込み対象データの格納位置(ページ位置)を示す物理アドレスとを、逐次、コマンド処理部421へ通知する。これにより、例えばコマンド処理部421内に設けた誤り訂正能力管理部において、各ページに格納されているデータに対してECC部13が適用した符号化方式又はその訂正能力を管理することが可能となる。
また、本実施形態において、温度センサ25で検出された温度を示す情報は、直接、コマンド処理部421内の特性情報記憶部103に格納されてもよい。
以上のように、本実施形態では、不揮発性メモリ20側で、リード動作の実行前に、リード要求に基づいて指定されるページに対して各リード動作を実行した際の信頼性が推定され、この推定結果に基づいて、実行するリード動作が選択される。このような構成により、本実施形態によれば、第1の実施形態と同様に、リード動作を実行したと仮定した場合に推定される信頼性に基づいて、リードシーケンスにおいて最初に実行するリード動作を選択的に切り替えることが可能となる。例えば、推定された信頼性が高い場合には、リード時間の短いリード動作(例えばFASTリード)を最初に実行し、推定された信頼性が低い場合には、信頼性の低いリード動作(例えばFASTリード)をスキップして信頼性の高いリード動作(例えばノーマルリードやリトライシフトリード等)を最初に実行することが可能となる。それにより、信頼性を低下させることなく、リード要求に対する実質的なレイテンシを小さくすることが可能なメモリシステム、その制御方法及びプログラムを実現することが可能となる。
その他の構成、動作及び効果は、上述した第1の実施形態と同様であってよいため、ここでは詳細な説明を省略する。
また、第2の実施形態では、プリフィックス“YY”を含むリード・コマンドM30が、1つのリード要求に対して1回以上発行されるリード・コマンドのうちの最初のリード・コマンドである場合を例示したが、これに限定されず、例えば2回目以降に発行されるリード・コマンドとすることも可能である。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…メモリシステム、10…メモリコントローラ、11…制御部、12…RAM、13…ECC部、14…バッファメモリ、15…ホストI/F、16…メモリI/F、17…内部バス、20…不揮発性メモリ、21,421…コマンド処理部、211…シーケンサ、212…コマンドレジスタ、213…アドレスレジスタ、22…駆動部、221…ドライバ回路、222…ロウデコーダ、23…メモリセルアレイ、24…カラムモジュール、241…センスアンプ、242…データラッチ、25…温度センサ、30…ホスト装置、31…ホストバス、101…リード要求受付部、102…コマンド発行部、103…特性情報記憶部、104…信頼性推定部、105…誤り訂正能力管理部、106…リード方式選択部。

Claims (15)

  1. 複数のリード動作のうちのいずれかを選択的に実行する不揮発性メモリと、
    前記不揮発性メモリに対して前記複数のリード動作のうちのいずれかを実行させるリード・コマンドを発行するメモリコントローラと、
    を備え、
    前記メモリコントローラは、
    リード要求を受け付け、
    前記リード要求がリード対象とする物理アドレスに対してリード動作を実行したと仮定した場合の信頼性に関する情報を推定し、
    前記推定された信頼性に関する情報に基づいて前記不揮発性メモリに前記リード要求に対して最初に実行させるリード動作を前記複数のリード動作のうちから選択し、
    前記リード要求の受け付けに応じて前記不揮発性メモリへ最初に発行する第1リード・コマンドにおいて、前記選択されたリード動作の実行を前記不揮発性メモリに指示する
    メモリシステム。
  2. 前記複数のリード動作は、データのリードに第1リード時間を要する第1リード動作と、データのリードに前記第1リード時間よりも長い第2リード時間を要する第2リード動作とを含み、
    前記メモリコントローラは、前記推定された信頼性に関する情報が第1閾値よりも高い信頼性を示していた場合、前記第1リード動作を前記不揮発性メモリに前記リード要求に対して最初に実行させるリード動作として選択し、前記信頼性に関する情報が前記第1閾値以下の信頼性を示していた場合、前記第2リード動作を前記不揮発性メモリに前記リード要求に対して最初に実行させるリード動作として選択する
    請求項1に記載のメモリシステム。
  3. 前記複数のリード動作は、データのリードに前記第2リード時間よりも長い第3リード時間を要する第3リード動作をさらに含み、
    前記メモリコントローラは、前記信頼性に関する情報が前記第1閾値よりも低い第2閾値以下の信頼性を示していた場合、前記第3リード動作を前記不揮発性メモリに前記リード要求に対して最初に実行させるリード動作として選択する
    請求項2に記載のメモリシステム。
  4. 前記メモリコントローラは、前記リード要求がリード対象とする前記物理アドレスに対して所定のリード動作を実行した場合に読み出されたデータに含まれると推定されるエラービットの数に対応する情報を前記信頼性に関する情報とする請求項1に記載のメモリシステム。
  5. 前記不揮発性メモリは、それぞれ1ビット又は多ビットの値を保持する複数のメモリセルを備え、
    前記複数のメモリセルそれぞれに保持された各ビットは、他の1以上のメモリセルの保持されたビットとともにページを構成し、
    前記メモリコントローラは、
    前記物理アドレスが指し示す前記不揮発性メモリ中の物理的位置を示す物理位置と、
    前記リード要求がリード対象とするリード対象データが格納されているページを特定するページ種別と、
    前記リード対象データを前記不揮発性メモリに書き込んだ際に使用した書込みモードと、
    前記物理アドレスから過去に読み出したデータに含まれていたエラービットの数と誤り訂正に成功した頻度と誤り訂正に失敗した頻度のうち少なくとも1つに関する情報であるエラー履歴と、
    前記物理アドレスで指定されるページに対してデータの書込みを実行してからの経過時間と、
    前記物理アドレスで指定されるページ又は当該ページを含むブロックに対して過去に実行された消去動作の累積回数である消去回数と、
    前記物理アドレスで指定されるページを含むブロックに対するデータの書き込みが完了しているか否かを示す書込み状態と、
    前記物理アドレスで指定されるページを含むブロックに含まれる全てのページに対して前記リード対象データを書き込んだ後に実行されたリード動作の回数である読出し回数と、
    前記不揮発性メモリの温度を示す温度と、
    前記物理アドレスで指定されるページに対して前記リード対象データを書き込んだ際の温度と前記リード要求に応じたリード動作を実行する際の温度との差を示す温度交差と、
    のうちのいずれか1つ以上を用いて、前記信頼性に関する情報を推定する
    請求項1に記載のメモリシステム。
  6. 前記物理位置と、前記ページ種別と、前記エラー履歴と、前記経過時間と、前記消去回数と、前記書込み状態と、前記読出し回数と、前記温度と、前記温度交差とのうちのいずれか1つ以上を記憶する特性情報記憶部をさらに備え、
    前記メモリコントローラは、前記物理位置と、前記ページ種別と、前記エラー履歴と、前記経過時間と、前記消去回数と、前記書込み状態と、前記読出し回数と、前記温度と、前記温度交差とのうちのいずれか1つ以上を前記特性情報記憶部から入力する
    請求項5に記載のメモリシステム。
  7. 前記不揮発性メモリは、前記所定の位置の温度を検出する温度センサを備え、
    前記特性情報記憶部は、前記温度センサから入力された情報を前記温度として格納する
    請求項6に記載のメモリシステム。
  8. 前記メモリコントローラは、
    複数の符号化方式のうちのいずれかを用いてデータを符号化し、符号化された前記データを当該データの符号化に用いられた符号化方式に対応する復号方式にて復号し、
    前記リード要求がリード対象とするデータが格納されているページに対して実行した符号化方式又は当該符号化方式の誤り訂正能力を管理し、
    前記推定された信頼性に加え、又は、前記推定された信頼性に代えて、前記リード要求がリード対象とするデータが格納されているページに対して管理している前記符号化方式又は当該符号化方式の誤り訂正能力に基づいて、前記不揮発性メモリに最初に実行させる前記リード動作を前記複数のリード動作のうちから選択する
    請求項1に記載のメモリシステム。
  9. 前記リード要求は、前記メモリシステムに接続されたホスト装置から入力されたリード要求である請求項1に記載のメモリシステム。
  10. 前記リード要求は、前記不揮発性メモリに対するガベージコレクションを実行する際に発生したリード要求と、前記不揮発性メモリに対するリフレッシュを実行する際に発生したリード要求とのうちのいずれかである請求項1に記載のメモリシステム。
  11. 前記メモリコントローラは、
    前記リード・コマンドの発行が前記リード要求に対して1回目の発行であるか否かを管理し、
    前記リード・コマンドに応じて実行された前記リード動作により前記不揮発性メモリから読み出されたデータに対してエラー訂正処理を実行し、
    前記復号処理に成功した場合、前記復号処理により復元されたデータを前記リード要求の発行元へ転送するとともに、前記リード・コマンドの発行が前記リード要求に対して1回目の発行であるか否かを示す情報をリセットする
    請求項1に記載のメモリシステム。
  12. 複数のリード動作のうちのいずれかを選択的に実行する不揮発性メモリと、
    前記不揮発性メモリに対して前記複数のリード動作のうちのいずれかを実行させるリード・コマンドを発行するメモリコントローラと、
    を備え、
    前記メモリコントローラは、
    リード要求を受け付け、
    前記リード要求に対して前記不揮発性メモリへ発行する第1リード・コマンドにおいて、実行するリード動作を選択するよう前記不揮発性メモリへ指示し、
    前記不揮発性メモリは、
    前記第1リード・コマンドがリード対象とする物理アドレスに対してリード動作を実行したと仮定した場合の信頼性に関する情報を推定し、
    前記推定された信頼性に関する情報に基づいて前記実行するリード動作を前記複数のリード動作のうちから選択し、
    前記選択されたリード動作を実行する
    メモリシステム。
  13. 不揮発性メモリに対して複数のリード動作のうちのいずれかを実行させるリード・コマンドを発行するメモリシステムの制御方法であって、
    前記メモリシステムに対するリード要求を受け付け、
    前記リード要求がリード対象とする物理アドレスに対してリード動作を実行したと仮定した場合の信頼性に関する情報を推定し、
    前記推定された信頼性に関する情報に基づいて前記不揮発性メモリに前記リード要求に対して最初に実行させるリード動作を前記複数のリード動作のうちから選択し、
    前記リード要求の受け付けに応じて前記不揮発性メモリへ最初に発行する第1リード・コマンドにおいて、前記選択されたリード動作の実行を前記不揮発性メモリに指示する
    メモリシステムの制御方法。
  14. 不揮発性メモリに対して複数のリード動作のうちのいずれかを実行させるリード・コマンドを発行するメモリシステムを機能させるためのプログラムであって、
    前記メモリシステムに対するリード要求の受け付けと、
    前記リード要求がリード対象とする物理アドレスに対してリード動作を実行したと仮定した場合の信頼性に関する情報の推定と、
    推定された前記信頼性に関する情報に基づいて前記不揮発性メモリに前記リード要求に対して最初に実行させるリード動作の前記複数のリード動作のうちからの選択と、
    前記リード要求の受け付けに応じて前記不揮発性メモリへ最初に発行する第1リード・コマンドにおいて、前記選択されたリード動作の実行を前記不揮発性メモリに指示することと、
    を前記メモリシステムに実行させるためのプログラム。
  15. 複数のリード動作のうちのいずれかを選択的に実行する不揮発性メモリと、
    前記不揮発性メモリに対して前記複数のリード動作のうちのいずれかを実行させるリード・コマンドを発行するメモリコントローラと、
    を備え、
    前記メモリコントローラは、
    リード要求を受け付け、
    前記リード要求から特定される特性情報が所定の条件を満たしているか否かに基づいて、前記不揮発性メモリに前記リード要求に対して最初に実行させるリード動作を前記複数のリード動作のうちから選択し、
    前記リード要求の受け付けに応じて前記不揮発性メモリへ最初に発行する第1リード・コマンドにおいて、前記選択されたリード動作の実行を前記不揮発性メモリに指示する
    メモリシステム。
JP2018055169A 2018-03-22 2018-03-22 メモリシステム、その制御方法及びプログラム Pending JP2019168853A (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2018055169A JP2019168853A (ja) 2018-03-22 2018-03-22 メモリシステム、その制御方法及びプログラム
US16/237,592 US10910073B2 (en) 2018-03-22 2018-12-31 Memory system, control method thereof, and program
US17/131,644 US11145374B2 (en) 2018-03-22 2020-12-22 Memory system, control method thereof, and program
US17/410,872 US11574688B2 (en) 2018-03-22 2021-08-24 Memory system, control method thereof, and program
US18/149,373 US11776638B2 (en) 2018-03-22 2023-01-03 Memory system, control method thereof, and program
US18/365,929 US20240021252A1 (en) 2018-03-22 2023-08-04 Memory system, control method thereof, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018055169A JP2019168853A (ja) 2018-03-22 2018-03-22 メモリシステム、その制御方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2019168853A true JP2019168853A (ja) 2019-10-03

Family

ID=67985636

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018055169A Pending JP2019168853A (ja) 2018-03-22 2018-03-22 メモリシステム、その制御方法及びプログラム

Country Status (2)

Country Link
US (5) US10910073B2 (ja)
JP (1) JP2019168853A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022104502A (ja) * 2020-12-28 2022-07-08 ウェスタン デジタル テクノロジーズ インコーポレーテッド メモリの物理的特性に基づくエラー訂正
US11526301B2 (en) 2019-03-11 2022-12-13 Kioxia Corporation Memory system and non-volatile memory control method

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020155167A (ja) * 2019-03-19 2020-09-24 キオクシア株式会社 不揮発性メモリ
TWI694456B (zh) * 2019-12-03 2020-05-21 華騰國際科技股份有限公司 反及閘型快閃記憶體控制系統及其方法
KR20220025558A (ko) * 2020-08-24 2022-03-03 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
US11354188B2 (en) * 2020-09-23 2022-06-07 SK Hynix Inc. Data processing system including host with reliability management of memory systems and method for the same
KR102519664B1 (ko) 2021-08-31 2023-04-10 삼성전자주식회사 스토리지 장치, 스토리지 컨트롤러 및 스토리지 컨트롤러의 동작 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5629391B2 (ja) * 2011-04-28 2014-11-19 株式会社日立製作所 半導体記憶装置及び半導体記憶装置の制御方法
KR101913291B1 (ko) 2011-09-09 2018-12-28 삼성전자주식회사 비휘발성 메모리 장치, 그 데이터 판독 방법 및 기록 매체
KR20130034522A (ko) 2011-09-28 2013-04-05 삼성전자주식회사 비휘발성 메모리 장치의 데이터 리드 방법, 및 이를 수행하는 장치
KR102028128B1 (ko) 2012-08-07 2019-10-02 삼성전자주식회사 불휘발성 랜덤 액세스 메모리 및 낸드 플래시 메모리를 포함하는 메모리 시스템의 동작 방법
US9025393B2 (en) 2013-03-25 2015-05-05 Seagate Technology Llc Method of optimizing solid state drive soft retry voltages
US9576671B2 (en) * 2014-11-20 2017-02-21 Western Digital Technologies, Inc. Calibrating optimal read levels

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11526301B2 (en) 2019-03-11 2022-12-13 Kioxia Corporation Memory system and non-volatile memory control method
JP2022104502A (ja) * 2020-12-28 2022-07-08 ウェスタン デジタル テクノロジーズ インコーポレーテッド メモリの物理的特性に基づくエラー訂正
JP7178455B2 (ja) 2020-12-28 2022-11-25 ウェスタン デジタル テクノロジーズ インコーポレーテッド メモリの物理的特性に基づくエラー訂正
US11601141B2 (en) 2020-12-28 2023-03-07 Western Digital Technologies, Inc. Error correction based on physical characteristics for memory

Also Published As

Publication number Publication date
US20230144171A1 (en) 2023-05-11
US20240021252A1 (en) 2024-01-18
US20210383877A1 (en) 2021-12-09
US11145374B2 (en) 2021-10-12
US10910073B2 (en) 2021-02-02
US11574688B2 (en) 2023-02-07
US20210110877A1 (en) 2021-04-15
US11776638B2 (en) 2023-10-03
US20190295665A1 (en) 2019-09-26

Similar Documents

Publication Publication Date Title
US11475962B2 (en) Memory system performing read operation with read voltage
US11574688B2 (en) Memory system, control method thereof, and program
CN107799149B (zh) 数据存储装置及其操作方法
US7881133B2 (en) Method of managing a flash memory and the flash memory
US9257187B2 (en) Data storing method, memory control circuit unit and memory storage apparatus
US8611150B2 (en) Flash memory device including flag cells and method of programming the same
CN106486163B (zh) 非易失性存储器件、包括其的数据储存设备及其操作方法
JP2010517168A (ja) Nandメモリのためのプログラミング管理データ
US11526301B2 (en) Memory system and non-volatile memory control method
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
JP7353889B2 (ja) メモリシステムおよび方法
CN113076218B (zh) Nvm芯片读数据错误快速处理方法及其控制器
US11662911B2 (en) Memory system and operating method thereof
US11817170B2 (en) Storage controller determining error count, method of operating the same, and method of operating storage device including the same
CN111798913A (zh) 存储器系统、存储器控制器及其操作方法
US11250909B2 (en) Nonvolatile memory and memory system
US11934701B2 (en) Storage controller determining distribution type, method of operating the same, and method of operating storage device including the same
KR102509549B1 (ko) 읽기 데이터 및 산포 정보를 수신하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법
US20240046993A1 (en) Non-volatile memory device determining read reclaim, method of operating the same, and method of operating storage device including the same
KR20090110648A (ko) 플래시 메모리로 데이터를 기록하는 방법과 플래시메모리에 기록된 데이터를 읽는 방법 및 플래시 메모리시스템
CN112634972A (zh) 电压识别方法、存储器控制电路单元以及存储器储存装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20180905