盧建章1,劉洋2
?。?.中航工業(yè)雷華電子技術(shù)研究所,江蘇 無錫 214063;2. 江南計算技術(shù)研究所,江蘇 無錫 214083)
摘要:嵌入式應(yīng)用中采用多處理系統(tǒng)所面臨的主要難題是多處理器之間的數(shù)據(jù)通信。通過對KeyStone架構(gòu)TMS320C6678處理器的HyperLink通信機制進行研究,利用其高速、低延遲、引腳少的特性實現(xiàn)處理器間的高速數(shù)據(jù)交換。從實際應(yīng)用的角度,設(shè)計了HyperLink的映射結(jié)構(gòu),并分析了性能,對多處理器間通信具有一定的參考價值。
關(guān)鍵詞:TMS320C6678;HyperLink;處理器間通信
中圖分類號:TN915.04文獻標(biāo)識碼:ADOI: 10.19358/j.issn.1674-7720.2017.03.011
引用格式:盧建章,劉洋.TMS320C6678多核DSP的HyperLink應(yīng)用[J].微型機與應(yīng)用,2017,36(3):36-38,41.
0引言
嵌入式領(lǐng)域的處理器設(shè)計已經(jīng)向多核與多處理器迅速發(fā)展,最典型的是TI公司的KeyStone架構(gòu)的多核處理器。TI公司2010年11月發(fā)布的KeyStone架構(gòu)的8核DSP處理器TMS320C6678,其每個C66x內(nèi)核主頻最高達1.25 GHz,可以提供每秒高達40 GB MAC定點運算和20 GB FLOP浮點運算能力;1片8核的TMS320C6678提供等效160 GB FLOP的浮點運算能力,是TS201S的50倍多[1],適用于諸如油氣勘探、雷達信號處理等對定浮點運算能力以及實時性有較高要求的超高性能計算應(yīng)用。
處理器之間的數(shù)據(jù)交換是多處理器系統(tǒng)所面臨的主要難點,通信機制的優(yōu)劣直接影響系統(tǒng)的處理性能,高效的通信機制是發(fā)揮多處理器系統(tǒng)高性能的重要保障。TMS320C6678采用TI全新KeyStone多核架構(gòu),屬于單芯片多核結(jié)構(gòu)。由于板載多芯片之間的通信相對復(fù)雜,因此不同的設(shè)計選取會直接影響通信的效率。TMS320C6678采用基于KeyStone結(jié)構(gòu)的專有外設(shè)接口HyperLink,采用的編碼方式等效于8b9b,相對用于高速SerDes接口的傳統(tǒng)的8b10b編碼方式,其減少了編碼冗余,提高了數(shù)據(jù)傳輸效率。單片提供4個設(shè)計速度為12.5 Gb/s的SerDes通道,所以HyperLink的理論吞吐率能達到44.4 Gb/s。
基于以上分析,本文針對TMS320C6678多核處理器,首先介紹了HyperLink的原理與機制,然后分析芯片之間HyperLink通信的映射原理,給出了通信連接的實現(xiàn)方法,并通過對多種映射關(guān)系進行對比,得出優(yōu)缺點和使用范圍,為嵌入式多處理器系統(tǒng)的設(shè)計提供參考。
1HyperLink機制
HyperLnik能為兩個KeyStone架構(gòu)DSP之間提供一種高速、低延遲、引腳數(shù)少的通信連接,是TI專有的外設(shè)接口。它使用了類似PCIE的內(nèi)存映射機制,但能為多核DSP提供一些更為靈活的特性,下面從應(yīng)用的角度分析HyperLink的構(gòu)成和配置。
1.1模塊架構(gòu)
HyperLink是TI公司為實現(xiàn)嵌入式系統(tǒng)中芯片間高效數(shù)據(jù)交互而開發(fā)的一種點對點的全雙工的連接模式,并能提供讀、寫和中斷3種傳輸方式。HyperLink模塊架構(gòu)如圖1所示。其中的PPL負責(zé)模塊的時鐘控制,通過合理的倍頻系數(shù)配置生成需要的內(nèi)部時鐘,從而驅(qū)動鏈路上數(shù)據(jù)的傳輸[2]。
1.2映射機制
TMS320C6678每個核的0x400000000x50000000地址空間為HyperLink專屬,相應(yīng)核只有在配置了HyperLink圖1模塊構(gòu)架圖后才能對該地址空間進行讀寫,并通過相應(yīng)的配置實現(xiàn)與遠端存儲空間的映射,包括DDR、SL2和LL2,具有非常靈活的映射關(guān)系。如圖2所示。
對于任何一個TMS320C6678,入口映射窗一共64個,每個都可以對應(yīng)不同的遠端地址和長度,比如DSP1的LL2、SL2和DDR。本地出口窗由16個16 MB的地址空間組成,可以映射到遠端入口窗所指向的地址空間。通過圖2的映射配置,DSP0可以訪問DSP1的所有內(nèi)存空間,就像訪問自己的本地存儲空間一樣。為了實現(xiàn)地址映射,必須按照以下方式進行設(shè)置[3]:
(1) 根據(jù)實際的地址映射關(guān)系和地址有效位配置發(fā)送端地址掩碼寄存器(TXIGMASK)、PrivID和安全位域寄存器,接收端配置地址段選擇寄存器(RX_SEG_VAL)和PrivID表;
(2) 配置串行/解串模塊(SerDes)的參考時鐘、數(shù)據(jù)傳輸回路方式和鏈路速率等信息;
(3) 寫鎖相環(huán)寄存器(CFGPLL),啟動HyperLink的訓(xùn)練序列,并等待物理層返回準(zhǔn)備狀態(tài)。
按照上述配置后,DSP0讀寫本地出口窗地址時,HyperLink通過地址轉(zhuǎn)譯,即相當(dāng)于直接訪問映射的遠端地址。
1.3地址轉(zhuǎn)譯
處理器核1在通過本地專屬的地址0x40001234 進行讀寫操作時,HyperLink按照地址掩碼寄存器的配置要求,結(jié)合專屬地址和PrivID(core 1)生成發(fā)送端的HyperLink請求地址。例如發(fā)送端配置地址掩碼寄存器(TXIGMASK)為11(即掩碼0x0FFFFFFF),PrivID位域為1(即Bit31:28),那么經(jīng)過轉(zhuǎn)譯后輸出的請求地址為PrivID+0x40001234&0x0FFFFFFF=0x10001234。接收側(cè)根據(jù)段選擇寄存器解析出請求地址映射的目的地址,從而完成數(shù)據(jù)訪問。整個接收端的地址轉(zhuǎn)譯過程如圖3所示。
以圖3的過程為例,從接收到的請求地址的31:28位提取出PrivID索引值1,相應(yīng)表對應(yīng)的值為7,從29:24位提取出地址片段表索引0x10,相應(yīng)表對應(yīng)的地址片段起始地址值為0x0C00,長度為23(即16 MB),通過地址的轉(zhuǎn)換,最后真正訪問的地址為0x0C001234。
2HyperLink應(yīng)用設(shè)計與性能測試
以上是對TMS320C6678 的HyperLink通信機制及其實現(xiàn)過程的簡單分析,但是要實現(xiàn)TMS320C6678 強大的多處理器功能,必須從系統(tǒng)的角度來設(shè)計良好的拓撲。通信代價、帶寬和功能是評測通信的重要指標(biāo),下面介紹一種多處理器通信方式,分析它們的拓撲結(jié)構(gòu),并對不同映射配置做出測試對比。
2.1拓撲結(jié)構(gòu)
以機載雷達某機箱內(nèi)的多個處理器(6678)之間的通信為例,簡要說明HyperLink如何應(yīng)用在機載雷達設(shè)計中。如圖4所示,某雷達機箱內(nèi)有4個TMS320C6678處理器,每個處理器包含8核,并與一個RapidIO 路由器相連,整個機箱內(nèi)每兩個處理器之間通過HyperLink連成兩組,這就形成了該機箱內(nèi)的處理器拓撲結(jié)構(gòu),各處理器結(jié)合HyperLink和SRIO實現(xiàn)數(shù)據(jù)的高效流轉(zhuǎn)。
2.2性能測試實驗
本節(jié)對HyperLink 訪問遠程存儲空間的性能進行評估,并提供在不同的操作條件下獲得的性能測試數(shù)據(jù)。大部分測試是在最理想的測試條件下進行,以使評估可以獲得最大吞吐量。處理器運行的頻率設(shè)置為1 GHz,DDR配置成64 bit,位寬1 333 MB,采用的編譯環(huán)境是TI 公司的CCSv5.0。
通信測試結(jié)果如表1所示,描述了使用HyperLink 在LL2 與遠程大塊線性存儲空間進行數(shù)據(jù)傳送測試獲得的傳輸帶寬。傳輸塊的大小為64 KB。帶寬是通過計算總的傳輸字節(jié)數(shù)除以傳輸所用的時間獲得。表1的數(shù)據(jù)展示了cache 能夠極大地改善DSP 內(nèi)核通過HyperLink 讀取數(shù)據(jù)的性能。但是 L2 cache 卻遏制了通過HyperLink 寫數(shù)據(jù)的性能,這是因為L2 是writeallocate cache。對于使能L2 cache 后的寫操作,它總是會先從將要寫入的存儲區(qū)讀取128 B數(shù)據(jù)到L2 cache,然后在L2 cache 中修改數(shù)據(jù),最后在cache 沖突時回寫到原先的存儲區(qū),或者人為地回寫到原存儲區(qū)。
HyperLink還可以通過TMS320C6678設(shè)定EDMA事件進行傳輸,通信測試結(jié)果如表2所示。
表2中的EDMA 吞吐率數(shù)據(jù)是通過TC0 (傳輸控制器0)和CC0(通道控制器0)測試得到,其他TCs的數(shù)據(jù)會比TC0 稍低。整個傳輸?shù)钠款i是在HyperLink,不是在EDMA 傳輸控制器上。表2的測試結(jié)果表明,通過HyperLink 進行寫操作的性能會比通過HyperLink 進行讀操作的性能要好。
3結(jié)論
本文研究了基于TMS320C6678處理器的片間通信,深入分析了HyperLink模塊結(jié)構(gòu)、映射機制(包括寄存器配置以及具體的實現(xiàn)方法)和地址轉(zhuǎn)譯過程,文中以某種機載雷達處理機拓撲結(jié)構(gòu)為例測試了HyperLink的數(shù)據(jù)傳輸性能。對設(shè)計多片DSP 處理器的片間通信具有一定的指導(dǎo)價值。
參考文獻
?。?] Texas Instruments Inc.Multicore design overview[Z].2011.
[2] Texas Instruments Inc.TMS320C6678 data manual[Z].2011.
?。?] Texas Instruments Inc.KeyStone Architecture HyperLink User Guid[Z]. 2012.