作者:Mitesh Moonat and Sanket Nayak
有限脈沖響應 (FIR) 和無限脈沖響應 (IIR) 濾波器是最常用的數字信號處理算法,尤其適用于音頻處理應用。因此,在典型的音頻系統中,處理器內核的很大一部分時間都用于FIR和IIR濾波。數字信號處理器上的片上FIR和IIR硬件加速器(也稱為FIRA和IIRA)可用于卸載FIR和IIR處理任務,從而騰出內核用于其他處理。在本文中,我們將討論如何借助經過測試的實時示例說明的不同使用模型在實踐中使用這些加速器。
介紹
圖1.FIRA和IIRA系統框圖。
圖 1 顯示了 FIRA 和 IIRA 的簡化框圖,以及它們如何與處理器系統的其余部分和資源交互。
FIRA 和 IIRA 模塊主要由一個計算引擎(乘法和累加 (MAC) 單元)以及一個小的本地數據和系數 RAM 組成。
要啟動 FIRA/IIRA 處理,內核使用特定于通道的信息初始化處理器內存中的 DMA 傳輸控制塊 (TCB) 鏈。然后,內核使用該 TCB 鏈的起始地址寫入 FIRA/IIRA 鏈指針寄存器,然后配置 FIRA/IIRA 控制寄存器以啟動加速器處理。完成所有通道的處理后,將向內核發送中斷,以便它可以將處理后的輸出用于進一步的操作。
從理論上講,最好的方法是將所有FIR和/或IIR任務從核心卸載到加速器,并允許核心并行執行其他操作。但在實踐中,這可能并不總是可行的,特別是當內核需要使用加速器的輸出進行進一步處理并且沒有其他獨立任務要并行完成時。在這種情況下,我們需要選擇合適的加速器使用模型以達到最佳效果。
在本文中,我們將討論各種模型,以最佳方式將這些加速器用于不同的應用場景。
實時使用FIRA和IIRA
圖2.典型的實時音頻數據流。
圖 2 顯示了一個典型的實時 PCM 音頻數據流圖。一幀數字化 PCM 音頻數據通過同步串行端口 (SPORT) 接收,并通過直接內存訪問 (DMA) 發送到內存。當接收幀N+1時,幀N由內核和/或加速器處理,先前處理的幀(N-1)的輸出通過SPORT發送到DAC進行數模轉換。
加速器使用模型
如前所述,根據應用的不同,加速器可能需要以不同的方式使用,以卸載最大的FIR和/或IIR處理任務,并為其他操作節省盡可能多的核心周期。概括地說,加速器使用模型可以分為三類:直接替換、拆分任務和數據流水線。
直接更換
核心 FIR 和/或 IIR 處理直接被加速器取代,核心只需等待加速器完成作業。
僅當加速器的處理速度比核心更快時,此模型才有效;也就是說,使用 FIRA 塊。
拆分任務
FIR 和/或 IIR 處理任務在核心和加速器之間分配。
當多個通道可供并行處理時,此模型特別有用。
根據粗略的時序估計,通道總數可以在內核和加速器之間劃分,使兩者幾乎同時完成。
如圖 3 所示,與直接替換模型相比,此使用模型可節省更多的內核周期。
數據流水線
核心和加速器之間的數據流可以流水線化,使兩者可以在不同的數據幀上并行工作。
如圖 3 所示,內核處理 N千幀,然后啟動加速器對此幀的處理。然后,核心繼續并行以進一步處理N-1千加速器在上一次迭代中生成的幀輸出。此序列允許將 FIR 和/或 IIR 處理任務完全卸載到加速器,但代價是額外的輸出延遲。
管道級以及因此的輸出延遲可能會增加,具體取決于整個處理鏈中此類 FIR 和/或 IIR 處理階段的數量。
圖 3 說明了音頻數據幀如何在各種加速器使用模型的三個階段(DMA IN、內核/加速器處理和 DMA OUT)之間流動。它還顯示了通過跨不同加速器使用模型將 FIR/IIR 處理全部或部分卸載到加速器,與僅內核模型相比,自由內核周期如何增加。
圖3.加速器使用模型比較。
FIRA 和 IIRA 在 SHARC 處理器上
以下ADI公司的SHARC處理器系列支持片上FIRA和IIRA(從最舊到最新)。?
ADSP-214xx(例如,ADSP-21489 )
ADSP-SC58x
ADSP-SC57x/ADSP-2157X
ADSP-2156x
跨處理器系列:
計算速度各不相同。
除ADSP-2156x處理器上的自動配置模式(ACM)外,基本編程模型保持不變。
FIRA有四個MAC單元,而IIRA有一個MAC單元。
FIRA/IIRA對ADSP-2156x處理器的改進
ADSP-2156x是SHARC處理器系列的最新成員。它是第一款1 GHz單核SHARC處理器,FIRA和IIRA也能夠以1 GHz運行。 ADSP-2156x處理器上的FIRA和IIRA與其前代產品ADSP-SC58x/ADSP-SC57x處理器相比具有各種改進。
性能改進
計算速度提高了八倍(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,沒有任何額外的輸出延遲。
圖4.用例 1 框圖。
使用模型 | 核心 MIPS | 費拉米普斯 | IIRA MIPS | 核心 MIPS 節省 | 使用模型延遲(毫秒) |
僅核心 | 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 不同,頻域(快速卷積)處理用于內核,而不是時域處理。這就是為什么處理一個通道的核心MIPS少于FIRA MIPS的原因,這導致直接替換使用模型的核心MIPS節省為負數。
圖5.用例 2 框圖。
使用模型 | 核心 MIPS | 費拉米普斯 | 核心 MIPS 節省 | 使用模型延遲(毫秒) |
僅核心 | 493 | 0 | ||
直接更換 | 515 | 511 | –22 | 0 |
拆分任務 | 259 | 257 | 234 | 0 |
數據流水線 | 3 | 511 | 490 | 2.67(1 幀) |
結論
在本文中,我們了解了如何將內核MIPS卸載到ADSP-2156x處理器上的FIRA和IIRA加速器,利用不同的加速器使用模型來實現所需的MIPS和處理配置文件。
審核編輯:郭婷
-
處理器
+關注
關注
68文章
19259瀏覽量
229651 -
濾波器
+關注
關注
161文章
7795瀏覽量
177993 -
FIR
+關注
關注
4文章
146瀏覽量
33154
發布評論請先 登錄
相關推薦
評論