CN113138873A - 处置存储器***中的数据错误的设备和方法 - Google Patents

处置存储器***中的数据错误的设备和方法 Download PDF

Info

Publication number
CN113138873A
CN113138873A CN202010807820.7A CN202010807820A CN113138873A CN 113138873 A CN113138873 A CN 113138873A CN 202010807820 A CN202010807820 A CN 202010807820A CN 113138873 A CN113138873 A CN 113138873A
Authority
CN
China
Prior art keywords
data
read voltage
controller
read
memory
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.)
Withdrawn
Application number
CN202010807820.7A
Other languages
English (en)
Inventor
李载允
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.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
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 SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN113138873A publication Critical patent/CN113138873A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • 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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1489Generic software techniques for error detection or fault masking through recovery blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • G06F11/3062Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/30Power supply circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3738Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with judging correct decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • H03M13/3933Decoding in probability domain
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/6325Error control coding in combination with demodulation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/1154Low-density parity-check convolutional codes [LDPC-CC]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/1157Low-density generator matrices [LDGM]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/296Particular turbo code structure
    • H03M13/2963Turbo-block codes, i.e. turbo codes based on block codes, e.g. turbo decoding of product codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本公开涉及一种存储器***。该存储器***包括存储器装置和控制器。存储器装置被配置为向多个非易失性存储器单元供应读取电压,并且传送从多个非易失性存储器单元获得的值。控制器经由至少一个通道联接到存储器装置。当对多个非易失性存储器单元的读取操作失败时,控制器基于根据该值而计算的单元差分概率(CDP)来调整读取电压的电平。

Description

处置存储器***中的数据错误的设备和方法
相关申请的交叉引用
本申请要求于2020年1月17日提交的申请号为10-2020-0006490的韩国专利申请的优先权,其通过引用整体并入本文。
技术领域
本公开的实施例涉及一种存储器***,且更特别地,涉及一种处置存储器***中发生的数据错误的设备和方法。
背景技术
近来,计算环境范例已经转变成能够几乎随时随地访问计算机***的普适计算。因此,诸如移动电话、数码相机、笔记本电脑等的便携式电子装置的使用正在迅速增长。这种便携式电子装置通常使用或包括使用或嵌入至少一个存储器装置的存储器***,即数据存储装置。数据存储装置可用作便携式电子装置的主存储装置或辅助存储装置。
与硬盘不同,使用非易失性半导体存储器装置的数据存储装置的优点在于:因其不具有机械驱动部件(例如,机械臂)而具有优异的稳定性和耐久性,并且具有高数据访问速度和低功耗。在具有这些优点的存储器***的环境中,示例性数据存储装置包括USB(通用串行总线)存储器装置、具有各种接口的存储卡、固态驱动器(SSD)等。
发明内容
本公开的实施例可提供一种数据处理***和一种操作数据处理***的方法,该数据处理***包括诸如存储器***和主机的组件和资源,并且能够基于组件和资源的使用来动态地分配用于组件之间的数据通信的多个数据路径。
本公开的实施例可提供一种当在存储器***中执行的读取操作失败时用于校正、纠正或恢复错误的方法和设备。为了校正、纠正或恢复错误,存储器***可基于从存储器***中的非易失性存储器装置获得的信息,选择性地或适应性地使用用于校正、纠正或恢复错误的电路、算法和程序。基于从非易失性存储器装置获得的信息而执行的错误恢复可避免当顺序地或以规定顺序来使用用于校正和恢复错误的电路、算法和程序时发生的不必要的资源消耗,使存储器***能够提高错误校正和恢复的效率。进一步地,在本公开的实施例中,提高关于错误校正和恢复的效率可提高存储器***的性能、操作可靠性或操作稳定性。
在实施例中,一种存储器***可包括:存储器装置,被配置为向多个非易失性存储器单元供应读取电压并且输出从多个非易失性存储器单元获得的值;以及控制器,被配置为经由至少一个通道联接到存储器装置,当对多个非易失性存储器单元的读取操作失败时,基于根据该值而计算的单元差分概率(CDP)来调整读取电压的电平。
作为示例而非限制,控制器可被配置为当单元差分概率(CDP)小于第一参考时,执行硬判决解码以恢复多个非易失性存储器单元中存储的数据,并且基于硬判决解码来调整读取电压的电平。
控制器可被配置为当单元差分概率(CDP)等于或大于第一参考时,执行软判决解码以恢复多个非易失性存储器单元中存储的数据。
控制器可被配置为当在调整读取电压的电平之后从存储器装置输出其它值时,对其它值执行软判决解码,以恢复多个非易失性存储器单元中存储的数据。
控制器可被配置为当不满足校验节点的计数等于或小于第二参考时,将读取电压的电平增加或降低预设电平。
控制器可被配置为当不满足校验节点的计数大于第二参考时,基于具有规定电平的读取电压来执行软判决解码或检查第一参考的合适性。
单元差分概率(CDP)可指示在解码该值之前的基于该值的电压分布是否落入由关于每个非易失性存储器单元的阈值电压的最大/最小电平的预设比率确定的范围内。
控制器可被配置为存储关于在搜索读取电压之后执行的扫描操作的历史记录,以及基于历史记录将单元差分概率(CDP)与第一参考进行比较。控制器可被配置为当不存在历史记录时对该值执行软判决解码。历史记录可排除通过读取重试操作来调整读取电压的情况。
在另一实施例中,一种操作存储器***的方法可包括:向多个非易失性存储器单元供应读取电压,以执行关于多个非易失性存储器单元中存储的值的读取操作;并且当读取操作失败时,基于从多个非易失性存储器单元读取的值来计算单元差分概率;并且基于该单元差分概率来调整读取电压。
调整读取电压可包括:当单元差分概率(CDP)小于第一参考时,执行硬判决解码以恢复多个非易失性存储器单元中存储的数据;并且基于硬判决解码来调整读取电压的电平。
调整读取电压可进一步包括当单元差分概率(CDP)等于或大于第一参考时,执行软判决解码,以恢复多个非易失性存储器单元中存储的数据。
调整读取电压可进一步包括当在调整读取电压的电平之后从存储器装置输出其它值时,对其它值执行软判决解码,以恢复多个非易失性存储器单元中存储的数据。
该方法可进一步包括当不满足校验节点的计数等于或小于第二参考时,将读取电压的电平增加或降低预设电平。
该方法可进一步包括当不满足校验节点的计数大于第二参考时,基于具有规定电平的读取电压执行软判决解码或检查第一参考的合适性。
单元差分概率(CDP)可指示在解码该值之前的基于该值的电压分布是否落入由关于每个非易失性存储器单元的阈值电压的最大/最小电平的预设比率确定的范围内。
该方法可进一步包括存储关于在搜索读取电压之后执行的扫描操作的历史记录;并且基于该历史记录将单元差分概率(CDP)与第一参考进行比较。该方法可进一步包括当不存在历史记录时对该值执行软判决解码。在历史记录中,可排除通过读取重试操作来调整读取电压的情况。
附图说明
本文中的描述参照附图进行,其中在附图中相同的附图标记始终指代相同的部件。
图1示出根据本公开的实施例的存储器***。
图2示出根据本公开的实施例的数据处理***。
图3示出根据本公开的实施例的存储器***。
图4示出关于供应到非易失性存储器单元的读取电压的分布。
图5示出非易失性存储器单元的单元差分概率(CDP)。
图6示出根据本公开的实施例的操作存储器***的方法。
图7示出基于CDP的操作存储器***的方法。
图8示出操作存储器***以调整读取电压的方法的第一示例。
图9示出操作存储器***以恢复错误的方法。
图10示出操作存储器***以调整读取电压的方法的第二示例。
本公开包括对“一个实施例”或“另一实施例”的参考。短语“在一个实施例中”或“在实施例中”的出现不一定指相同实施例。特定特征、结构或特性可以以与本公开一致的任何适当方式组合。
具体实施方式
以下将参照附图描述本公开的各个实施例。然而,本公开的元件和特征可不同地配置或布置以形成其他实施例,其他实施例可以是任何所公开实施例的变型。
在本公开中,术语“包括”、“包括有”、“包含”和“包含有”是开放式的。如在所附权利要求中所使用的,这些术语指定存在所陈述元件而不排除存在或添加一个或多个其他元件。权利要求中的术语并不排除设备包括附加组件(例如,接口单元、电路等)。
在本公开中,可将各种单元、电路或其他组件描述为或宣称为“配置为”执行一个或多个任务。在这种上下文中,“配置为”用于通过指示块/单元/电路/组件包括在操作期间执行一个或多个任务的结构(例如,电路)来表示结构。因此,即使指定的块/单元/电路/组件当前不操作(例如,未接通),该块/单元/电路/组件也可被配置为执行任务。与术语“配置为”一起使用的块/单元/电路/组件包括硬件,例如电路、存储可运行以实施操作的编程指令的存储器等。记载块/单元/电路/组件被“配置为”执行一个或多个任务显然旨在该块/单元/电路/组件的清楚性。此外,“配置为”可包括由软件和/或固件(例如,FPGA或执行软件的通用处理器)操作的通用结构(例如,通用电路),以能够执行所讨论的(多个)任务的方式来操作。“配置为”还可包括调整制造工艺(例如,半导体制造设施)以制造适于实施或执行一个或多个任务的装置(例如,集成电路)。
在本公开中,术语“电路”是指以下所有内容:(a)仅硬件电路的实施(诸如仅以模拟和/或数字电路的实施)和(b)电路和软件(和/或固件)的组合,诸如(如适用于):(i)(多个)处理器的组合或(ii)(多个)处理器/软件(包括一起工作以使诸如移动电话或服务器的设备执行各种功能的(多个)数字信号处理器、软件和(多个)存储器)的部分,以及(c)需要软件或固件来操作的电路,诸如微处理器或微处理器的一部分,即使软件或固件在物理上不存在。“电路”的这种定义适用于在本申请中、包括在任意权利要求中该术语的所有使用。作为另一示例,如在本申请中所使用的,术语“电路”还涵盖仅一个处理器(或多个处理器)或处理器的一部分以及其(它们)附带的软件和/或固件的实施方案。例如,并且如果适用于特定的权利要求元件,术语“电路”还涵盖用于存储装置的集成电路。
如本文所使用的,这些术语“第一”、“第二”、“第三”等用作所在的名词前的标签,并不意为任意类型的排序(例如,空间、时间、逻辑等)。术语“第一”和“第二”不一定意为第一值必须写在第二值之前。进一步地,尽管本文中可使用术语来识别各种元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与另外具有相同或相似名称的另一元件区分开。例如,可将第一电路可与第二电路区分开。
进一步地,术语“基于”用于描述影响确定结果的一个或多个因素。该术语并不排除可能影响确定结果的其他因素。即,确定结果可仅仅基于这些因素,或者至少部分地基于这些因素。考虑短语“基于B确定A”。虽然在这种情况下,B是影响A的确定结果的因素,但这种短语并不排除A的确定结果也基于C。在其他示例中,可仅基于B来确定A。
下文将参照附图来描述本公开的实施例,其中相同的附图标记表示相同的元件。
图1示出根据本公开的实施例的存储器***。
参照图1,存储器***110可包括存储器装置150和控制器130。存储器***110中的存储器装置150和控制器130可被认为是物理上彼此分离的组件或元件。存储器装置150和控制器130可经由至少一个数据路径连接。例如,数据路径可包括通道和/或通路。
根据实施例,存储器装置150和控制器130可以是功能上分开的组件或元件。进一步地,根据实施例,存储器装置150和控制器130可利用单个芯片或多个芯片来实施。
存储器装置150可包括多个存储块60。存储块60可被理解为通过单个擦除操作数据而一起移除数据的一组非易失性存储器单元。尽管未示出,但是存储块60可包括页面,页面为在单个编程操作期间一起存储数据或在单个读取操作期间一起输出数据的一组非易失性存储器单元。例如,一个存储块60可包括多个页面。
尽管图1中未示出,但是存储器装置150可包括多个存储器平面或多个存储器管芯。根据实施例,存储器平面可被认为是包括至少一个存储块60、驱动电路以及缓冲器的逻辑分区或物理分区,其中驱动电路能够控制包括多个非易失性存储器单元的阵列,缓冲器可临时存储输入到非易失性存储器单元或从非易失性存储器单元输出的数据。
此外,根据实施例,存储器管芯可包括至少一个存储器平面。存储器管芯可被理解为在物理上可区分的衬底上实施的一组组件。每个存储器管芯可通过数据路径连接到控制器130。每个存储器管芯可包括与控制器130交换数据条和信号的接口。
根据实施例,存储器装置150可包括至少一个存储块60、至少一个存储器平面或至少一个存储器管芯。根据存储器***110的性能,图1所示的存储器装置150的内部配置可不同。本公开的实施例不限于图1所示的内部配置。
参照图1,存储器装置150可包括能够向存储块60供应至少一个电压的电压供应电路70。电压供应电路70可将读取电压Vrd、编程电压Vprog、通过电压Vpass或擦除电压Vers供应到存储块60中包括的非易失性存储器单元中。例如,在用于读取存储块60中包括的非易失性存储器单元中存储的数据的读取操作期间,电压供应电路70可将读取电压Vrd供应到所选择的非易失性存储器单元中。在用于将数据存储在存储块60中包括的非易失性存储器单元中的编程操作期间,电压供应电路70可将编程电压Vprog供应到所选择的非易失性存储器单元中。此外,在对所选择的非易失性存储器单元执行的读取操作或编程操作期间,电压供应电路70可将通过电压Vpass供应到未选择的非易失性存储器单元。在用于擦除存储块60中包括的非易失性存储器单元中存储的数据的擦除操作期间,电压供应电路70可将擦除电压Vers供应到存储块60中。
在将数据条编程在存储器装置150中包括的非易失性存储器单元中之后,控制器130可读取该数据条。在由控制器130读取的该数据条中,当不执行错误校正时,可能会偶尔地检测到错误(至少1位错误)。在存储器装置150的初始使用阶段(例如,非常轻微损耗的存储器装置),可能难以找到所读取的数据条中的错误。随着写入和擦除循环(P/E循环)的数量增加(例如,非易失性存储器单元的损耗增加),错误的数量可能增加。除了存储器装置150的损耗之外,根据数据保留时间也可能发生错误,其中数据保留时间是将数据条安全地存储或保持在存储器装置150中的非易失性存储器单元中的时间段。通常,数据保留时间可用作操作存储器装置150的特性参数。由于非易失性存储器单元的阈值电压随时间改变的特性,当非易失性存储器单元中存储的数据条不能被区分或清楚地识别时,可能发生错误。
当控制器130执行读取操作时,将存储器装置150中包括的多个非易失性存储器单元中存储的数据条传送到控制器130。例如,控制器130中的输入/输出控制器192可执行读取操作。输入/输出控制器192可通过收发器198向存储器装置150传输读取命令。收发器198可将读取命令传递到存储器装置150并且接收从存储器装置150输出的数据条。收发器198可将从存储器装置150传送的数据条存储在存储器144中。
输入/输出控制器192允许解码电路196响应于读取命令来检查、纠正或校正在存储器144中存储的数据条中检测到的错误。例如,解码电路196可通过错误校正码(ECC)来纠正或校正存储器144中存储的数据条中包括的错误。尽管解码电路196已经使用错误校正码(ECC)执行了错误校正操作,但是存储器144中存储的数据条中的错误可能没有被校正。当与读取命令相对应的数据条中包括的错误未被校正(该数据条可能无法恢复)时,输入/输出控制器192可确定与读取命令相对应的读取操作可能失败。
如上所述,可能由于非易失性存储器单元中的阈值电压的改变而导致了从存储器装置150输出的数据条中包括的错误。当响应于多个非易失性存储器单元的改变的阈值电压分布,来改变用于读取存储器装置150中的多个非易失性存储器单元中存储的数据而供应的读取电压Vrd时,可减少或消除数据条中的错误。当响应于读取命令而从存储器装置150输出的数据条中包括的错误减少时,解码电路196可容易地纠正或校正数据中包括的错误。
当输入/输出控制器192确定读取操作失败时,电压调整器194可计算单元差分概率(Cell Difference Probability,CDP)。在本文中,单元差分概率(CDP)可示出基于在被解码电路196解码之前从存储器装置150中的多个非易失性存储器单元输出和传输的数据的多个非易失性存储器单元的阈值电压分布。例如,单元差分概率(CDP)可指示根据当前偏置电压的“1”的数量与根据经优化边界的偏置电压的“1”的数量的比率。下面将参照图4详细描述单元差分概率(CDP)。
根据实施例,为了计算单元差分概率(CDP),输入/输出控制器192可通过收发器198向存储器装置150传输命令以扫描非易失性存储器单元中存储的数据,以便向非易失性存储器单元供应具有各种电平的读取电压Vrd。存储器装置150可响应于扫描命令,将对应于非易失性存储器单元的阈值电压分布的数据输出到收发器198。将通过收发器198接收的数据存储在存储器144中。电压调整器194可基于存储器144中存储的数据来计算单元差分概率(CDP),并且响应于单元差分概率(CDP)来调整或确定读取电压(Vrd)的电平。进一步地,电压调整器194可选择或确定由解码电路196执行的、针对对应于命令读取的数据的错误校正操作。
根据实施例,基于通过扫描存储器装置150中的多个非易失性存储器单元而获得的数据,控制器130可计算单元差分概率(CDP),并且基于单元差分概率(CDP)来选择用于校正和恢复对应于读取命令而输出的数据中包括的错误的程序或算法。例如,可基于单元差分概率CDP来估计或确定用于调整读取电压Vrd的方向(例如,增加或降低)和幅度(例如,改变量)。另外,在对响应于读取命令而输出的数据执行硬判决解码之后,控制器130可检查不满足校验节点的数量。例如,响应于不满足校验节点的数量,控制器130可执行硬判决解码或软判决解码以校正响应于读取命令而输出的数据中包括的错误。通过这些处理,当读取操作失败时,根据本公开的实施例的存储器***110可提供能够高效地校正、纠正或恢复错误的改进方法和/或改进设备。
在下文中,将参照图2和图3详细描述由存储器***110执行的一些操作。
参照图2,描述了根据本公开的实施例的数据处理***100。参照图2,数据处理***100可包括与存储器***110接合或互锁的主机102。
例如,主机102可包括诸如移动电话、MP3播放器和膝上型计算机的便携式电子装置,或者诸如台式计算机、游戏机、电视(TV)、投影仪等的非便携式电子装置。
主机102还包括至少一个操作***(OS),该OS通常可管理和控制在主机102中执行的功能和操作。OS可提供与存储器***110接合的主机102与需要和使用存储器***110的用户之间的互操作性。OS可支持与用户请求相对应的功能和操作。作为示例而非限制,根据主机102的移动性,OS可分为通用操作***和移动操作***。根据***需求或用户环境,通用操作***可分为个人操作***和企业操作***。但企业操作***可专门用于确保和支持高性能计算。移动操作***可用于支持移动性的服务或功能(例如,省电功能)。主机102可包括多个操作***。主机102可运行与存储器***110互锁的、与用户的请求相对应的多个操作***。主机102可将与用户的请求相对应的多个命令传输到存储器***110,从而在存储器***110内执行与命令相对应的操作。
存储器***110中的控制器130可响应于从主机102输入的请求或命令来控制存储器装置150。例如,控制器130可执行读取操作来向主机102提供从存储器装置150读取的数据条,并且执行写入操作(或编程操作)来将从主机102输入的数据条存储在存储器装置150中。为了执行数据输入/输出(I/O)操作,控制器130可控制和管理用于数据读取、数据编程、数据擦除等的内部操作。
根据实施例,控制器130可包括主机接口132、处理器134、错误校正电路138、电源管理单元(PMU)140、存储器接口142和存储器144。图2中所示的控制器130中包括的组件可根据关于存储器***110的实施方案、操作性能等而变化。例如,根据主机接口的协议,存储器***110可用可与主机102电联接的各种类型的存储装置中的任意一种来实施。合适的存储装置的非限制性示例包括固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)、微型MMC、安全数字卡(SD)、迷你SD、微型SD、通用串行总线(USB)存储装置、通用闪存(UFS)装置、紧凑式闪存(CF)卡、智能媒体(SM)卡、记忆棒等。基于存储器***110的实施方案可添加或省略控制器130中的组件。
主机102和存储器***110可包括控制器或用于根据预定协议发送和接收信号、数据条等的接口。例如,存储器***110中的主机接口132可包括能够向主机102传输信号、数据条等或接收从主机102输入的信号、数据条等的设备。
控制器130中包括的主机接口132可接收从主机102输入的信号、命令(或请求)或数据条。即,主机102和存储器***110可使用预定协议来在彼此之间传输和接收数据条。主机102和存储器***110支持的用于发送和接收数据条的协议或接口的示例可包括通用串行总线(USB)、多媒体卡(MMC)、并行高级技术附件(PATA)、小型计算机***接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、高速***组件互连(PCIE)、串列SCSI(SAS)、串行高级技术附件(SATA)、移动工业处理器接口(MIPI)等。根据实施例,主机接口132是一种用于与主机102交换数据条的层,并且由被称为主机接口层(HIL)的固件来实施或驱动。
用作传输和接收数据条的接口中的一个的电子集成驱动器(IDE)或高级技术附件(ATA)可使用电缆,该电缆包括并行连接以支持主机102和存储器***110之间的数据传输和接收的40条布线。当多个存储器***110连接到单个主机102时,多个存储器***110可通过使用多个存储器***110所连接到的位置或指拨开关(dip switch)而被划分为主存储器***和从存储器***。被设置为主存储器***的存储器***110可用作主存储器装置。IDE(ATA)已经发展为Fast-ATA、ATAPI和增强型IDE(EIDE)。
串行高级技术附件(SATA)是一种与由电子集成驱动器(IDE)装置所使用的并行数据通信接口的各种ATA标准兼容的串行数据通信接口。IDE接口中的40条布线可减少到SATA接口中的6条布线。例如,用于IDE的40个并行信号可转变为用于SATA的、待在彼此之间传输的6个串行信号。SATA由于其较快的数据传输和接收率以及在用于数据传输和接收的主机102中的较少资源消耗而被广泛使用。SATA可支持多达30个外部装置连接到主机102中包括的单个收发器。此外,SATA可支持热插拔,该热插拔允许即使在主机102和另一装置之间的数据通信正在运行的情况下也,也可将外部装置附接至主机102或者将外部装置与主机102分离。因此,存储器***110可作为附加装置来连接或断开,就像通用串行总线(USB)支持的装置一样,即使在主机102通电时也是如此。例如,在具有eSATA端口的主机102中,存储器***110可像外部硬盘一样自由分离。
小型计算机***接口(SCSI)是一种用于计算机、服务器和/或其他***装置之间的连接的串行数据通信接口。与诸如IDE和SATA等其他接口相比,SCSI可提供较高的传输速度。在SCSI中,主机102和至少一个***装置(例如,存储器***110)串联连接,但是主机102和每个***装置之间的数据传输和接收可通过并行数据通信来执行。在SCSI中,很容易将诸如存储器***110的装置与主机102连接或断开。SCSI可支持将15个其他装置连接到主机102中包括的单个收发器。
串列SCSI(SAS)可被理解为SCSI的串行数据通信版本。在SAS中,不仅主机102和多个***装置串联连接,而且可以以串行数据通信方案来执行主机102和每个***装置之间的数据传输和接收。SAS可通过串行电缆而不是并行电缆来支持主机102和***装置之间的连接,以便可使用SAS容易地管理设备、增强或提高操作可靠性和通信性能。SAS可支持将八个外部装置连接到主机102中包括的单个收发器。
高速非易失性存储器(NVMe)是一种至少基于高速***组件互连(PCIe)的接口,并且被设计用于增加配备有非易失性存储器***110的主机102、服务器、计算装置等的性能和设计灵活性。在此,PCIe可使用插槽或专用电缆来连接诸如计算装置的主机102和诸如***装置的存储器***110。例如,PCIe可使用多个引脚(例如,18个引脚、32个引脚、49个引脚、82个引脚等)和至少一条布线(例如x1、x4、x8、x16等)来实现每秒数百MB以上的高速数据通信(例如,250MB/s、500MB/s、984.6250MB/s、1969MB/s等)。根据实施例,PCIe方案可实现每秒数十到数百千兆位的带宽。使用NVMe的***可最大限度地利用诸如SSD的非易失性存储器***110的操作速度,其中非易失性存储器***110的操作速度高于硬盘的操作速度。
根据实施例,主机102和存储器***110可通过通用串行总线(USB)连接。通用串行总线(USB)是一种可扩展的、可热插拔式即插即用串行接口,能够在主机102和诸如键盘、鼠标、操纵杆、打印机、扫描仪、存储装置、调制解调器、摄像机等的***装置之间提供经济高效的标准连接。诸如存储器***110的多个***装置可联接到主机102中包括的单个收发器。
参照图2,错误校正电路138可校正待在存储器装置150中处理(例如,从存储器装置150中输出)的数据的错误位,错误校正电路138可包括错误校正码(ECC)编码器和ECC解码器。在此,ECC编码器可对待被编程在存储器装置150中的数据执行错误校正编码,以生成添加奇偶校验位的经编码数据,并将经编码数据存储在存储器装置150中。当控制器130读取存储器装置150中存储的数据时,ECC解码器可检测并校正从存储器装置150读取的数据中包含的错误。换言之,在对从存储器装置150读取的数据执行错误校正解码之后,错误校正电路138可确定错误校正解码是否已成功并输出指令信号(例如,错误校正成功信号或错误校正失败信号)。错误校正电路138可使用在ECC编码进程期间生成的奇偶校验位来校正读取数据中的错误位。当错误位的数量大于或等于可校正错误位的阈值数量时,错误校正电路138可不校正错误位,而是可输出指示校正错误位失败的错误校正失败信号。
根据实施例,错误校正电路138可基于诸如以下的编码调制来执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、Turbo码、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归***码(RSC)、网格编码调制(TCM)、分组编码调制(BCM)等。错误校正电路138可包括用于基于上述编码中的至少一种来执行错误校正操作的所有电路、模块、***和/或装置。
例如,ECC解码器可对从存储器装置150传输的数据执行硬判决解码或软判决解码。在本文中,硬判决解码可被理解为针对错误校正而被广泛分类的两种方法之一。硬判决解码可包括通过从存储器装置150中的非易失性存储器单元读取数字数据“0”或“1”来校正错误的操作。因为硬判决解码处置二进制逻辑信号,所以电路或算法的设计或配置可较为简单,并且处理速度可比软判决解码更快。
同时,与硬判决解码区分开的软判决解码可将存储器装置150中的非易失性存储器单元的阈值电压量化为两个或更多个量化值(例如,多位数据、近似值、模拟值等),以基于该两个或更多个量化值来校正错误。控制器130可从存储器装置150中的多个非易失性存储器单元接收两个或更多个字母或量化值,然后基于通过将量化值特征化为诸如条件概率或似然性的信息组合而生成的信息来执行解码。
根据实施例,在针对软判决解码而设计的方法之中,ECC解码器可使用低密度奇偶校验和生成器矩阵(LDPC-GM)码。此处,低密度奇偶校验(LDPC)码使用可根据可靠性以若干位从存储器装置150读取数据值的算法,而不是像硬判决解码那样简单地读取数据1或0,并且通过消息交换来迭代地重复以提高该值的可靠性,然后这些值最终被确定为数据1或0。例如,使用LDPC码的解码算法可被理解为概率解码。在硬判决解码中,从非易失性存储器单元输出的值被编码为0或1。与硬判决解码相比,软判决解码可基于随机信息来确定非易失性存储器单元中存储的值。对于存储器装置150中可能发生的、可被认为是错误的位翻转,软判决解码可提供提高的错误校正和恢复数据的概率,并且提供经校正数据的可靠性和稳定性。LDPC-GM码可具有内部LDGM码能够与高速LDPC码串联连接的方案。
根据实施例,在针对软判决解码而设计的方法之中,ECC解码器可使用低密度奇偶校验常规卷积码(LDPC-CC)。此处,基于可变块长度和移位寄存器,LDPC-CC码可具有使用线性时间编码和管线解码的方案。
根据实施例,在针对软判决解码而设计的方法中,ECC解码器可使用对数似然比Turbo码(LLR-TC)。此处,对数似然比(LLR)可被计算为采样值与理想值之间距离的非线性函数。此外,Turbo码(TC)可包括二维或三维的简码(例如,汉明(Hamming)码),并且在行方向和列方向上重复解码以提高值的可靠性。
电源管理单元(PMU)140可控制在控制器130中提供的电力。PMU 140可监测供应到存储器***110的电力(例如,供应到控制器130的电压),并向控制器130中包括的组件提供电力。当供应到存储器***110的电力不稳定时,PMU 140不仅可检测通电或断电,而且还可生成触发信号,使得存储器***110能够紧急地备份当前状态。根据实施例,PMU 140可包括能够累积可在紧急情况下使用的电力的装置或组件。
存储器接口142可用作处置在控制器130和存储器装置150之间传送的命令和数据的接口,以允许控制器130响应于从主机102输入的命令或请求来控制存储器装置150。在存储器装置150是闪速存储器的情况下,在处理器134的控制下,存储器接口142可生成用于存储器装置150的控制信号,并且可处理输入到存储器装置150或从存储器装置150输出的数据。例如,当存储器装置150包括NAND闪速存储器时,存储器接口142包括NAND闪存控制器(NFC)。存储器接口142可提供用于处置控制器130和存储器装置150之间的命令和数据的接口。根据实施例,存储器接口142可通过作为用于与存储器装置150交换数据的组件、被称为闪存接口层(FIL)的固件来实施或由其驱动。
根据实施例,存储器接口142可支持开放式NAND闪速存储器接口(ONFi)、Toggle模式等以用于与存储器装置150进行数据输入/输出。例如,ONFi可使用数据路径(例如,通道、通路等),该数据路径包括能够支持以8位或16位数据为单位的双向传输和接收的至少一条信号线。控制器130和存储器装置150之间的数据通信可通过关于异步单倍数据速率(SDR)、同步双倍数据速率(DDR)和Toggle双倍数据速率(DDR)的至少一种接口来实现。
存储器144可以是存储器***110或控制器130中的一种工作存储器,同时存储由于存储器***110和控制器130中进行的操作而发生或传递的临时数据或事务数据。例如,在响应于来自主机102的请求而将从存储器装置150输出的读取数据条输出到主机102之前,存储器144可以临时存储该读取数据条。另外,在将从主机102输入的写入数据条编程到存储器装置150之前,控制器130可将该写入数据条临时存储在存储器144中。当控制器130控制存储器装置150的诸如数据读取、数据写入、数据编程、数据擦除等操作时,可以将在存储器***110的控制器130和存储器装置150之间传输或生成的数据条存储在存储器144中。除了读取数据条或写入数据条之外,存储器144还可存储用于执行在主机102和存储器装置150之间输入或输出数据条的操作所需的信息(例如,映射数据、读取请求、编程请求等)。根据实施例,存储器144可包括命令队列、程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。
在实施例中,存储器144可被实施为易失性存储器。例如,存储器144可用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或两者来实施。例如,尽管图2示出存储器144设置在控制器130内,但实施例不限于此。存储器144可位于控制器130内部或外部。例如,存储器144可由具有在存储器144和控制器130之间传送数据和/或信号的存储器接口的外部易失性存储器来实现。
处理器134可控制存储器***110的全部操作。例如,处理器134可响应于从主机102输入的写入请求或读取请求来控制存储器装置150的编程操作或读取操作。根据实施例,处理器134可以执行固件以控制存储器***110中的编程操作或读取操作。在本文中,固件可被称为闪存转换层(FTL)。下文将参照图3详细描述FTL的示例。根据实施例,处理器134可被实施为微处理器或中央处理单元(CPU)。
根据实施例,存储器***110可利用至少一个多核处理器来实施。该多核处理器是一种集成了两个或更多个内核的电路或芯片,其中两个或更多个内核被认为是不同的处理区域。例如,当多核处理器中的多个内核独立地驱动或运行多个闪存转换层(FTL)时,可提高存储器***110的数据输入/输出速度(或性能)。根据实施例,可通过多核处理器中的不同内核来独立地执行存储器***110中的数据输入/输出(I/O)操作。
控制器130中的处理器134可执行与从主机102输入的请求或命令相对应的操作。进一步地,存储器***110可独立于从诸如主机102的外部装置输入的命令或请求。通常,由控制器130响应于从主机102输入的请求或命令而执行的操作可被认为是前台操作,而由控制器130独立地(例如,不管从主机102输入的请求或命令)执行的操作可被认为是后台操作。控制器130可以执行前台操作或后台操作,以关于存储器装置150中的数据条进行读取、写入或编程、擦除等。另外,与作为从主机102传输的设置命令的设置参数命令或设置特征命令相对应的参数设置操作可被认为是前台操作。同时,作为在没有从主机102传输命令的情况下的后台操作,控制器130可针对存储器装置150中包括的多个存储块152、154、156来执行垃圾收集(GC)、损耗均衡(WL)、用于识别和处理坏块的坏块管理等。
根据实施例,基本相似的操作可作为前台操作和后台操作两者来执行。例如,如果存储器***110响应于从主机102输入的请求或命令来执行垃圾收集(例如,手动GC),则垃圾收集可被认为是前台操作。然而,当存储器***110独立于主机102而执行垃圾收集(例如,自动GC)时,垃圾收集可被认为是后台操作。
当存储器装置150包括包含非易失性存储器单元的多个管芯(或多个芯片)时,控制器130可被配置为关于从主机102输入的多个请求或命令执行并行处理,以提高存储器***110的性能。例如,所传输的请求或命令可以针对存储器装置150中的多个管芯或多个芯片,并且由存储器装置150中的多个管芯或多个芯片同时处理。控制器130中的存储器接口142可通过至少一个通道和至少一种通路连接到存储器装置150中的多个管芯或芯片。当控制器130响应于与包括非易失性存储器单元的多个页面相关联的请求或命令,通过每个通道或每个通路在多个管芯中分布和存储多条数据时,可同时或并行地执行与这些请求或命令相对应的多个操作。这种处理方法或方案可被认为是交错方法。因为利用交错方法操作的存储器***110的数据输入/输出速度可比不使用交错方法的存储器***110的数据输入/输出速度更快,因此可提高存储器***110的数据I/O性能。
作为示例而非限制,控制器130可识别与存储器装置150中包括的多个存储器管芯相关联的多个通道(或多个通路)的状态。控制器130可将每个通道或每个通路的状态确定为忙碌状态、就绪状态、活动状态、空闲状态、正常状态和/或异常状态中的一种。控制器对指令(和/或数据)通过哪个通道或通路传递的确定可与物理块地址相关联,例如,将指令(和/或数据)传递到哪个(哪些)管芯。控制器130可参考从存储器装置150传递的描述符。该描述符可包括描述关于存储器装置150的某些信息的块参数或页面参数,并且是具有预定格式或结构的数据。例如,描述符可包括装置描述符、配置描述符、单元描述符等。控制器130可参考或使用描述符来确定通过哪个(哪些)通道或通路交换指令或数据。
参照图2,存储器***110中的存储器装置150可包括多个存储块152、154、156。多个存储块152、154、156中的每一个包括多个非易失性存储器单元。根据实施例,存储块152、154、156可以是一起被擦除的一组非易失性存储器单元。存储块152、154、156可包括作为一起被读取或被编程的一组非易失性存储器单元的多个页面。尽管图2中未示出,但是每个存储块152、154、156可具有用于高集成度的三维堆叠结构。进一步地,存储器装置150可包括多个管芯,每个管芯包括多个平面,每个平面包括多个存储块152、154、156。存储器装置150的配置可根据存储器***110的性能而不同。
在图2所示的存储器装置150中,包括多个存储块152、154、156。根据在一个存储器单元中可存储或表示的位的数量,多个存储块152、154、156可以是诸如单层单元(SLC)存储块、多层单元(MLC)存储块等的不同类型的存储块中的任意一个。此处,SLC存储块包括由每个存储一位数据的存储器单元实施的多个页面。SLC存储块可具有较高的数据I/O操作性能和较高的耐久性。MLC存储块包括由每个存储多位数据(例如,两位或更多位数据)的存储器单元实施的多个页面。与SLC存储块相比,MLC存储块对于相同空间可具有更大的存储容量。在存储容量方面,MLC存储块可高度集成。在实施例中,存储器装置150可用诸如双层单元(DLC)存储块、三层单元(TLC)存储块、四层单元(QLC)存储块及其组合的MLC存储块来实施。双层单元(DLC)存储块可包括由每个能够存储2位数据的存储器单元实施的多个页面。三层单元(TLC)存储块可包括由每个能够存储3位数据的存储器单元实施的多个页面。四层单元(QLC)存储块可包括由每个能够存储4位数据的存储器单元实现的多个页面。在另一实施例中,存储器装置150可用包括由每个能够存储5位或更多位数据的存储器单元实施的多个页面的块来实施。
根据实施例,控制器130可使用存储器***150中包括的多层单元(MLC)存储块作为将一位数据存储在一个存储器单元中的SLC存储块。多层单元(MLC)存储块的数据输入/输出速度可慢于SLC存储块的数据输入/输出速度。即,当MLC存储块被用作SLC存储块时,可减小读取操作或编程操作的裕量。当使用多层单元(MLC)存储块作为SLC存储块时,控制器130可利用多层单元(MLC)存储块的较快的数据输入/输出速度。例如,因为缓冲器可能需要较高的数据输入/输出速度来提高存储器***110的性能,所以控制器130可使用MLC存储块作为缓冲器来临时存储数据条。
进一步地,根据实施例,控制器130可将多条数据多次地编程在多层单元(MLC)中,而无需对存储器装置150中包括的特定MLC存储块执行擦除操作。通常,非易失性存储器单元具有不支持数据重写的特征。然而,控制器130可使用多层单元(MLC)可存储多位数据的特点,以便将多条1位数据多次编程到MLC中。对于MLC重写操作,当在非易失性存储器单元中编程一条1位数据时,控制器130可将编程次数存储为单独的操作信息。根据实施例,在相同非易失性存储器单元中重写另外数据条之前,可执行用于均匀地均衡非易失性存储器单元的阈值电压的操作。
在本公开的实施例中,存储器装置150被实现为诸如闪速存储器的非易失性存储器,闪速存储器诸如NAND闪速存储器、NOR闪速存储器等。可选地,存储器装置150可由相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)、自旋注入磁性存储器(STT-RAM)和自旋转移扭矩磁性随机存取存储器(STT-MRAM)等中的至少一种来实施。
参照图3,描述了根据本公开的另一实施例的存储器***中的控制器130。控制器130与主机102和存储器装置150协作。如图所示,控制器130包括主机接口132、闪存转换层(FTL)240以及先前结合图2示出的主机接口132、存储器接口142以及存储器144。
尽管图3中未示出,但是根据实施例,图2中示出的ECC单元138可包括在闪存转换层(FTL)240中。在另一实施例中,ECC单元138可被实施为包括在控制器130中或与控制器130相关联的单独模块、电路、固件等。
主机接口132用于处置从主机102传输的命令、数据等。作为示例而非限制,主机接口132可包括命令队列56、缓冲器管理器52和事件队列54。命令队列56可顺序地存储从主机102接收的命令、数据等,并以命令和数据被存储的顺序将命令和数据输出到缓冲器管理器52。缓冲器管理器52可分类、管理或调整从命令队列56接收的命令、数据等。事件队列54可顺序地传输用于处理从缓冲器管理器52接收的命令、数据等的事件。
可从主机102传输具有相同特性的多个命令或数据,例如读取命令或写入命令,或者可将具有不同特性的命令和数据在由主机102混合或打乱后传输到存储器***110。例如,可将用于读取数据的多个命令(读取命令)传递到存储器***110,或者可将用于读取数据的命令(读取命令)和编程/写入数据的命令(写入命令)交替地传输到存储器***110。主机接口132可将从主机102传输的命令、数据等顺序地存储到命令队列56。此后,主机接口132可根据已从主机102输入的命令、数据等的特性来估计或预测控制器130将执行何种内部操作。主机接口132可至少基于命令、数据等的特性来确定命令、数据等的处理顺序和优先级。根据从主机102传输的命令、数据等的特性,主机接口132中的缓冲器管理器52被配置为确定缓冲器管理器是否应将命令、数据等存储在存储器144中,或者缓冲器管理器是否应将命令、数据等传递到闪存转换层(FTL)240。事件队列54接收从缓冲器管理器52输入的事件,这些事件将响应于从主机102发送的命令、数据等而由存储器***110或控制器130内部地执行和处理,使得按照接收的顺序将事件传递到闪存转换层(FTL)240。
根据实施例,图3所示的闪存转换层(FTL)240可作为多线程方案来执行数据输入/输出(I/O)操作。可以通过控制器130中包括的使用多线程的多核处理器来实施多线程FTL。
根据实施例,闪存转换层(FTL)240可包括主机请求管理器(HRM)46、映射管理器(MM)44、状态管理器42和块管理器48。主机请求管理器(HRM)46可管理从事件队列54输入的事件。映射管理器(MM)44可处置或控制映射数据。状态管理器42可执行垃圾收集(GC)或损耗均衡(WL)。块管理器48可对存储器装置150中的块执行命令或指令。
作为示例而非限制,主机请求管理器(HRM)46可根据从主机接口132传递的读取命令和编程命令以及事件,使用映射管理器(MM)44和块管理器48来处置或处理请求。主机请求管理器(HRM)46可向映射数据管理器(MM)44发送查询请求,以确定与事件一起输入的逻辑地址相对应的物理地址。主机请求管理器(HRM)46可向存储器接口142发送读取请求以及该物理地址,以处理读取请求(处置事件)。另一方面,主机请求管理器(HRM)46可向块管理器48发送编程请求(写入请求),将数据编程到存储器装置150中的特定空页面(无数据),然后,可向映射管理器(MM)44传输与编程请求相对应的映射更新请求,以对在将逻辑地址和物理地址彼此映射的信息中的、与所编程数据有关的项目进行更新。
此处,块管理器48可将从主机请求管理器(HRM)46、映射数据管理器(MM)44和/或状态管理器42传递的编程请求转变为用于存储器装置150的闪存编程请求,以管理存储器装置150中的闪存块。为了最大化或增强存储器***110的编程性能或写入性能(参见图2),块管理器48可收集编程请求,并向存储器接口142发送用于多平面和单触发编程操作的闪存编程请求。在实施例中,块管理器48向存储器接口142发送若干闪存编程请求,以增强或最大化多通道和多方向闪存控制器的并行处理。
另一方面,块管理器48可被配置为根据有效页面的数量来管理存储器装置150中的块,当需要空闲块时选择并擦除没有有效页面的块,并且当确定需要垃圾收集时选择包括最少数量的有效页面的块。状态管理器42可执行垃圾收集以将有效数据移动到空块,并擦除包含所移动的有效数据的块,使得块管理器48可具有足够的空闲块(没有数据的空块)。如果块管理器48向状态管理器42提供关于待被擦除的块的信息,则状态管理器42可检查待被擦除的块的所有闪存页面以确定每个页面是否有效。例如,为了确定每个页面的有效性,状态管理器42可识别在每个页面的带外(OOB)区域中记录的逻辑地址。为了确定每个页面是否有效,状态管理器42可将页面的物理地址与映射到从查询请求获得的逻辑地址的物理地址进行比较。状态管理器42针对每个有效页面,向块管理器48发送编程请求。当编程操作完成时,可通过映射管理器44的更新来更新映射表。
映射管理器44可管理逻辑-物理映射表。映射管理器44可处理由主机请求管理器(HRM)46或状态管理器42生成的诸如查询、更新等的请求。映射管理器44可将整个映射表存储在存储器装置150(例如,闪速存储器/非易失性存储器)中,并且根据存储器144的存储容量来高速缓存映射条目。当在处理查询或更新请求时发生映射高速缓存未命中时,映射管理器44可向存储器接口142发送读取请求以加载存储器装置150中存储的相关映射表。当映射管理器44中的脏高速缓存块的数量超过特定阈值时,可向块管理器48发送编程请求,以便生成干净的高速缓存块,并且脏映射表可被存储在存储器装置150中。
另一方面,当执行垃圾收集时,状态管理器42将(多个)有效页面复制到空闲块中,并且主机请求管理器(HRM)46可针对相同逻辑地址的页面编程最新版本的数据,并且即时发出更新请求。当状态管理器42在(多个)有效页面的复制未正常完成的状态下请求映射更新时,映射管理器44可能不执行映射表更新。这是因为,如果状态管理器42请求映射更新,并且随后才完成有效页面复制,则发出的是具有旧物理信息的映射请求。映射管理器44仅当最新映射表仍然指向旧物理地址时,才可执行映射更新操作以确保准确性。
图4示出关于供应到非易失性存储器单元的读取电压的分布。
参照图4,存储器装置150中的非易失性存储器单元的阈值电压(参见图1至图3)可随着时间而改变。在第一种情况下,在第一时间点,存储两个不同数据(例如,“0”和“1”)中的一个数据的非易失性存储器单元的阈值电压可像两个抛物线一样分布。例如,假设在第一种情况下,在存储器装置150中存在每个存储数据“0”的1000个非易失性存储器单元和每个存储数据“1”的1000个非易失性存储器单元。存储数据“0”的非易失性存储器单元的阈值电压可如图4所示的左抛物线分布,并且存储数据“1”的非易失性存储器单元的阈值电压可如图4所示的右抛物线分布。在第一种情况下,可由控制器130来确定用于清楚地识别数据“0”和“1”的最有效读取电压Vrd1(参照图1至图3),该最有效读取电压Vrd1具有与左抛物线和右抛物线相交的位置相对应的电压电平。
随着时间的推移,非易失性存储器单元的阈值电压分布可从第一种情况变为第二种情况。例如,第一种情况下的非易失性存储器单元的阈值电压可向自然状态或平衡状态移动。在第二种情况下,如图4所示,阈值电压分布可向左侧改变(向电势降低的方向改变)。当非易失性存储器单元的阈值电压分布改变时,用于识别数据“0”和“1”的最有效读取电压将从第一种情况下的读取电压(Vrd1)的电平改变为第二种情况下的另一读取电压(Vrd2)的电平。
如图4所示,如果控制器130可检查或识别在时间推移的情况下改变了多少阈值电压的电平,例如,第一种情况和第二种情况的非易失性存储器单元的阈值电压分布之间的差异,则与基于最小电平和最大电平之间的规律变化(增加或降低)来确定最有效读取电压的常规方法相比,可更容易或更准确地确定最有效读取电压。通过该进程,可降低控制器130未能读取存储器装置150中存储的数据的可能性,并且可提高存储器***110(参见图1至图3)的操作稳定性。
图5示出非易失性存储器单元的单元差分概率(CDP)。
参照图5,控制器130(参见图1至图3)可对存储器装置150(参见图1至图3)中的至少一些区域执行单元分布扫描(CDS)操作。存储器装置150可通过增加数据的随机性来存储数据,以提高非易失性存储器单元的寿命和可靠性。例如,存储器接口142(参见图1至图3)或者存储器装置150中包括的随机化器可生成对应于与特定地址相关联的实际数据的随机化值。随机化值可存储在存储器装置150中的非易失性存储器单元中。通过随机化器,连接到单个字线WL的非易失性存储器单元中存储的特定值或数据(例如,数据“0”和“1”)的数量可相同(基本上彼此相同)。基于非易失性存储器单元中存储的随机化值而不是实际数据,可以估计存储器装置150中的非易失性存储器单元的阈值电压分布。
基于单元分布扫描(CDS)操作的结果,控制器130可确定单元差分概率(CDP),以推断存储器装置150中的非易失性存储器单元的阈值电压。例如,假设在存储器装置150中存在存储数据“0”的1000个非易失性存储器单元(#cells each PV)和存储数据“1”的1000个非易失性存储器单元(#cells each PV)。用于识别数据“0”和“1”的最有效读取电压Vrd可具有与左抛物线和右抛物线相交的位置相对应的电压电平。
根据实施例,可通过以下等式计算单元差分概率(CDP)。单元差分概率(CDP)可基于以下来确定:在单元分布扫描(CDS)操作期间导通的存储器单元的数量(Ones)、理想阈值电压分布中的每个抛物线中包括的存储器单元的数量(#cells each PV)以及阈值电压分布的预测比率(Ri)。
Figure BDA0002629806610000271
例如,假设当向2000个非易失性存储器单元供应最有效读取电压(Vrd)时,控制器130可期望存在1000个数据“1”(Ones)。在本文中,可将最有效读取电压(Vrd)认为是当前用于识别两个相邻数据(数据“0”和“1”,或数据“01”和“10”)的读取电压。预测比率Ri为1。当向2000个非易失性存储器单元供应具有比最有效读取电压(Vrd)更高的电平(例如,高0.05V的电平)的读取电压时,数据“1”的数量(“Ones”,由读取电压而导通的存储器单元的数量)为1350。因为识别到数据“1”的数量是1350而不是1000,所以当转换成百分比(%)时,单元差分概率(CDP)可能是约35%。此外,当供应具有比最有效读取电压(Vrd)更低的电平(例如,低相同的电平0.05V的电平)的另一读取电压时,数据“0”的数量(Ones)可能是650。因为数据的数量“Ones”被识别为650而不是1000,所以单元差分概率(CDP)可能是约35%。
如图5所示,在以相同的电平来改变(即,增加和降低)最有效读取电压(Vrd)以确定读取电压之后,可估计关于数据“0”和“1”中的每一个的单元差分概率(CDP)。当两个单元差分概率(CDP)相同时,可能不需要调整最有效读取电压(Vrd)。
另一方面,当向非易失性存储器单元供应从最有效读取电压(Vrd)改变相同量的读取电压以估计关于数据“0”和“1”的单元差分概率(CDP)时,控制器130可能获得两个不同的单元差分概率(CDP)。控制器130可确定需要改变最有效读取电压(Vrd)的电平。尽管未示出,但当关于数据“0”的第一单元差分概率(CDP)大于关于数据“1”的第二单元差分概率(CDP)时,可能需要在一个方向上,即朝向用于估计关于数据“1”的第二单元差分概率(CDP)的读取电压的方向,来改变最有效读取电压(Vrd)。另一方面,当关于数据“1”的第二单元差分概率(CDP)大于关于数据“0”的第一单元差分概率(CDP)时,可能需要在另一方向上,即朝向用于估计关于数据“0”的第一单元差分概率(CDP)的读取电压的方向,来改变最有效读取电压(Vrd)。
随着时间的推移,可假设包括关于存储器装置150中的存储数据“0”的1000个非易失性存储器单元的左抛物线和关于存储数据“1”的其他1000个非易失性存储器单元的右抛物线的阈值电压分布已经改变。如果供应电平大于或小于最有效读取电压Vrd的读取电压,则可以估计关于数据“1”的数量和数据“0”的数量的两个单元差分概率(CDP)。两个单元差分概率(CDP)之间的差异可指示需要改变最有效读取电压Vrd的方向,即增加或降低最有效读取电压Vrd以更清楚地识别非易失性存储器单元中存储的数据。
根据实施例,当控制器130存储先前的单元差分概率(CDP)时,控制器130可计算单个单元差分概率(CDP)而不是关于数据“1”的数量和数据“0”的数量的两个单元差分概率(CDP)。当控制器130跟踪关于数据“1”的数量或数据“0”的数量的单元差分概率(CDP)时,控制器130可基于所跟踪的单元差分概率(CDP)来识别最有效读取电压Vrd需要在哪个方向上改变。
另一方面,在包括关于存储数据“0”的1000个非易失性存储器单元的左抛物线和关于存储数据“1”的1000个非易失性存储器单元的右抛物线的阈值电压分布中,关于数据“0”或“1”的单元差分概率(CDP)可能不会是0%。例如,即使当关于非易失性存储器单元的阈值电压分布基本上未移动或改变时,基于当前读取电压的单元差分概率(CDP)也可能不会是0%。即,当单元差分概率(CDP)低于预设标准(例如,1%至5%)时,可能就不需要改变当前使用的最有效读取电压Vrd。
在本文中,预设标准可根据存储器装置150中包括的非易失性存储器单元的特性而变化。可在制造期间确定非易失性存储器单元的特性。进一步地,可通过在非易失性存储器单元中编程、读取和擦除数据的操作来改变非易失性存储器单元的特性。例如,非易失性存储器单元的特性可基于非易失性存储器单元的损耗或寿命而变化。根据实施例,控制器130可监测或跟踪存储器装置150中包括的非易失性存储器单元的特性,以确定与单元差分概率(CDP)相关的预设标准。
根据实施例,用于计算单元差分概率(CDP)的操作可包括使用多个读取电压的多个扫描操作,其中多个读取电压即为具有大于或小于最有效读取电压(Vrd)(例如,大于或小于±0.01V、±0.03V、±0.05V)的不同电平的多个读取电压。可多次执行使用多个读取电压的多个扫描操作。当多次执行扫描操作时,可以更清楚地确定适用于基于单元差分概率(CDP)来改变最有效读取电压(Vrd)的方向(增加或降低)和幅度(电平、量)。
图6示出根据本公开的实施例的操作存储器***的方法。可参照图1至图3来理解图6所示的存储器***的内部配置。
参照图6,操作存储器***300的方法可包括向多个非易失性存储器单元供应读取电压以执行读取操作(步骤342)。当从外部装置(例如,图1和图2中所示的主机102)输入读取命令或读取请求时,控制器130可基于与读取命令或读取请求一起输入的逻辑地址来执行读取操作。控制器130可在映射数据(或元数据)中搜索与该逻辑地址相对应的物理地址,例如执行地址转换,并且读取存储器装置150中的与该物理地址相对应的非易失性存储器单元中存储的数据。根据实施例,当将逻辑地址和物理地址两者从外部装置传输到存储器***110时,控制器130可省略用于地址转换的操作。
当在控制器130执行读取操作(342)之后,读取操作成功时,存储器***110可输出由外部装置请求的数据。在本文中,读取操作的成功可包括以下情况:从存储器装置150传输到控制器130的数据是无错误的,或者即使数据中包括错误,该错误也是可校正的。例如,通过图1所示的解码电路196或图2所示的错误校正电路138,可以检查在从存储器装置150传输的数据中是否包括错误,并且如果在数据中包括错误,则可基于预设算法或电路来纠正或校正错误。
当在控制器130执行读取操作(342)之后,读取操作失败时,存储器***110可不输出由外部装置请求的数据。操作存储器***300的方法可包括:当读取操作失败时,基于从多个非易失性存储器单元输出的值来计算单元差分概率(CDP)(步骤344)。而且,操作存储器***300的方法可包括基于单元差分概率来调整读取电压(346)。
当读取操作失败时,存储器***110中存在各种原由或原因。例如,当存储数据的非易失性存储器单元中发生缺陷时,可能无法读取或输出相应的数据。参照图4和图5,在非易失性存储器单元的阈值电压改变的情况下,当供应读取电压时可能错误地识别所存储的数据。在这种情况下,当调整了供应到非易失性存储器单元的读取电压时,可更准确地和清楚地读取非易失性存储器单元中存储的数据。
当非易失性存储器单元的阈值电压改变时,数据“0”和“1”(或MLC中的“01”和“10”)响应于读取电压而被反转(错误地识别),使得在从存储器装置150的非易失性存储器单元传送到控制器130的数据中发生错误。即使在数据的一部分中存在“0”和“1”被反转的错误,如果通过图1所示的解码电路196或图2所示的错误校正电路138纠正或校正了该错误,则认为读取操作是成功的。然而,如果数据中存在许多的数据“0”和“1”被反转的错误(错误位)时,则错误位的数量可能超过通过图1所示的解码电路196或图2所示的错误校正电路138纠正或校正错误的限制。在这种情况下,读取电压可被调整并且供应到存储器装置150中的非易失性存储器单元中。当由于所调整的读取电压,从存储器装置150的非易失性存储器单元传送到控制器130的数据中的错误(反转的数据“0”和“1”)的数量减少时,可通过图1所示的解码电路196或图2所示的错误校正电路138来纠正或校正错误。
为了改变或调整读取电压的电平,控制器130可随机地增加或降低读取电压。然而,在这种情况下,在控制器130改变或调整读取电压的电平的操作中容易产生开销。然而,参照图5,根据本公开的实施例的控制器130可基于单元差分概率(CDP),来估计关于如何改变或调整读取电压的电平的调整方向和/或幅度。通过单元差分概率(CDP),存储器***110可减少在改变或调整最有效读取电压(Vrd)的进程中的开销。
根据本公开的实施例的存储器***110不仅可改变或调整读取电压的电平,而且还可减少纠正或校正在从存储器装置150的非易失性存储器单元输出的数据中检测到的错误所需的时间。可提高存储器***110的数据输入/输出性能。在下文中,将参照图7至图10更详细地描述操作存储器***110的方法。
图7示出基于单元差分概率(CDP)来操作存储器***的方法。根据实施例,如图7所示的基于单元差分概率(CDP)来操作存储器***的方法可以包括在图6所示的步骤(344)中,其中在步骤(344)中,当在操作存储器***300的方法中读取操作失败时,基于从多个非易失性存储器单元输出的值来计算单元差分概率(CDP)。
参照图7,基于单元差分概率(CDP)来操作存储器***的方法可包括检查历史记录(步骤352)。当存储器***110确定在与读取操作相对应的数据中包括错误时,存储器***110可通过各种方式来校正或纠正错误以恢复数据。在本文中,当历史记录包括校正或恢复数据中包括的错误的所有情况时,控制器130应当检查、监测和跟踪的信息量可能太大。另外,在稍后用于纠正或校正错误以恢复数据的进程中可能不会使用关于错误校正或数据恢复的信息。因此,根据本公开的实施例,由控制器130管理的历史记录可包括关于以下的信息:通过基于单元差分概率(CDP)来搜索、调整或改变最有效读取电压(Vrd)的操作而执行的错误校正和恢复操作。然而,历史记录可排除通过在由控制器130执行的读取重试操作中使用的算法或代码而执行的错误校正和恢复操作。这是因为读取重试操作可基于规定的顺序或规定的算法/代码而规律地执行,而不是基于单元差分概率(CDP)而动态地执行。例如,关于由图1所示的解码电路196或图2所示的错误校正电路138规律地执行的错误校正操作来校正错误或恢复数据的情况的信息可能没有包括在历史记录中。
在读取操作失败之后,控制器130可检查历史记录(步骤352)。当不存在历史记录(步骤352中为否)时,控制器130可不计算单元差分概率(CDP)(前往步骤348)。控制器130可执行通过图1所示的解码电路196或图2所示的错误校正电路138来校正数据中包括的错误的操作,而无需计算单元差分概率(CDP)。下文将参照图9描述在不计算单元差分概率(CDP)的情况下校正数据中包括的错误的操作。
当存在历史记录(步骤352中为是)时,控制器130可计算单元差分概率(CDP)。根据实施例,为了计算单元差分概率(CDP),控制器130可执行附加读取操作以扫描或读取关于存储器装置150的多个非易失性存储器单元的阈值电压,以获得对应于多个位的值(例如,类模拟值)(步骤354)。然而,例如,当多个非易失性存储器单元包括在SLC块中时,检查存储器装置150中的该多个非易失性存储器单元的阈值电压分布的附加读取操作可能是不必要的。即,SLC块中的非易失性存储器单元的阈值电压可通过单个参考来分类。然而,为了基于存储器装置150的MLC块中包括的多个非易失性存储器单元的阈值电压分布来确定特定多位数据的单元差分概率(CDP),可能需要使用不同的读取电压电平的附加读取操作(例如,辅助读取)。在MLC块的情况下,由于非易失性存储器单元的阈值电压可通过多个标准而分类,因此可根据每个非易失性存储器单元存储了多少数据位来执行附加读取操作。
控制器130可基于存储器装置150的SLC块中的多个非易失性存储器单元的阈值电压分布来彼此区分数据“0”和/或“1”(步骤356)。此后,控制器130可基于对应于数据“0”和/或数据“1”的值的数量来计算单元差分概率(CDP)(步骤358)。此后,可将所计算的单元差分概率(CDP)与第一参考A进行比较(步骤360)。
当单元差分概率(CDP)小于第一参考A(步骤360中为是)时,控制器130可确定有必要改变或调整读取电压的电平。在这种情况下,可由图1所示的解码电路196或图2所示的错误校正电路138来执行用于校正数据中包括的错误的操作,其中解码电路196或错误校正电路138包括在控制器130中(前往步骤346)。当单元差分概率(CDP)小于第一参考A时,可确定多个非易失性存储器单元的阈值电压分布(参见图4和图5)没有较宽地伸展。参照图4至图5,当与特定数据相对应的阈值电压分布较窄(当高斯分布(即,抛物线)的宽度(即,电压范围)较窄)时,可通过对读取电压的电平进行微小的改变,来容易地减少多个非易失性存储器单元中存储的数据中的错误。
另一方面,当单元差分概率(CDP)等于或大于第一参考A(步骤360中为否)时,控制器130可确定不需要改变或调整读取电压的电平。单元差分概率(CDP)可以是通过上述等式获得的绝对值。在这种情况下,控制器130可执行用于改变或调整读取电压的电平的操作(前往步骤348)。当单元差分概率(CDP)等于或大于第一参考(A)时,可确定多个非易失性存储器单元的阈值电压分布(参照图4至图5)较宽地伸展。参照图4至图5,当对应于特定数据的阈值电压分布较宽地伸展时(当高斯分布(即,抛物线)的宽度(即,电压范围)较宽时),多个非易失性存储器单元可包括较宽地改变的阈值电压。通过微小地调整或改变读取电压的电平的操作,可能不会减少非易失性存储器单元中存储的数据中的许多错误。在这种情况下,控制器130中包括的ECC解码器通过增加软判决解码的电平/程度而不是微小地改变或调整读取电压的电平来执行更多的计算或操作,以增加校正错误和恢复数据的可能性。
如上所述,可由图1至图3所示的控制器130来执行图7所示的使用单元差分概率(CDP)操作存储器***的方法。根据实施例,可通过图1所示的电压调整器194来执行图7所示的计算单元差分概率(CDP)或将单元差分概率(CDP)与第一参考A进行比较的过程。
图8示出操作存储器***以调整读取电压的方法的第一示例。
参照图8,当控制器130确定需要改变或调整读取电压的电平(图7所示的步骤360中为是)时,可执行操作存储器***以调整读取电压的电平的方法(步骤346)。
控制器130可从存储器装置150的特定区域读取数据并且对该数据执行硬判决解码(步骤372)。尽管未示出,但是当通过硬判决解码(步骤372)校正了数据中的错误时,可终止错误校正和恢复操作。即,在已经纠正或校正了错误之后,可能不再需要执行调整读取电压的电平的操作方法。
作为对数据执行硬判决解码(步骤372)的结果,如果数据中的错误未被校正,则存储器***可检查是否存在比预设次数(Sth)更多的不满足校验(USC)节点(步骤374)。在本文中,不满足校验节点(USC节点)可指示在用于确定读取操作是否失败的进程中不满足根据预定算法的测试表达式的节点。参照图7,存储器***已经识别到,关于与特定数据相对应的非易失性存储器单元的阈值电压分布较窄(即,当单元差分概率(CDP)小于第一参考A时的情况),但是不满足校验节点(USC)大于预设次数(Sth)。在这种情况下,存储器***可确定存在许多非易失性存储器单元属于分布中的两个抛物线(例如,对应于两个相邻数据的阈值电压)彼此重叠的范围(参见图4和图5)。该范围(即,分布中的两个阈值电压的重叠区域)可被识别为基于从最有效读取电压(Vrd)的绝对比率(例如,±1%、±5%或±10%等)而确定的范围,其中最有效读取电压(Vrd)用于识别非易失性存储器单元的阈值电压分布中的两个相邻数据(数据“0”和“1”或数据“01”和“10”)。
当不满足校验(USC)节点大于预设次数(Sth)(步骤374中为是)时,控制器130可执行深级(deep-level)软判决解码(例如,高级(high-level)软判决解码)(步骤376)。在本文中,深级(高级)软判决解码可指具有控制器130中包括的ECC解码器可执行的预定电平的软判决解码。软判决解码的级别可对应于用于扫描或收集用于软判决解码的值或数据的读取电压的数量(例如,不同的偏压/读取电压的电平的数量)。例如,两级软判决解码可使用单个偏压(单个读取电压的电平),四级软判决解码可使用两个偏压(两个读取电压的电平)。
根据实施例,如果ECC解码器能够执行多达10级(十级)软判决解码,则多达10级软判决解码很可能校正最大级别的错误(例如,最大错误位)以恢复数据。然而,假设当ECC解码器执行6级或8级软判决解码时,ECC解码器可能未以最大级别,但以接近最大级别(例如,约为最大级别的70%至90%)来校正错误,以恢复数据。考虑到计算效率(资源效率),控制器130可执行6级或8级软判决解码作为深级软判决解码。此时,控制器130使用的读取电压的电平位于从最有效读取电压(Vrd)起的特定范围(例如,±1%、±5%或±10%等)内,其中最有效读取电压(Vrd)用于识别非易失性存储器单元的阈值电压分布中的两个相邻数据(数据“0”和“1”或数据“01”和“10”)。当通过执行深级(高级)软判决解码恢复了数据中的错误时,可终止数据校正和恢复的操作。然而,当尚未通过深级(高级)软判决解码来校正数据中的错误并且恢复数据时,控制器130可确定需要调整和改变读取电压的电平。
此外,当不满足校验(USC)节点不超过预设次数Sth(步骤374中为否)时,可基于单元差分概率(CDP)来调整读取电压的电平(步骤378)。在这种情况下,控制器130可确定到每个具有属于分布中的相邻阈值电压交叉的范围(参见图4和图5)的阈值电压的非易失性存储器单元的数量不大。因此,通过在改变或调整读取电压的电平之后收集数据,而不是使用每个具有稍微不同电平的多个读取电压来执行软判决解码(步骤376),控制器130可更快地校正数据中的错误。如参照图5所述,基于单元差分概率(CDP),控制器130可确定如何改变或调整(即,增加或降低)读取电压的电平。根据实施例,控制器130可基于单元差分概率(CDP)来确定改变或调整多少读取电压的电平。
在改变和调整读取电压的电平之后(步骤378),控制器130可再次计算单元差分概率(CDP),并且将单元差分概率(CDP)与第二参考B进行比较(步骤380)。当单元差分概率(CDP)小于第二参考B(步骤380中为是)时,可读取存储器装置150的非易失性存储器单元中存储的数据,并且可执行硬判决解码(步骤372)。然而,当单元差分概率(CDP)等于或大于第二参考B(步骤380中为否)时,可由图1所示的解码电路196或图2所示的错误校正电路138执行用于校正错误以恢复数据的操作,其中解码电路196或错误校正电路138包括在控制器130中(前往步骤348)。在本文中,第二参考B可小于图7所示的第一参考A。例如,可通过测试用于校正错误以恢复从存储器装置150输出的数据的操作的过程,将第二参考B设置为以预设比率小于第一参考A。此外,根据实施例,可基于存储器装置150中的非易失性存储器单元(例如,关于特定数据的分布或范围)的特性或操作状态(例如,损耗)、读取电压的改变或调整次数以及控制器130中的ECC解码器性能等,来不同地或动态地确定第二参考B。
另一方面,在改变和调整读取电压的电平之后(步骤378),控制器130可检查读取电压的电平被改变和调整了多少次。控制器130可检查改变或调整次数是否超过最大值(max N)(步骤380)。当读取电压的电平的改变或调整次数没有超过最大值(max N)(步骤380中为是)时,读取存储器装置150的非易失性存储器单元中存储的数据,然后对该数据执行硬判决解码(步骤372)。然而,当读取电压的电平的改变或调整次数超过最大值(max N)(步骤380中为否)时,可由图1所示的解码电路196或图2所示的错误校正电路138来校正或恢复存储器装置150的非易失性存储器单元中存储的数据,其中解码电路196或错误校正电路138包括在控制器130中(前往步骤348)。根据实施例,可基于存储器装置150中的非易失性存储器单元(例如,关于特定数据的分布或范围)的特性或操作状态(例如,损耗)或读取电压的变化或调整的量(幅度)来设置最大值(max N)。
图9示出操作存储器***以恢复错误的方法。根据实施例,参照图7,当在通过各种算法收集非易失性存储器单元的阈值电压分布之后,确定通过软判决解码而不是改变读取电压的电平来校正和恢复错误更加有效时,可提供图9所示的操作存储器***以恢复错误的方法(步骤348)。
参照图9,操作存储器***以校正错误的方法(步骤348)可包括通过顺序应用多个算法或多个错误校正码来纠正或校正数据中包括的错误的进程。图9所示的多个算法或多个错误校正码被示出为示例。响应于存储器***110的操作性能,可改变多个算法或多个错误校正码。
操作存储器***以校正错误和恢复数据的方法(步骤348)可包括搜索供应到多个非易失性存储器单元的第一读取电压(步骤382)并且基于第一读取电压执行软判决解码(步骤384)。在本文中,搜索第一读取电压的进程可使用各种算法中的一种。例如,搜索第一读取电压的步骤382可执行高斯建模(GM)操作,以估计非易失性存储器单元的阈值电压分布之中的所选择的阈值电压分布的平均阈值电压。高斯建模(GM)操作可由控制器130执行,该控制器130向非易失性存储器单元供应参考电压以从非易失性存储器单元读取数据,计算具有属于由参考电压确定的阈值电压间隔的阈值电压的非易失性存储器单元的数量,并且计算所选择的阈值电压分布的平均阈值电压,其中通过使用高斯分布函数、基于非易失性存储器单元的数量来估计所选择的阈值电压分布的平均阈值电压。例如,基于所选择的阈值电压分布的平均阈值电压,控制器130可确定适于将所选择的阈值电压分布彼此区分的第一读取电压。
根据实施例,可以应用泊松分布函数、二项式分布函数、超几何分布函数、伽马分布函数或几何分布函数来搜索第一读取电压,而不应用高斯分布函数。
基于通过第一读取电压收集的数据/值(例如,第一阈值电压收集),控制器130可执行软判决解码(步骤384)。尽管未示出,当通过基于通过第一阈值电压收集进程收集的信息而执行的软判决解码恢复了数据和校正数据中包括的错误时,可终止用于校正错误和恢复数据的操作。
当通过基于通过第一阈值电压收集进程收集的信息而执行的软判决解码未校正错误和未恢复数据时,控制器130可执行附加读取操作(步骤386)。在本文中,可执行附加读取操作(步骤386)来收集必要信息,该必要信息可用于随后的搜索第二读取电压(步骤388)以及改变参考(例如,表格)并且扫描非易失性存储器单元(步骤392)的进程。然而,根据实施例,当在搜索第二读取电压的步骤388中使用的算法不需要附加数据时,通过附加读取操作(步骤386)收集的信息可在步骤392中使用,以用于参考改变和扫描。
此后,控制器130可执行搜索关于多个非易失性存储器单元的第二读取电压的步骤388。在本文中,可通过不同的算法单独地执行搜索第一读取电压的步骤382和搜索第二读取电压的步骤388。例如,作为第一读取电压搜索方法的示例,基于多个非易失性存储器单元的阈值电压分布来在粗略范围中找到第一读取电压方面,高斯建模(GM)操作可能更高效。然而,在高斯建模(GM)操作中,当多个非易失性存储器单元的阈值电压较宽地伸展(例如,分布中的抛物线变宽)时,可能难以清楚地识别或指定阈值电压分布。进一步地,第一读取电压可能不足以识别或指定已变宽的阈值电压分布。例如,为了基于通过搜索第一读取电压的步骤382所发现的非易失性存储单元的阈值电压分布,来收集每个区段或特定区段的清楚分布,可以将电流控制方案(CCS)应用于搜索第二读取电压的步骤388。例如,为了清楚地识别非易失性存储器单元的阈值电压分布,可向包括非易失性存储器单元的电流路径供应具有不同电平的多个电流。通过该进程,可以搜索比第一读取电压被更精确地调整的第二读取电压。根据实施例,可以将电压控制方案(VCS)应用于检索第二读取电压的步骤388。
基于通过搜索第二读取电压的步骤388收集的信息,控制器130可执行软判决解码(步骤390)。根据实施例,在执行软判决解码的步骤390中,控制器130可执行ECC解码器能够执行的最大级别软判决解码。尽管未示出,当通过基于通过搜索第二阈值电压的步骤388收集的信息执行的最大级别软判决解码校正了数据中包括的错误和恢复数据时,可终止用于校正错误和恢复数据的操作。
当通过执行软判决解码的步骤390未校正数据中包括的错误时,操作存储器***以恢复错误的方法348可包括执行表改变,以扫描非易失性存储器单元的阈值电压来确定阈值电压的分布,并且基于所确定的分布来解码阈值电压(步骤392)。在本文中,该表可包括用于确定分布中的每个抛物线之间的读取电压的标准。例如,在能够存储若干位数据的非易失性存储器单元的阈值电压分布中,读取电压的电平可能具有相等/规律的差距或规定的间隔。例如,当通过搜索第一读取电压的步骤382和搜索第二读取电压的步骤388确定了读取电压相等地间隔时,分布中的特定抛物线之间的错误也可能仍然没有被纠正或校正。在这种情况下,控制器130可尝试改变表以确定尚未被清楚识别的、分布中的特定抛物线之间的读取电压的电平。例如,控制器130可不改变用于识别与“11”和“10”的两个相邻数据相对应的阈值电压的读取电压的电平,但是可选择性地改变用于识别与2位数据之中的其他的两个相邻数据“01”和“11”相对应的阈值电压的读取电压的电平。因此,可选择性地调整分布中的读取电压的电平。通过该过程,可确定阈值电压分布中的每个抛物线之间的读取电压的电平具有随机的差距/间隔,而不是规律的差距或规定的间隔。
当通过控制器130基于通过表改变收集的信息而执行的解码校正了数据中包括的错误时,可完成校正错误和恢复数据的过程。另一方面,如果通过基于通过表格改变的信息而执行的解码未能恢复数据中包含的错误,则控制器130可确定数据中包含的错误可能是不可校正的。
图10示出操作存储器***以调整读取电压的方法的第二示例。具体地,可提供图10所示的操作存储器***以调整读取电压的电平的方法(步骤546)作为图8所示的操作存储器***以调整读取电压的电平的方法(步骤346)的另一实施例。
参照图10,用于调整读取电压的存储器***的操作方法546可包括读取存储器装置150中的特定区域的数据并且对该数据执行硬判决解码(步骤572)。当在执行硬判决解码(步骤572)之后,数据的错误没有被校正时,控制器130可将不满足校验(USC)节点的数量与预设次数(Sth)进行比较(步骤574)。此外,当不满足校验(USC)节点不超过预设次数(Sth)(步骤574中为否)时,控制器130可使用单元差分概率(CDP)来调整读取电压的电平(即,读取偏压)(步骤578)。
如上所述,当非易失性存储器单元的阈值电压分布中的抛物线的宽度(参见图4和图5)被加宽或非易失性存储器单元的阈值电压分布的抛物线完全偏移(例如,阈值电压的电平上升/下降),单元差分概率(CDP)可能增加。此外,不满足校验(USC)节点可能会随着错误位的数量的增加而增加。如果单元差分概率(CDP)小于第一参考A(图7的步骤360中为是),并且不满足校验(USC)节点小于预设次数(Sth)(图10的步骤574中为否),则控制器130可确定调整读取电压的电平来减少从非易失性存储器单元输出的数据中的错误是高效的。
在用于调整读取电压的电平的存储器***的操作方法546中,在改变和调整读取电压之后(步骤578),控制器130可再次计算单元差分概率(CDP),并且将单元差分概率(CDP)与第二参考B进行比较(步骤580)。当单元差分概率(CDP)小于第二参考B(步骤580中为是)时,可读取存储器装置150的非易失性存储器单元中存储的数据,并且可对该数据执行硬判决解码(步骤572)。然而,当单元差分概率(CDP)等于或大于第二参考B(步骤380中为否)时,可由图1所示的解码电路196或图2所示的错误校正电路138来执行用于校正错误以恢复数据的操作,其中解码电路196或错误校正电路138包括在控制器130中(前往步骤348)。
进一步地,在改变和调整读取电压的电平之后(步骤578),控制器130可检查改变和调整了多少次读取电压的电平。控制器130可检查改变或调整次数是否超过最大值(maxN)(步骤580)。当关于读取电压的电平的改变或调整次数没有超过最大值(max N)(步骤580中为是)时,读取存储器装置150的非易失性存储器单元中存储的数据,然后对该数据执行硬判决解码(步骤572)。然而,当关于读取电压的电平的改变或调整次数超过最大值(maxN)(步骤580中为否)时,可由图1所示的解码电路196或图2所示的错误校正电路138来校正或恢复存储器装置150的非易失性存储器单元中存储的数据,其中解码电路196或错误校正电路138包括在控制器130中(前往步骤348)。
参照图8和图10,在用于调整读取电压的电平的存储器***的操作方法546中,不同之处在于:当不满足校验(USC)节点大于预设次数(Sth)(步骤574中为是)时,控制器130可执行确定第一参考A的适当性(步骤576)。如上所述,单元差分概率(CDP)可根据存储器装置150的非易失性存储器单元的特性(例如,损耗、寿命、数据保留时间等)或非易失性存储器单元的类型(例如,SLC、MLC、SLC缓冲等)而不同。因此,为了基于单元差分概率(CDP)来确定读取电压的合适性,控制器130可基于存储器装置150中的非易失性存储器单元的特性或操作状态来确定与单元差分概率(CDP)相比的第一参考A是否是合适的。
当控制器130确定第一参考A不合适(步骤576中为否)时,控制器130可执行各种操作或多种操作来恢复数据中的错误。根据实施例,当第一参考A不合适时,搜索新读取电压的电平的控制器130可执行图9所示的存储器***校正错误的操作方法(348)。同时,根据实施例,当第一参考A不合适时,确定可重新调整读取电压的控制器130可执行搜索第二读取电压的步骤388。
另一方面,当确定第一参考A合适(步骤576中为是)时,与第一参考A不合适的情况相比,控制器130不必执行用于校正数据中的错误的方法中包括的至少一些进程或步骤。这是因为控制器130不执行不太可能校正数据中错误的方法、操作等,从而减少在存储器***110中浪费的资源并且提高存储器***110的性能。根据实施例,当第一参考A合适时,控制器130可执行步骤390,以执行最大级别(Max Level)软判决解码或改变表(表改变),从而扫描和确定非易失性存储器单元的阈值电压分布。控制器130可基于所确定的信息来执行所选择的解码或合适的解码(步骤392)。
可基于不满足校验(USC)节点的错误范围来确定第一参考A的适当性。当单元差分概率(CDP)小于第一参考A(图7的步骤360中为是)时,可执行用于调整读取电压的电平的存储器***的操作方法546。当单元差分概率(CDP)小于第一参考A时,可通过统计方式来预期不满足校验(USC)节点的错误范围。当不满足校验(USC)节点超出错误范围时,控制器130可确定第一参考A不合适。
虽然未示出,但是控制器130确定用于单元差分概率(CDP)的第一参考A的适当性的方法可变化。例如,可基于关于P/E循环的增加值而成比例地(例如,正比例、指数函数比例等)确定第一参考A,其中P/E循环可指示存储器装置150中的非易失性存储器单元的操作状态。第一参考A的适当性可基于存储器装置150中的非易失性存储器单元的操作状态来确定。此外,根据存储器装置150的制造特性,当预先设置了关于第一参考A的预定信息时,可通过将当前的第一参考A与第一参考A的每种情况的预定信息进行比较来确定第一参考A的适当性。
另一方面,响应于用于单元差分概率(CDP)的第一参考A的适当性,将图10所示的控制器130可执行的操作描述为帮助理解本公开的实施例的示例。本公开的实施例可不限于执行用于动态地检查第一参考A的适当性的特定操作。
在本公开的实施例中,存储器***可提高错误校正和恢复的效率。此外,根据本公开的实施例的存储器***可减少用于错误校正和恢复的资源消耗。进一步地,根据本公开的实施例的存储器***可通过错误校正和恢复来提高I/O性能。
虽然已经关于具体实施例说明和描述了本发明,但是根据本公开,对本领域技术人员显而易见的是,可在不脱离所附权利要求中限定的本公开的精神和范围的情况下进行各种改变和修改。

Claims (20)

1.一种存储器***,包括:
存储器装置,向多个非易失性存储器单元供应读取电压并且输出从所述多个非易失性存储器单元获得的值;以及
控制器,经由至少一个通道联接至所述存储器装置,当对所述多个非易失性存储器单元的读取操作失败时,基于根据所述值而计算的单元差分概率即CDP,来调整所述读取电压的电平。
2.根据权利要求1所述的存储器***,其中所述控制器:
当所述单元差分概率即CDP小于第一参考时,执行硬判决解码以恢复所述多个非易失性存储器单元中存储的数据;并且
基于所述硬判决解码来调整所述读取电压的电平。
3.根据权利要求2所述的存储器***,其中当所述单元差分概率即CDP等于或大于所述第一参考时,所述控制器进一步执行软判决解码以恢复所述多个非易失性存储器单元中存储的数据。
4.根据权利要求3所述的存储器***,其中当在调整所述读取电压的电平之后从所述存储器装置输出其它值时,所述控制器进一步对所述其他值执行所述软判决解码,以恢复所述多个非易失性存储器单元中存储的数据。
5.根据权利要求2所述的存储器***,其中当不满足校验节点的计数等于或小于第二参考时,所述控制器进一步将所述读取电压的电平增加或降低预设电平。
6.根据权利要求2所述的存储器***,其中当所述不满足校验节点的计数大于所述第二参考时,所述控制器进一步基于具有规定电平的读取电压来执行软判决解码或检查所述第一参考的合适性。
7.根据权利要求2所述的存储器***,其中所述单元差分概率即CDP指示在解码所述值之前的基于所述值的电压分布是否落入由关于每个非易失性存储器单元的阈值电压的最大/最小电平的预设比率确定的范围内。
8.根据权利要求1所述的存储器***,其中所述控制器进一步:
存储关于在搜索所述读取电压之后执行的扫描操作的历史记录;以及
基于所述历史记录将所述单元差分概率即CDP与所述第一参考进行比较。
9.根据权利要求8所述的存储器***,其中当不存在所述历史记录时,所述控制器进一步对所述值执行软判决解码。
10.根据权利要求8所述的存储器***,其中所述历史记录排除通过读取重试操作来调整所述读取电压的情况。
11.一种操作存储器***的方法,包括:
向多个非易失性存储器单元供应读取电压,以执行关于所述多个非易失性存储器单元中存储的值的读取操作;
当所述读取操作已失败时,基于从所述多个非易失性存储器单元读取的值来计算单元差分概率即CDP;并且
基于所述单元差分概率来调整所述读取电压。
12.根据权利要求11所述的方法,其中调整所述读取电压包括:
当所述CDP小于第一参考时,执行硬判决解码以恢复所述多个非易失性存储器单元中存储的数据;以及
基于所述硬判决解码来调整所述读取电压的电平。
13.根据权利要求12所述的方法,其中调整所述读取电压进一步包括:
当所述CDP等于或大于所述第一参考时,执行软判决解码以恢复所述多个非易失性存储器单元中存储的数据。
14.根据权利要求13所述的方法,其中调整所述读取电压进一步包括:
当在调整所述读取电压的电平之后从存储器装置输出其它值时,对所述其它值执行所述软判决解码,以恢复所述多个非易失性存储器单元中存储的数据。
15.根据权利要求12所述的方法,进一步包括:
当不满足校验节点的计数等于或小于第二参考时,将所述读取电压的电平增加或降低预设电平。
16.根据权利要求15所述的方法,进一步包括:
当所述不满足校验节点的计数大于所述第二参考时,基于具有规定电平的读取电压来执行软判决解码或检查所述第一参考的合适性。
17.根据权利要求11所述的方法,其中所述CDP指示在解码所述值之前的基于所述值的电压分布是否落入由关于每个非易失性存储器单元的阈值电压的最大/最小电平的预设比率确定的范围内。
18.根据权利要求11所述的方法,进一步包括:
存储关于在搜索所述读取电压之后执行的扫描操作的历史记录;并且
基于所述历史记录将所述CDP与第一参考进行比较。
19.根据权利要求18所述的方法,进一步包括:
当不存在所述历史记录时,对所述值执行软判决解码。
20.根据权利要求18所述的方法,其中所述历史记录排除通过读取重试操作来调整所述读取电压的情况。
CN202010807820.7A 2020-01-17 2020-08-12 处置存储器***中的数据错误的设备和方法 Withdrawn CN113138873A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200006490A KR20210092957A (ko) 2020-01-17 2020-01-17 메모리 시스템 내 데이터 오류를 처리하는 장치 및 방법
KR10-2020-0006490 2020-01-17

Publications (1)

Publication Number Publication Date
CN113138873A true CN113138873A (zh) 2021-07-20

Family

ID=76809344

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010807820.7A Withdrawn CN113138873A (zh) 2020-01-17 2020-08-12 处置存储器***中的数据错误的设备和方法

Country Status (3)

Country Link
US (1) US11762734B2 (zh)
KR (1) KR20210092957A (zh)
CN (1) CN113138873A (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11256605B2 (en) * 2017-10-19 2022-02-22 Samsung Electronics Co., Ltd. Nonvolatile memory device
US11386972B2 (en) * 2020-01-30 2022-07-12 Macronix International Co., Ltd. Determining read voltages for memory systems with machine learning
US11663079B2 (en) * 2021-02-07 2023-05-30 Micron Technology, Inc. Data recovery using a combination of error correction schemes

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101436505B1 (ko) * 2008-01-03 2014-09-02 삼성전자주식회사 메모리 장치
US9396792B2 (en) * 2014-02-26 2016-07-19 Seagate Technology Llc Adjusting log likelihood ratio values to compensate misplacement of read voltages
US9509342B2 (en) 2014-06-02 2016-11-29 Sandisk Technologies Llc Error correcting code decoder
US10339991B2 (en) 2016-05-16 2019-07-02 SK Hynix Inc. Memory system having optimal threshold voltage and operating method thereof
KR20180042974A (ko) 2016-10-19 2018-04-27 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10511326B2 (en) 2017-11-14 2019-12-17 Nyquist Semiconductor Limited Systems and methods for decoding error correcting codes
US10789124B2 (en) * 2018-09-28 2020-09-29 Intel Corporation Techniques to a set voltage level for a data access
US10733047B2 (en) * 2018-09-28 2020-08-04 Sandisk Technologies Llc Hard and soft bit data from single read

Also Published As

Publication number Publication date
US20210224151A1 (en) 2021-07-22
US11762734B2 (en) 2023-09-19
KR20210092957A (ko) 2021-07-27

Similar Documents

Publication Publication Date Title
US9768808B2 (en) Method for modifying device-specific variable error correction settings
US20160299812A1 (en) Device-Specific Variable Error Correction
US11526298B2 (en) Apparatus and method for controlling a read voltage in a memory system
US20160299844A1 (en) Mapping Logical Groups of Data to Physical Locations In Memory
US11756643B2 (en) Apparatus and method for correcting an error in data transmission of a data processing system
CN113867995A (zh) 处理坏块的存储器***及其操作方法
US11762734B2 (en) Apparatus and method for handling a data error in a memory system
US11620213B2 (en) Apparatus and method for handling data stored in a memory system
CN113360083A (zh) 用于在存储器***中控制映射数据的装置和方法
US11245420B2 (en) Apparatus and method for recovering a data error in a memory system
US11373709B2 (en) Memory system for performing a read operation and an operating method thereof
US20220171564A1 (en) Apparatus and method for maintaining data stored in a memory system
US11360697B2 (en) Apparatus and method for encoding and decoding operations to protect data stored in a memory system
CN114661226A (zh) 用于传输由非易失性存储器***生成的元数据的装置和方法
US11798648B2 (en) Apparatus and method for recovering data in a memory system
US20230376212A1 (en) Apparatus and method for recovering data in a memory system
US11829244B2 (en) Apparatus and method for programming data in a memory device
US11941289B2 (en) Apparatus and method for checking an error of a non-volatile memory device in a memory system
US20220130464A1 (en) Memory device supporting interleaved operations and memory system including the same
CN114153372A (zh) 在存储器***中控制和存储映射数据的设备和方法
US11775426B2 (en) Apparatus and method for securing a free memory block in a memory system
US11854657B2 (en) Memory device and memory system supporting interleaving operation and operation method thereof
US20240012563A1 (en) Apparatus and method for programming or reading data based on a program status of a non-volatile memory device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20210720

WW01 Invention patent application withdrawn after publication