文獻(xiàn)標(biāo)識碼: A
隨著FPGA應(yīng)用范圍的不斷擴(kuò)大以及對速度需求的不斷提升,集成高速串行模塊的FPGA已經(jīng)應(yīng)用于市場。以Xilinx的Virtex5系列為代表的集成GTPRocketIO模塊的FPGA受到廣泛關(guān)注。以XC5LX50T為例,這款FPGA集成了一個PCIE的Endpoint以及12個可以支持6 Gb/s以上的高速串行接口模塊,支持串行RapidIO、fiber channel以及其他多種串行協(xié)議。
高速串行接口是系統(tǒng)互聯(lián)的核心,業(yè)內(nèi)使用較多的是應(yīng)用于嵌入式系統(tǒng)互聯(lián)的串行RapidIO協(xié)議、應(yīng)用于PCI系統(tǒng)互聯(lián)的PCI Express協(xié)議以及存儲中廣泛使用的Fibre光纖協(xié)議。在數(shù)據(jù)采集存儲應(yīng)用中,多種接口的應(yīng)用使得存儲系統(tǒng)越來越復(fù)雜,然而針對某些特定的以磁盤為存儲媒介的系統(tǒng),PCI Express協(xié)議仍然占據(jù)優(yōu)勢。標(biāo)準(zhǔn)的數(shù)據(jù)采集存儲系統(tǒng)結(jié)構(gòu)圖如圖1。
由圖1可知,F(xiàn)ibre采集卡控制磁盤陣列的文件系統(tǒng),PCIE轉(zhuǎn)存卡接收數(shù)據(jù)采集設(shè)備的數(shù)據(jù)。2塊板卡插在服務(wù)器提供的PCIE插槽上,通過PCIE協(xié)議交換數(shù)據(jù)。Fibre采集卡是成熟的硬件設(shè)備,而針對不同的數(shù)據(jù)采集設(shè)備只需要提供不同接口的PCIE轉(zhuǎn)存卡。因此針對于應(yīng)用最廣泛的RapidIO和光纖接口協(xié)議,實(shí)現(xiàn)PCIExpress到RapidIO以及光纖協(xié)議的數(shù)據(jù)交換就非常有意義。
本文以光纖存儲為背景,用Xilinx公司的XC5LX50T實(shí)現(xiàn)4X模式串行RapidIO到4XPCIE的數(shù)據(jù)交換以及2X模式的光纖接口到4X模式的PCIE的數(shù)據(jù)交換。本文給出了整個交換模塊的原理框圖并解決了RocketIO模塊設(shè)計上的關(guān)鍵問題。
1 XC5LX50T及RockerIO模塊的主要特點(diǎn)
XC5LX50T是Xilinx穩(wěn)定可靠的第五代FPGA Virtex-5中最有代表性的一款芯片,其內(nèi)部集成一個可以用于Endpoint的PCIE硬核,該硬核可以支持1X模式、4X模式以及8X模式,并且遵循PCI Express Base Specification1.1協(xié)議,每一路的數(shù)據(jù)率為2.5 Gb/s,總的最大理論帶寬為2 Gb/s(8 B編碼后的帶寬)。
XC5LX50T提供了12個用于高速串行的RocketIO收發(fā)器,不同于前幾代的產(chǎn)品,XC5LX50T的收發(fā)器可以支持6 Gb/s以上的數(shù)據(jù)率而且設(shè)計更為簡單,工作更加穩(wěn)定,其低功耗特性更加理想。RocketIO模塊可以支持串行RapidIO、xaui、fibre channel等標(biāo)準(zhǔn)協(xié)議。由于性能穩(wěn)定、傳輸帶寬高等特點(diǎn),串行RapidIO已經(jīng)成為嵌入式系統(tǒng)中最理想的互聯(lián)協(xié)議之一,尤其在軍事以及國防這些對于高速互聯(lián)需求日益迫切的領(lǐng)域中,串行RapidIO逐漸成為最為主流的數(shù)據(jù)交換協(xié)議。
光纖由于其帶寬高、傳輸穩(wěn)定以及接口簡單等特點(diǎn),被廣泛應(yīng)用于很多領(lǐng)域,例如光線存儲、系統(tǒng)互聯(lián)。XC5LX50T的RocketIO提供自定義的光纖協(xié)議,最高支持3.125 Gb/s。
有些領(lǐng)域中存在著將RapidIO協(xié)議的數(shù)據(jù)上傳至有標(biāo)準(zhǔn)PCIE接口的服務(wù)器中進(jìn)行處理的應(yīng)用,也存在著將光纖接口的數(shù)據(jù)通過有PCIE標(biāo)準(zhǔn)協(xié)議的服務(wù)器存儲到fibre channel協(xié)議的磁盤陣列中的應(yīng)用。因此本文所設(shè)計的交換模塊在嵌入式系統(tǒng)的應(yīng)用中是十分必要的。
2 高速串行交換模塊的基本功能
圖2為交換模塊功能圖。
(1)4X串行RapidIO數(shù)據(jù)與4XPCI Express數(shù)據(jù)的交換。這種交換模式分為主動和被動2種,主動模式指數(shù)據(jù)通過RapidIO協(xié)議輸入到交換模塊中,經(jīng)過交流耦合電路和協(xié)議轉(zhuǎn)換FPGA以PCIE協(xié)議傳輸?shù)搅硪荒K。被動模式指數(shù)據(jù)通過PCIE協(xié)議輸入到交換模塊中,經(jīng)過協(xié)議轉(zhuǎn)換FPGA以串行RapidIO協(xié)議傳輸?shù)搅硪荒K。
(2)2 bit光纖接口數(shù)據(jù)與4XPCI Exress數(shù)據(jù)的交換。這種交換模式同樣分為主動和被動2種,主動模式指數(shù)據(jù)通過光纖接口輸入到交換模塊中,經(jīng)過交流耦合電路以及協(xié)議轉(zhuǎn)換FPGA以PCIE協(xié)議傳輸?shù)搅硪荒K。被動模式指數(shù)據(jù)通過PCIE協(xié)議輸入到交換模塊中,經(jīng)過協(xié)議轉(zhuǎn)換FPGA以自定義光纖協(xié)議通過光纖接口傳輸?shù)搅硪荒K。
3 高速串行交換模塊的基本原理
3.1 RapidIO協(xié)議到PCIE協(xié)議的轉(zhuǎn)換
RapidIO協(xié)議到PCIE協(xié)議交換分為3個步驟:
(1)根據(jù)串行RapidIO協(xié)議將打包數(shù)據(jù)解析;
(2)將解析的數(shù)據(jù)緩存在乒乓使用的存儲器中,可以使用片外ZBTSRAM也可以使用片內(nèi)RAM資源;
(3)數(shù)據(jù)根據(jù)PCIE協(xié)議規(guī)定的方式打包,并按照PCIE協(xié)議發(fā)送出去。
RapidIO與PCIE交換原理圖如圖3。
3.2 光纖協(xié)議到PCIE協(xié)議的轉(zhuǎn)換
光纖協(xié)議使用的自定協(xié)議較RapidIO協(xié)議簡單得多,因此實(shí)現(xiàn)原理也簡單很多。從光纖協(xié)議到PCIE協(xié)議交換分為3個步驟:
(1)根據(jù)光纖自定義協(xié)議將打包數(shù)據(jù)提?。?br/>
(2)將解析的數(shù)據(jù)緩存在乒乓使用的存儲器中,可以使用片外ZBTSRAM也可以使用片內(nèi)RAM資源;
(3)數(shù)據(jù)根據(jù)PCIE協(xié)議規(guī)定的方式打包,并按照PCIE協(xié)議發(fā)送出去。
光纖與PCIE交換原理圖見圖4。
4 交換模塊實(shí)現(xiàn)的關(guān)鍵技術(shù)
在此交換模塊中,關(guān)鍵技術(shù)集中在PCIE的DMA實(shí)現(xiàn)上,本節(jié)將討論存儲器寫模式下的TLP結(jié)構(gòu)以及基于FPGA實(shí)現(xiàn)的PCIE的DMA寫操作核心狀態(tài)機(jī)的設(shè)計與實(shí)現(xiàn)。
4.1 TLP結(jié)構(gòu)簡介
PCIE設(shè)備之間以數(shù)據(jù)包形式傳送信息,最主要類型的數(shù)據(jù)包是處理層數(shù)據(jù)包TLP。其包格式如圖5。
事務(wù)是在PCIE請求者和完成者之間進(jìn)行的操作,包括存儲器事務(wù)、IO事務(wù)、配置事務(wù)和消息事務(wù)。本文討論的DMA讀寫操作是針對存儲器空間的操作,存儲器寫操作TLP頭的格式如圖6。
4.2 PCIE的DMA寫操作的設(shè)計與實(shí)現(xiàn)
PCIE的DMA寫操作實(shí)現(xiàn)的主要方法是將TLP包頭中的各個字段正確填充,并將數(shù)據(jù)按照64 bit或者32 bit并行放在TLP包頭后,按照64 bit或者32 bit并行傳輸給PCIE硬核,由硬核以PCIE協(xié)議串行傳輸給其他設(shè)備。PCIE的寫操作封裝在TX模塊的狀態(tài)機(jī)中。在本設(shè)計中規(guī)定一次DMA寫操作分為65 536次包傳輸,每次包傳輸?shù)淖畲筝d荷為128 B,一次寫操作的傳輸數(shù)據(jù)為8 MB。其狀態(tài)機(jī)轉(zhuǎn)換模型如圖7(CPLD指返回完成包)。
實(shí)際上FPGA在PCIE硬核中實(shí)現(xiàn)了8個TLP存儲空間,因此當(dāng)發(fā)送模塊將8個以上的TLP包傳輸給硬核后,硬核可能會堵塞,因此發(fā)送模塊與硬核之間的交互非常必要。
5 測試結(jié)果
此測試包括3種模式。
(1)單純測試4路PCI Express的DMA上傳以及下傳速度。
(2)數(shù)據(jù)從RocketIO接口以2 bit自定義光纖協(xié)議與4XPCI Express協(xié)議進(jìn)行交換。
(3)數(shù)據(jù)從Infiniband接口以4XRapidIO協(xié)議與4XPCI Express協(xié)議進(jìn)行交換。
具體結(jié)果見表1。
本文分析了3種應(yīng)用比較廣泛的系統(tǒng)互聯(lián)協(xié)議,并給出在FPGA內(nèi)部實(shí)現(xiàn)3種協(xié)議交換的技術(shù)特點(diǎn)。詳細(xì)描述了多協(xié)議交換模塊的系統(tǒng)結(jié)構(gòu)以及實(shí)現(xiàn)原理。
本文的創(chuàng)新點(diǎn)在于通過FPGA的方式實(shí)現(xiàn)了多種主流高速串行協(xié)議的轉(zhuǎn)換。通過將各種協(xié)議的端口獨(dú)立化,簡化了協(xié)議轉(zhuǎn)化工作,使整個模塊更易于更新維護(hù)。在FPGA提供的PCIE硬核的基礎(chǔ)上構(gòu)建了用戶層的封裝并實(shí)現(xiàn)了DMA數(shù)據(jù)傳輸。該交換模塊已在某雷達(dá)信號存儲與回放系統(tǒng)中得到應(yīng)用,帶寬是傳統(tǒng)存儲帶寬的2~3倍。
參考文獻(xiàn)
[1] BUDRUK R著.PCI Express系統(tǒng)體系結(jié)構(gòu)標(biāo)準(zhǔn)教材[M]. 田玉敏,王崧,張波,譯.北京:電子工業(yè)出版社,2005.
[2] 馬鳴錦,朱劍冰,何紅旗,等.PCI、PCI-X和PCI Express的原理及體系結(jié)構(gòu)[M].北京:清華大學(xué)出版社,2006.
[3] 閆振興.基于FPGA的PCI Express接口的設(shè)計玉實(shí)現(xiàn)[D].北京:北京理工大學(xué)出版社,2009.
[4] PCI-SIG.PCI Express Base Specification Revision1.1[M]. 2003.
[5] Xilinx INC.LogiCoreTM IP EndPoint Block Plus v1.9 for PCI Express Revision 9.0.2008.
[6] Xilinx INC.Virtex-5 FPGA RocketIO GTP Transceiver Revision 1.4.2009.
[7] PADS-PowerLogic和PowerPCB使用教程[M].北京:電子工業(yè)出版社,2004.
[8] RapidIO嵌入式系統(tǒng)互聯(lián)[M].北京:電子工業(yè)出版社,2006.