透過您的圖書館登入
IP:13.59.165.130
  • 學位論文

使用非原子指令實現非阻斷式的鎖定機制用於移植無作業系統Pthread

A non-blocking locking mechanism using non-atomic instructions for bare-metal Pthread porting

指導教授 : 劉靖家

摘要


具有支援晶片上網路NOC 多核心平台已經由之前的學長提出並且實作完成, 這個支援晶片上網路多核心平台用來撰寫平行程式的平行程式模型是訊息傳遞 ( massage passing )。 另一個大多數程式設計者經常使用於撰寫的平行程式的模型是共享記憶體 ( shared memory ) 架構的平行程式模型,由於我們支援晶片上網路多核心平台尚未支援共享記憶體架構的平行程式模型,並且考慮到支援晶片上網路多核心平台程式碼的大小,由作業系統提供的Pthread 並不適合我們使用,因此我們才移植無作業系統( bare-metal ) Pthread, 無作業系統Pthread需自行實作處理環境切換 ( context switch ) 以及執行緒 ( threads ) 的排程。 令人非常意外的是,我們支援晶片上網路多核心平台使用的 OR1K 中央處理單元 CPU 並沒有支援原子 ( atomic ) 指令,所以我們才提出解決此問題的鎖定機制, 這個鎖定機制做的假設是在特定的記憶體空間上執行讀取與寫入的動作,當作是鏈接加載 ( Load-linked ) / 條件存儲 ( Store-conditional ) 記憶體的操作,為了達成鏈接加載 / 條件存儲記憶體的操作, 我們主要實作了三個部分去達到原子指令的效果, 分別是特定記憶體空間映射 ( mapping ) 機制、配合上 Load-linked 互連 ( interconnect ) 的硬體元件,最後使用鎖定機制的應用程式介面 ( API ) 來達到原子指令的效果,最後我們測試 splash-2 的應用程式來驗證我們移植的無作業系統 Pthread 和鎖定機制的正確性是否正確。

參考文獻


[2] Wen. Sheng. Chen, “Design of Non-blocking Communication Engine for NoC-based Platforms”,
1666-2005, pp. 1–423, Mar. 2006.
[1] S. Borkar, “Thousand Core Chips—A Technology Perspective”, in Proc. IEEE/ACM Design
Automation Conf. (DAC), 2007, pp. 746–749.
Master’s thesis, National Tsing-Hua University, Electrical Engineering Department,

延伸閱讀