999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向超高速以太網ADB-DMA的設計與實現

2022-07-12 14:03:38吳劍簫
計算機應用與軟件 2022年6期

吳劍簫 王 鵬

1(中國科學院上海高等研究院 上海 200120) 2(中國科學院大學 北京 100049) 3(上海大學計算機工程與科學學院 上海 200444) 4(數學工程與先進計算國家重點實驗室 江蘇 無錫 214215)

0 引 言

DMA技術是計算機系統中一種高速高效的數據傳輸技術。使用DMA控制器可直接實現內存與外設間數據交換,減少對處理器的占用時間,從而提高整體系統性能[1],多應用于視頻、音頻和網絡接口等高吞吐率外設。DMA控制器有兩種實現方式:寄存器模式與描述符(descriptor)模式[2]。在寄存器模式中處理器直接控制DMA相關寄存器,配置相關傳輸參數,控制數據傳輸的啟動與停止。它具有較好的數據傳輸性能,但需要處理器對寄存器進行實時配置,靈活性較差。描述符模式需要處理器在內存中預先布設好用于指示DMA操作的描述符,DMA控制器通過描述符獲得緩存地址、數據長度等信息進行操作,并通過改寫描述符與處理器或軟件進行交互,因而具有較強的靈活性。通用外設接口協議如以太網、PCIe等常使用該方式實現網絡協議棧的標準化處理。配置并更新描述符需要DMA控制器與處理器多次內存讀寫交互,因此需要處理器頻繁參與,總線效率低下。

本文提出一種新型自適應雙緩沖DMA(ADB-DMA)架構,在保證標準協議棧兼容處理的前提下,可大幅提高用戶數據吞吐量,最大程度減少對處理器的打擾,使總線效率達到最大化。該DMA控制器根據幀類型對數據包進行分類,對標準協議棧包,如IP、ARP與RARP等,使用基于描述符DMA方式進行傳輸;對用戶數據包則進行寄存器模式DMA傳輸。該架構結合了兩種DMA傳輸模式的優點,在保證高傳輸性能的同時支持標準網絡協議棧處理,方便軟件移植。通過仿真與FPGA測試與Synopsys公司以太網DMA控制器[3]進行對比,該自適應雙緩沖DMA控制器結構具有對處理器打擾小、帶寬利用率高、處理流程簡單等優點。

1 自適應雙緩沖DMA(ADB-DMA)的結構與原理

1.1 自適應雙緩沖DMA結構

以太網等高速接口協議的幀格式中含有若干字節的類型字段,用于指示所傳輸數據對應協議。通過自定義該類型字段,可將用戶數據與基于標準協議棧數據包進行有效區分。ADB-DMA能夠根據類型字段自適應選擇對應的DMA方式對該數據進行傳輸,其結構如圖1所示。

圖1 自適應雙緩沖DMA結構

在進行數據傳輸時,高速接口向DMA控制器發送DMA請求,DMA控制器將該請求傳遞到處理器,申請系統總線的控制權。處理器會對該請求進行響應,并對DMA控制器進行控制,根據幀類型選取數據傳輸方式,配置對應模式下的寄存器后使DMA控制器開始進行數據傳輸。DMA控制器將對應讀寫信號傳遞給內存與接口,將對應數據地址傳遞給內存,從而實現高速接口對內存的直接訪問。待數據傳輸完畢后,向處理器發送中斷,將系統總線的控制權交還給處理器。

使用描述符模式DMA傳輸標準協議棧包。描述符中包括軟硬件握手標志、控制狀態、緩存地址、數據長度等信息。通過寄存器可配置描述符的起始地址,描述符在內存中可采用環形鏈表組織形式。各描述符的地址首尾相連。在傳輸完當前描述符后,描述符地址更新為下一個描述符地址,當處理完最后一個描述符后,描述符地址重新更新為首個描述符的地址。

使用寄存器模式DMA傳輸用戶數據,并使用雙緩沖對數據進行接收,該模式下需要配置的寄存器有起始地址寄存器、數據包長寄存器、總數據長度寄存器、源地址和目的地址寄存器、中斷所需包數寄存器、控制狀態寄存器、中斷狀態寄存器等。通過配置起始地址寄存器指示收發數據位置。

1.2 自適應雙緩沖DMA工作原理

該DMA結構在工作時首先根據幀類型,選取DMA的傳輸模式,其工作原理如圖2所示。

圖2 DMA發送流程

發送工作流程:

(1) 判斷發送數據是否為用戶數據。

(2) 若發送數據為用戶數據,選用寄存器模式DMA進行發送。配置發送端寄存器,進行起始地址、包長、總發送長度等參數的配置。

(3) 寫發送控制寄存器,開啟DMA發送操作,并清零總發包計數器total_cnt與當前發包計數器cur_cnt。

(4) 判斷發包計數器是否達到總發包數與中斷所需發包數。

(5) 若兩個計數器均未達到要求值,則從發送數據起始地址取出一個包的數據,并更新發送數據起始地址。兩個計數器的計數值加1。

(6) 若當前發包計數器達到中斷所需包數,則清除當前發包計數器。在中斷寄存器中置包發送中斷,向CPU發送中斷。返回步驟(4)。

(7) 若總發包數計數器達到總發包數,則代表發送完成。寫發送控制寄存器,關閉DMA發送;在中斷寄存器中置總發送中斷,向CPU發送中斷。

(8) 從內存中中斷包起始地址處讀取數據作為中斷包發送。

(9) 發送完成后讀取發送DMA狀態,若狀態空閑,可進行下一次發送操作。

(10) 若所需發送的數據為標準協議棧包,選用描述符模式DMA進行發送。寫描述符模式寄存器,配置操作模式,描述符起始地址以及中斷使能。

(11) 在指定的描述符地址處開始填充發送描述符,并向描述符指定的內存位置填充所發數據。

(12) 通過寫描述符模式寄存器,開啟DMA發送。

(13) 將數據從指定內存地址發送。

(14) 當前發送描述符對應數據發送完畢后,發送中斷并判斷下一個描述符是否可用。

(15) 若下一個描述符可用則繼續發送下一個描述符對應的數據,否則置描述符不可用中斷,向CPU發送中斷后,進行下一次數據包發送。

相比發送流程,DMA接收流程較為簡單,工作流程如圖3所示。

圖3 DMA接收流程

接收工作流程:

(1) 判斷數據包是否為用戶數據。

(2) 若接收數據為用戶數據,選用寄存器模式DMA進行接收。寫接收端寄存器,配置兩個緩沖起始地址、包長、總發送長度等參數。

(3) 寫接收端控制寄存器,開啟DMA接收操作。

(4) 讀取中斷寄存器,若緩沖滿中斷為高則說明緩沖中已填充了足夠的數據包,可對緩沖中的數據進行接收,并清空中斷。

(5) 從對應緩沖中取出數據包,并更新接收數據起始地址為另一塊緩沖的地址。

(6) 若收到的包為中斷包,則代表該次接收完成。復原數據接收起始地址,并發送接收完成中斷。

(7) 若所需接收的數據為標準協議棧包,選用描述符模式DMA進行接收。寫寄存器,配置操作模式,描述符起始地址以及中斷使能。

(8) 在指定的描述符地址處開始填充接收描述符。

(9) 通過寫寄存器,開啟DMA接收。

(10) 將數據保存到描述符指定的地址。

(11) 當前接收描述符對應數據接收完畢后,發送中斷并判斷下一個描述符是否可用。

(12) 若下一個接收描述符可用則繼續接收下一個描述符對應的數據,否則進行下一次數據包接收。

為了進一步提升大量連續用戶數據接收的效率,在寄存器模式DMA中使用了乒乓操作的雙緩沖結構進行數據接收[4],雙緩沖結構的工作原理如圖4所示。

圖4 DMA雙緩沖結構工作原理

接收數據首先存放在緩沖區1中,當緩沖1中數據存滿時,向CPU發送緩沖滿中斷。DMA開始從緩沖1中讀取數據,接收數據的存取地址切換為緩沖區2。當DMA將緩沖區1的數據讀出后,向CPU發送中斷,更新讀地址為緩沖區2的地址,待緩沖區2數據準備完畢后進行讀取。同時控制新數據存入緩沖區1,進行下一輪讀緩沖區操作。

2 與傳統描述符模式DMA的性能比較

由于ADB-DMA控制器采用兩種模式進行數據傳輸,用戶數據傳輸帶來的額外時間開銷和整體數據傳輸效率與傳統描述符模式DMA不同。以Synopsys公司以太網DMA控制器(基于描述符)為例,對兩者的性能進行對比。

2.1 用戶數據傳輸額外時間開銷

(1) 傳統描述符DMA。設DMA總傳輸包數為k,則CPU需要進行k次發送描述符和k次接收描述符的讀寫,總共需要進行2k次內存訪問。除此之外每進行一次數據傳輸,CPU就需要處理一收一發兩次中斷,故CPU共需要處理2次中斷。同時DMA引擎也需要訪問內存中的描述符去判斷當前描述符是否可用,從而按照描述符中的地址進行數據傳輸并為下一次傳輸改寫描述符。即DMA引擎也需要進行2k次內存訪問。

另外,在進行數據傳輸時需要配置總線模式寄存器,發送端、接收端描述符起始地址寄存器,中斷使能寄存器和操作模式寄存器共5個寄存器來初始化傳輸參數與狀態的配置;每處理一次中斷需要讀一次中斷狀態寄存器并清空一次中斷狀態寄存器,即需要進行7次寄存器讀寫操作。

設CPU處理一次中斷所用的時間為t中斷,進行一次內存訪問的時間為t訪存,讀寫寄存器的時間為t寄則時間開銷T為:

T=2×t中斷+4k×t訪存+7×t寄

(1)

時間開銷T為:

(2)

傳統處理器完成一次中斷處理所消耗時間為30個時鐘周期左右[5-6],目前處理器的主頻一般為3 GHz左右,故處理一次中斷的時間約為10 ns;進行一次內存訪問的時間約為40 ns[7],讀寫DMA寄存器一般需要10個時鐘周期左右,一般寄存器讀寫時鐘頻率為100 MHz,故寄存器讀寫時間開銷約為100 ns。分別選取DMA中最大傳輸包個數a為1、4和16,得出采用兩種DMA進行數據傳輸時傳輸包數與額外時間開銷的關系如圖5所示。

圖5 兩種DMA傳輸時傳輸包數與額外時間開銷的關系

2.2 總體傳輸效率

傳輸效率可以通過總線的利用率體現,總線利用率越高,數據傳輸效率越高。總線利用率U可通過式(3)求出。

(3)

通過仿真得出該DMA與傳統基于描述符DMA數據傳輸時AXI總線的使用情況如圖6和圖7所示。

圖6 自適應雙緩沖DMA數據傳輸時AXI總線情況

圖7 傳統基于描述符DMA數據傳輸時AXI總線情況

描述符模式DMA傳輸15 600字節數據時,AXI總線讀數據使用了1 494個時鐘周期,總線利用率為65.3%,AXI總線寫數據使用了1 462個時鐘周期,總線利用率為66.7%,平均總線利用率為66.0%。

設計的ADB-DMA傳輸65 536字節數據時,AXI總線讀數據使用了4 518個時鐘周期,總線利用率為90.7%,AXI總線寫數據使用了4 494個時鐘周期,總線利用率為91.1%,平均總線利用率為90.9%,比描述符模式的DMA的總線利用率高24.9百分點。

通過上述對比可見,該ADB-DMA用戶數據傳輸所需的額外時間開銷比傳統的基于描述符的DMA小,總體帶寬利用率比傳統DMA高24.9百分點。另外本文提出的ADB-DMA雖使用了兩種模式的DMA,但基于寄存器模式的DMA結構主要由寄存器構成,并沒有增加太大的邏輯量。通過邏輯綜合工具Design complier對兩種結構的面積進行評估。描述符模式DMA總面積為31 946.91,此ADB-DMA總面積為33 662.48,該結構僅比傳統描述符DMA結構的設計面積大5.37%。該ADB-DMA具有速度快、效率高、結構簡單的特點。

3 設計驗證與性能測試

仿真驗證后,對設計進行了FPGA驗證。驗證選用了Xilinx KC705 FPGA開發板,為模擬CPU進行中斷處理與內存操作,采用了openrisc作為軟核CPU[8],并分配了兩塊內存空間作為發送、接收內存區。驗證環境如圖8所示。

圖8 FPGA驗證環境示意圖

驗證時,通過APB總線配置DMA相關寄存器,將要發送的數據放入發送內存區并開啟DMA收發。數據在外部環回,通過檢測接收內存區中的數據是否與發送內存區的數據一致進行驗證。經驗證,該DMA結構能夠根據傳輸的幀類型自動選擇對應的DMA方式進行數據傳輸,在不同傳輸參數下,該DMA均能正常工作。

驗證完成后還使用該環境對設計的DMA與Synopsys公司以太網DMA控制器在FPGA上進行了數據傳輸性能的對比。選取最大以太網幀包長1 518字節進行長時間連續DMA傳輸,設計的雙緩沖DMA與傳統基于描述符的DMA的總線利用率分別為79.8%與58.3%。受限于頻率因素,在FPGA中總線頻率和時鐘關系與實際應用中略有差別,因此測得的帶寬利用率與仿真結果存在差異。但通過兩種DMA的對比,仍能說明設計的自適應雙緩沖DMA具有速度快、效率高的特點。

4 結 語

為適應百G以太網等超高速協議的應用需求,本文提出一種新型的ADB-DMA結構,可根據傳輸幀類型自適應完成對標準協議及用戶數據包的處理。相較于傳統基于描述符DMA控制器,ADB-DMA數據傳輸額外時間開銷更低,且總體帶寬利用率提高了24.9百分點,而面積開銷增加僅為5.37%。目前該結構已成功應用于國產芯片100 G以太網接口,從而為國產集成電路自主可控提供有力支撐。

主站蜘蛛池模板: 久久黄色免费电影| 在线不卡免费视频| 久久不卡国产精品无码| 99免费在线观看视频| 久草视频福利在线观看| 香蕉久久国产精品免| 国产无人区一区二区三区| 91黄视频在线观看| 中文纯内无码H| 伊人蕉久影院| 国内精品久久九九国产精品| 一级毛片不卡片免费观看| 一区二区理伦视频| 欧美啪啪网| 亚洲天堂网视频| 亚洲成人网在线观看| 99九九成人免费视频精品| 免费在线视频a| 伊人激情综合网| 国产精品免费福利久久播放| 伊人激情综合网| 日韩毛片免费观看| 日本午夜精品一本在线观看| 69av在线| 操美女免费网站| 伊人久久久久久久| 免费看av在线网站网址| 国产成人精品男人的天堂下载| 91九色最新地址| 国产高颜值露脸在线观看| 中美日韩在线网免费毛片视频| 久久国产精品麻豆系列| 久久性视频| 91免费国产高清观看| 久久婷婷五月综合色一区二区| 国产成人一级| 国产精品美女网站| 狠狠色噜噜狠狠狠狠色综合久| 久久国产毛片| 成人福利视频网| 国产精品9| 国产精品人人做人人爽人人添| 亚洲欧美天堂网| 91激情视频| 狂欢视频在线观看不卡| 国产精品无码作爱| 久久伊人久久亚洲综合| 国产美女免费| 中文一区二区视频| 国产第一页亚洲| 天堂在线亚洲| 国产网友愉拍精品| Jizz国产色系免费| 亚洲综合亚洲国产尤物| 91区国产福利在线观看午夜| a级免费视频| 日本伊人色综合网| 久久综合国产乱子免费| 自偷自拍三级全三级视频| 亚洲国产成人久久精品软件| 日韩精品中文字幕一区三区| 综合天天色| 国产大片喷水在线在线视频| 精品少妇人妻无码久久| 久久久久亚洲AV成人网站软件| 色综合激情网| 国产高清毛片| 一本综合久久| 亚洲无码高清免费视频亚洲 | 精品国产成人高清在线| 欧美精品一二三区| 九色在线观看视频| 54pao国产成人免费视频| 91成人试看福利体验区| 亚洲欧美极品| 欧美一区福利| 日韩成人在线一区二区| 免费一极毛片| 欧美成a人片在线观看| 亚洲综合色区在线播放2019| 国产日本一线在线观看免费| 欧美激情综合一区二区|