《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于DMA的以太網接口性能提升
基于DMA的以太網接口性能提升
2014年微型機與應用第20期
程 瑤
重慶理工大學 電子信息與自動化學院,重慶 400050
摘要: 以太網接口因其具有標準開放、易于擴展、低成本等優點而在工業中得到了廣泛應用。傳輸性能是以太網接口的一個關鍵參數,在一些時間敏感的領域設計中要予以考慮。通過使用DMA方式提升以太網接口的性能,并用PING包試驗的方式進行了驗證。結果表明,通過使用DMA可以顯著地提升以太網接口的性能
關鍵詞: DMA Cache 以太網 性能
Abstract:
Key words :

  摘  要以太網接口因其具有標準開放、易于擴展、低成本等優點而在工業中得到了廣泛應用。傳輸性能是以太網接口的一個關鍵參數,在一些時間敏感的領域設計中要予以考慮。通過使用DMA方式提升以太網接口的性能,并用PING包試驗的方式進行了驗證。結果表明,通過使用DMA可以顯著地提升以太網接口的性能。

  關鍵詞: DMA;Cache;以太網;性能

0 引言

  以太網作為一種計算機局域網組網接口標準,具有標準開放、高傳輸帶寬、低成本、易于擴展和維護等特點,是當今應用最為普遍的局域網技術[1-3]。伴隨著當今社會信息化程度的提高,人們需要處理的數據量越來越大,以太網接口的性能成為應用中需要考慮的關鍵因素之一[4]。本文研究了DMA技術對于以太網接口性能提升的作用,試驗平臺采用了S3C2410A處理器和AX88796以太網MAC芯片。

1 系統組成

  試驗系統采用了S3C2410A處理器和AX88796以太網MAC芯片。

  S3C2410是Samsung公司生產的一款基于ARM公司ARM920T架構的通用處理器,其具有低成本、低功耗和高性能等優點,適用于對成本和功耗比較敏感的領域,如手持設備。該處理器片上集成了豐富的外設資源,包括Timer、UART、DMA、LCD控制器和NAND閃存控制器等,最高可運行主頻為203 MHz[5]。

  AX88796是一款基于IEEE802.3/IEEE802.3u局域網標準的NE2000兼容型快速以太網控制器芯片,內部集成有10/100 Mb/s自適應的物理層收發器和8 KB×16位的SRAM,支持MCS-51系列、80186系列以及MC68K系列等CPU。由于提供了與NE2000寄存器級兼容的接口,其驅動程序可以很方便地移植[6]。AX88796的功能框圖如圖1所示。

001.jpg

  基于S3C2410和AX88796的以太網接口設計如圖2所示。

002.jpg

2 基于DMA的性能提升設計

  DMA(Direct Memory Access)是現代計算機的一種重要特性,它可以不依賴CPU實現系統中不同硬件子系統之間的數據交換。如果不使用DMA,中央處理器需要首先將數據從源地址拷貝到內部暫存器,然后再將其復制到目的地址。這個過程會一直占用CPU資源,CPU無法處理其他工作。而DMA方式直接在兩個子系統間交換數據,不需要CPU的介入,CPU只負責啟動而不參與數據傳送過程,整個數據傳輸過程完全由DMA控制器硬件實現。這時,CPU可以同時做其他的工作而互不影響,提高了系統的運行效率。不難看出,在同等程度的處理器負擔下,DMA是一種快速的數據傳送方式。在實現DMA傳輸時,總線應該由DMA控制器直接控制,因此,在使用DMA時存在總線控制權轉移問題。在DMA開始前,CPU要把總線控制權交給DMA控制器,在DMA數據傳輸結束后再把總線控制權交還給CPU。

  為了提升以太網接口的性能,本設計引入了DMA數據傳輸方式,并將使用DMA與不使用DMA的性能進行了對比分析。本設計使用VxWorks嵌入式操作系統,軟件開發環境為Tornado2.2。DMA主要應用于以太網驅動程序的數據收發部分。為了對比性能,分別對使用DMA與不使用DMA方式進行了試驗。不使用DMA的數據收發程序如下:

  for(Count=0;Count<(length>>1);Count++)

  {

  *pData=*(pDrvCtrl->base+ENE_DATA);

  pData+=2;

  }

  for(count=0;count<(length>>1);count++)

  {

  *(pDrvCtrl->base+ENE_DATA)=*pData;

  pData+=2;

  }

  使用PING包試驗測試該驅動程序的性能,效果如圖3所示。

003.jpg

  為了提升以太網接口的傳輸性能,在驅動程序設計中使用了DMA方式,這樣可以在不太耗費CPU資源的情況下完成系統和以太網接口的數據交換,從而顯著地提升系統的性能。S3C2410片上集成了四通道的DMA引擎,可以完成系統總線和外設總線間的直接數據傳輸。S3C2410的各個DMA引擎支持單字節和4字節兩種傳輸大小。為了效率最大化,本設計中采用了4字節傳輸模式,其傳輸時序如圖4所示。

004.jpg

  S3C2410的DMA引擎既可以通過軟件方式啟動,也可以通過外部DMA請求引腳啟動。本設計中采用軟件方式啟動。要實現DMA傳輸,需要進行如下的一系列操作:

  (1)配置DMA引擎的數據源初始地址,將數據源初始地址寫入寄存器DISRC。對于以太網數據接收,數據源初始地址就是AX88796的數據寄存器地址;而對于數據發送,數據源初始地址就是包含待發送數據的內存地址。

  (2)配置DMA引擎的數據源控制寄存器,包括數據源設備所在的總線(系統總線或者外設總線)以及地址增長方式。在本設計中,發送和接收的源設備都在系統總線上。而對于地址增長方式,在接收時,源地址為AX88796的數據寄存器地址,是固定不變的,所以要配置成不變的;在發送時,源地址在內存中,其地址是遞增的,所以要配置成遞增式。

  (3)配置DMA引擎的初始目的地址,將初始目的地址寫入寄存器DIDST。對于數據接收,初始目的地址就是內存中用于存儲接收數據的地址;而對于數據發送,初始目的地址就是AX88796的數據寄存器地址。

  (4)配置DMA引擎的目的地址控制寄存器,包括目的地址所在的總線(系統總線或者外設總線)以及地址增長方式。這里的配置可以參考數據源控制寄存器的配置。

  (5)配置DMA引擎控制寄存器,配置包括傳輸單元大小(1 bit或者4 bit,本設計中使用4 bit)、觸發方式(軟件方式或者外部硬件引腳觸發,本設計中使用的軟件觸發方式)以及傳輸次數。

  (6)配置DMA引擎的觸發寄存器以啟動數據傳輸。

  具體的驅動代碼如下:

  【數據接收】

  DMA_DISRC=(pDrvCtrl->base+ENE_DATA);

  DMA_DISRCC=1;

  DMA_DIDST=pData;

  DMA_DIDSTC=0;

  DMA_DCON=(0x48500000|dataShortCount);

  DMA_DMASKTRI=0x3;

  【數據發送】

  DMA_DISRC=pData;

  DMA_DISRCC=0;

  DMA_DIDST=(pDrvCtrl->base+ENE_DATA);

  DMA_DIDSTC=1;

  DMA_DCON=(0x48500000|dataShortCount);

  DMA_DMASKTRI=0x3;

  為了檢驗DMA傳輸方式的性能,這里同樣采用了PING包試驗的方式,具體PING包結果如圖5所示。

由圖可見,采用DMA傳輸方式后,以太網接口的性能得到了顯著的提升。

005.jpg

3 結論

  傳輸性能是以太網接口的一個關鍵參數,在進行系統設計時需要予以考慮。本設計中引入了DMA方式以提升以太網接口的性能,通過PING包試驗證明了DMA可以顯著地提升以太網接口的性能。

參考文獻

  [1] IEEE Computer Society. IEEE Standard 802.3[S].2002.

  [2] 謝希仁.計算機網絡[M].北京:電子工業出版社,2013.

  [3] 嚴偉,潘愛民.計算機網絡[M].北京:清華大學出版社,2012.

  [4] 楊宏.基于END驅動IP層轉發能力的提升方法[J].信息安全與通信保密,2007(1):156-160.

  [5] SAMSUNG Electronics. S3C2410A user′s manual[Z]. 2004.

  [6] ASIX Electronics Corporation. AX88796L user′s manual[Z].2002.


此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
在线欧美日韩| 亚洲第一主播视频| 在线不卡亚洲| 国产专区欧美精品| 国产亚洲va综合人人澡精品| 国产精品视频成人| 欧美性猛交一区二区三区精品| 欧美日韩精品一区二区天天拍小说| 欧美成人免费在线| 农村妇女精品| 欧美成人一区二免费视频软件| 蜜臀久久99精品久久久画质超高清| 久久久之久亚州精品露出| 欧美在线免费观看| 欧美在线视频观看免费网站| 欧美一区二区日韩一区二区| 欧美亚洲一级| 久久久91精品| 久久久午夜电影| 卡一卡二国产精品| 欧美1区视频| 欧美女同视频| 欧美午夜a级限制福利片| 欧美午夜精品一区| 国产精品捆绑调教| 国产三区精品| 精品88久久久久88久久久| 在线免费观看视频一区| 亚洲国产精品视频一区| 日韩视频二区| 亚洲一区二区三区四区五区午夜 | 99国产欧美久久久精品| 在线亚洲欧美专区二区| 亚洲欧美日韩另类| 久久久777| 欧美精品91| 国产精品人成在线观看免费 | 亚洲一区三区视频在线观看| 欧美在线不卡| 欧美成人免费全部| 欧美午夜不卡| 好看的av在线不卡观看| 亚洲国产欧美不卡在线观看| 在线视频欧美日韩| 久久国产欧美| aa级大片欧美三级| 久久av在线| 欧美国产欧美综合| 国产精品久久久亚洲一区| 狠狠久久亚洲欧美| 一区二区三区成人精品| 欧美制服第一页| 一区二区三区回区在观看免费视频| 亚洲欧美中文字幕| 男女精品网站| 国产精品亚洲第一区在线暖暖韩国| 黑人巨大精品欧美黑白配亚洲| 亚洲免费不卡| 久久国产天堂福利天堂| 亚洲一区国产精品| 久久综合综合久久综合| 国产精品v欧美精品v日韩精品| 好吊妞**欧美| 亚洲午夜精品网| 亚洲精品国产精品久久清纯直播| 亚洲欧美中文日韩v在线观看| 欧美大片在线观看一区| 国产毛片久久| 99国产精品久久久久老师| 亚洲第一毛片| 午夜精品久久久久久| 欧美激情一二区| 国产亚洲欧美日韩在线一区| 99国产精品视频免费观看| 亚洲国产天堂久久国产91| 亚洲欧美一区二区精品久久久| 欧美黄色成人网| 国内揄拍国内精品久久| 一区二区三区日韩欧美| 亚洲人成在线播放网站岛国| 久久国产日韩欧美| 国产精品国产自产拍高清av王其| 亚洲国产精品久久久久婷婷老年 | 亚洲欧美日韩一区二区三区在线观看| 欧美大片在线观看一区二区| 国产一区二区高清| 亚洲图中文字幕| 一本色道**综合亚洲精品蜜桃冫| 葵司免费一区二区三区四区五区| 国产精品入口福利| 99re在线精品| 日韩五码在线| 欧美激情aaaa| 亚洲第一在线| 亚洲国产成人精品女人久久久| 欧美在线高清| 国产欧美成人| 亚洲午夜免费福利视频| 亚洲一区二区三区精品动漫| 欧美精选在线| 亚洲精品在线电影| 亚洲乱码一区二区| 欧美成人资源网| 亚洲一区二区三区精品动漫| 亚洲美女在线一区| 亚洲国产综合在线| 久久久www免费人成黑人精品| 国产精品sss| 亚洲精品网址在线观看| 亚洲日韩视频| 久久综合狠狠综合久久综青草| 国产小视频国产精品| 亚洲欧美日韩精品久久奇米色影视| 亚洲午夜影视影院在线观看| 欧美日韩系列| 妖精成人www高清在线观看| 99视频有精品| 欧美久久久久久| 悠悠资源网亚洲青| 亚洲国产导航| 欧美夫妇交换俱乐部在线观看| 在线观看欧美一区| 久久精品一二三区| 美女在线一区二区| 亚洲国产成人不卡| 亚洲最新合集| 欧美日韩中文字幕日韩欧美| 中日韩美女免费视频网址在线观看 | 亚洲女性裸体视频| 国产精品永久免费视频| 午夜精品久久久久久 | 久热综合在线亚洲精品| 亚洲高清资源综合久久精品| 亚洲卡通欧美制服中文| 欧美激情导航| 日韩午夜精品视频| 亚洲图片欧美午夜| 国产精品日韩| 久久成人av少妇免费| 久久综合影音| 亚洲久久在线| 午夜精品福利一区二区三区av| 国产欧美另类| 亚洲国产专区校园欧美| 欧美日韩国产成人高清视频| 亚洲午夜av| 久久久久久穴| 亚洲日本va午夜在线影院| 亚洲一级一区| 国产亚洲欧美日韩一区二区| 亚洲人精品午夜| 国产精品豆花视频| 欧美一区二区三区在线免费观看 | 久久国产精彩视频| 欧美精品久久久久a| 亚洲性xxxx| 免费看精品久久片| 一本色道精品久久一区二区三区| 欧美影院久久久| 亚洲国产精品一区在线观看不卡| 亚洲在线成人| 激情校园亚洲| 一区二区三区免费网站| 国产午夜精品一区理论片飘花| 日韩亚洲精品视频| 国产日韩精品一区二区三区在线| 亚洲激情成人| 欧美性事免费在线观看| 亚洲第一区在线观看| 欧美网站在线观看| 亚洲高清影视| 国产精品久久二区二区| 亚洲国产欧美一区二区三区久久| 欧美视频中文一区二区三区在线观看 | 亚洲制服av| 亚洲第一黄网| 性色av一区二区怡红| 亚洲黑丝一区二区| 久久成人精品| 日韩一级大片在线| 老司机凹凸av亚洲导航| 亚洲一区二区三区久久| 欧美成人日本| 欧美在线free| 国产精品家庭影院| 亚洲精品一区二区在线| 国产亚洲成精品久久| 在线一区二区三区做爰视频网站| 国产一区二区三区在线观看免费视频| 亚洲视频视频在线| 在线日本成人| 久久精品视频在线观看| 一区二区三区日韩欧美| 欧美国产日韩一区二区| 久久福利视频导航| 国产毛片一区| 亚洲欧美日韩精品久久久久 | 一区二区欧美精品| 欧美激情一区在线观看| 亚洲第一精品夜夜躁人人爽|