2. 緒論 (Previous work)
2.3. 論文研究目標
要實現兩個或以上平行的處理器分工,妥善的軟體整合十分重要,如何在現有的 硬體架構下,利用軟體的分工來達到高效能的表現是一個很重要的課題。在目前的軟 體設計環境趨勢中,大多根據資料處理的特性來進行工作的分配,而且這種工作的分 配是離線的(off-time),在編譯的階段就需要被決定了,決定哪些工作要在 GPP 上執 行,哪些工作要在 DSP 上執行。但是每個使用者的使用習慣和使用環境都不盡相同,
核心間的狀況來分配的,當 DSP 忙碌時,GPP 也可以幫忙做些多媒體的工作,使得系 統 的 設 計 變 的 更 有 彈 性 。 以 下 我 們 定 義 了 兩 個 新 的 名 詞 : Loosely-Coupled 和 Tightly-Coupled,Loosely-Coupled 即是在編譯階段(compile time)就決定工作分配的方
式;Tightly-Coupled 強調的是在程式執行時(run time)根據各個核心間的狀態來分配工 作的機制。
2.3.1. Loosely-Coupled Dual-Core System
以 Freescale 針對 MXC 架構所建議的智慧型手機的軟體架構為例,利用 ARM1136 來執行作業系統以及使用者介面的控制;StarCore DSP 來處理一些具有即時性及需要 大量運算的工作,如音訊的解壓縮、通訊協定(Layer1、2、3)的處理[32]。
User Interface
Applications
Service Providers
Open OS &
Middleware Framework
Signalling SP
Audio Codec
Physical Layer Tasks
RTOS Shared
Memory
MCU SCM
Engine
Layer 3 Layer 2 Layer 1 User Interface
Applications
Service Providers
Open OS &
Middleware Framework
Signalling SP
Audio Codec
Physical Layer Tasks
RTOS Shared
Memory
MCU SCM
Engine
Layer 3 Layer 2 Layer 1
Fig. 5 Mobile Extreme Convergence Smartphone Software Architecture
這樣的設計具有一定的優點,因為軟體切割的完整性,使的在設計上具有非常強 烈的模組性。GPP 和 DSP 的設計流程是獨立的,有助於軟體的開發和除錯,而且具有 高度的產品移植性,對於快速進入市場有相當程度的優勢。在雙核心平台上,利用資 料 處 理 的 特 性 來 決 定 該 工 作 該 由 哪 個 核 心 來 執 行 的 排 程 , 我 們 定 義 為 [Loosely-Coupled dual-core system]。但是這種靜態排程潛藏著一些值得探討的問題,
當 DSP 已經很忙碌時,我們是否適合把認為該是 DSP 處理的工作再往 DSP 丟,而加 重 DSP 的負擔,而且可能這時 GPP 正處於閒置的狀態,如圖 5 所示。
RISC core start
Video encode job Job to DSP
DSP core start
Signal ?
Video Compression
process
Generate Interrupt Receive
Interrupt
Output the bitstream
Yes
No
Other processing /IDLE RISC core start
Video encode job Job to DSP
DSP core start
Signal ?
Video Compression
process
Generate Interrupt Receive
Interrupt
Output the bitstream
Yes
No
Other processing /IDLE
Fig. 6 video encode for loosely-coupled dual-core system
這種機制還有一個缺點,就是程式設計人員必須對多媒體任務的特性有相當程度 的了解,他必須先經過相當多的資料分析和測試,才能決定哪些工作是適合 GPP 做 的,哪些工作是適合 DSP 做的,加重了程式設計人員的負擔。
2.3.2. Tightly-Coupled Dual-Core System
在 Freescale 所建議的軟體架構中(圖 5),我們可以發現 DSP 所需要負責的工作越 來越多,包含當初是 MCU 所負責的 layer2、layer3[32]。如果在這個平台上我們想要 增加一項多媒體播放或錄影的功能,按照多媒體特性的直覺,我們可能會將這一項任 務分配給 DSP 來處理。但是這真的是洽當的嗎?
當我們考慮利用雙核心平台來進行需要大量的運算的視訊壓縮時,龐大的資料處 理量(如 HDTV)可能不是 DSP 處理核心還有辦法負擔的,在不改變現有的硬體架構 下,我們希望藉由運算能力日益強大的 GPP 的幫忙來達到使用者的要求。本論文針對 多媒體視訊壓縮器提出 [Tightly-Coupled dual-core system] 的架構 (圖 6),希望在既 有的雙核心硬體平台環境下,利用 GPP 和 DSP 來平行處理視訊壓縮工作,來達到即 時性的要求。
9
RISC core start
Video encode job Job to DSP
DSP core start
Signal ?
Processing Part of task
“A”
G enerate Interrupt M ux
O utput the bitstream
Yes
No
Processing Part of task
“A”
RISC core start
Video encode job Job to DSP
DSP core start
Signal ?
Processing Part of task
“A”
G enerate Interrupt M ux
O utput the bitstream
Yes
No
Processing Part of task
“A”
Fig. 7 Video Encoder for tightly-coupled dual-core system