陸平靜,賴明澈,王博超,???/p>
(國防科技大學(xué)計算機學(xué)院,湖南 長沙 410073)
隨著芯片設(shè)計技術(shù)的進步,單處理器/加速器的性能快速提升,其所要求的網(wǎng)絡(luò)端端傳輸延遲隨之降低。但實際應(yīng)用中,網(wǎng)絡(luò)傳輸延遲基本保持在1 μs左右,在現(xiàn)有技術(shù)框架下,進一步降低延遲存在較大困難。當前一般通過網(wǎng)絡(luò)接口芯片NIC(Network Interface Chip)將處理器/結(jié)點接入到系統(tǒng)互連網(wǎng)絡(luò)中,而該結(jié)構(gòu)中所用PCIe接口上的延遲占傳輸總延遲的比例較大(約60%),如能使互連通信接口更加靠近處理器,實現(xiàn)網(wǎng)絡(luò)與計算深度融合,是實現(xiàn)低延遲、低功耗、高密度互連的重要手段,也是下一代互連網(wǎng)絡(luò)重要發(fā)展趨勢[1,2]。計算與互連緊耦合是一種低延遲IO架構(gòu),縮短通信內(nèi)存之間距離能顯著降低延遲,有利于優(yōu)化工作負載并降低功耗。
2015年甲骨文推出了一款面向企業(yè)級工作負載的低成本SPARC處理器,整合了SPARC M7處理器及InfiniBand接口[3,4];同年富士通公司在K超級計算機中升級了Tofu2互連技術(shù),相對Tofu第一代技術(shù)將互連接口、交換部件和SPARC處理器集成在單個芯片中,顯著改善了密度能效,并且提出Cache緩沖推送機制將延遲降低至800 ns[5]。2016年Intel下一代高速網(wǎng)絡(luò)構(gòu)架Omni-Path也宣布了計算與互連緊耦合框架,分2個階段實現(xiàn)多裸片封裝和單芯片集成,主要為降低延遲并改善傳輸效能[6,7]。
本文提出一種以片內(nèi)互連形式直接將計算內(nèi)核和網(wǎng)絡(luò)接口等通過互連總線集成至計算內(nèi)核的計算互連融合體系結(jié)構(gòu)FCI(Fusion network architecture for Computing and Interconnection),取代現(xiàn)有PCIe互連接入方式,以降低通信延遲,提高集成密度,降低互連功耗。并對該融合互連結(jié)構(gòu)搭建了FPGA驗證平臺進行性能測試,結(jié)果表明相對于傳統(tǒng)的經(jīng)由PCIe相連的互連系統(tǒng),F(xiàn)CI結(jié)構(gòu)具有更好的通信帶寬與更低的通信延遲。
FCI總體結(jié)構(gòu)如圖1所示,其中涉及的關(guān)鍵技術(shù)主要包括:(1)單周期轉(zhuǎn)發(fā)特征的XBAR結(jié)構(gòu),可為組織架構(gòu)提供更低傳輸延遲、更高通信帶寬;(2)設(shè)計網(wǎng)絡(luò)鏈路層LLP(Link Layer Protocol),用來實現(xiàn)報文的可靠傳輸;(3)低延遲物理加擾編碼子層PCS(Physical Coding Sublayer),用于增加碼率擾動,提高信號傳輸質(zhì)量,減少信號傳輸延遲。
Figure 1 Structure of FCI圖1 FCI結(jié)構(gòu)總體
內(nèi)存網(wǎng)絡(luò)對傳輸延遲有較高的要求,在整個內(nèi)存網(wǎng)絡(luò)中報文傳輸經(jīng)過多個中間結(jié)點會造成傳輸延遲問題更加突出。瓦片組織架構(gòu)中XBAR如果采取傳統(tǒng)5級與4級流水線的微體系結(jié)構(gòu),將會帶來較深的流水線,不利于控制整個內(nèi)存網(wǎng)絡(luò)的傳輸延遲。這主要是由于在傳統(tǒng)路由器中,報文需要串行執(zhí)行路由計算、通道仲裁、傳輸仲裁等操作,明顯增加了網(wǎng)絡(luò)延遲。為此,F(xiàn)CI采取一種具有單周期轉(zhuǎn)發(fā)特征的XBAR結(jié)構(gòu),只要多個輸入端口報文之間沒有沖突發(fā)生便能實現(xiàn)單周期轉(zhuǎn)發(fā)操作,適應(yīng)于各類路由算法與流量負載,其硬件復(fù)雜度較低,可為瓦片組織架構(gòu)提供更低傳輸延遲與更高通信帶寬。
圖2為快速單周期交換結(jié)構(gòu)。輸入端口接收報文之后,將根據(jù)報文輸出方向和交叉開關(guān)配置來具體判斷傳輸路徑是否空閑。如果傳輸路徑空閑,輸入端口將為報文分配快速通道,旁路正常的通道開關(guān)仲裁和開關(guān)傳輸兩級流水過程,直接將報文輸出。路由器的每個輸入端口都配置了一個快速通道,它的結(jié)構(gòu)與虛擬通道配置相同,但僅緩存了與其他報文無沖突的報文,并發(fā)送快速仲裁信號給快速仲裁部件??焖僦俨迷O(shè)計復(fù)雜度低,只負責(zé)對快速通道的傳輸請求進行仲裁;快速傳輸仲裁的獲勝者不需要等待,將立即通過交叉開關(guān)流出,因此整個傳輸過程僅需一個時鐘周期。同時,由于報文的路由計算和開關(guān)傳輸難以在一個周期內(nèi)完成,因此還設(shè)計了超前路由計算部件來對路由計算和開關(guān)傳輸過程進行解耦合。報文在傳輸之前先提前發(fā)送超前路由信號給下級路由器,等待報文到達下級路由器時,路由計算已執(zhí)行完畢,報文可以直接在超前路由計算部件處查詢路由計算結(jié)果后從交叉開關(guān)輸出,避免了較長的路由計算耗時。
Figure 2 Fast single-period switching structure圖2 快速單周期交換結(jié)構(gòu)
數(shù)據(jù)鏈路層用來實現(xiàn)報文的可靠傳輸,可靠性傳輸通過CRC(Cyclic Redundancy Check)檢錯和重傳機制實現(xiàn),與具體采用的物理通道類型和通道數(shù)量無關(guān)。數(shù)據(jù)鏈路層中的邏輯分為3大部分,分別是發(fā)送模塊、接收模塊和控制模塊。LLP總體結(jié)構(gòu)如圖3所示。
Figure 3 Structure of LLP module圖3 LLP模塊總體結(jié)構(gòu)
(1)LLP初始化握手機制:復(fù)位撤銷以后,接收端接到對端發(fā)來的初始化幀,同時也向?qū)Χ税l(fā)送相同的初始化幀。初始化狀態(tài)機根據(jù)初始化幀的計數(shù)和相關(guān)信號逐一跳轉(zhuǎn),最后握手成功,并輸出鏈路正常(link_normal)狀態(tài),此時表示可以正常接發(fā)數(shù)據(jù)。在握手的過程中會通過初始化幀將本地配置的結(jié)點號(node id)和結(jié)點端口(node port)放入初始化幀發(fā)送至對端,對端將抽取node id和node port字段放入狀態(tài)寄存器供查詢。
(2)CRC校驗:采用多種CRC校驗方式,鏈路層報文采用CRCH、CRCL保護;數(shù)據(jù)報文除了采用端到端的CRC32外,在鏈路層還提供了CRCH、CRCL保護。
(3)重傳機制:重傳基于滑動窗口機制,發(fā)送端設(shè)置超時機制,接收端CRC出錯的數(shù)據(jù)可以等待對端重新發(fā)送。
(4)序列號與ACK(ACKnowledge character)應(yīng)答管理:LLP發(fā)送端報文攜帶發(fā)送序號,需要對端返回ACK應(yīng)答,以確認發(fā)送端的數(shù)據(jù)成功發(fā)送。
(5)基于鏈路的BIST檢查:內(nèi)建自測試模塊,可配置BIST使能,自動產(chǎn)生偽隨機序列,可檢查數(shù)據(jù)傳輸?shù)恼_性,測試與對端的連接質(zhì)量。
(6)發(fā)送端和接收端報文完整性檢查:報文完整性檢查包括HT標識和報文長度檢查,當LLP在工作中出現(xiàn)異常錯誤時,錯誤將會被處理,同時會記錄錯誤現(xiàn)場,以便于后期調(diào)試。
(7)發(fā)送數(shù)據(jù)錯誤插入功能:對發(fā)送數(shù)據(jù)進行錯誤插入,可檢測對端的CRC校驗功能。在BIST測試時該功能無效。
PCS是一個具有高帶寬、低延遲、高可靠和高靈活特點的物理編碼子層,用于將上層數(shù)據(jù)鏈路層的數(shù)據(jù),經(jīng)Serdes傳播到接收端并進行數(shù)據(jù)的對齊和重組。內(nèi)存互連網(wǎng)絡(luò)需要很高的傳輸質(zhì)量并且要求較低的傳輸延遲,故本文在高速串口中設(shè)計了一種用于物理編碼子層的加擾裝置,用于增加碼率擾動,提高信號傳輸質(zhì)量,減少信號傳輸延遲。
本文通過一個移位寄存器接收本輪加擾數(shù)據(jù),該數(shù)據(jù)是按物理介質(zhì)分組傳輸?shù)拿恳粋€分組數(shù)據(jù),且每一個周期將移位寄存器中存儲的線性序列向左移動一個分組數(shù)據(jù)的長度,根據(jù)標準加擾多項式將移位寄存器中存儲的線性序列進行加擾,并通過狀態(tài)機插入邊界標記,能夠在使用相同加擾多項式的情況下實現(xiàn)以一個分組數(shù)據(jù)為粒度的加擾,因此無需像IEEE802.3ae標準擾碼器那樣等待60位數(shù)據(jù)全部到齊,而只需等待一個分組數(shù)據(jù)即可進行加擾操作,從而解決了標準擾碼器延遲太大的問題,具有加擾效率高、延遲低的特點。每個單lane編碼具體劃分為如圖4所示,其各模塊功能如表1所示。
Table 1 Module function for single lane in PCS表1 PCS單個lane結(jié)構(gòu)各模塊功能
Figure 4 Structure for single lane in PCS圖4 PCS單個lane的結(jié)構(gòu)
PCS的每個lane以48位數(shù)據(jù)為編碼單位。由于48位已經(jīng)被完全占滿,為避免浪費帶寬又不允許使用額外的有效位,本文選擇使用逃逸機制(escaping)來編碼特殊的控制字符。在接收端,rx_deescaper負責(zé)完成正常數(shù)據(jù)、IDLE字符以及控制字符SYNC等變換的逆變換。tx_gearbox模塊維護一個小型緩沖區(qū),將上層給出的48位加擾結(jié)果轉(zhuǎn)變?yōu)?0位的Serdes接口數(shù)據(jù)。同時,該緩沖區(qū)的空滿信號將被作為上層邏輯的反向剎車信號,以免上層邏輯產(chǎn)生超過Serdes發(fā)送能力的數(shù)據(jù)流。當上層邏輯長時間沒有數(shù)據(jù)時,該模塊還負責(zé)產(chǎn)生IDLE字符插入緩沖區(qū)。由于48位數(shù)據(jù)并不是64位數(shù)據(jù)的邊界,因此為了能夠在接收端正確地恢復(fù)64位數(shù)據(jù)邊界,本文使用了如圖5所示的編碼格式:每個大型矩形為一個8位數(shù)據(jù),每6個相鄰?fù)拇笮途匦谓M成一個48位數(shù)據(jù)單位。每行右側(cè)的01或者10代表64位數(shù)據(jù)的邊界。
Figure 5 Coding structure for tx_gearbox圖5 tx_gearbox的編碼結(jié)構(gòu)
本文完成了計算互連融合體系結(jié)構(gòu)驗證平臺的搭建與測試,驗證平臺如圖6所示。采用Xilinx ZYNQ ZCU102 FPGA板搭建該原型驗證系統(tǒng),在Cortex-A53上建立了交叉編譯環(huán)境,vivado內(nèi)生成位流和硬件描述文件導(dǎo)入到交叉編譯環(huán)境,用petalinux編譯內(nèi)核生成鏡像,以SD卡啟動模式啟動Linux操作系統(tǒng),網(wǎng)絡(luò)接口部分NIO驅(qū)動在交叉編譯環(huán)境內(nèi)編譯后加載入Linux內(nèi)核。
Figure 6 FPGA prototype for the fusion network system圖6 融合互連系統(tǒng)FPGA原型驗證平臺
對于前述計算互連融合原型驗證系統(tǒng)進行測試,其中NIC端口物理帶寬為25.6 Gbps,主要對其與傳統(tǒng)PCIe接口互連系統(tǒng)的雙向通信端口帶寬以及點點通信延遲情況進行對比,基本測試情況與結(jié)果如表2所示。
Table 2 Test results comparison of FCI with PCIe 表2 FCI與PCIe接口互連測試結(jié)果對比
測試結(jié)果顯示,F(xiàn)CI相對于傳統(tǒng)的經(jīng)由PCIe相連的互連系統(tǒng),其在通信帶寬上提升了約30%,而在延遲上則降低了約16.7%,由此可以看出FCI融合體系結(jié)構(gòu)具備更高帶寬、更低延遲的優(yōu)勢。
本文提出一種以片內(nèi)互連形式直接將計算內(nèi)核和網(wǎng)絡(luò)接口等通過互連總線集成至計算內(nèi)核的計算互連融合體系結(jié)構(gòu)FCI,該方式可取代現(xiàn)有PCIe互連接入方式,有效降低通信延遲,提高集成密度,降低互連功耗。其中,主要研究了該計算互連融合系統(tǒng)中具有單周期轉(zhuǎn)發(fā)特征的XBAR結(jié)構(gòu),該結(jié)構(gòu)適應(yīng)于各類路由算法與流量負載,其硬件復(fù)雜度較低,可為瓦片組織架構(gòu)提供更低傳輸延遲與更高通信帶寬;對系統(tǒng)中的網(wǎng)絡(luò)鏈路層進行了設(shè)計,用以實現(xiàn)報文的可靠傳輸,并在高速串口中設(shè)計了一種用于物理編碼子層的加擾裝置,用于增加碼率擾動,提高信號傳輸質(zhì)量,減少信號傳輸延遲,該結(jié)構(gòu)具有加擾效率高、加擾延遲低的優(yōu)點。最后,搭建了FPGA驗證平臺對該計算互連融合系統(tǒng)進行了性能測試,與PCIe接口互連系統(tǒng)相比,其通信帶寬提升了約30%,通信延遲則降低了約16.7%,這表明了該系統(tǒng)具有更高的通信帶寬,更低的通信延遲。