CN113055027A - 可变位宽的ldpc编码方法、编码器、ssd及存储介质 - Google Patents
可变位宽的ldpc编码方法、编码器、ssd及存储介质 Download PDFInfo
- Publication number
- CN113055027A CN113055027A CN202110292939.XA CN202110292939A CN113055027A CN 113055027 A CN113055027 A CN 113055027A CN 202110292939 A CN202110292939 A CN 202110292939A CN 113055027 A CN113055027 A CN 113055027A
- Authority
- CN
- China
- Prior art keywords
- matrix
- coding
- bit width
- clock cycle
- current clock
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- 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
- H03M13/1162—Array based LDPC codes, e.g. array codes
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请提供一种可变位宽的LDPC编码方法、编码器、SSD及计算机可读存储介质,所述可变位宽的LDPC编码方法包括:配置LDPC编码器的每个时钟周期的编码数据位宽;在每个时钟周期中,根据数据向量在当前时钟周期已传输的数据长度与当前时钟周期的编码数据位宽,读取编码矩阵在当前时钟周期的矩阵编码信息;根据所述编码矩阵在当前时钟周期的矩阵编码信息,进行当前时钟周期的LDPC编码。本申请实现了编码数据位宽可基于一定区间实时动态配置的LDPC编码器的硬件实现方案,满足基于当前系统架构对于写带宽和功耗的灵活需求,并有效解决现有LDPC编码器接口数据位宽不可变而引起的编码模块移植性差的问题。
Description
技术领域
本发明涉及固态存储领域,尤其涉及一种可变位宽的LDPC编码方法、编码器、SSD及计算机可读存储介质。
背景技术
LDPC(Low-Density Parity-Check Codes,低密度奇偶校验码)编码器是信道编解码中一个重要组成部分,其硬件设计方案往往取决于编码矩阵结构的约束。对于准循环校验矩阵来说,生成矩阵也一般为准循环阵。现有LDPC编码器的设计一般是基于架构及带宽需求,并且结合整体写路径通道配比确定LDPC编码器的编码数据位宽,采用编码数据位宽长度固定的设计方案。每一个时钟周期只能传入固定位宽长度的数据到LDPC编码器进行编码。
现有设计的数据处理流程固定,方案相对简单。但是当前由于Flash的各种数据编程特性约束,系统架构会对于写路径的带宽在不同应用场景下有不同的需求。因此该方案在写流程中不能满足带宽灵活性的要求,限制系统架构的设计及实现。由此,为了解决编码数据位宽不可变的限制而引起的LDPC编码器移植性差的问题,本发明提出一个新的编码设计方案,在不同产品工作状态下支持软件可配置编码数据位宽的设计方案,满足不同产品不同应用场景下的带宽和架构需求。
发明内容
本发明实施例中提供一种可变位宽的LDPC编码方法、编码器、SSD及计算机可读存储介质,用以至少实现LDPC编码器的编码数据位宽的动态调整。
第一方面,本发明提供一种可变位宽的低密度奇偶校验码LDPC编码方法,所述可变位宽的LDPC编码方法,包括:
配置LDPC编码器的每个时钟周期的编码数据位宽;
在每个时钟周期中,根据数据向量在当前时钟周期已传输的数据长度与当前时钟周期的编码数据位宽,读取编码矩阵在当前时钟周期的矩阵编码信息;
根据所述编码矩阵在当前时钟周期的矩阵编码信息,进行当前时钟周期的LDPC编码。
可选的,所述配置LDPC编码器的每个时钟周期的编码数据位宽,包括:
通过预设的位宽长度寄存器配置LDPC编码器的每个时钟周期的编码数据位宽。
可选的,所述通过预设的位宽长度寄存器配置LDPC编码器的每个时钟周期的编码数据位宽,包括:
通过所述位宽长度寄存器接收动态位宽调整指令;
通过所述动态位宽调整指令配置LDPC编码器的每个时钟周期的编码数据位宽。
可选的,所述根据数据向量在当前时钟周期已传输的数据长度与当前时钟周期的编码数据位宽,读取编码矩阵在当前时钟周期的矩阵编码信息,包括:
确定所述数据向量在当前时钟周期已传输的数据长度与当前时钟周期的编码数据位宽之间的数据长度和;
根据所述数据长度和从预设的存储矩阵中读取编码矩阵在当前时钟周期的矩阵编码信息。
可选的,所述根据所述数据长度和从预设的存储矩阵中读取编码矩阵在当前时钟周期的矩阵编码信息,包括:
判断所述数据长度和是否超越当前时钟周期内所述编码矩阵的单位阵已达到的位宽;
若未超越,继续从存储矩阵的当前存储器单元读取所述编码矩阵在当前时钟周期的矩阵编码信息;
若超越,从所述当前存储器单元的下一地址的存储器单元中读取所述编码矩阵在当前时钟周期的矩阵编码信息。
可选的,所述根据所述数据长度和从预设的存储矩阵中读取编码矩阵在当前时钟周期的矩阵编码信息之前,包括:
根据所述循环矩阵的单位阵的列数确定存储器单元的数量;
提取所述循环矩阵的每列单位阵中每行单位阵的首行矩阵向量;
对于每列单位阵,将提取的该列的各个单位阵中的首行矩阵向量存储在一存储器单元;其中每个存储器单元的地址顺序与每列单位阵的列的顺序一致,所述首行矩阵向量构成所述矩阵编码信息;
所有存储器单元构成所述存储矩阵。
可选的,所述单位阵为行循环矩阵;
所述根据所述编码矩阵在当前时钟周期的矩阵编码信息,进行当前时钟周期的LDPC编码,包括:
根据所述编码矩阵在当前时钟周期的矩阵编码信息和所述行循环矩阵的行循环规律,确定所述编码矩阵在当前时钟周期的单位阵的矩阵向量;
根据所述矩阵向量进行当前时钟周期的LDPC编码。
第二方面,本发明提供一种可变位宽的低密度奇偶校验码LDPC编码器,所述可变位宽的LDPC编码器包括:
控制接口模块,用于配置LDPC编码器的每个时钟周期的编码数据位宽;
矩阵读取接口模块,用于在每个时钟周期中,根据数据向量在当前时钟周期已传输的数据长度和当前时钟周期的编码数据位宽,读取编码矩阵在当前时钟周期的矩阵编码信息;
编码模块,用于根据所述编码矩阵在当前时钟周期的矩阵编码信息,进行当前时钟周期的LDPC编码。
第三方面,本发明提供一种固态硬盘SSD,所述固态硬盘SSD包括如上所述的可变位宽的LDPC编码器。
第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储有可变位宽的LDPC编码程序,所述可变位宽的LDPC编码程序被处理器执行时实现如上任一项所述的可变位宽的LDPC编码方法的步骤。
本发明各个实施例通过配置LDPC编码器的每个时钟周期的编码数据位宽;在每个时钟周期中,根据数据向量在当前时钟周期已传输的数据长度与当前时钟周期的编码数据位宽,读取编码矩阵在当前时钟周期的矩阵编码信息;根据所述编码矩阵在当前时钟周期的矩阵编码信息,进行当前时钟周期的LDPC编码,从而实现了编码数据位宽可基于一定区间实时动态配置的LDPC编码器的硬件实现方案,满足基于当前系统架构对于写带宽和功耗的灵活需求,并有效解决现有LDPC编码器接口数据位宽不可变而引起的编码模块移植性差的问题。
附图说明
图1是现有技术LDPC编码硬件实现数据接口的系统架构示意图;
图2是根据本发明实施例的可变位宽的LDPC编码方法的硬件实现数据接口的系统架构示意图;
图3是根据本发明实施例的可变位宽的LDPC编码方法的流程图;
图4是根据本发明实施例的编码矩阵的示意图;
图5是根据本发明实施例的单位阵的示意图;
图6是根据本发明实施例的存储矩阵的效果示意图;
图7是根据本发明实施例的可变位宽的LDPC编码方法的效果示意图;
图8是根据本发明实施例的可变位宽的LDPC编码器的框图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细描述,应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
实施例一
本发明实施例提供一种可变位宽的低密度奇偶校验码LDPC编码方法,如图1所示,所述可变位宽的LDPC编码方法,包括:
S101,配置LDPC编码器的每个时钟周期的编码数据位宽;
S102,在每个时钟周期中,根据数据向量在当前时钟周期已传输的数据长度与当前时钟周期的编码数据位宽,读取编码矩阵在当前时钟周期的矩阵编码信息;其中编码矩阵也可以称之为生成矩阵;
S103,根据所述编码矩阵在当前时钟周期的矩阵编码信息,进行当前时钟周期的LDPC编码。
如图1所示,当前业界LDPC编码器(即LDPC编码模块)的设计一般是基于架构及带宽需求,采用固定数据位宽的设计方案,即编码位宽长度固定。
如图2、图3所示,本发明实施例通过配置LDPC编码器的每个时钟周期的编码数据位宽,在每个时钟周期中,根据数据向量在当前时钟周期已传输的数据长度与当前时钟周期的编码数据位宽,读取编码矩阵在当前时钟周期的矩阵编码信息,然后根据所述编码矩阵在当前时钟周期的矩阵编码信息,进行当前时钟周期的LDPC编码,从而实现一种编码数据位宽可基于一定区间(带宽区间)实时动态配置的LDPC编码模块的硬件实现方案,满足基于当前系统架构对于写带宽和功耗的灵活需求,并有效解决现有LDPC编码模块接口数据位宽不可变而引起的编码模块移植性差的问题,提高了LDPC编码器的移植性;同时,本发明实施例的法数据处理流程固定,方案相对简单,还可以有效解决当前由于Flash的各种数据编程特性约束,系统架构会对于写路径的带宽在不同应用场景下有不同的需求,可以满足带宽灵活性的要求,便于系统架构的设计及实现。
在一些实施例中,为了支持SSD软件对LDPC编码器动态配置的带宽变化需求,来满足不同SSD(Solid State Drive,固态硬盘)应用场景下的对于功耗,带宽的平衡。在不同工作场景下,SSD软件可以根据当前SSD的工作负载,来控制带宽和功耗之间的平衡,能更灵活的匹配各种客户的需求,也就是说,所述配置LDPC编码器的每个时钟周期的编码数据位宽,还可以包括:
通过预设的位宽长度寄存器配置LDPC编码器的每个时钟周期的编码数据位宽。
可选的,所述通过预设的位宽长度寄存器配置LDPC编码器的每个时钟周期的编码数据位宽,包括:
通过所述位宽长度寄存器接收动态位宽调整指令;
通过所述动态位宽调整指令配置LDPC编码器的每个时钟周期的编码数据位宽。
例如,SSD软件通过动态位宽调整指令配置LDPC编码器的每个时钟周期的编码数据位宽。
在一些实施例中,所述根据数据向量在当前时钟周期已传输的数据长度与当前时钟周期的编码数据位宽,读取编码矩阵在当前时钟周期的矩阵编码信息,包括:
确定所述数据向量在当前时钟周期已传输的数据长度与当前时钟周期的编码数据位宽之间的数据长度和;
根据所述数据长度和从预设的存储矩阵中读取编码矩阵在当前时钟周期的矩阵编码信息。
具体的,存储矩阵可以由多个存储器单元构成,每个存储器单元用于存储矩阵编码信息。可变位宽的LDPC编码实现方案中,最大数据位宽参数可以为LDPC编码矩阵中单位阵的循环参数,例如212bit。在一些实施例中考虑到系统架构的最大带宽设计需求和硬件资源等因素,可变数据位宽可以为0-212bit区间。
一般LDPC编码过程是简单的数据向量和矩阵向量的相乘,得到一个校验向量。由于SSD应用的LDPC矩阵均为循环阵。因此编码矩阵也为基于循环参数的准循环矩阵,具体编码矩阵(即循环矩阵)G的结构如图4所示:
其中,每个BASE代表一个编码小方阵,以9X79的编码矩阵尺寸为例,矩阵每行有79个小方阵,每列有9个小方阵,上图矩阵中m=9,n=79。每个小方阵的尺寸为212X212(图中每一个BASE方块代表一个小方阵)。由循环矩阵的特性得到,具有如图5所示的行循环特性(即行循环规律):
单位阵为一类行循环矩阵,从第2行到第“循环参数”行由上一行的值右移得到。例如满足循环参数为212bit下,从第2行到212行均由上一行的值右移得到,例如图中第一行的每个单元节点为1,2,3,4,……,210,211,212;则第二行为212,1,2,3,4,……,210,211以此类推。
其中,所述根据所述数据长度和从预设的存储矩阵中读取编码矩阵在当前时钟周期的矩阵编码信息,可选的包括:
判断所述数据长度和是否超越当前时钟周期内所述编码矩阵的单位阵已达到的位宽;
若未超越,继续从存储矩阵的当前存储器单元读取所述编码矩阵在当前时钟周期的矩阵编码信息;
若超越,从所述当前存储器单元的下一地址的存储器单元中读取所述编码矩阵在当前时钟周期的矩阵编码信息。
进一步,所述根据所述数据长度和从预设的存储矩阵中读取编码矩阵在当前时钟周期的矩阵编码信息之前,可以包括:
根据所述循环矩阵的单位阵的列数确定存储器单元的数量;
提取所述循环矩阵的每列单位阵中每行单位阵的首行矩阵向量;
对于每列单位阵,将提取的该列的各个单位阵中的首行矩阵向量存储在一存储器单元;其中每个存储器单元的地址顺序与每列单位阵的列的顺序一致,所述首行矩阵向量构成所述矩阵编码信息;所有存储器单元构成所述存储矩阵。
其中,所述根据所述编码矩阵在当前时钟周期的矩阵编码信息,进行当前时钟周期的LDPC编码,可选的包括:
根据所述编码矩阵在当前时钟周期的矩阵编码信息和所述行循环矩阵的行循环规律,确定所述编码矩阵在当前时钟周期的单位阵的矩阵向量;
根据所述矩阵向量进行当前时钟周期的LDPC编码。
详细的,LDPC编码算法的本质是任何一个输入向量和编码矩阵相乘,得到一个校验向量。例如,数据向量S的长度为79x212bit的,得到的校验向量P长度为9x212bit,编码矩阵G为(9x212)X(79x212)的准循环矩阵,T表示矩阵转置。因此LDPC编码过程由矩阵相乘公式可表示为:
s*GT=p
编码矩阵中的每列单位阵的每行单位阵的首行矩阵向量将被存储到存储器单元中,例如存储到硬件RAM中。存储矩阵的RAM中的数据结构如图6所示:每个RAM地址存储9x212bit矩阵编码信息,每列单位阵有9个(行)单位阵的首行矩阵向量信息,整个编码矩阵需要占据79个RAM地址。
由于编码矩阵的循环阵特性,单位阵中的其他每一列的矩阵数据可根据存到RAM中的第一列信息移位得到。因此本发明实施例的硬件设计方案每个时钟周期可以支持动态长度(0-212bit)的数据传输,进行矩阵相乘的编码运算。
具体如图7所示,首先,每个时钟周期由一个位宽长度寄存器来控制本次时钟周期内的有效数据长度(即编码数据位宽)。
然后,LDPC编码器内部在每个时钟周期都会根据已经传输的数据长度和本次时钟周期内有效数据长度来判断是否需要从存储矩阵里面读取下一个地址的矩阵编码信息,做到了每个时钟周期的编码数据位宽长度根据需求可配置,使得LDPC编码器的功耗和带宽得到最高效的应用。
以图7为例:第一行中的编码为当前编码单元的时钟周期值,由图可以看到,第0个时钟周期的编码数据位宽为1bit,第1个时钟周期的编码数据位宽为2bit,以此类推。第二个时钟周期编码数据位宽较大,导致需要从单位阵0跨越到单位阵1,因此,可根据数据向量在当前时钟周期已传输的数据长度值和当前时钟周期内有编码数据位宽是否超越了当前时钟周期内所述编码矩阵的单位阵已达到的位宽,来判断是否需要读取下一个RAM地址的矩阵编码信息;当第二个时钟周期到来时候,需要读取第1个RAM地址存储的第一个单位阵的矩阵编码信息来进行当前时钟周期的LDPC编码。
本发明各实施例可实现编码数据位宽动态配置,并且SSD软件可实时控制写数据带宽及芯片功耗,因而硬件设计可适配性高,软件动态控制性能好,并且一代产品可应用于不同规格需求的存储产品,可移植性迭代性强,可实现深层次的软件定义方案,可把硬件加速的性能、功耗、面积等参数部分交给应用端控制。
实施例二
本发明实施例提供一种可变位宽的低密度奇偶校验码LDPC编码器,如图8所示,所述可变位宽的LDPC编码器包括:
控制接口模块20,用于配置LDPC编码器的每个时钟周期的编码数据位宽;
矩阵读取接口模块22,用于在每个时钟周期中,根据数据向量在当前时钟周期已传输的数据长度和当前时钟周期的编码数据位宽,读取编码矩阵在当前时钟周期的矩阵编码信息;
编码模块24,用于根据所述编码矩阵在当前时钟周期的矩阵编码信息,进行当前时钟周期的LDPC编码。
本发明实施例通过配置LDPC编码器的每个时钟周期的编码数据位宽,在每个时钟周期中,根据数据向量在当前时钟周期已传输的数据长度与当前时钟周期的编码数据位宽,读取编码矩阵在当前时钟周期的矩阵编码信息,然后根据所述编码矩阵在当前时钟周期的矩阵编码信息,进行当前时钟周期的LDPC编码,从而实现一种编码数据位宽可基于一定区间(带宽区间)可实时动态配置的LDPC编码模块的硬件实现方案,满足基于当前系统架构对于写带宽和功耗的灵活需求,并有效解决现有LDPC编码模块接口数据位宽不可变而引起的编码模块移植性差的问题,提高了LDPC编码器的移植性;同时,本发明实施例的法数据处理流程固定,方案相对简单,还可以有效解决当前由于Flash的各种数据编程特性约束,系统架构会对于写路径的带宽在不同应用场景下有不同的需求中,可以满足带宽灵活性的要求,便于系统架构的设计及实现。
在一些实施例中,为了支持软件对LDPC编码器动态配置的带宽变化需求,来满足不同SSD应用场景下的对于功耗,带宽的平衡。在不同工作场景下,软件可以根据当前SSD的工作负载,来控制带宽和功耗之间的平衡,能更灵活的匹配各种客户的需求,也就是说,控制接口模块20具体用于通过预设的位宽长度寄存器配置LDPC编码器的每个时钟周期的编码数据位宽。进一步具体用于通过所述位宽长度寄存器接收动态位宽调整指令;通过所述动态位宽调整指令配置LDPC编码器的每个时钟周期的编码数据位宽。
在一些实施例中,矩阵读取接口模块22在根据数据向量在当前时钟周期已传输的数据长度与当前时钟周期的编码数据位宽,读取编码矩阵在当前时钟周期的矩阵编码信息时,具体用于确定所述数据向量在当前时钟周期已传输的数据长度与当前时钟周期的编码数据位宽之间的数据长度和;根据所述数据长度和从预设的存储矩阵中读取编码矩阵在当前时钟周期的矩阵编码信息。
其中,所述根据所述数据长度和从预设的存储矩阵中读取编码矩阵在当前时钟周期的矩阵编码信息,可以包括:
判断所述数据长度和是否超越当前时钟周期内所述编码矩阵的单位阵已达到的位宽;
若未超越,继续从存储矩阵的当前存储器单元读取所述编码矩阵在当前时钟周期的矩阵编码信息;
若超越,从所述当前存储器单元的下一地址的存储器单元中读取所述编码矩阵在当前时钟周期的矩阵编码信息。
在一些实施例中,矩阵读取接口模块22在根据所述数据长度和从预设的存储矩阵中读取编码矩阵在当前时钟周期的矩阵编码信息之前,还用于根据所述循环矩阵的单位阵的列数确定存储器单元的数量;提取所述循环矩阵的每列单位阵中每行单位阵的首行矩阵向量;对于每列单位阵,将提取的该列的各个单位阵中的首行矩阵向量存储在一存储器单元;其中每个存储器单元的地址顺序与每列单位阵的列的顺序一致,所述首行矩阵向量构成所述矩阵编码信息;所有存储器单元构成所述存储矩阵。
在一些实施例中,所述单位阵为行循环矩阵;编码模块24,具体用于根据所述编码矩阵在当前时钟周期的矩阵编码信息和所述行循环矩阵的行循环规律,确定所述编码矩阵在当前时钟周期的单位阵的矩阵向量;根据所述矩阵向量进行当前时钟周期的LDPC编码。
本发明各实施例可实现编码数据位宽动态配置,并且SSD软件可实时控制写数据带宽及芯片功耗,因而硬件设计可适配性高,软件动态控制性能好,并且一代产品可应用于不同规格需求的存储产品,可移植性迭代性强,可实现深层次的软件定义方案,可把硬件加速的性能、功耗、面积等参数部分交给应用端控制。
实施例三
本发明实施例提供一种固态硬盘SSD,所述固态硬盘SSD包括如实施例二所述的可变位宽的LDPC编码器。
实施例四
本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有可变位宽的LDPC编码程序,所述可变位宽的LDPC编码程序被处理器执行时实现如实施例一中任一项所述的可变位宽的LDPC编码方法的步骤。
在具体实现过程中,实施例二至实施例四可以参阅实施例一,在此不再赘述,并且实施例二至实施例四具有相应的技术效果。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (10)
1.一种可变位宽的低密度奇偶校验码LDPC编码方法,其特征在于,所述可变位宽的LDPC编码方法,包括:
配置LDPC编码器的每个时钟周期的编码数据位宽;
在每个时钟周期中,根据数据向量在当前时钟周期已传输的数据长度与当前时钟周期的编码数据位宽,读取编码矩阵在当前时钟周期的矩阵编码信息;
根据所述编码矩阵在当前时钟周期的矩阵编码信息,进行当前时钟周期的LDPC编码。
2.根据权利要求1所述的可变位宽的LDPC编码方法,其特征在于,所述配置LDPC编码器的每个时钟周期的编码数据位宽,包括:
通过预设的位宽长度寄存器配置LDPC编码器的每个时钟周期的编码数据位宽。
3.根据权利要求2所述的可变位宽的LDPC编码方法,其特征在于,所述通过预设的位宽长度寄存器配置LDPC编码器的每个时钟周期的编码数据位宽,包括:
通过所述位宽长度寄存器接收动态位宽调整指令;
通过所述动态位宽调整指令配置LDPC编码器的每个时钟周期的编码数据位宽。
4.根据权利要求1-3中任意一项所述的可变位宽的LDPC编码方法,其特征在于,所述根据数据向量在当前时钟周期已传输的数据长度与当前时钟周期的编码数据位宽,读取编码矩阵在当前时钟周期的矩阵编码信息,包括:
确定所述数据向量在当前时钟周期已传输的数据长度与当前时钟周期的编码数据位宽之间的数据长度和;
根据所述数据长度和从预设的存储矩阵中读取编码矩阵在当前时钟周期的矩阵编码信息。
5.根据权利要求4所述的可变位宽的LDPC编码方法,其特征在于,所述根据所述数据长度和从预设的存储矩阵中读取编码矩阵在当前时钟周期的矩阵编码信息,包括:
判断所述数据长度和是否超越当前时钟周期内所述编码矩阵的单位阵已达到的位宽;
若未超越,继续从存储矩阵的当前存储器单元读取所述编码矩阵在当前时钟周期的矩阵编码信息;
若超越,从所述当前存储器单元的下一地址的存储器单元中读取所述编码矩阵在当前时钟周期的矩阵编码信息。
6.根据权利要求4所述的可变位宽的LDPC编码方法,其特征在于,所述根据所述数据长度和从预设的存储矩阵中读取编码矩阵在当前时钟周期的矩阵编码信息之前,包括:
根据所述循环矩阵的单位阵的列数确定存储器单元的数量;
提取所述循环矩阵的每列单位阵中每行单位阵的首行矩阵向量;
对于每列单位阵,将提取的该列的各个单位阵中的首行矩阵向量存储在一存储器单元;其中每个存储器单元的地址顺序与每列单位阵的列的顺序一致,所述首行矩阵向量构成所述矩阵编码信息;
所有存储器单元构成所述存储矩阵。
7.根据权利要求6所述的可变位宽的LDPC编码方法,其特征在于,所述单位阵为行循环矩阵;
所述根据所述编码矩阵在当前时钟周期的矩阵编码信息,进行当前时钟周期的LDPC编码,包括:
根据所述编码矩阵在当前时钟周期的矩阵编码信息和所述行循环矩阵的行循环规律,确定所述编码矩阵在当前时钟周期的单位阵的矩阵向量;
根据所述矩阵向量进行当前时钟周期的LDPC编码。
8.一种可变位宽的低密度奇偶校验码LDPC编码器,其特征在于,所述可变位宽的LDPC编码器包括:
控制接口模块,用于配置LDPC编码器的每个时钟周期的编码数据位宽;
矩阵读取接口模块,用于在每个时钟周期中,根据数据向量在当前时钟周期已传输的数据长度和当前时钟周期的编码数据位宽,读取编码矩阵在当前时钟周期的矩阵编码信息;
编码模块,用于根据所述编码矩阵在当前时钟周期的矩阵编码信息,进行当前时钟周期的LDPC编码。
9.一种固态硬盘SSD,其特征在于,所述固态硬盘SSD包括如权利要求8所述的可变位宽的LDPC编码器。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有可变位宽的LDPC编码程序,所述可变位宽的LDPC编码程序被处理器执行时实现如权利要求1-7中任一项所述的可变位宽的LDPC编码方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110292939.XA CN113055027B (zh) | 2021-03-18 | 2021-03-18 | 可变位宽的ldpc编码方法、编码器、ssd及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110292939.XA CN113055027B (zh) | 2021-03-18 | 2021-03-18 | 可变位宽的ldpc编码方法、编码器、ssd及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113055027A true CN113055027A (zh) | 2021-06-29 |
CN113055027B CN113055027B (zh) | 2022-05-13 |
Family
ID=76513369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110292939.XA Active CN113055027B (zh) | 2021-03-18 | 2021-03-18 | 可变位宽的ldpc编码方法、编码器、ssd及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113055027B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116701271A (zh) * | 2023-06-13 | 2023-09-05 | 上海奎芯集成电路设计有限公司 | Ucie适配层的兼容多种批长度的数据传输模块和方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050262421A1 (en) * | 2002-05-31 | 2005-11-24 | Tran Hau T | Efficient front end memory arrangement to support parallel bit node and check node processing in LDPC (Low Density Parity Check) decoders |
US20070165462A1 (en) * | 2006-01-13 | 2007-07-19 | International Business Machines Corporation | Memory device with control circuit for regulating power supply voltage |
CN101106381A (zh) * | 2007-08-09 | 2008-01-16 | 上海交通大学 | 分层的低密度校验码译码器及译码处理方法 |
CN101212277A (zh) * | 2006-12-29 | 2008-07-02 | 中兴通讯股份有限公司 | 支持多协议标准的ldpc码译码装置 |
CN101355406A (zh) * | 2008-09-18 | 2009-01-28 | 上海交通大学 | 分层的非规则低密度校验码译码器及译码处理方法 |
KR20120081033A (ko) * | 2011-01-10 | 2012-07-18 | 엘지전자 주식회사 | 무선통신 시스템에서의 제어정보의 전송 방법 및 장치 |
CN103873073A (zh) * | 2014-03-20 | 2014-06-18 | 北京遥测技术研究所 | 一种基于并行与加窗结构的Turbo码高速译码实现方法 |
CN104601180A (zh) * | 2015-02-11 | 2015-05-06 | 东南大学 | 一种基于扩展汉明码的二维乘积码编码装置及编码方法 |
CN105515588A (zh) * | 2015-07-15 | 2016-04-20 | 北京理工大学 | 一种ldpc-cc高速译码器 |
CN108234068A (zh) * | 2016-12-15 | 2018-06-29 | 华为技术有限公司 | 传输低密度奇偶校验码的方法及其设备 |
CN108540139A (zh) * | 2018-04-17 | 2018-09-14 | 国家新闻出版广电总局广播科学研究院 | 一种通用的准循环ldpc码编码器的fpga实现方法及装置 |
-
2021
- 2021-03-18 CN CN202110292939.XA patent/CN113055027B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050262421A1 (en) * | 2002-05-31 | 2005-11-24 | Tran Hau T | Efficient front end memory arrangement to support parallel bit node and check node processing in LDPC (Low Density Parity Check) decoders |
US20070165462A1 (en) * | 2006-01-13 | 2007-07-19 | International Business Machines Corporation | Memory device with control circuit for regulating power supply voltage |
CN101212277A (zh) * | 2006-12-29 | 2008-07-02 | 中兴通讯股份有限公司 | 支持多协议标准的ldpc码译码装置 |
CN101106381A (zh) * | 2007-08-09 | 2008-01-16 | 上海交通大学 | 分层的低密度校验码译码器及译码处理方法 |
CN101355406A (zh) * | 2008-09-18 | 2009-01-28 | 上海交通大学 | 分层的非规则低密度校验码译码器及译码处理方法 |
KR20120081033A (ko) * | 2011-01-10 | 2012-07-18 | 엘지전자 주식회사 | 무선통신 시스템에서의 제어정보의 전송 방법 및 장치 |
CN103873073A (zh) * | 2014-03-20 | 2014-06-18 | 北京遥测技术研究所 | 一种基于并行与加窗结构的Turbo码高速译码实现方法 |
CN104601180A (zh) * | 2015-02-11 | 2015-05-06 | 东南大学 | 一种基于扩展汉明码的二维乘积码编码装置及编码方法 |
CN105515588A (zh) * | 2015-07-15 | 2016-04-20 | 北京理工大学 | 一种ldpc-cc高速译码器 |
CN108234068A (zh) * | 2016-12-15 | 2018-06-29 | 华为技术有限公司 | 传输低密度奇偶校验码的方法及其设备 |
CN108540139A (zh) * | 2018-04-17 | 2018-09-14 | 国家新闻出版广电总局广播科学研究院 | 一种通用的准循环ldpc码编码器的fpga实现方法及装置 |
Non-Patent Citations (2)
Title |
---|
SHENG HUANG 等: "Construction method of QC-LDPC codes based on multiplicative group of finite field in optical communication", 《OPTOELECTRONICS LETTERS》 * |
李鸿林等: "基于卷积码、LDPC码、Turbo码的BICM-ID性能的研究", 《应用科技》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116701271A (zh) * | 2023-06-13 | 2023-09-05 | 上海奎芯集成电路设计有限公司 | Ucie适配层的兼容多种批长度的数据传输模块和方法 |
CN116701271B (zh) * | 2023-06-13 | 2023-11-17 | 上海奎芯集成电路设计有限公司 | Ucie适配层的兼容多种批长度的数据传输模块和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113055027B (zh) | 2022-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100808664B1 (ko) | 패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도패리티 검사 부호화 방법 및 장치 | |
CN109409518B (zh) | 神经网络模型处理方法、装置及终端 | |
KR101438072B1 (ko) | 소거 없는 플래시 메모리의 다중 프로그래밍 | |
US20140298142A1 (en) | Memory controller, semiconductor memory apparatus and decoding method | |
US20070192670A1 (en) | Decoding device and decoding method | |
RU2007106450A (ru) | Способы и устройство ldpc-кодирования | |
US9698819B1 (en) | Huffman code generation | |
CN112182495B (zh) | 一种基于忆阻器的二元域矩阵运算电路 | |
CN113055027B (zh) | 可变位宽的ldpc编码方法、编码器、ssd及存储介质 | |
JP2023512892A (ja) | 比較システム | |
KR102355082B1 (ko) | 채널 편파 코드의 연속 제거 리스트 디코딩을 위한 효율적인 생존 메모리 아키텍처 | |
US9858994B2 (en) | Memory system with MLC memory cells and partial page compression or reduction | |
US20110179337A1 (en) | Memory utilization method for low density parity check code, low density parity check code decoding method and decoding apparatus thereof | |
CN109120275B (zh) | 一种编码方法及装置、计算机存储介质 | |
US11182128B2 (en) | Multiply-accumulate operation device, multiply-accumulate operation methods, and systems | |
CN116707546A (zh) | 一种准循环ldpc译码的硬件实现方法及装置 | |
US20130262759A1 (en) | Minimized Half-Select Current in Multi-State Memories | |
US8892985B2 (en) | Decoding and optimized implementation of SECDED codes over GF(q) | |
CN113472358B (zh) | 一种基于准循环生成矩阵的高速并行编码器 | |
CN115858230A (zh) | 最大距离可分离码的构造、修复方法及相关装置 | |
CN102201817A (zh) | 基于存储器折叠架构优化的低功耗ldpc译码器 | |
CN107959502B (zh) | 一种ldpc编码方法 | |
CN111446971A (zh) | 一种基于共享子矩阵的自适应低密度奇偶校验码编码方法 | |
CN116662063B (zh) | 一种闪存的纠错配置方法、纠错方法、系统、设备及介质 | |
CN115499017B (zh) | 闪存编解码方法及装置、介质、固态硬盘 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |