帳號:
密碼:
最新動態
產業快訊
CTIMES / 文章 /
MIPS32 M4K核心陰影暫存器微控制器應用簡介
 

【作者: MIPS】   2008年01月15日 星期二

瀏覽人次:【8997】

簡介

RISC架構可提供微控制器許多優勢。譬如,較CISC架構操作更加簡易的編譯器及節省晶圓空間,可讓矽元件研發業者與其客戶以低廉成本獲得優異效能。


但使用者在採用RISC處理器時,仍面臨著許多額外的考量因素,尤其是通用型微控制器在較低時脈頻率方面的特性。


其中一項問題是在中斷(interrupt)或例外處理常式(exception handling routine) 時發生,本文切換(Context Switch)儲存與回復方面的程序。在RISC主機中,本文切換儲存與回復程序,往往耗費相當多的週期,因為至少有16至32個通用型暫存器(GPR)必須配合堆疊(Stack)或RAM中的靜態儲存空間,進行推入或擷取的動作。在某些情況中,這些程序耗費可觀的週期,而MIPS32 M4K核心早已準備好要處理實際的中斷要求。


研發業者也可走捷徑,不儲存所有暫存器,以組合語言撰寫整個軟體,或讓編譯器在轉譯程式碼時僅使用某些暫存器。但不論採用哪種方法,都會讓軟體開發面臨許多傳統的限制,軟體研發業者必須隨時注意這些條件。


在這方面,MIPS32 M4K RISC核心和其他RISC核心相同,內含32個GPR暫存器以及一個應用程式二進位介面(ABI),能使用MIPS32 Release 2架構中定義的所有32個GPR暫存器。


但M4K核心融合RISC與CISC兩種架構的優點,更提供了完善的解決方案,支援GPR陰影暫存器,大幅降低中斷反應所耗用的資源,直追CISC-based微控制器快速反應及定性架構方面的優點。


M4K核心陰影暫存器:基本指令

MIPS32 Release 2架構的一項新特色是大幅加速處理中斷與例外狀況的能力。運用MIPS32 Release 2架構的處理器,包括M4K核心在內,允許8個GPR同時出現在核心。此功能是建構階段(build-time)選項,建構出一個先進的中斷控制架構,在微控制器中非常少見。


新晶片的研發業者,可在速度與核心空間中取得理想的平衡點,建構1、2、4或8個GPR複本。就定義而言,陰影集0是預設的GPR元件集,最多可配置7個額外的陰影元件集,專門處理中斷服務作業。


除了以下的例外狀況外,額外的GRP彼此間及與記憶體空間完全隔離。根據應用的需求,每個GPR元件集都能連結一個或多個中斷向量。


在處理一個中斷或例外狀況時,M4K核心會根據研發人員在控制暫存器中設定的數值,自動研判要使用哪一個陰影元件集。之後再把指定的陰影暫存器元件集設定成作用中的GPR,讓中斷向量能繼續執行。這個流程讓系統完全不必儲存任何脈絡或執行任何回復程序,因為針對當前啟動中的陰影暫存器而言,中斷服務常式是唯一的指令來源。


這不僅意謂著在中斷或執行程式碼實際建置之前,不會浪費任何時間,還代表暫存器的內容能夠保存,因為最後一次的執行或中斷事件都還維持作用狀態。如此一來就省下檢索SRAM記憶體中特定數值所耗費的時間。


以下是M4K核心中,一個中斷控制器的基本啟動程序。它包含任何通用型中斷系統啟動程序的標準步驟及一個新加入的重要步驟:


(1)標準: 設定基準向量表的位址


(2)標準: 把作用中向量位址填入中斷表


(3)標準: 把記號位址填入非作用中向量表位址


(4)M4K 專屬: 將向量專屬ID指定至相關的GPR暫存器元件集


(5)標準: 消除所有作用中與等待中的中斷來源


(6)標準: 開啟所有作用中中斷來源


(7)標準: 開啟全域中斷


M4K 核心陰影暫存器組:基本運作

整個陰影暫存器組的詳細運作流程,無法在本文有限篇幅中做完整介紹,基本的運作程序歸納如下。


(圖一)列出基本概念,包括一個含有4個暫存器組的M4K核心。要特別強調的是,這四個暫存器組都完全置於處理器核心內部,不需建置外部RAM。另外,圖中還列出兩個關鍵SRSCTL 與SRSMAP控制暫存器,用來設定與建置陰影GPR邏輯。



《圖一  顯示在開始執行中斷服務常式之前,核心的狀態》 - BigPic:710x805
《圖一  顯示在開始執行中斷服務常式之前,核心的狀態》 - BigPic:710x805
  • ●外部中斷控制器辨識出一個硬體中斷


  • ●外部中斷控制器把這個向量ID傳遞到M4K核心。在這個例子中,我們假設向量ID為1


  • ●核心根據這個向量ID來決定要使用的目標GPR組。M4K核心根據SRSMAP中的組態來執行這項作業,其中含有向量ID 0至向量ID 7的陰影GPR ID。



之後再根據這項資訊來執行以下步驟:


  • ●把GPR ID 複製到SRSCTL控制暫存器中的 SRSCTL_PSS 欄位。當中斷或執行要求完成後,系統再回復這個Previous Shadow Set ID。


  • ●從SRSMAP 控制暫存器中擷取出的GPR群組ID複製到STSCTL控制暫存器的SRSCTL_CSS欄位。到此階段,是Current Shadow Set。


  • ●完成中斷或例外狀況服務常式的執行作業,並執行ERET指令 。


  • ●之後,M4K 核心把數值從SRSCTL_PSS 欄位複製到SRSCTL_CSS 欄位,並從發送中斷或執行指令的時間點回復執行程序。



此流程明顯勝過標準的脈絡儲存與回復程序: M4K核心不必浪費時間在設定一個可處理中斷服務要求或能立即處理例外狀況要求的GPR環境。運用M4K核心的陰影GPR函式,中斷延遲減少到只有22個週期,總時間只需550奈秒。


M4K核心陰影暫存器群組:可微調的控制功能

M4K核心中使用者空間程式碼的正常執行程序中,每個GPR群組除了其特定ID被開啟時,處理器核心都無法偵測到它們。但某些處理器指令讓M4K核心在核心模式時,能存取任何暫存器群組。RDPGPR 與WRPGPR 指令讓一個特權(privileged)執行緒能任意存取任何GPR陰影群組。當一個雙重功能的GPR群組需支援兩個獨立但又相似的中斷向量時,就要用到此功能。瞭解編譯器ABI如何把作用中資料放置到GPR群組,能讓使用者能根據系統正在執行的中斷向量,擷取與選擇特定的GPR數值。其中一個例子就是兩個共同相同暫存器結構的乙太網路元件,但兩個元件處理不同的TCP/IP串流資料。


M4K核心陰影暫存器群組:微控制器方面的利益

運用M4K核心中的陰影群組功能,即使當調降處理器核心的速度來節省電力時,系統研發業者能有更充裕中斷反應時間來處理外部事件。


如今軟體設計的重點,從以往減少浪費週期來保存系統當前狀態,轉移至研判哪些中斷來源值得配置本身的陰影暫存器群組及哪些應分享一個專屬GPR群組。如此一來,面臨的問題就簡單得多。


陰影GPR系統在安裝與執行程序方面都相當簡潔,對執行程式碼而言,大多數繁重的作業程序都不必費心去處理。如此一來,軟體設計人員可專心提昇實際中斷服務常式的效率,不必浪費心力在處理一般系統作業。M4K核心利用陰影GPR的優勢,大幅降低中斷反應所耗費的資源,並針對32位元微控制器提供一個快速反應且組態確定的解決方案。


相關文章
MIPS搶攻行動市場策略能否奏效?
[專題]低價智慧手機 引爆全球商機
Computex Taipei 2009展後報導
加速SoC軟體開發時程
如何加速SoC軟體開發
comments powered by Disqus
相關討論
  相關新聞
» TI創新車用解決方案 加速實現智慧行車的安全未來
» AMD擴展商用AI PC產品陣容 為專業行動與桌上型系統挹注效能
» 豪威汽車影像感測器高通數位底盤 可用於次代ADAS系統
» 意法半導體擴大3D深度感測布局 打造新一代時間飛行感測器
» AMD第2代Versal系列擴展自調適SoC組合 為AI驅動型系統提供端對端加速


刊登廣告 新聞信箱 讀者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 遠播資訊股份有限公司版權所有 Powered by O3  v3.20.2048.18.191.21.86
地址:台北數位產業園區(digiBlock Taipei) 103台北市大同區承德路三段287-2號A棟204室
電話 (02)2585-5526 #0 轉接至總機 /  E-Mail: webmaster@ctimes.com.tw