複製鏈接
請複製以下鏈接發送給好友

數字信號處理器

鎖定
數字信號處理器(英文:Digital Signal Processor)是由大規模或超大規模集成電路芯片組成的用來完成數字信號處理任務的處理器。
數字信號處理是將信號以數字方式表示並處理的理論和技術。數字信號處理與模擬信號處理信號處理子集數字信號處理的目的是對真實世界的連續模擬信號進行測量或濾波。因此在進行數字信號處理之前需要將信號從模擬域轉換到數字域,這通常通過模數轉換器實現。而數字信號處理的輸出經常也要變換到模擬域,這是通過數模轉換器實現的。
中文名
數字信號處理器
外文名
digital signal processor
信號處理
並非只侷限於音視頻層面
廣    泛
通信信息系統通信與信息系統
應用學科
通信

數字信號處理器應用簡介

數字信號處理器基本簡介

數字信號處理器是由大規模或超大規模集成電路芯片組成的用來完成某種信號處理任務的處理器。它是為適應高速實時信號處理任務的需要而逐漸發展起來的。隨着集成電路技術和數字信號處理算法的發展,數字信號處理器的實現方法也在不斷變化,處理功能不斷提高和擴大。

數字信號處理器應用

數字信號處理器並非只侷限於音視頻層面,它廣泛的應用於通信信息系統信號信息處理自動控制雷達軍事航空航天醫療家用電器等許多領域。以往是採用通用的微處理器來完成大量數字信號處理運算,速度較慢,難以滿足實際需要;而同時使用位片式微處理器和快速並聯乘法器,曾經是實現數字信號處理的有效途徑,但此方法器件較多,邏輯設計和程序設計複雜,耗電較大,價格昂貴。數字信號處理器的出現,很好的解決了上述問題。DSP可以快速的實現對信號的採集變換濾波估值增強壓縮識別等處理,以得到符合人們需要的信號形式。
對於車載主機而言,數字信號處理器DSP主要是提供特定的音場或效果,例如劇場、爵士樂等等,有些還能接收高清晰度(HD)無線電和衞星無線電等等,以達到最大的視聽享受。數字信號處理器DSP增強車載主機的性能和可用性,提高了音視頻質量、提供了更多的靈活性和更快的設計週期。隨着技術的發展,相信以後還能提供更多的聽覺視覺特效,而使車載主機成為車內的高科技信息和娛樂中心 [1] 

數字信號處理器分類

數字信號處理器按其可編程性可分為可編程和不可編程兩大類。不可編程的信號處理器以信號處理算法的流程為基本邏輯結構,沒有控制程序,一般只能完成一種主要的處理功能,所以又稱專用信號處理器。如快速傅里葉變換處理器、數字濾波器等。這類處理器雖然功能侷限,但有較高的處理速度。可編程信號處理器則可通過編程改變處理器所要完成的功能,有較大的通用性,所以又稱通用信號處理器。隨着通用信號處理器性能價格比的不斷提高,它在信號處的應用日益普及。
已開發的可編程信號處理器大致有:
位由基本位長為2,4,8位的微處理片為主體,配以程序控制片、中斷及DMA控制片、時鐘片等構成。採用微程序控制、分組指令格式,可按需要構成所需字長的系統。其優點是處理速度快、效率高。缺點是功耗較大,片子的數量也較多。
單片信號處理器。它將運算器乘法器存儲器只讀存儲器(ROM)、輸入輸出接口,甚至模-數、數-模轉換等全部集成在單片上。其運算速度快、精度高、功耗低通用性強。與通用的微處理器相比它的指令集合和尋址方式更適合於信號處理常用的運算和數據結構
超大規模集成電路(VLSI)陣列處理器這是一種利用大量處理單元在單指令序列控制下對不同的數據完成相同的操作,從而獲得高速計算的信號處理器。非常適合於大數據量、大計算量、運算重複性強的信號處理任務。它們常與通用計算機聯用,構成強有力的信號處理系統現有的陣列處理器大致上有兩類,即脈動陣列處理器。
和波動陣列處理器。前者採用全陣列統一的同步時鐘和控制驅動機制,具有結構簡單、模塊性好、易於擴展等優點。而後者採用各單元獨立定時,數據驅動機制。給編程和容錯設計帶來一定方便,在處理速度上也提高 [2] 

數字信號處理器發展方向

數字信號處理器從20世紀70年代的專用信號處理器開始發展到VLSI陣列處理器,其應用領域已經從最初的語音、聲納等低頻信號的處理發展到雷達、圖像等視頻大數據量的信號處理。由於浮點運算並行處理技術的利用,信號處理器處理能力已得到極大的提高。數字信號處理器還將繼續沿着提高處理速度和運算精度兩個方向發展在體系結構上數據流結構以至人工神經網絡結構等將可能成為下一代數字信號處理器的基本結構模式。
算法格式
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採用超長指令字(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上的執行速度。這種例程可能是一個算法的“核心”功能,如FIRIIR濾波器等,也可以是整個或部分應用程序,如語音編碼器等。
在比較DSP處理器的速度時要注意其所標榜的MOPS(百萬次操作每秒)和MFLOPS(百萬次浮點操作每秒)參數,因為不同的廠商對“操作”的理解不一樣,指標的意義也不一樣。例如,某些處理器能同時進行浮點乘法操作和浮點加法操作,因而標榜其產品的MFLOPS為MIPS的兩倍。
其次,在比較處理器時鐘速率時,DSP的輸入時鐘可能與其指令速率一樣,也可能是指令速率的兩倍到四倍,不同的處理器可能不一樣。另外,許多DSP具有時鐘倍頻器或鎖相環,可以使用外部低頻時鐘產生片上所需的高頻時鐘信號。
實際應用
存儲管理
DSP的性能受其對存儲器子系統的管理能力的影響。如前所述,MAC和其它一些信號處理功能是DSP器件信號處理的基本能力,快速MAC執行能力要求在每個指令週期從存儲器讀取一個指令字和兩個數據字。有多種方法實現這種讀取。比如,使用多接口存儲器(允許在每個指令週期內對存儲器多次訪問)、分離指令和數據存儲器(“哈佛”結構及其派生類)以及指令緩存(允許從緩存讀取指令而不是存儲器,從而將存儲器空閒出來用作數據讀取)。
另外要注意所支持的存儲器空間的大小。許多定點DSP的主要目標市場是嵌入式應用系統,在這種應用中存儲器一般較小,所以這種DSP器件具有小到中等片上存儲器(4K到64K字左右),備有窄的外部數據總線。另外,絕大多數定點DSP的地址總線小於或等於16位,因而可外接的存儲器空間受到限制。
一些浮點DSP的片上存儲器很小,甚至沒有,但外部數據總線寬。例如TI公司的TMS320C30只有6K片上存儲器,外部總線為24位,13位外部地址總線。而ADI的ADSP2-21060具有4Mb的片上存儲器,可以多種方式劃分為程序存儲器和數據存儲器。
選擇DSP時,需要根據具體應用對存儲空間大小以及對外部總線的要求來選擇。
類型特點
DSP處理器和諸如英特爾、奔騰或Power
PC的通用處理器(GPPs)有很大的區別,這些區別產生於DSPs的結構和指令是專門針對信號處理而設計和開發的,它具有以下特點。
硬件乘法累加操作(MACs)
為了有效完成諸如信號濾波的乘法累加運算,處理器必需進行有效的乘法操作。GPPs起初並不是為繁重的乘法操作設計的,把DSPs同早期的GPPs區別開來的第一個重大技術改進就是添加了能夠進行單週期乘法操作的專門硬件和明確的MAC指令。
傳統的GPPs使用馮諾曼存儲結構,在這種結構中,有一個存儲空間通過兩條總線(一條地址總線和一條數據總線)連接到處理器內核,這種結構不能滿足MAC必須在一個指令週期中對存儲器進行四次訪門的要求。DSPs一般使用哈佛結構,在哈佛結構中,有兩個存儲空間:程序存儲空間和數據存儲空間。處理器內核通過兩套總線與這些存儲空間相連,允許對存儲器同時進行兩訪問,這種安排使處理器的帶寬加倍。在哈佛結構中,有時通過增加第二個數據存儲空間和總線來實現更大的存儲帶寬。現代高性能GPPs通常具有兩個片上超高速緩衝存儲器一個存放數據,一個存放指令。從理論的角度上講,這種雙重片上高速緩存與總線連接等同於哈佛結構,但是,GPPs使用控制邏輯來確定哪些數據和指令字駐留在片上高速緩存裏,這個過程通常不為程序設計者所見,而在DSPs裏,程序設計者能明確的控制哪些數據和指令被存儲在片上的存儲單元或緩存中。
零消耗循環控制
DSP算法的共同特徵:大部分處理時間花在執行包含在相對小循環內的少量指令上。因此,大部分DSP處理器具有零消耗循環控制的專門硬件。零消耗循環是指處理器不用花時間測試循環計數器的值就能執行一組指令的循環,硬件完成循環跳轉和循環計數器的衰減。有些DSPs還通過一條指令的超高速緩存實現高速的單指令循環。
特殊尋址模式
DSPs經常包含有專門的地址產生器,它能產生信號處理算法需要的特殊尋址,如循環尋址和位翻轉尋址。循環尋址對應於流水FIR濾波算法,位翻轉尋址對應於FFT算法。
執行時間的可預測性
大多數DSP應用都具有硬性實時要求,在每種情況下所有處理工作都必須在指定時間內完成。這種實時限制要求程序設計者確定每個樣本究竟需要多少時間或者在最壞情況下至少用去多少時間。DSPs執行程序的進程對程序員來説是透明的,因此很容易預測處理每項工作的執行時間。但是,對於高性能GPPs來説,由於大量超高速數據和程序緩存的使用,動態分配程序,因此執行時間的預測變得複雜和困難。
具有豐富的外設
DSPs具有DMA串口、Link口、定時器等外設 [3] 

數字信號處理器知識簡介

數字信號處理器算法格式

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位。

數字信號處理器處理速度

處理器是否符合設計要求,關鍵在於是否滿足速度要求。測試處理器的速度有很多方法,最基本的是測量處理器的指令週期,即處理器執行最快指令所需要的時間。指令週期的倒數除以一百萬,再乘以每個週期執行的指令數,結果即為處理器的最高速率,單位為每秒百萬條指令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具有時鐘倍頻器或鎖相環,可以使用外部低頻時鐘產生片上所需的高頻時鐘信號

數字信號處理器實際應用

語音處理:語音編碼、語音合成語音識別、語音增強、語音郵件、語音儲存等。
圖像/圖形:二維和三維圖形處理、圖像壓縮與傳輸、圖像識別、動畫、機器人視覺多媒體、電子地圖、圖像增強等。
軍事保密通信雷達處理、聲吶處理、導航、全球定位、跳頻電台、搜索和反搜索等。
儀器儀表:頻譜分析、函數發生、數據採集、地震處理等。
自動控制:控制、深空作業、自動駕駛、機器人控制、磁盤控制等。
醫療:助聽、超聲設備、診斷工具、病人監護、心電圖等。
家用電器:數字音響、數字電視、可視電話、音樂合成、音調控制、玩具與遊戲等。
CT:計算機X射線斷層攝影裝置。(其中發明頭顱CT英國EMI公司的豪斯菲爾德獲諾貝爾獎。)
CAT:計算機X射線空間重建裝置。出現全身掃描,心臟活動立體圖形,腦腫瘤異物,人體軀幹圖像重建。
心電圖分析。

數字信號處理器存儲管理

DSP的性能受其對存儲器子系統的管理能力的影響。如前所述,MAC和其它一些信號處理功能是DSP器件信號處理的基本能力,快速MAC執行能力要求在每個指令週期從存儲器讀取一個指令字和兩個數據字。有多種方法實現這種讀取,包括多接口存儲器(允許在每個指令週期內對存儲器多次訪問)、分離指令和數據存儲器(“哈佛”結構及其派生類)以及指令緩存(允許從緩存讀取指令而不是存儲器,從而將存儲器空閒出來用作數據讀取)。圖2和圖3顯示了哈佛存儲器結構與很多微控制器採用的“馮·諾曼”結構的差別。
另外要注意所支持的存儲器空間的大小。許多定點DSP的主要目標市場是嵌入式應用系統,在這種應用中存儲器一般較小,所以這種DSP器件具有小到中等片上存儲器(4K到64K字左右),備有窄的外部數據總線。另外,絕大多數定點DSP的地址總線小於或等於16位,因而可外接的存儲器空間受到限制。
一些浮點DSP的片上存儲器很小,甚至沒有,但外部數據總線寬。例如TI公司的TMS320C30只有6K片上存儲器外部總線為24位,13位外部地址總線。而ADI的ADSP2-21060具有4Mb的片上存儲器,可以多種方式劃分為程序存儲器和數據存儲器。
選擇DSP時,需要根據具體應用對存儲空間大小以及對外部總線的要求來選擇。

數字信號處理器類型特點

DSP處理器和諸如英特爾、奔騰或Power
PC的通用處理器(GPPs)有很大的區別,這些區別產生於DSPs的結構和指令是專門針對信號處理而設計和開發的,它具有以下特點。
·硬件乘法累加操作(MACs)
為了有效完成諸如信號濾波的乘法累加運算,處理器必需進行有效的乘法操作。GPPs起初並不是為繁重的乘法操作設計的,把DSPs同早期的GPPs區別開來的第一個重大技術改進就是添加了能夠進行單週期乘法操作的專門硬件和明確的MAC指令。
·哈佛結構
傳統的GPPs使用馮.諾曼存儲結構,在這種結構中,有一個存儲空間通過兩條總線(一條地址總線和一條數據總線)連接到處理器內核,這種結構不能滿足MAC必須在一個指令週期中對存儲器進行四次訪門的要求。DSPs一般使用哈佛結構,在哈佛結構中,有兩個存儲空間:程序存儲空間和數據存儲空間。處理器內核通過兩套總線與這些存儲空間相連,允許對存儲器同時進行兩訪問,這種安排使處理器的帶寬加倍。在哈佛結構中,有時通過增加第二個數據存儲空間和總線來實現更大的存儲帶寬。現代高性能GPPs通常具有兩個片上超高速緩衝存儲器一個存放數據,一個存放指令。從理論的角度上講,這種雙重片上高速緩存與總線連接等同於哈佛結構,但是,GPPs使用控制邏輯來確定哪些數據和指令字駐留在片上高速緩存裏,這個過程通常不為程序設計者所見,而在DSPs裏,程序設計者能明確的控制哪些數據和指令被存儲在片上的存儲單元或緩存中。
·零消耗循環控制
DSP算法的共同特徵:大部分處理時間花在執行包含在相對小循環內的少量指令上。因此,大部分DSP處理器具有零消耗循環控制的專門硬件。零消耗循環是指處理器不用花時間測試循環計數器的值就能執行一組指令的循環,硬件完成循環跳轉和循環計數器的衰減。有些DSPs還通過一條指令的超高速緩存實現高速的單指令循環。
·特殊尋址模式
DSPs經常包含有專門的地址產生器,它能產生信號處理算法需要的特殊尋址,如循環尋址和位翻轉尋址。循環尋址對應於流水FIR濾波算法,位翻轉尋址對應於FFT算法。
·執行時間的可預測性
大多數DSP應用都具有硬性實時要求,在每種情況下所有處理工作都必須在指定時間內完成。這種實時限制要求程序設計者確定每個樣本究竟需要多少時間或者在最壞情況下至少用去多少時間。DSPs執行程序的進程對程序員來説是透明的,因此很容易預測處理每項工作的執行時間。但是,對於高性能GPPs來説,由於大量超高速數據和程序緩存的使用,動態分配程序,因此執行時間的預測變得複雜和困難。
·具有豐富的外設
DSPs具有DMA、串口、Link口、定時器等外設。

數字信號處理器評估標準

數字信號處理器性能分檔

DSP處理器的性能可分為三個檔次:低成本、低性能DSPs,低能耗的中段DSPs和多樣化的高端DSPs。低成本性能的低端DSPs是工業界使用最廣泛的處理器。在這一範圍內的產品有:ADSP-21xx,TMS320C2xx,DSP560xx等系列,它們的運行速度一般為20~50MIPS,並在維持適當能量消耗和存儲容量的同時,提供優質的DSP性能。價格適中的DSP處理器,通過增加時鐘頻率,結合更為複雜的硬件來提高的性能,形成了DSPs的中段產品,如DSP16xx,TMS320C54x系列,它們的運行速度為100~150MIPS,通常用在無線電訊設備和高速解調器中,要求相對高的處理速度和低的能耗。高端DSPs由於被超高速處理需求的推動,其結構真正開始進行分類和向多樣化發展,有關結構下節詳述。高端DSPs的主頻達到150MHz以上,處理速度為1000MIPS以上,如TI的TMS320C6X系列、ADI的Tiger SHARC等。

數字信號處理器評價指標

評價處理器性能的指標有很多,最常用的是速度,但能耗和存儲器容量指標也很重要,特別是在嵌入系統應用上。鑑於DSPs的日益增多,系統設計者要想選出在給定應用設備上能夠提供最佳性能的處理器變得比較困難。過去,DSP系統設計者依靠MIPS或類似的量度,來大概瞭解不同芯片提供的相對性能。不幸的是,隨着處理器技術的多樣化,象MIPS這樣的傳統量度越來越不準確,因為MIPS並不是實際測量性能。由於DSP應用程序的特徵之一是大部分的處理工作集中在程序的一部分(核心程序),因此可以用與信號處理相關的基準程序來測試評估DSP處理器。BDTI公司已完成成套的核心標準,並註冊了一種新型混合速度度量:BDTI分數 [2] 

數字信號處理器結構簡介

數字信號處理器功能配置

最近兩年,DSP處理器的更高性能由於不能從傳統結構中得到解決,因此提出了各種提高性能的策略。其中提高時鐘頻率似乎是有限的,最好的方法是提高並行性。提高操作並行性,可以由兩個途徑實現:提高每條指令執行的操作的數量,或者是提高每個指令週期中執行的指令的數量。這兩種並行要求產生了多種DSPs新結構。

數字信號處理器增強型

DSP
以前,DSP處理器使用複雜的、混合的指令集,使編程者可以把多個操作編碼在一條指令中。傳統上DSP處理器在一條指令週期只發射並執行一條指令。這種單流、複雜指令的方法使得DSP處理器獲得很強大的性能而無需大量的內存。
在保持DSP結構和上述指令集不變的情況下,要提高每個指令的工作量,其中的一個辦法是用額外的執行單元和增加數據通路。例如,一些高端的DSP有兩個乘法器,而不是一個。我們把使用這種方法的DSP叫做撛鑾啃統9媯模櫻袛,因為它們的結構與前一代的DSP相似,但性能在增加執行單元后大大增強了。當然,指令集必須也同時增強,這樣編程者才能在一條指令中指定更多的並行操作,以利用額外的硬件。增強型DSPs的例子有朗訊公司的DSP16000,ADI的ADSP2116x。增強型DSPs的優點是兼容性好,而且與較早的DSP具有相似的成本和功耗。缺點是結構複雜、指令複雜,進一步發展有限。

數字信號處理器VLIW

結構
如前所述,傳統上的DSP處理器使用複雜的混合指令,並在一條指令循環中只流出和執行一條指令。然而,最近有些DSP採用一種更RISC化的指令集,並且在一條指令週期執行多條指令,使用大的統一的寄存器堆。例如,Siemems的Carmel、Philips的TriMedia和TI的TMS320C62XX處理器族都使用了超長指令字(VLIW)結構。C62xx處理器每次取一個256位的指令包,把包解析為8個32位的指令,然後把它們引到其8個獨立的執行單元。在最好的情況下,C62xx同時執行8個指令棗這種情況下達到了極高的MIPS率(如1600MIPS)。VLIW結構的優點是高性能、結構規整(潛在的易編程和好的目標編譯系統)。缺點是高功耗、代碼膨脹-需要寬的程序存儲器、新的編程/編譯困難(需跟蹤指令安排,易破壞流水線使性能下降)。

數字信號處理器超標量體

象VLIW處理器一樣,超標量體系結構並行地流出和執行多個指令。但跟VLIW處理器不同的是,超標量體系結構不清楚指定需要並行處理的指令,而是使用動態指令規劃,根據處理器可用的資源,數據依賴性和其他的因素來決定哪些指令要被同時執行。超標量體系結構已經長期用於高性能的通用處理器中,如Pentium和PowerPC。最近,ZSP公司開發出第一個商業的超標量體系結構的DSP
ZSP164xx。超標量結構的優點是性能有大的跨越、結構規整、代碼寬度沒有明顯增長。缺點是非常高的功耗、指令的動態安排使代碼優化困難。

數字信號處理器SIMD

結構
單指令多數據流(SIMD)處理器把輸入的長的數據分解為多個較短的數據,然後由單指令並行地操作,從而提高處理海量、可分解數據的能力。該技術能大幅度地提高在多媒體信號處理中大量使用的一些矢量操作的計算速度,如座標變換和旋轉。
通用處理器SIMD增強的兩個例子是Pentium的MMX擴展和PowerPC族的AltiVec擴展。simd在一些高性能的DSP處理器中也有應用。例如,DSP16000在其數據路中支持有限的SIMD風格的操作,而Analog
Devices最近推出了有名的SHARC的新一代DSP處理器,進行了SIMD能力的擴展。SIMD結構由於使總線、數據通道等資源充分使用,並無需改變信號處理(含圖象、語音)算法的基本結構,因此SIMD結構使用越來越普遍。SIMD結構遇到的問題是算法、數據結構必須滿足數據並行處理的要求,為了加速,循環常常需要被拆開,處理數據需要重新安排調整。通常SIMD僅支持定點運算。

數字信號處理器混合結構

DSP/微控制器的混合結構
許多的應用需要以控制為主的軟件和DSP軟件的混合。一個明顯的例子是數字蜂窩電話,因為其中有監控和語音處理的工作。一般地,微處理器在控制上能提供良好的性能而在DSP性能上則很糟,專用的DSP處理器的特性則剛好相反。因此,最近有一些微處理器產商開始提供DSP增強版本的微處理器。用單處理器完成兩種軟件的任務是很有吸引力的,因為其可以潛在地提供簡化設計,節省版面空間,降低總功耗,降低系統成本等。DSP和微處理器結合的方法有:
  • 在一個結上集成多種處理器,如MotorolaDSP5665x
  • DSP作為協處理器,如ARMPiccolo
  • DSP核移值到已有的位處理器,如SH-DSP
  • 微控制器與已有的DSP集成在一起,如TMS320C27xx
  • 全部新的設計,如TriCore
隨着對DSP能力需求的提高,DSP處理器結構正在進行新的和革新的設計,DSP、MCU、CPU的結構優點相互借用。

數字信號處理器發展趨勢

數字信號處理器綜述

DSP處理器發展的趨勢是結構多樣化,集成單片化用户化,開發工具更完善,評價體系更全面更專業。

數字信號處理器趨勢

VLIW結構、超標量體系結構和DSP/MCU混合處理器是DSPs結構發展的新潮流。VLIW和超標量結構能夠獲得很高的處理性能。DSP/MCU混合可以簡化應用系統設計,降低體積和成本。高性能通用處理器(GPPs)借用了DSPs的許多結構優點,其浮點處理速度比高檔DSPs還要快。高性能GPPs一般時鐘頻率為200~500MHz,具有超標量、SIMD結構,單週期乘法操作,好的存儲器帶寬,轉移預測功能,因此GPPs正在涉足DSP領域。但由於GPPs缺乏實時可預測性,優化DSP代碼困難,有限的DSP工具支持,高功耗等問題,因此GPPs在DSP中的應用還有限。但瞄準嵌入系統應用的高性能GPPs與DSPs進行混合,形成專用的嵌入GPPs,如Hitachi的SH-DSP,ARM的Piccolo,Siemens的TriCore。嵌入GPPs保留原有的高性能,並加強DSP實時預測、控制等方面的能力,與專用DSP處理器形成了對照。
在DSPs綜合集成方面,處理器核和快速用户可定製能力是重要的。預計將出現和流行:用户可定製DSPs,塊組建DSPs,可編程整數DSPs,DSPs化現場可編程門陣列(FPGAs),更專用化的DSPs,多媒體DSPs等。更令人鼓舞的是未來DSP處理器將集成DSP處理器核,微控制器,存儲器RAM和ROM,串行口模數轉換器數模轉換器,用户定義數字電路,用户定義模擬電路等,因此DSP處理系統一般將不再是若干印製板(如信號調理板,A/D板,D/A板,接口定時板等)組成的大系統。
由於DSPS結構的多樣化,DSPS性能測試將變得更加困難,MIPS、MOPS、MFLOPS、BOPS等指標將越來越不能準確反映DSPS的性能,因此需要更細更專業化的測試評價標準。對具體應用來説,某些單項功能測試結果,可能顯得更重要。
隨着DSPs性能的提高,開發工具可能比處理器結構將更重要,因為只有有效的開發工具,才能使處理器得到普遍使用,並使性能充分發揮。片上Debug是實時調試的最好手段,它將採用與JTAG兼容的Debug口。C編譯器的效率仍然是重點,如何方便容易地進行有效代碼開發是關鍵。指令軟件仿真器顯得更重要,更精確的指令軟件仿真器將得到開發。多類型DSP調試開發工具將混合集成在一起。DSPs開發工具將是一個充滿機遇和挑戰的領域。
DSP處理器存在兩種發展趨勢:一是DSP應用越來越多,如手機和便攜式音頻播放器等。DSP將集成更多功能,如A/D轉換、LCD控制器等,系統成本和器件數將會大為降低。另一個趨勢是將DSP作為IP出售,如億恆科技公司的Camel和TriCore內核。隨着EDA工具的不斷成熟,系統設計工程師將更容易地修改DSP內核,加入用户專用外圍電路以實現更專業化、更低成本的DSP解決方案。
80年代還屬於少數人研究的數字信號處理(DSP),進入90年代以來,已逐漸成為人們最常用的工程術語之一。處理器應用廣泛的原因在於,處理器的製造技術發展得極為先進,使處理器的成本下降到這一水平:它可用在消費品和其它對成本敏感的系統中;處理器的處理速度上升到這一水平:它可滿足大部分高速實時信號處理的需求。在產品中越來越多地使用DSP處理器,加劇了對更快、更便宜、更節省能量的DSP處理器的開發和迅速發展。
DSP處理器(DSPs)的品種越來越繁多,除了大家熟知的四大DSPs產商:TexasInstruments(德州儀器)公司、Lucent Technologies(朗訊技術)公司、Analog
Devies(模擬設備)公司和Motorola(摩托羅拉)公司,大約還有80家DSPs產商。它們生產的DSPs主要用於特殊功能的設備,如調制解調器、MPEG譯碼器硬盤驅動器等。DSP處理器可分為兩大類:定點DSPs和浮點DSPs。定點DSPs發展迅速,品種最多,處理速度為20~2000MIPS。浮點DSPs基本由TI和AD公司壟斷,處理速度40~1000MFLOPS。DSPs的性能已形成低、中、高三檔,高端產品處理器結構發生了深刻的變化,形成了多樣化的趨勢。

數字信號處理器選購指南

DSP處理器的應用領域很廣,但實際上沒有一個處理器能完全滿足所有的或絕大多數應用需要,設計工程師在選擇處理器時需要根據性能、成本、集成度、開發的難易程度以及功耗等因素進行綜合考慮。
DSP器件按設計要求可以分為兩類。第一類,應用領域為廉價的、大規模嵌入式應用系統,如手機、磁盤驅動(DSP用作伺服電機控制)以及便攜式數字音頻播放器等。在這些應用中價格和集成度是最重要的考慮因素。對於便攜式電池供電的設備,功耗也是一個關鍵的因素。儘管這些應用常常需要開發運行於DSP的客户應用軟件和外圍支持硬件,但易於開發的要求仍然是次要的因素,因為批量生產可以分攤開發成本,從而降低單位產品的開發成本。
另外一類是需要用複雜算法對大量數據進行處理的應用,例如聲納探測和地震探測等,也需要用DSP器件。該類設備的批量一般較小、算法要求苛刻、產品很大而且很複雜。所以設計工程師在選擇處理器時會盡量選擇性能最佳、易於開發並支持多處理器的DSP器件。有時,設計工程師更喜歡選用現成的開發板來開發系統而不是從零開始硬件和軟件設計,同時可以採用現成的功能庫文件開發應用軟件。
在實際設計時應根據具體的應用選擇合適的DSP。不同的DSP有不同的特點,適用於不同的應用,在選擇時可以遵循以下要點。

數字信號處理器DSP開發的簡便性

對不同的應用來説,對開發簡便性的要求不一樣。對於研究和樣機的開發,一般要求系統工具能便於開發。而如果公司在開發下一代手機產品,成本是最重要的因素,只要能降低最終產品的成本,一般他們願意承受很煩瑣的開發,採用複雜的開發工具(當然如果大大延遲了產品上市的時間則是另一回事)。
因此選擇DSP時需要考慮的因素有軟件開發工具(包括彙編、鏈接、仿真、調試、編譯、代碼庫以及實時操作系統等部分)、硬件工具(開發板和仿真機)和高級工具(例如基於框圖的代碼生成環境)。
選擇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片的單價便宜很多 [3] 

數字信號處理器國內外現狀

數字信號處理(Digital Signal Processing,簡稱DSP)是一門涉及許多學科而又廣泛應用於許多領域的新興學科。數字信號處理是圍繞着數字信號處理的理論、實現和應用等幾個方面發展起來的。數字信號處理在理論上的發展推動了數字信號處理應用的發展。反過來,數字信號處理的應用又促進了數字信號處理理論的提高。而數字信號處理的實現則是理論和應用之間的橋樑。數字信號處理是以眾多的學科為理論基礎的,它所涉及的範圍及其廣泛。例如,在數學領域,微積分、概率統計、隨機過程、數值分析等都是數字信號處理的基本工具,與網絡理論、信號與系統、控制論、通信理論、故障診斷等也密切相關。一些新興的學科,如人工智能、模式識別、神經網絡等,都與數字信號處理密不可分。可以説,數字信號處理是把許多經典的理論體系作為自己的理論基礎,同時又使自己成為一系列新興學科的理論基礎。 
長期以來,信號處理技術—直用於轉換或產生模擬或數字信號。其中應用得最頻繁的領域就是信號的濾波。此外,從數字通信、語音、音頻和生物醫學信號處理到檢測儀器儀表和機器人技術等許多領域中,都廣泛地應用了數字信號處理技術。數字信號處理己經發展成為一項成熟的技術,並且在許多應用領域逐步代替了傳統的模擬信號處理系統。
世界上三大DSP芯片生產商有德州儀器、模擬器件公司和摩托羅拉公司。
數字信號處理的書籍很多,其中以麻省理工學院奧本海姆編著的《Discrete Time Signa Processing》最為經典 ,有中譯本《離散時間信號處理》由西安交通大學出版 [2] 
參考資料
  • 1.    高梅國, 何佩琨, 王飛. 數字信號處理器DSPs的發展[J]. 電子技術應用, 2000, 26(5):4-6.
  • 2.    羅姍姍, 賀家李, 趙輝. 基於數字信號處理器的保護裝置的研究[J]. 電力系統自動化, 1999, 23(13):30-32.
  • 3.    任崎. 數字信號處理器[J]. 電子技術, 1992(3):31-33.