《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 解決方案 > 充分利用數(shù)字信號(hào)處理器上的片內(nèi)FIR和IIR硬件加速器

充分利用數(shù)字信號(hào)處理器上的片內(nèi)FIR和IIR硬件加速器

2020-06-22
作者::Mitesh Moonat 和 Sanket Nayak | ADI 應(yīng)用工程師
來(lái)源: ADI

摘要

有限脈沖響應(yīng)(FIR)和無(wú)限脈沖響應(yīng)(IIR)濾波器都是常用的數(shù)字信號(hào)處理算法---尤其適用于音頻處理應(yīng)用,。因此,,在典型的音頻系統(tǒng)中,處理器內(nèi)核的很大一部分時(shí)間用于FIR和IIR濾波。數(shù)字信號(hào)處理器上的片內(nèi)FIR和IIR硬件加速器也分別稱為FIRA和IIRA,,我們可以利用這些硬件加速器來(lái)分擔(dān)FIR和IIR處理任務(wù),,讓內(nèi)核去執(zhí)行其他處理任務(wù),。在本文中,,我們將借助不同的使用模型以及實(shí)時(shí)測(cè)試示例來(lái)探討如何在實(shí)踐中利用這些加速器。

簡(jiǎn)介

圖片1.png


圖1.FIRA和IIRA系統(tǒng)方框圖

圖1顯示了FIRA和IIRA的簡(jiǎn)化方框圖,,以及它們與其余處理器系統(tǒng)和資源的交互方式,。

· FIRA和IIRA模塊均主要包含一個(gè)計(jì)算引擎(乘累加(MAC)單元)以及一個(gè)小的本地?cái)?shù)據(jù)和系數(shù)RAM。

· u 為開(kāi)始進(jìn)行FIRA/IIRA處理,,內(nèi)核使用通道特定信息初始化處理器存儲(chǔ)器中的DMA傳輸控制塊(TCB)鏈,。然后將該TCB鏈的起始地址寫(xiě)入FIRA/IIRA鏈指針寄存器,隨后配置FIRA/IIRA控制寄存器以啟動(dòng)加速器處理,。一旦所有通道的配置完成,,就會(huì)向內(nèi)核發(fā)送一個(gè)中斷,以便內(nèi)核將處理后的輸出用于后續(xù)操作,。

· u 從理論上講,,最好的方法是將所有FIR和/或IIR任務(wù)從內(nèi)核轉(zhuǎn)移給加速器,并允許內(nèi)核同時(shí)執(zhí)行其他操作,。但在實(shí)踐中,,這并非始終可行,特別是當(dāng)內(nèi)核需要使用加速器輸出進(jìn)一步處理,,并且沒(méi)有其他獨(dú)立的任務(wù)需要同時(shí)完成時(shí),。在這種情況下,我們需要選擇合適的加速器使用模型來(lái)達(dá)到最佳效果,。.

在本文中,,我們將討論針對(duì)不同應(yīng)用場(chǎng)景充分利用這些加速器的各種模型。

實(shí)時(shí)使用FIRA和IIRA

圖片2.png


圖2.典型實(shí)時(shí)音頻數(shù)據(jù)流

圖2顯示了典型實(shí)時(shí)PCM音頻數(shù)據(jù)流圖,。一幀數(shù)字化PCM音頻數(shù)據(jù)通過(guò)同步串行端口(SPORT)接收,并通過(guò)直接存儲(chǔ)器訪問(wèn)(DMA)發(fā)送至存儲(chǔ)器,。在繼續(xù)接收幀N+1時(shí),,幀N由內(nèi)核和/或加速器處理,之前處理的幀(N-1)的輸出通過(guò)SPORT發(fā)送至DAC進(jìn)行數(shù)模轉(zhuǎn)換。

加速器使用模型

如前所述,,根據(jù)應(yīng)用的不同,,可能需要以不同的方式使用加速器,以最大限度分擔(dān)FIR和/或IIR處理任務(wù),,并盡可能節(jié)省內(nèi)核周期以用于其他操作,。從高層次角度來(lái)看,加速器使用模型可分為三類:直接替代,、拆分任務(wù)和數(shù)據(jù)流水線,。

直接替代

· 內(nèi)核FIR和/或IIR處理直接被加速器替代,內(nèi)核只需等待加速器完成此任務(wù),。

· 此模型僅在加速器的處理速度比內(nèi)核快時(shí)才有效,;即,使用FIRA模塊,。

拆分任務(wù)

· FIR和/或IIR處理任務(wù)在內(nèi)核和加速器之間分配,。

· 當(dāng)多個(gè)通道可并行處理時(shí),此模型特別有用,。

· 根據(jù)粗略的時(shí)序估算,,在內(nèi)核和加速器之間分配通道總數(shù),使二者大致能夠同時(shí)完成任務(wù),。

· 如圖3所示,,與直接替代模型相比,此使用模型可節(jié)省更多的內(nèi)核周期,。

數(shù)據(jù)流水線

· 內(nèi)核和加速器之間的數(shù)據(jù)流可進(jìn)行流水線處理,,使二者能夠在不同數(shù)據(jù)幀上并行處理。

· u 如圖3所示,,內(nèi)核處理第N個(gè)幀,,然后啟動(dòng)加速器對(duì)該幀進(jìn)行處理。內(nèi)核隨后繼續(xù)進(jìn)一步并行處理加速器在上一迭代中產(chǎn)生的第N-1幀的輸出,。該序列允許將FIR和/或IIR處理任務(wù)完全轉(zhuǎn)移給加速器,,但輸出會(huì)有一些延遲。

· u 流水線級(jí)以及輸出延遲都可能會(huì)增加,,具體取決于完整處理鏈中此類FIR和/或IIR處理級(jí)的數(shù)量,。

圖3說(shuō)明了音頻數(shù)據(jù)幀如何在不同加速器使用模型的三個(gè)階段之間傳輸---DMA IN、內(nèi)核/加速器處理和DMA OUT,。它還顯示了通過(guò)采用不同的加速器使用模型將FIR/IIR全部或部分處理轉(zhuǎn)移到加速器上,,與僅使用內(nèi)核模型相比,內(nèi)核空閑周期如何增加,。

圖片3.png


圖3.加速器使用模型比較

SHARC處理器上的FIRA和IIRA

以下ADI SHARC?處理器系列支持片內(nèi)FIRA和IIRA(從舊到新),。

· ADSP-214xx (例如, ADSP-21489)

· ADSP-SC58x

· ADSP-SC57x/ADSP-2157x

· ADSP-2156x

這些處理器系列:

· 計(jì)算速度不同

· 基本編程模型保持不變,ADSP-2156x處理器上的自動(dòng)配置模式(ACM)除外,。

· FIRA有四個(gè)MAC單元,,而IIRA只有一個(gè)MAC單元。

ADSP-2156x處理器上的FIRA/IIRA改進(jìn)

ADSP-2156x是SHARC處理器系列中的最新的產(chǎn)品,。它是第一款單核1 GHz SHARC處理器,,其FIRA和IIRA也可在1 GHz下運(yùn)行。ADSP-2156x處理器上的FIRA和IIRA與其前代ADSP-SC58x/ADSP-SC57x處理器相比,,具有多項(xiàng)改進(jìn),。

性能改進(jìn)

· 計(jì)算速度提高了8倍(從SCLK-125 MHz至CCLK-1 GHz)。

· 由于內(nèi)核和加速器借助專用內(nèi)核結(jié)構(gòu)實(shí)現(xiàn)了更緊密的集成,,因此減少了內(nèi)核和加速器之間的數(shù)據(jù)和MMR訪問(wèn)延遲,。

功能改進(jìn)

添加了ACM支持,以盡量減少進(jìn)行加速器處理所需的內(nèi)核干預(yù),。此模式主要具有以下新特性:

· 允許加速器暫停以進(jìn)行動(dòng)態(tài)任務(wù)排隊(duì),。

· 無(wú)通道數(shù)限制。

· 支持觸發(fā)生成(主器件)和觸發(fā)等待(從器件),。

· 為每個(gè)通道生成選擇性中斷,。

實(shí)驗(yàn)結(jié)果

在本節(jié)中,我們將討論在ADSP-2156x評(píng)估板上,,借助不同的加速器使用模型實(shí)施兩個(gè)實(shí)時(shí)多通道FIR/IIR用例的結(jié)果

用例1

圖4顯示用例1的方框圖,。采樣率為48 kHz,模塊大小為256個(gè)采樣點(diǎn),,拆分任務(wù)模型中使用的內(nèi)核與加速器通道比為5:7,。

表1顯示測(cè)得的內(nèi)核和FIRA MIPS數(shù)量,以及與僅使用內(nèi)核模型相比獲得的節(jié)約內(nèi)核MIPS結(jié)果,。表中還顯示了相應(yīng)使用模型增加的額外輸出延遲,。正如我們所看到的,使用加速器配合數(shù)據(jù)流水線使用模型,,可節(jié)約高達(dá)335內(nèi)核MIPS,,但導(dǎo)致1塊(5.33 ms)的輸出延遲。直接替代和拆分任務(wù)使用模型也分別可節(jié)約98 MIPS和189 MIPS,,而且未導(dǎo)致任何額外的輸出延遲,。

圖片4.png


圖4.用例1方框圖

QQ圖片20200622183839.png

用例2

圖5顯示用例2的方框圖。采樣率為48 kHz,,模塊大小為128個(gè)采樣點(diǎn),,拆分任務(wù)模型中使用的內(nèi)核與加速器通道比為1:1。

與表1一樣,,表2也顯示了此用例的結(jié)果,。正如我們所看到的,,使用加速器配合數(shù)據(jù)流水線使用模型,可節(jié)約高達(dá)490內(nèi)核MIPS,,但導(dǎo)致1模塊(2.67 ms)的輸出延遲。拆分任務(wù)使用模型可節(jié)約234內(nèi)核MIPS,,而沒(méi)有導(dǎo)致任何額外輸出延遲,。請(qǐng)注意,與用例1中不同,,在用例2中內(nèi)核使用頻域(快速卷積)處理,,而非時(shí)域處理。這就是為何處理一個(gè)通道所需的內(nèi)核MIPS比FIRA MIPS少的原因,,這可導(dǎo)致直接替代使用模型實(shí)現(xiàn)負(fù)的內(nèi)核MIPS節(jié)約,。

圖片5.png


圖5.用例2方框圖

QQ圖片20200622183902.png

結(jié)論

在本文中,我們看到如何利用不同的加速器使用模型實(shí)現(xiàn)所需的MIPS和處理目標(biāo),,從而將大量?jī)?nèi)核MIPS轉(zhuǎn)移到ADSP-2156x處理器上的FIRA和IIRA加速器,。

進(jìn)一步閱讀

“ADSP-2156x FIR/IIR加速器性能和實(shí)時(shí)使用情況圖形演示?!?ADI公司,。

Nayak, Sanket和Mitesh Moonat。 “工程師對(duì)話筆記EE-408:使用ADSP-2156x高性能FIR/IIR加速器,?!盇DI公司,2019年8月,。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:aet@chinaaet.com。