DSP的特點(diǎn)、發(fā)展趨勢(shì)與應(yīng)用詳談
數(shù)字化技術(shù)正在極大地改變著我們的生活和體驗(yàn)。作為數(shù)字化技術(shù)的基石,數(shù)字信號(hào)處理(DSP)技術(shù)已經(jīng)、正在、并且還將在其中扮演一個(gè)不可或缺的角色。DSP的核心是算法與實(shí)現(xiàn),越來(lái)越多的人正在認(rèn)識(shí)、熟悉和使用它。因此,理性地評(píng)價(jià)DSP器件的優(yōu)缺點(diǎn),及時(shí)了解DSP的現(xiàn)狀以及發(fā)展趨勢(shì),正確使用DSP芯片,才有可能真正發(fā)揮出DSP的作用。
DSP器件與算法
DSP(數(shù)字信號(hào)處理器)作為一種微處理器,其設(shè)計(jì)的出發(fā)點(diǎn)和通用CPU以及MCU等處理器是不同的。DSP是為完成實(shí)時(shí)數(shù)字信號(hào)處理任務(wù)而設(shè)計(jì)的,算法的高效實(shí)現(xiàn)是DSP器件的設(shè)計(jì)核心。DSP在體系結(jié)構(gòu)設(shè)計(jì)方面的很多考慮都可以追溯到算法自身的特點(diǎn)。我們可以通過(guò)考察一個(gè)FIR濾波器的I/O關(guān)系,即,來(lái)了解這兩者之間的對(duì)應(yīng)關(guān)系,如表1所示。
通過(guò)表1,可看出DSP器件和算法之間的必然聯(lián)系。這不僅是芯片設(shè)計(jì)人員必須考慮的問(wèn)題,也是芯片使用者必須了解的。
現(xiàn)代數(shù)字信號(hào)處理器的特點(diǎn)和發(fā)展趨勢(shì)
DSP器件的發(fā)展,必須兼顧3P的因素,即性能 (performance) 、功耗 (power consumption) 和價(jià)格 (price)??偟膩?lái)說(shuō),隨著VLSI技術(shù)的高速發(fā)展,現(xiàn)代DSP器件在價(jià)格顯著下降的同時(shí),仍然保持著性能的不斷提升和單位運(yùn)算量的功耗不斷降低。下面我們主要以TI公司的DSP為例來(lái)說(shuō)明現(xiàn)代DSP芯片的一些特點(diǎn)和發(fā)展趨勢(shì)。
通過(guò)并行提升DSP芯片的性能
傳統(tǒng)的DSP芯片通過(guò)采用乘加單元和改進(jìn)的哈佛結(jié)構(gòu),使其運(yùn)算能力大大超越了傳統(tǒng)的微處理器。一個(gè)合理的推論是:通過(guò)增加片上運(yùn)算單元的個(gè)數(shù)以及相應(yīng)的連接這些運(yùn)算單元的總線(xiàn)數(shù)目,就可以成倍地提升芯片的總體運(yùn)算能力。當(dāng)然,這個(gè)推論有兩個(gè)前提條件必須滿(mǎn)足:首先是存儲(chǔ)器的帶寬必須能夠滿(mǎn)足由于總線(xiàn)數(shù)目增加所帶來(lái)的數(shù)據(jù)吞吐量的提高;另外,多個(gè)功能單元并行工作所涉及的調(diào)度算法其復(fù)雜度必須是可實(shí)現(xiàn)的。
1997年,TI發(fā)布了基于VLIW (超長(zhǎng)指令字) 體系結(jié)構(gòu)的C62x DSP內(nèi)核。它在片內(nèi)集成了兩組完全相同的功能單元,各包括一個(gè)ALU(算術(shù)及邏輯單元)、一個(gè)乘法單元、一個(gè)移位單元和一個(gè)地址產(chǎn)生單元。這8個(gè)功能單元通過(guò)各自的總線(xiàn)與兩組寄存器組連接。理想情況下,這8個(gè)功能單元可以完全并行,從而在單周期內(nèi)執(zhí)行8條指令操作。VLIW體系結(jié)構(gòu)使得DSP芯片的性能得到了大幅提升。在此基礎(chǔ)上,TI又發(fā)布了C64x DSP內(nèi)核,其主要改進(jìn)之處在于進(jìn)一步加寬了寄存器組與內(nèi)存之間的總線(xiàn)寬度,以及改善了單個(gè)功能單元對(duì)于SIMD (單指令多數(shù)據(jù)) 操作的支持等。圖1分別給出了C62x和C64x DSP內(nèi)核的數(shù)據(jù)路徑示意圖。
VLIW結(jié)構(gòu)對(duì)功能單元采用靜態(tài)調(diào)度的策略,DSP內(nèi)部只完成簡(jiǎn)單的指令分發(fā),調(diào)度算法的實(shí)現(xiàn)可以由編譯器完成,用戶(hù)也可以通過(guò)手工編寫(xiě)匯編代碼的形式實(shí)現(xiàn)自主調(diào)度。其好處是DSP芯片的使用難度大大降低。通過(guò)使用高效的C語(yǔ)言編譯器,普通用戶(hù)也可以開(kāi)發(fā)出具有較高效率的DSP運(yùn)行程序。
存儲(chǔ)器構(gòu)架的變化
隨著芯片主頻的不斷攀升,存儲(chǔ)器的訪問(wèn)速度日益成為系統(tǒng)性能提升的瓶頸。在現(xiàn)有的制造工藝下,片上存儲(chǔ)單元的增加將導(dǎo)致數(shù)據(jù)線(xiàn)負(fù)載電容的增加,影響到數(shù)據(jù)線(xiàn)上信號(hào)的開(kāi)關(guān)時(shí)間,這意味著片上高速存儲(chǔ)單元的增加將是十分有限的。為了解決存儲(chǔ)器速度與CPU內(nèi)核速度不匹配的問(wèn)題,高性能的CPU普遍采用Cache(高速緩存)機(jī)制,新的DSP芯片也開(kāi)始采用這種結(jié)構(gòu)。以TI的C64x DSP為例,它采用兩級(jí)Cache的結(jié)構(gòu),如圖2所示。L1 Cache分為獨(dú)立的程序緩存 (L1P) 和數(shù)據(jù)緩存 (L1D) ,其大小各為16KBytes,訪問(wèn)速度與DSP內(nèi)核的運(yùn)行時(shí)鐘相匹配,L2 Cache則采用統(tǒng)一的形式管理,其大小從256KB到1MB不等,訪問(wèn)速度相比L1 cache大大降低。L2 Cache通過(guò)DMA與外部低速的存儲(chǔ)器件進(jìn)行數(shù)據(jù)交換。為增加Cache的命中率,C64x的Cache還采用了多路徑的結(jié)構(gòu)形式。研究表明,在很多情況下,采用這種多級(jí)緩存的架構(gòu)可以達(dá)到采用完全片上存儲(chǔ)器結(jié)構(gòu)的系統(tǒng)約80%的執(zhí)行效率。但是,采用Cache機(jī)制也在一定程度上增加了系統(tǒng)執(zhí)行時(shí)間的不確定性,其對(duì)于實(shí)時(shí)系統(tǒng)的影響需要用戶(hù)認(rèn)真地加以分析和評(píng)估。
Cache對(duì)于DSP芯片還是一個(gè)比較新的概念。DSP開(kāi)發(fā)人員需要更深入地了解Cache的機(jī)制,相應(yīng)地對(duì)算法的數(shù)據(jù)結(jié)構(gòu)、處理流程以及程序結(jié)構(gòu)等做出調(diào)整,以提高Cache的命中率,從而更有效地發(fā)揮Cache的作用。
SoC的趨勢(shì)
對(duì)于特定的終端應(yīng)用,SoC (系統(tǒng)芯片) 可以兼顧體積、功耗和成本等諸多因素,因而逐漸成為芯片設(shè)計(jì)的主流。DSP器件也逐漸從傳統(tǒng)的通用型處理器中分離出更多的直接面向特定應(yīng)用的SoC器件。這些SoC器件多采用DSP+ARM的雙核結(jié)構(gòu),既可以滿(mǎn)足核心算法的實(shí)現(xiàn)需求,又能夠滿(mǎn)足網(wǎng)絡(luò)傳輸和用戶(hù)界面等需求。同時(shí),越來(lái)越多的專(zhuān)用接口以及協(xié)處理器被集成到芯片中,用戶(hù)只需添加極少的外部芯片,即可構(gòu)成一個(gè)完整的應(yīng)用系統(tǒng)。以TI公司為例,其推出的面向第3代無(wú)線(xiàn)通信終端的OMAP1510芯片等,面向數(shù)碼相機(jī)的DM270芯片等,面向?qū)I(yè)音頻設(shè)備的DA610芯片等,面向媒體處理的DM642芯片等,都是SoC的典型例子。
DSP器件的應(yīng)用
世界上沒(méi)有完美的處理器,DSP不是萬(wàn)能的。DSP器件的特點(diǎn)使得它特別適合嵌入式的實(shí)時(shí)數(shù)字信號(hào)處理任務(wù)。
實(shí)時(shí)的概念
實(shí)時(shí)的定義因具體應(yīng)用而異。一般而言,對(duì)于逐樣本 (sample-by-sample) 處理的系統(tǒng),如果對(duì)單次樣本的處理可以在相鄰兩次采樣的時(shí)間間隔之內(nèi)完成,我們就稱(chēng)這個(gè)系統(tǒng)滿(mǎn)足實(shí)時(shí)性的要求。即:tproess>tsample,其中,tproess代表系統(tǒng)對(duì)單次采樣樣本的處理時(shí)間,tsample代表兩次采樣之間的時(shí)間間隔。舉例來(lái)說(shuō),某個(gè)系統(tǒng)要對(duì)輸入信號(hào)進(jìn)行濾波,采用的是一個(gè)100階的FIR濾波器,即。假設(shè)系統(tǒng)的采樣率為1KHz,如果系統(tǒng)在1ms之內(nèi)可以完成一次100階的FIR濾波運(yùn)算,我們就認(rèn)為這個(gè)系統(tǒng)滿(mǎn)足實(shí)時(shí)性的要求。如果采樣率提高到10KHz,那么實(shí)時(shí)性條件也相應(yīng)提高,系統(tǒng)必須在0.1ms內(nèi)完成所有的運(yùn)算。需要注意,tproess還應(yīng)當(dāng)考慮各種系統(tǒng)開(kāi)銷(xiāo),包括中斷的響應(yīng)時(shí)間,數(shù)據(jù)的吞吐時(shí)間等。
正確理解實(shí)時(shí)的概念是很重要的。工程實(shí)現(xiàn)的原則是“量體裁衣”,即從工程的實(shí)際需要出發(fā)設(shè)計(jì)系統(tǒng),選擇最合適的方案。對(duì)于DSP的工程實(shí)現(xiàn)而言,脫離系統(tǒng)的實(shí)時(shí)性要求,盲目選擇高性能的DSP器件是不科學(xué)的,因?yàn)檫@意味著系統(tǒng)復(fù)雜度、可靠性設(shè)計(jì)、生產(chǎn)工藝、開(kāi)發(fā)時(shí)間、開(kāi)發(fā)成本以及生產(chǎn)成本等方面不必要的開(kāi)銷(xiāo)。從這個(gè)角度而言,即使系統(tǒng)開(kāi)發(fā)成功,整個(gè)工程項(xiàng)目可能仍然是失敗的。
嵌入式應(yīng)用
嵌入式應(yīng)用對(duì)系統(tǒng)成本、體積和功耗等因素敏感。DSP器件在這些方面都具有可比的優(yōu)勢(shì),因此DSP器件特別適合嵌入式的實(shí)時(shí)數(shù)字信號(hào)處理應(yīng)用。反過(guò)來(lái),對(duì)于某一個(gè)具體的嵌入式的實(shí)時(shí)數(shù)字信號(hào)處理任務(wù),DSP卻往往不是唯一的,或者是最佳的解決方案。我們看到,越來(lái)越多的嵌入式RISC處理器開(kāi)始增強(qiáng)數(shù)字信號(hào)處理的功能;FPGA廠商為DSP應(yīng)用所做的努力一直沒(méi)有停止過(guò);針對(duì)某項(xiàng)特定應(yīng)用的ASIC/ASSP器件的推出時(shí)間也越來(lái)越快。開(kāi)發(fā)人員面臨的問(wèn)題是如何根據(jù)實(shí)際的應(yīng)用需求客觀地評(píng)價(jià)和選擇處理器件。表2對(duì)給出了這些器件之間的一些簡(jiǎn)要對(duì)比。
從表中可以看出,DSP實(shí)際上是一種比較折衷的解決方案。以媒體處理應(yīng)用為例,現(xiàn)行的國(guó)際標(biāo)準(zhǔn)較多,包括MPEG1/2/4、H261/3/4等,各種標(biāo)準(zhǔn)在一段時(shí)間內(nèi)共存,新的標(biāo)準(zhǔn)還在不斷涌現(xiàn)。如果系統(tǒng)設(shè)計(jì)需要兼顧實(shí)現(xiàn)性能和多標(biāo)準(zhǔn)的適應(yīng)性,DSP可能是一個(gè)較好的選擇。但是,如果應(yīng)用比較固定,對(duì)價(jià)格又特別敏感,采用專(zhuān)用的ASIC芯片可能就會(huì)更加合適。
算法是DSP應(yīng)用的核心
隨著DSP器件的發(fā)展,DSP系統(tǒng)開(kāi)發(fā)的主要工作已經(jīng)轉(zhuǎn)向軟件開(kāi)發(fā),軟件開(kāi)發(fā)將占據(jù)約80%的工作量,必須引起足夠的重視。另外,在目前的現(xiàn)狀條件下,算法是我們核心知識(shí)產(chǎn)權(quán)的主要體現(xiàn),也是產(chǎn)品競(jìng)爭(zhēng)力的主要因素。因此在最后,筆者仍然希望強(qiáng)調(diào):算法是DSP應(yīng)用的核心。
作者:清華大學(xué)生物醫(yī)學(xué)工程系 張輝 胡廣書(shū)
評(píng)論