【数字IC论文研读】QSN—A Simple Circular-Shift Network for Reconfigurable Quasi-Cyclic LDPC Decoders(循环移位网络)

  • 作者:Xiaoheng Chen, Shu Lin, Life Fellow, IEEE, and Venkatesh Akella。
  • 作者们来自加利福尼亚大学戴维斯分校电气与计算机工程系(电子邮件:[email protected]; [email protected]; [email protected])。
  • 本研究得到了美国国家科学基金会CCF-0727478号资助,美国航空航天局NNX07AK50G和NNX09AI21G号资助,以及英特尔和诺斯洛普·格鲁曼太空技术的赞助。此论文由副编辑C.-Y. Lee推荐。

摘要

越来越需要可配置的准循环低密度奇偶校验译码器(Quasi-Cyclic Low-Density Parity-Check,QC-LDPC),它能够支持一系列结构兼容的编码而不仅仅是单个编码。可配置QC-LDPC译码器中的关键组件是一个可编程循环移位网络(Programmable Circular-Shift Network),它支持任意大小的循环移位,最大子矩阵大小由预定义确定。本文提出了一种QC-LDPC移位网络(QSN),相比于近期文献中现有解决方案具有两个主要优势。首先,QSN减少了关键路径上的级数数量,提高了时钟频率,并使其在基于现场可编程门阵列(FPGA)实现中具备可扩展性,特别是在互连延迟占主导地位的情况下。其次,QSN的控制逻辑简单易生成且占用面积显著较小。针对适用于新兴应用领域的各种编码进行了180纳米台湾积体电路制造股份有限公司互补金属氧化物半导体库和Xilinx Virtex 4 FPGA上实施QSNs。所提出的实现方案显示,在文献中已知最佳实现的基础上,速度提高了2.1倍,并且控制面积几乎减少了八倍。此外,本文还提出了关于任意大小子矩阵的关键路径和数据路径复杂性的分析模型,并证明QSN确实生成了实现可重构QC-LDPC译码器所需的所有输出组合。

关键词:Benes网络(Benes network)、纠错码(error correction codes)、准循环低密度奇偶校验(QC-LDPC)码(quasicyclic low-density parity-check (QC-LDPC) codes)、超大规模集成电路(very large scale
integration)、WiFi、WiMAX。

1、介绍

低密度奇偶校验(LDPC)码是由Gallager于1962年发现的,后来在1990年代末被重新发现并证明接近香农容量准循环(QC)LDPC码[1]因其结构有利于硬件实现,并且在嘈杂信道上具有出色的误差性能而受到广泛关注。QC-LDPC码的奇偶校验矩阵由循环置换矩阵(Circulant Permutation Matrices,CPM)和/或相同大小的零矩阵组成,这些矩阵确定了检查节点处理单元(Check-Node processing Units,CNU)和变量节点处理单元( Variable-Node processing Units,VNU)之间的互连方式。对于QC-LDPC码,互连网络具有高度结构化特点,并可以通过每个CPM的子矩阵大小和循环移位值进行描述。因此,QC-LDPC码的奇偶校验矩阵可以按块或CPM方式进行分区,并采用部分并行解码器架构[2],[3]来实现,从而在非常大规模集成复杂性和解码吞吐量之间实现高效的权衡。对于给定的编码,CNUs和VNUs之间的互连网络是预先确定的;因此,它可以针对该编码进行优化。然而,诸如802.11n、802.16e和DVB-S2等新兴应用需要适用于一组编码而不仅仅是单个编码的解码器。能够实现一组结构兼容代码的解码器称为可重配置(有时也称为可配置或灵活)解码器。一个可重配置QC-LDPC解码器需要一个可编程移位网络来适应不同子矩阵大小、代码速率和块长度

基于现场可编程门阵列(FPGA)的LDPC解码器仿真被广泛用于设计和优化LDPC码。然而,在FPGA上设计和优化高效的LDPC解码器是一项艰巨且耗时的任务。一个能够适用于相关代码族[1]的单个可重构解码器非常理想。这样一个可重构解码器需要一个可编程移位网络来实现通过代数变换(如掩码、行列分解等)从母代码派生出来的不同代码[1]。互连(或路由延迟)的主导地位使得在FPGA上设计快速且可扩展的循环移位网络更具挑战性一种最小化互连复杂性,从而减少互连延迟的架构更加理想

本文中,我们描述了一种QC-LDPC移位网络(QSN),它对于FPGA和特定应用集成电路(ASIC)实现都简单高效,并且比近期文献中提出的网络[4]-[14]更具扩展性和灵活性具体而言,对于给定最大子矩阵大小PM × PM,QSN可以在2 ≤ p ≤ PM个消息数组上执行任意循环移位c (0 ≤ c < p)

一个立即浮现在脑海中的问题是为什么不使用已被证明为最佳非阻塞置换网络的Benes网络[15]。对于可重构QC-LDPC译码器来说,常规的Benes网络并不适用,原因有三。首先,我们只需要循环置换而不是所有的置换。其次,PM(输入输出端口数)未必是2的幂次方,在一些新兴应用中可能会取96;因此,使用最接近且大于PM的2的幂次方128并不高效。第三,在上述提到过的情况下,移位量p是可变的,即2 ≤ p ≤ PM。因此,我们只需要支持 [ ∑ p = 2 P M ( p − 1 ) + 1 ] [\sum_{p=2}^{P_M} (p − 1) + 1] [p=2PM(p1)+1]种输出组合而非 P M ! P_M! PM!种组合。

在过去的几年里,研究人员提出了一些技术来修改Benes网络,使其更适用于可重构QC-LDPC译码器,并因此而更高效。例如,在[4]和[5]中,标准的Benes网络通过查找表增加了配置信息,以保存给定可重构解码器所需的排列子集。在[6]和[7]中,使用第二个Benes网络来有效地计算控制信号,从而降低与通用Benes网络实现相比的控制逻辑复杂性。还提出了由模块化单元组成或支持特定LDPC解码器(如IEEE 802.16e或802.11n系统)预定义扩展因子的多尺寸循环移位网络。虽然基于移位器的置换结构占用较小面积,但当为完全灵活性设计时,在最坏情况下需要大量阶段来增加延迟 [8]-[10]。Liu等人 [14] 设计了一个带有移位器和两个额外级别多路复用器的自路由网络, 该网络适用于 IEEE 802.11n 和806.16e 标准 。这类方法中最新的是 Oh 和 Parhi 的工作 [11], [13], 我们将其称为 Oh-Parhi 网络(OPN) 在本文剩余部分 。OPN的关键见解如下:鉴于 P M P_M PM并不总是2的幂次,OPN提出了使用其他类型的原始开关(例如3×3或5×5)来减少面积和控制复杂性。当 P M P_M PM 2 i 3 j 5 k 2^i3^j 5^k 2i3j5k形式时,与通用Benes网络相比,OPN实现更高效。例如,一个12×12开关可以通过36个2×2开关完成,而16×16网络则需要56个2×2开关。然而,在OPN中的临界路径仍至少需要 2 ∗ l o g 2 ( P M ) − 1 2*log_2(P_M) -1 2log2(PM)1 阶段 [11]-[13]。

在本文中,我们提出了一种低复杂度的移位网络,称为QSN。它可以对给定最大子矩阵大小 P M × P M P_M × P_M PM×PM执行任何循环移位c(0 ≤ c < p),其中2 ≤ p ≤ PM。这对于在ASIC和FPGA上实现可重构QC-LDPC译码器非常合适。

笔记:子矩阵大小 P M × P M P_M × P_M PM×PM,可以理解成输入端口数量是 P M P_M PM,输出也是 P M P_M PM

QSN相对于最近提出的可配置移位网络在可重构QC-LDPC译码器方面有两个主要优势,例如[13]。首先,QSN需要较少的逻辑级别,有效地减少了关键路径长度,从而降低了互连延迟并改善了时钟周期时间。这对于FPGA实现的可重构解码器尤为有利。具体来说,在PM×PM移位网络中,QSN中的关键路径具有 l o g 2 P M + 1 log_2{P_M} + 1 log2PM+1个多路复用器。相比之下,基于Benes拓扑结构的网络(如OPN)需要 2 l o g 2 P M − 1 2log_2{P_M} - 1 2log2PM1个多路复用器级别。其次,QSN的控制逻辑简单,并且所有控制信号可以在一次传递中生成,而不是像[13]中使用复杂递归算法。因此,与OPN相比,QSN更具可伸缩性;即当PM大于96时可以使用QSN来构建网络。这一点很重要,因为我们不仅对802.11n、802.16e、DVB-S2等灵活解码器感兴趣,并且还希望实现基于FPGA的大型和复杂QC-LDPC编码仿真所需的通用解码器。

本文的组织结构如下。第二部分简要回顾了QC-LDPC码和译码器,以此来说明设计QSN所需的要求。在第三部分中,我们介绍了QSN的架构和实现,并证明它生成了所有提议应用所需的输出组合。在第四部分中,我们将一个180纳米ASIC实现上QSN与OPN进行比较,并呈现FPGA实现QSN的结果。

2、背景

一个QC-LDPC码由GF(2)上的奇偶校验矩阵H的零空间给出,该矩阵是一个γ×ρ的数组(或块),由循环移位器或CPM以及/或相同大小的零矩阵组成,例如p×p形式。
在这里插入图片描述
那么,H是一个GF(2)上的γp × ρp矩阵。由H矩阵的零空间给出的QC-LDPC码具有长度为ρp和至少为1 - (γ/ρ)的速率。

在这里插入图片描述

图1. (a) CPM测量7 × 7和(b)可重构QC-LDPC解码器的顶层架构。QSN(7,5,8)表示PM为8,c为5,p为7。请注意,最后一个输出在此处未使用;因此,标记为不关心(X)。

笔记:在 Q S N ( p , c , P M ) QSN(p,c,P_M) QSN(p,c,PM)表达式中, P M P_M PM——表示输入输出端口的总数量;p——表示有效端口数量;c——表示移位量

QC结构在编码器和解码器的实现方面具有优势。 QC-LDPC代码的编码可以使用移位寄存器来实现,其复杂度与奇偶校验位数或代码长度成线性比例关系[16]。 QC-LDPC代码可以通过[4]和[5]中提出的部分并行架构高效地进行解码,如图1(b)所示。处理单元P0、P1、…、P8连接到一组保存中间消息的内存库。 QSN负责将从内存读取的消息按正确顺序进行洗牌(循环移位),然后由处理单元进行处理。 处理单元在可重配置解码器中逐个串行地处理消息PM×PM QSN能够在一个时钟周期内对最多PM条消息进行洗牌(循环移位)

图1(a)显示了一个7×7的CPM,其外部消息{M0,M1, . . . , M6}对应于存储在内存中以列优先顺序的条目为1。图1(b)显示了一个具有PM = 8的可配置解码器的简化图。QSN将消息重新排序为行优先顺序{M5,M6,M0, . . . , M4}。

3、QSN—架构和实现

一个可重构的LDPC解码器需要一个PM × PM QSN,其中子矩阵大小为2 < p ≤ PM,并且对于内存库的传入消息,CPM偏移量为0 ≤ c < p。

例如,让{I[0],I[1],… ,I[PM − 1]}和{O[0],O[1],… ,O[PM − 1]}分别表示QSN的输入和输出消息。当p = PM时,对于所有0 ≤ i < PM − 1都有O[i] = I[(i + c) mod p]。

当p < PM时,则输入消息{I[p],I[p + 1],. . . , I[PM − 1]}和输出消息{O[p], O[p + 1], . . . , O [PM−1]}将无效,并且相关端口将不被使用(如图1.b所示)。其他端口保持循环移位属性,即 O[i] = I[ (i+c) mod p ], 0≤i<p-1 。

总体而言,QSN网络的输出组合数目将是 [ ∑ p = 2 P M ( p − 1 ) + 1 ] [\sum_{p=2}^{P_M} (p − 1) + 1] [p=2PM(p1)+1], 因为输入端口具有(p - 1)个移位组合,并且当c = 0的时候,所有p的组合是相同的。

在接下来的小节中,我们提出了一种低复杂度的可配置LDPC译码器交换网络设计,可以用较小的面积实现。此外,还讨论了一个高效算法及其硬件实现,用于生成所有所提出交换网络的控制信号。

A. 总体架构

在这里插入图片描述

图2. 可配置QC-LDPC码解码器的QSN架构。由于O[PM − 1]始终连接到R[PM − 1],因此仅为左移网络生成了PM - 2个信号。

QSN的输出可以分为两部分:
1)左侧部分,即对于0 ≤ i < p − c,O[i] = I[i + c];
2)右侧部分,即对于p − c ≤ i < p,O[i] = I[i − (p − c)]。
根据观察结果,QSN的输出可以看作是输入数组的两个移位数组的组合。因此,生成循环移位数组有三个步骤如下所示:

  • 步骤1)左移:通过对数组执行左移操作,生成最终输出消息的左部分;设L[i]为左移输出,则L[i] ← I[i + c]。
  • 步骤2)右移:通过对数组执行右移操作,生成最终输出消息的右部分;设R[i]为右移输出,则R[i] ← I[i − (p − c)]。
  • 步骤3)合并:从左移输出和右移输出中提取有用的部分。当0 ≤ i < (p − c)时,O[i] ← L[i];当(p − c) ≤ i < p时,O[i] ← R[i]。

步骤1和2是独立的,因此可以并行执行。步骤3依赖于步骤1和步骤2的输出。整体架构如图2所示。

如图2所示,QSN有三个组成部分,即左移网络、右移网络和合并网络,对应上述的步骤1、2和3。设b表示PM的无符号二进制表示中的位数,即 2 b − 1 < P M ≤ 2 b 2^{b−1} < PM ≤ 2^b 2b1<PM2b。左移网络有三组信号:
1)I[0,1,…,PM − 1]表示输入消息数组;
2)L[0,1,…,PM − 2]表示输出消息数组;
3)l代表网络的b位控制信号。
左移网络有b级复用器。l[i]是第i(0 ≤ i < b)级的控制信号。当l[i]=0时,消息直接路由到下一级而不改变其位置。当l[i]=1时,消息向左移动一个量为 2 i 2^i 2i的距离。在左移网络中有 P M − 2 i P_M − 2^i PM2i个数据宽度与消息宽度相同的二选一复用器。因此,左移网络中总共的复用器数量 N l e f t N_{left} Nleft可以通过以下公式给出:

在这里插入图片描述

同样地,右移网络中的多路复用器总数 N r i g h t N_{right} Nright等于 b P M − 2 b + 1 bP_M - 2^b + 1 bPM2b+1

合并网络根据 (PM - 1) 位控制信号 m,从 L[0,1,… ,PM − 1] 和 R[0,1,… ,PM − 1] 中选择适当的输出消息。m[i] 对应于输入为 L[i] 和 R[i] 的多路复用器。当 m[i]=0 时,O[i] ← R[i]; 否则,O[i] ← L[i]R[PM − 1] 直接路由到 O[PM − 1]. 合并网络中的多路复用器总数记为 Nmerge,并且等于 PM - 1. 因此,2:1 多路复用器(宽度等于输入消息宽度)的总数由以下公式给出:

在这里插入图片描述

图3显示了一个11×11的QSN示例以及当c = 7和p = 11时的输出。左移网络{I7,I8,I9,I10}的p - c = 4个有效输出和右移网络{I0,I1,I2, I3, I4, I5, I6} 的c = 7个有效输出在合并网络中重新组织,并生成最终输出即 {I7,I8,I9,I10,I0,I1,I2,I3,I4,I5,I6}。使用的多路复用器数量为68个,与(3)中所示的计算一致。此外,在我们设计中所需阶段数仅为五个。

在这里插入图片描述

注:当 m[i]=0 时,O[i] ← R[i]; 否则,O[i] ← L[i]。R[PM − 1] 直接路由到 O[PM − 1]

相比之下,OPN需要一个七级网络,并且需要72个多路复用器来实现相同功能如图4所示。

在这里插入图片描述

B. 正确性证明

下面,我们证明了QSN实现可以生成所有所需的输出组合,即对于所有0 ≤ i < PM - 1,O[i] = I[(i + c) mod p]。左移网络的输出是L[i] = I[i + c](其中0 ≤ i < (p - c))。右移网络的输出是R[i] = I[i - (p - c)](其中(p - c) ≤ i < p)。根据我们的合并网络控制信号生成函数,最终输出将为O[i] = I[i + c](其中0 ≤ i < (p - c)),以及O[i] = I[i - (p - c)](其中(p - c) ≤ i < p)。当0 ≤ i < (p −c)时,I[(i +c )mod p]=I[i+c ]。当(p −c)≤i<p时,则有,I [(i+c )mod p] =I [i + c − p ]=I [i−(p-c)].因此得证。

C. 为QSN高效生成控制信号

对于一个PM×PM QSN,需要生成2b + PM − 1个控制信号。可以使用表 1 中描述的算法一次性生成控制逻辑。

表1 在伪Verilog中生成控制信号的算法
在这里插入图片描述

例如,在图3中,11×11 QSN基于c = 7和p = 11生成输出。左移网络的控制信号l是c = 7的二进制版本,即l[3 : 0] = 0111。右移网络的控制信号rp − c = 4的二进制版本,即r[2 : 0] =0100。合并网络的控制位由m[9 : 0] =0000001111派生而来。

图5显示了11×11 QSN中合并网络的控制逻辑。通常需要b级逻辑门。在第i级(其中0 ≤ i < b),需要 2 i + 1 − 1 2^{i+1}−1 2i+11个与门和 2 i + 1 − 1 2^{i+1} − 1 2i+11个或门。
因此,在总体上,当 P M = 2 b P_M=2^b PM=2b时,对于一个PM × PM 网络需要 2 b + 1 − ( b + 1 ) 2^{b+1}−(b + 1) 2b+1(b+1)个与门和 2 b + 1 − ( b + 1 ) 2^{b+1}−(b + 1) 2b+1(b+1)个或门。 否则,需要 2 b + 1 − ( b + 1 ) − 2 b + P M = 2 b + P M − ( b + 1 ) 2^{b+1} − (b + 1) − 2^b + P_M = 2^b + P_M − (b + 1) 2b+1(b+1)2b+PM=2b+PM(b+1)个AND门和 2 b + 1 − ( b + 1 ) 2^{b+1} − (b + 1) 2b+1(b+1)个OR门。

在这里插入图片描述

4、结果与讨论

我们使用Synopsys设计流程合成了所提出的QSN实现,并将其映射到台积电(TSMC)0.18微米标准单元互补金属氧化物半导体库。

表 2 比较了QSN的数据通路、控制器面积和时钟频率与OPN(代表已发表研究文献中的最新技术水平)以及更传统的基于Benes网络的实现方式。需要注意的是,通过控制逻辑所需面积来量化控制复杂性,我们所需面积几乎是OPN所需面积的1/8(0.015 mm2对比0.114 mm2)。此外,由于关键路径延迟降低,我们实现的时钟频率为200 MHz,而[13]中报告的OPN时钟频率为94 MHz。

表2 可配置交换网络(8位字长)的硬件复杂性比较

在这里插入图片描述

如前所述,我们的目标是使用QSN来构建一个单一解码器,以模拟一系列复杂的QC-LDPC码。因此,我们还将设计映射到FPGA,并与[13]中描述的方法进行了比较,如表3所示。

表3 在Virtex 4 LX160-10 FPGA上进行布局和布线后的结果(8位字长)(仅网络,无控制器)

在这里插入图片描述

根据我们的设计方案,我们为IEEE 802.11n和802.16e标准(PM = 96)设计了一个可重构解码器,并在表4中呈现结果。

表4 在Virtex 4 LX160-10 FPGA上的结果,用于可配置解码器,支持IEEE 802.11n和802.16e标准。

在这里插入图片描述

5、结论

我们已经介绍了QSN的架构和实现,它是一个简单的循环移位网络,可以高效地实现可重构QC-LDPC解码器。与研究文献中现有的解决方案不同,QSN并非源自Benes拓扑结构,因此控制逻辑更简单,并且关键路径上的级数更少。因此,所提出的网络适用于ASIC和FPGA实现低开销、快速循环移位网络来解码QC-LDPC码

猜你喜欢

转载自blog.csdn.net/claylovetoo/article/details/131500511
今日推荐