張鵬泉,褚孝鵬, 曹曉冬,范玉進,汪 振
(天津光電集團公司,300211)
基于FPGA的PClE總線DMA傳輸?shù)膶崿F(xiàn)
張鵬泉,褚孝鵬*, 曹曉冬,范玉進,汪 振
(天津光電集團公司,300211)
為了實現(xiàn)不同應(yīng)用條件下對高速數(shù)據(jù)傳輸?shù)牟煌螅疚奶岢鲆环N基于FPGA的PCIE DMA傳輸結(jié)構(gòu)及其實現(xiàn)方法,可以利用不同的工作模式靈活應(yīng)對不同的高速數(shù)據(jù)傳輸需求,有效地將上位處理器從數(shù)據(jù)傳輸工作中解放出來,具有移植性強,傳輸效率高,數(shù)據(jù)負荷長度靈活等特點。
FPGA;PCLE;DMA傳輸
隨著電子器件運算速度的高速發(fā)展,尤其是在寬帶高速信號采集、數(shù)據(jù)高速存儲、圖像處理等領(lǐng)域,新出現(xiàn)的器件和設(shè)備對數(shù)據(jù)的傳輸速度和帶寬有了更高的要求。PCI Express總線作為第三代I/O總線的代表,能夠通過差分鏈路來提供高性能、高速、點到點的串行雙工數(shù)據(jù)傳輸,可以對單板上的分層總線結(jié)構(gòu)提供最理想的支持,已經(jīng)被廣泛應(yīng)用到計算機與各種外設(shè)組件之間的互連領(lǐng)域。
圖1 DMA控制器結(jié)構(gòu)圖
目前,市場上可以使用的PCIE橋接芯片種類較少,且往往受到鏈路寬度的限制,所以單純使用橋片與USB3.0等其它總線相比并不具有明顯優(yōu)勢。另一方面,目前主流的FPGA供應(yīng)商均支持PCIE IP核,基于FPGA的設(shè)計可增大系統(tǒng)靈活性,穩(wěn)定性,板卡的速度快,可擴展性強,系統(tǒng)集成度高,所以使用FPGA實現(xiàn)PCIE鏈路成為越來越多開發(fā)者的首選。本文提出一種基于FPGA的PCIE DMA傳輸控制器的實現(xiàn)方式,可以靈活適應(yīng)不同速率、不同鏈路帶寬的IP核設(shè)置,具有移植性強,傳輸效率高,數(shù)據(jù)負荷長度靈活等特點,可以有效地將上位處理器從數(shù)據(jù)傳輸工作中解放出來,為數(shù)據(jù)的高速傳輸與高效處理提供了優(yōu)秀的技術(shù)支持。
圖2 DMA傳輸控制單元結(jié)構(gòu)圖
圖3 描述符鏈表結(jié)構(gòu)
圖4 直接傳輸讀TLP及中斷控制信號
圖5 直接傳輸寫TLP
DMA控制器實現(xiàn)了3種傳輸模式,直接傳輸模式,直接DMA傳輸模式和描述符DMA傳輸模式,其結(jié)構(gòu)如圖1所示。直接傳輸模式由上位處理器直接發(fā)起讀/寫TLP,由端點FPGA執(zhí)行,此種模式適用于數(shù)據(jù)傳輸量較小的寄存器讀寫或者數(shù)據(jù)傳輸?shù)刂泛烷L度相對度固定的批量數(shù)據(jù)傳輸。直接DMA傳輸模式由上位處理器發(fā)起并提供必要的控制信息,由端點FPGA發(fā)起讀/寫TLP,實現(xiàn)數(shù)據(jù)交換,此種模式適用于傳輸數(shù)據(jù)的地址和長度相對固定,但需要多次傳輸或數(shù)據(jù)量較大的情況。描述符DMA傳輸模式則由上位處理器建立描述符,其中包含傳輸?shù)刂贰㈤L度、方向等信息,然后將描述符組成描述符鏈表,將鏈表的起始地址、長度等信息提供給端點FPGA;端點FPGA則依次讀取鏈表中的描述符,解析后發(fā)起讀/寫TLP,完成傳輸操作,直到鏈表結(jié)束,此種模式適用于傳輸數(shù)據(jù)的地址不斷變化,傳輸數(shù)據(jù)較少且傳輸次數(shù)較多的情況。
DMA傳輸控制器的核心處理環(huán)節(jié)為DMA傳輸控制,其結(jié)構(gòu)如圖2所示,主要功能包括:
1)根據(jù)PCIE IP核提供的基址維護一個1KB的控制狀態(tài)寄存器地址空間;
2)所有對寄存器地址空間的讀/寫操作均認為是直接讀寫模式,且數(shù)據(jù)長度固定為1DW;
3)確保讀/寫過程的獨立性;
4)根據(jù)寄存器的狀態(tài)進行數(shù)據(jù)傳輸邏輯和時序控制;
5)讀操作中的完成維護。
DMA傳輸控制器的關(guān)鍵數(shù)據(jù)結(jié)構(gòu)為描述符鏈表,其結(jié)構(gòu)如圖3所示。其中,所有地址均采用DW對齊方式,源地址為讀取數(shù)據(jù)的起始地址,目標地址為存儲數(shù)據(jù)的起始地址,鏈接地址為下一個描述符的起始地址。在傳輸控制信息中,則包括了以DW為單位的傳輸數(shù)據(jù)長度,傳輸方向和首尾DW中以字節(jié)為單位的數(shù)據(jù)有效標志位。
根據(jù)以上設(shè)計思路,由上位處理器發(fā)起的直接傳輸讀TLP及其中斷控制信號如圖4所示,直接傳輸寫TLP如圖5所示。
在PCIE×8鏈路條件下,由上位PC機發(fā)起,由端點FPGA執(zhí)行的描述符DMA傳輸模式數(shù)據(jù)速率測試如表1所示。
如表1所示,在回環(huán)測試中數(shù)據(jù)量一定的條件下,隨著數(shù)據(jù)報文長度增加,報文數(shù)據(jù)數(shù)量減小,處理器干預傳輸?shù)拇螖?shù)減小,整體的數(shù)據(jù)傳輸速率呈上升趨勢,且隨著上位處理器的速率提高有進一步躍升。
綜上所述,本文基于FPGA所實現(xiàn)的DMA傳輸控制器,不依賴于特定的FPGA平臺,速率和鏈路帶寬均可靈活配置。同時,可以利用不同的工作模式靈活應(yīng)對不同的高速數(shù)據(jù)傳輸需求。目前,該設(shè)計已經(jīng)在多個產(chǎn)品平臺中獲得應(yīng)用,效果良好。
[1]王齊.PCI Express 體系結(jié)構(gòu)導讀.機械工業(yè)出版社.2010.3
[2]劉軍偉.多種高速串行總線的對比研究與分析.電子測試.2016.03
[3]李曉寧,姚遠程,秦明偉.基于PCIe的高速接口設(shè)計.微型機與應(yīng)用,2016,35(1):27~29,32
[4]肖明國 ,董明利,劉鋒,婁小平,祝連慶.基于PCIe總線的數(shù)據(jù)采集卡設(shè)計與實現(xiàn).計算機測量與控制.2016.24(3)
Implementation of PCIE bus DMA transmission based on FPGA
Zhang Pengquan,Zhu Xiaopeng*,Cao Xiaodong,Fan Yujin,Wang Zhen
(Tianjin photoelectric group company,300211)
In order to realize different application conditions of high-speed data transmission requirements is proposed in this paper a based on FPGA PCIe DMA transmission structure and its realization method,you can use different operation modes of the flexible respond differently to the high-speed data transmission requirements,effectively will host at the processor to be liberated from the data transmission,has strong portability,high transmission efficiency,the length of the data load flexible features.
FPGA;PCLE;DMA transmission
表1 描述符DMA傳輸模式數(shù)據(jù)速率測試表