CN105187156A - 一种前向纠错码处理器 - Google Patents
一种前向纠错码处理器 Download PDFInfo
- Publication number
- CN105187156A CN105187156A CN201510324070.7A CN201510324070A CN105187156A CN 105187156 A CN105187156 A CN 105187156A CN 201510324070 A CN201510324070 A CN 201510324070A CN 105187156 A CN105187156 A CN 105187156A
- Authority
- CN
- China
- Prior art keywords
- network
- generator
- output
- data path
- performance element
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种前向纠错码处理器,包括:读线性地址产生器、写线性地址产生器、读变换地址产生器、写变换地址产生器、内存组、运算执行单元、转置网络和逆转置网络;读线性地址产生器与所述读变换地址产生器相连,读变换地址产生器与所述内存组相连,内存组通过所述转置网络与所述运算执行单元相连,运算执行单元通过所述逆转置网络与所述内存组相连,内存组与所述写变换地址产生器相连,所述写变换产生器与所述写线性地址产生器相连;其中,所述内存组和所述运算执行单元为多个,多个内存组之间通过所述转置网络交换数据,多个运算执行单元通过所述逆转置网络将运算执行单元计算的结果写回至所述内存组。该处理器提升了解码的效率和灵活度。
Description
技术领域
本发明涉及通信领域,具体涉及一种前向纠错码处理器。
背景技术
目前移动通信领域标准众多,更新迭代速度快。除了主流的移动通信标准(例如GSM,EDGE/GPRS,HSPDA,UMTS,3GPPLTE,802.11n,802.16e等)需要前向纠错码(FEC)支持以外,更多的军用和其它非常用商用标准也需要FEC支持。这些标准中的解码算法差异较大,且有可能在流片时需求和算法并不完全已知。因此这类应用的特殊化和定制化程度较高,单独芯片流片成本过高,通常需要高灵活度的芯片兼容。同时这类应用对解码速率和功耗、面积开销等有一定的需要,因此通用处理器也无法满足其指标需求。除此之外,商用标准本身也在更新和演变,甚至新的标准仍在制定过程中,这些更新可能无法在流片时完全确定。在较为高端的制程工艺下,基带芯片的一次流片的NRE(不可返还工程投资)可达亿元人民币左右。如果不有效提升解码器的灵活性和兼容性,那么这些协议或其它协议的需求将导致重新流片,严重影响芯片的生存期和使用范围。
目前前向纠错码码型较多,按照译码处理难度进行区分主要分通用处理器易译码型(易译码)和通用处理器低效率难译类码型(难译码)。易译码的运算量不大或者吞吐量需求不高(通常少于2Mbps),此时采用通用处理器核(例如ARM、MIPS、x86系列)或通用数字信号处理器(例如TIC6000系列)即可实现实时的译码。难译码运算量较大或者吞吐量需求较高(如3GPPLTE-A需要1GbpsTurbo净吞吐率)或延迟要求严格,采用通用处理器无法实现译码需要。此时需要针对编解码的算法特点设计专用指令集处理器(ApplicationSpecificInstruction-setProcessors——ASIP)来实现高效率译码。
在难译码类型中,目前吞吐率要求较高、解码效率较低的主要为LDPC码、Turbo码、卷积码及其变种码型。这是本发明的处理器的支持领域。(其它码型也可以被本处理器支持,但可能效率与通用处理器相比优势有限。)RS(ReedSolomon)码也是一种常用的码型,采用通用处理器可达到一定的吞吐速率,且其译码计算过程主要为二进制域运算,因此不在本发明主要的考虑范围之内。
目前国际上已知的采用ASIP结构进行FEC译码的方案有FlexiTreP/FlexiChaP、IMEC、TUDresden等若干方案。
FlexiTreP[1]是一款可以兼容CC和BTC的可重配置ASIP解码器,此设计采用了基于专用指令集处理器结构,具有一定的可编程能力。原先的FlexiTreP基础上加入了LDPC的解码数据通路后的设计被命名为FlexChaP。由于采用了单处理单元,因此解码速率较低,远远无法满足3GPPLTE-A等4G通信系统中Gbps通信速率的需求。另外,其处理器为弱可编程模式,指令为宏指令码,数据通路特殊化程度较高,对解码变种和算法变更的兼容性很低,基本可以认为只能兼容已有的协议标准下的少量参数变更。
IMEC于2008年提出了采用多个专用SIMD处理器实现并行LDPC/Turbo解码的设计。方案采用NslotSIMD,SIMD具有本地内存。另外为了存储所有slot公用的LLR信息,构建了背景内存(BackgroundMemory)。此内存通过全互联(crossbar)形式的转置网络与SIMD相连接。可以实现对802.16eLDPC,802.11nLDPC和3GPPLTETurbo的高效解码。此设计实现了一定程度的软件化,其特点是可以用C进行一定程度的编程。编译器将C代码映射到一个六核结构上,其中一个核专门用于循环指令的计算和控制,是一个标量处理器,剩下5个核都为矢量处理器。其中两个核用于计算SIMD局部内存的地址和读写操作,一个核用于背景内存的读写操作,另外两个96slot的矢量处理核进行解码算法的计算。为了达到足够的效率,系统设计了大量的专用指令,这些指令可以看作是单时钟的宏指令,无法对解码细节和算法变更进行修改。但可以对解码流程和内存读写逻辑进行一定程度的编程。此设计也有一定效率上的不足。比如在800MHz时钟下仅获得了541Mbit/s的Turbo单迭代速率,换算6次迭代相当于90Mbps,仍无法满足3GPPLTE系统的大于150MHz的吞吐率的需要。
LDPC/Turbo/Viterbi三模解码器,设计架构采用六核结构。六个核与24个内存片之间通过专用互连线和桶形移位器相连。每个内存片可以支持8个LLR信息的数据存取。这六个核可以组合起来完成一个解码,也可以分开来并行执行多个解码任务,用以支持多用户时的快速解码切换。每个核由四个处理单元共享一个指令单元,采用VLIW结构。处理单元有独立的本地内存。四个处理单元之间通过Trellis结构的互联网络互联。互联方式上,其采用了双级机制,第一级为交叉互连线,第二级是桶形移位器,这种方案较全桶形移位的方案节省资源且更容易兼容Turbo模式。一个处理单元(PE)包含Gamma单元,Alpha/Beta单元和Lambda单元几部分。Alpha/Beta单元可以实现对TurboBCJR算法中的8个Trellis状态的前后向并行处理,或者LDPC最小和算法中的8个节点的并行处理,以及Viterbi算法中16个Trellis状态的并行处理。四个PE组成一个core,可以处理4个Turbo的滑窗或者64状态的卷积码,以及32个LDPC的节点。对于Viterbi而言具有专门的回溯单元。其方案对面积开销的节省分析较多,但对灵活度的分析极少,其编程能力和兼容未知协议的能力没有谈及,硬件上也没有相应的配置。
另外,也有大量的软件无线电方案采用通用GPU、DSP或CPU实现Viterbi、Turbo和LDPC的译码,其普遍特点是功耗效用低、且解码速率有限,在效率和灵活度双高需求下目前还没有有效的处理结构,无法在移动终端等功耗敏感的场合使用。
发明内容
针对现有技术中的缺陷,本发明提供了一种前向纠错码处理器,该处理器提升了解码的效率和灵活度。
第一方面,本发明提供了一种前向纠错码处理器,包括:读线性地址产生器、写线性地址产生器、读变换地址产生器、写变换地址产生器、内存组、运算执行单元、转置网络和逆转置网络;
所述读线性地址产生器与所述读变换地址产生器相连,所述读变换地址产生器与所述内存组相连,所述内存组通过所述转置网络与所述运算执行单元相连,所述运算执行单元通过所述逆转置网络与所述内存组相连,所述内存组与所述写变换地址产生器相连,所述写变换产生器与所述写线性地址产生器相连;
其中,所述内存组和所述运算执行单元为多个,多个内存组之间通过所述转置网络交换数据,多个运算执行单元通过所述逆转置网络将运算执行单元计算的结果写回至所述内存组。
可选的,所述转置网络为三维转置网络,包括:行转置网络、列转置网络和循环移位转置网络。
可选的,所述读变换地址产生器在一个时钟内提供多个读变换地址、多个写变换地址和多个写使能信号。
可选的,所述运算执行单元包括:高速数据通路、寄存器堆、逻辑运算单元ALU和缓冲区。所述逻辑运算单元,用于短接所述高速数据通路中的部分电路。
可选的,所述缓冲区包括:输入缓冲区、前向缓冲区、后向滑窗缓冲区和内部缓冲区。
可选的,所述寄存器堆,用于接收所述内存组输出的数据、所述高速数据通路的输出引线的数据、所述缓冲区的数据和所述逻辑运算单元输出的数据。
可选的,所述逻辑运算单元,用于短接所述高速数据通路中的部分电路。
可选的,所述高速数据通路的输入引线包括:高速数据通路中的所述运算执行单元的输入处、前/后向迭代单元的输入处和输出处、前/后向跳转度量计算单元输出处、所述缓冲区的数据的输入处和输出处、所述运算执行单元的输出处。
可选的,所述高速数据通路的输出引线包括:高速数据通路中的前/后向跳转度量计算单元的输出处、前/后向迭代单元的输出处。
可选的,所述寄存器堆包括:预设的变换地址表格。
由上述技术方案可知,本发明提出了一种前向纠错码处理器,该处理器不仅可以高速解码标准商用协议的码型,还具有全可编程能力和任意算法变种的处理能力。因此大大提升了FEC处理器的支持范围,提升了对于未知和未来协议、解码算法变种的高速解码能力。
附图说明
图1为本发明一实施例提供的前向纠错码处理器的结构示意图;
图2为本发明一实施例提供的转置网络的结构示意图;
图3为本发明另一实施例提供的转置网络的结构示意图;
图4为本发明另一实施例提供的转置网络的结构示意图;
图5为本发明一实施例提供的前向纠错码处理器进行数据交换网络的结构示意图;
图6为本发明一实施例提供的高速数据通路与逻辑运算单元之间的连接结构示意图;
图7为本发明一实施例提供的逻辑运算单元的内部结构示意图;
图8为本发明一实施例提供的高速数据通路中导入引线和导出引线的位置示意图。
具体实施方式
下面结合附图,对发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
图1示出了本发明一实施例提供的一种前向纠错码处理器,如图1所示,该处理器包括:读线性地址产生器、写线性地址产生器、读变换地址产生器、写变换地址产生器、内存组、运算执行单元、转置网络和逆转置网络;
所述读线性地址产生器与所述读变换地址产生器相连,所述读变换地址产生器与所述内存组相连,所述内存组通过所述转置网络与所述运算执行单元相连,所述运算执行单元通过所述逆转置网络与所述内存组相连,所述内存组与所述写变换地址产生器相连,所述写变换产生器与所述写线性地址产生器相连;
其中,所述内存组和所述运算执行单元为多个,多个内存组之间通过所述转置网络交换数据,多个运算执行单元通过所述逆转置网络将运算执行单元计算的结果写回至所述内存组。
上述处理器不仅可以高速解码标准商用协议的码型,还具有全可编程能力和任意算法变种的处理能力。因此大大提升了FEC处理器的支持范围,提升了对于未知和未来协议、解码算法变种的高速解码能力。
本发明的内容是为了增强此处理器的可编程能力而加入的若干硬件逻辑器件。这些器件的用途包括提升各内存和缓冲区间数据的互访问能力以及替换高速数据通路中需要改变的部分运算单元。
为了提升解码的吞吐率,本发明采用高并行结构。高灵活度并行解码器的顶层结构框架如图1所示。该解码器灵活度高,其主体结构为多内存组——多SISO结构。共有P个内存组和P个SISO,每个组中的8片内存共享线性地址和交织地址;此处SISO指运算执行单元。可理解的是,全局内存是一个8列P行的阵列,其中P为SISO的个数,一个内存组包含8片内存片,全局内存包含P组内存片。内存组之间可以通过转置网络交换数据,内存组内的内存片可以通过列转置网交换数据。SISO之间可以通过SISO间接口交换数据。SISO内部包含一个高速数据通路、两个寄存器堆、一个通用逻辑运算单元(ALU)和四个缓冲区。SISO的执行结果通过逆转置网络写回到全局内存中。读取和写回的全局内存为同一个。
其中,运算执行单元包括:高速数据通路、寄存器堆、逻辑运算单元ALU和缓冲区。
上述全局内存每行包含P组内存片,每列(每组)包含8个内存片。因而构成阵列形状如图2所示。它配备有线性地址产生器,用于产生递增的或递减的地址或者指令信息中指定的一个地址;它还配备有变换地址产生器,用于根据线性地址寻址查找表得到变换的地址。线性地址和交织地址同时提供给每个内存组。此时每个组中的8片内存共享这两个地址信息。线性地址有两个,分别用于内存片的读和写,变换地址也相应的有两个。对于每个内存组,这四个地址是同时提供的,并且每个时钟可更新。对于不同的内存组,地址是不同的。总共有4P个地址信息。所述读变换地址产生器在一个时钟内提供多个读变换地址、多个写变换地址和多个写使能信号。
写使能信息有三组(A组、B组和C组),A组是全局写使能信息,为一个单比特量,供所有内存组使用,它由线性地址产生器提供。B组是各组独立的写使能信息,为P个比特的矢量,每个组占用一个比特,组内各个内存片共享。C组是组内各内存片独立的写使能信息,为8个比特的矢量,每个内存片占用一个比特。各个内存组共享。通常P大于等于8,且B组和C组不会同时使用,因此B组和C组复用硬件逻辑(查找表和连接线)。
变换地址和写使能的产生是通过查找表完成的,查找表可在一个时钟内提供P个读地址、P个写地址和P个写使能信号。查找表地址信息是在初始化阶段由外部载入的。
每个内存片为倍频单口内存,具有一个系统的二倍频时钟和一个系统频率时钟。
全局内存的输入输出数据通过转置网相连。转置网的作用是可以对并行输出的多个数据进行顺序的置换。
如图2所示,内存数据置换可以按照“行”进行。此时内存阵列中位于一行的P个元素的指定地址的数据并行取出,通过行置换网络连接,之后写回到本行或另一行的P个内存片中。
内存数据置换也可以按“列”进行。此时取出一组内存片的8个数值,经置换网络转置后写回到本列或另一列的8个内存片中去,也就是说,一组内存片的8个数值可并行取出,经置换网络转置后写回到本列或另一列的8个单元中;。
如图4所示,内存数据置换还可以按照之字形进行。此时所有内存单元的同一地址数据被取出,并按行首尾相接排列,组成一个长的新行,新行的元素按从左到右重新标号,对此行的前Z个元素进行循环移位,之后的8P-Z个元素不交换换序,重组后写回到内存中。其中Z可以是小于8P的任意值。其写使能信号可控制为某连续脚标区域为高,其余为低;写使能信号由两个标号a,b和反转位c指定,当c=1时,其中标号位于[a,b]间的内存单元的写使能遵循全局(A组)写使能,其它标号的写使能为低。当c=0时,标号位于[1,a]和[b,8P]间的内存单元的写使能遵循全局(A组)写使能,其它标号写使能为低。这种转置和使能方案可用于准循环型LDPC码的循环移位操作。
综上,所述转置网络为三维转置网络,包括:行转置网络、列转置网络和循环移位转置网络。
提出的解码处理器提供了几条数据互访问通路,包括寄存器堆组向缓冲区的数据互访问。全局内存和缓冲区间的数据互访问通路,以及寄存器堆组和全局内存间的数据互访问通路等。具体连接关系见图5。所述寄存器堆,用于接收所述内存组输出的数据、所述高速数据通路的输出引线的数据、所述缓冲区的数据和所述逻辑运算单元输出的数据。
每个SISO内具有两个寄存器堆组,所有SISO的所有寄存器堆组共享一个全局地址变换查找表(用于寄存器堆组的R表)。这个表位于SISO外部。寄存器堆组的地址信息和使能信息以及转置方式通过地址变换查找表提供;寄存器堆组配备有专用的全相连转置网络和地址变换查找表;每个SISO内具有四个缓冲区,输入缓冲区、前向缓冲区、后向滑窗缓冲区和内部缓冲区,四个缓冲区所处位置如图8所示。
寄存器堆组为8个寄存器堆的并行结构。每个寄存器堆为Q比特数据宽度、64单元深度的单读单写同步寄存器阵列。如图3所示,寄存器堆组配备有专用的全相连转置网络和地址变换查找表。寄存器堆的写数据可来源于以下五个支路:(1).全局内存的输出数据;(2).高速数据通路的输出引线;(3).四个缓冲区之一的输出数据;(4).通用ALU单元的输出;(5).寄存器堆组的输出数据。其读出的数据可用于高速数据通路、缓冲区或者全局内存(经转置网络转置后)。寄存器读出的数据可用于高速数据通路、缓冲区或者全局内存。
缓冲区为高速数据通路的一部分,为高速数据通路提供数据暂存的功能,缓冲区与高速数据通路连接的一个实例如图8所示。为了支持高灵活度解码,其数据也可以被通用ALU单元处理。为了达到这个效果,建立了缓冲区与寄存器堆组、全局内存的互连接关系。其输入数据可来源于全局内存或寄存器堆组。其数出数据可写回全局内存或寄存器堆组。缓冲区配备有专用的全相连转置网络和地址变换查找表。一个SISO内的四个缓冲区共享一个全相连转置网络,所有SISO的所有缓冲区共享一个全局地址变换查找表(用于缓冲区或通用ALU的B表)。
图5中的所有连线皆为8个数据宽度的总线。全相连转置网络为8入口8出口的cross-bar网络,用于调整这8个数据的顺序关系。
本实施例中的通用处理ALU模块及其与高速数据通路的连接,如图6所示,由于高速数据通路中的运算单元的运算模式和连接关系比较固定,对算法变种的兼容能力需要提升,因此构建了通用ALU模块,用以替换高速数据通路中的部分电路逻辑。
通用ALU模块是一个三输入单输出的多功能逻辑运算单元,其外部连接关系如图6所示。其输入可来源于SISO高速数据通路的导出引线或者寄存器堆组。其输出可至高速数据通路的导入引线或者寄存器堆组。通用ALU模块可以用于短接高速数据通路中的一部分电路逻辑,用以达到兼容算法未知变化的情形,实现了非标准的兼容。
在ALU模块工作期间,高速数据通路处于暂停状态,待导入引线数值计算完毕后,高速数据通路继续工作。
每个SISO都有一个ALU模块。ALU的内部结构如图7所示。其内部为8路并行运算单元。ALU的输入数据a,b进行一次逻辑运算,其输出与输入数据c进行一次逻辑运算。逻辑运算包括加、减、乘、与、或、非、异或、同或、左移、右移、带符号左移、带符号右移、循环移位、判断、选择max、选择min、取绝对值、取负等。由于内部运算宽度为Q比特而输入数据在高速数据通路不同位置处位宽不同,因此输入的数据需要进行带符号的位扩展,输出具有防止溢出的饱和处理。第i个ALU2的d数据也可由第i+1个ALU1的输出e提供。
通用ALU单元可以部分或者全部替代高速数据通路的功能。根据高速数据通路的特性,对主要的位置设置了数据的导入导出点。其主要位置包括各个算法步骤的输入和输出,以及SISO的输入和输出。具体的讲,导出引线点包括高速数据通路中的SISO输入管脚处、前/后向迭代单元(FRU/BRU)输入处和输出处、前/后向跳转度量计算单元(FBMU/BBMU)输出处、各缓冲区的数据输入/输出处、SISO输出处等。
导入引线点包括高速数据通路中的前/后向跳转度量计算单元(FBMU/BBMU)的输出处、前/后向迭代单元(FRU/BRU)的输出处、Turbo后验概率和外信息计算输出处、LDPC后验概率和外部信息计算输出处。
如图7所示,通用ALU中的8路运算单元的第一级运算的第i+1路输出可以作为第二级运算的第i路的输入;ALU输入具有带符号的位扩展,输出具有防止溢出的饱和处理;通用ALU模块可以用于短接高速数据通路中的一部分电路逻辑,用以达到兼容算法未知变化的情形;
高速数据通路中以下位置可具有导出引线点:高速数据通路中的SISO输入管脚处、前/后向迭代单元(FRU/BRU)输入处和输出处、前/后向跳转度量计算单元(FBMU/BBMU)输出处、各缓冲区的数据输入/输出处、SISO输出处等。
高速数据通路可具有如下的导入引线点:高速数据通路中的前/后向跳转度量计算单元(FBMU/BBMU)的输出处、前/后向迭代单元(FRU/BRU)的输出处、Turbo后验概率和外信息计算输出处、LDPC后验概率和外部信息计算输出处。
上述处理器结构在可高效解码主流商用协议码型的基础上,提供了未来协议中码型、未在流片期间考虑的编解码格式、Viterbi解码算法变种、LDPC码算法变种和Turbo码算法变种和未知协议所涉及码型的解码能力,从而大大提升了处理器的兼容性和适用范围,延长了处理器的生存周期。对于算法变种而言,如果修改较小,那么大部分操作仍然可以使用高速数据通路完成,从而较传统的通用处理器而言显著提升了解码速度和功耗效用。
下面通过具体的实施例对上述处理器进行说明。
如图8所示。其中导出引线位置包括:
1102输入管脚SISOIn处
1105前向迭代单元(FRU)的γ输入处,αold输入处
1109前向缓冲区的数据输出处
1110输入缓冲区的数据输出处
1101输入αleft处
1112后向跳转度量计算单元(FBMU)的γ输出处
1113后向迭代单元(BRU)的β输出处
1114后向滑窗缓冲区数据输出处
1103输入βright处
1116多路选择器输出处
1123内部缓冲区输入处
1123内部缓冲区输出处
1127输出SISOOut处
其中,导入引线位置包括:
1104前向跳转度量计算单元(FBMU)的γ输出处
1105前向迭代单元(FRU)的sel输出处,α输出处
1106多路选择器的输入处
1107多路选择器的输入处
1111多路选择器的输入处
1112后向跳转度量计算单元(FBMU)的γ输出处
1113后向迭代单元(BRU)的β输出处
1116多路选择器输入处
1117TurboLa更新模块输出处
1118LDPCLe更新模块输出处
1119TurboLe更新模块输出处
1120多路选择器输入处
1122多路选择器输入处
1125多路选择器输入处
1126输出βleft处
1128输出αright处
在此实例下,一个LDPC/Turbo/卷积码的译码过程可以全部地或者部分地采用通用ALU完成。以Turbo为例,其前向度量更新的计算过程在log-MAP算法中为
f(x,y)=max(x,y)+log(1+e-|x-y|)(1)
如果采用max-log-MAP算法进行近似,则
f(x,y)=max(x,y)(2)
FRU和BRU都采用的是max-log-MAP近似。一种更为准确的近似是采用多项式函数,其表达式为
f(x,y)=max(x,y)+max(5/8-|x-y|/4,0)(3)
此式为浮点格式时的表达式,当输入采用128比特量化时,输入放大128倍,因此此函数的量化形式为
f(x,y)=max(x,y)+max(320-|x-y|,0)/8(4)
如果需要采用多项式函数而不是max-log-MAP进行Turbo解码,则需要采用通用ALU单元代替FRU模块和BRU模块。
步骤1.暂停高速数据通路;
步骤2.选择引出导线位置1105的αold输入数据和γ输入数据,之后对3式进行计算,采用ALU模块计算3式的过程如表1所示。
表1.多项式更新核函数在通用ALU模块的执行逻辑
ALU执行各步骤之间可能有寄存器读写操作和NOP,用于暂存数据和保证数据依赖关系。
计算完成后,将结果采用旁路选择器输出到1105FRU模块的α输出处。
步骤3.之后引出导线位置选择1113的βold输入数据和γ输入数据,采用一样的计算并将结果采用旁路选择器输出到1113BRU模块的β输出处。
步骤4.高速数据通路继续运行其余的算法步骤。
本发明另一个实施例中阐述如何调换全局内存中任意一片内存的数据。例如将坐标11的内存片的数据写入到坐标为34的内存片。
步骤1.读取所有内存组的第一行数据,采用行转置网204将第一行的11与31调换顺序,其余不变,并写使能1,3号内存片。
步骤2.读取第3内存组所有数据,将31与34采用列转置器调换顺序,最后写使能1,4号内存片。
注,上述中的两内存片的地址信息由线性地址产生器提供。
以上所述各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种前向纠错码处理器,其特征在于,包括:读线性地址产生器、写线性地址产生器、读变换地址产生器、写变换地址产生器、内存组、运算执行单元、转置网络和逆转置网络;
所述读线性地址产生器与所述读变换地址产生器相连,所述读变换地址产生器与所述内存组相连,所述内存组通过所述转置网络与所述运算执行单元相连,所述运算执行单元通过所述逆转置网络与所述内存组相连,所述内存组与所述写变换地址产生器相连,所述写变换产生器与所述写线性地址产生器相连;
其中,所述内存组和所述运算执行单元为多个,多个内存组之间通过所述转置网络交换数据,多个运算执行单元通过所述逆转置网络将运算执行单元计算的结果写回至所述内存组。
2.根据权利要求1所述的处理器,其特征在于,所述转置网络为三维转置网络,包括:行转置网络、列转置网络和循环移位转置网络。
3.根据权利要求1所述的处理器,其特征在于,所述读变换地址产生器在一个时钟内提供多个读变换地址、多个写变换地址和多个写使能信号。
4.根据权利要求1所述的处理器,其特征在于,所述运算执行单元包括:高速数据通路、寄存器堆、逻辑运算单元ALU和缓冲区。
5.根据权利要求4所述的处理器,其特征在于,所述缓冲区包括:输入缓冲区、前向缓冲区、后向滑窗缓冲区和内部缓冲区。
6.根据权利要求4所述的处理器,其特征在于,所述寄存器堆,用于接收所述内存组输出的数据、所述高速数据通路的输出引线的数据、所述缓冲区的数据和所述逻辑运算单元输出的数据。
7.根据权利要求4所述的处理器,其特征在于,所述逻辑运算单元,用于短接所述高速数据通路中的部分电路。
8.根据权利要求4-7中任一项所述的处理器,其特征在于,所述高速数据通路的输入引线包括:高速数据通路中的所述运算执行单元的输入处、前/后向迭代单元的输入处和输出处、前/后向跳转度量计算单元输出处、所述缓冲区的数据的输入处和输出处、所述运算执行单元的输出处。
9.根据权利要求4-7中任一项所述的处理器,其特征在于,所述高速数据通路的输出引线包括:高速数据通路中的前/后向跳转度量计算单元的输出处、前/后向迭代单元的输出处。
10.根据权利要求4所述的处理器,其特征在于,所述寄存器堆包括:预设的变换地址表格。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510324070.7A CN105187156B (zh) | 2015-06-12 | 2015-06-12 | 一种前向纠错码处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510324070.7A CN105187156B (zh) | 2015-06-12 | 2015-06-12 | 一种前向纠错码处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105187156A true CN105187156A (zh) | 2015-12-23 |
CN105187156B CN105187156B (zh) | 2018-06-08 |
Family
ID=54909028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510324070.7A Expired - Fee Related CN105187156B (zh) | 2015-06-12 | 2015-06-12 | 一种前向纠错码处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105187156B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109754061A (zh) * | 2017-11-07 | 2019-05-14 | 上海寒武纪信息科技有限公司 | 卷积扩展指令的执行方法以及相关产品 |
CN109981117A (zh) * | 2019-03-18 | 2019-07-05 | 北京无极芯动科技有限公司 | 一种四模前向纠错码处理器 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060032464A (ko) * | 2004-10-12 | 2006-04-17 | 삼성전자주식회사 | 효율적인 저밀도 패리티 검사 코드 복호 방법 및 장치 |
CN1791084A (zh) * | 2004-12-17 | 2006-06-21 | 清华大学 | 时域同步正交频分复用空频编码时频联合信道估计方法 |
US20060259849A1 (en) * | 2005-05-13 | 2006-11-16 | Verizon Services Corp. | Systems and methods for decoding forward error correcting codes |
EP1835680A1 (en) * | 2006-03-16 | 2007-09-19 | Alcatel Lucent | OFDM transmission with low latency through use of a pilot symbol at the end of the transmit subframe |
US20080168332A1 (en) * | 2007-01-05 | 2008-07-10 | Qualcomm Incorporated | Fec code and code rate selection based on packet size |
CN101262307A (zh) * | 2008-03-31 | 2008-09-10 | 清华大学 | 一种含有星座图旋转调制方式的串行级联编译码系统 |
CN103475451A (zh) * | 2013-09-10 | 2013-12-25 | 江苏中科梦兰电子科技有限公司 | 一种适合前向纠错和加密应用的数据报网络传输方法 |
-
2015
- 2015-06-12 CN CN201510324070.7A patent/CN105187156B/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060032464A (ko) * | 2004-10-12 | 2006-04-17 | 삼성전자주식회사 | 효율적인 저밀도 패리티 검사 코드 복호 방법 및 장치 |
CN1791084A (zh) * | 2004-12-17 | 2006-06-21 | 清华大学 | 时域同步正交频分复用空频编码时频联合信道估计方法 |
US20060259849A1 (en) * | 2005-05-13 | 2006-11-16 | Verizon Services Corp. | Systems and methods for decoding forward error correcting codes |
EP1835680A1 (en) * | 2006-03-16 | 2007-09-19 | Alcatel Lucent | OFDM transmission with low latency through use of a pilot symbol at the end of the transmit subframe |
US20080168332A1 (en) * | 2007-01-05 | 2008-07-10 | Qualcomm Incorporated | Fec code and code rate selection based on packet size |
CN101262307A (zh) * | 2008-03-31 | 2008-09-10 | 清华大学 | 一种含有星座图旋转调制方式的串行级联编译码系统 |
CN103475451A (zh) * | 2013-09-10 | 2013-12-25 | 江苏中科梦兰电子科技有限公司 | 一种适合前向纠错和加密应用的数据报网络传输方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109754061A (zh) * | 2017-11-07 | 2019-05-14 | 上海寒武纪信息科技有限公司 | 卷积扩展指令的执行方法以及相关产品 |
CN109754061B (zh) * | 2017-11-07 | 2023-11-24 | 上海寒武纪信息科技有限公司 | 卷积扩展指令的执行方法以及相关产品 |
CN109981117A (zh) * | 2019-03-18 | 2019-07-05 | 北京无极芯动科技有限公司 | 一种四模前向纠错码处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN105187156B (zh) | 2018-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7398458B2 (en) | Method and apparatus for implementing decode operations in a data processor | |
CN105912501B (zh) | 一种基于大规模粗粒度可重构处理器的sm4-128加密算法实现方法及系统 | |
US7908542B2 (en) | Method of and apparatus for implementing a reconfigurable trellis-type decoding | |
CA2567248A1 (en) | A method of and apparatus for implementing a reconfigurable trellis-type decoding | |
JP4907802B2 (ja) | 通信の復号化の際に用いられるバタフライプロセッサ装置 | |
JP5692780B2 (ja) | マルチコア型誤り訂正処理システムおよび誤り訂正処理装置 | |
US20150236723A1 (en) | Parallel VLSI architectures for constrained turbo block convolutional decoding | |
CN109981117B (zh) | 一种四模前向纠错码处理器 | |
Muller et al. | From parallelism levels to a multi-ASIP architecture for turbo decoding | |
Li et al. | Efficient parallel implementation of three‐point viterbi decoding algorithm on CPU, GPU, and FPGA | |
Lee et al. | Design space exploration of the turbo decoding algorithm on GPUs | |
JP2002152057A (ja) | トレリス処理装置の適切なパスメトリックアドレスを計算する装置と方法。 | |
Prasad et al. | An energy-efficient network-on-chip-based reconfigurable Viterbi decoder architecture | |
CN105187156A (zh) | 一种前向纠错码处理器 | |
Lin et al. | Design and implementation of turbo decoders for software defined radio | |
CN102201817B (zh) | 基于存储器折叠架构优化的低功耗ldpc译码器 | |
Shahabuddin et al. | Design of a transport triggered vector processor for turbo decoding | |
CN102594507A (zh) | 一种软件无线电系统中的高速并行Turbo译码方法及系统 | |
Kunze et al. | Combining LDPC, turbo and Viterbi decoders: benefits and costs | |
Kunze et al. | A” multi-user” approach towards a channel decoder for convolutional, turbo and LDPC codes | |
CN105589082A (zh) | 一种北斗导航系统的维特比译码装置及方法 | |
Niktash et al. | A multi-standard Viterbi decoder for mobile applications using a reconfigurable architecture | |
US20070230606A1 (en) | Viterbi traceback | |
Murugappa et al. | ASIP design for multi-standard channel decoders | |
Wang et al. | Convolutional Decoding on Deep-pipelined SIMD Processor with Flexible Parallel Memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
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: 20180608 Termination date: 20210612 |