在街頭上,隨處可見用手機在聊天談事情的人們;或是掛著耳機,利用 mp3 播放器在聆聽音樂的青少年;上班族也幾乎用 PDA 取代了以往紙本記事的習 慣。如此廣大流行的手持式裝置,如今越來越擴展它的應用層面,例如手機支援 百萬像素的拍照功能,使手機也有了數位相機的能力;3G 的影像電話功能,不 只是對話,也能同時看到對方的表情,讓遠距溝通變得更生動;mp3 播放器的 文字瀏覽,秀圖系統甚至影片播放功能,令單純聽音樂的 mp3 播放器提高其附 加價值,搖身一變成為微形的數位娛樂中心;另外 PDA 的衛星定位導航功能,
打破了我們一向認為 PDA 只不過是個可以帶著走的超小型桌上電腦的既有想 法,發揮了在移動力上的特性。相信未來必定會推出更強大更高品質的應用,使 得嵌入式系統的複雜度迅速地提升,相對的嵌入式系統的工作效能也必需提高。
為了諸如此類眾多新的功能,以多媒體應用來說,嵌入式系統必需完成極大 量的多媒體資料處理工作;換句話說,嵌入式系統要在相同甚至更短的時間內,
處理更大量的資料,做更多的運算工作。提高嵌入式系統的能力是必要的。就過 去電腦系統的發展史來看,提高系統的能力不外乎是提高處理器的能力為主,而 處理器的能力就直接關係到它每秒可以運算的次數,每秒可以執行的計算量,亦 即處理器的頻率。然而目前利用此一概念發展的單一核心嵌入式平台己不敷使 用。
考慮手持裝置的特性:輕巧以及移動力佳。嵌入式平台便有了體積上的限 制,其中便影響到一個重要的耗電量的問題。體積上的考量,手持裝置無法配置 大容量大體積的電池,同時顧及其移動的特性,也無法接受一再需要補充電力的 要求。提高核心頻率會消耗大量電力,這一點會成為嵌入式平台的致命傷,再者,
高核心頻率相伴而來的是產生許多的熱量,散熱方面也是一個難題。在現今市場 上,整體行動裝置效能的提升不是利用提高核心頻率的方法,而是以增加核心數
(處理器數量)來平衡高核心頻率需求及大耗電量和高熱能產生的缺點。這種多個 處理器的架構,我們稱之為多核心架構(multiprocessor architecture)。
事實上,異質多核心架構(heterogeneous multiprocessor architecture)在嵌入式 系統的發展己被業界廣泛地使用,例如德州儀器公司的 OMAP(Open Multimedia Application Platform),以及 Freescale 的 MXC。在非對稱式多核心系統晶片 (system-on-chip: SoC)架構裡,會有顆一般功能的處理器(general purpose processor:
GPP)核心,做為嵌入式系統作業系統的控制核心,配上一顆數位訊號處理器 (digital signal processor: DSP)核心。DSP 可以大量即時處理多媒體資料,如 MPEG 1、MPEG 2、MPEG 4 或是音訊資料等等。以德州儀器公司的 OMAP 5912 OSK (OMAP Starter Kit)為例 [1],其 GPP 採用 ARM 公司 ARM926EJS,DSP 則是德 儀自行研發的 TMS320C55X。研發人員可以依照資料處理的性質,將工作分配 給 OMAP 架構微處理器中的 ARM 微處理器或者是 DSP 微處理器去處理。非對 稱式多核心架構可有效率利的處理嵌入式系統上的工作(task),發揮系統的最大 效能,特別是對於多媒體的應用程式有令人亮眼的表現。
現存的即時作業系統(real-time operating system)對於非對稱式多核心架構大 部份是採用靜態式分工(statically partitioned)的方法。所謂靜態式分工方法是系統 設計時研發人員就做好工作的分配,屬於控制流程的工作就交由 GPP 執行,屬 於多媒體運算處理的工作多交由 DSP 執行。在這種分工架構之下,有兩個不同 的 schedulers 為兩顆核心獨立運行已分配好的工作。換句話說,兩顆核心各自處 理已分配好份內的工作,完成之後,在下一個工作來臨之前是閒置的狀態,因為 在獨立的視野裡,已是最好的效能發揮。這類型的分工方式在傳統行動通訊平台 及應用程式環境下是相當有效的法。過去常用的 GPP 核心在特殊工作處理的功 能性和速度都有所不足,意即 GPP 沒辦法勝任 DSP 的工作。並且過去的嵌入式 應用程式環境通常是單純的前景/背景(foreground/ background)工作模式,所以不 需用到複雜的動態排程。
但是新一代多媒體應用會拓展到更寬廣的層面,再加上硬體裝置上有了新的 提升。首先,多媒體應用程式已經複雜到一個境界,為了提升系統效能和減低能 量的消耗,必需用動態調整兩顆核心的工作量取代系統設計時做好的工作分配。
其次是 GPP 的能力已被大幅提高,可以幾乎和 DSP 等速地處理某些多媒體資 料,換句話說, 在這些情況下,GPP 可以用來分擔 DSP 的工作負載。接著是多 媒體應用程式在記憶體和計算量的需求己經大大超越過往,多媒體資料經常會被 包裝成運輸串流(transport stream),往返於兩顆核心之間,但是在執行時核心之 間溝通的成本並非固定,譬如傳輸時電力的消耗與總電量的關係、工作有沒有完 成時間的限制(deadline)等……,有太多因素要考量,是不可能在系統設計時就預 測到並且做好資料傳輸的設定。著眼於系統效能,靜態式分工系統設計不再合 適,即時作業系統排程器在設計上要有新的突破。
考慮以上種種原因,我們便提出一種新的動態精細分工式(tightly-coupled) 作業系統排程器[21],[22],這種新的排程法會由單一排程器監控各顆異質核心 的工作狀態,並能動態地分配工作給當下最合適的處理器核心。排程視野的廣度 上,由系統設計時就定好的靜態工作分配延伸到執行時的動態分配;而深度上,
考量整個系統即時的狀況,做出最適當的工作分配並減少微處理器的閒置浪費,
取得比靜態式分工系統更大的效能發揮。