Multicore Navigator and Its Application in the LTE-A
陳發(fā)堂 肖冬冬(重慶郵電大學(xué)重慶市移動通信技術(shù)重點實驗室,重慶 400065)
?
多核導(dǎo)航及其在LTE-A中的應(yīng)用
國家科技重大專項基金資助項目(編號:2012ZX03001024)。
修改稿收到日期:2015-07-28。
第一作者陳發(fā)堂(1965-),男,1999年畢業(yè)于北京郵電大學(xué)應(yīng)用數(shù)學(xué)專業(yè),獲碩士學(xué)位,研究員;主要從事TD-SCDMA移動通信系統(tǒng)及TD-LTE系統(tǒng)的開發(fā)工作。
在多核系統(tǒng)中,關(guān)鍵性的問題是如何實現(xiàn)多核間的高速數(shù)據(jù)傳輸以及任務(wù)的協(xié)同調(diào)度?;诖?,TI公司在其C66系列DSP中,首次設(shè)計了多核導(dǎo)航機制,用于控制和完成高速數(shù)據(jù)包在設(shè)備內(nèi)的傳輸。多核導(dǎo)航由隊列管理子系統(tǒng)(queue manager subsystem,QMSS)和包直接存儲器訪問(packet direct memory access,PKTDMA)組成。QMSS負責(zé)隊列的監(jiān)控和累加、負載均衡、流量整形以及中斷的分配等工作[1],PKTDMA主要負責(zé)數(shù)據(jù)包在設(shè)備內(nèi)的零拷貝高速傳輸,PKTDMA內(nèi)部的發(fā)送調(diào)度器可以將發(fā)送隊列里的任務(wù)分配到不同的接收隊列,從而快速定向到可用的硬件模塊,以減輕DSP的負擔(dān),提高系統(tǒng)的整體性能。這種基于數(shù)據(jù)包的片上系統(tǒng)使用具有2 Tbit/s容量的TeraNet交換網(wǎng)絡(luò)來搬移數(shù)據(jù)包,處理速度非常可觀[2]。
TMS320C6670是TI推出的一款四核定點/浮點DSP,單核1.2 GHz,采用最新的KeyStone多內(nèi)核架構(gòu)。該架構(gòu)采用多核導(dǎo)航、TeraNet網(wǎng)絡(luò)、共享內(nèi)存和Hyperlink等前沿技術(shù),使得DSP片內(nèi)能夠提供足夠大的帶寬,可以無阻塞訪問所有核、外設(shè)、協(xié)處理器和I/O[3]。此外,單片DSP TMS320C6670還集成了眾多高速串行接口,如SRIO、AIF2、HyperLink、PCIe等,能夠方便地進行高速數(shù)據(jù)傳輸和系統(tǒng)擴展。
多核導(dǎo)航靈活又復(fù)雜,可配合串行高速接口AIF2、SRIO以及協(xié)處理器FFTC、BCP進行高速數(shù)據(jù)包的傳輸,也可以單獨實現(xiàn)任務(wù)的分配和多核間數(shù)據(jù)包的高速傳輸以及多核間的中斷通知機制[4]。本文將對多核導(dǎo)航的結(jié)構(gòu)、原理及其參數(shù)配置作詳細分析,并給出一種多核導(dǎo)航的具體配置實例及其相應(yīng)的仿真圖,分析其性能,為其他多核使用者提供一定的參考。
1.1多核導(dǎo)航模塊
多核導(dǎo)航模塊框圖如圖1所示。圖1中,多核導(dǎo)航模塊由1個隊列管理器子系統(tǒng)(QMSS)和多個PKTDMA組成。其中,QMSS包含1個隊列管理器、1個基礎(chǔ)PKTDMA、2個帶定時器的PDSP固件。多核導(dǎo)航的外圍設(shè)備有SRIO、AIF2、BCP、FFTC等,這些外圍設(shè)備的內(nèi)部都包含1個PKTDMA,用于輔助這些模塊數(shù)據(jù)包的收發(fā)。在系統(tǒng)中,需要為描述符存儲區(qū)、緩沖區(qū)存儲區(qū)、累加器存儲區(qū)和鏈接索引存儲區(qū)分配一定的內(nèi)存,保證多核導(dǎo)航的正常工作。整個系統(tǒng)通過中斷實現(xiàn)多核之間的相互通知機制,通過2 Tbit/s容量的TeraNet(VBUS)交換網(wǎng)絡(luò)來搬移數(shù)據(jù),實現(xiàn)數(shù)據(jù)包的高速傳輸。
圖1 多核導(dǎo)航模塊框圖Fig.1 multicore navigator block diagram
1.2多核導(dǎo)航的組件
(1)QMSS:隊列管理器子系統(tǒng)(QMSS)主要由以下6部分組成。
①1個硬件隊列管理器,包括8 192個隊列、20個描述符存儲區(qū)、2個鏈接索引存儲區(qū),主要負責(zé)數(shù)據(jù)包隊列的加速管理;
②1個基礎(chǔ)PKTDMA,主要用于核間數(shù)據(jù)搬移,也可與其他高速接口進行數(shù)據(jù)傳輸;
③2個PDSP固件,主要負責(zé)描述符累加、隊列監(jiān)控、負載平衡、流量整形、事件管理;
④1個中斷分配器,通過中斷實現(xiàn)多核主機之間的相互通知機制;
⑤1個內(nèi)部鏈接索引存儲區(qū),用于存放描述符的索引;
⑥2個定時器,用來控制中斷的周期。
(2)PKTDMA:用于實現(xiàn)數(shù)據(jù)包的發(fā)送與接收。其中,串行高速接口AIF2、SRIO、包加速器PA、協(xié)處理器FFTC、BCP的內(nèi)部都包含1個PKTDMA模塊,以便這些模塊進行數(shù)據(jù)的交互。
1.3多核導(dǎo)航中的關(guān)鍵概念
1.3.1描述符
描述符是一小塊存儲空間,用于描述將要在系統(tǒng)中傳輸?shù)臄?shù)據(jù)包。描述符分為3類:主機包描述符、主機緩沖描述符和單一包描述符。
主機包描述符具有固定大小的描述區(qū)域,描述符中包含指向數(shù)據(jù)緩沖區(qū)的指針,作為可選項,也可以有鏈接到一個或者更多主機緩沖區(qū)描述符的指針。
主機緩沖描述符的大小可以隨著不同主機包在其內(nèi)部發(fā)生變化,但是絕不能放在一個包的第一個鏈接上。
單一包描述符不同于主機包描述符,它的描述符區(qū)域包含負載數(shù)據(jù),而主機包的數(shù)據(jù)放在數(shù)據(jù)緩沖區(qū)里,主機包描述符包含指向數(shù)據(jù)緩沖區(qū)的指針。
1.3.2包
包是描述符與附加在其上的凈荷數(shù)據(jù)的邏輯組合,可以一個描述符對應(yīng)一個數(shù)據(jù)包,也可以是多個描述符對應(yīng)一個數(shù)據(jù)包。根據(jù)描述符類型的不同,將包分為主機包和單一包,主機包的凈荷數(shù)據(jù)存放在描述符鏈接的緩沖區(qū)中,單一包的凈荷數(shù)據(jù)存放在描述符內(nèi)部。
1.3.3隊列
當(dāng)數(shù)據(jù)包在主機或者系統(tǒng)外設(shè)之間傳遞時,隊列用來存放指向描述符的指針。通過描述符的入隊和出隊實現(xiàn)數(shù)據(jù)包的入隊和出隊。
一個隊列管理器一共管理8 192個隊列,用途不盡相同。8 192個隊列由512個低優(yōu)先級累加器隊列、32個高優(yōu)先級累加器隊列、一些高速接口以及協(xié)處理器的專用發(fā)送隊列、一些特定用途的專用隊列以及7 304個通用隊列組成[5-6]。在數(shù)據(jù)包的收發(fā)過程中,8 192個隊列可以被配置成以下4種隊列類型,如表1所示。
表1 多核導(dǎo)航的隊列類型Tab.1 The queue type of multicore navigator
1.3.4入隊和出隊
當(dāng)向Queue N Register D寄存器寫入一個32位的描述符號地址時,就實現(xiàn)了包的入隊操作,該包可以被壓入到隊列的頭部或者尾部,這是由Queue N Register C來決定的,默認(rèn)是壓入到隊列的尾部。當(dāng)讀取排在Queue N最前面的包的指針時,就實現(xiàn)了包的出隊操作。當(dāng)最前面的頭指針被讀取之后,隊列管理器將頭指針設(shè)為無效,并用隊列中的下個包的指針替換它。
政府財政救助機制和市場保險賠償機制在農(nóng)業(yè)救災(zāi)中都能發(fā)揮重要的作用。市場補償和風(fēng)險的再保險機制擁有良好的激勵效應(yīng),但是不能完全解決災(zāi)害補償問題。原因在于,一是風(fēng)險管理的公共屬性。災(zāi)害管理一般具有公共性質(zhì),許多政策會對社會的福利和風(fēng)險水平具有較大影響,只有政府才能發(fā)揮協(xié)調(diào)與控制作用。二是保險市場不完善。在商業(yè)保險中,部分災(zāi)害并不屬于可保風(fēng)險。因此,在農(nóng)業(yè)災(zāi)害風(fēng)險的管控與救助中,應(yīng)將政府與市場主體救助結(jié)合起來,發(fā)揮市場的激勵機制與政府的協(xié)調(diào)和控制機制,形成對農(nóng)業(yè)巨災(zāi)補償?shù)暮狭?,建立多層次的巨?zāi)補償聯(lián)動機制。
1.3.5鏈接存儲區(qū)
鏈接存儲區(qū)為每個描述符配置一個入口,每個入口占據(jù)64 bit,用來存放前向數(shù)據(jù)指針。前向數(shù)據(jù)指針表示描述符的鏈接信息,即指明當(dāng)前描述符的下一個描述符。這些前向數(shù)據(jù)指針形成一個鏈接表,隊列管理器就是通過鏈接表來管理隊列的入隊和出隊的。
1.3.6通道
在系統(tǒng)中,每個PKTDMA都可以被配置成多個Tx以及Rx通道,用于數(shù)據(jù)包的收發(fā)。一旦PKTDMA在一個通道上開始傳輸數(shù)據(jù)包,該通道就不能被別的包占用,直到當(dāng)前的包傳輸完成。PKTDMA包含獨立的Tx DMA和Rx DMA引擎,所以可以同時進行雙向傳輸。
1.3.7接收流
接收流就是一系列指令集,用于告知Rx DMA如何處理Rx Packet。接收流的配置決定由哪個Rx FDQ提供空閑描述符、哪個隊列為接收隊列、空閑描述符的類型、接收起始包(start of packet,SOP)偏移、PS信息是否要存放在接收包描述符等。用戶需要根據(jù)應(yīng)用的需求配置好相應(yīng)的接收流。
1.4數(shù)據(jù)包的收發(fā)過程
實現(xiàn)數(shù)據(jù)包收發(fā)的前提是初始化時已經(jīng)向TxFDQ 和RxFDQ壓入一定數(shù)量的描述符,且每個描述符都鏈接了相應(yīng)的緩沖區(qū)(可以不在初始化時鏈接)。
在發(fā)送模式下,先從TxFDQ中取一個描述符,根據(jù)描述符找到相應(yīng)的緩沖區(qū),然后向緩沖區(qū)里填充相應(yīng)的數(shù)據(jù)。數(shù)據(jù)包填充完畢后,將該描述符壓入到發(fā)送隊列中,TxDMA會從發(fā)送隊列中取出描述符,通過描述符找到相應(yīng)的緩沖區(qū),從緩沖區(qū)中讀取凈荷數(shù)據(jù),TxDMA再把凈荷數(shù)據(jù)傳送至發(fā)送口。
在接收模式下,RxDMA從流接口接收數(shù)據(jù)包,根據(jù)接收流(Rx Flow)的配置,決定從哪個RxFDQ彈出一個描述符,通過該描述符尋找到鏈接緩沖區(qū),然后把接收端口過來的凈荷數(shù)據(jù)搬移到相應(yīng)緩沖區(qū)中,最后把該描述符壓入到接收隊列中,完成數(shù)據(jù)包的入隊過程。接收隊列如果是累加器隊列,則可通過中斷通知主機從緩存中讀取描述符的信息,并作相應(yīng)的處理;如果不是,則用戶直接從接收隊列中取出描述符,查找到相應(yīng)接收緩沖區(qū),然后讀取即可。
多核通信,不僅需要數(shù)據(jù)信息的傳輸,同時也需要同步控制信息的傳輸。本實例中,數(shù)據(jù)信息通過PKTDMA傳輸,同步控制信息則通過中斷實現(xiàn)。
多核導(dǎo)航具有靈活的中斷機制,包括高優(yōu)先級累加器中斷、低優(yōu)先級累加器中斷和隊列掛起中斷。其中,高優(yōu)先級累加器中斷可實現(xiàn)對具體指定核的中斷,低優(yōu)先級累加器中斷可實現(xiàn)對自己的中斷。隊列掛起中斷,即可實現(xiàn)對指定核的中斷,也可實現(xiàn)對所有核的中斷。本工程采用的是高優(yōu)先級累加器中斷。
實例中的具體參數(shù)配置如表2所示。
表2 多核導(dǎo)航的主要參數(shù)配置Tab.2 The main parameters to configure multicore navigator
多核導(dǎo)航作為加速數(shù)據(jù)傳輸和實現(xiàn)多核協(xié)同工作的硬件機制,需要在系統(tǒng)啟動時對多核導(dǎo)航模塊進行適當(dāng)?shù)某跏蓟?,為其分配足夠的資源,以確保該模塊能夠持續(xù)正常工作。主要需要初始化的有QMSS、PKTDMA、發(fā)送通道、接收通道、接收流、描述符、中斷等。LTE-A中的比特流處理流程[6]如圖2所示。其中,碼塊分割后的數(shù)據(jù)雖然不同,但是分割后的碼塊都會經(jīng)過相同的處理,包括CRC添加、信道編碼、速率匹配。因此可以將不同的碼塊分配到其他核進行相同的處理,處理后的結(jié)果再傳回主核,實現(xiàn)多核并行處理,提高系統(tǒng)效率。處理結(jié)果表明,速度可達單核運行的2.5倍。
圖2 比特流處理流程圖Fig.2 The flowchart of bit stream process
在本工程中,核0做主核,其他3個核做從核。在核0完成傳輸塊的CRC添加之后,對碼塊進行分割,分割后的多份數(shù)據(jù)分別傳輸給核1、核2和核3。數(shù)據(jù)傳輸完成時,主核分別給核1、核2、核3發(fā)送高優(yōu)先級累加器中斷1、2、3,使各從核完成碼塊的CRC添加、turbo編碼和速率匹配。各從核會將處理完的數(shù)據(jù)再傳輸回主核0,并向核0發(fā)送高優(yōu)先級累加器中斷0,實現(xiàn)碼塊級聯(lián)。同時,也對多核導(dǎo)航的數(shù)據(jù)吞吐率進行了測試。
待系統(tǒng)初始化及多核導(dǎo)航初始化后,如果有數(shù)據(jù)包需要待發(fā)送,首先從發(fā)送完成隊列里彈出描述符,然后把凈荷數(shù)據(jù)寫入描述符鏈接的緩沖區(qū),最后,只需把描述符壓入發(fā)送隊列,數(shù)據(jù)包便開始傳輸。多核導(dǎo)航吞吐率測試整體工程流程圖如圖3所示。
圖3 多核導(dǎo)航吞吐率測試工程流程圖Fig.3 The flowchart of multicore navigator throughput test
在工程中,測試了多核導(dǎo)航在通道數(shù)為1、2、4、8的4種情況下,數(shù)據(jù)包由核0 LL2傳輸?shù)胶? LL2的數(shù)據(jù)吞吐率,并對測試結(jié)果進行了分析。仿真圖如圖4所示。
圖4 多通道情況下多核導(dǎo)航的吞吐率Fig.4 The throughput of multicore navigator under the multi-channel case
仿真結(jié)果表明,在通道數(shù)小于或等于4的情況下,通道數(shù)的增加能明顯提高多核導(dǎo)航的吞吐率;通道數(shù)大于4之后,再增加通道數(shù),吞吐率變化不大。其主要原因是受制于總線的帶寬。所以,4通道數(shù)是比較好的選擇。在單通道的情況下,多核導(dǎo)航的吞吐率只有1 000 MB/s,是增強型直接存儲器訪問(enhanced direct memory access,EDMA)的1/3到1/2,可見,單個PKTDMA通道并不能完全實現(xiàn)總線的帶寬,對于需要單通道獲得巨大帶寬的數(shù)據(jù)傳輸,EDMA是個更好的選擇。相對于EDMA,多核導(dǎo)航可以將發(fā)送與接收分開配置,不需要提前獲取接收數(shù)據(jù)的目的地址,并且提供了多種事件類型,支持多核任務(wù)的分發(fā)、相關(guān)協(xié)處理器及外設(shè)的數(shù)據(jù)輸入輸出管理等。對于LTE-A復(fù)雜通信系統(tǒng)而言,多核導(dǎo)航則是一個很好的硬件工具。
本文對TI C66系列DSP中的多核導(dǎo)航模塊的結(jié)構(gòu)、基本原理進行了詳細的介紹,著重分析了數(shù)據(jù)包的傳輸過程及初始化參數(shù)配置。結(jié)合工程,給出一個多核導(dǎo)航在LTE-A通信中的具體應(yīng)用,并對其性能進行了分析,為其他多核DSP的應(yīng)用開發(fā)提供參考。
參考文獻
[1]牛金海.TMS320C66x KeyStone架構(gòu)多核DSP入門與實例精解[M].上海:上海交通大學(xué)出版社,2014.
[2]陶永燕.基于TI C66多核DSP技術(shù)的研究與應(yīng)用[D].北京:北京郵電大學(xué),2013.
[3]楊桓.基于TMS320C6678的實時SAR成像算法實現(xiàn)[D].西安:西安電子科技大學(xué),2013.
[4]蘇保禹.基于TI-C6678的多核DSP圖像處理系統(tǒng)研究[D].北京:中國科學(xué)院研究生院(光電技術(shù)研究所),2014.
[5]謝俊.基于TMS320C6678的細胞圖像識別并行系統(tǒng)設(shè)計與實現(xiàn)[D].湘潭:湘潭大學(xué),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.
科技期刊中文文摘的撰寫
根據(jù)GB/T 6447-1986《文摘編寫規(guī)則》關(guān)于摘要的定義,摘要是以提供文獻內(nèi)容梗概為目的,不加評論和補充解釋,簡明、確切地記述文獻重要內(nèi)容的短文。按摘要的不同功能來劃分,它大致分為報道性摘要、指示性摘要、報道-指示性摘要3種類型。一般的科技論文應(yīng)盡可能采用報道性摘要。摘要中應(yīng)寫的內(nèi)容一般包括研究工作的目的、方法、結(jié)果和結(jié)論,而重點是結(jié)果和結(jié)論。根據(jù)有關(guān)規(guī)定,撰寫摘要應(yīng)注意以下幾點。
①省略“我們”“作者”“筆者”“本文”這樣的主語。
②簡短精煉,明確具體。簡短,指篇幅短,一般以不超過200字為宜(依摘要類型而定);精煉,指摘錄出原文的精華,無多余的話;明確具體,指表意明白,不含糊,無空泛、籠統(tǒng)的詞語,應(yīng)有較多而有用的定性和定量的信息。
③一般不要交代背景,更不要闡述一般性知識。
④格式要規(guī)范,一般不分段,盡可能用規(guī)范術(shù)語,不用非共知共用的符號和術(shù)語。不能簡單地重復(fù)題名中已有的信息,并切忌羅列段落標(biāo)題來代替摘要。除了實在無變通辦法可用以外,一般不出現(xiàn)插圖、表格,以及參考文獻序號,一般不用數(shù)學(xué)公式和化學(xué)結(jié)構(gòu)式。
Multicore Navigator and Its Application in the LTE-A
陳發(fā)堂肖冬冬
(重慶郵電大學(xué)重慶市移動通信技術(shù)重點實驗室,重慶400065)
摘要:首先對TI C66系列最新引進的基于數(shù)據(jù)包結(jié)構(gòu)的多核導(dǎo)航進行了研究,在充分理解其結(jié)構(gòu)與原理的基礎(chǔ)上,編寫出多核導(dǎo)航的底層驅(qū)動。然后結(jié)合LTE-A中的比特流處理流程,通過多核導(dǎo)航的發(fā)送調(diào)度器將不同的碼塊同時分配到不同的核,通過包DMA完成核間數(shù)據(jù)包高速傳輸,從而實現(xiàn)多個碼塊的多核并行處理。最后通過對工程的多次測試,獲得測試結(jié)果。測試結(jié)果分析表明,多核導(dǎo)航的使用得當(dāng)可極大提高系統(tǒng)的效率。 是現(xiàn)代科技論文的必要附加部分,只有極短的文章才能省略。它是幫助讀者從浩瀚的信息海洋中能較快、較準(zhǔn)地找到他們所需要的科技信息的一種有效工具。摘要一般置于作者及其工作單位之后、關(guān)鍵詞之前。
關(guān)鍵詞:多核導(dǎo)航數(shù)據(jù)包底層驅(qū)動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
文獻標(biāo)志碼:A
DOI:10.16086/j.cnki.issn1000-0380.201603012