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