這一章將會介紹此領域的相關研究。依順會介紹多核心平台著名的排程演算 法,對稱多核心平台及非對稱式多核心平台,非對稱式多核心平台系統的排程,
動態排程,共享資源的控制,非對稱式系統晶片 SoC,和靜態式分工系統。
2.1. 多核心平台排程演算法
多核心處理器架構排程器的研究越來越受到重視。過去十多年來,在實用 上 , 多 核 心 排 程 演 算 法 的 發 展 重 點 是 放 在 對 稱 式 多 核 心 系 統 (symmetric multiprocessor system)上。多核心排程技巧在同質多核心平台部份可以被分成兩 類,partition scheduling 和 global scheduling[23]。 Partition scheduling 是指每一個 核心有自己的工作駐列(task queue),包括 ready 駐列和 wait 駐列。工作排程的考 慮會以各自區域的 priority 為主,與其他處理器獨立。每一個工作一旦被分配到 一個處理器,在其生命週期內都不會移到別的處理器。 Global scheduling 則是將 所有準備完成的工作放在一個共同的 priority 駐列。最高 priority 的工作會被挑選 放到一個工作量較低的處理器執行。這種 scheduling 模式在同質多核心的系統上 表現較前者佳。
以下簡單列出一些常用的多核心排程演算法[3]:
z Rate monotonic: 每一個週期性的工作有固定的 priority,priority 的順 序是根據該工作的執行頻率高低而定,例如要等待 interrupt 的工作,其 priority 相對較低。在 1973 年,Liu 和 Laylan 證明這個演算法是固定 priority 演算法中最理想的一種。
z Earliest Deadline First: 這種演算法可將週期性和非週期性的工作一起 排程,主要概念是越早結束的工作越先執行。M. L. Dertouzos 在 1974
年證實當瞬間有許多工作等待執行時,此演算法是最有效率的。
z Deadline Monotonic: D.M.結合上述兩種演算-- priority 的給定除了根據 該工作的執行頻率外,另外會再考慮 deadline 越早,priority 越高。
z Background Scheduling: 此種演算法同時處理 soft real-time aperiodic task 和 hard real-time periodic task。兩種型式的工作分別置入兩個不同 的駐列。此演算法實用上雖沒有很高的利用性,但其優點在於實作很簡 單。
z Pooling Server: P.S.可處理非週期性的工作。每個時間區塊一過,server 便服務下一個時間區塊可以執行的工作。若沒有工作在等待被執行,則 會閒置 server,等到下一個時間間隔再甦醒。
z Deferrable Server: 此演算法類似上一個,但是若下一個時間區塊沒有 等待被執行的工作,則 server 服務可能被服務的工作,而不是閒置 sever。
z Sporadic Server: S.S.使用於非週期性工作,可以增進其反應時間,使 得非週性工作的效能追上週期性工作的效能。
z Dynamic Sporadic Server: 這個演算法利用 deadline 調整 priority,增進 Sporadic Server 的效能。
z Robust Earliest Deadline: 這是 1995 年 Buttazzo 和 Stankovic 發展的 演算法,作用於 over loading 環境中的非週期性工作。此演算法不只可 以減少 deadline 預測錯誤,也可降低系統 over loading 的程度。
z Constant Bandwidth Server: 這是在 1998 年 Buttazzo 和 Abeni 發展的 演算法,用來解決即時多媒體應用的問題。例如在串流影音的系統中,
對串流資料的傳輸和處理的 delay 和 jitter,必須要控制在一定的範圍 內。
z 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’s law 指出平行化程式的加速將會被計算 的連續部份限制。第三,不斷增加的晶片整合層級和逐步降低使用的電壓結合使 得如何減少電量的耗損成為首要注重的設計限制。此論文的目標是最小化多執行 緒程式的執行時間。該執行緒包含平行處理和連續處理的階段,同時也保要有多 核心單晶片的電力消耗限制。為了減少 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 可以減少時間耗損百分之三十到百分之六十。在許多 測試情況下非對稱的系統和對稱式的系統幾乎有一樣的效能,甚至前者有優於後 者的情況。重要的是,在對稱式系統中,作業系統工作因 functionality partition 仍需在全部可以使用的處理器中選擇執行者,相較之下非對稱式系統指定單一處
能。作業系統的工作的 priority 相對高於一般應用程式,而在兩者有相同 priority 時,作業系統的工作可以較優先得到處理器的使用權,稱之為 OS Preempt。相 對於其他策略 OS Preempt 可以減少時間耗損百分之三十到百分之六十。在許多 測試情況下非對稱的系統和對稱式的系統幾乎有一樣的效能,甚至前者有優於後 者的情況。重要的是,在對稱式系統中,作業系統工作因 functionality partition 仍需在全部可以使用的處理器中選擇執行者,相較之下非對稱式系統指定單一處