周 強,田帥帥,張秋爽
(1.北京航空航天大學自動化科學與電氣工程學院北京100191;2.北京機電工程總體設計部北京100854)
反射內存網絡的提出主要用來解決多計算機環境中數據通信的高效互聯問題。該網絡是一種基于高速共享存儲技術的實時網絡,主要由反射內存節點卡通過光纖連接組成,網絡中的數據交換完全通過硬件實現,無需占用額外的軟件資源,有效的解決了系統中數據傳輸的實時性問題[1]。反射內存網絡主要有環型和星型兩種拓撲結構。環型拓撲結構中,數據包在網絡上傳輸,遍歷環狀網絡的所有節點直到源節點,然后源節點刪除該數據包[2]。環型網絡具有數據沖突率低、使用光纖數量少的優點[3],但其缺點是當環型網絡的一個節點發生故障,整個反射內存網絡都會癱瘓。星型拓撲結構是一種廣播介質類型,任意節點發往中心節點的數據幀都會在所有的輸出鏈路上被轉發,集線器就是支持這種類型的中心節點。相較于環型結構,星型拓撲結構提供了較好的容錯特性,單個節點故障不至于導致整個網絡癱瘓。
在完全由反射內存卡組成的菊花鏈式環型反射內存網絡中,各個反射內存節點卡通過多模光纖進行連接[4],一旦完成網絡連接,數據傳輸的延時和傳輸順序就完全確定,而通過集線器構建的反射內存星型和環型網絡,在數據傳輸時具有很好的靈活性。
現在市場上的反射內存集線器主要被GE VMIC公司壟斷,但其實質上是利用高速模擬開關構成的環型網絡,是一種偽星型網絡。國內對星型集線器的研究主要采用基于FPGA配合串并/并串轉換芯片來實現[5],雖然在物理上實現了星型結構,但其缺點是串并轉換器和FPGA間采用并行連接,每個光纖通道都需要在PCB上進行大量的物理走線,并行線之間容易出現串擾,產生噪聲,這種干擾隨著傳輸速率的提高會逐級放大,使得傳輸速率無法進一步提高。基于此,文中設計并實現了一種基于Xilinx GTP核的高速反射內存集線器,此集線器采用集成了高速收發器的FPGA作為核心控制器件,光纖模塊的差分串行數據直接和FPGA的高速收發器連接,數據的串并/并串轉換等功能全部在FPGA內部實現[6],不僅實現了物理上的星型拓撲結構,而且避免了并行線間的信號串擾。
GTP是Xilinx公司V5系列產品的高速串行收發器,具有高度物理集成性和可配置性,并且與FPGA資源集成在同一可編程邏輯塊上[7]。V5系列FPGA提供了8-24個可配置高速GTP收發器,同一陣列相鄰的、共享一個PLL的兩個GTP組成一個GTP_DUAL,從而減少芯片的面積和資源占用[8]。GTP_DUAL包含兩個GTP的模塊供電,共享PLL以及核電壓,是GTP應用的最小單位。
GTP在物理結構主要包括物理媒介接入子層(PMA)和物理編碼子層(PCS),PMA中含有與外部連接的模擬接口,包括時鐘電路,緩沖電路,串行/解串電路、全雙工收發器和預加重模塊[9]。在串行高速傳輸過程中,高頻分量衰減嚴重,導致信號失真,將預加重作用于數據發送端,提高高頻分量比重,可以有效補償線路衰減。PCS位于PMA和協調子層(GMII)之間[10],其內部含有 8B/10B 編解碼器[11],8B/10B編碼可以起到直流平衡的作用,避免高速串行流中邏輯1和邏輯0有多個位沒有變化時,因為電壓位階關系而造成的信號轉換錯誤。
Xilinx的GTP模塊實質上搭建了一個高速傳輸物理通道,可以在ISE中利用IP Core建立GTP模塊。在IP Core中對GTP參考時鐘源,TX/RX接口,8B/10B編解碼等進行配置后,可以生成基于ISE的高速傳輸工程架構,將其在主程序中進行配置,即可完成主程序的GTP高速傳輸部分配置。
反射內存網絡中,物理傳輸通道的設計質量直接決定了數據傳輸的質量。與電氣領域常用的同軸電纜或雙絞線相比,光纖介質中的信息流全是光信號,幾乎不會受到外部電磁干擾[12],因此,傳輸數據量大,傳輸靈敏度高,保密性強。光纖是由玻璃或塑料制成的纖維,結構上滿足光的全反射,光在傳輸過程中可以垂直入射和出射,幾乎沒有能量損耗,利用光纖進行信號傳輸無需另外添加中繼設備,最大傳輸距離接近一千公里。
隨著數字電路的發展進入高速時代,PCB已不僅是電子元件的工作平臺,導線也不再是理想的等電位線路,PCB系統已經變成了具備高速傳輸性能的系統結構。影響高速電路性能的本質問題是信號完整性,即高速信號在物理傳輸線路上的質量[13]。PCB板上的高速信號完整性取決于布局和布線的質量。信號傳輸過程中的干擾主要來自信號反射,信號間串擾以及寄生效應[14]。信號反射主要由于傳輸線阻抗不連續導致,信號間串擾是因為信號線間的互感和互容作用,寄生效應是傳輸線和元器件間的相互作用產生的干擾。因此,在PCB設計中,既要在原理圖設計階段驗證信號傳輸的完整性,也要在布線布局過程中施行阻抗匹配,電源分割,濾波去耦等措施。對于差分信號,要保證兩條傳輸線等長,等寬,等間距[15]。
由集線器需要實現的功能和性能可知,反射內存網絡集線器的硬件結構中應包含可編程邏輯器件,GTP高速收發器,光纖模塊以及必要的時鐘電路,電源電路,去耦電路,復位電路等相關配置電路。
在數據收發過程中,光纖模塊將網絡中傳輸的高速光信號轉換為高速串行信號,并與GTP高速收發器相連,GTP完成信號的串/并轉換后將其傳至FPGA進行處理。FPGA作為系統的控制中樞,主要完成對節點更新數據的檢測、校驗及緩存,并將接收的數據以廣播方式轉發到與其相連的其他節點卡,以此來實現真正的星型拓撲結構。其余配置電路為系統調試及運行提供幫助。集線器的硬件結構原理圖如圖1所示。

圖1 硬件設計結構原理圖
反射內存網絡中主機和集線器識別與處理的均為電信號,而光纖傳輸的是光信號,因此需要專用的光電模塊進行光電信號轉換。設計中選取技術成熟的Finisar公司生產的FTLF8519P2BNL模塊,其體積小,質量輕,并且具有高達2.125Gbps的雙向傳輸速率。
FPGA作為系統的核心控制器件,在選型時要充分考慮其所提供的邏輯資源及其板載的高速收發器傳輸速率。在對集線器應用程序進行仿真分析后,得出如表1所示的資源消耗情況,結合目前反射內存節點卡的傳輸速率2.125 Gbps,最終選擇Xilinx Virtex-5系列的XC5VLX110T型號FPGA,其資源列表如表2所示,并且最高傳輸速率可達3.2 Gbps,滿足網絡數據傳輸需求。

表1 集線器消耗資源列表

表2 FPGA資源列表
高速PCB板的設計中為了保證信號傳輸的完整性,必須充分考慮抗干擾措施。本設計從疊層順序,靜電防范,電源分割及去耦散熱方面進行考慮。設計中采用8層PCB作為集線器的硬件平臺,疊層順序遵循信號層緊鄰一內電層[16],電源層與地層成對出現并緊密耦合,信號層不相鄰的原則,使得內電層為信號層提供屏蔽,保證高頻信號不受外部干擾,也不對其他信號層造成干擾。
此外,對于GTP模塊的電路設計,要嚴格參照Virtex-5手冊進行濾波設計,差分信號收發設計及供電設計。GTP模塊內部包含終端電阻,因此與光纖模塊采用直接耦合模式。差分參考時鐘采用電容交流耦合模式,根據FPGA硬件特性,每個輸入參考時鐘通過FPGA內部時鐘走線可以驅動相鄰的不超過3個GTP_DUAL單元,但為避免通過FPGA內部走線獲得的時鐘會產生較大抖動,設計中采用時鐘緩沖器CY2DL1504輸出4路低延時、低抖動特性的差分時鐘為高速GTP模塊提供時鐘基準。
信號在傳輸的不同階段處于不同的時鐘域,其中FPGA的RX接收端PCS子層主要有兩個時鐘域,分別是XCLK和RXUSRCLK時鐘域,RX彈性緩沖器功能主要用來匹配兩個時鐘相位差。FPGA的TX接口包括兩個并行時鐘,TXUSRCLK和TXUSRCLK2。TXUSRCLK用于GTP發送器的PCS端,其速率由GTP發送器速率和內部通道數據位寬決定。根據目前集線器傳輸速率2.125 Gbps,內部數據通道位寬20 bits,參考時鐘速率 106.25 MHz,PLL時鐘速率1.0625 GHz可計算出PLL分頻比:PLL_DIVSEL_FB/PLLDIVSEL_REF=2。
數據收發控制及緩存模塊主要處理FPGA與高速收發器GTP間的數據傳輸邏輯,格式轉換等工作。其原理框圖如圖2所示。
數據發送模塊內嵌狀態控制機,其不斷檢測發送FIFO是否為空,并在不為空時對幀頭進行判定,若幀頭無誤,進入發送狀態,否則,返回起始狀態。在發送過程中,若未發送完整幀而FIFO中有數據,進入等待狀態,等待超時則退回起始狀態,否則繼續發送,直至發送完成退回起始狀態。

圖2 收發控制原理圖
數據接收模塊中嵌入LOS校驗狀態機檢測數據傳輸狀態,并產生相應標志位送至控制模塊,由控制模塊進行接收或放棄接收操作。LOS校驗狀態機如圖3所示。

圖3 LOS狀態校驗機簡圖
反射內存網絡中,傳輸數據通過光電模塊進入GTP,經過串并轉換后得到并行數據,FPGA經過數據緩存后得到這部分數據,以保證數據處理的同步性。本設計采用先入先出的FIFO緩存。測試中,反射內存節點卡以雙字方式傳輸數據,GTP并行數據只有8位或16位可選,FPGA內部處理部分FIFO位寬為32位,因此設計兩種FIFO:發送FIFO中加上控制字后為18位讀36位寫,接收FIFO中加上控制字后為18位寫36位讀。
系統中不同的模塊采用了不同的時鐘基準,為避免數據傳輸過程中由于跨時鐘域產生亞穩態現象。設計中采取以下措施進行信號同步。
1)對邊沿有效信號采用多級D觸發器同步;
2)對數據信號采用異步FIFO進行同步;
3)采用FPGA自帶的相位校正模塊和時鐘修復電路,對接收端的采樣時鐘進行恢復和修正。
首先對環型和星型兩種連接方式下數據的傳輸過程進行了模擬,方法是利用matlab創建了16個隊列模擬8個反射內存網絡節點卡的收發FIFO,FIFO深度及網絡中傳輸的數據量、遍歷次數均可以更改。測試結果如表3所示。

表3 matlab模擬試驗數據表
由試驗數據可以看出,在相同的測試條件下,星型連接方式的傳輸延時要明顯比環型連接方式小。
此外,也通過實物測試驗證了板卡的性能。將8塊反射內存節點卡與本文設計的反射內存集線器通過光纖線纜分別組成環型和星型測試網絡,選取某一節點作為數據發送卡,其他節點為數據接收和校驗節點,將節點卡的板載256 M存儲空間等分為n部分,測試中設置每部分大小16 K和32 K,稱為一個分區,每一個分區測試相當于一個子周期。所有分區測試完畢為一個測試大周期。試驗中測試大周期為1000個。測試數據如表4、表5所示。

表4 集線器環型網絡延時測試

表5 集線器星型網絡延時測試
可以看出,在1000個測試大周期的運行過程中,板卡均能穩定無故障的連續工作,并且利用集線器組建的星型網絡延時要比環型網絡小的多。測試中,將部分反射內存卡換為故障節點卡,測試網絡也能正常運行,說明由集線器組建的反射內存網絡具有很強的排除故障點功能。
文中設計并實現了一種基于Xilinx GTP核的高速反射內存集線器,不僅實現了與集線器相連節點的環型及星型拓撲結構,而且對傳統集線器的結構和布局加以優化,改善了數據傳輸性能。通過試驗測試驗證了反射內存集線器能夠長時間連續無故障工作,由其組建的反射內存網絡具有排故容錯功能,并且星型網絡具有很低的傳輸延時,具有很強的實用性。