<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 利用WinDriver實現(xiàn)鏈?zhǔn)紻MA

          利用WinDriver實現(xiàn)鏈?zhǔn)紻MA

          作者: 時間:2013-07-13 來源:網(wǎng)絡(luò) 收藏

          摘要:協(xié)議由于其高速串行、系統(tǒng)拓?fù)浜唵蔚忍攸c被廣泛用于各種領(lǐng)域。Altera公司的Arria II GX FPGA內(nèi)集成了支持傳輸功能的硬核,適應(yīng)了總線高速度的要求。文中利用Jungo公司的軟件實現(xiàn)了的上層應(yīng)用設(shè)計。首先給出了實現(xiàn)的基本過程,接著分析了鏈?zhǔn)紻MA數(shù)據(jù)傳輸需要處理的幾個問題,給出了相應(yīng)的解決辦法和策略。采用這些方法,保證了DAM數(shù)據(jù)傳輸?shù)恼_性,簡化了底層FPGA應(yīng)用邏輯的設(shè)計。
          關(guān)鍵詞:鏈?zhǔn)紻MA;;PCI Express;

          在計算機(jī)與外設(shè)的通訊過程中,DMA方式,即DirectMemory access(直接內(nèi)存訪問),由于無需計算機(jī)CPU的干預(yù)就可以在內(nèi)存和外設(shè)之間傳輸數(shù)據(jù),是一種高效的數(shù)據(jù)交換方式。因為對于高速的設(shè)備,如PCI Express接口的板卡設(shè)備,如果采用普通方式在存儲器和外設(shè)之間傳輸大量的數(shù)據(jù)將占用太多的CPU時間,嚴(yán)重影響系統(tǒng)的性能。而使用DMA方式則使傳輸數(shù)據(jù)的操作中CPU的涉及減小到最少。
          要實現(xiàn)DMA的傳輸功能,在底層需要硬件本身具有這樣的功能模塊,即外設(shè)硬件可以主動發(fā)起數(shù)據(jù)傳輸。在上層則需要驅(qū)動與應(yīng)用接口的配合。
          文中給出如下的一種DMA傳輸方式的實現(xiàn)。硬件外設(shè)是基于Altera公司PCI Express硬核的FPGA加密卡,其與主機(jī)的接口采用是PCI Expre ss接口。上層則采用了Jungo公司的軟件提供的驅(qū)動和API接口。

          1 鏈?zhǔn)紻MA
          PCI Express是用來互聯(lián)諸如計算機(jī)和通信平臺應(yīng)用中外圍設(shè)備的第三代高性能I/O總線。與原有的PCI并行總線相比,它沒有大量的數(shù)據(jù)和控制線,對于硬件電路設(shè)計者來說,省去了很多硬件設(shè)計工作。PCI Express的傳輸速度遠(yuǎn)遠(yuǎn)大于PCI總線,PCI Express 1.1版本單個鏈路的單向吞吐量能達(dá)到250 MB/s。對于需要與主機(jī)進(jìn)行大容量傳輸?shù)南到y(tǒng)來說,該總線標(biāo)準(zhǔn)的優(yōu)勢是非常明顯的。Altera公司的Arria IICX系列器件內(nèi)建PCI Express硬核,無需PHY和IP核,有利于節(jié)約FPGA資源,簡化了PCI Express的接口設(shè)計。同時在用Quartus II軟件生成的基于PCI Express硬核的樣本工程中,集成了對DMA的支持功能,為進(jìn)一步的硬件產(chǎn)品開發(fā)提供了基礎(chǔ)。
          實際應(yīng)用中,DMA的傳輸方式可分為兩種:簡單DMA和鏈?zhǔn)紻MA。簡單DMA只需要主機(jī)告訴設(shè)備要傳輸數(shù)據(jù)的主機(jī)地址、設(shè)備地址和傳輸數(shù)據(jù)的長度,然后啟動DMA傳輸即可。但簡單DMA每進(jìn)行一次傳輸,都要進(jìn)行上面的設(shè)置,效率較低。
          在用Quartus II軟件的MegaWizard。Plug-In Manager工具生成的基于PCI Express硬核的樣本工程中,實現(xiàn)了一個32 KB的帶有字節(jié)寫使能控制的雙端口RAM的,其讀寫數(shù)據(jù)總線寬度均為128位;并且實現(xiàn)了鏈?zhǔn)紻MA的傳輸功能。這是一種效率遠(yuǎn)遠(yuǎn)高于簡單DMA的傳輸方式,它只需要1次啟動操作,就可以完成多次DMA傳輸。具體實現(xiàn)的方法是:在主機(jī)端,需要開辟一塊內(nèi)存區(qū)域,用來存儲描述符表。所謂描述符表,是用來描述在主機(jī)與外設(shè)之間數(shù)據(jù)傳輸有關(guān)的地址與長度信息的,它由一個表頭和多個描述符組成,其中每一個描述符對應(yīng)一次DMA操作。用戶根據(jù)自己的需求填寫該描述符表,如下表所示。

          本文引用地址:http://www.ex-cimer.com/article/148004.htm

          a.JPG


          在上表中,偏移地址是指到描述符表內(nèi)存區(qū)域開始處的字節(jié)偏移地址。DMA長度用來設(shè)置本描述符對應(yīng)的DMA傳輸?shù)拈L度,是以32位雙字為單位的。主機(jī)地址用來指示數(shù)據(jù)在主機(jī)端存放的位置。設(shè)備地址用來指示數(shù)據(jù)在設(shè)備的中存放的位置。控制域用來控制在該描述符傳輸完成時設(shè)備是否更新描述符頭的EPLAST域。

          存儲器相關(guān)文章:存儲器原理



          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();