陸平靜,賴明澈,王博超,???/p>
(國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院,湖南 長(zhǎng)沙 410073)
隨著芯片設(shè)計(jì)技術(shù)的進(jìn)步,單處理器/加速器的性能快速提升,其所要求的網(wǎng)絡(luò)端端傳輸延遲隨之降低。但實(shí)際應(yīng)用中,網(wǎng)絡(luò)傳輸延遲基本保持在1 μs左右,在現(xiàn)有技術(shù)框架下,進(jìn)一步降低延遲存在較大困難。當(dāng)前一般通過(guò)網(wǎng)絡(luò)接口芯片NIC(Network Interface Chip)將處理器/結(jié)點(diǎn)接入到系統(tǒng)互連網(wǎng)絡(luò)中,而該結(jié)構(gòu)中所用PCIe接口上的延遲占傳輸總延遲的比例較大(約60%),如能使互連通信接口更加靠近處理器,實(shí)現(xiàn)網(wǎng)絡(luò)與計(jì)算深度融合,是實(shí)現(xiàn)低延遲、低功耗、高密度互連的重要手段,也是下一代互連網(wǎng)絡(luò)重要發(fā)展趨勢(shì)[1,2]。計(jì)算與互連緊耦合是一種低延遲IO架構(gòu),縮短通信內(nèi)存之間距離能顯著降低延遲,有利于優(yōu)化工作負(fù)載并降低功耗。
2015年甲骨文推出了一款面向企業(yè)級(jí)工作負(fù)載的低成本SPARC處理器,整合了SPARC M7處理器及InfiniBand接口[3,4];同年富士通公司在K超級(jí)計(jì)算機(jī)中升級(jí)了Tofu2互連技術(shù),相對(duì)Tofu第一代技術(shù)將互連接口、交換部件和SPARC處理器集成在單個(gè)芯片中,顯著改善了密度能效,并且提出Cache緩沖推送機(jī)制將延遲降低至800 ns[5]。2016年Intel下一代高速網(wǎng)絡(luò)構(gòu)架Omni-Path也宣布了計(jì)算與互連緊耦合框架,分2個(gè)階段實(shí)現(xiàn)多裸片封裝和單芯片集成,主要為降低延遲并改善傳輸效能[6,7]。
本文提出一種以片內(nèi)互連形式直接將計(jì)算內(nèi)核和網(wǎng)絡(luò)接口等通過(guò)互連總線集成至計(jì)算內(nèi)核的計(jì)算互連融合體系結(jié)構(gòu)FCI(Fusion network architecture for Computing and Interconnection),取代現(xiàn)有PCIe互連接入方式,以降低通信延遲,提高集成密度,降低互連功耗。并對(duì)該融合互連結(jié)構(gòu)搭建了FPGA驗(yàn)證平臺(tái)進(jìn)行性能測(cè)試,結(jié)果表明相對(duì)于傳統(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è)計(jì)網(wǎng)絡(luò)鏈路層LLP(Link Layer Protocol),用來(lái)實(shí)現(xiàn)報(bào)文的可靠傳輸;(3)低延遲物理加擾編碼子層PCS(Physical Coding Sublayer),用于增加碼率擾動(dòng),提高信號(hào)傳輸質(zhì)量,減少信號(hào)傳輸延遲。

Figure 1 Structure of FCI圖1 FCI結(jié)構(gòu)總體
內(nèi)存網(wǎng)絡(luò)對(duì)傳輸延遲有較高的要求,在整個(gè)內(nèi)存網(wǎng)絡(luò)中報(bào)文傳輸經(jīng)過(guò)多個(gè)中間結(jié)點(diǎn)會(huì)造成傳輸延遲問(wèn)題更加突出。瓦片組織架構(gòu)中XBAR如果采取傳統(tǒng)5級(jí)與4級(jí)流水線的微體系結(jié)構(gòu),將會(huì)帶來(lái)較深的流水線,不利于控制整個(gè)內(nèi)存網(wǎng)絡(luò)的傳輸延遲。這主要是由于在傳統(tǒng)路由器中,報(bào)文需要串行執(zhí)行路由計(jì)算、通道仲裁、傳輸仲裁等操作,明顯增加了網(wǎng)絡(luò)延遲。為此,F(xiàn)CI采取一種具有單周期轉(zhuǎn)發(fā)特征的XBAR結(jié)構(gòu),只要多個(gè)輸入端口報(bào)文之間沒(méi)有沖突發(fā)生便能實(shí)現(xiàn)單周期轉(zhuǎn)發(fā)操作,適應(yīng)于各類路由算法與流量負(fù)載,其硬件復(fù)雜度較低,可為瓦片組織架構(gòu)提供更低傳輸延遲與更高通信帶寬。
圖2為快速單周期交換結(jié)構(gòu)。輸入端口接收?qǐng)?bào)文之后,將根據(jù)報(bào)文輸出方向和交叉開關(guān)配置來(lái)具體判斷傳輸路徑是否空閑。如果傳輸路徑空閑,輸入端口將為報(bào)文分配快速通道,旁路正常的通道開關(guān)仲裁和開關(guān)傳輸兩級(jí)流水過(guò)程,直接將報(bào)文輸出。路由器的每個(gè)輸入端口都配置了一個(gè)快速通道,它的結(jié)構(gòu)與虛擬通道配置相同,但僅緩存了與其他報(bào)文無(wú)沖突的報(bào)文,并發(fā)送快速仲裁信號(hào)給快速仲裁部件??焖僦俨迷O(shè)計(jì)復(fù)雜度低,只負(fù)責(zé)對(duì)快速通道的傳輸請(qǐng)求進(jìn)行仲裁;快速傳輸仲裁的獲勝者不需要等待,將立即通過(guò)交叉開關(guān)流出,因此整個(gè)傳輸過(guò)程僅需一個(gè)時(shí)鐘周期。同時(shí),由于報(bào)文的路由計(jì)算和開關(guān)傳輸難以在一個(gè)周期內(nèi)完成,因此還設(shè)計(jì)了超前路由計(jì)算部件來(lái)對(duì)路由計(jì)算和開關(guān)傳輸過(guò)程進(jìn)行解耦合。報(bào)文在傳輸之前先提前發(fā)送超前路由信號(hào)給下級(jí)路由器,等待報(bào)文到達(dá)下級(jí)路由器時(shí),路由計(jì)算已執(zhí)行完畢,報(bào)文可以直接在超前路由計(jì)算部件處查詢路由計(jì)算結(jié)果后從交叉開關(guān)輸出,避免了較長(zhǎng)的路由計(jì)算耗時(shí)。

Figure 2 Fast single-period switching structure圖2 快速單周期交換結(jié)構(gòu)
數(shù)據(jù)鏈路層用來(lái)實(shí)現(xiàn)報(bào)文的可靠傳輸,可靠性傳輸通過(guò)CRC(Cyclic Redundancy Check)檢錯(cuò)和重傳機(jī)制實(shí)現(xiàn),與具體采用的物理通道類型和通道數(shù)量無(wú)關(guān)。數(shù)據(jù)鏈路層中的邏輯分為3大部分,分別是發(fā)送模塊、接收模塊和控制模塊。LLP總體結(jié)構(gòu)如圖3所示。

Figure 3 Structure of LLP module圖3 LLP模塊總體結(jié)構(gòu)
(1)LLP初始化握手機(jī)制:復(fù)位撤銷以后,接收端接到對(duì)端發(fā)來(lái)的初始化幀,同時(shí)也向?qū)Χ税l(fā)送相同的初始化幀。初始化狀態(tài)機(jī)根據(jù)初始化幀的計(jì)數(shù)和相關(guān)信號(hào)逐一跳轉(zhuǎn),最后握手成功,并輸出鏈路正常(link_normal)狀態(tài),此時(shí)表示可以正常接發(fā)數(shù)據(jù)。在握手的過(guò)程中會(huì)通過(guò)初始化幀將本地配置的結(jié)點(diǎn)號(hào)(node id)和結(jié)點(diǎn)端口(node port)放入初始化幀發(fā)送至對(duì)端,對(duì)端將抽取node id和node port字段放入狀態(tài)寄存器供查詢。
(2)CRC校驗(yàn):采用多種CRC校驗(yàn)方式,鏈路層報(bào)文采用CRCH、CRCL保護(hù);數(shù)據(jù)報(bào)文除了采用端到端的CRC32外,在鏈路層還提供了CRCH、CRCL保護(hù)。
(3)重傳機(jī)制:重傳基于滑動(dòng)窗口機(jī)制,發(fā)送端設(shè)置超時(shí)機(jī)制,接收端CRC出錯(cuò)的數(shù)據(jù)可以等待對(duì)端重新發(fā)送。
(4)序列號(hào)與ACK(ACKnowledge character)應(yīng)答管理:LLP發(fā)送端報(bào)文攜帶發(fā)送序號(hào),需要對(duì)端返回ACK應(yīng)答,以確認(rèn)發(fā)送端的數(shù)據(jù)成功發(fā)送。
(5)基于鏈路的BIST檢查:內(nèi)建自測(cè)試模塊,可配置BIST使能,自動(dòng)產(chǎn)生偽隨機(jī)序列,可檢查數(shù)據(jù)傳輸?shù)恼_性,測(cè)試與對(duì)端的連接質(zhì)量。
(6)發(fā)送端和接收端報(bào)文完整性檢查:報(bào)文完整性檢查包括HT標(biāo)識(shí)和報(bào)文長(zhǎng)度檢查,當(dāng)LLP在工作中出現(xiàn)異常錯(cuò)誤時(shí),錯(cuò)誤將會(huì)被處理,同時(shí)會(huì)記錄錯(cuò)誤現(xiàn)場(chǎng),以便于后期調(diào)試。
(7)發(fā)送數(shù)據(jù)錯(cuò)誤插入功能:對(duì)發(fā)送數(shù)據(jù)進(jìn)行錯(cuò)誤插入,可檢測(cè)對(duì)端的CRC校驗(yàn)功能。在BIST測(cè)試時(shí)該功能無(wú)效。
PCS是一個(gè)具有高帶寬、低延遲、高可靠和高靈活特點(diǎn)的物理編碼子層,用于將上層數(shù)據(jù)鏈路層的數(shù)據(jù),經(jīng)Serdes傳播到接收端并進(jìn)行數(shù)據(jù)的對(duì)齊和重組。內(nèi)存互連網(wǎng)絡(luò)需要很高的傳輸質(zhì)量并且要求較低的傳輸延遲,故本文在高速串口中設(shè)計(jì)了一種用于物理編碼子層的加擾裝置,用于增加碼率擾動(dòng),提高信號(hào)傳輸質(zhì)量,減少信號(hào)傳輸延遲。
本文通過(guò)一個(gè)移位寄存器接收本輪加擾數(shù)據(jù),該數(shù)據(jù)是按物理介質(zhì)分組傳輸?shù)拿恳粋€(gè)分組數(shù)據(jù),且每一個(gè)周期將移位寄存器中存儲(chǔ)的線性序列向左移動(dòng)一個(gè)分組數(shù)據(jù)的長(zhǎng)度,根據(jù)標(biāo)準(zhǔn)加擾多項(xiàng)式將移位寄存器中存儲(chǔ)的線性序列進(jìn)行加擾,并通過(guò)狀態(tài)機(jī)插入邊界標(biāo)記,能夠在使用相同加擾多項(xiàng)式的情況下實(shí)現(xiàn)以一個(gè)分組數(shù)據(jù)為粒度的加擾,因此無(wú)需像IEEE802.3ae標(biāo)準(zhǔn)擾碼器那樣等待60位數(shù)據(jù)全部到齊,而只需等待一個(gè)分組數(shù)據(jù)即可進(jìn)行加擾操作,從而解決了標(biāo)準(zhǔn)擾碼器延遲太大的問(wèn)題,具有加擾效率高、延遲低的特點(diǎn)。每個(gè)單lane編碼具體劃分為如圖4所示,其各模塊功能如表1所示。

Table 1 Module function for single lane in PCS表1 PCS單個(gè)lane結(jié)構(gòu)各模塊功能

Figure 4 Structure for single lane in PCS圖4 PCS單個(gè)lane的結(jié)構(gòu)
PCS的每個(gè)lane以48位數(shù)據(jù)為編碼單位。由于48位已經(jīng)被完全占滿,為避免浪費(fèi)帶寬又不允許使用額外的有效位,本文選擇使用逃逸機(jī)制(escaping)來(lái)編碼特殊的控制字符。在接收端,rx_deescaper負(fù)責(zé)完成正常數(shù)據(jù)、IDLE字符以及控制字符SYNC等變換的逆變換。tx_gearbox模塊維護(hù)一個(gè)小型緩沖區(qū),將上層給出的48位加擾結(jié)果轉(zhuǎn)變?yōu)?0位的Serdes接口數(shù)據(jù)。同時(shí),該緩沖區(qū)的空滿信號(hào)將被作為上層邏輯的反向剎車信號(hào),以免上層邏輯產(chǎn)生超過(guò)Serdes發(fā)送能力的數(shù)據(jù)流。當(dāng)上層邏輯長(zhǎng)時(shí)間沒(méi)有數(shù)據(jù)時(shí),該模塊還負(fù)責(zé)產(chǎn)生IDLE字符插入緩沖區(qū)。由于48位數(shù)據(jù)并不是64位數(shù)據(jù)的邊界,因此為了能夠在接收端正確地恢復(fù)64位數(shù)據(jù)邊界,本文使用了如圖5所示的編碼格式:每個(gè)大型矩形為一個(gè)8位數(shù)據(jù),每6個(gè)相鄰?fù)拇笮途匦谓M成一個(gè)48位數(shù)據(jù)單位。每行右側(cè)的01或者10代表64位數(shù)據(jù)的邊界。

Figure 5 Coding structure for tx_gearbox圖5 tx_gearbox的編碼結(jié)構(gòu)
本文完成了計(jì)算互連融合體系結(jié)構(gòu)驗(yàn)證平臺(tái)的搭建與測(cè)試,驗(yàn)證平臺(tái)如圖6所示。采用Xilinx ZYNQ ZCU102 FPGA板搭建該原型驗(yàn)證系統(tǒng),在Cortex-A53上建立了交叉編譯環(huán)境,vivado內(nèi)生成位流和硬件描述文件導(dǎo)入到交叉編譯環(huán)境,用petalinux編譯內(nèi)核生成鏡像,以SD卡啟動(dòng)模式啟動(dòng)Linux操作系統(tǒng),網(wǎng)絡(luò)接口部分NIO驅(qū)動(dòng)在交叉編譯環(huán)境內(nèi)編譯后加載入Linux內(nèi)核。

Figure 6 FPGA prototype for the fusion network system圖6 融合互連系統(tǒng)FPGA原型驗(yàn)證平臺(tái)
對(duì)于前述計(jì)算互連融合原型驗(yàn)證系統(tǒng)進(jìn)行測(cè)試,其中NIC端口物理帶寬為25.6 Gbps,主要對(duì)其與傳統(tǒng)PCIe接口互連系統(tǒng)的雙向通信端口帶寬以及點(diǎn)點(diǎn)通信延遲情況進(jìn)行對(duì)比,基本測(cè)試情況與結(jié)果如表2所示。

Table 2 Test results comparison of FCI with PCIe 表2 FCI與PCIe接口互連測(cè)試結(jié)果對(duì)比
測(cè)試結(jié)果顯示,F(xiàn)CI相對(duì)于傳統(tǒng)的經(jīng)由PCIe相連的互連系統(tǒng),其在通信帶寬上提升了約30%,而在延遲上則降低了約16.7%,由此可以看出FCI融合體系結(jié)構(gòu)具備更高帶寬、更低延遲的優(yōu)勢(shì)。
本文提出一種以片內(nèi)互連形式直接將計(jì)算內(nèi)核和網(wǎng)絡(luò)接口等通過(guò)互連總線集成至計(jì)算內(nèi)核的計(jì)算互連融合體系結(jié)構(gòu)FCI,該方式可取代現(xiàn)有PCIe互連接入方式,有效降低通信延遲,提高集成密度,降低互連功耗。其中,主要研究了該計(jì)算互連融合系統(tǒng)中具有單周期轉(zhuǎn)發(fā)特征的XBAR結(jié)構(gòu),該結(jié)構(gòu)適應(yīng)于各類路由算法與流量負(fù)載,其硬件復(fù)雜度較低,可為瓦片組織架構(gòu)提供更低傳輸延遲與更高通信帶寬;對(duì)系統(tǒng)中的網(wǎng)絡(luò)鏈路層進(jìn)行了設(shè)計(jì),用以實(shí)現(xiàn)報(bào)文的可靠傳輸,并在高速串口中設(shè)計(jì)了一種用于物理編碼子層的加擾裝置,用于增加碼率擾動(dòng),提高信號(hào)傳輸質(zhì)量,減少信號(hào)傳輸延遲,該結(jié)構(gòu)具有加擾效率高、加擾延遲低的優(yōu)點(diǎn)。最后,搭建了FPGA驗(yàn)證平臺(tái)對(duì)該計(jì)算互連融合系統(tǒng)進(jìn)行了性能測(cè)試,與PCIe接口互連系統(tǒng)相比,其通信帶寬提升了約30%,通信延遲則降低了約16.7%,這表明了該系統(tǒng)具有更高的通信帶寬,更低的通信延遲。