瀏覽人次:【5522】
首先,為什麼及什麼時候必須使用DSP?我們可以先從應用的角度進行探討。舉個例說,手機通常需要至少2個DSP引擎,一個用於通訊工作,另一個用於應用處理。在通訊方面,通話一端的語音信號經數位化和壓縮(DSP的一個典型功能),被調制為一個無線信號 (另一個DSP工作),再通過無線基礎設施發送到通話另一端,然後執行解調解壓(也是DSP的功能)。在手機的應用處理方面,載有視訊、圖片和音訊信號的資料檔案必須經過解碼,然後才會被發送到螢幕、揚聲器和耳機,所有這些典型的DSP工作雖然本質上各不相同,但它們都是通訊通道需要的工作。
隨著無線通訊的不斷進步, 為了追上4G無線通道上100Mbps的速度,DSP承擔的工作也在大幅度演進。如此高位元速率的調制和解調需要一些先進的演算法,包括多天線(又稱MIMO)、多載波調制和QAM調制方案。而DSP引擎已作出相應發展,能夠以多種方式滿足這些要求,變成應用專用(或通訊專用) DSP。
在其它DSP領域也經已出現類似的進展,譬如視訊處理就是一例。近年來,螢幕解析度已從VGA漸漸提高到Full HD高畫質(1080p),而且為了處理這些更高的解析度,並保持最低的位元速率,市場也出現了多種視訊標準。由於傳統的DSP引擎已很難滿足這些要求,各種不同的架構和設計理念應運而生,包括多核設計和SIMD(單指令,多資料)處理技術。在這裡,DSP處理樣演變為應用專用處理器,專門用於多媒體工作,同時保持其普遍性。下面將對這些方面進行詳細的討論。
處理DSP應用的不同方法
在SoC中實現DSP功能性有好幾種方法,而我們將主要介紹DSP的可編程設計和半可編程設計實現方案,包括中央處理單元(CPU)、微控制器單元(MCU),和 DSP。至於完全採用硬體來執行演算法的硬體線路方法,這裡就不贅述了。
CPU的典型例子有Pentium 和 PowerPC 處理器。這些超高性能的處理器本質上是通用處理器,時鐘頻率高達2GHz或更高。CPU用於個人電腦、工作站和筆記型電腦等系統,而通常不適合於嵌入式應用。它們能夠處理信號處理工作,但由於時脈頻率極高,致使功耗也相當高,同時帶來電池壽命方面的問題。此外,這類CPU成本非常高,所以不適用於大多數消費電子設備。
另一方面,MCU可被視為Pentium這類 CPU的較慢較小版本。ARM和MIPS科技等公司都提供針對嵌入式應用的內核,它們主要適用於控制工作,能夠運行Windows Mobile 和 Linux等作業系統。一般而言,MCU主要針對控制工作而設計,缺乏典型的DSP支援能力。不過,也有一些MCU具有DSP功能性專用擴展,這一點稍後再作介紹。
獲得DSP功能性的第三種方法是純粹DSP,它們非常適用於數學密集型工作和以資料為主的處理工作,而且專門為嵌入式應用而設計,可確保功耗及電路尺寸適合SoC晶片使用。這種純粹DSP的典型例子有德州儀器的 C55 和 C64、ADI的 Blackfin 以及 CEVA的 TeakLite 和 CEVA-X DSP內核系列。
圖一以X-Y座標空間的形式描述了這些不同DSP解決方案的性能和靈活性。硬體線路加速器也在其中。此外,圖中用不同的顏色標註出了每一種解決方案的功耗程度。
《圖一 不同DSP解決方案的性能和靈活性》
|
MCU是完全可編程設計的通用處理器,故能夠執行多種不同功能,適用於SoC中的不同應用。不過,因為MCU不是為DSP功能而設計,所以在這一方面無法獲得高性能。
如果運行頻率在1GHz 到 2GHz範圍的話, CPU執行DSP功能的速度當然比MCU更快。但是,除非電池容量夠大,否則在掌上型產品中幾乎不可能採用CPU來執行DSP功能。而硬體線路引擎的DSP性能最高,功耗最低,而靈活性卻大為遜色。
迄今為止,本地DSP在靈活性、性能和功耗三者之間的權衡折衷是最好的。隨著不同DSP應用繼續發展,嵌入式處理器也衍生出新的類型。下面將一一進行討論。
DSP工作演變帶動DSP處理器不斷發展
近年來,各種應用中的DSP要求有了顯著的提高。例如,只要分析一下音訊要求的演進,便會發現在極短時間內同時出現了多個進展,超過了DSP要求的5倍多。下面列出了家用音訊應用設備中的一些新發展:
●每通資料流的聲道數目從2(身歷聲)增加到5.1(典型杜比數位設備),到7.1(典型藍光光碟播放機);
●需要解碼並混合的資料流數目從1(典型A/V接收器)增加到2(典型DVD用例)再到3(藍光光碟用例);
●每通解碼資料流的位元速率從48Kbps(MP3)增加到24Mbps(DTS-HD MA);
音訊轉碼器及後處理功能的複雜性增加。
當前的DSP面對視訊應用及其提出的要求也存在類似情況,同樣需要更高的解析度、更高的位元速率和更複雜的視訊標準,而相關的設計工具已不斷推出。至於無線通訊應用,只要分析從3G 到 4G無線標準的位元速率演進,就可看出這一變化趨勢,而且這種成長還不是線性而是指數級的。圖二描繪出了三大DSP領域的技術進展。
《圖二 三大DSP領域的技術進展》
|
為了滿足對DSP能力的不斷攀升的要求,三種基於處理器的方案中,每一種都在向不同的方向演變。
MCU供應商已嘗試透過在其架構中增我進能喔加一些DSP功能,以及利用專用DSP指令來擴展這些處理器的ISA,來滿足不斷增長的要求,而ARM Cortex-A8就是一典型例子。該元件的CPU連接了一個SIMD加速器(ARM NEON),不過有些供應商選擇的方向稍有不同,他們允許程式設計人員利用自己的指令來擴展其MCU。在這兩種情況中,DSP擴展都能夠提供一個不錯的系統折衷來實現基本DSP功能。不過,對於中高階處理要求,這種MCU解決方案就完全不可行,並會使產品開發和再用方面出現嚴重的缺陷。下一節我們將較詳細地討論這些缺陷。
CPU供應商已經明白,單純靠提高處理器的運行速度是不足以滿足不斷增長的要求的。相對之下,多處理器架構提供了一種替代解決方案,可實現更高的指令級並行性(instruction-level-parallelism;ILP),但這種方法更難滿足可攜式設備的嚴格功率預算要求。面對其它要求更嚴苛的用例,CPU供應商乾脆決定把精力集中自己的核心專業技術上,而把重負載的DSP應用讓位給其它解決方案。譬如,CPU(或多核CPU) 都不能有效地以1080p解析度解碼視訊訊號,或運行LTE基頻,於是這類工作便由市場專用DSP來解決。
市場專用DSP已成為DSP供應商的另類方案,以期滿足高階DSP處理要求。過去,通用DSP曾一度流行,為多個終端市場提供高階的處理。這類DSP的可再用性和普遍性,使其在市場上非常普及,為不少開發商及合作夥伴所採納。雖然通用DSP現在仍擁有某些市場,但更高階領域則需要市場專用性更強的方案,也就是採用ISA來支援市場專用功能(如最新無線通訊標準所需的4×4矩陣計算能力)。市場專用DSP能夠更仔細地滿足整個市場的要求,提供更多所需的能力,同時又不限制這種架構在該市場上不同解決方案中的可再用性(譬如能夠有效用於LTE、WiMAX、HSPA+、EV-DO等的無線通訊DSP)。圖三在同一X-Y空間中描繪出了這些不斷演進的DSP解決方案。
《圖三 不斷演進的DSP解決方案》
|
在MCU中增加DSP功能―這是一個好辦法嗎?
MCU供應商提升性能的其中一個方法,是提供可擴展架構的DSP指令。有些供應商提供帶有預先定義DSP ISA擴展的MCU 產品(如ARM NEON);也有一些供應商提供了一系列各種各樣的DSP ISA擴展,供用戶選擇;另外一些供應商則允許獲授權者自行開發DSP指令。在所有這些情況中,由於這些DSP ISA擴展由於並非處理器所固有,故不妨將之視作中央微控制器的附屬加速器。
設計人員在考慮選用一個擴展MCU來實現先進DSP工作時,必須瞭解其缺點所在,例如下列的問題:
●除非設計人員小心設計記憶體存取,否則加入的功能單元(譬如MAC單元和加法器)可能無法運作。一般而言,在大型平坦記憶體模型上,MCU同一時間只能支援單個記憶體存取,而且還存在不同的資料故障限制。這與大多數基本DSP架構截然不同,並會很快降低任何DSP擴展的附加價值。
●MCU往往非常依賴帶有特權模式(privilege mode)和虛擬儲存支援的緩衝記憶架構,這是由於它們必須支援的控制功能的特性之故。另一方面,DMA在MCU中不會被頻繁採用,因此可以把基本DMA作為一個外掛程式提供給MCU。在資料高度密集的DSP應用中,鑒於應用的即時特性,以及它對確定性處理的要求,先進的DMA是不可或缺的。所以與擴展MCU剛好相反,在處理器架構內,先進的DSP本身就支援DMA機制。
●利用DSP指令來擴展MCU通常不會引起定址機制的任何大的變化。因此,這種擴展MCU通常不支援DSP應用中非常典型的獨特定址模式(因其可預測的資料存取模式,如迴圈緩衝器和位元反置)。
●由於這種DSP擴展不是MCU的固有部分,它們便需要使用編譯器內在函數來充分發揮這些DSP功能的作用。也就是說,簡明的C代碼不能輕易地編譯為適合在這種DSP擴展上運行的最佳彙編代碼。對於DSP處理器,這種編譯器支援是需要嵌入到編譯器-架構交互設計中的。
●MCU一般不支援某些演算法所需要的特殊DSP資料類型,例如是先進無線應用中常見的10位和 12位部件。此外,MCU中的數字準確度通常限制在32位元,而在某些應用則需要更大的動態範圍,高至72位元資料,包括保護位元(guard bit)、飽和硬體和迴圈機制(rounding mechanisms)。這些一般都根據應用的特定要求,由市場專用DSP處理。
●在這類擴展MCU中,可用並行性通常限制程式設計人員同時使用MCU及其DSP擴展。於是,即使擁有處理能力,MCU也可能無法以最佳方式來予以利用。
除此之外,擴展MCU雖然為程式設計人員提供了一組不同的DSP擴展供選擇,甚至讓程式設計人員能夠利用自己的DSP指令集來擴展ISA,但還存在一個「非標準」的問題。這種「按需定制」的處理器設計乍看可能頗具吸引力,然而軟體維護極其困難,因為設計人員必須不停地從一個架構向另一個架構移植代碼,無法再用自己的代碼。這也意味著因為某些指令和機制可能有別,由協力廠商軟體供應商開發的代碼未必運行在既有配置上。由於這已成為一個專有的處理器架構,MCU供應商將不能繼續自己的發展藍圖。而另一方面,這種特定MCU配置的使用者(及開發者)則必須維持自己的處理器發展藍圖,以延續一個完整的產品發展藍圖。
結語
隨著無線通訊和多媒體技術的不斷進步,工程師面臨的設計挑戰變得越來越複雜。傳統的DSP引擎,對許多需要通用DSP能力來實現未來提升的應用而言(譬如可攜式多媒體設備),仍然是一種可行的解決方案。但一些更複雜的工作,如4G無線通訊處理和高畫質視訊/音訊處理,則需要一種新的市場專用方案。起源於CPU領域並且也流行於MCU領域的多核設計,是提升性能水準的方法之一,不過這同時也增加了功耗。一些MCU廠商提出的另一種方法是提供不同的DSP ISA擴展。另一方面,DSP廠商開始將新設計轉為市場專用DSP。然而,這些替代解決方案的功能性的性能、靈活性和效率到底如何,仍然是一大關鍵問題。
如上所述,擴展MCU把DSP功能作為附屬加速器來處理,對市場專用DSP而言,這卻是架構的固有部分。另外,擴展MCU(客戶可藉此定義自己的DSP指令集)可被看作單點解決方案,但是無法用於和再用於同一個產品系列中的不同產品。這樣,由於擴展MCU缺乏發展藍圖和代碼相容性,而市場專用DSP以單個DSP架構就能夠服務於特定市場的整個產品系列,最終使前者無法達到市場專用DSP的普遍性。這正是市場專用DSP的的主要優勢,而這也是市場專用DSP將成為下一代SoC基礎的原因。
---作者為CEVA公司企業市場副總裁---
|