充分運用數位訊號處理器上的晶片上FIR和IIR硬體加速器
作者: ADI 應用工程師Mitesh Moonat 和 Sanket Nayak
摘要
有限脈衝回應(FIR)和無限脈衝回應(IIR)濾波器都是常用的數位訊號處理演算法---尤其適用於音訊處理應用。因此,在典型的音訊系統中,處理器核心的很大一部分時間用於FIR和IIR濾波。數位訊號處理器上的晶片上FIR和IIR硬體加速器也分別稱為FIRA和IIRA,我們可以利用這些硬體加速器來分擔FIR和IIR處理任務,讓核心來執行其他處理任務。在本文中,我們將借助不同的使用模型以及即時測試示例,來進一步探討如何在利用這些加速器。
簡介


圖1顯示了FIRA和IIRA的簡化方框圖,以及它們與其餘處理器系統和資源的對話模式。
- FIRA和IIRA模組均主要包含一個計算引擎(乘累加(MAC)單元)以及一個小的本地資料和係數RAM。
- 為開始進行FIRA/IIRA處理,核心使用通道特定資訊初始化處理器記憶體中的DMA傳輸控制塊(TCB)鏈。然後將該TCB鏈的起始位址寫入FIRA/IIRA鏈指標暫存器,隨後配置FIRA/IIRA控制寄存器以啟動加速器處理。一旦所有通道的配置完成,就會向核心發送中斷,以便核心將處理後的輸出用於後續操作。
- 從理論上講,最好的方法是將所有FIR和/或IIR任務從核心轉移給加速器,並允許核心同時執行其他操作。但在實踐中這並非始終可行,特別是當核心需要使用加速器輸出進一步處理,並且沒有其他獨立的任務需要同時完成時。在這種情況下,我們需要選擇合適的加速器使用模型來達到較佳效果。
在本文中,我們將討論針對不同應用場景充分利用這些加速器的各種模型。
即時使用FIRA和IIRA


圖2顯示了典型即時PCM音訊資料流程圖。一幀數位化PCM音訊資料透過同步序列埠(SPORT)接收,並透過直接記憶體存取(DMA)發送至記憶體。在繼續接收幀N+1時,幀N由核心和/或加速器處理,之前處理的幀(N-1)的輸出透過SPORT發送至DAC進行數模轉換。
加速器使用模型
如前所述,根據應用的不同,可能需要以不同的方式使用加速器,以較大限度分擔FIR和/或IIR處理任務,並盡可能節省核心週期以用於其他操作。從高層次角度來看,加速器使用模型可分為三類:直接替代、拆分任務和資料流水線。
直接替代
- 核心FIR和/或IIR處理直接被加速器替代,核心只需等待加速器完成此任務。
- 此模型僅在加速器的處理速度比核心快時才有效;亦即,使用FIRA模組。
拆分任務
- FIR和/或IIR處理任務在核心和加速器之間分配。
- 當多個通道可並行處理時,此模型特別有用。
- 根據粗略的時序估算,在核心和加速器之間分配通道總數,使二者大致能夠同時完成任務。
- 如圖3所示,與直接替代模型相比,此使用模型可節省更多的核心週期。
資料流水線
- 核心和加速器之間的資料流程可進行流水線處理,使二者能夠在不同資料幀上並行處理。
- 如圖3所示,核心處理第Nth個幀,然後啟動加速器對該幀進行處理。核心隨後繼續進一步並行處理加速器在上一反覆運算中產生的第N-1th幀的輸出。該序列允許將FIR和/或IIR處理任務完全轉移給加速器,但輸出會有一些延遲。
- 流水線級以及輸出延遲都可能會增加,具體取決於完整處理鏈中此類FIR和/或IIR處理級的數量。
圖3說明了音訊資料幀如何在不同加速器使用模型的三個階段之間傳輸---DMA IN、核心/加速器處理和DMA OUT。它還顯示了透過採用不同的加速器使用模型將FIR/IIR全部或部分處理轉移到加速器上,與僅使用核心模型相比,核心空閒週期如何增加。


SHARC處理器上的FIRA和IIRA
以下ADI SHARC®處理器系列支援晶片上FIRA和IIRA(從舊到新)。
這些處理器系列:
- 計算速度不同
- 基本程式設計模型保持不變,ADSP-2156x處理器上的自動配置模式(ACM)除外。
- FIRA有四個MAC單元,而IIRA只有一個MAC單元。
ADSP-2156x處理器上的FIRA/IIRA改進
ADSP-2156x是SHARC處理器系列中的最新的產品。它是第一款單核心1 GHz SHARC處理器,其FIRA和IIRA也可在1 GHz下運行。ADSP-2156x處理器上的FIRA和IIRA與其前代ADSP-SC58x/ADSP-SC57x處理器相比其具有多項改良。
性能改進
- 計算速度提高了8倍(從SCLK-125 MHz至CCLK-1 GHz)。
- 由於核心和加速器借助專用核心結構實現了更緊密的整合,因此減少了核心和加速器之間的資料和MMR存取延遲。
功能改進
添加了ACM支援,以儘量減少進行加速器處理所需的核心干預。此模式主要具有以下新特性:
- 允許加速器暫停以進行動態任務排隊。
- 無通道數限制。
- 支持觸發產生(主元件)和觸發等待(從元件)。
- 為每個通道生成選擇性中斷。
實驗結果
在本節中,我們將討論在ADSP-2156x評估板上,借助不同的加速器使用模型實施兩個即時多通道FIR/IIR用例的結果。
用例1
圖4顯示用例1的方框圖。取樣速率為48 kHz,模組大小為256個採樣點,拆分任務模型中使用的核心與加速器通道比為5:7。
表1顯示測得的核心和FIRA MIPS數量,以及與僅使用核心模型相比獲得的節約核心MIPS結果。表中還顯示了相應使用模型增加的額外輸出延遲。正如我們所看到的,使用加速器配合資料流水線使用模型,可節約高達335核心MIPS,但導致1塊(5.33 ms)的輸出延遲。直接替代和拆分任務使用模型也分別可節約98 MIPS和189 MIPS,而且未導致任何額外的輸出延遲。


使用模型 | 核心 MIPS | FIRA MIPS | IIRA MIPS | 節約核心 Saving | 使用模型延遲(ms) |
僅使用核心 | 337 | 0 | |||
直接替代 | 239 | 162 | 75 | 98 | 0 |
拆分任務 | 148 | 96 | 44 | 189 | 0 |
資料流水線 | 2 | 161 | 75 | 335 | 5.33(1幀) |
用例2
圖5顯示用例2的方框圖。取樣速率為48 kHz,模組大小為128個採樣點,拆分任務模型中使用的核心與加速器通道比為1:1。
與表1一樣,表2也顯示了此用例的結果。正如我們所看到的,使用加速器配合資料流水線使用模型,可節約高達490核心MIPS,但導致1模組(2.67 ms)的輸出延遲。拆分任務使用模型可節約234核心MIPS,而沒有導致任何額外輸出延遲。請注意,與用例1中不同,在用例2中核心使用頻域(快速卷積)處理,而非時域處理。這就是為何處理一個通道所需的核心MIPS比FIRA MIPS少的原因,這可導致直接替代使用模型實現負的核心MIPS節約。


使用模型 | 核心 MIPS | FIRA MIPS | 節約核心 MIPS | 使用模型延遲(ms) |
僅使用核心 | 493 | 0 | ||
直接替代 | 515 | 511 | –22 | 0 |
拆分任務 | 259 | 257 | 234 | 0 |
資料流水線 | 3 | 511 | 490 | 2.67 (1幀) |
結論
在本文中,我們看到如何利用不同的加速器使用模型實現所需的MIPS和處理目標,從而將大量核心MIPS轉移到ADSP-2156x處理器上的FIRA和IIRA加速器。
進一步閱讀
“ADSP-2156x FIR/IIR加速器性能和即時使用情況圖形展示。”ADI
Nayak, Sanket和Mitesh Moonat。 “工程師對話筆記EE-408:使用ADSP-2156x高性能FIR/IIR加速器。” ADI公司,2019年8月。