充分利用數字信號處理器上的片內FIR和IIR硬件加速器
摘要
有限脈沖響應(FIR)和無(wú)限脈沖響應(IIR)濾波器都是常用的數字信號處理算法---尤其適用于音頻處理應用。因此,在典型的音頻系統中,處理器內核的很大一部分時(shí)間用于FIR和IIR濾波。數字信號處理器上的片內FIR和IIR硬件加速器也分別稱(chēng)為FIRA和IIRA,我們可以利用這些硬件加速器來(lái)分擔FIR和IIR處理任務(wù),讓內核去執行其他處理任務(wù)。在本文中,我們將借助不同的使用模型以及實(shí)時(shí)測試示例來(lái)探討如何在實(shí)踐中利用這些加速器。
圖1.FIRA和IIRA系統方框圖
簡(jiǎn)介
圖1顯示了FIRA和IIRA的簡(jiǎn)化方框圖,以及它們與其余處理器系統和資源的交互方式。
● FIRA和IIRA模塊均主要包含一個(gè)計算引擎(乘累加(MAC)單元)以及一個(gè)小的本地數據和系數RAM。
● u 為開(kāi)始進(jìn)行FIRA/IIRA處理,內核使用通道特定信息初始化處理器存儲器中的DMA傳輸控制塊(TCB)鏈。然后將該TCB鏈的起始地址寫(xiě)入FIRA/IIRA鏈指針寄存器,隨后配置FIRA/IIRA控制寄存器以啟動(dòng)加速器處理。一旦所有通道的配置完成,就會(huì )向內核發(fā)送一個(gè)中斷,以便內核將處理后的輸出用于后續操作。
● u 從理論上講,最好的方法是將所有FIR和/或IIR任務(wù)從內核轉移給加速器,并允許內核同時(shí)執行其他操作。但在實(shí)踐中,這并非始終可行,特別是當內核需要使用加速器輸出進(jìn)一步處理,并且沒(méi)有其他獨立的任務(wù)需要同時(shí)完成時(shí)。在這種情況下,我們需要選擇合適的加速器使用模型來(lái)達到最佳效果。.
在本文中,我們將討論針對不同應用場(chǎng)景充分利用這些加速器的各種模型。
圖2.典型實(shí)時(shí)音頻數據流
實(shí)時(shí)使用FIRA和IIRA
圖2顯示了典型實(shí)時(shí)PCM音頻數據流圖。一幀數字化PCM音頻數據通過(guò)同步串行端口(SPORT)接收,并通過(guò)直接存儲器訪(fǎng)問(wèn)(DMA)發(fā)送至存儲器。在繼續接收幀N+1時(shí),幀N由內核和/或加速器處理,之前處理的幀(N-1)的輸出通過(guò)SPORT發(fā)送至DAC進(jìn)行數模轉換。
加速器使用模型
如前所述,根據應用的不同,可能需要以不同的方式使用加速器,以最大限度分擔FIR和/或IIR處理任務(wù),并盡可能節省內核周期以用于其他操作。從高層次角度來(lái)看,加速器使用模型可分為三類(lèi):直接替代、拆分任務(wù)和數據流水線(xiàn)。
直接替代
● 內核FIR和/或IIR處理直接被加速器替代,內核只需等待加速器完成此任務(wù)。
● 此模型僅在加速器的處理速度比內核快時(shí)才有效;即,使用FIRA模塊。
拆分任務(wù)
● FIR和/或IIR處理任務(wù)在內核和加速器之間分配。
● 當多個(gè)通道可并行處理時(shí),此模型特別有用。
● 根據粗略的時(shí)序估算,在內核和加速器之間分配通道總數,使二者大致能夠同時(shí)完成任務(wù)。
● 如圖3所示,與直接替代模型相比,此使用模型可節省更多的內核周期。
評論