CN108701491A - 错误率降低 - Google Patents

错误率降低 Download PDF

Info

Publication number
CN108701491A
CN108701491A CN201780012194.9A CN201780012194A CN108701491A CN 108701491 A CN108701491 A CN 108701491A CN 201780012194 A CN201780012194 A CN 201780012194A CN 108701491 A CN108701491 A CN 108701491A
Authority
CN
China
Prior art keywords
data
err
memory
amount
volumes
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.)
Granted
Application number
CN201780012194.9A
Other languages
English (en)
Other versions
CN108701491B (zh
Inventor
何德平
S·K·瑞特南
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.)
Micron Technology Inc
Original Assignee
Micron Technology 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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN108701491A publication Critical patent/CN108701491A/zh
Application granted granted Critical
Publication of CN108701491B publication Critical patent/CN108701491B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • 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/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/353Adaptation to the channel
    • 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/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/356Unequal error protection [UEP]
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/618Shortening and extension of 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/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6356Error control coding in combination with rate matching by repetition or insertion of dummy data, i.e. rate reduction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • 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
    • 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/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
    • 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/2933Coding, 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 using a block and a convolutional code
    • H03M13/2936Coding, 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 using a block and a convolutional code comprising an outer Reed-Solomon code and an inner convolutional 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/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/2966Turbo codes concatenated with another code, e.g. an outer block code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • H04L1/0066Parallel concatenated codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/007Unequal error protection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0098Unequal error protection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Mathematical Physics (AREA)
  • Read Only Memory (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)

Abstract

本发明包含用于错误率降低的设备及方法。一种实例性方法包括:将错误率降低ERR数据量增加到经接收用户数据量;及将所述用户数据量连同所述ERR数据量一起写入到存储器。

Description

错误率降低
技术领域
本发明大体上涉及半导体存储器设备及方法,且更特定来说涉及与存储器相关联的错误率降低。
背景技术
存储器装置通常被提供为计算机或其它电子装置中的内部半导体集成电路及/或外部可去除装置。存在许多不同类型的存储器,包含易失性存储器及非易失性存储器。易失性存储器可需要电力来维持其数据,且尤其可包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)。非易失性存储器可在未被供电时保持经存储数据,且尤其可包含NAND快闪存储器、NOR快闪存储器、相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM)及磁性随机存取存储器(MRAM)。
可将存储器装置组合在一起以形成固态硬盘(SSD)。SSD除包含各种其它类型的非易失性存储器及易失性存储器外,还可包含非易失性存储器(例如,NAND快闪存储器及/或NOR快闪存储器)且/或可包含易失性存储器(例如,DRAM及/或SRAM)。快闪存储器装置可包含将数据存储在电荷存储结构(举例来说,例如浮动栅极)中的存储器单元,且可用作广范围的电子应用的非易失性存储器。快闪存储器装置通常使用相对于各种其它存储器装置允许高存储器密度、高可靠性及低功耗的单晶体管存储器单元。
阵列架构中的存储器单元可经编程为目标(例如,所要)状态。例如,电荷可放置在存储器单元的电荷存储结构(例如,浮动栅极)上或从存储器单元的电荷存储结构去除以将所述单元编程为特定数据状态。存储器单元的电荷存储结构上的经存储电荷可指示所述单元的阈值电压(Vt)。
例如,单电平单元(SLC)可经编程为可由二进制单位1或0表示的两种不同数据状态的目标状态。一些快闪存储器单元可经编程为两种以上数据状态的目标状态(例如,1111、0111、0011、1011、1001、0001、0101、1101、1100、0100、0000、1000、1010、0010、0110及1110)。此些单元可称为多状态存储器单元、多单位单元或多电平单元(MLC)。MLC可提供更高密度的存储器,而不增加存储器单元的数目,这是因为每一单元可表示一个以上数字(例如,一个以上位)。
可通过感测单元的电荷存储结构上的经存储电荷(例如,Vt)来确定快闪存储器单元的状态。然而,多个机制(举例来说,例如读取干扰、程序干扰、单元间干扰及/或电荷损失(例如,电荷泄漏))可引起存储器单元的Vt改变。错误校正码(ECC)方案(例如,低密度奇偶检查(LDPC)、博斯-乍得胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghen)(BCH)及李德-所罗门(Reed-Solomon)(RS))已用来校正那些错误;然而,此些ECC方案通常具有有限错误校正能力。例如,各种ECC方案不能够进行超过阈值位错误率(BER)的错误校正。因而,与特定数据量相关联的位错误的数量的增加可导致BER超过ECC方案的能力,从而导致不可校正的ECC错误,这可导致例如数据损失。
附图说明
图1是根据本发明的多个实施例的呈包含能够进行错误率降低的存储器系统的计算系统的形式的设备的框图。
图2是根据本发明的多个实施例的包括可操作的存储器单元的阵列的存储器的部分的示意图。
图3说明根据本发明的多个实施例的与编程存储器单元相关联的图。
图4A说明根据先前方法的包括各种类型的数据的码字。
图4B说明根据本发明的多个实施例的包括包含ERR数据的各种类型的数据的码字。
图4C说明根据本发明的多个实施例的包括包含ERR数据的各种类型的数据的码字。
图5是根据本发明的多个实施例的与错误率降低相关联的设备的部分的功能框图。
具体实施方式
本发明包含用于与存储器相关联的错误率降低的设备及方法。一种实例性方法包括:将错误率降低(ERR)数据量增加到经接收用户数据量;及将所述用户数据量连同所述ERR数据量一起写入到存储器。
本发明的实施例可提供以下益处,举例来说,例如增大与存储器相关联的错误率(例如,位错误率)不超过特定ECC方案的校正能力的可能性。作为实例,考虑其相关联位错误率超过特定ECC方案的能力的存储器单元组(例如,单元的物理页、单元的块等),使得读取操作导致不可校正错误(例如,读取数据中的错误位的数量超过可由ECC方案校正的位的数量)。本发明的多个实施例可降低与存储器单元组相关联的有效位错误率,使得对存储器单元组执行的后续读取操作不会导致不可校正错误。防止错误率超过ECC方案的校正能力可提供以下益处,例如尤其是增大存储器的性能、可靠性及/或寿命。例如,一旦相关联位错误率超过特定阈值,即可停用存储器的部分(例如,页、块等)。然而,本发明的实施例可通过降低有效相关联位错误率来延长存储器的此些部分的使用,这可防止停用存储器部分。降低与单元组相关联的有效错误率使得其不超过ECC方案(例如,由控制器实施的特定ECC方案)的错误校正能力例如还可通过减少不可校正ECC错误来提高存储器的可靠性。
如本文中进一步描述,错误率降低(ERR)数据是指具有已知数据值(例如,二进制“0”或“1”)的数据单元(例如,位)的数量且根据本文中描述的实施例将ERR数据增加到用户数据量以降低与存储器相关联的有效错误率。在多个实施例中,ERR数据可取代页内的对应用户数据量,借此减少对应于页的用户数据量同时维持与存储器相关联的特定页大小。
在本发明的下文详细描述中,参考形成其部分且在其中通过说明方式展示可如何实践本发明的一或多个实施例的附图。以足够的细节描述这些实施例以使所属领域的一般技术人员能够实践本发明的实施例,且应理解,可利用其它实施例且可在不脱离本发明的范围的情况下作出程序、电及/或结构变化。如本文中使用,特定地关于附图中的参考符号的标示符“M”及“N”指示可包含如此标示的多个特定构件。如本文中使用,“多个”特定事物可指此些事物中的一或多者(例如,多个存储器装置可指一或多个存储器装置)。
本文中的图遵循编号惯例,其中(若干)第一个数字对应于附图的图号且剩余数字识别附图中的元件或组件。可通过使用类似数字来识别不同图之间的类似元件或组件。例如,110可指涉图1中的元件“10”,且类似元件可在图2中指涉为210。将明白,可增加、交换及/或消除本文中的各种实施例中展示的元件以提供本发明的多个额外实施例。另外,将明白,图中提供的元件的比例及相对尺度希望说明本发明的某些实施例,且不应被理解为限制性意义。
图1是根据本发明的多个实施例的呈包含能够进行错误率降低的存储器系统104的计算系统100的形式的设备的框图。
如本文中使用,存储器系统104、控制器108或存储器装置110还可单独地被视为“设备”。存储器系统104可例如为固态硬盘(SSD),且可包含主机接口106、控制器108(例如,定序器及/或其它控制电路)及可称为存储器110的多个存储器装置110。存储器110可包括例如为存储器系统104提供存储容量的多个固态存储器装置,例如NAND快闪装置。
控制器108可经由多个通道耦合到主机接口106及存储器110且可用来在存储器系统104与主机102之间传送数据。接口106可呈标准化接口的形式。例如,当存储器系统104用于计算系统100中的数据存储时,接口106可为串行高级技术附接(SATA)、高速外围组件互连(PCIe)或通用串行总线(USB)以及其它连接器及接口。然而,一般来说,接口106可提供用于在存储器系统104与具有接口106的兼容接纳器的主机102之间传递控制、地址、数据及其它信号的接口。
主机102可为主机系统,例如个人膝上型计算机、台式计算机、数码相机、移动电话或存储卡读卡器以及各种其它类型的主机。主机102可包含系统主板及/或底板,且可包含多个存储器存取装置(例如,多个处理器)。主机102还可为存储器控制器,例如在存储器系统104是存储器装置(例如,具有裸片上控制器的存储器装置)的情况下。
控制器108可与存储器110(其在一些实施例中可为单个裸片上的多个存储器阵列)通信以控制数据读取、写入及擦除操作以及其它操作。作为实例,控制器108可在与对应于存储器110的(若干)裸片相同或不同的裸片上。
尽管未明确说明,但控制器108可包含用于将控制器108耦合到存储器110的每一通道的离散存储器通道控制器。控制器108可包含例如呈硬件及/或固件(例如,一或多个集成电路)及/或软件的形式、用于控制对存储器110的存取及/或用于促进主机102与存储器110之间的数据传送的多个组件。
如图1中说明,控制器108可包含错误校正组件112(被展示为“ECC”)及错误率降低组件114(被展示为ERR)。错误校正组件112可包含例如代数错误校正电路,例如包含博斯-乍得胡里-霍昆格姆(BCH)错误校正电路及李德-所罗门错误校正电路的组中的一者,以及其它类型的错误校正电路。组件112不限于电路(例如,硬件)实施方案。例如,可以硬件、固件及/或软件实施组件112。而且,组件112不限于特定类型的错误校正方案。例如,组件112可为LDPC组件以及各种其它类型的ECC组件。尽管称为错误校正组件,但组件112可用来检测以及校正数据错误。另外,组件112可包含如下文进一步描述的错误编码及解码功能。例如,在多个实施例中,ECC组件112可编码(例如,用ECC数据)将写入到存储器110的组合量的用户数据及ERR数据。
ERR组件114可包含例如经配置以用ERR数据编码用户数据的电路,如本文中进一步描述。例如,组件114可用ERR数据取代对应于页大小的特定用户数据量。作为实例,组件114可经配置以在用户数据量(例如,从主机102接收的用户数据)间分布ERR数据量。由于ERR数据包括页内已知位置处的已知数据单元值,所以组件114还可经配置以在从存储器110读取具有不正确值的那些数据单元时确定所述数据单元,且校正经确定为不正确的那些数据单元。如下文进一步描述,在多个实施例中,组件114可经配置以在对数据页执行ECC解码操作之前校正ERR数据中经确定为不正确的那些数据单元。因而,在多个实施例中,ERR数据在连同对应用户数据一起经历ECC解码操作(例如,经由组件112)之前经校正(例如,通过组件114)。组件114不限于电路(例如,硬件)实施方案。例如,可在硬件、固件及/或软件中实施组件114。
ECC组件112及ERR组件114可为离散组件,例如专用集成电路(ASIC)或可反映控制器108内未必具有与控制器108的其它部分分离的离散物理形式的电路提供的功能的组件。尽管在图1中被说明为控制器108内的组件,但ECC组件112及ERR组件114可在控制器108外部或可具有定位在控制器108内的多个组件及定位在控制器108外部的多个组件。如图5中说明,在多个实施例中,ECC组件112及ERR组件114可包括单独的编码及解码组件。
存储器110可包含多个存储器单元(例如,非易失性存储器单元)阵列。例如,阵列可为具有NAND架构的快闪阵列。然而,实施例不限于特定类型的存储器阵列或阵列架构。尽管本文中通常指涉NAND架构中的浮动栅极类型的快闪存储器单元,但实施例不限于此。例如,存储器单元可分组成包含多个物理页的多个块。多个块可包含在存储器单元的平面中且阵列可包括多个平面。作为一个实例,存储器装置可经配置以每页存储8KB(千字节)的用户数据、每块存储128页的用户数据、每平面存储2048个块及每装置存储16个平面。
在操作中,例如,数据可作为页数据写入到存储器110及/或从存储器110读取。因而,页数据可称为存储器系统的数据传送大小。数据可呈称为扇区(例如,主机扇区)的数据分段往返于主机(例如,主机102)发送。因而,数据扇区可称为主机的数据传送大小。
图2是根据本发明的多个实施例的包括可操作的存储器单元的阵列的存储器210的部分的示意图。图2的实施例说明NAND架构非易失性存储器阵列;然而,本文中描述的实施例不限于这个实例。如图2中展示,存储器阵列包含存取线(例如,字线205-1、…、205-N)及相交数据线(例如,局部位线207-1、207-2、207-3、…、207-M)。为易于在数字环境中寻址,字线205-1、…、205-N的数目及局部位线207-1、207-2、207-3、…、207-M的数目可为2的一定幂次(例如,256个字线×4096个位线)。
存储器阵列包含NAND串209-1、209-2、209-3、…、209-M。每一NAND串包含非易失性存储器单元211-1、…、211-N,每一非易失性存储器单元通信地耦合到相应字线205-1、…、205-N。每一NAND串(及其构成存储器单元)还与局部位线207-1、207-2、207-3、…、207-M相关联。每一NAND串209-1、209-2、209-3、…、209-M的存储器单元211-1、…、211-N源极到漏极地串联耦合在源极选择栅极(SGS)(例如,场效晶体管(FET)213)与漏极选择栅极(SGD)(例如,FET 219)之间。每一源极选择栅极213经配置以响应于源极选择线217上的信号而将相应NAND串选择性地耦合到共同源极223,而每一漏极选择栅极219经配置以响应于漏极选择线215上的信号而将相应NAND串选择性地耦合到相应位线。
如图2中说明的实施例中所展示,源极选择栅极213的源极耦合到共同源极线223。源极选择栅极213的漏极耦合到对应NAND串209-1的存储器单元211-1的源极。漏极选择栅极219的漏极在漏极触点221-1处耦合到对应NAND串209-1的位线207-1。漏极选择栅极219的源极耦合到对应NAND串209-1的最后一个存储器单元211-N(例如,浮动栅极晶体管)的漏极。
在多个实施例中,非易失性存储器单元211-1、…、211-N的构造包含源极、漏极、浮动栅极或其它电荷存储结构及控制栅极。存储器单元211-1、…、211-N具有分别耦合到字线205-1、…、205-N的控制栅极。NOR阵列架构将类似地布局,但存储器单元的串将并联耦合在选择栅极之间。此外,NOR架构可提供对阵列中的存储器单元的随机存取(例如,与如使用NAND架构的基于页的存取相反)。
在操作中,耦合到选定字线(例如,205-1、…、205-N)的多个单元可作为组一起写入及/或读取。一起写入及/或读取的单元组可称为单元页(例如,物理页)且可存储多个数据页(例如,逻辑页)。例如,如下文关联图3进一步描述,存储器单元211-1、…、211-N可为经配置以存储一个以上数字(例如,位)的数据的多电平单元。在一些此类实例中,存储在每一多电平单元中的位可对应于数据的不同逻辑页。例如,2位单元的第一位可对应于数据的第一逻辑页(例如,下页),且2位单元的第二位可对应于数据的第二逻辑页(例如,上页)。每单元存储两个以上位的单元可包括对应于下数据页的第一位、对应于上数据页的第二位及对应于一或多个中间数据页的一或多个额外位。耦合到特定字线且一起编程为相应数据状态的多个单元可称为目标页。编程操作可包含将多个程序脉冲(例如,16V到20V)施加到选定字线以将耦合到那个选定字线的选定单元的阈值电压(Vt)增大到对应于目标数据状态的所要电压电平。
读取操作可包含感测耦合到选定单元的位线的电压及/或电流变化以便确定选定单元的状态。读取操作可包含预充电位线且在选定单元开始导电时感测放电。一种类型的读取操作包括将斜坡读取信号施加到选定字线,且另一类型的读取操作包括将多个离散读取信号施加到选定字线以确定单元的状态。
图3说明根据本发明的多个实施例的与编程存储器单元相关联的图。在这个实例中,存储器单元是3位存储器单元,其中每一单元可编程为八种数据状态(例如,L1到L8)中的一者,每一状态指示不同的3位经存储位模式(例如,111、011、001、101、100、000、010及110)。在多个实施例中,3位经存储位模式中的位中的每一者对应于不同数据页。例如,最低有效位(LSB)(如图3中加框展示的最右侧位)可对应于第一数据页(例如,下数据页),中间位可对应于第二数据页(例如,中间数据页),且最高有效位(MSB)(被展示为如在图3中由菱形符号包围的最左侧位)可对应于第三数据页(例如,上数据页)。因而,在这个实例中,单元页可存储三个数据页。
然而,实施例不限于存储三个数据位的多电平存储器单元。例如,多个实施例可包含经配置以存储多于或少于三个数据位及/或分数个数据位的存储器单元。而且,实施例不限于指派给数据状态L1到L8的特定位值。
图3中展示的图说明在下页编程(LPP)过程325、中间页编程(MPP)过程327及上页编程(UPP)过程329之后的多个单元的阈值电压(Vt)分布。所属领域的一般技术人员将明白,NAND快闪存储器单元可在将新数据编程到其之前被擦除。
作为LPP过程325的部分,将存储器单元的Vt(例如,经由施加到选定字线的编程脉冲)调整为由Vt分布330-1及330-2表示的两个电平中的一者。电压电平是由Vt分布(其可反映编程为特定电平的单元的统计平均Vt电平)表示。在这个实例中,其下页将存储位值“1”(例如,LP=1)的单元在LPP过程325期间编程为分布330-1,且其下页将存储位值“0”(例如,LP=0)的单元在LPP过程325期间编程为分布330-2。
作为MPP过程327的部分,将存储器单元的Vt调整为由Vt分布332-1、332-2、332-3及332-4表示的四个电平中的一者。在这个实例中,其中间页将存储位值“1”(例如,MP=1)的单元在MPP过程327期间编程为分布332-2及332-3中的一者,且其中间页将存储位值“0”(例如,MP=0)的单元在MPP过程327期间编程为分布332-1及332-4中的一者。
作为UPP过程329的一部分,将存储器单元的Vt调整为由Vt分布334-1到334-8表示的八个电平(其分别对应于数据状态L1到L8)中的一者,其中数据状态L1到L8中的每一者指示不同的3位经存储位模式。在这个实例中,编程为数据状态L1的单元存储数据“111”,编程为数据状态L2的单元存储数据“011”,编程为数据状态L3的单元存储数据“001”,编程为数据状态L4的单元存储数据“101”,编程为数据状态L5的单元存储数据“100”,编程为数据状态L6的单元存储数据“000”,编程为数据状态L7的单元存储数据“010”,且编程为数据状态L8的单元存储数据“110”。
在操作中,与存储器单元组(例如,物理页)相关联的错误率(例如,BER)针对不同对应逻辑页可不同。例如,与上数据页相关联的BER可高于与下数据页相关联的BER。在此些实例中,上数据页的BER可超过控制器(例如,图1中展示的控制器108)的错误校正能力,而下数据页及/或中间数据页的BER可未超过控制器的错误校正能力。因此,在本发明的多个实施例中,可基于数据将写入到多个页中的哪个特定页而将ERR数据增加到用户数据。例如,如果数据作为上数据页写入,那么可将ERR数据增加到用户数据,但如果数据作为下数据页写入,那么可不将ERR数据增加到用户数据。
图4A、4B及4C说明包括各种类型的数据的码字。图4A说明根据先前方法的包括各种类型的数据的码字440。图4A中说明的实例性码字440包含:“有效负载”,其包括用户数据442量;及“包装程序”,其包括对有效负载进行错误编码(例如,保护)的错误校正数据444(例如,ECC数据)量。错误校正数据444可为错误校正码(例如,LDPC码、BCH码、RS码等)。用户数据442可为将写入到存储器(例如,110)且由控制器(例如,控制器108)从主机(例如,102)接收的数据。用户数据442可经由错误校正组件而用错误校正数据444进行错误编码,所述错误校正组件可为控制器的组件(例如,控制器108的组件112)。用户数据442量可对应于与存储器(例如,图1中展示的存储器110、图2中展示的存储器210等)相关联的逻辑页大小。作为实例,用户数据442可对应于2KB页大小、4KB页大小或8KB页大小;然而,实施例不限于特定页大小。尽管图4A中未展示,但码字440的有效负载可包含除用户数据442外的数据。例如,码字440的有效负载可包含与用户数据442相关联的开销数据,例如元数据。
如图4B及4C中展示,在本发明的多个实施例中,可用ERR数据量取代用户数据442量的至少部分。将取代的用户数据量可基于多个因素确定,例如与将写入数据的存储器相关联的BER、将写入数据的页的类型(例如,上页、下页等)、块内将写入特定字线的位置(例如,定位成更靠近边缘的字线可易于具有更高BER)及/或存储器的年限(例如,数量或程序/擦除循环),以及其它因素。例如,图4B说明码字450-1,包括用户数据452量、ERR数据455量及错误校正数据454量。错误校正数据454连同ERR数据455一起对用户数据452进行错误编码。在多个实施例中,对应于码字450-1的用户数据452及ERR数据455的总和可等于对应于码字440的用户数据442量。因而,可独立于ERR数据455量维持特定码字大小。然而,应注意,取代对应于特定码字的有效负载部分的用户数据量的部分减少有效负载内的用户数据量(以便维持特定码字大小)。例如,如果码字440的用户数据442量对应于8KB页大小,且如果码字450-1的ERR数据455量是2KB,那么码字450-1的用户数据452量是6KB,即,用户数据减少达2KB(例如,8KB-6KB)。
然而,如本文中进一步描述,ERR数据(例如,ERR数据455)到码字的增加可降低与数据相关联的有效错误率。例如,ERR数据455可为已知数据单元值量,例如码字的有效负载内的各种位置处的已知位值的数目或已知位值组的数目。可通过ERR组件(例如,图1中展示的ERR组件114)追踪ERR数据的数据值以及其在码字的有效负载内的特定位置。因而,在从存储器读取特定码字(例如,450-1)后,ERR组件(例如,114)可确定ERR数据455中不正确的那些数据单元(例如,确定为具有除预定已知值外的值的那些数据单元,例如已从“0”翻转到“1”(或反之亦然)的那些位)且可校正确定为不正确的那些数据单元。在多个实施例中,从存储器读取的码字的ERR数据455可在对有效负载执行错误校正解码操作(例如,经由错误校正组件112对用户数据455及ERR数据455执行)之前被校正(例如,经由ERR组件114)。
在校正ERR数据455中的任何错误之后执行错误校正解码操作有效地降低与有效负载相关联的错误率。例如,如果ERR数据455包括25%的有效负载(例如,8KB有效负载的2KB)且8KB页具有500个失效位的平均值(对应于0.76%的BER),那么在对有效负载执行ECC错误校正之前校正ERR数据455将导致针对8KB有效负载的375个失效位的平均值(对应于0.57%的BER),其是25%的BER降低。因此,尽管对应于有效负载的用户数据量减少(例如,在这个实例中,从8KB到6KB),但对应于用户数据452的位错误的数量与对应于用户数据442的位错误的数量相比减少(例如,从500到375),这可增大可由特定ECC组件(例如,ECC 112)校正错误的数量的可能性。
图4C说明码字450-2,码字450-2具有:有效负载,其包括用户数据452量及ERR数据455量;及包装程序,其包括错误校正数据454。码字450-2的部分452、455、454的大小与码字450-1的对应部分的大小相同。然而,码字450-2说明在用户数据455间分布ERR数据455。实施例不限于特定ERR数据量及/或在用户数据间的特定分布。例如,可在用户数据452间均匀地分布错误数据部分455;然而,错误数据455可为定位在有效负载内的特定位置(例如,在前方、后方或中间)处的一系列相邻位。而且,实施例不限于ERR数据455的特定数据值及/或特定数据模式。例如,ERR数据455的数据单元可均具有相同数据值(例如,均为“1”或均为“0”),或ERR数据455的数据单元可为随机数据模式。
在多个实施例中,控制器(例如,图1中描述的控制器108)可经配置以确定将包含在特定码字中的ERR数据(例如,图4B及4C中说明的455)量。例如,控制器可经配置以基于所要BER降低百分比确定ERR数据455量。所要BER降低百分比可关于存储器(例如,存储器110)的页大小而定义。例如,如果所要BER降低百分比是50%且存储器的页大小是8KB,那么控制器可确定ERR数据455的量为4KB(例如,8KB的50%)。然而,本发明的实施例不限于确定ERR数据455的量的特定方法。将在图5中进一步描述与确定ERR数据455量相关联的多个方法。
在多个实施例中,控制器可经配置以将包括ERR数据的码字(例如,码字450-1/450-2)写入到多电平存储器单元(MLC)组。在一些此类实施例中,控制器可经配置以确定码字将写入到多电平存储器单元组的哪一页(例如,上页、下页等)。在多个实施例中,控制器可经配置以基于码字将写入到对应于单元组的哪一逻辑页而确定将包含在码字中的ERR数据(例如,455)量。例如,控制器可经配置以确定与对应于多电平存储器单元组的相应页相关联的错误率,且响应于经确定错误率而确定将包含在码字中的ERR数据量。作为实例,控制器可确定无ERR数据将包含在特定码字中(例如,如果对应经确定错误率在错误校正组件的校正能力内)。
图5说明根据本发明的多个实施例的与错误率降低相关联的设备580的部分的功能框图。图5中说明的设备包含错误率降低512-1(ERR编码器)、错误校正编码器514-1(ECC编码器)、存储器510、错误率降低解码器512-2(ERR解码器)及错误校正解码器514-2(ECC解码器)。
ERR编码器512-1可包含例如经配置以用ERR数据(例如,图4B及4C中展示的ERR数据455)量对传入用户数据(例如,从主机接收且将写入到存储器510的用户数据)进行编码的电路。如图1中展示,ERR编码器可为控制器(例如,108)的组件,所述控制器可确定是否用ERR数据编码经接收用户数据,且如果将增加ERR数据,那么确定增加到传入用户数据的ERR数据量(例如,在特定码字内,将由ERR数据取代的用户数据量)。ERR解码器512-2可包含经配置以解码从存储器510读取的码字内的ERR数据的电路。ERR解码器512-2可知道码字内的ERR数据单元的数据值及位置,使得ERR解码器512-2可确定从存储器510读取的码字内的ERR数据单元中的任一者是否不正确,且可校正确定为不正确的那些数据单元。在多个实施例中,对应于读取码字的ERR数据在读取码字经历错误校正(例如,ECC)解码操作(例如,经由ECC解码器514-2)之前被解码,这可如本文中描述般降低与码字相关联的有效错误率。
ECC编码器514-1可包括错误校正电路,所述错误校正电路经配置以根据特定错误校正码(例如,BCH码、RS码及LDPC码,以及其它类型的错误校正码)编码数据。ECC编码器514-1可例如将奇偶位增加到其所接收的数据(例如,用户数据可ERR数据)。ECC解码器514-2可解码其所接收且可能已经历经由ERR解码器512-2进行ERR解码的数据。
在图5中,箭头503-1表示传入数据。例如,传入数据503-1可为来自主机(例如,图1中描述的102)的用户数据。尽管未展示,但ERR编码器512-1可包含缓冲器(例如,页缓冲器),所述缓冲器经配置以存储对应于存储器510的页大小(例如,8KB)且将写入到存储器的数据量。在操作中,如果ERR编码器512-1确定ERR数据量将增加到传入用户数据量,那么ERR编码器可经配置以用小于页大小(例如,在这个实例中小于8KB)的用户数据量填充页缓冲器,且用对应ERR数据量填充页缓冲器的剩余部分。作为实例,页缓冲器可能75%用用户数据(例如,6KB)填充且25%用ERR数据填充。
确定是否用ERR数据编码传入用户数据可基于各种因素。例如,确定是否用ERR数据编码传入用户数据可基于与将写入的存储器(例如,510)或其部分相关联的BER(例如,与单元的特定块、字线等相关联的BER)。作为实例,控制器(例如,108)可追踪与存储器510相关联的(若干)BER,且可经配置以响应于BER达到或超过阈值水平而实施ERR数据功能性。例如,阈值水平可基于错误校正组件(例如,112或514-1/514-2)的ECC能力。在多个实施例中,确定是否用ERR数据编码传入用户数据可基于将写入数据的存储器单元的物理位置。例如,由于存储器单元块的边缘处或附近的字线常可经历较高BER,所以可基于将写入的字线是否定位于阵列边缘处或附近而确定增加ERR数据。
确定用来编码传入用户数据的ERR数据量还可基于各种因素。例如,ERR编码器512-1可经配置以基于错误校正编码器/解码器514-1/514-2的错误校正能力而确定ERR数据量。例如,可基于充分降低有效BER使得其满足或超过ECC能力所必需的ERR数据量而确定将增加的ERR数据量。如上文描述,在多个实施例中,ERR数据量可为对应于存储器的页大小的特定(例如,预定)百分比。然而,实施例不限于用于确定用来编码传入用户数据的ERR数据量的特定方法。
在经由ERR编码器512-1而用ERR数据编码传入用户数据量之后,经ERR编码数据可经由ECC编码器514-1而用错误校正数据(例如,ECC)编码,以保护码字有效负载(例如,用户数据及ERR数据)。经ERR及ECC编码码字可接着写入到存储器510(例如,到存储器的页)。响应于读取命令,从存储器510读取的数据(例如,包括由ERR编码器512-1及ECC编码器514-1编码的数据的码字)可由ERR解码器512-2及ECC解码器514-2解码。根据多个实施例,读取码字在由ECC解码器514-2解码之前经由ERR解码器512-2解码。在码字由ERR解码器512-2接收后,ERR解码器512-2校正ERR数据量中确定为具有不正确数据值的那些数据单元。如上文描述,ERR数据包括码字内的已知位置处的已知数据值。因而,ERR解码器512-2可自动地校正码字内的从写入到存储器起已翻转的任何ERR位。作为实例,ERR解码器512-2可将已知ERR数据模式存储在缓冲器中,可比较已知数据模式与从存储器510读取的ERR数据模式,且可在将经ERR解码码字提供到ECC解码器514-2之前翻转码字中确定为不正确的那些ERR位。
在从ERR解码器512-2接收经ERR解码码字后,ECC解码器514-2可对码字(其包括连同经解码(例如,经校正)ERR数据一起从存储器510读取的用户数据)执行错误校正解码操作。错误校正解码操作可包含使用ECC奇偶位的ECC解码器514-2,用户数据及ERR数据经由ECC编码器514-1用所述ECC奇偶位编码来校正码字内的任何不正确位。由于已校正码字的ERR数据,所以与码字相关联的有效BER降低。例如,经ERR解码码字内的位错误的数目与码字先前未经历ERR解码操作的情况相比将已减少。减少码字内的位错误的数目可通过对ECC解码器514-2提供能够校正码字的用户数据部分内的所有不正确位的经提高可能性而降低不可校正ECC错误的可能性。
尽管已在本文中说明及描述特定实施例,但所属领域的一般技术人员将明白,经计算以达成相同结果的布置可取代所展示的特定实施例。本发明希望涵盖本发明的各种实施例的调适或变动。应理解,已按说明性方式而非限制性方式进行上文描述。所属领域的技术人员在检视上文描述后将明白上述实施例的组合及本文中未具体描述的其它实施例。本发明的各种实施例的范围包含其中使用上述结构及方法的其它应用。因此,应参考所附权利要求书连同本权利要求书所授权的等效物的全范围确定本发明的各种实施例的范围。
在前文具体实施方式中,出于简化本发明的目的,将各种特征一起分组在单个实施例中。本发明的这种方法不应被解释为反映希望本发明的所揭示实施例必须使用多于每一权利要求中所明确陈述的特征。相反,如所附权利要求书反映,发明标的物可少于单个所揭示实施例的所有特征。因此,所附权利要求书在此并入具体实施方式中,其中每一权利要求独立作为单独实施例。

Claims (20)

1.一种操作存储器的方法,其包括:
将错误率降低ERR数据量增加到经接收用户数据量;及
将所述用户数据量连同所述ERR数据量一起写入到存储器。
2.根据权利要求1所述的方法,其中所述ERR数据量是已知量,且其中将所述已知ERR数据量增加到所述经接收用户数据量包含在所述经接收用户数据量间均匀地分布所述已知ERR数据量。
3.根据权利要求2所述的方法,其中所述ERR数据量的每一数据单元具有相同二进制数据值。
4.根据权利要求1到3中任一权利要求所述的方法,其中所述方法包含至少部分地基于以下项确定所述ERR数据量:
控制器的错误校正能力;及
所述存储器的经确定位错误率BER。
5.根据权利要求1到3中任一权利要求所述的方法,其中所述ERR数据量与所述用户数据量的总和对应于所述存储器的页大小,且其中所述ERR数据量经确定为所述页大小的特定百分比。
6.根据权利要求1到3中任一权利要求所述的方法,其中所述方法包含:
在将所述用户数据量连同所述ERR数据量一起写入到所述存储器之前用错误校正码ECC数据编码所述ERR数据量及所述用户数据量;
将所述用户数据量连同所述ERR数据量及所述ECC数据一起作为码字写入到所述存储器;
从所述存储器读取所述码字;及
在对从所述存储器读取的所述用户数据量及所述ERR数据量执行ECC解码操作之前:
确定所述ERR数据量中不正确的那些数据单元;及
校正所述ERR数据量中确定为不正确的那些数据单元。
7.根据权利要求6所述的方法,其中所述方法包含对从所述存储器读取的所述用户数据量及所述经校正ERR数据量执行所述ECC解码操作。
8.根据权利要求7所述的方法,其中所述方法包含在对从所述存储器读取的所述用户数据量及所述经校正ERR数据量执行所述ECC解码操作之后,在将所述经ECC解码用户数据量传送到主机之前从所述经ECC解码用户数据量移除所述经ECC解码ERR数据量。
9.一种设备,其包括:
存储器;及
控制器,其经配置以:
在将错误率降低ERR数据量及经接收用户数据量写入到所述存储器之前,将所述ERR数据量增加到所述用户数据量;及
在对所述用户数据量执行错误校正操作之前:
确定所述ERR数据量中不正确的那些数据单元;及
校正所述ERR数据量中确定为不正确的那些数据单元。
10.根据权利要求9所述的设备,其中所述控制器经配置以将所述ERR数据量及所述用户数据量作为数据页写入到所述存储器,所述数据页具有特定页大小,且其中将所述ERR数据量增加到所述用户数据量减少对应于所述数据页的用户数据量,使得维持所述特定页大小。
11.根据权利要求9到10中任一权利要求所述的设备,其中所述ERR数据量是具有已知数据值的多个数据单元。
12.一种设备,其包括:
存储器;及
控制器,其经配置以:
将经确定错误率降低ERR数据量增加到经接收用户数据量;
将所述经确定ERR数据量及所述用户数据量连同对应错误校正数据一起作为码字写入到所述存储器;
从所述存储器读取所述码字;
在使用所述错误校正数据以对所述用户数据量及所述ERR数据量执行错误校正操作之前:
确定所述ERR数据量中不正确的那些数据单元;及
校正所述ERR数据量中确定为不正确的那些数据单元;及
使用所述错误校正数据对所述用户数据量及所述经校正ERR数据量执行所述错误校正操作。
13.根据权利要求12所述的设备,其中所述控制器包括:
ERR编码器,其经配置以将所述经确定ERR数据量增加到所述用户数据量;及
ERR解码器,其经配置以确定所述ERR数据量中不正确的那些数据单元且校正所述ERR数据量中确定为不正确的那些数据单元。
14.根据权利要求12所述的设备,其中所述控制器经配置以基于所述码字写入到的所述存储器的至少一部分的位错误率确定所述ERR数据量。
15.根据权利要求12中任一权利要求所述的设备,其中所述错误校正数据包括奇偶位。
16.根据权利要求12到15中任一权利要求所述的设备,其中所述错误校正数据包含低密度奇偶检查LDPC码。
17.根据权利要求12到15中任一权利要求所述的设备,其中所述错误校正数据包含选自包括以下项的组的错误校正码ECC:
博斯-乍得胡里-霍昆格姆BCH码;及
李德-所罗门RS码。
18.根据权利要求12到15中任一权利要求所述的设备,其中所述控制器经配置以至少部分地基于所述存储器的页大小确定所述ERR数据量。
19.根据权利要求12到15中任一权利要求所述的设备,其中所述控制器经配置以将所述经确定ERR数据量增加到所述经接收用户数据量,使得在所述经接收用户数据量间均匀地分布所述ERR数据。
20.根据权利要求12到15中任一权利要求所述的设备,其中所述用户数据量与所述ERR数据量的总和等于所述存储器的页大小。
CN201780012194.9A 2016-02-18 2017-02-01 用于错误率降低的方法和设备 Active CN108701491B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/046,666 2016-02-18
US15/046,666 US10223198B2 (en) 2016-02-18 2016-02-18 Error rate reduction
PCT/US2017/015944 WO2017142706A1 (en) 2016-02-18 2017-02-01 Error rate reduction

Publications (2)

Publication Number Publication Date
CN108701491A true CN108701491A (zh) 2018-10-23
CN108701491B CN108701491B (zh) 2022-04-05

Family

ID=59626363

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780012194.9A Active CN108701491B (zh) 2016-02-18 2017-02-01 用于错误率降低的方法和设备

Country Status (5)

Country Link
US (1) US10223198B2 (zh)
EP (1) EP3417457B1 (zh)
CN (1) CN108701491B (zh)
TW (1) TWI682399B (zh)
WO (1) WO2017142706A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111026675A (zh) * 2019-12-06 2020-04-17 华中科技大学 一种高效的闪存数据刷新方法及基于闪存的固态硬盘

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10649841B2 (en) 2018-03-05 2020-05-12 Alibaba Group Holding Limited Supporting multiple page lengths with unique error correction coding via galois field dimension folding
US11106532B1 (en) * 2020-04-29 2021-08-31 Micron Technology, Inc. Selective sampling of a data unit during a program erase cycle based on error rate change patterns

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020083382A1 (en) * 2000-12-22 2002-06-27 Yoshitaka Kitamura Real-time recording system and real-time recording method
US20030131304A1 (en) * 1998-08-19 2003-07-10 Jifeng Li Error-correcting encoding apparatus
WO2004107301A1 (en) * 2003-05-30 2004-12-09 Nokia Corporation Photoelectric element and terminal equipment including a photoelectric element
CN1728277A (zh) * 2004-06-18 2006-02-01 尔必达存储器株式会社 半导体存储装置和刷新周期控制方法
US20100166008A1 (en) * 2007-02-23 2010-07-01 Akinori Hashimoto Digital data transmitting apparatus and digital data receiving apparatus
US20130099833A1 (en) * 2011-10-25 2013-04-25 Seung-Min Oh Integrated circuit chip and system having the same
CN103137214A (zh) * 2011-11-21 2013-06-05 株式会社东芝 存储装置、纠错方法及存储系统
US20130326309A1 (en) * 2012-06-01 2013-12-05 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and driving method thereof
CN103699344A (zh) * 2013-11-05 2014-04-02 威盛电子股份有限公司 非易失性存储器装置及其操作方法
US8924816B2 (en) * 2010-06-29 2014-12-30 Intel Corporation Method and system to improve the performance and/or reliability of a solid-state drive
CN104866484A (zh) * 2014-02-21 2015-08-26 阿里巴巴集团控股有限公司 一种数据处理方法和装置
CN105027221A (zh) * 2012-12-06 2015-11-04 美光科技公司 基于错误校正而设定默认读取信号

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3250260B2 (ja) 1992-06-17 2002-01-28 ソニー株式会社 画像データ記録装置及び画像データ再生装置
JP3256517B2 (ja) * 1999-04-06 2002-02-12 インターナショナル・ビジネス・マシーンズ・コーポレーション 符号化回路、回路、パリティ生成方法及び記憶媒体
KR20010081335A (ko) * 2000-02-12 2001-08-29 구자홍 차세대 고밀도 기록 매체를 위한 디지털 데이터의 오류정정 부호화 방법
WO2002078196A1 (en) * 2001-03-22 2002-10-03 University Of Florida Method and coding means for error-correction utilizing concatenated parity and turbo codes
US20030005385A1 (en) * 2001-06-27 2003-01-02 Stieger Ronald D. Optical communication system with variable error correction coding
US7934143B1 (en) * 2006-04-24 2011-04-26 Marvell International Ltd. Parity insertion for inner architecture
US7783935B2 (en) 2006-06-02 2010-08-24 Hewlett-Packard Development Company, L.P. Bit error rate reduction buffer
US8055982B2 (en) 2007-02-21 2011-11-08 Sigmatel, Inc. Error correction system and method
KR101253187B1 (ko) * 2007-04-05 2013-04-10 엘지전자 주식회사 디지털 방송 시스템 및 데이터 처리 방법
US8127211B2 (en) 2007-06-20 2012-02-28 Texas Instruments Incorporated Adding known data to CRC processing without increased processing time
KR20100104623A (ko) * 2009-03-18 2010-09-29 삼성전자주식회사 데이터 처리 시스템 및 그것의 부호율 제어 스킴
US8130544B2 (en) 2009-08-17 2012-03-06 Skymedi Corporation Method of reducing bit error rate for a flash memory
US8533564B2 (en) 2009-12-23 2013-09-10 Sandisk Technologies Inc. System and method of error correction of control data at a memory device
US8887022B2 (en) 2011-03-04 2014-11-11 Infineon Technologies Austria Ag Reliable data transmission with reduced bit error rate
WO2013044005A1 (en) 2011-09-22 2013-03-28 Violin Memory, Inc. System and method for correcting errors in data using a compound code
TW201346922A (zh) * 2012-05-14 2013-11-16 Toshiba Kk 記憶體控制器、記憶裝置及錯誤修正方法
US8972826B2 (en) * 2012-10-24 2015-03-03 Western Digital Technologies, Inc. Adaptive error correction codes for data storage systems
US8656255B1 (en) 2013-03-15 2014-02-18 Avalanche Technology, Inc. Method for reducing effective raw bit error rate in multi-level cell NAND flash memory
US9201728B2 (en) * 2013-09-12 2015-12-01 Seagate Technology Llc Memory device with variable code rate
US9535785B2 (en) * 2014-01-17 2017-01-03 Macronix International Co., Ltd. ECC method for flash memory
TWI506634B (zh) * 2014-11-06 2015-11-01 Phison Electronics Corp 資料存取方法、記憶體控制電路單元及記憶體儲存裝置
KR20160073834A (ko) * 2014-12-17 2016-06-27 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템 동작 방법

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030131304A1 (en) * 1998-08-19 2003-07-10 Jifeng Li Error-correcting encoding apparatus
US20020083382A1 (en) * 2000-12-22 2002-06-27 Yoshitaka Kitamura Real-time recording system and real-time recording method
WO2004107301A1 (en) * 2003-05-30 2004-12-09 Nokia Corporation Photoelectric element and terminal equipment including a photoelectric element
CN1728277A (zh) * 2004-06-18 2006-02-01 尔必达存储器株式会社 半导体存储装置和刷新周期控制方法
US20100166008A1 (en) * 2007-02-23 2010-07-01 Akinori Hashimoto Digital data transmitting apparatus and digital data receiving apparatus
US8924816B2 (en) * 2010-06-29 2014-12-30 Intel Corporation Method and system to improve the performance and/or reliability of a solid-state drive
US20130099833A1 (en) * 2011-10-25 2013-04-25 Seung-Min Oh Integrated circuit chip and system having the same
CN103137214A (zh) * 2011-11-21 2013-06-05 株式会社东芝 存储装置、纠错方法及存储系统
US20130326309A1 (en) * 2012-06-01 2013-12-05 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and driving method thereof
CN105027221A (zh) * 2012-12-06 2015-11-04 美光科技公司 基于错误校正而设定默认读取信号
CN103699344A (zh) * 2013-11-05 2014-04-02 威盛电子股份有限公司 非易失性存储器装置及其操作方法
CN104866484A (zh) * 2014-02-21 2015-08-26 阿里巴巴集团控股有限公司 一种数据处理方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111026675A (zh) * 2019-12-06 2020-04-17 华中科技大学 一种高效的闪存数据刷新方法及基于闪存的固态硬盘
CN111026675B (zh) * 2019-12-06 2022-02-15 华中科技大学 一种高效的闪存数据刷新方法及基于闪存的固态硬盘

Also Published As

Publication number Publication date
EP3417457A4 (en) 2019-08-28
EP3417457B1 (en) 2021-08-25
EP3417457A1 (en) 2018-12-26
TW201732833A (zh) 2017-09-16
US20170242747A1 (en) 2017-08-24
US10223198B2 (en) 2019-03-05
WO2017142706A1 (en) 2017-08-24
CN108701491B (zh) 2022-04-05
TWI682399B (zh) 2020-01-11

Similar Documents

Publication Publication Date Title
KR102102828B1 (ko) 메모리에서 에러 정정 코드(ecc) 연산
US9454414B2 (en) System and method for accumulating soft information in LDPC decoding
US10545819B1 (en) Soft-decision input generation for data storage systems
JP6072252B2 (ja) 隣接するデータ状態間の谷内のメモリセル状態
US9159422B1 (en) Cross page management to avoid NAND physical page size limitation
US8112689B2 (en) ECC controller for use in flash memory device and memory system including the same
CN104871142B (zh) 用于存储器的整形码
US9177664B2 (en) Method, memory controller and system for reading data stored in flash memory
US9286972B2 (en) Method, memory controller and system for reading data stored in flash memory
CN104937669B (zh) 使用分类码来确定软数据
US9093154B2 (en) Method, memory controller and system for reading data stored in flash memory
WO2009095902A2 (en) Systems and methods for handling immediate data errors in flash memory
US11243838B2 (en) Methods and apparatuses for error correction
TW201122799A (en) Error correction for multilevel flash memory
US20220035697A1 (en) Method and System for Decoding Data based on Association of First Memory Location and Second Memory Location
CN108701491A (zh) 错误率降低
US9697892B1 (en) Generation and application of gray codes
US11574698B1 (en) Compressing deep neural networks used in memory devices
US10084487B2 (en) Apparatuses and methods for erasure-assisted ECC decoding
US11050442B2 (en) Reducing the latency of a syndrome-based quasi-cyclic decoder

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