国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

光纖通道接口通用驅(qū)動(dòng)程序設(shè)計(jì)與實(shí)現(xiàn)*

2014-02-11 03:42:38馮國(guó)仕
通信技術(shù) 2014年11期
關(guān)鍵詞:驅(qū)動(dòng)程序報(bào)文總線

許 里,馮國(guó)仕,李 璞

(中國(guó)電子科技集團(tuán)公司第三十研究所,四川成都610041)

光纖通道接口通用驅(qū)動(dòng)程序設(shè)計(jì)與實(shí)現(xiàn)*

許 里,馮國(guó)仕,李 璞

(中國(guó)電子科技集團(tuán)公司第三十研究所,四川成都610041)

光纖通道是一種高性能的光纖通信技術(shù),在軍用和商用的多個(gè)領(lǐng)域都有著廣泛應(yīng)用。文中介紹了光纖通道技術(shù)在目前發(fā)展中存在的問題和光纖通道協(xié)議族的基本架構(gòu),分析了光纖通道接口驅(qū)動(dòng)程序的功能需求和實(shí)現(xiàn)方式,提出了一種linux系統(tǒng)下靈活性和通用性較好的驅(qū)動(dòng)程序設(shè)計(jì)架構(gòu),并詳細(xì)描述了這種架構(gòu)的程序?qū)崿F(xiàn)要點(diǎn)和技術(shù)優(yōu)勢(shì)。最后,在實(shí)際硬件環(huán)境中對(duì)驅(qū)動(dòng)程序的性能進(jìn)行了測(cè)試和分析。

光纖通道 接口驅(qū)動(dòng)程序 接口性能

0 引 言

光纖通道(Fibre Channel,FC)是美國(guó)國(guó)家標(biāo)準(zhǔn)委員會(huì)(ANSI)為網(wǎng)絡(luò)和通道I/O接口建立的一個(gè)標(biāo)準(zhǔn)集,它是一種為適應(yīng)高性能數(shù)據(jù)傳輸要求而設(shè)計(jì)的通信協(xié)議,具有高帶寬、低延遲、對(duì)距離不敏感、拓?fù)潇`活、支持多種上層協(xié)議等優(yōu)點(diǎn)。目前光纖通道已經(jīng)是光通信的一種重要標(biāo)準(zhǔn),廣泛應(yīng)用于商用在商用存儲(chǔ)區(qū)域網(wǎng)絡(luò)及軍用航電系統(tǒng)中,具有良好的推廣前景。

相對(duì)于以太網(wǎng)等常見的通信標(biāo)準(zhǔn),光纖通道的生態(tài)系統(tǒng)比較封閉,目前的標(biāo)準(zhǔn)規(guī)范和設(shè)備研制基本都由博科等少數(shù)幾家公司控制,而且?guī)缀跞酷槍?duì)存儲(chǔ)網(wǎng)絡(luò)進(jìn)行定制和裁剪。第三方研發(fā)團(tuán)隊(duì)自行研制FC設(shè)備困難較大。因此,本文提出了一種通用的FC接口驅(qū)動(dòng)程序架構(gòu),并詳細(xì)描述了這一架構(gòu)下的驅(qū)動(dòng)程序?qū)崿F(xiàn)要點(diǎn)。這一程序架構(gòu)有良好的擴(kuò)展性,易于進(jìn)行各種定制化修改和二次開發(fā),可以適應(yīng)多種FC設(shè)備的需求。

1 FC接口協(xié)議棧介紹

FC網(wǎng)絡(luò)支持的星形和仲裁環(huán)兩種拓?fù)?。其?星形是最常見的拓?fù)漕愋?即整個(gè)網(wǎng)絡(luò)由FC交換機(jī)和接入交換機(jī)的各個(gè)FC節(jié)點(diǎn)(node)組成。本文描述的FC接口協(xié)議棧即是FC節(jié)點(diǎn)側(cè)的FC協(xié)議系統(tǒng)。

根據(jù)FC協(xié)議標(biāo)準(zhǔn)規(guī)定,FC接口的協(xié)議處理分為5層,如圖1所示[1]。FC-0層是物理接口和介質(zhì)層,包括線纜、連接器和它們的各自特性的規(guī)范[2]。FC-1層是傳輸協(xié)議層,包括編解碼、字節(jié)和字之間的轉(zhuǎn)換、發(fā)射機(jī)接收機(jī)的狀態(tài)轉(zhuǎn)換和錯(cuò)誤檢測(cè)等[3]。FC-2層是幀和信號(hào)協(xié)議層,定義FC幀格式、傳輸服務(wù)類型、接口狀態(tài)機(jī)等[1]。FC-2層是光纖通道協(xié)議的最復(fù)雜部分,也是光纖通道交換機(jī)的主要功能層。它涉及到光纖通道特有的結(jié)構(gòu),過程和操作的大部分環(huán)節(jié)。FC-3層是公共服務(wù)層,主要定義了系統(tǒng)中的擴(kuò)展鏈路服務(wù)功能[4]。FC-4層定義了光纖通道結(jié)構(gòu)到上層協(xié)議的映射,常見的映射包括SCSI、IP(Internet Protocol),ATM/AAL5等。

圖1 FC協(xié)議體系Fig.1 FC protocol architectural

一般來說,FC-0,FC-1和部分FC-2層次的功能都由硬件模塊完成,FC接口協(xié)議棧軟件需要完成的功能主要包括FC-2層次的交換與序列管理、分片與重組、幀封裝、基本鏈路服務(wù)功能,FC-3的擴(kuò)展鏈路服務(wù)和FC-4的高層協(xié)議映射功能。

2 驅(qū)動(dòng)軟硬件平臺(tái)

本文作者采用的硬件平臺(tái)如圖2所示的開發(fā)板。開發(fā)板CPU采用龍芯2F,FPGA采用Xilinx的Virtex5 50T芯片。雖然目前國(guó)內(nèi)已經(jīng)有一些采用fpga實(shí)現(xiàn)FC接口功能的研究成果[5],但是考慮到通用性,本文還是選用Xilinx公司提供的FC接口IP核(v3.3)完成FC-0,FC-1和部分FC-2的功能。由于fgpa的FC IP CORE只支持PCI-E接口而龍芯2F只支持PCI接口,因此需要選用PLXtechnology公司的PEX8112芯片完成兩種總線的橋接。

圖2 FC接口開發(fā)板原理示意Fig.2 Development board of FC interface

軟件平臺(tái)選用成熟的linux系統(tǒng),內(nèi)核版本為2.6.32。該內(nèi)核成熟可靠,應(yīng)用廣泛,是目前嵌入式設(shè)備開發(fā)中廣泛采用的版本。

3 接口驅(qū)動(dòng)架構(gòu)

文中設(shè)計(jì)驅(qū)動(dòng)架構(gòu)的主要出發(fā)點(diǎn)是將FC接口視為一種網(wǎng)絡(luò)接口,通過各種手段提升驅(qū)動(dòng)的性能和靈活性。FC接口驅(qū)動(dòng)的整體架構(gòu)如圖3所示。

圖3 FC接口驅(qū)動(dòng)架構(gòu)示意Fig.3 Architecture of FC interface driver

本架構(gòu)中,FC接口驅(qū)動(dòng)與系統(tǒng)其它部分有三類接口。第一類是按照標(biāo)準(zhǔn)的網(wǎng)絡(luò)分系統(tǒng)接口,為系統(tǒng)協(xié)議棧提供協(xié)議報(bào)文收發(fā)服務(wù)。具體來說,FC接口驅(qū)動(dòng)提供的發(fā)送報(bào)文的接口是int fc_xmit(struct sk_ buff*skb,struct net_device*dev),將收到的報(bào)文送到上層協(xié)議棧時(shí)采用的接口是系統(tǒng)提供的void netif_ receive_skb(struct sk_buff*skb)。第二類接口是接收系統(tǒng)對(duì)網(wǎng)絡(luò)接口的管理和控制,FC接口驅(qū)動(dòng)提供inc fc_ioctl(struct net_device*dev,struct ifreq*ifr, int cmd).第三類對(duì)外接口是協(xié)議棧與PCI總線驅(qū)動(dòng)的接口,實(shí)現(xiàn)FC數(shù)據(jù)幀的對(duì)外收發(fā)。這樣的接口設(shè)計(jì)保證了FC接口驅(qū)動(dòng)能直接嵌入Linux網(wǎng)絡(luò)分系統(tǒng)中,與高層協(xié)議和底層硬件驅(qū)動(dòng)都是松耦合關(guān)系,可以適應(yīng)不同的硬件平臺(tái)和網(wǎng)絡(luò)協(xié)議需求。

在FC接口驅(qū)動(dòng)中,FC接口協(xié)議棧部分完成上層協(xié)議報(bào)文和FC幀之間的相互轉(zhuǎn)換,數(shù)據(jù)收發(fā)調(diào)度則提供驅(qū)動(dòng)對(duì)外的收發(fā)數(shù)據(jù)接口。這二者也是采用松耦合設(shè)計(jì),僅通過標(biāo)準(zhǔn)的struct sk_buff結(jié)構(gòu)傳遞協(xié)議報(bào)文。

4 驅(qū)動(dòng)程序?qū)崿F(xiàn)要點(diǎn)

根據(jù)上述架構(gòu)分析,FC接口驅(qū)動(dòng)程序的實(shí)現(xiàn)要點(diǎn)和難點(diǎn)主要是FC接口協(xié)議棧的設(shè)計(jì)和數(shù)據(jù)收發(fā)調(diào)度的設(shè)計(jì)。這兩者既是整個(gè)驅(qū)動(dòng)程序的功能主體,又決定了驅(qū)動(dòng)程序的性能表現(xiàn)。

4.1 FC接口協(xié)議棧

FC接口協(xié)議棧的功能非常復(fù)雜,包括了交換注冊(cè)、接口注冊(cè)、交換與序列管理、接口狀態(tài)變化響應(yīng)等,不僅僅是報(bào)文的封裝和解析。因此,協(xié)議棧程序的實(shí)現(xiàn)上沒有拘泥于FC協(xié)議的層次劃分,而是采用了統(tǒng)一的狀態(tài)機(jī)編程方式,整個(gè)協(xié)議棧的主要狀態(tài)機(jī)轉(zhuǎn)換如圖4所示。

圖4 FC協(xié)議棧狀態(tài)轉(zhuǎn)移示意Fig.4 FC protocol state transition diagram

圖中有以下幾點(diǎn)需要特殊說明:

1)狀態(tài)之間的轉(zhuǎn)移條件和操作按照“[條件]/操作”的方式標(biāo)注。

2)接口在遠(yuǎn)端等待狀態(tài)時(shí),會(huì)阻塞式調(diào)用遠(yuǎn)端查找函數(shù)查找需要進(jìn)行通信的遠(yuǎn)端端口,根據(jù)系統(tǒng)設(shè)計(jì),搜索可能是基于arp,名錄服務(wù)[6]等方式,在驅(qū)動(dòng)中不作具體限定。

3)在完成接口準(zhǔn)備后,回調(diào)上層協(xié)議,表示可以進(jìn)行業(yè)務(wù)數(shù)據(jù)收發(fā)。

4.2 數(shù)據(jù)收發(fā)調(diào)度

為了提高設(shè)計(jì)的靈活性,FC接口的數(shù)據(jù)收發(fā)調(diào)度被設(shè)計(jì)為與具體協(xié)議無關(guān),它的主要功能是提供對(duì)PCI總線和對(duì)系統(tǒng)協(xié)議棧的數(shù)據(jù)收發(fā)接口。

(1)PCI總線數(shù)據(jù)收發(fā)

為了降低CPU負(fù)載,選擇采用DMA方式實(shí)現(xiàn)PCI總線上的數(shù)據(jù)收發(fā)。Fpga端作為PCI總線的主設(shè)備。

DMA傳輸方式需要一種機(jī)制來描述緩沖區(qū)信息。本文的設(shè)計(jì)中采用消息循環(huán)隊(duì)列機(jī)制,即設(shè)置收方向和發(fā)方向各一個(gè)消息隊(duì)列,每個(gè)隊(duì)列元素為描述網(wǎng)絡(luò)報(bào)文緩沖區(qū)信息的描述符(Buffer Descriptor,簡(jiǎn)稱為BD)。BD由總線地址(32位)、數(shù)據(jù)長(zhǎng)度(16位)、標(biāo)志位(16位)三個(gè)部分組成,共8個(gè)字節(jié)。收和發(fā)消息循環(huán)隊(duì)列長(zhǎng)度分別置于fpga的寄存器RDCNT和TDCNT中,收和發(fā)BD區(qū)域的基地址分別存儲(chǔ)于RDA和TDA寄存器,BD區(qū)域存放在內(nèi)存中。接收FC幀時(shí),CPU通過BD告知fpga端網(wǎng)絡(luò)接收緩沖區(qū)位置(屬于內(nèi)存區(qū)域),發(fā)送報(bào)文時(shí),也是將網(wǎng)絡(luò)報(bào)文在內(nèi)存中的地址轉(zhuǎn)換為總線地址后賦到BD中。FC幀是緩存于內(nèi)存區(qū)域而非fpga的內(nèi)置存儲(chǔ)空間中。

(2)上層協(xié)議數(shù)據(jù)收發(fā)

FC接口驅(qū)動(dòng)與系統(tǒng)協(xié)議棧之間的發(fā)送數(shù)據(jù)接口遵循linux網(wǎng)絡(luò)分系統(tǒng)的標(biāo)準(zhǔn)。接口處理函數(shù)fc_ xmit()主要完成數(shù)據(jù)有效性檢查和高層協(xié)議分流,根據(jù)具體的高層協(xié)議調(diào)用不同的FC協(xié)議適配函數(shù)(即FC-4的協(xié)議數(shù)據(jù)接口)進(jìn)行報(bào)文處理,目前實(shí)現(xiàn)的FC接口協(xié)議棧支持IPv4、ARP[7]和ASM[8]等多種上層協(xié)議。

FC接口驅(qū)動(dòng)與系統(tǒng)協(xié)議棧之間的收數(shù)據(jù)接口選擇NAPI模式[9]。這種模式是Linux新定義一種網(wǎng)絡(luò)接口驅(qū)動(dòng)架構(gòu),它的主要思想是將收數(shù)據(jù)中斷處理與實(shí)際的數(shù)據(jù)接收處理過程分離,并且一次接收中斷觸發(fā)一輪接收處理函數(shù)調(diào)用,收取多個(gè)報(bào)文,因此很適合高速數(shù)據(jù)接口。實(shí)現(xiàn)這個(gè)模式的關(guān)鍵工作是實(shí)現(xiàn)一個(gè)系統(tǒng)規(guī)定的NAPI數(shù)據(jù)接收處理函數(shù),其函數(shù)原型是int(*poll)(struct net_device* dev,int*budget)。在本文描述的FC接口驅(qū)動(dòng)中,接收函數(shù)fc_poll()的主要處理流程如圖5所示。

圖5 FC_poll函數(shù)流程示意Fig.5 FC_poll function flow diagram

6 性能測(cè)試與分析

不同的高層協(xié)議具有不同的測(cè)試指標(biāo),但是作為一個(gè)網(wǎng)絡(luò)接口卡本身,有一些基礎(chǔ)性指標(biāo)是各種協(xié)議共有的。對(duì)于一個(gè)通用的光纖通道接口卡,采用吞吐量、丟幀率和幀處理時(shí)延占用來衡量其性能表現(xiàn)是合理的,測(cè)試結(jié)果如表1所示。

1)吞吐量:是指在沒有幀丟失的情況下,設(shè)備能接收并轉(zhuǎn)發(fā)的最大數(shù)據(jù)速率,本指標(biāo)采用IXIA公司的光纖通道協(xié)議測(cè)試儀測(cè)得。

2)丟幀率:是指因系統(tǒng)資源不足等原因而導(dǎo)致的幀,丟失率本指標(biāo)采用IXIA公司的光纖通道協(xié)議測(cè)試儀測(cè)得。

3)幀處理時(shí)延:從線路上受到一個(gè)FC幀到送至高層協(xié)議之間的時(shí)間差,這個(gè)指標(biāo)是依賴在FC幀的載荷中增加時(shí)間戳,由fpga和軟件協(xié)同測(cè)得。

表1 性能測(cè)試結(jié)果Table 1 Performance test result

從表中的測(cè)試結(jié)果可以看出,本文測(cè)試的FC接口吞吐量已經(jīng)接近了PCI橋接芯片的處理極限,幀處理時(shí)延很低,沒有丟幀情況,說明接口驅(qū)動(dòng)程序具有較好的性能表現(xiàn)。

7 結(jié) 語

上文的分析和性能測(cè)試表明,文中提出的光纖通道驅(qū)動(dòng)架構(gòu)既具備良好的擴(kuò)展和靈活性,又有較高的的性能表現(xiàn),符合光纖通道接口驅(qū)動(dòng)研究的目標(biāo)。與目前可以獲取的各類公開的光纖通道接口協(xié)議實(shí)現(xiàn)不同,本文將光纖通道接口標(biāo)準(zhǔn)化為一個(gè)網(wǎng)絡(luò)設(shè)備,從而便于與各類網(wǎng)絡(luò)協(xié)議靈活融合。此外,文中驗(yàn)證平臺(tái)采用的一系列常見的商用軟硬件,為后續(xù)的研究和產(chǎn)品開發(fā)奠定了一個(gè)高效穩(wěn)定的基礎(chǔ)。當(dāng)然,隨著光纖通道的傳輸速率不斷提高,驅(qū)動(dòng)程序的架構(gòu)還需要在后續(xù)研究中進(jìn)一步優(yōu)化性能,適應(yīng)更高速率接口的要求。

[1] T11 Technical Committee.Fibre Channel Framing and Signaling-4[EB/OL].America:American National Standards Institute,Inc.2014-5-16[2013-1-17].http:// www.t11.org/ftp/t11/pub/fc/fs-4/14-018v1.pdf.

[2] T11 Technical Committee.Fibre Channel Physical and Signaling Interface-3[EB/OL].America:American National Standards Institute,Inc.1997-11-5[2013-1-17].http://www.t11.org/ftp/t11/member/fc/ph-3/ fcph3_94.pdf.

[3] T11 Technical Committee.Fibre Channel Physical Interface-5[EB/OL].America:American National Standards Institute,Inc.2011-1-11[2013-1-17].http:// www.t11.org/ftp/t11/pub/fc/pi-5/11-011v0.pdf.

[4] T11 Technical Committee.Fibre Channel Link Service-3 [EB/OL].America:American National Standards Institute,Inc.2014-2-11[2013-1-17].http://www.t11. org/ftp/t11/pub/fc/ls-3/14-033v0.pdf.

[5] 劉小剛,周東.光纖通道端口狀態(tài)機(jī)的研究及FPGA實(shí)現(xiàn)[J].通信技術(shù),2011,44(07),1-3.

LIU Xiao-gang,ZHOU Dong.Study on Fiber Channel Port State Machine and its FPCA Implementation[J]. Communications Technology,2011,44(07),1-3.

[6] T11 Technical Committee.Fibre Channel Generic Service -7[EB/OL].America:American National Standards Institute,Inc.2013-6-1[2013-5-3].http://www.t11. org/ftp/t11/pub/fc/gs-7/13-215v0.pdf.

[7] DESANTI C.,CARLSON C.and NIXON R..Transmission of IPv6,IPv4,and Address Resolution Protocol (ARP)Packets over Fibre Channel[EB/OL].America: IETF RFC 4338.2006-1[2013-5-3].http://www.rfceditor.org/rfc/rfc4338.txt.

[8] T11 Technical Committee.Technical Report.Fibre Channel Avionics Environment–AnonyMous Subscriber Messaging With Amendment 1 Changes[EB/OL].America: American National Standards Institute,Inc.2008-1-11 [2013-8-10].http://www.t11.org/ftp/t11/member/ fc/ae-asma1/08-013v1.pdf.

[9] CORBERT Jonathan,RUBINI Alessandro and KROAHHARTMAN Greg.Linux設(shè)備驅(qū)動(dòng)程序[M].O'RELLY.第三版.2006:518-519.

XU Li(1983-),male,graduate student, engineer,majoring in networking and communication technology.

馮國(guó)仕(1981—),男,碩士研究生,工程師,主要研究方向?yàn)榫W(wǎng)絡(luò)通信與技術(shù);

FENG Guo-shi(1981-),male,graduate student,engineer,majoring in networking and communication technology.

李 璞(1981—),男,碩士研究生,工程師,主要研究方向?yàn)榫W(wǎng)絡(luò)通信與技術(shù)。

LI Pu(1981-),male,graduate student,engineer,majoring in networking and communication technology.

Design and Implementation of Fabric Channel Interface Driver

XU Li,FENG Guo-shi,LI Pu
(No.30 Institute of CETC,Chengdu Sichuan 610041,China)

Fibre channel,as a high-performance fiber communication technology,is widely used in both military and commercial areas.This paper firstly describes the problems recently faced by fibre channel and the architecture of the fibre channel protocol suits.Then the function and implomentation of fabric channel interface driver is analyzed,the flexible software architecture of the interface driver proposed,and the programming keys and advantages of this architecture are also specified.Finally the tests and discussions of the driver are done.

fabric channel;interface driver;interface performance

TP393

A

1002-0802(2014)11-1343-04

10.3969/j.issn.1002-0802.2014.11.021

許 里(1983—),男,碩士研究生,工程師,主要研究方向?yàn)榫W(wǎng)絡(luò)通信與技術(shù);

2014-07-05;

2014-08-26 Received date:2014-07-05;Revised date:2014-08-26

猜你喜歡
驅(qū)動(dòng)程序報(bào)文總線
基于J1939 協(xié)議多包報(bào)文的時(shí)序研究及應(yīng)用
汽車電器(2022年9期)2022-11-07 02:16:24
CTCS-2級(jí)報(bào)文數(shù)據(jù)管理需求分析和實(shí)現(xiàn)
淺析反駁類報(bào)文要點(diǎn)
基于PCI Express總線的xHC與FPGA的直接通信
機(jī)載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設(shè)計(jì)
ATS與列車通信報(bào)文分析
多通道ARINC429總線檢查儀
基于EtherCAT總線的ROV控制系統(tǒng)設(shè)計(jì)
河南科技(2014年16期)2014-02-27 14:13:22
驅(qū)動(dòng)程序更新與推薦
驅(qū)動(dòng)程序更新與推薦
时尚| 应城市| 渭源县| 南阳市| 布拖县| 蕉岭县| 宝清县| 通渭县| 安庆市| 叶城县| 永新县| 云林县| 抚远县| 古田县| 丘北县| 夏河县| 商洛市| 辛集市| 五河县| 富锦市| 垣曲县| 黔东| 门头沟区| 托里县| 庆阳市| 宝坻区| 邛崃市| 曲阜市| 海盐县| 米脂县| 文登市| 新和县| 辉县市| 铜梁县| 霍州市| 宜州市| 绥棱县| 淮阳县| 内江市| 拜城县| 九龙城区|