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