APP下载

多核导航及其在LTE-A中的应用

2016-05-11MulticoreNavigatorandItsApplicationintheLTE

自动化仪表 2016年3期
关键词:累加器描述符缓冲区

Multicore Navigator and Its Application in the LTE-A

陈发堂 肖冬冬(重庆邮电大学重庆市移动通信技术重点实验室,重庆 400065)



多核导航及其在LTE-A中的应用

国家科技重大专项基金资助项目(编号:2012ZX03001024)。

修改稿收到日期:2015-07-28。

第一作者陈发堂(1965-),男,1999年毕业于北京邮电大学应用数学专业,获硕士学位,研究员;主要从事TD-SCDMA移动通信系统及TD-LTE系统的开发工作。

0 引言

在多核系统中,关键性的问题是如何实现多核间的高速数据传输以及任务的协同调度。基于此,TI公司在其C66系列DSP中,首次设计了多核导航机制,用于控制和完成高速数据包在设备内的传输。多核导航由队列管理子系统(queue manager subsystem,QMSS)和包直接存储器访问(packet direct memory access,PKTDMA)组成。QMSS负责队列的监控和累加、负载均衡、流量整形以及中断的分配等工作[1],PKTDMA主要负责数据包在设备内的零拷贝高速传输,PKTDMA内部的发送调度器可以将发送队列里的任务分配到不同的接收队列,从而快速定向到可用的硬件模块,以减轻DSP的负担,提高系统的整体性能。这种基于数据包的片上系统使用具有2 Tbit/s容量的TeraNet交换网络来搬移数据包,处理速度非常可观[2]。

TMS320C6670是TI推出的一款四核定点/浮点DSP,单核1.2 GHz,采用最新的KeyStone多内核架构。该架构采用多核导航、TeraNet网络、共享内存和Hyperlink等前沿技术,使得DSP片内能够提供足够大的带宽,可以无阻塞访问所有核、外设、协处理器和I/O[3]。此外,单片DSP TMS320C6670还集成了众多高速串行接口,如SRIO、AIF2、HyperLink、PCIe等,能够方便地进行高速数据传输和系统扩展。

多核导航灵活又复杂,可配合串行高速接口AIF2、SRIO以及协处理器FFTC、BCP进行高速数据包的传输,也可以单独实现任务的分配和多核间数据包的高速传输以及多核间的中断通知机制[4]。本文将对多核导航的结构、原理及其参数配置作详细分析,并给出一种多核导航的具体配置实例及其相应的仿真图,分析其性能,为其他多核使用者提供一定的参考。

1 多核导航

1.1多核导航模块

多核导航模块框图如图1所示。图1中,多核导航模块由1个队列管理器子系统(QMSS)和多个PKTDMA组成。其中,QMSS包含1个队列管理器、1个基础PKTDMA、2个带定时器的PDSP固件。多核导航的外围设备有SRIO、AIF2、BCP、FFTC等,这些外围设备的内部都包含1个PKTDMA,用于辅助这些模块数据包的收发。在系统中,需要为描述符存储区、缓冲区存储区、累加器存储区和链接索引存储区分配一定的内存,保证多核导航的正常工作。整个系统通过中断实现多核之间的相互通知机制,通过2 Tbit/s容量的TeraNet(VBUS)交换网络来搬移数据,实现数据包的高速传输。

图1 多核导航模块框图Fig.1 multicore navigator block diagram

1.2多核导航的组件

(1)QMSS:队列管理器子系统(QMSS)主要由以下6部分组成。

①1个硬件队列管理器,包括8 192个队列、20个描述符存储区、2个链接索引存储区,主要负责数据包队列的加速管理;

②1个基础PKTDMA,主要用于核间数据搬移,也可与其他高速接口进行数据传输;

③2个PDSP固件,主要负责描述符累加、队列监控、负载平衡、流量整形、事件管理;

④1个中断分配器,通过中断实现多核主机之间的相互通知机制;

⑤1个内部链接索引存储区,用于存放描述符的索引;

⑥2个定时器,用来控制中断的周期。

(2)PKTDMA:用于实现数据包的发送与接收。其中,串行高速接口AIF2、SRIO、包加速器PA、协处理器FFTC、BCP的内部都包含1个PKTDMA模块,以便这些模块进行数据的交互。

1.3多核导航中的关键概念

1.3.1描述符

描述符是一小块存储空间,用于描述将要在系统中传输的数据包。描述符分为3类:主机包描述符、主机缓冲描述符和单一包描述符。

主机包描述符具有固定大小的描述区域,描述符中包含指向数据缓冲区的指针,作为可选项,也可以有链接到一个或者更多主机缓冲区描述符的指针。

主机缓冲描述符的大小可以随着不同主机包在其内部发生变化,但是绝不能放在一个包的第一个链接上。

单一包描述符不同于主机包描述符,它的描述符区域包含负载数据,而主机包的数据放在数据缓冲区里,主机包描述符包含指向数据缓冲区的指针。

1.3.2包

包是描述符与附加在其上的净荷数据的逻辑组合,可以一个描述符对应一个数据包,也可以是多个描述符对应一个数据包。根据描述符类型的不同,将包分为主机包和单一包,主机包的净荷数据存放在描述符链接的缓冲区中,单一包的净荷数据存放在描述符内部。

1.3.3队列

当数据包在主机或者系统外设之间传递时,队列用来存放指向描述符的指针。通过描述符的入队和出队实现数据包的入队和出队。

一个队列管理器一共管理8 192个队列,用途不尽相同。8 192个队列由512个低优先级累加器队列、32个高优先级累加器队列、一些高速接口以及协处理器的专用发送队列、一些特定用途的专用队列以及7 304个通用队列组成[5-6]。在数据包的收发过程中,8 192个队列可以被配置成以下4种队列类型,如表1所示。

表1 多核导航的队列类型Tab.1 The queue type of multicore navigator

1.3.4入队和出队

当向Queue N Register D寄存器写入一个32位的描述符号地址时,就实现了包的入队操作,该包可以被压入到队列的头部或者尾部,这是由Queue N Register C来决定的,默认是压入到队列的尾部。当读取排在Queue N最前面的包的指针时,就实现了包的出队操作。当最前面的头指针被读取之后,队列管理器将头指针设为无效,并用队列中的下个包的指针替换它。

政府财政救助机制和市场保险赔偿机制在农业救灾中都能发挥重要的作用。市场补偿和风险的再保险机制拥有良好的激励效应,但是不能完全解决灾害补偿问题。原因在于,一是风险管理的公共属性。灾害管理一般具有公共性质,许多政策会对社会的福利和风险水平具有较大影响,只有政府才能发挥协调与控制作用。二是保险市场不完善。在商业保险中,部分灾害并不属于可保风险。因此,在农业灾害风险的管控与救助中,应将政府与市场主体救助结合起来,发挥市场的激励机制与政府的协调和控制机制,形成对农业巨灾补偿的合力,建立多层次的巨灾补偿联动机制。

1.3.5链接存储区

链接存储区为每个描述符配置一个入口,每个入口占据64 bit,用来存放前向数据指针。前向数据指针表示描述符的链接信息,即指明当前描述符的下一个描述符。这些前向数据指针形成一个链接表,队列管理器就是通过链接表来管理队列的入队和出队的。

1.3.6通道

在系统中,每个PKTDMA都可以被配置成多个Tx以及Rx通道,用于数据包的收发。一旦PKTDMA在一个通道上开始传输数据包,该通道就不能被别的包占用,直到当前的包传输完成。PKTDMA包含独立的Tx DMA和Rx DMA引擎,所以可以同时进行双向传输。

1.3.7接收流

接收流就是一系列指令集,用于告知Rx DMA如何处理Rx Packet。接收流的配置决定由哪个Rx FDQ提供空闲描述符、哪个队列为接收队列、空闲描述符的类型、接收起始包(start of packet,SOP)偏移、PS信息是否要存放在接收包描述符等。用户需要根据应用的需求配置好相应的接收流。

1.4数据包的收发过程

实现数据包收发的前提是初始化时已经向TxFDQ 和RxFDQ压入一定数量的描述符,且每个描述符都链接了相应的缓冲区(可以不在初始化时链接)。

在发送模式下,先从TxFDQ中取一个描述符,根据描述符找到相应的缓冲区,然后向缓冲区里填充相应的数据。数据包填充完毕后,将该描述符压入到发送队列中,TxDMA会从发送队列中取出描述符,通过描述符找到相应的缓冲区,从缓冲区中读取净荷数据,TxDMA再把净荷数据传送至发送口。

在接收模式下,RxDMA从流接口接收数据包,根据接收流(Rx Flow)的配置,决定从哪个RxFDQ弹出一个描述符,通过该描述符寻找到链接缓冲区,然后把接收端口过来的净荷数据搬移到相应缓冲区中,最后把该描述符压入到接收队列中,完成数据包的入队过程。接收队列如果是累加器队列,则可通过中断通知主机从缓存中读取描述符的信息,并作相应的处理;如果不是,则用户直接从接收队列中取出描述符,查找到相应接收缓冲区,然后读取即可。

2 LTE通信中多核导航的配置

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

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

实例中的具体参数配置如表2所示。

表2 多核导航的主要参数配置Tab.2 The main parameters to configure multicore navigator

多核导航作为加速数据传输和实现多核协同工作的硬件机制,需要在系统启动时对多核导航模块进行适当的初始化,为其分配足够的资源,以确保该模块能够持续正常工作。主要需要初始化的有QMSS、PKTDMA、发送通道、接收通道、接收流、描述符、中断等。LTE-A中的比特流处理流程[6]如图2所示。其中,码块分割后的数据虽然不同,但是分割后的码块都会经过相同的处理,包括CRC添加、信道编码、速率匹配。因此可以将不同的码块分配到其他核进行相同的处理,处理后的结果再传回主核,实现多核并行处理,提高系统效率。处理结果表明,速度可达单核运行的2.5倍。

图2 比特流处理流程图Fig.2 The flowchart of bit stream process

在本工程中,核0做主核,其他3个核做从核。在核0完成传输块的CRC添加之后,对码块进行分割,分割后的多份数据分别传输给核1、核2和核3。数据传输完成时,主核分别给核1、核2、核3发送高优先级累加器中断1、2、3,使各从核完成码块的CRC添加、turbo编码和速率匹配。各从核会将处理完的数据再传输回主核0,并向核0发送高优先级累加器中断0,实现码块级联。同时,也对多核导航的数据吞吐率进行了测试。

待系统初始化及多核导航初始化后,如果有数据包需要待发送,首先从发送完成队列里弹出描述符,然后把净荷数据写入描述符链接的缓冲区,最后,只需把描述符压入发送队列,数据包便开始传输。多核导航吞吐率测试整体工程流程图如图3所示。

图3 多核导航吞吐率测试工程流程图Fig.3 The flowchart of multicore navigator throughput test

在工程中,测试了多核导航在通道数为1、2、4、8的4种情况下,数据包由核0 LL2传输到核3 LL2的数据吞吐率,并对测试结果进行了分析。仿真图如图4所示。

图4 多通道情况下多核导航的吞吐率Fig.4 The throughput of multicore navigator under the multi-channel case

仿真结果表明,在通道数小于或等于4的情况下,通道数的增加能明显提高多核导航的吞吐率;通道数大于4之后,再增加通道数,吞吐率变化不大。其主要原因是受制于总线的带宽。所以,4通道数是比较好的选择。在单通道的情况下,多核导航的吞吐率只有1 000 MB/s,是增强型直接存储器访问(enhanced direct memory access,EDMA)的1/3到1/2,可见,单个PKTDMA通道并不能完全实现总线的带宽,对于需要单通道获得巨大带宽的数据传输,EDMA是个更好的选择。相对于EDMA,多核导航可以将发送与接收分开配置,不需要提前获取接收数据的目的地址,并且提供了多种事件类型,支持多核任务的分发、相关协处理器及外设的数据输入输出管理等。对于LTE-A复杂通信系统而言,多核导航则是一个很好的硬件工具。

3 结束语

本文对TI C66系列DSP中的多核导航模块的结构、基本原理进行了详细的介绍,着重分析了数据包的传输过程及初始化参数配置。结合工程,给出一个多核导航在LTE-A通信中的具体应用,并对其性能进行了分析,为其他多核DSP的应用开发提供参考。

参考文献

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

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

[3]杨桓.基于TMS320C6678的实时SAR成像算法实现[D].西安:西安电子科技大学,2013.

[4]苏保禹.基于TI-C6678的多核DSP图像处理系统研究[D].北京:中国科学院研究生院(光电技术研究所),2014.

[5]谢俊.基于TMS320C6678的细胞图像识别并行系统设计与实现[D].湘潭:湘潭大学,2014.

[6]3GPP TS 36.212v10.8.0.3rd Generation partnership project;technical specification group radio access network; evolved universal terrestrial radio access (E-UTRA)multiplexing and channel coding (Release 10)[S].2013.

科技期刊中文文摘的撰写

根据GB/T 6447-1986《文摘编写规则》关于摘要的定义,摘要是以提供文献内容梗概为目的,不加评论和补充解释,简明、确切地记述文献重要内容的短文。按摘要的不同功能来划分,它大致分为报道性摘要、指示性摘要、报道-指示性摘要3种类型。一般的科技论文应尽可能采用报道性摘要。摘要中应写的内容一般包括研究工作的目的、方法、结果和结论,而重点是结果和结论。根据有关规定,撰写摘要应注意以下几点。

①省略“我们”“作者”“笔者”“本文”这样的主语。

②简短精炼,明确具体。简短,指篇幅短,一般以不超过200字为宜(依摘要类型而定);精炼,指摘录出原文的精华,无多余的话;明确具体,指表意明白,不含糊,无空泛、笼统的词语,应有较多而有用的定性和定量的信息。

③一般不要交代背景,更不要阐述一般性知识。

④格式要规范,一般不分段,尽可能用规范术语,不用非共知共用的符号和术语。不能简单地重复题名中已有的信息,并切忌罗列段落标题来代替摘要。除了实在无变通办法可用以外,一般不出现插图、表格,以及参考文献序号,一般不用数学公式和化学结构式。

Multicore Navigator and Its Application in the LTE-A

陈发堂肖冬冬
(重庆邮电大学重庆市移动通信技术重点实验室,重庆400065)

摘要:首先对TI C66系列最新引进的基于数据包结构的多核导航进行了研究,在充分理解其结构与原理的基础上,编写出多核导航的底层驱动。然后结合LTE-A中的比特流处理流程,通过多核导航的发送调度器将不同的码块同时分配到不同的核,通过包DMA完成核间数据包高速传输,从而实现多个码块的多核并行处理。最后通过对工程的多次测试,获得测试结果。测试结果分析表明,多核导航的使用得当可极大提高系统的效率。 是现代科技论文的必要附加部分,只有极短的文章才能省略。它是帮助读者从浩瀚的信息海洋中能较快、较准地找到他们所需要的科技信息的一种有效工具。摘要一般置于作者及其工作单位之后、关键词之前。

关键词:多核导航数据包底层驱动LTE-A比特流并行处理DSP

Abstract:Firstly,multicore navigator,based on the structure of data packet,which is introduced by TI C66 family lately,was studied and after the full understanding of the structure and principle,the underlying driver programmer was coded.Then,combined with bit stream processing in LTE-A system,assigning different code block to different core with the help of transmit scheduler of multicore navigator,multicore parallel processing of multiple code block was implemented.Finally,through the multiple tests of the project,test result was obtained and we obtained the conclusions that proper using of multicore navigator can greatly improve system efficiency by analysis the test result.

Keywords:Multicore navigator Data packet Low level driver LTE-ABit streamParallel process DSP

中图分类号:TH-39; TP2

文献标志码:A

DOI:10.16086/j.cnki.issn1000-0380.201603012

猜你喜欢

累加器描述符缓冲区
嵌入式系统环形缓冲区快速读写方法的设计与实现
密码累加器研究进展及应用
基于结构信息的异源遥感图像局部特征描述符研究
Linux单线程并发服务器探索
Fpga的信号发生器设计原理
利用CNN的无人机遥感影像特征描述符学习
基于霍夫变换的工位点识别算法设计与实现
用于时间延迟积分型图像传感器的流水采样列级运放共享累加器*
关键链技术缓冲区的确定方法研究
地理信息系统绘图缓冲区技术设计与实现