由於系統成本、開發容易、元件採購和升級能力彈性化等因素,設計工程師正趨向將單晶片解決方案用於嵌入式信號處理。這種單晶片解決方案必須能夠同時完成DSP和MCU功能,因此提出一種統一的處理器系統結構以面對MCU的挑戰,其簡單化解決方案是將MCU功能合併到一個高性能的DSP內核,以提供更多MCU和DSP應用領域。
依據傳統嵌入式應用中的數位信號處理器(DSP)相對於主微控制器(MCU)的從屬作用,在這些應用中,MCU用於系統控制器,而大量的資料處理交則由DSP進行運算,例如在音頻或視頻處理應用中有可能需要人機介面管理,以及整體系統控制。
完成這些任務,有幾種系統設計方案選擇,第一種方案將DSP和MCU晶片組合在印刷電路板(PCB)上,這種方案成本較高並且占用面積也較大,但是可適當地調整每個晶片尺寸以滿足最大限度系統的需要。
第二種方案是將DSP和MCU組合在單個封裝內的多晶片模組(MCM),這種方案的局限性是設計工程師必須按「50/50」的時間比例分配控制和DSP功能,例如一旦DSP超出時間,MCU將不能完成計算任務,如同第一種方案選擇一樣,當DSP和MCU內核獨立存在時,則是需要兩套開發工具。
第三種方案則是將DSP功能合併到一個MCU之中,這種方案只適合直接的信號處理應用。而且,MCU的時鐘頻率以及計算體系結構原則上並不太適合大量數位處理,並且有些MCU試圖通過增加一個乘法和累加器(MAC),為DSP的一個特點,來補償上述不足,但是這種解決方案仍然缺乏高階應用所須要的基本的「由下至上」的系統結構設計。
最近,已經出現第四種方案,是將MCU的功能合併到一個DSP之中,這類方案的一個例子是亞德諾(Anolog Device Inc., ADI)的Blackfin處理器系列(圖1)。這些新型處理器具有統一經過優化的系統結構,不僅適於資料計算處理,而且也適合用於相關控制功能。經由平衡執行控制任務以及複雜計算的要求,這種方案可以根據系統即時處理的需求,完成100%的控制或者100%的計算任務,且完成所有任務不須要在DSP模式和MCU模式之間的轉換。
另外,新型的DSP也提供一套精簡指令運算(Reduced Instruction Set Computing, RISC)指令系統集、記憶體管理單元、事件控制器以及多種外設,以便在一顆單晶片內提供大量計算和高效系統控制功能。
DSP/MCU比較分析
首先回顧DSP和MCU的典型功能,DSP主要在於單個時鐘週期內盡可能完成多個MAC操作,針對這點,指令的操作代碼通常是可變的超長的指令字(VLIW),DSP也適於工作在緊密、高效率的環境線路之中。另外,為了達到性能指標通常須要編寫優化的彙編代碼,由於DSP的演算法程式一般裝在小容量、短暫等待時間的內置記憶體中,所以代碼密度通常不是大問題。
如同DSP主要用於完成計算一樣,MCU主要用於完成控制功能,同樣地,典型的MCU應用包括許多條件操作,在程式流程中頻繁地跳轉,通常使用C或C++語言編寫程式。而且,代碼密度極為重要,並且根據編譯代碼的長度來評估演算法。記憶體系統是基於快取記憶體從而允許該系統設計工程師使用較長等待時間,並從較大的記憶體調用較大程式,利用基於快取記憶體系統,程式師毋須考慮何時將指令輸入到內核執行工作。
統一的DSP和MCU兼備兩者的優點,它的指令集由16位元、32位元以及64位元操作碼組成,但是由於最常用的指令採用16位元編碼,所以編譯代碼密度大小與主流的MCU相同。另外,它包括一個記憶體保護功能及指令快取記憶體和資料快取記憶體,做為整體記憶體管理單元(MMU)的一部分。此外,提供一套完善且簡易的C/C++開發工具,可選組合語言或者全部組合語言適合演算法優化的編程。
RTOS簡化編程模式
系統控制的重要功能是任務管理,即時操作系統(RTOS)逐漸地用於控制複雜系統中多種正在進行以及同時發生的任務。通過提供對任務調度與管理的支援,RTOS簡化了編程模式,這通常是由MCU控制所進行的,由於普通的DSP不具備支援RTOS需要的所有功能,因此可有效進行控制。
然而,統一的DSP和MCU促進了RTOS幾個重要功能的發展,第一個是限制訪問功能,以便保護或者保留儲存單元;第二個是配備單獨的堆疊和幀指標以減少作業系統(OS)請求、中斷以及異常處理所須等待時間;第三個是具備單獨的用戶操作模式和管理員操作模式。過去,DSP按照等同於管理員操作模式工作,從而允許在任何時間完全運用所有的系統資源,然而MCU提供類似用戶操作模式,允許在作業系統(OS)的頂層執行應用軟體。目前,在統一的系統結構下提供兩種操作模式,因為增強的DSP系統能夠限制用戶應用軟體僅通過作業系統運用系統資源。
周邊設備有效利用DSP內核信號處理
MCU的一個優點是包含使用靈活和種類齊全的周邊設備,作為通用的嵌入式控制器,它們通常具備可編程輸入輸出(I/O)標誌、計時器、串列介面和複雜度日益增加的標準介面。MCU周邊設備的主要作用是嵌入式控制,而不是大量計算,如一個即時時鐘信號可以喚醒一支溫度感測器運用以採集環境溫度,並將一個延遲的資訊通過I/O接腳反饋到MCU,然後,一個計時器的脈衝寬度調製(PWM)輸出相應地能夠增加或減小風扇電機的轉速。
如同MCU一樣,統一的DSP和MCU具備一套系統控制周邊設備,例如即時時鐘、多功能計時器、監視計時器、雙向標誌位元接腳。然而,它還包括一些高速介面,例如周邊元件連接介面(PCI)、非同步或者同步記憶體控制器、USB、並行視頻介面,以便透過這些介面與許多DMA通道配合快速搬移資料,從而有效利用高速DSP內核的信號處理能力。
整合DSP/MCU節省功耗
功耗控制一直是嵌入式控制器的一項重要功能,但是,當系統要求DSP具有優良的性能時,對其電源的選擇並不太理想。如果將獨立的MCU和DSP晶片應用於電源方面,通常必須為每個晶片提供一個單獨的開關穩壓器,由於這兩個元件的內核電壓經常不一致,將會導致降低電源變換效率以及增加設計元件的接腳數目,最終增加布線的複雜程度和解決方案的成本。此外,當MCU和DSP的內核集成到一個晶片上時,電源解決方案本質上不是最優異的,因為必須滿足兩個完全獨立,並具有不同負載特性處理器的需求。
相較於統一的DSP和MCU,它包含一個集成動態電源管理(DPM)控制器。由於它只有一個處理器的系統結構,所以該控制器能夠完全適合其應用的需求,它提供幾種固有的電源模式以支援多種系統性能等級,另外,對於未使用的時鐘和第二層記憶體可選擇性地禁止。該PLL(鎖相環)的頻率可在一個寬範圍(通常1~31倍)進行調節,以滿足在DSP和MCU內部多層次的處理須求,最後能夠在外部或通過一個集成的開關控制器調節電壓,以提供指數式的節省功耗。
(本文作者任職於美商亞德諾公司)
(詳細圖表請見新電子239期2月號)