摘要:為充分發(fā)揮異構(gòu)多核DSP芯片的實時計算能力,設(shè)計并實現(xiàn)了一種高性能多通道的通用DMA,該DMA最大支持64個通道的數(shù)據(jù)搬運,并支持一維、二維、轉(zhuǎn)置以及級聯(lián)描述符等多種傳輸模式。芯片實測傳輸性能最高可達11.7 GB/s,實現(xiàn)了高效率、高性能的數(shù)據(jù)供給。
關(guān)鍵詞:多通道;DMA;設(shè)計;測試
中圖分類號:TN47" 文獻標志碼:A" 文章編號:1671-0797(2023)07-0046-03
DOI:10.19514/j.cnki.cn32-1628/tm.2023.07.011
0" " 引言
DSP芯片因其強大的實時計算能力,在軍事、通信、工控等領(lǐng)域嵌入式系統(tǒng)中應(yīng)用廣泛[1]。應(yīng)用需求的不斷提高以及信息技術(shù)的不斷進步,推動了高性能DSP芯片向異構(gòu)多核、高并行、高集成的方向發(fā)展,在DSP芯片具有高算力的同時,其對高效率、高性能的數(shù)據(jù)供給同樣提出了更高的要求。DMA(Direct Memory Access)技術(shù)能夠提供內(nèi)存和內(nèi)存、內(nèi)存和外設(shè)之間的直接數(shù)據(jù)傳輸通道,不僅能夠提高數(shù)據(jù)傳輸速率,還能使得DSP核從復(fù)雜的數(shù)據(jù)傳輸任務(wù)中脫離出來,從而有效提升芯片性能,已成為行業(yè)的研究熱點[2-5]。
本文面向異構(gòu)多核DSP芯片的需求,設(shè)計實現(xiàn)了一種高性能多通道通用DMA(Multi-channel General-
purpose DMA,MG-DMA),支持一維、二維、轉(zhuǎn)置以及級聯(lián)描述符等多種傳輸模式,最大64通道,大幅提升了數(shù)據(jù)傳輸速率,有效匹配了DSP芯片的計算能力。
1" " 設(shè)計與實現(xiàn)
1.1" " 總體設(shè)計
MG-DMA的結(jié)構(gòu)框圖如圖1所示,包括配置和狀態(tài)寄存器模塊(CSR)、通道選擇模塊(CHS)、矩陣轉(zhuǎn)置參數(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個物理通道,映射關(guān)系由對應(yīng)物理通道編號寄存器的值決定。當配置好寄存器組后,CSR模塊將對應(yīng)產(chǎn)生通道請求信號送給通道選擇模塊,啟動一次DMA傳輸,當DMA傳輸完成或發(fā)生傳輸錯誤時,觸發(fā)相應(yīng)中斷。
(2)通道選擇模塊(CHS):CHS模塊根據(jù)接收到的通道請求信號產(chǎn)生通道選擇信號,并計算本次傳輸?shù)呐渲脜?shù),將參數(shù)和傳輸啟動信號傳輸給對應(yīng)的DMAE模塊,同時將通道選擇信號送給WRBC模塊,啟動一次傳輸。
(3)DMA執(zhí)行模塊(DMAE):DMAE內(nèi)部讀寫各自獨立,當一次傳輸啟動后,DMAE模塊先啟動一次burst讀,將讀出的數(shù)據(jù)緩存在DMAB中,一次burst最大支持128個256 bits的數(shù)據(jù),讀完后再將緩存中的數(shù)據(jù)寫出到相應(yīng)地址。當所有數(shù)據(jù)寫完或者發(fā)生錯誤時,產(chǎn)生相應(yīng)的中斷信號。4個物理通道各對應(yīng)一個DMAE模塊,4個通道可以同時進行數(shù)據(jù)傳輸,但同時只有一個模塊可以進行矩陣轉(zhuǎn)置操作,4個物理通道輪流進行矩陣轉(zhuǎn)置。
(4)DMA緩存模塊(DMAB):DMAB模塊存儲空間共32 kByte,每個通道使用4 kByte的RAM,其余16 kByte作為矩陣轉(zhuǎn)置使用。讀數(shù)據(jù)時,DMAE模塊將讀到的數(shù)據(jù)進行256 bits拼接對齊后存入DMAB模塊;寫數(shù)據(jù)時,由于RAM不是寄存器輸出,DMAB模塊會將RAM的輸出數(shù)據(jù)進行寄存器鎖存后送給DMAE模塊,DMAE模塊按照地址進行對齊移位后再寫出。
矩陣轉(zhuǎn)置時,為實現(xiàn)對存放在內(nèi)存中的矩陣進行從源矩陣到目標矩陣的行列轉(zhuǎn)置功能,DMA每次轉(zhuǎn)置一個32×32的小矩陣,自動累加矩陣的源地址和目的地址,最終實現(xiàn)一個大矩陣的轉(zhuǎn)置。DMAB中使用了4個4 kByte的RAM,每兩個作為一組,組成兩個8 kByte的乒乓RAM,每組支持32行×32列×8 kByte的矩陣,實現(xiàn)了乒乓操作。
(5)矩陣轉(zhuǎn)置參數(shù)模塊(MTP):MTP模塊主要用于矩陣轉(zhuǎn)置時的參數(shù)計算,每個小矩陣的大小為32行×32列,不足的按實際大小讀寫。當小矩陣讀或?qū)懲戤吅?,計算下一個小矩陣的地址和對應(yīng)在RAM中的地址。
(6)讀寫總線控制模塊(WRBC):WRBC主要包括讀通道編號和寫通道編號兩個動態(tài)的寄存器,讀通道編號表示當前使用AXI讀操作的通道編號,寫通道編號表示當前使用AXI寫操作的通道編號,在當前物理通道傳輸完成后,會判斷下一個通道是否需要操作,如果需要,則將AXI總線使用權(quán)交給下一個通道。
1.2" " 工作流程
MG-DMA典型工作流程如下:
(1)通過APB接口配置通道寄存器;當有通道請求時,CSR模塊將請求送給CHS模塊。
(2)判斷是否是矩陣轉(zhuǎn)置請求,如果是,判斷矩陣工作編號是否等于通道編號,如果不是,通道允許傳輸;如果矩陣工作編號等于通道編號,通道允許矩陣傳輸,將傳輸啟動信號和傳輸參數(shù)送給DMAE模塊。如果不相等,等待其他通道矩陣傳輸完成。
(3)DMAE模塊收到傳輸啟動信號后,根據(jù)收到的傳輸參數(shù)開始讀取數(shù)據(jù);DMAE模塊每次發(fā)送一個burst讀操作,讀取不超過16個256 bits的數(shù)據(jù),可以連續(xù)發(fā)送多個讀命令。
(4)當DMAE模塊發(fā)送的讀命令達到上限時,通知WRBC模塊,WRBC模塊判斷下一個通道是否要讀取數(shù)據(jù),如果是,更新到下一個通道編號的值,如果不是,按照4個通道順序輪詢。
(5)當DMAE模塊在緩存數(shù)據(jù)大于16個256 bits時,開始burst寫操作;如果當次讀的數(shù)據(jù)被寫完,通知WRBC模塊;WRBC模塊判斷下一個通道是否要寫數(shù)據(jù),如果是,更新到下一個通道編號的值,如果不是,按照4個通道順序輪詢。
(6)當收到通道傳輸停止或總線響應(yīng)錯誤時,DMAE模塊在發(fā)完本次burst讀命令后停止讀取新數(shù)據(jù),在寫完所有的數(shù)據(jù)后,提起總線錯誤或傳輸錯誤中斷。
(7)如果不需要讀取描述符,當所有數(shù)據(jù)寫完時通道傳輸完成;如果需要讀取描述符,讀取下一個描述符后進行下一次DMA操作。
1.3" " 物理實現(xiàn)
本文所述MG-DMA模塊應(yīng)用于3080型DSP芯片,該芯片包括4個處理核和4個專用加速核,支持PCIe、SRIO等高速接口以及2路DDR4大帶寬存儲,其片內(nèi)DMA的性能對DSP芯片計算能力的發(fā)揮有著重要作用。物理實現(xiàn)后,MG-DMA模塊的總規(guī)模約41萬Inst,工作主頻達到800 MHz。芯片流片后的實物圖如圖2所示。
2" " 測試
3080型DSP芯片測試板如圖3所示。設(shè)置芯片DDR速率為2 400 MT/s,分別選擇傳輸數(shù)據(jù)長度為1 MB~1 GB,測量MG-DMA的性能如圖4所示,可以看到,DMA性能隨點數(shù)的變化不大,在同一DDR內(nèi)部從一段地址搬運數(shù)據(jù)到另一段地址的性能平均在5.76 GB/s,從一個DDR搬運到另一個DDR的性能平均在11 GB/s。
改變DDR的速率從1 600 MT/s到3 200 MT/s,設(shè)定數(shù)據(jù)長度為1 MB,測量MG-DMA的性能如圖5所示,可以看到,隨著DDR速率增加,MG-DMA的性能呈線性增加,DDR速率為3 200 MT/s時,DDR內(nèi)DMA傳輸性能為6.7 GB/s,DDR間的DMA傳輸性能高達11.7 GB/s。
3" " 結(jié)語
本文面向異構(gòu)多核DSP芯片對數(shù)據(jù)傳輸性能的需求,設(shè)計并實現(xiàn)了一種高性能多通道的通用DMA,實現(xiàn)了64個邏輯通道、4個物理通道的數(shù)據(jù)搬運,能夠支持一維、二維、轉(zhuǎn)置以及級聯(lián)描述符等多種傳輸模式。芯片實測結(jié)果顯示,單個DDR內(nèi)DMA傳輸性能為6.7 GB/s,DDR間的DMA傳輸性能高達11.7 GB/s,大幅提升了數(shù)據(jù)傳輸速率,有效匹配了DSP芯片的計算能力。
[參考文獻]
[1] 曾思.YHFT-Matrix處理器中EMIF與DDR2接口的設(shè)計與實現(xiàn)[D].長沙:國防科技大學(xué),2012.
[2] 鄭挺,李勇.高性能DSP軟核中DMA控制器的設(shè)計與驗證[J].計算機工程與設(shè)計,2014,35(1):112-118.
[3] 邢輝.面向音頻應(yīng)用的多通道DMA控制器設(shè)計[D].上海:上海交通大學(xué),2010.
[4] 張慶國,王健培,馬小勤.基于ADSP-TS201S的二維DMA數(shù)據(jù)傳輸[J].現(xiàn)代電子技術(shù),2012,35(2):17-20.
[5] 呂廣秋,李偉,陳韜,等.一種面向密碼SoC的高性能全雙工DMA設(shè)計[J].計算機工程,2020,46(5):167-173.
收稿日期:2022-12-08
作者簡介:李世平(1987—),男,安徽安慶人,高級工程師,研究方向:數(shù)字集成電路設(shè)計。
通信作者:張洪昱(1994—),男,江蘇南京人,工程師,研究方向:數(shù)字集成電路設(shè)計。