论文研究-基于TI DSP实现CCSDS标准Turbo译码器 .pdf

所需积分/C币:12 2019-08-15 17:47:10 430KB .PDF
收藏 收藏 1
举报

基于TI DSP实现CCSDS标准Turbo译码器,单厚智,林雪红,Turbo码提出以来,被通信界广泛关注,成为实用的性能可靠的信道编码之一;在深空通信中,CCSDS( Consultative Committee for Space Data Systems )也�
山国武花论文在线 http://www.paper.edu.cn 解交织器l 分量码 译码器I 交织器Ⅱ 分量码 译码器∏ 解交织器 交织器 图2 Turbo码译码流程图 Fig. 2 Decoder of Turbo Code 702 Turbo译码算法 Turbo译码算法的核心是1974年L.R.Ball等4人发表的软输入/软输出线性码最优译 码算法叫,该算汯被学术昦以作者姓名首字母命名为BCR算法。 Turbo编码器的输出经过 AwGN或BSC等离散无记忆信道,构成了一个马尔科大信源,因此BCJR算法能够用于 Turbo码的MAP译码。并山此MAP算法演变而来的 Log-MAP和 Max-Log-MAP算法。而 75工稈中实现的算法主要是查表 Log- MAP和 Max-LOg-MAP算法,图3给出了 CCSDS标准的 两种算法的性能对比图: 1/6 Turbo性能 LOG-MAP MAX-LOG-MAP 0.1 0.2 0.3 04 Eb/No(dB) 图3 CCSDS标准16 Turbo码查表 LOG-MAP和 MAX-LOG-MAP算法性能对比图 Fig 3 Performance of CCSDS 1/6 Turbo Code with LOG-MAP and MAX-LOG-MAP 802.1MAP算法 首先按照如下公式计算分值度量: (P,q)=p(q=q,74=p) 接着计算前向和后向状态度量,根据如下公式: (p)=p(k=P,) 山国武技论文在线 http://www.paper.edu.cn B+1(q)=p(k4+1=q) 存在以下递推关系: an(q)=(+=9,r:)=∑a(p)(p,q) 月(p)=P(19=p)=∑(P9)1(q) 则MAP判决准则为 xn)=∑a(p)(p,9)月1(q) (D,q)∈S 22查表Log-MAP算法 查表 LOg-MAP算法就是讲上血的MAP算法转到对数域计算,将乘法变为加法,乘加 操作变为Max操作再加上根据差值查表的结果 对数域分支度量计算如卜: y(p,q)=ln(p(0+1=,|k=p) ))+hn(p(rolx ))+In(p(r a=a.2. 9) 对数域的状态度量值如下 k+1(q)=ln(p(9+1=q,rk+) In(exp(aK(P)+y:(,q))) (p(klk= p) In(exp(r, (P, q)+Pk- (q)) 对数域时刻k的判决准则如下 ∑exp(a()+yk(p,)+月1(q) P(x,r)=In (P, qSO 2 exp(a,(p)+r(p, q)+B+ (@) 当上式人于零,判为发零,否则判为发1 如上所示,对数域为避免exp的复杂操作,往往根据以下公式近似计算: In(e+ max(x,y)+In(telev 根据|x-y的差值查表,然后与Max结果相加。 10523Max< LOg-MAP算法 与上面的查表对数域的 Log-MAP算法相比,Max-Log-MAP算法省掉了查表的过程, 如下公式所示 n(e+e)≈max(x,y) 则此时k时刻的判决准则如下: 110 P(x: r)=max [a (p)+r,(p, q+B q]-max [ak (p)+rk(p, q)+B q] (P,)≡So 4 山国武获论文在丝 http://www.paper.edu.cn 这种做法,复杂度降低了很多,但是性能有损失,可根据需求选择合适的算法。 3 TI DSP的 TUrbo译码器设计与实现 31TIC6678DSP介绍 TI的C6678DSP处理器是基于TI最新的 keystone架构的设计的,相对以前的产品,在 115数字信号处理性能上得到了极大的提升。C6678DSP主要由以下几个部分组成:DSP核 内部存储器、数据访问控制器、DMA、定时器并行总线以及其他一些外围结构组成。值得 一提的是,该型号DSP包含8个完全独立的DSP核,每个核可在1.25G的主频正常工作 DSP核是整个处理器的核心部件,主要完成取指,指令分解和指令译码的工作,然后交由 各功能单元完成相应的功能。与性能密切先关的是两边对称的4个功能单元,也是灾现SⅠMD 120指令的基础 32TC6678DSP优化 程疗的执行时间主要体现在循环部分,这在嵌入式中体现的更加明显,比如经常对整块 的数据做相冋的操作。TI的C600系列的DSP编译器充分利用了这一特点,针对循环优化 提出了软件流水技术。在软件流水中,循环体有重叠,使得内部的硬件单元利用的更加充分 125高效,同时减小处理延时。为了使软件流水技术运用的更加高效,可以使用以下相关的优化 技术这主要参考T提供的技术文档,以下面代码为例: void BasicLoop(short output, short inputl, short input2, int n) 130 for(i=0; i<n; 1++) output[i]=inputI[]+ input2[] 主函数 void main(void short datal[1000]-(0; short data2[1000]=10;; short data3 1000 BasicLoop(data3, datal, data2, 1000) 3.21消除循环体间的相关性 影响软件流水的最大因素就是相关性循环体间的相关性是指指令的运行先后顺序。为 了消除循环体间相关性,必须找到影响前后相关性最大的环,并找出缩短或消除它的方法 由经验可知,告诉编译器输入参数的数组和输出参数的数组是独立的。这样相关性就公降低, 145编译器可以更好的安排指令的软件流水,从而带来更好的性能。假定在所有调用点, inputI” 或“ Input2”都不会访问与“ output”相同的内存地址。将此信息告知编译器,从 store指令到 load指令的返回边将会消失。这可通过使用mt选项或使用 restrict关键字来实。 322利用双数据通道平衡资源 II的C6678DSP核,功能单元分为两个完全对称的部分,由于拥堵的受限资源决定软 山国武获论文在丝 http://www.paper.edu.cn 150件流水的效率,为了更大的利用功能单元,所以要尽量使得两侧的首先资源平衡。这个可以 使用循环展开的方式米完成。 32.3利用宽load指令和 store指令 使用更宽的load指令来代替多个load指令,以减少D单元资源的使用受限的情况。 可以使用对齐内存访问指令来代膂非对齐内存访问指令,以减少T地址路径的数量。 1553.24重新平衡双数据通道资源 使用宽指令存取会改变循环的结构,所以有必要重新进行资源平衡。跟前面一样,可以 通过展开一次来实现进一步的改善。 3.25使用内联函数 内联函数是TI提供的,不能或者不易用C/C++语言实现的函数,它们更加接近于汇编 160指令,执行起来效率髙,能快速优化CC艹程序代码。C6678编译器提供了许多内联函数, 可以直接在CC4+语言中调用,因为不会被当做一般的程序跳转函数执行,所以不会破坏原 有程序的软件流水结构。 32.6优化效果对比 对上面几种优化技术所取得的优化效果列于下表1,由此可见优化的效果非常明显的。 165 表1优化效果统计 Tab. I Results of different optimizations 优化方法未优化消除相关性平偾资源宽指令重新平衡资源内联函数 Cycle数 7024 203.5 l529 404 优化倍数 3.45 4.59 6.83 17.39 17.56 33 Turbo译码器并行设计 为了加快译码速率,可以采用并行的译码结构。基于TDSP的并行计算主要采用以 170下两种方式:SIMD指令并行与多核并行。 331基于SIMD指令的并行设计 SIMD指令小意如下图4:图为TI提供的 dsadd2指令用法,其中A,B,C为 short类型 64bits对其数组,A,B为输入,C为输出,4个并行shot加法结果存放在C中,效率可以 提高4倍 A2」 Al B[2] Bll] B[0] C3ABCpFA2H+E2cmA(1+BcpAp+p 175 图4并行度加法操作图 Fig 4 Operation Parallelism Addition 6 山国武技论文在线 http://www.paper.edu.cn 由上面的分析可知,不论是对于 LOG-MAP算法还是 MAX-LOG-MAP算法, Turbo 译码的主要计算包括前向状态度量,后向状态度量以及外信息的计算,这其中使用到的操作 180为加比选,可以使用如下的指令: dsub2:4个 short类型数据的并行减法操作,并对结果做饱和处理 dmax2:4个shor类型数据比大操作,当做有符号数对待 dmin2:4个shot类型数据比小操作,当做有符号数对待 3.32基于8核的并行设计 185 如上所述,TC6678芯片有8个完仝独立的DSP内核,为了加快译码速度,考虑8核 并行详码。对于码长为10304的码块来说,分割为完全相等的8块,每个数据块长为 103048=1288,实际上还得使用上面的并行度为4的内敛指令,所以真正每个码块的长度为 1288/4-322,并行度为32。根据香农信息论的观点,能达到香农限的编码方式要无限长, Turbo之所以能带来如此好的性能,很大程度上是由于编码块长的原因,将译码改为并行度 190为32的处理,也就是译码的码块长度变短,这必然会带来性能的损失,为了减小损失,引 入滑动窗译码。也即是每次分量译码器译码完之后的边界状态度量值,作为下次状态的初始 值。这样既能减小码长变短带来的性能景响,又不公增加复杂度。并行译码带来的性能性能 景响见下图5: 0-2575 边 状 576-5151 内井 态 界 界 态 指度 5152-7727 度 度 度 度 7728-10303 量 量 量 核0-核7 195 图5并行译码分块图 Fig. 5 Diagram of Parallel Decoding Block-Dividing 值得注意的是,多核编程需要考虑多核同步的问题,尤其是在完全独立的内核之间,比 如C6678芯片。在迭代过程中交织和解交织之前都要做到同步,不然某些核走到前面,导 200致后面核用的都是旧的数据,损失迭代的性能。在这里,同步的方法推荐使用8核读写共享 内的方式,也即是每个核做完了相应的计算之后对共享内核写数据,然后等着等待,直到 所有核都完成相应的计算。 333分块并行译码性能 毫无疑问,分块译码能加快译码速率,但却破坏了译码块的完整性,对性能有损失。下 205图6给出了不同分块译码数的LOG-MAP算法性能。由图可见,在码长为10304时,分块对 性能的影响几乎可以忽略个计,故可以采用并行详码 7 山国武花论文在线 http://www.paper.edu.cn 分块并行ubo性能 一并行虏 并行度6 一并行度2 ▲并行度4 10 10 -0.30.250.20.150.10.0500.050.10.15 Eb/NO(dB 图6并行译码的不同分块数性能对比图 Fig 6 Turbo Code Performance of Different Block Number 210 34译码器优化效果对比及吞吐量计算 下面对 CSSDS中ubo译码器的设计时延进行分析。对于码块为10304的数据块米说 使用 MAX-LOG-MAP算法,译码所消耗的 cycle数如下表: 表2并行与优化效果统计 Tab 2 Results of different Optimizations and Parallel decoding 迭代次数 10 非并行、未优化 26,239,017 210.070.794 262,593,969 非并行、优化 5,454,967 6.818.991 并行、未优化 3.365,220 26.686.254 33,330,495 并行、优化 138.586 l.105.628 1.381.945 设置DsP内核工作在1.00G(最高1.25G)的主频,则译码延时为 1105628(1.00*10^9)=1.1ms。 220 4结论 本文基于 TI TMS6678DSP处理器,设计并实现了1/6码率的 CCSDS标准的码长为 10304的 Turbo码译码器。文章先介绍了 CSSDS标准 Turbo码编译码器结构,接着引岀了 Turbo码的译码算法,主要包括LOG-MAP算法以及改进算法。在算法的基础上,介绍了基 于DSP芯片的优化算法和并行实现方案,在基木不降低译码性能的糸件卜,设计出了髙效 225并行 Turbo译码器,在主频为1G时的译码时延为1.1ms,满足实时信号处理的要求。 参考文献]( References) [1]C. Berrou, A Glavieux, and P. Thitimajshima, "Near Shannon Limit Error-Correcting Coding and Decoding Turbo Codes, "Proc. IEEE Inter. Conf, on Commun. 1993(ICC93), pp. 1064-70, Geneva, Switzerland, May 1993 230 [2JCCSDS, 101.0-B-4-1999TELEMETRY CIIANNEL CODINGi Newport Beach, California, USA CCSDS, 1999 山国武获论文在丝 http://www.paper.edu.cn wIlliam E. Ryan"A Turbo Code Tutorial"NEW Mexico State University 4]L. R. Bahl, J Cocke, F Jelinek, and J. Raviv, Optimal decoding of linear codes for minimizing symbol error rate, "IEEE Trans. Inform. Theory, vol. IT-20, Mar. 1974 [6] Hand-Tuning Loops and Control Codc on thc TMS320C6000, August 2006s, Wiley. 2005: 582-633 [5]Todd K Moon, Error Correction Coding Mathenatical Methods and Algorith [7 A. Abbasfar, "Turbo-like Codes: Design for High Decoding", Springer, 2007. 9

...展开详情
试读 9P 论文研究-基于TI DSP实现CCSDS标准Turbo译码器 .pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
    抢沙发
    一个资源只可评论一次,评论内容不能少于5个字
    • 至尊王者

      成功上传501个资源即可获取
    关注 私信 TA的资源
    上传资源赚积分,得勋章
    最新推荐
    论文研究-基于TI DSP实现CCSDS标准Turbo译码器 .pdf 12积分/C币 立即下载
    1/9
    论文研究-基于TI DSP实现CCSDS标准Turbo译码器 .pdf第1页
    论文研究-基于TI DSP实现CCSDS标准Turbo译码器 .pdf第2页
    论文研究-基于TI DSP实现CCSDS标准Turbo译码器 .pdf第3页

    试读已结束,剩余6页未读...

    12积分/C币 立即下载 >