• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于DMA的以太網接口性能提升*

      2014-07-25 09:00:42程瑤
      網絡安全與數據管理 2014年20期
      關鍵詞:數據源寄存器引擎

      程瑤

      (重慶理工大學 電子信息與自動化學院,重慶 400050)

      0 引言

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

      1 系統(tǒng)組成

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

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

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

      圖1 AX88796功能框圖

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

      圖2 以太網接口功能框圖

      2 基于DMA的性能提升設計

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

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

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

      圖3 未使用DMA時的PING包試驗結果

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

      圖4 DMA傳輸時序圖

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

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

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

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

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

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

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

      具體的驅動代碼如下:

      為了檢驗DMA傳輸方式的性能,這里同樣采用了PING包試驗的方式,具體PING包結果如圖5所示。由圖可見,采用DMA傳輸方式后,以太網接口的性能得到了顯著的提升。

      圖5 使用DMA后的PING包試驗結果

      3 結論

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

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

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

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

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

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

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

      猜你喜歡
      數據源寄存器引擎
      Lite寄存器模型的設計與實現(xiàn)
      計算機應用(2020年5期)2020-06-07 07:06:44
      Web 大數據系統(tǒng)數據源選擇*
      藍谷: “涉藍”新引擎
      商周刊(2017年22期)2017-11-09 05:08:31
      分簇結構向量寄存器分配策略研究*
      基于不同網絡數據源的期刊評價研究
      無形的引擎
      河南電力(2015年5期)2015-06-08 06:01:46
      基于真值發(fā)現(xiàn)的沖突數據源質量評價算法
      基于Cocos2d引擎的PuzzleGame開發(fā)
      分布式異構數據源標準化查詢設計與實現(xiàn)
      高速數模轉換器AD9779/AD9788的應用
      清徐县| 彰武县| 蓬莱市| 横山县| 民勤县| 陕西省| 阿图什市| 安陆市| 东至县| 平远县| 清远市| 通城县| 东阿县| 德保县| 龙川县| 莒南县| 西乡县| 东阳市| 太仆寺旗| 洪洞县| 宁晋县| 凌海市| 西乡县| 凤阳县| 射洪县| 海南省| 紫金县| 平顶山市| 仙桃市| 浠水县| 永胜县| 莱西市| 博爱县| 宁国市| 陇南市| 布拖县| 邹城市| 英山县| 洛阳市| 兰考县| 安乡县|