国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種分散聚合式dma方法及裝置的制作方法

      文檔序號:6434569閱讀:540來源:國知局
      專利名稱:一種分散聚合式dma方法及裝置的制作方法
      技術領域
      本發(fā)明涉及數據傳輸技術領域,具體涉及一種分散聚合式DMA方法及裝置。
      背景技術
      DMA (Direct Memory Access,直接內存存取)是高速數據傳輸的一種理想方式,DMA將數據在內存與I/O設備間的直接傳輸,數據操作由DMA控制器完成而不需要 CPU的參與,大大提高了 CPU的利用率。比如,在圖像處理領域,現有的圖像處理過程大致如下采集圖像數據,用 DMA 方式通過 PCIE (Peripheral Component Interconnection Express,外設組件互連標準擴展)總線將采集到的圖像數據傳送到顯存或者內存,然后利用GPU (GraphicProcessing Unit,圖形處理器)或者CPU對圖像數據進行處理。DMA有兩種實現方式,一種是塊傳輸式DMA (block DMA)方式,另一種是 SG-DMA (Scatter Gather DMA,分散聚合式 DMA)方式。DMA傳輸數據的過程中通常要求源物理地址和目標物理地址是連續(xù)的,但在某些應用中會出現源物理地址和目標物理地址不連續(xù)的情況,則DMA傳輸要分成多次完成。針對這類應用,SG-DMA方式通過一個DMA鏈表描述物理不連續(xù)的存儲器。DMA控制器傳輸完一塊物理連續(xù)的數據后,根據DMA鏈表傳輸下一塊物理連續(xù)的數據,最后發(fā)起一次中斷。在現有技術中,通常是將上述DMA鏈表存放在FPGA(Field ProgrammableGate Array,即現場可編程門陣列)內部的存儲單元中,這種存放方式至少存在以下缺點1.占用FPGA的內部存儲資源。2. 一般FPGA內部的存儲資源有限,因此能夠存放的DMA鏈表比較小,在DMA鏈表較大的情況下,這種方式不能夠滿足要求。

      發(fā)明內容
      本發(fā)明實施例針對上述現有技術存在的問題,提供一種分散聚合式DMA方法及裝置,以節(jié)省FPGA的內部存儲資源,并滿足復雜應用對較大DMA鏈表的需求。為此,本發(fā)明實施例提供如下技術方案一種分散聚合式DMA方法,包括 CPU將DMA鏈表存儲到FPGA之外的存儲單元中;DMA控制器從所述CPU獲得總線控制權后,讀取所述DMA鏈表,并根據所述DMA鏈表將外部存儲器中存儲的數據傳送到顯存或內存中;在所述DMA鏈表對應的數據傳送完成后,DMA控制器釋放總線控制權給所述CPU??蛇x地,所述CPU將DMA鏈表存儲到FPGA之外的存儲單元中包括所述CPU將DMA 鏈表存儲到所述外部存儲器中;所述DMA控制器讀取所述DMA鏈表包括所述DMA控制器根據DMA鏈表存儲在所述外部存儲器的地址讀取所述DMA鏈表??蛇x地,所述CPU將DMA鏈表存儲到FPGA之外的存儲單元中包括所述CPU將DMA鏈表存儲到所述顯存或內存中;所述DMA控制器讀取所述DMA鏈表包括所述DMA控制器通過總線讀取所述DMA鏈表。優(yōu)選地,所述方法還包括數據采集器將采集的數據存儲到所述外部存儲器中。優(yōu)選地,所述數據采集器和所述DMA控制器由所述FPGA實現。一種分散聚合式DMA裝置,包括CPU、DMA控制器、外部存儲器、FPGA之外的存儲單元、以及顯存或內存;所述CPU,用于將DMA鏈表存儲到所述FPGA之外的存儲單元中;所述DMA控制器,用于從所述CPU獲得總線控制權后,讀取所述DMA鏈表,并根據所述DMA鏈表將所述外部存儲器中存儲的數據傳送到所述顯存或內存中,在所述DMA鏈表對應的數據傳送完成后,釋放總線控制權給所述CPU??蛇x地,所述FPGA之外的存儲單元為所述外部存儲器;所述DMA控制器根據DMA鏈表存儲在所述外部存儲器的地址讀取所述DMA鏈表。可選地,所述FPGA之外的存儲單元為所述顯存或內存;所述DMA控制器通過總線讀取所述DMA鏈表。優(yōu)選地,所述裝置還包括數據采集器,用于將采集的數據存儲到所述外部存儲器中。優(yōu)選地,所述數據采集器和所述DMA控制器由所述FPGA實現。本發(fā)明實施例提供的分散聚合式DMA方法及裝置,CPU將DMA鏈表存儲到FPGA之外的存儲單元中,DMA控制器從CPU獲得總線控制權后,從所述存儲單元中讀取該DMA鏈表, 并根據該DMA鏈表將外部存儲器中存儲的數據傳送到顯存或內存中,從而可以節(jié)省FPGA的內部存儲資源,并滿足復雜應用對較大DMA鏈表的存儲需求。


      為了更清楚地說明本申請實施例或現有技術中的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明中記載的一些實施例,對于本領域普通技術人員來講,還可以根據這些附圖獲得其他的附圖。圖1是現有技術中CPU和DMA控制器數據交換的示意圖;圖2是本發(fā)明實施例分散聚合式DMA方法的流程圖;圖3是本發(fā)明實施例中DMA鏈表的一種結構示意圖;圖4是本發(fā)明實施例分散聚合式DMA裝置的一種結構示意圖;圖5是本發(fā)明實施例分散聚合式DMA裝置的一種具體應用示意圖。
      具體實施例方式為了使本技術領域的人員更好地理解本發(fā)明實施例的方案,下面結合附圖和實施方式對本發(fā)明實施例作進一步的詳細說明。本發(fā)明實施例分散聚合式DMA方法及裝置,CPU將DMA鏈表存儲到FPGA之外的存儲單元中,DMA控制器從CPU獲得總線控制權后,從所述存儲單元中讀取該DMA鏈表,并根據該DMA鏈表將外部存儲器中存儲的數據傳送到顯存或內存中,從而可以節(jié)省FPGA的內部存儲資源,并滿足復雜應用對較大DMA鏈表的存儲需求。DMA數據傳輸無需CPU的參與,是一種更加高效的數據傳輸方式。DMA控制器和 CPU是兩個平行的單元,如圖1所示,是現有技術中CPU和DMA數據交換的示意圖。其中, CPU總是通過數據緩存來訪問內存中的數據,而DMA控制器則直接訪問內存。如果內存中的數據被DMA控制器更新,而數據緩存中的數據尚未被更新,CPU獲得的某些地址的值可能并不是內存中的真實值。為了避免這個問題,可在DMA控制器更新完內存中的數據后或CPU讀取被更新過的數據前刷新數據緩存,或是使用不被數據緩存映射的非緩存內存區(qū)域。如圖2所示,是本發(fā)明實施例分散聚合式DMA方法的流程圖,包括以下步驟步驟201,CPU將DMA鏈表存儲到FPGA之外的存儲單元中。步驟202,DMA控制器從所述CPU獲得總線控制權后,讀取所述DMA鏈表,并根據所述DMA鏈表將外部存儲器中存儲的數據傳送到顯存或內存中。所述外部存儲器可以是DDR(Double Data Rate,雙倍速率同步動態(tài)隨機存儲器)、 SDRAM (Synchronous Dynamic Random Access Memory,同步動態(tài)隨機存取存儲器)等。該外部存儲器中存儲的數據可以是圖像數據,也可以是其它數據,對此本發(fā)明實施例不做限定。步驟203,在所述DMA鏈表對應的數據傳送完成后,DMA控制器釋放總線控制權給所述CPU。上述DMA鏈表可以由CPU根據需要傳輸的數據的外部存儲地址、數據大小、以及顯存或內存的地址等信息預先生成,如圖3所示,該DMA鏈表可以是單向結構或環(huán)形結構。其中包括數據源地址和目的地址,還可進一步包括控制字和下一節(jié)點指針等信息,其中, 控制字中包含數據位寬、數據塊大小、當前塊傳輸結束是否引發(fā)中斷等控制信息。DMA塊傳輸可看作是只含有一個節(jié)點,且下一節(jié)點指針總是指向當前節(jié)點的散列傳輸。在本發(fā)明實施例中,CPU將DMA鏈表存儲到FPGA之外的存儲單元,該存儲單元可以是存儲上述需要傳送的數據的外部存儲器,比如DDR或SDRAM,當然,也可以是其它外部存儲器。這樣,DMA控制器從CPU獲得總線控制權后,可以根據DMA鏈表存儲在所述外部存儲器的地址讀取所述DMA鏈表,比如,可以將外部存儲器的存儲空間分為兩部分,一部分存儲所述DMA鏈表,一部分存儲需要傳送到內存中的數據,這兩部分存儲空間的起始地址可以預先設定好。另外,CPU還可以將DMA鏈表存儲到上述顯存或內存中。相應地,DMA控制器從CPU獲得總線控制權后,可以通過總線讀取所述DMA鏈表。所述總線可以是PCIE總線, 還可以是PCI (Peripheral Componentlnterconnect,外設部件互連標準)總線等。當然,CPU還可以將所述DMA鏈表存儲到FPGA之外的其它存儲單元中,對此本發(fā)明實施例不做限定。前面提到,DMA控制器需要根據所述DMA鏈表將DDR中存儲的數據傳送到顯存或內存中,所述DDR中存儲的數據可以是圖像數據,也可以是其它數據。需要說明的是,這些數據可以是由數據采集器實時采集并存儲到所述DDR中的,而所述數據采集器可由上述FPGA 實現,當然也可以采用其它方式實現。不同設備比如CPU、DMA控制器和數據采集器對DDR 的訪問可以由仲裁器來控制,也就是說,由仲裁器分配各個設備的讀寫控制權,以免發(fā)生沖突。所述仲裁器也可以由FPGA等可編程邏輯器件實現。需要說明的是,上述DMA控制器也可由上述FPGA實現。
      本發(fā)明實施例分散聚合式DMA方法,CPU將DMA鏈表存儲到FPGA之外的存儲單元中,DMA控制器從CPU獲得總線控制權后,從所述存儲單元中讀取該DMA鏈表,并根據該DMA 鏈表將外部存儲器中存儲的數據傳送到顯存或內存中,從而可以節(jié)省FPGA的內部存儲資源,并滿足復雜應用對較大DMA鏈表的存儲需求。相應地,本發(fā)明實施例還提供一種分散聚合式DMA裝置。如圖4所示,是該裝置的一種結構示意圖。在該實施例中,所述裝置包括CPU401、DMA控制器402、外部存儲器403、顯存或內存404、FPGA之外的存儲單元405,這些器件通過總線互連,所述總線可以是PCIE、PCI等外圍設備互連總線。其中CPU401用于將DMA鏈表存儲到存儲單元405中;DMA控制器402用于從CPU401獲得總線控制權后,從所述存儲單元405中讀取所述DMA鏈表,并根據所述DMA鏈表將外部存儲器403中存儲的數據傳送到顯存或內存404 中,在所述DMA鏈表對應的數據傳送完成后,釋放總線控制權給CPU401。上述外部存儲器403可以是DDR、SDRAM等。該外部存儲器403中存儲的數據可以是圖像數據,也可以是其它數據,對此本發(fā)明實施例不做限定。上述DMA鏈表可以由CPU401根據需要傳輸的數據的外部存儲地址、數據大小、以及顯存或內存空間等信息預先生成。上述存儲單元405可以是存儲上述需要傳送的數據的外部存儲器,即外部存儲器 403,當然,也可以是其它外部存儲器。這樣,DMA控制器402從CPU401獲得總線控制權后, 可以根據外部存儲器403的地址讀取所述DMA鏈表。另外,上述存儲單元405還可以是顯存或內存404。相應地,DMA控制器402從CPU401獲得總線控制權后,可以通過總線讀取所述DMA鏈表。上述DMA控制器402可以由所述FPGA實現。本發(fā)明實施例分散聚合式DMA裝置,由CPU將DMA鏈表存儲到FPGA之外的存儲單元中,DMA控制器從CPU獲得總線控制權后,從所述存儲單元中讀取該DMA鏈表,并根據該 DMA鏈表將外部存儲器中存儲的數據傳送到顯存或內存中,從而可以節(jié)省FPGA的內部存儲資源,并滿足復雜應用對較大DMA鏈表的存儲需求。需要說明的是,在需要對數據進行實時處理的應用環(huán)境中,比如圖像處理應用中, 上述外部存儲器403中的數據可以是實時更新的。如圖5所示,是本發(fā)明實施例分散聚合式DMA裝置的一種具體應用示意圖。在該應用中,所述分散聚合式DMA裝置還包括數據采集器501,用于將采集視頻解碼芯片500解碼后的圖像數據,并將采集的圖像數據存儲到外部存儲器403中。該實施例中,CPU401可以將DMA鏈表存儲到外部存儲器403或顯存/內存404中。由于有多個單元會對外部存儲器403進行讀寫操作,因此,為了避免產生沖突,可以通過仲載器502來控制這些不同單元對外部存儲器403的操作。在本實施例中,有數據采集器501和DMA控制器402對外部存儲器403進行讀寫操作,仲裁器502用于分配讀寫操作的控制權。例如,當數據采集器501向外部存儲器403 發(fā)起讀寫請求,而DMA控制器402未發(fā)起讀寫請求,此時,仲裁器502將外部存儲器403的讀寫控制權分配給數據采集器501。當數據采集器501和DMA控制器402同時發(fā)起讀寫請求,此時仲裁器502可以優(yōu)先將讀寫控制器權分配給DMA控制器402。需要說明的是,上述DMA控制器402、數據采集器501、仲裁器502都可以由FPGA 來實現,當然,也可以通過其它方式來實現,對此本發(fā)明實施例不做限定。需要說明的是,本發(fā)明實施例分散聚合式DMA方法及裝置,可以應用于多種需要高速大批量數據傳送的系統中,以最大限度利用內存帶寬和提高I/O速度,如磁盤存取、圖像處理、高速數據采集系統、同步通信中的收/發(fā)信號等方面。本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于裝置實施例而言,由于其基本相似于方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。本領域普通技術人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。以上對本發(fā)明實施例進行了詳細介紹,本文中應用了具體實施方式
      對本發(fā)明進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及設備;同時,對于本領域的一般技術人員,依據本發(fā)明的思想,在具體實施方式
      及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發(fā)明的限制。
      權利要求
      1.一種分散聚合式DMA方法,其特征在于,包括 CPU將DMA鏈表存儲到FPGA之外的存儲單元中;DMA控制器從所述CPU獲得總線控制權后,讀取所述DMA鏈表,并根據所述DMA鏈表將外部存儲器中存儲的數據傳送到顯存或內存中;在所述DMA鏈表對應的數據傳送完成后,DMA控制器釋放總線控制權給所述CPU。
      2.根據權利要求1所述的分散聚合式DMA方法,其特征在于,所述CPU將DMA鏈表存儲到FPGA之外的存儲單元中包括所述CPU將DMA鏈表存儲到所述外部存儲器中;所述DMA控制器讀取所述DMA鏈表包括所述DMA控制器根據DMA鏈表存儲在所述外部存儲器的地址讀取所述DMA鏈表。
      3.根據權利要求1所述的分散聚合式DMA方法,其特征在于,所述CPU將DMA鏈表存儲到FPGA之外的存儲單元中包括所述CPU將DMA鏈表存儲到所述顯存或內存中;所述DMA控制器讀取所述DMA鏈表包括所述DMA控制器通過總線讀取所述DMA鏈表。
      4.根據權利要求1至3任一項所述的分散聚合式DMA方法,其特征在于,所述方法還包括數據采集器將采集的數據存儲到所述外部存儲器中。
      5.根據權利要求4所述的分散聚合式DMA方法,其特征在于,所述數據采集器和所述 DMA控制器由所述FPGA實現。
      6.一種分散聚合式DMA裝置,其特征在于,包括CPU、DMA控制器、外部存儲器、FPGA之外的存儲單元、以及顯存或內存;所述CPU,用于將DMA鏈表存儲到所述FPGA之外的存儲單元中; 所述DMA控制器,用于從所述CPU獲得總線控制權后,讀取所述DMA鏈表,并根據所述 DMA鏈表將所述外部存儲器中存儲的數據傳送到所述顯存或內存中,在所述DMA鏈表對應的數據傳送完成后,釋放總線控制權給所述CPU。
      7.根據權利要求6所述的分散聚合式DMA裝置,其特征在于,所述FPGA之外的存儲單元為所述外部存儲器;所述DMA控制器根據DMA鏈表存儲在所述外部存儲器的地址讀取所述DMA鏈表。
      8.根據權利要求6所述的分散聚合式DMA裝置,其特征在于,所述FPGA之外的存儲單元為所述顯存或內存;所述DMA控制器通過總線讀取所述DMA鏈表。
      9.根據權利要求6至8任一項所述的分散聚合式DMA裝置,其特征在于,所述裝置還包括數據采集器,用于將采集的數據存儲到所述外部存儲器中。
      10.根據權利要求9所述的分散聚合式DMA裝置,其特征在于,所述數據采集器和所述 DMA控制器由所述FPGA實現。
      全文摘要
      本發(fā)明涉及數據傳輸技術領域,公開了一種分散聚合式DMA方法及裝置。該方法包括CPU將DMA鏈表存儲到FPGA之外的存儲單元中;DMA控制器從所述CPU獲得總線控制權后,讀取所述DMA鏈表,并根據所述DMA鏈表將外部存儲器中存儲的數據傳送到顯存或內存中;在所述DMA鏈表對應的數據傳送完成后,DMA控制器釋放總線控制權給所述CPU。本發(fā)明可以節(jié)省FPGA的內部存儲資源,并滿足復雜應用對較大DMA鏈表的需求。
      文檔編號G06F13/28GK102314400SQ20111029663
      公開日2012年1月11日 申請日期2011年9月27日 優(yōu)先權日2011年9月27日
      發(fā)明者蘭進城, 張 杰, 景博, 曹捷, 林文富, 鄭田豐 申請人:廣東威創(chuàng)視訊科技股份有限公司
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1