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