夏云飛,張麗,楊堃,李沛杰,許立明
(1.天津市濱海新區(qū)信息技術創(chuàng)新中心,天津 300457;2.國家數字交換系統(tǒng)工程技術研究中心,河南 鄭州 450002)
隨著新型網絡技術的發(fā)展,網絡應用已經從早期非實時業(yè)務,發(fā)展到目前以文本、圖像、語音、視頻綜合內容承載為主,并呈現出終端類型多元化、接入方式多元化、設備形態(tài)多元化、業(yè)務場景多元化等趨勢[1]?;陂_放架構的軟件定義網絡(SDN,software defined network)[2-3],更加強調系統(tǒng)的多標準、多協(xié)議、高魯棒、高效能等特性。面對以上需求,現有網絡中的交換節(jié)點接口標準單一固定,難以滿足接入方式與設備形態(tài)多元化的趨勢[4]。通過調研,國內外還沒有能滿足多種高速串行通信協(xié)議的控制器,無論是國內領先的天河二號超算中心,還是國外領先的Intel極光數據中心,內部都是通過集成PCI-E或光纖等單一協(xié)議接口來支撐數據通信網絡,因此一個支持多種接口規(guī)范的交換器件十分必要。
現有數據中心中被廣泛使用的高速協(xié)議為:以太網Ethernet 10GBASE-KR(簡稱Ethernet)、Serial RapidIO(簡稱SRIO)以及Fiber Channel(簡稱FC)。Ethernet協(xié)議適用于數據中心間的遠距傳輸與網絡拓撲,FC協(xié)議大多作為數據中心內部的高速存儲訪問接口,而SRIO協(xié)議則大多作為嵌入式系統(tǒng)中拓展高性能DSP或GPU所使用的協(xié)議接口,3種協(xié)議的應用場景、傳輸方式以及兼容頻點各不相同。而數據中心正以多協(xié)議接口設備作為多形態(tài)組網的解決方案,但造成系統(tǒng)體積與能耗驟升[5]。隨著高性能計算平臺對系統(tǒng)架構可重構需求的增加,單純固化集成多種單一協(xié)議的方案不利于構建高性能可重構互聯網絡[6]。
本文對上述3種高性能串行協(xié)議功能進行了分析與歸一化整合,并利用軟件定義與可編程硬件技術實現了一種基于軟件定義的高性能多協(xié)議控制器架構,最終利用40 nm工藝實現支持多協(xié)議SerDes電路樣片配合可編程電路構建了驗證系統(tǒng)。
Ethernet、SRIO以及FC這3種高速串行協(xié)議控制器的基本結構,均包含3部分電路:物理傳輸子層(PMA,physical media access)電路、物理編碼子層(PCS,physical coding sub-layer)電路以及介質訪問控制器(MAC,media access control)電路,其結構如圖1所示。
圖1 高速串行協(xié)議控制器結構Figure 1 The architecture of high-speed serial protocol controller
PMA電路主要完成數據的串/并轉換,進而實現高速物理傳輸[7],本文所設計的多協(xié)議控制器中的PMA電路根據3種協(xié)議的物理規(guī)范、通道綁定與頻點等需求,采用軟件定義互聯思想設計多協(xié)議高速串行收發(fā)器電路。
PCS電路主要完成數據編解碼、通道綁定、位寬轉換等功能。本文提取3種協(xié)議在PCS子層功能實現中的公共算粒,并將各個協(xié)議私有算粒歸一為可配置邏輯,最終實現多協(xié)議PCS子層電路。
各協(xié)議MAC電路主要負責數據包流量控制功能,不會對數據包進行幀解析。而3種協(xié)議在流量控制與校驗重傳處理上差異較大,私有算粒比重高,無法通過復用重構進行歸一化。因此,對MAC硬件可重構電路,通過動態(tài)加載不同的電路結構,實現多協(xié)議異構。
多協(xié)議控制器架構如圖2所示,其基本工作流程如下。
1)控制器上電,主控根據上層應用,經配置總線接口通過SPI接口加載MAC硬件可重構電路配置,實現對應協(xié)議控制器MAC邏輯。
2)MAC電路配置加載完畢后,內部主控通過配置接口,對PMA與PCS電路進行相應模式配置,內部主控監(jiān)測反饋信息以及鏈路狀態(tài)。
3)上層應用通過配置接口輪詢確認反饋信息與鏈路狀態(tài)無誤后,開始數據傳輸。
所有工作流程均通過內部主控完成軟件定義硬件結構配置,內部主控通過內嵌的一個輕量化MCU實現,用于驗證軟件定義功能。整個協(xié)議控制器的工作模式,都可以通過軟件定義的形式進行靈活切換,從而滿足系統(tǒng)不同應用場景下的異構需求。
圖2 多協(xié)議控制器架構Figure 2 The architecture of multi-protocol controller
多協(xié)議控制器架構主要應用于數據中心軟件定義互聯的交換設備或芯片中,因此本文多協(xié)議控制器MAC電路并不解析數據包,而是實現數據鏈路層功能。而每種協(xié)議MAC電路具體功能各不相同,對于FC協(xié)議而言,MAC層處理包括協(xié)議數據鏈路層和交換適配層[8],而其中FC協(xié)議的交換適配層是FC的特化處理算粒(簡稱FC-AE-ASM控制器),無法與其他協(xié)議兼容;以太網MAC電路除必要的流控功能外,其特殊設計的數據校驗與重傳機制[9]都是差異化較大的處理;SRIO協(xié)議MAC層采用基于信用的流控處理,而且具備SRIO維護包管理層功能[10],處理復雜且無法與以上兩種協(xié)議MAC處理兼容。
因此,多協(xié)議控制器MAC電路很難采用歸一公共算粒的設計方法,并且由于存在不同通道綁定形式下的多種協(xié)議應用,單純并行堆疊不同的MAC電路,勢必帶來龐大的冗余設計,而且無法適應軟件定義互聯的靈活多變的應用形態(tài)。綜上,多協(xié)議控制器的MAC電路采用基于軟件定義的硬件可重構電路進行實現。
針對3種協(xié)議控制器使用電路綜合工具進行實現,并根據綜合結果統(tǒng)計3種協(xié)議MAC部分的邏輯資源,如表1所示。
表1 3種協(xié)議以及多協(xié)議MAC電路資源統(tǒng)計Table 1 Resource statistics of 3 protocols and multi-protocol MAC circuit
根據以上各電路的資源數據,為了最大限度地復用PCS與PMA電路,從而確定可編程電路的資源要求,可以同時放下4個以太網或FC協(xié)議的MAC電路。
然而,SRIO協(xié)議控制器MAC電路規(guī)模龐大,如果以SRIO資源為依據來確定可編程電路資源,會造成較大的資源冗余。所以,對SRIO協(xié)議MAC電路進行功能拆分,將SRIO協(xié)議中接口處理部分統(tǒng)一在FC與以太網可重構電路結構中實現,其他功能單獨使用專用電路實現。這樣既滿足FC或以太網協(xié)議4個1x通道工作,又支持SRIO協(xié)議的功能需求,可以最大限度地完全利用PMA電路的4個Lane通道資源。
本文中的協(xié)議控制器支持3種不同協(xié)議,如果根據協(xié)議種類設計多個完全獨立PCS電路,雖解決了多協(xié)議的PCS電路需求,但由于電路設計復用度低,導致電路本身面積與功耗開銷增加,從而直接影響系統(tǒng)的體積、重量、功耗等指標。
通過對比SRIO協(xié)議、FC協(xié)議以及Ethernet協(xié)議對PCS子層的定義,提取4種協(xié)議對PCS子層的功能需求。多協(xié)議PCS要求支持包括編解碼功能、加擾功能、變速箱功能、極性控制、位序控制、PRBS生成、Comma檢測、Headers檢測、時鐘補償、通道綁定、PRBS檢測等。
提取3種協(xié)議在PCS子層中的公共算粒作為通用邏輯,并把差異化私有算粒做成可配置邏輯,從而實現多協(xié)議通用的PCS電路設計。PCS電路通過軟件配置模式的不同,可以動態(tài)支持SRIO協(xié)議、FC協(xié)議以及Ethernet協(xié)議規(guī)范數據的正確傳輸。同時支持與SRIO Controller動態(tài)捆綁模式的特殊需求,軟件定義多協(xié)議PCS電路如圖3所示。
編碼擾碼、解碼解擾邏輯以及彈性Buffer邏輯都能隨配置模式的改變而進行動態(tài)切換;彈性Buffer通過與通道綁定狀態(tài)機配合能夠完成SRIO協(xié)議需要的通道動態(tài)綁定功能。同時,通過配置模式選擇是否使用彈性Buffer。上層軟件定義可以通過配置寄存器實現多協(xié)議PCS子層工作模式動態(tài)切換。
圖3 軟件定義多協(xié)議PCS電路Figure 3 The circuits of software defines multi-protocol PCS
多協(xié)議PMA電路是軟件定義互聯芯片的關鍵,是多協(xié)議互聯的物理層基礎,通過分析3種協(xié)議的特性可知,其各自物理層的功能結構差異不大??梢酝ㄟ^較為簡單的歸一化設計,實現同時滿足3種協(xié)議的PMA電路,表2為不同協(xié)議需實現的功能列表。
由表2分析可知,3種協(xié)議在PMA層的設計功能基本一致,其主要功能是將數據由并行轉化為高速串行信號并發(fā)送至信道上(包括其逆過程),同時可以將高速的串行數據從信道上接收并轉化為并行信號供上層使用,其電路系統(tǒng)如圖4所示。
圖4 多協(xié)議SerDes設計架構Figure 4 Multi-protocol SerDes design architecture
PMA電路按照功能子模塊的方式進行設計,功能模塊之間的數據與控制關系如圖4所示。由于3種協(xié)議對PMA電路的功能要求基本一致,因此將功能相似的部分設計為通用邏輯,電路按照4個Lane一組進行設計,主要由3部分組成:收發(fā)主通道、時鐘處理模塊、配置管理及復位模塊。
接收器:包括阻抗校正電路、均衡器(連續(xù)時間線性均衡CTLE和判決反饋均衡DFE)、時鐘數據恢復電路和邏輯(CDR)、相位差值器、并行數據位寬可配置的串并轉換電路、PRBS檢測、內建接收通路環(huán)回等。主要根據輸入數據來調整時鐘,保證對數據的正確采樣,同時將串行數據轉化為并行數據。
發(fā)送器:包括并串轉換電路、輸出驅動器、預加重控制電路、邊沿控制電路、阻抗校正電路、PRBS校驗生成、內建發(fā)送通路環(huán)回以及數據位寬可配置的并串轉換電路等,完成由并行到串行數據的轉化和驅動。
時鐘管理:差分驅動模塊,主要包括4個Lane共用的鎖相環(huán)電路QPLL以及各Lane使用的鎖相環(huán)電路CPLL、時鐘選擇、分頻電路等。該模塊可以根據軟件配置,為PMA中的SerDes提供3種協(xié)議各自頻點需求的時鐘。
配置管理:主要包括配置總線管理模塊、寄存器管理模塊,負責對數據路徑選擇、時鐘頻率、數據位寬以及子模塊工作模式實現軟件配置控制。
整個PMA電路通過軟件定義可配置電路,可以實現針對不同協(xié)議、不同頻點的結構切換,從而達到軟件定義的協(xié)議異構功能。
基于本文架構設計的控制器電路,在40 nm工藝節(jié)點下進行MPW流片。測試芯片中包括可編程電路與ASIC電路,PMA電路中的4通道SerDes電路,設計可以不經過PCS電路的測試接口,直接進行單獨數據測試。圖5為多協(xié)議控制器測試芯片布局。
圖5 多協(xié)議控制器測試芯片布局Figure 5 The floorplan of the multi-protocol controller
圍繞測試芯片,本文構造了一個多協(xié)議原型驗證平臺。驗證平臺主要由測試芯片驗證板與端點設備(第三方標準測試儀或FPGA端點設備),原型驗證平臺架構如圖6所示。
高速協(xié)議在進行具體的協(xié)議端點設備測試前,需要先確認PMA電路模擬SerDes電路的功能與性能。因此,首先使用高速示波器對SerDes進行測試,確認模擬電路無誤后,再展開協(xié)議功能測試。圖7~圖9為針對FC、SRIO以及以太網等協(xié)議需要的最高頻點下的眼圖測試結果,其中橫坐標代表測試時間周期,縱坐標代表輸出信號電壓幅值。
圖6 原型驗證平臺架構Figure 6 The diagram of prototype verification platform
圖7 1x通道8.5G頻點TX眼圖Figure 7 The eye diagram of 1x 8.5Gbit/s TX Channel
圖8 4x通道10.3125G頻點TX眼圖Figure 8 The eye diagram of 4x 10.3125 Gbit/s TX Channel
圖9 1x通道10.3125G頻點TX眼圖Figure 9 The eye diagram of 1x 10.3125 Gbit/s TX Channel
由測試結果可知,輸出發(fā)送信號均符合相關協(xié)議要求,信號隨機輸出抖動RJRMS參數在1.81~1.95皮秒。同時在以上測試中,不同協(xié)議頻點使用軟件配置,實現動態(tài)切換測試。
SerDes功能性能確認后,分別對3種協(xié)議進行端點設備通信測試。以太網與FC協(xié)議均采用同第三方標準協(xié)議分析儀進行數據流量測試,并通過測試儀的上位機調試軟件確認鏈路狀態(tài)與數據包校驗結果。SRIO協(xié)議測試使用Xilinx FPGA開發(fā)板作為測試端點設備,端點設備實現對應頻點速率的標準SRIO協(xié)議IP控制器,最終通過讀取端點設備數據校驗結果確認數據通路完整性。
4.3.1 以太網協(xié)議測試結果
軟件配置控制器為以太網協(xié)議工作模式(包含MAC可編程電路的加載配置)。完成協(xié)議控制初始化后,對以太網協(xié)議分析儀配置數據接收/發(fā)送為標準Ethernet格式,數據率為10.312 5 Gbit/s,數據包格式配置如圖10所示。
圖10 Ethernet協(xié)議分析儀數據包格式配置Figure 10 The package format configuration of ETH protocol analyzer
完成配置后啟動協(xié)議分析儀發(fā)送數據包,確認發(fā)送與接收端流量與速率,測試結果如圖11所示。
圖11 Ethernet協(xié)議分析儀流量測試結果Figure 11 Test result of Ethernet protocol analyzer traffic
4.3.2 FC協(xié)議測試結果
與以太網測試類似,首先軟件配置控制器切換為FC協(xié)議工作模式,再對FC協(xié)議分析儀進行配置,設置數據率為8.5 Gbit/s,測試模式為端點設備與測試設備互發(fā)通信,鏈路與數據測試結果如圖12所示。
測試同時4個FC通道在8.5 Gbit/s數據率下,發(fā)送與接收端數據傳輸情況。由結果可知鏈路建立穩(wěn)定,無失鎖與誤碼現象,滿足FC協(xié)議通信要求。
4.3.3 SRIO協(xié)議測試結果
SRIO協(xié)議測試中的端點使用另一塊FPGA平臺,利用FPGA端點設備中的Chip scope配合FPGA EDA工具實時抓取數據,以確認測試數據結果。
測試方法是端點設備發(fā)送給多協(xié)議控制器后,多協(xié)議控制器將接收到的數據發(fā)回給端點設備確認結果。測試中配置端口設備與測試端頻點速率均為10.312 5 Gbit/s,在確認鏈路鎖定成功后,啟動端點設備數據通信并實時抓取數據。
經測試,確認SRIO協(xié)議在10.312 5 Gbit/s速率下,在1 h連續(xù)通信測試中誤碼率為10?14,滿足RapidIO協(xié)議誤碼率低于10?12的要求。測試結果如圖13所示。
在以上的所有協(xié)議通信測試中,均是通過軟件配置實現工作模式、通道數量以及速率頻點切換的,確認本文所設計的基于軟件定義多協(xié)議控制器的功能與性能滿足預期。
圖12 FC協(xié)議分析儀測試結果Figure12 Test result of FC protocol analyzer
圖13 SRIO協(xié)議數據通信端點設備抓取測試結果Figure 13 Test result of SRIO protocol data communication endpoint device chip-cope
3種協(xié)議MAC電路應用形態(tài)總結為如下5種場景。
1)實現單一協(xié)議控制器,即實現4/3/2/1個以太網控制器MAC邏輯,或者實現4/3/2/1個FC控制器的MAC邏輯。
2)實現4個混合協(xié)議控制器,即實現m個以太網控制器MAC邏輯,并且實現4-m個FC控制器的MAC邏輯。
3)實現3個混合協(xié)議控制器,即實現m個以太網控制器MAC邏輯,并且實現3-m個FC控制器的MAC邏輯。
4)實現2個混合協(xié)議控制器,即實現1個以太網控制器MAC邏輯和實現1個FC控制器的MAC邏輯。
5)實現單一協(xié)議SRIO控制器。
多協(xié)議控制器對外設計有專門SPI加載總線,用于不同形態(tài)電路配置加載??芍貥嬰娐返膽眯螒B(tài)決定了可支持應用場景的多樣性。如上所述,考慮上述5種應用場景,可支持的電路數據計算如下。
對應的MAC電路可實現81種不同的軟件定義可重構控制器形態(tài)。經過使用原型環(huán)境分別加載以上81種軟件定義控制器,各種應用形式均通過4.2節(jié)與4.3節(jié)的電氣特性與協(xié)議一致性測試,符合支持多協(xié)議控制器多形態(tài)應用設計預期。
本文設計的基于軟件定義的多協(xié)議控制器,支持FC、以太網以及SRIO這3種高速串行協(xié)議標準,并具備通過軟件定義切換不同協(xié)議工作模式的功能。為今后擬態(tài)計算平臺高異構性需求系統(tǒng)的數據互聯,提供適合的解決方案。同時,構建的原型驗證的測試結果表明,本文提出的基于軟件定義的多協(xié)議控制器可以滿足Fiber Channel、Ethernet以及SRIO協(xié)議的要求,滿足設計預期。