CN101803210B - 使用块结构奇偶校验矩阵来提供半并行低密度奇偶校验解码的方法、装置和设备 - Google Patents

使用块结构奇偶校验矩阵来提供半并行低密度奇偶校验解码的方法、装置和设备 Download PDF

Info

Publication number
CN101803210B
CN101803210B CN200880107168.5A CN200880107168A CN101803210B CN 101803210 B CN101803210 B CN 101803210B CN 200880107168 A CN200880107168 A CN 200880107168A CN 101803210 B CN101803210 B CN 101803210B
Authority
CN
China
Prior art keywords
block
data
memory
decoding
shift value
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.)
Expired - Fee Related
Application number
CN200880107168.5A
Other languages
English (en)
Other versions
CN101803210A (zh
Inventor
P·拉多萨维尔杰维克
M·卡库蒂
A·德贝纳斯特
J·R·卡瓦拉罗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Inc
Original Assignee
Core Wiresless Licensing SARL
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Core Wiresless Licensing SARL filed Critical Core Wiresless Licensing SARL
Publication of CN101803210A publication Critical patent/CN101803210A/zh
Application granted granted Critical
Publication of CN101803210B publication Critical patent/CN101803210B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/114Shuffled, staggered, layered or turbo decoding schedules
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/65Purpose and implementation aspects
    • H03M13/6566Implementations concerning memory access contentions

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本发明涉及低密度奇偶校验解码。描述了一种用于对已编码数据块进行解码的方法。存储包括数据子块的已编码数据块。使用非正则的块结构奇偶校验矩阵、以流水线方式执行解码,其中在多个时钟周期的每个中读取和写入奇偶校验矩阵的至少两个数据子块矩阵。数据子块的读取和写入均匀分布在存储器的至少两个区域之间。利用移位值执行解码,该移位值消除了处于或低于预定阈值长度的周期。还描述了装置、计算机程序产品和设备。

Description

使用块结构奇偶校验矩阵来提供半并行低密度奇偶校验解码的方法、装置和设备
技术领域
本发明的示例性实施方式总体涉及无线通信系统,并且更具体地涉及无线通信系统中的低密度奇偶校验解码。 
背景技术
在说明书和/或附图中出现的某些缩写在此定义如下: 
AN     接入节点 
APP    后验概率 
ASIC   专用集成电路 
BP     置信传播 
DFU    解码功能单元 
DP     数据处理器 
DSP    数字信号处理器 
FEC    前向纠错 
FER    误帧率 
FPGA   现场可编程门阵列 
LBP    分层置信传播 
LDPC   低密度奇偶校验 
MEM    存储器 
PCM    奇偶校验矩阵 
PROG   程序 
RF     射频 
RX     接收机 
SBP    标准置信传播 
SNR   信噪比 
TRANS 收发机 
TX    发射机 
UE    用户设备 
WiMAX微波存取全球互通 
在典型的无线通信系统中,硬件资源是有限的(例如,完全并行的架构是不可接受的方案,因为占用了大面积的芯片并且具有小的灵活性或没有灵活性),因此应用基于LBP的解码。与SBP解码算法相比,LBP解码算法的主要优势在于LBP解码算法表征为收敛约为SBP解码算法的两倍快,这是由于对可靠性消息的调度得到了优化。 
在逐层改进了APP的层中(例如,独立的PCM行集合)执行解码。当之前层的APP更新时下一层中的解码过程将开始。 
参见Signal Processing Systems SIPS 2004中D.Hocevar的“Areduced complexity decoder architecture via layered decoding of LDPCcodes”IEEE Workshop上,107-112页,2004年10月;M.Mansour和N.Shanbhag的“High-throughput LDPC decoders”,Very Large ScaleIntegration(VLSI)Systems,IEEE Transactions上,vol.11,976-996页,2003年12月;以及P.Radosavljevic、A.de Baynast和J.R.Cavallaro的“Optimized message passing schedules for LDPC decoding.”,39thAsilomar Conference on Signals,Systems and Computers,2005年11月。 
在S.Chung、T.Richardson和R.Urbanke的“Analysis ofsum-produce decoding of low-density parity-check codes using aGaussian approximation”,IEEE Trans.Inform.Theory,vol.47,657-670页,2001年2月中,提出了随机PCM的的优化。该优化等同于优化随机PCM的简档。该简档由两个多项式定义,ρ(x)和λ(x),该两个多项式表征了PCM的列和行的权重分布,该PCM通过密度演化分析来优化。 
另一方面,Mansour提出了架构感知(architecture-aware)PCM设计,从而在硬件资源和解码吞吐量之间实现了可接受的折中。PCM是块结构,在该块结构中,每个子块是移位单位矩阵。仅考虑正则码,并且因此误码率/误帧率性能相对差。进一步的参考参见:A.Prabhakar、K.Narayanan的“Pseudorandom construction of low-densityparity-check codes using linear congruential sequences”,IEEETransactions on Communications,Volume 50,Issue 9,1389-1936页,2002年9月。 
为了支持IEEE 802.11n无线和WiMAX标准,LDPC解码器应该在使用有限的硬件并行度(半并行解码器)时实现约1G比特/秒的解码吞吐量。解码器架构需要是可扩展的,从而支持对多种码率和码字大小的解码。在IEEE 802.11n标准中提出了具有24个子块列的块结构奇偶校验矩阵,并且因此解码器架构应该对其进行支持。 
虽然具有随机PCM的完全并行架构可以实现高吞吐量,但是其极大地受制于大面积占用,因为受支持的PCM不是架构感知的。为了减小解码器面积,已经利用了用于半并行架构的块结构PCM。然而,为了实现吉比特/秒的吞吐量,应该利用更紧的架构感知约束来优化PCM。 
发明内容
根据本发明一个示例性实施方式的是一种用于对已编码数据块进行解码的方法。存储包括数据子块的已编码数据块。使用非正则的块结构奇偶校验矩阵、以流水线方式执行解码。可以在多个时钟周期的每个中读取和写入PCM的至少两个子块矩阵。数据子块的读取和写入均匀分布在存储器的至少两个区域之间。利用消除处于或低于预定阈值长度的周期的移位值来执行解码。 
根据本发明又一示例性实施方式的是一种用于对已编码数据块进行解码的装置。该装置具有用于存储包括数据子块的已编码数据块的存储器。该装置具有处理器,用于使用非正则的块结构奇偶校 验矩阵、以流水线方式对数据块进行解码。可以在多个时钟周期的每个中读取和写入PCM的至少两个子块矩阵。所述数据子块的读取和写入均匀分布在存储器的至少两个区域之间。利用消除处于或低于预定阈值长度的周期的移位值来执行解码。 
根据本发明另一示例性实施方式的是一种有形地包含有机器可读指令程序的计算机可读介质,所述机器可读指令程序可由数字处理装置执行以执行用于对已编码数据块进行解码的操作。存储包括数据子块的已编码数据块。使用非正则的块结构奇偶校验矩阵、以流水线方式对数据块进行解码。可以在多个时钟周期的每个中读取和写入PCM的至少两个子块矩阵。数据子块的读取和写入均匀分布在存储器的至少两个区域之间。利用消除处于或低于预定阈值长度的周期的移位值来执行解码。 
根据本发明又一示例性实施方式的是一种用于对已编码数据块进行解码的设备。该设备具有用于存储包括数据子块的已编码数据块的至少两个装置。此外,该设备具有用于使用块结构奇偶校验矩阵、以流水线方式对数据块进行解码的装置,其中可以在多个时钟周期的每个中读取和写入PCM的至少两个子块矩阵。数据子块的读取和写入均匀分布在至少两个存储装置之间。利用消除处于或低于预定阈值长度的周期的移位值来执行解码。 
附图说明
当结合附图阅读时,本发明实施方式的前述和其他方面在以下详细描述中将变得明显,在附图中: 
图1示出了等式(1)到(7)。 
图2示出了适于实现本发明示例性实施方式的各种电子设备的简化框图。 
图3示出了针对给定的码率,块结构码和随机LDPC码之间以dB计的间隔的图示。 
图4示出了块结构非正则奇偶校验矩阵。 
图5示出了根据本发明一个实施方式的APP存储器的组织。 
图6示出了根据本发明一个实施方式的ROM模块的实现。 
图7示出了根据本发明一个实施方式的校验存储器的示例。 
图8示出了根据本发明一个实施方式的LDPC解码器的框图。 
图9示出了根据本发明一个实施方式的DFU的框图。 
图10示出了根据本发明一个实施方式的缩减换码器的框图。 
图11示出了针对不同码率的时钟周期中每次解码迭代的处理延迟。 
图12示出了针对多个码字长度的解码吞吐量对码率的图示。 
图13示出了针对不同的迭代最大次数、码大小1944、码率1/2的FER对SNR的图示。 
图14示出了针对不同的迭代最大次数、码大小1944、码率5/6的FER对SNR的图示。 
图15示出了针对预定次数的迭代的可获得的最小吞吐量的图示。 
图16示出了根据本发明一个实施方式的方法。 
具体实施方式
根据本发明的实施方式克服了与架构感知PCM相关联的问题,同时保持与利用随机PCM时相同的纠错能力。这些实施方式可以使得半并行解码器架构能够实现约1G比特/秒的平均解码吞吐量。 
根据本发明的实施方式结合了架构感知块结构PCM。这些适于在面积优化(area efficient)半并行LDPC解码器中实现的PCM支持高的解码吞吐量(例如,高于1G比特/秒)而不缺乏纠错能力。PCM可以结合多个架构感知约束:诸如:子块矩阵的最小大小(例如,移位的单位矩阵)、用于面积优化解码器设计的移位值的有限集、用于存储器吞吐量增长的每层等分布的奇/偶非零块列,以及用于线性编码的冗余部分的上三角结构(例如,仅具有沿对角线及其上部的非零元素)。 
为了具有容量逼近(capacity-approaching)的性能,可以优化非零子矩阵的移位值以限制短长度周期的数量(例如,长度为4、6和8的周期)。而且,可以借助明确地考虑PCM的块结构,通过密度演化分析来优化码简档。 
对用于示出适于实现本发明示例性实施方式的各种电子设备的简化框图的图2进行参考。在图2中,无线网络212适于经由接入节点(AN)216来与用户设备(UE)214进行通信。UE 214包括数据处理器(DP)218、耦合至DP 218的存储器(MEM)220以及耦合至DP 218的合适的RF收发机(TRANS)222(具有发射机(TX)和接收机(RX))。MEM 2420存储程序(PROG)224。TRANS 222用于与AN 216的双向无线通信。注意,TRANS 222具有至少一个用于促进通信的天线。 
AN 216包括DP 226、耦合至DP 226的MEM 228以及耦合至DP 226的合适的RF TRANS 230(具有TX和RX)。MEM 228存储PROG 232。TRANS 230用于与UE 214进行双向无线通信。注意,TRANS 230具有至少一个用于促进通信的天线。AN 216经由数据路径234耦合至一个或多个外部网络或系统,诸如因特网236。 
假设PROG 224、232中的至少一个包括程序指令,当这些指令由相关联的DP执行时,使得电子设备能够根据本发明示例性实施方式进行操作,如上所述。 
通常,UE 214的各种实施方式可以包括但不限于:蜂窝电话、具有无线通信功能的个人数字助理(PDA)、具有无线通信功能的的便携式计算机、具有无线通信功能的诸如数字照相机的图像捕捉设备、具有无线通信功能的游戏设备、具有无线通信功能的音乐存储和回放设备、允许无线因特网访问和浏览的因特网设备以及集成此类功能组合的便携式单元或终端。 
本发明的实施方式可以通过由UE 214的DP 218和AN 216的DP 226中的一个或多个可执行的计算机软件、或通过硬件、或通过软件和硬件的组合来实现。 
MEM 220、228可以是适合本地技术环境的任何类型,并且可以使用任何合适的数据存储技术来实现,作为非限制性示例,存储技术诸如基于半导体的存储器设备、磁性存储器设备和系统、光学存储器设备和系统、固定存储器和可移动存储器。DP 218、226可以是适合本地技术环境的任何类型,并且作为非限制性示例可以包括通用计算机、专用计算机、微处理器、数字信号处理器(DSP)和基于多核处理器架构的处理器中的一个或多个。 
如在上面讨论的以及针对示例性方法特别描述的本发明的示例性实施方式可以实现为包括实现具体化在计算机可读介质上的程序指令的计算机程序产品。执行该程序指令导致包括利用示例性实施方式的步骤或方法步骤的操作。 
通常,各种实施方式可以以硬件或专用电路、软件、逻辑或其任何组合实现。例如,某些方面可以以硬件实现,而其他方面可以以由控制器、微处理器或其他计算设备执行的固件或软件实现,但是本发明不限于此。虽然可以将本发明的各个方面示出以及描述为框图、流程图或使用某些其他图形化表示,但是应该理解,作为非限制性示例,这里描述的这些框、装置、系统、技术或方法可以以硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备或其某些组合来实现。 
块结构非正则PCM适于以高解码吞吐量(例如,高于1G比特/秒的平均吞吐量)在半并行LDPC解码器中实现,并且同时保持与利用随机PCM时相同的纠错性能。 
PCM可以利用架构感知约束进行设计,诸如: 
a)为了减小换码器的大小而使用子块矩阵中移位值的有限集,同时避免了出现短周期,并且允许面积优化解码器设计。 
b)为了增大存储器吞吐量,可以使用每层等分布的奇/偶非零块列。通过支持从PCM的两个子块同时读/写可靠性消息来大幅度地增加吞吐量。在设计PCM时避免存储器访问冲突,从而可以将所有消息存储到两个独立存储器模块中。例如,属于奇数块列的所有消 息存储在一个存储器模块中,而来自于偶数块列的所有消息存储在另一模块中。 
可以通过将新成本函数最小化以消除/减小短长度周期(例如,长度为4、6和8)的数量,来优化移位值(例如,来自于可能值的缩减集)。 
可以借助于明确地考虑PCM的块结构、通过密度演化分析来优化PCM简档。此简档与利用随机矩阵获得的简档有些许不同。由于密度演化分析不依赖于移位值,所以大大简化了该优化。 
根据本发明一个实施方式的PCM设计不改变LDPC解码的收敛速度。利用此类LDPC码可以实现高并行度,而没有任何性能损失。该并行度高于利用Turbo码实现的并行度。 
LDPC码的架构感知优化导致块结构PCM适于半并行高吞吐量解码器设计。为了快速原型开发和功能验证,根据本发明一个实施方式的解码器最初可以实现在FPGA(例如,使用Xilinx系统生成器设计工具)上。作为目标的高吞吐量LDPC解码器也可以设计为ASCI方案。与FPGA实现相比,可以实现更高吞吐量(ASIC可以提供快速时钟速度)和明显更小的门数和功率耗散。定点实现可以用于解码器设计。算术精度可以是7或8比特,这取决于在与浮点实现的误码率性能进行比较时可接受的性能损失。 
根据本发明一个实施方式的码优化策略导致与IEEE 802.11n和WiMAX标准兼容的块结构PCM。块结构PCM代表增加这些标准吞吐量的优良备选方案。 
根据本发明一个实施方式的PCM设计提供很多益处,包括LDPC码的架构感知优化。块结构PCM适于架构优化的半并行高吞吐量解码器。此类PCM还结合了优秀的纠错能力。短周期的数量可以显著减少,使得纠错性能可以与随机PCM相媲美。此类PCM允许在单个时钟周期中读/写APP消息的两个子块,而没有存储器冲突。面积优化可以通过种子PCM中可能移位值的有限集提供。这允许显著地简化的换码器设计。 
可以通过两个多项式λ(x)和ρ(x)来描述随机PCM。沿着列,λi描述了连接至度为i的比特节点的边的分数,并且沿着行,ρi描述了连接至度为i的校验节点的边的分数。随机PCM具有优秀的渐近性能,但是缺乏并行度,而且使用了复杂的存储器访问。因此,随机PCM在实际中可能不能容易地使用。参见:T.Richardson、A.Shokrollahi和R.Urbanke的“Design of capacity approaching irregularlow-density parity-check codes”,IEEE Trans.Inform.Theory,vol 47,第619-637页,2001年2月。 
块结构PCM可以通过简档定义,诸如:两个多项式,λ’(x)和ρ’(x)以及seed_matrix(种子矩阵)Hseed,其包含子块的非零移位值。参见:R.M.Tanner的“A recursive approach to low complexity codes”IEEE Transactions on Information Theory,vol.27,第533-547页,1981年9月,以及A.Prabhakar、K.Narayanan的“Pseudorandomconstruction of low-density parity-check codes using linear congruentialsequences”IEEE Transactions on Communications,Volume 50,Issue9,第1389-1396页,2002年9月。 
块结构PCM由于特定的并行度水平而提供高解码吞吐量。它们还支持近似最佳的渐近性能。参见14th European Signal ProcessingConference(EUSIPCO),2006年9月中P.Radosavljevic、A de Baynast、M.Karkooti和J.R.Cavallaro的“High-throughput multi-rate LDPCdecoder based on architecture-oriented parity check matrices”。 
当生成子块结构的PCM时,可以优化移位值以减少短周期的数量,例如,PCM内长度为4、6和8的周期。减少这些周期的数量显著降低了FER性能曲线中的错误基底,并且增强了解码的收敛速度。适当的码设计为短的和适中的码字大小(例如,1000-3000比特)提供了良好的差错率性能。此外,可以通过对块结构PCM执行密度演化分析来优化Hseed。根据本发明一个实施方式的PCM不具有任何长度为4的周期,并且长度为6的周期至少比随机约束的长度为6的周期少40%。参见14th European Signal Processing Conference (EUSIPCO),2006年9月中P.Radosavljevic、A de Baynast、M.Karkooti和J.R.Cavallaro的“High-throughput multi-rate LDPC decoder basedon architecture-oriented parity check matrices”。 
对于给定的码率R和码字大小N,子块数量Nc给定为Nc=N/S,具有S×S个子块。子块的数量必须认真考虑。数量越多的子块提供的简档越好。然而,子块的数量越小则支持越容易的短周期移除和归因于更高并行度的越高的吞吐量。平衡这些因素支持为给定的码字大小和目标吞吐量选择合适的子块大小。 
针对Hseed的任何不同元素A、B、C和D,在A、B、C、D中存在长度为4的周期C4的概率由如图1所示的等式(1)给出。Hseed中长度为4的周期的平均数量可以表示为如图1所示的等式(2)。A属于长度为4的周期的概率由如图1所示的等式(3)给出。包括A的长度为4的周期的平均数量可以表示为如图1所示的等式(4)。 
参见14th European Signal Processing Conference(EUSIPCO),2006年9月中P.Radosavljevic、A de Baynast、M.Karkooti和J.R.Cavallaro的“High-throughput multi-rate LDPC decoder based onarchitecture-oriented parity check matrices”。 
全PCM矩阵中的周期数量由如图1所示的等式(5)给出。{α1,α2,α3,α4}表示Hseed的周期ABCD中的移位值。参见K.S.Kim、S.H.Lee、Y.H.Kim、J.Y.Ahn的″Design of binary LDPC code usingcyclic shift matrices″,Electronics Letters,Volume 40,Issue 5,第325-326页,2004年3月。 
移位值的总数量应该至少等于如图1所示的等式(6)。这支持移除PCM中所有长度为4的周期。参见:14th European SignalProcessing Conference(EUSIPCO),2006年9月中P.Radosavljevic、Ade Baynast、M.Karkooti和J.R.Cavallaro的“High-throughputmulti-rate LDPC decoder based on architecture-oriented parity checkmatrices”。 
可以通过对块结构PCM执行密度演化分析来优化Hseed。对于标 准的密度演化分析,简档可以由两个多项式λ(x)和ρ(x)给出,其中λi是连接至度为i的比特节点的边的比例,ρj是连接至度为j的校验节点的边的比例。可以对此进行扩展,从而λij是连接在度为i的比特节点和度为j的校验节点之间的边的比例。可以将相同的密度演化等式用于随机和块结构码。 
图3示出了针对给定的码率,块结构码和随机LDPC码之间以dB计的间隔的图示。该图示出了针对具有24个子块列的PCM的小于0.4dB的差错率性能损失,以及针对具有48个子块列的PCM的小于0.07dB的差错率性能损失。 
等式(4)和(5)可以扩展到任何周期长度(例如,6,8)。使用等式(6),可以确定移除所有长度为4的周期所需的最小数量的移位值。 
密度演化算法可以被扩展以考虑码的块结构。架构感知优化约束允许PCM冗余部分的上三角结构以达到简化编码的目的,以及为了存储器吞吐量增长而允许信息部分中等分布的奇偶非零块列位置。 
根据本发明一个实施方式的LDPC可以支持具有架构感知约束的块结构PCM。由于PCM的特殊结构,可以实现高解码吞吐量,该特定结构允许在每个时钟周期从两个子块矩阵读/写APP和校验消息并且对三个PCM层进行流水线化。面积优化半并行解码器实现利用归因于PCM中的移位值有限集而缩减大小的换码器,并且支持每一层的全处理并行度。 
存储器可以在两个APP存储器模块中分为24个块列。APP块列对可以在每个时钟周期中被读/写。这允许在每个时钟周期中读/写两个APP块列而没有存储器冲突。图4示出了具有2/3码率的典型块结构PCM。 
图5、图6和图7描述了根据本发明一个实施方式的LDPC解码器的存储器组织。在这些示例中,使用一个读存储器端口和一个写存储器端口。 
图5示出了分为两个子模块的APP存储器的组织。在每个存储器模块中,可以存储PCM块列的一半(例如,奇数或偶数块列)。 
每个模块可以具有12个块列并且因此深度为12。一个块列中的APP消息的数量由S给出,S为块列的宽度。二的补码可以用于可靠性消息(APP消息和校验消息)的定点表示。可以支持任何定点算术精度。 
图6示出了根据本发明的、包含连续读/写APP块列的非零位置和移位值(例如,原始值或相对值)的ROM模块的实现。 
两个ROM模块中的每个专门针对一个特定的APP模块。这些模块提供非零块列的位置(例如,从1到24)以及相应单位矩阵的移位值。块列的位置是APP存储器模块的下一读/写地址。 
可以使用两个附加ROM模块。这些模块可以存储相对移位值而不是原始移位值。相对移位值提供与同一块列的之前移位值的相对差。原始移位值在第一迭代中使用。这防止了APP消息在存储器写入之前的置换。 
块结构PCM可以具有等分布的奇和偶非零块列位置。这允许一个模块包含来自于奇数块列的APP消息,并且允许第二模块包含来自于偶数块列的APP消息。 
图7示出了校验存储器的组织。一个校验存储器位置可以包含来自于两个连续块矩阵的消息。 
校验存储器的组织不依赖于读/写APP块列的顺序。其被全部初始化为零;因而,校验消息位置与特定块列无关。校验存储器位置可以包含来自于两个非零子矩阵的消息。在某些实现中,校验存储器可以分为子模块,其便于解码器的可扩展性,并且提供对可变码字大小的支持。 
图8、图9和图10示出了高吞吐量LDPC解码器、解码功能单元和精简的换码器的详细框图,所有这些都是根据本发明的一个实施方式。 
图8示出了根据本发明一个实施方式的LDPC解码器800的框 图。此类解码器可以利用硬件资源,诸如:S解码功能单元860,其用于实现每一层的全解码并行度,其中在该层中存在S行;两个校验存储器850和855(例如用于促进将层流水线化的镜像855)、四个APP模块810和815,包括APP镜像存储器815以及用于在从存储器进行读取后对APP消息进行块移位的换码器820。 
控制器840提供控制逻辑,该控制逻辑控制对校验存储器850和855的寻址,以及对ROM模块831、833、836和838的寻址(用于对APP存储器模块进行寻址,并且确定用于置换的移位值)并且在S个并行DFU 860内部进行处理。当行连接度WR是奇数时,每个时钟周期的一个块列可以从APP模块810和815读取以及向其进行写入。可以将读/写调度成为层中的最后一个(例如,最后的时钟周期)。校验消息的两个子块可以自动从APP模块850和855读取并向其进行写入,但是校验存储器位置的第二半可能不是有效的。因此,控制器840中的控制逻辑可以禁用DFU860内的某些算术FU和四个换码器820中的两个。ROM1 831和836以及ROM2 833和838可以在一次解码迭代的末尾处被完全读取。附加的ROM(未示出)可以用于存储用于每层的WR值。 
此类换码器820在写APP消息之前不使用逆向置换(reversepermutation)。而且,换码器820具有归因于三个流水线阶段的三个时钟周期的总延迟,其中S 2:1 MUX的两个阶段确定一个流水线阶段。 
图9示出了根据本发明一个实施方式的DFU 860的框图。该图示出了用于对一个PCM行进行解码的三个流水线阶段的实现(读、处理和写阶段)。三个连续层内的行可以同时被解码。在每个时钟周期中,将两个APP消息和两个校验消息加载到单个DFU中,并且在每个时钟周期中,更新两个校验消息和两个APP消息。DFU 860支持每个时钟周期对两个子块矩阵(APP和校验消息的块)的读/写。允许三个流水线阶段:读、处理和写阶段。可以使用串行最小和功能单元910来实现最小和近似(例如,对两个最小消息的串行搜索)。 
图10示出了根据本发明一个实施方式的换码器820的框图。块结构PCM的种子矩阵具有移位值的有限集(例如,从1到15)。换码器820具有2:1 MUX 1010的四个阶段。两个附加的“翻转逻辑(flip-logic)”阶段(S×2:1 MUX 1020)执行两个方向上的块移位(例如,其中相对偏移介于1和5之间或介于-15和-1之间)。输入和输出阶段中的附加“翻转逻辑”用于支持左右两个方向上的块偏移。对于输入“翻转逻辑”来说,此类逻辑逆转APP消息的顺序:第一消息成为第S个消息,第二消息成为第(S-1)个消息等,对于输出“翻转逻辑”来说,反之亦然。如果相对移位偏移是负的(例如,介于-15和-1之间),则可以利用该逻辑。 
可以估计用于解码器800的算术部分的标准ASIC门的数量,其中解码器800的算术部分包括DFU 860和换码器820。在非限制性示例中,使用1944比特(因此S是81)的码字大小以及8比特二的补码定点算术精度,门的总数量约为235K个门。这仅在支持每时钟周期读/写两个块矩阵的面积中近乎增加了1.46。81个DFU等同于189K个门,其中96K个门用于处理两个块矩阵。四个精简换码器中的每个具有约11.6K个门,这是与典型换码器33.6K个门相比较而言的。精简的换码器在支持高达80个的所有移位值时提供了显著的面积减小。应该理解,根据本发明一个实施方式的解码器可以支持任何二的补码的定点算术精度。 
高解码吞吐量(例如,约平均1G比特/秒)可以通过使用半并行架构的有限硬件资源实现。通过以下操作提供高吞吐量:在每个时钟周期中读/写两个子块矩阵(例如,APP和校验消息块);每一个PCM层的全处理并行度;以及对三个连续层实现流水线化。 
数据吞吐量基于每次迭代的解码延迟。三个流水线阶段具有它们的延迟:WR/2+5个时钟周期的读延迟(R);WR/2+6个时钟周期的处理延迟(P);和WR/2+4个时钟周期的写延迟(W)。由于层的流水线化,每次迭代的解码延迟可以确定为处理和写阶段的最大延迟,如等式(7)所示,其中L是层的总数量。读延迟不影响总 延迟,因为其与处理/写延迟重叠。 
实际上,处理延迟P和PCM中的层数量确定了每次迭代的延迟。处理延迟总是大于写延迟。由于每层的全解码并行度,每次迭代的解码延迟不依赖于码字大小,而是作为扩展,依赖于每层行的数量。每次迭代的解码延迟取决于码率。这在图11中示出。 
平均解码吞吐量基于获得10-4的FER的迭代的平均次数(其中解码迭代的最大次数设置为15)。平均的迭代次数还取决于码字大小和码率;这通常可以是五次迭代。使用200MHz时钟频率,与支持每个时钟周期读/写一个块矩阵的解码器相比,平均吞吐量大约增大1.54倍。参见示出针对多个码字长度的吞吐量对码率的图12。 
图13和图14示出了针对不同预定的迭代最大次数的FER性能对SNR。最大的解码迭代次数取决于多个因素,例如SNR、希望的FER等。图13示出了码率为1/2的示例。图14示出了码率为5/6的示例。 
图15示出了针对预定的最大次数的解码迭代的可获得的最小吞吐量的示例。在该示例中,最大解码迭代次数被设置为12。 
根据本发明一个实施方式的解码器通过使用移位值的有限集提供了对短周期的减少/移除。在与全随机PCM结构相比较时,执行该减少/移除仅具有差错率性能方面的边际损失。此外,此类解码器可以使用每层等分布的奇偶非零块列。由于每个周期从存储器模块读取两个子列或向其写入两个子列,而不引起APP存储器访问冲突。此类LDPC解码器提供了增加的吞吐量而具有有限的硬件开销。 
图16示出了根据本发明一个实施方式的、用于对已编码数据块进行解码的方法。在步骤1610中,存储包括数据子块的已编码数据块。在步骤1620中,使用非正则的块结构奇偶校验矩阵以流水线方式执行解码。可以在多个时钟周期的每个中读取和写入PCM的至少两个子块矩阵。数据子块的读取和写入均匀分布在至少两个存储器模块之间。利用消除处于或低于预定阈值长度的周期的移位值来执行解码。 
可以以诸如集成电路模块之类的各种组件实现本发明的实施方式。集成电路的设计总体上来说是高度自动化的过程。复杂和强有力的软件工具可用于将逻辑级设计转换为将被蚀刻以及形成在半导体衬底上的半导体电路设计。 
诸如那些由California、Mountain View的Synopsys公司和California、San Jose的Cadence Design提供的程序使用完善的设计规则以及预存储的设计模块库自动地在半导体芯片上布线以及定位组件。一旦完成了针对半导体电路的设计,则可以将标准化电子格式(例如,Opus、GDSII等)的最终设计传输到半导体工厂进行加工。 
前述描述已经通过示例和非限制性的方式提供了对本发明完全和信息性的描述。然而,当结合附图和所附权利要求书阅读时,根据前述描述,对于相关领域的技术人员来说,各种修改和变形可以变得明显。然而,对于本发明教导的所有此类和类似修改将仍旧落入本发明的范围内。 
此外,在不使用相应的其他特征时,本发明优选实施方式的某些特征可以有优势地使用。同样,前述描述将仅被视作对本发明原理的说明而不是对其的限制。 

Claims (25)

1.一种用于解码的方法,包括:
存储包括数据子块的已编码数据块;以及
使用非正则的块结构奇偶校验矩阵、以流水线方式对所述数据块进行解码,
此处通过将成本函数最小化以至少减小预定长度周期的数量,来优化数据子块中使用的移位值,
在多个时钟周期的每个中读取和写入所述奇偶校验矩阵的至少两个数据子块矩阵,以及
所述数据子块的读取和写入均匀分布在存储器的至少两个区域之间。
2.根据权利要求1所述的方法,其中流水线包括至少三层。
3.根据权利要求1所述的方法,其中利用换码器执行所述解码,所述换码器使用移位值存储器模块存储非零子块矩阵的位置和所述移位值/相对偏移量。
4.根据权利要求3所述的方法,其中所述移位值存储器模块包括只读存储器。
5.根据权利要求1所述的方法,其中所述预定长度是4、6和8中的一个。
6.根据权利要求1所述的方法,其中对于一个层存在全处理并行度。
7.根据权利要求1所述的方法,其中存储器的第一区域存储来自于所述奇偶校验矩阵的奇数块列的数据,并且存储器的第二区域存储来自于所述奇偶校验矩阵的偶数块列的数据。
8.根据权利要求1所述的方法,其中数据吞吐量至少是1G比特/秒。
9.一种用于解码的装置,包括:
存储器,配置用于存储包括数据子块的已编码数据块;
处理器,配置用于使用非正则的块结构奇偶校验矩阵、以流水线方式对所述数据块进行解码,
此处在多个时钟周期的每个中读取和写入所述奇偶校验矩阵的至少两个数据子块矩阵,
此处所述数据子块的读取和写入均匀分布在存储器的至少两个区域之间,以及
此处,通过将成本函数最小化以至少减小预定长度周期的数量,来优化数据子块中使用的移位值。
10.根据权利要求9所述的装置,其中流水线包括至少三层。
11.根据权利要求9所述的装置,其中利用换码器执行所述解码,所述换码器使用移位值存储器模块存储非零子块矩阵的位置和所述移位值/相对偏移量。
12.根据权利要求11所述的装置,其中所述移位值存储器模块包括只读存储器。
13.根据权利要求9所述的装置,其中所述预定长度是4、6和8中的一个。
14.根据权利要求9所述的装置,其中对于一个层存在全处理并行度。
15.根据权利要求9所述的装置,其中存储器的第一区域存储来自于所述奇偶校验矩阵的奇数块列的数据,并且存储器的第二区域存储来自于所述奇偶校验矩阵的偶数块列的数据。
16.根据权利要求9所述的装置,其中数据吞吐量至少是1G比特/秒。
17.根据权利要求9所述的装置,其中所述装置实现在至少一个集成电路中。
18.一种用于解码的设备,包括:
用于存储包括数据子块的已编码数据块的装置;以及
用于使用非正则的块结构奇偶校验矩阵、以流水线方式对所述数据块进行解码的装置,
此处在多个时钟周期的每个中读取和写入所述奇偶校验矩阵的至少两个数据子块矩阵,
此处所述数据子块的读取和写入均匀分布在存储器的至少两个区域之间,以及
此处通过将成本函数最小化以至少减小预定长度周期的数量,来优化数据子块中使用的移位值。
19.根据权利要求18所述的设备,其中流水线包括至少三层。
20.根据权利要求18所述的设备,其中利用换码器执行所述解码,所述换码器使用移位值存储器模块存储非零子块矩阵的位置和所述移位值/相对偏移量。
21.根据权利要求20所述的设备,其中所述移位值存储器模块包括只读存储器。
22.根据权利要求18所述的设备,其中对于一个层存在全处理并行度。
23.根据权利要求18所述的设备,其中存储器的第一区域存储来自于所述奇偶校验矩阵的奇数块列的数据,并且存储器的第二区域存储来自于所述奇偶校验矩阵的偶数块列的数据。
24.一种用于解码的设备,包括:
用于存储已编码数据块的数据子块的至少两个装置;
用于使用非正则的块结构奇偶校验矩阵、以流水线方式对所述数据块进行解码的装置,
此处在多个时钟周期的每个中读取和写入所述奇偶校验矩阵的至少两个数据子块矩阵,
此处所述数据子块的读取和写入均匀分布在至少两个存储装置之间,以及
此处,通过将成本函数最小化以至少减小预定长度周期的数量,来优化数据子块中使用的移位值。
25.根据权利要求24所述的设备,其中流水线包括至少三层。
CN200880107168.5A 2007-10-24 2008-10-24 使用块结构奇偶校验矩阵来提供半并行低密度奇偶校验解码的方法、装置和设备 Expired - Fee Related CN101803210B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/977,644 2007-10-24
US11/977,644 US8219876B2 (en) 2007-10-24 2007-10-24 Method, apparatus, computer program product and device providing semi-parallel low density parity check decoding using a block structured parity check matrix
PCT/IB2008/054412 WO2009053942A2 (en) 2007-10-24 2008-10-24 Method, apparatus, computer program product and device providing semi-parallel low density parity check decoding using a block structured parity check matrix

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN2013101369610A Division CN103227646A (zh) 2007-10-24 2008-10-24 使用块结构奇偶校验矩阵来提供半并行低密度奇偶校验解码的方法、装置和设备

Publications (2)

Publication Number Publication Date
CN101803210A CN101803210A (zh) 2010-08-11
CN101803210B true CN101803210B (zh) 2013-05-22

Family

ID=40481796

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2013101369610A Pending CN103227646A (zh) 2007-10-24 2008-10-24 使用块结构奇偶校验矩阵来提供半并行低密度奇偶校验解码的方法、装置和设备
CN200880107168.5A Expired - Fee Related CN101803210B (zh) 2007-10-24 2008-10-24 使用块结构奇偶校验矩阵来提供半并行低密度奇偶校验解码的方法、装置和设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN2013101369610A Pending CN103227646A (zh) 2007-10-24 2008-10-24 使用块结构奇偶校验矩阵来提供半并行低密度奇偶校验解码的方法、装置和设备

Country Status (4)

Country Link
US (2) US8219876B2 (zh)
CN (2) CN103227646A (zh)
TW (1) TW201320621A (zh)
WO (1) WO2009053942A2 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8386904B2 (en) * 2009-04-29 2013-02-26 Adeptence, Llc High speed low density parity check codes encoding and decoding
US8352846B2 (en) * 2009-05-07 2013-01-08 Adeptence, Llc Method an apparatus for low density parity check codes encoding and decoding
US8539301B2 (en) * 2009-10-21 2013-09-17 Nec Laboratories America, Inc. Message-wise unequal error protection
US10784901B2 (en) 2015-11-12 2020-09-22 Qualcomm Incorporated Puncturing for structured low density parity check (LDPC) codes
CN108370253B (zh) * 2015-12-24 2022-05-03 英特尔公司 用于低密度奇偶校验解码的混合式调度和基于锁存器的流水线
US10200066B2 (en) * 2016-03-09 2019-02-05 SK Hynix Inc. Code reconstruction scheme for multiple code rate TPC decoder
US10469104B2 (en) 2016-06-14 2019-11-05 Qualcomm Incorporated Methods and apparatus for compactly describing lifted low-density parity-check (LDPC) codes
US10116333B2 (en) * 2016-07-29 2018-10-30 Sandisk Technologies Llc Decoder with parallel decoding paths
US10270466B2 (en) * 2016-08-15 2019-04-23 Hughes Network Systems, Llc LDPC performance improvement using SBE-LBD decoding method and LBD collision reduction
US10778371B2 (en) * 2016-11-02 2020-09-15 Qualcomm Incorporated Deeply-pipelined high-throughput LDPC decoder architecture
CN106849957A (zh) * 2016-12-30 2017-06-13 北京联想核芯科技有限公司 编码方法和装置
US10340949B2 (en) * 2017-02-06 2019-07-02 Qualcomm Incorporated Multiple low density parity check (LDPC) base graph design
US10312939B2 (en) 2017-06-10 2019-06-04 Qualcomm Incorporated Communication techniques involving pairwise orthogonality of adjacent rows in LPDC code
CN110322523A (zh) * 2018-03-31 2019-10-11 深圳忆联信息系统有限公司 编码方法和装置
CN112636767B (zh) * 2020-12-03 2023-04-07 重庆邮电大学 一种具有单置换网络的分层半并行ldpc译码器系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1905374A (zh) * 2005-07-25 2007-01-31 松下电器产业株式会社 非对称低密度校验码编译码方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100809619B1 (ko) * 2003-08-26 2008-03-05 삼성전자주식회사 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법
US7581157B2 (en) * 2004-06-24 2009-08-25 Lg Electronics Inc. Method and apparatus of encoding and decoding data using low density parity check code in a wireless communication system
US7549105B2 (en) * 2005-01-10 2009-06-16 Broadcom Corporation Construction of irregular LDPC (low density parity check) codes using RS (Reed-Solomon) codes or GRS (generalized Reed-Solomon) code
US7516390B2 (en) * 2005-01-10 2009-04-07 Broadcom Corporation LDPC (Low Density Parity Check) coding and interleaving implemented in MIMO communication systems
CN100486150C (zh) * 2005-01-23 2009-05-06 中兴通讯股份有限公司 基于非正则低密度奇偶校验码的编译码器及其生成方法
US7441178B2 (en) * 2005-02-24 2008-10-21 Keyeye Communications Low complexity decoding of low density parity check codes
US8181083B2 (en) * 2007-08-27 2012-05-15 Stmicroelectronics S.R.L. Methods and architectures for layered decoding of LDPC codes with minimum latency
KR101077552B1 (ko) * 2007-12-14 2011-10-28 한국전자통신연구원 복수의 기본 패리티 검사행렬을 이용한 저밀도 패리티 검사부호의 복호화 장치 및 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1905374A (zh) * 2005-07-25 2007-01-31 松下电器产业株式会社 非对称低密度校验码编译码方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PREDRAG RADOSAVLJEVIC等.HIGH-THROUGHPUT MULTI-RATE LDPC DECODER BASED ON ARCHITECTURE-ORIENTED PARITY CHECK MATRICES.《14th European Signal ProcessingConference(EUSIPCO)》.2006, *

Also Published As

Publication number Publication date
US8219876B2 (en) 2012-07-10
CN101803210A (zh) 2010-08-11
CN103227646A (zh) 2013-07-31
WO2009053942A3 (en) 2009-06-11
TW201320621A (zh) 2013-05-16
US20120240003A1 (en) 2012-09-20
US20090113276A1 (en) 2009-04-30
US8869003B2 (en) 2014-10-21
WO2009053942A2 (en) 2009-04-30

Similar Documents

Publication Publication Date Title
CN101803210B (zh) 使用块结构奇偶校验矩阵来提供半并行低密度奇偶校验解码的方法、装置和设备
US11368168B2 (en) Low density parity check decoder
US9391639B2 (en) LDPC multi-decoder architectures
Wang et al. Low-complexity high-speed decoder design for quasi-cyclic LDPC codes
US8578256B2 (en) Low-latency decoder
US9544090B2 (en) Hard input low density parity check decoder
US10367527B2 (en) Method and apparatus for reducing idle cycles during LDPC decoding
CN107370490B (zh) 结构化ldpc的编码、译码方法及装置
US20090113256A1 (en) Method, computer program product, apparatus and device providing scalable structured high throughput LDPC decoding
Tsatsaragkos et al. A reconfigurable LDPC decoder optimized for 802.11 n/ac applications
US10374633B2 (en) Method and system for LDPC decoding
US20220255560A1 (en) Method and apparatus for vertical layered decoding of quasi-cyclic low-density parity check codes built from clusters of circulant permutation matrices
Liao et al. A (21150, 19050) GC-LDPC decoder for NAND flash applications
US10727869B1 (en) Efficient method for packing low-density parity-check (LDPC) decode operations
Tsatsaragkos et al. A flexible layered LDPC decoder
TWI387211B (zh) 使用區塊結構化同位核對矩陣以提供半平行低密度同位核對解碼之方法、設備、電腦程式產品及裝置
Roberts et al. A Power-and area-efficient multirate quasi-cyclic LDPC decoder

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: NOKIA 2011 PATENT TRUST COMPANY

Free format text: FORMER OWNER: NOKIA OY

Effective date: 20120328

C41 Transfer of patent application or patent right or utility model
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: Delaware

Applicant after: 2011 Intellectual Property Asset Trust

Address before: Delaware

Applicant before: NOKIA 2011 patent trust

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: NOKIA 2011 PATENT TRUST COMPANY TO: 2011 INTELLECTUAL PROPERTY ASSETS TRUST CO.

TA01 Transfer of patent application right

Effective date of registration: 20120328

Address after: Delaware

Applicant after: NOKIA 2011 patent trust

Address before: Espoo, Finland

Applicant before: NOKIA Corp.

ASS Succession or assignment of patent right

Owner name: CORE WIRELESS LICENSING S.A.R.L.

Free format text: FORMER OWNER: 2011 INTELLECTUAL PROPERTY ASSET TRUST CORPORATION

Effective date: 20120425

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20120425

Address after: Luxemburg Luxemburg

Applicant after: NOKIA Inc.

Address before: Delaware

Applicant before: 2011 Intellectual Property Asset Trust

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130522

Termination date: 20161024