我問一個不太好意思的問題,DSP是什么啊?
我問一個不太好意思的問題,DSP是什么啊?
全部回復(6)
正序查看
倒序查看
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硬件結構的特點和軟件的特點
硬件結構的特點
1 Harvard結構
程序與數據存儲空間分開,各有獨立的地址總線和數據總線,取指和讀數可以同時進行,從而提高速度,目前的水平已達到90億次浮點運算/秒(9000MFLOPS)
2 采用流水作業(pipline)
3 獨立的硬件乘法器
乘法指令在單周期內完成,優化卷積、數字濾波、FFT、相關、矩陣運算等算法中的大量重復乘法
4 循環尋址(Circular addressing),位倒序(bit-reversed)等特殊指令
使FFT、卷積等運算中的尋址、排序及計算速度大大提高.1024點FFT的時間已小于1μs
5 獨立的DMA總線和控制器
有一組或多組獨立的DMA總線,與CPU的程序、數據總線并行工作,在不影響CPU工作的條件下,DMA速度已達800Mbyte/s以上
6 多處理器接口
使多個處理器可以很方便的并行或串行工作以提高處理速度
7 JTAG(Joint Test Action Group)標準測試接口(IEEE 1149標準接口)
便于對DSP作片上的在線仿真和多DSP條件下的調試
軟件的特點
1 立即數尋址
2 直接尋址
TI公司的TMS320系列芯片將數據存儲器分為512頁,每頁128字.設置一個數據頁指針DP(Data Pointer),用9-bit指向一個數據頁,再加上一個7-bit的頁內偏移地址,形成16-bit的數據地址.這樣有利于大大加快尋址速度.
3 間接尋址
8個輔助寄存器(AR0--AR7),由一個輔助寄存器指針(ARP 3-bit)來指定一個輔助寄存器算術單元(ARAU)作16-bit無符號數運算,決定一個新的地址,裝入輔助寄存器中的一個
AR0--AR7的內容相當靈活,可以裝入立即數,加上立即數,減去立即數;也可以從數據存儲器裝入地址;還可以作以下的變址尋址:
將該AR的內容加1或減1,再尋址(循環常用)
將該AR的內容加上或減去AR0的內容,再尋址
將該AR的內容逆向進位加上或減去AR0的內容,再尋址
由于采用反向進位,得以實現位倒序尋址
原序 原地址 位倒序后地址 位倒序
0 000 000 0
1 001 100 4
2 010 010 2
3 011 110 6
4 100 001 1
5 101 101 5
6 110 011 3
7 111 111 7
例:MAC X0,Y0,A X:(R0)+,X0 Y:(R4)+N4,Y0
這條指令命令DSP56300:
將寄存器X0和Y0中的數相乘
結果加到Acc A中
將寄存器R0所指的X存儲器地址中的值裝入寄存器X0
將寄存器R4所指的Y存儲器地址中的值裝入寄存器Y0 R0的值加1
寄存器N4的值加給R4
可以看到,運算后的次序符合FFT的蝶形運算的要求
采用循環尋址實現零開銷的循環,大大增進了如卷積、相關、矩陣運算、FIR等算法的實現速度
4 獨特的乘法指令
DSP開發工具
1 代碼生成工具
C 優化編譯器
匯編語言工具
匯編器(Assembler)
連接器(Linker)
歸檔器(Archiver)
交叉引用列表器(Cross-Reference Lister)
2 系統集成及調試環境與工具(以TI為例)
調試器接口(C/Assembly source debugger)
為嵌入式系統的開發提供了豐富的功能與靈活性.該調試器是下面要討論的軟仿真器、評估模塊、在線仿真器等的標準接口.
該調試器可以運行在PC或SPARC等平臺上,對用C 或匯編語言寫的程序提供完全的控制.其代碼分析功能通過快速確認最費時的程序段,提示應該將開發時間集中在什么地方
軟仿真器(Simulator)
TMS320軟件仿真器是一個軟件程序,使用主機的處理器和存儲器來仿真TMS320 DSP的微處理器和微計算機模式,從而進行軟件開發和非實時的程序驗證.在PC機上,典型的仿真速度為每秒幾百條指令
DSP入門套件(DSK,DSP Starter Kit)
為初學者設計和生產的DSK是一種用以評價DSP平臺的廉價的開發工具.在PC機的DOS或Windows下,用戶可以使用DSK來作DSP的實驗,進行諸如控制系統、語音處理等應用;也可以用來編寫和運行實時源代碼,并對其作評估;還可以用來調試用戶自己的系統
銀杏開發、實驗系統(DES,Dsp Expirement System)
銀杏DES含有TMS320C542-40及相關接口,還特別內置了信號源,附帶虛擬示波器和頻譜儀軟件.采用這套系統使用戶對外設的依賴降到最低,僅僅需要一張卡和一套軟件就可以進行DSP的開發或實驗.
標準評估模塊(EVM)
TMS320的評估模塊(EVM)是廉價的開發板,用于器件評估、標準程序檢查、以及有限的系統調試.EVM是一個PC插件,包括目標處理器、一個小容量的存儲器、和有限的外設.EVM可以用來實時運行代碼,并與外部系統接口
TMS320硬件仿真器(Emulators)
擴展開發系統(XDS,extended development system)是功能強大的全速仿真器,用以作系統級的集成與調試.
掃描式仿真(Scan-Based Emulator)是一種獨特的、非插入式的系統仿真、集成、調試方法.使用這種方法,程序可以從片內或片外的目標存儲器實時執行,在任何時鐘速度下都不會引入額外的等待狀態
3 實時操作系統
對于簡單的DSP任務,用前面介紹的開發工具已能滿足開發任務的需要,往往不需要操作系統就可以進行.但當DSP的任務增加和任務的復雜性提高,例如對實時性要求很高的多DSP并行操作的多任務系統,可能就需要某種操作系統來管理系統的資源,安排多任務的執行和任務間的信息交換等
DSP的操作系統SPOX
SPOX是專為DSP系統設計和軟件開發而設計的實時多任務操作系統.它提供一組由C語言調用的功能,與所開發的硬件平臺無關,從而將DSP的實時應用部分從許多低層的硬件細節中隔離出來.它作為DSP實時應用開發的一個集成環境,完成從新的算法概念出發,直到把應用軟件裝入產品硬件的整個開發任務
DSP芯片介紹
1 什么是DSP芯片
DSP芯片,也稱數字信號處理器,是一種具有特殊結構的微處理器.DSP芯片的內部采用程序和數據分開的哈佛結構,具有專門的硬件乘法器,廣泛采用流水線操作,提供特殊的DSP 指令,可以用來快速地實現各種數字信號處理算法.根據數字信號處理的要求,DSP芯片一般具有如下的一些主要特點:
(1) 在一個指令周期內可完成一次乘法和一次加法.
(2) 程序和數據空間分開,可以同時訪問指令和數據.
(3) 片內具有快速RAM,通常可通過獨立的數據總線在兩塊中同時訪問.
(4) 具有低開銷或無開銷循環及跳轉的硬件支持.
(5) 快速的中斷處理和硬件I/O支持.
(6) 具有在單周期內操作的多個硬件地址產生器.
(7) 可以并行執行多個操作.
(8) 支持流水線操作,使取指、譯碼和執行等操作可以重疊執行.
與通用微處理器相比,DSP芯片的其他通用功能相對較弱些.
2 DSP芯片的發展
世界上第一個單片DSP芯片是1978年AMI公司宣布的S2811,1979年美國Iintel公司發布的商用可編程期間2920是DSP芯片的一個主要里程碑.這兩種芯片內部都沒有現代DSP芯片所必須的單周期芯片. 1980年.日本NEC公司推出的μPD7720是第一個具有乘法器的商用DSP 芯片.第一個采用CMOS工藝生產浮點DSP芯片的是日本的Hitachi 公司,它于1982年推出了浮點DSP芯片.1983年,日本的Fujitsu公司推出的MB8764,其指令周期為120ns ,且具有雙內部總線,從而處理的吞吐量發生了一個大的飛躍.而第一個高性能的浮點DSP芯片應是AT&T公司于1984年推出的DSP32.
在這么多的DSP芯片種類中,最成功的是美國德克薩斯儀器公司(Texas Instruments,簡稱TI)的一系列產品.TI公司災982年成功推出啟迪一代DSP芯片TMS32010及其系列產品TMS32011、TMS32C10/C14/C15/C16/C17等,之后相繼推出了第二代DSP芯片TMS32020、TMS320C25/C26/C28,第三代DSP芯片TMS32C30/C31/C32,第四代DSP芯片TMS32C40/C44,第五代DSP芯片TMS32C50/C51/C52/C53以及集多個DSP于一體的高性能DSP芯片TMS32C80/C82等.
自1980年以來,DSP芯片得到了突飛猛進的發展,DSP芯片的應用越來越廣泛.從運算速度來看,MAC(一次乘法和一次加法)時間已經從80年代初的400ns(如TMS32010)降低到40ns(如TMS32C40),處理能力提高了10多倍.DSP芯片內部關鍵的乘法器部件從1980年的占模區的40左右下降到5以下,片內RAM增加一個數量級以上.從制造工藝來看,1980年采用4μ的N溝道MOS工藝,而現在則普遍采用亞微米CMOS工藝.DSP芯片的引腳數量從1980年的最多64個增加到現在的200個以上,引腳數量的增加,意味著結構靈活性的增加.此外,DSP芯片的發展,是DSP系統的成本、體積、重量和功耗都有很大程度的下降.
3 DSP芯片的分類
DSP的芯片可以按照以下的三種方式進行分類.
1. 按基礎特性分
這是根據DSP芯片的工作時鐘和指令類型來分類的.如果DSP芯片在某時鐘頻率范圍內的任何頻率上能正常工作,除計算速度有變化外,沒有性能的下降,這類DSP芯片一般稱之為靜態DSP芯片.
如果有兩種或兩種以上的DSP芯片,它們的指令集和相應的機器代碼機管腳結構相互兼容,則這類DSP芯片稱之為一致性的DSP芯片.
2. 按數據格式分
這是根據DSP芯片工作的數據格式來分類的.數據以定點格式工作的DSP芯片稱之為定點DSP芯片.以浮點格式工作的稱為DSP芯片.不同的浮點DSP芯片所采用的浮點格式不完全一樣,有的DSP芯片采用自定義的浮點格式,有的DSP芯片則采用IEEE的標準浮點格式.
3. 按用途分
按照DSP芯片的用途來分,可分為通用型DSP芯片和專用型的DSP芯片.通用型DSP芯片適合普通的DSP應用,如TI公司的一系列DSP芯片.專用型DSP芯片市為特定的DSP運算而設計,更適合特殊的運算,如數字濾波,卷積和FFT等.
4 DSP芯片的選擇
設計DSP應用系統,選擇DSP芯片時非常重要的一個環節.只有選定了DSP芯片才能進一步設計外圍電路集系統的其它電路.總的來說,DSP芯片的選擇應根據實際的應用系統需要而確定.一般來說,選擇DSP芯片時考慮如下諸多因素.
1. DSP芯片的運算速度.運算速度是DSP芯片的一個最重要的性能指標,也是選擇DSP芯片時所需要考慮的一個主要因素.DSP芯片的運算速度可以用以下幾種性能指標來衡量:
(1) 指令周期.就是執行一條指令所需要的時間,通常以ns為單位.
(2) MAC時間.即一次乘法加上一次加法的時間.
(3) FFT執行時間.即運行一個N點FFT程序所需的時間.
(4) MIPS.即每秒執行百萬條指令.
(5) MOPS.即每秒執行百萬次操作.
(6) MFLOPS.即每秒執行百萬次浮點操作.
(7) BOPS.即每秒執行十億次操作.
2. DSP芯片的價格.根據一個價格實際的應用情況,確定一個價格適中的DSP芯片.
3. DSP芯片的硬件資源.
4. DSP芯片的運算速度.
5. DSP芯片的開發工具.
6. DSP 芯片的功耗.
7. 其它的因素,如封裝的形式、質量標準、生命周期等.
DSP應用系統的運算量是確定選用處理能力多大的DSP芯片的基礎.那么如何確定DSP系統的運算量以選擇DSP芯片呢?
1. 按樣點處理
按樣點處理就是DSP算法對每一個輸入樣點循環一次.例如;一個采用LMS算法的256抽頭德的自適應FIR濾波器,假定每個抽頭的計算需要3個MAC周期,則256抽頭計算需要256*3=768個MAC周期.如果采樣頻率為8KHz,即樣點之間的間隔為125μs的時間,DSP芯片的MAC周期為200μs,則768個周期需要153.6μs的時間,顯然無法實時處理,需要選用速度更快的芯片.
2. 按幀處理
有些數字信號處理算法不是每個輸入樣點循環一次,而是每隔一定的時間間隔(通常稱為幀)循環一次.所以選擇DSP芯片應該比較一幀內DSP芯片的處理能力和DSP算法的運算量.假設DSP芯片的指令周期為P(ns),一幀的時間為⊿τ(ns),則該DSP芯片在一幀內所提供的最大運算量為⊿τ/ P 條指令.
5 DSP芯片的基本結構
DSP芯片的基本結構包括:
(1)哈佛結構;
(2)流水線操作;
(3)專用的硬件乘法器;
(4)特殊的DSP指令;
(5)快速的指令周期.
哈佛結構
哈佛結構的主要特點是將程序和數據存儲在不同的存儲空間中,即程序存儲器和數據存儲器是兩個相互獨立的存儲器,每個存儲器獨立編址,獨立訪問.與兩個存儲器相對應的是系統中設置了程序總線和數據總線,從而使數據的吞吐率提高了一倍.由于程序和存儲器在兩個分開的空間中,因此取指和執行能完全重疊.
流水線與哈佛結構相關,DSP芯片廣泛采用流水線以減少指令執行的時間,從而增強了處理器的處理能力.處理器可以并行處理二到四條指令,每條指令處于流水線的不同階段.入圖示出一個三級流水線操作的例子.
CLLOUT1
取指 N N-1 N-2
譯碼 N-1 N N-2
執行 N-2 N-1 N
圖4-1 三級流水線操作
專用的硬件乘法器
乘法速度越快,DSP處理器的性能越高.由于具有專用的應用乘法器,乘法可在一個指令周期內完成.
特殊的DSP指令DSP芯片是采用特殊的指令.
快速的指令周期哈佛結構、流水線操作、專用的硬件乘法器、特殊的DSP指令再加上集成電路的優化設計可使DSP芯片的指令周期在200ns以下.
6 DSP系統的特點
數字信號處理系統是以數字信號處理為基礎,因此具有數字處理的全部特點:
(1) 接口方便.DSP系統與其它以現代數字技術為基礎的系統或設備都是相互兼容,這樣的系統接口以實現某種功能要比模擬系統與這些系統接口要容易的多.
(2) 編程方便.DSP系統種的可編程DSP芯片可使設計人員在開發過程中靈活方便地對軟件進行修改和升級.
(3) 穩定性好.DSP系統以數字處理為基礎,受環境溫度以及噪聲的影響較小,可靠性高.
(4) 精度高.16位數字系統可以達到的精度.
(5) 可重復性好.模擬系統的性能受元器件參數性能變化比較大,而數字系統基本上不受影響,因此數字系統便于測試,調試和大規模生產.
(6) 集成方便.DSP系統中的數字部件有高度的規范性,便于大規模集成.
7 DSP芯片的應用
自從DSP芯片誕生以來,DSP芯片得到了飛速的發展.DSP芯片高速發展,一方面得益于集成電路的發展,另一方面也得益于巨大的市場.在短短的十多年時間,DSP芯片已經在信號處理、通信、雷達等許多領域得到廣泛的應用.目前,DSP芯片的價格也越來越低,性能價格比日益提高,具有巨大的應用潛力.DSP芯片的應用主要有:
(1) 信號處理--如,數字濾波、自適應濾波、快速傅里葉變換、相關運算、頻譜分析、卷積等.
(2) 通信--如,調制解調器、自適應均衡、數據加密、數據壓縮、回坡抵消、多路復用、傳真、擴頻通信、糾錯編碼、波形產生等.
(3) 語音--如語音編碼、語音合成、語音識別、語音增強、說話人辨認、說話人確認、語音郵件、語音儲存等.
(4) 圖像/圖形--如二維和三維圖形處理、圖像壓縮與傳輸、圖像增強、動畫、機器人視覺等.
(5) 軍事--如保密通信、雷達處理、聲納處理、導航等.
(6) 儀器儀表--如頻譜分析、函數發生、鎖相環、地震處理等.
(7) 自動控制--如引擎控制、深空、自動駕駛、機器人控制、磁盤控制.
(8) 醫療--如助聽、超聲設備、診斷工具、病人監護等.
(9) 家用電器--如高保真音響、音樂合成、音調控制、玩具與游戲、數字電話/電視等
DSP芯片開發和產品應用
一、DSP程序開發
為了使DSP有效運行、必須要用能充分考慮DSP內部并行性的匯編語言進行編制DSP程序.前面提到,美國TI公司的DSP推銷員說DSP編程容易,實際上他是指DSP的匯編語言相對于計算機的匯編語言而言,比較容易一些,因為沒有像計算機匯編語言那樣復雜.但是,對于習慣用高級語言編
作為一個案例研究,我們來考慮數字領域里最通常的功能:濾波.簡單地說,濾波就是對信號進行處理,以改善其特性.例如,濾波可以從信號里清除噪聲或靜電干擾,從而改善其信噪比.為什么要用微處理器,而不是模擬器件來對信號做濾波呢?我們來看看其優越性:
模擬濾波器(或者更一般地說,模擬電路)的性能要取決于溫度等環境因素.而數字濾波器則基本上不受環境的影響.
數字濾波易于在非常小的寬容度內進行復制,因為其性能并不取決于性能已偏離正常值的器件的組合.
一個模擬濾波器一旦制造出來,其特性(例如通帶頻率范圍)是不容易改變的.使用微處理器來實現數字濾波器,就可以通過對其重新編程來改變濾波的特性.
信號處理方式的比較
比較因素 模擬方式 數字方式
修改設計的靈活性 修改硬件設計,或調整硬件參數 改變軟件設置
精度 元器件精度 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硬件結構的特點和軟件的特點
硬件結構的特點
1 Harvard結構
程序與數據存儲空間分開,各有獨立的地址總線和數據總線,取指和讀數可以同時進行,從而提高速度,目前的水平已達到90億次浮點運算/秒(9000MFLOPS)
2 采用流水作業(pipline)
3 獨立的硬件乘法器
乘法指令在單周期內完成,優化卷積、數字濾波、FFT、相關、矩陣運算等算法中的大量重復乘法
4 循環尋址(Circular addressing),位倒序(bit-reversed)等特殊指令
使FFT、卷積等運算中的尋址、排序及計算速度大大提高.1024點FFT的時間已小于1μs
5 獨立的DMA總線和控制器
有一組或多組獨立的DMA總線,與CPU的程序、數據總線并行工作,在不影響CPU工作的條件下,DMA速度已達800Mbyte/s以上
6 多處理器接口
使多個處理器可以很方便的并行或串行工作以提高處理速度
7 JTAG(Joint Test Action Group)標準測試接口(IEEE 1149標準接口)
便于對DSP作片上的在線仿真和多DSP條件下的調試
軟件的特點
1 立即數尋址
2 直接尋址
TI公司的TMS320系列芯片將數據存儲器分為512頁,每頁128字.設置一個數據頁指針DP(Data Pointer),用9-bit指向一個數據頁,再加上一個7-bit的頁內偏移地址,形成16-bit的數據地址.這樣有利于大大加快尋址速度.
3 間接尋址
8個輔助寄存器(AR0--AR7),由一個輔助寄存器指針(ARP 3-bit)來指定一個輔助寄存器算術單元(ARAU)作16-bit無符號數運算,決定一個新的地址,裝入輔助寄存器中的一個
AR0--AR7的內容相當靈活,可以裝入立即數,加上立即數,減去立即數;也可以從數據存儲器裝入地址;還可以作以下的變址尋址:
將該AR的內容加1或減1,再尋址(循環常用)
將該AR的內容加上或減去AR0的內容,再尋址
將該AR的內容逆向進位加上或減去AR0的內容,再尋址
由于采用反向進位,得以實現位倒序尋址
原序 原地址 位倒序后地址 位倒序
0 000 000 0
1 001 100 4
2 010 010 2
3 011 110 6
4 100 001 1
5 101 101 5
6 110 011 3
7 111 111 7
例:MAC X0,Y0,A X:(R0)+,X0 Y:(R4)+N4,Y0
這條指令命令DSP56300:
將寄存器X0和Y0中的數相乘
結果加到Acc A中
將寄存器R0所指的X存儲器地址中的值裝入寄存器X0
將寄存器R4所指的Y存儲器地址中的值裝入寄存器Y0 R0的值加1
寄存器N4的值加給R4
可以看到,運算后的次序符合FFT的蝶形運算的要求
采用循環尋址實現零開銷的循環,大大增進了如卷積、相關、矩陣運算、FIR等算法的實現速度
4 獨特的乘法指令
DSP開發工具
1 代碼生成工具
C 優化編譯器
匯編語言工具
匯編器(Assembler)
連接器(Linker)
歸檔器(Archiver)
交叉引用列表器(Cross-Reference Lister)
2 系統集成及調試環境與工具(以TI為例)
調試器接口(C/Assembly source debugger)
為嵌入式系統的開發提供了豐富的功能與靈活性.該調試器是下面要討論的軟仿真器、評估模塊、在線仿真器等的標準接口.
該調試器可以運行在PC或SPARC等平臺上,對用C 或匯編語言寫的程序提供完全的控制.其代碼分析功能通過快速確認最費時的程序段,提示應該將開發時間集中在什么地方
軟仿真器(Simulator)
TMS320軟件仿真器是一個軟件程序,使用主機的處理器和存儲器來仿真TMS320 DSP的微處理器和微計算機模式,從而進行軟件開發和非實時的程序驗證.在PC機上,典型的仿真速度為每秒幾百條指令
DSP入門套件(DSK,DSP Starter Kit)
為初學者設計和生產的DSK是一種用以評價DSP平臺的廉價的開發工具.在PC機的DOS或Windows下,用戶可以使用DSK來作DSP的實驗,進行諸如控制系統、語音處理等應用;也可以用來編寫和運行實時源代碼,并對其作評估;還可以用來調試用戶自己的系統
銀杏開發、實驗系統(DES,Dsp Expirement System)
銀杏DES含有TMS320C542-40及相關接口,還特別內置了信號源,附帶虛擬示波器和頻譜儀軟件.采用這套系統使用戶對外設的依賴降到最低,僅僅需要一張卡和一套軟件就可以進行DSP的開發或實驗.
標準評估模塊(EVM)
TMS320的評估模塊(EVM)是廉價的開發板,用于器件評估、標準程序檢查、以及有限的系統調試.EVM是一個PC插件,包括目標處理器、一個小容量的存儲器、和有限的外設.EVM可以用來實時運行代碼,并與外部系統接口
TMS320硬件仿真器(Emulators)
擴展開發系統(XDS,extended development system)是功能強大的全速仿真器,用以作系統級的集成與調試.
掃描式仿真(Scan-Based Emulator)是一種獨特的、非插入式的系統仿真、集成、調試方法.使用這種方法,程序可以從片內或片外的目標存儲器實時執行,在任何時鐘速度下都不會引入額外的等待狀態
3 實時操作系統
對于簡單的DSP任務,用前面介紹的開發工具已能滿足開發任務的需要,往往不需要操作系統就可以進行.但當DSP的任務增加和任務的復雜性提高,例如對實時性要求很高的多DSP并行操作的多任務系統,可能就需要某種操作系統來管理系統的資源,安排多任務的執行和任務間的信息交換等
DSP的操作系統SPOX
SPOX是專為DSP系統設計和軟件開發而設計的實時多任務操作系統.它提供一組由C語言調用的功能,與所開發的硬件平臺無關,從而將DSP的實時應用部分從許多低層的硬件細節中隔離出來.它作為DSP實時應用開發的一個集成環境,完成從新的算法概念出發,直到把應用軟件裝入產品硬件的整個開發任務
DSP芯片介紹
1 什么是DSP芯片
DSP芯片,也稱數字信號處理器,是一種具有特殊結構的微處理器.DSP芯片的內部采用程序和數據分開的哈佛結構,具有專門的硬件乘法器,廣泛采用流水線操作,提供特殊的DSP 指令,可以用來快速地實現各種數字信號處理算法.根據數字信號處理的要求,DSP芯片一般具有如下的一些主要特點:
(1) 在一個指令周期內可完成一次乘法和一次加法.
(2) 程序和數據空間分開,可以同時訪問指令和數據.
(3) 片內具有快速RAM,通常可通過獨立的數據總線在兩塊中同時訪問.
(4) 具有低開銷或無開銷循環及跳轉的硬件支持.
(5) 快速的中斷處理和硬件I/O支持.
(6) 具有在單周期內操作的多個硬件地址產生器.
(7) 可以并行執行多個操作.
(8) 支持流水線操作,使取指、譯碼和執行等操作可以重疊執行.
與通用微處理器相比,DSP芯片的其他通用功能相對較弱些.
2 DSP芯片的發展
世界上第一個單片DSP芯片是1978年AMI公司宣布的S2811,1979年美國Iintel公司發布的商用可編程期間2920是DSP芯片的一個主要里程碑.這兩種芯片內部都沒有現代DSP芯片所必須的單周期芯片. 1980年.日本NEC公司推出的μPD7720是第一個具有乘法器的商用DSP 芯片.第一個采用CMOS工藝生產浮點DSP芯片的是日本的Hitachi 公司,它于1982年推出了浮點DSP芯片.1983年,日本的Fujitsu公司推出的MB8764,其指令周期為120ns ,且具有雙內部總線,從而處理的吞吐量發生了一個大的飛躍.而第一個高性能的浮點DSP芯片應是AT&T公司于1984年推出的DSP32.
在這么多的DSP芯片種類中,最成功的是美國德克薩斯儀器公司(Texas Instruments,簡稱TI)的一系列產品.TI公司災982年成功推出啟迪一代DSP芯片TMS32010及其系列產品TMS32011、TMS32C10/C14/C15/C16/C17等,之后相繼推出了第二代DSP芯片TMS32020、TMS320C25/C26/C28,第三代DSP芯片TMS32C30/C31/C32,第四代DSP芯片TMS32C40/C44,第五代DSP芯片TMS32C50/C51/C52/C53以及集多個DSP于一體的高性能DSP芯片TMS32C80/C82等.
自1980年以來,DSP芯片得到了突飛猛進的發展,DSP芯片的應用越來越廣泛.從運算速度來看,MAC(一次乘法和一次加法)時間已經從80年代初的400ns(如TMS32010)降低到40ns(如TMS32C40),處理能力提高了10多倍.DSP芯片內部關鍵的乘法器部件從1980年的占模區的40左右下降到5以下,片內RAM增加一個數量級以上.從制造工藝來看,1980年采用4μ的N溝道MOS工藝,而現在則普遍采用亞微米CMOS工藝.DSP芯片的引腳數量從1980年的最多64個增加到現在的200個以上,引腳數量的增加,意味著結構靈活性的增加.此外,DSP芯片的發展,是DSP系統的成本、體積、重量和功耗都有很大程度的下降.
3 DSP芯片的分類
DSP的芯片可以按照以下的三種方式進行分類.
1. 按基礎特性分
這是根據DSP芯片的工作時鐘和指令類型來分類的.如果DSP芯片在某時鐘頻率范圍內的任何頻率上能正常工作,除計算速度有變化外,沒有性能的下降,這類DSP芯片一般稱之為靜態DSP芯片.
如果有兩種或兩種以上的DSP芯片,它們的指令集和相應的機器代碼機管腳結構相互兼容,則這類DSP芯片稱之為一致性的DSP芯片.
2. 按數據格式分
這是根據DSP芯片工作的數據格式來分類的.數據以定點格式工作的DSP芯片稱之為定點DSP芯片.以浮點格式工作的稱為DSP芯片.不同的浮點DSP芯片所采用的浮點格式不完全一樣,有的DSP芯片采用自定義的浮點格式,有的DSP芯片則采用IEEE的標準浮點格式.
3. 按用途分
按照DSP芯片的用途來分,可分為通用型DSP芯片和專用型的DSP芯片.通用型DSP芯片適合普通的DSP應用,如TI公司的一系列DSP芯片.專用型DSP芯片市為特定的DSP運算而設計,更適合特殊的運算,如數字濾波,卷積和FFT等.
4 DSP芯片的選擇
設計DSP應用系統,選擇DSP芯片時非常重要的一個環節.只有選定了DSP芯片才能進一步設計外圍電路集系統的其它電路.總的來說,DSP芯片的選擇應根據實際的應用系統需要而確定.一般來說,選擇DSP芯片時考慮如下諸多因素.
1. DSP芯片的運算速度.運算速度是DSP芯片的一個最重要的性能指標,也是選擇DSP芯片時所需要考慮的一個主要因素.DSP芯片的運算速度可以用以下幾種性能指標來衡量:
(1) 指令周期.就是執行一條指令所需要的時間,通常以ns為單位.
(2) MAC時間.即一次乘法加上一次加法的時間.
(3) FFT執行時間.即運行一個N點FFT程序所需的時間.
(4) MIPS.即每秒執行百萬條指令.
(5) MOPS.即每秒執行百萬次操作.
(6) MFLOPS.即每秒執行百萬次浮點操作.
(7) BOPS.即每秒執行十億次操作.
2. DSP芯片的價格.根據一個價格實際的應用情況,確定一個價格適中的DSP芯片.
3. DSP芯片的硬件資源.
4. DSP芯片的運算速度.
5. DSP芯片的開發工具.
6. DSP 芯片的功耗.
7. 其它的因素,如封裝的形式、質量標準、生命周期等.
DSP應用系統的運算量是確定選用處理能力多大的DSP芯片的基礎.那么如何確定DSP系統的運算量以選擇DSP芯片呢?
1. 按樣點處理
按樣點處理就是DSP算法對每一個輸入樣點循環一次.例如;一個采用LMS算法的256抽頭德的自適應FIR濾波器,假定每個抽頭的計算需要3個MAC周期,則256抽頭計算需要256*3=768個MAC周期.如果采樣頻率為8KHz,即樣點之間的間隔為125μs的時間,DSP芯片的MAC周期為200μs,則768個周期需要153.6μs的時間,顯然無法實時處理,需要選用速度更快的芯片.
2. 按幀處理
有些數字信號處理算法不是每個輸入樣點循環一次,而是每隔一定的時間間隔(通常稱為幀)循環一次.所以選擇DSP芯片應該比較一幀內DSP芯片的處理能力和DSP算法的運算量.假設DSP芯片的指令周期為P(ns),一幀的時間為⊿τ(ns),則該DSP芯片在一幀內所提供的最大運算量為⊿τ/ P 條指令.
5 DSP芯片的基本結構
DSP芯片的基本結構包括:
(1)哈佛結構;
(2)流水線操作;
(3)專用的硬件乘法器;
(4)特殊的DSP指令;
(5)快速的指令周期.
哈佛結構
哈佛結構的主要特點是將程序和數據存儲在不同的存儲空間中,即程序存儲器和數據存儲器是兩個相互獨立的存儲器,每個存儲器獨立編址,獨立訪問.與兩個存儲器相對應的是系統中設置了程序總線和數據總線,從而使數據的吞吐率提高了一倍.由于程序和存儲器在兩個分開的空間中,因此取指和執行能完全重疊.
流水線與哈佛結構相關,DSP芯片廣泛采用流水線以減少指令執行的時間,從而增強了處理器的處理能力.處理器可以并行處理二到四條指令,每條指令處于流水線的不同階段.入圖示出一個三級流水線操作的例子.
CLLOUT1
取指 N N-1 N-2
譯碼 N-1 N N-2
執行 N-2 N-1 N
圖4-1 三級流水線操作
專用的硬件乘法器
乘法速度越快,DSP處理器的性能越高.由于具有專用的應用乘法器,乘法可在一個指令周期內完成.
特殊的DSP指令DSP芯片是采用特殊的指令.
快速的指令周期哈佛結構、流水線操作、專用的硬件乘法器、特殊的DSP指令再加上集成電路的優化設計可使DSP芯片的指令周期在200ns以下.
6 DSP系統的特點
數字信號處理系統是以數字信號處理為基礎,因此具有數字處理的全部特點:
(1) 接口方便.DSP系統與其它以現代數字技術為基礎的系統或設備都是相互兼容,這樣的系統接口以實現某種功能要比模擬系統與這些系統接口要容易的多.
(2) 編程方便.DSP系統種的可編程DSP芯片可使設計人員在開發過程中靈活方便地對軟件進行修改和升級.
(3) 穩定性好.DSP系統以數字處理為基礎,受環境溫度以及噪聲的影響較小,可靠性高.
(4) 精度高.16位數字系統可以達到的精度.
(5) 可重復性好.模擬系統的性能受元器件參數性能變化比較大,而數字系統基本上不受影響,因此數字系統便于測試,調試和大規模生產.
(6) 集成方便.DSP系統中的數字部件有高度的規范性,便于大規模集成.
7 DSP芯片的應用
自從DSP芯片誕生以來,DSP芯片得到了飛速的發展.DSP芯片高速發展,一方面得益于集成電路的發展,另一方面也得益于巨大的市場.在短短的十多年時間,DSP芯片已經在信號處理、通信、雷達等許多領域得到廣泛的應用.目前,DSP芯片的價格也越來越低,性能價格比日益提高,具有巨大的應用潛力.DSP芯片的應用主要有:
(1) 信號處理--如,數字濾波、自適應濾波、快速傅里葉變換、相關運算、頻譜分析、卷積等.
(2) 通信--如,調制解調器、自適應均衡、數據加密、數據壓縮、回坡抵消、多路復用、傳真、擴頻通信、糾錯編碼、波形產生等.
(3) 語音--如語音編碼、語音合成、語音識別、語音增強、說話人辨認、說話人確認、語音郵件、語音儲存等.
(4) 圖像/圖形--如二維和三維圖形處理、圖像壓縮與傳輸、圖像增強、動畫、機器人視覺等.
(5) 軍事--如保密通信、雷達處理、聲納處理、導航等.
(6) 儀器儀表--如頻譜分析、函數發生、鎖相環、地震處理等.
(7) 自動控制--如引擎控制、深空、自動駕駛、機器人控制、磁盤控制.
(8) 醫療--如助聽、超聲設備、診斷工具、病人監護等.
(9) 家用電器--如高保真音響、音樂合成、音調控制、玩具與游戲、數字電話/電視等
DSP芯片開發和產品應用
一、DSP程序開發
為了使DSP有效運行、必須要用能充分考慮DSP內部并行性的匯編語言進行編制DSP程序.前面提到,美國TI公司的DSP推銷員說DSP編程容易,實際上他是指DSP的匯編語言相對于計算機的匯編語言而言,比較容易一些,因為沒有像計算機匯編語言那樣復雜.但是,對于習慣用高級語言編
0
回復
@ghost
DigitalSignalProcessing數字信號處理作為一個案例研究,我們來考慮數字領域里最通常的功能:濾波.簡單地說,濾波就是對信號進行處理,以改善其特性.例如,濾波可以從信號里清除噪聲或靜電干擾,從而改善其信噪比.為什么要用微處理器,而不是模擬器件來對信號做濾波呢?我們來看看其優越性:模擬濾波器(或者更一般地說,模擬電路)的性能要取決于溫度等環境因素.而數字濾波器則基本上不受環境的影響.數字濾波易于在非常小的寬容度內進行復制,因為其性能并不取決于性能已偏離正常值的器件的組合.一個模擬濾波器一旦制造出來,其特性(例如通帶頻率范圍)是不容易改變的.使用微處理器來實現數字濾波器,就可以通過對其重新編程來改變濾波的特性.信號處理方式的比較比較因素模擬方式數字方式修改設計的靈活性修改硬件設計,或調整硬件參數改變軟件設置精度元器件精度A/D的位數和計算機字長,算法可靠性和可重復性受環境溫度、濕度、噪聲、不受這些因素的影響電磁場等的干擾和影響大大規模集成盡管已有一些模擬集成電路,但品種較少、集成度不高、價格較高DSP器件體積小、功能強、功耗小、一致性好、使用方便、性能/價格比高實時性除開電路引入的延時外,處理是實時的由計算機的處理速度決定高頻信號的處理可以處理包括微波毫米波乃至光波信號按照奈準則的要求,受S/H、A/D和處理速度的限制DigitalSignalProcessor數字信號處理器微處理器(Microprocessor)的分類通用處理器(GPP)采用馮.諾依曼結構,程序和數據的存儲空間合二而一8-bitApple(6502),NECPC-8000(Z80)8086/286/386/486/Pentium/PentiumII/PentiumIIIPowerPc64-bitCPU(SUNSparc,DECAlpha,HP)CISC復雜指令計算機,RISC精簡指令計算機采取各種方法提高計算速度,提高時鐘頻率,高速總線,多級Cashe,協處理器等SingleChipComputer/MicroControllerUnit(MCU)除開通用CPU所具有的ALU和CU,還有存儲器(RAM/ROM)寄存器,時鐘,計數器,定時器,串/并口,有的還有A/D,D/AINTELMCS/48/51/96(98)MOTOROLAHCS05/011DSP采用哈佛結構,程序和數據分開存儲采用一系列措施保證數字信號的處理速度,如對FFT的專門優化MCU與DSP的簡單比較MCUDSP低檔高檔低檔高檔指令周期(ns)60040505乘加時間(ns)190080505US$/MIPS1.50.50.150.1DSP處理器與通用處理器的比較考慮一個數字信號處理的實例,比如有限沖擊響應濾波器(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硬件結構的特點和軟件的特點硬件結構的特點1Harvard結構程序與數據存儲空間分開,各有獨立的地址總線和數據總線,取指和讀數可以同時進行,從而提高速度,目前的水平已達到90億次浮點運算/秒(9000MFLOPS)2采用流水作業(pipline)3獨立的硬件乘法器乘法指令在單周期內完成,優化卷積、數字濾波、FFT、相關、矩陣運算等算法中的大量重復乘法4循環尋址(Circularaddressing),位倒序(bit-reversed)等特殊指令使FFT、卷積等運算中的尋址、排序及計算速度大大提高.1024點FFT的時間已小于1μs5獨立的DMA總線和控制器有一組或多組獨立的DMA總線,與CPU的程序、數據總線并行工作,在不影響CPU工作的條件下,DMA速度已達800Mbyte/s以上6多處理器接口使多個處理器可以很方便的并行或串行工作以提高處理速度7JTAG(JointTestActionGroup)標準測試接口(IEEE1149標準接口)便于對DSP作片上的在線仿真和多DSP條件下的調試軟件的特點1立即數尋址2直接尋址TI公司的TMS320系列芯片將數據存儲器分為512頁,每頁128字.設置一個數據頁指針DP(DataPointer),用9-bit指向一個數據頁,再加上一個7-bit的頁內偏移地址,形成16-bit的數據地址.這樣有利于大大加快尋址速度.3間接尋址8個輔助寄存器(AR0--AR7),由一個輔助寄存器指針(ARP3-bit)來指定一個輔助寄存器算術單元(ARAU)作16-bit無符號數運算,決定一個新的地址,裝入輔助寄存器中的一個AR0--AR7的內容相當靈活,可以裝入立即數,加上立即數,減去立即數;也可以從數據存儲器裝入地址;還可以作以下的變址尋址:將該AR的內容加1或減1,再尋址(循環常用)將該AR的內容加上或減去AR0的內容,再尋址將該AR的內容逆向進位加上或減去AR0的內容,再尋址由于采用反向進位,得以實現位倒序尋址原序原地址位倒序后地址位倒序0000000010011004201001023011110641000011510110156110011371111117例:MACX0,Y0,AX:(R0)+,X0Y:(R4)+N4,Y0這條指令命令DSP56300:將寄存器X0和Y0中的數相乘結果加到AccA中將寄存器R0所指的X存儲器地址中的值裝入寄存器X0將寄存器R4所指的Y存儲器地址中的值裝入寄存器Y0R0的值加1寄存器N4的值加給R4可以看到,運算后的次序符合FFT的蝶形運算的要求采用循環尋址實現零開銷的循環,大大增進了如卷積、相關、矩陣運算、FIR等算法的實現速度4獨特的乘法指令DSP開發工具1代碼生成工具C優化編譯器匯編語言工具匯編器(Assembler)連接器(Linker)歸檔器(Archiver)交叉引用列表器(Cross-ReferenceLister)2系統集成及調試環境與工具(以TI為例)調試器接口(C/Assemblysourcedebugger)為嵌入式系統的開發提供了豐富的功能與靈活性.該調試器是下面要討論的軟仿真器、評估模塊、在線仿真器等的標準接口.該調試器可以運行在PC或SPARC等平臺上,對用C或匯編語言寫的程序提供完全的控制.其代碼分析功能通過快速確認最費時的程序段,提示應該將開發時間集中在什么地方軟仿真器(Simulator)TMS320軟件仿真器是一個軟件程序,使用主機的處理器和存儲器來仿真TMS320DSP的微處理器和微計算機模式,從而進行軟件開發和非實時的程序驗證.在PC機上,典型的仿真速度為每秒幾百條指令DSP入門套件(DSK,DSPStarterKit)為初學者設計和生產的DSK是一種用以評價DSP平臺的廉價的開發工具.在PC機的DOS或Windows下,用戶可以使用DSK來作DSP的實驗,進行諸如控制系統、語音處理等應用;也可以用來編寫和運行實時源代碼,并對其作評估;還可以用來調試用戶自己的系統銀杏開發、實驗系統(DES,DspExpirementSystem)銀杏DES含有TMS320C542-40及相關接口,還特別內置了信號源,附帶虛擬示波器和頻譜儀軟件.采用這套系統使用戶對外設的依賴降到最低,僅僅需要一張卡和一套軟件就可以進行DSP的開發或實驗.標準評估模塊(EVM)TMS320的評估模塊(EVM)是廉價的開發板,用于器件評估、標準程序檢查、以及有限的系統調試.EVM是一個PC插件,包括目標處理器、一個小容量的存儲器、和有限的外設.EVM可以用來實時運行代碼,并與外部系統接口TMS320硬件仿真器(Emulators)擴展開發系統(XDS,extendeddevelopmentsystem)是功能強大的全速仿真器,用以作系統級的集成與調試.掃描式仿真(Scan-BasedEmulator)是一種獨特的、非插入式的系統仿真、集成、調試方法.使用這種方法,程序可以從片內或片外的目標存儲器實時執行,在任何時鐘速度下都不會引入額外的等待狀態3實時操作系統對于簡單的DSP任務,用前面介紹的開發工具已能滿足開發任務的需要,往往不需要操作系統就可以進行.但當DSP的任務增加和任務的復雜性提高,例如對實時性要求很高的多DSP并行操作的多任務系統,可能就需要某種操作系統來管理系統的資源,安排多任務的執行和任務間的信息交換等DSP的操作系統SPOXSPOX是專為DSP系統設計和軟件開發而設計的實時多任務操作系統.它提供一組由C語言調用的功能,與所開發的硬件平臺無關,從而將DSP的實時應用部分從許多低層的硬件細節中隔離出來.它作為DSP實時應用開發的一個集成環境,完成從新的算法概念出發,直到把應用軟件裝入產品硬件的整個開發任務DSP芯片介紹1什么是DSP芯片DSP芯片,也稱數字信號處理器,是一種具有特殊結構的微處理器.DSP芯片的內部采用程序和數據分開的哈佛結構,具有專門的硬件乘法器,廣泛采用流水線操作,提供特殊的DSP指令,可以用來快速地實現各種數字信號處理算法.根據數字信號處理的要求,DSP芯片一般具有如下的一些主要特點:(1)在一個指令周期內可完成一次乘法和一次加法.(2)程序和數據空間分開,可以同時訪問指令和數據.(3)片內具有快速RAM,通常可通過獨立的數據總線在兩塊中同時訪問.(4)具有低開銷或無開銷循環及跳轉的硬件支持.(5)快速的中斷處理和硬件I/O支持.(6)具有在單周期內操作的多個硬件地址產生器.(7)可以并行執行多個操作.(8)支持流水線操作,使取指、譯碼和執行等操作可以重疊執行.與通用微處理器相比,DSP芯片的其他通用功能相對較弱些.2DSP芯片的發展世界上第一個單片DSP芯片是1978年AMI公司宣布的S2811,1979年美國Iintel公司發布的商用可編程期間2920是DSP芯片的一個主要里程碑.這兩種芯片內部都沒有現代DSP芯片所必須的單周期芯片.1980年.日本NEC公司推出的μPD7720是第一個具有乘法器的商用DSP芯片.第一個采用CMOS工藝生產浮點DSP芯片的是日本的Hitachi公司,它于1982年推出了浮點DSP芯片.1983年,日本的Fujitsu公司推出的MB8764,其指令周期為120ns,且具有雙內部總線,從而處理的吞吐量發生了一個大的飛躍.而第一個高性能的浮點DSP芯片應是AT&T公司于1984年推出的DSP32.在這么多的DSP芯片種類中,最成功的是美國德克薩斯儀器公司(TexasInstruments,簡稱TI)的一系列產品.TI公司災982年成功推出啟迪一代DSP芯片TMS32010及其系列產品TMS32011、TMS32C10/C14/C15/C16/C17等,之后相繼推出了第二代DSP芯片TMS32020、TMS320C25/C26/C28,第三代DSP芯片TMS32C30/C31/C32,第四代DSP芯片TMS32C40/C44,第五代DSP芯片TMS32C50/C51/C52/C53以及集多個DSP于一體的高性能DSP芯片TMS32C80/C82等.自1980年以來,DSP芯片得到了突飛猛進的發展,DSP芯片的應用越來越廣泛.從運算速度來看,MAC(一次乘法和一次加法)時間已經從80年代初的400ns(如TMS32010)降低到40ns(如TMS32C40),處理能力提高了10多倍.DSP芯片內部關鍵的乘法器部件從1980年的占模區的40左右下降到5以下,片內RAM增加一個數量級以上.從制造工藝來看,1980年采用4μ的N溝道MOS工藝,而現在則普遍采用亞微米CMOS工藝.DSP芯片的引腳數量從1980年的最多64個增加到現在的200個以上,引腳數量的增加,意味著結構靈活性的增加.此外,DSP芯片的發展,是DSP系統的成本、體積、重量和功耗都有很大程度的下降.3DSP芯片的分類DSP的芯片可以按照以下的三種方式進行分類.1.按基礎特性分這是根據DSP芯片的工作時鐘和指令類型來分類的.如果DSP芯片在某時鐘頻率范圍內的任何頻率上能正常工作,除計算速度有變化外,沒有性能的下降,這類DSP芯片一般稱之為靜態DSP芯片.如果有兩種或兩種以上的DSP芯片,它們的指令集和相應的機器代碼機管腳結構相互兼容,則這類DSP芯片稱之為一致性的DSP芯片.2.按數據格式分這是根據DSP芯片工作的數據格式來分類的.數據以定點格式工作的DSP芯片稱之為定點DSP芯片.以浮點格式工作的稱為DSP芯片.不同的浮點DSP芯片所采用的浮點格式不完全一樣,有的DSP芯片采用自定義的浮點格式,有的DSP芯片則采用IEEE的標準浮點格式.3.按用途分按照DSP芯片的用途來分,可分為通用型DSP芯片和專用型的DSP芯片.通用型DSP芯片適合普通的DSP應用,如TI公司的一系列DSP芯片.專用型DSP芯片市為特定的DSP運算而設計,更適合特殊的運算,如數字濾波,卷積和FFT等.4DSP芯片的選擇設計DSP應用系統,選擇DSP芯片時非常重要的一個環節.只有選定了DSP芯片才能進一步設計外圍電路集系統的其它電路.總的來說,DSP芯片的選擇應根據實際的應用系統需要而確定.一般來說,選擇DSP芯片時考慮如下諸多因素.1.DSP芯片的運算速度.運算速度是DSP芯片的一個最重要的性能指標,也是選擇DSP芯片時所需要考慮的一個主要因素.DSP芯片的運算速度可以用以下幾種性能指標來衡量:(1)指令周期.就是執行一條指令所需要的時間,通常以ns為單位.(2)MAC時間.即一次乘法加上一次加法的時間.(3)FFT執行時間.即運行一個N點FFT程序所需的時間.(4)MIPS.即每秒執行百萬條指令.(5)MOPS.即每秒執行百萬次操作.(6)MFLOPS.即每秒執行百萬次浮點操作.(7)BOPS.即每秒執行十億次操作.2.DSP芯片的價格.根據一個價格實際的應用情況,確定一個價格適中的DSP芯片.3.DSP芯片的硬件資源.4.DSP芯片的運算速度.5.DSP芯片的開發工具.6.DSP芯片的功耗.7.其它的因素,如封裝的形式、質量標準、生命周期等.DSP應用系統的運算量是確定選用處理能力多大的DSP芯片的基礎.那么如何確定DSP系統的運算量以選擇DSP芯片呢?1.按樣點處理按樣點處理就是DSP算法對每一個輸入樣點循環一次.例如;一個采用LMS算法的256抽頭德的自適應FIR濾波器,假定每個抽頭的計算需要3個MAC周期,則256抽頭計算需要256*3=768個MAC周期.如果采樣頻率為8KHz,即樣點之間的間隔為125μs的時間,DSP芯片的MAC周期為200μs,則768個周期需要153.6μs的時間,顯然無法實時處理,需要選用速度更快的芯片.2.按幀處理有些數字信號處理算法不是每個輸入樣點循環一次,而是每隔一定的時間間隔(通常稱為幀)循環一次.所以選擇DSP芯片應該比較一幀內DSP芯片的處理能力和DSP算法的運算量.假設DSP芯片的指令周期為P(ns),一幀的時間為⊿τ(ns),則該DSP芯片在一幀內所提供的最大運算量為⊿τ/P條指令.5DSP芯片的基本結構DSP芯片的基本結構包括:(1)哈佛結構;(2)流水線操作;(3)專用的硬件乘法器;(4)特殊的DSP指令;(5)快速的指令周期.哈佛結構哈佛結構的主要特點是將程序和數據存儲在不同的存儲空間中,即程序存儲器和數據存儲器是兩個相互獨立的存儲器,每個存儲器獨立編址,獨立訪問.與兩個存儲器相對應的是系統中設置了程序總線和數據總線,從而使數據的吞吐率提高了一倍.由于程序和存儲器在兩個分開的空間中,因此取指和執行能完全重疊.流水線與哈佛結構相關,DSP芯片廣泛采用流水線以減少指令執行的時間,從而增強了處理器的處理能力.處理器可以并行處理二到四條指令,每條指令處于流水線的不同階段.入圖示出一個三級流水線操作的例子.CLLOUT1取指NN-1N-2譯碼N-1NN-2執行N-2N-1N圖4-1三級流水線操作專用的硬件乘法器乘法速度越快,DSP處理器的性能越高.由于具有專用的應用乘法器,乘法可在一個指令周期內完成.特殊的DSP指令DSP芯片是采用特殊的指令.快速的指令周期哈佛結構、流水線操作、專用的硬件乘法器、特殊的DSP指令再加上集成電路的優化設計可使DSP芯片的指令周期在200ns以下.6DSP系統的特點數字信號處理系統是以數字信號處理為基礎,因此具有數字處理的全部特點:(1)接口方便.DSP系統與其它以現代數字技術為基礎的系統或設備都是相互兼容,這樣的系統接口以實現某種功能要比模擬系統與這些系統接口要容易的多.(2)編程方便.DSP系統種的可編程DSP芯片可使設計人員在開發過程中靈活方便地對軟件進行修改和升級.(3)穩定性好.DSP系統以數字處理為基礎,受環境溫度以及噪聲的影響較小,可靠性高.(4)精度高.16位數字系統可以達到的精度.(5)可重復性好.模擬系統的性能受元器件參數性能變化比較大,而數字系統基本上不受影響,因此數字系統便于測試,調試和大規模生產.(6)集成方便.DSP系統中的數字部件有高度的規范性,便于大規模集成.7DSP芯片的應用自從DSP芯片誕生以來,DSP芯片得到了飛速的發展.DSP芯片高速發展,一方面得益于集成電路的發展,另一方面也得益于巨大的市場.在短短的十多年時間,DSP芯片已經在信號處理、通信、雷達等許多領域得到廣泛的應用.目前,DSP芯片的價格也越來越低,性能價格比日益提高,具有巨大的應用潛力.DSP芯片的應用主要有:(1)信號處理--如,數字濾波、自適應濾波、快速傅里葉變換、相關運算、頻譜分析、卷積等.(2)通信--如,調制解調器、自適應均衡、數據加密、數據壓縮、回坡抵消、多路復用、傳真、擴頻通信、糾錯編碼、波形產生等.(3)語音--如語音編碼、語音合成、語音識別、語音增強、說話人辨認、說話人確認、語音郵件、語音儲存等.(4)圖像/圖形--如二維和三維圖形處理、圖像壓縮與傳輸、圖像增強、動畫、機器人視覺等.(5)軍事--如保密通信、雷達處理、聲納處理、導航等.(6)儀器儀表--如頻譜分析、函數發生、鎖相環、地震處理等.(7)自動控制--如引擎控制、深空、自動駕駛、機器人控制、磁盤控制.(8)醫療--如助聽、超聲設備、診斷工具、病人監護等.(9)家用電器--如高保真音響、音樂合成、音調控制、玩具與游戲、數字電話/電視等DSP芯片開發和產品應用一、DSP程序開發為了使DSP有效運行、必須要用能充分考慮DSP內部并行性的匯編語言進行編制DSP程序.前面提到,美國TI公司的DSP推銷員說DSP編程容易,實際上他是指DSP的匯編語言相對于計算機的匯編語言而言,比較容易一些,因為沒有像計算機匯編語言那樣復雜.但是,對于習慣用高級語言編
樓上強人矣
0
回復
@ghost
DigitalSignalProcessing數字信號處理作為一個案例研究,我們來考慮數字領域里最通常的功能:濾波.簡單地說,濾波就是對信號進行處理,以改善其特性.例如,濾波可以從信號里清除噪聲或靜電干擾,從而改善其信噪比.為什么要用微處理器,而不是模擬器件來對信號做濾波呢?我們來看看其優越性:模擬濾波器(或者更一般地說,模擬電路)的性能要取決于溫度等環境因素.而數字濾波器則基本上不受環境的影響.數字濾波易于在非常小的寬容度內進行復制,因為其性能并不取決于性能已偏離正常值的器件的組合.一個模擬濾波器一旦制造出來,其特性(例如通帶頻率范圍)是不容易改變的.使用微處理器來實現數字濾波器,就可以通過對其重新編程來改變濾波的特性.信號處理方式的比較比較因素模擬方式數字方式修改設計的靈活性修改硬件設計,或調整硬件參數改變軟件設置精度元器件精度A/D的位數和計算機字長,算法可靠性和可重復性受環境溫度、濕度、噪聲、不受這些因素的影響電磁場等的干擾和影響大大規模集成盡管已有一些模擬集成電路,但品種較少、集成度不高、價格較高DSP器件體積小、功能強、功耗小、一致性好、使用方便、性能/價格比高實時性除開電路引入的延時外,處理是實時的由計算機的處理速度決定高頻信號的處理可以處理包括微波毫米波乃至光波信號按照奈準則的要求,受S/H、A/D和處理速度的限制DigitalSignalProcessor數字信號處理器微處理器(Microprocessor)的分類通用處理器(GPP)采用馮.諾依曼結構,程序和數據的存儲空間合二而一8-bitApple(6502),NECPC-8000(Z80)8086/286/386/486/Pentium/PentiumII/PentiumIIIPowerPc64-bitCPU(SUNSparc,DECAlpha,HP)CISC復雜指令計算機,RISC精簡指令計算機采取各種方法提高計算速度,提高時鐘頻率,高速總線,多級Cashe,協處理器等SingleChipComputer/MicroControllerUnit(MCU)除開通用CPU所具有的ALU和CU,還有存儲器(RAM/ROM)寄存器,時鐘,計數器,定時器,串/并口,有的還有A/D,D/AINTELMCS/48/51/96(98)MOTOROLAHCS05/011DSP采用哈佛結構,程序和數據分開存儲采用一系列措施保證數字信號的處理速度,如對FFT的專門優化MCU與DSP的簡單比較MCUDSP低檔高檔低檔高檔指令周期(ns)60040505乘加時間(ns)190080505US$/MIPS1.50.50.150.1DSP處理器與通用處理器的比較考慮一個數字信號處理的實例,比如有限沖擊響應濾波器(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硬件結構的特點和軟件的特點硬件結構的特點1Harvard結構程序與數據存儲空間分開,各有獨立的地址總線和數據總線,取指和讀數可以同時進行,從而提高速度,目前的水平已達到90億次浮點運算/秒(9000MFLOPS)2采用流水作業(pipline)3獨立的硬件乘法器乘法指令在單周期內完成,優化卷積、數字濾波、FFT、相關、矩陣運算等算法中的大量重復乘法4循環尋址(Circularaddressing),位倒序(bit-reversed)等特殊指令使FFT、卷積等運算中的尋址、排序及計算速度大大提高.1024點FFT的時間已小于1μs5獨立的DMA總線和控制器有一組或多組獨立的DMA總線,與CPU的程序、數據總線并行工作,在不影響CPU工作的條件下,DMA速度已達800Mbyte/s以上6多處理器接口使多個處理器可以很方便的并行或串行工作以提高處理速度7JTAG(JointTestActionGroup)標準測試接口(IEEE1149標準接口)便于對DSP作片上的在線仿真和多DSP條件下的調試軟件的特點1立即數尋址2直接尋址TI公司的TMS320系列芯片將數據存儲器分為512頁,每頁128字.設置一個數據頁指針DP(DataPointer),用9-bit指向一個數據頁,再加上一個7-bit的頁內偏移地址,形成16-bit的數據地址.這樣有利于大大加快尋址速度.3間接尋址8個輔助寄存器(AR0--AR7),由一個輔助寄存器指針(ARP3-bit)來指定一個輔助寄存器算術單元(ARAU)作16-bit無符號數運算,決定一個新的地址,裝入輔助寄存器中的一個AR0--AR7的內容相當靈活,可以裝入立即數,加上立即數,減去立即數;也可以從數據存儲器裝入地址;還可以作以下的變址尋址:將該AR的內容加1或減1,再尋址(循環常用)將該AR的內容加上或減去AR0的內容,再尋址將該AR的內容逆向進位加上或減去AR0的內容,再尋址由于采用反向進位,得以實現位倒序尋址原序原地址位倒序后地址位倒序0000000010011004201001023011110641000011510110156110011371111117例:MACX0,Y0,AX:(R0)+,X0Y:(R4)+N4,Y0這條指令命令DSP56300:將寄存器X0和Y0中的數相乘結果加到AccA中將寄存器R0所指的X存儲器地址中的值裝入寄存器X0將寄存器R4所指的Y存儲器地址中的值裝入寄存器Y0R0的值加1寄存器N4的值加給R4可以看到,運算后的次序符合FFT的蝶形運算的要求采用循環尋址實現零開銷的循環,大大增進了如卷積、相關、矩陣運算、FIR等算法的實現速度4獨特的乘法指令DSP開發工具1代碼生成工具C優化編譯器匯編語言工具匯編器(Assembler)連接器(Linker)歸檔器(Archiver)交叉引用列表器(Cross-ReferenceLister)2系統集成及調試環境與工具(以TI為例)調試器接口(C/Assemblysourcedebugger)為嵌入式系統的開發提供了豐富的功能與靈活性.該調試器是下面要討論的軟仿真器、評估模塊、在線仿真器等的標準接口.該調試器可以運行在PC或SPARC等平臺上,對用C或匯編語言寫的程序提供完全的控制.其代碼分析功能通過快速確認最費時的程序段,提示應該將開發時間集中在什么地方軟仿真器(Simulator)TMS320軟件仿真器是一個軟件程序,使用主機的處理器和存儲器來仿真TMS320DSP的微處理器和微計算機模式,從而進行軟件開發和非實時的程序驗證.在PC機上,典型的仿真速度為每秒幾百條指令DSP入門套件(DSK,DSPStarterKit)為初學者設計和生產的DSK是一種用以評價DSP平臺的廉價的開發工具.在PC機的DOS或Windows下,用戶可以使用DSK來作DSP的實驗,進行諸如控制系統、語音處理等應用;也可以用來編寫和運行實時源代碼,并對其作評估;還可以用來調試用戶自己的系統銀杏開發、實驗系統(DES,DspExpirementSystem)銀杏DES含有TMS320C542-40及相關接口,還特別內置了信號源,附帶虛擬示波器和頻譜儀軟件.采用這套系統使用戶對外設的依賴降到最低,僅僅需要一張卡和一套軟件就可以進行DSP的開發或實驗.標準評估模塊(EVM)TMS320的評估模塊(EVM)是廉價的開發板,用于器件評估、標準程序檢查、以及有限的系統調試.EVM是一個PC插件,包括目標處理器、一個小容量的存儲器、和有限的外設.EVM可以用來實時運行代碼,并與外部系統接口TMS320硬件仿真器(Emulators)擴展開發系統(XDS,extendeddevelopmentsystem)是功能強大的全速仿真器,用以作系統級的集成與調試.掃描式仿真(Scan-BasedEmulator)是一種獨特的、非插入式的系統仿真、集成、調試方法.使用這種方法,程序可以從片內或片外的目標存儲器實時執行,在任何時鐘速度下都不會引入額外的等待狀態3實時操作系統對于簡單的DSP任務,用前面介紹的開發工具已能滿足開發任務的需要,往往不需要操作系統就可以進行.但當DSP的任務增加和任務的復雜性提高,例如對實時性要求很高的多DSP并行操作的多任務系統,可能就需要某種操作系統來管理系統的資源,安排多任務的執行和任務間的信息交換等DSP的操作系統SPOXSPOX是專為DSP系統設計和軟件開發而設計的實時多任務操作系統.它提供一組由C語言調用的功能,與所開發的硬件平臺無關,從而將DSP的實時應用部分從許多低層的硬件細節中隔離出來.它作為DSP實時應用開發的一個集成環境,完成從新的算法概念出發,直到把應用軟件裝入產品硬件的整個開發任務DSP芯片介紹1什么是DSP芯片DSP芯片,也稱數字信號處理器,是一種具有特殊結構的微處理器.DSP芯片的內部采用程序和數據分開的哈佛結構,具有專門的硬件乘法器,廣泛采用流水線操作,提供特殊的DSP指令,可以用來快速地實現各種數字信號處理算法.根據數字信號處理的要求,DSP芯片一般具有如下的一些主要特點:(1)在一個指令周期內可完成一次乘法和一次加法.(2)程序和數據空間分開,可以同時訪問指令和數據.(3)片內具有快速RAM,通常可通過獨立的數據總線在兩塊中同時訪問.(4)具有低開銷或無開銷循環及跳轉的硬件支持.(5)快速的中斷處理和硬件I/O支持.(6)具有在單周期內操作的多個硬件地址產生器.(7)可以并行執行多個操作.(8)支持流水線操作,使取指、譯碼和執行等操作可以重疊執行.與通用微處理器相比,DSP芯片的其他通用功能相對較弱些.2DSP芯片的發展世界上第一個單片DSP芯片是1978年AMI公司宣布的S2811,1979年美國Iintel公司發布的商用可編程期間2920是DSP芯片的一個主要里程碑.這兩種芯片內部都沒有現代DSP芯片所必須的單周期芯片.1980年.日本NEC公司推出的μPD7720是第一個具有乘法器的商用DSP芯片.第一個采用CMOS工藝生產浮點DSP芯片的是日本的Hitachi公司,它于1982年推出了浮點DSP芯片.1983年,日本的Fujitsu公司推出的MB8764,其指令周期為120ns,且具有雙內部總線,從而處理的吞吐量發生了一個大的飛躍.而第一個高性能的浮點DSP芯片應是AT&T公司于1984年推出的DSP32.在這么多的DSP芯片種類中,最成功的是美國德克薩斯儀器公司(TexasInstruments,簡稱TI)的一系列產品.TI公司災982年成功推出啟迪一代DSP芯片TMS32010及其系列產品TMS32011、TMS32C10/C14/C15/C16/C17等,之后相繼推出了第二代DSP芯片TMS32020、TMS320C25/C26/C28,第三代DSP芯片TMS32C30/C31/C32,第四代DSP芯片TMS32C40/C44,第五代DSP芯片TMS32C50/C51/C52/C53以及集多個DSP于一體的高性能DSP芯片TMS32C80/C82等.自1980年以來,DSP芯片得到了突飛猛進的發展,DSP芯片的應用越來越廣泛.從運算速度來看,MAC(一次乘法和一次加法)時間已經從80年代初的400ns(如TMS32010)降低到40ns(如TMS32C40),處理能力提高了10多倍.DSP芯片內部關鍵的乘法器部件從1980年的占模區的40左右下降到5以下,片內RAM增加一個數量級以上.從制造工藝來看,1980年采用4μ的N溝道MOS工藝,而現在則普遍采用亞微米CMOS工藝.DSP芯片的引腳數量從1980年的最多64個增加到現在的200個以上,引腳數量的增加,意味著結構靈活性的增加.此外,DSP芯片的發展,是DSP系統的成本、體積、重量和功耗都有很大程度的下降.3DSP芯片的分類DSP的芯片可以按照以下的三種方式進行分類.1.按基礎特性分這是根據DSP芯片的工作時鐘和指令類型來分類的.如果DSP芯片在某時鐘頻率范圍內的任何頻率上能正常工作,除計算速度有變化外,沒有性能的下降,這類DSP芯片一般稱之為靜態DSP芯片.如果有兩種或兩種以上的DSP芯片,它們的指令集和相應的機器代碼機管腳結構相互兼容,則這類DSP芯片稱之為一致性的DSP芯片.2.按數據格式分這是根據DSP芯片工作的數據格式來分類的.數據以定點格式工作的DSP芯片稱之為定點DSP芯片.以浮點格式工作的稱為DSP芯片.不同的浮點DSP芯片所采用的浮點格式不完全一樣,有的DSP芯片采用自定義的浮點格式,有的DSP芯片則采用IEEE的標準浮點格式.3.按用途分按照DSP芯片的用途來分,可分為通用型DSP芯片和專用型的DSP芯片.通用型DSP芯片適合普通的DSP應用,如TI公司的一系列DSP芯片.專用型DSP芯片市為特定的DSP運算而設計,更適合特殊的運算,如數字濾波,卷積和FFT等.4DSP芯片的選擇設計DSP應用系統,選擇DSP芯片時非常重要的一個環節.只有選定了DSP芯片才能進一步設計外圍電路集系統的其它電路.總的來說,DSP芯片的選擇應根據實際的應用系統需要而確定.一般來說,選擇DSP芯片時考慮如下諸多因素.1.DSP芯片的運算速度.運算速度是DSP芯片的一個最重要的性能指標,也是選擇DSP芯片時所需要考慮的一個主要因素.DSP芯片的運算速度可以用以下幾種性能指標來衡量:(1)指令周期.就是執行一條指令所需要的時間,通常以ns為單位.(2)MAC時間.即一次乘法加上一次加法的時間.(3)FFT執行時間.即運行一個N點FFT程序所需的時間.(4)MIPS.即每秒執行百萬條指令.(5)MOPS.即每秒執行百萬次操作.(6)MFLOPS.即每秒執行百萬次浮點操作.(7)BOPS.即每秒執行十億次操作.2.DSP芯片的價格.根據一個價格實際的應用情況,確定一個價格適中的DSP芯片.3.DSP芯片的硬件資源.4.DSP芯片的運算速度.5.DSP芯片的開發工具.6.DSP芯片的功耗.7.其它的因素,如封裝的形式、質量標準、生命周期等.DSP應用系統的運算量是確定選用處理能力多大的DSP芯片的基礎.那么如何確定DSP系統的運算量以選擇DSP芯片呢?1.按樣點處理按樣點處理就是DSP算法對每一個輸入樣點循環一次.例如;一個采用LMS算法的256抽頭德的自適應FIR濾波器,假定每個抽頭的計算需要3個MAC周期,則256抽頭計算需要256*3=768個MAC周期.如果采樣頻率為8KHz,即樣點之間的間隔為125μs的時間,DSP芯片的MAC周期為200μs,則768個周期需要153.6μs的時間,顯然無法實時處理,需要選用速度更快的芯片.2.按幀處理有些數字信號處理算法不是每個輸入樣點循環一次,而是每隔一定的時間間隔(通常稱為幀)循環一次.所以選擇DSP芯片應該比較一幀內DSP芯片的處理能力和DSP算法的運算量.假設DSP芯片的指令周期為P(ns),一幀的時間為⊿τ(ns),則該DSP芯片在一幀內所提供的最大運算量為⊿τ/P條指令.5DSP芯片的基本結構DSP芯片的基本結構包括:(1)哈佛結構;(2)流水線操作;(3)專用的硬件乘法器;(4)特殊的DSP指令;(5)快速的指令周期.哈佛結構哈佛結構的主要特點是將程序和數據存儲在不同的存儲空間中,即程序存儲器和數據存儲器是兩個相互獨立的存儲器,每個存儲器獨立編址,獨立訪問.與兩個存儲器相對應的是系統中設置了程序總線和數據總線,從而使數據的吞吐率提高了一倍.由于程序和存儲器在兩個分開的空間中,因此取指和執行能完全重疊.流水線與哈佛結構相關,DSP芯片廣泛采用流水線以減少指令執行的時間,從而增強了處理器的處理能力.處理器可以并行處理二到四條指令,每條指令處于流水線的不同階段.入圖示出一個三級流水線操作的例子.CLLOUT1取指NN-1N-2譯碼N-1NN-2執行N-2N-1N圖4-1三級流水線操作專用的硬件乘法器乘法速度越快,DSP處理器的性能越高.由于具有專用的應用乘法器,乘法可在一個指令周期內完成.特殊的DSP指令DSP芯片是采用特殊的指令.快速的指令周期哈佛結構、流水線操作、專用的硬件乘法器、特殊的DSP指令再加上集成電路的優化設計可使DSP芯片的指令周期在200ns以下.6DSP系統的特點數字信號處理系統是以數字信號處理為基礎,因此具有數字處理的全部特點:(1)接口方便.DSP系統與其它以現代數字技術為基礎的系統或設備都是相互兼容,這樣的系統接口以實現某種功能要比模擬系統與這些系統接口要容易的多.(2)編程方便.DSP系統種的可編程DSP芯片可使設計人員在開發過程中靈活方便地對軟件進行修改和升級.(3)穩定性好.DSP系統以數字處理為基礎,受環境溫度以及噪聲的影響較小,可靠性高.(4)精度高.16位數字系統可以達到的精度.(5)可重復性好.模擬系統的性能受元器件參數性能變化比較大,而數字系統基本上不受影響,因此數字系統便于測試,調試和大規模生產.(6)集成方便.DSP系統中的數字部件有高度的規范性,便于大規模集成.7DSP芯片的應用自從DSP芯片誕生以來,DSP芯片得到了飛速的發展.DSP芯片高速發展,一方面得益于集成電路的發展,另一方面也得益于巨大的市場.在短短的十多年時間,DSP芯片已經在信號處理、通信、雷達等許多領域得到廣泛的應用.目前,DSP芯片的價格也越來越低,性能價格比日益提高,具有巨大的應用潛力.DSP芯片的應用主要有:(1)信號處理--如,數字濾波、自適應濾波、快速傅里葉變換、相關運算、頻譜分析、卷積等.(2)通信--如,調制解調器、自適應均衡、數據加密、數據壓縮、回坡抵消、多路復用、傳真、擴頻通信、糾錯編碼、波形產生等.(3)語音--如語音編碼、語音合成、語音識別、語音增強、說話人辨認、說話人確認、語音郵件、語音儲存等.(4)圖像/圖形--如二維和三維圖形處理、圖像壓縮與傳輸、圖像增強、動畫、機器人視覺等.(5)軍事--如保密通信、雷達處理、聲納處理、導航等.(6)儀器儀表--如頻譜分析、函數發生、鎖相環、地震處理等.(7)自動控制--如引擎控制、深空、自動駕駛、機器人控制、磁盤控制.(8)醫療--如助聽、超聲設備、診斷工具、病人監護等.(9)家用電器--如高保真音響、音樂合成、音調控制、玩具與游戲、數字電話/電視等DSP芯片開發和產品應用一、DSP程序開發為了使DSP有效運行、必須要用能充分考慮DSP內部并行性的匯編語言進行編制DSP程序.前面提到,美國TI公司的DSP推銷員說DSP編程容易,實際上他是指DSP的匯編語言相對于計算機的匯編語言而言,比較容易一些,因為沒有像計算機匯編語言那樣復雜.但是,對于習慣用高級語言編
謝謝!
0
回復
@ghost
DigitalSignalProcessing數字信號處理作為一個案例研究,我們來考慮數字領域里最通常的功能:濾波.簡單地說,濾波就是對信號進行處理,以改善其特性.例如,濾波可以從信號里清除噪聲或靜電干擾,從而改善其信噪比.為什么要用微處理器,而不是模擬器件來對信號做濾波呢?我們來看看其優越性:模擬濾波器(或者更一般地說,模擬電路)的性能要取決于溫度等環境因素.而數字濾波器則基本上不受環境的影響.數字濾波易于在非常小的寬容度內進行復制,因為其性能并不取決于性能已偏離正常值的器件的組合.一個模擬濾波器一旦制造出來,其特性(例如通帶頻率范圍)是不容易改變的.使用微處理器來實現數字濾波器,就可以通過對其重新編程來改變濾波的特性.信號處理方式的比較比較因素模擬方式數字方式修改設計的靈活性修改硬件設計,或調整硬件參數改變軟件設置精度元器件精度A/D的位數和計算機字長,算法可靠性和可重復性受環境溫度、濕度、噪聲、不受這些因素的影響電磁場等的干擾和影響大大規模集成盡管已有一些模擬集成電路,但品種較少、集成度不高、價格較高DSP器件體積小、功能強、功耗小、一致性好、使用方便、性能/價格比高實時性除開電路引入的延時外,處理是實時的由計算機的處理速度決定高頻信號的處理可以處理包括微波毫米波乃至光波信號按照奈準則的要求,受S/H、A/D和處理速度的限制DigitalSignalProcessor數字信號處理器微處理器(Microprocessor)的分類通用處理器(GPP)采用馮.諾依曼結構,程序和數據的存儲空間合二而一8-bitApple(6502),NECPC-8000(Z80)8086/286/386/486/Pentium/PentiumII/PentiumIIIPowerPc64-bitCPU(SUNSparc,DECAlpha,HP)CISC復雜指令計算機,RISC精簡指令計算機采取各種方法提高計算速度,提高時鐘頻率,高速總線,多級Cashe,協處理器等SingleChipComputer/MicroControllerUnit(MCU)除開通用CPU所具有的ALU和CU,還有存儲器(RAM/ROM)寄存器,時鐘,計數器,定時器,串/并口,有的還有A/D,D/AINTELMCS/48/51/96(98)MOTOROLAHCS05/011DSP采用哈佛結構,程序和數據分開存儲采用一系列措施保證數字信號的處理速度,如對FFT的專門優化MCU與DSP的簡單比較MCUDSP低檔高檔低檔高檔指令周期(ns)60040505乘加時間(ns)190080505US$/MIPS1.50.50.150.1DSP處理器與通用處理器的比較考慮一個數字信號處理的實例,比如有限沖擊響應濾波器(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硬件結構的特點和軟件的特點硬件結構的特點1Harvard結構程序與數據存儲空間分開,各有獨立的地址總線和數據總線,取指和讀數可以同時進行,從而提高速度,目前的水平已達到90億次浮點運算/秒(9000MFLOPS)2采用流水作業(pipline)3獨立的硬件乘法器乘法指令在單周期內完成,優化卷積、數字濾波、FFT、相關、矩陣運算等算法中的大量重復乘法4循環尋址(Circularaddressing),位倒序(bit-reversed)等特殊指令使FFT、卷積等運算中的尋址、排序及計算速度大大提高.1024點FFT的時間已小于1μs5獨立的DMA總線和控制器有一組或多組獨立的DMA總線,與CPU的程序、數據總線并行工作,在不影響CPU工作的條件下,DMA速度已達800Mbyte/s以上6多處理器接口使多個處理器可以很方便的并行或串行工作以提高處理速度7JTAG(JointTestActionGroup)標準測試接口(IEEE1149標準接口)便于對DSP作片上的在線仿真和多DSP條件下的調試軟件的特點1立即數尋址2直接尋址TI公司的TMS320系列芯片將數據存儲器分為512頁,每頁128字.設置一個數據頁指針DP(DataPointer),用9-bit指向一個數據頁,再加上一個7-bit的頁內偏移地址,形成16-bit的數據地址.這樣有利于大大加快尋址速度.3間接尋址8個輔助寄存器(AR0--AR7),由一個輔助寄存器指針(ARP3-bit)來指定一個輔助寄存器算術單元(ARAU)作16-bit無符號數運算,決定一個新的地址,裝入輔助寄存器中的一個AR0--AR7的內容相當靈活,可以裝入立即數,加上立即數,減去立即數;也可以從數據存儲器裝入地址;還可以作以下的變址尋址:將該AR的內容加1或減1,再尋址(循環常用)將該AR的內容加上或減去AR0的內容,再尋址將該AR的內容逆向進位加上或減去AR0的內容,再尋址由于采用反向進位,得以實現位倒序尋址原序原地址位倒序后地址位倒序0000000010011004201001023011110641000011510110156110011371111117例:MACX0,Y0,AX:(R0)+,X0Y:(R4)+N4,Y0這條指令命令DSP56300:將寄存器X0和Y0中的數相乘結果加到AccA中將寄存器R0所指的X存儲器地址中的值裝入寄存器X0將寄存器R4所指的Y存儲器地址中的值裝入寄存器Y0R0的值加1寄存器N4的值加給R4可以看到,運算后的次序符合FFT的蝶形運算的要求采用循環尋址實現零開銷的循環,大大增進了如卷積、相關、矩陣運算、FIR等算法的實現速度4獨特的乘法指令DSP開發工具1代碼生成工具C優化編譯器匯編語言工具匯編器(Assembler)連接器(Linker)歸檔器(Archiver)交叉引用列表器(Cross-ReferenceLister)2系統集成及調試環境與工具(以TI為例)調試器接口(C/Assemblysourcedebugger)為嵌入式系統的開發提供了豐富的功能與靈活性.該調試器是下面要討論的軟仿真器、評估模塊、在線仿真器等的標準接口.該調試器可以運行在PC或SPARC等平臺上,對用C或匯編語言寫的程序提供完全的控制.其代碼分析功能通過快速確認最費時的程序段,提示應該將開發時間集中在什么地方軟仿真器(Simulator)TMS320軟件仿真器是一個軟件程序,使用主機的處理器和存儲器來仿真TMS320DSP的微處理器和微計算機模式,從而進行軟件開發和非實時的程序驗證.在PC機上,典型的仿真速度為每秒幾百條指令DSP入門套件(DSK,DSPStarterKit)為初學者設計和生產的DSK是一種用以評價DSP平臺的廉價的開發工具.在PC機的DOS或Windows下,用戶可以使用DSK來作DSP的實驗,進行諸如控制系統、語音處理等應用;也可以用來編寫和運行實時源代碼,并對其作評估;還可以用來調試用戶自己的系統銀杏開發、實驗系統(DES,DspExpirementSystem)銀杏DES含有TMS320C542-40及相關接口,還特別內置了信號源,附帶虛擬示波器和頻譜儀軟件.采用這套系統使用戶對外設的依賴降到最低,僅僅需要一張卡和一套軟件就可以進行DSP的開發或實驗.標準評估模塊(EVM)TMS320的評估模塊(EVM)是廉價的開發板,用于器件評估、標準程序檢查、以及有限的系統調試.EVM是一個PC插件,包括目標處理器、一個小容量的存儲器、和有限的外設.EVM可以用來實時運行代碼,并與外部系統接口TMS320硬件仿真器(Emulators)擴展開發系統(XDS,extendeddevelopmentsystem)是功能強大的全速仿真器,用以作系統級的集成與調試.掃描式仿真(Scan-BasedEmulator)是一種獨特的、非插入式的系統仿真、集成、調試方法.使用這種方法,程序可以從片內或片外的目標存儲器實時執行,在任何時鐘速度下都不會引入額外的等待狀態3實時操作系統對于簡單的DSP任務,用前面介紹的開發工具已能滿足開發任務的需要,往往不需要操作系統就可以進行.但當DSP的任務增加和任務的復雜性提高,例如對實時性要求很高的多DSP并行操作的多任務系統,可能就需要某種操作系統來管理系統的資源,安排多任務的執行和任務間的信息交換等DSP的操作系統SPOXSPOX是專為DSP系統設計和軟件開發而設計的實時多任務操作系統.它提供一組由C語言調用的功能,與所開發的硬件平臺無關,從而將DSP的實時應用部分從許多低層的硬件細節中隔離出來.它作為DSP實時應用開發的一個集成環境,完成從新的算法概念出發,直到把應用軟件裝入產品硬件的整個開發任務DSP芯片介紹1什么是DSP芯片DSP芯片,也稱數字信號處理器,是一種具有特殊結構的微處理器.DSP芯片的內部采用程序和數據分開的哈佛結構,具有專門的硬件乘法器,廣泛采用流水線操作,提供特殊的DSP指令,可以用來快速地實現各種數字信號處理算法.根據數字信號處理的要求,DSP芯片一般具有如下的一些主要特點:(1)在一個指令周期內可完成一次乘法和一次加法.(2)程序和數據空間分開,可以同時訪問指令和數據.(3)片內具有快速RAM,通常可通過獨立的數據總線在兩塊中同時訪問.(4)具有低開銷或無開銷循環及跳轉的硬件支持.(5)快速的中斷處理和硬件I/O支持.(6)具有在單周期內操作的多個硬件地址產生器.(7)可以并行執行多個操作.(8)支持流水線操作,使取指、譯碼和執行等操作可以重疊執行.與通用微處理器相比,DSP芯片的其他通用功能相對較弱些.2DSP芯片的發展世界上第一個單片DSP芯片是1978年AMI公司宣布的S2811,1979年美國Iintel公司發布的商用可編程期間2920是DSP芯片的一個主要里程碑.這兩種芯片內部都沒有現代DSP芯片所必須的單周期芯片.1980年.日本NEC公司推出的μPD7720是第一個具有乘法器的商用DSP芯片.第一個采用CMOS工藝生產浮點DSP芯片的是日本的Hitachi公司,它于1982年推出了浮點DSP芯片.1983年,日本的Fujitsu公司推出的MB8764,其指令周期為120ns,且具有雙內部總線,從而處理的吞吐量發生了一個大的飛躍.而第一個高性能的浮點DSP芯片應是AT&T公司于1984年推出的DSP32.在這么多的DSP芯片種類中,最成功的是美國德克薩斯儀器公司(TexasInstruments,簡稱TI)的一系列產品.TI公司災982年成功推出啟迪一代DSP芯片TMS32010及其系列產品TMS32011、TMS32C10/C14/C15/C16/C17等,之后相繼推出了第二代DSP芯片TMS32020、TMS320C25/C26/C28,第三代DSP芯片TMS32C30/C31/C32,第四代DSP芯片TMS32C40/C44,第五代DSP芯片TMS32C50/C51/C52/C53以及集多個DSP于一體的高性能DSP芯片TMS32C80/C82等.自1980年以來,DSP芯片得到了突飛猛進的發展,DSP芯片的應用越來越廣泛.從運算速度來看,MAC(一次乘法和一次加法)時間已經從80年代初的400ns(如TMS32010)降低到40ns(如TMS32C40),處理能力提高了10多倍.DSP芯片內部關鍵的乘法器部件從1980年的占模區的40左右下降到5以下,片內RAM增加一個數量級以上.從制造工藝來看,1980年采用4μ的N溝道MOS工藝,而現在則普遍采用亞微米CMOS工藝.DSP芯片的引腳數量從1980年的最多64個增加到現在的200個以上,引腳數量的增加,意味著結構靈活性的增加.此外,DSP芯片的發展,是DSP系統的成本、體積、重量和功耗都有很大程度的下降.3DSP芯片的分類DSP的芯片可以按照以下的三種方式進行分類.1.按基礎特性分這是根據DSP芯片的工作時鐘和指令類型來分類的.如果DSP芯片在某時鐘頻率范圍內的任何頻率上能正常工作,除計算速度有變化外,沒有性能的下降,這類DSP芯片一般稱之為靜態DSP芯片.如果有兩種或兩種以上的DSP芯片,它們的指令集和相應的機器代碼機管腳結構相互兼容,則這類DSP芯片稱之為一致性的DSP芯片.2.按數據格式分這是根據DSP芯片工作的數據格式來分類的.數據以定點格式工作的DSP芯片稱之為定點DSP芯片.以浮點格式工作的稱為DSP芯片.不同的浮點DSP芯片所采用的浮點格式不完全一樣,有的DSP芯片采用自定義的浮點格式,有的DSP芯片則采用IEEE的標準浮點格式.3.按用途分按照DSP芯片的用途來分,可分為通用型DSP芯片和專用型的DSP芯片.通用型DSP芯片適合普通的DSP應用,如TI公司的一系列DSP芯片.專用型DSP芯片市為特定的DSP運算而設計,更適合特殊的運算,如數字濾波,卷積和FFT等.4DSP芯片的選擇設計DSP應用系統,選擇DSP芯片時非常重要的一個環節.只有選定了DSP芯片才能進一步設計外圍電路集系統的其它電路.總的來說,DSP芯片的選擇應根據實際的應用系統需要而確定.一般來說,選擇DSP芯片時考慮如下諸多因素.1.DSP芯片的運算速度.運算速度是DSP芯片的一個最重要的性能指標,也是選擇DSP芯片時所需要考慮的一個主要因素.DSP芯片的運算速度可以用以下幾種性能指標來衡量:(1)指令周期.就是執行一條指令所需要的時間,通常以ns為單位.(2)MAC時間.即一次乘法加上一次加法的時間.(3)FFT執行時間.即運行一個N點FFT程序所需的時間.(4)MIPS.即每秒執行百萬條指令.(5)MOPS.即每秒執行百萬次操作.(6)MFLOPS.即每秒執行百萬次浮點操作.(7)BOPS.即每秒執行十億次操作.2.DSP芯片的價格.根據一個價格實際的應用情況,確定一個價格適中的DSP芯片.3.DSP芯片的硬件資源.4.DSP芯片的運算速度.5.DSP芯片的開發工具.6.DSP芯片的功耗.7.其它的因素,如封裝的形式、質量標準、生命周期等.DSP應用系統的運算量是確定選用處理能力多大的DSP芯片的基礎.那么如何確定DSP系統的運算量以選擇DSP芯片呢?1.按樣點處理按樣點處理就是DSP算法對每一個輸入樣點循環一次.例如;一個采用LMS算法的256抽頭德的自適應FIR濾波器,假定每個抽頭的計算需要3個MAC周期,則256抽頭計算需要256*3=768個MAC周期.如果采樣頻率為8KHz,即樣點之間的間隔為125μs的時間,DSP芯片的MAC周期為200μs,則768個周期需要153.6μs的時間,顯然無法實時處理,需要選用速度更快的芯片.2.按幀處理有些數字信號處理算法不是每個輸入樣點循環一次,而是每隔一定的時間間隔(通常稱為幀)循環一次.所以選擇DSP芯片應該比較一幀內DSP芯片的處理能力和DSP算法的運算量.假設DSP芯片的指令周期為P(ns),一幀的時間為⊿τ(ns),則該DSP芯片在一幀內所提供的最大運算量為⊿τ/P條指令.5DSP芯片的基本結構DSP芯片的基本結構包括:(1)哈佛結構;(2)流水線操作;(3)專用的硬件乘法器;(4)特殊的DSP指令;(5)快速的指令周期.哈佛結構哈佛結構的主要特點是將程序和數據存儲在不同的存儲空間中,即程序存儲器和數據存儲器是兩個相互獨立的存儲器,每個存儲器獨立編址,獨立訪問.與兩個存儲器相對應的是系統中設置了程序總線和數據總線,從而使數據的吞吐率提高了一倍.由于程序和存儲器在兩個分開的空間中,因此取指和執行能完全重疊.流水線與哈佛結構相關,DSP芯片廣泛采用流水線以減少指令執行的時間,從而增強了處理器的處理能力.處理器可以并行處理二到四條指令,每條指令處于流水線的不同階段.入圖示出一個三級流水線操作的例子.CLLOUT1取指NN-1N-2譯碼N-1NN-2執行N-2N-1N圖4-1三級流水線操作專用的硬件乘法器乘法速度越快,DSP處理器的性能越高.由于具有專用的應用乘法器,乘法可在一個指令周期內完成.特殊的DSP指令DSP芯片是采用特殊的指令.快速的指令周期哈佛結構、流水線操作、專用的硬件乘法器、特殊的DSP指令再加上集成電路的優化設計可使DSP芯片的指令周期在200ns以下.6DSP系統的特點數字信號處理系統是以數字信號處理為基礎,因此具有數字處理的全部特點:(1)接口方便.DSP系統與其它以現代數字技術為基礎的系統或設備都是相互兼容,這樣的系統接口以實現某種功能要比模擬系統與這些系統接口要容易的多.(2)編程方便.DSP系統種的可編程DSP芯片可使設計人員在開發過程中靈活方便地對軟件進行修改和升級.(3)穩定性好.DSP系統以數字處理為基礎,受環境溫度以及噪聲的影響較小,可靠性高.(4)精度高.16位數字系統可以達到的精度.(5)可重復性好.模擬系統的性能受元器件參數性能變化比較大,而數字系統基本上不受影響,因此數字系統便于測試,調試和大規模生產.(6)集成方便.DSP系統中的數字部件有高度的規范性,便于大規模集成.7DSP芯片的應用自從DSP芯片誕生以來,DSP芯片得到了飛速的發展.DSP芯片高速發展,一方面得益于集成電路的發展,另一方面也得益于巨大的市場.在短短的十多年時間,DSP芯片已經在信號處理、通信、雷達等許多領域得到廣泛的應用.目前,DSP芯片的價格也越來越低,性能價格比日益提高,具有巨大的應用潛力.DSP芯片的應用主要有:(1)信號處理--如,數字濾波、自適應濾波、快速傅里葉變換、相關運算、頻譜分析、卷積等.(2)通信--如,調制解調器、自適應均衡、數據加密、數據壓縮、回坡抵消、多路復用、傳真、擴頻通信、糾錯編碼、波形產生等.(3)語音--如語音編碼、語音合成、語音識別、語音增強、說話人辨認、說話人確認、語音郵件、語音儲存等.(4)圖像/圖形--如二維和三維圖形處理、圖像壓縮與傳輸、圖像增強、動畫、機器人視覺等.(5)軍事--如保密通信、雷達處理、聲納處理、導航等.(6)儀器儀表--如頻譜分析、函數發生、鎖相環、地震處理等.(7)自動控制--如引擎控制、深空、自動駕駛、機器人控制、磁盤控制.(8)醫療--如助聽、超聲設備、診斷工具、病人監護等.(9)家用電器--如高保真音響、音樂合成、音調控制、玩具與游戲、數字電話/電視等DSP芯片開發和產品應用一、DSP程序開發為了使DSP有效運行、必須要用能充分考慮DSP內部并行性的匯編語言進行編制DSP程序.前面提到,美國TI公司的DSP推銷員說DSP編程容易,實際上他是指DSP的匯編語言相對于計算機的匯編語言而言,比較容易一些,因為沒有像計算機匯編語言那樣復雜.但是,對于習慣用高級語言編
超級強人!!!!!!
0
回復
@zhmmhz
鼓勵一下.
我有大量學習資料是以前自己學習工控時買的現在用不到了,全是視頻老師現場講課愿逢送大家有需要者請盡快13116568786.主要嵌入式系統講座,PLC和DSP視頻教程,觸摸屏學習等相應軟件,數控機床技術,單片機視頻,C語言,計算機接口,集成電路設計,數字信號處理,數字電路設計基礎,模擬電路設計,人工智能,射頻模擬接口,電路分析基礎,單片機應用,EDA,電路分析,計算機硬件,模擬電路入門,網寬設計,看懂各類電路圖紙,無線電全集,電視機手機維修視頻講座,電工電子傳感器等應用資料,以上學習資料全為多媒體電腦視頻光盤.每門課均在40節課左右程.本人經濟有限因需求者太多有需要者需自己付刻錄光盤費和快遞費50元即可. 好東西大家共同分享共創工控族的和諧社會.
0
回復