算法格式DSP的算法有多種。絕大多數(shù)的DSP處理器使用定點算法,數(shù)字表示為整數(shù)或-1.0到+1.0之間的小數(shù)形式。有些處理器采用浮點算法,數(shù)據(jù)表示成尾數(shù)加指數(shù)的形式:尾數(shù)×2指數(shù)。浮點算法是一種較復雜的常規(guī)算法,利用浮點數(shù)據(jù)可以實現(xiàn)大的數(shù)據(jù)動態(tài)范圍(這個動態(tài)范圍可以用最大和最小數(shù)的比值來表示)。浮點DSP在應用中,設計工程師不用關心動態(tài)范圍和精度一類的問題。浮點DSP比定點DSP更容易編程,但是成本和功耗高。由于成本和功耗的原因,一般批量產(chǎn)品選用定點DSP。編程和算法設計人員通過分析或仿真來確定所需要的動態(tài)范圍和精度。如果要求易于開發(fā),而且動態(tài)范圍很寬、精度很高,可以考慮采用浮點DSP。也可以在采用定點DSP的條件下由軟件實現(xiàn)浮點計算,但是這樣的軟件程序會占用大量處理器時間,因而很少使用。有效的辦法是“塊浮點”,利用該方法將具有相同指數(shù),而尾數(shù)不同的一組數(shù)據(jù)作為數(shù)據(jù)塊進行處理?!皦K浮點”處理通常用軟件來實現(xiàn)。
數(shù)據(jù)寬度所有浮點DSP的字寬為32位,而定點DSP的字寬一般為16位,也有24位和20位的DSP,如摩托羅拉的DSP563XX系列和Zoran公司的ZR3800X系列。由于字寬與DSP的外部尺寸、管腳數(shù)量以及需要的存儲器的大小等有很大的關系,所以字寬的長短直接影響到器件的成本。字寬越寬則尺寸越大,管腳越多,存儲器要求也越大,成本相應地增大。在滿足設計要求的條件下,要盡量選用小字寬的DSP以減小成本。在關于定點和浮點的選擇時,可以權衡字寬和開發(fā)復雜度之間的關系。例如,通過將指令組合連用,一個16位字寬的DSP器件也可以實現(xiàn)32位字寬雙精度算法(當然雙精度算法比單精度算法慢得多)。如果單精度能滿足絕大多數(shù)的計算要求,而僅少量代碼需要雙精度,這種方法也可行,但如果大多數(shù)的計算要求精度很高,則需要選用較大字寬的處理器。請注意,絕大多數(shù)DSP器件的指令字和數(shù)據(jù)字的寬度一樣,也有一些不一樣,如ADI(模擬器件公司)的ADSP-21XX系列的數(shù)據(jù)字為16位而指令字為24位。
處理速度處理器是否符合設計要求,關鍵在于是否滿足速度要求。測試處理器的速度有很多方法,最基本的是測量處理器的指令周期,即處理器執(zhí)行最快指令所需要的時間。指令周期的倒數(shù)除以一百萬,再乘以每個周期執(zhí)行的指令數(shù),結果即為處理器的最高速率,單位為每秒百萬條指令MIPS。但是指令執(zhí)行時間并不能表明處理器的真正性能,不同的處理器在單個指令完成的任務量不一樣,單純地比較指令執(zhí)行時間并不能公正地區(qū)別性能的差異。一些新的DSP采用超長指令字(VLIW)架構,在這種架構中,單個周期時間內可以實現(xiàn)多條指令,而每個指令所實現(xiàn)的任務比傳統(tǒng)DSP少,因此相對VLIW和通用DSP器件而言,比較MIPS的大小時會產(chǎn)生誤導作用。即使在傳統(tǒng)DSP之間比較MIPS大小也具有一定的片面性。例如,某些處理器允許在單個指令中同時對幾位一起進行移位,而有些DSP的一個指令只能對單個數(shù)據(jù)位移位;有些DSP可以進行與正在執(zhí)行的ALU指令無關的數(shù)據(jù)的并行處理(在執(zhí)行指令的同時加載操作數(shù)),而另外有些DSP只能支持與正在執(zhí)行的ALU指令有關的數(shù)據(jù)并行處理;有些新的DSP允許在單個指令內定義兩個MAC。因此僅僅進行MIPS比較并不能準確得出處理器的性能。解決上述問題的方法之一是采用一個基本的操作(而不是指令)作為標準來比較處理器的性能。
常用到的是MAC操作,但是MAC操作時間不能提供比較DSP性能差異的足夠信息,在絕大多數(shù)DSP中,MAC操作僅在單個指令周期內實現(xiàn),其MAC時間等于指令周期時間,如上所述,某些DSP在單個MAC周期內處理的任務比其它DSP多。MAC時間并不能反映諸如循環(huán)操作等的性能,而這種操作在所有的應用中都會用到。最通用的辦法是定義一套標準例程,比較在不同DSP上的執(zhí)行速度。這種例程可能是一個算法的“核心”功能,如FIR或IIR濾波器等,也可以是整個或部分應用程序(如語音編碼器)。圖1為使用BDTI公司的工具測試的幾款DSP器件性能。在比較DSP處理器的速度時要注意其所標榜的MOPS(百萬次操作每秒)和MFLOPS(百萬次浮點操作每秒)參數(shù),因為不同的廠商對“操作”的理解不一樣,指標的意義也不一樣。例如,某些處理器能同時進行浮點乘法操作和浮點加法操作,因而標榜其產(chǎn)品的MFLOPS為MIPS的兩倍。其次,在比較處理器時鐘速率時,DSP的輸入時鐘可能與其指令速率一樣,也可能是指令速率的兩倍到四倍,不同的處理器可能不一樣。另外,許多DSP具有時鐘倍頻器或鎖相環(huán),可以使用外部低頻時鐘產(chǎn)生片上所需的高頻時鐘信號。