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