Multicore Navigator and Its Application in the LTE-A
陳發堂 肖冬冬(重慶郵電大學重慶市移動通信技術重點實驗室,重慶 400065)
?
多核導航及其在LTE-A中的應用
國家科技重大專項基金資助項目(編號:2012ZX03001024)。
修改稿收到日期:2015-07-28。
第一作者陳發堂(1965-),男,1999年畢業于北京郵電大學應用數學專業,獲碩士學位,研究員;主要從事TD-SCDMA移動通信系統及TD-LTE系統的開發工作。
在多核系統中,關鍵性的問題是如何實現多核間的高速數據傳輸以及任務的協同調度。基于此,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個隊列管理器子系統(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彈出一個描述符,通過該描述符尋找到鏈接緩沖區,然后把接收端口過來的凈荷數據搬移到相應緩沖區中,最后把該描述符壓入到接收隊列中,完成數據包的入隊過程。接收隊列如果是累加器隊列,則可通過中斷通知主機從緩存中讀取描述符的信息,并作相應的處理;如果不是,則用戶直接從接收隊列中取出描述符,查找到相應接收緩沖區,然后讀取即可。
多核通信,不僅需要數據信息的傳輸,同時也需要同步控制信息的傳輸。本實例中,數據信息通過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復雜通信系統而言,多核導航則是一個很好的硬件工具。
本文對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