讓你說出知道的芯片的名稱,你可能會一時想不起,也不能一一羅列DSP芯片都有哪些。或許是對DSP芯片深刻的了解才了然于心,由于種種原因的忘卻;或許是因?yàn)榇蠹以谡fDSP芯片好,既然大家都說好,那才是真的好,至于怎樣好,可能是似懂非懂。那好吧,不管是懂還是不懂,現(xiàn)在讓我們從新的視角來讀懂這個芯片的世界,讓你發(fā)現(xiàn)不曾明白的細(xì)節(jié)。
DSP芯片,也稱數(shù)字信號處理器,采用特殊的軟硬件結(jié)構(gòu),是一種專注于進(jìn)行數(shù)字信號處理運(yùn)算的微處理器,其主要應(yīng)用是實(shí)時快速地實(shí)現(xiàn)各種數(shù)字信號處理,是數(shù)字信號處理理論實(shí)用化過程的重要技術(shù)工具。在語音處理、圖像處理等技術(shù)領(lǐng)域得到了廣泛的應(yīng)用。那根據(jù)對DSP芯片的理解來對比與其他芯片的最要的區(qū)別是什么?杭州海康威視數(shù)字技術(shù)股份有限公司的高級嵌入式開發(fā)經(jīng)理黃田認(rèn)為,DSP芯片與其它芯片的最大區(qū)別在于它擁有針對各種算法設(shè)計的大量專用指令,比如各種向量運(yùn)算。另外DSP芯片在設(shè)計時更多地考慮到數(shù)據(jù)總線的帶寬以及吞吐量,避免數(shù)據(jù)訪問成為影響算法性能的瓶頸。
芯片的基本結(jié)構(gòu)
為了快速地實(shí)現(xiàn)數(shù)字信號處理運(yùn)算,DSP芯片一般都采用特殊的軟硬件結(jié)構(gòu)。下面簡單介紹DSP芯片的基本結(jié)構(gòu)。
(1)哈佛結(jié)構(gòu)
主要特點(diǎn)是將程序和數(shù)據(jù)存儲在不同的存儲空間中,即程序存儲器和數(shù)據(jù)存儲器是兩個相互獨(dú)立的存儲器,每個存儲器獨(dú)立編址,獨(dú)立訪問。與兩個存儲器相對應(yīng)的是系統(tǒng)中設(shè)置了程序總線和數(shù)據(jù)總線,從而使數(shù)據(jù)的吞吐率提高了一倍。由于程序和數(shù)據(jù)在兩個分開的空間,因此取指和執(zhí)行能完全重疊。
(2)流水線操作
流水線與哈佛結(jié)構(gòu)相關(guān),DSP芯片廣泛采用流水線以減少指令執(zhí)行時間,從而增強(qiáng)了處理器的處理能力。處理器可以并行處理二到四條指令,每條指令處于流水線的不同階段。下面所列是一個三級流水線操作的例子:
CLLOUT1
取指 N N-1 N-2;
譯碼 N-1 N N-2;
執(zhí)行 N-2 N-1 N,
(3)專用的硬件乘法器
專用的硬件乘法器,乘法速度越快,DSP處理器的性能越高。由于具有專用的應(yīng)用乘法器,乘法可在一個指令周期內(nèi)完成。
(4)特殊的DSP指令
DSP是采用特殊的指令。
(5)快速的指令周期
特殊的DSP指令,DSP芯片是采用特殊的指令??焖俚闹噶钪芷?、哈佛結(jié)構(gòu)、流水線操作、專用的硬件乘法器、特殊的DSP指令,再加上集成電路的優(yōu)化設(shè)計可使DSP芯片的指令周期在200ns以下。
DSP系統(tǒng)的特點(diǎn)
數(shù)字信號處理有別于普通的科學(xué)計算與分析,它強(qiáng)調(diào)運(yùn)算處理的實(shí)時性,因此DSP除了具備普通微處理器所強(qiáng)調(diào)的高速運(yùn)算和控制功能外,針對實(shí)時數(shù)字信號處理,在處理器結(jié)構(gòu)、指令系統(tǒng)、指令流程上具有許多新的特征,其特點(diǎn)如下:
算術(shù)單元
具有硬件乘法器和多功能運(yùn)算單元,硬件乘法器可以在單個指令周期內(nèi)完成乘法操作,這是DSP區(qū)別于通用的微處理器的一個重要標(biāo)志。多功能運(yùn)算單元可以完成加減、邏輯、移位、數(shù)據(jù)傳送等操作。新一代DSP內(nèi)部甚至還包含多個并行的運(yùn)算單元,以提高其處理能力。針對濾波、相關(guān)、矩陣運(yùn)算等需要大量乘和累加運(yùn)算的特點(diǎn),DSP的算術(shù)單元的乘法器和加法器,可以在一個時鐘周期內(nèi)完成相乘、累加兩個運(yùn)算。近年出現(xiàn)的一些DSP如ADSP2106X、DSP96000系列DSP可以同時進(jìn)行乘、加、減運(yùn)算,大大加快了FFT的蝶形運(yùn)算速度。
總線結(jié)構(gòu)
傳統(tǒng)的通用處理器采用統(tǒng)一的程序和數(shù)據(jù)空間、共享的程序和數(shù)據(jù)總線結(jié)構(gòu),即所謂的馮。諾依曼結(jié)構(gòu)。DSP普遍采用了數(shù)據(jù)總線和程序總線分離的哈佛結(jié)構(gòu)或者改進(jìn)的哈佛結(jié)構(gòu),極大地提高了指令執(zhí)行速度。片內(nèi)的多套總線可以同時進(jìn)行取指令和多個數(shù)據(jù)存取操作,許多DSP片內(nèi)嵌有DMA控制器,配合片內(nèi)多總線結(jié)構(gòu),使數(shù)據(jù)塊傳送速度大大提高。
專用尋址單元
DSP面向數(shù)據(jù)密集型應(yīng)用,伴隨著頻繁的數(shù)據(jù)訪問,數(shù)據(jù)地址的計算也需要大量時間。DSP內(nèi)部配置了專用的尋址單元,用于地址的修改和更新,它們可以在尋址訪問前或訪問后自動修改內(nèi)容,以指向下一個要訪問的地址。地址的修改和更新與算術(shù)單元并行工作,不需要額外的時間。DSP的地址產(chǎn)生器支持直接尋址、間接尋址操作,大部分DSP還支持位反轉(zhuǎn)尋址(用于FFT算法)和循環(huán)尋址(用于數(shù)字濾波算法)。
片內(nèi)存儲器
針對數(shù)字信號處理的數(shù)據(jù)密集運(yùn)算的需要,DSP對程序和數(shù)據(jù)訪問的時間要求很高,為了減小指令和數(shù)據(jù)的傳送時間,許多DSP內(nèi)部集成了高速程序存儲器和數(shù)據(jù)存儲器,以提高程序和數(shù)據(jù)訪問存儲器的速度。
流水處理技術(shù)
DSP大多采用流水技術(shù),即將一條指令的執(zhí)行過程分解成取指、譯碼、取數(shù)、執(zhí)行等若干個階段,每個階段稱為一級流水。每條指令都由片內(nèi)多個功能單元分別完成取指、譯碼、取數(shù)、執(zhí)行等操作,從而在不提高時鐘頻率的條件下減少了每條指令的執(zhí)行時間。
DSP與其它處理器的差別
數(shù)字信號處理器(DSP)、通用微處理器(MPU)、微控制器(MCU)三者的區(qū)別在于:DSP面向高性能、 重復(fù)性、數(shù)值運(yùn)算密集型的實(shí)時處理;MPU大量應(yīng)用于計算機(jī);MCU則適用于以控制為主的處理過程。
DSP芯片的優(yōu)點(diǎn)
DSP的運(yùn)算速度比其它處理器要高得多,以FFT為例,高性能DSP不僅處理速度是MPU的 4~10倍,而且可以連續(xù)不斷地完成數(shù)據(jù)的實(shí)時輸入/輸出。DSP結(jié)構(gòu)相對單一,普遍采用匯編語言編程,其任務(wù)完成時間的可預(yù)測性相對于結(jié)構(gòu)和指令復(fù)雜(超標(biāo)量指令)、嚴(yán)重依賴于編譯系統(tǒng)的MPU強(qiáng)得多。以一個FIR濾波器實(shí)現(xiàn)為例,每輸入一個數(shù)據(jù),對應(yīng)每階濾波器系數(shù)需要一次乘、一次加、一次取指、二次取數(shù),還需要專門的數(shù)據(jù)移動操作,DSP可以單周期完成乘加并行操作以及3~4次數(shù)據(jù)存取操作,而普通MPU完成同樣的操作至少需要4個指令周期。因此,在相同的指令周期和片內(nèi)指令緩存條件下,DSP的運(yùn)算速度可以超過MPU運(yùn)算速度的4倍以上。
DSP芯片的浮點(diǎn)與定點(diǎn)之分
在選擇DSP器件的時候,是采用浮點(diǎn)還是采用定點(diǎn),如果用定點(diǎn)是16位還是32位?其實(shí)這個問題和你的算法所要求的信號的動態(tài)范圍有關(guān)。
浮點(diǎn)運(yùn)算DSP比定點(diǎn)運(yùn)算DSP的動態(tài)范圍(動態(tài)范圍:如音響系統(tǒng)重放時最大不失真輸出功率與靜態(tài)時系統(tǒng)噪聲輸出功率之比的對數(shù)值,又如一個多媒體硬盤播放器輸出圖像的最亮和最暗部分之間的相對比值)要大很多。定點(diǎn)DSP的字長每增加1bit,動態(tài)范圍擴(kuò)大6dB,16bit字長的動態(tài)范圍為96dB。程序員必須時刻關(guān)注溢出的發(fā)生。例如:在做圖像處理時,圖像做旋轉(zhuǎn)、移動等,就很容易產(chǎn)生溢出。這時,要么不斷地移位定標(biāo),要么作截尾。前者要耗費(fèi)大量的程序空間和執(zhí)行時間,后者則很快帶來圖像質(zhì)量的劣化。
總之,是使整個系統(tǒng)的性能下降。在處理低信噪比信號的場合,例如進(jìn)行語音識別、雷達(dá)和聲納信號處理時,也會發(fā)生類似的問題。而32bit浮點(diǎn)運(yùn)算DSP的動態(tài)范圍可以作到1536dB,這不僅大大擴(kuò)大了動態(tài)范圍,提高了運(yùn)算精度,還大大節(jié)省了運(yùn)算時間和存儲空間,因?yàn)榇蟠鬁p少了定標(biāo),移位和溢出檢查。
由于浮點(diǎn)DSP的浮點(diǎn)運(yùn)算用硬件來實(shí)現(xiàn),可以在單周期內(nèi)完成,因而其處理速度大大高于定點(diǎn)DSP,這一優(yōu)點(diǎn)在實(shí)現(xiàn)高精度復(fù)雜算法時尤為突出。
定點(diǎn)的計算不過是把一個數(shù)據(jù)當(dāng)作整數(shù)來處理,通常AD采樣來的都是整數(shù),這個數(shù)相對于真實(shí)的模擬信號有一個刻度因子,大家都知道用一個16位的AD 去采樣一個0到5V的信號,那么AD輸出的整數(shù)除以2^16再乘以5V就是對應(yīng)的電壓。在定點(diǎn)DSP中是直接對這個16位的采樣進(jìn)行處理,并不將它轉(zhuǎn)換成以小數(shù)表示的電壓,因?yàn)槎c(diǎn)DSP無法以足夠的精度表示一個小數(shù),它只能對整數(shù)進(jìn)行計算。
而浮點(diǎn)DSP的優(yōu)勢在于它可以把這個采樣得到的整數(shù)轉(zhuǎn)換成小數(shù)表示的電壓,并不損失精度(這個小數(shù)用科學(xué)記數(shù)法來表示),原因在于科學(xué)記數(shù)法可以表示很大的動態(tài)范圍的一個信號,以IEEE754浮點(diǎn)數(shù)為例,單精度浮點(diǎn)格式:[31] 1位符號[30-23]8位指數(shù)[22-00]23位小數(shù)。這樣的能表示的最小的數(shù)是+-2^-149,最大的數(shù)是+-(2-2^23)*2^127,動態(tài)范圍為20*log(最大的數(shù)/最小的數(shù))=1667.6dB這樣大的動態(tài)范圍使得在編程的時候幾乎不必考慮乘法和累加的溢出,而如果使用定點(diǎn)處理器編程,對計算結(jié)果進(jìn)行舍入和移位則是家常便飯,這在一定程度上會損失精度。
原因在于定點(diǎn)處理的信號的動態(tài)范圍有限,比如16位定點(diǎn)DSP,可以表示整數(shù)范圍為1-65536,其動態(tài)范圍為 20*log(65536/1)=96dB.對于32定點(diǎn)DSP,動態(tài)范圍為20*log(2^32/1)=192dB,遠(yuǎn)小于32位ieee浮點(diǎn)數(shù)的1667.6dB,但是實(shí)際上192dB對絕大多數(shù)應(yīng)用所處理的信號已經(jīng)足夠了。由于AD轉(zhuǎn)換器的位數(shù)限制,一般輸入信號的動態(tài)范圍都比較小,但在 DSP的信號處理中,由于點(diǎn)積運(yùn)算會使中間節(jié)點(diǎn)信號的動態(tài)范圍增加,所以主要考慮信號處理流程中中間結(jié)果的動態(tài)范圍,以及算法對中間結(jié)果的精度要求,來選擇相應(yīng)的DSP。另外就是浮點(diǎn)的DSP更易于編程,定點(diǎn)DSP編程中程序員要不斷調(diào)整中間結(jié)果的PQ值,實(shí)際就是不斷對中間結(jié)果進(jìn)行移位調(diào)整和舍入。
實(shí)數(shù)運(yùn)算可直接透過代碼加入硬件運(yùn)算中,而定點(diǎn)元件必須透過軟件才能間接執(zhí)行實(shí)數(shù)運(yùn)算,這就增加了運(yùn)算法指令并延長了開發(fā)時間。
整體上說,定點(diǎn)DSP在成本上具有優(yōu)勢而浮點(diǎn)DSP在易用上較優(yōu)。
DSP芯片的發(fā)展現(xiàn)狀與應(yīng)用
自從DSP芯片誕生以來,DSP芯片得到了飛速的發(fā)展。一方面得益于集成電路的發(fā)展,另一方面也得益于巨大的市場。在短短的十多年時間,DSP芯片已經(jīng)在信號處理、通信等許多領(lǐng)域得到了廣泛的應(yīng)用。
對于DSP芯片的發(fā)展現(xiàn)狀和DSP如何與其他產(chǎn)品搭配應(yīng)用解決方案??低暤狞S田作出了如下這樣的看法:DSP芯片已經(jīng)在向?qū)I(yè)化、多元化方向發(fā)展,各廠家的市場劃分越來越細(xì),差異性也越來越大。另外,單純的DSP芯片已經(jīng)不多見,更多的是DSP芯片與其它處理核心集成在一起,形成一個集成度高、針對性強(qiáng)的SOC,不僅極大地降低了板級空間,也帶來了功耗、成本以及開發(fā)周期的全面優(yōu)勢,從而推動了行業(yè)的發(fā)展和產(chǎn)品性能的提高。
DSP的優(yōu)勢在于靈活的算法集成,可以給產(chǎn)品提供強(qiáng)大的性能以及靈活的定制,同一產(chǎn)品針對各類客戶不同的需求實(shí)現(xiàn)不同的解決方案。為了提高產(chǎn)品的競爭力,廠商都會在算法上做足文章,算法變得越來越復(fù)雜,但是算法的穩(wěn)定性、產(chǎn)品的功耗、開發(fā)周期等都會成為難以駕馭的風(fēng)險。DSP算法不是一大堆理論公式的堆砌,而是與所使用DSP芯片的具體特點(diǎn)緊密結(jié)合的精致軟件。
這些因素在產(chǎn)品設(shè)計時就需要予以充分考慮,不要為了一些噱頭功能而盲目采用所謂的先進(jìn)算法和高性能DSP,而是要從用戶需求出發(fā),尋找算法與DSP的最佳組合。在產(chǎn)品方案中,算法和DSP是核心,這個組合確定了,再去搭配其它的處理芯片和外圍設(shè)備,才能形成一套高效的產(chǎn)品解決方案。
目前DSP技術(shù)應(yīng)用從軍用到民用,從航空航天到生產(chǎn)生活,都越來越多地使用DSP。DSP技術(shù)在航空航天方面,主要用于雷達(dá)和聲納信號處理;在通信方面,主要用于移動電話、IP電話 (voice over IP)、ADSL和HFC的信號傳輸;在控制方面,主要用于電機(jī)控制、光驅(qū)和硬盤驅(qū)動器;在測試/測量方面,主要用于虛擬儀器、自動測試系統(tǒng)、醫(yī)療診斷 等;在電子娛樂方面,主要用于高清晰度電視(HDTV)、機(jī)頂盒(STB)、AC-3、家庭影院、DVD等應(yīng)用;
在圖像/圖形上,主要用于二維和三維圖形處理、圖像壓縮與傳輸、圖像增強(qiáng)、動畫等;還有數(shù)字相機(jī)、網(wǎng)絡(luò)相機(jī)等等都應(yīng)用了 DSP技術(shù)。同時,SOC芯片系統(tǒng)、無線應(yīng)用、嵌入式DSP都是未來DSP的發(fā)展方向和趨勢??梢哉f,沒有DSP就沒有對互聯(lián)網(wǎng)的訪問,也不會有多媒體, 也沒有無線通信。因此,DSP仍將是整個半導(dǎo)體工業(yè)的技術(shù)驅(qū)動力?,F(xiàn)在,DSP應(yīng)用領(lǐng)域不斷拓寬,其函蓋面包括寬帶Internet接入業(yè)務(wù)、下一代無線通信系統(tǒng)的發(fā)展、數(shù)字消費(fèi)電子市場、汽車電子市場的發(fā)展等諸多方面。
DSP芯片的分類
為不同算法而專門設(shè)計的DSP芯片可以分為基礎(chǔ)特性、數(shù)據(jù)格式和按用途分三大類。
按基礎(chǔ)特性分 ,根據(jù)DSP芯片的工作時鐘和指令類型來分類的。如果DSP芯片在某時鐘頻率范圍內(nèi)的任何頻率上能正常工作,除計算速度有變化外,沒有性能的下降,這類DSP芯片一般稱之為靜態(tài)DSP芯片。如果有兩種或兩種以上的DSP芯片,它們的指令集和相應(yīng)的機(jī)器代碼機(jī)管腳結(jié)構(gòu)相互兼容,則這類DSP芯片稱之為一致性的DSP芯片。
按數(shù)據(jù)格式分,這是根據(jù)DSP芯片工作的數(shù)據(jù)格式來分類的。數(shù)據(jù)以定點(diǎn)格式工作的DSP芯片稱之為定點(diǎn)DSP芯片。以浮點(diǎn)格式工作的稱為DSP芯片。不同的浮點(diǎn)DSP芯片所采用的浮點(diǎn)格式不完全一樣,有的DSP芯片采用自定義的浮點(diǎn)格式,有的DSP芯片則采用IEEE的標(biāo)準(zhǔn)浮點(diǎn)格式。
按用途分,可分為通用型DSP芯片和專用型的DSP芯片。通用型DSP芯片適合普通的DSP應(yīng)用,如TI公司的一系列DSP芯片。專用型DSP芯片是為特定的DSP運(yùn)算而設(shè)計,更適合特殊的運(yùn)算,如數(shù)字濾波,卷積和FFT等。
結(jié)語
隨著安防行業(yè)的高速發(fā)展,特別是高清和智能化需求的井噴,整個行業(yè)已經(jīng)全面進(jìn)入數(shù)字化時代,而作為數(shù)字化安防產(chǎn)品的核心,安防芯片已經(jīng)成為一個巨大的產(chǎn)業(yè),所以需要更多不同的算法。對于不斷涌現(xiàn)的算法需求來說,DSP的處理能力永遠(yuǎn)是不夠的,算法開發(fā)人員需要不斷在性能指標(biāo)和DSP的處理能力之間做平衡,是少做一次循環(huán),還是允許偶爾丟幀,類似這樣,如果無法做取舍,則需要進(jìn)一步對算法進(jìn)行優(yōu)化,可能是算法架構(gòu)上的,也可能是匯編代碼級的。片內(nèi)緩存是影響算法性能的一個重要因素,DDR帶寬則往往是系統(tǒng)級的。
由于DSP精于計算,而不善于邏輯處理,特別是網(wǎng)絡(luò)協(xié)議、數(shù)據(jù)庫管理方面,因此DSP往往與其它芯片配合使用。在安防領(lǐng)域的各種開發(fā)方案中,DSP+ARM最為主流,ARM負(fù)責(zé)網(wǎng)絡(luò)、存儲、外設(shè)管理,DSP負(fù)責(zé)圖像、音頻處理及編解碼。目前DSP+ARM基本上都集成到一個SOC中,盡管如此,對于軟件開發(fā)來說,DSP和ARM還都是分開的。在需要更高處理性能的領(lǐng)域,往往采用多片DSP共同處理的方式。這些也是??低朁S田,具多年行業(yè)資深技術(shù)人的深刻體會。
責(zé)任編輯:gt
評論