CN117337432A - 用于使用神经网络对经编码数据进行解码的解码器及*** - Google Patents
用于使用神经网络对经编码数据进行解码的解码器及*** Download PDFInfo
- Publication number
- CN117337432A CN117337432A CN202280036226.XA CN202280036226A CN117337432A CN 117337432 A CN117337432 A CN 117337432A CN 202280036226 A CN202280036226 A CN 202280036226A CN 117337432 A CN117337432 A CN 117337432A
- Authority
- CN
- China
- Prior art keywords
- data
- neural network
- encoded data
- encoded
- mpc
- 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.)
- Pending
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 291
- 238000012545 processing Methods 0.000 claims abstract description 212
- 238000000034 method Methods 0.000 claims abstract description 147
- 238000004364 calculation method Methods 0.000 claims abstract description 119
- 230000006870 function Effects 0.000 claims description 62
- 230000003111 delayed effect Effects 0.000 claims description 44
- 238000012549 training Methods 0.000 claims description 38
- 239000011159 matrix material Substances 0.000 claims description 24
- 239000013598 vector Substances 0.000 claims description 23
- 238000002156 mixing Methods 0.000 claims description 18
- 238000003064 k means clustering Methods 0.000 claims description 5
- 238000010295 mobile communication Methods 0.000 claims description 4
- 238000004378 air conditioning Methods 0.000 claims 7
- 230000000306 recurrent effect Effects 0.000 abstract description 54
- 238000012937 correction Methods 0.000 abstract description 16
- 238000013507 mapping Methods 0.000 abstract description 10
- 230000008569 process Effects 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 238000009825 accumulation Methods 0.000 description 6
- 238000005457 optimization Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 241000380131 Ammophila arenaria Species 0.000 description 4
- 230000004913 activation Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000001934 delay Effects 0.000 description 4
- 238000012887 quadratic function Methods 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 238000012886 linear function Methods 0.000 description 3
- 230000003446 memory effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
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/65—Purpose and implementation aspects
- H03M13/6597—Implementations using analogue techniques for coding or decoding, e.g. analogue Viterbi decoder
-
- 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/01—Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
-
- 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/044—Recurrent networks, e.g. Hopfield 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/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- 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
-
- 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
-
- 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/3746—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
-
- 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
-
- 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/13—Linear 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/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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1515—Reed-Solomon 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/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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Error Detection And Correction (AREA)
Abstract
本文中所描述的实例利用多层神经网络,例如多层递归神经网络来基于经编码数据(例如,使用一或多种编码技术编码的数据)估计消息概率计算数据。所述神经网络及/或递归神经网络可具有非线性映射及分布式处理能力,这在采用神经网络或递归神经网络以对于消息概率计算(MPC)解码器估计消息概率计算数据的许多***中可能是有利的。以这种方式,本文中所描述的神经网络或递归神经网络可被用来实施错误校正编码(ECC)解码器的方面,例如,迭代地对经编码数据进行解码的MPC解码器。
Description
相关申请的交叉参考
本申请主张2021年4月27日提交的第17/302,226号美国非临时申请案的提交权益。本申请案的全文以引用的方式且出于所有目的而并入本文中。
技术领域
本文中所描述的实例涉及用于对经编码数据进行解码的神经网络,包含递归神经网络。描述可与错误校正编码(ECC)一起使用的神经网络的实例,其中神经网络可被用来通过估计消息概率计算数据来促进对经编码数据的解码。
背景技术
错误校正编码(ECC)可被用于多种应用(例如存储器装置或无线基带电路***)中。通常,错误校正编码技术可利用额外位对原始数据进行编码以描述意在被存储、检索及/或传输的原始位。额外位可连同原始位一起被存储。因此,可存在待存储及/或传输的L个位的原始数据。编码器可提供N-L个额外位,使得经编码数据可为值N个位的数据。原始位可被存储为原始位,或可由编码器改变以形成经编码的N个位的经存储数据。解码器可对N个位进行解码以检索及/或估计原始L个位,其可在一些实例中根据ECC技术进行校正。
非易失性存储器装置中可能发生位翻转(例如,存储器单元处的电荷变化)。因此,存储器装置可利用复杂的错误校正技术操作,其面积及功率要求正在上升;从而导致更高成本的硅及更长的固件开发时间。例如,对经编码数据进行解码的一些方面可能对存储器装置强加额外面积及功率要求。
发明内容
描述用于使用神经网络对经编码数据进行解码的解码器、***、设备及方法。一种实例设备包含神经网络,所述神经网络经配置以接收使用与迭代解码相关联的编码技术的经编码数据。所述神经网络进一步经配置以基于所述经编码数据估计消息概率计算数据。所述实例设备进一步包含第一电路***及第二电路***。所述第一电路***耦合到所述神经网络且经配置以接收所述消息概率计算数据。所述第一电路***进一步经配置以将所述消息概率计算数据与和所述迭代解码相关联的预定阈值进行比较以产生经解码数据。所述第二电路***经配置以将所述经解码数据与奇偶校验矩阵进行比较。
一种实例方法包含在包括神经网络的计算装置处接收经编码数据及经解码数据。所述经编码数据根据编码技术来编码。所述实例方法进一步包含使用所述经编码数据计算消息概率计算数据,直到所述神经网络的输出代表指示所述经解码数据的消息概率计算数据为止。对于根据所述编码技术的所述经编码数据,将所述消息概率计算数据与预定阈值进行比较以产生所述经解码数据。基于所述比较,提供所述经解码数据以基于所述经解码数据与奇偶校验矩阵进行比较。对于所述神经网络,基于所述经计算消息概率计算数据确定一组权重。
另一实例方法包含将在处理单元处接收的针对迭代解码技术的经编码数据与多个系数混合。特定于所述迭代解码技术的所述多个系数与所述经编码数据相关联。混合所述经编码数据包含在多个乘法/累加处理单元(MAC单元)中的MAC单元的第一层处,将所述经编码数据及MAC单元的所述第一层的相应输出的延迟版本与所述多个系数中的某些混合以产生第一处理结果。混合所述经编码数据进一步包含在所述多个MAC单元中的MAC单元的额外层处,将所述第一处理结果及所述第一处理结果的至少一部分的延迟版本与所述多个系数中的其它者混合以产生第二处理结果。部分地基于所述第二处理结果估计消息概率数据。所述消息概率数据代表所述经编码数据,如同所述经编码数据被迭代地解码一样,使得所述消息概率数据是被迭代地解码的所述经编码数据的估计。
附图说明
图1A是根据本文中所描述的实例布置的ECC***的示意说明。
图1B是消息概率计算(MPC)解码器的实例的示意说明。
图1C是根据本文中所描述的实例布置的消息概率计算(MPC)解码器的实例的示意说明。
图1D是根据本文中所描述的实例布置的计算***的示意说明。
图1E是根据本文中所描述的实例布置的神经网络的示意说明。
图1F是根据本文中所描述的实例布置的递归神经网络的示意说明。
图2A到2C是布置在根据本文中所描述的实例的***中的处理电路***的示意说明。
图3是根据本文中所描述的实例布置的设备的示意说明。
图4及5是根据本文中所描述的实例布置的方法的流程图。
具体实施方式
多层神经网络及/或多层递归神经网络可被用来对经编码数据(例如,使用一或多种编码技术编码的数据)进行解码。此类神经网络可具有非线性映射及分布式处理能力,这在采用神经网络解码器的许多***中可为有利的。一些ECC解码器采用迭代解码,例如极性迭代解码技术或低密度奇偶校验码(LDPC)迭代解码技术。迭代解码技术及/或迭代编码技术通常是指其中使用多轮计算来执行解码及/或编码的技术。例如,第一轮计算提供中间结果,所述中间结果再次由编码器及/或解码器来处理以提供进一步结果。那个进一步结果可再次由编码器及/或解码器等来处理。本文中描述利用具有非线性映射及分布式处理能力的神经网络的实例,其可采用神经网络的优点来实施解码器,包含使用递归神经网络的解码器。以这种方式,本文中所描述的神经网络(包含递归神经网络)可被用来实施错误校正编码(ECC)解码器。
图1A是根据本文中所描述的实例布置的ECC***的示意说明。在ECC***10中,编码器14可接收L个位的输入数据(a1,a2,…aL)12。任何数目个位可被用作L。作为ECC***10的部分,编码器14可根据编码技术对输入数据进行编码以提供N个位的经编码数据作为输出代码(b1,b2,…bN)18。任何数目个位可被用作N—通常,N可大于L。例如,如图1A中所描绘,编码器14可接收一组L个输入数据位{0,1}且可将L个位编码成一组N个经编码数据{0,1}。在一些实施方案中,可存储及/或传输经编码数据,或对经编码数据采取一些其它动作,这可能将噪声引入到所述数据中。因此,在ECC***10中,解码器24可接收某一版本的N个位的经编码数据(x1,x2,…xN)作为输入代码数据22。N个位的经编码数据(x1,x2,…xN)可对应于由编码器输出的N个位的经编码数据(b1,b2,…bN),但引入错误。错误可能因存储及/或从存储器检索及/或传输到解码器而引入。解码器24可将输入代码数据22解码成L位原始数据(a1,a2,…aL)的估计作为输出数据28(y1,y2,…yL)。例如,如图1A中所描绘,解码器24可接收一组N个输入经编码数据位{0,1}以将N个位解码为一组L个经解码数据{0,1}。
无线基带电路***的实例可利用错误校正编码(例如低密度奇偶校验编码LDPC)。编码器14可将特定选择的N-L个位添加到L个位的原始数据中,这可允许解码器24对数据进行解码且减少及/或最小化因数据存储及传输中的噪声、干扰及/或其它实际因素引入的错误。
存在多种特定错误校正编码技术,包含低密度奇偶校验编码(LDPC)、里德-索罗门编码、博斯-乔杜里-霍克恩海姆(BCH)及极性编码。然而,这些编码技术的使用可能以降低频率及/或通道及/或存储资源使用效率以及提高处理复杂性为代价。例如,编码技术的使用可增加可存储及/或传输的数据量。此外,处理资源可能是实施编码及解码所必需的。在一些实例中,解码器可包含消息概率计算(MPC)电路***。例如,解码器可实施一或多种消息传递技术来执行解码。例如,解码器可实施迭代解码技术,包含通过包含MPC电路***的电路***的多遍计算。消息传递技术(例如,MPC电路***)的使用可能耗费无线基带电路***及/或存储器控制器中的大量计算资源。在非常期望超低功耗及超低延时的许多新兴应用(例如物联网(IoT)及/或触觉互联网)中,增加的计算需求可能降低现存解码方案(例如,迭代解码方案)的合意性。因此,需要提供一种可减少无线基带电路***及/或存储器控制器中的半导体面积及/或功率要求的MPC解码器。
本文中所描述的实例利用神经网络(NN)(例如多层神经网络及/或多层递归神经网络(RNN))来执行MPC电路***的功能,如同经编码数据被迭代地解码一样,例如,使用MPC电路***来解码。例如,NN MPC可消除对多个计算遍次的需要。例如,NN MPC可不利用原本被MPC电路***在多次解码迭代中用来提供反馈的反馈错误路径。有利地,使用可具有非线性映射及分布式处理能力的NN及/或RNN,ECC***可利用更少的半导体面积空间或降低的功率要求,由此允许在IoT应用及/或触觉互联网中使用迭代解码技术。例如,在其中位翻转可能使存储器存储能力降级的一些非易失性存储器装置中,用来执行MPC电路***的功能的NN及/或RNN可提供更稳健的解码器。用来执行MPC电路***的功能的NN可经训练以将经编码输入数据变换成消息概率计算数据的估计。消息概率计算数据的估计可为由MPC电路***处理的经编码数据的若干次迭代的输出的估计(例如,等效物)。在一些实例中,在将经编码数据存储在降级(例如,由于位翻转)的存储器中时可能引入噪声。在本文中所描述的实例实施方案中,NN MPC(包含RNN MPC)可估计消息概率计算数据,以促进提供经解码数据。消息概率计算数据代表经编码数据,如同经编码数据被迭代地解码一样,例如通过MPC电路***多遍次解码。
图1B是实例消息概率计算(MPC)解码器30的示意说明。MPC解码器30包含可接收N个位的经编码数据(x1,x2,…xN)的消息概率计算(MPC)电路***34及基于来自所述解码器的另一级的反馈提供输出的反馈错误路径(FEP)46。MPC电路***34部分地使用经编码数据来产生消息概率计算数据(mp1,mp2,…mpL)。在MPC电路***34处的计算中,MPC电路***34还使用来自反馈错误路径(FEP)46的输出。反馈错误路径(FEP)46可被实施为奇偶矩阵校验(PMC)电路***38的输出与MPC电路***34之间的连接。MPC电路***34接收(e1,e,…eL)。使用来自FEP 46的输出(例如,PMC电路***38的输出)及经编码数据,MPC电路***34基于来自FEP 46的输出与经编码数据的组合(例如,差异)产生消息概率计算数据。在实例计算中,MPC数据可使用方程(0)来计算:
mpi(k)=f(αijmpj(k-1),βijej(k-1),P) (0)
其中[e1(k-1),e2(k-1),.....eL(k-1)]是FEP 46的输出,αij及βij是已知参数。P是代表与从其检索经编码数据的存储器相关的先验概率或位错误率(BER)因子的参数化统计集。例如,BER因子可包含电压差、小区间干扰/错误、电流干扰、存储器或耦合到存储器的总线中的噪声。因此,MPC电路***34可基于包含来自FEP 46的输出及经编码数据的计算产生消息概率计算数据。
MPC解码器30进一步包含接收消息概率计算数据的决策块(DMB)电路***36。DMB电路***36将消息概率计算数据与预定阈值进行比较。预定阈值可代表指示经解码数据的输出。例如,预定阈值可表示与经编码数据(b1,b2,…bN)的每一N位的平均概率相关的参数。在所述实例中,消息概率计算数据可包含十进制值,例如作为浮点值从MPC电路***34输出。DMB电路***36可包含在0与1之间的固定值(例如,0.5)作为预定阈值。继续所述实例,DMB电路***36将消息概率计算数据的每一十进制值与固定值进行比较以对于消息概率计算数据的每一十进制值输出二进制值(例如,0位或1位)。所得位值从DMB电路***36输出作为指示经解码数据的输出。因此,可将消息概率计算数据集(mp1,mp2,…mpL)的位方面与预定阈值进行比较。基于与预定阈值的比较,DMB电路***36产生L个位的原始数据的估计(y1,y2,…yL)(例如,作为图1A的输出数据28)。另外或替代地,虽然在单个固定值作为待在DMB电路***36处进行比较的预定阈值的背景下进行描述,但DMB电路***36可使用一或多个固定值(例如,不同固定值)作为MPC解码器30的每第k次迭代的预定阈值。例如,如下文关于k决策块44所描述,DMB电路***36可对于MPC解码器30中发生的每一处理遍次/迭代包含特定的固定值。
MPC解码器30进一步包含从DMB电路***36接收L个位的原始数据的估计的奇偶矩阵校验(PMC)电路***38。PMC电路***38将奇偶校验矩阵应用于从DMB电路***36接收的L个位的原始数据的估计。在比较L个位的原始数据的估计时,MPC解码器30使用PMC电路***38对L个位的原始数据的估计执行奇偶校验以确定所述数据是否为经解码数据。在实例实施方案中,PMC电路***38可将L个位的原始数据的估计与已知奇偶校验矩阵H进行比较。因此,在MPC解码器30的决策块40处,确定L个位的原始数据的估计是否通过奇偶校验。如果由PMC电路***38执行的奇偶校验在决策块40处通过,那么流程沿着“是”路径前进以输出L个位的原始数据的估计作为经解码数据。因此,在所述实例中,MPC解码器30提供经解码数据作为输出42。另一方面,如果奇偶校验在决策块40处未通过,那么流程沿着“否”路径前进到k决策块44。
在k决策块44处,MPC解码器30确定在MPC解码器30中是否已关于经接收的N个位的经编码数据(x1,x2,…xN)发生k次迭代。每次迭代可被称为通过MPC电路***34、DMB电路***36及PMC电路***38的一个处理遍次。PMC 38的输出可作为反馈提供到MPC电路***34以开始下一次迭代。以这种方式,为了对经编码数据进行解码,MPC解码器30可迭代地处理经编码数据。这可被称为迭代解码技术,使得MPC解码器30作为用于根据各种编码技术(例如LDPC编码、里德-索罗门编码、BCH编码或极性编码)编码的数据的迭代解码器来操作。取决于编码类型,MPC解码器30可使用k次迭代来对经编码数据进行解码,其中k是代表MPC解码器的特定性能水平的迭代数目。例如,使用最多k次迭代,MPC解码器可对根据特定编码技术提供的大多数经编码数据进行解码。因此,如果在k决策块44处,MPC解码器30已达到最多k次迭代,那么流程沿着“是”路径前进到结束块48MPC解码器30的迭代解码。在实例实施方案中,当MPC解码器30到达结束块48时,MPC解码器30未能对经提供的经编码数据进行解码。
另一方面,如果在k决策块44处,MPC解码器30未达到最多k次迭代,那么流程沿着“否”路径前进以激活FEP 46以从PMC电路***38接收L个位的原始数据的估计。根据关于k决策块44的决策的指示,MPC解码器30使用FEP 46来将L个位的原始数据的估计作为错误数据提供到MPC电路***34,以用于与经编码数据一起进行进一步计算。因此,MPC解码器30迭代地处理具有错误数据的经编码数据,直到存在具有经解码数据的输出42或直到在k决策块44处达到最多k次迭代,在所述情况下,MPC编码器在结束块48处失败。因此,MPC解码器30迭代地对经编码数据进行解码,以对于多种编码技术作为迭代解码器来操作。虽然在图1B的特定背景下进行描述,但一般来说,MPC解码器可包含任何数目个电路***或组件来实施MPC解码器30的方面,所述MPC解码器30通常操作以迭代对经编码数据进行解码。
图1C是根据本文中所描述的实例布置的实例消息概率计算(MPC)解码器50的示意说明。一般来说,本文中所描述的MPC解码器的实例可不利用MPC解码器30的FEP46。代替地,本文中所描述的MPC解码器的实例可利用神经网络(NN)MPC 52,这消除对FEP 46或通常来说对MPC解码器的迭代解码的需要。因此,MPC解码器50对经编码数据进行解码,如同经编码数据例如在MPC解码器30中被迭代地解码一样。图1C的类似命名元件可如关于图1B所描述那样操作,但也可包含如关于图1C所描述的额外特征。例如,图1C描绘DMB电路***56及PMC电路***58,所述DMB电路***56及PMC电路***58可如关于图1B的DMB 36及PMC电路***38所描述那样操作。因此,图1C的元件(包含前述决策块60及输出62)—其数字指示符相对于图1B偏移20—在MPC解码器30中类似地操作,但也可包含额外特征。
MPC解码器50包含基于经接收的经编码数据估计消息概率计算数据的NN MPC 52。如同MPC解码器30,NN MPC 52接收N个位的经编码数据(x1,x2,…xN)。在实例实施方案中,经编码数据可为根据使用迭代解码过程的编码技术编码的任何经编码数据。因此,NN MPC52经配置以接收使用与迭代解码相关联的编码技术的经编码数据。NN MPC 52可包含任何类型的神经网络,包含本文中所描述的递归神经网络的实例。
此外,基于经接收的经编码数据及在NN MPC 52的训练过程期间获取的权重,NNMPC 52估计消息概率计算数据。因此,NN MPC 52产生消息概率计算数据集(mp1,mp2,…mpL)的估计。消息概率计算数据集的估计可等效于在通过与迭代解码器中的消息概率计算电路***相关联的反馈错误路径处理多次迭代(例如,k次迭代)之后的输出。例如,由NNMPC 52产生的估计等效于由MPC解码器30中的FEP 46处理k次迭代之后MPC 34的输出。以这种方式,神经网络可被用来实施NN MPC 52,所述NN MPC 52已经训练以接收经编码数据且输出消息概率计算数据,所述消息概率计算数据可被用来通过奇偶矩阵校验操作。在图1B的实例中,通过MPC电路***的多次迭代可能已被用来输出通过奇偶矩阵校验的消息概率计算数据。在图1C中可不使用多次迭代,因为NN MPC 52可经训练以基于输入经编码数据估计成功的消息概率计算数据。
有利地,NN MPC 52不利用来自反馈错误路径(例如,FEP 46)的输出数据,因为NNMPC 52不例如根据一定数目的k次迭代来迭代地计算经编码数据。代替地,NN MPC 52估计消息概率计算数据,所述消息概率计算数据代表经编码数据,如同经编码数据将例如在作为迭代解码器来操作的图1B的MPC解码器30中被迭代地解码一样。
MPC解码器50进一步包含接收消息概率计算数据的决策块(DMB)电路***56。DMB电路***56将消息概率计算数据与预定阈值进行比较。预定阈值可代表指示经解码数据的输出,使得预定阈值与产生经解码数据的迭代解码技术相关联。例如,预定阈值可表示与经编码数据(b1,b2,…bN)的每一N位的平均概率相关的参数。在所述实例中,经估计消息概率计算数据可包含十进制值,例如作为浮点值从NN MPC电路***52输出。DMB电路***56可包含在0与1之间的固定值(例如,0.5)作为预定阈值。继续所述实例,DMB电路***56将经估计消息概率计算数据的每一十进制值与固定值进行比较以对于经估计消息概率计算数据的每一十进制值输出二进制值(例如,0位或1位)。所得位值从DMB电路***56输出作为指示经解码数据的输出。因此,可将消息概率计算数据集(mp1,mp2,…mpL)的位方面与预定阈值进行比较。基于与预定阈值的比较,DMB电路***56产生L个位的原始数据的估计(y1,y2,…yL)(例如,作为图1A的输出数据28)。
MPC解码器50进一步包含从DMB电路***56接收L个位的原始数据的估计的奇偶矩阵校验(PMC)电路***58。PMC电路***58将L个位的原始数据的估计与奇偶校验矩阵进行比较。在比较L个位的原始数据的估计时,MPC解码器50使用PMC电路***58对L个位的原始数据的估计执行奇偶校验,以确定所述数据是否为经解码数据。在实例实施方案中,PMC电路***58可将L个位的原始数据的估计与已知奇偶校验矩阵H进行比较。因此,在MPC解码器50的决策块60处,确定L个位的原始数据的估计是否通过奇偶校验。如果由PMC电路***58执行的奇偶校验在决策块60处通过,那么流程沿着“是”路径前进以输出L个位的原始数据的估计作为经解码数据。因此,在所述实例中,MPC解码器50提供经解码数据作为输出62。另一方面,如果奇偶校验在决策块60处未通过,那么流程沿着“否”路径前进以结束MPC解码器50。在实例实施方案中,当MPC解码器50到达失败块64时,MPC解码器50未能对经提供的经编码数据进行解码。
有利地,相对于图1B的解码器30,MPC解码器50可利用更少的半导体面积空间或降低功率要求,由此允许在IoT应用及/或触觉互联网应用中使用与迭代解码技术相关联的解码器。例如,NN MPC 52可使用比具有反馈错误路径(例如,如同FEP 46)及/或其它相关联组件的MPC电路***更少的半导体面积来提供如同MPC解码器30的k决策块44的决策。另外,有利地,在使用NN MPC 52时,MPC解码器50可不使用多次迭代来对经编码数据进行解码。例如,MPC解码器30中的每次迭代可包含错误数据(例如,FEP 46的输出)及输入经编码数据的额外计算以对经编码数据进行解码。因此,通过不像MPC解码器30那样使用多次迭代来对数据进行解码,MPC解码器50还可减少用以对经编码数据进行解码的处理时间。在实例实施方案中,NN MPC 52包含应用于经编码数据使得可以比迭代解码技术(如同MPC解码器30的迭代解码技术)中使用的多次迭代计算更少的处理时间来估计消息概率计算数据的权重。因此,在使用NN MPC 52时,MPC解码器30可改进处理时间且降低用于对经编码数据进行解码的计算复杂性。
图1D是布置在根据本文中所描述的实例的***100中的电子装置110的示意说明。电子装置110可经由网络120耦合到存储器140及/或可耦合到及/或包含存储器145,所述存储器140及所述存储器145中的每一者可存储系数数据。例如,系数数据可为神经网络或递归神经网络的权重。在本文中所描述的实例中,存储在存储器140或存储器145中的系数数据可包含可与由电子装置110接收的经编码输入数据混合的系数数据。经编码输入数据也可存储在存储器140或145中。电子装置110可从存储器140或存储器145获得经编码输入数据(例如,N个经编码输入位)以对所述数据进行解码以将其作为经解码输出数据输出。
电子装置110还包含可与计算机可读媒体105交互的处理电路***112,所述计算机可读媒体105可经编码有可由处理电路***112执行的指令,例如可执行指令115。在一些实施方案中,计算机可读媒体105可被实施为存储器,其可包含存储媒体及通信媒体两者。实例计算机可读媒体105可包含以任何方法或技术实施的用于存储信息(例如计算机可读指令)的易失性及非易失性、可抽换及不可抽换媒体。计算机可读媒体105包含存储在其中的用于使神经网络基于经编码数据估计消息概率计算数据的可执行指令115。例如,可执行指令115可包含用以(例如,从存储器140或存储器145)选择某些系数数据且将所述系数数据作为权重存储在计算机可读媒体105的权重存储器118中的指令。可执行指令115可进一步包含用以将那些权重118提供到图2A到2C的乘法/累加单元及/或存储器查找单元中的一或多者的指令,其细节将在描述图1D到1F之后进行呈现。如本文中所使用,权重118可被称为多个系数(a plurality of coefficients/pluralities of coefficients)(例如,系数数据)。在一些实例中,存储在计算机可读媒体105中的权重118可被处理电路***112中实施的神经网络(例如,NN MPC 52)用来促进对与特定编码技术相关联的经编码数据进行解码,如同经编码数据被迭代地解码一样。可执行指令115可包含用以基于所指示编码技术选择某些系数数据作为权重118的指令。例如,与经编码输入数据(例如,从存储器140或145获得)相关联的标头信息或另一旗标可指示特定编码技术。在所述实例中,可执行指令115可经执行以存储来自存储器140或存储器145的某些权重118。另外,当权重118被实施神经网络的处理电路***112用来基于经编码数据估计消息概率计算数据时,可执行指令115可经执行以促进将经编码输入数据解码成经解码数据。
处理电路***112可经配置以实施MPC解码器50,其包含NN MPC 52。在实例中,处理电路***112可实施MPC解码器50或任何ECC解码器的NN MPC 52组件。继续所述实例,处理电路***112可与在电子装置110上实施的MPC解码器或ECC解码器交互以例如通过实施NN MPC 52来执行MPC解码器的MPC功能性。
处理电路***112可使用一或多个处理器(例如,具有任何数目个核)来实施。在一些实例中,处理电路***112可包含定制电路***,及/或用于执行本文中所描述的功能的固件。处理电路***112可包含用于执行如本文中所描述的所描述功能(例如,使神经网络例如基于经编码数据估计消息概率计算数据)的乘法单元/累加单元。在一些实例中,处理电路***112可为任何类型,包含但不限于微处理器或数字信号处理器(DSP)或其任何组合。例如,处理电路***112可包含若干级高速缓存,例如一级高速缓存及二级高速缓存、核及寄存器。实例处理器核可包含算术逻辑单元(ALU)、位操纵单元、乘法单元、累加单元、加法器单元、查找表单元、存储器查找单元或其任何组合。本文中例如参考图2A、2B或2C描述处理电路***112的实例。
例如,计算机可读媒体105可经编码有用于在处理电路***112处使神经网络基于经编码数据估计消息概率计算数据的可执行指令115。例如,在对来自存储器140或145的经编码输入数据进行解码的背景下,用于使神经网络基于经编码数据估计消息概率计算数据的可执行指令115可包含用于以下操作的指令:从存储器140或145获得编码经输入数据;及将在处理电路***112处获得的经编码输入数据变换成经解码数据,包含由NN MPC 52估计消息概率计算数据。例如,用于使神经网络基于经编码数据估计消息概率计算数据的可执行指令115可进一步包含用于将经编码输入数据的一部分与系数数据(例如,权重118)相乘以产生系数乘法结果且累加系数乘法结果以与经编码输入数据的另一部分及系数数据进一步相乘及累加的指令,所述指令的实例在本文中进行描述。例如,为了产生系数乘法结果,乘法/累加处理单元(MAC单元)的第一层可利用多个系数计算经编码输入数据以产生此类系数乘法结果,或MAC单元的第一层的第一处理结果。继续所述实例,为了提供输出数据,MAC单元的额外层可利用多个额外系数计算第一处理结果以产生额外系数乘法结果,或MAC单元的额外层的第二处理结果。MAC单元的额外层中的最后一个层的MLU可基于第二处理结果提供消息概率计算数据的估计。因此,用于使神经网络基于经编码数据估计消息概率计算数据的可执行指令115可包含用于不同类型的硬件实施方案的各组可执行指令(例如图2A到2C中所展示的那些可执行指令),以实施利用系数数据(例如,权重118)的对经编码输入数据的此计算。
用户接口114可利用数个输入装置中的任一者(包含但不限于触摸屏、键盘、鼠标、麦克风或其组合)来实施。用户接口114可接收来自用户的例如关于在处理电路***112处对某些经编码数据进行解码的输入。用户接口114可将用户输入传达到计算机可读媒体105。实例用户接口114包含串行接口控制器或并行接口控制器,所述串行接口控制器或并行接口控制器可经配置以与外部输入装置(例如,键盘、鼠标、电子笔、语音输入装置、触摸输入装置等)通信。
网络120可包含有线网络或直接有线连接及无线媒体,例如声学、射频(RF)、微波、红外线(IR)及其它无线媒体。
(若干)存储器140及145(或计算机可读媒体105,如果被实施为存储器)可使用处理电路***112可存取的任何存储媒体来实施。例如,RAM、ROM、固态存储器、快闪存储器、磁盘驱动器、***存储器、光学存储装置或其组合可被用来实施计算机可读媒体105或(若干)存储器140及145。在将经编码数据存储在存储器140或145中时,可能在存储过程中引入环境或其它噪声。例如,在将经编码数据存储在降级(例如,由于位翻转)的存储器140或145中时可能引入噪声。因此,从(若干)存储器140或145获得的数据可被称为有噪声的经编码输入数据。在一些实施方案中,计算机可读媒体105可存储本文中所描述的系数与特定编码技术之间的关联,例如,使得可执行指令115可利用所述关联来选择存储器140或145中的某些系数数据作为权重118。
电子装置110可使用多种计算***中的任一者(包含但不限于一或多个台式计算机、服务器、膝上型计算机或其它计算机)来实施。电子装置110通常包含处理电路***112。计算***100可被实施为使用任何用户通信装置的移动通信装置,包含但不限于台式计算机、膝上型计算机、蜂窝电话、平板计算机、电器、汽车或其组合。电子装置110可被编程有用于使神经网络估计消息概率计算数据的移动应用(例如,处理电路***112及编码有指令115的计算机可读媒体105,所述指令115在被执行时致使电子装置110执行所描述的功能)。例如,电子装置110可经编程以从移动通信装置的触摸屏接收在5G无线传输中接收的某些经编码数据将在处理电路***112处实施的MPC解码器(例如,MPC解码器50)进行解码的指示。
应理解,***100的计算***的布置可相当灵活,且尽管未展示,但应理解,***100可包含许多电子装置110,所述电子装置110可经由网络120连接,可彼此结合操作以执行本文中所描述的***及方法。在一些实例中,存储器145及/或存储器140可使用同一媒体来实施,且在其它实例中可使用不同媒体来实施。例如,虽然存储器140在图1D中被展示为耦合到网络120,但应明白,存储器140也可被实施电子装置110,作为计算机可读媒体105的部分。另外,虽然图1D中展示单个用户接口114,但应明白,电子装置110可进一步包含任何数目个输入装置、输出装置及/或***组件。例如,用户接口114可为移动通信装置的接口。
图1E是根据本文中所描述的实例布置的神经网络的示意说明。神经网络150包含三个级(例如,层)。虽然图1E中展示三个级,但在其它实例中可使用任何数目个级。神经网络150的第一级包含节点168、节点169、节点172及节点174。神经网络150的第二级包含组合器152、组合器154、组合器156及组合器158。神经网络150的第三级包含组合器160、组合器162、组合器164及组合器166。在其它实例中,可使用额外、更少及/或不同组件。
通常,可使用包含多个级的节点的神经网络。所述节点可使用处理电路***112来实施,所述处理电路***112可对从前一级接收的输入执行一或多个函数且将所述函数的输出提供到神经网络的下一级。处理单元可使用例如一或多个处理器、控制器及/或定制电路***(例如专用集成电路(ASIC)及/或现场可编程门阵列(FPGA))来实施。在一些实例中,处理单元可使用关于图2A到2C所描述的一或多个处理单元的任何组合来实施。在图2A到2C的背景下,神经网络150的实例实施方案的细节将在图2A到2C的描述中进行呈现。处理单元可被实施为用于执行分配给处理单元的功能的组合器及/或求和器及/或任何其它结构。在一些实例中,本文中所描述的神经网络的某些元件执行加权和,例如,可使用一或多个乘法/累加单元来实施,所述乘法/累加单元可使用(若干)处理器及/或其它电路***来实施。在实例中,神经网络150可由电子装置110来实施。
在图1E的实例中,神经网络150可具有输入层,所述输入层可为包含节点168、节点169、节点172及节点174的神经网络的第一级。若干节点(节点168、节点169、节点172及节点174)可实施线性函数,所述线性函数可将输入信号(例如,x1(n),x2(n),...xN(n))提供到神经网络的另一级(例如,‘隐藏级’或‘隐藏层’)。因此,在图1E的实例中,N个位的经编码输入数据可在操作期间被提供到神经网络的输入级(例如,输入层)。在一些实例中,输入数据可为根据编码技术(例如,低密度奇偶校验编码(LDPC)、里德-索罗门编码、博斯-乔杜里-霍克恩海姆(BCH)及/或极性编码)编码的数据。N个位的输入数据可由神经网络150的第一级输出到神经网络150的下一级。在一些实例中,神经网络150的第一级与第二级之间的连接可不被加权—例如,在一些实例中,第二级中的处理单元可从第一级接收不变位。所述输入位中的每一者可被提供到下一级中的处理单元中的多者。虽然展示输入层,但在一些实例中,输入层可能不存在。
若干节点(节点168、节点169、节点172及节点174)可例如使用位操纵单元来实施,所述位操纵单元可将信号x1(n)、x2(n)、x3(n)、xN(n)分别转发到组合器152、组合器154、组合器156及组合器158。在一些实施方案中,位操纵单元可在逐位基础上执行数字逻辑运算。例如,位操纵单元可为非(NOT)逻辑单元、与(AND)逻辑单元、或(OR)逻辑单元、或非(NOR)逻辑单元、与非(NAND)逻辑单元或异或(XOR)逻辑单元。
神经网络150可具有下一层,其在一些实例中可被称为‘隐藏层’。下一层可包含组合器152、组合器154、组合器156及组合器158,但可使用任何数目个元件。虽然神经网络150的第二级中的处理元件被称为组合器,但通常第二级中的处理元件可使用在处理元件处接收的输入数据位执行非线性激活函数。组合器152、组合器154、组合器156及组合器158可例如使用包含基于非线性激活函数的非线性向量集(例如,中心向量)的乘法单元来实施。可使用任何数目个非线性激活函数。可使用的函数的实例包含高斯函数,例如可使用的函数的实例包含复二次函数,例如f(r)=(r2+σ2)1/2。可使用的函数的实例包含逆复二次函数,例如f(r)=(r2+σ2)-1/2。可使用的函数的实例包含薄板样条函数,例如f(r)=r2log(r)。可使用的函数的实例包含分段线性函数,例如可使用的函数的实例包含三次逼近函数,例如在这些实例函数中,σ表示实参数(例如,缩放参数)且r是输入向量与当前向量之间的距离。所述距离可使用多种度量中的任一者(包含欧几里德范数)来测量。
‘隐藏层’中的每一元件可接收输入数据的选定位(例如,一些或全部)作为输入。例如,‘隐藏层’中的每一元件可从输入层中的多个选定元件(例如,一些或所有元件)的输出接收作为输入。例如,‘隐藏层’中的每一元件可从输入层中的多个选定单元(例如,一些或所有单元)的输出接收作为输入。例如,组合器152可接收节点168、节点169、节点172及节点174的输出作为输入。虽然在图1E中以实例的方式展示单个‘隐藏层’,但可存在任何数目个‘隐藏层’且其可串联连接。虽然在‘隐藏层’中展示四个元件,但可使用任何数目,且它们在数目上可与输入层中的节点的数目及/或任何其它隐藏层中的节点的数目相同或不同。隐藏层中的节点可使用在隐藏层节点(例如,元件)处接收的数据的组合评估至少一个非线性函数。以这种方式,隐藏层可在一或多个隐藏层的输出处提供中间数据。
神经网络150可具有输出层。图1E的实例中的输出层可包含组合器160、组合器162、组合器164及组合器166,但可使用任何数目个元件。虽然神经网络150的输出级中的处理元件被称为组合器,但通常输出中的处理元件可使用从神经网络中的最后一个‘隐藏层’接收的数据位执行任何组合或其它操作。输出层中的每一元件可接收由最后一个‘隐藏层’提供的数据的选定位(例如,一些或全部)作为输入。例如,组合器160可从组合器152、组合器154、组合器156及组合器158的输出接收作为输入。隐藏层与输出层之间的连接可被加权。例如,可指定一组权重W。在一些实例中,隐藏层节点与输出层节点之间的每一连接可存在一个权重。在一些实例中,每一隐藏层节点可存在可应用于由那个节点提供到每一经连接输出节点的数据的一个权重。也可使用其它权重分布。在隐藏层的输出被提供到输出层之前,所述权重可与所述输出相乘。以这种方式,输出层可执行加权输入的和。因此,神经网络150的输出(例如,输出层的输出)可被称为加权和。输出层可相应地使用权重组合从一或多个隐藏层接收的中间数据以提供输出数据。
在一些实例中,神经网络150可被用来提供表示对应于N个输入位的经处理数据的L个输出位。例如,在图1E的实例中,展示N个输入位(x1(n),x2(n),...xN(n))且提供L个输出位(mp1(n),mp2(n),...mpL(n))。如本文中所描述,L个输出位可为消息概率计算数据。在实例实施方案中,神经网络150可估计消息概率计算数据,例如,经估计消息概率计算数据等效于来自消息概率计算电路***(例如,图1B的MPC 34)的基于在一定数目次迭代之后使用迭代解码器(例如,图1B的MPC解码器30)中的反馈错误路径(例如,图1B的FEP 46)解码的数据的输出。神经网络150可经训练使得所使用权重W及/或由隐藏层的元件提供的函数致使神经网络150提供表示对应于N个经编码输入位的经处理数据的输出位。输入位可已利用编码技术来编码,且权重及/或由隐藏层的元件提供的函数可基于与某种编码技术相关联的迭代解码器的迭代计算的消息概率计算数据来确定。因此,神经网络150可被训练多次—对于可被用来向神经网络150提供输入数据的每种编码技术训练一次。
可训练神经网络的实例。训练通常是指确定待由神经网络用来创建输入数据到输出数据的所期望变换的权重、函数及/或其它属性的过程。在一些实例中,本文中所描述的神经网络可经训练以将经编码输入数据变换为消息概率计算数据。在一些实例中,本文中所描述的神经网络可经训练以使用消息概率计算数据的估计将经编码输入数据变换为经解码数据。
在各种实例中,如本文中所描述的训练可为有监督的或无监督的。在一些实例中,训练可使用已知的预期输入与所期望输出数据对来进行。例如,训练可利用已知的经编码数据与已知的消息概率计算数据对来训练神经网络以将后续的经编码数据解码成经解码数据。在一些实例中,训练可利用已知的经编码数据与已知的消息概率计算数据对来训练神经网络以将后续有噪声的经编码数据解码成经解码数据。训练的实例可包含确定待由神经网络(例如图1E的神经网络150)使用的权重。在一些实例中,在训练期间使用与将在操作期间使用的神经网络硬件相同的神经网络硬件。然而,在一些实例中,在训练期间可使用不同神经网络硬件,且在训练期间确定的权重、函数或其它属性可经存储以供其它神经网络硬件在操作期间使用。
训练的实例可以数学方式描述。例如,考虑在时刻(n)的输入数据,其被给定为:X(n)=[x1(n),x2(n),…xN(n)]T。用于神经网络150的(若干)隐藏层中的每一元件(例如,组合器152、组合器154、组合器156及组合器158)的中心向量可被表示为Ci(对于i=1,2,…,H,其中H是隐藏层中的元件数目)。
隐藏层中的每一元件的输出接着可被给定为:
hi(n)=fi(‖X(n)-Ci‖)for(i=1,2,……,H) (1)
最后一个隐藏层与输出层之间的连接可被加权。输出层中的每一元件可具有线性输入-输出关系,使得其可执行求和(例如,加权求和)。因此,输出层中的第i元件在时间n的输出可被写为:
对于(i=1,2,…,L)且其中L是输出层的输出的元件数目及Wij是隐藏层中的第j元件与输出层中的第i元件之间的连接权重。
通常,神经网络架构(例如,图1E的神经网络150)可包含数个元件且可具有分布在输入域中的中心向量,使得神经网络可逼近非线性多维函数,且因此可逼近正向映射两种数据类型之间的逆映射(例如,从N位输入经编码数据到L位输出消息概率计算数据)。通常,由隐藏层中的元件使用的传递函数的选择可能不会影响神经网络的映射性能,且因此,在一些实例中,可使用可方便地以硬件实施的函数。例如,薄板样条函数及/或高斯函数可被用于各种实例中且两者都可提供足够的逼近能力。也可使用其它函数。
神经网络的实例可相应地由属性(例如,参数)来指定。在一些实例中,两组参数可被用来指定神经网络:连接权重及中心向量(例如,阈值)。所述参数可通过求解优化函数而从选定输入数据(例如,经编码输入数据)确定。实例优化函数可被给定为:
其中M是经训练输入向量(例如,经训练的经编码数据输入)的数目且Y(n)是使用上述方程(1)及(2)从样本输入向量计算的输出向量,且是对应的所期望(例如,已知)输出向量。输出向量Y(n)可被写为:
Y(n)=[y1(n),y2(n),………yL(n)]T
各种方法(例如,梯度下降程序)可被用来求解优化函数。然而,在一些实例中,另一方法可被用来确定神经网络的参数,所述方法通常可包含两个步骤—(1)确定中心向量Ci(i=1,2,…,H)及(2)确定权重。
在一些实例中,中心向量可选自可用样本向量的子集。在此类实例中,(若干)隐藏层中的元件的数目可能相对较大以覆盖整个输入域。因此,在一些实例中,可能期望应用k均值聚类算法。通常,k均值聚类算法根据吸引子的自然量度分布中心向量(例如,如果数据点的密度较高,那么中心的密度也较高)。k均值聚类算法可找到一组集群中心且将训练样本划分成若干子集。每一集群中心可与这个网络中的H个隐藏层元件中的一者相关联。数据可以使得训练点被指派给具有最近中心的集群的方式进行划分。集群中心对应于优化函数的最小值中的一者。用于与k均值聚类算法一起使用的实例优化函数可被给定为:
其中Bjn是形成HxM矩阵的集群划分或隶属函数。每一列可表示可用样本向量(例如,已知的输入数据)且每一行可表示集群。每一列可在对应于最接近那个训练点的集群的行中包含单个‘1’,而在其它地方包含零。
可将每一集群的中心初始化为不同的随机选择的训练点。接着,可将每一训练实例指派给最接近其的元件。当已指派所有训练点时,可找到每一集群的训练点的平均位置且将集群中心移动到那个点。所述集群可变成隐藏层元件的所期望中心。
在一些实例中,对于一些传递函数(例如,高斯函数),可确定缩放因子σ,且可在确定连接权重之前确定所述缩放因子σ。可选择缩放因子来覆盖训练点以允许所期望网络输出的平滑拟合。通常,这是指处理元件中心的凸包内的任何点可显著地激活多于一个元件。为了实现这个目标,每一隐藏层元件可在很大程度上激活至少一个其它隐藏层元件。用以确定缩放参数σ的适当方法可基于P最近邻试探法,其可被给定为,
其中Cj(对于i=1,2,…,H)是Ci的P最近邻。/>
可另外或代替地在训练期间确定连接权重。在具有加权连接一个的隐藏层、作为求和单元的输出元件的神经网络的实例(例如图1E的神经网络150)中,一旦已确定中心向量及缩放参数,方程(3)的优化函数就可变成线性最小二乘问题。线性最小二乘问题可被写为
其中W={Wij}是连接权重的LxH矩阵,F是隐藏层处理元件的输出的HxM矩阵且其矩阵元件使用Fin=fi(‖X(n)-Ci‖)(i=1,2,……,H;n=1,2,……,M)来计算且是所期望(例如,已知)输出的LxM矩阵。连接权重矩阵W可从方程(5)找到且可被写为如下:
其中是F+是F的伪逆。以这种方式,上文可提供用于确定神经网络的连接权重的批处理方法。例如,其可被应用于所有输入样本集同时可用的情况。在一些实例中,每一新样本集可例如在递归最小二乘算法(RLS)中递归地变得可用。在此类情况下,可如下确定连接权重。
首先,可将连接权重初始化为任何值(例如,可使用随机值)。输出向量Y(n)可使用方程(2)来计算。可如下计算输出层中的每一输出元件的错误项ei(n):
接着,可基于错误项调整连接权重,例如如下:
Wij(n+1)=Wij(n)+γei(n)fj(‖X(n)-Ci‖) (7)
(i=1,2,……,L;j=1,2,……,M)
其中γ是可为固定或时变的学习率参数。
总错误可根据来自输出层的输出及所期望(已知)数据来计算:
可通过再次计算新输出向量、错误项且再次调整连接权重来迭代所述过程。所述过程可继续,直到识别出将错误减少到等于或小于阈值错误的权重。
因此,图1E的神经网络150可经训练以确定由神经网络150用来执行输入经编码数据与输出消息概率计算数据之间的特定映射的参数(例如,权重)。例如,训练神经网络150可提供用以在对已利用特定编码技术(例如,低密度奇偶校验编码(LDPC)、里德-索罗门编码、博斯-乔杜里-霍克恩海姆(BCH)及/或极性编码)编码的经编码数据进行解码时使用的一组参数(例如,权重)。可例如使用不同的已知输入/输出数据对训练神经网络150(及/或另一神经网络)多次。多次训练可得到多组连接权重。例如,可针对多种编码技术中的每一者确定一组不同权重—例如,可确定用于与对经LDPC编码数据进行解码一起使用的一组权重,且确定用于与对经BCH编码数据进行解码一起使用的另一组权重。因此,在各种实施方案中,各组权重可对应于用来基于经编码数据估计消息概率计算数据的权重,以促进例如在MPC解码器(例如图1C的MPC解码器50)中提供经解码数据。
回想一下,图1E的神经网络150的结构仅以实例的方式提供。在其它实例中,可使用其它多层神经网络结构。例如,如下文关于图1F所描述,可如本文中所公开那样利用多层递归神经网络结构。此外,本文中所描述的训练程序也以实例的方式提供。例如,可使用其它训练技术(例如,学习算法)来解决局部最小值问题及/或消失梯度问题。可通过神经网络的离线学习模式来获得对于每一解码器确定的权重及/或向量,这可有利地提供更多源及数据。在一些实施方案中,例如如参考图2A到2C所描述,组合器(例如,组合器152、组合器154、组合器156及组合器158)的隐藏层可包含乘法/累加(MAC)单元,其中每一层具有额外MAC单元。已在相应处理元件(例如,相应MAC单元)中累加中间处理结果的此类实施方能还可包含经配置以检索多个系数且提供所述多个系数作为用于待与输入数据混合的MAC单元的相应层的连接权重(例如,经确定权重)的存储器查找(MLU)单元。
在监督学习的实例中,输入训练样本:[x1(n),x2(n),.....xm(n)]可通过将编码样本[b1(n),b2(n),.....bm(n)]传递通过一些有噪声的通道及/或添加噪声来产生。有监督的输出样本可为可被用来由编码器产生[b1(n),b2(n),.....bm(n)]的对应原始代码[a1(n),a2(n),.....aL(n)]。一旦在离线模式下确定这些参数,就可利用神经网络(例如,计算方程(2))从输入数据获得所期望的经解码码字,这可避免传统错误校正解码算法中使用的复杂迭代及反馈决策。以这种方式,本文中所描述的神经网络可提供处理复杂性及/或延时的减少,这是因为一些复杂性已被转移到用来确定将使用的权重及/或函数的离线训练过程。此外,同一神经网络(例如,图1E的神经网络150)可被用来通过选择通过针对所采用的特定错误校正技术的训练获得的不同权重,基于从多个错误校正编码器中的任一者编码的输入码字估计消息概率计算数据。
图1F是根据本文中所描述的实例布置的递归神经网络的示意说明。神经网络170包含三个级(例如,层):输入节点171;组合器级173及175;以及输出节点177。虽然图1F中展示三个级,但在其它实例中可使用任何数目个级,例如,如参考图2A到2C所描述。在图2A到2C的背景下,神经网络170的实例实施方案的细节将在图2A到2C的描述中进行呈现。在一些实施方案中,神经网络170可具有多个组合器级使得来自一个组合器级的输出被提供到另一组合器级,直到被提供到输出节点177为止。例如,如参考图2A所描述,在神经网络170中可存在多个组合器级。如图1F中所描绘,延迟单元175a、175b及175c可为神经网络170的任选组件。当如本文中所描述那样利用此类延迟单元175a、175b及175c时,神经网络170可被称为递归神经网络。
神经网络170的第一级包含输入节点171。输入节点171可在递归神经网络的各种输入处接收输入数据。在一些实例中,输入节点171可包含多个输入节点,例如图1F的输入节点168、节点169、节点172及节点174。神经网络170的第二级是组合器级,其包含组合器单元173a、173b、173c;及延迟单元175a、175b、175c。因此,组合器单元173及延迟单元175可统称为组合器级。在一些实施方案中,组合器单元173a、173b及173c可对应于例如图1E的组合器152、组合器154及组合器156。因此,如关于图1D在处理电路***112实施此类组合器的情况下所描述,通常实施第二级中的组合器单元173a到c及延迟单元175a到c的处理电路***112可使用来自输入节点171的输入数据(例如,输入信号X1(n)、X2(n)及X3(n))来执行非线性激活函数。神经网络170的第三级包含输出节点177。在一些实例中,输出节点177可包含图1E的组合器160、组合器162及组合器164。因此,在一些实例中,输出节点177可被称为组合器级。在其它实例中可使用额外、更少及/或不同组件。
递归神经网络170包含延迟单元175a、175b及175c,所述延迟单元175a、175b及175c基于从相应组合器单元173a到c接收输出数据而产生来自相应组合器单元173a到c的此输出的延迟版本。在所述实例中,组合器单元173a到c的输出数据可被表示为h(n);且因此,延迟单元175a到c中的每一者延迟组合器单元173a到c的输出数据以产生来自组合器单元173a到c的输出数据的延迟版本,所述输出数据的延迟版本可被表示为h(n-t)。在各种实施方案中,延迟量t也可变动,例如一个时钟循环、两个时钟循环或一百个时钟循环。即,延迟单元175可接收时钟信号且利用所述时钟信号来识别延迟量。在图1F的实例中,延迟版本被延迟一个时间段,其中‘1’表示一时间段。时间段可对应于任何数目个时间单位,例如由时钟信号定义的时间段或由神经网络170的另一元件定义的时间段。
继续图1F的实例,每一延迟单元175a到c将来自组合器单元173a到c的输出数据的延迟版本作为输入提供到组合器单元173a到c,以任选地作为递归神经网络来操作。此类延迟单元175a到c可将来自组合器单元173a到c的节点的输出数据的相应延迟版本提供到组合器单元173a到c的相应输入单元/节点。在利用来自组合器单元173a到c的输出数据的延迟版本时,递归神经网络170可在组合器单元173a到c处训练并入待由此递归神经网络170处理的输入数据的时变方面的权重。在一些实例中,一旦经训练,输入节点171就接收待在递归神经网络170中处理的输入经编码数据。例如,每一输入数据流可对应于代表时间信号的一组不同的经获得的经编码数据。因为RNN 170并入来自组合器单元173a到c的输出数据的延迟版本,所以来自组合器单元173a到c的输出数据的延迟版本提供代表时间性质的反馈信息,其中RNN 170提供更快地解码的输出且RNN 170将那个时间性质并入到计算输出经解码数据中。在所述实例中,输出经解码数据可代表例如基于根据相关联编码技术编码的输入经编码数据的对消息概率计算数据的估计。
通常,递归神经网络可包含多个级的节点。所述节点可使用处理电路***112来实施,所述处理电路***112可对从前一级接收的输入执行一或多个函数且将所述函数的输出提供到递归神经网络的下一级。处理单元可使用例如一或多个处理器、控制器及/或定制电路***(例如专用集成电路(ASIC)及/或现场可编程门阵列(FPGA))来实施。在一些实例中,处理单元可使用关于图2A到2C所描述的处理电路***112中的任一者来实施。处理单元可被实施为用于执行分配给处理单元的功能的组合器及/或求和器及/或任何其它结构。在一些实例中,本文中所描述的神经网络的某些元件执行加权和,例如,可使用一或多个乘法/累加单元来实施,所述乘法/累加单元可使用(若干)处理器及/或其它电路***来实施。在实例中,神经网络170可由电子装置110利用关于图2A到2C所描述的一或多个处理单元的任何组合来实施。
递归神经网络训练及推理的实例可以数学方式描述。而且,作为实例,考虑在时刻(n)的输入数据,其被给定为:X(n)=[x1(n),x2(n),…xN(n)]T。递归神经网络170的(若干)隐藏层中的每一元件(例如,包含图1E的组合器152、组合器154、组合器156及组合器158的组合器单元173)的中心向量可被表示为Ci(对于i=1,2,…,H,其中H是隐藏层中的元件数目)。
接着,隐藏层中的每一元件的输出可被给定为:
hi(n)=fi(‖X(n)+hi(n-t)-Ci‖)for(i=1,2,……,H) (9)
t可为延迟单元175处的延迟使得组合器单元173的输出包含组合器单元173的输出的延迟版本。在一些实例中,这可被称为组合器单元173的反馈。因此,最后一个隐藏层与输出层之间的连接中的每一者可被加权。输出层中的每一元件可具有线性输入-输出关系使得其可执行求和(例如,加权求和)。因此,输出层中的第i个元件在时间n的输出可被写为:
对于(i=1,2,…,L)且其中L是输出层的输出的元件数目及Wij是隐藏层中的第j元件与输出层中的第i个元件之间的连接权重。
另外或替代地,尽管已关于包含组合器单元173a到c及延迟单元175a到c的组合器的单个级(例如,第二级)描述图1F,但应明白,类似组合器级的多个级可被包含在例如具有不同类型的组合器单元及带有不同延迟的不同类型的延迟单元的神经网络170中,如现在将参考图2A到2C所描述。此外,同一神经网络(例如,图1F的神经网络170)可被用来通过选择通过针对所采用的特定错误校正技术的训练而获得的不同权重来促进对来自多个错误校正编码器中的任一者的经编码数据的解码。在所述实例中,不同权重可对应于用来基于所采用的特定错误校正技术的经编码数据估计消息概率计算数据的特定权重。以这种方式,递归神经网络可充当用于多种编码器类型的MPC(例如,NN MPC 52),如同神经网络150。在实例实施方案中,递归神经网络170可被用来实施NN MPC 52。有利地,递归神经网络170利用来自组合器单元173a到c的输出数据的延迟版本,来提供代表时间性质的反馈信息。因而,例如与神经网络150相比较,RNN 170可提供利用RNN 170更快地解码的输出数据。例如,如果特定编码技术易受在存储在存储器140或存储器145中期间的噪声(例如,位翻转)影响,那么待由RNN 170解码的经获得的经编码数据可包含产生对经获得的经编码数据的时变影响(例如,时间性质)的噪声。因此,包含在输出数据的延迟版本中的反馈信息可(例如,与神经网络150相比较)改进RNN 170例如在使用基于与和编码技术互补的迭代解码技术相关联的经编码数据的消息概率计算数据的估计时对经编码数据进行解码的效率。
图2A是布置在根据本文中所描述的实例的***200中的处理电路***112的示意说明。此硬件实施方案(例如,***200)可被用来例如实施一或多个神经网络,例如图1C的NN MPC 52、图1E的神经网络150或图1F的递归神经网络170。另外或替代地,在一些实施方案中,处理电路***112可从此计算***接收输入数据210a、210b及210c。输入数据210a、210b及210c可为从传感器获得的经编码数据或存储在存储器145中的数据。因此,所获得的输入数据可为被提供到处理单元的输入级(例如,输入层)的N个位的有噪声的经编码输入数据,其中输入数据210a X1(i)对应于第一位;输入数据210bX2(i)对应于第二位;及输入数据210c XIN(i)对应于第N位。在一些实例中,经获得输入数据可为根据编码技术(例如,低密度奇偶校验编码(LDPC)、里德-索罗门编码、博斯-乔杜里-霍克恩海姆(BCH)及/或极性编码)编码的数据。
处理电路***112可对电子装置110处的经接收的经编码输入数据实施消息概率计算功能性或估计操作以便输出消息概率计算数据的估计(例如,B(1)230)。在各种实施方案中,处理电路***112可实施MPC解码器的神经网络消息概率计算组件,例如图1C中所描绘的MPC解码器50的NN MPC 52。因此,实施NN MPC 5的图2A的处理电路***112可被称为递归神经网络。
在实例实施方案中,处理电路***112经配置以接收使用与迭代解码相关联的编码技术的经编码数据且产生消息概率计算数据集(mp1,mp2,…mpL)的估计。有利地,消息概率计算数据集的估计等效于在通过与迭代解码器中的消息概率计算电路***相关联的反馈错误路径处理多次迭代(例如,k次迭代)之后的输出。因此,处理电路***112可促进对与特定编码技术相关联的经编码数据的解码,如同经编码数据被迭代地解码一样。
另外或替代地,在一些实施方案中,由于在将经编码数据存储在存储器140或存储器145中期间经历的噪声(例如,位翻转),输入数据可能是有噪声的。例如,可获得存储在存储器140或存储器145中的经编码数据作为待提供到其中实施处理电路***112的电子装置110的输入数据。
处理电路***112可包含当与从存储器145获得的输入数据混合时可产生输出数据(例如B(1))230的乘法单元/累加(MAC)单元212a到c、216a到b及220;延迟单元213a到c、217a到b及221;以及存储器查找单元(MLU)214a到c、218a到b及222。具有不同元件数目的每一组MAC单元及MLU单元可被称为处理电路***112的组合器的相应级。例如,组合器的第一级包含结合延迟单元213a到c操作以形成第一级或“层”的MAC单元212a到c及MLU 214a到c,如参考具有作为各种组合器级的“隐藏”层的图1E。继续所述实例,组合器的第二级包含结合延迟单元217a到b操作以形成隐藏层的第二级或第二层的MAC单元216a到b及MLU 218a到b。且组合器的第三级可为包含结合延迟单元221操作以形成隐藏层的第三级或第三层的MAC单元220及MLU 222的单个组合器。
例如,在图1E的神经网络150的背景下,处理电路***112的组合器的第一级—包含结合延迟单元213a到c操作的MAC单元212a到c及MLU 214a到c—可对应于组合器152、组合器154、组合器156及组合器158,其是神经网络150的第二级。继续所述实例,如关于神经网络150所描述,在各种实施例中其可包含额外级或隐藏层,使得组合器160、组合器162、组合器164或组合器166对应于图2A的单个组合器,包含MAC单元220及MLU 222。类似地,在图1F的递归网络170的背景内的实例中,处理电路***112的组合器的第一级—包含结合延迟单元213a到c操作的MAC单元212a到c—可对应于递归神经网络170的组合器级,其包含组合器单元173a、173b、173c;及延迟单元175a、175b、175c。
在输入数据被处理成消息概率计算数据的实例中,在一些实例中,输出数据230B(1)可为基于经编码输入数据的消息概率计算数据的估计。在操作中,处理电路***112可实施存储在计算机可读媒体105处的用于使神经网络基于经编码数据估计消息概率计算数据的可执行指令115,以致使处理电路***112配置乘法单元212a到c、216a到c及220以将输入数据210a、210b及210c以及来自延迟单元213a到c、217a到b及221的处理结果的延迟版本(例如,MAC单元的相应层的相应输出)与系数数据相乘及/或累加以产生输出数据230B(1)。例如,可执行指令115可致使存储器145将存储在存储器145中的权重及/或其它参数作为用于MAC单元212a到c、216a到b及220以及延迟单元213a到c、217a到b及221的权重提供到MLU214a到c、218a到b及222,所述权重及/或其它参数可与某种编码技术相关联。因此,在操作期间,处理电路***112可实施可执行指令115以基于经接收的经编码数据的所指示编码技术从存储器145选择某些系数数据(例如,多个系数)作为权重。
在执行用于使神经网络估计消息概率计算数据的此类指令115的实例中,指令115可包含在MAC单元212a到c及MLU 214a到c的第一层处将经编码输入数据与多个系数或权重(例如,作为权重118存储在计算机可读媒体105中)混合,乘法单元/累加单元212a到c经配置以将来自对应输入数据210a、210b或210c的至少两个操作数与来自相应延迟单元213a到c的操作数相乘及累加以产生提供到MLU 214a到c的乘法处理结果。例如,乘法单元/累加单元212a到c可执行乘法-累加运算,使得三个操作数M、N及T相乘且接着与P相加以产生存储在其相应MLU 214a到c中的P的新版本。因此,MLU 214a锁存乘法处理结果,直到经存储乘法处理结果被提供到MAC单元的下一层为止。MLU 214a到c、218a到b及222可由作为存储器查找单元来操作的任何数目个处理元件(例如D、T、SR及/或JK锁存器)来实施。
图2A中所展示的MLU 214a到c、218a到b及222通常可执行从输入到输出的预定非线性映射。例如,MLU 214a到c、218a到b及222可被用来评估至少一个非线性函数。在一些实例中,所描绘的各种MLU 214a到c、218a到b及222的内容及大小可不同且可为预定的。在一些实例中,图2A中所展示的MLU 214a到c、218a到b及222中的一或多者可由单个合并MLU(例如,表查找)来替换。可由MLU 214a到c、218a到b及222执行的非线性映射(例如,函数)的实例包含高斯函数、分段线性函数、S型函数、薄板样条函数、复二次函数、三次逼近及逆复二次函数。函数的实例也已参考图1E进行描述。在一些实例中,选定MLU 214a到c、218a到b及222可被绕过及/或可被取消激活,这可允许MLU及其相关联MAC单元被认为是单位增益元件。
另外,在所述实例中,MLU 214a将处理结果提供到延迟单元213a。延迟单元213a延迟处理结果(例如,h1(i))以产生处理结果的延迟版本(例如,h1(i-1))以作为操作数T输出到MAC单元212a。虽然图2A的延迟单元213a到c、217a到b及221被描绘为引入延迟‘1’,但应明白,可将不同量的延迟引入到MAC单元的第一层的输出。例如,引入样本延迟‘1’(例如,h1(i-1))的时钟信号可代替地引入样本延迟‘2’、‘4’或‘100’。在各种实施方案中,延迟单元213a到c、217a到b及221可对应于可使用时钟信号或其它时间导向信号将延迟引入到处理电路***中的任何数目个处理单元,例如可作为延迟单元来操作的触发器(例如,D触发器)及/或一或多个各种逻辑门(例如,AND、OR、NOR等…)。
在递归神经网络的第一隐藏层的实例中,MLU 214a到c可检索存储在存储器145中的系数数据,所述系数数据可为与待应用于MAC单元的第一层以应用于来自当前时段的数据及来自前一时段的数据(例如,第一层处理结果的延迟版本)两者的权重相关联的权重。例如,MLU 214a可为检索待应用于操作数M及N两者的一或多个系数以及待应用于操作数T的额外系数的表查找。MLU 214a到c还将经产生乘法处理结果提供到MAC单元216a到b及MLU218a到b的下一层。分别结合MLU 218a、218b及MLU 222工作的MAC单元216a、216b及MAC单元220的额外层可继续处理乘法结果以产生输出数据230B(1)。使用此电路***布置,可从输入数据210a、210b及210c产生输出数据230B(1)。
有利地,例如与图2B的处理电路***112相比较,***200的处理电路***112可利用减少数目个MAC单元及/或MLU。每一后续层可具有MAC单元、延迟单元及MLU的减少部分。如所描绘,例如在图2A中,当m=3时,MAC单元216a到b、延迟单元217a到b及MLU 218a到b的第二层可包含m-1个MAC单元及MLU。因此,包含MAC单元220、延迟单元221及MLU 222的处理电路***112中的最后一个层仅包含一个MAC、一个延迟单元及一个MLU。
例如来自存储器145的多个系数可与输入数据210a到210c及处理结果的延迟版本混合以产生输出数据230B(1)。例如,基于输入数据210a到c及处理结果的延迟版本的多个系数与输出数据230B(1)的关系可被表示为:
其中a(m)、a(m-1)、a1是分别用于以下者的系数:乘法/累加单元212a到c的第一层及延迟单元213a到c的输出;乘法/累加单元216a到b的第二层及延迟单元217a到b的输出;及乘法/累加单元220的最后一个层及延迟单元221的输出;且其中f(·)是可由存储器查找单元214a到c及218a到b执行的映射关系。如上文所描述,存储器查找单元214a到c及218a到b检索系数以与输入数据及MAC单元的每一层的相应延迟版本混合。因此,可通过使用存储在存储器中的一或多个多个系数利用相应乘法/累加单元操纵输入数据及MAC单元的延迟版本来提供输出数据。多个系数可特定于与经编码数据相关联的迭代解码技术。所得经映射数据可由额外乘法/累加单元及额外延迟单元使用存储在存储器中的与所期望编码技术相关联的若干组额外系数来操纵。因此,在处理电路***112的每一级处相乘的多个系数可表示或提供在专门设计的硬件(例如,FPGA)中对输入数据进行处理的估计。
乘法单元/累加单元212a到c、216a到b及220中的每一者可包含多个乘法器、多个累加单元或及/或多个加法器。乘法单元/累加单元212a到c、216a到b及220中的任一者可使用ALU来实施。在一些实例中,乘法单元/累加单元212a到c、216a到b及220中的任一者可包含各自分别执行多次乘法及多次加法的一个乘法器及一个加法器。乘法/累加单元212a到c、216a到b及220的输入-输出关系可被表示为:
其中“I”表示将在那个单元中执行乘法的次数,Ci是可从例如存储器145的存储器存取的系数,且Bin(i)表示来自输入数据210a到c或来自乘法单元/累加单元212a到c、216a到b及220的输出的因子。在实例中,一组乘法单元/累加单元的输出Bout等于系数数据Ci乘以另一组乘法单元/累加单元的输出Bin(i)的和。Bin(i)也可为输入数据使得一组乘法单元/累加单元的输出Bout等于系数数据Ci乘以输入数据的和。
虽然在图2A中被描述为将NN MPC 52实施为递归神经网络的处理电路***112,但应明白,本文中所描述的处理电路***112可基于经编码数据估计消息概率计算数据,例如,如在任何递归神经网络中实施,或执行MPC解码器的任何MPC功能性。
图2B是布置在根据本文中所描述的实例的***250中的处理电路***112的示意说明。此硬件实施方案(例如,***250)可被用来例如实施一或多个神经网络,例如图1C的NN MPC 52、图1E的神经网络150或图1F的递归神经网络170。处理电路***112可对电子装置110处的经接收的经编码输入数据实施消息概率计算功能性或估计操作以便输出消息概率计算数据的估计(例如,B(1)275a、B(2)275b、…B(n)275c)。在各种实施方案中,处理电路***112可实施MPC解码器的神经网络消息概率计算组件,例如图1C中所描绘的MPC解码器50的NN MPC 52。因此,实施NN MPC 52的图2B的处理电路***112可被称为递归神经网络。
另外或替代地,在一些实施方案中,处理电路***112可从计算***接收输入数据210a、210b及210c。图2B的类似描述元件可如关于图2A所描述那样操作,但也可包含关于图2B所描述的额外特征。例如,图2B描绘可如关于图2A的MAC单元212a到c及延迟单元213a到c所描述那样操作的MAC单元262a到c及延迟单元263a到c。因此,其数字指示符相对于图2A偏移50的图2B的元件类似地包含处理电路***112的元件;例如,MAC单元266a相对于MAC单元216a类似地操作。包含处理电路***112的***250还包含图2A的处理电路***112中未突显的额外特征。例如,图2B的处理电路***112另外包含MAC单元266c及270b到c;延迟单元267c及271b到c;以及MLU 268c及272b到c,使得输出数据被提供为275a到c,而不是在图2A中单独地提供为B(1)230。有利地,包含处理电路***112的***250可处理输入数据260a到c以产生具有更高精度的输出数据275a到c。例如,输出数据275a到c可利用在MLU 268c处检索且由额外MAC单元266c及270b到c以及额外延迟单元267c及271b到c相乘及/或累加的额外系数来处理输入数据260a到260c。例如,此额外处理可得到在提供作为经解码数据的估计的输出数据方面更精确(例如,与从图2A的处理电路***112获得的输出数据相比较)的输出数据。在其中板空间(例如,印刷电路板)不是设计中的主要因素的实施方案中,与图2A的处理电路***112的实施方案相比较,图2B的处理电路***112的实施方案可能是期望的;其在一些实施中由于具有比图2B的处理电路***112更少的元件而可占据更少的电路板空间。
虽然处理电路***112在图2A及2B的背景下被描述为单个处理电路***112,但所述特征也可在图1D的处理电路***112中实施,使得图2A或2B中的单个处理电路***112的描述可互换为如贯穿本文中所描述的实例实施的处理元件。因此,应明白,虽然在图2A或2B中提及单个处理电路***112,但如同图1D,电子装置110可具有多个处理电路***112,以具有与如关于图2A或2B的单个处理电路***112所描述相同的特征。
例如,在图1E的神经网络150的背景下,处理电路***112的组合器的第一级—包含结合延迟单元263a到c操作的MAC单元262a到c及MLU 264a到c—可对应于组合器152、组合器154、组合器156及组合器158,其是神经网络150的第二级。继续所述实例,如关于神经网络150所描述,在各种实施例中其可包含额外级或隐藏层,使得组合器160、组合器162、组合器164或组合器166对应于结合延迟单元271a到c操作的MAC单元270a到c及MLU 272a到c。类似地,在图1F的递归网络170的背景内的实例中,处理电路***112的组合器的第一级—包含结合延迟单元263a到c操作的MAC单元262a到c—可对应于递归神经网络170的组合器级,其包含组合器单元173a、173b、173c;及延迟单元175a、175b、175c。
图2C是布置在根据本文中所描述的实例的***280中的处理电路***112的示意说明。此硬件实施方案(例如,***280)可被用来例如实施一或多个神经网络,例如图1C的NN MPC 52、图1E的神经网络150或图1F的递归神经网络170。处理电路***112可对电子装置110处的经接收的经编码输入数据实施消息概率计算功能性或估计操作以便输出消息概率计算数据的估计(例如,B(1)295a、B(2)295b、…B(n)295c)。在各种实施方案中,处理电路***112可实施MPC解码器的神经网络消息概率计算组件,例如图1C中所描绘的MPC解码器50的NN MPC 52。因此,实施NN MPC 52的图2C的处理电路***112可被称为递归神经网络。
另外或替代地,在一些实施方案中,他处理器电路***112可被实施为图1D实例中的处理电路***112。除了图2B的延迟单元263a到c、267a到c及271a到c之外,图2C的类似描述元件可如关于图2B所描述那样操作。例如,图2C描绘可如关于图2B的MAC单元262a到c及延迟单元263a到c所描述那样操作的MAC单元282a到c及延迟单元283a到c。因此,其数字指示符相对于图2B偏移20的图2C的元件类似地包含处理电路***112的元件;例如,MAC单元286a相对于MAC单元266a类似地操作。
包含处理电路***112的***280还包含图2B的处理电路***112中未突显的额外特征。与图2B不同,图2C描绘延迟单元283a、283b及283c。因此,图2C的处理单元说明处理电路***112可包含用以放置延迟单元的输入及输出的不同布置,如对于延迟单元283a、283b及283c所说明。例如,MLU 288b的输出可被提供到延迟单元283b,以产生来自MAC单元的第二层的那个处理结果的延迟版本,作为MAC单元的第一层的输入,例如,作为MAC单元282b的输入。因此,与图2B中的***250的处理电路***112不同,***280的处理电路***112说明处理结果的延迟版本可作为输入提供到其它隐藏层,图2B展示相应延迟版本作为输入提供到其中产生那些延迟版本的同一层(例如,MLU 268b的输出被提供到延迟单元267b,以产生用于从其输出处理结果的同一层中的MAC单元266b的延迟版本)。因此,在所述实例中,甚至输出B(n)295c也可从最后一个隐藏层被提供到第一隐藏层(例如,作为MAC单元282c的输入)。
有利地,例如,与图2A或2B的处理电路***112相比较,可作为输入提供到不同或额外隐藏层的处理结果的此类延迟版本可更好地补偿实施图2C的处理电路***112的递归神经网络170中的“高阶”存储器效应。例如,高阶存储器效应对在递归神经网络170的训练期间使用的超前及滞后包络信号的效应进行建模,以将处理电路***112处的经获得的有噪声的经编码输入数据变换成消息概率计算数据的估计)。存储在存储器140或存储器145中的具有噪声(例如,位翻转)或在存储期间经历的其它噪声(例如,散粒或电压噪声)的经获得的经编码输入数据可为待例如部分地由提供消息概率计算数据的估计的递归神经网络170解码的有噪声的经编码输入数据。在所述实例中,估计输出数据的递归神经网络170可包含对应于(例如,囊封(若干)噪声的各种包络)的此类超前及滞后包络的处理结果的不同延迟版本。因此,实施处理电路***112并入此类高阶存储器效应,例如,用于推断递归神经网络170,以基于输入数据281a到c提供消息概率计算数据作为输出数据295a到c
虽然处理电路***112在图2A、2B及2C的背景下被描述为单个处理电路***112,但所述特征也可在图1D的处理电路***112中实施,使得在图2A、2B及2C中对单个处理电路***112的描述可在任何处理电路***中互换,如贯穿本文中所描述的实例所实施。因此,应明白,虽然在图2A、2B、2C中提及单个处理电路***112,但如同图1D,电子装置110可具有多个处理电路***112,以具有与关于图2A、2B或2C的单个处理电路***112所描述相同的特征。
虽然在图2A、2B及2C中被描述为将NN MPC 52实施为递归神经网络的处理电路***112,但可明白,本文中所描述的处理电路***112可基于经编码数据估计消息概率计算数据,例如如在任何递归神经网络中实施或执行MPC解码器的任何MPC功能性。在实例实施方案中,多个处理电路***112(例如,图2A到2C中所描绘的任何处理电路***112中的一或多者)经配置以接收使用与迭代解码相关联的编码技术的经编码数据且产生消息概率计算数据集(mp1,mp2,…mpL)的估计。有利地,消息概率计算数据集的估计等效于在通过与迭代解码器中的消息概率计算电路***相关联的反馈错误路径处理多次迭代(例如,k次迭代)之后的输出。因此,处理电路***112可促进对与特定编码技术相关联的经编码数据的解码,如同经编码数据被迭代地解码一样。
图3是根据本公开的实施例的设备300(例如,集成电路、存储器装置、存储器***、电子装置或***、智能电话、平板计算机、计算机、服务器、电器、车辆等)的示意说明。设备300通常可包含主机302及存储器***304。
主机302可为主机***,例如个人膝上型计算机、台式计算机、数码相机、移动电话或存储卡读卡器,以及各种其它类型的主机。主机302可包含数个存储器存取装置(例如,数个处理器)。主机302也可为存储器控制器,例如其中存储器***304是存储器装置(例如,具有裸片上控制器的存储器装置)。
存储器***304可为固态驱动器(SSD)或其它类型的存储器,且可包含主机接口306、控制器308(例如,处理器及/或其它控制电路***)及数个存储器装置316。存储器***304、控制器308及/或存储器装置316也可单独地被视为“设备”。存储器装置316可包含可为存储器***304提供存储卷的数个固态存储器装置,例如NAND快闪装置。也可使用其它类型的存储器。
控制器308可经由多个通道耦合到主机接口306及存储器装置316以在存储器***304与主机302之间传送数据。接口306可为呈标准化接口的形式。例如,当存储器***304被用于设备300中的数据存储时,接口306可为串行高级技术附件(SATA)、***组件互连快速(PCIe)或通用串行总线(USB),以及其它连接器及接口。一般来说,接口306提供用于在存储器***304与具有用于接口306的兼容接受器的主机302之间传递控制、地址、数据及其它信号的接口。
控制器308可与存储器装置316(其在一些实施例中可包含单个裸片上的数个存储器阵列)通信以控制数据读取、写入及擦除操作,以及其它操作。控制器308可包含用于将控制器308耦合到存储器装置316的每一通道(图3中未展示)的离散存储器通道控制器。控制器308可包含呈硬件及/或固件(例如,一或多个集成电路)及/或软件的形式的用于控制对存储器装置316的存取及/或用于促进主机302与存储器装置316之间的数据传送的数个组件。
控制器308可包含用于使用一或多种编码技术对写入到存储器装置316的数据位进行编码的ECC编码器310。ECC编码器310可包含单奇偶校验(SPC)编码器及/或代数错误校正电路,例如包含博斯-乔杜里-霍克恩海姆(BCH)ECC编码器及/或里德-索罗门ECC编码器的群组中的一者,以及其它类型的错误校正电路。控制器308可进一步包含用于对经编码数据进行解码的ECC解码器312,其可包含识别错误单元、将错误单元转换为擦除及/或校正擦除。存储器装置316可例如包含可从存储器装置316的存储器单元读取选定数据的一或多个输出缓冲器。所述输出缓冲器可提供输出数据,所述输出数据可作为编经码输入数据提供到ECC解码器312。在各种实施例中,ECC解码器312可能够针对ECC编码器310中的每一类型的编码器对数据进行解码。ECC解码器312可为MPC解码器,例如MPC解码器30或MPC解码器50。因此,ECC解码器312可包含作为MPC解码器50的NN MPC 52来操作的神经网络MPC 314。
例如,图1E的神经网络150及/或图1F的神经网络170(例如,如由图2A到2C的一或多个处理单元实施)可被用来实施图3的神经网络MPC 314。例如,图2A、2B或2C的存储器145可存储特定于与可由ECC编码器310编码的一或多种类型的经编码数据相关联的各种迭代解码技术的多个系数。因此,神经网络150或递归神经网络170的硬件实施方案可被用作神经网络消息概率计算电路***以基于由ECC编码器310使用可用于ECC编码器的多种编码技术中的任一者编码的输入数据估计消息概率计算数据。也可为RNN MPC的NN MPC 314可估计消息概率计算数据,以促进提供来自ECC解码器312的经解码数据。在所述实例中,来自NNMPC 314的输出是代表经编码数据的消息概率计算数据,如同经编码数据例如由具有反馈错误路径的MPC解码器迭代地解码一样。
ECC编码器310及ECC解码器312可各自使用离散组件(例如专用集成电路(ASIC)或其它电路***)来实施,或者所述组件可反映由控制器308内的电路***提供的功能性,所述电路***不一定具有与控制器308的其它部分分离的离散物理形式。尽管在图3中被说明为控制器308内的组件,但ECC编码器310及ECC解码器312中的每一者可在控制器308的外部或具有位于控制器308内的数个组件及位于控制器308外部的数个组件。
存储器装置316可包含数个存储器单元阵列(例如,非易失性存储器单元)。例如,所述阵列可为具有NAND架构的快闪阵列。然而,实施例不限于特定类型的存储器阵列或阵列架构。可使用NAND架构中的浮栅型快闪存储器单元,但实施例不限于此。所述单元可为多电平单元(MLC),例如每单元存储三个数据位的三电平单元(TLC)。例如,存储器单元可被分组成包含数个物理页面的数个块。数个块可被包含在存储器单元平面中且阵列可包含数个平面。作为一个实例,存储器装置可经配置以每页面存储8KB(千字节)的用户数据,每块存储128个页面的用户数据,每平面存储2048个块,且每装置存储16个平面。
根据数个实施例,控制器308可控制根据ECC编码器310对数个经接收数据位的编码,其允许稍后识别错误位且将那些错误位转换为擦除。控制器308还可控制将数个经编码的经接收数据位编程到存储器装置316中的存储器单元群组。
图3中所展示的设备可在采用处理器及存储器的多种产品中的任一者(包含例如照相机、电话、无线装置、显示器、芯片组、机顶盒、游戏***、车辆及电器)中实施。采用存储器***的所得装置可受益于本文中所描述的神经网络的实例来执行它们最终的用户功能。
从前文将明白,尽管本文中出于说明的目的而描述特定实施例,但可进行各种修改,同时仍保持在所要求技术的范围内。本文中阐述某些细节以提供对所描述技术实施例的理解。然而,可在没有多种这些特定细节的情况下实践其它实例。在一些例子中,未详细地展示众所周知的电路、控制信号、时序协议、神经网络结构、算法及/或软件操作以便避免不必要地模糊所描述实施例。在不脱离本文所呈现的主题的精神或范围的情况下,可利用其它实施例,且可进行其它改变。
图4是根据本文中所描述的实例的方法400的流程图。实例方法400可使用例如图1D中的***100、图1E的神经网络150、图1F的神经网络170(例如,由图2A到2C的一或多个处理单元实施)及/或图3的ECC解码器312中的NN MPC 314、或前述附图中所描述的任何***或***组合来实施。在一些实例中,实例方法400中的框可由例如图1C的电子装置110的计算装置及/或结合例如图2A、2B或2C的处理电路***112的处理单元来执行。框402到412中所描述的操作也可作为计算机可执行指令存储在计算机可读媒体105中,所述计算机可读媒体105存储用于使神经网络例如基于经编码数据估计消息概率计算数据的可执行指令115。
实例方法400可从框402开始,所述框402起始执行将经编码输入数据与系数数据混合的例程。所述方法可包含框404,所述框404叙述“对于迭代解码技术接收经编码数据”。在设备300的背景下,可从存储器装置316获得经编码数据,如关于图3所描述。如本文中所描述,处理单元可经配置以获得可利用各种编码技术编码的多种类型的输入数据,例如已利用低密度奇偶校验编码(LDPC)、里德-索罗门编码、博斯-乔杜里-霍克恩海姆(BCH)及/或极性编码编码的数据。各种编码技术可利用迭代解码以例如使用MPC解码器30对经编码数据进行解码。因此,MPC解码器50可经实施用于对经编码数据进行解码,如同经编码数据被迭代地解码一样。因此,神经网络MPC可经实施以促进对经编码数据的解码。
框404之后可为框406,所述框406叙述“从存储器检索多个系数,所述多个系数特定于与经编码数据相关的迭代解码技术”。如本文中所描述,处理单元可检索用于与编码输入数据混合的系数;例如,利用存储器查找单元(MLU)。例如,存储器可(例如,在数据库中)存储多个系数与本文中所描述的可利用迭代解码的各种编码技术之间的关联。例如,处理单元可从实施计算装置的存储器部分、从外部计算装置的存储器部分或从云计算装置中实施的存储器选择系数。进而,可根据处理单元的请求从存储器检索多个系数。
框406之后可为框408,所述框408叙述“在乘法/累加处理单元(MAC单元)的第一层处,将经编码数据与多个系数中的某些混合以产生第一处理结果”。如本文中所描述,处理单元利用多个系数中的某些使得将此类系数与经编码输入数据混合会产生反映由图2A、2B或2C的电路***利用系数对输入数据的处理的输出数据。在递归神经网络(例如,递归神经网络170)的一些实施方案中,MAC单元的第一层的相应输出的延迟版本与经编码输入数据经混合以产生输出数据,例如,消息概率计算数据的估计。例如,集成电路中的各种ALU可经配置以作为图2A、2B或2C的电路***来操作,由此将输入数据及MAC单元的第一层的相应输出的延迟版本与本文中所描述的系数混合。例如,参考图2A,在乘法/累加处理单元(MAC单元)的第一层处,可利用多个系数计算输入数据及MAC单元的第一层的相应输出的延迟版本以产生第一处理结果。在一些实例中,各种硬件平台可实施图2A、2B或2C的电路***,例如ASIC、实施为FPGA的部分的DSP或芯片上***。
框408之后可为框410,所述框410叙述“在MAC单元的额外层处,将第一处理结果与多个系数中的其它者混合以产生第二处理结果”。如本文中所描述,处理单元利用多个额外系数使得将其它系数与某些处理结果混合会产生反映由图2A、2B或2C的电路***利用系数对输入数据的处理的输出数据。在递归神经网络(例如,递归神经网络170)的一些实施方案中,第一处理结果与第一处理结果的至少一部分的延迟版本经混合以产生输出数据(例如,经解码数据的估计)。例如,参考图2A,在乘法/累加处理单元(MAC单元)的第二层处,可利用多个额外系数计算第一层的处理结果(例如,乘法处理结果)及那些处理结果的至少一部分的延迟版本以产生第二处理结果。第二层的处理结果可利用多个额外系数来计算以产生输出数据B(1)230。
框410之后可为框412,所述框412叙述“估计代表经编码数据的消息概率计算数据,如同经编码数据被迭代地解码一样,使得消息概率计算数据是被迭代地解码的经编码数据的估计”。如本文中所描述,神经网络150或递归神经网络170提供输出数据作为表示处理数据、对应于已通过消息概率计算数据在迭代解码器中迭代地处理的经编码输入数据(例如,N个经编码输入位)的输出位。因此,经估计消息概率计算数据代表等效于在一定数目的k次迭代之后迭代解码器中的消息概率计算电路***的输出的经编码数据。因此,本文中所描述的神经网络将经编码输入数据变换为消息概率计算数据的估计,如同经编码数据被迭代地解码一样。框412之后可为框414,所述框414结束实例方法400。在一些实例中,框410可为任选框。
图5是根据本文中所描述的实例布置的方法500的流程图。实例方法500可使用例如图1D中的***100、图1E的神经网络150、图1F的神经网络170(例如,由图2A到2C的一或多个处理单元实施)及/或图3的ECC解码器312中的NN MPC 314、或前述附图中所描述的任何***或***组合来实施。例如,NN MPC 52或NN MPC 314可使用方法500来训练。在一些实例中,实例方法500中的框可由例如图1D的电子装置110的计算装置及/或结合例如图2A、2B或2C的处理电路***112的处理单元来执行。框502到512中所描述的操作也可作为计算机可执行指令存储在计算机可读媒体105中,所述计算机可读媒体105存储用以训练神经网络基于经编码数据估计消息概率计算数据的可执行指令。另外,在其它实例中可使用额外、更少及/或不同框,且在其它实例中所述框的次序可不同。
实例方法500可从框502开始,所述框502起始执行计算装置训练例程。所述方法可包含框504,所述框504叙述“对于迭代解码技术接收已知的经编码数据”。已知的经编码数据及已知的经解码数据可由计算装置(例如,电子装置110)来接收,所述计算装置包含神经网络,例如图1E的神经网络150、图1F的神经网络170(例如,由图2A到2C的一或多个处理单元实施)及/或图3的ECC解码器312。指示已知数据(例如,一组数据对)的信令可被提供到计算装置。在所述实例中,已知的经编码数据例如由ECC编码器310根据编码技术来编码。继续所述实例,可从计算装置300的存储器(例如,存储器316)检索利用特定编码技术编码的数据(例如,指示数据的信令)。多种编码技术中的任一者已被用来对数据进行编码。已知的经编码数据可包含已知的消息概率计算数据。
框506可跟随框504。框506叙述“使用已知的经编码数据迭代地计算消息概率计算数据”。在图1C的背景下的实例中,NN MPC 52可使用已知的经编码数据迭代地计算消息概率计算数据,直到NN MPC 52的输出代表指示已知的经解码数据的消息概率计算数据为止。例如,输出62的目标可为已知的经解码数据。因此,NN MPC 52可计算或训练消息概率计算数据,直到由NN MPC 52输出的估计指示经解码数据为止。为了确定迭代计算的输出是否为消息概率计算数据的估计,NN MPC 52可在MPC解码器50的背景下操作,所述MPC解码器50包含DMB电路***56。因此,在DMB电路***56处,将对于根据编码技术的已知的经编码数据产生的消息概率计算数据与预定阈值进行比较以产生经解码数据。基于所述比较,DMB电路***56可提供输出作为经解码数据以基于已知的经解码数据与奇偶校验矩阵进行比较。在各种实施方案中,在训练例程期间,可迭代地重复接下来描述的框506到510,直到由DMB电路***56作为经解码数据来提供的输出数据被确定为已知的经解码数据为止。
框508可跟随框506。框508叙述“提供经解码数据以部分地基于消息概率计算数据与奇偶校验矩阵进行比较”。在由DMB电路***56处理消息概率计算数据之后,将输出提供到PMC电路***58,其中将经解码数据与奇偶校验矩阵进行比较以验证经解码数据指示利用编码技术编码的数据,如同经编码数据被迭代地解码一样。因此,训练方法500可包含使用PMC电路***58来将经解码数据与奇偶校验矩阵进行比较。一旦被验证,就可作为训练例程的部分由MPC解码器50提供经解码数据作为经解码数据以与已知的经解码数据进行比较。
框510可跟随框508。框510叙述“对于神经网络,基于迭代计算的消息概率计算数据确定一组权重”。例如,可使用在框504中接收的已知的经编码数据及已知的经解码数据训练神经网络,例如NN MPC 52或NN MPC 314。来自MPC解码器50的经验证的经解码数据可与在框504中接收的已知的经解码数据进行比较。基于所述比较,用来使用神经网络估计消息概率计算数据的权重可被评估为所述一组权重。在一些实施方案中,已知的经解码数据可包含可与来自框506的DMB电路***56的估计消息概率计算数据进行比较的已知的消息概率计算数据。因此,基于所述比较,用来使用神经网络估计消息概率计算数据的权重可被评估为所述一组权重。
所述权重可为数值,其在由神经网络使用时允许神经网络基于利用编码技术编码的经编码输入数据估计消息概率计算数据。所述权重可存储在例如图1D的权重存储器118或者图2A、2B或2C的存储器145中。在一些实例中,可不执行训练,且可例如基于另一神经网络的训练简单地将一组初始权重提供到神经网络。
在一些实例中,(例如,在框504中)可接收多组数据对,其中每一组对应于利用不同编码技术编码的数据。因此,(例如,在框504中)可确定多组权重,每一组对应于不同编码技术。例如,可确定可被用来对根据LDPC编码编码的数据进行解码的一组权重,同时可确定可被用来对利用BCH编码进行编码的数据进行解码的另一组权重。
框512可跟随框510。框512叙述“将所述一组权重存储在存储器中”。在一些实例中,可选择与用来对框510中接收的数据进行编码的特定编码技术相关联的一组权重。所述一组权重可存储在存储器(例如,图1D的存储器118)中以用于从多组可用权重当中进行选择,每一组权重用于基于利用不同编码计数编码的数据估计消息概率计算数据。
在一些实例中,可对于采用不同编码技术编码的数据重复框504到512。例如,可在框504中接收利用一种特定编码技术(例如,LDPC编码)编码的数据。可选择与LDPC编码一起使用的一组权重且可将其提供到神经网络以用于在框510中确定权重。接着,在框504中,可接收利用不同编码技术(例如,BCH编码)编码的数据。可选择与BCH编码一起使用的另一组权重且可将其提供到神经网络以用于在框510中确定权重。以这种方式,可训练一个神经网络来基于利用多种编码技术编码的数据估计消息概率计算数据。
所描述实例方法400及500中包含的框是用于说明目的。在一些实施例中,所述框可以不同次序执行。在一些其它实施例中,可消除各种框。在又其它实施例中,各种框可被划分成额外框,用其它框补充,或一起组合成更少框。考虑这些特定框的其它变动,包含框的次序的改变、被拆分或组合成其它框的框的内容的改变等。
本文中所描述的实例可将各种组件称为“耦合”或将信号称为“提供到某些组件”或“从某些组件接收”。应理解,在一些实例中,所述组件彼此直接耦合,而在其它实例中,所述组件与安置在它们之间的中间组件耦合。类似地,信号可直接被提供到所述组件及/或直接从所述组件接收,而不需要中间组件,但也可通过中介组件被提供到某些组件及/或从某些组件接收。
上文阐述某些细节以提供对所描述实例的充分理解。然而,对于所属领域的技术人员来说将显而易见的是,可在没有多种这些特定细节的情况下实施所述实例。本文中结合附图的描述描述实例配置,且不表示可实施的或在权利要求书的范围内的所有实例。如本文中可使用的术语“实例性”及“实例”表示“用作实例、例子或说明”,而不是“优选的”或“优于其它实例”。出于提供对所描述技术的理解的目的,所述详细描述包含特定细节。然而,这些技术可在没有这些特定细节的情况下实践。在一些例子中,以框图形式展示众所周知的结构及装置以便避免混淆所描述实例的概念。
本文中所描述的信息及信号可使用多种不同技术及技巧中的任一者来表示。例如,可能贯穿上述描述引用的数据、指令、命令、信息、信号、位、符号及芯片可由电压、电流、电磁波、磁场或磁性粒子、光场或光学粒子或者其任何组合来表示。
结合本公开所描述的各种说明性块及模块可利用经设计以执行本文中所描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合来实施或执行。通用处理器可为微处理器,但在替代方案中,所述处理器可为任何常规处理器、控制器、微控制器或状态机。处理器也可被实施为计算装置的组合(例如,DSP与微处理器的组合、多个微处理器、一或多个微处理器结合DSP核或任何其它此类配置)。
本文中所描述功能可在硬件、由处理器执行的软件、固件或其任何组合中实施。如果在由处理器执行的软件中实施,那么所述功能可作为计算机可读媒体上的一或多个指令或代码来存储或传输。计算机可读媒体包含非暂时性计算机存储媒体及通信媒体两者,所述通信媒体包含促进计算机程序从一个地方传送到另一地方的任何媒体。非暂时性存储媒体可为可由通用或专用计算机存取的任何可用媒体。通过实例而非限制,非暂时性计算机可读媒体可包括RAM、ROM、电可擦除可编程只读存储器(EEPROM)或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用来以指令或数据结构形式携带或存储所期望程序代码且可由通用或专用计算机或通用或专用处理器存取的任何其它非暂时性媒体。
而且,任何连接适当地被称为计算机可读媒体。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或无线技术(例如红外线、无线电及微波)从网站、服务器或其它远程源传输软件,那么媒体的定义中包含同轴电缆、光纤电缆、双绞线、DSL或无线技术(例如红外线、无线电及微波)。上述内容的组合也包含在计算机可读媒体的范围内。
其它实例及实施方案在本公开及所附权利要求书的范围内。例如,由于软件的性质,上文所描述的功能可使用由处理器执行的软件、硬件、固件、硬连线或任何这些的组合来实施。实施特定的特征也可在物理上位于各种位置处,包含经分布使得功能的部分在不同物理位置处实施。
而且,如本文中(包含在权利要求书中)所使用,如项目列表(例如,以例如“…中的至少一者”或“…中的一或多者”的短语开始的项目列表)中使用的“或”指示包含性列表,使得例如A、B或C中的至少一者的列表表示A或B或C或AB或AC或BC或ABC(即,A且B且C)。而且,如本文中所使用,短语“基于”不应被解释为对条件闭集的引用。例如,在不脱离本公开的范围的情况下,描述为“基于条件A”的示范性步骤可基于条件A及条件B两者。换句话说,如本文中所使用,短语“基于”应以与短语“至少部分地基于”相同的方式来解释。
从前文将明白,尽管本文中出于说明的目的而描述特定实例,但可进行各种修改,同时仍保持在所主张技术的范围内。提供本文中的描述以使所属领域的技术人员能够制成或使用本公开。对本公开的各种修改对于所属领域的技术人员来说将是显而易见的,且在不脱离本公开的范围的情况下,本文中所定义的通用原理可应用于其它变型。因此,本公开不限于本文中所描述的实例及设计,而是应符合与本文中所公开的原理及新颖特征一致的最广范围。
Claims (21)
1.一种设备,其包括:
神经网络,其经配置以接收使用与迭代解码相关联的编码技术的经编码数据,其中所述神经网络进一步经配置以基于所述经编码数据估计消息概率计算数据;
第一电路***,其耦合到所述神经网络且经配置以接收所述消息概率计算数据,其中所述第一电路***进一步经配置以将所述消息概率计算数据与和所述迭代解码相关联的预定阈值进行比较以产生经解码数据;及
第二电路***,其经配置以将所述经解码数据与奇偶校验矩阵进行比较。
2.根据权利要求1所述的设备,其中所述消息概率计算数据等效于在通过与迭代解码器中的消息概率计算电路***相关联的反馈错误路径处理多次迭代之后的输出。
3.根据权利要求1所述的设备,其中所述消息概率计算数据代表所述经编码数据,如同所述经编码数据被迭代地解码一样。
4.根据权利要求1所述的设备,其中所述神经网络包括:
第一级,其经配置以接收所述经编码数据,以将所述经编码数据与第一组预定权重组合,且使用所述经编码数据的组合及所述经编码数据的所述组合的延迟版本评估至少一个非线性函数以提供中间数据;及
至少第二级,其经配置以接收所述中间数据且使用第二组预定权重组合所述中间数据以产生所述消息概率计算数据,
其中所述第一及第二组预定权重根据所述迭代解码技术来训练。
5.根据权利要求4所述的设备,其中所述第一及第二组预定权重是基于关于经编码数据及所述经编码数据的组合的延迟版本对神经网络的训练,所述神经网络经训练以产生所述经编码数据的某些消息概率计算数据。
6.根据权利要求4所述的设备,其进一步包括计算机可读媒体,所述计算机可读媒体经编码有用以基于与所述迭代解码相关联的所述编码技术为所述神经网络选择所述第一及第二组预定权重的可执行指令。
7.根据权利要求4所述的设备,其中电路***的所述第一级包括第一多个乘法/累加单元,所述第一多个乘法/累加单元各自经配置以将所述经编码数据的至少一个位与所述第一组预定权重中的至少一者相乘且对所述经编码数据的多个加权位求和。
8.根据权利要求7所述的设备,其中电路***的所述第一级进一步包括第一多个存储器查找单元(MLU),所述第一多个MLU各自经配置以基于所述至少一个非线性函数检索对应于所述第一多个乘法/累加单元中的相应者的输出的至少一个中间数据值。
9.根据权利要求7所述的设备,其中电路***的所述第一级进一步包括多个延迟单元,所述多个延迟单元经配置以基于由所述第一多个MLU提供的所述至少一个中间数据值提供所述经编码数据的所述组合的所述延迟版本。
10.一种方法,其包括:
在包括神经网络的计算装置处接收经编码数据及经解码数据,其中所述经编码数据根据编码技术来编码;
使用所述经编码数据计算消息概率计算数据,直到所述神经网络的输出代表指示所述经解码数据的消息概率计算数据为止;
对于根据所述编码技术的所述经编码数据,将所述消息概率计算数据与预定阈值进行比较以产生所述经解码数据;
基于所述比较,提供所述经解码数据以基于所述经解码数据与奇偶校验矩阵进行比较;及
对于所述神经网络,基于所述经计算消息概率计算数据确定一组权重。
11.根据权利要求10所述的方法,其进一步包括:
从所述计算装置的存储器接收根据所述编码技术编码的数据;及
使用所述神经网络及所述一组权重对于根据所述编码技术编码的所述数据估计消息概率计算数据。
12.根据权利要求10所述的方法,其进一步包括:
将所述经解码数据与所述奇偶校验矩阵进行比较以验证所述经解码数据指示根据所述编码技术编码的经编码数据,如同所述经编码数据被迭代地解码一样;及
将所述经解码数据写入到所述计算装置的存储器或存储媒体或者从所述计算装置的存储器或存储媒体读取所述经解码数据。
13.根据权利要求10所述的方法,其中所述编码技术包括里德-索罗门编码、博斯-乔杜里-霍克恩海姆(BCH)编码、低密度奇偶校验(LDPC)编码、极性编码或其组合。
14.根据权利要求10所述的方法,其中确定所述一组权重包括选择得到所述神经网络的所述输出与所述经解码数据之间的错误函数的最小值的权重。
15.根据权利要求10所述的方法,其中确定所述一组权重包括使用k均值聚类技术来确定所述神经网络的中心向量。
16.一种方法,其包括:
将在处理单元处接收的针对迭代解码技术的经编码数据与多个系数混合,所述多个系数特定于与所述经编码数据相关联的所述迭代解码技术,其中混合所述经编码数据包括:
在多个乘法/累加处理单元(MAC单元)中的MAC单元的第一层处,将所述经编码数据及MAC单元的所述第一层的相应输出的延迟版本与所述多个系数中的某些混合以产生第一处理结果;
在所述多个MAC单元中的MAC单元的额外层处,将所述第一处理结果及所述第一处理结果的至少一部分的延迟版本与所述多个系数中的其它者混合以产生第二处理结果;及
部分地基于所述第二处理结果估计消息概率数据,所述消息概率数据代表所述经编码数据,如同所述经编码数据被迭代地解码一样,使得所述消息概率数据是被迭代地解码的所述经编码数据的估计。
17.根据权利要求16所述的方法,其中使用所述多个系数混合在所述处理单元处接收的所述经编码数据进一步包括:
在与MAC单元的所述第一层相关联的相应延迟单元处,延迟MAC单元的所述第一层的所述相应输出以产生MAC单元的所述第一层的所述相应输出的所述延迟版本。
18.根据权利要求16所述的方法,其中在所述多个MAC单元中的MAC单元的所述第一层处,将所述经编码数据及MAC单元的所述第一层的所述相应输出的所述延迟版本与所述多个系数中的所述某些混合包括:
将所述经编码数据及MAC单元的所述第一层的所述相应输出的所述延迟版本与所述多个系数中的所述某些的相应系数相乘以产生所述第一处理结果。
19.根据权利要求16所述的方法,其进一步包括:
在所述处理单元处,从耦合到所述处理单元的存储器获得经编码数据,包含来自移动通信装置的触摸屏的对于所述经编码数据利用某种编码技术的指示。
20.根据权利要求16所述的方法,其中所述某种编码技术包括里德-索罗门编码、博斯-乔杜里-霍克恩海姆(BCH)编码、低密度奇偶校验(LDPC)编码、极性编码或其组合。
21.根据权利要求16所述的方法,其中在所述多个MAC单元的所述第一层处,将所述经编码数据及MAC单元的所述第一层的相应输出的延迟版本与所述多个系数中的所述某些混合以产生所述第一处理结果包括:
从多个存储器查找单元(MLU)中的MLU的第一层检索多个系数中的某些以用于与所述经编码数据及MAC单元的所述第一层的相应输出的延迟版本混合;及
由所述MLU的所述第一层将所述第一处理结果提供到所述多个MAC单元中的MAC单元的所述额外层中的至少一者。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/302,226 | 2021-04-27 | ||
US17/302,226 US11973513B2 (en) | 2021-04-27 | 2021-04-27 | Decoders and systems for decoding encoded data using neural networks |
PCT/US2022/026219 WO2022232066A1 (en) | 2021-04-27 | 2022-04-25 | Decoders and systems for decoding encoded data using neural networks |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117337432A true CN117337432A (zh) | 2024-01-02 |
Family
ID=83848668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280036226.XA Pending CN117337432A (zh) | 2021-04-27 | 2022-04-25 | 用于使用神经网络对经编码数据进行解码的解码器及*** |
Country Status (4)
Country | Link |
---|---|
US (1) | US11973513B2 (zh) |
EP (1) | EP4330822A1 (zh) |
CN (1) | CN117337432A (zh) |
WO (1) | WO2022232066A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220301297A1 (en) * | 2021-03-16 | 2022-09-22 | 9419-6979 Québec inc. | System, method and apparatus for obtaining sensitive and specific predictions from deep neural networks |
US11973513B2 (en) | 2021-04-27 | 2024-04-30 | Micron Technology, Inc. | Decoders and systems for decoding encoded data using neural networks |
US11755408B2 (en) | 2021-10-07 | 2023-09-12 | Micron Technology, Inc. | Systems for estimating bit error rate (BER) of encoded data using neural networks |
US11991132B2 (en) * | 2022-03-18 | 2024-05-21 | Qualcomm Incorporated | Message embedding and emulation in entropy encoder-decoder networks |
Family Cites Families (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE60142582D1 (de) | 2000-10-13 | 2010-08-26 | Fraunhofer Ges Forschung | Verfahren zum überwachten trainieren eines iterativen künstlichen neuronalen netzwerks |
US20050228845A1 (en) | 2004-04-12 | 2005-10-13 | Mathstar, Inc. | Shift and recode multiplier |
US8301963B2 (en) * | 2007-10-23 | 2012-10-30 | Spansion Llc | Low-density parity-check code based error correction for memory device |
WO2010098833A1 (en) | 2009-02-25 | 2010-09-02 | George Myer Company, Inc. | Improved end connector for high pressure reinforced rubber hose |
US8392789B2 (en) | 2009-07-28 | 2013-03-05 | Texas Instruments Incorporated | Method and system for decoding low density parity check codes |
EP3104564B1 (en) | 2015-06-12 | 2020-05-06 | Institut Mines-Télécom | Anticipated termination for sequential decoders |
WO2017036370A1 (en) | 2015-09-03 | 2017-03-09 | Mediatek Inc. | Method and apparatus of neural network based processing in video coding |
US9742593B2 (en) | 2015-12-16 | 2017-08-22 | Kumu Networks, Inc. | Systems and methods for adaptively-tuned digital self-interference cancellation |
US10891540B2 (en) | 2015-12-18 | 2021-01-12 | National Technology & Engineering Solutions Of Sandia, Llc | Adaptive neural network management system |
WO2017136070A1 (en) | 2016-02-03 | 2017-08-10 | Google Inc. | Compressed recurrent neural network models |
US10210862B1 (en) | 2016-03-21 | 2019-02-19 | Amazon Technologies, Inc. | Lattice decoding and result confirmation using recurrent neural networks |
WO2018016051A1 (ja) | 2016-07-21 | 2018-01-25 | 日産ライトトラック株式会社 | 車両のフレーム |
US10698657B2 (en) | 2016-08-12 | 2020-06-30 | Xilinx, Inc. | Hardware accelerator for compressed RNN on FPGA |
US10552738B2 (en) | 2016-12-15 | 2020-02-04 | Google Llc | Adaptive channel coding using machine-learned models |
US10409614B2 (en) | 2017-04-24 | 2019-09-10 | Intel Corporation | Instructions having support for floating point and integer data types in the same register |
JP6758524B2 (ja) | 2017-05-03 | 2020-09-23 | ヴァージニア テック インテレクチュアル プロパティーズ,インコーポレーテッド | 適応的無線通信の学習とデプロイメント |
US20180336469A1 (en) | 2017-05-18 | 2018-11-22 | Qualcomm Incorporated | Sigma-delta position derivative networks |
US10491243B2 (en) * | 2017-05-26 | 2019-11-26 | SK Hynix Inc. | Deep learning for low-density parity-check (LDPC) decoding |
US20180357530A1 (en) * | 2017-06-13 | 2018-12-13 | Ramot At Tel-Aviv University Ltd. | Deep learning decoding of error correcting codes |
JP7210568B2 (ja) | 2017-10-13 | 2023-01-23 | フラウンホーファー-ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン | ブロック単位の画像符号化のためのイントラ予測モード概念 |
US10810115B2 (en) | 2017-12-21 | 2020-10-20 | Verizon Patent And Licensing Inc. | Systems and methods using artificial intelligence to identify, test, and verify system modifications |
US20190197549A1 (en) | 2017-12-21 | 2019-06-27 | Paypal, Inc. | Robust features generation architecture for fraud modeling |
CN110737758B (zh) | 2018-07-03 | 2022-07-05 | 百度在线网络技术(北京)有限公司 | 用于生成模型的方法和装置 |
KR20200004195A (ko) | 2018-07-03 | 2020-01-13 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이의 동작 방법 |
GB2576500A (en) | 2018-08-15 | 2020-02-26 | Imperial College Sci Tech & Medicine | Joint source channel coding based on channel capacity using neural networks |
GB2576499A (en) | 2018-08-15 | 2020-02-26 | Imperial College Sci Tech & Medicine | Joint source channel coding for noisy channels using neural networks |
US11403511B2 (en) | 2018-08-23 | 2022-08-02 | Apple Inc. | Unsupervised annotation using dual network system with pre-defined structure |
US10812449B1 (en) | 2018-09-19 | 2020-10-20 | Verisign | Method for generating a domain name using a learned information-rich latent space |
KR20200059703A (ko) | 2018-11-21 | 2020-05-29 | 삼성전자주식회사 | 음성 인식 방법 및 음성 인식 장치 |
WO2020131868A1 (en) | 2018-12-17 | 2020-06-25 | Spin Memory, Inc. | System and method for training artificial neural networks |
US11599773B2 (en) | 2018-12-27 | 2023-03-07 | Micron Technology, Inc. | Neural networks and systems for decoding encoded data |
KR102273153B1 (ko) | 2019-04-24 | 2021-07-05 | 경희대학교 산학협력단 | 우선순위 기반의 ecc에 기초하여 데이터를 근사적 메모리 장치에 저장하는 메모리 컨트롤러, 프로그램 코드를 저장하는 비일시적 컴퓨터 판독 가능한 매체, 그리고 근사적 메모리 장치와 메모리 컨트롤러를 포함하는 전자 장치 |
US11194886B2 (en) | 2019-05-09 | 2021-12-07 | Applied Materials, Inc. | Bit-ordered binary-weighted multiplier-accumulator |
US10861562B1 (en) | 2019-06-24 | 2020-12-08 | SK Hynix Inc. | Deep learning based regression framework for read thresholds in a NAND flash memory |
US11385864B2 (en) | 2019-07-02 | 2022-07-12 | Facebook Technologies, Llc | Counter based multiply-and-accumulate circuit for neural network |
US11088712B2 (en) | 2019-11-05 | 2021-08-10 | Western Digital Technologies, Inc. | Iterative decoder performance prediction using machine learning |
US11424764B2 (en) | 2019-11-13 | 2022-08-23 | Micron Technology, Inc. | Recurrent neural networks and systems for decoding encoded data |
US10924152B1 (en) | 2019-11-13 | 2021-02-16 | Micron Technology, Inc. | Mixing coefficient data for processing mode selection |
US11936452B2 (en) | 2020-02-28 | 2024-03-19 | Qualcomm Incorporated | Neural network based channel state information feedback |
US20210287074A1 (en) | 2020-03-12 | 2021-09-16 | Semiconductor Components Industries, Llc | Neural network weight encoding |
US11507843B2 (en) | 2020-03-30 | 2022-11-22 | Western Digital Technologies, Inc. | Separate storage and control of static and dynamic neural network data within a non-volatile memory array |
KR20210131114A (ko) | 2020-04-23 | 2021-11-02 | 한국전자통신연구원 | 신경망 동기화에 기반한 비밀키 생성 방법 및 장치 |
US20220019900A1 (en) | 2020-07-15 | 2022-01-20 | Robert Bosch Gmbh | Method and system for learning perturbation sets in machine learning |
US11973513B2 (en) | 2021-04-27 | 2024-04-30 | Micron Technology, Inc. | Decoders and systems for decoding encoded data using neural networks |
US11563449B2 (en) | 2021-04-27 | 2023-01-24 | Micron Technology, Inc. | Systems for error reduction of encoded data using neural networks |
US11755408B2 (en) | 2021-10-07 | 2023-09-12 | Micron Technology, Inc. | Systems for estimating bit error rate (BER) of encoded data using neural networks |
-
2021
- 2021-04-27 US US17/302,226 patent/US11973513B2/en active Active
-
2022
- 2022-04-25 WO PCT/US2022/026219 patent/WO2022232066A1/en active Application Filing
- 2022-04-25 CN CN202280036226.XA patent/CN117337432A/zh active Pending
- 2022-04-25 EP EP22796512.6A patent/EP4330822A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220368349A1 (en) | 2022-11-17 |
EP4330822A1 (en) | 2024-03-06 |
US11973513B2 (en) | 2024-04-30 |
WO2022232066A1 (en) | 2022-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220399904A1 (en) | Recurrent neural networks and systems for decoding encoded data | |
US11599773B2 (en) | Neural networks and systems for decoding encoded data | |
CN117337432A (zh) | 用于使用神经网络对经编码数据进行解码的解码器及*** | |
CN113032178B (zh) | 存储器控制器及快闪存储器的存取方法 | |
US10491239B1 (en) | Large-scale computations using an adaptive numerical format | |
US11563449B2 (en) | Systems for error reduction of encoded data using neural networks | |
CN118056355A (zh) | 用于使用神经网络估计经编码数据的位错误率(ber)的*** | |
CN110301095B (zh) | 非二进制上下文混合压缩器/解压缩器 | |
CN112236782A (zh) | 通信***中的端到端学习 | |
US20160335156A1 (en) | Asymmetric error correction and flash-memory rewriting using polar codes | |
CN109802688B (zh) | 一种多进制ldpc译码***和方法 | |
JP2022124682A (ja) | メモリシステム | |
CN110545162B (zh) | 基于码元可靠优势度节点子集划分准则的多元ldpc译码方法及装置 | |
KR102092634B1 (ko) | Ldpc 부호 복호기 및 복호 방법 | |
CN114765462A (zh) | 用于早期软解码的无辅助读取的基于机器学习的llr生成 | |
CN113805974A (zh) | 基于应用程序的数据类型选择 | |
CN113316791A (zh) | 通信***中的训练 | |
CN110708077B (zh) | Ldpc码大数逻辑译码方法、装置和译码器 | |
CN114065913A (zh) | 模型量化方法、装置及终端设备 | |
CN108566210B (zh) | 兼容IEEE 802.11n标准的LDPC编码***及方法、LDPC编码器 | |
CN116153367A (zh) | 存储器装置及其操作方法 | |
CN116648860A (zh) | 一种ldpc码的译码方法及ldpc码的译码器 | |
KR20130136866A (ko) | 간섭 채널 환경에서의 저밀도 패리티 검사를 이용한 오류 정정 방법 및 회로, 이를 이용한 플래시 메모리 장치 |
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 |