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