• 沒有找到結果。

RISC 與 DSP 之間的同步(Synchronization)與資料搬移(Data Movement)等稱之 為處理器之間的溝通(Inter-Processor Communication,IPC)。以程式撰寫者的觀點,不 同階層有不同的處理器之間的溝通方式[10]。如果程式撰寫者了解其下層的程式規劃模 型(Programming Models)或硬體的溝通方式,他就能直接地驅動或控制該硬體並要求 其執行相關的任務,否則須藉由一個高度抽象化(High-level Abstraction,HLA)形式,

如應用程式設計介面(Application Programming Interface, API),來達到相同的效果。

處理器之間的溝通可分成兩個部分:一是溝通的方式(如 Shared Memory),二是同 步機制(如 Polling 或 Message Passing)。在雙核心或多核心運算平台中,處理器之間的 溝通方式,通常是經由事先定義好的共享記憶體(Share Memory)以及明確地同步機制

(如 Mailbox)來完成。簡單的說,RISC 為主處理器(Master),它為系統的控制者,

當需與伺服處理器(Slave,即 DSP)溝通時,會傳送一 Message(或 Command)給 DSP。

當伺服處理器將任務完成時,也會發出中斷指令(Interrupt)給主處理器,主處理器隨 即把運算完的資料搬出,並分派下一個工作給伺服處理器來處理。

我們以 TI OMAP [11]平台中處理器間的溝通機制來當作一個說明例子。如圖 2-2 所 示,在 TI OMAP 中,處理器之間的同步機制為 Mailbox,Mailbox 內有 2 個暫存器:一 個給 RISC 送訊息並發出中斷指示給 DSP;另一個為 DSP 送訊息並發出中斷指示給 RISC 處理器。每一組 Mailbox 的暫存器包含了 2 個 16-bit 暫存器(cmd & data)。DSP Gateway 藉由此 Mailbox 來傳遞訊息,其溝通的步驟如下:

GPP (ARM)

Mailbox Register DSP

ARM2DSP mailbox (16bit cmd +16bit data)

DSP2ARM mailbox (16bit cmd +16bit data)

INT5

IRQ10

圖 2-2 OMAP 平台上的信箱

1. ARM 寫入輸入資料(Input Data)到共享記憶體(Shared Memory)

2. ARM 寫入輸入資料的位址指標與事先定義好的命令到 ARM2DSP 的信箱

(Mailbox)

3. ARM2DSP 信箱會發出中斷指示經由 INT5 到 DSP 上

4. DSP 去讀 ARM2DSP 信箱上的資訊

5. DSP 開始處理輸入的資料

6. DSP 把運算完的結果寫入共享記憶體

7. DSP 寫入輸入資料的位址指標與事先定義好的命令到 DSP2ARM 信箱

8. DSP2ARM 信箱會發出中斷指示經由 IRQ10 到 ARM 上

9. ARM 進入中斷指示服務並且讀取在 DSP2ARM 信箱上的資訊

10. ARM 得到運算完的結果

這個機制簡單,但有 3 個議題需要注意:

1. 中斷指示的代價如中斷延遲時間(Interrupt Latency):中斷指示的時間延遲定 義為當中斷發生時到進入中斷指示服務的第一道指令之間所花費的時間,在

ARM 處理器這通常會需要 25 個時間週期[12]。若兩處理器之間的溝通次數繁 多,將使其中斷延遲時間的大大的增加,而使兩處理器都處於閒置狀態。這個 問題在以發掘 TLP 的多執行緒處理器上顯得相當重要,因為多執行緒處理器通 常有多個 Process 在切換,繁複的 Process 切換所伴隨而來的處理器之間的溝 通次數也將增加。

2. 信箱的容量只允許紀錄一道訊息,若有多個訊息要傳遞,而之前的訊息還未被 處理,其要發送訊息的處理器必須要等待。

3. 系統匯流排的競爭:資料的傳遞,通常透過系統匯流排,然而系統匯流排同時 也供其他元件使用,當兩元件都要傳資料時,有一方必須要等待另一方先將資 料傳完之後,方可再傳。

3 多 多 多 多重執行緒 重執行緒 重執行緒 重執行緒協同處理器介面 協同處理器介面 協同處理器介面 協同處理器介面

Host Process Interface (HPI) 是一在 RISC 與 DSP 之間的介面,它主要負責 Process Management、記憶體管理(Memory Management)以及協助兩處理器之間的溝通。在 3.1 節中,我們首先介紹 Data Flow Process Network 的運算模型,其為我們設計所採用的 Programming Model。在 3.2 至 3.4 節中,將說明 Host Process Interface (HPI)的設計與功 能,3.5 節是本章的總結。

相關文件