CN113496754A - 电子装置 - Google Patents
电子装置 Download PDFInfo
- Publication number
- CN113496754A CN113496754A CN202011159618.4A CN202011159618A CN113496754A CN 113496754 A CN113496754 A CN 113496754A CN 202011159618 A CN202011159618 A CN 202011159618A CN 113496754 A CN113496754 A CN 113496754A
- Authority
- CN
- China
- Prior art keywords
- vector
- input
- partial
- training data
- electronic device
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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/45—Soft decoding, i.e. using symbol reliability information
- H03M13/458—Soft decoding, i.e. using symbol reliability information by updating bit probabilities or hard decisions in an iterative fashion for convergence to a final decoding result
-
- 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/65—Purpose and implementation aspects
- H03M13/6597—Implementations using analogue techniques for coding or decoding, e.g. analogue Viterbi decoder
-
- 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/1048—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 arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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/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/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/1191—Codes on graphs other than 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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
-
- 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
- H03M13/616—Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
-
- 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)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Quality & Reliability (AREA)
- Error Detection And Correction (AREA)
Abstract
本公开提供一种使用人工神经网络的电子装置。该电子装置可以包括:训练数据生成器,被配置为确定与在对应于码字的错误校正解码期间检测到的陷阱集相对应的输入向量以及与该输入向量相对应的目标向量;以及训练组件,被配置为通过将输入向量输入到人工神经网络的输入层,并且通过将目标向量输入到人工神经网络的输出层,基于监督学习来训练人工神经网络。
Description
相关申请的交叉引用
本专利文件要求于2020年4月3日提交的申请号为10-2020-0040627的韩国专利申请的优先权和权益,该韩国专利申请通过引用整体并入本文。
技术领域
所公开技术的各个实施例涉及一种电子装置,例如,涉及一种使用人工神经网络的电子装置。
背景技术
电子装置可以包括临时地或永久地存储数据的存储介质。在诸如写入操作、读取操作、传输操作或处理操作的各种操作期间,可能会发生数据错误或数据损坏。
为了保证数据的可靠性,电子装置可以使用错误校正技术,诸如错误校正编码和错误校正解码。
发明内容
所公开技术的各个实施例涉及一种训练用于减轻错误平层现象的人工神经网络的电子装置。
所公开技术的各个实施例针对一种使用经训练的人工神经网络来减轻错误平层现象的电子装置。
所公开技术的实施例可以提供一种电子装置。该电子装置可以包括:训练数据生成器,被配置为基于在对应于码字的错误校正解码期间检测到的陷阱集的信息来生成输入向量,并且生成对应于输入向量的目标向量;以及训练组件,被配置为从训练数据生成器接收输入向量和目标向量,并且可操作以通过将输入向量输入到人工神经网络的输入层,并通过将目标向量输入到人工神经网络的输出层,基于监督学习来训练人工神经网络。
所公开技术的实施例可以提供一种电子装置。该电子装置可以包括:节点处理器,被配置为基于迭代解码方案在最大迭代次数I之内执行第i次迭代,并生成对应于第i次迭代的中间结果,其中i和I是自然数并且i小于或等于I;以及后处理器,与节点处理器通信,并且为被配置为响应于在第i次迭代中检测到陷阱集,将包括来自与第i次迭代相对应的节点处理器的中间结果的至少一部分的输入提供到经训练的人工神经网络,并且可操作以基于与该输入相对应的经训练的人工神经网络的预测值来修改对应于第i次迭代的变量节点向量,其中与第i次迭代相对应的中间结果包括与在第i次迭代中检测到的陷阱集相关联的后验概率向量、硬判决向量或校正子向量中的至少一个。
附图说明
图1是示出错误校正电路的示例示图。
图2是示出错误平层的示例示图。
图3是示出人工神经网络的示例示图。
图4是示出根据所公开技术的实施例的电子装置的示例示图。
图5是示出根据所公开技术的实施例的训练数据的示图。
图6是示出根据所公开技术的实施例的训练数据生成方法的示例示图。
图7是示出根据本公开的实施例的训练数据生成方法的示例示图。
图8是示出根据本公开的实施例的训练数据生成方法的示例示图。
图9是示出用于缩放训练数据的过程的示例示图。
图10是示出根据本公开的实施例的错误校正电路的示例示图。
图11是示出用于使用经训练的人工神经网络执行错误校正解码的过程的示例示图。
图12是示出用于使用经训练的人工神经网络执行错误校正解码的过程的示例示图。
图13是示出奇偶校验矩阵的示例示图。
图14是将图13的奇偶校验矩阵图示为Tanner图的示图。
图15是示出使用图13的奇偶校验矩阵计算的校正子向量的示例示图。
图16是示出在硬判决解码期间使用一个读取值生成初始LLR值的过程的示例示图。
图17是示出在软判决解码期间使用g个读取值生成初始LLR值的过程的示例示图。
图18是示出查找表的示例示图。
图19是示出根据本公开的实施例的存储器系统的示例示图。
图20是示出根据本公开的实施例的存储器装置的示图。
图21是示出存储块的示例示图。
图22是示出包括图19的存储器控制器的存储器系统的实施例的示图。
图23是示出包括图19的存储器控制器的存储器系统的实施例的示图。
具体实施方式
举例说明在本说明书或申请中引入的所公开技术的实施例中的特定结构或功能描述以描述所公开技术的实施例。所公开技术可以以各种形式来实践,并且不应被解释为限于该专利文件中描述的实施例和示例。
图1是示出错误校正电路的示例示图。
参照图1,错误校正电路10a可以包括错误校正编码器12a和错误校正解码器14a。
错误校正编码器12a可以通过使用k位原始数据(其中k是自然数)和用于错误校正码(ECC)的生成器矩阵执行错误校正编码来生成n位码字(其中n是自然数)。错误校正编码器12a可以将所生成的码字输出到通道。
错误校正解码器14a可以从通道接收对应于码字的n位向量。所接收到的向量可以是码字中包含错误的向量。错误校正解码器14a可以使用所接收到的向量和错误校正码的奇偶校验矩阵来执行错误校正解码。当生成满足对错误校正码的奇偶校验矩阵的约束的有效码字时,错误校正解码器14a可以输出所生成的有效码字作为经解码的码字。当未生成满足对奇偶校验矩阵的约束的有效码字时,错误校正解码器14a可以输出指示错误校正解码已经失败的失败信号。
图2是示出错误平层的示例示图。
当评估基于图形的错误校正码(例如低密度奇偶校验(LDPC)码或turbo码)的性能时,可能会出现被称为错误平层的现象。
例如,如图2所示,在基于图形的错误校正码的性能曲线中,可能出现块误码率(CBER)随着原始误码率(RBER)降低以曲线的形式急剧降低的瀑布区域,以及曲线在特定RBER下方的部分突然变平的错误平层区域。此处,术语“RBER”是指所接收到的向量中包含的错误的数量,术语“CBER”是指错误校正解码将失败的概率。
错误平层充当在低错误水平劣化错误校正性能的因素,并且通常已知这是由陷阱集特别是吸收集引起的。特别地,随着奇偶校验矩阵中的不规则性增加,陷阱集的比例增加,结果可能出现错误平层现象加剧的问题。
所公开技术的实施例提供了一种使用人工神经网络(ANN)使得减轻由这种陷阱集引起的错误平层现象的方案。所公开技术的实施例提供了一种使用对应于陷阱集的训练数据来训练人工神经网络的方案,以及一种在错误校正解码期间使用经训练的人工神经网络来破坏检测到的陷阱集的方案。
图3是示出人工神经网络的示例示图。
人工神经网络可以包括输入层、至少一个隐藏层和输出层。输入层、隐藏层和输出层中的每一个可以包括实现人工神经元或神经元的多个信号处理元件或节点。存在于输入层中的神经元可以被称为输入神经元,存在于一个或多个隐藏层中的神经元可以被称为隐藏神经元,并且存在于输出层中的神经元中可以被称为输出神经元。某些信号处理元件或节点通过连接结进行连接作为人工突触。连接两个节点或神经元(例如,不同相邻层中的两个节点)的每个连接结可以被构造为接收和处理来自第一信号处理元件或神经元的信号,以产生由第二信号处理元件或神经元接收的连接信号。如图1所示,连接结或突触在不同层(诸如相邻层)中信号处理元件或神经元(诸如输入层的神经元和第一隐藏层的神经元、不同隐藏层的神经元和最后隐藏层的神经元以及输出层的神经元)之间提供连接。如图1所示,层上的一个神经元可以通过突触连接到另一相邻层中的不同神经元,并且在各种实施方式中,一个神经元的输出可以通过突触而不同地加权到相邻层中的其他神经元。
可以根据监督学习方案或无监督学习方案来训练人工神经网络。
当在训练期间使用监督学习方案时,可以将输入向量输入到输入层,并且可以将目标向量输入到输出层。一对一个输入向量和一个目标向量可以被称为一条训练数据。输入向量可以包括与输入神经元的数量相同的多条数据,并且输入向量中包括的多条数据可以例如逐条地输入到输入神经元。类似地,目标向量可以包括与输出神经元的数量相同的多条数据,并且目标向量中包括的多条数据可以例如逐条地输入到输出神经元。
在执行训练时,可以在人工神经网络上执行至少一次正向传播和至少一次反向传播。
例如,在正向传播期间,神经元中的每一个可以根据激活函数来计算其输出值aout。例如,可以使用下面的等式(1)计算输出值aout:
其中,g(z)表示神经元的激活函数,b表示神经元的偏差值,wb表示神经元的偏差权重值,ai表示从上一层中包括的神经元之中的第i神经元(其中i是自然数)接收的输出值,并且wi表示与上一层中包括的神经元之中的第i神经元联接的突触的权重值。根据实施例,当计算输出值aout时,可以不使用偏差值b和偏差权重值wb。
当执行向输出神经元的正向传播时,可以执行反向传播,以便减小由输出神经元计算的预测向量输出值与目标向量之间的错误值。在反向传播期间,可以更新例如各个神经元的偏差权重值wb和突触的权重值w1,w2,…,wn的模型参数。例如,在反向传播期间,可以基于梯度下降来计算损耗的梯度,并且可以找到模型参数的最佳组合,以使损耗最小化。
图4是示出根据所公开技术的实施例的电子装置的示例示图。
电子装置40可以是使用电子电路计算或处理具有电子形式的信息的装置,并且可以包括计算机、存储器控制器、错误校正电路或错误校正解码器。
电子装置40可以包括人工神经网络训练器400。
人工神经网络训练器400可以包括训练数据生成器410、第一缩放组件420和训练组件430。
训练数据生成器410可以生成用于训练人工神经网络432的至少一条训练数据。该一条训练数据可以包括一个输入向量和一个目标向量。
在下文中,在人工神经网络的训练期间输入到人工神经网络432的输入层的输入向量被称为第一输入向量,并且在使用经训练的人工神经网络的预测期间输入到经训练的人工神经网络的输入层的输入向量被称为第二输入向量。
训练数据生成器410可以基于从外部装置接收到的陷阱集信息来生成训练数据。陷阱集信息可以包括对应于陷阱集的硬判决向量、对应于陷阱集的后验概率向量(APP)向量、对应于陷阱集的错误索引、对应于陷阱集的错误向量、对应于陷阱集的校正子向量以及码字中的至少一个。
陷阱集信息可以是已知信息。例如,陷阱集信息可以是通过先前执行以检测陷阱集的测试错误校正解码所获取的信息。
当使用(n,k)码时,码字、对应于陷阱集的硬判决向量和对应于陷阱集的错误向量中的每一个可以由n个二进制值组成。对应于陷阱集的后验概率向量可以由n个对数似然比(LLR)值组成。对应于陷阱集的校正子向量可以由n-k个二进制值组成。
在实施例中,当码字和对应于陷阱集的硬判决向量包括在陷阱集信息中时,训练数据生成器410可以将对应于陷阱集的硬判决向量确定为第一输入向量,并且可以将码字确定为目标向量。对应于陷阱集的硬判决向量可以是例如在使用迭代解码方案根据码字执行的测试错误校正解码期间估计存在陷阱集的硬判决向量。
在实施例中,当码字和对应于陷阱集的硬判决向量包括在陷阱集信息中时,训练数据生成器410可以将由对应于陷阱集的硬判决向量中包括的二进制值之中的一些二进制值组成的部分硬判决向量确定为第一输入向量。训练数据生成器410可以将由码字中包括的二进制值之中的对应于部分硬判决向量的二进制值组成的部分码字确定为目标向量。
在实施例中,当对应于陷阱集的硬判决向量和对应于陷阱集的错误索引包括在陷阱集信息中时,训练数据生成器410可以将对应于陷阱集的硬判决向量确定为第一输入向量。对应于陷阱集的错误索引可以是指示对应于陷阱集的硬判决向量中包含的错误的位置的信息。训练数据生成器410可以通过翻转对应于陷阱集的硬判决向量中包括的二进制值之中的对应于错误索引的二进制值来重构码字,并且可以将所重构的码字确定为目标向量。
在实施例中,当对应于陷阱集的硬判决向量和对应于陷阱集的错误索引包括在陷阱集信息中时,训练数据生成器410可以将包含或包括对应于陷阱集的硬判决向量中包括的二进制值之中的一些二进制值的部分硬判决向量确定为第一输入向量。训练数据生成器410可以通过翻转对应于陷阱集的硬判决向量中包括的二进制值之中的对应于错误索引的二进制值来重构码字。训练数据生成器410可以将由所重构的码字中包括的二进制值之中的对应于部分硬判决向量的二进制值组成的部分码字确定为目标向量。
在实施例中,当对应于陷阱集的后验概率向量和对应于陷阱集的错误索引包括在陷阱集信息中时,训练数据生成器410可以将对应于陷阱集的后验概率向量确定为第一输入向量。对应于陷阱集的后验概率向量可以是例如在使用迭代解码方案根据码字执行的测试错误校正解码期间估计存在陷阱集的APP向量。训练数据生成器410可以校正对应于陷阱集的后验概率向量中包括的LLR值之中的对应于错误索引的LLR值的大小或符号中的至少一个,并且可以将校正后的后验概率向量确定为目标向量。
在实施例中,当对应于陷阱集的后验概率向量和对应于陷阱集的错误索引包括在陷阱集信息中时,训练数据生成器410可以将由对应于陷阱集的后验概率向量中包括的LLR值之中的一些LLR值组成的部分后验概率向量确定为第一输入向量。训练数据生成器410可以校正对应于陷阱集的后验概率向量中包括的LLR值之中的对应于错误索引的LLR值的大小或符号中的至少一个,然后可以生成校正后的后验概率向量。训练数据生成器410可以将由校正后的后验概率向量中包括的LLR值之中的对应于部分后验概率向量的LLR值组成的校正后的部分后验概率向量确定为目标向量。
在实施例中,当对应于陷阱集的错误向量包括在陷阱集信息中时,训练数据生成器410可以将错误向量、部分错误向量、部分循环移位的错误向量或部分循环移位的部分错误向量确定为第一输入向量。训练数据生成器410可以将对应于第一输入向量的零向量确定为目标向量。
错误向量可以是与码字具有相同长度的向量,例如,可以是将与对应于陷阱集的错误位置相对应的二进制值设置为“1”而将其余二进制值设置为“0”的向量。零向量可以是所有二进制值均为“0”的向量。
例如,训练数据生成器410可以将由n个二进制值组成或包括n个二进制值的错误向量确定为第一输入向量。在一些实施方式中,训练数据生成器410可以将由n个二进制值组成的零向量确定为目标向量。
例如,训练数据生成器410可以通过对错误向量中包括的n个二进制值进行部分循环移位来生成部分循环移位的错误向量,并且可以将所生成的部分循环移位的错误向量确定为第一输入向量。在一些实施方式中,训练数据生成器410可以将由n个二进制值组成的零向量确定为目标向量。
例如,训练数据生成器410可以在错误向量中包括的n个二进制值之中选择j个二进制值(其中j是小于n的自然数),并且可以将由所选择的j个二进制值组成的部分错误向量确定为第一输入向量。在一些实施方式中,训练数据生成器410可以将由j个二进制值组成的零向量确定为目标向量。
例如,训练数据生成器410可以通过对部分错误向量中包括的j个二进制值进行部分循环移位来生成部分循环移位的部分错误向量,并且可以将所生成的部分循环移位的部分错误向量确定为第一输入向量。在一些实施方式中,训练数据生成器410可以将由j个二进制值组成的零向量确定为目标向量。
在实施例中,当陷阱集信息中包括对应于陷阱集的校正子向量和对应于陷阱集的错误向量时,训练数据生成器410可以将校正子向量确定为第一输入向量,并且可以将错误向量确定为目标向量。对应于陷阱集的校正子向量可以是例如通过对硬判决向量执行操作而生成的校正子向量,其中在使用迭代解码方案和奇偶校验矩阵执行的测试错误校正解码期间估计存在陷阱集。
在实施例中,当陷阱集信息中包括错误向量时,训练数据生成器410可以通过将错误向量添加到零空间中包括的码字的每一个中来生成包含错误的向量,并且可以将所生成的包含错误的向量中的每一个确定为第一输入向量。此处,训练数据生成器410可以将每个码字确定为目标向量。可以从外部装置接收零空间中包括的码字,并且将码字包括在陷阱集信息中,或者可选地,人工神经网络训练器400本身可以在其中包括码字。
第一缩放组件420可以缩放从训练数据生成器410接收到的训练数据,并且可以将所缩放的训练数据提供到训练组件430。
在实施例中,当训练数据由二进制值组成时,第一缩放组件420可以缩放训练数据,使得训练数据中包括的二进制值是落入预设范围内的值。例如,第一缩放组件420可以基于下面的等式(2)缩放训练数据中包括的二进制值:
在等式(2)中,x表示训练数据中包括的二进制值,并且x'表示缩放后的二进制值。根据等式(2),在训练数据中包括的二进制值之中,“0”可以缩放为0.5,而“1”可以缩放为-0.5。
在实施例中,当训练数据由LLR值组成时,第一缩放组件420可以缩放训练数据,使得训练数据中包括的LLR值是落入预设范围内的值。例如,第一缩放组件420可以基于下面的等式(3)来缩放训练数据中包括的LLR值:
在等式(3)中,x表示训练数据中包括的LLR值,minLLR表示最小LLR值,maxLLR表示最大LLR值,β表示缩放偏移值,并且x'表示缩放后的LLR值。在等式(3)中,假设缩放偏移值β为-0.5,则可以将训练数据中包括的每个LLR值缩放为等于或大于-0.5且小于或等于0.5的值。
当训练数据中包括的值被缩放到落入预设范围内的值时,可以防止过度拟合。
根据实施例,可以不执行缩放,并且在这种情况下,可以省略第一缩放组件420。在下文中,术语“训练数据”可以表示缩放后的训练数据或未缩放的训练数据。
训练组件430可以使用从训练数据生成器410或第一缩放组件420接收到的训练数据,根据监督学习方案来训练至少一个人工神经网络432。例如,训练组件430可以通过将训练数据中包括的第一输入向量输入到人工神经网络432的输入层,并且通过将训练数据中包括的目标向量输入到人工神经网络432的输出层,来训练人工神经网络432。
训练人工神经网络432所需的一些超参数,例如隐藏层的数量、隐藏神经元的数量或学习率中的至少一个,可以任意地确定或用实验方法确定。
在实施例中,可以根据第一输入向量和目标向量的长度来确定训练人工神经网络432所需的超参数之中的输入神经元的数量和输出神经元的数量。
例如,当使用由n个二进制值组成的第一输入向量和由n个二进制值组成的目标向量时,或者当使用由n个LLR值组成的第一输入向量和由n个LLR值组成的目标向量时,输入神经元的数量和输出神经元的数量可以各自被确定为n。也就是说,当使用长度为n的第一输入向量和长度为n的目标向量时,可以训练包括n个输入神经元和n个输出神经元的第一人工神经网络。
例如,当使用由j个二进制值(其中j是小于n的自然数)组成的第一输入向量和由j个二进制值组成的目标向量时,或者当使用由j个LLR值组成的第一输入向量和由j个LLR值组成的目标向量时,输入神经元的数量和输出神经元的数量可以各自被确定为j。也就是说,当使用长度为j的第一输入向量和长度为j的目标向量时,可以训练包括j个输入神经元和j个输出神经元的第二人工神经网络。
例如,当使用由n-k个二进制值组成的第一输入向量和由n个二进制值组成的目标向量时,输入神经元的数量可以被确定为n-k,并且输出神经元的数量可以被确定为n。也就是说,当使用长度为n-k的第一输入向量和长度为n的目标向量时,可以训练包括n-k个输入神经元和n个输出神经元的第三人工神经网络。
在实施例中,为了训练人工神经网络432所需的超参数之中的输入神经元的数量和输出神经元的数量中的每一个可以被固定为例如n。
例如,当训练包含n个输入神经元和n个输出神经元的第一人工神经网络时,可以使用长度为n的第一输入向量和长度为n的目标向量,或者,可选地,可以使用长度为j的第一输入向量和长度为j的目标向量。可选地,可以使用长度为n-k的第一输入向量和长度为n的目标向量。此处,当使用长度小于n的第一输入向量或目标向量时,预设值(例如,0)可以被输入到n个输入神经元或n个输出神经元中的一些。例如,当使用由j个二进制值组成的第一输入向量时,可以将第一输入向量输入到n个输入神经元之中的j个输入神经元,并且可以将预设值(例如,0)输入到n个输入神经元之中的n-j个输入神经元。
在实施例中,由二进制值组成的训练数据和由LLR值组成的训练数据可以用于训练相同的人工神经网络或训练不同的人工神经网络。例如,由二进制值组成的训练数据和由LLR值组成的训练数据可以用于训练第一人工神经网络。例如,由二进制值组成的训练数据可以用于训练第一人工神经网络,并且由LLR值组成的训练数据可以用于训练除第一人工神经网络以外的人工神经网络。
图5是示出根据所公开技术的实施例的训练数据的示图。
假设已知码字{10101010}、与在对应于码字{10101010}的测试错误校正解码期间检测到的陷阱集相对应的硬判决向量{00111010}、对应于陷阱集的指示错误位置的错误索引(1,4)、对应于陷阱集的后验概率向量{+1+2-1-3-1+2-1+4}、对应于陷阱集的错误向量{10010000}或对应于陷阱集的校正子向量{0011}中的至少一个。
如以上参照图4所述,训练数据生成器410可以使用各种方法来确定第一输入向量和目标向量。
例如,训练数据生成器410可以将硬判决向量{00111010}确定为第一输入向量,并且可以将码字{10101010}确定为目标向量。
例如,训练数据生成器410可以将由硬判决向量{00111010}中包括的二进制值之中的j个二进制值组成的部分硬判决向量{111010}确定为第一输入向量,并且可以将由码字{10101010}中包括的二进制值之中的对应于第一输入向量的二进制值组成的部分码字{101010}确定为目标向量。
例如,训练数据生成器410可以将后验概率(APP)向量{+1+2-1-3-1+2-1+4}确定为第一输入向量,并可以将校正后的APP向量{-1+2-1+3-1+2-1+4}、{-1+2-1+1-1-1+2-1+4}和{-3+2-1+3-1+2-1+4}中的至少一个确定为目标向量,该校正后的APP向量通过校正后验概率(APP)向量{+1+2-1-3-1+2-1+4}中包括的LLR值之中的、对应于错误索引(1,4)的LLR值的大小或符号中的至少一个来生成。
例如,训练数据生成器410可以将由APP向量{+1+2-1-3-1+2-1+4}中包括的LLR值之中的j个LLR值组成的部分APP向量{-1-3-1+2-1+4}确定为第一个输入向量,并且可以将由校正后的APP向量{-1+2-1+3-1+2-1+4}、{-1+2-1+1-1-1+2-1+4}或{-3+2-1+3-1+2-1+4}中包括的LLR值之中的、对应于部分APP向量{-1-3-1+2-1+4}的LLR值组成的校正后的部分APP向量{-1+3-1+2-1+4}和{-1+1-1+2-1+4}中的任意一个确定为目标向量。
例如,训练数据生成器410可以将错误向量{10010000}确定为第一输入向量,并且可以将零向量{00000000}确定为目标向量。
例如,训练数据生成器410可以将通过对错误向量{10010000}中包括的二进制值进行部分循环移位而生成的部分循环移位的错误向量{01100000}确定为第一输入向量,并且可以将零向量{00000000}确定为目标向量。在图5中,示出错误向量中包括的二进制值以两个二进制值为单位进行循环移位的示例。
例如,训练数据生成器410可以将由错误向量{10010000}中包括的二进制值之中的j个二进制值组成的部分错误向量{010000}确定为第一输入向量,并且可以将零向量{000000}确定为目标向量。
例如,训练数据生成器410可以将通过对部分错误向量{010000}中包括的二进制值进行部分循环移位而生成的部分循环移位的部分错误向量{100000}确定为第一输入向量,并且可以将零向量{000000}确定为目标向量。
例如,训练数据生成器410可以将校正子向量{0011}确定为第一输入向量,并且可以将错误向量{10010000}确定为目标向量。
图6是示出根据所公开技术的实施例的训练数据生成方法的示例示图。
如上所述,训练数据生成器410可以通过对错误向量或部分错误向量中包括的二进制值进行部分循环移位来生成第一输入向量。
例如,当将准循环(QC)-LDPC码用作错误校正码时,训练数据生成器410可以通过将错误向量或部分错误向量划分为对应于QC-LDPC码的奇偶校验矩阵中包括的循环置换矩阵(CPM)的多个部分区间,并且通过对分别包括在多个部分区间中的向量进行循环移位,来生成部分循环移位的错误向量或部分循环移位的部分错误向量。
在图6中,当QC-LDPC码的奇偶校验矩阵中包括的循环置换矩阵的大小为4×4时,通过示例的方式示出错误向量中包括的二进制值被部分地循环移位。
训练数据生成器410可以将错误向量划分为对应于循环置换矩阵(CPM)的多个部分区间。例如,如图6所示,当错误向量包括32个二进制值时,可以将错误向量划分为八个部分区间,即,第一部分区间至第八部分区间。八个部分区间(即,第一部分区间至第八部分区间)中的每一个中包括的四个二进制值可以被称为“部分错误向量”。
训练数据生成器410可以将部分区间中包括的各个向量循环移位相同的移位量。例如,如图6所示,训练数据生成器410可以通过将第一部分区间中包括的向量{0100}、第三部分区间中包括的向量{0001}和第八部分区间中包括的向量{1000}循环移位相同的移位量,来生成循环移位的错误向量。
例如,训练数据生成器410可以通过将各个部分区间中包括的向量循环移位移位量1来生成部分循环移位的第一错误向量,可以通过将各个部分区间中包括的向量循环移位移位量2来生成部分循环移位的第二错误向量,或者可以通过将各个部分区间中包括的向量循环移位移位量3来生成部分循环移位的第三错误向量。
当每个循环置换矩阵的大小为z×z时,可以从一条训练数据中另外地获取z-1条训练数据。
图7是示出根据所公开技术的实施例的训练数据生成方法的示例示图。
当生成训练数据时,可以利用线性码的特性。当由于线性码的特性而将相同的错误向量添加到由奇偶校验矩阵定义的零空间中包括的每个码字时,可能导致相同的校正子。
因此,训练数据生成器410可以将通过将错误向量添加到零空间中包括的每个码字而生成的每个向量确定为第一输入向量。此处,训练数据生成器410可以将属于零空间的每个码字确定为目标向量。也就是说,在零空间中包括的一个码字和通过将错误向量加到一个码字而生成的向量可以形成一条训练数据。因此,当在零空间中包括u个码字时,可以使用一个错误向量来生成u条训练数据。
图8是示出根据所公开技术的实施例的训练数据生成方法的示例示图。
在不规则的奇偶校验矩阵中,各个列的阶数(degree)可以彼此不同。例如,如图8所示,奇偶校验矩阵的一些列的列阶数可以是6,其他一些列的列阶数可以是3,并且其他列的列阶数可以是2。
训练数据生成器410可以将由与不规则奇偶校验矩阵中包括的列之中的具有特定列阶数的列相对应的值组成的部分向量确定为第一输入向量。
在实施例中,训练数据生成器410可以将由与不规则奇偶校验矩阵中包括的列之中的具有相对较低的列阶数的列相对应的值组成的部分向量确定为第一输入向量。在图8中,通过示例的方式示出了将由对应于小于列阶数6的列阶数为3和列阶数为2的列的值组成的部分向量确定为待输入到人工神经网络的输入向量的示例。
例如,训练数据生成器410可以将由错误向量中包括的二进制值之中的对应于列阶数3和列阶数2的二进制值组成的部分错误向量确定为第一输入向量。
例如,训练数据生成器410可以将由硬判决向量中包括的二进制值之中的对应于列阶数3和列阶数2的二进制值组成的部分硬判决向量确定为待输入到人工神经网络的输入向量。
例如,训练数据生成器410可以将由后验概率(APP)向量中包括的LLR值之中的对应于列阶数3和列阶数2的LLR值组成的部分后验概率向量(部分APP向量)确定为待输入到人工神经网络的输入向量。
图9是示出用于缩放训练数据的过程的示例示图。
在图9中,通过示例的方式示出了将APP向量确定为第一输入向量并且将校正后的APP向量确定为目标向量的情况。
第一缩放组件420可以缩放LLR值,使得后验概率(APP)向量中包括的LLR值和校正后的APP向量中包括的LLR值具有落在预设范围内的值。例如,第一缩放组件420可以基于前述等式(3)来缩放LLR值。
在图9中,通过示例的方式示出了通过将缩放因子乘以APP向量和校正后的APP向量中包括的LLR值来缩放LLR值的情况。缩放因子可以被任意地确定或用实验方法确定,并且在图9中示出了选择最大LLR值+4的倒数+1/4作为缩放因子的示例。
第一缩放组件420可以通过将缩放因子乘以每个LLR值来生成缩放后的第一输入向量和缩放后的目标向量。缩放后的第一输入向量可以被输入到输入层,缩放后的目标向量可以被输入到输出层。
同时,如上所述,根据实施例,可以不执行缩放,并且在这种情况下,可以将第一输入向量和目标向量不加改变地输入到人工神经网络。
图10是示出根据所公开技术的实施例的错误校正电路的示例示图。
在实施例中,图10所示的错误校正电路10可以包括在图4所示的电子装置40中。
在实施例中,图10所示的错误校正电路10可以包括图4所示的电子装置40。
错误校正电路10可以包括错误校正解码器100和后处理器200。
错误校正解码器100可以使用采用迭代解码方案的各种算法来执行错误校正解码。例如,错误校正解码器100可以使用也称为“置信传播算法(BPA)”的消息传递算法(MPA)来执行错误校正解码。例如,错误校正解码器100可以使用位翻转算法、和积算法、最小和算法或缩放最小和算法中的至少一种来执行错误校正解码,但是所公开技术的实施例不限于此。
错误校正解码器100可以在预设的最大迭代次数I内执行至少一次迭代。在一些实施方式中,将该迭代称为第i次迭代,其中迭代次数(i)小于I。在实施方式中,i和I可以是自然数。当在最大迭代次数I内生成满足对错误校正码(ECC)的奇偶校验矩阵的约束的有效码字时,错误校正解码器100可以输出所生成的有效码字作为经解码的码字。当在最大迭代次数I内未生成满足对错误校正码的奇偶校验矩阵的约束的有效码字时,错误校正解码器100可以输出指示错误校正解码已经失败的失败信号。
错误校正解码器100可以使用基于图形的错误校正码(例如,LDPC码或turbo码中的至少一个)作为错误校正码,但是所公开技术的实施例不限于此。
错误校正解码器100可以包括映射器110、节点处理器120、校正子检查器130和陷阱集检测器140。
映射器110可以从通道接收读取向量。读取向量可以是读取例如存储在存储器装置中的码字的结果。读取向量中包括的每个读取值都可以是“0”或“1”。当使用硬判决解码时,可以接收对应于一个码字的一个读取向量。当使用软判决解码时,可以接收对应于一个码字的多个读取向量。
映射器110可以使用对应于一个码字的g个读取向量来生成被量化为g+1个电平的读取向量。此处,g可以是自然数。被量化为g+1个电平的读取向量中包括的每个读取值可以是被量化为g+1个电平的读取值。被量化为g+1个电平的每个读取值可以是由g个二进制值组成的读取模式(例如,位序列)。例如,被量化为两个电平的每个读取值可以是“1”或“0”。例如,被量化为两个电平的一个读取值可以是“1”,而剩余的一个可以是“0”。例如,被量化为三个电平的每个读取值可以是“11”、“10”、“01”或“00”。例如,被量化为三个电平的一个读取值可以是“11”,另一个可以是“00”,剩余的一个可以是“10”或“01”。
当使用硬判决解码时(即,当g为1时),映射器110可以确定单个读取向量本身是被量化为两个电平的读取向量。
当使用软判决解码时(即,当g等于或大于2时),映射器110可以通过组合g个读取向量来生成被量化为g+1个电平的读取向量。映射器110可以包括第一缓冲器112。当使用量化电平g+1时,第一缓冲器112可以接收并存储g个读取向量。映射器110可以通过组合第一缓冲器112中存储的g个读取向量来生成被量化为g+1个电平的读取向量。
映射器110可以将被量化为g+1个电平的每个读取向量转换为初始对数似然比(LLR)向量。初始LLR向量可以包括多个初始LLR值。也就是说,映射器110可以将被量化为g+1个电平的每个读取值转换为初始LLR值。
映射器110可以将初始LLR向量提供到节点处理器120。初始LLR向量的提供可以在初始化步骤和每次迭代中执行。
节点处理器120可以基于从映射器110接收到的初始LLR向量,使用消息传递算法来执行错误校正解码。消息传递算法使得能够经由在变量节点和校验节点之间执行的消息交换来生成收敛在码字上的结果。该消息可以包括从变量节点发送到校验节点的变量到校验(V2C)消息和从校验节点发送到变量节点的校验到变量(C2V)消息。
节点处理器120可以在最大迭代次数I内执行至少一次迭代。节点处理器120可以使用例如泛洪技术、列分层技术或行分层技术的各种调度技术中的至少一种来执行迭代。在下文中,将描述根据泛洪技术执行错误校正解码的示例,但是所公开技术的实施例不限于此。
节点处理器120可以包括变量节点更新模块122和校验节点更新模块124。
变量节点更新模块122可以在初始化步骤中使用从映射器110接收到的初始LLR向量来初始化变量节点。例如,变量节点更新模块122可以将初始LLR向量中包括的初始LLR值逐个地分配到各个变量节点。
变量节点更新模块122可以生成V2C消息,并且在第一次迭代中将V2C消息发送到校验节点更新模块124,使得各个变量节点的初始LLR值被传送到与相应的变量节点联接的校验节点。
变量节点更新模块122可以基于从校验节点更新模块124接收到的C2V消息来生成V2C消息,并且在除了第一次迭代之外的各次迭代中将所生成的V2C消息发送到校验节点更新模块124。根据实施例,变量节点更新模块122还可以进一步考虑从映射器110接收到的初始LLR向量来生成V2C消息。
变量节点更新模块122可以基于在各次迭代中从校验节点更新模块124接收到的C2V消息来更新变量节点的值。根据实施例,变量节点更新模块122可以进一步考虑从映射器110接收的初始LLR向量来更新变量节点的值。变量节点的值的更新可以指计算每个变量节点的后验概率(APP)。根据实施例,变量节点的值的更新可以指计算每个变量节点的后验概率(APP)并且基于所计算的APP来确定相应的变量节点的硬判决值。可以将具有负APP值的变量节点的硬判决值确定为“1”,而将具有除负值之外的APP值的每个变量节点的硬判决值确定为“0”。
校验节点更新模块124可以在各次迭代中基于从变量节点更新模块122接收到的V2C消息来更新校验节点的值。
校验节点更新模块124可以基于从变量节点更新模块122接收到的V2C消息来生成C2V消息,并且在各次迭代中将所生成的C2V消息发送到变量节点更新模块122。
节点处理器120可以将对应于第i次迭代的变量节点的硬判决值(以下称为“硬判决向量Ci”)提供到校正子检查器130。在一些实施方式中,i表示等于或小于I的自然数。尽管硬判决向量Ci可以是行向量或列向量,但是将在硬判决向量Ci是行向量的假设下进行描述。
当在最大迭代次数I内生成满足错误校正码的奇偶校验矩阵的约束的有效码字时,校正子检查器130可以将所生成的有效码字作为经解码的码字输出。例如,校正子检查器130可以将根据第i次迭代从节点处理器120接收到的硬判决向量Ci存储在第二缓冲器132中,并且可以对所接收到的硬判决向量Ci执行校正子校验。例如,可以通过检查由下面的等式(4)计算出的校正子向量Si的所有条目是否均为“0”来执行校正子校验。
校正子向量Si的所有条目均为“0”的情况表示校正子向量Si已通过校正子校验。这表示在第i次迭代中已经成功地执行了错误校正解码,并且因此校正子检查器130可以将存储在第二缓冲器132中的硬判决向量Ci作为经解码的码字输出。
如果在校正子向量Si的条目中存在除“0”以外的条目(非零条目),则其表示校正子向量Si在校正子校验中已经失败。这表示错误校正解码在第i次迭代中已经失败,因此,当当前迭代落在最大迭代次数I内时,节点处理器120可以执行第(i+1)次迭代。在校正子向量Si的条目之中,对应于非零条目的校验节点可以被称为未满足校验节点(UCN),对应于条目“0”(零条目)的校验节点可以被称为满足校验节点(SCN)。
在实施例中,当对应于第i次迭代的校正子校验失败时,校正子检查器130可以计算对应于第i次迭代的UCN的数量,并且可以将与所计算的UCN的数量有关的信息提供到陷阱集检测器140。
当在错误校正解码期间检测到陷阱集时,陷阱集检测器140可以通知后处理器200已经检测到陷阱集。例如,陷阱集检测器140可以在每次迭代中从校正子检查器130接收关于UCN的数量的信息,并且可以存储所接收的关于UCN的数量的信息。陷阱集检测器140可以基于关于UCN的数量的信息来检测陷阱集。例如,当UCN的数量没有变化时,当UCN的数量单调增加时,或者当UCN的数量振动式发散时,在对应于预设的迭代次数的一系列迭代中,陷阱集检测器140可以确定存在陷阱集。
当从陷阱集检测器140接收到已经检测到陷阱集的通知时,后处理器200可以支持错误校正解码器100,使得错误校正解码器100能够生成有效码字。
当接收到在第i次迭代中已检测到陷阱集的通知时,后处理器200可以使用经训练的人工神经网络224校正对应于第i次迭代的变量节点向量。对应于第i次迭代的变量节点向量可以包括对应于第i次迭代的后验概率向量(APP)向量、对应于第i次迭代的部分APP向量、对应于第i次迭代的硬判决向量或对应于第i次迭代的部分硬判决向量中的至少一个。
后处理器200可以包括第二输入向量选择器210、预测组件220和变量节点向量修改器230。
当接收到在第i次迭代中已检测到陷阱集的通知时,第二输入向量选择器210可以选择待输入到经训练的人工神经网络224的第二输入向量,并且可以将所选择的输入向量提供到预测组件220。
在实施例中,第二输入向量选择器210可以选择对应于第i次迭代的硬判决向量或对应于第i次迭代的后验概率(APP)向量作为待输入到经训练的人工神经网络224的输入层的第二输入向量。
在实施例中,第二输入向量选择器210可以选择作为对应于第i次迭代的硬判决向量的一部分的部分硬判决向量,或作为对应于第i次迭代的APP向量的一部分的部分APP向量,作为待输入到经训练的人工神经网络224的输入层的第二输入向量。
在实施例中,第二输入向量选择器210可以选择对应于第i次迭代的校正子向量作为待输入到经训练的人工神经网络224的输入层的第二输入向量。
预测组件220可以包括第二缩放组件222和经训练的人工神经网络224。
预测组件220可以将从第二输入向量选择器210接收到的第二输入向量输入到经训练的人工神经网络224,或者可以将缩放后的输入向量输入到经训练的人工神经网络224。
预测组件220可以将从人工神经网络224输出的预测向量提供到变量节点向量修改器230,或者将缩放后的预测向量提供到变量节点向量修改器230。
第二缩放组件222可以缩放由第二输入向量选择器210选择的第二输入向量。可以基于与上述第一输入向量的缩放相同或相似的方式来执行第二输入向量的缩放。例如,当第二输入向量包括二进制值时,可以基于上述等式(2)执行缩放。例如,当第二输入向量包括LLR值时,可以基于上述等式(3)执行缩放,或者可以执行缩放使得缩放因子被应用于第二输入向量。
第二缩放组件222可以缩放预测值,例如,从经训练的人工神经网络224的输出层输出的预测向量。第二缩放组件222可以通过缩放预测向量中包括的值,将预测向量中包括的值转换为二进制值、量化的LLR值或实型LLR值。
根据实施例,可以不执行缩放,并且在这种情况下,可以省略第二缩放组件222。
如上参照图3至图9所述,可以预先对经训练的人工神经网络224进行训练,以打破陷阱集。
变量节点向量修改器230可以基于从预测组件220接收到的预测向量或缩放后的预测向量,修改对应于第i次迭代的硬判决向量、部分硬判决向量、APP向量或部分APP向量中的至少一个。
在实施例中,当选择对应于第i次迭代的硬判决向量作为第二输入向量时,变量节点向量修改器230可以基于预测向量来修改对应于第i次迭代的硬判决向量。例如,变量节点向量修改器230可以修改对应于第i次迭代的硬判决向量中包括的二进制值,使得该二进制值对应于预测向量中包括的预测值的各自的符号。例如,变量节点向量修改器230可以将对应于具有负值的预测值的二进制值修改为“1”,并且可以将对应于除负值之外的预测值的二进制值修改为“0”。
在实施例中,当选择对应于第i次迭代的硬判决向量作为第二输入向量时,变量节点向量修改器230可以基于缩放后的预测向量来修改对应于第i次迭代的硬判决向量。例如,变量节点向量修改器230可以修改对应于第i次迭代的硬判决向量,使得硬判决向量与缩放后的预测向量相同。
在实施例中,当选择对应于第i次迭代的APP向量作为第二输入向量时,变量节点向量修改器230可以基于预测向量或缩放后的预测向量来修改对应于第i次迭代的硬判决向量。例如,变量节点向量修改器230可以修改对应于第i次迭代的硬判决向量中包括的二进制值,使得该二进制值对应于预测向量或缩放后的预测向量中包括的预测值的各自的符号。
在实施例中,当选择对应于第i次迭代的部分硬判决向量作为第二输入向量时,变量节点向量修改器230可以基于预测向量来修改对应于第i次迭代的部分硬判决向量。例如,变量节点向量修改器230可以修改对应于第i次迭代的部分硬判决向量中包括的二进制值,使得该二进制值对应于预测向量中包括的预测值的各自的符号。
在实施例中,当选择对应于第i次迭代的部分硬判决向量作为第二输入向量时,变量节点向量修改器230可以基于缩放后的预测向量来修改对应于第i次迭代的部分硬判决向量。例如,变量节点向量修改器230可以修改对应于第i次迭代的部分硬判决向量,使得部分硬判决向量与缩放后的预测向量相同。在实施例中,当选择对应于第i次迭代的部分APP向量作为第二输入向量时,变量节点向量修改器230可以基于预测向量或缩放后的预测向量来修改对应于第i次迭代的部分硬判决向量。例如,变量节点向量修改器230可以修改对应于第i次迭代的部分硬判决向量中包括的二进制值,使得该二进制值对应于预测向量或缩放后的预测向量中包括的预测值的各自的符号。
在实施例中,当选择对应于第i次迭代的校正子向量作为第二输入向量时,变量节点向量修改器230可以基于预测向量或缩放后的预测向量来修改对应于第i次迭代的硬判决向量。例如,变量节点向量修改器230可以翻转与预测向量或缩放后的预测向量中包括的预测值之中的具有正值的预测值相对应的二进制值,并且可以保持与除正值以外的预测值相对应的二进制值而不发生变化。
在实施例中,变量节点向量修改器230可以控制校正子检查器130,以便对包括修改后的硬判决向量或修改后的部分硬判决向量的硬判决向量执行校正子校验。
在实施例中,当包括修改后的硬判决向量或修改后的部分硬判决向量的硬判决向量通过校正子校验时,变量节点向量修改器230可以控制校正子检查器130,使得包括修改后的硬判决向量或修改后的部分硬判决向量的硬判决向量作为经解码的码字被输出。
在实施例中,当包括修改后的硬判决向量或修改后的部分硬判决向量的硬判决向量在校正子校验中失败时,变量节点向量修改器230可以检查UCN的数量,并根据UCN的数量确定是否执行后续迭代。
在实施例中,作为对包括修改后的硬判决向量或修改后的部分硬判决向量的硬判决向量执行校正子校验的结果,当执行迭代使得迭代次数达到预设的最大迭代次数I时,变量节点向量修改器230可以输出指示错误校正解码已经失败的失败信号。在其他实施例中,即使迭代次数尚未达到预设的最大迭代次数I,当UCN的数量大于预设参考值时,变量节点向量修改器230可以输出指示错误校正解码已经失败的失败信号。
在实施例中,作为对包括修改后的硬判决向量或修改后的部分硬判决向量的硬判决向量执行校正子校验的结果,当迭代次数尚未达到预设的最大迭代次数I时,变量节点向量修改器230可以修改APP向量或部分APP向量,并且可以控制节点处理器120,以使用包括修改后的APP向量或修改后的部分APP向量的APP向量来执行后续迭代。APP向量或部分APP向量的修改可以是指修改APP向量或部分APP向量中包括的LLR值的符号或大小中的至少一个。
例如,变量节点向量修改器230可以修改APP向量中包括的LLR值,使得LLR值对应于修改后的硬判决向量中包括的各自的二进制值,或者使得LLR值对应于修改后的部分硬判决向量中包括的各自的二进制值。例如,变量节点向量修改器230可以修改APP向量,使得APP向量与预测向量或缩放后的预测向量相同,或者可以修改部分APP向量,使得部分APP向量与预测向量或缩放后的预测向量相同。
在其他实施例中,当迭代次数尚未达到预设的最大迭代次数I并且UCN的数量不大于预设参考值时,变量节点向量修改器230可以修改APP向量或部分APP向量,并且可以控制节点处理器120以使得使用包括修改后的APP向量或修改后的部分APP向量的APP向量来执行后续迭代。
图11是示出用于使用经训练的人工神经网络执行错误校正解码的过程的示例示图。
在图11中,通过示例的方式示出了基于等式(2)对与检测到陷阱集的第i次迭代相对应的硬判决向量{11100010}进行缩放,然后生成缩放后的第二输入向量的情况。
当将缩放后的第二输入向量{-0.5-0.5-0.5+0.5+0.5+0.5-0.5+0.5}输入到经训练的人工神经网络的输入层时,可以从经训练的人工神经网络的输出层输出预测向量{-0.2-0.4+0.1-0.4-0.1-0.2+0.2-0.3}。
后处理器200可以通过缩放预测向量{-0.2-0.4+0.1-0.4-0.1-0.2+0.2-0.3}来生成缩放后的预测向量{11011101}。在图11中,通过示例的方式示出了将预测向量{-0.2-0.4+0.1-0.4-0.1-0.2+0.2-0.3}中包括的值之中的负值缩放为“1”并且将除负值之外的值缩放为“0”的示例。
后处理器200可以修改硬判决向量使得硬判决向量与缩放后的预测向量{11011101}相同,并且可以控制校正子检查器130以便对修改后的硬判决向量执行校正子校验。基于校正子校验的结果,后处理器200可以控制校正子检查器130以便输出经解码的码字,可以控制节点处理器120以便执行后续迭代,或者可以输出指示错误校正解码已经失败的失败信号。
例如,后处理器200可以控制校正子检查器130以使得当校正子校验已经通过时,硬判决向量{11011101}作为经解码的码字被输出。
例如,当校正子校验已经失败并且UCN的数量小于检测到陷阱集的UCN的数量时,后处理器200可以修改APP向量以匹配硬判决向量{11011101},并且可以控制节点处理器120以使得使用修改后的APP向量来执行后续迭代。
例如,当校正子校验已经失败并且UCN的数量大于检测到陷阱集的UCN的数量时,后处理器200可以输出指示错误校正解码已经失败的失败信号。
图12是示出用于使用经训练的人工神经网络执行错误校正解码的过程的示例示图。
在图12中,通过示例的方式示出了将与检测到陷阱集的第i次迭代相对应的后验概率(APP)向量{-4-2-1+2+3+1-3+4}中包括的LLR值之中的最大LLR值(+4)的倒数(+1/4)作为缩放因子应用于APP向量{-4-2-1+2+3+1-3+4},然后生成缩放后的第二输入向量的情况。
当将缩放后的第二输入向量{-1-(2/4)-(1/4)+(2/4)+(3/4)+(1/4)-(3/4)+1}输入到经训练的人工神经网络的输入层时,可以从经训练的人工神经网络的输出层输出预测向量{+0.6+0.2-0.3+0.8+0.4+0.6-0.6+1.3}。
后处理器200可以缩放预测向量{+0.6+0.2-0.3+0.8+0.4+0.6-0.6+1.3},然后生成缩放后的预测向量{+2.4+0.8-1.2+3.2+1.6+2.4-2.4+5.2}。在图12中,通过示例的方式示出了将最大LLR值(+4)作为缩放因子应用于预测向量{+0.6+0.2-0.3+0.8+0.4+0.6-0.6+1.3}的情况。
后处理器200可以将缩放后的预测向量{+2.4+0.8-1.2+3.2+1.6+2.4-2.4+5.2}转换为硬判决向量{00100010}。在图12中,通过示例的方式示出了将缩放后的预测向量中包括的值之中的负值转换为“1”并且将除负值之外的值转换为“0”的情况。
后处理器200可以控制校正子检查器130以便使用硬判决向量{00100010}执行校正子校验,可以控制校正子检查器130以便基于校正子校验的结果输出经解码的码字,可以控制节点处理器120以便执行后续迭代,或者可以输出指示错误校正解码已经失败的失败信号。
例如,后处理器200可以控制校正子检查器130以使得当校正子校验已经通过时,将硬判决向量{00100010}作为经解码的码字输出。
例如,当校正子校验已经失败并且UCN的数量大于检测到陷阱集的UCN的数量时,后处理器200可以输出指示错误校正解码已经失败的失败信号。
例如,当校正子校验已经失败并且UCN的数量小于检测到陷阱集的UCN的数量时,后处理器200可以修改APP向量以匹配硬判决向量{00100010},并且可以控制节点处理器120以使得使用修改后的APP向量来执行后续迭代。
在实施例中,后处理器200可以修改APP向量,使得修改后的APP向量与预测向量{+0.6+0.2-0.3+0.8+0.4+0.6-0.6+1.3}或缩放后的预测向量{+2.4+0.8-1.2+3.2+1.6+2.4-2.4+5.2}相同。
在实施例中,后处理器200可以通过适当地处理(例如,上舍入、下舍入或四舍五入)缩放后的预测向量{+2.4+0.8-1.2+3.2+1.6+2.4+2.4-2.4+5.2}来生成量化的LLR向量{+2 0-1+3+1+2-2+5},并且可以修改APP向量使得修改后的APP向量与量化的LLR向量相同。根据实施例,后处理器200可以将大于最大允许LLR值(4)的LLR值(+5.2)修改为最大LLR值(4)。
图13是示出奇偶校验矩阵的示例示图。
(N,K)码可以被定义为具有M×N的大小的奇偶校验矩阵。此处,K表示原始数据的长度,M表示奇偶校验位的数量,其中M=N-K。奇偶校验矩阵的每个条目可以由“0”或“1”表示。当奇偶校验矩阵中包括的1的数量远小于0的数量时,(N,K)码可以被称为“(N,K)LDPC码”。此处,N和K可以是自然数。在图13中,作为示例,示出了定义(7,4)码的奇偶校验矩阵H。
每个条目被实施为子矩阵的矩阵可以被称为“基矩阵”。基矩阵的每个条目可以是具有z×z大小的子矩阵。此处,z可以是2或以上的整数。例如,在二进制LDPC码的基矩阵中,“0”可以指示相应的条目是零矩阵,而“1”可以指示相应的条目不是零矩阵。例如,在准循环(QC)-LDPC码的基矩阵中,“1”可以指示相应的条目是循环置换矩阵。循环置换矩阵可以是通过将单位矩阵循环移位预定移位量(值)而获得的矩阵,并且任何一个循环置换矩阵可以具有与另一循环置换矩阵不同的移位值。
图14是将图13的奇偶校验矩阵图示为Tanner图的示图。
(N,K)码可以由Tanner图表示,Tanner图是等效二分图的表达。Tanner图可以由N-K个校验节点、N个变量节点和边表示。校验节点可以对应于奇偶校验矩阵的行,并且变量节点可以对应于奇偶校验矩阵的列。每条边将一个校验节点联接到一个变量节点,并指示在奇偶校验矩阵中由“1”表示的一个条目。
如图13所示的(7,4)码的奇偶校验矩阵可以由Tanner图表示,该Tanner图包括三个校验节点CN1至CN3和七个变量节点VN1至VN7,如图14所示。用于将校验节点CN1至CN3与变量节点VN1至VN7联接的实线表示边。
可以通过在校验节点CN1至CN3与变量节点VN1至VN7之间迭代执行的消息交换来实施迭代解码。
图15是示出使用图13的奇偶校验矩阵计算的校正子向量的示例示图。
如上所述,可以基于奇偶校验矩阵H和对应于第i次迭代的硬判决向量Ci的转置矩阵Ci T来生成校正子向量Si。硬判决向量Ci的各个条目Ci1、Ci2、Ci3、……、Ci7表示对应于第i次迭代的变量节点的硬判决值。校正子向量Si的各个条目Si1、Si2和Si3对应于图14所示的Tanner图上的各个校验节点CN1、CN2和CN3。
校正子向量Si的所有条目Si1、Si2和Si3均指示“0”的情况表示校正子向量已经通过校正子校验。这表示,在相应的迭代中,错误校正解码已成功执行。因此,可以终止迭代解码,并且可以将对应于第i次迭代的硬判决向量Ci作为经解码的码字进行输出。
校正子向量Si的条目Si1、Si2和Si3中的至少一个不为零(“0”)的情况表示校正子向量在校正子校验中已经失败。这表示在相应的迭代中,错误校正解码未成功。因此,当当前迭代尚未达到最大迭代次数I时,可以执行后续迭代。
图16是示出在硬判决解码中使用一个读取值生成初始LLR值的过程的示例示图。
在图16中,示出了分别具有第一状态S1和第二状态S2中的任意一种的存储器单元的阈值电压分布Vth。
为了获取对应于一个码字的一个读取向量,可以将一个读取电压施加到多个存储器单元。
例如,当向多个存储器单元施加第一读取电压Vr1时,来自阈值电压低于第一读取电压Vr1的存储器单元的读取值可显示为“1”,并且来自阈值电压高于第一读取电压Vr1的存储器单元的读取值可显示为“0”。例如,如图16所示,当使用一个读取电压,即第一读取电压Vr1时,可以从每个存储器单元获取一个读取值。
错误校正解码器可以将对应于第一读取电压Vr1的第一读取值本身确定为被量化为两个电平的读取值。
错误校正解码器可以将被量化为两个电平的读取值转换为初始LLR值。可以通过参考设置查找表来执行到初始LLR值的转换。
图17是示出在软判决解码期间使用g个读取值来生成初始LLR值的过程的示例示图。
在图17中,示出了各自具有第一状态S1和第二状态S2中的任意一种的存储器单元的阈值电压分布Vth。
当使用量化电平g+1时,可以将g个读取电压顺序地施加到多个存储器单元,以便获取对应于一个码字的g个读取向量。
例如,当使用量化电平2时,可以将一个读取电压Vr1施加到多个存储器单元。当使用量化电平3时,可以将两个读取电压Vr1和Vr2顺序地施加到多个存储器单元。类似地,当使用量化电平8时,可以将七个读取电压Vr1、Vr2、Vr3、Vr4、Vr5、Vr6和Vr7顺序地施加到多个存储器单元。这表示当使用量化电平g+1时,可以从每个存储器单元获取g个读取值。
当将g个读取电压中的任意一个施加到多个存储器单元时,来自阈值电压低于所施加的读取电压的存储器单元的读取值可显示为“1”,而来自阈值电压高于所施加的读取电压的存储器单元的读取值可显示为“0”。
错误校正解码器可以通过组合对应于g个读取电压的g个读取值来生成被量化为g+1个电平的读取值。例如,如图17所示,当使用七个读取值Vr1、Vr2、Vr3、Vr4、Vr5、Vr6和Vr7时,错误校正解码器可以通过组合对应于七个读取电压的读取值来生成被量化为八个电平的读取值。
错误校正解码器可以将被量化为g+1个电平的读取值转换为初始LLR值。可以通过参考设置查找表来执行到初始LLR值的转换。
图18是示出查找表的示例示图。
参照图18,查找表可以定义分别对应于多个量化电平的LLR值。
错误校正解码器可以参考查找表,将被量化为g+1个电平的读取值中的每一个转换为对应于量化电平g+1的g+1个LLR值中的任意一个。
例如,当使用量化电平2时,错误校正解码器可以将被量化为两个电平的读取值中的任意一个转换为LLR1的值,并将剩余的一个转换为LLR2的值。例如,在被量化为两个电平的读取值中,“1”可以被转换为LLR1的值,即“-4”,而“0”可以被转换为LLR2的值,即“+4”。
一个读取值、多个读取值或读取向量可以表示被量化为g+1个电平的一个读取值、多个读取值或读取向量。
图19是示出根据所公开技术的实施例的存储器系统的示例图。
存储器系统2000可以包括存储数据的存储器装置2200,以及响应于从主机1000接收到的请求控制存储器装置2200的存储器控制器2100。
主机1000可以是将数据存储在存储器系统2000中或从存储器系统2000检索数据的装置或系统。例如,主机1000可以包括计算机、便携式数字装置、平板电脑、数码相机、数字音频播放器、电视、无线通信装置或蜂窝电话中的至少一个,但是所公开技术的实施例不限于此。
存储器控制器2100可以控制存储器系统2000的全部操作。存储器控制器2100可以响应于从主机1000接收到的请求而执行各种操作。存储器控制器2100可以执行将数据存储在存储器装置2200中的编程操作、读取存储在存储器装置2200中的数据的读取操作以及擦除存储在存储器装置2200中的数据的擦除操作中的至少一种。
存储器控制器2100可以包括主机接口2110、中央处理单元(CPU)2120、存储器接口2130、缓冲存储器2140、错误校正电路2150和内部存储器2160。主机接口2110、存储器接口2130、缓冲存储器2140、错误校正电路2150和内部存储器2160可以由中央处理单元2120控制。
主机接口2110可以使用各种接口协议与主机1000通信。例如,主机接口2110可以使用诸如以下的接口协议中的至少一种与主机1000通信:高速非易失性存储器(NVMe)、高速外围组件互连(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、通用串行总线(USB)、多媒体卡(MMC)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、移动工业处理器接口(MIPI)、通用闪存(UFS)、小型计算机系统接口(SCSI)或串列SCSI(SAS),但是所公开技术的实施例不限于此。
中央处理器单元2120可以执行各种类型的计算(操作)或者可以生成命令和地址,以便控制存储器装置2200。例如,中央处理单元2120可以响应于从主机1000接收到的请求,生成编程操作、读取操作和擦除操作所需的各种命令和地址,并且可以将所生成的命令和地址传输到存储器接口2130。
中央处理单元2120可以将从主机1000接收到的每个请求中包括的逻辑地址转换成物理地址,以便控制存储器装置2200的操作。中央处理单元2120可以通过利用内部存储器2160中存储的地址映射表将逻辑地址转换为物理地址或将物理地址转换为逻辑地址。当新数据被编程到存储器装置2200时或当存储在存储器装置2200中的数据被擦除时,中央处理单元2120可以更新地址映射表。
中央处理单元可以在编程操作期间使数据随机化,并且可以在读取操作期间使数据去随机化。
存储器接口2130可以使用各种接口协议与存储器装置2200通信。
缓冲存储器2140可以在存储器控制器2100控制存储器装置2200的同时临时存储数据。例如,从主机1000接收到的编程数据可以临时存储在缓冲存储器2140中,直到编程操作完成。进一步,在读取操作期间,从存储器装置2200读取的数据也可以被临时存储在缓冲存储器2140中。
错误校正电路2150可以对编程数据执行错误校正编码,并且可以对读取数据执行错误校正解码。错误校正电路2150可以具有预定水平的错误校正能力。例如,当在读取数据中存在不超过错误校正能力的多个错误位时,错误校正电路2150可以检测并校正读取数据中包含的错误。可以将不超过错误校正电路2150的错误校正能力的最大错误位数量视为最大允许错误位数量。当读取数据中存在超过最大允许错误位数量的错误位数量时,错误校正解码可能会失败。
当检测到陷阱集时,错误校正电路2150可以使用经训练的人工神经网络来破坏陷阱集。错误校正电路2150可以是如上参照图10描述的错误校正电路10。
内部存储器2160可以用作存储存储器控制器2100的操作所需的各种类型的信息的存储装置。内部存储器2160可以存储多个表。例如,内部存储器2160可以存储逻辑地址被映射到物理地址的地址映射表。例如,内部存储器2160可以存储第一至第三表中的至少一个。
存储器装置2200可以被实施为电力供应中断时所存储的数据丢失的易失性存储器装置,或者即使在电力供应中断时也保留所存储的数据的非易失性存储器装置。存储器装置2200可以在存储器控制器2100的控制下执行编程操作、读取操作、擦除操作等。
存储器装置2200可以包括存储数据的至少一个存储区域。该存储区域可以对应于包括多个存储器单元的一个页面、包括多个页面的一个存储块、包括多个存储块的一个平面或者包括多个平面的一个管芯,但是所公开技术的实施例不限于此。
图20是示出根据所公开技术的实施例的存储器装置的示图。
存储器装置2200可以包括控制逻辑2210、外围电路2220和存储器单元阵列2240。外围电路2220可以包括电压生成器2222、行解码器2224、输入/输出电路2226、列解码器2228、页面缓冲器组2232和电流感测电路2234。
控制逻辑2210可以在图19中所示的存储器控制器2100的控制下控制外围电路2220。
控制逻辑2210可以响应于通过输入/输出电路2226从存储器控制器2100接收到的命令CMD和地址ADD来控制外围电路2220。例如,控制逻辑2210可以响应于命令CMD和地址ADD,输出操作信号OP_CMD、行地址RADD、列地址CADD、页面缓冲器控制信号PBSIGNALS和使能位VRY_BIT<#>。控制逻辑2210可以响应于从电流感测电路2234接收到的通过信号PASS或失败信号FAIL来确定验证操作是已经通过还是已经失败。
外围电路2220可以执行将数据存储在存储器单元阵列2240中的编程操作、输出存储在存储器单元阵列2240中的数据的读取操作以及擦除存储在存储器单元阵列2240中的数据的擦除操作。
电压生成器2222可以响应于从控制逻辑2210接收到的操作信号OP_CMD而生成用于编程操作、读取操作和擦除操作的各种操作电压Vop。例如,电压生成器2222可以将编程电压、验证电压、通过电压、读取电压、擦除电压、导通电压等传送到行解码器2224。
行解码器2224可以响应于从控制逻辑2210接收到的行地址RADD,将操作电压Vop传送到局域线LL,局域线LL联接到从存储器单元阵列2240中包括的存储块之中选择的存储块。局域线LL可以包括局域字线、局域漏极选择线和局域源极选择线。另外,局域线LL可以包括联接到存储块的各种线,诸如源极线。
输入/输出电路2226可以将通过输入/输出(IO)线从存储器控制器接收到的命令CMD和地址ADD传送到控制逻辑2210,或者可以与列解码器2228交换数据。
列解码器2228可以响应于从控制逻辑2210接收到的列地址CADD,在输入/输出电路2226和页面缓冲器组2232之间传送数据。例如,列解码器2228可以通过数据线DL与页面缓冲器PB1至PBm交换数据,或者可以通过列线CL与输入/输出电路2226交换数据。
页面缓冲器组2232可以联接到位线BL1至BLm,位线BL1至BLm共同联接到存储块BLK1至BLKi。页面缓冲器组2232可以包括分别联接到位线BL1至BLm的多个页面缓冲器PB1至PBm。例如,一个页面缓冲器可以联接到每个位线。页面缓冲器PB1至PBm可以响应于从控制逻辑2210接收到的页面缓冲器控制信号PBSIGNALS而进行操作。例如,在编程操作期间,页面缓冲器PB1至PBm可以临时存储从存储器控制器接收到的编程数据,并且可以基于编程数据控制待施加到位线BL1至BLm的电压。此外,在读取操作期间,页面缓冲器PB1至PBm可以临时存储通过位线BL1至BLm接收的数据,或者可以感测位线BL1至BLm的电压或电流。
在读取操作或验证操作期间,电流感测电路2234可以响应于从控制逻辑2210接收到的使能位VRY_BIT<#>而生成参考电流,并且可以将由参考电流产生的参考电压与从页面缓冲器组2232接收的感测电压VPB进行比较,然后输出通过信号PASS或失败信号FAIL。
存储器单元阵列2240可以包括存储有数据的多个存储块BLK1至BLKi。在存储块BLK1至BLKi中,可以存储用户数据和存储器装置2200的操作所需的各种类型的信息。存储块BLK1至BLKi可以各自被实施为二维(2D)结构或三维(3D)结构,并且可以被等同地配置。
图21是示出存储块的示例示图。
存储器单元阵列可以包括多个存储块,并且为了便于描述,在图21中示出了多个存储块中的任意一个存储块BLKi。
在第一选择线和第二选择线之间彼此平行布置的多个字线可以联接到存储块BLKi。此处,第一选择线可以是源极选择线SSL,第二选择线可以是漏极选择线DSL。详细地,存储块BLKi可以包括联接在位线BL1至BLm与源极线SL之间的多个串ST。位线BL1至BLm可以分别联接到串ST,并且源极线SL可以共同联接到串ST。串ST可以等同地配置,因此,将通过示例的方式详细描述联接到第一位线BL1的串ST。
串ST可以包括源极选择晶体管SST、多个存储器单元F1至F16和漏极选择晶体管DST,它们在源极线SL和第一位线BL1之间彼此串联联接。单个串ST可以包括至少一个源极选择晶体管SST和至少一个漏极选择晶体管DST,并且可以在串ST中包括比图中所示的存储器单元F1至F16更多的存储器单元。
源极选择晶体管SST的源极可以联接到源极线SL,漏极选择晶体管DST的漏极可以联接到第一位线BL1。存储器单元F1至F16可以串联联接在源极选择晶体管SST和漏极选择晶体管DST之间。不同串ST中包括的源极选择晶体管SST的栅极可以联接到源极选择线SSL,不同串ST中包括的漏极选择晶体管DST的栅极可以联接到漏极选择线DSL,并且存储器单元F1至F16的栅极可以分别联接到多个字线WL1至WL16。不同串ST中包括的存储器单元之中的、联接到相同的字线的一组存储器单元可以被称为“物理页面:PPG”。因此,存储块BLKi可以包括与字线WL1至WL16的数量相同的多个物理页面PPG。
图22是示出包括图19的存储器控制器的存储器系统的实施例的示图。
参照图22,存储器系统30000可以被实施为蜂窝电话、智能电话、平板电脑、个人计算机(PC)、个人数字助理(PDA)或无线通信装置。存储器系统30000可以包括存储器装置2200和能够控制存储器装置2200的操作的存储器控制器2100。
存储器控制器2100可以在处理器3100的控制下控制存储器装置2200的数据访问操作,例如,编程操作、擦除操作或读取操作。
被编程到存储器装置2200的数据可以在存储器控制器2100的控制下经由显示器3200输出。
无线电收发器3300可以通过天线ANT交换无线电信号。例如,无线电收发器3300可以将通过天线ANT接收的无线电信号转换为可以由处理器3100处理的信号。因此,处理器3100可以处理从无线电收发器3300输出的信号,并且可以将处理后的信号传输到存储器控制器2100或显示器3200。存储器控制器2100可以将由处理器3100处理的信号传输到存储器装置2200。进一步,无线电收发器3300可以将从处理器3100输出的信号改变为无线电信号,并且通过天线ANT将改变后的无线电信号输出到外部装置。
输入装置3400可以是能够输入用于控制处理器3100的操作的控制信号或待由处理器3100处理的数据的装置。输入装置3400可以被实施为诸如触摸板或计算机鼠标定点装置、小键盘、键盘或图像传感器。
处理器3100可以控制显示器3200的操作,使得经由显示器3200输出从存储器控制器2100输出的数据、从无线电收发器3300输出的数据或从输入装置3400输出的数据。
根据实施例,能够控制存储器装置2200的操作的存储器控制器2100可以被实施为处理器3100的一部分或被实施为与处理器3100分开设置的芯片。
图23是示出包括图19的存储器控制器的存储器系统的实施例的示图。
参照图23,存储器系统70000可以被实施为存储卡或智能卡。存储器系统70000可以包括存储器装置2200、存储器控制器2100以及卡接口7100。
存储器控制器2100可以控制存储器装置2200和卡接口7100之间的数据交换。在实施例中,卡接口7100可以是安全数字(SD)卡接口或多媒体卡(MMC)接口,但不限于此。
卡接口7100可以根据主机60000的协议来接口连接主机60000和存储器控制器2100之间的数据交换。在实施例中,卡接口7100可以支持通用串行总线(USB)协议和芯片间(IC)-USB协议。此处,卡接口7100可以指能够支持由主机60000使用的协议的硬件、安装在硬件中的软件、或由硬件执行的信号传输方法。
当存储器系统70000联接到诸如PC、平板、数码相机、数字音频播放器、蜂窝电话、控制台视频游戏硬件或数字机顶盒的主机60000的主机接口6200时,主机接口6200可以在微处理器6100的控制下,通过卡接口7100和存储器控制器2100执行与存储器装置2200的数据通信。
根据所公开技术,可以减轻错误平层现象。
尽管该文件包含许多细节,但是这些细节不应被解释为对所要求保护的发明或可能要求保护的内容的范围的限制,而是对特定实施例的特定特征的描述。
仅公开了一些示例和实施方式。可以基于所公开和/或示出的内容对所描述的示例和实施方式以及其他实施方式进行变型、修改和增强。
Claims (20)
1.一种电子装置,包括:
训练数据生成器,基于在对应于码字的错误校正解码期间检测到的陷阱集的信息来生成输入向量,并且生成与所述输入向量相对应的目标向量;以及
训练组件,从所述训练数据生成器接收所述输入向量和所述目标向量,并且可操作以通过将所述输入向量输入到人工神经网络的输入层并通过将所述目标向量输入到所述人工神经网络的输出层,基于监督学习来训练所述人工神经网络。
2.根据权利要求1所述的电子装置,其中所述训练数据生成器将对应于所述陷阱集的硬判决向量确定为所述输入向量,并且将所述码字确定为所述目标向量。
3.根据权利要求1所述的电子装置,其中所述训练数据生成器将包括对应于特定阶数的二进制值的部分硬判决向量确定为所述输入向量,并且将所述码字中的与所述部分硬判决向量相对应的部分码字确定为所述目标向量,其中与特定阶数相对应的二进制值是与所述陷阱集相对应的硬判决向量中包括的一些二进制值。
4.根据权利要求1所述的电子装置,其中所述训练数据生成器将对应于所述陷阱集的后验概率向量确定为所述输入向量,并且将校正后的后验概率向量确定为所述目标向量,所述校正后的后验概率向量通过校正对应于所述陷阱集的后验概率向量中包括的对数似然比值即LLR值的符号而生成,以匹配所述码字。
5.根据权利要求4所述的电子装置,其中所述训练数据生成器通过进一步校正与所述陷阱集相对应的后验概率向量中包括的LLR值的大小,来生成所述校正后的后验概率向量。
6.根据权利要求1所述的电子装置,其中所述训练数据生成器:
将包括与特定阶数相对应的LLR值的部分后验概率向量确定为所述输入向量,所述LLR值在对应于所述陷阱集的后验概率向量中包括的LLR值之中;
通过校正所述部分后验概率向量中包括的LLR值的符号来生成校正后的部分后验概率向量,以匹配所述码字中的与特定阶数相对应的部分码字,并且
将所述校正后的部分后验概率向量确定为所述目标向量。
7.根据权利要求1所述的电子装置,其中所述训练数据生成器将对应于所述陷阱集的错误向量确定为所述输入向量,并且将具有与所述错误向量相对应的长度的零向量确定为所述目标向量。
8.根据权利要求1所述的电子装置,其中所述训练数据生成器将包括与特定阶数相对应的二进制值的部分错误向量确定为所述输入向量,并且将具有与所述部分错误向量相对应的长度的零向量确定为所述目标向量,其中与所述特定阶数相对应的二进制值是与所述陷阱集相对应的错误向量中包括的一些二进制值。
9.根据权利要求8所述的电子装置,其中所述特定阶数对应于小于或等于预设阶数的阶数,所述特定阶数在不规则奇偶校验矩阵中包括的列的列阶数之中。
10.根据权利要求1所述的电子装置,其中所述训练数据生成器:
将对应于所述陷阱集的错误向量划分为多个区间,
通过将分别包括在所述多个区间中的向量循环移位相同的移位量来生成部分循环移位的错误向量,
将所述部分循环移位的错误向量确定为所述输入向量,并且
将具有与所述部分循环移位的错误向量相对应的长度的零向量确定为所述目标向量。
11.根据权利要求10所述的电子装置,其中所述多个区间是根据准循环-低密度奇偶校验码即QC-LDPC码的奇偶校验矩阵中包括的循环置换矩阵的大小而划分的区间。
12.根据权利要求1所述的电子装置,其中所述训练数据生成器:
将部分错误向量划分为多个区间,所述部分错误向量包括对应于特定阶数的二进制值,所述二进制值在与所述陷阱集相对应的错误向量中包括的二进制值之中,
通过将分别包括在所述多个区间中的向量循环移位相同的移位量来生成部分循环移位的部分错误向量,
将所述部分循环移位的部分错误向量确定为所述输入向量,并且
将具有与所述部分循环移位的部分错误向量相对应的长度的零向量确定为所述目标向量。
13.根据权利要求1所述的电子装置,其中所述训练数据生成器将对应于所述陷阱集的校正子向量确定为所述输入向量,并且将对应于所述陷阱集的错误向量确定为所述目标向量。
14.根据权利要求1所述的电子装置,其中所述训练数据生成器将通过将对应于所述陷阱集的错误向量添加到零空间中包括的码字而生成的向量确定为所述输入向量,并且将所述码字确定为所述目标向量。
15.一种电子装置,包括:
节点处理器,基于迭代解码方案在最大迭代次数I之内执行第i次迭代,并生成对应于所述第i次迭代的中间结果,其中i和I是自然数并且i小于或等于I;以及
后处理器,与所述节点处理器通信,并且响应于在所述第i次迭代中检测到陷阱集,将包括来自与所述第i次迭代相对应的所述节点处理器的中间结果的至少一部分的输入提供到经训练的人工神经网络,并且可操作以基于与所述输入相对应的经训练的人工神经网络的预测值来修改与所述第i次迭代相对应的变量节点向量,
其中与所述第i次迭代相对应的中间结果包括与在所述第i次迭代中检测到的陷阱集相关联的后验概率向量、硬判决向量或校正子向量中的至少一个。
16.根据权利要求15所述的电子装置,进一步包括:
陷阱集检测器,基于分别对应于与预设迭代次数相同的一系列迭代的多个未满足校验节点即UCN来检测所述陷阱集。
17.根据权利要求15所述的电子装置,其中所述后处理器基于所预测的值来修改对应于所述第i次迭代的硬判决向量。
18.根据权利要求17所述的电子装置,其中所述后处理器在确定修改后的硬判决向量已经通过校正子校验时,将所述修改后的硬判决向量作为经解码的码字输出。
19.根据权利要求17所述的电子装置,其中所述后处理器在确定修改后的硬判决向量在所述校正子校验中已经失败并且对应于所述校正子校验的UCN的数量小于对应于所述第i次迭代的UCN的数量时,修改对应于所述第i次迭代的后验概率向量以匹配所述修改后的硬判决向量,并且控制所述节点处理器以便使用修改后的后验概率向量执行后续迭代。
20.根据权利要求17所述的电子装置,其中所述后处理器在确定修改后的硬判决向量在所述校正子校验中已经失败并且所述第i次迭代已经达到最大迭代次数I时,输出指示错误校正解码已经失败的失败信号。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200040627A KR20210123476A (ko) | 2020-04-03 | 2020-04-03 | 전자 장치 |
KR10-2020-0040627 | 2020-04-03 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113496754A true CN113496754A (zh) | 2021-10-12 |
Family
ID=77921943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011159618.4A Withdrawn CN113496754A (zh) | 2020-04-03 | 2020-10-27 | 电子装置 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11356124B2 (zh) |
KR (1) | KR20210123476A (zh) |
CN (1) | CN113496754A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11855657B2 (en) * | 2022-03-25 | 2023-12-26 | Samsung Electronics Co., Ltd. | Method and apparatus for decoding data packets in communication network |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7149459B2 (ja) * | 2017-02-03 | 2022-10-07 | パナソニックIpマネジメント株式会社 | 学習済みモデル提供方法および学習済みモデル提供装置 |
JP7065266B2 (ja) * | 2017-02-03 | 2022-05-12 | パナソニックIpマネジメント株式会社 | 学習済みモデル提供方法および学習済みモデル提供装置 |
US11522564B2 (en) * | 2017-06-22 | 2022-12-06 | Telefonaktiebolaget Lm Ericsson (Publ) | Neural networks for forward error correction decoding |
US11568214B2 (en) * | 2017-08-23 | 2023-01-31 | Telefonaktiebolaget Lm Ericsson (Publ) | Neural networks for decoding |
US10944776B2 (en) * | 2018-07-13 | 2021-03-09 | Ribbon Communications Operating Company, Inc. | Key performance indicator anomaly detection in telephony networks |
-
2020
- 2020-04-03 KR KR1020200040627A patent/KR20210123476A/ko active Search and Examination
- 2020-09-10 US US17/017,331 patent/US11356124B2/en active Active
- 2020-10-27 CN CN202011159618.4A patent/CN113496754A/zh not_active Withdrawn
-
2022
- 2022-05-04 US US17/662,020 patent/US11804857B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20210314004A1 (en) | 2021-10-07 |
KR20210123476A (ko) | 2021-10-14 |
US20220263524A1 (en) | 2022-08-18 |
US11356124B2 (en) | 2022-06-07 |
US11804857B2 (en) | 2023-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112865813B (zh) | 电子装置及操作电子装置的方法 | |
US11050438B2 (en) | Memory controller | |
CN110673979B (zh) | 存储器控制器及其操作方法 | |
US11309916B2 (en) | Error correction circuit and memory controller having the same | |
KR102540772B1 (ko) | 에러 정정 회로 및 이의 동작 방법 | |
CN111726121B (zh) | 错误校正解码器和具有该错误校正解码器的存储器系统 | |
US11128315B2 (en) | Error correction decoder | |
CN112039532A (zh) | 错误校正解码器及具有错误校正解码器的存储器系统 | |
KR102582326B1 (ko) | 에러 정정 회로 및 이의 동작 방법 | |
US11804857B2 (en) | Electronic device | |
CN110830046B (zh) | 纠错电路及其操作方法 | |
KR102592870B1 (ko) | 에러 정정 회로 및 이의 동작 방법 | |
US11418215B2 (en) | Electronic device and method of operating the same | |
US11055164B2 (en) | Error correction decoder and memory controller having the same |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20211012 |
|
WW01 | Invention patent application withdrawn after publication |