91精品一区二区三区久久久久久_欧美一级特黄大片色_欧美一区二区人人喊爽_精品一区二区三区av

位置:51電子網 » 技術資料 » IC/元器件

DSP

發布時間:2011/3/25 9:38:51 訪問次數:1094

Digital Signal Processing 數字信號處理 

        作為一個案例研究,我們來考慮數字領域里最通常的功能:濾波。簡單地說,濾波就是對信號進行處理,以改善其特性。例如,濾波可以從信號里清除噪聲或靜電干擾,從而改善其信噪比。為什么要用微處理器,而不是模擬器件來對信號做濾波呢?我們來看看其優越性:

  • 模擬濾波器(或者更一般地說,模擬電路)的性能要取決于溫度等環境因素。而數字濾波器則基本上不受環境的影響。
  • 數字濾波易于在非常小的寬容度內進行復制,因為其性能并不取決于性能已偏離正常值的器件的組合。
  • 一個模擬濾波器一旦制造出來,其特性(例如通帶頻率范圍)是不容易改變的。使用微處理器來實現數字濾波器,就可以通過對其重新編程來改變濾波的特性。

信號處理方式的比較
比較因素
模擬方式
數字方式
修改設計的靈活性
修改硬件設計,或調整硬件參數 改變軟件設置
精度
元器件精度 A/D的位數和計算機字長,算法
可靠性和可重復性
受環境溫度、濕度、噪聲、電磁場等的干擾和影響大 不受這些因素的影響
大規模集成
盡管已有一些模擬集成電路,但品種較少、集成度不高、價格較高 DSP器件體積小、功能強、功耗小、一致性好、使用方便、性能/價格比高
實時性
除開電路引入的延時外,處理是實時的 由計算機的處理速度決定
高頻信號的處理
可以處理包括微波毫米波乃至光波信號 按照奈準則的要求,受S/H、A/D和處理速度的限制

Digital Signal Processor 數字信號處理器

微處理器(Microprocessor)的分類
通用處理器(GPP)
  • 采用馮.諾依曼結構,程序和數據的存儲空間合二而一
  • 8-bit Apple(6502),NEC PC-8000(Z80)
  • 8086/286/386/486/Pentium/Pentium II/ Pentium III
  • PowerPc 64-bit CPU(SUN Sparc,DEC Alpha, HP)
  • CISC 復雜指令計算機, RISC 精簡指令計算機
  • 采取各種方法提高計算速度,提高時鐘頻率,高速總線,多級Cashe,協處理器等
Single Chip Computer/ Micro Controller Unit(MCU)
  • 除開通用CPU所具有的ALU和CU,還有存儲器(RAM/ROM)寄存器,時鐘,計數器,定時器,串/并口,有的還有A/D,D/A
  • INTEL MCS/48/51/96(98)
  • MOTOROLA HCS05/011
DSP
  • 采用哈佛結構,程序和數據分開存儲
  • 采用一系列措施保證數字信號的處理速度,如對FFT的專門優化

 

MCU與DSP的簡單比較
MCU
DSP
低檔
高檔
低檔
高檔
指令周期(ns)
600
40
50
5
乘加時間(ns)
1900
80
50
5
US$/MIPS
1.5
0.5
0.15
0.1

DSP處理器與通用處理器的比較

        考慮一個數字信號處理的實例,比如有限沖擊響應濾波器(FIR)。用數學語言來說,FIR濾波器是做一系列的點積。取一個輸入量和一個序數向量,在系數和輸入樣本的滑動窗口間作乘法,然后將所有的乘積加起來,形成一個輸出樣本。

        類似的運算在數字信號處理過程中大量地重復發生,使得為此設計的器件必須提供專門的支持,促成了了DSP器件與通用處理器(GPP)的分流:

1 對密集的乘法運算的支持

        GPP不是設計來做密集乘法任務的,即使是一些現代的GPP,也要求多個指令周期來做一次乘法。而DSP處理器使用專門的硬件來實現單周期乘法。DSP處理器還增加了累加器寄存器來處理多個乘積的和。累加器寄存器通常比其他寄存器寬,增加稱為結果bits的額外bits來避免溢出。

        同時,為了充分體現專門的乘法-累加硬件的好處,幾乎所有的DSP的指令集都包含有顯式的MAC指令。

2 存儲器結構

        傳統上,GPP使用馮.諾依曼存儲器結構。這種結構中,只有一個存儲器空間通過一組總線(一個地址總線和一個數據總線)連接到處理器核。通常,做一次乘法會發生4次存儲器訪問,用掉至少四個指令周期。

        大多數DSP采用了哈佛結構,將存儲器空間劃分成兩個,分別存儲程序和數據。它們有兩組總線連接到處理器核,允許同時對它們進行訪問。這種安排將處理器存貯器的帶寬加倍,更重要的是同時為處理器核提供數據與指令。在這種布局下,DSP得以實現單周期的MAC指令。

        還有一個問題,即現在典型的高性能GPP實際上已包含兩個片內高速緩存,一個是數據,一個是指令,它們直接連接到處理器核,以加快運行時的訪問速度。從物理上說,這種片內的雙存儲器和總線的結構幾乎與哈佛結構的一樣了。然而從邏輯上說,兩者還是有重要的區別。

        GPP使用控制邏輯來決定哪些數據和指令字存儲在片內的高速緩存里,其程序員并不加以指定(也可能根本不知道)。與此相反,DSP使用多個片內存儲器和多組總線來保證每個指令周期內存儲器的多次訪問。在使用DSP時,程序員要明確地控制哪些數據和指令要存儲在片內存儲器中。程序員在寫程序時,必須保證處理器能夠有效地使用其雙總線。

        此外,DSP處理器幾乎都不具備數據高速緩存。這是因為DSP的典型數據是數據流。也就是說,DSP處理器對每個數據樣本做計算后,就丟棄了,幾乎不再重復使用。

3 零開銷循環

        如果了解到DSP算法的一個共同的特點,即大多數的處理時間是花在執行較小的循環上,也就容易理解,為什么大多數的DSP都有專門的硬件,用于零開銷循環。所謂零開銷循環是指處理器在執行循環時,不用花時間去檢查循環計數器的值、條件轉移到循環的頂部、將循環計數器減1。

        與此相反,GPP的循環使用軟件來實現。某些高性能的GPP使用轉移預報硬件,幾乎達到與硬件支持的零開銷循環同樣的效果。

4 定點計算

        大多數DSP使用定點計算,而不是使用浮點。雖然DSP的應用必須十分注意數字的精確,用浮點來做應該容易的多,但是對DSP來說,廉價也是非常重要的。定點機器比起相應的浮點機器來要便宜(而且更快)。為了不使用浮點機器而又保證數字的準確,DSP處理器在指令集和硬件方面都支持飽和計算、舍入和移位。

5 專門的尋址方式

        DSP處理器往往都支持專門的尋址模式,它們對通常的信號處理操作和算法是很有用的。例如,模塊(循環)尋址(對實現數字濾波器延時線很有用)、位倒序尋址(對FFT很有用)。這些非常專門的尋址模式在GPP中是不常使用的,只有用軟件來實現。

6 執行時間的預測

        大多數的DSP應用(如蜂窩電話和調制解調器)都是嚴格的實時應用,所有的處理必須在指定的時間內完成。這就要求程序員準確地確定每個樣本需要多少處理時間,或者,至少要知道,在最壞的情況下,需要多少時間。

        如果打算用低成本的GPP去完成實時信號處理的任務,執行時間的預測大概不會成為什么問題,應為低成本GPP具有相對直接的結構,比較容易預測執行時間。然而,大多數實時DSP應用所要求的處理能力是低成本GPP所不能提供的。

        這時候,DSP對高性能GPP的優勢在于,即便是使用了高速緩存的DSP,哪些指令會放進去也是由程序員(而不是處理器)來決定的,因此很容易判斷指令是從高速緩存還是從存儲器中讀取。DSP一般不使用動態特性,如轉移預測和推理執行等。因此,由一段給定的代碼來預測所要求的執行時間是完全直截了當的。從而使程序員得以確定芯片的性能限制。

7 定點DSP指令集

        定點DSP指令集是按兩個目標來設計的:

        使處理器能夠在每個指令周期內完成多個操作,從而提高每個指令周期的計算效率。 

        將存貯DSP程序的存儲器空間減到最小(由于存儲器對整個系統的成本影響甚大,該問題在對成本敏感的DSP應用中尤為重要)。 

        為了實現這些目標,DSP處理器的指令集通常都允許程序員在一個指令內說明若干個并行的操作。例如,在一條指令包含了MAC操作,即同時的一個或兩個數據移動。在典型的例子里,一條指令就包含了計算FIR濾波器的一節所需要的所有操作。這種高效率付出的代價是,其指令集既不直觀,也不容易使用(與GPP的指令集相比)。

        GPP的程序通常并不在意處理器的指令集是否容易使用,因為他們一般使用象C或C++等高級語言。而對于DSP的程序員來說,不幸的是主要的DSP應用程序都是用匯編語言寫的(至少部分是匯編語言優化的)。這里有兩個理由:首先,大多數廣泛使用的高級語言,例如C,并不適合于描述典型的DSP算法。其次,DSP結構的復雜性,如多存儲器空間、多總線、不規則的指令集、高度專門化的硬件等,使得難于為其編寫高效率的編譯器。

        即便用編譯器將C源代碼編譯成為DSP的匯編代碼,優化的任務仍然很重。典型的DSP應用都具有大量計算的要求,并有嚴格的開銷限制,使得程序的優化必不可少(至少是對程序的最關鍵部分)。因此,考慮選用DSP的一個關鍵因素是,是否存在足夠的能夠較好地適應DSP處理器指令集的程序員。

8 開發工具的要求

        因為DSP應用要求高度優化的代碼,大多數DSP廠商都提供一些開發工具,以幫助程序員完成其優化工作。例如,大多數廠商都提供處理器的仿真工具,以準確地仿真每個指令周期內處理器的活動。無論對于確保實時操作還是代碼的優化,這些都是很有用的工具。

        GPP廠商通常并不提供這樣的工具,主要是因為GPP程序員通常并不需要詳細到這一層的信息。GPP缺乏精確到指令周期的仿真工具,是DSP應用開發者所面臨的的大問題:由于幾乎不可能預測高性能GPP對于給定任務所需要的周期數,從而無法說明如何去改善代碼的性能。DSP是一種快速強大的微處理器,獨特之處在于它能即時處理資料,正是這項即時能力使得DSP最適合支援無法容忍任何延遲的應用。舉例來說,您是否曾使用過一種不允許雙方同時說話的手機?您必須等到對方把話說完后,您才能接著說;如果您們兩個人同時講話,訊號就會被切斷,使您聽不到對方聲音。今日的數位手機則允許您以正常方式交談,因為它采用了DSP。

        行動電話內的DSP能以超高速度處理語音,使您能即時聽到對方的說話,完全感受不到任何延遲。再以相同應用為例,早期的行動電話常會出現回音,但數位行動電話卻能將回音和通話停頓的現象完全消除。DSP會以聲音之類的真實世界訊號為目標,透過數學運算改變它的特性,以便得到更佳音質;DSP還能壓縮資料(您的聲音),消除背景雜訊,使您的聲音能以更高速率傳送,進而提供清徹無比的通話品質,沒有惱人的回聲。

        這是DSP用途的最簡單解釋。要改善訊號,您需要數位訊號,然后對它進行處理,結果可能是更清晰的聲音、更銳利的畫面或是更快速的資料;而這項訊號加強能力也帶來突破性的新應用,例如網路音樂和家庭寬頻都因此得以實現。

Digital Signal Processing 數字信號處理 

        作為一個案例研究,我們來考慮數字領域里最通常的功能:濾波。簡單地說,濾波就是對信號進行處理,以改善其特性。例如,濾波可以從信號里清除噪聲或靜電干擾,從而改善其信噪比。為什么要用微處理器,而不是模擬器件來對信號做濾波呢?我們來看看其優越性:

  • 模擬濾波器(或者更一般地說,模擬電路)的性能要取決于溫度等環境因素。而數字濾波器則基本上不受環境的影響。
  • 數字濾波易于在非常小的寬容度內進行復制,因為其性能并不取決于性能已偏離正常值的器件的組合。
  • 一個模擬濾波器一旦制造出來,其特性(例如通帶頻率范圍)是不容易改變的。使用微處理器來實現數字濾波器,就可以通過對其重新編程來改變濾波的特性。

信號處理方式的比較
比較因素
模擬方式
數字方式
修改設計的靈活性
修改硬件設計,或調整硬件參數 改變軟件設置
精度
元器件精度 A/D的位數和計算機字長,算法
可靠性和可重復性
受環境溫度、濕度、噪聲、電磁場等的干擾和影響大 不受這些因素的影響
大規模集成
盡管已有一些模擬集成電路,但品種較少、集成度不高、價格較高 DSP器件體積小、功能強、功耗小、一致性好、使用方便、性能/價格比高
實時性
除開電路引入的延時外,處理是實時的 由計算機的處理速度決定
高頻信號的處理
可以處理包括微波毫米波乃至光波信號 按照奈準則的要求,受S/H、A/D和處理速度的限制

Digital Signal Processor 數字信號處理器

微處理器(Microprocessor)的分類
通用處理器(GPP)
  • 采用馮.諾依曼結構,程序和數據的存儲空間合二而一
  • 8-bit Apple(6502),NEC PC-8000(Z80)
  • 8086/286/386/486/Pentium/Pentium II/ Pentium III
  • PowerPc 64-bit CPU(SUN Sparc,DEC Alpha, HP)
  • CISC 復雜指令計算機, RISC 精簡指令計算機
  • 采取各種方法提高計算速度,提高時鐘頻率,高速總線,多級Cashe,協處理器等
Single Chip Computer/ Micro Controller Unit(MCU)
  • 除開通用CPU所具有的ALU和CU,還有存儲器(RAM/ROM)寄存器,時鐘,計數器,定時器,串/并口,有的還有A/D,D/A
  • INTEL MCS/48/51/96(98)
  • MOTOROLA HCS05/011
DSP
  • 采用哈佛結構,程序和數據分開存儲
  • 采用一系列措施保證數字信號的處理速度,如對FFT的專門優化

 

MCU與DSP的簡單比較
MCU
DSP
低檔
高檔
低檔
高檔
指令周期(ns)
600
40
50
5
乘加時間(ns)
1900
80
50
5
US$/MIPS
1.5
0.5
0.15
0.1

DSP處理器與通用處理器的比較

        考慮一個數字信號處理的實例,比如有限沖擊響應濾波器(FIR)。用數學語言來說,FIR濾波器是做一系列的點積。取一個輸入量和一個序數向量,在系數和輸入樣本的滑動窗口間作乘法,然后將所有的乘積加起來,形成一個輸出樣本。

        類似的運算在數字信號處理過程中大量地重復發生,使得為此設計的器件必須提供專門的支持,促成了了DSP器件與通用處理器(GPP)的分流:

1 對密集的乘法運算的支持

        GPP不是設計來做密集乘法任務的,即使是一些現代的GPP,也要求多個指令周期來做一次乘法。而DSP處理器使用專門的硬件來實現單周期乘法。DSP處理器還增加了累加器寄存器來處理多個乘積的和。累加器寄存器通常比其他寄存器寬,增加稱為結果bits的額外bits來避免溢出。

        同時,為了充分體現專門的乘法-累加硬件的好處,幾乎所有的DSP的指令集都包含有顯式的MAC指令。

2 存儲器結構

        傳統上,GPP使用馮.諾依曼存儲器結構。這種結構中,只有一個存儲器空間通過一組總線(一個地址總線和一個數據總線)連接到處理器核。通常,做一次乘法會發生4次存儲器訪問,用掉至少四個指令周期。

        大多數DSP采用了哈佛結構,將存儲器空間劃分成兩個,分別存儲程序和數據。它們有兩組總線連接到處理器核,允許同時對它們進行訪問。這種安排將處理器存貯器的帶寬加倍,更重要的是同時為處理器核提供數據與指令。在這種布局下,DSP得以實現單周期的MAC指令。

        還有一個問題,即現在典型的高性能GPP實際上已包含兩個片內高速緩存,一個是數據,一個是指令,它們直接連接到處理器核,以加快運行時的訪問速度。從物理上說,這種片內的雙存儲器和總線的結構幾乎與哈佛結構的一樣了。然而從邏輯上說,兩者還是有重要的區別。

        GPP使用控制邏輯來決定哪些數據和指令字存儲在片內的高速緩存里,其程序員并不加以指定(也可能根本不知道)。與此相反,DSP使用多個片內存儲器和多組總線來保證每個指令周期內存儲器的多次訪問。在使用DSP時,程序員要明確地控制哪些數據和指令要存儲在片內存儲器中。程序員在寫程序時,必須保證處理器能夠有效地使用其雙總線。

        此外,DSP處理器幾乎都不具備數據高速緩存。這是因為DSP的典型數據是數據流。也就是說,DSP處理器對每個數據樣本做計算后,就丟棄了,幾乎不再重復使用。

3 零開銷循環

        如果了解到DSP算法的一個共同的特點,即大多數的處理時間是花在執行較小的循環上,也就容易理解,為什么大多數的DSP都有專門的硬件,用于零開銷循環。所謂零開銷循環是指處理器在執行循環時,不用花時間去檢查循環計數器的值、條件轉移到循環的頂部、將循環計數器減1。

        與此相反,GPP的循環使用軟件來實現。某些高性能的GPP使用轉移預報硬件,幾乎達到與硬件支持的零開銷循環同樣的效果。

4 定點計算

        大多數DSP使用定點計算,而不是使用浮點。雖然DSP的應用必須十分注意數字的精確,用浮點來做應該容易的多,但是對DSP來說,廉價也是非常重要的。定點機器比起相應的浮點機器來要便宜(而且更快)。為了不使用浮點機器而又保證數字的準確,DSP處理器在指令集和硬件方面都支持飽和計算、舍入和移位。

5 專門的尋址方式

        DSP處理器往往都支持專門的尋址模式,它們對通常的信號處理操作和算法是很有用的。例如,模塊(循環)尋址(對實現數字濾波器延時線很有用)、位倒序尋址(對FFT很有用)。這些非常專門的尋址模式在GPP中是不常使用的,只有用軟件來實現。

6 執行時間的預測

        大多數的DSP應用(如蜂窩電話和調制解調器)都是嚴格的實時應用,所有的處理必須在指定的時間內完成。這就要求程序員準確地確定每個樣本需要多少處理時間,或者,至少要知道,在最壞的情況下,需要多少時間。

        如果打算用低成本的GPP去完成實時信號處理的任務,執行時間的預測大概不會成為什么問題,應為低成本GPP具有相對直接的結構,比較容易預測執行時間。然而,大多數實時DSP應用所要求的處理能力是低成本GPP所不能提供的。

        這時候,DSP對高性能GPP的優勢在于,即便是使用了高速緩存的DSP,哪些指令會放進去也是由程序員(而不是處理器)來決定的,因此很容易判斷指令是從高速緩存還是從存儲器中讀取。DSP一般不使用動態特性,如轉移預測和推理執行等。因此,由一段給定的代碼來預測所要求的執行時間是完全直截了當的。從而使程序員得以確定芯片的性能限制。

7 定點DSP指令集

        定點DSP指令集是按兩個目標來設計的:

        使處理器能夠在每個指令周期內完成多個操作,從而提高每個指令周期的計算效率。 

        將存貯DSP程序的存儲器空間減到最小(由于存儲器對整個系統的成本影響甚大,該問題在對成本敏感的DSP應用中尤為重要)。 

        為了實現這些目標,DSP處理器的指令集通常都允許程序員在一個指令內說明若干個并行的操作。例如,在一條指令包含了MAC操作,即同時的一個或兩個數據移動。在典型的例子里,一條指令就包含了計算FIR濾波器的一節所需要的所有操作。這種高效率付出的代價是,其指令集既不直觀,也不容易使用(與GPP的指令集相比)。

        GPP的程序通常并不在意處理器的指令集是否容易使用,因為他們一般使用象C或C++等高級語言。而對于DSP的程序員來說,不幸的是主要的DSP應用程序都是用匯編語言寫的(至少部分是匯編語言優化的)。這里有兩個理由:首先,大多數廣泛使用的高級語言,例如C,并不適合于描述典型的DSP算法。其次,DSP結構的復雜性,如多存儲器空間、多總線、不規則的指令集、高度專門化的硬件等,使得難于為其編寫高效率的編譯器。

        即便用編譯器將C源代碼編譯成為DSP的匯編代碼,優化的任務仍然很重。典型的DSP應用都具有大量計算的要求,并有嚴格的開銷限制,使得程序的優化必不可少(至少是對程序的最關鍵部分)。因此,考慮選用DSP的一個關鍵因素是,是否存在足夠的能夠較好地適應DSP處理器指令集的程序員。

8 開發工具的要求

        因為DSP應用要求高度優化的代碼,大多數DSP廠商都提供一些開發工具,以幫助程序員完成其優化工作。例如,大多數廠商都提供處理器的仿真工具,以準確地仿真每個指令周期內處理器的活動。無論對于確保實時操作還是代碼的優化,這些都是很有用的工具。

        GPP廠商通常并不提供這樣的工具,主要是因為GPP程序員通常并不需要詳細到這一層的信息。GPP缺乏精確到指令周期的仿真工具,是DSP應用開發者所面臨的的大問題:由于幾乎不可能預測高性能GPP對于給定任務所需要的周期數,從而無法說明如何去改善代碼的性能。DSP是一種快速強大的微處理器,獨特之處在于它能即時處理資料,正是這項即時能力使得DSP最適合支援無法容忍任何延遲的應用。舉例來說,您是否曾使用過一種不允許雙方同時說話的手機?您必須等到對方把話說完后,您才能接著說;如果您們兩個人同時講話,訊號就會被切斷,使您聽不到對方聲音。今日的數位手機則允許您以正常方式交談,因為它采用了DSP。

        行動電話內的DSP能以超高速度處理語音,使您能即時聽到對方的說話,完全感受不到任何延遲。再以相同應用為例,早期的行動電話常會出現回音,但數位行動電話卻能將回音和通話停頓的現象完全消除。DSP會以聲音之類的真實世界訊號為目標,透過數學運算改變它的特性,以便得到更佳音質;DSP還能壓縮資料(您的聲音),消除背景雜訊,使您的聲音能以更高速率傳送,進而提供清徹無比的通話品質,沒有惱人的回聲。

        這是DSP用途的最簡單解釋。要改善訊號,您需要數位訊號,然后對它進行處理,結果可能是更清晰的聲音、更銳利的畫面或是更快速的資料;而這項訊號加強能力也帶來突破性的新應用,例如網路音樂和家庭寬頻都因此得以實現。

上一篇:DSP與MCU

上一篇:LDO穩壓器S-1312

相關IC型號

熱門點擊

 

推薦技術資料

單片機版光立方的制作
    N視頻: http://v.youku.comN_sh... [詳細]
版權所有:51dzw.COM
深圳服務熱線:13692101218  13751165337
粵ICP備09112631號-6(miitbeian.gov.cn)
公網安備44030402000607
深圳市碧威特網絡技術有限公司
付款方式


 復制成功!
南充市| 东安县| 天峻县| 宣威市| 陇川县| 华蓥市| 阿城市| 孝义市| 油尖旺区| 苍溪县| 建阳市| 栾城县| 增城市| 繁峙县| 南阳市| 太白县| 固阳县| 嵊州市| 许昌市| 微博| 松阳县| 公安县| 龙山县| 保康县| 高州市| 来凤县| 铜山县| 绥棱县| 德令哈市| 类乌齐县| 达州市| 潜山县| 达尔| 新宁县| 白山市| 江达县| 米易县| 稷山县| 田东县| 基隆市| 太湖县|