CN104769556B - 更新可靠性数据 - Google Patents
更新可靠性数据 Download PDFInfo
- Publication number
- CN104769556B CN104769556B CN201380058116.4A CN201380058116A CN104769556B CN 104769556 B CN104769556 B CN 104769556B CN 201380058116 A CN201380058116 A CN 201380058116A CN 104769556 B CN104769556 B CN 104769556B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- reliability
- check
- data value
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1012—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1108—Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
- H03M13/1137—Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
- H03M13/114—Shuffled, staggered, layered or turbo decoding schedules
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6577—Representation or format of variables, register sizes or word-lengths and quantization
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明包含与更新可靠性数据相关的设备及方法。若干方法可包含:在可变节点处接收带有第一硬数据值的第一可靠性数据值或带有第二硬数据值的第二可靠性数据值;将所述第一硬数据值或所述第二硬数据值发送到根据奇偶校验码而耦合到所述可变节点的每一校验节点;及基于来自所述校验节点的一部分的输入而更新所述可靠性数据。
Description
技术领域
本发明大体上涉及半导体存储器及方法,且更特定来说,涉及与更新可靠性数据相关的设备及方法。
背景技术
存储器装置通常被提供为计算机或其它电子装置中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性及非易失性存储器。易失性存储器可需要电力来维持其数据(例如,主机数据、错误信息等等),且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)等等。非易失性存储器可通过在未被供电时保留所存储的数据来提供永久性数据,且可包含NAND快闪存储器、NOR快闪存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、可擦除可编程ROM(EPROM)及电阻可变存储器,例如,相变随机存取存储器(PCRAM)、电阻性随机存取存储器(RRAM)及磁阻性随机存取存储器(MRAM)等等。
存储器装置可组合在一起以形成例如固态驱动器(SSD)的存储器系统的存储卷。固态驱动器可包含非易失性存储器(例如,NAND快闪存储器及NOR快闪存储器),及/或可包含易失性存储器(例如,DRAM及SRAM),以及各种其它类型的非易失性及易失性存储器。
SSD可用以替换硬盘驱动器作为计算机的主要存储卷,这是因为就性能、大小、重量、坚固性、操作温度范围及电力消耗而言,固态驱动器相对于硬盘驱动器可具有优势。举例来说,与磁盘驱动器相比较,SSD可具有优良的性能,这是归因于SSD没有移动零件,这可避免查找时间、时延,及与磁盘驱动器相关联的其它机电延迟。
存储器用作各种各样的电子应用的易失性及非易失性数据存储装置。非易失性存储器可用于便携式电子装置中,例如,膝上型计算机、便携式记忆棒、数码相机、蜂窝电话、例如MP3播放器的便携式音乐播放器、电影播放器,及其它电子装置。存储器单元可被布置成多个阵列,其中所述阵列用于存储器装置中。
当将数据从一个位置发送(例如,传达、传递、传送、传输等等)到另一位置时,存在可发生错误的可能性。当将数据存储在存储器中时,也可随着时间推移而发生错误。存在可用以对数据进行编码以使得可检测及/或校正错误的若干技术。因为将数据例行地发送到存储器及从存储器发送数据且将数据存储在存储器中,所以存储器可采用错误校正技术来试图校正与所述存储器相关联的数据。
一种类型的错误校正依赖于低密度奇偶校验(LDPC)码。可将未编码(例如,“原始”)数据编码成码字以供传输及/或存储。随后可对所述码字进行解码以恢复所述数据。强大的错误校正可为期望的,但需与时延、吞吐量及/或功率约束(例如由便携式电子装置强加的功率约束)保持平衡。
附图说明
图1为根据本发明的若干实施例的呈包含至少一个存储器系统的计算系统的形式的设备的框图。
图2A到2I说明根据本发明的若干实施例的用于更新可靠性数据的流程图。
图3说明根据本发明的若干实施例的包含错误校正电路的设备的框图。
图4为根据本发明的若干实施例的说明根据各种方法(包含至少一种)的块错误率相对于原始位错误率(RBER)的曲线图。
具体实施方式
本发明包含与更新可靠性数据相关的设备及方法。若干方法可包含:在可变节点处接收带有第一硬数据值的第一可靠性数据值(例如,最大可靠性数据值)或带有第二硬数据值的第二可靠性数据值(例如,最小可靠性数据值);将所述第一硬数据值或所述第二硬数据值发送到根据奇偶校验码而耦合到所述可变节点的每一校验节点;及基于来自所述校验节点的一部分的输入而更新所述可靠性数据。举例来说,可靠性电路可经配置以提供针对特定硬数据值的特定可靠性数据值,例如响应于第一硬数据值的最大可靠性数据值或响应于第二硬数据值的最小可靠性数据值(例如,在硬数据模式中)。然而,在软或半软模式中,所述可靠性电路可经配置以提供其它初始可靠性数据值(例如,在最大值与最小值之间)。
在本发明的以下具体实施方式中,参考形成本发明的一部分的附图,且在附图中作为说明而展示可如何实践本发明的一或多个实施例。充分详细地描述这些实施例以使得所属领域的一般技术人员能够实践本发明的实施例,且应理解,在不脱离本发明的范围的情况下,可利用其它实施例且可作出过程改变、电改变及/或结构改变。如本文中所使用,特别是相对于图式中的参考数字的指示符“C”、“N”、“M”、“P”及“V”指示可包含如此指定的若干特定特征。如本文中所使用,“若干”特定事物可指一或多个此类事物(例如,若干存储器装置可指一或多个存储器装置)。
本文中的诸图遵循编号惯例,其中首位数字或前几位数字对应于图式的图号且剩余数字识别所述图式中的元件或组件。不同图之间的类似元件或组件可通过使用类似数字而识别。举例来说,114可指图1中的元件“14”,且类似元件可在图3中被称为314。将了解,可添加、交换及/或消除本文中的各种实施例中展示的元件,以便提供本发明的若干额外实施例。此外,将了解,诸图中提供的元件的比例及相对尺度意欲说明本发明的某些实施例,且不应被认作限制性意义。
图1为根据本发明的若干实施例的呈包含至少一个存储器系统104的计算系统100的形式的设备的框图。如本文中所使用,存储器系统104、控制器108或存储器装置110也可被单独地视为“设备”。举例来说,存储器系统104可为固态驱动器(SSD),且可包含主机接口106、控制器108(例如,处理器及/或其它控制电路系统),及若干存储器装置110-1、…、110-M(例如,固态存储器装置(例如,快闪装置)),存储器装置110-1、…、110-M提供存储器系统104的存储卷。在另一实施例中,存储器系统104可为单一存储器装置。
如图1所说明,控制器108可经由多个通道而耦合到主机接口106且耦合到存储器装置110-1、…、110-M,且可用以在存储器系统104与主机102之间发送数据。接口106可呈标准化接口的形式。举例来说,当存储器系统104在计算系统100中用于数据存储时,接口106可为串行高级技术附件(SATA)、外围组件互连高速(PCIe)或通用串行总线(USB),以及其它连接器及接口。然而,一般而言,接口106可提供用于在存储器系统104与具有用于接口106的兼容受体的主机102之间传递控制、地址、数据及其它信号的接口。
主机102可为主机系统,例如个人膝上型计算机、桌上型计算机、数码相机、移动电话或存储卡阅读器,以及各种其它类型的主机。主机102可包含系统母板及/或背板,且可包含若干存储器存取装置(例如,若干处理器)。主机102还可为存储器控制器,例如在存储器系统104为存储器装置(例如,具有裸片上控制器)的情况下。
控制器108可与若干存储器装置110-1、…、110-M(其在一些实施例中可为单一裸片上的若干存储器阵列)通信以控制数据读取、写入及擦除操作,以及其它操作。在一些实施例中,控制器108可位于所述同一裸片上,或位于不同于若干存储器装置110的任一者或全部的裸片上。
虽然未特定地说明,但在一些实施例中,控制器108可包含用于将控制器108耦合到存储器装置110-1、…、110-M的每一通道的离散存储器通道控制器。举例来说,控制器108可包含用于控制对若干存储器装置110-1、…、110-M的存取及/或用于促进主机102与存储器装置110-1、…、110-M之间的数据传送的呈硬件及/或固件(例如,一或多个集成电路)及/或软件的形式的若干组件。
如图1所说明,控制器108可包含可靠性电路112及错误校正电路114。举例来说,可靠性电路112可为对数似然比(LLR)电路,及/或错误校正电路114可为低密度奇偶校验(LDPC)电路。可靠性电路112及错误校正电路114中的每一者可为例如专用集成电路(ASIC)的离散组件,或所述组件可反映由控制器108内的未必具有与控制器108的其它部分分离的离散物理形式的电路系统提供的功能性。虽然在图1中被说明为控制器108内的组件,但可靠性电路112及错误校正电路114中的每一者可在控制器108外部,或具有位于控制器108内的若干组件及位于控制器108外部的若干组件。
错误校正电路114可包含两种类型的处理节点:可变节点及校验节点。处理节点可根据代码的奇偶校验码而耦合。在本发明的若干实施例中,可变节点可被实施为循环存储器,且校验节点可被实施为计算(例如,演算)奇偶校验数据(例如,执行征候(syndrome)校验)及/或使可靠性数据递增及/或递减(以及其它功能)的电路。因而,校验节点可包含XOR电路及/或递增/递减计数器,以及其它电路系统。在若干实施例中,可变节点可被实施为递增/递减计数器(例如,饱和递增/递减计数器),且校验节点可被实施为组合逻辑(例如,异或(XOR)电路)。到错误校正电路114的输入可为如从可靠性电路112接收的来自存储器110的硬数据(例如,与来自可靠性电路112的可靠性数据一起被包含)。可针对每一可变节点而存储LLR值,且可如本文中所描述在解码的每一层(举例来说,或一些多个层,或每一反复一次)期间更新LLR值。
在若干实施例中,到错误校正电路114的输入可包括半软数据或全软数据(例如,响应于对硬数据及/或半软数据的征候校验的失败)。硬数据为仅对应于存储器单元的数据状态的数据。举例来说,2位存储器单元可编程到四个数据状态中的一者,其中每一数据状态对应于数据00、01、10或11中的一者。举例来说,数据状态00及01的(最高有效位(MSB)的)硬数据为0,而数据状态10及11的硬数据为(MSB的)1。与此对比,与存储器单元相关联的软数据可指示在状态分布(例如,阈值电压(Vt)分布)内存储在存储器单元上的表示存储器单元被编程到的目标状态的状态(例如,阈值电压(Vt))的位置。另外,与存储器单元相关联的软数据可指示存储器单元的状态是否对应于存储器单元被编程到的目标状态的概率。存储器装置可经配置以确定从其读取的硬数据的特定数目个软数据位。对于上文所描述的2位存储器单元,软数据的实例可包含使用四个位的较大分辨率,其可表示多达16种不同状态。半软数据指示软数据的一部分与硬数据一起被发送。全软数据指示所有软数据与硬数据一起被发送。本文中更详细地描述与控制器108相关联的额外功能性。
若干存储器装置110-1、…、110-M可包含存储器单元(例如,非易失性存储器单元)的若干阵列。举例来说,所述阵列可为具有NAND架构的快闪阵列。然而,实施例不限于特定类型的存储器阵列或阵列架构。举例来说,所述存储器单元可被分组成包含若干物理页的若干块。若干块可包含在存储器单元的平面中,且阵列可包含若干平面。作为一个实例,存储器装置可经配置以每页存储8KB(千字节)的用户数据、每块存储128页的用户数据、每平面存储2048个块,及每装置存储16个平面。
在操作中,举例来说,数据可作为数据页而写入到存储器(例如,系统104的存储器装置110-1、…、110-M)及/或从存储器(例如,系统104的存储器装置110-1、…、110-M)读取。因而,数据页可被称为存储器系统的数据传送大小。数据可以被称为扇区(例如,主机扇区)的数据段发送到主机(例如,主机102)/从主机(例如,主机102)发送。因而,数据扇区可被称为主机的数据传送大小。
图2A到2I说明根据本发明的若干实施例的用于更新可靠性数据的流程图。虽然在图2A到2I中未特定地说明,但实施LDPC方案的错误校正电路可包含根据奇偶校验码而耦合的众多可变节点及校验节点。LDPC码为一类二进制线性块码,其中一组码字跨越稀疏奇偶校验矩阵H的零空间。LDPC码可由被称为因子图的二分图表示,所述因子图说明可变节点、校验节点及其之间的连接。LDPC解码过程也可被称为在因子图的边缘(节点之间的连接)上方的反复消息传递过程。
图2A说明初始化步骤,其中在若干可变节点216-1、216-2、…、216-V处从可靠性电路212(例如,LLR电路)接收包含硬数据的可靠性数据。由可变节点216-1、216-2、…、216-V中的每一者接收的包含硬数据的可靠性数据未必相同(例如,可变节点216-1可接收硬数据“HD1”,可变节点216-2可接收硬数据“HD2”,且可变节点216-V可接收硬数据“HD3”),这是因为硬数据值可由从存储器装置读取的码字导出。硬数据(例如,码字)可从存储器装置(例如,图1所说明的存储器装置110)读取且由可靠性电路212接收以用于将包含硬数据的可靠性数据的确定(例如,分配、产生等等)。虽然未特定地说明,但可靠性电路212可向可变节点216-1、216-2、…、216-V提供半软数据及/或全软数据(例如,响应于针对硬数据及/或半软数据的失败征候校验)。
可靠性数据可由可靠性电路212产生。可变节点216-1、216-2、…、216-V可接收带有第一硬数据值的第一可靠性数据值(例如,最大可靠性数据值)或带有第二硬数据值的第二可靠性数据值(例如,最小可靠性数据值)(例如,在硬数据模式中)。可靠性电路212可经配置以提供针对特定硬数据值的特定可靠性数据值,例如响应于第一硬数据值的最大可靠性数据值或响应于第二硬数据值的最小可靠性数据值(例如,在硬数据模式中)。然而,在软或半软模式中,可靠性电路212可经配置以提供其它初始可靠性数据值(例如,在最大值与最小值之间)。
可变节点216-1、216-2、…、216-V可存储所接收的可靠性数据,举例来说,响应于硬数据输入具有第一硬数据值(例如,第一二进制值)的第一可靠性数据值或响应于硬数据输入具有第二硬数据值(例如,第二二进制值)的第二可靠性数据值。在若干实施例中,可靠性数据可为LLR值的二进制补码表示。举例来说,对于“0”硬数据值,二进制补码值可大于等于零(例如,最大LLR值),且对于从存储器接收的“1”硬数据值,二进制补码值可小于零(例如,最小LLR值)。
可靠性电路212可经配置以提供针对相应硬数据值的最大或最小LLR值作为到错误校正电路(例如,图1所说明的错误校正电路114)的初始输入。在三位实施方案(例如,包含共同地表示可靠性数据的一位硬数据及二位计数),“0”硬数据值可对应于为+3的二进制补码LLR值,且“1”硬数据值可对应于为-4的二进制补码LLR值。下表说明包含一位硬数据、二位可靠性数据的三位值与表示可靠性数据的二进制补码值之间的对应:
表1
3位值 | 硬数据 | 二进制补码LLR |
000 | 0 | 0 |
001 | 0 | 1 |
010 | 0 | 2 |
011 | 0 | 3 |
100 | 1 | -4 |
101 | 1 | -3 |
110 | 1 | -2 |
111 | 1 | -1 |
如表1中所说明,三位值的最高有效位(MSB)可包括硬数据值。虽然在表1中未说明,但二进制补码LLR可自动地基于硬数据而设置为特定值(例如,最大值或最小值)。因此,为0、1及2的二进制补码LLR值可初始地设置为3,且为-3、-2及-1的二进制补码LLR值可初始地设置为-4。实施例不限于三位实施方案,其为硬数据值与LLR值的相应对应、使用最大及最小LLR值,或使用二进制补码表示(例如,因为可使用例如符号量值的其它表示),其用以说明实例实施方案以促进对本发明的理解。
图2B说明特定可变节点216-1及根据奇偶校验码而耦合到特定可变节点216-1的多个校验节点218-1、218-2、218-3、…、218-C。在第一反复期间,可变节点(例如,图2A所说明的可变节点216-1、216-2、…、216-V)中的每一者可将硬数据发送到耦合到所述可变节点的多个校验节点中的每一者(例如,可变节点216-1可将硬数据“HD1”发送到校验节点218-1、218-2、218-3、…、218-C)。可变节点216-1可将相同硬数据发送到每一校验节点218-1、218-2、218-3、…、218-C。
虽然在图2B中未特定地说明,但特定可变节点216-1可将所存储的包含硬数据的可靠性数据发送到耦合到特定可变节点216-1的校验节点218-1、218-2、218-3、…、218-C。在若干实施例中,特定可变节点216-1可包含递增/递减计数器,在此情形中,特定可变节点216-1可在没有可靠性数据的情况下发送硬数据,这是因为特定可变节点216-1可更新可靠性数据。在一些实施例中,特定可变节点216-1可为没有计数器的存储器,在此情形中,所述特定可变节点可发送包含硬数据的可靠性数据,使得校验节点218-1、218-2、218-3、…、218-C可更新可靠性数据。
图2C说明特定校验节点218-1在第一反复期间从耦合到特定校验节点218-1的若干可变节点216-1、216-2、…、216-V中的每一者接收相应硬数据值。如本文中所描述,从可变节点216-1、216-2、…、216-V中的每一者接收的相应硬数据值可独立于其它硬数据值,因此,图2C将硬数据展示为来自可变节点216-1的“HD1”、来自可变节点216-2的“HD2”及来自可变节点216-V的“HD3”。将不同指示符用于硬数据并不暗示相应硬数据值是不同的(例如,所有所述值有可能为相同的,例如为“1”)。在若干实施例中,特定校验节点218-1可从耦合到特定校验节点218-1的若干可变节点216-1、216-2、…、216-V中的每一者接收带有硬数据值的相应可靠性数据值。
校验节点218-1可至少部分地基于(例如,在一些实施例中仅基于)所接收的相应硬数据值来计算奇偶校验数据(例如,执行征候校验)。举例来说,校验节点218-1可通过对来自可变节点216-1、216-2、…、216-V中的每一者的硬数据值执行XOR操作来计算第一奇偶校验数据。校验节点218-1可通过对所述第一奇偶校验数据及从相应可变节点(例如,可变节点216-1)接收的相应硬数据执行XOR操作来计算第二奇偶校验数据。所述第二奇偶校验数据可如下文更详细地所描述而发送到相应可变节点。在若干实施例中,每一校验节点(例如,校验节点218-1、218-2、218-3、…、218-C)可每时钟周期计算奇偶校验数据一次。
图2D说明特定校验节点218-1将相应奇偶校验数据发送到相应可变节点216-1、216-2、…、216-V。所述奇偶校验数据可为上文所描述的第二奇偶校验数据(例如,至少部分地基于(例如,在一些实施例中仅基于)来自相应可变节点的硬数据与由校验节点218-1接收的所有硬数据的XOR的结果的XOR而计算)。因此,图2D说明校验节点218-1将奇偶校验数据“XOR1”发送到可变节点216-1、将奇偶校验数据“XOR2”发送到可变节点216-2及将奇偶校验数据“XOR3”发送到可变节点216-V。如图2D所说明,从校验节点218-1发送的奇偶校验数据可为第一反复的第一层的一部分。下文更详细地描述消息传递的分层方法。奇偶校验数据可有效地替换从可变节点216-1、216-2、…、216-V发送的硬数据作为经更新硬数据。在若干实施例中,特定校验节点218-1可将相应可靠性数据与相应奇偶校验数据一起发送到相应可变节点216-1、216-2、…、216-V。所述相应可靠性数据可为由相应可变节点216-1、216-2、…、216-V发送的相同可靠性数据,或所述可靠性数据可由校验节点218-1在传输之前更新。
可变节点216-1、216-2、…、216-V中的每一者可至少部分地基于(例如,在一些实施例中仅基于)其分别从校验节点218-1接收的奇偶校验数据及/或从校验节点218-1接收的经更新可靠性数据来更新其分别存储的可靠性数据。在若干实施例中,可变节点216-1、216-2、…、216-V可通过至少部分地基于(或,在一些实施例中仅基于)从特定校验节点218-1接收的奇偶校验数据(例如,与在消息传递算法的所述反复的过去、当前或未来层或不同反复期间从任何其它校验节点接收的奇偶校验数据无关)而使可靠性数据值递增或递减来更新其相应可靠性数据。可变节点216-1、216-2、…、216-V可每时钟周期使所存储的可靠性数据递增或递减一次。关于包含存储在可变节点216-1、216-2、…、216-V处的最大及/或最小可靠性数据值的那些实施例,可在由最大值及最小值界定的范围内使可靠性数据值递增及/或递减,使得(举例来说)如果可靠性数据值已处于最大值且所接收的奇偶校验数据值要求使可靠性数据值递增,那么所述可靠性数据值将不会被递增。在若干实施例中,可变节点216-1、216-2、…、216-V可通过存储从特定校验节点218-1接收的经更新可靠性数据来更新其相应可靠性数据。
图2E到2H说明来自耦合到特定可变节点216-1的那些校验节点218-1、218-2、218-3、…、218-C的消息传递的反复的四个层。在若干实施例中,一个层可包含至少部分地基于(或,在一些实施例中仅基于)来自耦合到特定可变节点216-1的校验节点218-1、218-2、218-3、…、218-C中的一者的奇偶校验数据而使可变节点216-1处的所存储的可靠性数据值递增或递减。在若干实施例中,一个层可包含至少部分地基于(或,在一些实施例中仅基于)来自耦合到特定可变节点216-1的校验节点218-1、218-2、218-3、…、218-C中的一者的经更新可靠性数据来更新可变节点216-1处的所存储的可靠性数据值。
图2E说明耦合到可变节点216-1的校验节点218-1、218-2、218-3、…、218-C中的第一校验节点218-1在第一反复的第一层中将奇偶校验数据(例如,“XOR-A”)发送到可变节点216-1。由第一校验节点218-1发送的奇偶校验数据可至少部分地基于(例如,在一些实施例中仅基于)由可变节点216-1及其它可变节点(未说明)发送的硬数据。在第一层中,可变节点216-1可至少部分地基于(例如,在一些实施例中仅基于)从第一校验节点218-1接收的奇偶校验数据来更新随其存储的可靠性数据。因为奇偶校验数据的接收,响应于奇偶校验数据而更新可靠性数据可包含更新奇偶校验数据(例如,接收奇偶校验数据致使可靠性数据被更新)。至少部分地基于(例如,在一些实施例中仅基于)奇偶校验数据来更新可靠性数据可包含根据所接收的奇偶校验数据值而使可靠性数据值递增或递减。举例来说,如果奇偶校验数据XOR-A为第一值(例如,二进制“1”),那么可变节点216-1可使可靠性数据递增,且如果奇偶校验数据XOR-A为第二值(例如,二进制“0”),那么可变节点216-1可使可靠性数据递减。使可靠性数据递增及/或递减可包含使可靠性数据递增及/或递减预定量,除非所存储的可靠性数据值的递增或递减将超过可靠性数据值的预定范围。虽然在图2E中未特定地说明,但校验节点218-1可将带有奇偶校验数据的经更新可靠性数据发送到特定可变节点216-1。在第一层中,可变节点216-1可至少部分地基于(例如,在一些实施例中仅基于)从第一校验节点218-1接收的经更新可靠性数据来更新随其存储的可靠性数据。
图2F说明耦合到可变节点216-1的校验节点218-1、218-2、218-3、…、218-C中的第二校验节点218-2在第一反复的第二层中将奇偶校验数据(例如,“XOR-B”)发送到可变节点216-1。在所述第二层中,可变节点216-1可至少部分地基于(例如,在一些实施例中仅基于)从第二校验节点218-2接收的奇偶校验数据来更新随其存储的可靠性数据。虽然在图2F中未特定地说明,但校验节点218-2可将带有奇偶校验数据的经更新可靠性数据发送到特定可变节点216-1。在所述第二层中,可变节点216-1可至少部分地基于(例如,在一些实施例中仅基于)从第一校验节点218-2接收的经更新可靠性数据来更新随其存储的可靠性数据。
图2G说明耦合到可变节点216-1的校验节点218-1、218-2、218-3、…、218-C中的第三校验节点218-3在第一反复的第三层中将奇偶校验数据(例如,“XOR-C”)发送到可变节点216-1。在所述第三层中,可变节点216-1可至少部分地基于(例如,在一些实施例中仅基于)从第三校验节点218-3接收的奇偶校验数据来更新随其存储的可靠性数据。虽然在图2G中未特定地说明,但校验节点218-3可将带有奇偶校验数据的经更新可靠性数据发送到特定可变节点216-1。在所述第三层中,可变节点216-1可至少部分地基于(例如,在一些实施例中仅基于)从第一校验节点218-3接收的经更新可靠性数据来更新随其存储的可靠性数据。
图2H说明耦合到可变节点216-1的校验节点218-1、218-2、218-3、…、218-C中的第四校验节点218-C在第一反复的第四层中将奇偶校验数据(例如,“XOR-D”)发送到可变节点216-1。在所述第四层中,可变节点216-1可至少部分地基于(例如,在一些实施例中仅基于)从第四校验节点218-C接收的奇偶校验数据来更新随其存储的可靠性数据。虽然在图2H中未特定地说明,但校验节点218-C可将带有奇偶校验数据的经更新可靠性数据发送到特定可变节点216-1。在所述第四层中,可变节点216-1可至少部分地基于(例如,在一些实施例中仅基于)从第一校验节点218-C接收的经更新可靠性数据来更新随其存储的可靠性数据。
每一层可包含从校验节点218-1、218-2、218-3、…、218-C的一部分(例如,校验节点218-C中的相应校验节点)接收输入,及至少部分地基于(例如,在一些实施例中仅基于)来自校验节点218-1、218-2、218-3、…、218-C中的相应校验节点的输入(例如,奇偶校验数据及/或经更新可靠性数据)来更新可靠性数据。虽然未特定地说明,但一些实施例可包含按每L数目(例如,其中L为从1个层到所有层的变量,其中可每层、每隔一个层、每隔两个层等等直到每反复一次地更新可靠性数据)个层而更新可靠性数据,且包含基于来自多个校验节点中的相应校验节点的输入而更新可靠性数据。在若干实施例中,分层更新可继续进行直到可变节点216-1已从多个校验节点218-1、218-2、218-3、…、218-C中的每一者接收到输入为止。可在将后续(经更新)硬数据值从可变节点216-1发送到校验节点218-1、218-2、218-3、…、218-C中的每一者之前在一个反复期间完成针对耦合到可变节点216-1的所有若干校验节点218-1、218-2、218-3、…、218-C的可变节点216-1处的所存储的可靠性数据值的分层递增或递减。
图2I说明可变节点216-1将对应于经更新可靠性数据的经更新硬数据发送到校验节点218-1、218-2、218-3、…、218-C中的每一者。举例来说,可变节点216-1可将经更新硬数据“HD4”发送到校验节点218-1、218-2、218-3、…、218-C。因为经更新硬数据“HD4”表示对应于与可变节点216-1相关联而存储的经更新可靠性数据的硬数据,所以可在分层更新之后将同一硬数据值“HD4”发送到耦合到可变节点216-1的校验节点218-1、218-2、218-3、…、218-C中的每一者。举例来说,所述经更新硬数据可为所述经更新可靠性数据的MSB(例如,在所述经更新可靠性数据为LLR的情况下)。在若干实施例中,可变节点216-1可发送包含经更新硬数据的经更新可靠性数据。将经更新硬数据从可变节点216-1发送到校验节点218-1、218-2、218-3、…、218-C可表示第二反复的开始。分层更新及经更新硬数据的发送可反复地重复直到已执行特定数目次反复为止及/或直到由校验节点218-1、218-2、218-3、…、218-C执行的征候校验正确为止。
图3说明根据本发明的若干实施例的包含错误校正电路314的设备的框图。数据输入320可经由可靠性电路(例如,图1所说明的可靠性电路112)而从存储器装置(例如,图1所说明的存储器装置110-1)提供。所述数据可输入到输入控制/缓冲器/对准器322。虽然未特定地说明,但所述输入控制/缓冲器/对准器322可从控制电路系统接收控制及状态信息以在输入320与错误校正电路314之间布置时序及信令。输入控制/缓冲器/对准器322可接收包含硬数据(例如,若干码字)的可靠性数据,且将所述可靠性数据(例如,扩展到具有一位硬数据及两位可靠性数据的每LLR三位的循环对准硬数据输入)提供到多个循环存储器328-1、…、328N。在若干实施例中,输入控制/缓冲器/对准器322可接收半软或全软数据(例如,响应于失败征候校验)。
循环存储器328-1、…、328-N的数目(N)可等于H矩阵(表示奇偶校验码)行中的循环行列式的总数。循环存储器328-1可存储循环矩阵,所述循环矩阵是由可出现在所述循环矩阵的列中的一者中的一个矢量指定,其中剩余列为具有等于列索引的偏移的所述矢量的循环排列。举例来说,H矩阵可包含表示奇偶校验码的20,480个列及2,048个行。在H矩阵中,每一可变节点可具有其自身的列。每一行可表示一奇偶校验约束,且每一列可表示所接收的码字的一个位。H矩阵可分成被称为循环行列式的较小矩阵(例如,512×512矩阵)。解码的每一层可由循环行列式的单一行组成,且所述循环行列式中的每一项可为一奇偶校验,其中每一层处理来自校验节点的一部分(例如,仅一者)的输入。循环存储器328-1、…、328-N可在其之间交换控制及/或状态信息,及/或与控制电路系统交换控制及/或状态信息。
循环存储器328-1、…、328-N可根据奇偶校验码而耦合到若干校验节点处理器330-0、…、330-1。循环存储器328-1、…、328-N可将硬数据及可靠性数据发送到校验节点处理器330-0、…、330-1。所述校验节点处理器可接收包含硬数据的可靠性数据、计算奇偶校验数据(经更新硬数据)、至少部分地基于(例如,在一些实施例中仅基于)奇偶校验数据来更新可靠性数据,及将包含经更新硬数据的经更新可靠性数据输出到循环存储器328-1、…、328-N。虽然在图3中仅说明两个校验节点处理器330-0、…、330-1,但实施例不如此受到限制,这是因为更多或更少的校验节点处理器可与错误校正电路314一起被包含。校验节点处理器330-0、…、330-1可在其之间交换控制及/或状态信息,及/或与控制电路系统交换控制及/或状态信息。
循环存储器328-1、…、328-N可将经更新硬数据输出到输出控制/缓冲器/对准器324。在若干实施例中,循环存储器328-1、…、328-N不将可靠性数据输出到输出控制/缓冲器/对准器324。虽然未特定地说明,但输出控制/缓冲器/对准器324可与控制电路系统及/或与循环存储器328-1、…、328-N交换控制及/或状态信息。输出控制/缓冲器/对准器324可将硬数据输出到输出326(例如,到主机的输出)。
图4为根据本发明的若干实施例的说明根据各种方法(包含至少一种)的块错误率相对于原始位错误率(RBER)的曲线图。所述曲线图比较在具有硬数据输入的情况下的将四位最小和算法用于错误校正(例如,根据一些先前方法的第一曲线432)相对于将根据本发明的若干实施例的三位算法(例如,第二曲线434)的块失败率。第一曲线432为块失败率,其中包含一个位的硬数据的四个位的可靠性数据作为到最小和错误校正算法的输入。第二曲线434为块失败率,其中包含一个位的硬数据的三个位的可靠性数据作为到根据本发明的若干实施例的错误校正算法的输入。最小和方法可具有9.0×10-6的块错误率,而根据本发明的若干实施例的错误校正算法可针对同一RBER具有2.0×10-7的块错误率。虽然在图4中未特定地说明,但可通过使用半软或全软数据来进一步改善错误校正性能。
本发明的若干实施例相对于四位最小和方法的一些优势包含较低复杂性错误校正电路系统。举例来说,可变节点可被实施为具有关联存储器的递增/递减计数器(或在校验节点提供升/降计数功能性时简单地被实施为存储器),且校验节点可被实施为组合逻辑(例如,XOR门及/或递增/递减计数器)。此外,错误校正可以位串行解码方法予以实施。使用三个位的数据(硬数据及可靠性数据)相比于使用四个位的数据会提供少25%的存储器使用量。根据本发明的错误校正电路系统可在可变节点与校验节点之间没有(举例来说)用以存储可变节点及/或校验节点的输出位的存储器资源的情况下予以实施。
结论
本发明包含与更新可靠性数据相关的设备及方法。若干方法可包含:在可变节点处接收带有第一硬数据值的第一可靠性数据值或带有第二硬数据值的第二可靠性数据值;将所述第一硬数据值或所述第二硬数据值发送到根据奇偶校验码而耦合到所述可变节点的每一校验节点;及基于来自所述校验节点的一部分的输入而更新所述可靠性数据。
虽然本文中已说明及描述特定实施例,但所属领域的一般技术人员将了解,经演算以实现相同结果的布置可取代所展示的特定实施例。本发明意欲涵盖本发明的一或多个实施例的适配或变化。应理解,已以说明性方式而非限制性方式进行以上描述。所属领域的技术人员将在审阅以上描述后就明白以上实施例的组合及本文中未特定地描述的其它实施例。本发明的一或多个实施例的范围包含其中使用以上结构及方法的其它应用。因此,应参考所附权利要求书以及此类权利要求书所授权的等效者的全部范围来确定本发明的一或多个实施例的范围。
在前述具体实施方式中,出于简化本发明的目的而在单一实施例中将一些特征分组在一起。本发明的这种方法不应被解释为反映本发明的所揭示实施例必须使用比在每一权利要求中明确地引述的特征更多的特征的意图。更确切地,如所附权利要求书所反映,发明性标的物在于单一所揭示实施例的一部分特征。因此,所附权利要求书特此并入到具体实施方式中,其中每一权利要求独立地作为单独实施例。
Claims (29)
1.一种用于更新可靠性数据的方法,其包括:
在可变节点处接收带有第一硬数据值的第一可靠性数据值或带有第二硬数据值的第二可靠性数据值;
将在所述可变节点处接收的所述第一硬数据值或所述第二硬数据值发送到根据奇偶校验码而耦合到所述可变节点的多个校验节点中的每一者;及
基于来自所述多个校验节点的一部分的输入而更新所述第一可靠性数据值或所述第二可靠性数据值,
其中所述第一可靠性数据值包括最大可靠性数据值;
其中所述第二可靠性数据值包括最小可靠性数据值;且
其中更新所述第一可靠性数据值或所述第二可靠性数据值包括在由所述最大可靠性数据值及所述最小可靠性数据值界定的范围内,将所述第一可靠性数据值或所述第二可靠性数据值递增或递减预定量。
2.根据权利要求1所述的方法,其中更新所述第一可靠性数据值或所述第二可靠性数据值包括用所述可变节点来更新所述第一可靠性数据值或所述第二可靠性数据值。
3.根据权利要求1所述的方法,其中更新所述第一可靠性数据值或所述第二可靠性数据值包括在所述多个校验节点中的相应校验节点处更新所述第一可靠性数据值或所述第二可靠性数据值。
4.根据权利要求1所述的方法,其中更新所述第一可靠性数据值或所述第二可靠性数据值包括由所述可变节点进行的所述第一可靠性数据值或所述第二可靠性数据值的分层更新,其中每一层包含:
从所述多个校验节点中的相应校验节点接收输入;及
基于来自所述多个校验节点中的所述相应校验节点的所述输入而更新所述第一可靠性数据值或所述第二可靠性数据值;且
其中分层更新继续进行直到所述可变节点已从所述多个校验节点中的每一者接收到输入为止。
5.根据权利要求4所述的方法,其中所述方法包含在所述分层更新之后将对应于经更新的第一可靠性数据值或经更新的第二可靠性数据值的经更新硬数据发送到所述多个校验节点中的每一者。
6.根据权利要求5所述的方法,其中所述方法包含重复所述分层更新及发送经更新硬数据直到已执行特定数目次反复为止。
7.根据权利要求5所述的方法,其中所述方法包含重复所述分层更新及发送经更新硬数据直到由所述多个校验节点执行的征候校验正确为止。
8.根据权利要求1到7中任一权利要求所述的方法,其中所述方法包含将带有所述硬数据的所述第一可靠性数据值或所述第二可靠性数据值发送到所述多个校验节点中的每一者。
9.一种用于更新可靠性数据的方法,其包括:
在特定可变节点处存储对应于硬数据值的可靠性数据值;
将所述硬数据值从所述特定可变节点发送到根据奇偶校验码而耦合到所述特定可变节点的若干校验节点中的每一者;
从耦合到特定校验节点的若干可变节点中的每一者接收相应硬数据值;
在所述特定校验节点处基于所述所接收的相应硬数据值来计算奇偶校验数据;及
至少部分地基于由所述特定校验节点计算的所述奇偶校验数据而使所述可靠性数据值递增或递减预定量,除非所述递增或递减将超过所述可靠性数据值的预定范围。
10.根据权利要求9所述的方法,其中递增或递减包括仅基于由所述特定校验节点计算的所述奇偶校验数据而使所述可靠性数据值递增或递减。
11.根据权利要求9到10中任一权利要求所述的方法,其中所述方法包含将所述可靠性数据值从所述特定可变节点发送到耦合到所述特定可变节点的所述若干校验节点中的每一者;及
从耦合到所述特定校验节点的所述若干可变节点中的每一者接收相应可靠性数据值;且
其中使所述所存储的可靠性数据值递增或递减包括在所述特定校验节点处使所述可靠性数据值递增或递减。
12.根据权利要求11所述的方法,其中所述方法包含将所述经递增或递减可靠性数据值从所述特定校验节点发送到所述特定可变节点;及
在所述特定可变节点处用所述经递增或递减可靠性数据值来替换所述所存储的可靠性数据值。
13.根据权利要求9到10中任一权利要求所述的方法,其中所述方法包含针对耦合到所述特定可变节点的所述若干校验节点中的每一者使所述所存储的可靠性数据值进行分层递增或递减;且
其中一个层包括仅基于由耦合到所述特定可变节点的所述若干校验节点中的相应校验节点计算的所述奇偶校验数据使所述所存储的可靠性数据值进行一次递增或递减。
14.根据权利要求13所述的方法,其中所述方法包含在将后续硬数据值从所述特定可变节点发送到耦合到所述特定可变节点的所述若干校验节点中的每一者之前,针对耦合到所述特定可变节点的所有所述若干校验节点使所述所存储的可靠性数据值进行分层递增或递减。
15.根据权利要求9到10中任一权利要求所述的方法,其中计算所述奇偶校验数据包括:
在所述特定校验节点处基于所述所接收的相应硬数据值来计算第一奇偶校验数据;及
在所述特定校验节点处基于所述第一奇偶校验数据及从所述特定可变节点接收的所述硬数据值来计算第二奇偶校验数据;且
其中所述方法包含将所述第二奇偶校验数据从所述特定校验节点发送到所述特定可变节点,但不将所述第二奇偶校验数据发送到其它可变节点。
16.一种用于更新可靠性数据的设备,其包括:
多个校验节点;及
多个可变节点,其包括存储可靠性数据的存储器且根据奇偶校验码而耦合到所述多个校验节点;
其中所述多个校验节点经配置以:
从耦合到所述多个校验节点的所述多个可变节点接收相应硬数据输入;及
基于所述相应硬数据输入针对耦合到所述多个校验节点的那些所述多个可变节点计算相应奇偶校验数据;
其中所述设备经配置以至少部分地基于所述相应奇偶校验数据来更新相应可靠性数据;且
其中为了更新所述相应可靠性数据值,所述设备经配置以使所述相应可靠性数据值递增或递减预定量,除非所述递增或递减将超过所述相应可靠性数据值的预定范围。
17.根据权利要求16所述的设备,其中所述设备经配置以在所述多个校验节点处至少部分地基于所述相应奇偶校验数据针对耦合到所述多个校验节点的那些所述可变节点更新相应可靠性数据。
18.根据权利要求16到17中任一权利要求所述的设备,其中所述多个校验节点经配置以通过以下方式计算所述相应奇偶校验数据:
基于所述相应硬数据输入来计算第一奇偶校验数据;
基于所述第一奇偶校验数据及来自特定可变节点的相应硬数据输入来计算第二奇偶校验数据;且
其中所述多个校验节点经配置以至少部分地基于所述相应第二奇偶校验数据针对所述特定可变节点更新相应可靠性数据。
19.根据权利要求16到17中任一权利要求所述的设备,其中所述多个可变节点经配置以在单独时钟周期上基于从耦合到所述多个可变节点的所述校验节点中的每一者接收的信息而更新所述多个可变节点中所存储的所述可靠性数据。
20.根据权利要求16到17中任一权利要求所述的设备,其中所述相应可靠性数据包括对数似然比LLR,且所述多个校验节点经配置以基于所述相应奇偶校验数据而使所述LLR递增或递减预定量。
21.一种用于更新可靠性数据的设备,其包括:
存储器装置;
可靠性电路,其耦合到所述存储器装置,且经配置以从所述存储器装置接收硬数据且确定分配到所述可靠性电路的可靠性数据,所述可靠性数据响应于所述硬数据包括第一值而包括第一可靠性数据值或响应于所述硬数据包括第二值而包括第二可靠性数据值;
错误校正电路,其耦合到所述可靠性电路,且经配置以从所述可靠性电路接收所述硬数据及所述可靠性数据,其中所述错误校正电路经进一步配置以:
反复地计算用于所述硬数据的奇偶校验数据;及
按每L数目个层的奇偶校验数据而使所述可靠性数据递增或递减预定量一次,除非所述递增或递减将超过所述可靠性数据的预定范围,其中一个反复包含多个层的奇偶校验数据。
22.根据权利要求21所述的设备,其中所述错误校正电路包含:
多个校验节点,其经配置以反复地计算用于所述硬数据的所述奇偶校验数据;及
多个可变节点,其经配置以更新所述可靠性数据。
23.根据权利要求21所述的设备,其中所述错误校正电路耦合到主机,且经配置以响应于执行特定数目次反复或响应于对所述硬数据的征候校验正确而将所述硬数据提供到所述主机。
24.一种用于更新可靠性数据的设备,其包括:
多个循环存储器;
多个校验节点,其根据奇偶校验码而耦合到所述多个循环存储器;且
其中所述多个循环存储器各自经配置以将相应硬数据及相应可靠性数据提供到耦合到所述多个循环存储器的所述多个校验节点;且
其中所述多个校验节点各自经配置以计算用于所接收的硬数据值的奇偶校验数据、至少部分地基于所述奇偶校验数据来更新所接收的可靠性数据,及将所述奇偶校验数据及经更新可靠性数据发送到耦合到所述多个校验节点的那些所述循环存储器;且
其中为了更新所述可靠性数据,所述设备经配置以使所述可靠性数据递增或递减预定量,除非所述递增或递减将超过所述可靠性数据的预定范围。
25.根据权利要求24所述的设备,其中所述设备包含:
输入,其耦合到所述多个循环存储器,所述输入经配置以将硬数据及可靠性数据提供到所述多个循环存储器;及
输出,其耦合到所述多个循环存储器,且经配置以从所述多个循环存储器接收硬数据;且
其中所述多个校验节点经配置以基于从所述多个循环存储器接收的所述硬数据来执行征候校验。
26.根据权利要求25所述的设备,其中所述输入经配置以响应于针对所述硬数据的所述征候校验失败而将半软数据提供到所述循环存储器。
27.根据权利要求26所述的设备,其中所述输入经配置以响应于针对所述半软数据的所述征候校验失败而提供全软数据。
28.一种用于更新可靠性数据的设备,其包括:
多个校验节点;及
多个可变节点,其根据奇偶校验码而耦合到所述多个校验节点;
其中所述多个校验节点经配置以:
从耦合到所述多个校验节点的所述多个可变节点接收相应硬数据输入;及
基于所述相应硬数据输入针对耦合到所述多个校验节点的那些所述多个可变节点计算相应奇偶校验数据;
其中所述多个可变节点经配置以至少部分地基于所述相应奇偶校验数据而更新相应可靠性数据;且
其中为了更新所述相应可靠性数据,所述多个可变节点中的每一者经配置以使所述相应可靠性数据递增或递减预定量,除非所述递增或递减将超过所述相应可靠性数据的预定范围。
29.根据权利要求28所述的设备,其中所述多个可变节点包括递增/递减计数器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/649,822 | 2012-10-11 | ||
US13/649,822 US9612903B2 (en) | 2012-10-11 | 2012-10-11 | Updating reliability data with a variable node and check nodes |
PCT/US2013/063843 WO2014058855A1 (en) | 2012-10-11 | 2013-10-08 | Updating reliability data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104769556A CN104769556A (zh) | 2015-07-08 |
CN104769556B true CN104769556B (zh) | 2018-02-02 |
Family
ID=50476582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380058116.4A Active CN104769556B (zh) | 2012-10-11 | 2013-10-08 | 更新可靠性数据 |
Country Status (7)
Country | Link |
---|---|
US (3) | US9612903B2 (zh) |
EP (1) | EP2907033B1 (zh) |
JP (1) | JP5992628B2 (zh) |
KR (1) | KR101753498B1 (zh) |
CN (1) | CN104769556B (zh) |
TW (1) | TWI517173B (zh) |
WO (1) | WO2014058855A1 (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104995844B (zh) * | 2013-02-14 | 2018-11-30 | 马维尔国际贸易有限公司 | 具有对于ldpc码可靠性输入的比特翻转解码 |
KR20150128750A (ko) | 2013-03-07 | 2015-11-18 | 마벨 월드 트레이드 리미티드 | 늦은 신뢰도 정보를 사용하여 디코딩하기 위한 시스템 및 방법 |
US9379738B2 (en) * | 2013-03-13 | 2016-06-28 | Marvell World Trade Ltd. | Systems and methods for decoding using partial reliability information |
US9407290B2 (en) * | 2013-03-15 | 2016-08-02 | Sandisk Technologies Llc | Error-correction decoding with conditional limiting of check-node messages |
US9323611B2 (en) | 2013-03-21 | 2016-04-26 | Marvell World Trade Ltd. | Systems and methods for multi-stage soft input decoding |
US9329935B2 (en) | 2014-05-19 | 2016-05-03 | Seagate Technology Llc | Method to dynamically update LLRs in an SSD drive and/or controller |
CN104537456A (zh) * | 2014-12-02 | 2015-04-22 | 成都万象天龙科技有限公司 | 一种基于进销存系统的带加密管控功能的控制系统与控制方法 |
CN104537455A (zh) * | 2014-12-02 | 2015-04-22 | 成都万象天龙科技有限公司 | 一种基于进销存系统的带加密功能的控制系统与控制方法 |
CN104504496A (zh) * | 2014-12-02 | 2015-04-08 | 成都万象天龙科技有限公司 | 一种基于进销存系统的控制系统与控制方法 |
US10164656B2 (en) * | 2016-03-30 | 2018-12-25 | Silicon Motion Inc. | Bit flipping algorithm for providing soft information during hard decision hard decoding |
US9904594B2 (en) * | 2016-04-15 | 2018-02-27 | Micron Technology, Inc. | Monitoring error correction operations performed in memory |
EP3293885B1 (en) * | 2016-09-09 | 2024-01-03 | Université de Bretagne Sud | Check node processing for syndrome computation in the decoding of non-binary codes, in particular non-binary ldpc codes |
US10879928B2 (en) | 2016-10-24 | 2020-12-29 | Marvell Asia Pte, Ltd. | Scaling of log-likelihood ratios (LLR) based on long training field (LTF) |
EP3316486B1 (en) * | 2016-10-25 | 2023-06-14 | Université de Bretagne Sud | Elementary check node-based syndrome decoding with input pre-sorting |
US10289348B2 (en) * | 2016-12-30 | 2019-05-14 | Western Digital Technologies, Inc. | Tapered variable node memory |
WO2018164297A1 (ko) * | 2017-03-09 | 2018-09-13 | 엘지전자 주식회사 | Ldpc 코드의 계층적 복호화 방법 및 이를 위한 장치 |
KR102289883B1 (ko) * | 2017-05-10 | 2021-08-17 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
CN109428752B (zh) * | 2017-08-29 | 2021-11-02 | 中兴通讯股份有限公司 | 校验方法及装置 |
US10269422B2 (en) * | 2017-09-08 | 2019-04-23 | Cnex Labs, Inc. | Storage system with data reliability mechanism and method of operation thereof |
US11750223B2 (en) * | 2018-03-28 | 2023-09-05 | Maxlinear, Inc. | Low-power block code forward error correction decoder |
TWI682636B (zh) * | 2018-06-13 | 2020-01-11 | 財團法人資訊工業策進會 | 通訊系統之低密度奇偶檢查碼的解碼方法及應用其之通訊裝置 |
US11309915B1 (en) * | 2019-07-11 | 2022-04-19 | Arrowhead Center, Inc. | Efficient implementation of a threshold modified min-sum algorithm for low-density parity-check decoders |
US10778248B1 (en) * | 2020-01-30 | 2020-09-15 | TenaFe, Inc. | Low-density parity-check decoding with de-saturation |
US11567828B2 (en) | 2020-07-09 | 2023-01-31 | SK Hynix Inc. | Asymmetric LLR generation using assist-read |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101350625A (zh) * | 2007-07-18 | 2009-01-21 | 北京泰美世纪科技有限公司 | 一种高效通用的qc-ldpc码译码器及其译码方法 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6938196B2 (en) | 2001-06-15 | 2005-08-30 | Flarion Technologies, Inc. | Node processors for use in parity check decoders |
US7178080B2 (en) * | 2002-08-15 | 2007-02-13 | Texas Instruments Incorporated | Hardware-efficient low density parity check code for digital communications |
US7120856B2 (en) | 2002-09-25 | 2006-10-10 | Leanics Corporation | LDPC code and encoder/decoder regarding same |
JP4296949B2 (ja) * | 2004-02-03 | 2009-07-15 | ソニー株式会社 | 復号装置及び方法、並びに情報処理装置及び方法 |
US7730377B2 (en) | 2004-07-22 | 2010-06-01 | Texas Instruments Incorporated | Layered decoding of low density parity check (LDPC) codes |
KR20060032464A (ko) * | 2004-10-12 | 2006-04-17 | 삼성전자주식회사 | 효율적인 저밀도 패리티 검사 코드 복호 방법 및 장치 |
KR100703271B1 (ko) | 2004-11-23 | 2007-04-03 | 삼성전자주식회사 | 통합노드 프로세싱을 이용한 저밀도 패리티 검사 코드복호 방법 및 장치 |
EP1829223B1 (en) | 2004-12-22 | 2013-02-13 | LG Electronics Inc. | Parallel, layered decoding for Low-Density Parity-Check (LDPC) codes |
US7441178B2 (en) | 2005-02-24 | 2008-10-21 | Keyeye Communications | Low complexity decoding of low density parity check codes |
US20070089016A1 (en) | 2005-10-18 | 2007-04-19 | Nokia Corporation | Block serial pipelined layered decoding architecture for structured low-density parity-check (LDPC) codes |
US20110036759A1 (en) | 2005-12-06 | 2011-02-17 | Rotex, Inc. | Screening machine and associated screen panel |
JP4807063B2 (ja) | 2005-12-20 | 2011-11-02 | ソニー株式会社 | 復号装置、制御方法、およびプログラム |
KR100899738B1 (ko) | 2006-02-02 | 2009-05-27 | 삼성전자주식회사 | 노드 메모리 기반의 ldpc 복호기 및 복호방법 |
WO2008141453A1 (en) * | 2007-05-23 | 2008-11-27 | The Royal Institution For The Advancement Of Learning/Mcgill University | Method for implementing stochastic equality nodes |
US8261170B2 (en) | 2007-06-19 | 2012-09-04 | Mitsubishi Electric Research Laboratories, Inc. | Multi-stage decoder for error-correcting codes |
KR100939334B1 (ko) | 2007-12-12 | 2010-01-29 | 한국전자통신연구원 | 기본 행렬을 이용한 저밀도 패리티 검사 부호의 복호화장치 및 그 방법 |
KR101065480B1 (ko) * | 2007-12-19 | 2011-09-19 | 한국전자통신연구원 | 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치 및 그방법 |
KR101405962B1 (ko) | 2008-02-28 | 2014-06-12 | 엘지전자 주식회사 | Ldpc 코드를 이용한 복호화 방법 |
US20100037121A1 (en) | 2008-08-05 | 2010-02-11 | The Hong Kong University Of Science And Technology | Low power layered decoding for low density parity check decoders |
US20100074381A1 (en) | 2008-09-25 | 2010-03-25 | The Royal Institution For The Advancement Of Learning/ Mcgill University | Methods and systems for improving iterative signal processing |
US8219873B1 (en) | 2008-10-20 | 2012-07-10 | Link—A—Media Devices Corporation | LDPC selective decoding scheduling using a cost function |
US9356623B2 (en) * | 2008-11-26 | 2016-05-31 | Avago Technologies General Ip (Singapore) Pte. Ltd. | LDPC decoder variable node units having fewer adder stages |
US8560917B2 (en) | 2009-01-27 | 2013-10-15 | International Business Machines Corporation | Systems and methods for efficient low density parity check (LDPC) decoding |
US8458556B2 (en) * | 2009-10-09 | 2013-06-04 | Stmicroelectronics, Sa | Low complexity finite precision decoders and apparatus for LDPC codes |
KR101286858B1 (ko) | 2009-12-21 | 2013-07-17 | 한국전자통신연구원 | 저밀도 패리티 검사 부호를 위한 고속 복호 방법 |
US8589755B2 (en) | 2010-06-16 | 2013-11-19 | Nec Laboratories America, Inc. | Reduced-complexity LDPC decoding |
JP5790029B2 (ja) | 2011-03-01 | 2015-10-07 | ソニー株式会社 | 復号装置、復号方法、およびプログラム |
US9214962B2 (en) * | 2011-07-27 | 2015-12-15 | Panasonic Intellectual Property Corporation Of America | Encoding method, decoding method |
-
2012
- 2012-10-11 US US13/649,822 patent/US9612903B2/en active Active
-
2013
- 2013-10-08 JP JP2015536834A patent/JP5992628B2/ja active Active
- 2013-10-08 WO PCT/US2013/063843 patent/WO2014058855A1/en active Application Filing
- 2013-10-08 EP EP13845345.1A patent/EP2907033B1/en active Active
- 2013-10-08 CN CN201380058116.4A patent/CN104769556B/zh active Active
- 2013-10-08 KR KR1020157012064A patent/KR101753498B1/ko active IP Right Grant
- 2013-10-11 TW TW102136824A patent/TWI517173B/zh active
-
2016
- 2016-05-17 US US15/157,042 patent/US10191804B2/en active Active
-
2019
- 2019-01-10 US US16/244,702 patent/US10628256B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101350625A (zh) * | 2007-07-18 | 2009-01-21 | 北京泰美世纪科技有限公司 | 一种高效通用的qc-ldpc码译码器及其译码方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20150067338A (ko) | 2015-06-17 |
US9612903B2 (en) | 2017-04-04 |
US20190146866A1 (en) | 2019-05-16 |
US20140108883A1 (en) | 2014-04-17 |
WO2014058855A1 (en) | 2014-04-17 |
US10191804B2 (en) | 2019-01-29 |
US20160259686A1 (en) | 2016-09-08 |
CN104769556A (zh) | 2015-07-08 |
EP2907033A1 (en) | 2015-08-19 |
JP5992628B2 (ja) | 2016-09-14 |
TWI517173B (zh) | 2016-01-11 |
US10628256B2 (en) | 2020-04-21 |
EP2907033B1 (en) | 2019-09-11 |
JP2015536595A (ja) | 2015-12-21 |
TW201428756A (zh) | 2014-07-16 |
KR101753498B1 (ko) | 2017-07-03 |
EP2907033A4 (en) | 2016-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104769556B (zh) | 更新可靠性数据 | |
KR101645906B1 (ko) | 계층적 반복 에러 교정을 위한 종료 기준 | |
US9170877B2 (en) | Resolving trapping sets | |
US9471421B2 (en) | Data accessing method, memory storage device and memory controlling circuit unit | |
CN111726121B (zh) | 错误校正解码器和具有该错误校正解码器的存储器系统 | |
US9553608B2 (en) | Data storage device decoder and method of operation | |
US10200063B2 (en) | Memory controller, semiconductor memory system and operating method thereof | |
CN104283570A (zh) | 低密度奇偶性检验(ldpc)解码器中的对数似然比(llr)阻尼 | |
CN102017425A (zh) | 用于执行级联纠错的方法和系统 | |
US20170134049A1 (en) | Decoding method, memory storage device and memory control circuit unit | |
US10741212B2 (en) | Error correction code (ECC) encoders, ECC encoding methods capable of encoding for one clock cycle, and memory controllers including the ECC encoders | |
CN107608818A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN104851458A (zh) | 解码方法、存储器存储装置与存储器控制电路单元 | |
CN105304143B (zh) | 解码方法、存储器控制电路单元及存储器存储装置 | |
CN110971240A (zh) | 解码器设计方法与存储控制器 | |
CN106708649B (zh) | 解码方法、存储器储存装置及存储器控制电路单元 | |
US11146295B1 (en) | Decoding method, memory storage device, and memory controlling circuit unit | |
US9985647B2 (en) | Encoder and decoder design for near-balanced codes | |
US10628259B2 (en) | Bit determining method, memory control circuit unit and memory storage device | |
CN110795268A (zh) | 比特判断方法、存储器控制电路单元以及存储器存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |