周 強,田帥帥,張秋爽
(1.北京航空航天大學自動化科學與電氣工程學院北京100191;2.北京機電工程總體設(shè)計部北京100854)
反射內(nèi)存網(wǎng)絡(luò)的提出主要用來解決多計算機環(huán)境中數(shù)據(jù)通信的高效互聯(lián)問題。該網(wǎng)絡(luò)是一種基于高速共享存儲技術(shù)的實時網(wǎng)絡(luò),主要由反射內(nèi)存節(jié)點卡通過光纖連接組成,網(wǎng)絡(luò)中的數(shù)據(jù)交換完全通過硬件實現(xiàn),無需占用額外的軟件資源,有效的解決了系統(tǒng)中數(shù)據(jù)傳輸?shù)膶崟r性問題[1]。反射內(nèi)存網(wǎng)絡(luò)主要有環(huán)型和星型兩種拓撲結(jié)構(gòu)。環(huán)型拓撲結(jié)構(gòu)中,數(shù)據(jù)包在網(wǎng)絡(luò)上傳輸,遍歷環(huán)狀網(wǎng)絡(luò)的所有節(jié)點直到源節(jié)點,然后源節(jié)點刪除該數(shù)據(jù)包[2]。環(huán)型網(wǎng)絡(luò)具有數(shù)據(jù)沖突率低、使用光纖數(shù)量少的優(yōu)點[3],但其缺點是當環(huán)型網(wǎng)絡(luò)的一個節(jié)點發(fā)生故障,整個反射內(nèi)存網(wǎng)絡(luò)都會癱瘓。星型拓撲結(jié)構(gòu)是一種廣播介質(zhì)類型,任意節(jié)點發(fā)往中心節(jié)點的數(shù)據(jù)幀都會在所有的輸出鏈路上被轉(zhuǎn)發(fā),集線器就是支持這種類型的中心節(jié)點。相較于環(huán)型結(jié)構(gòu),星型拓撲結(jié)構(gòu)提供了較好的容錯特性,單個節(jié)點故障不至于導致整個網(wǎng)絡(luò)癱瘓。
在完全由反射內(nèi)存卡組成的菊花鏈式環(huán)型反射內(nèi)存網(wǎng)絡(luò)中,各個反射內(nèi)存節(jié)點卡通過多模光纖進行連接[4],一旦完成網(wǎng)絡(luò)連接,數(shù)據(jù)傳輸?shù)难訒r和傳輸順序就完全確定,而通過集線器構(gòu)建的反射內(nèi)存星型和環(huán)型網(wǎng)絡(luò),在數(shù)據(jù)傳輸時具有很好的靈活性。
現(xiàn)在市場上的反射內(nèi)存集線器主要被GE VMIC公司壟斷,但其實質(zhì)上是利用高速模擬開關(guān)構(gòu)成的環(huán)型網(wǎng)絡(luò),是一種偽星型網(wǎng)絡(luò)。國內(nèi)對星型集線器的研究主要采用基于FPGA配合串并/并串轉(zhuǎn)換芯片來實現(xiàn)[5],雖然在物理上實現(xiàn)了星型結(jié)構(gòu),但其缺點是串并轉(zhuǎn)換器和FPGA間采用并行連接,每個光纖通道都需要在PCB上進行大量的物理走線,并行線之間容易出現(xiàn)串擾,產(chǎn)生噪聲,這種干擾隨著傳輸速率的提高會逐級放大,使得傳輸速率無法進一步提高?;诖?,文中設(shè)計并實現(xiàn)了一種基于Xilinx GTP核的高速反射內(nèi)存集線器,此集線器采用集成了高速收發(fā)器的FPGA作為核心控制器件,光纖模塊的差分串行數(shù)據(jù)直接和FPGA的高速收發(fā)器連接,數(shù)據(jù)的串并/并串轉(zhuǎn)換等功能全部在FPGA內(nèi)部實現(xiàn)[6],不僅實現(xiàn)了物理上的星型拓撲結(jié)構(gòu),而且避免了并行線間的信號串擾。
GTP是Xilinx公司V5系列產(chǎn)品的高速串行收發(fā)器,具有高度物理集成性和可配置性,并且與FPGA資源集成在同一可編程邏輯塊上[7]。V5系列FPGA提供了8-24個可配置高速GTP收發(fā)器,同一陣列相鄰的、共享一個PLL的兩個GTP組成一個GTP_DUAL,從而減少芯片的面積和資源占用[8]。GTP_DUAL包含兩個GTP的模塊供電,共享PLL以及核電壓,是GTP應(yīng)用的最小單位。
GTP在物理結(jié)構(gòu)主要包括物理媒介接入子層(PMA)和物理編碼子層(PCS),PMA中含有與外部連接的模擬接口,包括時鐘電路,緩沖電路,串行/解串電路、全雙工收發(fā)器和預加重模塊[9]。在串行高速傳輸過程中,高頻分量衰減嚴重,導致信號失真,將預加重作用于數(shù)據(jù)發(fā)送端,提高高頻分量比重,可以有效補償線路衰減。PCS位于PMA和協(xié)調(diào)子層(GMII)之間[10],其內(nèi)部含有 8B/10B 編解碼器[11],8B/10B編碼可以起到直流平衡的作用,避免高速串行流中邏輯1和邏輯0有多個位沒有變化時,因為電壓位階關(guān)系而造成的信號轉(zhuǎn)換錯誤。
Xilinx的GTP模塊實質(zhì)上搭建了一個高速傳輸物理通道,可以在ISE中利用IP Core建立GTP模塊。在IP Core中對GTP參考時鐘源,TX/RX接口,8B/10B編解碼等進行配置后,可以生成基于ISE的高速傳輸工程架構(gòu),將其在主程序中進行配置,即可完成主程序的GTP高速傳輸部分配置。
反射內(nèi)存網(wǎng)絡(luò)中,物理傳輸通道的設(shè)計質(zhì)量直接決定了數(shù)據(jù)傳輸?shù)馁|(zhì)量。與電氣領(lǐng)域常用的同軸電纜或雙絞線相比,光纖介質(zhì)中的信息流全是光信號,幾乎不會受到外部電磁干擾[12],因此,傳輸數(shù)據(jù)量大,傳輸靈敏度高,保密性強。光纖是由玻璃或塑料制成的纖維,結(jié)構(gòu)上滿足光的全反射,光在傳輸過程中可以垂直入射和出射,幾乎沒有能量損耗,利用光纖進行信號傳輸無需另外添加中繼設(shè)備,最大傳輸距離接近一千公里。
隨著數(shù)字電路的發(fā)展進入高速時代,PCB已不僅是電子元件的工作平臺,導線也不再是理想的等電位線路,PCB系統(tǒng)已經(jīng)變成了具備高速傳輸性能的系統(tǒng)結(jié)構(gòu)。影響高速電路性能的本質(zhì)問題是信號完整性,即高速信號在物理傳輸線路上的質(zhì)量[13]。PCB板上的高速信號完整性取決于布局和布線的質(zhì)量。信號傳輸過程中的干擾主要來自信號反射,信號間串擾以及寄生效應(yīng)[14]。信號反射主要由于傳輸線阻抗不連續(xù)導致,信號間串擾是因為信號線間的互感和互容作用,寄生效應(yīng)是傳輸線和元器件間的相互作用產(chǎn)生的干擾。因此,在PCB設(shè)計中,既要在原理圖設(shè)計階段驗證信號傳輸?shù)耐暾?,也要在布線布局過程中施行阻抗匹配,電源分割,濾波去耦等措施。對于差分信號,要保證兩條傳輸線等長,等寬,等間距[15]。
由集線器需要實現(xiàn)的功能和性能可知,反射內(nèi)存網(wǎng)絡(luò)集線器的硬件結(jié)構(gòu)中應(yīng)包含可編程邏輯器件,GTP高速收發(fā)器,光纖模塊以及必要的時鐘電路,電源電路,去耦電路,復位電路等相關(guān)配置電路。
在數(shù)據(jù)收發(fā)過程中,光纖模塊將網(wǎng)絡(luò)中傳輸?shù)母咚俟庑盘栟D(zhuǎn)換為高速串行信號,并與GTP高速收發(fā)器相連,GTP完成信號的串/并轉(zhuǎn)換后將其傳至FPGA進行處理。FPGA作為系統(tǒng)的控制中樞,主要完成對節(jié)點更新數(shù)據(jù)的檢測、校驗及緩存,并將接收的數(shù)據(jù)以廣播方式轉(zhuǎn)發(fā)到與其相連的其他節(jié)點卡,以此來實現(xiàn)真正的星型拓撲結(jié)構(gòu)。其余配置電路為系統(tǒng)調(diào)試及運行提供幫助。集線器的硬件結(jié)構(gòu)原理圖如圖1所示。
圖1 硬件設(shè)計結(jié)構(gòu)原理圖
反射內(nèi)存網(wǎng)絡(luò)中主機和集線器識別與處理的均為電信號,而光纖傳輸?shù)氖枪庑盘枺虼诵枰獙S玫墓怆娔K進行光電信號轉(zhuǎn)換。設(shè)計中選取技術(shù)成熟的Finisar公司生產(chǎn)的FTLF8519P2BNL模塊,其體積小,質(zhì)量輕,并且具有高達2.125Gbps的雙向傳輸速率。
FPGA作為系統(tǒng)的核心控制器件,在選型時要充分考慮其所提供的邏輯資源及其板載的高速收發(fā)器傳輸速率。在對集線器應(yīng)用程序進行仿真分析后,得出如表1所示的資源消耗情況,結(jié)合目前反射內(nèi)存節(jié)點卡的傳輸速率2.125 Gbps,最終選擇Xilinx Virtex-5系列的XC5VLX110T型號FPGA,其資源列表如表2所示,并且最高傳輸速率可達3.2 Gbps,滿足網(wǎng)絡(luò)數(shù)據(jù)傳輸需求。
表1 集線器消耗資源列表
表2 FPGA資源列表
高速PCB板的設(shè)計中為了保證信號傳輸?shù)耐暾?,必須充分考慮抗干擾措施。本設(shè)計從疊層順序,靜電防范,電源分割及去耦散熱方面進行考慮。設(shè)計中采用8層PCB作為集線器的硬件平臺,疊層順序遵循信號層緊鄰一內(nèi)電層[16],電源層與地層成對出現(xiàn)并緊密耦合,信號層不相鄰的原則,使得內(nèi)電層為信號層提供屏蔽,保證高頻信號不受外部干擾,也不對其他信號層造成干擾。
此外,對于GTP模塊的電路設(shè)計,要嚴格參照Virtex-5手冊進行濾波設(shè)計,差分信號收發(fā)設(shè)計及供電設(shè)計。GTP模塊內(nèi)部包含終端電阻,因此與光纖模塊采用直接耦合模式。差分參考時鐘采用電容交流耦合模式,根據(jù)FPGA硬件特性,每個輸入?yún)⒖紩r鐘通過FPGA內(nèi)部時鐘走線可以驅(qū)動相鄰的不超過3個GTP_DUAL單元,但為避免通過FPGA內(nèi)部走線獲得的時鐘會產(chǎn)生較大抖動,設(shè)計中采用時鐘緩沖器CY2DL1504輸出4路低延時、低抖動特性的差分時鐘為高速GTP模塊提供時鐘基準。
信號在傳輸?shù)牟煌A段處于不同的時鐘域,其中FPGA的RX接收端PCS子層主要有兩個時鐘域,分別是XCLK和RXUSRCLK時鐘域,RX彈性緩沖器功能主要用來匹配兩個時鐘相位差。FPGA的TX接口包括兩個并行時鐘,TXUSRCLK和TXUSRCLK2。TXUSRCLK用于GTP發(fā)送器的PCS端,其速率由GTP發(fā)送器速率和內(nèi)部通道數(shù)據(jù)位寬決定。根據(jù)目前集線器傳輸速率2.125 Gbps,內(nèi)部數(shù)據(jù)通道位寬20 bits,參考時鐘速率 106.25 MHz,PLL時鐘速率1.0625 GHz可計算出PLL分頻比:PLL_DIVSEL_FB/PLLDIVSEL_REF=2。
數(shù)據(jù)收發(fā)控制及緩存模塊主要處理FPGA與高速收發(fā)器GTP間的數(shù)據(jù)傳輸邏輯,格式轉(zhuǎn)換等工作。其原理框圖如圖2所示。
數(shù)據(jù)發(fā)送模塊內(nèi)嵌狀態(tài)控制機,其不斷檢測發(fā)送FIFO是否為空,并在不為空時對幀頭進行判定,若幀頭無誤,進入發(fā)送狀態(tài),否則,返回起始狀態(tài)。在發(fā)送過程中,若未發(fā)送完整幀而FIFO中有數(shù)據(jù),進入等待狀態(tài),等待超時則退回起始狀態(tài),否則繼續(xù)發(fā)送,直至發(fā)送完成退回起始狀態(tài)。
圖2 收發(fā)控制原理圖
數(shù)據(jù)接收模塊中嵌入LOS校驗狀態(tài)機檢測數(shù)據(jù)傳輸狀態(tài),并產(chǎn)生相應(yīng)標志位送至控制模塊,由控制模塊進行接收或放棄接收操作。LOS校驗狀態(tài)機如圖3所示。
圖3 LOS狀態(tài)校驗機簡圖
反射內(nèi)存網(wǎng)絡(luò)中,傳輸數(shù)據(jù)通過光電模塊進入GTP,經(jīng)過串并轉(zhuǎn)換后得到并行數(shù)據(jù),F(xiàn)PGA經(jīng)過數(shù)據(jù)緩存后得到這部分數(shù)據(jù),以保證數(shù)據(jù)處理的同步性。本設(shè)計采用先入先出的FIFO緩存。測試中,反射內(nèi)存節(jié)點卡以雙字方式傳輸數(shù)據(jù),GTP并行數(shù)據(jù)只有8位或16位可選,F(xiàn)PGA內(nèi)部處理部分FIFO位寬為32位,因此設(shè)計兩種FIFO:發(fā)送FIFO中加上控制字后為18位讀36位寫,接收FIFO中加上控制字后為18位寫36位讀。
系統(tǒng)中不同的模塊采用了不同的時鐘基準,為避免數(shù)據(jù)傳輸過程中由于跨時鐘域產(chǎn)生亞穩(wěn)態(tài)現(xiàn)象。設(shè)計中采取以下措施進行信號同步。
1)對邊沿有效信號采用多級D觸發(fā)器同步;
2)對數(shù)據(jù)信號采用異步FIFO進行同步;
3)采用FPGA自帶的相位校正模塊和時鐘修復電路,對接收端的采樣時鐘進行恢復和修正。
首先對環(huán)型和星型兩種連接方式下數(shù)據(jù)的傳輸過程進行了模擬,方法是利用matlab創(chuàng)建了16個隊列模擬8個反射內(nèi)存網(wǎng)絡(luò)節(jié)點卡的收發(fā)FIFO,F(xiàn)IFO深度及網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)量、遍歷次數(shù)均可以更改。測試結(jié)果如表3所示。
表3 matlab模擬試驗數(shù)據(jù)表
由試驗數(shù)據(jù)可以看出,在相同的測試條件下,星型連接方式的傳輸延時要明顯比環(huán)型連接方式小。
此外,也通過實物測試驗證了板卡的性能。將8塊反射內(nèi)存節(jié)點卡與本文設(shè)計的反射內(nèi)存集線器通過光纖線纜分別組成環(huán)型和星型測試網(wǎng)絡(luò),選取某一節(jié)點作為數(shù)據(jù)發(fā)送卡,其他節(jié)點為數(shù)據(jù)接收和校驗節(jié)點,將節(jié)點卡的板載256 M存儲空間等分為n部分,測試中設(shè)置每部分大小16 K和32 K,稱為一個分區(qū),每一個分區(qū)測試相當于一個子周期。所有分區(qū)測試完畢為一個測試大周期。試驗中測試大周期為1000個。測試數(shù)據(jù)如表4、表5所示。
表4 集線器環(huán)型網(wǎng)絡(luò)延時測試
表5 集線器星型網(wǎng)絡(luò)延時測試
可以看出,在1000個測試大周期的運行過程中,板卡均能穩(wěn)定無故障的連續(xù)工作,并且利用集線器組建的星型網(wǎng)絡(luò)延時要比環(huán)型網(wǎng)絡(luò)小的多。測試中,將部分反射內(nèi)存卡換為故障節(jié)點卡,測試網(wǎng)絡(luò)也能正常運行,說明由集線器組建的反射內(nèi)存網(wǎng)絡(luò)具有很強的排除故障點功能。
文中設(shè)計并實現(xiàn)了一種基于Xilinx GTP核的高速反射內(nèi)存集線器,不僅實現(xiàn)了與集線器相連節(jié)點的環(huán)型及星型拓撲結(jié)構(gòu),而且對傳統(tǒng)集線器的結(jié)構(gòu)和布局加以優(yōu)化,改善了數(shù)據(jù)傳輸性能。通過試驗測試驗證了反射內(nèi)存集線器能夠長時間連續(xù)無故障工作,由其組建的反射內(nèi)存網(wǎng)絡(luò)具有排故容錯功能,并且星型網(wǎng)絡(luò)具有很低的傳輸延時,具有很強的實用性。