■ 劉 超 劉召慶 雒 俊 趙 博 張丹惠
軍方園地
硬件加速對處理器性能提高的探索
■ 劉 超 劉召慶 雒 俊 趙 博 張丹惠
FIR(有限沖激響應)、IIR(無限沖激響應)和FFT(快速傅里葉變換)三種信號處理技術被廣泛應用于硬件加速器的實現上。硬件加速器能減輕CPU的負擔,潛在的提升處理器的計算吞吐率,一般認為其效能至少不低于CPU效能的2倍。本文以某型DSP處理器處理模擬量輸入系統為例,說明硬件加速器在這方面的應用。
簡單地說,硬件加速器技術的出現源于CPU處理能力的不足,或是已達到其處理能力的上限,需要通過某種預先處理技術進行先期任務的分擔,或優化任務結構,使之整體任務的處理能力得到提高,而CPU還是原來的CPU。目前廣泛應用的技術有:
● FIR濾波器:有限沖激響應序列變換處理;
● IIR濾波器:無限沖激響應序列變換處理;
● FFT操作:快速傅里葉變換,倒位序交換蝶式計算;
這些方法的應用背景均基于數字信號處理技術。
1.1 硬件加速器的應用背景
FIR濾波器、IIR濾波器和FFT操作在數字信號處理中的應用十分普遍,且具有規則的結構,因此可以用硬件直接實現,特別是用硬件加速器。硬件加速器是專用的定點功能外設,適用于單個任務的重復計算。它減輕了主處理器的負擔,而主處理器主要做一些在結構上幾乎沒有什么規律的通用任務。
由于系統既擁有通用處理器的普遍適用性,同時又具有專用硬件計算的高效性,因此為提高處理器總的計算能力,硬件加速器的使用成為了一種性價比較高的方法。
1.2 硬件加速器的飛控模擬量概念
硬件加速器在滿足日益復雜系統需求的眾多應用領域方面具有重要價值。其應用之一是其通道數不斷上升的模擬量數字化輸入處理系統。當飛行器控制系統的模擬量數字化輸入處理特征狀態數從5.1通道發展到6.1通道、7.1通道,以至于更復雜飛行器控制系統一般使用的12個或者更多的模擬量數字化輸入處理,飛機自動控制則處于更加平穩和安全的狀態。
此外,模擬量數字化輸入現在采用時序串編碼格式,其相關的編碼器擴展了系統資源。時序串編碼算法還以更高的采樣率處理數據。以往數據的峰值采樣率很少超過48kHz,隨著時序串編碼算法的采用,現在采樣率通常為96kHz,甚至達到了192kHz。
為了更好的理解計算需求是如何增加的,考慮一般飛機的自動控制系統,它集成了復雜的飛行均衡算法,用以補償振動響應和位置長度差異時延所引起的偏差。算法首先利用麥克斯威爾噪聲分析飛行環境,并測量實時傳遞函數。對飛機多個不同位置進行測量再進行組合分析,然后為每個模擬量輸入設計一個補償濾波器。
更精確的飛行模擬量均衡算法則使用FIR濾波器來校正整個頻率范圍的響應函數,濾波器長度與采樣率直接成比例。低頻控制越精確,需要的濾波器長度越長。采樣率為48kHz時,通常濾波器的長度為256點,為了達到同樣的頻率分辨率,在96kHz時則需要濾波器的長度為512點。采樣率和濾波器長度均加倍則導致所需的總計算量增加了4倍。
2.1硬件加速器結構
ADI公司近期推出的SHARC ADSP-2146x處理器是典型的DSP加速處理器,通過該型芯片的實現可掌握硬件加速的基本原理和思路,其加速器的基本結構邏輯清晰,處理器具有更高的時鐘速率(450MHz),片上存儲器(5Mb)也得到了擴展。
此外,該處理器還具有一系列硬件加速器,可用于實現通用信號處理運算:FIR濾波器、IIR濾波器和FFT。而這些運算通常是通信系統、醫療設備、消費產品、工業測量和控制應用中的基本運算。這些加速器是SHARC ADSP-2136x系列處理器片內采樣率轉換器的有益補充,而采樣率轉換器也可以看作硬件加速器。

圖1 FIR加速器的結構
SHARC ADSP-2146x處理器的三個加速器設計相同,圖1所示的FIR加速器能很好的說明硬件加速器的結構。
FIR加速器有以下功能模塊:
● 系列控制寄存器——配置加速器的操作。
● DMA控制器——在主存儲器與加速器的本地存儲器之間傳輸數據,也可用于配置控制寄存器。
● 兩個本地存儲器塊——保存系數和狀態變量(或者延遲存儲器),并降低主存儲器的帶寬。
● 計算單元——包括適合加速器的算術操作,FIR的計算單元有4個并行的MAC。
2.2 硬件加速器操作的基本步驟
一般使用鏈式DMA,加速器的操作可以自動完成,FIR加速器的操作步驟具有典型性,IIR濾波器和FFT操作均可以此為例。
其典型操作分為以下幾步。
(1)將本通道的系數數據由內部存儲器載入本地加速器系數存儲區。
(2)將本通道的狀態變量從內部存儲器載入本地加速器系數存儲區,包括第一個輸入樣本。
(3)利用四個MAC單元計算輸出樣本。
(4)保存結果。
(5)如果還有需要處理的樣本,則讀取下一個輸入樣本,并寫入狀態變量存儲器。
(6)重復步驟(3)~(5),直到通道中的所有輸出樣本計算完成。
(7)重復步驟(1)~(6),計算所有輸入通道。
應用軟件的設計應當盡可能考慮從硬件加速器獲取更多的好處,應牢記加速器必須配置成與主CPU并行操作的規律,如果主CPU處于空閑狀態等待加速器完成操作,這將不會產生更高的效率。
加速器是實時環境中運行的大信號鏈的典型部分,加速器接口需要雙緩存的輸入和輸出數據,系統設計人員應該牢記加速器會帶來一部分延時。
設想一個帶有7.1通道的飛控模擬量數字化輸入系統,采樣率為96kHz,數據塊的大小為32個采樣點,假定飛機內均衡應用8個FIR濾波器,每個濾波器的長度為512點,如果采用多核CPU執行濾波操作,則至少需要:
96kHz/s×8×512=393MMAC(個操作.每秒)
或者為工作在450MHz的SHARC處理器運算量的44%。該FIR處理占據了整個計算量很大的一部分,但如果使用了硬件加速器,這些運算量都可轉交加速器來處理。FIR濾波器的輸入和輸出均采用雙緩沖,這就可以讓加速器與音頻信號處理鏈的最后環節并行處理。當然,雙緩沖器會引入32個采樣點的處理延遲,96kHz時延遲為333ms,這種情況是可以接受的。
利用上面的計算公式,加速器需要50056個外設時鐘周期才能完成操作,如果外設時鐘是225MHz,則需要223ms,小于333ms的可用塊處理時間。
飛行控制模擬量數字化處理技術的進一步發展對任務處理器DSP/ CPU提出了更高的要求,集成硬件加速器為處理器整體處理性能的提升提供了重要的推動力,將通用的信號處理操作——FIR濾波、IIR濾波和FFT操作——從內核處理器中釋放出來,使內核可以專注于其它任務,這種方法性價比高,可使處理器的計算吞吐量提高兩倍以上。本文主要討論了模擬量的數字化應用,然而處理器和加速器是通用的,也適用于各種信號的處理任務,如離散量的輸出。
(作者單位:劉超、雒俊、張丹惠,陸軍航空兵軍代局駐西安地區軍代室;劉召慶、趙博,西安應用光學研究所)