多核DSP中FFTC协处理器在LTE-A下的应用*

2016-08-24 01:27李小文薛尧黄菲谭博
广东通信技术 2016年7期
关键词:描述符物理层寄存器

[李小文 薛尧 黄菲 谭博]

多核DSP中FFTC协处理器在LTE-A下的应用*

[李小文 薛尧 黄菲 谭博]

随着无线通信系统传输数率的不断提升,采用单核DSP进行数字基带处理的系统渐渐不能满足日益增加的复杂度及实时性要求,多核并行模式以及协处理器的加入逐渐被广泛应用。针对于此,基于LTE-A系统下物理层链路的实现,采用TI 推出的TMS320C6670高性能4核处理器,其中多核架构特性优点以及快速傅里叶变换协处理器(FFTC)的使用,将有效减少开发难度以及提高数据处理速度,大幅提升LTE-A数字基带系统处理性能。

FFTC 多核导航 数据包 LTE-A

李小文

硕导,教授,研究员,男,重庆邮电大学重庆市移动通信技术重点实验室,主要研究方向为移动通信,TD-LTE 系统开发研究。

薛尧

硕士研究生,男,重庆邮电大学重庆市移动通信技术重点实验室,主要研究方向:多核DSP在LTE中的应用。

黄菲

硕士研究生,男,重庆邮电大学重庆市移动通信技术重点实验室,主要研究方向:物理层研究与DSP实现。

谭博

硕士研究生,男,重庆邮电大学重庆市移动通信技术重点实验室,主要研究方向:物理层研究与DSP实现。

引言

DSP是对数字信号进行高速实时处理的专用处理器,在当今的数字化的背景下,DSP以其高性能和软件可编程等特点,已经成为电子工业领域增长最迅速的产品之一[1]。但是随着应用领域的扩大以及产品性能的日益丰富,数字信号处理平台发展趋向大计算量、大带宽、高集成度的特点,人们对数字信号处理器数据处理速度和计算性能提出了更高的要求[2]。单核DSP运算性能逐渐不能满足这些要求,于是多核DSP已经成为数字处理发展的必然选择[3]。通信行业中随着通信标准的不断演进,LTE/LTE-A标准[4]已经商用并成为通信行业焦点,同时LTE/ LTE-A通信系统对传输数率的要求越来越高,这给底层硬件处理器带来了很大挑战。目前很多采用DSP进行基带处理的软基站、小型基站和无线电[5],其DSP的处理器性能直接成为一个制约系统的重要因素。鉴于此,TI推出了一款四核定点/浮点DSP TMS320C6670,单核1.2GHz,该芯片架构采用多核导航机制,并包含有FFTC、BCP、TCP3、VCP2等协处理器,是一块基于通信用途的DSP芯片[6]。该芯片首次设计了多核导航机制,用于控制和完成数据包在设备内的高速传输。

快速傅里叶变换协处理器(FFTC)、比特级协处理器(BCP)可以用以辅助DSP进行LTE-A基带数据的处理,以此可以提升基带数据处理的效率,减轻DSP负担。FFTC主要是一个可编程的外设,专门用来进行基带FFT/ IFFT的数据处理,而BCP则主要完成LTE-A物理层比特级的数据处理。在LTE_A物理层中,FFT/IFFT是必不可少的流程,对于使用各种算法对FFT/IFFT的实现,现在基于这个协处理器,可以大大减少LTE_A物理层中算法的复杂度,而只需要关注FFTC的配置以及处理速度和数据的正确性。因此本文主要研究FFTC协处理器对于LTE系统的应用,首先对多核导航的结构原理做分析,然后对FFTC协处理器进行分析,最后给出一种多核导航结合FFTC的具体LTE-A应用实例及其相应的波形图,分析FFTC的性能;结果表明如果使用得当,可以极大的提高系统效率,减少代码复杂度和物理层开发难度。

图1 多核导航模块

1 多核架构概述

基于TMS320C6670 DSP采用了多核导航机制。多核导航由队列管理子系统( Queue Manager Subsystem, QMSS)和包直接存储器访问(Packet Direct Memory Access, PKTDMA)组成,QMSS 负责队列的监控和累加,负载均衡、流量整形以及中断的分配等工作[7]。PKTDMA 主要负责数据包在设备内的零拷贝高速传输。多核导航机制还设置有一系列队列,包括发送、发送完成、接收、接收完成队列。根据用户设计要求,可以配置 PKTDMA 内部发送调度器将发送队列里的任务分配到不同的接收队列,从而快速定向到可用的硬件模块,减少 DSP 负担,提高系统整体性能。这种基于数据包的片上系统使用具有 2Tbit/s容量的 TeraNet 交换网络来搬移数据包,处理速度非常可观[8]。

1.1 多核导航功能框图

如图1,多核导航由一个队列管理器子系统(QMSS)和多个 PKTDMA组成,其中, QMSS包含一个队列管理器、一个基础PKTDMA、两个带定时器的PDSP固件[9]。多核导航的外围设备有SRIO、AIF2、BCP、FFTC等,这些外围设备的内部都包含一个PKTDMA。用户只需要在使用这些外围设备的时候,结合多核导航配置好相应的PKTDMA,就可以实现各个模块数据的发送以及接收,并且使用中断来实现多核间或核与外围设备之间的通知机制。

1.2 多核导航工作原理

多核导航主要通过队列管理器(QM)来负责数据包队列的加速管理,PKTDMA则主要根据队列中描述符有效载荷缓冲区的链接,对有效载荷发送或接收。发送原理如图2。

收发数的过程有以下四种队列:

(1) 发送完成队列(TxFDQ):在发送端,为发送队列提供空闲描述符,数据传送完成后,回收空闲描述符给主机。

(2) 发送队列(TX):专用队列,发送端口用于存储待发送数据包。

(3) 空闲描述符队列(FDQ):在接收端,用来提供空闲描述符,用于指定数据接收buffer。

(4) 接收队列(RX):将已经完成接收的包向前传输给主机或其等同实体。

(5) 图中的描述符是一小块存储空间,用于描述将要在系统中传输的数据包。

在发送端和接收端,发送完成队列(TxFDQ)和空闲描述符队列(FDQ)可以看成同一个队列,都是用于存放空闲的描述符,只是分别用于发送和接收。

在发送端,首先从空闲队列中取得描述符,然后对描述符的buffer区域进行数据填充,并将描述符压入到发送队列,PKTDMA就会从发送队列中自动取得描述符,从而读取有效载荷,发送至传输口并自动回收描述符。在接收端,PKTDMA会自动从空闲描述符队列取得描述符,然后将接收到的数据转入相应的buffer,并将描述符压入到接收队列。

图2 多核导航工作原理框图

2 快速傅里叶变换协处理器(FFTC)

2.1 FFTC协处理器

在DSP TMS320C6670芯片中一共有三个FFTC,这个协处理器被设计用来加速LTE物理层中对数据的FFT/IFFT计算,三个协处理器可以并行运行且可被四个核调用。FFTC主要有以下功能:FFT与IFFT、LTE中7.5KHZ频移、添加/去除CP、补零操作、对每级蝶形运算实现动态或用户自定义方式的缩放。

2.2 FFTC协处理器子模块

如图3,为FFTC的原理框图[10]。

图3 FFTC原理框图

如图3,FFTC协处理器由以下子模块构成:

(1) 配置寄存器:FFTC有4组配置寄存器,这些寄存器的设置都是相同的,都包含有5个寄存器。每组对应一个发送队列。配置寄存器主要是用于设置FFTC做DFT/IDFT计算时所需的配置参数。

(2) FFT engine:执行DFT/IDFT运算处理的模块。

(3) Packet DMA:FFT engine的I/O口,FFTC使用多核导航来进行数据的输入以及输出,多核导航搬运数据时不需要CPU的参与。

(4) FFT流接口:用于连接多核导航与FFT engine。

(5) FFTC调度器:FFTC多核导航给FFT engine提供了多个发送队列。FFTC调度器的任务是要根据优先级选择出这些发送队列里下一个将要处理的数据包。

3 FFTC在LTE-A中的应用

在LTE物理信道数据处理过程中都需要进行FFT/ IFFT计算。如图4显示了其中一个信道LTE下行共享信道处理的流程。如果传统的利用汇编或C语言进行变成来实现物理层的信道处理将耗费大量的指令周期,随着数据量的增加,处理的时间也随之上升[11],所以LTE物理层中有效的利用BCP和FFTC两个协处理器能高效的解决以上的问题,减少代码复杂度和运行时间。

图4 LTE下行共享信道处理的流程

C6670中有3个FFTC协处理器, 3个协处理器可以被四个核同时访问,所以合理的资源分配也能提高数据处理时间。FFTC协处理器和多核导航的PKTDMA以及QM子系统有着密切的联系,PKTDMA/QM子系统是用来发送FFT请求和接收输出结果的唯一途径。在LTE物理层中如果需要应用到FFTC就一定需要配置好多核导航,用于给FFTC发送数据以及接收计算之后的数据并发送给相应的核或者模块进行下一步操作。

3.1 多核导航的配置

多核导航和FFTC的通信,不仅需要数据信息的传输,同时也需要同步控制信息的传输。数据信息通过PKTDMA传输,同步控制信息则通过中断实现。

多核导航具有灵活的中断机制,包括高优先级累加器中断、低优先级累加器中断和队列挂起中断。其中,高优先级累加器中断可实现对具体指定核的中断,低优先级累加器中断可实现对自己的中断。队列挂起中断,即可实现对指定核的中断,也可实现对所有核的中断。

多核导航作为加速数据传输和实现多核协同工作的硬件机制,需要在系统启动时对多核导航模块进行适当的初始化,为其分配足够的资源,以确保该模块能够持续正常工作。主要需要初始化的有QMSS、PKTDMA、发送通道、接收通道、接收流、描述符、中断等。C6670一共有8192个队列,其中FFTC的发送队列已经做了明确的划分,而接收队列我们采用高优先级累加器队列,这种队列有其对应的中断事件,能映射到一个特定的DSP核上,FFTC根据这个接收队列就能将处理后的数据通过中断发送给我们想要的核去进行下一步的处理,有利于多核协作提高效率。

3.2 FFTC的配置

对FFTC的配置主要在于驱动程序的编写,由驱动程序对FFTC进行管理,并负责配置 FFT/IFFT计算时的一部分参数。

(1) FFT engine参数配置

如图5,在FFT engine中数据主要由以下顺序进行计算。决定这些参数的主要由五个寄存器组成,分别是目标队列寄存器、缩放和移位寄存器、循环前缀寄存器、控制寄存器、LTE频移寄存器。根据实际需要配置这些寄存器的相应比特位,FFT engine就会按照这些参数进行计算。最终生成所需要的OFDM信号。

图5 FFTC 引擎

3.3 FFTC数据测试例程

如图6为FFTC数据测试例程流程图。待系统初始化及多核导航初始化后,按照LTE-A对ODFM信号生成的要求配置好FFTC相应的参数寄存器,当有需要进行计算的数据包时,就从发送空闲队列里弹出描述符,然后把净荷数据写入描述符链接的buffer,再把描述符压入发送队列,数据包便会自动开始传输至FFT引擎,FFT引擎就会按照事先配置好的功能进行计算,得到结果。

4 测试结果及分析

基于TI推出的TMS320C6670多核DSP平台,利用快速傅里叶变换协处理器FFTC实现了回环测试和不同长度数据的计算,以验证FFTC协处理器的正确性和高效率。并将FFTC应用于LTE-A的物理层的数据处理,减少工程复杂度以及运行时间。工程中,我们首先进行了FFTC的回环测试,验证FFTC协处理器的正确性,接着对不同数据长度的运行时间进行测试,同传统的汇编或C语言的运行时间做对比,以验证合理使用FFTC协处理器可以非常高效的实现LTE中FFT/IFFT的计算。多核DSP[12]、TMS320C6670的FFTC协处理器四种运算系统平台。已验证基于FFTC协处理器运算的高效率性。各系统平均的FFT运算耗时如表1。

图6 FFTC数据测试工程流程

表1 不同运算平台FFT处理时间

由表1分析可知,基于TI的C6713单核运算平台对FFT实现的耗时最长,运算时间达到了183.50205ms,实时性最差。借助MATLAB的FFT运算实时性稍有提高,而采用C6678多核并行运算,对于1M数据的FFT耗时仅为6.5ms,对比前两种系统平台有了显著提高。但是我们采用FFTC加速器对于1M数据的计算时间则只有0.618ms,对比C6678多核并行运算时间减少10倍左右,可见FFTC的实时性更高。

表2给出了基于TMS320C6670的FFTC处理不同数据长度的耗时。

4.1 FFTC回环测试

回环测试中,按照LTE物理层下行共享信道的OFDM信号生成规则,配置好寄存器参数,FFTC_A配置为做2048点IFFT以及160长度的CP添加。首先将2048个32位数据压入到描述符Buffer区域,再将描述符压入到FFTC_A发送队列,就可以从预先设定的接收队列中取得处理后的数据。之后将处理后存放数据的描述符压入到FFTC_B的发送队列,FFTC_B的寄存器参数配置为去CP,以及2048点的FFT。最后从接收队列取得数据同最开始发送数据进行对比,数据一样则表示FFTC测试通过,就可分别作为LTE物理层的接收端和发送端。

实际测试结果中,最后得到的数据同原始输入数据比较,内存显示第一个数据个位同原始数据有1的偏差,其余数据则全部一样,说明存在一点计算误差,但这并不影响其余数据的正确性,说明回环测试通过,FFTC能够正常运行。

表2 不同数据长度FFTC运算耗时

由表2分析可知:随着数据长度的增长,平均1K数据长度的计算时间在减少,说明当数据搬移与处理达到流水操作,FFTC的处理效果会更好。反而数据量小的时候,FFTC对于数据的处理有额外的时间开销,不能达到系统最优。

4.2 FFTC运算实时性分析

图7 FFTC数据测试耗时曲线

运算耗时在嵌入式系统开发中是最重要的性能指标之一。在本论文中对1M的数据量进行FFT运算,主要基于MATLAB仿真、TMS320C6713单核和TMS320C6678

从图7可以看出,当数据长度达到一定的值之后,对于平均1K的处理时间越来越接近,幅度也在降低,曲线走向也趋于平缓,说明FFTC已经逐渐达到了一个最大的处理速度,此时性能最优。

5 结 论

本文对TI C66系列DSP中的多核导航以及FFTC基本原理进行了详细的介绍,着重分析了数据在FFTC中计算的时间开销。并将FFTC应用到LTE-A通信流程中,为其他多核DSP的应用开发提供参考。

1牛金海. TMS320C66x KeyStone 架构多核DSP入门与实例精解[M]. 上海:上海交通大学出版社,2014

2彭宇,姜红兰,杨智明等.基于DSP和FPGA的通用数字信号处理系统设计[J].国外电子测量技术.2013,32(1):17-21

3CHI B K,SHAO CH W,WEN L S,et al.Parallelization of a Bokeh application on embedded multicore DSP systems. Embedded Systems for Real-Time Multimedia . 2011,9(10):13-14

4林辉,焦慧颖等。LTE-Advanced关键技术详解[M].北京:人民邮电出版社,2012

5栗欣,许希斌.软件无线电原理与技术[M].北京:人民邮电出版社,2010

6Texas Instrument. TMS320C6670 multicore fixed and floating-point system-on-chip data manual [Z]. Texas, TI,Mar, 2012

7牛金海. TMS320C66x Keystone 架构多核DSP入门与实例精解[M]. 上海:上海交通大学出版社,2014

8陶永燕.基于TI C66多核DSP技术的研究与应用[D]. 北京:北京邮电大学

9Texas Instruments. Keystone architecture multicore navigator user guide [Z]. Texas, TI, Mar, 2012.

10Texas Instruments. Keystone architecture fast fourier transform coprocessor (FFTC) user guide [Z]. Texas, TI,Mar, 2012

11乔昊,张轶凡,冯志勇. TI C6670 DSP中BCP协处理器在LTE下行物理层中的应用[EB/OL].北京:中国科技论文在线 [2013-05-13].http://www.paper.edu.cn/releasepaper/ content/201305-168

12袁琪,杨康,周建江,李虹达. 大点数FFT算法C6678多核DSP的并行实现[J]. 电子测量技术,2015,38(2):74-80

10.3969/j.issn.1006-6403.2016.07.006

国家科技重大专项(2012ZX03001024)

2016-06-16)

猜你喜欢
描述符物理层寄存器
基于K-ML-MPWFRFT的物理层安全传输技术
基于结构信息的异源遥感图像局部特征描述符研究
STM32和51单片机寄存器映射原理异同分析
基于AKAZE的BOLD掩码描述符的匹配算法的研究
Lite寄存器模型的设计与实现
公路联网电子不停车收费系统路侧单元物理层自动测试软件研发
基于深度学习的局部描述符
移位寄存器及算术运算应用
特征联合和旋转不变空间分割联合的局部图像描述符
多天线物理层安全传输系统性能分析