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