一种用于Turbo码和LDPC码译码器的地址生成器的制造方法

文档序号:8225728阅读:756来源:国知局
一种用于Turbo码和LDPC码译码器的地址生成器的制造方法【
技术领域
】[0001]本发明涉及专用指令集处理器
技术领域
,具体的说,涉及一种用于Turbo码和LDPC码译码器的地址生成器。【
背景技术
】[0002]Turbo码是一种具有较强纠错性能的纠错码,广泛应用于无线通信中。相关的标准包括全球移动通信系统(UMTS)[1]、长期演进(LTE)[2]、全球微波互联接入(WiMAX)[3][0003]LDPC码是无线通信中广泛应用的一种纠错码。相关的标准包括全球微波互联接入(WiMAX)[3]、无线局域网(WIFI)[4]。[0004]在目前已有的地址生成器中,主要是针对Turbo码地址生成器的ASIC设计【5】,无法通过指令对译码过程进行控制,且在灵活性方面比较受限。而且现有技术中一般都是采用专用电路来实现地址生成。【
发明内容】[0005]本发明的目的在于提供一种用于Turbo码和LDPC码译码器的地址生成器,该生成器能够支持多种主流无线通信标准中的Turbo码和LDPC码译码过程中的实时地址生成,并且能够支持未定义标准中的Turbo码和LDPC码译码过程中的地址生成。[0006]本发明提供一种用于Turbo码和LDPC码译码器的地址生成器,其采用混合式结构,包括指令存储器、取指令模块、预译码模块、取操作数数模块、多模式地址计算数据通路、通用寄存器、地址寄存器、LTE专用寄存器、配置寄存器和递交模块;其中:所述多模式地址计算数据通路包括查找表一乘法模块、除法模块、加比选模块、取模模块、数据存储器和加比选1模块,它们由配置寄存器进行配置,在不同的配置条件下这些计算数据通路形成不同的连接关系,从而完成不同的地址计算功能;多模式地址计算数据通路的连接具体为:查找表一乘法模块的数据和指令被发送到除法模块、加比选模块和取模模块,除法模块的数据和指令被发送到加比选模块和递交模块,加比选模块的数据和指令被发送到取模模块、除法模块和递交模块,取模模块的数据被发送到加比选模块、递交模块、预译码模块、通用寄存器、地址寄存器和取操作数模块,数据存储器模块的数据被发送到查找表一乘法模块、取模模块、加比选模块和递交模块,加比选1模块的输出发送到通用寄存器、LTE专用地址寄存器、地址寄存器、除法模块和取操作数模块;[0007]所述地址生成器中,取指令模块从指令存储器中获取指令,并将指令发送给预译码模块;预译码模块对指令进行预译码,检测跳转之类的指令,并将其他指令发送给取操作数模块;取操作数模块根据指令从通用寄存器和地址寄存器中获取操作数,并根据配置寄存器中的内容将所获取的操作数以及指令发往查找表一乘法模块、地址寄存器以及数据存储器;所述递交模块和指令存储器、取指令模块、预译码模块、取操作数模块以及多模式地址计算数据通路相连。[0008]本发明中,指令存储器中存有同步指令SYNC和ADRGEN_SYNC,通过这两条指令可以保证在Turbo和LDPC的译码过程中的数据一致性。[0009]本发明的有益效果在于:本发明采用同一套硬件完成多种标准中Turbo码和LDPC译码器的地址生成;本发明采用指令集架构实现地址生成,具有比较高的灵活性;本发明可以工作在多种模式,为不同的标准实时生成Turbo译码的地址和LDPC译码的地址。【附图说明】[0010]图1是多模式的Turbo码和LDPC码译码器的整体架构图。[0011]图2是单核专用处理器的结构图。[0012]图3是地址生成器的结构图。[0013]图4是地址生成器在UMTS模式下的流水线示意图。[0014]图5是地址生成器在UMTS模式下交织地址非法时的修正图。[0015]图6是地址生成器在LTE模式下的流水线示意图。[0016]图7是地址生成器在WiMAX的Turbo模式下的流水线示意图。[0017]图8是地址生成器在QC-LDPC模式下的流水线示意图。[0018]图9是QC-LDPC第一种读模式中数据存储示意图和子矩阵示意图。[0019]图10是QC-LDPC第二种读模式中数据存储示意图和子矩阵示意图。[0020]图11是未定义标准模式下的流水线示意图。【具体实施方式】[0021]下面结合附图详细阐述本发明技术方案。[0022]本发明所提出的地址生成器用于多模式的Turbo码和LDPC码译码器中,图1是多模式的Turbo码和LDPC码译码器的整体架构图。该译码器能够用Turbo码和LDPC码的纠错译码。输入接口负责各种数据输入,包括控制处理器和专用处理器的指令/数据存储器的初始化,信道信息存储单元中信道LLR的输入,各种纠错码信息的输入。控制处理器是一个自定义指令集的RISC处理器,负责监控整个译码过程、计算配置信息、配置专用处理器等。信道信息存储单元用于存储信道LLR和LE。片上网络模块负责专用处理器和信道信息存储器以及专用处理器和专用处理器之间的数据传输。专用处理器负责处理具体的地址和算法运算,一共有P个并行的专用处理器。校验处理器对译码的硬判决结果进行校验,判断译码是否可以结束,并输出译码结果。[0023]图2是单核专用处理器的结构图。图中的地址生成器负责读写地址的生成,读地址被送入网络接口模块,写地址则送入写出模块中;MAP处理器从互连网络中获得数据(信道LLR和LE),进行Turbo和LDPC码的MAP算法计算,并将计算得到的LE发送给写出模块;写出模块缓存从地址生成器来的写地址,当MAP处理器计算完LE之后,写成模块将该LE的值和缓存的地址一同发送给网络接口模块;网络接口模块负责将地址和数据打包成片上网络中的数据格式,如果片上网络指示要对当前的专用处理器进行流控制(流控制信号为高),那么网络接口模块就进入等待状态,并通知数据源(地址生成器或写出模块)暂停,否则网络接口模块就将打好的包发射到互连网络中;状态度量存储器模块用于存储Turbo/LDPC译码过程中的状态度量、信道LLR和LE,采用LIFO(LastInFirstOut)的结构,并且包含了对Turbo码状态度量的压缩和解压缩电路。地址生成器在LDPC的工作模式下通过消息队列会发送消息给MAP处理器,为MAP处理器的译码提供动态信息。[0024]图3是地址生成器的电路结构图。地址生成器采用混合式结构,包括指令存储器、取指令模块、预译码模块、取操作数模块、多模式地址计算数据通路、通用寄存器、地址寄存器、LTE专用寄存器、配置寄存器和递交模块等。其中:[0025]指令存储器,由输入接口进行初始化,位宽为18位。在一般情况下,Turbo译码所需的指令大约为40条,LDPC译码所需的指令约为15条。考虑到对于比较复杂译码情况的支持,本文将指令Memory的深度设置为128。[0026]取指令模块,每周期取出两条连续的指令,并在该模块中对控制类指令进行识别和条件判断,并执行控制指令。由于跳转都是在该模块中完成,而且每周期取出两条指令,从而保证了REPEAT指令不会对流水线造成任何"气泡"。对于其他的跳转指令,当跳转条件满足时,跳转所付出的代价仅为1个周期,而当跳转条件不满足时,下一条合法指令将会被直接送入下一级流水线,不会造成任何的流水线停顿,保证了指令可以被高效执行。[0027]预译码模块对指令进行初步译码,取出指令可寻址的配置寄存器中的值。[0028]取操作数模块对指令进行二次译码,为下一级流水线准备操作数。[0029]多模式地址计算数据通路包括查找表和乘法模块、除法模块、加比选模块、取模模块、数据存储器模块、加比选1模块,它们由配置寄存器进行配置,在不同的配置条件下这些计算数据通路会形成不同的连接关系,从而可以完成不同的地址计算功能;多模式地址计算数据通路的连接具体为:查找表和乘法模块的数据和指令将被发送到除法模块、加比选模块和取模模块,除法模块的数据和指令将被发送到加比选模块和递交模块,加比选模块的数据和指令将被发送到取模模块、除法模块和递交模块,取模模块的数据将被发送到加比选模块、递交模块、预译码模块、通用寄存器、地址寄存器和取操作数模块,数据存储器模块的数据将被发送到查找表一乘法模块、取模模块、加比选模块和递交模块,加比选1模块的输出发送到通用寄存器、LTE专用地址寄存器、地址寄存器、除法模块和取操作数模块。[0030]其中:[0031]查找表一乘法模块中包含了一个小型的查找表(LUT,lookuptable)以及一个乘加单元阵列。查找表一乘法模块中的乘加单元一共有6个,每个乘加单元的输入位宽为13比特,输出位宽为16比特,加法也可以执行减法操作。查找表是一个深度为20、宽度为7比特的小型寄存器堆,提供UMTS算法中的查找表操作。[0032]除法模块是一个由乘法器组成的除法器阵列,在交织地址的计算中经常涉及到除法和取模操作,而这些除法或取模的除数一般变化比较小,可以通过用被除数乘以除数的倒数来求取。除法模块模块中一共有6个这样的除法器,每个除法器的输入和输出的位宽都为15比特。[0033]加比选模块和加比选1模块都是加比选(Add-Compare-Select)单元阵列。[0034]数据存储器用于存储各类数据,包括地址和配当前第1页1 2 
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1