CN109426580B - 数据存储设备及其操作方法 - Google Patents

数据存储设备及其操作方法 Download PDF

Info

Publication number
CN109426580B
CN109426580B CN201810376864.1A CN201810376864A CN109426580B CN 109426580 B CN109426580 B CN 109426580B CN 201810376864 A CN201810376864 A CN 201810376864A CN 109426580 B CN109426580 B CN 109426580B
Authority
CN
China
Prior art keywords
decoding
target memory
memory cell
decision decoding
read
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.)
Active
Application number
CN201810376864.1A
Other languages
English (en)
Other versions
CN109426580A (zh
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 CN109426580A publication Critical patent/CN109426580A/zh
Application granted granted Critical
Publication of CN109426580B publication Critical patent/CN109426580B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • 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
    • 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/1128Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
    • 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/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
    • 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
    • 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/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • 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/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
    • H03M13/3715Adaptation to the number of estimated errors or to the channel state
    • 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
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50004Marginal testing, e.g. race, voltage or current testing of threshold voltage
    • 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
    • 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/13Linear codes
    • H03M13/136Reed-Muller [RM] 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] 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/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming 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/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory 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/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

Landscapes

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

Abstract

本发明涉及一种数据存储设备,其包括非易失性存储器装置以及控制器,该控制器被配置成对从目标存储器单元读取的正常读取数据进行解码,当正常读取数据的解码失败时,计算用于包括目标存储器单元的目标存储块的历史读取电压的标准偏差,将计算出的标准偏差与预设第一阈值和预设第二阈值进行比较,以及基于比较结果确定用于目标存储器单元的解码类型和解码顺序。

Description

数据存储设备及其操作方法
相关申请的交叉引用
本申请要求于2017年8月25日提交的申请号为10-2017-0107696的韩国专利申请的优先权,其全部内容通过引用并入本文。
技术领域
各个实施例可总体涉及一种半导体设备,且更特别地,涉及一种数据存储设备及其操作方法。
背景技术
近年来,计算机环境范例已经变成可随时随地使用计算机***的普适计算。因此,诸如移动电话、数码相机和膝上型计算机的便携式电子设备的使用正在迅速增加。通常,便携式电子设备使用采用了存储便携式电子设备使用的数据的存储器装置的数据存储设备。
因为使用存储器装置的数据存储设备不包括机械驱动单元,所以其具有优异的稳定性和耐久性。进一步地,使用存储器装置的数据存储设备的优点在于其可更快地访问数据并消耗更少的电力。具有这种优点的数据存储设备的非限制性示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡、通用闪速存储(UFS)装置以及固态驱动器(SSD)等。
发明内容
实施例涉及一种具有提高的读取性能的数据存储设备及其操作方法。
在本公开的实施例中,一种数据存储设备,其包括:非易失性存储器装置;以及控制器,被配置成对从目标存储器单元读取的正常读取数据进行解码,当对正常读取数据的解码失败时,计算用于包括有目标存储器单元的目标存储块的历史读取电压的标准偏差,将计算出的标准偏差与预设第一阈值和预设第二阈值进行比较,以及基于比较结果确定用于目标存储器单元的解码类型和解码顺序。
在本公开的实施例中,一种数据存储设备的操作方法,其包括:确定对从目标存储器单元读取的正常读取数据的解码是否失败;当对正常读取数据的解码失败时,计算用于包括有目标存储器单元的目标存储块的历史读取电压的标准偏差;将标准偏差与预设第一阈值和预设第二阈值进行比较,以及基于比较结果确定用于目标存储器单元的解码类型和解码顺序。
在本公开的实施例中,一种数据处理***,其包括:主机设备;以及数据存储设备,其可操作地联接到主机设备并且包括:非易失性存储器装置;以及控制器,被配置成对从目标存储器单元读取的正常读取数据进行解码,当正常读取数据的解码失败时,计算用于包括有目标存储器单元的目标存储块的历史读取电压的标准偏差,将计算出的标准偏差与预设第一阈值和预设第二阈值进行比较,以及基于比较结果确定用于目标存储器单元的解码类型和解码顺序。
下面在题为“具体实施方式”的部分中描述了这些和其它特征、方面和实施例。
附图说明
从以下结合附图的详细描述中将更清楚地理解本公开的主题的上述和其它方面、特征和优点,其中:
图1是示出根据本公开的实施例的数据存储设备的框图;
图2是示出图1所示的ECC单元的框图;
图3是示出图1所示的历史读取表的示图;
图4是示出根据本公开的实施例的数据存储设备的操作方法的流程图;
图5是示出根据本公开的实施例的包括固态驱动器(SSD)的数据处理***的示图;
图6是示出图5所示的控制器的示图;
图7是示出根据本公开的实施例的包括数据存储设备的数据处理***的示图;
图8是示出根据本公开的实施例的包括数据存储设备的数据处理***的示图;
图9是示出根据本公开的实施例的包括数据存储设备的网络***的示图;并且
图10是示出根据本公开的实施例的包括在数据存储设备中的非易失性存储器装置的框图。
具体实施方式
将参照附图更详细地描述本发明的各个实施例。附图是各个实施例(和中间结构)的示意图。这样,将预期到由于例如制造技术和/或容差而导致的图示配置和形状的变化。因此,所描述的实施例不应被解释为受限于本文所示的特定配置和形状,而是可包括不脱离如所附权利要求所限定的本发明的实质和范围的配置和形状的偏差。
在本文中参考本发明的理想化实施例的横截面和/或平面图来描述本发明。然而,本发明的实施例不应被解释为限制本发明的构思。尽管将示出和描述本发明的一些实施例,但本领域普通技术人员将理解的是,在不脱离本发明的原理和实质的情况下,可在这些实施例中进行改变。
图1是示出根据本公开的实施例的数据存储设备10的框图。图2是示出图1的错误校正码(ECC)单元230的示图。图3是示出图1的历史读取表HRT的示图。
参照图1,数据存储设备10可存储待由诸如手机、MP3播放器、膝上型计算机、台式计算机、游戏机、电视(TV)或车载信息娱乐***等的主机设备(未示出)访问的数据。数据存储设备10也可被称为存储器***。
数据存储设备10可被制造成各种类型的存储设备中的任何一种,并且可经由合适的接口可操作地联接到主机设备,其中接口能够根据主机设备的通信协议与主机通信。例如,数据存储设备10可被配置成诸如以下的各种形式:固态驱动器(SSD),MMC、eMMC、RS-MMC和微型-MMC形式的多媒体卡,SD、迷你-SD和微型-SD形式的安全数字卡,通用串行总线(USB)存储装置,通用闪速存储(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,***组件互连(PCI)卡型存储装置,高速PCI(PCI-E)卡型存储装置,标准闪存(CF)卡,智能媒体卡,记忆棒等。
数据存储设备10可被制造成各种类型的封装中的任何一种。例如,数据存储设备10可被制造成诸如以下的各种封装类型中的任何一种:堆叠封装(POP)、***级封装(SIP)、片上***(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)以及晶圆级堆叠封装(WSP)。
数据存储设备10可包括非易失性存储器装置100和控制器200。
非易失性存储器装置100可操作为数据存储设备10的存储介质。非易失性存储器装置100可包括诸如以下的各种类型的非易失性存储器装置中的任何一种:NAND闪速存储器装置、NOR闪速存储器装置、使用铁电电容器的铁电随机存取存储器(FRAM)、使用隧穿磁阻(TMR)层的磁性随机存取存储器(MRAM)、使用硫族化物合金的相变随机存取存储器(PRAM)以及使用过渡金属化合物的电阻式随机存取存储器(RERAM)。
为了清楚起见,在图1中已经示出数据存储设备10包括一个非易失性存储器装置100,但数据存储设备10可包括多个非易失性存储器装置。数据存储设备10可同样被实施为具有多个非易失性存储器装置。
非易失性存储器装置100可包括存储器单元阵列110,存储器单元阵列110包括被布置在多个位线(未示出)和多个字线(未示出)彼此交叉的区域中的多个存储器单元。在实施例中,存储器单元阵列110可包括多个存储块B1至Bm,并且多个存储块B1至Bm中的每一个可包括多个页面P1至Pn。
存储器单元阵列110中的存储器单元中的每一个可以是其中存储单个位数据(例如,1位数据)的单层单元(SLC)、其中存储2位数据的多层单元(MLC)、其中存储3位数据的三层单元(TLC)以及其中存储4位数据的四层单元QLC之中的至少一个。存储器单元阵列110中的存储器单元可以具有SLC和/或MLC类型。存储器单元阵列110可具有二维(2D)水平结构或3D结构。3D结构可能通常是优选的,因为它允许较高的存储器单元密度。
控制器200可通过驱动加载到随机存取存储器(RAM)240上的固件和/或软件来控制数据存储设备10的全部操作。控制器200可解码和驱动代码类型的指令或算法,诸如固件或软件。控制器200可以以硬件或硬件和软件的组合来实施。
控制器200可包括主机接口单元210、处理器220、ECC单元230、RAM 240和存储器接口单元250。
主机接口单元210可根据主机设备的协议来执行主机设备和数据存储设备10之间的接口连接。例如,主机接口单元210可通过以下协议中的任何一种来与主机设备通信:USB协议、UFS协议、MMC协议、并行高级技术附件(PATA)协议、串行高级技术附件(SATA)协议、小型计算机***接口(SCSI)协议、串列SCSI(SAS)协议、PCI协议和高速PCI(PCI-E)协议。主机接口单元210还可提供主机设备和数据存储设备10之间的电力供应连接。
处理器220可被配置成微控制单元(MCU)或中央处理单元(CPU)。处理器220可处理从主机设备传输的请求。为了处理从主机设备传输的请求,处理器220可驱动加载到RAM240上的代码类型的指令或算法,例如固件,并控制诸如主机接口单元210、ECC单元230、RAM240、存储器接口单元250等的内部功能块以及非易失性存储器装置100。
处理器220可基于从主机设备传输的请求来生成用于控制非易失性存储器装置100的操作的控制信号,并将所生成的控制信号提供给存储器接口单元250。
ECC单元230可被配置成校正从非易失性存储器装置100读取的数据(“读取数据”)中包括的错误。ECC单元230可通过根据错误校正码对读取数据进行解码,来校正错误。错误校正码可包括各种类型的错误校正码,例如博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem,BCH)码、里德-所罗门(Reed-Solomon,RS)码、里德-马勒(Reed-Muller,RM)码、汉明码、卷积码、低密度奇偶校验(LDPC)码。
参照图2,ECC单元230可包括第一硬判决解码器231、第二硬判决解码器233、第一软判决解码器235和第二软判决解码器237。应注意的是,图2示出了ECC单元230仅包括解码器,然而,对于本领域技术人员显而易见的是,ECC单元230还包括至少一个被配置成执行ECC编码操作的编码器。
第一硬判决解码器231可被配置成根据硬判决算法执行第一硬判决解码,其中第一硬判决解码用于对通过基于历史读取电压的第一读取操作从非易失性存储器装置100读取的第一读取数据中包括的错误进行校正。例如,BCH码、RS码、RM码、汉明码等可用于硬判决解码。
历史读取电压可以指当最后解码操作成功的读取数据被从包括有待被读取的目标存储器区域的目标存储块中读取时所使用的读取电压。包括在非易失性存储器装置100中的存储块B1至Bm中的每一个的历史读取电压可被存储在历史读取表HRT中,其中历史读取表HRT以表的形式设置在RAM 240中。在历史读取表HRT中,历史读取电压可被存储为预设初始读取电压的偏移值,但其不限于此。稍后将参照图3详细描述实施例中的历史读取表HRT。
第二硬判决解码器233可被配置成根据硬判决算法执行第二硬判决解码,其中第二硬判决解码用于对通过基于读取重试电压和最佳读取电压的第二读取操作从非易失性存储器装置100读取的第二读取数据中包括的错误进行校正。
读取重试电压可以指与预设初始读取电压相比具有特定电压差的读取电压。多个读取重试电压可被存储在读取重试电压表中,其中读取重试电压表以表的形式设置在RAM240中。例如,读取重试表可被配置成包括与初始读取电压相比具有特定电压差的多个读取电压。在另一示例中,读取重试表可被配置成包括相对于初始读取电压的偏移值、读取次数等。
最佳读取电压可以指与其中阈值电压分布彼此重叠的谷形部分对应的读取电压。可通过基于预设初始读取电压来计算阈值电压分布的斜率(slope)并且基于计算出的斜率来估计其中阈值电压分布彼此重叠的谷形部分,来获得最佳读取电压。
第一软判决解码器235可被配置成根据软判决算法执行第一软判决解码,其中第一软判决解码用于对通过基于与第一最终读取电压相比具有细微电压差的多个读取电压(在下文中,称为“第一软判决读取电压”)的多个读取操作,从非易失性存储器装置100读取的多个第三读取数据片中包括的错误进行校正。例如,卷积码、LDPC码等可用于软判决解码。硬判决解码和软判决解码是相关领域中的公知技术,因此将省略对其的详细描述。在第一软判决解码器235中使用的第一最终读取电压可以指在第一硬判决解码器231中使用的最终读取电压。例如,通过使用与最后存储在历史读取表HRT中的历史读取电压相比具有微小电压差的多个第一软判决读取电压,第一软判决解码器235可读取第三读取数据,并且可检测并校正包括在第三读取数据中的错误。
第二软判决解码器237可被配置成根据软判决算法执行第二软判决解码,其中第二软判决解码用于对通过基于与第二最终读取电压相比具有微小电压差的多个读取电压(在下文中,称为“第二软判决读取电压”)的多个读取操作,从非易失性存储器装置100读取的多个第四读取数据片中包括的错误进行校正。
在第二软判决解码器237中使用的第二最终读取电压可以指在第二硬判决解码器233中使用的最终读取电压。例如,通过使用与第二硬判决解码器233中使用的读取重试电压和最佳读取电压中的、被最后使用的读取电压相比具有微小电压差的多个第二软判决读取电压,第二软判决解码器237可读取第四读取数据,并且检测并校正包括在第四读取数据中的错误。
重新参照图1,RAM 240可包括诸如动态RAM(DRAM)或静态RAM(SRAM)的随机存取存储器。RAM 240可存储通过处理器220驱动的固件。RAM 240可存储驱动固件所需的数据,例如元数据。例如,RAM 240可操作为处理器220的工作存储器。
RAM 240可被配置成临时存储待从主机设备传输到非易失性存储器装置100的编程数据,以及待从非易失性存储器装置100传输到主机设备的读取数据。例如,RAM 240可操作为缓冲存储器。
历史读取表HRT可被存储在RAM 240中。例如,历史读取表HRT可在初始状态下生成,初始状态例如为其中每当数据存储设备10的电源接通时,默认值被存储在RAM 240中的历史读取表HRT的每一个条目中的状态。作为示例,在图3所示的实施例中,“0(零)”被用作默认值,但默认值不限于此。
参照图3,已经示出了用于存储3位数据的TLC的历史读取电压。然而,用于SLC和其它类型的MLC单元的历史读取电压也可被存储在历史读取表HRT中。
历史读取表HRT可包括用于非易失性存储器装置100中包括的多个存储块B1至Bm中的每一个存储块的多个历史读取电压组HRVG。如上所述,当存储块B1至Bm的存储器单元为TLC时,历史读取电压组HRVG中的每一个可包括七个历史读取电压ΔRVt1至ΔRVt7
在图3中已经示出了存储块B1至Bm中的每一个中包括五个读取电压组(HRVG),但历史读取电压组HRVG的数量不限于此。包括在历史读取电压组HRVG中的历史读取电压ΔRVt1至ΔRVt7可以是相对于初始读取电压的偏移值。
重新参照图1,当从主机设备接收到读取请求时,处理器220可生成用于从被请求读取的目标存储器区域读取数据的正常读取命令,并且将该正常读取命令提供至非易失性存储器装置100。例如,正常读取命令可以指用于基于预设初始读取电压来执行读取操作的读取命令。
非易失性存储器装置100可响应于从处理器220提供的正常读取命令,通过对目标存储器区域执行正常读取操作来读取数据,并且将正常读取数据传输到处理器220。处理器220可控制ECC单元230通过对接收到的正常读取数据进行解码,来校正正常读取数据中包括的错误。当对正常读取数据的解码成功时,处理器220可将经错误校正的正常读取数据传输到主机设备。当对正常读取数据的解码失败时,处理器220可参考存储在RAM 240中的历史读取表HRT来确定是否存在用于目标存储块的历史读取电压,其中目标存储块包括目标存储器区域。
当不存在用于目标存储块的历史读取电压时,处理器220可控制ECC单元230顺序地对目标存储器区域执行第二硬判决解码和第二软判决解码。例如,可根据第二硬判决解码是否成功来确定第二软判决解码的执行。在该示例中,当第二硬判决解码成功时,可不执行第二软判决解码。
当存在用于目标存储块的历史读取电压时,处理器220可确定历史读取电压的数量是否等于或大于n,其中n为2或更大的自然数。例如,当历史读取电压的数量小于2时,处理器220可控制ECC单元230顺序地对目标存储器区域执行第一硬判决解码、第二硬判决解码和第二软判决解码。在该示例中,可根据第一硬判决解码是否成功来确定第二硬判决解码的执行,并且可根据第二硬判决解码是否成功来确定第二软判决解码的执行。
当历史读取电压的数量等于或大于n时,处理器220可计算历史读取电压的标准偏差。例如,可假设目标存储器区域为包括在第一存储块B1中的区域,并且第一存储块B1的三个第一历史读取电压ΔRVt1和三个第五历史读取电压ΔRVt5被存储在历史读取表HRT中。在该示例中,处理器220可计算存储在历史读取表HRT中的三个第一历史读取电压ΔRVt1的标准偏差和存储在历史读取表HRT中的三个第五历史读取电压ΔRVt5的标准偏差。
处理器220可将计算出的标准偏差与预设第一阈值和预设第二阈值进行比较。例如,第二阈值可大于第一阈值。在该示例中,第一阈值可以是与相应存储块可被确定为良性存储块(good memory block)的最大值对应的值,并且第二阈值可以是与相应存储块可被确定为坏存储块(bad memory block)的最小值对应的值。
处理器220可确定标准偏差是否大于第一阈值且小于第二阈值。当标准偏差大于第一阈值且小于第二阈值时,处理器220可确定目标存储块不是坏存储块或者良性存储块。处理器220可控制非易失性存储器装置100的操作和ECC单元230的操作,以顺序地对目标存储器区域执行第一硬判决解码和第一软判决解码。例如,用于第一硬判决解码和第一软判决解码的读取电压可以是最后存储在历史读取表HRT中的历史读取电压。可根据第一硬判决解码是否成功来确定第一软判决解码的执行。
处理器220可确定第一软判决解码是否成功并且当第一软判决解码成功时终止相应的读取操作。当第一软判决解码失败时,处理器220可控制非易失性存储器装置100的操作和ECC单元230的操作,以顺序地对目标存储器区域执行第二硬判决解码和第二软判决解码。可根据第二硬判决解码是否成功来确定第二软判决解码的执行。
当标准偏差不在第一阈值和第二阈值之间时,处理器220可确定标准偏差是否等于或小于第一阈值。当标准偏差不等于或小于第一阈值时,处理器220可确定标准偏差等于或大于第二阈值并且可将目标存储块确定为坏存储块。处理器220可控制非易失性存储器装置100的操作和ECC单元230的操作,以跳过第一硬判决解码并直接对目标存储器区域执行第一软判决解码操作。例如,处理器220可控制非易失性存储器装置100的操作和ECC单元230的操作,以根据第一软判决解码是否成功来顺序地执行第二硬判决解码和第二软判决解码。
当标准偏差等于或小于第一阈值时,处理器220可将目标存储块确定为良性存储块。处理器220可控制非易失性存储器装置100的操作和ECC单元230的操作,以对目标存储器区域顺序地执行第一硬判决解码和第二硬判决解码。例如,可根据第一硬判决解码是否成功来确定第二硬判决解码的执行。
当标准偏差大于第一阈值且小于第二阈值时,处理器220可确定目标存储块不是坏存储块或者良性存储块,并且处理器220可在执行第一硬判决解码之后,跳过第二硬判决解码并执行第一软判决解码。当标准偏差等于或小于第一阈值时,处理器220可确定目标存储块是良性存储块,并且处理器220可在执行第一硬判决解码之后,跳过第一软判决解码并执行第二硬判决解码。当标准偏差等于或大于第二阈值时,处理器220可将目标存储块确定为坏存储块,并且处理器220可跳过第一硬判决解码并直接执行第一软判决解码。例如,当第一软判决解码失败时,处理器220可顺序地执行第二硬判决解码和第二软判决解码。
如上所述,数据存储设备10可基于历史读取电压的标准偏差来确定相应存储块的状态是坏存储块还是良性存储块,并且根据确定结果选择并设置解码类型和解码顺序。因此,可通过减少不必要的读取次数来防止存储器单元的劣化,并且可通过减少读取次数来提高读取性能。
存储器接口单元250可根据处理器220的控制来控制非易失性存储器装置100。存储器接口单元250可被称为存储器控制单元。存储器接口单元250可将控制信号提供至非易失性存储器装置100。控制信号可包括用于控制非易失性存储器装置100的命令、地址、控制信号等。作为存储器控制单元的存储器接口单元250可将数据提供至非易失性存储器装置100或者从非易失性存储器装置100接收数据。
在下文中,将参照图4以及图1至3的配置一起描述根据实施例的数据存储设备的操作方法。
图4是示出根据本公开的实施例的数据存储设备的操作方法的流程图。
在操作S401中,控制器200的处理器220可控制ECC单元230,通过对接收到的、从被主机设备请求读取的目标存储器区域中读取的正常读取数据进行解码,来校正包括在正常读取数据中的错误。此处,正常读取数据可指通过预设初始读取电压从目标存储器区域读取的数据。ECC单元230可将正常读取数据的解码结果提供至处理器220。
在操作S403中,处理器220可基于从ECC单元230提供的解码结果来确定正常读取数据的解码是否失败。当对正常读取数据的解码成功(操作S403中为“否”)时,处理器220可将经错误校正的正常读取数据传输到主机设备并且终止对目标存储器区域的读取操作。当正常读取数据的解码失败(操作S403中为“是”)时,处理器220可继续进行至操作S405。
在操作S405中,处理器220可参考存储在RAM 240中的历史读取表HRT来确定是否存在用于与目标存储器区域对应的目标存储块的历史读取电压。当不存在用于目标存储块的历史读取电压(操作S405中为“否”)时,处理器220可继续进行至操作S433。当存在用于目标存储块的历史读取电压(操作S405中为“是”)时,处理器220可继续进行至操作S407。
在操作S407中,处理器220可确定用于目标存储块的历史读取电压的数量是否等于或大于n。此处,n为等于或大于2的自然数,但不限于此。当用于目标存储块的历史读取电压的数量等于或大于n(操作S407中为“是”)时,处理器220可继续进行至操作S409。
在操作S409中,处理器220可计算用于目标存储块的历史读取电压的标准偏差。
在操作S411中,处理器220可将在操作S409中计算出的标准偏差与预设第一阈值和预设第二阈值进行比较,并确定标准偏差是否大于第一阈值且小于第二阈值。当标准偏差大于第一阈值且小于第二阈值(操作S411中为“是”)时,处理器220可确定目标存储块不是坏存储块或良性存储块。处理器220可继续进行至操作S413。
在操作S413中,处理器220可控制非易失性存储器装置100和ECC单元230以对目标存储器区域执行第一硬判决解码。例如,处理器220可参考历史读取表HRT、基于最后存储的用于目标存储块的历史读取电压,来生成用于执行第一读取操作的第一读取命令,并且将所生成的第一读取命令提供至非易失性存储器装置100。非易失性存储器装置100可响应于从处理器220提供的第一读取命令,将从目标存储器区域读取的第一读取数据传输到控制器200。处理器220可控制ECC单元230对接收到的第一读取数据执行第一硬判决解码。ECC单元230可将对第一读取数据的第一硬判决解码结果提供至处理器220。
在操作S415中,处理器220可基于从ECC单元230提供的第一硬判决解码结果来确定对第一读取数据的解码是否成功。当对第一读取数据的解码成功(操作S415中为“是”)时,处理器220可将经错误校正的第一读取数据传输到主机设备并且终止对目标存储器区域的读取操作。当第一读取数据的解码失败(操作S415中为“否”)时,处理器220可继续进行至操作S417。
在操作S417中,处理器220可控制非易失性存储器装置100和ECC单元230对目标存储器区域执行第一软判决解码。例如,处理器220可基于与最后存储的、用于目标存储块的历史读取电压相比具有微小电压差的多个第一软判决读取电压,来生成用于执行第三读取操作的第三读取命令并且将所生成的第三读取命令提供至非易失性存储器装置100。非易失性存储器装置100可响应于从处理器220提供的第三读取命令,将从目标存储器区域读取的第三读取数据传输到控制器200。处理器220可控制ECC单元230对接收到的第三读取数据执行第一软判决解码。
在操作S419中,处理器220可基于从ECC单元230提供的第一软判决解码结果来确定对第三读取数据的解码是否成功。当第三读取数据的解码成功(操作S419中为“是”)时,处理器220可将经错误校正的第三读取数据传输到主机设备并且终止对目标存储器区域的读取操作。当第三读取数据的解码失败(操作S419中为“否”)时,处理器220可继续进行至操作S433。稍后将描述操作S433、S435和S437。
当作为操作S411的确定结果,标准偏差不在第一阈值和第二阈值之间(步骤S411中为“否”)时,处理器220可继续进行至操作S421。
在操作S421中,处理器220可确定标准偏差是否等于或小于第一阈值。当标准偏差大于第一阈值(操作S421中为“否”)时,处理器220可确定目标存储块为坏存储块,并且继续进行至操作S417。当标准偏差等于或小于第一阈值(操作S421中为“是”)时,处理器220可确定目标存储块为良性存储块,并且可继续进行至操作S423。
在操作S423中,处理器220可控制非易失性存储器装置100和ECC单元230对目标存储器区域执行第一硬判决解码。
在操作S425中,处理器220可基于从ECC单元230提供的第一硬判决解码结果来确定对第一读取数据的解码是否成功。当对第一读取数据的解码成功(操作S425中为“是”)时,处理器220可将经错误校正的第一读取数据传输到主机设备并且终止对目标存储器区域的读取操作。当第一读取数据的解码失败(操作S425中为“否”)时,处理器100可继续进行至操作S427。
在操作S427中,处理器220可控制非易失性存储器装置100和ECC单元230对目标存储器区域执行第二硬判决解码。例如,处理器220可基于存储在读取重试表中的读取重试电压和最佳读取电压来生成用于执行第二读取操作的第二读取命令,并且将所生成的第二读取命令提供至非易失性存储器装置100。非易失性存储器装置100可将响应于从处理器220提供的第二读取命令,将从目标存储器区域读取的第二读取数据传输到控制器200。处理器220可控制ECC单元230对接收到的第二读取数据执行第二硬判决解码。
在操作S407中,当用于目标存储块的历史读取电压的数量小于n(操作S407中为“否”)时,处理器220可继续进行至操作S429。
在操作S429中,处理器220可控制非易失性存储器装置100和ECC单元230对目标存储器区域执行第一硬判决解码。
在操作S431中,处理器220可基于从ECC单元230提供的第一硬判决解码结果来确定第一读取数据的解码是否成功。当第一读取数据的解码成功(操作S431中为“是”)时,处理器220可将经错误校正的第一读取数据传输到主机设备并且终止对目标存储器区域的读取操作。当对第一读取数据的解码失败(操作S431中为“否”)时,处理器220可继续进行至操作S433。
在操作S433中,处理器220可控制非易失性存储器装置100和ECC单元230对目标存储器区域执行第二硬判决解码。
在操作S435中,处理器220可基于从ECC单元230提供的第二硬判决解码结果来确定第二读取数据的解码是否成功。当第二读取数据的解码成功(操作S435中为“是”)时,处理器220可将经错误校正的第二读取数据传输到主机设备,且终止对目标存储器区域的读取操作。当第二读取数据的解码失败(操作S435中为“否”)时,处理器220可继续进行至操作S437。
在操作S437中,处理器220可控制非易失性存储器装置100和ECC单元230对目标存储器区域执行第二软判决解码。例如,处理器220可基于与存储在读取重试表中的读取重试电压和最佳读取电压之中的、最后使用的读取电压相比具有微小电压差的多个第二软判决读取电压,来生成用于执行第四读取操作的第四读取命令,并将生成的第四读取命令提供至非易失性存储器装置100。非易失性存储器装置100可将响应于从处理器220提供的第四读取命令从目标存储器区域读取的第四读取数据传输到控制器200。处理器220可控制ECC单元230对接收到的第四读取数据执行第二软判决解码。
图5是示出根据本公开的实施例的包括固态驱动器(SSD)2200的数据处理***2000的示图。参照图5,数据处理***2000可包括主机设备2100和SSD 2200。
SSD 2200可包括控制器2210、缓冲存储器装置2220、多个非易失性存储器装置2231至223n、电源2240、信号连接器2250和电源连接器2260。
控制器2210可控制SSD 2220的全部操作。
缓冲存储器装置2220可临时存储待被存储在非易失性存储器装置2231至223n中的数据。缓冲存储器装置2220可临时存储从非易失性存储器装置2231至223n读取的数据。被临时存储在缓冲存储器装置2220中的数据可根据控制器2210的控制被传输到主机设备2100或非易失性存储器装置2231至223n。
非易失性存储器装置2231至223n可用作SSD 2200的存储介质。非易失性存储器装置2231至223n可分别通过多个通道CH1至CHn联接到控制器2210。一个或多个非易失性存储器装置可联接到一个通道。联接到每一个通道的非易失性存储器装置可联接到相同的信号总线和相同的数据总线。
电源2240可将通过电源连接器2260输入的电力PWR提供至SSD2200的内部。电源2240可包括辅助电源2241。辅助电源2241可提供电力,使得即使发生突然断电,SSD 2200也正常地终止。辅助电源2241可包括能够充电电力PWR的大容量电容器。电源连接器2260可根据主机设备2100的供电方案而由各种类型的连接器配置。
控制器2210可通过信号连接器2250与主机设备2100交换信号SGL。信号SGL可包括命令、地址、数据等。信号连接器2250可根据主机设备2100和SSD 2200之间的接口连接方法而由各种类型的连接器配置。
图6是示出图5的控制器2210的示图。参照图6,控制器2210可包括主机接口单元2211、控制单元2212、随机存取存储器(RAM)2213、错误校正码(ECC)单元2214和存储器接口单元2215。
主机接口单元2211可根据主机设备2100的协议来执行主机设备2100和SSD 2200之间的接口连接。例如,主机接口单元2211可通过以下协议中的任何一种与主机设备2100进行通信:安全数字协议、通用串行总线(USB)协议、多媒体卡(MMC)协议、嵌入式MMC(eMMC)协议、个人计算机存储卡国际协会(PCMCIA)协议、并行高级技术附件(PATA)协议、串行高级技术附件(SATA)协议、小型计算机***接口(SCSI)协议、串列SCSI(SAS)协议、***组件互连(PCI)协议、高速PCI(PCI-E)协议和通用闪存(UFS)协议。主机接口单元2211可执行主机设备2100将SSD 2200识别为通用数据存储设备,例如,硬盘驱动器HDD,的磁盘模拟功能。
控制单元2212可分析并处理从主机设备2100输入的信号SGL。控制单元2212可根据用于驱动SDD 2200的固件和/或软件来控制内部功能块的操作。RAM 2213可操作为用于驱动固件或软件的工作存储器。
ECC单元2214可针对待被传输到非易失性存储器装置2231至223n的数据而生成奇偶校验数据。生成的奇偶校验数据可与该数据一起被存储在非易失性存储器装置2231至223n中。ECC单元2214可基于奇偶校验数据对从非易失性存储器装置2231至223n中读取的数据检测错误。当检测到的错误在可校正范围内时,ECC单元2214可校正检测到的错误。
存储器接口单元2215可根据控制单元2212的控制,将诸如命令和地址的控制信号提供至非易失性存储器装置2231至223n。存储器接口单元2215可根据控制单元2212的控制,与非易失性存储器装置2231至223n交换数据。例如,存储器接口单元2215可将存储在缓冲存储器装置2220中的数据提供至非易失性存储器装置2231至223n,或者将从非易失性存储器装置2231至223n读取的数据提供至缓冲存储器装置2220。
图7是示出根据本公开的实施例的包括数据存储设备3200的数据处理***3000的示图。参照图7,数据处理***3000可包括主机设备3100和数据存储设备3200。
主机设备3100可以以诸如印刷电路板(PCB)的板形式配置。虽然未在图7中示出,但主机设备3100可包括被配置成执行主机设备3100的功能的内部功能块。
主机设备3100可包括诸如插座、插槽或连接器的连接端子3110。数据存储设备3200可被安装在连接端子3110上。
数据存储设备3200可以以诸如PCB的板形式配置。数据存储设备3200可指存储器模块或存储卡。数据存储设备3200可包括控制器3210、缓冲存储器装置3220、非易失性存储器装置3231和3232、电源管理集成电路(PMIC)3240和连接端子3250。
控制器3210可控制数据存储设备3200的全部操作。控制器3210可被配置成具有与图6所示的控制器2210相同的配置。
缓冲存储器装置3220可临时存储待被存储在非易失性存储器装置3231和3232中的数据。缓冲存储器装置3220可临时存储从非易失性存储器装置3231和3232读取的数据。根据控制器3210的控制,被临时存储在缓冲存储器装置3220中的数据可被传输到主机设备3100或非易失性存储器装置3231和3232。
非易失性存储器装置3231和3232可用作数据存储设备3200的存储介质。
PMIC 3240可将通过连接端子3250输入的电力提供到数据存储设备3200的内部。PMIC 3240可根据控制器3210的控制来管理数据存储设备3200的电力。
连接端子3250可联接到主机设备3100的连接端子3110。通过连接端子3250,可在主机设备3100和数据存储设备3200之间传输诸如命令、地址、数据的信号和电力。根据主机设备3100与数据存储设备3200之间的接口连接方法,连接端子3250可以各种形式来配置。连接端子3250可被布置在数据存储设备3200的任何一侧。
图8是示出根据本公开的实施例的包括数据存储设备4200的数据处理***4000的示图。参照图8,数据处理***4000可包括主机设备4100和数据存储设备4200。
主机设备4100可以诸如PCB的板形式来配置。虽然未在图8中示出,但主机设备4100可包括被配置成执行主机设备4100的功能的内部功能块。
数据存储设备4200可以表面安装封装形式来配置。数据存储设备4200可通过焊球4250安装在主机设备4100上。数据存储设备4200可包括控制器4210、缓冲存储器装置4220和非易失性存储器装置4230。
控制器4210可控制数据存储设备4200的全部操作。控制器4210可被配置成具有与图6所示的控制器2210相同的配置。
缓冲存储器装置4220可临时存储待被存储在非易失性存储器装置4230中的数据。缓冲存储器装置4220可临时存储从非易失性存储器装置4230读取的数据。根据控制器4210的控制,被临时存储在缓冲存储器装置4220中的数据可被传输到主机设备4100或非易失性存储器装置4230。
非易失性存储器装置4230可用作数据存储设备4200的存储介质。
图9是示出根据本公开的实施例的包括数据存储设备5200的网络***5000的示图。参照图9,网络***5000可包括通过网络5500联接的服务器***5300和多个客户端***5410至5430。
服务器***5300可响应于多个客户端***5410至5430的请求来服务数据。例如,服务器***5300可存储从多个客户端***5410至5430提供的数据。在另一示例中,服务器***5300可将数据提供至多个客户端***5410至5430。
服务器***5300可包括主机设备5100和数据存储设备5200。数据存储设备5200可由图1的数据存储设备10、图5的数据存储设备2200、图7的数据存储设备3200或图8的数据存储设备4200来配置。
图10是示出根据本公开的实施例的包括在数据存储设备中的非易失性存储器装置100的框图。参照图10,非易失性存储器装置100可包括存储器单元阵列110、行解码器120、列解码器140、数据读取/写入块130、电压发生器150和控制逻辑160。
存储器单元阵列110可包括布置在字线WL1至WLx和位线BL1至BLy彼此交叉的区域中的存储器单元MC。
行解码器120可通过字线WL1至WLx联接到存储器单元阵列110。行解码器120可根据控制逻辑160的控制来进行操作。行解码器120可对从外部设备(未示出)提供的地址进行解码。行解码器120可基于解码结果来选择并驱动字线WL1至WLx。例如,行解码器120可将从电压发生器150提供的字线电压提供至字线WL1至WLx。
数据读取/写入块130可通过位线BL1至BLy联接到存储器单元阵列110。数据读取/写入块130可包括对应于位线BL1至BLy的读取/写入电路RW1至RWy。数据读取/写入块130可根据控制逻辑160的控制来操作。根据操作模式,数据读取/写入块130可操作为写入驱动器或读出放大器。例如,数据读取/写入块130可操作为写入驱动器,其被配置成在写入操作中将从外部设备提供的数据存储在存储器单元阵列110中。在另一示例中,数据读取/写入块130可操作为读出放大器,其被配置成在读取操作中从存储器单元阵列110读取数据。
列解码器140可根据控制逻辑160的控制来进行操作。列解码器140可对从外部设备(未示出)提供的地址进行解码。列解码器140可基于解码结果将分别对应于位线BL1至BLy的数据读取/写入块130的读取/写入电路RW1至RWy与数据输入/输出(I/O)线(或数据I/O缓冲器)联接。
电压发生器150可生成用于非易失性存储器装置100的内部操作的电压。通过电压发生器150生成的电压可被施加到存储器单元阵列110的存储器单元。例如,可将在编程操作中生成的编程电压施加到待执行编程操作的存储器单元的字线。在另一示例中,在擦除操作中生成的擦除电压可被施加到待执行擦除操作的存储器单元的阱区。在另一示例中,在读取操作中生成的读取电压可被施加到待执行读取操作的存储器单元的字线。
控制逻辑160可基于从外部设备提供的控制信号来控制非易失性存储器装置100的全部操作。例如,控制逻辑160可控制非易失性存储器装置100的操作,例如非易失性存储器装置100的读取操作、写入操作和擦除操作。
本发明的上述实施例旨在说明而非限制本发明。各种替代方案和等同物是可能的。本发明不受本文所述的实施例的限制。本发明也不限于任何特定类型的半导体器装置。鉴于本公开,其它添加、删减或修改是显而易见的,并且旨在落入所附权利要求的范围内。

Claims (20)

1.一种数据存储设备,其包括:
非易失性存储器装置;以及
控制器,其被配置成:
使用针对包括目标存储器单元的目标存储块的先前成功解码中所使用的历史读取电压之一,对从所述非易失性存储器装置的所述目标存储器单元读取的正常读取数据进行解码,
当对所述正常读取数据的解码失败时,计算所述历史读取电压的标准偏差,
将所计算的标准偏差与预设第一阈值和预设第二阈值进行比较,
基于比较结果确定用于所述目标存储器单元的解码类型,
应用所确定的解码类型来解码所述目标存储器单元,
基于所述比较结果和应用所确定的解码类型来解码所述目标存储器单元的结果,确定用于所述目标存储器单元的解码顺序,以及
再次应用所确定的解码类型来解码所述目标存储器单元。
2.根据权利要求1所述的数据存储设备,其中所述控制器包括:
随机存取存储器,其被配置成存储历史读取表,用于所述非易失性存储器装置中包括的多个存储块中的每一个的多个历史读取电压被存储在所述历史读取表中;
错误校正码单元,即ECC单元,其包括:
第一硬判决解码器,其被配置成对所述目标存储器单元执行第一硬判决解码,
第二硬判决解码器,其被配置成对所述目标存储器单元执行第二硬判决解码,
第一软判决解码器,其被配置成对所述目标存储器单元执行第一软判决解码;
第二软判决解码器,其被配置成对所述目标存储器单元执行第二软判决解码;以及
处理器,其被配置成基于所述标准偏差与所述第一阈值和所述第二阈值的比较结果,控制所述ECC单元对所述目标存储器单元执行所述第一硬判决解码、所述第二硬判决解码、所述第一软判决解码和所述第二软判决解码中的至少一个或多个。
3.根据权利要求2所述的数据存储设备,其中当所述标准偏差大于所述第一阈值且小于所述第二阈值时,所述处理器控制所述ECC单元对所述目标存储器单元顺序地执行所述第一硬判决解码和所述第一软判决解码。
4.根据权利要求3所述的数据存储设备,其中
根据所述第一硬判决解码是否成功来确定所述第一软判决解码的执行,并且所述处理器确定所述第一软判决解码是否成功,并且当所述第一软判决解码失败时,所述处理器控制所述ECC单元顺序地执行所述第二硬判决解码和所述第二软判决解码。
5.根据权利要求2所述的数据存储设备,其中当所述标准偏差等于或小于第一阈值时,所述处理器控制所述ECC单元对所述目标存储器单元顺序地执行所述第一硬判决解码和所述第二硬判决解码。
6.根据权利要求2所述的数据存储设备,其中当所述标准偏差等于或大于所述第二阈值时,所述处理器控制所述ECC单元对所述目标存储器单元顺序地执行所述第一软判决解码、所述第二硬判决解码和所述第二软判决解码。
7.根据权利要求6所述的数据存储设备,其中所述处理器确定所述第一软判决解码是否成功,并且当所述第一软判决解码失败时,所述处理器控制所述ECC单元执行所述第二硬判决解码,并且
所述处理器确定所述第二硬判决解码是否成功,并且当所述第二硬判决解码失败时,所述处理器控制所述ECC单元执行所述第二软判决解码。
8.一种数据存储设备的操作方法,所述方法包括:
使用针对包括目标存储器单元的目标存储块的先前成功解码中所使用的历史读取电压之一,解码从所述数据存储设备的非易失性存储器装置的所述目标存储器 单元读取的正常读取数据;
确定对从所述目标存储器单元读取的正常读取数据的解码是否失败;
当对所述正常读取数据的解码失败时,计算所述历史读取电压的标准偏差;
将所述标准偏差与预设第一阈值和预设第二阈值进行比较;
基于比较结果确定用于所述目标存储器单元的解码类型;
应用所确定的解码类型来解码所述目标存储器单元,
基于所述比较结果和应用所确定的解码类型来解码所述目标存储器单元的结果,确定用于所述目标存储器单元的解码顺序,以及
再次应用所确定的解码类型来解码所述目标存储器单元。
9.根据权利要求8所述的方法,其中确定用于所述目标存储器单元的解码类型和解码顺序包括:
当所述标准偏差大于所述第一阈值且小于所述第二阈值时,对所述目标存储器单元执行第一硬判决解码;
确定所述第一硬判决解码是否成功;以及
当所述第一硬判决解码失败时,对所述目标存储器单元执行第一软判决解码。
10.根据权利要求9所述的方法,其中确定用于所述目标存储器单元的解码类型和解码顺序进一步包括:在执行所述第一软判决解码之后,
确定所述第一软判决解码是否成功;
当所述第一软判决解码失败时,对所述目标存储器单元执行第二硬判决解码;
确定所述第二硬判决解码是否成功;以及
当所述第二硬判决解码失败时,对所述目标存储器单元执行第二软判决解码。
11.根据权利要求8所述的方法,其中确定用于所述目标存储器单元的解码类型和解码顺序包括:
当所述标准偏差等于或小于所述第一阈值时,对所述目标存储器单元执行第一硬判决解码;
确定所述第一硬判决解码是否成功;以及
当所述第一硬判决解码失败时,对所述目标存储器单元执行第二硬判决解码。
12.根据权利要求8所述的方法,其中确定用于所述目标存储器单元的解码类型和解码顺序包括:
当所述标准偏差等于或大于所述第二阈值时,对所述目标存储器单元执行第一软判决解码;
确定所述第一软判决解码是否成功;
当所述第一软判决解码失败时,对所述目标存储器单元执行第二硬判决解码;
确定所述第二硬判决解码是否成功;以及
当所述第二硬判决解码失败时,对所述目标存储器单元执行第二软判决解码。
13.根据权利要求8所述的方法,其中计算所述历史读取电压的标准偏差包括:
确定用于所述目标存储块的所述历史读取电压的数量是否等于或大于n;以及
当所述历史读取电压的数量等于或大于n时,计算所述历史读取电压的标准偏差。
14.根据权利要求13所述的方法,其中n为2或更大的自然数。
15.根据权利要求13所述的方法,其进一步包括:
在确定所述历史读取电压的数量是否等于或大于n之前,确定是否存在用于所述目标存储块的所述历史读取电压,
其中当存在用于所述目标存储块的所述历史读取电压时,执行确定所述历史读取电压的数量是否等于或大于n。
16.根据权利要求15所述的方法,其进一步包括:
当不存在用于所述目标存储块的所述历史读取电压时,顺序地执行第二硬判决解码和第二软判决解码。
17.一种数据处理***,其包括:
主机设备;以及
数据存储设备,其可操作地联接到所述主机设备并且包括:
非易失性存储器装置;以及
控制器,其被配置成:
使用针对包括目标存储器单元的目标存储块的先前成功解码中所使用的历史读取电压之一,对从所述非易失性存储器装置的所述目标存储器单元读取的正常读取数据进行解码,
当对所述正常读取数据的解码失败时,计算所述历史读取电压的标准偏差,
将所计算的标准偏差与预设第一阈值和预设第二阈值进行比较,
基于比较结果确定用于所述目标存储器单元的解码类型,
应用所确定的解码类型来解码所述目标存储器单元,
基于所述比较结果和应用所确定的解码类型来解码所述目标存储器单元的结果,确定用于所述目标存储器单元的解码顺序,以及
再次应用所确定的解码类型来解码所述目标存储器单元。
18.根据权利要求17所述的数据处理***,其中所述数据存储设备被配置在印刷电路板中。
19.根据权利要求18所述的数据处理***,其中所述数据存储设备是存储器模块或存储卡。
20.根据权利要求17所述的数据处理***,其中所述数据存储设备被配置成表面安装封装形式。
CN201810376864.1A 2017-08-25 2018-04-25 数据存储设备及其操作方法 Active CN109426580B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170107696A KR20190022987A (ko) 2017-08-25 2017-08-25 데이터 저장 장치 및 그것의 동작 방법
KR10-2017-0107696 2017-08-25

Publications (2)

Publication Number Publication Date
CN109426580A CN109426580A (zh) 2019-03-05
CN109426580B true CN109426580B (zh) 2022-04-26

Family

ID=65435761

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810376864.1A Active CN109426580B (zh) 2017-08-25 2018-04-25 数据存储设备及其操作方法

Country Status (3)

Country Link
US (1) US10581458B2 (zh)
KR (1) KR20190022987A (zh)
CN (1) CN109426580B (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10063262B2 (en) 2011-02-28 2018-08-28 Inphi Corporation Non-concatenated FEC codes for ultra-high speed optical transport networks
KR102347184B1 (ko) * 2017-05-23 2022-01-04 삼성전자주식회사 스토리지 장치 및 상기 스토리지 장치의 동작 방법
JP2020149123A (ja) * 2019-03-11 2020-09-17 キオクシア株式会社 メモリシステム、及びメモリシステムの制御方法
KR102678472B1 (ko) 2019-07-17 2024-06-27 삼성전자주식회사 메모리 컨트롤러 및 이를 포함하는 저장 장치
US10963338B1 (en) * 2019-09-12 2021-03-30 Toshiba Memory Corporation System and method for decoder assisted dynamic log-likelihood ratio (LLR) estimation for NAND flash memories
KR20210079555A (ko) 2019-12-20 2021-06-30 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
US11424766B1 (en) 2020-01-31 2022-08-23 Marvell Asia Pte Ltd. Method and device for energy-efficient decoders
KR20210121650A (ko) 2020-03-31 2021-10-08 에스케이하이닉스 주식회사 반도체 메모리 장치, 컨트롤러 및 이들을 포함하는 메모리 시스템의 동작 방법
KR20210128704A (ko) * 2020-04-17 2021-10-27 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작 방법
CN111859040B (zh) * 2020-07-17 2022-05-13 苏州浪潮智能科技有限公司 一种数据匹配方法、装置及相关设备
TWI751620B (zh) 2020-07-23 2022-01-01 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
KR20220077766A (ko) 2020-12-02 2022-06-09 에스케이하이닉스 주식회사 반도체 메모리 장치, 컨트롤러 및 이들을 포함하는 메모리 시스템의 동작 방법
KR20220140052A (ko) 2021-04-08 2022-10-18 삼성전자주식회사 히스토리 테이블을 사용하는 스토리지 컨트롤러의 동작 방법, 및 스토리지 컨트롤러를 포함하는 스토리지 장치
KR20220143446A (ko) 2021-04-16 2022-10-25 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
CN113595562B (zh) * 2021-07-23 2023-05-09 深圳宏芯宇电子股份有限公司 软数据处理方法、装置、存储介质及解码器
KR102345067B1 (ko) 2021-08-25 2021-12-29 삼성전자주식회사 스토리지 장치 및 스토리지 컨트롤러의 구동 방법
US11894068B2 (en) * 2021-09-16 2024-02-06 Sandisk Technologies Llc Efficient sensing of soft bit data for non-volatile memory
US11971826B2 (en) 2021-09-16 2024-04-30 Sandisk Technologies Llc Architecture and data path options for compression of soft bit data in non-volatile memories
US11907545B2 (en) 2021-09-16 2024-02-20 Sandisk Technologies Llc On-the-fly multiplexing scheme for compressed soft bit data in non-volatile memories
US11971829B2 (en) 2021-09-16 2024-04-30 Sandisk Technologies Llc On-the-fly compression scheme for soft bit data in non-volatile memory
US11901019B2 (en) 2021-09-16 2024-02-13 Sandisk Technologies Llc Use of data latches for compression of soft bit data in non-volatile memories
KR102532038B1 (ko) * 2021-12-15 2023-05-12 삼성전자주식회사 에러 정정 코드(ecc) 디코딩 방법 및 이를 수행하는 메모리 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1822509A (zh) * 2004-10-04 2006-08-23 美国博通公司 低密度奇偶校验解码器及其解码方法
JP2008131364A (ja) * 2006-11-21 2008-06-05 Denso Corp 軟判定補正方法、受信装置、プログラム
CN101458954A (zh) * 2007-09-06 2009-06-17 三星电子株式会社 多位数据存储***和读取操作
US9437320B1 (en) * 2014-04-15 2016-09-06 Marvell International Ltd. Joint detecting and decoding system for nonvolatile semiconductor memory with reduced inter-cell interference

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009072101A2 (en) * 2007-12-05 2009-06-11 Densbits Technologies Ltd. Apparatus and methods for generating row-specific reading thresholds in flash memory
KR20110036816A (ko) 2008-06-24 2011-04-11 샌디스크 아이엘 엘티디 고체 상태 메모리의 소거 횟수에 따라 에러를 정정하기 위한 방법과 장치
US8315092B2 (en) 2010-01-27 2012-11-20 Fusion-Io, Inc. Apparatus, system, and method for determining a read voltage threshold for solid-state storage media

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1822509A (zh) * 2004-10-04 2006-08-23 美国博通公司 低密度奇偶校验解码器及其解码方法
JP2008131364A (ja) * 2006-11-21 2008-06-05 Denso Corp 軟判定補正方法、受信装置、プログラム
CN101458954A (zh) * 2007-09-06 2009-06-17 三星电子株式会社 多位数据存储***和读取操作
US9437320B1 (en) * 2014-04-15 2016-09-06 Marvell International Ltd. Joint detecting and decoding system for nonvolatile semiconductor memory with reduced inter-cell interference

Also Published As

Publication number Publication date
KR20190022987A (ko) 2019-03-07
US10581458B2 (en) 2020-03-03
CN109426580A (zh) 2019-03-05
US20190068222A1 (en) 2019-02-28

Similar Documents

Publication Publication Date Title
CN109426580B (zh) 数据存储设备及其操作方法
US11854596B2 (en) Data storage device and operating method thereof
CN110347530B (zh) 数据存储装置及其操作方法
CN109933280B (zh) 数据存储装置及其操作方法
CN111415699A (zh) 数据存储装置及其操作方法
CN111124273B (zh) 数据存储装置及数据存储装置的操作方法
US11599282B2 (en) Memory system for updating firmware when SPO occurs and operating method thereof
US12026398B2 (en) Memory system performing flush operation for buffer region
US20170286219A1 (en) Data storage device and operating method thereof
KR20190032104A (ko) 비휘발성 메모리 장치, 비휘발성 메모리 장치를 포함하는 데이터 저장 장치 및 그것의 동작 방법
CN111223514A (zh) 具有数据保持保护的电子设备及其操作方法
US10917111B2 (en) Error correction code unit and error correction method
CN112201296A (zh) 控制器、存储器***及其操作方法
CN112151100A (zh) 控制器、存储器***及其操作方法
US20230214151A1 (en) Memory system and operating method thereof
US20210011650A1 (en) Controller, memory system, and operating method thereof

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
GR01 Patent grant
GR01 Patent grant