亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于PCIE總線的改進分散集聚DMA的設計

        2018-01-15 19:48:04陳沛?zhèn)?/span>邢同鶴董勇偉梁興東
        雷達科學與技術(shù) 2017年5期
        關鍵詞:鏈表描述符傳輸速度

        陳沛?zhèn)?邢同鶴,董勇偉,梁興東

        (1.中國科學院電子學研究所,北京100190;2.微波成像技術(shù)國家重點實驗室,北京100190;3.中國科學院大學,北京100049)

        0 引言

        雷達技術(shù)的飛速發(fā)展使得雷達數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)采集速率越來越高,雷達數(shù)據(jù)記錄回放系統(tǒng)需要更高的傳輸速率[1-2]。PCIE總線作為新一代的傳輸總線,具有很高的傳輸速率,基于PCIE總線的直接內(nèi)存存儲(DMA)在數(shù)據(jù)傳輸中可以減少CPU的干預,減輕CPU的負擔,大幅提高系統(tǒng)的性能[3-6],目前主要采用基于PCIE總線的DMA來實現(xiàn)雷達數(shù)據(jù)記錄回放系統(tǒng)的高速數(shù)據(jù)傳輸?;赑CIE總線的DMA主要分為BLOCK DMA和分散集聚DMA兩種方式,其中分散集聚DMA由于可以通過描述符鏈表將分散的內(nèi)存集聚起來,可申請的內(nèi)存更大,經(jīng)過一次DMA啟動,便能完成FPGA與各個物理分散內(nèi)存之間的數(shù)據(jù)傳輸,能夠減輕CPU的負擔,優(yōu)勢更為明顯[7-9]。

        目前分散集聚DMA中描述符鏈表的傳輸與更新需要DMA控制器與驅(qū)動頻繁的握手,每一個描述符對應內(nèi)存完成數(shù)據(jù)傳輸以后,DMA控制器都需要向驅(qū)動更新此描述符并獲取新的描述符[10],浪費了很多時間。本文提出了一種改進分散集聚DMA的實現(xiàn)方式,一次性將描述符鏈表全部傳輸給DMA控制器,之后便不需要與驅(qū)動握手更新描述符以及獲取新的描述符,節(jié)省了因描述符切換需要的握手時間,提高了數(shù)據(jù)傳輸速度。而且,DMA控制器設計了多個數(shù)據(jù)通道,可以在實際應用中根據(jù)需要實現(xiàn)雷達數(shù)據(jù)的流水傳輸與處理。

        1 現(xiàn)有分散集聚DMA原理

        因為分散集聚DMA申請的內(nèi)存是物理不連續(xù)的,所以上位機在申請一定大小的內(nèi)存時,會生成描述符鏈表,描述符鏈表中的每一個描述符都指向了一小塊物理連續(xù)的內(nèi)存,描述符中定義了控制狀態(tài)信息和內(nèi)存信息。其中,描述符最后32 bit是一個指向下一個描述符的指針,這個指針將各個描述符連接成描述符鏈表,由此就可以映射到整個物理不連續(xù)的內(nèi)存[11]。

        在傳統(tǒng)分散集聚DMA的傳輸過程中,如圖1所示,首先DMA控制器從驅(qū)動讀取描述符鏈表中的一個描述符并存到描述符引擎中,DMA控制器根據(jù)描述符引擎中的信息完成對應內(nèi)存的數(shù)據(jù)傳輸后,描述符更新引擎將此描述符的更新信息傳到描述符鏈表中,然后描述符引擎通過指向下一個描述符的指針向驅(qū)動獲取下一個描述符的信息,由此進行下一個描述符對應內(nèi)存的數(shù)據(jù)傳輸。此方式在傳輸完成一個描述符對應內(nèi)存的數(shù)據(jù)后,需要等待描述符更新引擎更新描述符信息和描述符引擎讀取下一個描述符的信息,降低了數(shù)據(jù)傳輸?shù)某掷m(xù)性。

        圖1 現(xiàn)有分散集聚DMA示意圖

        2 改進分散集聚DMA設計

        2.1 DMA控制器設計

        針對驅(qū)動與DMA控制器頻繁握手的不足,本設計在上位機驅(qū)動中對描述符鏈表作了提取處理,由于描述符(32 B)中的保留位以及狀態(tài)位等在DMA控制器中是無用信息,因此本設計直接選取了有用的上位機內(nèi)存地址位(8 B)和數(shù)據(jù)長度位(4 B)發(fā)送至DMA控制器,描述符其他數(shù)據(jù)不再發(fā)送。當DMA控制器初始化以后,驅(qū)動直接將所有描述符的系統(tǒng)地址位和數(shù)據(jù)長度位發(fā)送至描述符引擎,如圖2所示,此后,描述符引擎便不需要與驅(qū)動握手。

        圖2 改進后分散集聚DMA示意圖

        由于改進后分散集聚DMA是應用在雷達數(shù)據(jù)記錄回放系統(tǒng)中,雷達數(shù)據(jù)量非常大,遠大于一個描述符對應的內(nèi)存(通常4 KB),不會出現(xiàn)實際傳輸數(shù)據(jù)小于描述符內(nèi)存的情況,因此不需要更新描述符中實際傳輸數(shù)據(jù)大小?,F(xiàn)有描述符更新引擎的一個重要作用是當一個描述符對應內(nèi)存完成數(shù)據(jù)傳輸以后,通知驅(qū)動此內(nèi)存可進行數(shù)據(jù)讀取或?qū)懭?可是在分散集聚DMA實際傳輸過程中都是所有描述符對應內(nèi)存完成數(shù)據(jù)傳輸以后,上位機才會對內(nèi)存進行數(shù)據(jù)讀取或?qū)懭牍ぷ?不會對單個描述符內(nèi)存進行操作,而且若數(shù)據(jù)傳輸中出現(xiàn)錯誤,由DMA控制器直接向驅(qū)動發(fā)送錯誤中斷,因此本次設計中取消了描述符更新引擎,不會增加數(shù)據(jù)傳輸?shù)腻e誤率,而且節(jié)省了每次更新描述符DMA控制器與驅(qū)動的握手時間。

        改進后的DMA控制器在進行DMA數(shù)據(jù)傳輸?shù)墓ぷ鬟^程如圖3所示。

        1)驅(qū)動初始化DMA控制器,配置DMA寄存器;

        2)驅(qū)動將描述符鏈表中每個描述符的數(shù)據(jù)傳輸長度和上位機內(nèi)存地址提取出來,發(fā)送至DMA控制器并存入描述符引擎中;

        3)啟動DMA操作,DMA控制器根據(jù)第一個描述符中的內(nèi)存起始地址和數(shù)據(jù)長度信息控制數(shù)據(jù)通道與上位機內(nèi)存進行DMA數(shù)據(jù)傳輸;

        4)當數(shù)據(jù)通道與第一個描述符對應內(nèi)存完成數(shù)據(jù)傳輸時,直接通過描述符引擎連接到下一個描述符所對應的內(nèi)存地址,而不需要通過描述符指針去獲取下一個描述符,當所有的描述符對應的內(nèi)存完成數(shù)據(jù)傳輸操作以后,DMA引擎停止工作,DMA控制器發(fā)出中斷請求信號,結(jié)束此次DMA的傳輸。

        圖3 DMA數(shù)據(jù)傳輸工作過程

        其中,描述符的切換是通過實時數(shù)據(jù)傳輸長度與描述符引擎中存儲的描述符內(nèi)存數(shù)據(jù)的長度進行比較判斷的,當兩者相同時,連接到下一個描述符繼續(xù)進行DMA傳輸。

        當然,驅(qū)動與DMA控制器是相對應的,驅(qū)動通過對DMA控制器的讀寫操作完成DMA初始化,初始化完成以后,驅(qū)動提取出各個描述符中內(nèi)存起始地址和數(shù)據(jù)長度信息發(fā)送給DMA控制器,然后啟動DMA開始進行DMA數(shù)據(jù)傳輸,當接收到DMA控制器發(fā)送的中斷以后,清除中斷并結(jié)束DMA操作[12-13]。

        在此設計中,一次性將描述符鏈表中各個描述符中的內(nèi)存起始地址和數(shù)據(jù)長度信息傳輸至描述符引擎,并通過已傳輸數(shù)據(jù)長度判斷是否切換描述符鏈表中的地址,減少了DMA控制器與驅(qū)動的握手次數(shù),能夠使DMA控制器連續(xù)不斷地傳輸數(shù)據(jù),保持了數(shù)據(jù)傳輸?shù)某掷m(xù)性,節(jié)省了每次描述符對應內(nèi)存?zhèn)鬏斖瓿珊蟾隆⑶袚Q描述符的等待時間,提高了數(shù)據(jù)傳輸速度。

        2.2 多通道設計

        針對雷達數(shù)據(jù)記錄回放系統(tǒng)多任務數(shù)據(jù)傳輸?shù)男枨?DMA控制器至多可提供8個數(shù)據(jù)通道,每個通道都有獨立的寄存器組,包括控制狀態(tài)寄存器、地址寄存器、傳輸長度寄存器等[14-15]。

        現(xiàn)有雷達信號處理系統(tǒng)在處理雷達數(shù)據(jù)時均有一定的時延,雷達數(shù)據(jù)通過DMA控制器發(fā)送至某一雷達信號處理系統(tǒng)后,雷達信號處理系統(tǒng)需要一定的時間處理雷達數(shù)據(jù),因此會浪費DMA傳輸帶寬。對此,可以通過數(shù)據(jù)通道連接多個雷達信號處理系統(tǒng),雷達數(shù)據(jù)依次通過各個通道傳輸?shù)讲煌奶幚硐到y(tǒng)中,能夠?qū)崿F(xiàn)雷達數(shù)據(jù)的流水處理。

        例如,當8個雷達信號處理系統(tǒng)通過8個數(shù)據(jù)通道連接DMA控制器時,如圖4所示,第一幅雷達圖像原始數(shù)據(jù)可以通過通道0傳輸至雷達信號處理系統(tǒng)0,第二幅圖像數(shù)據(jù)切換至通道1傳輸至處理系統(tǒng)1,以此類推,可以實現(xiàn)雷達數(shù)據(jù)在8個處理系統(tǒng)中流水處理,雷達數(shù)據(jù)處理速度提高了8倍。

        圖4 多通道傳輸

        在實際應用中,可以根據(jù)雷達圖像數(shù)據(jù)大小和數(shù)據(jù)傳輸速率適當選擇信號處理系統(tǒng)的數(shù)量,不需要浪費信號處理系統(tǒng)處理數(shù)據(jù)的時間,從而充分利用DMA傳輸帶寬,可以實現(xiàn)雷達數(shù)據(jù)的高速傳輸,提高雷達數(shù)據(jù)處理速度。在本文DMA設計中,將數(shù)據(jù)通道的選擇權(quán)直接通過接口交給用戶程序,用戶可在上位機直接決定選擇某個通道進行數(shù)據(jù)傳輸,也可隨時切換通道。

        3 改進分散集聚DMA數(shù)據(jù)傳輸性能分析

        由于分散集聚DMA在數(shù)據(jù)傳輸過程中,DMA初始化、中斷處理、寄存器讀寫等需要驅(qū)動與DMA控制器握手的時間受硬件、驅(qū)動等客觀因素影響,甚至相同條件下連續(xù)兩次測試花費的時間也是不一樣的,因此不存在一個精確的傳輸速度。本節(jié)僅從傳輸數(shù)據(jù)包中有效數(shù)據(jù)的比例分析傳輸速度。

        基于PCIE總線的分散集聚DMA傳輸速度理論分析基于以下假設:

        1)每一個描述符對應4 KB內(nèi)存;

        2)每個TLP包最大有效載荷128 B;

        3)最大讀請求128 B;

        4)TLP包頭3個雙字12 B;

        5)一個應答信號開銷8 B;

        6)暫時不考慮DMA初始化、中斷處理等其他影響因素。

        基于上述假設,現(xiàn)有分散集聚DMA寫一個描述符對應內(nèi)存的數(shù)據(jù)需要傳輸非有效數(shù)據(jù)的損耗如表1所示。

        表1 現(xiàn)有DMA寫一個描述符進行DMA數(shù)據(jù)傳輸損耗

        由表1可知,現(xiàn)有分散集聚DMA數(shù)據(jù)上行(DMA寫)過程中,每傳輸一個描述符內(nèi)存數(shù)據(jù)(4 096 B),讀取描述符、接收完成包、更新描述符以及各自應答信號損耗的字節(jié)數(shù)為12+8+12+32+8+12+12+8=104,傳輸4 096 B有效數(shù)據(jù),需要傳輸?shù)腡LP包個數(shù)為4 096/128=32,每傳輸一個TLP包的字節(jié)損耗是12+8=20,傳輸4 096 B有效數(shù)據(jù)損耗共計

        104+32×20=744 B

        所以,現(xiàn)有分散集聚DMA數(shù)據(jù)上行損耗為

        744/(4 096+744)=15.37%

        我們知道,PCIE Gen2×4鏈路理論傳輸速度為2 GB/s,現(xiàn)有DMA有效數(shù)據(jù)上行傳輸速度極限為

        2×(1-15.37%)=1.69 GB/s

        改進分散集聚DMA寫一個描述符對應內(nèi)存數(shù)據(jù)需要傳輸非有效數(shù)據(jù)的損耗如表2所示。

        表2 改進DMA寫一個描述符對應內(nèi)存數(shù)據(jù)傳輸損耗

        由表2可知,分散集聚DMA數(shù)據(jù)上行過程中,對于每一個描述符中內(nèi)存地址以及數(shù)據(jù)長度的發(fā)送,需要損耗的字節(jié)數(shù)為8+4+3×8=36,每傳輸一個描述符內(nèi)存數(shù)據(jù)(4 096 B),需要傳輸?shù)腡LP包個數(shù)為4 096/128=32,每傳輸一個TLP包的字節(jié)損耗是12+8=20,傳輸4 096 B有效數(shù)據(jù)損耗共計

        32×20+36=676 B

        所以,分散集聚DMA數(shù)據(jù)上行的損耗為

        676/(4 096+676)=14.17%

        改進DMA有效數(shù)據(jù)上行傳輸速度極限為

        2×(1-14.17%)=1.72 GB/s

        所以,改進DMA有效數(shù)據(jù)上行極限傳輸速度較現(xiàn)有分散集聚DMA提升為

        (1.72-1.69)/1.69=1.78%

        同樣的方法可以計算出數(shù)據(jù)下行(DMA讀)的有效數(shù)據(jù)極限傳輸速度提升為

        (1.52-1.50)/1.50=1.33%

        由計算可知,從傳輸數(shù)據(jù)包中有效數(shù)據(jù)比例的角度分析,改進后的分散集聚DMA數(shù)據(jù)上行、下行的有效數(shù)據(jù)極限傳輸速度均有提升。

        4 性能測試

        分散集聚DMA性能測試的結(jié)構(gòu)設計如圖5所示,主要分為上位機和FPGA兩個模塊。上位機的用戶程序通過基于WDF的驅(qū)動實現(xiàn)內(nèi)存與FPGA之間的數(shù)據(jù)傳輸,并能夠計算出數(shù)據(jù)傳輸速率;FPGA中的DMA控制器通過Xilinx封裝的IP硬核實現(xiàn)與上位機之間控制信號以及數(shù)據(jù)的傳輸,DMA控制器還可以根據(jù)上位機的設定實現(xiàn)通道選擇。

        圖5 性能測試結(jié)構(gòu)

        實際的測試過程是在上位機申請兩塊相同大小的內(nèi)存A,B,在用戶程序中先將內(nèi)存A寫入數(shù)據(jù),啟動DMA讀操作,將數(shù)據(jù)寫入通道0,完成DMA讀操作后,啟動DMA寫操作,將數(shù)據(jù)寫入內(nèi)存B中,然后比較內(nèi)存A,B中的數(shù)據(jù),若兩者數(shù)據(jù)一致,表示DMA讀寫操作成功。性能測試如圖6所示。

        圖6 性能測試

        由于各個通道間寄存器完全一致,性能一樣,本次測試選擇通道0,DMA數(shù)據(jù)傳輸測試結(jié)果如表3所示。

        表3 測試結(jié)果

        改進后的分散集聚DMA有效數(shù)據(jù)極限傳輸速度已經(jīng)在第3節(jié)詳細描述,由表3可知,DMA讀(數(shù)據(jù)下行)速度最高可達到1 400 MB/s,達到理論極限帶寬的92.11%,DMA寫(數(shù)據(jù)上行)速度最高可達到1 500 MB/s,達到理論極限帶寬的87.21%。

        由于實際數(shù)據(jù)傳輸過程中,DMA控制器初始化、PCIE鏈路與CPU之間的傳輸延遲以及中斷處理等客觀原因,使得實際測試的速度不能達到理論極限速度,但本次測試的實際傳輸速度已很接近理論極限帶寬。

        在此基礎上,本文實現(xiàn)了雷達數(shù)據(jù)記錄回放系統(tǒng)的設計,如圖7所示。以PCIE總線實現(xiàn)上位機與FPGA的數(shù)據(jù)傳輸,以光纖RapidIO接口實現(xiàn)FPGA與數(shù)據(jù)記錄系統(tǒng)或信號處理系統(tǒng)的數(shù)據(jù)傳輸,以DDR3實現(xiàn)數(shù)據(jù)在板卡上的緩存。最終雷達數(shù)據(jù)傳輸能夠達到光纖RapidIO接口的極限速度1 GB/s。

        圖7 雷達數(shù)據(jù)記錄回放系統(tǒng)

        5 結(jié)束語

        基于PCIE總線的多通道分散集聚DMA作為一種高速的數(shù)據(jù)傳輸方式,在雷達數(shù)據(jù)記錄回放系統(tǒng)中得到了廣泛的應用。文中對現(xiàn)有分散集聚DMA提出了改進的方法,DMA讀寫極限傳輸速度較現(xiàn)有DMA均有提升,經(jīng)過實際測試,單通道DMA寫速度最高能達到1 500 MB/s,DMA讀速度最高能達到1 400 MB/s。改進后的分散集聚DMA至多支持8個數(shù)據(jù)通道進行數(shù)據(jù)傳輸,可在實際應用中配合雷達信號處理系統(tǒng)實現(xiàn)雷達數(shù)據(jù)的流水傳輸與處理,能夠滿足雷達數(shù)據(jù)記錄回放系統(tǒng)對數(shù)據(jù)傳輸?shù)囊蟆?/p>

        [1]徐國平.雷達視頻回波信號記錄與回放系統(tǒng)設計[J].電子設計工程,2015,23(9):135-137,141.

        [2]孫高俊,劉志英.基于FPGA的雷達IQ光纖數(shù)據(jù)采集及傳輸系統(tǒng)[J].電子科技,2016,29(4):169-172.

        [3]ROTA L,CASELLE M,CHILINGARYAN S,et al.A PCIe DMA Architecture for Multi-Gigabyte Per Second Data Transmission[J].IEEE Trans on Nuclear Science,2016,62(3):972-976.

        [4]KAVIANIPOUR H,MUSCHTER S,BOHM C.High Performance FPGA-Based DMA Interface for PCIe[J].IEEE Trans on Nuclear Science,2014,61(2):745-749.

        [5]張輝.DMA技術(shù)在煤礦高速數(shù)據(jù)采集系統(tǒng)中的應用[J].工礦自動化,2016,42(4):74-77.

        [6]KIM D,MANAGULI R,KIM Y.Data Cache and Direct Memory Access in Programming Mediaprocessors[J].IEEE Micro,2001,21(4):33-42.

        [7]李軍偉,戴紫彬,南龍梅.密碼SoC中嵌入式鏈式DMA的研究與設計[J].電子技術(shù)應用,2014,40(1):56-59.

        [8]劉林海,張勇,常迎輝.光纖通道SOPC系統(tǒng)性能優(yōu)化設計技術(shù)研究[J].無線電通信技術(shù),2015,41(3):43-45.

        [9]ZDENEK J.Distributed Control Computer Backbone Communication Channel of Electric Locomotive with Effective DMA Support[C]∥14th International Power Electronics and Motion Control Conference,Ohrid,Macedonia:IEEE,2010:27-34.

        [10]王府北,王佳華,吳瓊水.基于PCIe總線的顯微鏡圖像采集系統(tǒng)設計[J].電子技術(shù)應用,2015,41(2):42-44.

        [11]XILINX INC.Bus Master DMA Performance Demonstration Reference Design for the Xilinx Endpoint PCI Express Solutions[EB/OL].[2016-11-06].https:∥china.xilinx.com/support/documentation/application_notes/xapp1052.pdf

        [12]肖文君,劉萬松,劉伍豐,等.基于WDF的PCIe總線驅(qū)動程序設計與實現(xiàn)[J].測控技術(shù),2015,34(7):101-104.

        [13]賈玉姣,劉亞斌,張秀磊.基于高速多通道采集模塊的數(shù)字化儀軟件設計[J].電子設計工程,2016,24(12):77-80.

        [14]SUN G,HE Z.A Real-Time Multi-Channel Signal Acquisition Card Based on PCI Express Interface[C]∥2009 International Conference on Communication Software and Networks,Macau:IEEE,2009:20-24.

        [15]LI Y,CHANG T,BAI F,et al.Design of Multi-Channel Image Superimposition System Based on FPGA[C]∥2010 International Conference on Optoelectronics and Image Processing,Haiko:IEEE,2010:417-420.

        猜你喜歡
        鏈表描述符傳輸速度
        基于結(jié)構(gòu)信息的異源遙感圖像局部特征描述符研究
        測繪學報(2022年12期)2022-02-13 09:13:01
        SSD移動硬盤大降價,可以考慮了
        電腦報(2019年11期)2019-09-10 07:22:44
        基于二進制鏈表的粗糙集屬性約簡
        跟麥咭學編程
        基于鏈表多分支路徑樹的云存儲數(shù)據(jù)完整性驗證機制
        Linux單線程并發(fā)服務器探索
        利用CNN的無人機遙感影像特征描述符學習
        電網(wǎng)中無線通信技術(shù)的應用探析
        鏈表方式集中器抄表的設計
        電測與儀表(2014年1期)2014-04-04 12:00:22
        淺談提升互聯(lián)網(wǎng)信息傳輸速度技術(shù)分析
        久久精品国产亚洲AV高清wy| 日产精品久久久一区二区| 丰满岳乱妇一区二区三区| 老熟妻内射精品一区| 国产妇女乱一性一交| av天堂手机在线免费| 加勒比婷婷色综合久久| 少妇久久久久久被弄高潮| 日本牲交大片免费观看| 亚洲AV永久无码精品导航| 久久迷青品着产亚洲av网站| 日本韩国亚洲三级在线| 粉嫩小泬无遮挡久久久久久| 亚洲色精品aⅴ一区区三区| 亚州精品无码人妻久久| 亚洲精品中文有码字幕| 亚洲女人的天堂网av| 亚洲av无一区二区三区久久| 老司机在线精品视频网站 | 99成人无码精品视频| 亚洲一区二区三区最新视频| 97cp在线视频免费观看| 黑森林福利视频导航| 真人男女做爰无遮挡免费视频| 亚洲精品国产熟女久久| 成人性生交大片免费5| 国产成人a∨激情视频厨房| 少妇饥渴xxhd麻豆xxhd骆驼| 无码AⅤ最新av无码专区| 国产一区二区三区免费视| 免费无码不卡视频在线观看| 人妻丰满熟妇av无码区免| а的天堂网最新版在线| 黄片国产一区二区三区| 美女mm131爽爽爽| 天堂√中文在线bt| 亚洲中文字幕无线乱码va| 国产高清精品一区二区| 亚洲欧美乱日韩乱国产| 1000部拍拍拍18勿入免费视频下载| 视频一区中文字幕亚洲|