CN116073839A - 一种提升ldpc译码器短码译码效率的方法及装置 - Google Patents
一种提升ldpc译码器短码译码效率的方法及装置 Download PDFInfo
- Publication number
- CN116073839A CN116073839A CN202111294365.6A CN202111294365A CN116073839A CN 116073839 A CN116073839 A CN 116073839A CN 202111294365 A CN202111294365 A CN 202111294365A CN 116073839 A CN116073839 A CN 116073839A
- Authority
- CN
- China
- Prior art keywords
- decoding
- code
- unit
- short
- storage unit
- 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
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/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种提升LDPC译码器短码译码效率的方法及装置,包括:将译码器的存储区域划分为M个存储区域最小模块,所述存储区域包括:第一码字存储单元、第二码字存储单元、变量节点信息存储单元、中间符号存储单元、第一译码结果存储单元、第二译码结果存储单元;根据长码和短码的最小循环矩阵倍数关系和所需存储资源的倍数关系,增加M个短码译码单元;当待译码为短码时,M个短码译码单元同时工作,多路短码码块并行译码。通过本发明提供的译码方法和译码器,使得多路短码码块并行译码,共用存储资源和核心译码器单元,能够提高短码吞吐率及短码译码效率。
Description
技术领域
本发明涉及无线通信技术领域,尤其涉及一种提升LDPC译码器短码译码效率的方法及一种LDPC译码器。
背景技术
由于低密度校验码LDPC码的性能逼近香农极限,而其译码算法是一种基于稀疏矩阵的并行迭代译码算法,在硬件实现上比较容易,因此在大容量通信应用中,LDPC码具有优势。LDPC码具有巨大的应用潜力,在深空通信、光纤通信、卫星数字视频、磁、光、全息存储等方面得到了广泛应用。在LDPC码字构造的时候,会有一个最小循环矩阵T矩阵,在结合面积、速度、物理实现难易等诸多要素考量之后,一般LDPC的译码电路的并行度会选择为T;另外一般通讯系统需要考虑适应各种带宽、空间流数和调制格式,相应的产生了单个通讯系统在采用LDPC编解码的时候会有多种成倍数关系的码长选项,而长码和短码的T矩阵也会有一定的比例关系。
传统的LDPC的译码电路大多采用码字存储单元加核心译码计算单元的方式,这里的码字存储单元无论是否采用乒乓RAM的结构,它的最小存储容量都是按照LDPC最大码字的长度设计的,而核心译码计算单元的最大并行度又和最长码字对应的T矩阵的T值相等。图1描述了传统迭代译码电路的示意图;LDPC译码必须在一个完整码字收全之后才可以开始,为了节省这个时间,图1中的码字存储单元一般会设计成乒乓RAM的形式:让一个码块译码的同时另一个码块可以填充,一个码块表示LDPC码长数量的待译码数据,其中核心译码计算单元是一个并行计算单元,目前常用的LDPC译码器都包括存储单元和核心译码计算单元,核心译码计算单元主要是完成校验节点和变量节点的更新;当译码结束之后,输出译码结果存储单元中的数据,为了节省这个往外输出的时间,一般译码结果存储单元也设计成乒乓RAM的形式:使得上一个码块在译码成功后其结果开始按照某种格式输出,同时新的码块开始迭代译码。变量节点存储单元和符号存储单元一般不需乒乓RAM的形式,但是它们的大小也是和最长码字相关的,即必须满足可以存储译码最长码字时候产生的中间数据信息。
软信息逐行写入码字存储单元,当写满一个码块后开始进行迭代译码,首先从该存储单元中读取一行数据进入核心译码计算单元,进行完该行的校验节点更新和变量节点更新后,把数据按约定好的方式写回码字存储单元、变量节点存储单元和符号存储单元。其中变量节点存储单元和符合存储单元都不需要初始化,它们的数据都是随着迭代译码由核心译码计算单元按照约定好的顺序写入和读取的。这里所谓约定好的顺序是说在LDPC的码字确定之后,根据选择的译码算法,这个读取与写回的顺序也就是确定了,它们都是由原始LDPC算法中码字的构造决定的。
确定判决结果:当LDPC的码字确定后,那么校验矩阵H(M*N维)也就确定了,每次迭代结束后核心译码计算单元基于输入的软信息会得到一个硬判决结果,假设这个结果是CW(1*N维),如果CW*HT=0,其中0表示(1*M)的全零向量,那么认为迭代结束,译码成功,否则就进行下轮译码和下轮判决,直到达到预设的最大迭代次数为止。
传统LDPC译码器存在的问题是,在短码的时候很多存储单元和核心译码计算单元都处于闲置状态,包括码字存储单元、变量节点存储单元、符号存储单元、译码结果存储单元,都需要按照LDPC算法中最大码块来设计,而短码的码块往往是长码码块的若干分之一,所以短码时候上述各存储单元都会有成比例的闲置。
目前所有的通讯协议中的LDPC都有多种成比例关系的码长,这主要是因为LDPC的码长设计既要考虑每一帧可以传输数据量的大小,还需要考虑长码在相同误块率下信噪比要求低,也就是说要兼顾效率和性能两个方面。另一方面,按照相等待译码数据计算,LDPC长码的译码效率都比短码的要好很多,这样在同样的译码时间里只能让短码的迭代次数减少,这样无疑会降低译码成功的概率,从而导致译码性能下降。
发明内容
有鉴于此,本发明提供了一种提升LDPC译码器短码译码效率的方法及一种LDPC译码器,针对具有成比例码字长度和循环子矩阵大小的通讯协议,通过划分译码器的存储区域及核心计算单元,增加的面积占比很小短码译码控制逻辑使得多路短码码块并行工作,从而提高了短码的迭代次数增加了短码译码的吞吐率,提高短码译码性能。
一种提升LDPC译码器短码译码效率的方法,包括:
将译码器的存储区域划分为M个存储区域最小模块,所述存储区域包括:第一码字存储单元、第二码字存储单元、变量节点信息存储单元、中间符号存储单元、第一译码结果存储单元、第二译码结果存储单元;
根据长码和短码的最小循环矩阵倍数关系和所需存储资源的倍数关系,增加多个短码译码单元;
当待译码为短码时,多个译码单元同时工作,控制多路短码码块并行译码,所述译码单元包括:M个短码译码单元、长码译码单元、中短码译码单元。
根据待译码信息确定待译码类型,所述待译码类型包括:长码、中短码、短码;所述待译码信息包括:码长、码率及其最小循环矩阵;
根据待译码类型选择对应的译码单元、存储区域及对应的核心译码子单元进行译码。
短码译码单元个数M根据长码和短码的最小循环矩阵倍数关系T1和长码和短码所需存储资源的倍数关系T2确定:确定T1和T2中的较小值,M为小于或等于较小值减去2的正整数,假设T1为二者中的较小值,M≤T1-2;
所述译码单元包括:
当待译码类型为长码时,长码译码单元工作,对应所有存储区域最小模块和所有核心译码子单元;
当待译码类型为中短码时,长码译码单元和中短码译码单元工作,长码译码单元和中短码译码单元分别对应m1个存储区域最小模块及n个核心译码子单元,根据中短码码长确定所需的存储最小模块数量m1,根据中短码的最小循环矩阵确定所需核心译码子单元个数n;所述中短码译码单元支持中短码译码和短码译码;所述长码译码单元支持所有码长译码;
当待译码类型为短码时,控制长码译码单元、中短码译码单元、M个短码译码单元同时工作,长码译码单元、中短码译码单元和每个短码译码单元分别对应1个存储区域最小模块及m2个核心译码子单元,m2根据短码的最小循环矩阵值确定。
当待译码类型为短码时,多个译码器并行工作,控制多个译码单元输出的译码结果顺序和待译码块的输入顺序一致:
各个译码单元根据输出权限将译码结果输出至译码结果输出选择单元或存储在对应译码结果存储模块内:当输出权限为否时,将译码结果存储在对应译码结果存储模块内;当输出权限为是时,将译码结果输出至译码结果输出选择单元;
译码器输出结果至译码结果输出选择单元结束后,译码单元输出权限为否,相邻下一个译码单元输出权限为是。
所述第一码字存储单元、第二码字存储单元的存储结构为乒乓结构。
所述第一码字存储单元、第二码字存储单元的存储结构为两级缓存模式:在第二码字存储单元没有存够一个码块时候,第一码字存储单元中的待译码信息直接写入第二码字存储单元,如果第二码字存储单元已经存够了一个码块,此后新来的待译码信息存储在第一码字存储单元中。
一种LDPC译码器,包括:
长码译码单元,支持长码、中短码、短码译码;
中短码译码单元,支持中短码、短码译码;
M个短码译码单元,支持短码译码,其中短码译码单元个数M根据长码和短码的最小循环矩阵倍数关系T1和长码和短码所需存储资源的倍数关系T2确定:确定T1和T2中的较小值,M为小于或等于较小值减去2的正整数,假设T1为二者中的较小值,M≤T1-2;
译码单元选择单元,根据输入的码长信息选择对应的译码单元进行译码,当待译码类型为短码时,长码译码单元、中短码译码单元、M个短码译码单元同时进行译码;
译码结果输出选择单元,确定多个译码单元输出的译码结果顺序和待译码块的输入顺序一致。
还包括,
存储区域:第一码字存储单元、第二码字存储单元、变量节点信息存储单元、中间符号存储单元、第一译码结果存储单元、第二译码结果存储单元;
所述译码单元选择单元,
当待译码类型为长码时,长码译码单元工作,对应所有存储区域最小模块和所有核心译码子单元;
当待译码类型为中短码时,长码译码单元和中短码译码单元工作,长码译码单元和中短码译码单元分别对应m1个存储区域最小模块及n个核心译码子单元,根据中短码码长确定所需的存储最小模块数量m1,根据中短码的最小循环矩阵确定所需核心译码子单元个数n;
当待译码类型为短码时,控制长码译码单元、中短码译码单元、M个短码译码单元同时工作,长码译码单元、中短码译码单元和每个短码译码单元分别对应1个存储区域最小模块及m2个核心译码子单元,m2根据短码的最小循环矩阵值确定。
各个译码单元根据输出权限将译码结果输出至译码结果输出选择单元或存储在对应译码结果存储模块内:当输出权限为否时,将译码结果存储在对应译码结果存储模块内;当输出权限为是时,将译码结果输出至译码结果输出选择单元;
译码单元输出结果至译码结果输出选择单元结束后,译码单元输出权限为否,相邻下一个译码单元输出权限为是;
所述译码结果输出选择单元,根据各个译码单元的输出权限选择从译码单元或者译码单元对应的译码结果存储模块中输出数据。
所述第一码字存储单元、第二码字存储单元的存储结构为乒乓结构。
所述第一码字存储单元、第二码字存储单元的存储结构为两级缓存模式:在第二码字存储单元没有存够一个码块时候,第一码字存储单元中的待译码信息直接写入第二码字存储单元,如果第二码字存储单元已经存够了一个码块,此后新来的待译码信息存储在第一码字存储单元中。
本发明达到的有益技术效果:
本发明在现有LDPC译码器基础上增加一个(或多个)短码译码单元及控制逻辑单元,充分利用短码译码时冗余的存储资源和并行核心译码单元,增加了短码的并行译码码块,这样可以让单个码块的最大迭代次数增加或者让短码的吞吐率增加;采用本发明提供的LDPC译码器结构,增加的面积占比很小(小于6%)短码译码控制逻辑能够让多路短码码块并行工作,从而提高短码的迭代次数,提高短码译码时的吞吐率。
为了上述以及相关的目的,一个或多个实施例包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明某些示例性方面,并且其指示的仅仅是各个实施例的原则可以利用的各种方式中的一些方式。其它的益处和新颖性特征将随着下面的详细说明结合附图考虑而变得明显,所公开的实施例是要包括所有这些方面以及它们的等同。
附图说明
图1是现有技术中传统LDPC译码器结构示意图;
图2为现有技术中EUHT系统LDPC译码器乒乓存储结构译码器示意图;
图3是本发明实施例二提供的EUHT LDPC译码器结构示意图;
图4是本发明实施例二提供的EUHT LDPC译码器乒乓存储结构框架图;
图5是本发明实施例二提供的短码输出控制流程图;
图6是现有技术中毫米波系统中易扩展存储结构LDPC译码器结构示意图;
图7是本发明实施例三提供的毫米波系统中易扩展存储结构LDPC译码器结构示意图;
图8a-8c是本发明实施例三提供的短码、长码译码各译码单元输出顺序示意图。
具体实施方式
以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。其他实施方案可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的组件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本发明的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,本发明的这些实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。
LDPC译码器是WIFI、WiMAX、DVB-S2、超高速无线局域网EUHT(Enhanced UltraHigh Throughout)、毫米波通信等现代通信系统中最常用的迭代译码器。表1-表3依次为EUHT、802.11ac、毫米波等典型通信系统中LDPC码字格式:
码长(N) | 码率(R) | 循环子矩阵(T) | 一次迭代时间(clock数) | 等效迭代时间(clock) |
5376 | 1/2,5/8,3/4,7/8 | 112 | 168,198,204,198 | 168,198,204,198 |
2688 | 1/2,5/8,3/4,5/6 | 112 | 121,135,120,104 | 212,270,240,208 |
1344 | 1/2,5/8,3/4 | 56 | 84,90,96 | 336,360,384 |
1344 | 7/8 | 42 | 132 | 528 |
448 | 1/2 | 28 | 56 | 672 |
表1 EUHT系统中LDPC码字和等效迭代时间
表1中长码包括码长为5376和2688,短码包括码长448,码长1344(码率为1/2,5/8,3/4,7/8)为中短码,译码器的核心译码计算单元一般与长码的循环子矩阵值相同,即112;按照等效迭代时间计算,短码在实际应用中迭代次数会比长码少很多,但是考虑到核心译码计算单元有112个,而对应的存储单元可以存储5376个点的数据。
假设根据ASIC实现面积功耗和实际系统吞吐率的要求,有两个LDPC的译码器,如果需要传输26880个点的数据,那么传统的设计中无论软件决定采用哪种码块译码,都是收够一个码块(即表1中码长数目的点,可以是5376也可以是448),让一个LDPC译码器开始译码,如果两个译码器都正在迭代译码,而新的待译码数据就需要缓存起来,在缓存区快要满的时候设置最大迭代次数,从而无论译码成功与否都会终止本次译码,开始新的码块译码。多个码块同时译码的现象是发生在待传输数据量超过两个码块的长度,并且在收够第二个码块后,第一个码块的译码还没有结束(没有译码成功并且没有达到最大迭代次数)。
传统的译码器每次只能译码一个码块,在长码的时候,所有的资源都正常使用,但是短码的时候会有大量的资源处于闲置状态。
对于中短码1344(码率为1/2,5/8,3/4,7/8)的情况,可以让两个码块同时译码,对于短码448的情况,可以让四个码块同时译码,在一个原始译码器内增加少量控制逻辑达到4个448并行工作。
确定几个码块并行工作由表1中的根据长码和短码的最小循环矩阵倍数关系T1和长码和短码所需存储资源的倍数关系T2决定:最小循环矩阵T值决定了同一码块中每次需要并行处理的节点的数目,码长448,最小循环矩阵T为28,需要核心译码计算单元中的28个子单元并行工作,28个点同时处理;码长5376时112个点同时处理,需要核心译码计算单元中的112个子单元并行工作;核心译码计算单元一般与长码循环子矩阵的值相同,即112,以码块448为例,当一个码块译码时,需要核心译码计算单元中的28个子单元,其它的84个核心译码计算单元中的子单元是闲置,所以考虑增加控制逻辑,使得新码块到来时候利用这闲置的子单元,以提高并行度;
需要说明的是,虽然码块5376的存储逻辑是448的12倍(即长码和短码所需存储资源的倍数关系值T2为12),但是核心译码单元是448的4倍(即长码和短码的最小循环矩阵倍数关系T1为4),根据T2和T1中的较小值确定几个短码几个码块并行译码,因此按照核心译码单元的比例关系T1增加控制逻辑让最多4个448的码块并行工作,M≤T1-2,即M最大值取值为2。
码长(N) | 码率(R) | 循环子矩阵(T) | 一次迭代时间(clock) | 等效迭代时间(clock) |
1296 | 1/2,2/3,3/4,5/6 | 54 | 116,132,144,180 | 116,132,144,180 |
648 | 1/2,2/3,3/4,5/6 | 27 | 116,132,144,180 | 232,264,288,360 |
表2 802.11AC系统中LDPC码字和等效迭代时间
同样从表2可以看出,如果短码648时候充分利用存储单元和核心译码计算单元,那么可以让两个码块同时译码,那么效率应该可以和长码1296时候相比拟;
表3毫米波系统LDPC码字和等效迭代时间
同样从表3可以看出,按照等效迭代时间短码1408和704都比长码2816低;但是按照前面的理论分析其实短码时候是可以让两个码块同时译码实施例一的,那么效率就会有较大的提升。
上面通过分析三种通讯系统中LDPC码字和等效迭代时间的关系,从理论上确认了按照T矩阵倍数关系及长码和短码所需存储资源的倍数关系提升短码的译码效率的可能行;本发明提供了一种译码方法,适用于具有成比例码字长度和循环子矩阵大小的通讯协议,在一个译码器内部划分出短码和长码存储区域和计算区域,在增加少量控制逻辑的前提下,使得短码时候充分的利用闲置的存储和计算单元,从而提高短码的并行度。
实施例一
一种提升LDPC译码器短码译码效率的方法,包括以下步骤:
S1.将译码器的存储区域划分为M个存储区域最小模块,所述存储区域包括:第一码字存储单元、第二码字存储单元、变量节点信息存储单元、中间符号存储单元、第一译码结果存储单元、第二译码结果存储单元;
S2.根据长码和短码的最小循环矩阵倍数关系和所需存储资源的倍数关系,增加M个短码译码单元;
短码译码单元个数M根据长码和短码的最小循环矩阵倍数关系T1和长码和短码所需存储资源的倍数关系T2确定:确定T1和T2中的较小值,M≤较小值-2,且为正整数。
S3.当待译码为短码时,多个译码单元同时工作,控制多路短码码块并行译码,所述译码单元包括:M个短码译码单元、长码译码单元、中短码译码单元。
进一步的,根据待译码信息确定待译码类型,所述待译码类型包括:长码、中短码、短码;所述待译码信息包括:码长、码率及其最小循环矩阵;
根据待译码类型选择对应的译码单元、存储区域及对应的核心译码子单元进行译码。
所述译码单元包括:
当待译码类型为长码时,长码译码单元工作,对应所有存储区域最小模块和所有核心译码子单元;
当待译码类型为中短码时,长码译码单元和中短码译码单元工作,长码译码单元和中短码译码单元分别对应m1个存储区域最小模块及n个核心译码子单元,根据中短码码长确定所需的存储最小模块数量m1,根据中短码的最小循环矩阵确定所需核心译码子单元个数n;所述中短码译码单元支持中短码译码和短码译码;所述长码译码单元支持所有码长译码;
当待译码类型为短码时,控制长码译码单元、中短码译码单元、M个短码译码单元同时工作,长码译码单元、中短码译码单元和每个短码译码单元分别对应1个存储区域最小模块及m2个核心译码子单元,m2根据短码的最小循环矩阵值确定。
当待译码类型为短码时,多个译码器并行工作,控制多个译码单元输出的译码结果顺序和待译码块的输入顺序一致:
各个译码单元根据输出权限将译码结果输出至译码结果输出选择单元或存储在对应译码结果存储模块内:当输出权限为否时,将译码结果存储在对应译码结果存储模块内;当输出权限为是时,将译码结果输出至译码结果输出选择单元;
译码器输出结果至译码结果输出选择单元结束后,译码单元输出权限为否,相邻下一个译码单元输出权限为是。
可选的,所述第一码字存储单元、第二码字存储单元的存储结构为乒乓结构;
可选的,所述第一码字存储单元、第二码字存储单元的存储结构为两级缓存模式:在第二码字存储单元没有存够一个码块时候,第一码字存储单元中的待译码信息直接写入第二码字存储单元,如果第二码字存储单元已经存够了一个码块,此后新来的待译码信息存储在第一码字存储单元中。
实施例二
本实施例提出的一种LDPC译码器结构,适用于超高速无线通信系统EUHT协议中的LDPC译码器,可提升短码译码效率;
图2为现有技术中EUHT系统中LDPC乒乓存储结构译码器示意图:
核心译码单元的并行度为长码(码长为5376)循环子矩阵的T值(112),由图2可知,所有的存储逻辑单元都和循环子矩阵的T值有一定关系:采用乒乓结构的第一码字存储单元RAMA和第二码字存储单元RAMB的每个子单元可以存储一个码字数据;RAMA和RAMB为112*48点;迭代译码中间符号存储单元RAMC(112*180点)需要存储最长码字迭代时产生的中间信息;迭代译码中间变量节点存储单元RAMD(112*28点)也需要满足最长码字的需求,即可以存储最长码字对应码块迭代译码过程中产生的中间信息;采用乒乓结构的第一译码结果存储单元RAMO0和第二译码结果存储单元RAMO1(112*48点),每个子单元都可以满足最长码字的需求即每个RAM都可以存储最长码字译码后的译码结果。
在TSMC65的工艺下对于译码器综合后结果进行分析发现图2中的码字控制单元的面积只占了10%左右,112个并行核心译码单元占比是22%,其它资源都是RAM资源。
在传统的LDPC译码器结构基础上,作出如下改进,译码器结构如图3所示,包括:
第一码字存储单元RAMA、第二码字存储单元RAMB、中间符号存储单元RAMC、变量节点存储单元RAMD、第一译码结果存储单元RAMO0和第二译码结果存储单元RAMO1、核心译码计算单元;
长码译码单元,支持长码、中短码、短码译码;
中短码译码单元,支持中短码、短码译码;
M个短码译码单元,支持短码译码,其中短码译码单元个数M根据长码和短码的最小循环矩阵倍数关系T1和短码所需存储资源的倍数关系T2确定,M≤T1和T2中的较小值-2;
核心译码计算单元是资源瓶颈,按照它的充分利用来设计短码的最大并行度:表1中长码包括码长为5376和2688,短码为448,1344(码率为1/2,5/8,3/4,7/8)为中短码,根据表1中长码和短码的最小循环矩阵倍数关系,即码长为5376的T值112,和码长为448的T值28,二者的比值T1为4,因此短码译码时,最多可以4(M取值为4)个译码单元同时译码,2个短码译码单元。
将译码器的存储区域划分为4个存储区域最小模块:bank0、bank1、bank2、bank3,所述存储区域包括:第一码字存储单元、第二码字存储单元、变量节点信息存储单元、中间符号存储单元、第一译码结果存储单元、第二译码结果存储单元;
根据并行度(功能)、面积和功耗等划分存储区域,示范性的,以功能实现为主,将LDPC译码器码字存储单元RAMA/B进行下表4所述的最小模块划分;
码长(N) | 码率(R) | 循环子矩阵大小(T) | RAMA/Bsize | Banksize |
5376 | 1/2,5/8,3/4,7/8 | 112 | 48*14*8 | 48*14*2 |
2688 | 1/2,5/8,3/4,5/6 | 112 | 24*14*8 | 48*14*2 |
1344 | 1/2,5/8,3/4 | 56 | 24*14*4 | 48*14*2 |
1344 | 7/8 | 42 | 24*14*3 | 48*14*2 |
448 | 1/2 | 28 | 16*14*2 | 48*14*2 |
两个48*14的RAM构成一个模块bank,一个bank可以保证448码字译码时候的存储空间,两个bank可以保证1344码字时候的存储空间,四个bank可以保证2688和5376码字译码时候的存储空间;逻辑上划分为模块,有助于添加控制逻辑达到不增加总体RAM资源和核心译码计算单元的前提下提高短码的并行度;
可选的,如果考虑到面积和功耗的平衡,可以让每个RAM的深度是24层;
码长为448时,每个译码器对应一个bank,码长为1344时每个译码器对应两个bank,而码长为2688/5376时译码器使用四个bank;图4为LDPC译码器乒乓存储结构示意图;
根据待译码信息确定待译码类型,所述待译码类型包括:长码、中短码、或短码;所述待译码信息包括:码长及其最小循环矩阵:表4中码长为2688/5376的最小循环矩阵均为112,因此待译码类型为长码;码长为1344(最小循环矩阵为56或42)为中短码,码长为448,最小循环矩阵均28为短码;
各个译码单元根据待译码类型选择对应的译码单元、存储区域及对应的核心译码子单元进行译码;具体如下:
长码译码单元decoder0,译码逻辑内包括了所有码长的信息,即4种码长(5376、2688、1344、448)下每个待译码点的位置和偏移信息,译码结果的校验矩阵,该单元是把之前可以完成4种码长的译码逻辑封装起来,使得它的接口仅仅是和RAM Wrapper还有核心译码单元有关,因为需要支持4码长,所以它的面积也最大;
长码译码单元decoder0根据待译码类型选择对应的译码单元、存储区域及对应的核心译码子单元进行译码:待译码为短码448时,那么它会控制bank0和核心译码计算单元的前28个子单元;待译码码长为是1344(码率1/2,5/8,3/4)控制bank0、bank1和核心译码计算单元的前56个子单元;待译码码长为是1344(码率7/8)控制bank0、bank1和核心译码计算单元的前42个子单元;待译码为长码是2688\5376,控制bank0/bank1/bank2/bank3和112个核心译码计算单元。
中短码译码单元decoder1,该单元仅仅支持1344/448码长的译码,译码逻辑内只包括1344和448码字的信息,面积比decoder0小很多;根据输入的是1344还是448码长来选择对应码长的相关信息,从而进行RAM资源和核心计算单元的使用;
第一短码译码单元decoder2和第二短码译码单元decoder3,仅支持448码长的译码,面积比decoder1还要小很多,译码逻辑内只存储448码字的信息(每个待译码点的位置和偏移信息,译码结果的校验矩阵)因此所需要的逻辑空间很小,当短码译码单元decoder2工作时候,会控制bank2和核心译码计算单元的第57到84个子单元;decoder3译码时控制bank3和核心译码计算单元的最后28个子单元。
译码器选择单元,根据输入的码长信息选择对应的译码单元进行译码,当待译码为短码时,长码译码单元、中短码译码单元、M个短码译码单元同时进行译码;
具体的,根据输入的码长信息选择对应的译码器,如果是长码5376或2688那么只使用长码译码单元,开启译码器decoder0,其它三个decoder并不工作,对于它们的时钟做关断处理,避免不必要的功耗消耗;如果是中短码1344那么会先选择decoder0,等下一个新的码块到来时候选择decoder1,如此反复,此时对于decoder2、decoder3的时钟做关断处理,从而节省功耗。如果是短码448,那么会先选择decoder0,之后是decoder1,其次是decoder2,再次是decoder3,如此对于长码,按照传统的RAMA/B乒乓结构,缓存两个码块;对于1344,缓存三个码块;对于448,缓存五个码块。
译码结果输出选择逻辑单元,确定多个译码单元输出的译码结果顺序和待译码块的输入顺序一致,短码译码时会有多个译码器并行工作的情况,而每个译码器译码成功的时间不同,所以必须有逻辑保证这几个译码器输出的译码结果顺序和待译码块的输入顺序一致;
各个译码单元根据输出权限将译码结果输出至译码结果输出选择单元或存储在对应译码结果存储板块内:当输出权限为否时,将译码结果存储在对应译码结果存储板块内;当输出权限为是时,将译码结果输出至译码结果输出选择单元;译码器输出结果至译码结果输出选择单元结束后,译码单元输出权限为否,相邻下一个译码单元输出权限为是;所述译码结果输出选择单元,根据各个译码单元的输出权限选择从译码器或者译码器对应的译码结果存储板块中输出数据。
示范性的,如图5所示,在短码448时候设置变量out_right[3:0],默认值是4’b0001表示decoder0有权限输出,如果decoder0译码结束那么因为out_right=4’b0001,所以它可以输出数据,在数据输出结束后令out_right循环左移成4’b0010,如果decoder1比decoder0译码结束的早,但是因为此时输出权限在decoder0上,所以decoder1的输出结果只能缓存在输出RAMO中的对应bank内;以此类推,decoder2和decoder3也有类似的情况,每个decoder获得输出权限才可以输出数据,否则译码结果都是缓存在对应的RAMO中的对应bank内。
dec_suc0表示对应的译码器译码成功,此时RAMO对应的bank0中存储的就是译码结果数据,当out_right=B0001时候表示decoder0有输出权限可以输出译码结果;同理当dec_suc1为高表示decoder1译码成功,此时RAMO的bank1存储的就是译码结果数据,当且仅当decoder0的译码结果输出完毕后out_right=B0010时候存在bank1中的数据才可以输出;以此类推decoder2,decoder3都有同样的要求。对于短码1344的情况,因为只有两个decoder同时工作,所以它的输出控制逻辑和短码448的类似,在此不再赘述。
本实施例提供的提高短码译码性能的方法短码448的等效单次迭代时间比长码长了4倍左右,但是在提高其性能的时候并不一定要提高4倍,需要综合考虑系统的应用场景也就是不同场景下的编码调制方案(MCS),很多情况下,有两个并行的短码译码单元即可。
实施例三
本实施例提供的方法适用于毫米波协议中的LDPC译码器,毫米波协议中的LDPC的格式如表3所示,可以看出长码2816会消耗最多88个并行的核心译码单元,而短码704/1408只需要消耗44个并行的核心译码单元,理论上分析,增加一个短码的译码逻辑模块,从而提高短码译码性能;
本实施例中的LDPC译码器采用易扩展存储结构,即码字存储单元为两级缓存模式:待译码软信息先写入第一级缓存即第一级码字存储单元ldpc_buffer,只要第二级缓存不满,那么第一级缓存中的数据直接写入第二级缓存;当第二级缓存写满一个码块长度时,数据存在第一级缓存;只有第二级缓存即第二码字存储单元RAMA直接和核心译码计算单元交互;
易扩展存储结构LDPC译码器结构示意图如图6所示;通过两级缓存模式式,第一级码字存储单元ldpc_buffer在短码的时候可以缓存更多的码块,而仅仅需要第二级码字存储单元RAMA参与译码器软信息及中间计算信息写回存储,此结构中只有第二级会和核心译码计算单元进行交互,在第二级没有缓存够一个码块的情况下,第一级缓存中的数据会立刻写入第二级。传统乒乓结构中两个RAM是平等的,所以无论码块大小,一次只能存储一个码块,这样在短码的时候也只能一共缓存两个码块;而这种分层两级缓存模式可以让第一级缓存多个短码的码块,一般来讲LDPC译码同样数目软信息时候长码的效率要比短码好,因此让短码多缓存几个码块对于系统整体性能有很大提升,能够提高短码译码的缓存码块数目,在不增加任何缓存RAM的前提下提高了整个译码器的性能。
将译码器的存储区域划分为M个存储区域最小模块bank所述存储区域包括:第一级码字存储单元(可以缓存1个704*4的长码,2个704*2的短码,和4个704的短码)、第二级码字存储单元、变量节点信息存储单元、中间符号存储单元、第一译码结果存储单元、第二译码结果存储单元;
根据表3中的毫米波系统LDPC不同码长码字和等效迭代时间划分存储区域最小模块bank;示范性的,表5为译码器码字存储单元子模块大小;
码长(N) | 码率(R) | 循环子矩阵大小(T) | RAMA/ldpc_buffersize | Banksize |
2816 | 1/2,5/8,3/4,7/8 | 88 | 32*44*2 | 32*44 |
1408 | 1/2,5/8,3/4,7/8 | 44 | 32*44*1 | 32*44 |
704 | 1/2,5/8,3/4 | 44 | 16*44*1 | 32*44 |
RAMA和ldpc buffer的大小都必须满足可以存储一个最长码字也就是长码的需求。例如表5中长码是2816,那么RAMA和LDPC buffer都需要两个深度是32的每行可以存储44个软信息的RAM构成。这里的bank是一个深度是32的每行可以存储44个软信息的RAM,这样在短码704、1408的时候可以让两个码块并行使用;短码译码时每个译码逻辑控制单元分别使用RAM的1个bank和44个并行核心译码单元。
短码字控制单元,支持码长为704、1408译码,它根据外部输入的码长和码率信息选择对应的码字,使用核心译码计算单元中的44个子单元加1个bank的存储空间进行短码的译码;
全码字控制单元,支持长码和短码译码,包括2816、1408、704三种,根据外部输入码长和码率选择对应的码字,如果是长码2816的时候,使用所有的核心译码计算单元(88个子单元)和所有的存储空间(两个bank)进行长码2816的译码;如果是短码的时候,使用一半的核心译码计算单元(前44个子单元)和1个bank,进行短码704或者1408的译码;
全码字控制单元可以译码长码和短码,在TSMC65工艺下它的面积占整个LDPC译码器的10%左右,而短码字控制单元仅仅译码短码,所以它的面积比长码字控制单元小40%以上。
具体的,如图7所示,所有存储单元RAM分为两个模块:bank1和bank2,长码译码时使用两个bank空间,短码译码时全码字控制单元使用bank0,短码字控制单元使用bank1;且对于核心译码单元的控制使用也是对应的:长码译码时,全码字控制单元使用88个核心译码单元,短码译码时,控制并使用bank0和前44个核心译码单元;短码译码时,控制并使用bank1和后44个核心译码单元;
a0/a1分别是全码字控制单元和短码字控制单元对于RAMA的控制通道(包括对应的读写地址和数据);
b0/b1分别是全码字控制单元和短码字控制单元的busy信息,当两个控制单元都busy时,ldpc_buffer就不会通过b通道把待译码软信息写入RAMA中,否则会把短码块交替的写入bank0/bank1;
d0/d1分别是全码字控制单元和短码字控制单元对于RAMD的控制通道(包括对应的读写地址和数据);
c0/c1分别是全码字控制单元和短码字控制单元对于RAMC的控制通道(包括对应的读写地址和数据);
o0/o1分别是全码字控制单元和短码字控制单元对于RAMO的控制通道(包括对应的读写地址和数据),RAMO是用来存储每次迭代后的译码结果数据的,为了在输出数据时还可以译码新码块,所以采用了乒乓RAM的结构;
针对这种结构的LDPC,改进结构更加容易,保持ldpc_buffer的结构不变,RAMA、RAMC、RAMD、RAMO都分成两个bank,在长码2816时候使用各个RAM的两个bank和88个并行核心译码单元;
判断长码和短码的标准都是按照码长及码字矩阵中最小循环矩阵T来决定的,如果T1只有N和2N(N表示LDPC中最小循环子矩阵的大小,为正整数)两种情况,即长码最小循环子矩阵为短码最小循环子矩阵的两倍,那么就只需要增加一个短码译码逻辑,这样短码可以按照两个码块并行工作;
需要说明的是,译码输出也必须保持和待译码码块输入顺序的一致性;和实施例一中有4个译码单元并行不同,此时out_right仅仅需要1个bit就够了,默认值是out_right=0,当且仅当短码时候前一个译码器的输出结束才会让out_right=!Out_right,也就是把输出权限给另外一个译码器。
如果根据码字长短T有超过两种且成倍数关系的情况,那么按照最大倍数关系,添加多个短码译码逻辑,比如实施例一中,为了让448码字4路并行,所以添加了两个短码448的译码逻辑单元,但是在实现的时候没有必要让短码的性能提高过多,这个需要按照该通信系统中短码的使用场景来计算,在最初完成码字设计后,很快就可以得到类似表1-3的数据,如果两路并行就可以让短码的迭代次数和延迟达到一个满足系统性能的要求,那就不必设计成四路并行。总之让系统中的短码满足使用需求即可,不必为了追求没有需求的性能造成LDPC译码器面积和功耗的增加。
需要说明的是,根据系统吞吐率需求,在某些调制编码方案(MCS)下需要两个译码器交替工作,此时针对本发明的这种改进的译码器,调整码块输入顺序,图8a为长码译码示意图:
a为软信息填充时间,由于采用乒乓存储结构或两级缓存结构在后续码块中软信息填充时间会变短;
b为迭代译码时间;
c为译码结果输出时间,此时下一个码块可以开始填充并且译码;
一次有多个长码块待译码,为了增加吞吐率,两个译码器乒乓工作,即使后续码块先译码成功也必须等前一个码块译码输出完毕才可以输出,必须保证输入输出一致性。
图8b为短码译码示意图,其中有多个待译码短码块时候,先让decoder0内的两个译码单元利用起来,之后使用decoder1内的两个译码单元,再之后使用decoder0,如此循环,必须保证输入输出一致性。也就是说,无论decoder内部还是两个decoder之间都是按照码块输入顺序决定输出顺序,任何一个码块输出的条件都是前面码块译码输出完毕;
或者,如图8c所示,有多个待译码短码块时候,先让decoder0内的一号译码器工作,之后来的码块给decoder1内的一号译码器,此后第三个码块,无论decoder0种的一号译码器是否译码结束,都会选择decoder0内的二号译码器译码,同理第四个码块会给decoder1内的二号译码器译码,第五个码块给decoder0内的一号译码器。所有的译码器输出都要保证和输入码块的顺序保持一致性。
需要说明的是,短码并行度不易过高,以四个为上限,否则增加的RAM资源和核心译码单元的复选逻辑会影响到长码时候的时序。如果只增加一个短码逻辑控制单元,那么仅仅需要增加一层二选一逻辑及可,这对于实现时候的时序影响很小。
本发明提供的一种提升LDPC译码器中短码译码效率的方法及一种LDPC译码器,在传统LDPC译码器中,仅仅增加短码译码控制单元让多路短码码块并行工作,共用RAM资源,共用核心译码器单元从而达到提高短码吞吐率和增加最大迭代次数的目的;在只有长码工作时候,让额外增加的短码译码控制单元处于时钟关断的状态从而达到节省功耗;长码时可以缓存的码块数目不变,一般还是两个,而短码时增加的缓存码块数目等于增加的短码译码器数目。
目前,为了综合考虑性能面积功耗和实现难易程度,目前绝大多数的LDPC译码器都是按照逐行或者逐列的方式更新待译码数据,在完成整个码字数据(所有行或者所有列)更新后表示一次迭代结束,而每行或者每列中每个节点都需要最小循环子矩阵大小T这个数目的并行核心译码单元同时处理,显然一行或者一列中非空点的数目(节点的数目)直接影响着单次迭代的时间,但这种方案有下面的问题:
如果一次处理多个节点,就会出现RAM资源有多行需要同时读写的情况,并且还要考虑多个节点之间前后读写冲突的问题,其设计复杂度远远超过每次处理一行中一个节点的情况。为了设计简单把RAM从一读一写类型替换成两读两写类型,但是这种两读两写RAM无论在面积还是功耗上都远远大于原始的一读一写RAM,这种方式得不偿失;通讯系统中的LDPC码字要适应各种信道,所以每个码字的设计都有其特殊性,此时根本无法保证每行中的节点数目正好被期望的并行度(按照长码和短码的最小循环子矩阵T值的比例关系确定)所整除,这样对于每行中剩余的节点需要特殊处理,又增加了设计的复杂度。
通讯系统中的LDPC码字为了各种复杂信道下的性能考虑,很可能采用非规则码字,这种码字中的行重是不一样的,对于这种码字如果一次处理一行中的多个节点,因为每行的情形不一样(行重除以并行度之后的余数不一致,商数也不一致)会导致很复杂的设计,因此现有技术中都不能解决本发明要解决的技术问题,达到相应的技术效果。
本领域技术人员还应当理解,结合本文的实施例描述的各种说明性的逻辑框、模块、电路和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地说明硬件和软件之间的可交换性,上面对各种说明性的部件、框、模块、电路和步骤均围绕其功能进行了一般地描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本公开的保护范围。
结合本文的实施例所描述的方法或者算法的步骤可直接体现为硬件、由处理器执行的软件模块或其组合。软件模块可以位于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动磁盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质连接至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。该ASIC可以位于用户终端中。当然,处理器和存储介质也可以作为分立组件存在于用户终端中。
对于软件实现,本申请中描述的技术可用执行本申请所述功能的模块(例如,过程、函数等)来实现。这些软件代码可以存储在存储器单元并由处理器执行。存储器单元可以实现在处理器内,也可以实现在处理器外,在后一种情况下,它经由各种手段以通信方式耦合到处理器,这些都是本领域中所公知的。
Claims (12)
1.一种提升LDPC译码器短码译码效率的方法,其特征在于,包括:
将译码器的存储区域划分为M个存储区域最小模块,所述存储区域包括:第一码字存储单元、第二码字存储单元、变量节点信息存储单元、中间符号存储单元、第一译码结果存储单元、第二译码结果存储单元;
根据长码和短码的最小循环矩阵倍数关系和所需存储资源的倍数关系,增加多个短码译码单元;
当待译码为短码时,多个译码单元同时工作,控制多路短码码块并行译码,所述译码单元包括:M个短码译码单元、长码译码单元、中短码译码单元。
2.如权利要求1所述的提升LDPC译码器短码译码效率的方法,其特征在于,包括:
根据待译码信息确定待译码类型,所述待译码类型包括:长码、中短码、短码;所述待译码信息包括:码长、码率及其最小循环矩阵;
根据待译码类型选择对应的译码单元、存储区域及对应的核心译码子单元进行译码。
3.如权利要求2所述的提升LDPC译码器短码译码效率的方法,其特征在于,
短码译码单元个数M根据长码和短码的最小循环矩阵倍数关系T1和长码和短码所需存储资源的倍数关系T2确定:确定T1和T2中的较小值,M为小于或等于较小值减去2的正整数。
4.如权利要求3所述的提升LDPC译码器短码译码效率的方法,其特征在于,所述译码单元包括:
当待译码类型为长码时,长码译码单元工作,对应所有存储区域最小模块和所有核心译码子单元;
当待译码类型为中短码时,长码译码单元和中短码译码单元工作,长码译码单元和中短码译码单元分别对应m1个存储区域最小模块及n个核心译码子单元,根据中短码码长确定所需的存储最小模块数量m1,根据中短码的最小循环矩阵确定所需核心译码子单元个数n;所述中短码译码单元支持中短码译码和短码译码;所述长码译码单元支持所有码长译码;
当待译码类型为短码时,控制长码译码单元、中短码译码单元、M个短码译码单元同时工作,长码译码单元、中短码译码单元和每个短码译码单元分别对应1个存储区域最小模块及m2个核心译码子单元,m2根据短码的最小循环矩阵值确定。
5.如权利要求4所述的提升LDPC译码器短码译码效率的方法,其特征在于,
当待译码类型为短码时,多个译码器并行工作,控制多个译码单元输出的译码结果顺序和待译码块的输入顺序一致:
各个译码单元根据输出权限将译码结果输出至译码结果输出选择单元或存储在对应译码结果存储模块内:当输出权限为否时,将译码结果存储在对应译码结果存储模块内;当输出权限为是时,将译码结果输出至译码结果输出选择单元;
译码器输出结果至译码结果输出选择单元结束后,译码单元输出权限为否,相邻下一个译码单元输出权限为是。
6.如权利要求5所述的提升LDPC译码器短码译码效率的方法,其特征在于,
所述第一码字存储单元、第二码字存储单元的存储结构为乒乓结构。
7.如权利要求5所述的提升LDPC译码器短码译码效率的方法,其特征在于,
所述第一码字存储单元、第二码字存储单元的存储结构为两级缓存模式:在第二码字存储单元没有存够一个码块时候,第一码字存储单元中的待译码信息直接写入第二码字存储单元,如果第二码字存储单元已经存够了一个码块,此后新来的待译码信息存储在第一码字存储单元中。
8.一种LDPC译码器,其特征在于,包括:
长码译码单元,支持长码、中短码、短码译码;
中短码译码单元,支持中短码、短码译码;
M个短码译码单元,支持短码译码,其中短码译码单元个数M根据长码和短码的最小循环矩阵倍数关系T1和长码和短码所需存储资源的倍数关系T2确定:确定T1和T2中的较小值,M为小于或等于较小值减去2的正整数;
译码单元选择单元,根据输入的码长信息选择对应的译码单元进行译码,当待译码类型为短码时,长码译码单元、中短码译码单元、M个短码译码单元同时进行译码;
译码结果输出选择单元,确定多个译码单元输出的译码结果顺序和待译码块的输入顺序一致。
9.如权利要求8所述的LDPC译码器,其特征在于,还包括,
存储区域:第一码字存储单元、第二码字存储单元、变量节点信息存储单元、中间符号存储单元、第一译码结果存储单元、第二译码结果存储单元;
所述译码单元选择单元,
当待译码类型为长码时,长码译码单元工作,对应所有存储区域最小模块和所有核心译码子单元;
当待译码类型为中短码时,长码译码单元和中短码译码单元工作,长码译码单元和中短码译码单元分别对应m1个存储区域最小模块及n个核心译码子单元,根据中短码码长确定所需的存储最小模块数量m1,根据中短码的最小循环矩阵确定所需核心译码子单元个数n;
当待译码类型为短码时,控制长码译码单元、中短码译码单元、M个短码译码单元同时工作,长码译码单元、中短码译码单元和每个短码译码单元分别对应1个存储区域最小模块及m2个核心译码子单元,m2根据短码的最小循环矩阵值确定。
10.权利要求9所述的LDPC译码器,其特征在于,
各个译码单元根据输出权限将译码结果输出至译码结果输出选择单元或存储在对应译码结果存储模块内:当输出权限为否时,将译码结果存储在对应译码结果存储模块内;当输出权限为是时,将译码结果输出至译码结果输出选择单元;
译码单元输出结果至译码结果输出选择单元结束后,译码单元输出权限为否,相邻下一个译码单元输出权限为是;
所述译码结果输出选择单元,根据各个译码单元的输出权限选择从译码单元或者译码单元对应的译码结果存储模块中输出数据。
11.如权利要求10所述的LDPC译码器,其特征在于,包括:
所述第一码字存储单元、第二码字存储单元的存储结构为乒乓结构。
12.如权利要求10所述的一种提升短码译码效率的LDPC译码器,其特征在于,包括:
所述第一码字存储单元、第二码字存储单元的存储结构为两级缓存模式:在第二码字存储单元没有存够一个码块时候,第一码字存储单元中的待译码信息直接写入第二码字存储单元,如果第二码字存储单元已经存够了一个码块,此后新来的待译码信息存储在第一码字存储单元中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111294365.6A CN116073839A (zh) | 2021-11-03 | 2021-11-03 | 一种提升ldpc译码器短码译码效率的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111294365.6A CN116073839A (zh) | 2021-11-03 | 2021-11-03 | 一种提升ldpc译码器短码译码效率的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116073839A true CN116073839A (zh) | 2023-05-05 |
Family
ID=86168704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111294365.6A Pending CN116073839A (zh) | 2021-11-03 | 2021-11-03 | 一种提升ldpc译码器短码译码效率的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116073839A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116662063A (zh) * | 2023-05-10 | 2023-08-29 | 珠海妙存科技有限公司 | 一种闪存的纠错配置方法、纠错方法、系统、设备及介质 |
-
2021
- 2021-11-03 CN CN202111294365.6A patent/CN116073839A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116662063A (zh) * | 2023-05-10 | 2023-08-29 | 珠海妙存科技有限公司 | 一种闪存的纠错配置方法、纠错方法、系统、设备及介质 |
CN116662063B (zh) * | 2023-05-10 | 2024-02-23 | 珠海妙存科技有限公司 | 一种闪存的纠错配置方法、纠错方法、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100703271B1 (ko) | 통합노드 프로세싱을 이용한 저밀도 패리티 검사 코드복호 방법 및 장치 | |
CN101141133B (zh) | 一种结构化低密度校验码的编码方法 | |
US8051239B2 (en) | Multiple access for parallel turbo decoder | |
CN1874164B (zh) | 使用同时存储器存取的消息传递译码装置和方法 | |
US8739001B2 (en) | LDPC encoding and decoding techniques | |
RU2369008C2 (ru) | Устройство и способ кодирования-декодирования блочного кода проверки на четность с низкой плотностью с переменной длиной блока | |
US20090113256A1 (en) | Method, computer program product, apparatus and device providing scalable structured high throughput LDPC decoding | |
CN109347486B (zh) | 低复杂度高吞吐率的5g ldpc编码器和编码方法 | |
CN101854177B (zh) | 一种高吞吐率的ldpc译码器 | |
CN101931416A (zh) | 移动数字多媒体广播系统中的ldpc码的并行分层译码器 | |
WO2015120719A1 (zh) | 信息处理方法及装置 | |
US20070150789A1 (en) | LDPC decoding apparatus and method using type-classified index | |
CN116073839A (zh) | 一种提升ldpc译码器短码译码效率的方法及装置 | |
EP3876424A1 (en) | Decoding method, decoding device, and decoder | |
CN108988988B (zh) | 一种基于准循环矩阵两级查找表的rcm编码器和编码方法 | |
CN111431543B (zh) | 可变码长可变码率qc-ldpc译码方法及装置 | |
US20240007129A1 (en) | Constructing method, processing device, storage medium and coding method | |
CN102201817B (zh) | 基于存储器折叠架构优化的低功耗ldpc译码器 | |
TW201029337A (en) | Method for decoding LDPC code and the circuit thereof | |
CN102594369A (zh) | 基于fpga的准循环低密度校验码译码器及译码方法 | |
CN112367085A (zh) | 准循环ldpc码译码方法、译码器、终端及介质 | |
CN107959502B (zh) | 一种ldpc编码方法 | |
Zolotarev et al. | High throughput software multithreshold decoder on GPU | |
Yin et al. | High throughput parallel encoding and decoding architecture for polar codes | |
KR101073636B1 (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 |