译码器的结构

1 串行结构

串行译码器是译码器中设计最为简单的一种,在信息处理过程中因为只有一对信息处理单元,因此各个节点需要排队处理,所以校验节点的更新是逐行进行的,变量节点的更新是逐列进行的。

含有m个校验节点和n个变量节点的校验矩阵的译码时间可如下计算:如果进行一次变量节点更新的时间为,进行一次校验节点更新所需时间为,那么进行串行译码,一次处理过程所需要的时间就为,下图描述了串行译码器的结构。

串行译码器结构简单,占用硬件资源少,但是这种串行的结构,减少硬件资源的同时也会拖慢译码速度,对于高吞吐率、高译码速率的译码要求来说不符合设计要求。

2 并行结构

全并行译码器的吞吐率最高,这种高吞吐率是以庞大的硬件资源作为支撑的,这种结构每一个节点都需要一个处理模块,规模庞大。

如上一小结所述的𝑚 × 𝑛大小的校验矩阵,那么在校验矩阵中的每一个节点都需要一个处理模块,共需要𝑚 + 𝑛个处理单元,对应变量节点和校验节点的信息更新处理模块。

进行一次变量节点更新的时间为,进行一次校验节点更新所需时间为,那么并行译码器的时间就为+,这相较于串行译码器的结构,虽然消耗了大量的资源,但是带来了译码速度的大幅度提高。下图为并行译码器的结构示意图。

如上图所示为全并行的译码器结构,在三种结构中译码速率最高、时延低,吞吐量比串行译码器有很大提升,但是硬件资源的消耗也十分庞大,当码长增大时,需要的硬件资源会平方倍的增长。

此外,这种译码器的结构灵活性较差,不适合可变码长和码率的译码器结构,因此全并行结构适合有高吞吐量要求的固定码长、固定码率和固定校验矩阵的LDPC码。

3 部分并行结构

为了使译码速率和资源消耗能够得到一个折中,部分并行译码器在这种需求下被提出。这种部分并行的结构能够提升译码速率、根据并行度的大小可以提高译码系统的吞吐量而且减少资源消耗。

所以这种部分并行的结构应用更为广泛。如果一个部分并行结构的译码器,它的行并行度设为,列并行度为,按照前文提到的校验节点处理时间和变量节点处理时间,那么进行一次迭代所需要的时间为

可以看到相较于串行译码器的结构,时间上有不小提升,提升的时间多少和并行度的设定有关。

部分并行译码器与串行译码相比,提升了译码速率,同时也减少了全并行译码大量资源的消耗。部分并行译码器的结构如下图所示。

对于QC-LDPC 码来说,行并行度和列并行度的划分就可以根据子矩阵来进行划分,每个子矩阵内节点的更新由一对变量节点更新模块和校验节点更新模块处理。

同一时刻,所有并行模块共同处理同一行的节点,下一时刻处理下一行,直到所有行都被处理完,就完成了一次水平迭代;水平迭代完成之后,所有校验阶段处理单元同时更新对应子矩阵的某一列,直到所有列都被处理完成,完成了一次垂直迭代。就完成了一次迭代处理过程。

相关推荐
徐小夕4 分钟前
3分钟从想法到Agent上线:我们开源了一款AI可视化工作流“IDE”
前端·算法·github
sel_91 小时前
【强化学习】Hands-on Modern RL项目实践|OPD 算法完整解析
人工智能·深度学习·算法·机器学习·语言模型
又见情义1 小时前
RK3568 Android 13 板载驱动适配-USB
android·arm开发·驱动开发
Navigator_Z2 小时前
LeetCode //C - 1209. Remove All Adjacent Duplicates in String II
c语言·算法·leetcode
落chen4 小时前
基于FPGA的SDRAM开发-进阶篇
fpga开发
ShineWinsu4 小时前
对于 C++:C++14中从变量模板、泛型 Lambda 到并发与字面量的解析
c++·算法
土司大王4 小时前
LeetCode hot100——合并两个有序链表
算法·leetcode·链表
码行山野赴时序归途4 小时前
算法效率的度量(上):时间复杂度中的对数思维
c语言·数据结构·算法
算AI5 小时前
基于LLM的无人机仿真测试:新方法竞赛夺佳绩
人工智能·深度学习·算法·机器学习·ai