嵌入式應用性價比/功耗要求嚴苛
整合式架構小而美優勢顯著

2009-08-18
微處理器與微控制器的不同,在於微控制器必須在硬體資源相對受限的條件下,滿足多種嵌入式應用所需的效能門檻。為了更有效率地使用所有硬體資源,更協助客戶把每分採購成本的效益都發揮到極致,整合式微控制器的概念與相關實作產品,遂應運而生。
嵌入式系統設計首重系統規格定義。無論系統規格需求是多工或是專工,系統工程師在挑選處理器開發平台上,莫不殫精竭慮,試圖找出最佳化的搭配。這點通常與資訊產業背景的設計人員的考量是南轅北轍的。  

擁有資訊產業背景的設計人員由於習慣在硬體資源充裕的平台上進行應用開發,因此常出於作業系統與應用軟體同步開發的考量,而優先選擇以超高效能之處理器與大容量記憶體為開發平台;待軟體最佳化處理告一段落後,再回頭確認處理器與記憶體等硬體規格是否還有更精簡化的空間。  

從硬體設計角度而言,多核心處理器的出現,的確帶給系統工程師在從事系統設計時一些新的思考面向,例如高整合度的線路設計、更精簡的電路板面積與周邊被動元件數量,以及降低系統耗電量等,但除了電路板面積縮小外,其他訴求真的如此輕易達成嗎?尤其以節能低功耗為目標時,超高時脈的核心與過於複雜的系統架構,加上不夠精簡的指令集,反而使整體效能大打折扣。  

有鑑於此,德商海派世通(Hyperstone)於1996年發表了以單一核心與指令集同時兼容精簡指令集運算中央處理器(RISC CPU)與數位訊號處理器(DSP)兩種不同功能訴求的處理器設計架構。其目的即是以最精簡的軟硬體架構,滿足微控制器/微處理器對運算與控制功能的需求。而其可編程之單一指令集,更能大幅提升作業系統效能。  

唯有從軟硬體同時變革,才能真正達到節能與即時作業系統(RTOS)的訴求。近年來,市場上許多針對嵌入式應用領域開發的處理器核心,也或多或少地導入整合概念,證明在嵌入式市場上,整合式架構的確有其獨特魅力。  

各司其職有助達成功耗最佳化  

在嵌入式系統中,RISC CPU主要的用途是做為通用微控制器,而DSP則是用於特殊演算法及處理大量運算之用。然隨著科技進步,人們對資訊產品的需求越來越高,同時具備這兩種能力也變得越顯重要。雖然整合式微處理器同時具備RISC CPU與DSP兩種不同功能,但在架構細節上,仍採用獨立處理單元的方式,以各司其職的方式達成功耗與成本的最佳化。  

以海派世通的架構(圖1)為例,此一微處理器以單核心的方式,在RSIC架構上搭配一個DSP處理單元,在輔助邏輯單元(ALU)、DSP和載入/存儲(Load/Store)單元之間實行平行作業。此微處理器工作時脈最高可達200MHz,耗電量在0.18微米的製程條件下約為40毫安培。由於使用相當精簡的邏輯閘數量,因此可以降低製造成本與縮小晶片尺寸。

圖1 整核式CPU架構方塊圖

而在指令格式部分,為了達成以單一指令集支援CPU與DSP功能的目的,整合式微控制器的指令位元長度可視應用需求進行變更,例如在CPU的部分主要使用16位元指令,但使用者可視應用需求,彈性地將其延伸至32或64位元指令(圖2)。相較於傳統RISC架構固定長度的32位元指令格式處理器,使用變動長度的指令具有較大的程式碼密度。這樣的作法除了節省記憶體空間外,最大的優點在於可以減少將近一半外部記憶體。此外內部的快取記憶體(Cache)空間亦可儲存較多的指令。

圖2 可變式指令長度示意圖

成本/效能平衡發展考驗供應商創新能力

不可諱言的是,在嵌入式應用領域,微控制器供應商的設計人員在開發產品時,所面臨的成本條件限制遠較超高效能微處理器開發者更為嚴苛。  

但這不意味著微控制器的應用客戶可接受效能低落,只求低成本的解決方案。微控制器供應商必須做出更多創新,才能盡可能提供最高性能。  

例如在指令快取的設計部分,為了有效減少矽晶圓的面積,核心處理器指令快取的設計,可以結合快取記憶體與緩衝器(Buffer)兩種功能,讓MCU供應商即使在內建的快取記憶體容量相對較小的條件下,亦能達到近似於大容量快取記憶體的效能。在此,供應商的指令預測演算法設計良窳,亦為決定指令快取效能的關鍵。核心處理器可藉由在一個記憶體中一次擷取兩個16位元的指令,發展出一個有效的指令預測(Look-ahead)擷取的演算法。  

管線化的設計則是所有CPU在追求高效能時所遵循的基本概念,但由於過深的管線將對晶片成本造成負面衝擊,且不見得有利於提升效能,因此管線化的設計必須謹慎為之。根據基本指令格式的規則,從內部快取記憶體中讀取指令與解碼的動作,在一個時脈週期內完成,並在第二個時脈週期執行指令的二級管線架構,是最能兼顧效能與晶片成本的設計方式。  

以本文的範例架構來說,由於處理器的輔助邏輯單元與DSP單元各自獨立,因此標準指令與DSP指令可平行運行。所有標準指令皆可以在一個時脈週期內完成,且指令讀取、運算與結果的產生亦均可在一個時脈內完成。由於二級管線式架構,指令管線化可在單一週期內執行更多指令。然而,太多管線深度級數會造成處理器效能降低,根據海派世通的估計,在此一架構上每增加一級額外的管線,約略減少20%處理器的效能。因此在本文範例架構中,採用二級管線架構最為理想。  

暫存器堆疊設計的好壞,也會影響CPU的效能與成本。為了達到成本與效能最佳化的目標,堆疊暫存器被組織成一個環形的緩衝器,並運用重覆堆疊的概念,是一種可行的作法。  

以本文範例所採取的實作架構為例,其CPU擁有六十四個32位元的區域性暫存器(Local Register),每個區域暫存器皆可當成指令的來源(Source)、目的(Destination)與運算用途的暫存器。在呼叫到副程式時,處理器會自動配置六個區域暫存器當成堆疊框架(Stack Frame),並在離開副程式後自動釋放。  

使用者也可透過FRAME指令來配置最多十六個區域暫存器當成堆疊框架。編譯器可以更有效的使用暫存器資源。當呼叫不同的副程式時,新的堆疊框架會被重新配置。若一個新的堆疊框架超出內部暫存器堆疊,處理器會自動將最舊的堆疊框架內容轉換到外部記憶體內,採用後進先出暫存器堆疊的方式。  

返回副程式時,處理器會自動檢查此副程式的堆疊框架,若不完整將自動從記憶體中重新載入。若一個堆疊框架平均消耗八個區域暫存器,處理器可以處理八個連續副程式呼叫,而不須使用Push與Pop操作。這種作法在進行中斷呼叫時,提升效率的成果最為顯著。  

匯流排介面也會影響CPU的效能與成本,在電路設計上,可以直接介接各種記憶體以及輸入/輸出(I/O)裝置,不需額外邏輯解碼電路的介面,不僅有助於降低閘極數量,也有助於降低電路延遲,更是實現低功耗的關鍵。  

休眠/待機模式設計有助降低系統功耗  

低功耗是目前所有電子元件共同追求的目標,特別是對手持式設備與各種依賴電池供電的嵌入式系統而言,功耗數字更是必須斤斤計較的指標。因此微控制器供應商必須在休眠/待機模式上做出許多創新設計,以滿足客戶的需求。  

舉例來說,在整合式微控制器中所使用的CPU核心,由於並非每項任務都會使用到全部的功能,因此微處理器應只提供時脈訊號給目前指令所需的解碼與執行單元,讓其他閒置的電路保持休眠狀態。例如在某項運算任務中,設計者沒有使用到DSP指令,處理器就不必提供時脈訊號給整個DSP乘累加器單元(Multiply-Accumulate),這樣的設計方式便可讓CPU的功耗大幅降低。  

系統層級的省電模式亦是降低功耗的主要手段。對應用設計者而言,透過設定控制暫存器,讓微控制器進入不同的省電模式,是目前從事低功耗設計時的普遍作法。許多微控制器也都支援如低功耗模式(Power Down Mode)、休眠模式(Sleep Mode)等省電模式功能。  

雖然各家供應商對於省電模式的命名方式可能略有出入,但大體來說,所謂的低功耗模式多半是讓使用者經由設定控制暫存器,讓CPU暫停目前執行的工作,並只供電給靜態隨機存取記憶體(DRAM)、內部時脈、中斷操作與I/O控制。使用者可以藉由內、外部的中斷(Interrupt)或重置(Reset)來喚醒程式運行。  

休眠模式則是更進一步將處理器的時脈完全停止。系統所使用的外部石英振盪器亦會停止工作。使用者必須藉由外部重置訊號與中斷來停止休眠模式,將MCU喚醒。  

當處理器接收到外部重置與中斷訊號時,處理器會開始運行標準的重置程序。當進入休眠時,所有暫存在內部記憶體、外部記憶體與時脈記數將會消失。  

要讓處理器進入休眠模式,使用者通常只須執行I/O寫入的指令,將特定位址線設定為高位元。並使用一個空迴圈等待確保處理器進入休眠模式。當使用中斷訊號來喚醒處理器時,中斷訊號時脈必須大於處理器執行重置程式的延遲時間,否則處理器將再次進入休眠模式。  

除了上述兩種基本的節能模式外,還有些更精細的省電模式,端視不同供應商的設計巧思。以海派世通的作法為例,當CPU處於低功耗模式時,還可藉由控制時脈除法器來進一步降低處理器的時脈。例如,若外部晶體振盪器的時脈為10MHz,處理器的時脈為80MHz,當處理器進入低功耗模式時,使用者可以藉由設定控制暫存器,將處理器的時脈設定為10MHz,以進一步降低功耗。須注意的是,讓處理器進入低功耗模式前,必須先將處理器的時脈降低,並且禁止中斷產生。待離開低功耗模式後,再將中斷開啟並調回處理器原來的時脈。  

多核心架構有待嵌入式市場考驗  

現今市場上,多核心架構是相當熱門的主流架構之一,然就筆者的觀點,其實多核心架構並不適用於嵌入式應用領域。因為使用者在進行應用開發時,常常因多指令集間存在根本衝突,而面臨諸多設計上的挑戰,並迫使開發人員選用更高階的處理器平台,以更大的運算能力避免應用程式間衝突。這種作法除了有助於加速產品上市時間以外,其實無助於解決功耗與成本等嵌入式應用所關注的核心問題。  

不少CPU供應商動輒以更先進的製程投產,以期達到提升運算能力與降壓省電之目的。但多指令集間之衝突所衍生出巨大複雜的軟體架構,同樣虛耗處理器的運算能力,倒果為因,捨本逐末。因此,多核心架構在嵌入式應用市場上,相較於單核心整合式架構,究竟能有多少市場接受度,仍是個有待檢驗的問題。  

(本文作者為海派世通研發協理)

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!