CN107507648B - 操作解码器以及操作包括该解码器的数据存储装置的方法 - Google Patents
操作解码器以及操作包括该解码器的数据存储装置的方法 Download PDFInfo
- Publication number
- CN107507648B CN107507648B CN201710216669.8A CN201710216669A CN107507648B CN 107507648 B CN107507648 B CN 107507648B CN 201710216669 A CN201710216669 A CN 201710216669A CN 107507648 B CN107507648 B CN 107507648B
- Authority
- CN
- China
- Prior art keywords
- message
- value
- bit
- count value
- amplitude
- 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
Images
Classifications
-
- 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
-
- 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3905—Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
- H03M13/3927—Log-Likelihood Ratio [LLR] computation by combination of forward and backward metrics into LLRs
-
- 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/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- 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/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
-
- 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/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
- H03M13/1117—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
-
- 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/1151—Algebraically constructed LDPC codes, e.g. LDPC codes derived from Euclidean geometries [EG-LDPC codes]
-
- 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/6502—Reduction of hardware complexity or efficient processing
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Error Detection And Correction (AREA)
- Mobile Radio Communication Systems (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
一种操作解码器以及操作包括该解码器的数据存储装置的方法。一种操作具有变量节点和校验节点的解码器的方法,包括从使用所述校验节点中的第一校验节点的所述变量节点接收变量到校验(V2C)消息。对所述V2C消息中具有特定幅值的消息的数量进行计数。基于所述计数值和所述变量节点中的第一变量节点的V2C消息的幅值来确定将被发送到第一变量节点的校验到变量(C2V)消息的幅值。
Description
本申请要求于2016年6月14日提交的第10-2016-0073538号韩国专利申请的优先权,本申请的公开通过引用全部合并与此。
技术领域
本公开的实施例涉及一种解码方法,更具体地,涉及一种用于对具有特定信度的消息的数量进行计数并存储计数值以保持纠错性能且降低计算复杂度的操作解码器的方法和操作包括所述解码器的数据存储装置的方法。
背景技术
在使用低密度奇偶校验(LDPC)码作为纠错码的闪存系统中,LDPC解码器将输入数据转换为对数似然比(LLR)值,并将LLR值发送到变量节点。LDPC解码器将至少一个变量节点的LLR值转换为变量到校验(V2C)消息,并将V2C消息发送到校验节点。所述校验节点使用至少一个V2C消息产生校验到变量(C2V)消息,并将所述C2V消息发送到变量节点。
所述校验节点使用最小和算法来确定C2V消息的幅值。所述最小和算法使用“min1”、“min2”和“min1_index”来计算C2V消息的幅值。这里,“min1”表示V2C消息中的最小值,“min2”表示V2C消息中的第二最小值,“min1_index”表示与“min1”相应的变量节点的索引。所述最小值min1和min2中的每一个具有与消息的绝对值相同的比特数,并且索引min1_index仅由LDPC解码器的H矩阵(码设计)确定,而与消息的精度无关。
发明内容
根据本公开的一些实施例,提供一种操作包括变量节点和校验节点的解码器的方法。所述方法包括:从使用所述校验节点中的第一校验节点的所述变量节点接收变量到校验(V2C)消息,对所述V2C消息中具有特定幅值的消息的数量进行计数,产生所述消息的数量的计数值,基于所述计数值和所述变量节点中的第一变量节点的V2C消息的幅值来确定将被发送到第一变量节点的校验到变量(C2V)消息的幅值。
根据本公开的其它实施例,提供一种操作包括存储器装置和具有包括变量节点和校验节点的解码器的控制器的数据存储装置的方法。所述方法包括:从存储器装置接收N比特数据,其中N是至少为1的实数;将N比特数据中的每个比特映射到对数似然比(LLR)值;使用所述变量节点中的每一个解释所述LLR值,并产生V2C消息;从使用所述校验节点中的第一校验节点的所述变量节点中的至少一些接收V2C消息;对所述V2C消息中具有特定幅值的消息的数量进行计数并产生计数值;基于所述计数值和所述变量节点中的第一变量节点的V2C消息的幅值来确定将被发送到第一变量节点的C2V消息的幅值。
根据本公开的其它实施例,提供一种具有存储N比特数据的非易失性存储器和存储器控制器的存储卡。所述存储器控制器:从所述非易失性存储器接收N比特数据;将N比特数据中的每个比特映射到对数似然比(LLR)值;接收变量节点中的每一个的LLR值,产生与每一个LLR值相应的校验(V2C)消息;产生所述V2C消息中具有特定幅值的消息的数量的计数;基于所述计数值和所述变量节点中的第一变量节点的V2C消息的幅值来确定将被发送到第一变量节点的校验到变量(C2V)消息的幅值。
附图说明
通过参照附图对示例性实施例详细地进行描述,本公开的以上和其它特征和优点将会变得更加清楚,其中:
图1是根据本公开的一些实施例的数据处理系统的框图;
图2是用于说明使用图1中示出的变量节点模块来确定变量到校验(V2C)消息的幅值的方法的表;
图3是用于说明图1中示出的逻辑电路的操作的概念图;
图4是根据本公开的一些实施例的用于说明使用图1中示出的校验节点模块来确定校验到变量(C2V)消息的幅值的方法的概念图;
图5是根据本公开的一些实施例的用于说明使用图1中示出的校验节点模块来确定C2V消息的幅值的方法的表;
图6示出了用于确定图1中示出的校验节点模块中的C2V消息的幅值的算法;
图7示出了用于确定将被存储在分层解码器架构中的校验节点中的计数值的算法;
图8示出了用于确定在混合解码器架构中的校验节点中将被更新的计数值的算法;
图9示出了用于近似地确定在混合解码器架构中的校验节点中将被更新的计数值的算法;
图10是用于说明在随后的迭代中使用图1中示出的变量节点模块来确定V2C消息和解码的对数似然比(LLR)值的方法的概念图;
图11是根据本公开的其它实施例的用于说明使用图1中示出的校验节点模块来确定C2V消息的幅值的方法的概念图;
图12是根据本公开的其它实施例的用于说明使用图1中示出的校验节点模块来确定C2V消息的幅值的方法的表;
图13是根据本公开的一些实施例的操作图1中示出的解码器的方法的流程图;
图14是根据本公开的一些实施例的操作图1中示出的数据存储装置的方法的流程图;
图15是根据本公开的其它实施例的包括图1中示出的控制器的数据处理系统的框图。
具体实施方式
图1是根据本公开的一些实施例的数据处理系统的框图。数据处理系统500可以包括主机200和数据存储装置(或存储介质)300。主机200和数据存储装置300可以通过接口201彼此传达命令或数据。
数据处理系统500可以被实施为个人计算机(PC)、数据服务器或便携式电子装置。便携式电子装置可以是膝上型计算机、蜂窝电话、智能电话、平板PC、个人数字助理(PDA)、企业数字助理(EDA)、数字静态相机、数字视频相机、便携式多媒体播放器(PMP)、个人导航装置或便携式导航装置(PND)、手持游戏控制台、移动互联网装置(MID)、可穿戴计算机、物联网(IoT)装置、万物互联网(IoE)装置或电子书。
主机200可以控制数据存储装置300的操作。数据存储装置300可以包括存储器400和控制器100。数据存储装置300可以是嵌入式多媒体卡(eMMC)、通用闪存(UFS)、固态驱动器(SSD)或者独立磁盘冗余阵列或廉价磁盘冗余阵列(RAID),但不限于这些示例。
存储器400可以是诸如闪存的基于非易失性存储器的数据存储装置。非易失性存储器可包括电可擦除可编程只读存储器(EEPROM)、磁随机存取存储器(MRAM)、铁电RAM(FeRAM)、相变RAM(PRAM)或电阻RAM(RRAM)。存储器400可以包括多个NAND闪存装置。NAND闪存装置中的至少一个可以包括三维(3D)存储器单元阵列。
3D存储器单元阵列被整体地形成在具有被设置在硅基底之上的有效区域和电路系统的存储器单元的阵列的一个或更多个物理级中,其中,所述电路系统与那些存储器单元的操作相关联,无论这样的相关联的电路系统是在这样的基底之上还是在这样的基底之内。术语“整体的”表示所述阵列的每一级的层被直接布置在所述阵列的每一个下面的级的层上。
在本公开的实施例中,3D存储器阵列包括垂直取向的垂直NAND串,使得至少一个存储器单元位于另一存储器单元上方。所述至少一个存储器单元可包括电荷陷阱层。通过引用合并于此的以下专利文献对用于三维存储器阵列的合适配置进行了描述,其中,三维存储器阵列被配置为多个级,在级之间共享有字线和/或位线:美国专利号7,679,133;8,553,466;8,654,587;8,559,235;美国专利公开号2011/0233648。
控制器100可以通过接口201与主机200传送命令或数据,并且可以与存储器400传送命令或数据。控制器100可以控制存储器400的整体操作(包括写操作、读操作、擦除操作、编码、解码和纠错)。控制器100可以通过传输介质(诸如,传输线或总线)与存储器400交换数据。
控制器100可包括可被实施为低密度奇偶校验(LDPC)解码器的解码器110。解码器110可以对从存储器400输出的数据执行LDPC解码。解码器110可以包括输入缓冲器120、信道映射器130、逻辑电路(或逻辑电路系统)140、错误校验器180和输出缓冲器190。输入缓冲器120可以从存储器400接收N比特数据,其中,N是至少为2的自然数。
信道映射器130可以将从输入缓冲器120输出的数据中的每个比特映射到对数似然比(LLR)值LLRV。LLR值LLRV可被表示为整数或实数,并且可包括指示比特的逻辑值是逻辑0还是逻辑1的信息以及指示所述比特的值是多可靠的信息。
逻辑电路140可包括变量节点模块150、桶形移位器160和校验节点模块170。变量节点模块150可包括多个变量节点。校验节点模块170可包括多个校验节点。桶形移位器160可对在变量节点和校验节点之间传递的消息进行交错。这里,所述消息包括变量到校验(V2C)消息和校验到变量(C2V)消息。稍后将参照图4和图5对变量节点模块150和校验节点模块170的结构和操作进行描述。
逻辑电路140可从信道映射器130接收LLR值LLRV,可产生与LLR值LLRV相应的V2C消息,可对V2C消息执行C2V幅值计算(将在下面进行描述),可根据所述计算的结果产生C2V消息,并且可以输出与C2V消息相应的解码的LLR值DL。
校验节点模块170包括多个校验节点。所述多个校验节点中的当前校验节点可从与所述当前校验节点相关的变量节点接收V2C消息,可通过对V2C消息中具有特定幅值或信度的V2C消息的数量进行计数来产生计数值,并可基于将被处理的变量节点的V2C消息的计数值和幅值来确定将被发送到变量节点中将被处理的变量节点的C2V消息的幅值。具有所述确定的幅值的C2V消息可被发送到变量节点模块150。C2V消息可以包括指示C2V消息的符号的符号比特和指示C2V消息的幅值的幅值比特。稍后将参照图4对用于确定C2V消息的符号的过程进行描述。
消息可以包括指示消息的符号的符号比特和指示消息的幅值的幅值比特。符号比特可以是一个比特长度,并且幅值比特可以是一个或更多个比特长度。在使用2比特精度的解码器中,符号比特是一比特,幅值比特是一比特。在使用T比特精度的解码器中,符号比特是一比特,而幅值比特是(T-1)比特,其中T是至少为3的自然数。
在本公开的实施例中,计数值-幅值计算可以表示如下操作:在所述操作中使用计数器来对具有特定幅值或信度的V2C消息的数量进行计数,并使用所述计数值来确定C2V消息的幅值,并且,通过所述操作,解码器110的计算复杂度被最小化。稍后将参照图2和图12对所述特定幅值或所述特定信度进行详细地描述。
将参照图2至图10对操作使用2比特精度的解码器的方法进行描述。将参照图11和图12对操作使用3比特精度的解码器的方法进行描述。参照操作使用2比特或3比特精度的解码器的方法,将理解操作使用至少4比特精度的解码器的方法。
变量节点和校验节点之间的迭代表示在V2C消息从变量节点被发送到校验节点之后,变量节点从校验节点接收C2V消息的过程。随着迭代次数增加,LLR值的信度增加,因此,解码成功概率增加。
错误校验器180可使用从变量节点模块150输出的解码的LLR值DL的符号比特来检查错误。错误校验器180可根据所述检查结果将数据数据1发送到输出缓冲器190。输出缓冲器190可通过接口201将数据数据1发送到主机200。当解码的LLR值DL中没有错误时,错误校验器180可产生用于禁用变量节点模块150和校验节点模块170的控制信号。当变量节点模块150和校验节点模块170被禁用时,错误校验器180可以将数据数据1发送到输出缓冲器190。
图2是用于说明使用图1中示出的变量节点模块来确定V2C消息的幅值的方法的表。图3是用于说明图1中示出的逻辑电路的操作的概念图。参照图1至图3,变量节点模块150可以从信道映射器130接收LLR值LLRV,并且可以产生与LLR值LLRV相应的V2C消息。当解码器110使用2比特精度时,每个消息包括1比特符号比特和1比特幅值比特。幅值比特可以包括指示特定幅值或特定信度的标志。
如图3所示,变量节点模块150可以包括多个变量节点VN1至VN5。变量节点VN1至VN5中的每一个可以使用表示为整数或实数的LLR值LLRV来产生V2C消息V2C1、V2C2、V2C3、V2C4或V2C5。
根据表示LLR值LLRV的比特的值多可靠,可将特定幅值或信度划分为弱信度W和强信度S。例如,如第一表表1所示,假设当LLR值LLRV的符号为负时,符号比特SB的逻辑值被定义为逻辑1;当LLR值LLRV的符号为正时,符号比特SB的逻辑值被定义为逻辑0。
参照第一表表1,当LLR值LLRV的符号为负并且LLR值LLRV的绝对值从0增加到3时,与LLR值LLRV相应的逻辑值为1的概率增加。当LLR值LLRV的符号为正并且LLR值LLRV的绝对值从0增加到3时,与LLR值LLRV相应的逻辑值为0的概率增加。假设当LLR值LLRV的绝对值等于或小于1,LLR值LLRV具有弱信度W;当LLR值LLRV的绝对值等于或大于2时,LLR值LLRV具有强信度S。
参照图2和图3,当输入到第一变量节点VN1的LLR值LLRV1是-3或-2时,第一变量节点VN1确定LLR值LLRV1的信度是强信度S,产生包括符号比特SB(=1)和幅值比特MB(=0)的第一V2C消息V2C1(=10),并将第一V2C消息V2C1(=10)发送到第一校验节点CN1。当输入到第一变量节点VN1的LLR值LLRV1为-1时,第一变量节点VN1确定LLR值LLRV1的信度是弱信度W,产生包括符号比特SB(=1)和幅值比特MB(=1)的第一V2C消息V2C1(=11),并将第一V2C消息V2C1(=11)发送到第一校验节点CN1。
当输入到第一变量节点VN1的LLR值LLRV1是3或2时,第一变量节点VN1确定LLR值LLRV1的信度是强信度S,产生包括符号比特SB(=0)和幅值比特MB(=0)的第一V2C消息V2C1(=00),并将第一V2C消息V2C1(=00)发送到第一校验节点CN1。当输入到第一变量节点VN1的LLR值LLRV1为0或1时,第一变量节点VN1确定LLR值LLRV1的信度是弱信度W,产生包括符号比特SB(=0)和幅值比特MB(=1)的第一V2C消息V2C1(=01),并将第一V2C消息V2C1(=01)发送到第一校验节点CN1。
在图2所示的实施例中,当输入到第一变量节点VN1的LLR值LLRV1为0时,符号比特SB为0。然而,在其它实施例中,当输入到第一变量节点VN1的LLR值LLRV1为0时,符号比特SB可以为1。
图4是根据本公开的一些实施例的用于说明使用图1中示出的校验节点模块来确定C2V消息的幅值的方法的概念图。将参照图1至图4对使用校验节点模块170或170A来确定C2V消息的幅值的方法进行描述。
假设第一LLR值LLRV1为2,第二LLR值LLRV2为2,第三LLR值LLRV3为0,第四LLR值LLRV4为1,第五LLR值LLRV5为3。相应地,由变量节点VN1、VN2和VN5分别产生的V2C消息V2C1、V2C2和V2C5具有强信度S,由变量节点VN3和VN4分别产生的V2C消息V2C3和V2C4具有弱信度W。
第一V2C消息V2C1为00,第二V2C消息V2C2为00,第三V2C消息V2C3为01,第四V2C消息V2C4为01,第五V2C消息V2C5为00。V2C消息V2C1至V2C5可被顺序地发送到第一校验节点CN1。然而,在其它实施例中,V2C消息V2C1至V2C5可被同时或并行地发送到第一校验节点CN1。
在本说明书中,为了方便起见,假定校验节点模块170A是第一校验节点CN1。校验节点模块170A包括第一存储器装置171A、计数器173A、符号比特确定电路175A、第二存储器装置177A和C2V确定电路179A。
校验节点模块170A或第一校验节点CN1可从变量节点VN1至VN5接收V2C消息V2C1至V2C5,可以通过对V2C消息V2C1至V2C5中的具有特定幅值(例如,与弱信度W相应的幅值比特)的消息的数量进行计数来产生计数值CNT,可以使用当前处理的变量节点VN1的V2C消息V2C1的计数值CNT和幅值(即,幅值比特)来确定将被发送到变量节点VN1至VN5中的当前被处理的变量节点VN1的C2V消息C2V1的幅值(例如,幅值比特)。另外,校验节点模块170A或第一校验节点CN1可以对第一V2C消息V2C1的符号比特和对各个V2C消息V2C1至V2C5的符号比特执行XOR运算的结果执行XOR运算,以确定将被发送到变量节点VN1的C2V消息C2V1的符号比特。
第一存储器装置171A可由静态RAM(SRAM)形成,并且第二存储器装置177A可由寄存器形成。假设计数器173A对幅值比特MB或指示弱信度W的标志进行计数,并且初始值为0。
由于V2C消息V2C1至V2C5被顺序地发送到第一校验节点CN1,所以第一存储器装置171A接收并存储第一V2C消息V2C1(=SB1MB1=00)。计数器173A保持初始值为0。符号比特确定电路175A存储第一V2C消息V2C1(=00)的符号比特SB1(=0)。
第一存储器装置171A接收并存储第二V2C消息V2C2(=SB2MB2=00)。计数器173A保持初始值为0。符号比特确定电路175A对第一V2C消息V2C1(=00)的符号比特SB1(=0)和第二V2C消息V2C2(=00)的符号比特SB2(=0)执行XOR运算,并存储第一XOR值。
第一存储器装置171A接收并存储第三V2C消息V2C3(=SB3MB3=01)。计数器173A输出值1作为计数值CNT。符号比特确定电路175A对第一XOR值和第三V2C消息V2C3(=01)的符号比特SB3(=0)执行XOR运算,并存储第二XOR值。
第一存储器装置171A接收并存储第四V2C消息V2C4(=SB4MB4=01)。计数器173A输出值2作为计数值CNT。符号比特确定电路175A对第二XOR值和第四V2C消息V2C4(=01)的符号比特SB4(=0)执行XOR运算,并存储第三XOR值。
第一存储器装置171A接收并存储最后一个,即,第五V2C消息V2C5(=SB5MB5=00)。计数器173A保持计数值CNT(=2)。符号比特确定电路175A对第三XOR值和第五V2C消息V2C5(=00)的符号比特SB5(=0)执行XOR运算,并存储第四XOR值。
计数器173A将计数值CNT(=2)存储在第二存储器装置177A中。符号比特确定电路175A将最终XOR值DSB,即,第四XOR值存储在第二存储器装置177A中。在V2C消息V2C1至V2C5被存储在第一存储器装置171A中并且计数值CNT(=2)和最终XOR值DSB被存储在第二存储器装置177A中之后,第一V2C消息V2C1(=V2C1=SB1MB1=00)被发送到C2V确定电路179A。
C2V确定电路179A可以使用计数值CNT(=2)、最终XOR值DSB和第一V2C消息V2C1(=SB1MB1=00)来确定将被发送到第一变量节点VN1的第一C2V消息C2V1的符号比特和幅值(例如,幅值比特)。详细地,C2V确定电路179A可以通过对最终XOR值DSB(=0)和第一V2C消息dV2C1(=V2C1=SB1MB1=00)的符号比特SB1(=0)执行XOR运算来确定第一C2V消息C2V1的符号比特。此外,C2V确定电路179A可以使用第一V2C消息dV2C1(=V2C1=SB1MB1=00)的计数值CNT(=2)和幅值比特MB1(=0)确定第一C2V消息C2V1的幅值比特。第一C2V消息C2V1的幅值比特可以被确定为与弱信度W相应的1。稍后将参照图5和图6对用于确定C2V消息的幅值比特的过程进行描述。
在确定将被发送到第一变量节点VN1的第一C2V消息C2V1的符号比特和幅值比特之后,校验节点模块170A或第一校验节点CN1确定将被发送到第二变量节点VN2的第二C2V消息的符号比特和幅值比特。用于确定第二C2V消息的符号比特和幅值比特的过程与用于确定第一C2V消息C2V1的符号比特和幅值比特的过程相同或相似。因此,将省略对所述过程的描述。
接下来,假设第一LLR值LLRV1为3,第二LLR值LLRV2为2,第三LLR值LLRV3为2,第四LLR值LLRV4为3,第五LLR值LLRV5为2。相应地,由变量节点VN1至VN5分别产生的V2C消息V2C1至V2C5具有强信度S。V2C消息V2C1至V2C5中的每一个是00。假设计数器173A的初始值是0。
由于V2C消息V2C1至V2C5被顺序地发送到第一校验节点CN1,所以第一存储器装置171A接收并存储第一V2C消息V2C1(=SB1MB1=00)。计数器173A保持初始值为0。符号比特确定电路175A存储第一V2C消息V2C1(=00)的符号比特SB1(=0)。
第一存储器装置171A接收并存储第二V2C消息V2C2(=SB2MB2=00)。计数器173A保持初始值为0。符号比特确定电路175A对第一V2C消息V2C1(=00)的符号比特SB1(=0)和第二V2C消息V2C2的符号比特SB2(=0)执行XOR运算,并存储第一XOR值。
第一存储器装置171A接收并存储第三V2C消息V2C3(=SB3MB3=00)。计数器173A保持初始值为0。符号比特确定电路175A对第一XOR值和第三V2C消息V2C3(=00)的符号比特SB3(=0)执行XOR运算,并存储第二XOR值。
第一存储器装置171A接收并存储第四V2C消息V2C4(=SB4MB4=00)。计数器173A保持初始值为0。符号比特确定电路175A对第二XOR值和第四V2OR消息V2C4(=00)的符号比特SB4(=0)执行XOR运算,并存储第三XOR值。
第一存储器装置171A接收并存储最后一个,即,第五V2C消息V2C5(=SB5MB5=00)。计数器173A保持初始值为0。符号比特确定电路175A对第三XOR值和第五V2C消息V2C5(=00)的符号比特SB5(=0)执行XOR运算,并存储第四XOR值。
计数器173A将计数值CNT(=0)存储在第二存储器装置177A中。符号比特确定电路175A将最终的XOR值DSB,即,第四XOR值存储在第二存储器装置177A中。在V2C消息V2C1至V2C5被存储在第一存储器装置171A中并且计数值CNT(=0)和最终XOR值DSB被存储在第二存储器装置177A中之后,第一V2C消息dV2C1(=V2C1=SB1MB1=00)被发送到C2V确定电路179A。
C2V确定电路179A可以使用计数值CNT(=0)、最终XOR值DSB和第一V2C消息V2C1(=SB1MB1=00)来确定将被发送到第一变量节点VN1的第一C2V消息C2V1的符号比特和幅值(例如,幅值比特)。具体地,C2V确定电路179A可以通过对最终XOR值DSB(=0)和第一V2C消息dV2C1(=V2C1=SB1MB1=00)的符号比特SB1(=0)执行XOR运算来确定第一C2V消息C2V1的符号比特。另外,C2V确定电路179A可以使用计数值CNT(=0)和第一V2C消息dV2C1(=V2C1=SB1MB1=00)的幅值比特MB1(=0)来确定第一C2V消息C2V1的幅值比特。第一C2V消息C2V1的幅值比特可被确定为与弱信度S相应的1。
接下来,假设第一LLR值LLRV1为1,第二LLR值LLRV2为2,第三LLR值LLRV3为2,第四LLR值LLRV4为3,第五LLR值LLRV5为2。相应地,由第一变量节点VN1产生的第一V2C消息V2C1具有弱信度W,由变量节点VN2至VN5分别产生的V2C消息V2C2至V2C5具有强信度S。第一V2C消息V2C1是01,V2C消息V2C2到V2C5中的每一个是00。假设计数器173A的初始值为0。
由于V2C消息V2C1至V2C5被顺序地发送到第一校验节点CN1,所以第一存储器装置171A接收并存储第一V2C消息V2C1(=SB1MB1=01)。计数器173A输出1作为计数值CNT。符号比特确定电路175A存储第一V2C消息V2C1(=01)的符号比特SB1(=0)。
第一存储器装置171A接收并存储第二V2C消息V2C2(=SB2MB2=00)。计数器173A保持计数值CNT为1。符号比特确定电路175A对第一V2C消息V2C1(=01)的符号比特SB1(=0)和第二V2C消息V2C2(=00)的符号比特SB2(=0)执行XOR运算,并存储第一XOR值。
第一存储器装置171A接收并存储第三V2C消息V2C3(=SB3MB3=00)。计数器173A保持计数值CNT为1。符号比特确定电路175A对第一XOR值和第三V2C消息V2C3(=00)的符号比特SB3(=0)执行XOR运算,并存储第二XOR值。
第一存储器装置171A接收并存储第四V2C消息V2C4(=SB4MB4=00)。计数器173A保持计数值CNT为1。符号比特确定电路175A对第二XOR值和第四V2C消息V2C4(=00)的符号比特SB4(=0)执行XOR运算,并存储第三XOR值。
第一存储器装置171A接收并存储最后一个,即,第五V2C消息V2C5(=SB5MB5=00)。计数器173A保持计数值CNT为1。符号比特确定电路175A对第三XOR值和第五V2C消息V2C5(=00)的符号比特SB5(=0)执行XOR运算,并存储第四XOR值。
计数器173A将计数值CNT(=1)存储在第二存储器装置177A中。符号比特确定电路175A将最终的XOR值DSB,即,第四XOR值存储在第二存储器装置177A中。在V2C消息V2C1至V2C5被存储在第一存储器装置171A中并且计数值CNT(=1)和最终XOR值DSB被存储在第二存储器装置177A中之后,第一V2C消息dV2C1(=V2C1=SB1MB1=01)被发送到C2V确定电路179A。
C2V确定电路179A可以使用计数值CNT(=1)、最终XOR值DSB和第一V2C消息V2C1(=SB1MB1=01)来确定将被发送到第一变量节点VN1的第一C2V消息C2V1的符号比特和幅值(例如,幅值比特)。具体地,C2V确定电路179A可以通过对最终XOR值DSB(=0)和第一V2C消息dV2C1(=V2C1=SB1MB1=01)的符号比特SB1(=0)执行XOR运算来确定第一C2V消息C2V1的符号比特。此外,C2V确定电路179A可以使用计数值CNT(=1)和第一V2C消息dV2C1(=V2C1=SB1MB1=01)的幅值比特MB1(=1)来确定第一C2V消息C2V1的幅值比特。第一C2V消息C2V1的幅值比特可被确定为与弱信度S相应的1。
接下来,假设第一LLR值LLRV1为1,第二LLR值LLRV2为2,第三LLR值LLRV3为0,第四LLR值LLRV4为1,第五LLR值LLRV5为3。相应地,由变量节点VN2和VN5分别产生的V2C消息V2C2和V2C5具有强信度S,并且由变量节点VN1、VN3和VN4分别产生的V2C消息V2C1、V2C3和V2C4具有弱信度W。第一V2C消息V2C1为01,第二V2C消息V2C2为00,第三V2C消息V2C3为01,第四V2C消息V2C4为01,第五V2C消息V2C5为00。假设计数器173A的初始值是0。
由于V2C消息V2C1至V2C5被顺序地发送到第一校验节点CN1,所以第一存储器装置171A接收并存储第一V2C消息V2C1(=SB1MB1=01)。计数器173A输出1作为计数值CNT。符号比特确定电路175A存储第一V2C消息V2C1(=01)的符号比特SB1(=0)。
第一存储器装置171A接收并存储第二V2C消息V2C2(=SB2MB2=00)。计数器173A保持计数值CNT为1。符号比特确定电路175A对第一V2C消息V2C1(=01)的符号比特SB1(=0)和第二V2C消息V2C2(=00)的符号比特SB2(=0)执行XOR运算,并存储第一XOR值。
第一存储器装置171A接收并存储第三V2C消息V2C3(=SB3MB3=01)。计数器173A输出2作为计数值CNT。符号比特确定电路175A对第一XOR值和第三V2C消息V2C3(=01)的符号比特SB3(=0)执行XOR运算,并存储第二XOR值。
第一存储器装置171A接收并存储第四V2C消息V2C4(=SB4MB4=01)。计数器173A输出3作为计数值CNT。符号比特确定电路175A对第二XOR值和第四V2C消息V2C4(=01)的符号比特SB4(=0)执行XOR运算,并存储第三XOR值。
第一存储器装置171A接收并存储最后一个,即,第五V2C消息V2C5(=SB5MB5=00)。计数器173A保持计数值CNT为3。符号比特确定电路175A对第三XOR值和第五V2C消息V2C5(=00)的符号位SB5(=0)执行XOR运算,并存储第四XOR值。
计数器173A将计数值CNT(=3)存储在第二存储器装置177A中。符号比特确定电路175A将最终的XOR值DSB,即,第四XOR值存储在第二存储器装置177A中。在V2C消息V2C1至V2C5被存储在第一存储器装置171A中并且计数值CNT(=3)和最终XOR值DSB被存储在第二存储器装置177A中之后,第一V2C消息dV2C1(=V2C1=SB1MB1=01)被发送到C2V确定电路179A。
C2V确定电路179A可以使用计数值CNT(=3)、最终XOR值DSB和第一V2C消息V2C1(=SB1MB1=01)来确定将被发送到第一变量节点VN1的第一C2V消息C2V1的符号比特和幅值比特(例如,幅值位)。具体地,C2V确定电路179A可以通过对最终XOR值DSB(=0)和第一V2C消息dV2C1(=V2C1=SB1MB1=01)的符号比特SB1(=0)执行XOR运算来确定第一C2V消息C2V1的符号比特。此外,C2V确定电路179A可以使用计数值CNT(=3)和第一V2C消息dV2C1(=V2C1=SB1MB1=01)的幅值比特MB1(=1)来确定第一C2V消息C2V1的幅值比特。第一C2V消息C2V1的幅值比特可被确定为与弱信度W的相应的1。
接下来,假设第一LLR值LLRV1为2,第二LLR值LLRV2为1,第三LLR值LLRV3为0,第四LLR值LLRV4为1,第五LLR值LLRV5为0。相应地,由第一变量节点VN1产生的第一V2C消息V2C1具有强信度S,并且由变量节点VN2至VN5分别产生的V2C消息V2C2至V2C5具有弱信度W。第一V2C消息V2C1为00,第二V2C消息V2C2为01,第三V2C消息V2C3为01,第四V2C消息V2C4为01,第五V2C消息V2C5为01。假定计数器173A的初始值为0。
由于V2C消息V2C1至V2C5被顺序地发送到第一校验节点CN1,所以第一存储器装置171A接收并存储第一V2C消息V2C1(=SB1MB1=00)。计数器173A保持初始值为0。符号比特确定电路175A存储第一V2C消息V2C1(=00)的符号比特SB1(=0)。
第一存储器装置171A接收并存储第二V2C消息V2C2(=SB2MB2=01)。计数器173A输出1作为计数值CNT。符号比特确定电路175A对第一V2C消息V2C1(=00)的符号比特SB1(=0)和第二V2C消息V2C2(=01)的符号比特SB2(=0)执行XOR运算,并存储第一XOR值。
第一存储器装置171A接收并存储第三V2C消息V2C3(=SB3MB3=01)。计数器173A输出2作为计数值CNT。符号比特确定电路175A对第一XOR值和第三V2C消息V2C3(=01)的符号比特SB3(=0)执行XOR运算,并存储第二XOR值。
第一存储器装置171A接收并存储第四V2C消息V2C4(=SB4MB4=01)。计数器173A输出3作为计数值CNT1。符号比特确定电路175A对第二XOR值和第四V2C消息V2C4(=01)的符号比特SB4(=0)执行XOR运算,并存储第三XOR值。
第一存储器装置171A接收并存储最后一个,即,第五V2C消息V2C5(=SB5MB5=01)。计数器173A输出4作为计数值CNT。符号比特确定电路175A对第三XOR值和第五V2C消息V2C5(=01)的符号比特SB5(=0)执行XOR运算,并存储第四XOR值。
计数器173A将计数值CNT(=4)存储在第二存储器装置177A中。符号比特确定电路175A将最终的XOR值DSB,即,第四XOR值存储在第二存储器装置177A中。在V2C消息V2C1至V2C5被存储在第一存储器装置171A中并且计数值CNT(=4)和最终XOR值DSB被存储在第二存储器装置177A中之后,第一V2C消息dV2C1(=V2C1=SB1MB1=00)被发送到C2V确定电路179A。
C2V确定电路179A可以使用计数值CNT(=4)、最终XOR值DSB和第一V2C消息V2C1(=SB1MB1=00)来确定将被发送到第一变量节点VN1的第一C2V消息C2V1的符号比特和幅值(例如,幅值比特)。具体地,C2V确定电路179A可以通过对最终XOR值DSB(=0)和第一V2C消息dV2C1(=V2C1=SB1MB1=00)的符号比特SB1(=0)执行XOR运算来确定第一C2V消息C2V1的符号比特。另外,C2V确定电路179A可以使用计数值CNT(=4)和第一V2C消息dV2C1(=V2C1=SB1MB1=00)的幅值比特MB1(=0)来确定第一C2V消息C2V1的幅值比特。第一C2V消息C2V1的幅值比特可以被确定为与弱信度W相应的1。
接下来,假设第一LLR值LLRV1为1,第二LLR值LLRV2为1,第三LLR值LLRV3为0,第四LLR值LLRV4为1,第五LLR值LLRV5为0。相应地,由变量节点VN1至VN5分别产生的V2C消息V2C1至V2C5具有弱信度W。V2C消息V2C1至V2C5中的每一个是01。假设计数器173A的初始值是0。
由于V2C消息V2C1至V2C5被顺序地发送到第一校验节点CN1,所以第一存储器装置171A接收并存储第一V2C消息V2C1(=SB1MB1=01)。计数器173A输出1作为计数值CNT。符号比特确定电路175A存储第一V2C消息V2C1(=01)的符号位SB1(=0)。
第一存储器装置171A接收并存储第二V2C消息V2C2(=SB2MB2=01)。计数器173A输出2作为计数值CNT。符号比特确定电路175A对第一V2C消息V2C1(=01)的符号比特SB1(=0)和第二V2C消息V2C2(=01)的符号比特SB2(=0)执行XOR运算,并存储第一XOR值。
第一存储器装置171A接收并存储第三V2C消息V2C3(=SB3MB3=01)。计数器173A输出3作为计数值CNT。符号比特确定电路175A对第一XOR值和第三V2C消息V2C3(=01)的符号比特SB3(=0)执行XOR运算,并存储第二XOR值。
第一存储器装置171A接收并存储第四V2C消息V2C4(=SB4MB4=01)。计数器173A输出4作为计数值CNT。符号比特确定电路175A对第二XOR值和第四V2C消息V2C4(=01)的符号比特SB4(=0)执行XOR运算,并存储第三XOR值。
第一存储器装置171A接收并存储最后一个,即,第五V2C消息V2C5(=SB5MB5=01)。计数器173A输出5作为计数值CNT。符号比特确定电路175A对第三XOR值和第五V2C消息V2C5(=01)的符号比特SB5(=0)执行XOR运算,并存储第四XOR值。
计数器173A将计数值CNT(=5)存储在所述第二存储装置177A中。符号比特确定电路175A将最终XOR值DSB,即,第四XOR值,存储在所述第二存储装置177A中。在将V2C消息V2C1至V2C5存储在第一存储装置171A中,并将计数值CNT(=5)和最终XOR值DSB存储在第二存储器装置177A中之后,第一V2C消息dV2C1(=V2C1=SB1MB1=01)被发送到C2V确定电路179A。
C2V确定电路179A可使用计数值CNT(=5)、最终XOR值DSB和第一V2C消息V2C1(=SB1MB1=01)确定将被发送到第一变量节点VN1的第一C2V消息C2V1的符号比特和幅值(例如,幅值比特)。具体地,C2V确定电路179A可以通过对最终XOR值DSB(=0)和第一V2C消息dV2C1(=V2C1=SB1MB1=01)的符号比特SB1(=0)执行XOR运算来确定第一C2V消息C2V1的符号位。此外,C2V确定电路179A可以使用计数值CNT(=5)和第一V2C消息dV2C1(=V2C1=SB1MB1=01)的幅值比特MB1(=1)来确定第一C2V消息C2V1的幅值比特。第一C2V消息C2V1的幅值比特可被确定为与弱信度W相应的1。
将参照图5和图6对C2V确定电路179A确定将被发送到将被处理的变量节点的C2V消息的幅值比特的方法进行描述。图5是根据本公开的一些实施例的用于说明使用图1中示出的校验节点模块来确定C2V消息的幅值的方法的表。图6示出了用于确定图1中示出的校验节点模块中的C2V消息的幅值的算法。
如上参照图1至图4所述,第一C2V消息C2V1的幅值可被确定是除变量节点VN1的第一V2C消息V2C1的幅值之外的变量节点VN1至VN5的V2C消息V2C1至V2C5的幅值中最小的一个。
如第二表表2和图6所示,当通过对指示弱信度W的幅值比特进行计数而获得的计数值K大于1时,C2V消息的幅值被确定为弱信度W,而与将被处理的变量节点的V2C消息的幅值无关。当计数值K为0时,C2V消息的幅值被确定为强信度S,而与将被处理的变量节点的V2C消息的幅值无关。当计数值K是1并且将被处理的变量节点的V2C消息的幅值是弱信度W时,C2V消息的幅值被确定为强信度S。当计数值K是1并且将被处理的变量节点的V2C消息的幅值是强信度S时,C2V消息的幅值被确定为弱信度W。
将参照图7和图8对确定将要在校验节点中被存储或更新的计数值的方法进行描述。图7示出了用于确定将被存储在分层解码器中的校验节点中的计数值的算法。图8示出了用于确定在混合解码器中的校验节点中的将被更新的计数值的算法。解码器可以在每个迭代对每个校验节点或每个变量节点执行计数值-幅值计算。用于对每个校验节点执行解码的架构被称为分层解码器架构,而用于对每个变量节点执行解码的架构被称为混合解码器架构。在图7和图8中,“新”表示当前迭代,“旧”表示先前迭代。
在分层解码器架构中,可以将计数值CNT与参考值进行比较,当计数值CNT大于参考值时,可以将第一值存储在校验节点中,当计数值CNT等于参考值时,可以将第二值存储在校验节点中,当计数值CNT小于参考值时,可以将第三值存储在校验节点中。第一值大于第二值,第二值大于第三值,并且第一值至第三值具有相同的比特数。
在混合解码器架构中,可以使用当前迭代的变量节点的V2C消息的幅值和先前迭代的变量节点的C2V消息的幅值来确定将要在校验节点中被更新的计数值CNT。
参照图7,当在分层解码器架构中通过对关于当前迭代的V2C消息的指示弱信度W的幅值比特的数量进行计数而获得的计数值CNT大于1时,将被存储在校验节点中的计数值CNT被确定为2。当通过对指示与当前迭代的V2C消息有关的的弱信度W的幅值比特的数量进行计数而获得的计数值CNT为1时,将被存储在校验节点中的计数值CNT被确定为1。当通过对指示与当前迭代的V2C消息有关的的弱信度W的幅值比特的数量进行计数而获得的计数值CNT小于1时,将被存储在校验节点中的计数值CNT被确定为0。
参照图8,在混合解码器架构中,当在当前迭代的V2C消息的幅值是弱信度W,并且先前迭代的C2V消息的幅值是强信度S时,在校验节点中的将被更新的计数值CNT被确定为“通过对指示与先前迭代的V2C消息有关的弱信度W的幅值比特进行计数而获得的计数值CNT+1”。当在当前迭代的V2C消息的幅值是强信度S并且先前迭代的C2V消息的幅值是弱信度W时,在校验节点中的将被更新的计数值CNT被确定为“通过对指示与先前迭代的V2C消息有关的弱信度W的幅值比特进行计数而获得的计数值CNT-1”。当在当前迭代的V2C消息的幅值是弱信度W并且在先前迭代的C2V消息的幅值是弱信度W时,在校验节点中的将被更新的计数值CNT被保持在“通过对指示与在先前迭代的V2C消息有关的弱信度W的幅值比特进行计数而获得的计数值CNT”。当在当前迭代的V2C消息的幅值是强信度S,并且在先前迭代的C2V消息的幅值是强信度S时,将要在校验节点中被更新的计数值CNT被保持在“通过对指示与在先前迭代的V2C消息有关的弱信度W的幅值比特进行计数而获得的计数值CNT”。
图9示出了用于近似地确定在混合解码器架构中的校验节点中将被更新的计数值的算法。当对指示弱信度W的幅值比特进行计数的计数器的输出比特的数量减少时,可以减小解码器的计算复杂度。此时,溢出发生。在处理溢出的方法中存在使纠错性能的损失最小化的饱和方法和模块化方法。
参照图9中的第一情况情况I,当通过对指示弱信度W的幅值比特进行计数而获得的计数值CNT大于饱和方法中的最大边界值MAX_CNT时,在校验节点中将被更新的计数值CNT被饱和到最大边界值MAX_CNT。当通过对指示弱信度W的幅值比特进行计数而获得的计数值CNT小于0时,将要在校验节点中被更新的计数值CNT被饱和为0。
参照图9中的第二情况情况II,当通过对指示弱信度W的幅值比特进行计数而获得的计数值CNT大于模块化方法中的最大边界值MAX_CNT时,将要在校验节点中被更新的计数值CNT回到0。当计数值通过对指示弱信度W的幅值比特进行计数而获得的CNT小于0时,将要在校验节点中被更新的计数值CNT回到最大边界值MAX_CNT。
图10是用于说明使用图1中示出的变量节点模块在随后的迭代中确定V2C消息和解码的LLR值的方法的概念图。假设与先前迭代的第一C2V消息C2V1相应的整数为+3,与先前迭代的第二C2V消息C2V2相应的整数为-1,并且第一LLR值LLRV1为-1。
参照图10,可使用除了将被处理的校验节点CN1的第一C2V消息C2V1之外的剩余校验节点的C2V消息(例如,校验节点CN2的第二C2V消息C2V2)和输入到将被处理的变量节点VN1的LLR值LLRV1来确定将要在随后的迭代被处理的变量节点VN1的第一V2C消息V2C1。具体地,与除了将被处理的校验节点CN1的第一C2V消息C2V1之外的剩余校验节点CN2的第二C2V消息C2V2相应的整数-1以及为-1的LLR值LLRV1的和为-2。因此,在随后的迭代的第一V2C消息V2C1为包括符号比特SB1(=1)和幅值比特MB1(=1)的11。
可以使用除了将被处理的校验节点CN2的第二C2V消息C2V2之外的剩余校验节点的C2V消息(例如,剩余校验校验节点CN1的第一C2V消息C2V1)和输入到将被处理的变量节点VN1的LLR值LLRV1来确定将要在随后的迭代被处理的变量节点VN1的第二V2C消息V2C2。具体地,与除了将被处理的校验节点CN2的第二C2V消息C2V2之外的剩余校验节点CN1的第一C2V消息C2V1相应的整数+3以及为-1的LLR值LLRV1的和为+2。因此,在随后的迭代的第二V2C消息V2C2为包括符号比特SB2(=0)和幅值比特MB2(=0)的00。
可以使用各自的校验节点CN1和CN2的C2V消息C2V1和C2V2和输入到将被处理的变量节点VN1的LLR值LLRV1来确定将被处理的变量节点VN1的解码的LLR值DL1。具体地,与第一校验节点CN1的第一C2V消息C2V1相应的整数+3、与校验节点CN2的第二C2V消息C2V2相应的整数-1以及输入到将被处理的变量节点VN1的为-1的LLR值LLRV1的和为+1。因此,解码的LLR值DL1为包括符号-1的SB1(=0)和幅值-1的MB1(=1)的01。
在第一变量节点VN1中确定将被分别发送到校验节点CN1和CN2的V2C消息V2C1和V2C2之后,在第二变量节点VN2中确定将被分别发送到校验节点CN2和CN3的V2C消息。用于确定将被分别发送到第二变量节点VN2中的校验节点CN2和CN3的V2C消息的过程与用于确定将被分别发送到第一变量节点VN1中的校验节点CN1和CN2的V2C消息V2C1和V2C2的过程相同或相似。因此,将省略对所述过程的描述。
图11是根据本公开的其它实施例的用于说明使用图1中示出的校验节点模块来确定C2V消息的幅值的方法的概念图。图12是根据本公开的其它实施例的用于说明使用图1中示出的校验节点模块来确定C2V消息的幅值的方法的表。将参照图3、图11和图12对操作使用3比特精度的解码器的方法进行描述。在使用3比特精度的解码器中,符号-1的的长度为1比特,幅值-1的的长度为2比特。假设每个LLR值LLRV是从-3到3范围的整数中的一个,并且特定幅值或信度具有0、1、2或3的值。
假设第一LLR值LLRV1为2,第二LLR值LLRV2为0,第三LLR值LLRV3为0,第四LLR值LLRV4为1,第五LLR值LLRV5为3。由各自的变量节点产生的V2C消息中的每一个的信度与LLR值相应。
第一V2C消息V2C1为010,第二V2C消息V2C2为000,第三V2C消息V2C3为000,第四V2C消息V2C4为001,第五V2C消息V2C5为011。V2C消息V2C1至V2C5可以被顺序地发送到第一校验节点CN1。然而,在其它实施例中,V2C消息V2C1至V2C5可被同时或并行地发送到第一校验节点CN1。
在描述中为了方便起见,假设校验节点模块170B是第一校验节点CN1。校验节点模块170B包括第一存储器装置171B、计数器173-1、173-2和173-3、选择电路174、符号比特确定电路175B、第二存储器装置177B和C2V确定电路179B。当消息的幅值比特的长度为“m”比特时,计数器的数量可以是(2m-1)。因此,使用3比特精度的解码器包括三个计数器。
校验节点模块170B或第一校验节点CN1可以从变量节点VN1至VN5接收V2C消息V2C1至V2C5,可以通过对V2C消息V2C1至V2C5中的具有特定幅值(例如,与0相应的幅值比特、与1相应的幅值比特以及与2相应的幅值比特)中的一个的消息的数量进行计数来产生计数值CNT1、CNT2和CNT3,并且可以使用变量节点VN1的V2C消息V2C1的幅值(即,幅值比特)和计数值CNT1、CNT2和CNT3来确定将被发送到VN1至VN5中的当前被处理的变量节点VN1的C2V消息C2V1的幅值(例如,幅值比特)。另外,校验节点模块170B或第一校验节点CN1可以对第一V2C消息V2C1的符号比特和对各个V2C消息V2C1至V2C5的符号比特执行XOR运算的结果执行XOR运算以确定将被发送到变量节点VN1的C2V消息C2V1的符号比特。
第一存储器装置171B可以由SRAM形成,第二存储器装置177B可以由寄存器形成。假设第一计数器173-1对表示0的幅值比特MB进行计数,第二计数器173-2对表示1的幅值比特MB进行计数,第三计数器173-3对表示2的幅值比特MB进行计数,并且每个计数器173-1到173-3具有为0初始值。
由于V2C消息V2C1至V2C5被顺序地发送到第一校验节点CN1,所以第一存储器装置171B接收并存储第一V2C消息V2C1(=SB1MB1=010)。选择电路174将第一V2C消息V2C1的幅值比特MB1(=10)发送到第三计数器173-3,并且第三计数器173-3输出1作为计数值CNT3。符号比特确定电路175B存储第一V2C消息V2C1(=010)的符号比特SB1(=0)。
第一存储器装置171B接收并存储第二V2C消息V2C2(=SB2MB2=000)。选择电路174将第二V2C消息V2C2的幅值比特MB2(=00)发送到第一计数器173-1,并且第一计数器173-1输出1作为计数值CNT1。符号比特确定电路175B对第一V2C消息V2C1(=010)的符号位SB1(=0)和第二V2C消息V2C2(=000)的符号位SB2(=0)执行XOR运算,并且存储第一XOR值。
第一存储器装置171B接收并存储第三V2C消息V2C3(=SB3MB3=000)。选择电路174将第三V2C消息V2C3的幅值比特MB3(=00)发送到第一计数器173-1,并且第一计数器173-1输出2作为计数值CNT1。符号比特确定电路175B对第一XOR值和第三V2C消息V2C3(=000)的符号比特SB3(=0)执行XOR运算,并存储第二XOR值。
第一存储器装置171B接收并存储第四V2C消息V2C4(=SB4MB4=001)。选择电路174将第四V2C消息V2C4的幅值比特MB4(=01)发送到第二计数器173-2,并且第二计数器173-2输出1作为计数值CNT2。符号比特确定电路175B对第二XOR值和第四V2C消息V2C4(=001)的符号比特SB4(=0)执行XOR运算,并存储第三XOR值。
第一存储器装置171B接收并存储最后一个,即,第五V2C消息V2C5(=SB5MB5=011)。符号比特确定电路175B对第三XOR值和第五V2C消息V2C5(=011)的符号比特SB5(=0)执行XOR运算,并且存储第四XOR值。
计数器173-1至173-3分别将计数值CNT1、CNT2和CNT3输出到第二存储器装置177B。第二存储器装置177B存储计数值CNT1、CNT2和CNT3。符号比特确定电路175B将最终的XOR值DSB,即,第四XOR值存储在第二存储器装置177B中。在V2C消息V2C1至V2C5被存储在第一存储器装置171B中并且计数值CNT1至CNT3和最终XOR值DSB被存储在第二存储器装置177B中之后,第一V2C消息dV2C1(=V2C1=SB1MB1=010)被发送到C2V确定电路179B。
C2V确定电路179B可以使用计数值CNT1至CNT3、最终XOR值DSB和第一V2C消息V2C1(=SB1MB1=010)来确定将被发送到第一变量节点VN1的第一C2V消息C2V1的符号比特和幅值(例如,幅值比特)。具体地,C2V确定电路179B可以通过对最终XOR值DSB(=0)和第一V2C消息dV2C1(=V2C1=SB1MB1=010)的符号比特SB1(=0)执行XOR运算来确定第一C2V消息C2V1的符号比特。另外,C2V确定电路179B可以使用计数值CNT1(=2)、CNT2(=1)和CNT3(=1)和第一V2C消息dV2C1(=V2C1=SB1MB1=010)的幅值比特MB1(=10)来确定第一C2V消息C2V1的幅值比特。第一C2V消息C2V1的幅值比特可被确定为0。
在确定将被发送到第一变量节点VN1的第一C2V消息C2V1的符号比特和幅值比特之后,校验节点模块170B或第一校验节点CN1确定将被发送到第二变量节点VN2的第二C2V消息的符号比特和幅值比特。用于确定第二C2V消息的符号比特和幅值比特的过程与用于确定第一C2V消息C2V1的符号比特和幅值比特的过程相同或相似。因此,将省略对所述过程的描述。
接下来,假设第一LLR值LLRV1为0,第二LLR值LLRV2至第五LLR值LLRV5中的每一个为3。由各个变量节点产生的V2C消息中的每一个的信度与LLR值相应。第一V2C消息V2C1为000,并且第二至第五V2C消息V2C2至V2C5中的每一个为011。假设计数器173-1至173-3中的每一个具有初始值0。
由于V2C消息V2C1至V2C5被顺序地发送到第一校验节点CN1,所以第一存储器装置171B接收并存储第一V2C消息V2C1(=SB1MB1=000)。选择电路174将第一V2C消息V2C1的幅值比特MB1(=00)发送到第一计数器173-1,并且第一计数器173-1输出1作为计数值CNT1。符号比特确定电路175B存储第一V2C消息V2C1(=000)的符号比特SB1(=0)。
第一存储器装置171B接收并存储第二V2C消息V2C2(=SB2MB2=011)。符号比特确定电路175B对第一V2C消息V2C1(=000)的符号比特SB1(=0)和第二V2C消息V2C2(=011)的符号比特SB2(=0)执行XOR运算,并存储第一XOR值。
第一存储器装置171B接收并存储第三V2C消息V2C3(=SB3MB3=011)。符号比特确定电路175B对第一XOR值和第三V2C消息V2C3(=011)的符号比特SB3(=0)执行XOR运算,并存储第二XOR值。
第一存储器装置171B接收并存储第四V2C消息V2C4(=SB4MB4=011)。符号比特确定电路175B对第二VOR值和第四V2C消息V2C4(=011)的符号比特SB4(=0)执行XOR运算,并存储第三XOR值。
第一存储器装置171B接收并存储最后一个,即,第五V2C消息V2C5(=SB5MB5=011)。符号比特确定电路175B对第三XOR值和第五V2C消息V2C5(=011)的符号位SB5(=0)执行XOR运算,并存储第四XOR值。
计数器173-1至173-3分别将计数值CNT1、CNT2和CNT3输出到第二存储器装置177B。第二存储器装置177B存储计数值CNT1、CNT2和CNT3。符号比特确定电路175B将最终的XOR值DSB,即,第四XOR值存储在第二存储器装置177B中。在将V2C消息V2C1至V2C5存储在第一存储器装置171B中并且将计数值CNT1至CNT3和最终XOR值DSB存储在第二存储器装置177B中之后,将第一V2C消息dV2C1(=V2C1=SB1MB1=000)发送到C2V确定电路179B。
C2V确定电路179B可以使用计数值CNT1至CNT3、最终XOR值DSB和第一V2C消息V2C1(=SB1MB1=000)来确定将被发送到第一变量节点VN1的第一C2V消息C2V1的符号比特和幅值(例如,幅值比特)。具体地,C2V确定电路179B可以通过对最终XOR值DSB(=0)和第一V2C消息dV2C1(=V2C1=SB1MB1=000)的符号比特SB1(=0)执行XOR运算来确定第一C2V消息C2V1的符号比特。另外,C2V确定电路179B可以使用计数值CNT1(=1)、CNT2(=0)和CNT3(=0)以及第一V2C消息dV2C1(=V2C1=SB1MB1=000)的幅值比特MB1(=00)来确定第一C2V消息C2V1的幅值比特。第一C2V消息C2V1的幅值比特可以被确定为3。
接下来,假设第一LLR值LLRV1为0,第二和第三LLR值LLRV2和LLRV3为2,第四和第五LLR值LLRV4和LLRV5为3。由各自的变量节点产生的V2C消息中的每一个的信度与LLR值相应。第一V2C消息V2C1为000,第二和第三V2C消息V2C2和V2C3为010,第四和第五V2C消息V2C4和V2C5为011。假设每个计数器173-1到173-3具有初始值0。
由于V2C消息V2C1至V2C5被顺序地发送到第一校验节点CN1,所以第一存储器装置171B接收并存储第一V2C消息V2C1(=SB1MB1=000)。选择电路174将第一V2C消息V2C1的幅值比特MB1(=00)发送到第一计数器173-1,并且第一计数器173-1输出1作为计数值CNT1。符号比特确定电路175B存储第一V2C消息V2C1(=000)的符号比特SB1(=0)。
第一存储器装置171B接收并存储第二V2C消息V2C2(=SB2MB2=010)。选择电路174将第二V2C消息V2C2的幅值比特MB2(=10)发送到第三计数器173-3,并且第三计数器173-3输出1作为计数值CNT3。符号比特确定电路175B对第一V2C消息V2C1(=000)的符号比特SB1(=0)和第二V2C消息V2C2(=010)的符号比特SB2(=0)执行XOR运算,并且存储第一XOR值。
第一存储器装置171B接收并存储第三V2C消息V2C3(=SB3MB3=010)。选择电路174将第三V2C消息V2C3的幅值比特MB3(=10)发送到第三计数器173-3,并且第三计数器173-3输出2作为计数值CNT3。符号比特确定电路175B对第一XOR值和第三V2C消息V2C3(=010)的符号位SB3(=0)执行XOR运算,并存储第二XOR值。
第一存储器装置171B接收并存储第四V2C消息V2C4(=SB4MB4=011)。符号比特确定电路175B对第二XOR值和第四V2C消息V2C4(=011)的符号比特SB4(=0)执行XOR运算,并存储第三XOR值。
第一存储器装置171B接收并存储最后一个,即,第五V2C消息V2C5(=SB5MB5=011)。符号比特确定电路175B对第三XOR值和第五V2C消息V2C5(=011)的符号比特SB5(=0)执行XOR运算,并存储第四XOR值。
计数器173-1至173-3分别将计数值CNT1、CNT2和CNT3输出到第二存储器装置177B。第二存储器装置177B存储计数值CNT1、CNT2和CNT3。符号比特确定电路175B将最终XOR值DSB,即,第四XOR值存储在第二存储器装置177B中。在将V2C消息V2C1至V2C5存储在第一存储器装置171B中,并将计数值CNT1至CNT3和最终XOR值DSB存储在第二存储器装置177B中之后,将第一V2C消息dV2C1(=V2C1=SB1MB1=000)发送到C2V确定电路179B。
C2V确定电路179B可使用计数值CNT1至CNT3、最终XOR值DSB和第一V2C消息V2C1(=SB1MB1=000)来确定将被发送到第一变量节点VN1的第一C2V消息C2V1的符号比特和幅值(例如,幅值比特)。具体地,C2V确定电路179B可以通过对最终XOR值DSB(=0)和第一V2C消息dV2C1(=V2C1=SB1MB1=000)的符号比特SB1(=0)执行XOR运算来确定第一C2V消息C2V1的符号比特。另外,C2V确定电路179B可以使用计数值CNT1(=1)、CNT2(=0)和CNT3(=2)和第一V2C消息dV2C1(=V2C1=SB1MB1=000)的幅值比特MB1(=00)来确定第一C2V消息C2V1的幅值比特。第一C2V消息C2V1的幅值比特可被确定为2。
如上面参考图1和图11所述,除了变量节点VN1的第一V2C消息V2C1的幅值之外,第一C2V消息C2V1的幅值可被确定为变量节点VN1至VN5的V2C消息V2C1至V2C5的幅值中最小的一个。
如第三表表3中所示,当通过对指示0的幅值比特进行计数而获得的计数值大于2时,C2V消息的幅值被确定为0,而不论通过对指示1的幅值比特进行计数而获得的计数值、通过对指示2的幅值比特进行计数而获得的计数值以及将被处理的变量节点的V2C消息的幅值如何。当通过对指示0的幅值比特进行计数获得的计数值为1时,通过对指示1的幅值比特进行计数获得的计数值为0,通过对指示2的幅值位进行计数获得的计数值为0,并且将被处理的变量节点的V2C消息的幅值为0,所述变量节点的C2V消息的幅值被确定为3。当通过对指示0的幅值比特进行计数获得的计数值为1时,通过对指示1的幅值比特进行计数获得的计数值为0,通过对指示2的幅值比特计数获得的计数值大于1,将被处理的变量节点的C2V消息的幅值为0,所述变量节点的C2V消息的幅值被确定为2。
图13是根据本公开的一些实施例的操作图1中示出的解码器的方法的流程图。参照图3和图13,在操作S110,多个校验节点中的第一校验节点CN1可从变量节点VN1至VN5中的至少一个接收V2C消息V2C1至V2C5。在操作S130,校验节点CN1可通过对各个V2C消息V2C1至V2C5的幅值执行计数来产生计数值K。在操作S150,第一校验节点CN1可以基于计数值K和第一校验节点CN1的V2C消息V2C1的幅值来确定将被发送到将被处理的变量节点(例如,第一变量节点VN1)的第一C2V消息C2V1的幅值。
图14是根据本公开的一些实施例的操作图1中示出的数据存储装置300的方法的流程图。参照图1、图3和图14,在操作S210,输入缓冲器120可以从存储器400接收N比特(其中,N是至少为1的自然数)数据。在操作S220,信道映射器130可以将从输入缓冲器120输出的数据中的每个比特映射到LLR值LLRV。
在操作S230,包括在变量节点模块150中的变量节点中的每一个可以从信道映射器130接收每一个LLR值,并产生与所述LLR值LLRV相应的V2C消息。包括在校验节点模块170中的校验节点中的每一个可从所述变量节点中的至少一个接收V2C消息。在操作S240,每个校验节点可对关于至少一个V2C消息的特定幅值(例如,弱信度W)进行计数,并产生计数值CNT。
在操作S250,所述校验节点可以基于计数值CNT和变量节点的V2C消息的幅值来确定将被发送到变量节点中的将被要被处理的变量节点的C2V消息的幅值。所述校验节点可以将C2V消息发送到变量节点,并且可存储计数值CNT。变量节点中的每一个可以基于C2V消息输出解码的LLR值DL。在操作S260,错误校验器180可使用解码的LLR值DL的符号比特来检查错误。
在操作S270,当确定在解码的LLR值DL中存在错误时(即,在“是”的情况下),逻辑电路140可在操作S240至S270执行迭代。在操作S270,当确定在解码的LLR值DL中不存在错误时(即,在“否”的情况下),错误校验器180可在操作S280产生用于禁止变量节点模块150和校验节点模块170的控制信号,并可将所述控制信号发送到变量节点模块150和校验节点模块170。
当禁用变量节点模块150和校验节点模块170时,错误校验器180可将解码的数据数据1发送到输出缓冲器190。在操作S290,输出缓冲器190可将解码的数据数据1发送到主机200。
图15是根据本公开的其它实施例的包括图1中示出的控制器的数据处理系统800的框图。参照图15,数据处理系统800可以被实施为存储器卡或智能卡。数据处理系统800包括存储器卡600和主机700。存储器卡600包括半导体装置640、控制器100和卡接口620。控制器100可以控制半导体装置640和卡接口620之间的数据交换。卡接口620可以是安全数字(SD)卡接口或多媒体卡(MMC)接口,但本公开不限于这些示例。
卡接口620可根据主机700的协议将主机700和控制器100接口连接以进行数据交换。卡接口620可以支持通用串行总线(USB)协议和芯片间(IC)-USB协议。这里,卡接口620可表示支持由主机700使用的协议的硬件、安装在硬件中的软件或信号传输模式。
当存储器卡600被连接到诸如PC、平板PC、数字相机、数字音频播放器、蜂窝电话、控制台视频游戏硬件或数字机顶盒的主机700时,主机700的主机接口740可根据微处理器720的控制通过卡接口620和控制器100执行与半导体装置640的数据通信。
如上所述,根据本公开的一些实施例,每个校验节点对具有特定信度的V2C消息进行计数,并存储计数值,使得与每个V2C消息的幅值有关的比特精度降低。另外,解码器的计算复杂度被最小化,而不影响解码器的纠错性能。此外,在解码器的功耗降低的同时,解码器的吞吐量增加。另外,由于减小了计数器(该计数器对输入到校验节点的V2C消息中具有特定信度的V2C消息的数量进行计数)的输出比特的数量,所以也降低了解码器的计算复杂度。
如本领域中的惯例,可用执行描述的功能的块的形式来描述和示出实施例。这里可以称为单元或模块等的这些块可通过诸如逻辑门、集成电路、微处理器、微控制器、存储器电路、无源电子组件、有源电子组件、光学组件、硬连线电路等的模拟和/或数字电路被物理地实现,并且可以可选地由固件和/或软件驱动。电路可以例如被实现在一个或更多个半导体芯片中,或者被实现在诸如印刷电路板等的衬底支撑件上。构成块的电路可以由专用硬件或由处理器(例如,一个或多个编程的微处理器和相关联的电路)或者由用于执行所述块的一些功能的专用硬件和用于执行所述块的其它功能的处理器的组合来实施。在不脱离本公开的范围的情况下,实施例的每个块可以被物理地分成两个或更多个相互作用并离散的块。同样,在不脱离本公开的范围的情况下,实施例的块可被物理地组合成更复杂的块。
虽然已经参照本发明的示例性实施例对本公开进行了详细示出和描述,但是本领域普通技术人员将理解,在不脱离由所附权利要求限定的本公开的精神和范围的情况下,可对其进行形式和细节上的各种改变。
Claims (20)
1.一种操作包括变量节点和校验节点的解码器的方法,所述方法包括:
使用所述校验节点中的第一校验节点从所述变量节点接收变量到校验V2C消息;
对所述V2C消息中具有特定幅值的消息的数量进行计数,并产生计数的消息的数量的计数值;以及
使用所述变量节点中的第一变量节点的V2C消息的幅值和所述计数值来确定将被发送到第一变量节点的校验到变量C2V消息的幅值。
2.如权利要求1所述的方法,其中,所述V2C消息中的每一个包括符号比特和幅值比特,并且符号比特和幅值比特被存储在静态随机存取存储器SRAM中。
3.如权利要求1所述的方法,其中,所述计数值被存储在寄存器中。
4.如权利要求1所述的方法,还包括:
将所述计数值与参考值进行比较;以及
当所述计数值大于所述参考值时存储第一值,当所述计数值等于所述参考值时存储第二值,当所述计数值小于所述参考值时存储第三值,其中
第一值大于第二值,第二值大于第三值,第一值至第三值具有相同数量的比特。
5.如权利要求1所述的方法,还包括使用当前迭代的第一变量节点的V2C消息的幅值和先前迭代的第一变量节点的C2V消息的幅值来用新的计数值更新所述计数值。
6.如权利要求5所述的方法,其中,当所述计数值大于最大边界值时,所述计数值被用最大边界值更新,当所述计数值小于0时,所述计数值被用0更新。
7.如权利要求5所述的方法,其中,当所述计数值大于最大边界值时,所述计数值被用0更新,当所述计数值小于0时,所述计数值被用最大边界值更新。
8.如权利要求1所述的方法,其中,当所述V2C消息中的每一个的幅值比特为“m”比特长度时,包括在所述解码器中的计数器的数量为2m-1。
9.一种操作数据存储装置的方法,其中,所述数据存储装置包括存储器装置和包括解码器的控制器,所述解码器包括变量节点和校验节点,所述方法包括:
从所述存储器装置接收N比特数据;
将N比特数据内的每个比特映射到对数似然比LLR值;
接收所述变量节点中的每一个的LLR值,并产生与LLR值相应的变量到校验V2C消息;
使用所述校验节点中的第一校验节点从所述变量节点中的至少一个接收V2C消息;
对V2C消息中具有特定幅值的消息的数量进行计数,并产生计数的消息的数量的计数值;以及
基于所述计数值和所述变量节点中的第一变量节点的V2C消息的幅值来确定将被发送到第一变量节点的校验到变量C2V消息的幅值。
10.如权利要求9所述的方法,还包括:
使用从所述至少一个变量节点输出的解码的LLR值的符号比特来检查错误;
根据检查结果产生控制信号;以及
响应于控制信号将与解码的LLR值相应的数据发送到主机。
11.如权利要求9所述的方法,其中,所述存储器装置包括多个非易失性存储器装置,并且所述非易失性存储器装置中的每一个被实施为三维存储器装置。
12.如权利要求9所述的方法,其中,所述V2C消息中的每一个包括符号比特和幅值比特,并且符号比特和幅值比特被存储在静态随机存取存储器SRAM中。
13.如权利要求9所述的方法,其中,所述计数值被存储在寄存器中。
14.如权利要求9所述的方法,还包括:
将所述计数值与参考值进行比较;以及
当所述计数值大于所述参考值时存储第一值,当所述计数值等于所述参考值时存储第二值,当所述计数值小于所述参考值时存储第三值,其中,
第一值大于第二值,第二值大于第三值,第一值至第三值具有相同数量的比特。
15.如权利要求9所述的方法,还包括:使用当前迭代的第一变量节点的V2C消息的幅值和先前迭代的第一变量节点的C2V消息的幅值来用新的计数值更新所述计数值。
16.一种数据存储装置,包括:
存储N比特数据的非易失性存储器;
存储器控制器:
从所述非易失性存储器接收N比特数据;
将N比特数据中的每个比特映射到对数似然比LLR值;
接收变量节点中的每一个的LLR值,并产生与每个LLR值相应的变量到校验V2C消息;
产生所述V2C消息中具有特定幅值的消息的数量的计数;以及
基于所述计数值和所述变量节点中的第一变量节点的V2C消息的幅值来确定将被发送到第一变量节点的校验到变量C2V消息的幅值。
17.如权利要求16所述的数据存储装置,其中,所述存储器控制器:
使用从所述至少一个变量节点输出的解码的LLR值的符号比特来检查错误;
根据检查结果产生控制信号;以及
响应于控制信号将与解码的LLR值相应的数据发送到主机。
18.如权利要求16所述的数据存储装置,其中,所述非易失性存储器被实施为三维存储器装置。
19.如权利要求16所述的数据存储装置,还包括:
静态随机存取存储器SRAM,其中,
所述V2C消息中的每一个包括符号比特和幅值比特,并且符号比特和幅值比特被存储在SRAM中。
20.如权利要求16所述的数据存储装置,还包括:
寄存器,其中,
所述计数值被存储在所述寄存器中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160073538A KR102626162B1 (ko) | 2016-06-14 | 2016-06-14 | 연산 복잡도를 감소시킬 수 있는 디코더의 동작 방법과 이를 포함하는 데이터 저장 장치의 동작 방법 |
KR10-2016-0073538 | 2016-06-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107507648A CN107507648A (zh) | 2017-12-22 |
CN107507648B true CN107507648B (zh) | 2023-06-09 |
Family
ID=60573257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710216669.8A Active CN107507648B (zh) | 2016-06-14 | 2017-04-05 | 操作解码器以及操作包括该解码器的数据存储装置的方法 |
Country Status (3)
Country | Link |
---|---|
US (3) | US10164663B2 (zh) |
KR (1) | KR102626162B1 (zh) |
CN (1) | CN107507648B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102626162B1 (ko) * | 2016-06-14 | 2024-01-18 | 삼성전자주식회사 | 연산 복잡도를 감소시킬 수 있는 디코더의 동작 방법과 이를 포함하는 데이터 저장 장치의 동작 방법 |
CN108566210B (zh) * | 2018-03-12 | 2021-10-22 | 西安电子科技大学 | 兼容IEEE 802.11n标准的LDPC编码系统及方法、LDPC编码器 |
US10630329B2 (en) * | 2018-03-23 | 2020-04-21 | RFDirect Corp. | Programmable, frequency agile direct conversion digital receiver with high speed oversampling |
KR102706725B1 (ko) * | 2018-07-03 | 2024-09-19 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이의 동작 방법 |
US10778248B1 (en) * | 2020-01-30 | 2020-09-15 | TenaFe, Inc. | Low-density parity-check decoding with de-saturation |
DE102020106501A1 (de) * | 2020-03-10 | 2021-09-16 | Tesat-Spacecom Gmbh & Co. Kg | Fehlerkorrektur für LDPC-Dekodierer |
US11233528B1 (en) * | 2020-09-16 | 2022-01-25 | Seagate Technology Llc | Method and apparatus for LDPC decoding using indexed messages |
US11444638B2 (en) | 2020-09-17 | 2022-09-13 | SK Hynix Inc. | Quality-based dynamic scheduling LDPC decoder |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105390162A (zh) * | 2014-08-25 | 2016-03-09 | 三星电子株式会社 | 包括纠错解码器的存储装置和纠错解码器的操作方法 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6633856B2 (en) * | 2001-06-15 | 2003-10-14 | Flarion Technologies, Inc. | Methods and apparatus for decoding LDPC codes |
US7127659B2 (en) * | 2004-08-02 | 2006-10-24 | Qualcomm Incorporated | Memory efficient LDPC decoding methods and apparatus |
US7516390B2 (en) | 2005-01-10 | 2009-04-07 | Broadcom Corporation | LDPC (Low Density Parity Check) coding and interleaving implemented in MIMO communication systems |
US7441178B2 (en) | 2005-02-24 | 2008-10-21 | Keyeye Communications | Low complexity decoding of low density parity check codes |
FR2904499B1 (fr) * | 2006-07-27 | 2009-01-09 | Commissariat Energie Atomique | Procede de decodage a passage de messages avec ordonnancement selon une fiabilite de voisinage. |
US20080320374A1 (en) | 2007-06-22 | 2008-12-25 | Legend Silicon Corp. | Method and apparatus for decoding a ldpc code |
US8181083B2 (en) * | 2007-08-27 | 2012-05-15 | Stmicroelectronics S.R.L. | Methods and architectures for layered decoding of LDPC codes with minimum latency |
US8291298B2 (en) * | 2009-04-29 | 2012-10-16 | Yim Tu Investments Ltd., Llc | Analog iterative decoder with early-termination |
US8458556B2 (en) | 2009-10-09 | 2013-06-04 | Stmicroelectronics, Sa | Low complexity finite precision decoders and apparatus for LDPC codes |
US8438461B2 (en) | 2009-10-12 | 2013-05-07 | Marvell World Trade Ltd. | Power consumption in LDPC decoder for low-power applications |
TWI415396B (zh) * | 2009-11-23 | 2013-11-11 | Nat Univ Tsing Hua | 適用於根據里德-索羅門碼建立之低密度同位檢查碼的解碼器及解碼方法 |
TWI419481B (zh) * | 2009-12-31 | 2013-12-11 | Nat Univ Tsing Hua | 低密度奇偶檢查碼編解碼器及其方法 |
US8555131B2 (en) * | 2010-03-31 | 2013-10-08 | Silicon Laboratories Inc. | Techniques to control power consumption in an iterative decoder by control of node configurations |
US8433970B2 (en) * | 2010-03-31 | 2013-04-30 | Silicon Laboratories Inc. | Techniques to control power consumption in an iterative decoder by control of node configurations |
US8694868B1 (en) | 2010-10-21 | 2014-04-08 | Marvell International Ltd. | Systems and methods for performing multi-state bit flipping in an LDPC decoder |
US8913698B2 (en) * | 2011-04-11 | 2014-12-16 | Softwaveradio, Inc. | Programmable, frequency agile direct conversion digital receiver with high speed oversampling |
US8707144B2 (en) * | 2011-10-17 | 2014-04-22 | Lsi Corporation | LDPC decoder with targeted symbol flipping |
US8819515B2 (en) * | 2011-12-30 | 2014-08-26 | Lsi Corporation | Mixed domain FFT-based non-binary LDPC decoder |
KR101968746B1 (ko) | 2011-12-30 | 2019-04-15 | 삼성전자주식회사 | 저장 장치로부터 데이터를 읽는 읽기 방법, 에러 정정 장치, 그리고 에러 정정 코드 디코더를 포함하는 저장 시스템 |
US8914710B2 (en) | 2012-09-27 | 2014-12-16 | Apple Inc. | Soft message-passing decoder with efficient message computation |
TWI533620B (zh) * | 2013-03-15 | 2016-05-11 | 國立清華大學 | 減少硬體緩衝器之低密度奇偶檢查碼階層式解碼架構 |
US9378765B2 (en) * | 2014-04-03 | 2016-06-28 | Seagate Technology Llc | Systems and methods for differential message scaling in a decoding process |
US9503125B2 (en) * | 2014-05-08 | 2016-11-22 | Sandisk Technologies Llc | Modified trellis-based min-max decoder for non-binary low-density parity-check error-correcting codes |
US10078540B2 (en) * | 2014-06-13 | 2018-09-18 | Cisco Technology, Inc. | Accurate and fast in-service estimation of input bit error ratio of low density parity check decoders |
US9444493B2 (en) | 2014-06-26 | 2016-09-13 | Sandisk Technologies Llc | Encoder with transform architecture for LDPC codes over subfields using message mapping |
US9450606B1 (en) * | 2015-10-01 | 2016-09-20 | Seagate Technology Llc | Data matching for hardware data compression |
KR102626162B1 (ko) * | 2016-06-14 | 2024-01-18 | 삼성전자주식회사 | 연산 복잡도를 감소시킬 수 있는 디코더의 동작 방법과 이를 포함하는 데이터 저장 장치의 동작 방법 |
-
2016
- 2016-06-14 KR KR1020160073538A patent/KR102626162B1/ko active IP Right Grant
-
2017
- 2017-04-05 CN CN201710216669.8A patent/CN107507648B/zh active Active
- 2017-06-05 US US15/613,659 patent/US10164663B2/en active Active
-
2018
- 2018-12-21 US US16/229,153 patent/US10700714B2/en active Active
-
2020
- 2020-05-25 US US16/882,627 patent/US11128321B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105390162A (zh) * | 2014-08-25 | 2016-03-09 | 三星电子株式会社 | 包括纠错解码器的存储装置和纠错解码器的操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US20200287571A1 (en) | 2020-09-10 |
US10700714B2 (en) | 2020-06-30 |
US20170359090A1 (en) | 2017-12-14 |
US11128321B2 (en) | 2021-09-21 |
CN107507648A (zh) | 2017-12-22 |
KR20170140871A (ko) | 2017-12-22 |
US10164663B2 (en) | 2018-12-25 |
KR102626162B1 (ko) | 2024-01-18 |
US20190132010A1 (en) | 2019-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107507648B (zh) | 操作解码器以及操作包括该解码器的数据存储装置的方法 | |
US10691537B2 (en) | Storing deep neural network weights in non-volatile storage systems using vertical error correction codes | |
CN106997777B (zh) | 具有改进的硬解码吞吐量的vss ldpc解码器 | |
US10944428B2 (en) | Device, system and method for determining bit reliability information | |
US8402347B2 (en) | Error correction code for unidirectional memory | |
US11681554B2 (en) | Logical address distribution in multicore memory system | |
WO2017074590A1 (en) | Dynamically scheduling of node processing during iterative decoding | |
US20200266830A1 (en) | Memory controller | |
CN111726121B (zh) | 错误校正解码器和具有该错误校正解码器的存储器系统 | |
US11239865B2 (en) | Error correction circuit and operating method thereof | |
KR20200004195A (ko) | 메모리 컨트롤러 및 이의 동작 방법 | |
KR20190125866A (ko) | 에러 정정 회로 및 이의 동작 방법 | |
US20220263524A1 (en) | Electronic device | |
US10931308B2 (en) | Error correction circuit and method of operating the same | |
US10884858B2 (en) | LDPC decoding device, memory system including the same and method thereof | |
CN112416298A (zh) | 闪速存储器的基于原始读取的物理不可克隆功能 | |
CN110708077B (zh) | Ldpc码大数逻辑译码方法、装置和译码器 | |
US9985647B2 (en) | Encoder and decoder design for near-balanced codes | |
US20240120945A1 (en) | Generalized ldpc encoder, generalized ldpc encoding method and storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |