Global Sources
電子工程專輯
 
電子工程專輯 > 處理器/DSP
 
 
處理器/DSP  

數位信號處理器的選擇策略

上網時間: 2001年09月15日     打印版  Bookmark and Share  字型大小:  

關鍵字:數位信號處理器  DSP  MAC  定點運算  浮點運算 

DSP處理器的應用領域很廣,但實際上沒有一個處理器能完全滿足所有的或絕大多數應用需要,設計工程師在選擇處理器時需要根據性能、成本、整合度、開發的難易程度以及功耗等因素進行綜合考慮。

DSP元件按設計要求可以分為兩類。第一類,應用領域為廉價的、大規模嵌入式應用系統,如手機、磁碟驅動(DSP用作伺服電機控制)以及可攜式數位音頻播放器等。在這些應用中價格和整合度是最重要的考慮因素。對於可攜式電池供電的設備,功耗也是一個關鍵的因素。儘管這些應用常常需要開發執行於DSP的客戶應用軟體和周邊支援硬體,但易於開發的要求仍然是次要的因素,因為大量生產可以分攤開發成本,進而降低單位產品成本。

另外一類是需要用複雜運算法對大量數據進行處理的應用,例如聲納探測和地震探測等,也需要用DSP元件。該類設備的量一般較小、運算法要求苛刻、產品很大而且很複雜。所以設計工程師在選擇處理器時會盡量選擇性能最佳、易於開發並支援多處理器的DSP元件。有時,設計工程師更喜歡選用現成的開發板來開發系統而不是從零開始硬體和軟體設計,同時可以採用現成的功能庫文件開發應用軟體。

在實際設計時應根據具體的應用選擇合適的DSP。不同的DSP有不同的特點,適用於不同的應用,在選擇時可以遵循以下要點。

運算法格式

DSP的運算法有多種。絕大多數的DSP處理器使用定點運算法,數位表示為整數或-1.0到+1.0之間的小數形式。有些處理器採用浮點運算法,數據表示成尾數加指數的形式: 尾數×2指數

浮點運算法是一種較複雜的常規運算法,利用浮點數據可以實現大的數據動態範圍(這個動態範圍可以用最大和最小數的比值來表示)。浮點DSP在應用中,設計工程師不用關心動態範圍和精度一類的問題。浮點DSP比定點DSP更容易編程,但是成本和功耗高。

由於成本和功耗的原因,一般大量的產品選用定點DSP。編程和運算法設計人員藉由分析或模擬來確定所需要的動態範圍和精度。如果要求易於開發,而且動態範圍很寬、精度很高,可以考慮採用浮點DSP。

也可以在採用定點DSP的條件下由軟體實現浮點計算,但是這樣的軟體程式會佔用大量處理器時間,因而很少使用。有效的辦法是‘塊浮點’,利用該方法將具有相同指數,而尾數不同的一組數據作為數據塊進行處理。‘塊浮點’處理通常用軟體來實現。

數據寬度

所有浮點DSP的字寬為32位元,而定點DSP的字寬一般為16位元,也有24位元和20位元的DSP,如摩托羅拉的DSP563XX系列和Zoran公司的ZR3800X系列。由於字寬與DSP的外部尺寸、管腳數量以及需要的記憶體的大小等有很大的關係,所以字寬的長短直接影響到元件的成本。字寬越寬則尺寸越大,管腳越多,記憶體要求也越大,成本相應地增大。在滿足設計要求的條件下,要盡量選用小字寬的DSP以減小成本。

在關於定點和浮點的選擇時,可以權衡字寬和開發複雜度之間的關係。例如,藉由將指令組合連用,一個16位元字寬的DSP元件也可以實現32位元字寬雙精度運算法(當然雙精度運算法比單精度運算法慢得多)。如果單精度能滿足絕大多數的計算要求,而僅少量代碼需要雙精度,這種方法也可行,但如果大多數的計算要求精度很高,則需要選用較大字寬的處理器。

請注意,絕大多數DSP元件的指令字和數據字的寬度一樣,也有一些不一樣,如ADI(類比元件公司)的ADSP-21XX系列的數據字為16位元而指令字為24位元。

DSP的速度

處理器是否符合設計要求,關鍵在於是否滿足速度要求。測試處理器的速度有很多方法,最基本的是測量處理器的指令周期,即處理器執行最快指令所需要的時間。指令周期的倒數除以一百萬,再乘以每個周期執行的指令數,結果即為處理器的最高速率,單位為每秒百萬條指令MIPS。

但是指令執行時間並不能表明處理器的真正性能,不同的處理器在單個指令完成的任務量不一樣,單純地比較指令執行時間並不能公正地區別性能的差異。現在一些新的DSP採用超長指令字(VLIW)架構,在這種架構中,單個周期時間內可以實現多條指令,而每個指令所實現的任務比傳統DSP少,因此相對VLIW和通用DSP元件而言,比較MIPS的大小時會產生誤導作用。

即使在傳統DSP之間比較MIPS大小也具有一定的片面性。例如,某些處理器允許在單個指令中同時對幾位元一起進行移位,而有些DSP的一個指令只能對單個數據位移位;有些DSP可以進行與正在執行的ALU指令無關的數據的平行處理(在執行指令的同時加載作業數),而另外有些DSP只能支援與正在執行的ALU指令有關的數據平行處理;有些新的DSP允許在單個指令內定義兩個MAC。因此僅僅進行MIPS比較並不能準確得出處理器的性能。

解決上述問題的方法之一是採用一個基本的作業(而不是指令)作為標準來比較處理器的性能。常用到的是MAC作業,但是MAC作業時間不能提供比較DSP性能差異的足夠資訊,在絕大多數DSP中,MAC作業僅在單個指令周期內實現,其MAC時間等於指令周期時間,如上所述,某些DSP在單個MAC周期內處理的任務比其它DSP多。MAC時間並不能反映諸如循環作業等的性能,而這種作業在所有的應用中都會用到。

最通用的辦法是定義一套標準例程,比較在不同DSP上的執行速度。這種例程可能是一個運算法的‘核心’功能,如FIR或IIR濾波器等,也可以是整個或部份應用程式(如語音編碼器)。圖1為使用BDTI公司的工具測試的幾款DSP元件性能。

在比較DSP處理器的速度時要注意其所標榜的MOPS(百萬次作業每秒)和MFLOPS(百萬次浮點作業每秒)參數,因為不同的廠商對‘作業’的理解不一樣,指標的意義也不一樣。例如,某些處理器能同時進行浮點乘法作業和浮點加法作業,因而標榜其產品的MFLOPS為MIPS的兩倍。

其次,在比較處理器時鐘速率時,DSP的輸入時鐘可能與其指令速率一樣,也可能是指令速率的兩倍到四倍,不同的處理器可能不一樣。另外,許多DSP具有時鐘倍頻器或鎖相迴路,可以使用外部低頻時鐘產生晶片上所需的高頻時鐘信號。

記憶體管理

DSP的性能受其對記憶體子系統的管理能力的影響。如前所述,MAC和其它一些信號處理功能是DSP元件信號處理的基本能力,快速MAC執行能力要求在每個指令周期從記憶體讀取一個指令字和兩個數據字。有多種方法實現這種讀取,包括多介面記憶體(允許在每個指令周期內對記憶體多次存取)、分離指令和數據記憶體(‘哈佛’結構及其派生類)以及指令緩衝記憶體(允許從緩衝記憶體讀取指令而不是記憶體,從而將記憶體空閑出來用作數據讀取)。圖2和圖3顯示了哈佛記憶體結構與很多微控制器採用的‘馮•諾曼’結構的差別。

另外要注意所支援的記憶體空間的大小。許多定點DSP的主要目標市場是嵌入式應用系統,在這種應用中記憶體一般較小,所以這種DSP元件具有小到中等晶片上記憶體(4K到64K字左右),備有窄的外部數據匯流排。另外,絕大多數定點DSP的地址匯流排小於或等於16位元,因而可外接的記憶體空間受到限制。

一些浮點DSP的晶片上記憶體很小,甚至沒有,但外部數據匯流排寬。例如TI公司的TMS320C30只有6K晶片上記憶體,外部匯流排為24位元,13位元外部地址匯流排。而ADI的ADSP2-21060具有4Mb的晶片上記憶體,可以多種方式劃分為程式記憶體和數據記憶體。

選擇DSP時,需要根據具體應用對儲存空間大小以及對外部匯流排的要求來選擇。

開發的簡便性

對不同的應用來說,對開發簡便性的要求不一樣。對於研究和樣機的開發,一般要求系統工具能便於開發。而如果公司在開發下一代手機產品,成本是最重要的因素,只要能降低最終產品的成本,一般他們願意承受很煩瑣的開發,採用複雜的開發工具(當然如果大大延遲了產品上市的時間則是另一回事)。

因此選擇DSP時需要考慮的因素有軟體開發工具(包括匯編、鏈接、模擬、除錯、編譯、代碼庫以及實時作業系統等部份)、硬體工具(開發板和模擬機)和高級工具(例如基於框圖的代碼產生環境)。利用這些工具的設計過程如圖4所示。

選擇DSP元件時常有如何實現編程的問題。一般設計工程師選擇匯編語言或高級語言(如C或Ada),或兩者相結合的辦法。現在大部份的DSP程式採用匯編語言,由於編譯器產生的匯編代碼一般未經最佳化,需要手動進行程式最佳化,降低程式碼大小和使流程更合理,進一步加快程式的執行速度。這樣的工作對於消費性電子產品很有意義,因為藉由代碼的最佳化能彌補DSP性能的不足。

使用高級語言編譯器的設計工程師會發現,浮點DSP編譯器的執行效果比定點DSP好,這有幾個原因:首先,多數的高級語言本身並不支援小數算法;其次,浮點處理器一般比定點處理器具有更規則的指令,指令限制少,更適合編譯器處理;第三,由於浮點處理器支援更大的記憶體,能提供足夠的空間。編譯器產生的代碼一般比手動產生的代碼更大。

不管是用高級語言還是匯編語言實現編程,都必須注意除錯和硬體模擬工具的使用,因為很大一部份的開發時間會花在這?。幾乎所有的生產商都提供指令集模擬器,在硬體完成之前,採用指令集模擬器對軟體除錯很有幫助。如果所用的是高級語言,對高級語言除錯器功能進行評估很重要,包括能否與類比機和/或硬體模擬器一起執行等性能。

大多數DSP銷售商提供硬體模擬工具,現在許多處理器具有晶片上除錯/模擬功能,藉由採用IEEE1149.1JTAG標準的串列介面存取。該串列介面允許基於掃描的模擬,即程式員藉由該介面加載斷點,然後藉由掃描處理器內部暫存器來查看處理器到達斷點後暫存器的內容並進行修改。

很多的生產商都可以提供現成的DSP開發系統板。在硬體沒有開發完成之前可用開發板實現軟體實時執行除錯,這樣可以提高最終產品的可製造性。對於一些小量系統甚至可以用開發板作為最終產品電路板。

支援多處理器

在某些數據計算量很大的應用中,經常要求使用多個DSP處理器。在這種情況下,多處理器互連和互連性能(關於相互間通訊流量、開銷和時間延遲)成為重要的考慮因素。如ADI的ADSP-2106X系列提供了簡化多處理器系統設計的專用硬體。

電源管理和功耗

DSP元件越來越多地應用在可攜式產品中,在這些應用中功耗是一個重要的考慮因素,因而DSP生產商盡量在產品內部加入電源管理並降低工作電壓以減小系統的功耗。在某些DSP元件中的電源管理功能包括:

a. 降低工作電壓:許多生產商提供低電壓DSP版本(3.3V,2.5V,或1.8V),這種處理器在相同的時鐘下功耗遠遠低於5V供電的同類產品。

b. ‘睡眠’或‘閑置’模式:絕大多數處理器具有關斷處理器部份時鐘的功能,降低功耗。在某些情況下,非屏蔽的中斷信號可以將處理器從‘睡眠’模式下恢復,而在另外一些情況下,只有設定的幾個外部中斷才能喚醒處理器。有些處理器可以提供不同省電功能和時延的多個‘睡眠’模式。

c. 可程式時鐘分頻器:某些DSP允許在軟體控制下改變處理器時鐘,以便在某個特定任務時使用最低時鐘頻率來降低功耗。

d. 周邊控制:一些DSP元件允許程式停止系統未用到的周邊電路的工作。

不管電源管理特性怎麼樣,設計工程師要獲得優秀的省電設計很困難,因為DSP的功耗隨所執行的指令不同各異。多數生產商所提供的功耗指標為典型值或最大值,而TI公司提供的指標是一個例外,該公司的應用實例中詳細地說明了在執行不同指令和不同配置下的功耗。

成本因素

在滿足設計要求條件下要盡量使用低成本DSP,即使這種DSP編程難度很大而且靈活性差。在處理器系列中,越便宜的處理器功能越少,晶片上記憶體也越小,性能也比價格高的處理器差。

封裝不同的DSP元件價格也存在差別。例如,PQFP和TQFP封裝比PGA封裝便宜得多。

在考慮到成本時要切記兩點。首先,處理器的價格在持續下跌;第二點,價格還依賴於量產,如10,000片的單價可能會比1,000片的單價便宜很多。

本文小結

DSP處理器存在兩種發展趨勢:一是DSP應用越來越多,如手機和可攜式音頻播放器等。DSP將整合更多功能,如A/D轉換、LCD控制器等,系統成本和元件數將會大為降低。另一個趨勢是將DSP作為IP出售,如億?科技公司的Camel和TriCore內核。隨著EDA工具的不斷成熟,系統設計工程師將更容易地修改DSP核心,加入用戶專用周邊電路以實現更專業化、更低成本的DSP解決方案。




投票數:   加入我的最愛
我來評論 - 數位信號處理器的選擇策略
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首