潘洋
摘要:文章介紹了一種基于SPOC系統(tǒng)的光纖通道網(wǎng)絡(luò)接口卡的方案,該設(shè)計以NiosⅡ作為軟核處理器,將其與網(wǎng)絡(luò)接口卡控制邏輯集成在FPGA芯片中,采用流水技術(shù)實現(xiàn)數(shù)據(jù)的發(fā)送以及接收。測試結(jié)果顯示,該設(shè)計通信協(xié)議簡單,具有可靠的通信性能,使系統(tǒng)的穩(wěn)定性大大提高。此外自定義功能促進了NIC的快速開發(fā)。
關(guān)鍵詞:SPOC;光纖通道;網(wǎng)絡(luò)接口卡
光纖通道最早是由美國開發(fā)出來的,屬于一套技術(shù)標(biāo)準(zhǔn),不僅具有較高的帶寬和可靠性,而且誤碼率低,數(shù)據(jù)傳輸速率快,高達Gbps數(shù)量級。但是光纖通道一個最大的問題在于幀格式冗長,受到幀格式的影響,在通信時就會出現(xiàn)非常嚴(yán)重的延遲現(xiàn)象,為了解決這一問題,有的高校根據(jù)光纖通道標(biāo)準(zhǔn)提出了信令尋徑式交換技術(shù)的高速光纖傳輸交換網(wǎng)絡(luò),這一改進不僅提高了網(wǎng)絡(luò)的效率,而且成本也比較低。本文所設(shè)計的網(wǎng)絡(luò)接口卡就是在這一集群網(wǎng)絡(luò)上開發(fā)出來的,優(yōu)勢顯著,發(fā)展前景廣闊。最初網(wǎng)卡是基于FPGA實現(xiàn)的,簡單來說就是將網(wǎng)絡(luò)接口卡的全部功能都集中在FPGA芯片上,由技術(shù)人員自己對控制邏輯部分進行設(shè)計,近年來,高集群系統(tǒng)對節(jié)點機通信性能的要求越來越高,而另—方面,Altera公司開發(fā)出了NiosⅡ嵌入式處理器,這也意味著對更加智能化的網(wǎng)絡(luò)接口卡進行研究尤為必要。
1 SPOC與Nios Ⅱ技術(shù)介紹
SPOC,簡單來說就是一種系統(tǒng)設(shè)計技術(shù),是在FPGA基礎(chǔ)上實現(xiàn)系統(tǒng)設(shè)計的。該技術(shù)不僅靈活,而且高效地將I/O、存儲器和處理器以及系統(tǒng)開發(fā)所涉及到的其它部件全都集中在一個PLD上,從而形成可編程片上系統(tǒng)。
NiosⅡ是在第一代Nios軟核處理器基礎(chǔ)上發(fā)展而來的。該處理器最大的特點在于用戶可以根據(jù)自身需求對其功能進行定制,靈活性更高,速度也更快一些。該公司推出的軟件以及硬件能夠使設(shè)計者在盡可能短的時間內(nèi)設(shè)計出功能強大的處理器系統(tǒng)。在SPOC下,設(shè)計者側(cè)重于系統(tǒng)的功能以及整體構(gòu)架,對于電路設(shè)計等細(xì)節(jié)部分則不需要進行長時間的考慮,并且設(shè)計出來的系統(tǒng)更可靠、穩(wěn)定。
2 NIC方案設(shè)計
網(wǎng)絡(luò)接口卡主要是由3部分組成的,分別是FPGA(基于嵌入式Nios軟核)芯片、光收發(fā)器、串并信號轉(zhuǎn)換器件。芯片是由NIC、CPU組成,NIC由3部分組成,分別是收發(fā)控制邏輯、PCI接口控制以及8b/10b轉(zhuǎn)換。PCI接口控制和PCI總線、收發(fā)控制邏輯和片外存儲器相連、8b/10b轉(zhuǎn)換和并信號轉(zhuǎn)換器件分別連接到一起。其數(shù)據(jù)傳輸串行速率為1.0625Gbps,信號的傳輸是由光纖實現(xiàn)的。首先,光收發(fā)器自動接收光信號,然后將其轉(zhuǎn)換為電信號,通過差分電路將電信號傳送至串并轉(zhuǎn)換器件,對信號進行轉(zhuǎn)換,生成10bit并行信號,最后再將信號傳送至FPGA芯片,按照要求進行處理,將處理完的數(shù)據(jù)傳送至總線傳回節(jié)點機內(nèi)存。發(fā)送過程正好與NIC接收過程相反。此次設(shè)計將所有邏輯電路全都集中在一片F(xiàn)PGA中,不僅結(jié)構(gòu)更加緊湊,而且延遲比較小,起到了優(yōu)化系統(tǒng)的重要作用,使NIC傳輸速率得以大大提高。
3 NIC結(jié)構(gòu)設(shè)計
3.1 功能部件
光收發(fā)器簡單來說就是負(fù)責(zé)接收光信號的功能部件,對接收到的信號進行轉(zhuǎn)換之后,再輸出到指定器件,同時還包括待發(fā)送電信號的轉(zhuǎn)換和發(fā)送。
在該設(shè)計中首先需要解決的一個問題就是字同步,接下來的功能設(shè)計都是以此為基礎(chǔ)的,因此,解決好這一問題尤為重要。光纖傳輸?shù)男盘柖际遣⑿行盘?,借助光接收器件將其轉(zhuǎn)變?yōu)榇行盘?,然后由串并轉(zhuǎn)換器件進行轉(zhuǎn)換就可以實現(xiàn)字同步。但需要注意的是,元語系列和幀定界符全部為一個字,并且總線也是以字為單位對數(shù)據(jù)進行傳輸,所以,字同步是非常重要的,可以說是整個設(shè)計的關(guān)鍵。
NIC控制邏輯:(1)接口控制。這不僅是設(shè)計的難點,同時也是重點之一。接口控制的主要任務(wù)就是建立起主機對網(wǎng)卡的控制關(guān)系,一般來說是通過網(wǎng)卡專有命令實現(xiàn)控制的。在不同時間,網(wǎng)卡都要以主/從模式進行工作,由VHDL語言描述實現(xiàn)這一部分控制邏輯。在主模式狀態(tài)下,主要是對DMA下數(shù)據(jù)傳輸進行控制;而在從模式狀態(tài)下,就需要對網(wǎng)卡設(shè)備進行配置,在該模式下,需要解決的問題有,讀取網(wǎng)卡狀態(tài),向網(wǎng)卡發(fā)送控制信號等。
8B/10B編解碼邏輯的主要功能就是對8B/10B編解碼進行控制。一個字為8bit,通過8B/10B就可以將8bit轉(zhuǎn)換為10bit,以光纖為媒介,將字發(fā)送至接收方,接收與這一過程正好完全相反,在接收到10bit的編碼之后,通過10B/8B將接受到的信號轉(zhuǎn)換成8bit編碼,存儲在接收緩沖區(qū)中。
3.2 硬件結(jié)構(gòu)
以Nios Ⅱ為基礎(chǔ)對網(wǎng)絡(luò)接口卡進行設(shè)計,結(jié)構(gòu)的組成一共包括3個層次:分別是硬件層、應(yīng)用層以及抽象層,硬件層設(shè)計硬件系統(tǒng),應(yīng)用層設(shè)計應(yīng)用程序,抽象層為硬件驅(qū)動。
本次設(shè)計一共選取了3種型號,分別是經(jīng)濟、標(biāo)準(zhǔn)、快速,每一種型號占用的邏輯單元數(shù)目都是不同的,并且這3種型號都優(yōu)化了性能以及價格,應(yīng)用范圍也比較廣闊。本文選擇的是經(jīng)濟型。添加Avalon slave port接口,主要功能是實現(xiàn)對Nios Ⅱ的訪問和控制片外SRAM。這樣一來就能夠?qū)?shù)據(jù)傳輸進行控制,從而實現(xiàn)對整個系統(tǒng)的控制。SRAM通過三態(tài)橋得以從總線接口到加入到系統(tǒng)。具體步驟:對相關(guān)信息進行設(shè)置,然后再設(shè)置建立、保持、等待時間等,這些操作完成之后就可以將SRAM添加到系統(tǒng)中。在調(diào)試時需要對建立、保持、等待時間進行反復(fù)修改,直到能夠正確訪問方可停止修改。為了能夠?qū)TAG、SRAM以及ROM與總線連接到一起,需要添加三態(tài)橋,只有這樣,構(gòu)建的嵌入式系統(tǒng)才完整。
在.bdf文件中將信號連接到一起,按照要求進行布局布線,然后可以對系統(tǒng)進行仿真測試,將.pof文件下載到硬件電路板上,進行多次調(diào)試和方案修改,直到能夠滿足設(shè)計要求。系統(tǒng)采用主動串行模式AS方式進行配置,將文件下載到EPCS中,這樣一來,系統(tǒng)的自動配置功能即可實現(xiàn),完成之后就可以進行通信。系統(tǒng)時鐘是由晶振提供的,系統(tǒng)配置是由全部配置器件實現(xiàn)的。
4 測試結(jié)果分析
通過表1能夠直觀看出,在通信延遲方面,信令尋徑式光纖傳輸交換網(wǎng)要優(yōu)于千兆以太網(wǎng);在帶寬方面,前者明顯高于后者,近3倍;在數(shù)據(jù)傳輸率方面前者也要高于后者,但是并不明顯。通過表2測試數(shù)據(jù)能夠看出,本文設(shè)計的網(wǎng)絡(luò)接口卡能夠確保邏輯的可實現(xiàn)性,并且通信性能優(yōu)越,系統(tǒng)穩(wěn)定、可靠。
5 結(jié)語
綜上所述,本文對基于SOPC技術(shù)的光纖通道網(wǎng)絡(luò)接口卡的實現(xiàn)進行了研究。本文所設(shè)計的網(wǎng)絡(luò)接口卡是基于SOPC技術(shù)實現(xiàn)的,與以往設(shè)計技術(shù)相比,系統(tǒng)效率更高,也更穩(wěn)定。緩沖區(qū)的擴展使發(fā)送和接收實現(xiàn)了流水操作,通信協(xié)議變得更加簡單。另外,本設(shè)計采用的是嵌入式設(shè)計技術(shù),這樣一來今后開發(fā)智能網(wǎng)卡就比較簡單,這也是本次設(shè)計一個最大的亮點。