時間:2015年08月07日 分類:推薦論文 次數:
本站編輯為大家呈現精彩通信期刊:《通信技術》1967年創刊,辦刊時間已逾40多年,是國內創辦時間長、影響大的計算機專業媒體。由中華人民共和國工業和信息化部主管、中國電子科技集團公司第三十研究所主辦。主要報道信源處理、傳輸、業務與系統、網絡、移動通信、信息安全等方面的先進技術、理論研究成果和最新動態。
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解決方案。