一種高性能多通道通用DMA設計與實現(xiàn)_第1頁
一種高性能多通道通用DMA設計與實現(xiàn)_第2頁
一種高性能多通道通用DMA設計與實現(xiàn)_第3頁
一種高性能多通道通用DMA設計與實現(xiàn)_第4頁
一種高性能多通道通用DMA設計與實現(xiàn)_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

要:為充分發(fā)揮異構多核DSP芯片的實時計算能力,設計并實現(xiàn)了一種高性能多通道的通用DMA,該DMA最大支持64個通道的數(shù)據(jù)搬運,并支持一維、二維、轉置以及級聯(lián)描述符等多種傳輸模式。芯片實測傳輸性能最高可達11.7GB/s,實現(xiàn)了高效率、高性能的數(shù)據(jù)供給。關鍵詞:多通道;DMA;設計;測試0引言DSP芯片因其強大的實時計算能力,在軍事、通信、工控等領域嵌入式系統(tǒng)中應用廣泛。應用需求的不斷提高以及信息技術的不斷進步,推動了高性能DSP芯片向異構多核、高并行、高集成的方向發(fā)展,在DSP芯片具有高算力的同時,其對高效率、高性能的數(shù)據(jù)供給同樣提出了更高的要求。DMA(DirectMemoryAccess)技術能夠提供內存和內存、內存和外設之間的直接數(shù)據(jù)傳輸通道,不僅能夠提高數(shù)據(jù)傳輸速率,還能使得DSP核從復雜的數(shù)據(jù)傳輸任務中脫離出來,從而有效提升芯片性能,已成為行業(yè)的研究熱點。本文面向異構多核DSP芯片的需求,設計實現(xiàn)了一種高性能多通道通用DMA(Multi-channelGeneral-purposeDMA,MG-DMA),支持一維、二維、轉置以及級聯(lián)描述符等多種傳輸模式,最大64通道,大幅提升了數(shù)據(jù)傳輸速率,有效匹配了DSP芯片的計算能力。1設計與實現(xiàn)1.1

總體設計MG-DMA的結構框圖如圖1所示,包括配置和狀態(tài)寄存器模塊(CSR)、通道選擇模塊(CHS)、矩陣轉置參數(shù)模塊(MTP)、讀寫總線控制模塊(WRBC)、4個DMA執(zhí)行模塊(DMAE0~DMAE3)以及DMA緩存模塊(DMAB)。各模塊功能如下:(1)配置和狀態(tài)寄存器模塊(CSR):CSR模塊有64個邏輯通道的配置寄存器組以及一個總的中端和狀態(tài)控制寄存器,其中,配置寄存器組主要包括通道傳輸數(shù)據(jù)量、數(shù)據(jù)源地址、數(shù)據(jù)目的地址、外部描述符地址等信息,64個邏輯通道可根據(jù)用戶需求映射到任意4個物理通道,映射關系由對應物理通道編號寄存器的值決定。當配置好寄存器組后,CSR模塊將對應產生通道請求信號送給通道選擇模塊,啟動一次DMA傳輸,當DMA傳輸完成或發(fā)生傳輸錯誤時,觸發(fā)相應中斷。(2)通道選擇模塊(CHS):CHS模塊根據(jù)接收到的通道請求信號產生通道選擇信號,并計算本次傳輸?shù)呐渲脜?shù),將參數(shù)和傳輸啟動信號傳輸給對應的DMAE模塊,同時將通道選擇信號送給WRBC模塊,啟動一次傳輸。(3)DMA執(zhí)行模塊(DMAE):DMAE內部讀寫各自獨立,當一次傳輸啟動后,DMAE模塊先啟動一次burst讀,將讀出的數(shù)據(jù)緩存在DMAB中,一次burst最大支持128個256bits的數(shù)據(jù),讀完后再將緩存中的數(shù)據(jù)寫出到相應地址。當所有數(shù)據(jù)寫完或者發(fā)生錯誤時,產生相應的中斷信號。4個物理通道各對應一個DMAE模塊,4個通道可以同時進行數(shù)據(jù)傳輸,但同時只有一個模塊可以進行矩陣轉置操作,4個物理通道輪流進行矩陣轉置。(4)DMA緩存模塊(DMAB):DMAB模塊存儲空間共32kByte,每個通道使用4kByte的RAM,其余16kByte作為矩陣轉置使用。讀數(shù)據(jù)時,DMAE模塊將讀到的數(shù)據(jù)進行256bits拼接對齊后存入DMAB模塊;寫數(shù)據(jù)時,由于RAM不是寄存器輸出,DMAB模塊會將RAM的輸出數(shù)據(jù)進行寄存器鎖存后送給DMAE模塊,DMAE模塊按照地址進行對齊移位后再寫出。矩陣轉置時,為實現(xiàn)對存放在內存中的矩陣進行從源矩陣到目標矩陣的行列轉置功能,DMA每次轉置一個32×32的小矩陣,自動累加矩陣的源地址和目的地址,最終實現(xiàn)一個大矩陣的轉置。DMAB中使用了4個4kByte的RAM,每兩個作為一組,組成兩個8kByte的乒乓RAM,每組支持32行×32列×8kByte的矩陣,實現(xiàn)了乒乓操作。(5)矩陣轉置參數(shù)模塊(MTP):MTP模塊主要用于矩陣轉置時的參數(shù)計算,每個小矩陣的大小為32行×32列,不足的按實際大小讀寫。當小矩陣讀或寫完畢后,計算下一個小矩陣的地址和對應在RAM中的地址。(6)讀寫總線控制模塊(WRBC):WRBC主要包括讀通道編號和寫通道編號兩個動態(tài)的寄存器,讀通道編號表示當前使用AXI讀操作的通道編號,寫通道編號表示當前使用AXI寫操作的通道編號,在當前物理通道傳輸完成后,會判斷下一個通道是否需要操作,如果需要,則將AXI總線使用權交給下一個通道。1.2

工作流程MG-DMA典型工作流程如下:(1)通過APB接口配置通道寄存器;當有通道請求時,CSR模塊將請求送給CHS模塊。(2)判斷是否是矩陣轉置請求,如果是,判斷矩陣工作編號是否等于通道編號,如果不是,通道允許傳輸;如果矩陣工作編號等于通道編號,通道允許矩陣傳輸,將傳輸啟動信號和傳輸參數(shù)送給DMAE模塊。如果不相等,等待其他通道矩陣傳輸完成。(3)DMAE模塊收到傳輸啟動信號后,根據(jù)收到的傳輸參數(shù)開始讀取數(shù)據(jù);DMAE模塊每次發(fā)送一個burst讀操作,讀取不超過16個256bits的數(shù)據(jù),可以連續(xù)發(fā)送多個讀命令。(4)當DMAE模塊發(fā)送的讀命令達到上限時,通知WRBC模塊,WRBC模塊判斷下一個通道是否要讀取數(shù)據(jù),如果是,更新到下一個通道編號的值,如果不是,按照4個通道順序輪詢。(5)當DMAE模塊在緩存數(shù)據(jù)大于16個256bits時,開始burst寫操作;如果當次讀的數(shù)據(jù)被寫完,通知WRBC模塊;WRBC模塊判斷下一個通道是否要寫數(shù)據(jù),如果是,更新到下一個通道編號的值,如果不是,按照4個通道順序輪詢。(6)當收到通道傳輸停止或總線響應錯誤時,DMAE模塊在發(fā)完本次burst讀命令后停止讀取新數(shù)據(jù),在寫完所有的數(shù)據(jù)后,提起總線錯誤或傳輸錯誤中斷。(7)如果不需要讀取描述符,當所有數(shù)據(jù)寫完時通道傳輸完成;如果需要讀取描述符,讀取下一個描述符后進行下一次DMA操作。1.3

物理實現(xiàn)本文所述MG-DMA模塊應用于3080型DSP芯片,該芯片包括4個處理核和4個專用加速核,支持PCIe、SRIO等高速接口以及2路DDR4大帶寬存儲,其片內DMA的性能對DSP芯片計算能力的發(fā)揮有著重要作用。物理實現(xiàn)后,MG-DMA模塊的總規(guī)模約41萬Inst,工作主頻達到800MHz。芯片流片后的實物圖如圖2所示。2測試3080型DSP芯片測試板如圖3所示。設置芯片DDR速率為2400MT/s,分別選擇傳輸數(shù)據(jù)長度為1MB~1GB,測量MG-DMA的性能如圖4所示,可以看到,DMA性能隨點數(shù)的變化不大,在同一DDR內部從一段地址搬運數(shù)據(jù)到另一段地址的性能平均在5.76GB/s,從一個DDR搬運到另一個DDR的性能平均在11GB/s。改變DDR的速率從1600MT/s到3200MT/s,設定數(shù)據(jù)長度為1MB,測量MG-DMA的性能如圖5所示,可以看到,隨著DDR速率增加,MG-DMA的性能呈線性增加,DDR速率為3200MT/s時,DDR內DMA傳輸性能為6.7GB/s,DDR間的DMA傳輸性能高達11.7GB/s。3結語本文面向異構多核DSP芯片對數(shù)據(jù)傳輸性能的需求,設計

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論