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