電子設(shè)備應(yīng)用越來越多地涉及信號處理。家庭影院、計算機(jī)圖形學(xué)、醫(yī)學(xué)成像和電信都依賴于信號處理技術(shù)。信號處理需要在復(fù)雜但重復(fù)的算法中進(jìn)行快速數(shù)學(xué)運(yùn)算。許多應(yīng)用需要實(shí)時計算:即,信號是時間的連續(xù)函數(shù),必須對其進(jìn)行采樣并將其轉(zhuǎn)換為數(shù)字,以進(jìn)行數(shù)值處理。因此,處理器必須執(zhí)行算法,在樣本到達(dá)時對樣本執(zhí)行離散計算。
數(shù)字信號處理器(DSP)的架構(gòu)經(jīng)過優(yōu)化,可處理此類算法。一個好的信號處理引擎的特點(diǎn)包括:快速、靈活的算術(shù)計算單元(例如,乘法器、累加器、桶形移位器);進(jìn)出計算單元的不受約束的數(shù)據(jù)流;擴(kuò)展計算單元的精度和動態(tài)范圍(以避免溢出并最大限度地減少舍入誤差);雙地址發(fā)生器(用于同時處理二元運(yùn)算的兩個輸入);高效的程序排序(包括有效處理循環(huán)和中斷的能力);和易于編程。
DSP與精簡指令集計算機(jī)(RISC)具有其中一些共同特征。此外,兩者都是圍繞某些核心指令構(gòu)建的,使它們能夠以非常高的指令速率運(yùn)行;兩者都避開了內(nèi)部微碼。然而,它們是根本不同的“動物”。RISC和DSP之間的差異在處理器的
計算單位
數(shù)據(jù)地址生成器
內(nèi)存架構(gòu)
中斷功能
循環(huán)硬件
條件指令
界面特點(diǎn)
DSP 屬于兩個基本類:定點(diǎn),一種基于 16 位整數(shù)數(shù)據(jù)類型的(通常)16 位架構(gòu),以及浮點(diǎn),通常具有 32 位架構(gòu),基于同時具有尾數(shù)和指數(shù)的數(shù)據(jù)類型。
圖1.SHARC 內(nèi)部架構(gòu)。
計算單元:DSP都包含并行硬件乘法器以支持單周期乘法,其乘法器通常在單個周期中組合乘法和累加。DSP 具有專用累加器,其寄存器明顯寬于標(biāo)稱字大小,以保持精度,例如 32 位 ADSP-2106x SHARC 系列中的 80 位(圖 1)。硬件可能支持從累加器溢出中恢復(fù),如ADSP-21xx系列。此外,DSP都包含功能齊全的算術(shù)邏輯單元(ALU),與乘法器無關(guān)。
ALU 可能具有特殊功能,例如能夠同時生成求和和差分以加速快速傅里葉變換 (FFT) 中的內(nèi)核例程,F(xiàn)FT 是一種用于在時域和頻域之間轉(zhuǎn)換信號的算法。高級DSP將在計算單元中包含飽和邏輯,以防止數(shù)據(jù)溢出。它還可以提供零開銷(即,不需要額外的時鐘周期)陷阱來中斷算術(shù)異常的例程。
復(fù)雜的DSP還可能包含單周期桶移器(即能夠在一個時鐘周期內(nèi)將一個單詞向左或向右移動任意數(shù)量的位),以及用于數(shù)據(jù)縮放,數(shù)據(jù)壓縮/擴(kuò)展或打包/解包和位操作的優(yōu)先級編碼器。它還可能包括專用硬件,以最大限度地減少快速除法、平方根和超越函數(shù)計算所需的時間。具有這些特殊功能的計算元件在RISC處理器上找不到。
地址生成: 高效的DSP將使其計算單元至少提供來自兩個獨(dú)立數(shù)據(jù)地址生成器的數(shù)據(jù)。分接延遲塊和系數(shù)緩沖器是DSP的特征,但在通用計算中大多是未知的。高效的DSP需要循環(huán)緩沖器硬件來支持緩沖器。循環(huán)緩沖區(qū)指針需要每個周期更新,而不會產(chǎn)生開銷。此外,緩沖區(qū)結(jié)束的比較測試需要一個無延遲命令來重置緩沖區(qū)結(jié)束處的指針。另一方面,RISC處理器需要為每個比較測試提供一個額外的周期。
內(nèi)存架構(gòu): DSP 通常支持與通用計算系統(tǒng)不同的系統(tǒng)存儲器架構(gòu)。DSP采用哈佛架構(gòu),允許從兩個不同的外部存儲器持續(xù)單周期訪問兩個單詞的數(shù)據(jù)。例如,ADI公司的SHARC DSP具有集成在片內(nèi)的2或4 Mb雙端口SRAM。該內(nèi)存是直接尋址的,而不是像RISC處理器那樣的緩存。對于CPU來說,這種片上存儲器看起來像一個獨(dú)特的存儲器,而不僅僅是系統(tǒng)中其他位置的存儲器的高速復(fù)制品。原因是DSP通常是嵌入式處理器。它們的片上存儲器通常足以容納任務(wù)所需的完整、重復(fù)的DSP程序。每個內(nèi)存塊都是雙端口,用于內(nèi)核處理器和 I/O 處理器或 DMA 控制器進(jìn)行單周期獨(dú)立訪問(圖 2)。雙端口存儲器和獨(dú)立的片上總線允許在一個周期內(nèi)從內(nèi)核傳輸兩個數(shù)據(jù),從I/O傳輸一個數(shù)據(jù)。
中斷功能: 由于DSP旨在在實(shí)時系統(tǒng)中運(yùn)行,因此高效、復(fù)雜且可預(yù)測的中斷處理對于DSP至關(guān)重要。RISC處理器具有高度流水線的架構(gòu),往往具有緩慢的中斷響應(yīng)時間和有限的中斷能力。上下文切換應(yīng)該非常快。高級DSP,如新型ADSP-21csp01和ADI公司的ADSP-2106x浮點(diǎn)系列,支持完整的替代寄存器集,允許單周期上下文切換以支持中斷處理。(寄存器文件窗口不同,因為它的目的是加速參數(shù)傳遞,而不是保存整個上下文。
除內(nèi)部中斷外,高級DSP還將支持至少四個獨(dú)立的外部中斷。中斷延遲將保持在幾個周期內(nèi),并且必須是可預(yù)測的。中斷應(yīng)該是可嵌套的和可優(yōu)先的。此外,應(yīng)該很容易實(shí)時啟用和禁用特定中斷。
硬件循環(huán):高效環(huán)路對于數(shù)字信號處理至關(guān)重要,因為信號處理算法是重復(fù)的。一個好的DSP將支持具有專用內(nèi)部硬件的零開銷環(huán)路。也就是說,芯片將監(jiān)控環(huán)路條件和終止,以與所有其他操作并行決定是否將程序計數(shù)器或分支遞增到環(huán)路頂部,而不會造成周期時間損失。另一方面,RISC處理器必須在每個循環(huán)結(jié)束時進(jìn)行測試和分支,每個循環(huán)和每次通過至少要花費(fèi)一個額外的周期。嵌套循環(huán)在信號處理算法中也很常見;DSP 環(huán)路硬件應(yīng)支持至少四級嵌套環(huán)路的深度。RISC處理器尚未發(fā)展到支持這些基本的信號處理需求。
條件執(zhí)行:數(shù)據(jù)相關(guān)執(zhí)行對于信號處理非常重要。因此,ADSP-2100系列和ADSP-2106x SHARC浮點(diǎn)系列等高級DSP支持有條件地執(zhí)行其大部分基本指令:在單個指令中,處理器測試條件代碼,如果為真,則在同一周期內(nèi)執(zhí)行操作。這可以對計算密集型算法產(chǎn)生巨大的影響。英特爾在 i860 中發(fā)現(xiàn)了這個問題,并添加了一個圖形單元來處理高性能 Z 緩沖所需的條件存儲操作。
接口: DSP基于來自模數(shù)轉(zhuǎn)換器的實(shí)際信號工作,并將結(jié)果發(fā)送到D/A轉(zhuǎn)換器。因此,DSP通常包含串行端口,用于與這些設(shè)備進(jìn)行廉價接口。高級DSP增加了硬件以提高操作效率,例如雙緩沖和自動緩沖。由于這些輸入/輸出信號可能來自非線性編解碼器,因此高級DSP可能具有用于零開銷A律和μ律擴(kuò)容的專用硬件。此外,串行端口可能具有簡化與T1和CEPT數(shù)據(jù)傳輸線接口的功能。
圖2.高效的 SHARC 內(nèi)存架構(gòu)允許 I/O 帶寬跟上計算速度。
SHARC串行端口旨在通過靈活的硬件最大限度地提高吞吐量,但針對各種信號類型進(jìn)行了調(diào)整。它們的特點(diǎn)包括:每個串行端口可以自動接收和/或發(fā)送整個數(shù)據(jù)塊,獨(dú)立發(fā)送和接收每個數(shù)據(jù)緩沖寄存器以及移位寄存器,TDM多通道模式。
編程注意事項: 曾經(jīng),DSP和RISC之間的顯著區(qū)別在于它們的編程模型。DSP本質(zhì)上是性能驅(qū)動的,因此DSP的編程主要使用匯編語言完成,以便從處理器獲得最佳性能。對于定點(diǎn)DSP,通常仍然如此,但使用ADSP-2100系列的直觀代數(shù)匯編語言則更容易(圖3)。在不犧牲性能的情況下,它改善了易用性問題,這個問題促使許多程序員偏愛像C這樣的高級語言。
圖3.FFT 代碼示例。
另一方面,浮點(diǎn)DSP用高級語言編程效率更高。浮點(diǎn)計算避免了分?jǐn)?shù)數(shù)據(jù)類型,C 中不存在分?jǐn)?shù)數(shù)據(jù)類型。此外,體系結(jié)構(gòu)決策可能會影響編譯器效率。例如,ADSP-2106x SHARC系列的大而統(tǒng)一的地址空間使編譯器更容易分配存儲器。此外,其大而靈活的寄存器文件提高了效率。
我們產(chǎn)品戰(zhàn)略的核心是提供工具和DSP內(nèi)核,以便能夠使用高級語言對定點(diǎn)和浮點(diǎn)DSP進(jìn)行高效編程。這就是ADSP-21csp背后的驅(qū)動力,ADSP-21csp是一個新的并發(fā)信號處理器系列。然而,盡管使用高級語言,DSP程序員必須能夠在語言級別下降(以最小的痛苦)來提高時間關(guān)鍵例程的性能。
DSP設(shè)計越來越多地按照這樣的順序進(jìn)行編程:首先,用高級語言編寫和調(diào)試軟件原型。此原型通常會產(chǎn)生足夠的性能。然而,更一般地說,需要提高性能,因此在模擬中對高級代碼進(jìn)行直方圖處理,以找到需要最多執(zhí)行時間的部分。然后用匯編語言手工編碼關(guān)鍵部分。直方圖和手動編碼過程將迭代,直到達(dá)到性能目標(biāo)。
雖然DSP和RISC之間的差異很多,但這兩種架構(gòu)往往在編程領(lǐng)域趨同,這種融合是由上市時間和DSP在應(yīng)用中不斷變化的作用驅(qū)動的。程序員擅長快速開發(fā)工作C程序,使用它們更快地將產(chǎn)品推向市場。同時,DSP承擔(dān)更多的系統(tǒng)管理功能,如用戶界面或系統(tǒng)控制,并且需要提供高水平的語言效率,以與以前分配這些控制任務(wù)的μC和RISC處理器競爭。
審核編輯:郭婷
-
dsp
+關(guān)注
關(guān)注
552文章
7959瀏覽量
347929 -
嵌入式
+關(guān)注
關(guān)注
5059文章
18973瀏覽量
302052 -
計算機(jī)
+關(guān)注
關(guān)注
19文章
7360瀏覽量
87633
發(fā)布評論請先 登錄
相關(guān)推薦
評論