专利名称::一种基于simd结构的多标准ldpc译码器电路的制作方法
技术领域:
:本发明涉及一种译码器电路,尤其涉及一种基于SIMD(singleinstructionmultipledata)结构的多标准LDPC译码器电路。
背景技术:
:在高速无线数字通信系统中,LDPC码(LowDensityParityCheckCodes低密度奇偶校验码)作为前向纠错码(ForwardErrorCorrection)中重要的一种,具有最接近香农极限的译码性能,且其具有并行处理所能提供的极高的数据吞吐率,被广泛应用到众多无线通信标准中,并有望成为未来无线通信标准中最主要的信道纠错码方案。宽带无线接入领域的IEEE802.1In(WLAN)和正EE802.16e(WiMAX),数字多媒体广播领域的欧洲数字电视卫星传输标准(DVB-S2),中国数字电视地面传输标准(DTMB)和适用于手持移动设备的中国移动多媒体广播标准(CMMB)等众多无线通信标准的出现,要求当前的用户终端接收设备能够支持多种通信标准,接收来自不同通信标准传输的信号。因此,终端接收设备中能够支持多标准的LDPC译码器也就逐渐成为目前研究的热点和需求。当前绝大多数LDPC译码器都采用单一的通信标准,并通过采用TPMP(TwoPhaseMessagePassing)算法或TDMP(TurboDecodingMessagePassing)算法硬件实现。大致可分为以下三种硬件结构设计方式①以LDPC码校验矩阵为基础完全展开的全并行结构LDPC译码器实现方式;②以分块LPDC码(Block-LDPCCodes)为基础采用部分并行展开,处理单元采用并行的实现方式;③以分块LDPC码为基础采用部分并行展开,处理单元采用串行处理的实现方式。但以上三种硬件设计方法在多标准LDPC译码器设计方向都有其缺陷与不足方法①只适用于TPMP算法,不适用于变码率、变码长硬件结构设计,且硬件实现随着码长增加越趋复杂;方法②中处理单元的并行性,在实现多码率结构上也存在缺陷,同时受到分块LDPC码结构的限制;方法③由于处理单元采用串行处理,适用于变码率、变码长硬件设计,但其硬件结构缺乏灵活性,在多标准LDPC译码器设计上存在困难。申请号为200710044715.7—种多码率非规则LDPC码解码器中公开的技术放案中,采用部分并行的VLSI(verylargescaleintegration)系统整体架构,其运算逻辑采用横向处理单元和纵向处理单元的实现方式,系统采用12组横向处理单元、59个纵向处理单元及其他输入、输出缓存、中间数据存储器等。此种方案只适用于单一通讯标准应用,且存在不利于精简电路设计的问题。基于上述种种问题,本发明提出了一种基SIMD结构的多标准LDPC译码器,能实现码率、码长灵活可配置,满足多标准应用的需求,同时能够保证提高硬件电路的利用率,降低译码器芯片设计面积的需求。
发明内容本发明目的为提供一种适合多标准通讯,码率、码长灵活配置,同时保证译码器硬件电路的利用率的LDPC译码器电路。为实现上述发明目的,本发明提供一种SIMD结构的多标准LDPC译码器电路,由输入缓冲单元、主控制器、指令存储器、本征信息存储器、后验信息存储器、外信息存储器、奇偶校验和输出缓冲单元及处理单元阵列构成。处理单元阵列由多个并行的处理单元PU(processingunit)构成,处理单元PU采用串行处理方式的VLSI硬件架构。输入缓冲单元,用于接收来自信道的本征信息量化值。主控制器,用于实现整个译码器的控制功能。如从指令控制器读取指令,发送指令到控制单元,控制输入端数据缓冲、迭代译码、数据输出等。指令存储器,用于存储专用简化SIMD指令及矩阵信息。本征信息存储器,用于存储解映射后的得到的本征信息(IntrinsicMessages)。后验信息存储器,用于存储译码过程中变量节点处理单元VNU更新生成的后验信息(PosteriorMessages)。外信息存储器,用于存储译码过程中校验节点处理器CNU更新生成的外信息(ExtrinsicMessages)。奇偶校验和输出缓冲单元,用于整个译码迭代过程中的奇偶校验运算,并将译码结束的码字缓冲输出。多个并行的处理单元PU阵列,由多个并行的处理单元PU构成,用于根据译码所需完成运算操作。处理单元PU电路采用流水线技术和时分复用技术,提高系统峰值时钟频率。上述的多个并行的处理单元PU(如图2所示),其实现电路由可配置循环移位器RCS(ReconfigurableCyclicShifter)、数据恢复单元DRU(DataRecoveryUnit)、最小值扫描单元MSU(MinimumScanUnit)及加法器单元ADDER四部分构成校验节点处理单元CNU和变量节点处理单元VNU。本发明采用的一种改进型TPMP译码算法,使得设计的硬件结构不受分块矩阵特殊结构限制,将译码过程分为行更新和列更新两个阶段,对应校验节点处理单元CNU(如图3所示)和变量节点处理单元VNU两个运算单元(如图4所示)。在译码迭代过程处理校验节点更新时,采用运算复杂度相对较小的NMS(NormalizedMin-Sum)算法,降低保存中间过程中外信息的存储器容量。基于本发明所提供的基于SIMD结构的多标准LDPC译码器电路,还提供了专用简化的SIMD指令集(如表1中所列),该指令集能够实现译码器硬件结构与分块LDPC码校验矩阵结构的分离。多标准融合时,可根据不同通信标准的不同校验矩阵信息,以该指令集为基础设计指令代码,译码器通过指令代码控制整个译码器工作。<table>tableseeoriginaldocumentpage4</column></row><table><table>tableseeoriginaldocumentpage5</column></row><table>上述
发明内容,有效满足了基于SIMD结构的LDPC译码器进行多标准通讯需求,码率、码长灵活可配置,同时能够节约译码器硬件电路设计,降低芯片面积。图1基于SIMD结构的LDPC译码器整体硬件结构图2基于SIMD结构的LDPC译码器处理单元结构图3处理单元工作在校验节点更新阶段时硬件电路图4处理单元工作在变量节点更新阶段时硬件电路具体实施方案根据
发明内容中提供的解决方案,基于SIMD结构的多标准LDPC译码器的具体实施方式如下译码前,主控制器首先从指令存储器中读取参数配置信息,进行初始化操作。输入缓冲单元每接收完一个完整的帧长度数据后通知主控制器数据已经准备好,等待译码。当主控制器将数据读取后,输入缓冲器又自动进入下一帧数据的接收状态。译码开始,内部状态机根据译码模式控制整个译码器数据流向,主控制器读取行或列扫描指令并发送给处理单元阵列。多个并行处理单元同时接收来自主控制器发出的指令流,判断是否执行该条指令。主控制器根据LDPC码校验矩阵中子矩阵大小有选择地屏蔽掉部分处理单元,被屏蔽的处理单元不执行主控制器发出的指令。处理单元PU译码识别出本次操作是行扫描还是列扫描后进入串行扫描状态。采用改进型的TPMP算法,整个译码过程被分解为行更新和列更新两个阶段,分别对应校验节点处理单元CNU和变量节点处理单元VNU。以行更新数据流向为例,详细描述各个硬件模块在译码迭代过程中参与的具体实施方案(其中,假设处理单元PU并行度为Z,即对应一组数据由Z路数据构成,校验矩阵m行块的行重为rj:如图3所示,行更新阶段硬件包括2个存储块,分别为后验信息存储器和外信息存储器、Z个并行的数据恢复单元DRU、阶数为Z的可配置循环移位器RCS、Z个并行加法器Adder、Z个并行最小值搜索器MSU。1)主控制器首先从后验信息存储器中读取出某行块所需的后验信息,串行操作模式下每个时钟周期读取出一组的后验值,每组数据对应该行块非零子矩阵,则整个行块操作需要^个连续的时钟周期。2)读取出的rm组后验信息串行通过阶数为Z的可配置循环移位器RCS,可配置循环移位器的偏移量来源于指令存储器。主控制器从指令存储器中读取该行块对应非零子矩阵的偏移量并传送给循环移位器,该偏移量与非零子矩阵的后验信息值相对应。3)与串行读取^组后验信息同步,主控制器从外信息存储器中一次性读取出该行块对应的一组压縮外信息。4)第3)步读取出的压縮外信息被保留在Z个并行的数据恢复单元DRU中,并根据子矩阵位置串行恢复出本次横向更新所需要的rm组外信息。5)由第2)步和第4)所得到的rm组后验信息和rm组外信息串行通过Z个并行的加法器Adder,做rm次串行减法操作后得到rm组更新的先验信息。6)Z个并行的最小值搜索单元MSU串行扫描第5)步生成的rm组更新后的先验信息,得到该行块对应的Z行的更新后的外信息,主控制器控制将该值一次性写回到外信息存储器中,之后本次行块更新操作结束,进入下一个行块数据更新操作周期。—次行或列扫描完成后将更新后得到的数据发回给外部信道本征信息存储器、后验信息存储器和外信息存储器。如此循环往复,直到译码结束进入输出状态,由输出缓冲器输出译码数据。译码输出完后再进入下一次译码前的空闲状态,等待下一次译码。在译码迭代过程处理校验节点更新时,采用运算复杂度更低,且译码性能几乎损失很小的NMS(NormalizedMin-Sum)算法。该算法在校验节点更新时外信息可以压縮为最小值、次小值、最小值位置和符号四类信息而保存,有效降低了用于保存中间外信息的存储器容量。本实施方案中,处理单元PU(图3和图4所示)采用流水线操作,每个运算器件内部插入了一级寄存器以构成多级流水线。校验节点处理单元和变量节点处理单元根据四个运算器件分时配置成6级流水线(内部4级,外加读、写外部存储器2级流水操作)。因加入多级流水线,縮短了关键路径,提高了峰值时钟频率,而且仅通过增加相应的2选1多路选择器,实现了CNU和VNU分时复用多个运算器件,提高了运算器件的硬件利用率。在上述实施方案中,采用本发明提供的硬件电路、专用简化SIMD指令及改进的TPMP算法,有效降低了单位时间内存储器的平均访问次数,从而降低了整个译码器功耗。TPMP算法将译码分为行更新和列更新两个阶段,因而使整个译码过程更具灵活性。同时,上述硬件电路实现,降低了硬件设计电路,提高了硬件利用率,从而大幅降低了译码器芯片设计的面积。权利要求一种基于SIMD结构的多标准LDPC译码器电路,由输入缓冲单元、主控制器、指令存储器、本征信息存储器、后验信息存储器、外信息存储器、奇偶校验和输出缓冲单元及处理单元阵列构成,其特征在于所述处理单元阵列由多个并行的处理单元PU构成输入缓冲单元,用于接收来自信道的本征信息量化值;主控制器,用于实现整个译码器的控制功能;本征信息存储器,用于存储解映射后得到的本征信息;后验信息存储器,用于存储译码过程中变量节点处理单元更新生成的后验信息;外信息存储器,用于存储译码过程中校验节点处理器更新生成的外信息;奇偶校验和输出缓冲单元,用于整个译码迭代过程中的奇偶校验运算,并将译码结束的码字缓冲输出。2.如权利要求1所述的一种基于SIMD结构的多标准LDPC译码器电路,其特征在于译码器电路采用部分并行的硬件设计架构。3.如权利要求1所述的一种基于SIMD结构的多标准LDPC译码器电路,其特征在于所述处理单元采用串行处理方式的VLSI硬件设计架构。4.如权利要1和权利要求3所述的LDPC译码器电路的处理单元,其特征在于所述处理单元电路由可配置循环移位器、数据恢复单元、最小值扫描单元及加法器单元构成。5.如权利要求1、3、4所述的LDPC译码器电路及其处理单元,其特征在于,采用改进的TPMP译码算法,将译码过程分为行更新和列更新两个阶段,分别对应为校验节点处理单元CNU和变量节点处理单元VNU两个运算单元。6.如权利要求1、3、4、5所述的LDPC译码器电路的处理单元,其特征在于,所述处理单元采用流水线技术和分时复用技术电路设计,将处理单元划分多级流水处理。7.基于上述LDPC译码器电路,本发明还提供一种应用于该译码器电路的指令集,其特征在于所述指令集适用于各种分块LDPC码。全文摘要本发明提供一种基于SIMD结构的多标准LDPC译码器电路,由输入缓冲单元、主控制器、指令存储器、本征信息存储器、后验信息存储器和外信息存储器、奇偶校验和输出缓冲单元以及处理单元阵列构成。所述的处理单元阵列由多个并行的处理单元构成,处理单元采用串行处理方式的VLSI硬件架构。该译码器采用一种新型的TPMP译码算法,保证硬件结构不受分块矩阵特殊结构限制,实现硬件结构与分块LDPC码校验矩阵结构的分离。本发明提供了灵活可配置的处理单元设计电路,能有效提高硬件的利用率,降低芯片的设计面积。同时本发明还提供了一种专用简化的SIMD指令集,该指令集适用于各种分块LDPC码,实现译码器硬件结构与分块LDPC码校验矩阵结构的分离,满足多标准通讯的需求。文档编号H03M13/00GK101692611SQ200910054350公开日2010年4月7日申请日期2009年7月3日优先权日2009年7月3日发明者向波,曾晓洋,陈赟,鲍丹,黄双渠申请人:复旦大学