文獻(xiàn)標(biāo)識(shí)碼: A
隨著FPGA應(yīng)用范圍的不斷擴(kuò)大以及對(duì)速度需求的不斷提升,,集成高速串行模塊的FPGA已經(jīng)應(yīng)用于市場(chǎng),。以Xilinx的Virtex5系列為代表的集成GTPRocketIO模塊的FPGA受到廣泛關(guān)注,。以XC5LX50T為例,這款FPGA集成了一個(gè)PCIE的Endpoint以及12個(gè)可以支持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é)議以及存儲(chǔ)中廣泛使用的Fibre光纖協(xié)議。在數(shù)據(jù)采集存儲(chǔ)應(yīng)用中,,多種接口的應(yīng)用使得存儲(chǔ)系統(tǒng)越來越復(fù)雜,,然而針對(duì)某些特定的以磁盤為存儲(chǔ)媒介的系統(tǒng),PCI Express協(xié)議仍然占據(jù)優(yōu)勢(shì),。標(biāo)準(zhǔn)的數(shù)據(jù)采集存儲(chǔ)系統(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è)備,,而針對(duì)不同的數(shù)據(jù)采集設(shè)備只需要提供不同接口的PCIE轉(zhuǎn)存卡。因此針對(duì)于應(yīng)用最廣泛的RapidIO和光纖接口協(xié)議,,實(shí)現(xiàn)PCIExpress到RapidIO以及光纖協(xié)議的數(shù)據(jù)交換就非常有意義,。
本文以光纖存儲(chǔ)為背景,用Xilinx公司的XC5LX50T實(shí)現(xiàn)4X模式串行RapidIO到4XPCIE的數(shù)據(jù)交換以及2X模式的光纖接口到4X模式的PCIE的數(shù)據(jù)交換,。本文給出了整個(gè)交換模塊的原理框圖并解決了RocketIO模塊設(shè)計(jì)上的關(guān)鍵問題,。
1 XC5LX50T及RockerIO模塊的主要特點(diǎn)
XC5LX50T是Xilinx穩(wěn)定可靠的第五代FPGA Virtex-5中最有代表性的一款芯片,其內(nèi)部集成一個(gè)可以用于Endpoint的PCIE硬核,,該硬核可以支持1X模式,、4X模式以及8X模式,并且遵循PCI Express Base Specification1.1協(xié)議,,每一路的數(shù)據(jù)率為2.5 Gb/s,,總的最大理論帶寬為2 Gb/s(8 B編碼后的帶寬)。
XC5LX50T提供了12個(gè)用于高速串行的RocketIO收發(fā)器,,不同于前幾代的產(chǎn)品,,XC5LX50T的收發(fā)器可以支持6 Gb/s以上的數(shù)據(jù)率而且設(shè)計(jì)更為簡(jiǎn)單,工作更加穩(wěn)定,,其低功耗特性更加理想,。RocketIO模塊可以支持串行RapidIO、xaui、fibre channel等標(biāo)準(zhǔn)協(xié)議,。由于性能穩(wěn)定,、傳輸帶寬高等特點(diǎn),串行RapidIO已經(jīng)成為嵌入式系統(tǒng)中最理想的互聯(lián)協(xié)議之一,,尤其在軍事以及國(guó)防這些對(duì)于高速互聯(lián)需求日益迫切的領(lǐng)域中,,串行RapidIO逐漸成為最為主流的數(shù)據(jù)交換協(xié)議。
光纖由于其帶寬高,、傳輸穩(wěn)定以及接口簡(jiǎn)單等特點(diǎn),,被廣泛應(yīng)用于很多領(lǐng)域,例如光線存儲(chǔ),、系統(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ù)器存儲(chǔ)到fibre channel協(xié)議的磁盤陣列中的應(yīng)用。因此本文所設(shè)計(jì)的交換模塊在嵌入式系統(tǒng)的應(yīng)用中是十分必要的,。
2 高速串行交換模塊的基本功能
圖2為交換模塊功能圖,。
(1)4X串行RapidIO數(shù)據(jù)與4XPCI Express數(shù)據(jù)的交換。這種交換模式分為主動(dòng)和被動(dòng)2種,,主動(dòng)模式指數(shù)據(jù)通過RapidIO協(xié)議輸入到交換模塊中,,經(jīng)過交流耦合電路和協(xié)議轉(zhuǎn)換FPGA以PCIE協(xié)議傳輸?shù)搅硪荒K。被動(dòng)模式指數(shù)據(jù)通過PCIE協(xié)議輸入到交換模塊中,,經(jīng)過協(xié)議轉(zhuǎn)換FPGA以串行RapidIO協(xié)議傳輸?shù)搅硪荒K,。
(2)2 bit光纖接口數(shù)據(jù)與4XPCI Exress數(shù)據(jù)的交換。這種交換模式同樣分為主動(dòng)和被動(dòng)2種,,主動(dòng)模式指數(shù)據(jù)通過光纖接口輸入到交換模塊中,,經(jīng)過交流耦合電路以及協(xié)議轉(zhuǎn)換FPGA以PCIE協(xié)議傳輸?shù)搅硪荒K。被動(dòng)模式指數(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個(gè)步驟:
(1)根據(jù)串行RapidIO協(xié)議將打包數(shù)據(jù)解析;
(2)將解析的數(shù)據(jù)緩存在乒乓使用的存儲(chǔ)器中,,可以使用片外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é)議簡(jiǎn)單得多,,因此實(shí)現(xiàn)原理也簡(jiǎn)單很多,。從光纖協(xié)議到PCIE協(xié)議交換分為3個(gè)步驟:
(1)根據(jù)光纖自定義協(xié)議將打包數(shù)據(jù)提取;
(2)將解析的數(shù)據(jù)緩存在乒乓使用的存儲(chǔ)器中,,可以使用片外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é)將討論存儲(chǔ)器寫模式下的TLP結(jié)構(gòu)以及基于FPGA實(shí)現(xiàn)的PCIE的DMA寫操作核心狀態(tài)機(jī)的設(shè)計(jì)與實(shí)現(xiàn),。
4.1 TLP結(jié)構(gòu)簡(jiǎn)介
PCIE設(shè)備之間以數(shù)據(jù)包形式傳送信息,最主要類型的數(shù)據(jù)包是處理層數(shù)據(jù)包TLP,。其包格式如圖5,。
事務(wù)是在PCIE請(qǐng)求者和完成者之間進(jìn)行的操作,包括存儲(chǔ)器事務(wù),、IO事務(wù),、配置事務(wù)和消息事務(wù)。本文討論的DMA讀寫操作是針對(duì)存儲(chǔ)器空間的操作,,存儲(chǔ)器寫操作TLP頭的格式如圖6,。
4.2 PCIE的DMA寫操作的設(shè)計(jì)與實(shí)現(xiàn)
PCIE的DMA寫操作實(shí)現(xiàn)的主要方法是將TLP包頭中的各個(gè)字段正確填充,并將數(shù)據(jù)按照64 bit或者32 bit并行放在TLP包頭后,,按照64 bit或者32 bit并行傳輸給PCIE硬核,,由硬核以PCIE協(xié)議串行傳輸給其他設(shè)備。PCIE的寫操作封裝在TX模塊的狀態(tài)機(jī)中,。在本設(shè)計(jì)中規(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個(gè)TLP存儲(chǔ)空間,因此當(dāng)發(fā)送模塊將8個(gè)以上的TLP包傳輸給硬核后,,硬核可能會(huì)堵塞,,因此發(fā)送模塊與硬核之間的交互非常必要。
5 測(cè)試結(jié)果
此測(cè)試包括3種模式,。
(1)單純測(cè)試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ú)立化,簡(jiǎn)化了協(xié)議轉(zhuǎn)化工作,,使整個(gè)模塊更易于更新維護(hù),。在FPGA提供的PCIE硬核的基礎(chǔ)上構(gòu)建了用戶層的封裝并實(shí)現(xiàn)了DMA數(shù)據(jù)傳輸。該交換模塊已在某雷達(dá)信號(hào)存儲(chǔ)與回放系統(tǒng)中得到應(yīng)用,,帶寬是傳統(tǒng)存儲(chǔ)帶寬的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è)計(jì)玉實(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.