隨著各種網路系統的迅速發展,每秒頻寬不斷的提升,網路應用也從早期以 文字為主的應用,進步到包含豐富圖形的應用,現在更已經達到音效視訊內容十 分普及的程度。線上收聽音樂,網路電視即時轉播,甚至是視訊電話,已經是嵌 入式設備的基本需求,所以多媒體運算的性能需求也越來越高。目前市場上的行 動式嵌入系統開發設計,都是以異質雙核心平台為主流,由一個負責介面流程控 制的RISC 核心,和一顆為多媒體運算特別設計的 DSP 核心所組成。在本章中,
我們會討論幾個異質多核心平台的分工和排程系統的研究。
2.1. Tightly-coupled MPEG-4 Video Encoder Framework
由邱正男等人所提出的一個專為異質雙核心平台設計的以 Tightly-coupled 的方式運行 MPEG-4 的視訊編碼的架構[1],相對於傳統都以靜態的 partition 方 式,來決定各核心上運行的工作分配,例如:DSP 執行多媒體編解碼或通訊實體 層的計算工作,RISC 則是負責控制管理。但隨著 RISC 設計的演進,新一代的 RISC 核心也能夠進行計算量相當大的運算,因此這裡提出了一個將視訊編碼工 作以緊密結合(Tightly-coupled)協同運算的方式,同時分配視訊編碼工作給 RISC 和 DSP 核心一起協同運算,如 Figure 1。以 OMAP1510 的硬體平台[2]運行 MPEG-4 Simple Profile[3]的視訊編碼器為測試基準,以緊密結合的方式其編碼速 度比完全交由DSP 運行還快。
Figure 1. A tightly-coupled dual-core system.
2.2. Dynamic Concurrent Tasks Management
由 Lauwereins 等人所提出的同時運行工作的動態管理[4],因為使用者操作 的多樣,造成了複雜的功耗和Timing 的 Constraint,它能達到最低功耗又能找到 符合Timing Constraint 的工作分配方式,主要是由兩個階段的 Schedule 方式,首 先從各個工作中找出可能的同步運行的部分產生MTG model[5],並再進一步將 MTG model 轉化以降低複雜和提昇平行性,並靜態地測試在各個核心運行的所 花費功耗和時間,產生運行時間對比功耗的Pareto-optimal set,在 Runtime 時再 根據靜態分析的結果,找出符合目前功耗和時間的工作分配。主要架構可以參考 Figure 2。
Figure 2. Two Phase Scheduling Method.
2.3. Dataflow Kernel
歐旭江針對異質雙核心平台設計了一個DSP Dataflow Kernel[6],以資料流的 概念,隨著進來的資料順序來對DSP上的Process排程,是一種Non-preemptive的 排程方式。而實際的排程是由運行在RISC核心上的DSP Manager所決定,如Figure 3,主要是根據各個Process和Queue的資訊,來決定是否接受RISC核心上的Process 之Request。因為RISC比DSP更適合做這些判斷決策,這樣設計的優點可以簡化 DSP Kernel複雜度,以降低提供DSP服務排程的Overhead。
並且DSP Manager 提供了 DSP Process 對 RISC 發送 Request 的介面,使得 DSP 也可以使用到 RISC 的資源,另外 DSP Manager 還能動態抽換 DSP 服務,
適合動態運算多種視訊編碼使用。
Figure 3. Scheduling Architecture.
2.4. Multi-core DSP Interface
Hung 等人所提出的一個針對異質多核心平台所使用的 compiler directive extension[7]。在嵌入式設備上,為了運行多媒體應用,有許多設計都會使用 DSP 核心,甚至是異質多核心的架構,來達到高效能、低功耗、高彈性並且價格低的 需求。可是隨著這樣的平台的複雜化,其運行的軟體設計就依賴high-level 的開 發工具來加速開發速度,但其慣用的compiler 時常沒有完全利用到一些先進的硬 體設計,因此並完全發揮出這個平台所能達到最佳的效能。
所以為了在這樣異質多核心的平台下,達到軟體的移值和效能的最佳化,提 出了一個可以算是標準C/C++語言所延伸的註解語言,來指示 compiler 產生出有 利用到 DSP 硬體的運算指令,多核心的調度,資料的平行處理,以達到這個平 台應有的效能。