• 沒有找到結果。

這一章將會介紹此領域的相關研究。

依順會介紹多核心平台著名的排程演算 法,對稱多核心平台及非對稱式多核心平 台,非對稱式多核心平台系統的排程,動 態排程,共享資源的控制,非對稱式系統 晶片 SoC,和靜態式分工系統。

2.1 多核心平台排程演算法

多核心處理器架構排程器的研究越來 越受到重視。過去十多年來,在實用上,

多核心排程演算法的發展重點是放在對稱 式 多 核 心 系 統 (symmetric multiprocessor system)上。多核心排程技巧在同質多核心 平 台 部 份 可 以 被 分 成 兩 類 , partition scheduling 和 global scheduling[23] 。 Partition scheduling 是指每一個核心有自 己的工作駐列(task queue),包括 ready 駐 列和 wait 駐列。工作排程的考慮會以各自 區域的 priority 為主,與其他處理器獨立。

每一個工作一旦被分配到一個處理器,在 其生命週期內都不會移到別的處理器。

Global scheduling 則是將所有準備完成的 工作放在一個共同的 priority 駐列。最高 priority 的工作會被挑選放到一個工作量 較低的處理器執行。這種 scheduling 模式 在同質多核心的系統上表現較前者佳。

以下簡單列出一些常用的多核心排程 演算法[3]:

 Rate monotonic: 每一個週期性的工 作有固定的 priority,priority 的順序是 根據該工作的執行頻率高低而定,例 如要等待 interrupt 的工作,其 priority 相對較低。在 1973 年,Liu 和 Laylan 證明這個演算法是固定 priority 演算 法中最理想的一種。

 Earliest Deadline First: 這種演算法可 將週期性和非週期性的工作一起排 程,主要概念是越早結束的工作越先 執行。M. L. Dertouzos 在 1974 年證 實當瞬間有許多工作等待執行時,此 演算法是最有效率的。

 Deadline Monotonic: D.M.結合上述 兩種演算-- priority的給定除了根據該 工作的執行頻率外,另外會再考慮 deadline 越早,priority 越高。

 Background Scheduling: 此種演算法 同時處理 soft real-time aperiodic task

和 hard real-time periodic task。兩種型 式的工作分別置入兩個不同的駐列。

此演算法實用上雖沒有很高的利用 性,但其優點在於實作很簡單。

 Pooling Server: P.S.可處理非週期性 的工作。每個時間區塊一過,server 便服務下一個時間區塊可以執行的工 作。若沒有工作在等待被執行,則會 閒置 server,等到下一個時間間隔再 甦醒。

 Deferrable Server: 此演算法類似上 一個,但是若下一個時間區塊沒有等 待被執行的工作,則 server 服務可能 被服務的工作,而不是閒置 sever。

 Sporadic Server: S.S.使用於非週期 性工作,可以增進其反應時間,使得 非週性工作的效能追上週期性工作的 效能。

 Dynamic Sporadic Server: 這個演算 法利用 deadline 調整 priority,增進 Sporadic Server 的效能。

 Robust Earliest Deadline: 這是 1995 年 Buttazzo 和 Stankovic 發展的演 算法,作用於 over loading 環境中的非 週期性工作。此演算法不只可以減少 deadline 預測錯誤,也可降低系統 over loading 的程度。

 Constant Bandwidth Server: 這是在 1998 年 Buttazzo 和 Abeni 發展的演 算法,用來解決即時多媒體應用的問 題。例如在串流影音的系統中,對串 流 資 料 的 傳 輸 和 處 理 的 delay 和 jitter,必須要控制在一定的範圍內。

 Adaptative Bandwidth Reservation : Abeni 和 Buttazzo 在 1999 年提出對 constant bandwidth server 的改良。對 於執行時間未知的工作所能分配到的 處 理 器 的 頻 寬 可 以 經 由 Adaptative Bandwidth Reservation 來控制。在這 裡,頻寬(bandwidth)一詞指的是處理 器分配給工作的時間或是工作被執行 的週期。

2.2 對稱式多核心平台與非對稱式多 核心平台

前面提到目前實用上多核心作業系統

的排程演算法大部份都是以對稱式的多核 心平台為目標,比方說,Satoshi Kaneko et al 在 2004 提出的一個多核心平台[4]。這 個 600MHz 單晶片多核心平台包括兩個 M32R 32-bit CPU 核心,一個 512-KB 共用 的 SRAM,和一個內部分享的 pipeline bus。

這個平台是由 0.15um CMOS 製程製 造,適用於嵌入式系統。此多核心平台是 對 稱 式 的 多 程 序 處 理 平 台 , 並 且 支 援 modified-exclusive-shared-invalid (MESI) 的快取統一協定。該系統繼承了先前單晶 片多核心平台的諸項優點,並針對嵌入式 處理器做了最佳化,以使得系統效能增加 的同時也能減低電力的消耗。為了增加核 心的效能,他們在平台內部置入一個共享 的 pipeline bus。此 bus 的特性是低延遲和 每秒 4.8 G-bit 的大頻寬。此外也用多個低 耗電技術,例如擁有不同使用電力的模型 選擇: 睡眠模式、工作模式、和等待模式。

不同系統情況下,不同核心甚至週邊有不 同 的 模 式 選 擇 , 以 達 到 最 高 的 省 電 約 18.4%。使得此多核心平台在 600MHz 1.5V 之下功作僅消耗 800 mW,待機時更只耗 1.5mW。

有些應用,如 3G 通訊和嵌入式多媒 體應用,會同時執行控制的工作和大量資 料處理的工作。一般實作上,為了逹到最 佳 的 性 能 / 秏 電 量 比 值 , 異 質 多 核 心 (Heterogeneous Multi-Processor)的架構是 一般業界常用的設計方法[1], [13]。例如飛 利 浦 半 導 體 部 門 發 展 了 一 套 Silicon System Platform (SSP)。SSP 是零件的工具 箱,是一種一般性、開放性和可程式化的 架 構 。 主 要 用 來 產 生 有 軟 體 和 硬 體 IP blocks 的特定應用產品領域。過往研發新 產品,可能必需打造整個新平台架構,付 多相當的成本花費。利用 SSP 概念,為新 應用產品而修改的架構會比試著去產生整 個新架構更有實作的效率。使用 SSP 設計 產品的速度很快而且技術風險低,因為架 構中軟體硬體的功能性己經驗證過,而且 還可以結合其他工作元件更容易達到設計 的目標。同時其中有很大的空間讓設計團 隊創造不同市場需求的產品;一系列的產 品由入門到進階的產品,只需在平台上增

減功能區塊,就可有效地減少開發時間及 成本花費。日後使用者甚至可以隨著更新 軟體的版本來增強或增加產品的功能性。

飛利浦的 Nexperia 平台是一個單晶片系統 的 SSP,用來開發數位視訊產品。Nexperia 平台上主要包括 MIPS 處理器和飛利浦的 TriMedia VLIW 媒體處理器,及其他 IP 元 件。結合 MIPS 及 TriMedia 兩種不同的計 算核心,整合成單晶片系統。飛利浦利用 此平台創造出多功能的機上盒,它可以即 時解碼多個視訊串流、執行數位錄製、壓 製訊號用於視訊電話、瀏覽網站和收發電 子郵件等多項功能。其他如德州儀器(TI), 飛思卡爾(Freescale)和 Toshiba 等知名大廠 都有自己的異質多核心平台,本論文在 TI OMAP 上實作,稍後章節將會詳細介紹 OMAP 平台。

在軟體的開發過程中,軟體測試是很 重要而且很昂貴的一部份。有一種軟體測 試的方法稱之為資料流測試(Data Flow Testing),使用資料流測試可以決定一個軟 體的測試是否充份且完整。Harrold 提出一 個新的方法把整個資料流測試工作量切割 成適當的大小[5]。這些測試的工作量可以 靜態地也可以動態地接受排程。也可以改 變成適合共用式記憶體或分散式記憶體的 環境。在[5]中把資料流測試演算法實作出 單一核心平台的版本和多核心平台的版 本,並根據大量的軟體實驗來驗證資料流 演算法的正確性。另外,這些實驗也可證 實多核心平台的效能優於單核心平台。平 均效能上多核心平台比單核心平台加速 1.7 倍。

Annavaram 等人討論過非對稱式多 核心系統的效能優於對稱式多核心系統的 看法[6]。激發此篇論文的研究動機有下例 三點:首先,單晶片多核心平台上 CPU 核 心的數目增加,同時間可以執行的運算量 上升。第二,可以利用單晶片多核心架構 優點的多執行緒軟體變得更流行。因為演 算法的性質,這些多執行緒程式被分階段 連續的執行。然而Amdahl’slaw指出平行 化程式的加速將會被計算的連續部份限 制。第三,不斷增加的晶片整合層級和逐 步降低使用的電壓結合使得如何減少電量

的耗損成為首要注重的設計限制。此論文 的目標是最小化多執行緒程式的執行時 間。該執行緒包含平行處理和連續處理的 階段,同時也保要有多核心單晶片的電力 消耗限制。為了減少 Amdahl’s law 影 響,在論文中對於電量花費的計算是根據 可獲得的平行度來決定處理的指令數,並 以這些指令花費的電量為準。使用該等 式,電力 = 每個指令的能量(Energy per Instruction: EPI) * 每秒指令數(Instructions per second: IPS)。假設電力固定的情況 下,因此限制平行量的多核心單晶片是低 IPS,會花較多的 EPI。相反地,高平行量 時,會花較少的 EPI。根據[6]的實驗,在 相同的耗電量前題下,一個複雜的系統在 使用非對稱式多核心、多執行緒執行時,

會比對稱式多核心系統增加百分之三十八 的效能。

隨著近年來多媒體裝置的流行,多執 行緒平台研究關注的焦點已由對稱式多核 心系統轉移到非對稱式多核心系統。非對 稱式多核心系統比對稱式多核心系統有更 佳的效能/時脈比,因此在多不同工作執行 時非對稱式多核心系統更適合嵌入式裝 置。

2.3 同質多核心平台系統下的非對稱 式排程

前面提過,異質多核心平台在處理通 訊及多媒體相關工作時可以得到最佳的效 能/時脈比,但目前並沒有論文是針對異質 多核心平台探討動態自動排程的設計。不 過倒是有不少論文是針對同質多核心平台 研究非對稱式動態自動排程的可行性。

Wendorf 等人 提出多個工作分配和排程 方法[7],範圍由非對稱 master/slave 排程 到對稱式排程。他們在許多情況下測試這 些分配和排程方法。對於非對稱系統,結 果顯示 OS Preempt 策略幾乎在所有的清 況下都有最高的效能。作業系統的工作的 priority 相對高於一般應用程式,而在兩者 有相同 priority 時,作業系統的工作可以較 優先得到處理器的使用權,稱之為 OS Preempt。相對於其他策略 OS Preempt 可 以減少時間耗損百分之三十到百分之六 十。在許多測試情況下非對稱的系統和對