Abstract
在異質多核心架構撰寫平行程式,需要面對許多的問題,像是 MPU 與 DSP 的不同指令集 、不一致的記憶體架構、MPU 有作業系統所以看到的是虛擬記憶體而 DSP 看到的是實體記憶體。 在此環境下撰寫程式需要工程師許多努力,才能達到好的效能,所以我們提出一個異質多核心 程式設計模型,Multicore Software API(MSA) 與 Software Cache API,來幫助程式設計師撰寫平行程式。 MSA 是一個中間層隱藏了底層的硬體資訊,MSA包括了3 個模組,遠端程序呼叫模組、 訊息傳遞模組 與串流模組。遠端程序呼叫模組提供了應用程式介面可以讓使用者卸載程式至 DSP,同時也可以透過函式名稱呼叫在 DSP 上的程序起來執行,而訊息傳遞與串流模組,則是提供了非串流與串流的資料傳輸方式, 來讓程序彼此之間建立溝通管道交換資料。 在嵌入式系統中,大量的存取外部記憶體會帶來效能的降低, Software Cache API 是被設計來處理愈來愈複雜的記憶體層級, 它提供了應用程式介面來幫助程式設計師處理資料在外部與內部記憶體的流進流出, 簡化軟體開發得難度,同時滿足高效能的需求。 最後,我們在 SID-based 多核心模擬器上實做了 MSA 與 Software Cache API 並以立體視覺應用程式來示範如何使用我麼的程式設計模型來開發平行程式。