CN104937669A - 使用分类码来确定软数据 - Google Patents

使用分类码来确定软数据 Download PDF

Info

Publication number
CN104937669A
CN104937669A CN201380071053.6A CN201380071053A CN104937669A CN 104937669 A CN104937669 A CN 104937669A CN 201380071053 A CN201380071053 A CN 201380071053A CN 104937669 A CN104937669 A CN 104937669A
Authority
CN
China
Prior art keywords
code word
code
demoder
section
equipment according
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
CN201380071053.6A
Other languages
English (en)
Other versions
CN104937669B (zh
Inventor
西瓦格纳纳穆·帕塔萨拉蒂
帕特里克·R·哈亚特
穆斯塔法·N·凯纳克
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 CN104937669A publication Critical patent/CN104937669A/zh
Application granted granted Critical
Publication of CN104937669B publication Critical patent/CN104937669B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/45Soft decoding, i.e. using symbol reliability information
    • 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/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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/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/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/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/2906Coding, 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 block 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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/098Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit using single parity bit
    • 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

Landscapes

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

Abstract

本发明提供用于使用分类码来确定软数据的设备及方法。一种实例性设备可包含分类码CC解码器及耦合到所述CC解码器的外码解码器。所述CC解码器经配置以接收CC码字。所述CC码字包含外码码字的段及对应CC奇偶校验数位。所述CC解码器经配置以至少部分地使用所述对应CC数位来确定与所述外码码字的所述段相关联的软数据。

Description

使用分类码来确定软数据
技术领域
本发明大体来说涉及存储器错误校正,且更特定来说涉及用于使用分类码来确定软数据的设备及方法。
背景技术
存储器装置通常经提供作为计算机或其它电子装置中的内部半导体集成电路。存在包含易失性及非易失性存储器的许多不同类型的存储器。易失性存储器可需要电力来维持其数据且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)以及其它存储器。非易失性存储器可通过在未被供电时留存所存储数据而提供持久数据,且可包含NAND快闪存储器、NOR快闪存储器、相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM)及磁性随机存取存储器(MRAM)以及其它存储器。
可将存储器装置组合在一起以形成固态驱动器(SSD)。SSD可包含非易失性存储器(例如,NAND快闪存储器及/或NOR快闪存储器),及/或可包含易失性存储器(例如,DRAM及/或SRAM)以及各种其它类型的非易失性及易失性存储器。举例来说,快闪存储器装置可包含将信息存储于例如浮动栅极等电荷存储结构中的存储器单元,且可用作用于宽广范围的电子应用的非易失性存储器。
存储器作为易失性及非易失性数据存储装置而用于宽广范围的电子应用。举例来说,非易失性存储器可用于个人计算机、便携式存储棒、数码相机、蜂窝式电话、例如MP3播放器等便携式音乐播放器、电影播放器及其它电子装置中。存储器单元可被布置成若干阵列,其中所述阵列用于存储器装置中。
硬读取是用以在存储器单元可被编程到的多个状态之间进行区分的读取操作。硬读取返回硬数据,例如,对应于由读取操作确定的状态的数位。软数据可为除硬数据之外的数据。软数据可指示(用于指示)关于与硬数据相关联的置信度的置信级。举例来说,软读取可用于确定存储器单元被充电到的特定电压,其可用于表征硬数据的可靠性。与被充电到接近对应于一状态的电压范围的中心的特定电压的存储器单元相比,对于被充电到接近两个状态之间的边界的特定电压的存储器单元来说,硬数据的可靠性可较低。各种错误校正码方案可使用软数据好得多地运行。然而,由软读取确定的软数据与硬读取相比为较慢的,且传送由软读取确定的软数据可消耗带宽并影响存储器处理量。
附图说明
图1图解说明根据本发明的若干个实施例的非易失性存储器阵列的一部分的示意图。
图2是根据本发明的若干个实施例呈包含至少一个存储器系统的计算系统的形式的设备的框图。
图3是根据本发明的若干个实施例呈控制器的形式的设备的功能框图。
图4是图解说明根据本发明的若干个实施例的实例性CC经编码序列的图式。
图5是根据本发明的若干个实施例用于使用分类码来解码的方法的流程图。
具体实施方式
本发明提供用于使用分类码来确定软数据的设备及方法。一种实例性设备可包含分类码(CC)解码器及耦合到所述CC解码器的外码解码器(对应于除CC之外的一或多个码)。所述CC可为最内码,且可存在一或多个外码校正码(ECC),例如低密度奇偶校验(LDPC)码。所述CC解码器经配置以接收CC码字。所述CC码字包含外ECC码字的段。所述CC解码器经配置以至少部分地基于对应CC奇偶校验数位(例如,奇偶校验位)而确定与所述外ECC码字的所述段相关联的软数据。
根据本发明的各种实施例,“分类码”用于基于根据从存储器(例如,快闪存储器)的硬读取获得的数据而产生软数据。可在迭代解码器(例如,LDPC解码器)中使用以此方式产生的软数据。分类码可与简单且直接的编码及解码技术一起利用,且与现有方法相比,分类码的使用可在某些迭代范围中提供最好原始位错误率(RBER)性能。本发明的设备及方法的一个优点是基于从存储器的硬读取而使用分类码来产生软数据,这使用ECC额外开销的仅一小部分便可实现。本发明的分类码可与LDPC码以及解码器可利用任何形式的软信息的任何ECC协同使用。
LDPC码的优点可包含近香农(Shannon)容量性能及高效/结构硬件实施方案。LDPC解码器利用“置信传播”算法,所述算法是基于可靠性信息(例如,“置信”)的迭代交换。LDPC解码器本质上是概率性的;因此,其可利用软数据。事实上,LDPC码可仅在存在软数据(例如,可靠性值)的情况下实现近香农容量性能。
然而,利用从存储器读取的软数据工作涉及数个挑战,包含但不限于经由对存储器的软读取而获得软数据,这可需要多个读取且与硬读取相比导致较慢的读取时间。传送从存储器读取的软数据与传送硬读取数据相比可导致较低处理率,因为是传送多个位而并非是针对硬读取情况传送单个位。计算将包含存储器中的所有页/块/裸片的软读取位置可为困难的。因此,使快闪装置尽可能多地在硬读取模式中操作可为较高效的。
图1图解说明根据本发明的若干个实施例的非易失性存储器阵列100的一部分的示意图。图1的实施例图解说明NAND架构非易失性存储器阵列,例如NAND快闪存储器。然而,本文中所描述的实施例并不限于此实例。如图1中所展示,存储器阵列100包含存取线(例如,字线105-1、…、105-N)及相交的数据线(例如,局部位线107-1、107-2、107-3、…、107-M)。为便于在数字环境中寻址,字线105-1、…、105-N的数目及局部位线107-1、107-2、107-3、…、107-M的数目可为2的某一次幂,例如,256个字线乘4,096个位线。
存储器阵列100包含NAND串109-1、109-2、109-3、...、109-M。每一NAND串包含非易失性存储器单元111-1、…、111-N,每一存储器单元耦合到相应字线105-1、…、105-N。每一NAND串(及其组成存储器单元)还与局部位线107-1、107-2、107-3、…、107-M相关联。每一NAND串109-1、109-2、109-3、…、109-M的非易失性存储器单元111-1、…、111-N源极到漏极地串联连接在源极选择栅极(SGS)(例如,场效应晶体管(FET)113)与漏极选择栅极(SGD)(例如,FET 119)之间。每一源极选择栅极113经配置以响应于源极选择线117上的信号而将相应NAND串选择性地耦合到共同源极123,而每一漏极选择栅极119经配置以响应于漏极选择线115上的信号而将相应NAND串选择性地耦合到相应位线。
如图1中所图解说明的实施例中所展示,源极选择栅极113的源极连接到共同源极线123。源极选择栅极113的漏极连接到对应NAND串109-1的存储器单元111-1的源极。漏极选择栅极119的漏极在漏极触点121-1处连接到对应NAND串109-1的位线107-1。漏极选择栅极119的源极连接到对应NAND串109-1的最后存储器单元111-N的漏极(例如,浮动栅极晶体管)。
在若干个实施例中,非易失性存储器单元111-1、…、111-N的构造包含源极、漏极、例如浮动栅极等电荷存储结构及控制栅极。非易失性存储器单元111-1、…、111-N的控制栅极分别耦合到字线105-1、…、105-N。一“列”非易失性存储器单元111-1、…、111-N构成NAND串109-1、109-2、109-3、…、109-M,且分别耦合到给定局部位线107-1、107-2、107-3、…、107-M。一“行”非易失性存储器单元是共同耦合到给定字线105-1、…、105-N的那些存储器单元。术语“列”及“行”的使用并非意在暗示非易失性存储器单元的特定线性(例如,垂直及/或水平)定向。NOR阵列架构可类似地排列,只不过存储器单元串是并联耦合在选择栅极之间。
可将耦合到选定字线(例如,105-1、…、105-N)的单元子组作为存储器单元页来进行编程及/或读取。编程操作(例如,写入操作)可包含将若干个编程脉冲(例如,16V到20V)施加到选定字线以便将耦合到所述选定存取线的选定单元的阈值电压(Vt)增加到对应于目标(例如,所要)状态(例如,电荷存储状态)的所要编程电压电平。
读取操作(如本文中所使用,“读取”操作可指代编程检验操作)可包含感测耦合到选定单元的位线的电压及/或电流改变以便确定所述选定单元的数据值。读取操作可包含将位线预充电并在选定单元开始导通时感测放电。如本文中所使用,感测是在读取时涉及的动作。
确定(例如,感测)选定单元的状态可包含将若干个感测信号(例如,读取电压)提供到选定字线同时将若干个电压(例如,读取通过电压)提供到耦合到串的未选单元的字线,所述电压足以独立于未选单元的阈值电压而将所述未选单元置于导通状态中。可感测对应于正被读取及/或检验的选定单元的位线以确定所述选定单元是否响应于施加到选定字线的特定感测信号而导通。举例来说,选定单元的状态可由位线电流在达到与特定状态相关联的特定参考电流时的字线电压来确定。
在对NAND串中的选定存储器单元执行的感测操作中,偏置所述串的未选存储器单元以便使其处于导通状态中。在此感测操作中,可基于在对应于所述串的位线上所感测的电流及/或电压来确定选定单元的状态。举例来说,可基于位线电流在给定时间周期中是否改变了特定量或达到特定电平而确定选定单元的状态。
作为一实例,阵列(例如,图1中所展示的阵列100)的存储器单元可为单电平(存储器)单元(SLC)或多电平(存储器)单元(MLC)。SLC可为单位(例如,双状态)存储器单元。也就是说,所述单元可分别被编程到两个状态(例如,P0及P1)中的一者。在操作中,可编程例如处于选定块中的若干个存储器单元,使得其具有对应于P0或P1的Vt电平。作为一实例,状态P0可表示例如二进制“1”的所存储数据值。状态P1可表示例如二进制“0”的所存储数据值。
MLC可为两位(例如,四状态)存储器单元,或可存储每存储器单元两个以上数据位,包含每存储器单元小数个数据位。举例来说,两位存储器单元可分别被编程到四个状态(例如,P0、P1、P2及P3)中的一者。在操作中,可编程例如处于选定块中的若干个存储器单元,使得其具有对应于P0、P1、P2或P3的Vt电平。作为一实例,状态P0可表示例如二进制“11”的所存储数据值。状态P1可表示例如二进制“10”的所存储数据值。状态P2可表示例如二进制“00”的所存储数据值。状态P3可表示例如二进制“01”的所存储数据值。然而,实施例并不限于这些实例。
图2是根据本发明的若干个实施例的呈包含至少一个存储器系统234的计算系统230的形式的设备的框图。如本文中所使用,存储器系统234、控制器238或存储器装置239也可单独地被视为“设备”。存储器系统234可为(举例来说)固态驱动器(SSD)且可包含主机接口236、控制器238(例如,处理器及/或其它控制电路)及若干个存储器装置239-1、…、239-M(例如,例如NAND快闪装置的固态存储器装置),所述存储器装置为存储器系统234提供存储卷。在若干个实施例中,控制器238、存储器装置239-1到239-M及/或主机接口236可在物理上位于单个裸片上或单个封装(例如,受管理NAND应用)内。此外,在若干个实施例中,存储器(例如,存储器装置239-1到239-M)可包含单个存储器装置。
如图2中所图解说明,控制器234可经由一或多个通道耦合到主机接口236及存储器装置239-1、...、239-M,且可用于在存储器系统234与主机232之间传送数据。接口236可呈标准化接口的形式。举例来说,当存储器系统234用于计算系统230中的数据存储时,接口236可为串行高级技术附件(SATA)、高速外围组件互连(PCIe)或通用串行总线(USB)以及其它连接器及接口。然而,一般来说,接口236可提供用于在存储器系统234与具有用于主机接口236的兼容接纳器的主机232之间传递控制、地址、数据及其它信号的接口。
主机232可为主机系统,例如个人膝上型计算机、桌上型计算机、数码相机、移动电话或存储器读卡器以及各种其它类型的主机。主机232可包含系统母板及/或背板,且可包含若干个存储器存取装置(例如,若干个处理器)。主机232可通过通信通道233耦合到主机接口236。
控制器238可与存储器装置239-1、…、239-M通信以控制数据读取、写入及擦除操作以及其它操作。举例来说,控制器238可包含呈硬件及/或固件(例如,一或多个集成电路)及/或软件的形式的若干个组件,所述组件用于控制对若干个存储器装置239-1、…、239-M的存取及/或用于促进主机232与存储器装置239-1、…、239-M之间的数据传送。举例来说,在图2中所图解说明的实例中,控制器238可包含软数据组件242及错误译码/解码组件244。然而,控制器238可包含为不使本发明的实施例模糊而未图解说明的各种其它组件。此外,在一些实施例中,组件242及/或244可并非是控制器238的组件,例如,组件242及/或244可为独立组件。
软数据组件242可用于确定(例如,查找)软数据。举例来说,软数据组件242可用于根据硬读取确定软数据。错误译码/解码组件244可为BCH编码器/解码器、LDPC编码器/解码器、分类码编码器/解码器及/或例如可编码/解码在主机232与存储器装置239-1、…、239-M之间传送的用户数据的其它类型的编码器/解码器。软数据组件242可耦合到错误译码/解码组件244,例如以向其提供软数据。另外,错误译码/解码组件244的解码器可将软数据提供到错误译码/解码组件244的另一解码器。
存储器装置239-1、…、239-M可包含若干个存储器单元阵列,例如,例如图1中所展示的阵列100的阵列。举例来说,所述阵列可为具有NAND架构的快闪阵列。然而,实施例并不限于特定类型的存储器阵列或阵列架构。举例来说,可将存储器单元分组成包含若干个物理页的若干个块。若干个块可包含于存储器单元平面中且阵列可包含若干个平面。
图3是根据本发明的若干个实施例呈控制器338的形式的设备的功能框图。控制器338可耦合到存储器339,且控制器338可包含ECC编码/解码组件344。控制器338可等效于在图2中展示为计算系统230的一部分的控制器238。虽然关于计算系统且更特定来说关于解码从存储器读取的数据图解说明了本发明的设备及方法,但本发明的实施例并不限于此且可以其它方式来实施,例如用于解码经由通信通道233发射的数据等。
存储器339可为非暂时性媒体且包含若干个存储器单元(例如,非易失性存储器单元)阵列。举例来说,所述阵列可为具有NAND架构的快闪阵列,例如图1中所展示的阵列100。然而,本发明的实施例并不限于特定类型的存储器阵列或阵列架构。本发明的方法及设备也可与其它存储器单元(例如,通常在(举例来说)DRAM、PCRAM及/或RRAM存储器中使用的存储器单元)一起使用或用所述其它存储器单元来实施。
控制器338可与存储器339通信以操作(例如,读取、写入、移动、编程、感测、擦除)存储器单元。因此,控制器338可管理与存储器339的通信及存储于存储器339中的数据。控制器338可具有利用若干个集成电路的电路以及其它离散组件。在若干个实施例中,控制器338可为耦合到包含主机接口108及/或存储器装置339的印刷电路板的专用集成电路(ASIC)。存储器339及/或控制器338可包含为不使本发明的实施例模糊而未图解说明的额外电路。如本文中所使用,控制器338及/或存储器339也可被单独地实施及/或被视为“设备”。
ECC编码/解码组件344可包含经配置以用于编码及解码发射到存储器339及/或从存储器339接收的数据的逻辑。可以硬件及/或软件来实现对数据的编码及/或解码。举例来说,ECC编码/解码组件344可在输入处接收未经编码数据并在输出处提供经编码数据。
如图3中所图解说明,ECC编码/解码组件344可包含若干个各种类型的错误译码/解码组件,例如,实施特定ECC引擎的编码器/解码器。错误译码组件可经配置以编码例如从主机(例如,图2中所展示的232)接收、待写入到(例如,存储于)存储器339的数据(例如,用户数据)。根据替代实施例,各种类型的错误译码/解码组件可被实施为控制器338而非ECC编码/解码组件344的组件。
根据若干个实施例,ECC编码/解码组件344可包含若干个编码部分及/或解码部分。举例来说,ECC编码/解码组件344可包含一或多个外码编码器(例如,LDPC编码器348)、一或多个外码解码器(例如,迭代解码器,例如LDPC解码器354)、CC编码器350及CC解码器352。举例来说,ECC编码/解码组件344还可包含任选博斯-乔赫里-霍克文黑姆BCH(Bose,Chaudhuri,and Hocquenghem,BCH)编码器346及BCH解码器356。任选BCH编码器346及BCH解码器356可被实施为最外码编码器及解码器,使得存在一或多个中间码编码器(例如,LDPC编码器348)及一或多个中间码解码器(例如,迭代解码器,例如LDPC解码器354)。任选BCH编码器346及BCH解码器356可被实施为单独组件或被实施为BCH编码器/解码器347。LDPC编码器348及LDPC解码器354可被实施为单独组件或可被实施为编码器/迭代解码器349的组件。CC编码器350及/或CC解码器352可被实施为单独组件或可被实施为CC编码器/解码器351的组件。本发明的实施例并不限于上文所陈述的特定数量及/或类型的码编码器/解码器,且可包含额外编码器/解码器,及/或不同于上文所描述的编码/解码类型或排序的编码/解码类型或排序。
根据本发明的各种实施例,CC解码器352可以硬件实施为控制器的组件或者经由处理器、微处理器、系统单芯片、专用集成电路、硬件逻辑或适合于包含在提供所揭示功能性的全部或部分的一或多个集成电路上的其它电路来实施。在各种实施例中,CC解码器352可为可根据多种技术而设计及/或制造,所述技术包含例如现场可编程或掩模可编程门阵列集成电路的可编程技术、例如全部或部分基于单元的集成电路的半定制技术、例如专门化集成电路的技术、其组合或与集成电路的设计及/或制造兼容的另一技术。
可使用任选BCH编码器346首先编码用户数据,可使用LDPC编码器348进一步编码所述用户数据,可使用CC编码器350进一步编码所述用户数据。如此,LDPC码是BCH码的内码,且CC是LDPC码的内码。根据各种实施例,可任选地省略BCH编码器346及/或BCH解码器356,如图3中由虚线轮廓所指示。
根据本发明的各种实施例,ECC编码/解码组件344可以可选择方式实施全LDPCECC方案或具有内LDPC码及外BCH码的级联ECC方案。在级联ECC方案中,举例来说,LDPC解码器可运行达1或2个迭代。可通过实施(举例来说)外BCH码的组件来校正在所述1或2个迭代之后的残余错误。
可使用富精度LDPC解码器,使得可将所述LDPC解码器控制到所要数量的迭代。对于某些应用,在硬模式及软模式两者中,全LDPC ECC方案与级联ECC方案(例如,LDPC码与外码/内码的级联)相比可支持更高RBER性能,前提是其可运行多达所需次数的迭代。取决于LDPC解码器迭代的数目及可用硬件资源,全LDPC ECC方案可提供可变处理率。然而,全LDPC ECC方案与级联ECC方案相比可需要更多解码器迭代才能达到相同RBER性能,且利用更复杂ECC解码组件,例如,LDPC解码器354。较高解码器迭代转换为较高解码器功率。
例如其中LDPC解码器实施1或2个迭代的级联ECC方案相比于全LDPC ECC方案可以相对较不复杂的ECC编码/解码组件344来实施、可需要较少迭代、可使用较少功率,且可提供持续的处理量(对于一些应用)。然而,举例来说,在对快闪存储器的循环及保持效应之后在对应于寿命结束RBER的RBER区域处,级联ECC方案与全LDPCECC方案相比并不提供如此高的RBER性能。
根据一些实施例,对于限于LDPC解码器的1或2个迭代(例如,针对功率及硬件约束)的应用,级联ECC方案比全LDPC ECC方案更好地运行,且对于并不限于LDPC解码器的1或2个迭代的应用,全LDPC ECC方案比级联ECC方案更好地运行。
根据本发明的各种实施例,将基于对存储器的硬读取而确定的软数据提供到LDPC解码器。处于硬读取模式的全LDPC ECC方案及级联ECC方案两者均可遭受较慢解码器收敛的问题,此转换成较高的解码器迭代数目。对于给定RBER,在存在软数据的情况下,LDPC解码器的平均迭代计数将较小。软数据可使得LDPC解码器能够在被确定为具有高可靠性的那些数据数位(例如,位)与被确定为具有低可靠性的那些数据数位之间进行区分,此可由于LDPC解码器的概率性质而转换成对被确定为具有低可靠性的那些数据数位的较快速校正。使用软数据在可靠数据数位与不可靠数据数位之间进行区分的LDPC解码器可提供较好RBER性能及较快速LDPC解码器收敛,例如,较少数目个平均LDPC解码器迭代。
根据本发明的各种实施例,ECC额外开销的一部分用于包括“分类码”(CC)奇偶校验数位的CC。CC奇偶校验数位可用于基于通过从存储器的硬读取获得的数据而产生软数据。可在LDPC解码器中使用所产生软数据来改进LDPC解码器性能。根据一些实施例,软数据的质量(例如,粒度)可基于分配给分类码的ECC额外开销预算量。甚至粗略的软数据也可以某些迭代数目由LDPC解码器产生经改进的RBER结果。因此,可使用相对少的ECC额外开销来实施本发明的CC以实现经改进的LDPC解码器结果。
根据本发明的各种实施例(且参考图3),在写入路径中,CC编码器350可接收由LDPC编码器348提供的LDPC码字,例如,LDPC经编码序列。可将所述LDPC码字划分成对应于用户数据的某一数目个较小段以得到CC码字。CC编码器350可将CC奇偶校验数位添加到LDPC经编码序列的每一段。具有所附加CC奇偶校验数位的LDPC码字段即为CC码字。在单个LDPC码字中,可存在数个CC码字。对应于LDPC码字的CC码字是CC经编码序列。换句话说,CC经编码序列可包括若干个CC码字,每一CC码字由LDPC码字的段形成,如关于图4所进一步描述。
可将CC编码器350输出(例如,CC码字)写入到存储器339。换句话说,CC码是LDPC码的内码。如下文更详细地论述,CC编码可为系统性的,使得CC编码器352产生包括可附加到LDPC码字的段的若干个CC奇偶校验数位的CC码字。如本文中所使用,举例来说,“码字”指代可包含用户数据(例如,输入数据)及相应码的奇偶校验数位的数据数位序列。
在解码路径中,CC解码器352可接收数据,例如通过硬读取从存储器339获得的数据。由CC解码器352接收的数据可为包括若干个CC码字的CC经编码序列。取决于是否已出现数位错误,由CC解码器352接收的CC经编码序列可或可不与存储于存储器339中的CC经编码序列相同。也就是说,由CC解码器352接收的CC码字由于一或多个数位中的可能错误而可或可不与写入到存储器339的对应CC码字相同。
CC解码器352可基于与CC约束相关联的能力而产生与LDPC码字的相应段相关联的软数据。可将LDPC码字的段及相关联软数据提供到LDPC解码器354。根据各种实施例,CC解码器352不例如对(从存储器接收的CC码字的)LDPC码字段进行任何校正。也就是说,CC解码器352的输出处的RBER与来自存储器的RBER相同。
根据一些实施例,LDPC编码器348可接收用户数据作为输入并将LDPC码字输出到CC编码器350。任选地,BCH编码器346可接收用户数据作为输入且将BCH码字输出到LDPC编码器348,例如,作为到LDPC编码器348的输入。LDPC编码器348可接收BCH码字并从其产生LDPC码字。如此,LDPC码是BCH码的内码。
根据一些实施例,LDPC解码器354可从CC解码器352接收包括LDPC码字的一或多个段及与LDPC码字的每一段相关联的软数据,并输出根据所述LDPC码字及软数据确定的用户数据。可将与对应于LDPC码字的多个CC码字相关联的软数据分组在一起并传递到LDPC解码器354,LDPC解码器354使用经聚合软数据来解码LDPC码字。
任选地,LDPC解码器354可从CC解码器352接收包括LDPC码字的一或多个段及与LDPC码字的相应段相关联的软数据,并将BCH码字输出到BCH解码器356。BCH解码器356可接收所述BCH码字作为输入并输出用户数据。根据一些实施例,LDPC解码器354可经由反馈路径358将可靠性数据提供到CC解码器352,如下文所进一步论述。
根据各种实施例,CC解码器352可经配置以使相应可靠性值与LDPC码字的段的各种部分(例如,与LDPC码字的相应段的数位)相关联。举例来说,可靠性值可为对数似然比(LLR)。CC解码器352经配置以将LDPC码字的段的部分的可靠性值提供到LDPC解码器(连同LDPC码字的段一起)。根据各种实施例,可靠性值可为三个值中的一者:一个值对应于不确定可靠性,另一值对应于强可靠性,且第三值对应于弱可靠性。根据一些实施例,可至少部分地基于与特定数位相关联的其它软数据而根据上述三个值中的一者进一步调整可靠性值。
图4是图解说明根据本发明的若干个实施例的实例性CC经编码序列的图式。通过在LDPC码字中插入若干个CC奇偶校验数位469而由所述LDPC码字形成CC经编码序列460,每一CC码字468由LDPC码字的段467及相关联CC奇偶校验数位469形成。LDPC码字可包含用户数据462、LDPC奇偶校验数位466及/或任选BCH奇偶校验数位464。因此,CC经编码序列460可包含用户数据462、用户数据数位462、LDPC奇偶校验数位466、任选BCH奇偶校验数位464及CC奇偶校验数位469。如此,CC经编码序列460是级联码字。根据一些实施例,CC经编码序列460包含若干个CC码字468,且每一CC码字468由LDPC码字的段467及与LDPC码字的段467相关联的CC奇偶校验数位469构成。
作为一实例,CC经编码序列460可由LDPC码字连同若干个CC奇偶校验数位469构成。LDPC码字可具有例如16,000个数位(例如,位)的大小。因此,在此实例中,CC经编码序列460的大小大于16,000个数位,因为CC经编码序列460除LDPC码字的16,000个数位以外还包含若干个CC奇偶校验数位469。除任选BCH码奇偶校验位以外,LDPC码用户数据还由来自主机的用户数据构成。
CC经编码序列460可由若干个CC码字468构成。图4展示包含100个CC码字468的CC经编码序列460。CC码字468的LDPC码字的段467可包含若干个部分470,例如,“组块”。可将CC奇偶校验数位469附加到若干个部分470。图4展示具有8个部分470的CC码字468。也就是说,构成CC码字的LDPC码字的段467可包含多个部分。
假设实例性LDPC码字大小为16,000个数位,则每一部分470因此由20个数位构成且每一CC码字468包含具有8x20=160个数位的LDPC码字的段467加上附加到其的CC奇偶校验数位469(数量取决于CC码率)。然而,LDPC码字的段467、CC码字468、CC奇偶校验数位469及/或部分470并不限于在此实例中所描述的数位数量,且每一者可由比此实例中所描述的更多或更少的数位构成。每一部分470(例如,在所述实例中为20个位)是LDPC码字460的段的一部分,且每一部分470也是C1码字(下文进一步论述)。
根据本发明的各种实施例,CC是代数码(“C1”)与二进制代数码(“C2”)的张量积。C1可为任何检测码。根据各种实施例,C1由对应于每一C1码字的奇偶校验码(例如,对应于每一C1码字的单数位奇偶校验码)构成。举例来说,可将C1数位设定为“1”以指示C1码字的数位的偶校验或奇校验中的一者。根据一些实施例,可将C1计算为部分470的所有数位的加法的最低有效数位。假设CC码字468的LDPC码字的段467包含8个部分(其中针对每一组块计算C1),产生8数位向量。如此,C1可用于检测LDPC码字的段467的一部分(例如,部分470)中的奇数个数位错误。相反地,C1无法用于检测LDPC码字460的段的一部分中(例如,部分470中)的偶数个数位错误。
C2可为任何校正码。举例来说,C2可为例如汉明(Hamming)码的二进制代数码。然而,C2并不限于汉明码实施方案。C2可用于识别“t”个错误及检测“t+1”个错误。也就是说,C2可用于直接识别CC码字468的出错的“t”个部分470,且可用于检测CC码字468的“t+1”个部分470出错(但无法识别哪些部分470出错)。如果存在“t+1”个以上错误,那么CC码无法正确地检测出错的部分470。在此情况中,部分470可被误识别为出错及/或未出错。因此,一些位可被指派不恰当的可靠性值(如下文所进一步论述)。
可通过实例来进一步图解说明C1与C2的张量积。假设C1是比率4/5单奇偶校验码且C2是比率4/7汉明码。如下给出C1、C2以及H(C1)与H(C2)的张量积的奇偶校验矩阵:
H(C1)=[11111]
H ( C 2 ) = 1110100 1101010 1011001
H ( T P C ) = T P ( H ( C 1 ) , H ( C 2 ) ] = 11111 - 11111 - 11111 - 00000 - 11111 - 00000 - 00000 11111 - 11111 - 00000 - 11111 - 00000 - 11111 - 00000 11111 - 00000 - 11111 - 11111 - 00000 - 00000 - 11111
H(C1)是1x5矩阵,H(C2)是3x7矩阵,且所得H(TPC)是3x35矩阵。因此,所得码率是32/35。
为了确定张量积,例如通过矩阵乘法将H(C1)乘以H(C2)的每一元。举例来说,通过将H(C1)乘以H(C2)(1,1)(举例来说,其为1)来计算H(TPC)的第一行的前5个元。类似地,举例来说,通过将H(C1)乘以H(C2)(2,7)=0来计算H(TPC)的第二行的最后5个位。基于C1(检测码)与C2(校正码)的张量积的所得码是“检测码”。
CC编码器(例如,图3中的350)产生被写入到存储器(例如,图3中的339)的CC码字468。CC是系统码。因此,编码涉及产生CC 469的奇偶校验数位。此为涉及二进制加法的线性运算。假定CC是最内码,到CC编码器(例如,图3中的350)的输入是LDPC码字(例如,LDPC经编码位序列)。CC编码器取得此输入序列并给其附加CC奇偶校验数位。接着例如通过控制器(例如图2中所展示的238)将所得CC码字写入到存储器。
以下论述是图解说明产生CC码字的实例。此实例的码率是32/35,因此输入到CC编码器的每32个数据位被映射成35位CC码字,其包含3个奇偶校验数位。在以下实例中,如下假设到CC编码器的32位输入:
U=[U1 U2 … U32]。则CC码字(附加有CC的3个奇偶校验数位)具有如下形式:
P1、P2及P3是奇偶校验数位。举例来说,可通过例如使用二进制加法将第i列中的5个位相加来计算第i个“幻像校验子”。可将项S1、S2、S3及S4计算为数值。项S5、S6及S7包含P1、P2及P3。所得校验子(向量)[S1 S2 … S7]是所使用的4/7汉明码的有效码字。通过将幻像校验子与汉明码的奇偶校验矩阵相乘,可根据S1、S2、S3及S4如下确定S5、S6及S7(所有加法均为二进制):
S5=S1+S2+S3;
S6=S1+S2+S4;
S7=S1+S3+S4;且
接着可使用S5、S6及S7来得出P1、P2及P3,如下:
P1=S5+U21+U22+U23+U24;
P2=S6+U25+U26+U27+U28;
P3=S7+U29+U30+U31+U32。
可将校验子(向量)[S1 S2 … S7]乘以C2的奇偶校验矩阵(例如,汉明码奇偶校验矩阵),此产生可用于检测或识别出错的部分470的另一校验子,如先前所论述。
图5是根据本发明的若干个实施例用于解码分类码的方法的流程图。举例来说,到CC解码器的输入可为例如通过硬读取571从存储器读取的数据。举例来说,一次读取的数据数量可对应于一数据页。CC解码器(例如,图3中的352)可对所接收CC经编码序列(例如,包含若干个CC码字的LDPC码字)的CC码字进行操作。包括CC经编码序列的数据可包含多个CC码字。给定LDPC码字中的CC码字的确切数目取决于CC及LDPC码的码字大小。
在此实例中,对于每一CC码字,解码步骤如下。如在572处所展示,通过将所接收CC码字乘以分类码的奇偶校验矩阵来计算CC校验子。如在573处所展示,若干个部分可出错。取决于出错的部分的数量,将出现不同结果。也就是说,取决于是否存在t个或更少出错部分、是否存在t+1个出错部分或是否存在t+1个以上(例如,t+2或更多)出错部分,结果不同。
如果在所接收CC码字中有“t”个或更少部分出错,那么校验子正确地识别出错的部分,如在574处所指示。当C1为单奇偶校验码时,被识别为出错的部分将具有奇数个出错位。使对应于弱可靠性(具有恰当正负号)的可靠性值与被识别为出错的部分中的所有位相关联,且使对应于强可靠性(具有恰当正负号)的可靠性值与其它部分(例如,未被识别为出错)中的所有位相关联,如在575处所指示。根据本发明的各种实施例,可至少部分地基于特定存储器单元的条件(例如,编程/擦除循环、保持、已保持数据的时间量、读取干扰的数目等)而调整(例如,细化、调谐等)对应于特定单元的数位的弱及/或强可靠性的可靠性值。
如果“t+1”个部分出错,那么校验子检测到“t+1”个部分出错而不识别出错的部分,如在576处所指示。在此情况中,给CC码字中的所有位指派对应于不确定可靠性的可靠性值,如在577处所指示。根据本发明的各种实施例,可至少部分地基于特定存储器单元的条件(例如,编程/擦除循环、保持、已保持数据的时间量、读取干扰的数目等)而调整(例如,细化、调谐等)对应于特定单元的数位的不确定可靠性的可靠性值。
如果“t+1”个以上部分出错,那么校验子误识别出错的部分,如在578处所指示。对于被误识别为出错的部分,使对应于弱可靠性(具有恰当正负号)的可靠性值与被误识别为出错的部分中的所有位相关联,如在579处所指示,且使对应于强可靠性(具有恰当正负号)的可靠性值与其它部分(例如,未被识别为出错)中的所有位相关联,如在579处所指示。这与存在“t”个或更少出错部分时的情况的处理相同。
由于误识别,一些位可能被指派不恰当可靠性。对应于弱可靠性的可靠性值与被误识别为出错的部分中的位相关联。忽略C1中的检测不到的错误事件(偶数个位出错),对应于弱可靠性的可靠性值可与实际上正确的位(例如,CC码字的位)相关联。对于剩余部分(例如,未被误识别为出错的那些部分),在这些部分中的一些部分中,将存在奇数个错误位,且对应于强可靠性的可靠性值与这些出错位以及剩余的正确位相关联。
使不正确及/或不恰当可靠性值与一些位相关联可例如在LDPC解码器中引起某种性能降级。然而,假定可靠性值关联并不改变RBER,则性能降级可为小的且因此鉴于与在LDPC解码器中使用软数据相关联的益处为可容忍的。
下文描述CC解码器操作的详细实例。在例如经由硬读取而接收存储于存储器中的CC码字之后,计算1x7幻像校验子。将1x7幻像校验子乘以3x7H(C2)以获得1x3错误定位矩阵,可将所述矩阵转换成十进制以定位具有奇数个位错误的部分。作为实例,考虑:
U=[01011 11111 00011 11000 1010 1111 0000]
C = 01011 11111 00011 11000 1010 0 ‾ ‾ 1 ‾ 111 0 ‾ ‾ 0000 1 ‾ ‾ (位错误由单下划线指示,且奇偶校验数位由双下划线指示)
假设C(25)中存在位错误,则C’是:
C , = 01011 11111 00011 11000 1010 0 ‾ ‾ 0 ‾ 111 0 ‾ ‾ 0000 1 ‾ ‾ . 对于此情况,校验子是[1100011],且错误定位符是[010]=2,其指向从右侧起第二个5位部分。假定C2能够识别出t=1个出错部分且C’具有单个出错部分,则CC解码器正确地识别出出错的部分。
作为另一实例,对于相同U及C,假设在U(7)、U(8)及U(10)处形成错误(单个部分中的3个位错误引起单个出错部分),因此:
C , = 01011 1 00 ‾ 1 1 ‾ 00011 11000 1010 0 ‾ ‾ 1111 0 ‾ ‾ 0000 1 ‾ ‾ .
校验子是[1100001]且错误定位符是[110]=6,其指代从右侧起第6个部分。
对于最后一个实例,针对部分6中的3个位错误及部分2中的1个位错误,则:
C , = 01011 10011 00011 11000 1010 0 ‾ ‾ 0111 0 ‾ ‾ 0000 1 ‾ ‾ ,
校验子是[1100011],且错误定位符是[010]=2。因此,错误定位符指示第二部分具有奇数个位错误。此特定CC码能够仅定位具有奇数个位错误的一个部分。由于此实例具有2个出错部分,因此其对应于图5中的578及579。在此情况中,CC解码器将部分6误识别为正确的(未出错),这将导致使高可靠性与部分6的错误位相关联。
可基于本发明设备或方法被实施到的计算系统及/或存储器装置的需要而做出对分类码的选择及/或设计。CC并不改变RBER。CC解码器使软数据(例如,可靠性值)与和从存储器读取的位具有相同正负号的位相关联。可相同地处理一部分内的所有位。举例来说,如果一部分被识别为出错,那么即使仅一些(例如,奇数个)位可能出错,对应于弱可靠性的可靠性值也可与所述部分中的所有位相关联。鉴于此,具有较短部分是较好的。然而,较短部分用尽更多的ECC额外开销。举例来说,考虑以下2个实例性码。
码1具有为25位单奇偶校验码(K,N)=(24,25)的C1及为1位校正2位检测汉明码(K,N)=(4,8)的C2。CC是(K,N)=(196,200)_Rate=0.98(2%额外开销)。码2具有为10位单奇偶校验码(K,N)=(9,10)的C1及为1位校正2位检测汉明码(K,N)=(4,8)的C2。CC是(K,N)=(76,80)_Rate=0.95(5%额外开销)。这些实例展示较小部分大小(暗示较精细软可靠性指派)对比率之间的折衷。假定固定ECC预算,从ECC预算取得的任何额外比率均可导致使用较高比率LDPC码。因此,所得RBER性能可为较糟的。
对于C2具有较大“t”可为有益的。然而,此情形的影响将为所得码的码字大小增加。考虑以下2个实例性情况。码1具有为25位单奇偶校验码(K,N)=(24,25)的C1及为1位校正2位检测汉明码(K,N)=(4,8)的C2。CC是(K,N)=(196,200)比率=0.98(2%额外开销)。码2具有为25位单奇偶校验码(K,N)=(24,25)的C1及为3位校正4位检测格雷(Golay)码(K,N)=(12,24)的C2。CC是(K,N)=(588,600)比率=0.98(2%额外开销)。两个实例性码具有相同额外开销(2%)。码1可识别1个出错部分且每200个位(8个具有25个位的部分)检测到2个部分出错。码2可识别3个出错部分且在600个位(24个具有25个位的部分)中检测到4个部分出错。将这两个码进行比较,码2合并ECC资源且以较大码字提供所述资源。将码2的600位码字视为3个具有200个位的区段,码2将仅在所述区段中的一者具有2、3或4个出错部分且在24个部分当中出错部分的总数为4或更小时较好地运行。模拟展示,在实例性RBER区域~5E-3中,两个码类似地运行,这表示在所关注RBER区域中,在8个部分当中具有2个以上出错部分的概率极低。然而,取决于各种产品及技术的所关注RBER区域,合并CC码字的ECC资源可为有益的。
假定使不正确可靠性值与被误识别为出错的部分的位相关联的可能性,则可使用对对应于弱可靠性、不确定可靠性及/或强可靠性的可靠性值的选择来实现良好性能。对于相同配置,较差的选择可导致差得多的结果。
再次参考图3,可使用从LDPC解码器354到CC解码器352的反馈路径358来提供其之间的涡轮均衡。涡轮均衡可潜在地有助于CC解码器352操作。CC解码器352可首先经由硬读取从存储器接收数据,且可产生供在LDPC解码器354中使用的软数据。LDPC解码器354可例如在运行几个迭代之后使用此所产生软数据来进行错误校正。可经由反馈路径358将来自LDPC解码器354的硬决策反馈到CC解码器352。借助来自LDPC解码器354的硬决策,CC解码器352可利用来自硬读取的与从存储器339读取的数据相比其中潜在地具有较少错误的数据来工作。
使用来自LDPC解码器354的此新数据,CC解码器352可重新产生软数据并将其发送回到LDPC解码器354。可忽略来自LDPC解码器354的反馈,且所述CC解码器可产生软数据,就像不存在软数据一样(如同在CC解码器352基于经由硬读取从存储器339获得的数据而产生软数据时的情形)。或者,CC解码器352可识别潜在地出错的部分。通过CC解码器352识别出错的部分而非使可靠性值与对应于相同弱可靠性的所有位相关联,CC解码器352可尝试识别出错的位(使用从LDPC解码器354反馈的软数据)。举例来说,可将最低可靠性位识别为较可能出错,且对应于弱可靠性的可靠性值可与一部分的一些位相关联,而对应于强可靠性的可靠性值可与组块内的其它位相关联。
可使用例如对数似然比(LLR)信息的软数据来实现解码高级错误校正码(ECC),例如低密度奇偶校验(LDPC)码。可将关于二进制数据值决策的置信度表达为LLR,其被计算为
L L R = l o g ( P ( 0 ) P ( 1 ) ) ,
其中P(0)是数据值的数位(例如,位)具有第一值(例如,0)的条件概率,且P(1)是数据值的数位具有第二值(例如,1)的条件概率。(注意,如果码字存储于存储器中,那么实际上存储于存储器中的数据值是码字的值。)当全置信度归因于所感测状态时,以上公式在感测到表示‘0’的状态时由于而导致正无穷大,且在感测到表示‘1’的状态时由于而导致负无穷大。举例来说,可将置信度的度量截断为一个位,从而响应于读取请求而返回+1来代替正无穷大且返回-1来代替负无穷大。
一种实例性方法可包含使用硬读取来确定存储器单元的状态。至少部分地基于所确定状态而确定软数据。根据本发明的若干个实施例,可针对特定数据值布置中对应于每一状态的数据值的每一数位(例如,位)基于所述特定数据值布置中对应于相邻状态的数据值而预先确定概率。根据这些预先确定的概率,还可针对特定数据值布置中对应于每一状态的数据值的每一数位(例如,位)基于所述特定数据值布置中对应于相邻状态的数据值而计算LLR。可将数据值概率及/或LLR存储于数据结构(例如查找表(LUT))中。此后,可基于硬读取(例如,由硬读取标引)从所述LUT检索适当数据值概率及/或LLR。
如先前关于图5所论述,如果“t+1”个部分出错(例如,通过图3中所展示的CC解码器352),那么校验子检测到“t+1”个部分出错而不识别出错的部分,如在576处所指示。根据本发明的一些实施例,给CC码字中的所有数位(例如,位)指派对应于不确定可靠性的相同可靠性值,如在577处所指示。根据本发明的各种实施例,对于具有被识别为出错的“t+1”个部分的CC码字中的特定位,可至少部分地基于针对具有被识别为出错的“t+1”个部分的CC码字中的特定数位确定的软数据而分别调整(例如,细化)对应于不确定可靠性的相同可靠性值。举例来说,针对具有被识别为出错的“t+1”个部分的CC码字中的特定数位确定的软数据可为使用对特定数位的硬读取确定的LLR或根据对特定数位的多个读取确定的LLR。
如先前关于图5所论述,如果在所接收CC码字中有“t”个或更少部分出错,那么校验子正确地识别出错的部分,如在574处所指示。使对应于弱可靠性(具有恰当正负号)的可靠性值与被识别为出错的部分中的所有位相关联,且使对应于强可靠性(具有恰当正负号)的可靠性值与其它部分(例如,未被识别为出错)中的所有位相关联,如在575处所指示。根据本发明的各种实施例,对于具有被识别为出错的“t”个或更少部分的CC码字中的特定位,可至少部分地基于针对CC码字中的特定数位确定的软数据而调整(例如,细化)特定数位的相关联可靠性值。举例来说,针对CC码字中的特定数位确定的软数据可为使用对特定数位的硬读取确定的LLR或根据对特定数位的多个读取确定的LLR。
虽然本文中已图解说明及描述了特定实施例,但所属领域的普通技术人员将了解,旨在实现相同结果的布置可替代所展示的特定实施例。本发明打算涵盖本发明的各种实施例的改动或变化形式。应理解,已以说明性方式而非限定性方式做出以上说明。在审阅以上说明后,所属领域的技术人员将明了以上实施例的组合及本文中未具体描述的其它实施例。本发明的各种实施例的范围包含其中使用以上结构及方法的其它应用。因此,本发明的各种实施例的范围应参考所附权利要求书连同授权此权利要求书的等效内容的全部范围来确定。
在前述具体实施方式中,出于简化本发明的目的,将各种特征一起聚集于单个实施例中。本发明的此方法不应解释为反映本发明的所揭示实施例必须使用比明确陈述于每一权利要求中更多的特征的意图。而是,如所附权利要求书反映:发明性标的物在于少于单个所揭示实施例的所有特征。因此,特此将所附权利要求书并入到具体实施方案中,其中每一权利要求独立地作为单独实施例。

Claims (53)

1.一种设备,其包括:
分类码CC解码器;及
外码解码器,其耦合到所述CC解码器,
其中所述CC解码器经配置以:
接收CC码字,所述CC码字包含外码码字的段及对应CC奇偶校验数位;及
至少部分地使用所述对应CC奇偶校验数位来确定与外码码字的所述段相关联的软数据。
2.根据权利要求1所述的设备,其中所述外码解码器是软输入解码器。
3.根据权利要求1所述的设备,其中所述外码解码器是迭代解码器。
4.根据权利要求3所述的设备,其中所述迭代解码器是低密度奇偶校验LDPC解码器,且所述外码码字的所述段是LDPC码字的段。
5.根据权利要求1到4中任一权利要求所述的设备,其进一步包括耦合到所述CC解码器的存储器,且其中所述CC解码器经配置以经由对所述存储器的硬读取而接收所述CC码字。
6.根据权利要求1到4中任一权利要求所述的设备,其中所述软数据是与所述外码码字的所述段相关联的可靠性值。
7.根据权利要求6所述的设备,其中所述可靠性值包含至少部分地针对使用硬读取确定的所述CC码字的数位确定的对数似然比LLR。
8.根据权利要求1到4中任一权利要求所述的设备,其中所述软数据是与所述外码码字的所述段的一部分相关联的可靠性值。
9.根据权利要求8所述的设备,其中所述CC解码器经配置以使相应可靠性值与所述外码码字的所述段的所述部分的每一数位相关联。
10.根据权利要求8所述的设备,其中所述CC解码器经配置以将所述外码码字的所述段的所述部分的所述可靠性值提供到所述外码解码器。
11.根据权利要求10所述的设备,其中外码解码器经配置以利用所述可靠性值来解码所述外码码字。
12.根据权利要求11所述的设备,其中所述可靠性值是三个值中的一者,即对应于不确定可靠性、强可靠性或弱可靠性中的一者的相应值。
13.根据权利要求8所述的设备,其进一步包括至少部分地基于存储器单元的条件而调整所述可靠性值。
14.根据权利要求1到4中任一权利要求所述的设备,其中所述CC是两个代数码的张量积。
15.根据权利要求1到4中任一权利要求所述的设备,其中所述CC是单数位奇偶校验码与二进制代数码的张量积。
16.根据权利要求1到4中任一权利要求所述的设备,其中所述CC解码器及所述外码解码器是控制器的组件。
17.根据权利要求1到4中任一权利要求所述的设备,其中外码解码器经配置以经由反馈路径将硬决策反馈到所述CC解码器,且所述CC解码器经配置以使用所述硬决策来确定软数据。
18.一种设备,其包括:
外码解码器;
中间码解码器,其耦合到所述外码解码器;及
分类码CC解码器,其耦合到所述中间码解码器,
其中所述CC解码器经配置以:
经由硬读取从存储器接收CC码字,所述CC码字包括CC奇偶校验数位以及由来自主机的用户数据与中间码奇偶校验数位及外码奇偶校验数位组成的数据;
使用所述CC奇偶校验数位来确定与所述数据相关联的软数据;及
将所述数据及所述软数据提供到所述中间码解码器。
19.根据权利要求18所述的设备,其中所述数据是低密度奇偶校验LDPC码字的段,且所述中间码解码器是迭代LDPC解码器。
20.根据权利要求18到19中任一权利要求所述的设备,其中所述CC解码器进一步经配置以至少部分地基于所述CC奇偶校验数位而确定与所述数据的若干个数位相关联的软数据。
21.根据权利要求18到19中任一权利要求所述的设备,其中所述CC是检测码与校正码的张量积。
22.根据权利要求18到19中任一权利要求所述的设备,其中所述CC是单数位奇偶校验码(C1)与二进制代数码(C2)的张量积。
23.根据权利要求22所述的设备,其中所述CC解码器经配置以使用所述C1在所述数据的至少一部分中检测奇数个错误。
24.根据权利要求22所述的设备,其中所述CC解码器经配置以使用C2识别所述数据的出错的t个或更少部分。
25.根据权利要求22所述的设备,其中所述CC解码器经配置以检测所述数据的t+1个部分出错,而不识别所述数据的哪些特定t+1个部分出错。
26.根据权利要求18到19中任一权利要求所述的设备,其中所述中间码解码器经配置以操作达至多2个迭代。
27.根据权利要求18到19中任一权利要求所述的设备,其中所述中间码解码器、所述外码解码器及所述CC解码器是控制器的组件。
28.一种设备,其包括:
外码编码器,其经配置以提供外码码字;及
分类码CC编码器,其耦合到所述外码编码器,其中所述CC编码器经配置以确定CC奇偶校验数位并将所述CC奇偶校验数位附加到所述外码编码器码字的段以作为CC码字,且
其中所述CC编码器经配置以控制将所述CC码字写入到存储器。
29.根据权利要求28所述的设备,其中所述外码编码器是低密度奇偶校验LDPC编码器,且所述外编码器码字的所述段是LDPC码字的段。
30.根据权利要求29所述的设备,其进一步包括耦合到所述LDPC编码器的博斯-乔赫里-霍克文黑姆BCH编码器,所述LDPC编码器经配置以从所述BCH编码器接收BCH码字并将LDPC码字提供到所述CC编码器。
31.根据权利要求28到30中任一权利要求所述的设备,其中所述CC编码器经配置以针对所述外码码字的所述段的多个部分中的每一者确定单数位奇偶校验码(C1)的数位。
32.根据权利要求31所述的设备,其中所述CC编码器经配置以根据所述外码码字的所述段确定二进制代数码(C2)。
33.根据权利要求32所述的设备,其中所述CC编码器经配置以将所述CC确定为C1与C2的张量积。
34.根据权利要求28到30中任一权利要求所述的设备,其中所述外码编码器及所述CC编码器是控制器的组件。
35.一种方法,其包括:
将外码码字的至少一段接收到分类码CC编码器;
经由所述CC编码器根据外编码器码字的所述段来确定单数位奇偶校验码(C1)及二进制代数码(C2);及
将CC确定为C1与C2的张量积。
36.根据权利要求35所述的方法,其进一步包括:
将CC奇偶校验数位附加到所述外码码字的所述段以产生CC码字;及
将所述CC码字写入到存储器。
37.根据权利要求35到36中任一权利要求所述的方法,其中所述外码码字的所述段是LDPC码字的段。
38.根据权利要求37所述的方法,其进一步包括:
经由BCH编码器根据用户数据确定BCH码字;及
经由LDPC编码器根据所述BCH码字确定所述LDPC码字。
39.一种方法,其包括:
将第一编码器码字接收到第一解码器,所述第一编码器码字包含第二编码器码字的段及第一码奇偶校验数位;
经由所述第一解码器至少部分地基于所述第一码奇偶校验数位而确定与所述第二编码器码字的所述段相关联的软数据;及
将所述第二编码器码字的所述段及所确定软数据从所述第一解码器提供到第二解码器。
40.根据权利要求39所述的方法,其中所述第二解码器是迭代解码器。
41.根据权利要求40所述的方法,其进一步包括经由所述第二解码器操作达至多两个迭代而至少部分地基于所述第二编码器码字的所述段及所述所确定软数据来确定数据。
42.根据权利要求39到41中任一权利要求所述的方法,其中确定所述软数据包含确定与所述第二编码器码字的所述段的数位相关联的可靠性值。
43.根据权利要求39到41中任一权利要求所述的方法,其进一步包括经由所述第一解码器根据所述第一码奇偶校验数位确定奇偶校验码(C1)及二进制代数码(C2),其中所述第一码奇偶校验数位是根据C1与C2的张量积而计算。
44.根据权利要求39到41中任一权利要求所述的方法,其中所述第一解码器是分类码CC解码器,所述第一码奇偶校验数位是CC奇偶校验数位,所述第二解码器是低密度奇偶校验LDPC解码器,且所述第二编码器码字的所述段是LDPC码字的段。
45.一种方法,其包括:
将分类码CC码字接收到CC解码器;
经由所述CC解码器根据所述CC码字确定CC奇偶校验数位及外码字的段;
在所述外码字的所述段存在出错的t个或更少部分的情况下,基于所述CC奇偶校验数位而识别所述外码字的所述段的出错的t个部分;及
在所述外码字的所述段存在出错的t+1个部分的情况下,基于所述CC奇偶校验数位而检测所述外码字的所述段的出错的t+1个部分。
46.根据权利要求45所述的方法,其进一步包括由所述CC解码器将所述外码字的段及关于所述外码字的所述段的所识别及所检测部分的软数据提供到迭代解码器,其中所述迭代解码器是低密度奇偶校验LDPC解码器,且所述外码字的所述段是LDPC码字。
47.根据权利要求46所述的方法,其中识别所述外码字的出错的t个部分包含使对应于弱可靠性的可靠性值与所述外码字的所述所识别t个部分中的所有数位相关联。
48.根据权利要求46所述的方法,其中识别所述外码字的所述段的出错的t个部分包含使对应于强可靠性的可靠性值与除所述外码字的所述段的所述所识别t个部分之外的中的所有数位相关联。
49.根据权利要求46所述的方法,其中识别检测所述外码字的出错的t+1个部分包含使对应于不确定可靠性的可靠性值与所述外码字的所述段中的所有数位相关联。
50.根据权利要求45到49中任一权利要求所述的方法,其进一步包括:
至少部分地基于所述CC奇偶校验数位而确定对应于所述外码字的所述段中的特定数位的可靠性值;及
至少部分地基于根据读取所述外码字的所述段中的所述特定数位确定的软数据而调整对应于所述外码字的所述段中的所述特定数位的所述可靠性值。
51.根据权利要求50所述的方法,其中针对所述外码字的所述段中的所述特定数位确定的所述软数据是使用硬读取针对所述外码字的所述段中的所述特定数位确定的LLR。
52.根据权利要求45到49中任一权利要求所述的方法,其中确定所述CC奇偶校验数位包含将CC校验子计算为所述所接收CC码字与所述CC奇偶校验数位的奇偶校验矩阵的积。
53.根据权利要求45到49中任一权利要求所述的方法,其中经由硬读取从存储器获得所述所接收CC码字。
CN201380071053.6A 2013-01-21 2013-12-13 使用分类码来确定软数据 Active CN104937669B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/746,195 US9065483B2 (en) 2013-01-21 2013-01-21 Determining soft data using a classification code
US13/746,195 2013-01-21
PCT/US2013/074972 WO2014113161A1 (en) 2013-01-21 2013-12-13 Determining soft data using a classification code

Publications (2)

Publication Number Publication Date
CN104937669A true CN104937669A (zh) 2015-09-23
CN104937669B CN104937669B (zh) 2019-02-22

Family

ID=51208747

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380071053.6A Active CN104937669B (zh) 2013-01-21 2013-12-13 使用分类码来确定软数据

Country Status (6)

Country Link
US (2) US9065483B2 (zh)
EP (2) EP2946386B1 (zh)
JP (1) JP6122152B2 (zh)
KR (1) KR101674339B1 (zh)
CN (1) CN104937669B (zh)
WO (1) WO2014113161A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109196479A (zh) * 2016-04-05 2019-01-11 美光科技公司 存储器中的错误校正码(ecc)操作
CN111756453A (zh) * 2019-03-28 2020-10-09 创发信息科技(苏州)有限公司 通过一对双绞线或两对双绞线来传输的以太网通信系统

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2752366A1 (en) 2010-01-28 2014-07-09 Avery Dennison Corporation Label applicator belt system
US9064575B2 (en) 2012-08-03 2015-06-23 Micron Technology, Inc. Determining whether a memory cell state is in a valley between adjacent data states
US10204006B2 (en) * 2015-10-28 2019-02-12 Avago Technologies International Sales Pte. Limited Systems and methods for side data based soft data flash memory access
US10198316B2 (en) * 2015-10-28 2019-02-05 Avago Technologies International Sales Pte. Limited Systems and methods for efficient flash memory access
US10108489B2 (en) * 2015-10-28 2018-10-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for efficient soft data based flash memory data recovery
CN106816179B (zh) 2015-11-30 2020-12-25 华为技术有限公司 一种闪存纠错方法和装置
JP2017175352A (ja) * 2016-03-23 2017-09-28 パナソニック株式会社 ターボ等化装置およびターボ等化方法
KR102686057B1 (ko) 2016-06-14 2024-07-17 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
KR20180033740A (ko) * 2016-09-26 2018-04-04 에스케이하이닉스 주식회사 메모리 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
US20180175885A1 (en) * 2016-12-19 2018-06-21 Toshiba Memory Corporation Hybrid LDPC-SEC/SECDED Decoding
US10333554B2 (en) * 2017-06-30 2019-06-25 Samsung Electronics Co., Ltd. Efficient generalized tensor product codes encoding schemes
TWI645683B (zh) * 2018-01-31 2018-12-21 大陸商深圳衡宇芯片科技有限公司 使用代數碼與ldpc碼的部分聯結編碼系統
CN108092673B (zh) * 2018-02-10 2021-04-16 中国传媒大学 一种基于动态调度的bp迭代译码方法及系统
KR102687054B1 (ko) * 2018-10-12 2024-07-22 수퍼멤, 인크. 오류 정정 및 데이터 클리닝 회로가 구비된 메모리 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080040651A1 (en) * 2006-08-09 2008-02-14 Fujitsu Limited Encoding apparatus, decoding apparatus, encoding method, decoding method, and storage device
CN101572109A (zh) * 2008-04-30 2009-11-04 株式会社东芝 数据解码装置,磁盘装置以及数据解码方法
US20120036414A1 (en) * 2010-08-06 2012-02-09 Stmicroelectronics, Inc Rendering data write errors detectable
US8321769B1 (en) * 2008-11-06 2012-11-27 Marvell International Ltd. Multi-parity tensor-product code for data channel

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5958048A (en) * 1996-08-07 1999-09-28 Elbrus International Ltd. Architectural support for software pipelining of nested loops
US5966412A (en) * 1997-06-30 1999-10-12 Thomson Consumer Electronics, Inc. Apparatus and method for processing a Quadrature Amplitude Modulated (QAM) signal
AU754257B2 (en) * 1997-10-10 2002-11-07 Qualcomm Incorporated Multi-layered PN code spreading in a multi-user communications system
EP1085661B1 (en) * 1999-09-14 2005-03-02 Lucent Technologies Inc. Channel decoder and method of channel decoding
US6684367B1 (en) * 2000-10-13 2004-01-27 Agere Systems Inc. Channel coding based on hidden puncturing for partial-band interference channels
FR2816773B1 (fr) * 2000-11-10 2004-11-26 France Telecom Module, dispositif et procede de decodage a haut debit, d'un code concatene
US6587372B2 (en) 2001-01-11 2003-07-01 Micron Technology, Inc. Memory device with multi-level storage cells and apparatuses, systems and methods including same
US7953115B2 (en) * 2003-06-18 2011-05-31 Nippon Telegraph And Telephone Corporation Wireless packet communication method
US7071849B2 (en) 2004-04-04 2006-07-04 Guobiao Zhang Fractional-Bit Systems
US7516389B2 (en) * 2004-11-04 2009-04-07 Agere Systems Inc. Concatenated iterative and algebraic coding
US7861131B1 (en) * 2005-09-01 2010-12-28 Marvell International Ltd. Tensor product codes containing an iterative code
WO2007089165A1 (en) * 2006-01-31 2007-08-09 Intel Corporation Iterative decoding of concatenated low-density parity-check codes
US8848442B2 (en) 2006-03-06 2014-09-30 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
US7502254B2 (en) 2006-04-11 2009-03-10 Sandisk Il Ltd Method for generating soft bits in flash memories
US7934143B1 (en) * 2006-04-24 2011-04-26 Marvell International Ltd. Parity insertion for inner architecture
WO2007132456A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Memory device with adaptive capacity
US8028216B1 (en) * 2006-06-02 2011-09-27 Marvell International Ltd. Embedded parity coding for data storage
US8190976B1 (en) * 2006-08-07 2012-05-29 Marvell International Ltd. High-speed interface for holographic storage read channel
KR100833600B1 (ko) 2006-08-25 2008-05-30 삼성전자주식회사 에러 정정 회로, 그 방법 및 상기 회로를 구비하는 반도체메모리 장치
TWI353521B (en) 2006-09-28 2011-12-01 Sandisk Corp Soft-input soft-output decoder for nonvolatile mem
US8166379B1 (en) 2006-11-03 2012-04-24 Marvell International Ltd. Calculating soft information from a multi-level modulation signal
US8059763B1 (en) 2006-11-09 2011-11-15 Marvell International Ltd. Approximate soft-information computation in multi-level modulation signaling schemes
US7814401B2 (en) 2006-12-21 2010-10-12 Ramot At Tel Aviv University Ltd. Soft decoding of hard and soft bits read from a flash memory
US8583981B2 (en) * 2006-12-29 2013-11-12 Marvell World Trade Ltd. Concatenated codes for holographic storage
US8065583B2 (en) 2007-07-06 2011-11-22 Micron Technology, Inc. Data storage with an outer block code and a stream-based inner code
US7848142B2 (en) 2007-10-31 2010-12-07 Micron Technology, Inc. Fractional bits in memory cells
WO2009072103A2 (en) * 2007-12-05 2009-06-11 Densbits Technologies Ltd. Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated bch codes and/or designation of 'first below' cells
US7656707B2 (en) 2007-12-14 2010-02-02 Intel Corporation Systems and methods for discrete channel decoding of LDPC codes for flash memory
US8533563B2 (en) * 2008-03-31 2013-09-10 Qimonda Ag Memory read-out
US8406048B2 (en) 2008-08-08 2013-03-26 Marvell World Trade Ltd. Accessing memory using fractional reference voltages
TW201019327A (en) 2008-09-30 2010-05-16 Lsi Corp Methods and apparatus for soft data generation for memory devices using reference cells
US8301979B2 (en) 2008-10-07 2012-10-30 Sandisk Il Ltd. Low density parity code (LDPC) decoding for memory with multiple log likelihood ratio (LLR) decoders
JP2010109468A (ja) * 2008-10-28 2010-05-13 Toshiba Corp 復号器、メモリコントローラおよび半導体メモリ装置
US7787307B2 (en) 2008-12-08 2010-08-31 Micron Technology, Inc. Memory cell shift estimation method and apparatus
US20100220514A1 (en) 2009-03-02 2010-09-02 Lyric Semiconductor, Inc. Storage devices with soft processing
US8619474B2 (en) 2009-09-10 2013-12-31 Micron Technology, Inc. Data line management in a memory device
JP5523120B2 (ja) * 2010-01-14 2014-06-18 三菱電機株式会社 誤り訂正符号化方法、誤り訂正復号方法、誤り訂正符号化装置、および、誤り訂正復号装置
KR101633048B1 (ko) 2010-02-25 2016-06-24 삼성전자주식회사 메모리 시스템 및 그것의 데이터 처리 방법
US8700970B2 (en) 2010-02-28 2014-04-15 Densbits Technologies Ltd. System and method for multi-dimensional decoding
KR101466555B1 (ko) 2010-03-12 2014-12-02 엘에스아이 코포레이션 플래시 메모리들을 위한 ldpc 소거 디코딩
US8775913B2 (en) 2010-03-31 2014-07-08 Lsi Corporation Methods and apparatus for computing soft data or log likelihood ratios for received values in communication or storage systems
US8332728B2 (en) 2010-04-02 2012-12-11 Skymedi Corporation Method and apparatus of generating a soft value for a memory device
US8595585B2 (en) * 2010-08-20 2013-11-26 Nec Laboratories America, Inc. Reverse concatenated encoding and decoding
US8243511B2 (en) 2010-09-27 2012-08-14 Seagate Technology Llc Reuse of information from memory read operations
US20120240007A1 (en) 2010-10-20 2012-09-20 Stec, Inc. Ldpc decoding for solid state storage devices
US8812939B2 (en) 2011-01-28 2014-08-19 Marvell World Trade Ltd. Soft decoding systems and methods for flash based memory systems
US8693258B2 (en) 2011-03-17 2014-04-08 Densbits Technologies Ltd. Obtaining soft information using a hard interface
US9148175B2 (en) * 2011-05-31 2015-09-29 Mitsubishi Electric Corporation Error correction coding device, error correction decoding device and method therefor
EP2536030A1 (en) * 2011-06-16 2012-12-19 Panasonic Corporation Bit permutation patterns for BICM with LDPC codes and QAM constellations
US8656257B1 (en) * 2012-01-11 2014-02-18 Pmc-Sierra Us, Inc. Nonvolatile memory controller with concatenated error correction codes

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080040651A1 (en) * 2006-08-09 2008-02-14 Fujitsu Limited Encoding apparatus, decoding apparatus, encoding method, decoding method, and storage device
CN101572109A (zh) * 2008-04-30 2009-11-04 株式会社东芝 数据解码装置,磁盘装置以及数据解码方法
US8321769B1 (en) * 2008-11-06 2012-11-27 Marvell International Ltd. Multi-parity tensor-product code for data channel
US20120036414A1 (en) * 2010-08-06 2012-02-09 Stmicroelectronics, Inc Rendering data write errors detectable

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HAN YANG ECT.: "Dual-mode decoding of product codes with application to tape storage", 《IEEE GLOBAL TELECOMMUNICATIONS CONFERENCE, 2005》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109196479A (zh) * 2016-04-05 2019-01-11 美光科技公司 存储器中的错误校正码(ecc)操作
CN109196479B (zh) * 2016-04-05 2022-05-10 美光科技公司 存储器中的错误校正码(ecc)操作
CN111756453A (zh) * 2019-03-28 2020-10-09 创发信息科技(苏州)有限公司 通过一对双绞线或两对双绞线来传输的以太网通信系统

Also Published As

Publication number Publication date
WO2014113161A1 (en) 2014-07-24
EP2946386A1 (en) 2015-11-25
US20140208189A1 (en) 2014-07-24
EP2946386A4 (en) 2017-01-04
EP2946386B1 (en) 2020-02-05
US9065483B2 (en) 2015-06-23
US9391645B2 (en) 2016-07-12
KR20150107862A (ko) 2015-09-23
EP3614569A1 (en) 2020-02-26
KR101674339B1 (ko) 2016-11-08
JP6122152B2 (ja) 2017-04-26
US20150270855A1 (en) 2015-09-24
JP2016509420A (ja) 2016-03-24
CN104937669B (zh) 2019-02-22

Similar Documents

Publication Publication Date Title
CN104937669B (zh) 使用分类码来确定软数据
US9985651B2 (en) Read threshold calibration for LDPC
US9535620B2 (en) Flash memory system and method controlling same
US9177664B2 (en) Method, memory controller and system for reading data stored in flash memory
US9411679B2 (en) Code modulation encoder and decoder, memory controller including them, and flash memory system
US9286972B2 (en) Method, memory controller and system for reading data stored in flash memory
US9471421B2 (en) Data accessing method, memory storage device and memory controlling circuit unit
US9093154B2 (en) Method, memory controller and system for reading data stored in flash memory
US9147483B2 (en) Apparatus and method of operating memory device
US11243838B2 (en) Methods and apparatuses for error correction
KR102606829B1 (ko) Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법
CN109471808B (zh) 具有数据可靠性机制的存储系统及其操作方法
CN108701491A (zh) 错误率降低
US11770133B1 (en) Exact ber reporting in the presence of CRC termination
US10084487B2 (en) Apparatuses and methods for erasure-assisted ECC decoding
US10528496B2 (en) Controller and operating method thereof
KR102226174B1 (ko) 반복 복호기, 반복 복호 방법 및 반도체 메모리 시스템
US11967970B2 (en) Bit-flipping decoder and decoding method for irregular codes
US20240185898A1 (en) Syndrome decoding system

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant