[發明專利]一種訪問協處理器寄存器的方法及裝置有效
| 申請號: | 201010568963.3 | 申請日: | 2010-12-01 |
| 公開(公告)號: | CN102486758A | 公開(公告)日: | 2012-06-06 |
| 發明(設計)人: | 曹厚華;王忠波;胡小龍 | 申請(專利權)人: | 中興通訊股份有限公司 |
| 主分類號: | G06F13/18 | 分類號: | G06F13/18 |
| 代理公司: | 北京派特恩知識產權代理事務所(普通合伙) 11270 | 代理人: | 蔣雅潔;王黎延 |
| 地址: | 518057 廣東省深圳市南山*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 訪問 處理器 寄存器 方法 裝置 | ||
技術領域
本發明涉及協處理器寄存器(CPR)數據存取領域,特別是指一種訪問CPR的方法及裝置。
背景技術
精簡指令集計算機(RISC)體系架構下的CPU至少具有兩種工作模式:非特權模式和特權模式。非特權模式又叫用戶模式或者用戶態,特權模式又分為內核模式即內核態、管理員(supervisor)模式、調試模式等。工作在特權模式下,CPU可以對所有的資源進行訪問;工作在非特權模式下,CPU訪問不了特權模式下的資源,例如CPR等。
現代操作系統(OS),以下簡稱系統,的內核一般都運行在特權模式下,應用程序一般運行在非特權模式下。但是應用程序在某些場景下也需要訪問CPR,例如:用戶態下進行鎖中斷;在脫離GDB(the?GNU?ProjectDebugger)或者其它集成調試環境的情況下,監控某段內存的非法操作,則需要對Watch寄存器進行設置;用戶態CPU性能監控,需要通過CPR讀取CPU性能參數,所述性能參數包括CPU每一時鐘周期內所執行的指令條數(IPC)、Cache?Miss率、TLB?Refill次數等,這樣,應用程序就需要訪問特權模式下的資源。
目前特權模式下,主要通過C預處理器形成與所要訪問的目的CPR相對應的匯編指令,再通過匯編器生成系統能識別的機器碼來訪問目的CPR。
下面,對訪問CPR的匯編指令、即訪問CPR指令格式進行描述:
以MIPS(Microprocessor?without?Interlocked?Piped?Stages)體系結構下的協處理器為例,一個MIPS體系結構的系統最大可支持四個協處理器CP0~CP3,每個協處理器最多可包含256個寄存器,以CP0為例,其訪問CPR指令格式如圖1所示,共包含6個部分,其中101為協處理器編號;102為功能號,功能號中的最低比特位,即圖1中最右邊的x標識的比特位表示所操作的CPR的位寬,0為32比特,1為64比特,第3比特位,即圖1中左邊的x標識的比特位表示讀寫,0為要對CPR進行讀操作,1為要對CPR進行寫操作;103為通用寄存器(GPR)編號;104與106中的數字共同組成CPR編號,所述CPR編號用于標識目的CPR;105為空字節。由圖1所述的訪問CPR指令格式可以看出,訪問任意一個協處理器中的CPR,也就是目的CPR,都需要與目的CPR對應的指令參數值,包括協處理器編號、功能號、CPR編號、GPR編號參數值等相對應,也就是說,需要一條與目的CPR對應的訪問CPR指令。
用戶態下訪問CPR的主要方式是通過系統調用進入到特權模式,存取完目的CPR的值后再返回用戶態,所述系統調用是指通過syscall指令觸發系統異常進入特權模式,執行編譯器靜態構造的訪問CPR指令,從而實現訪問CPR的過程,主要有以下兩種方案。
方案一:輸入CPR指令參數,且參數值固定,然后通過系統調用進入特權模式,一個系統調用僅能訪問一個或者幾個CPR,若訪問CPR的需求過多,則系統調用數過多,系統難以維護;
方案二:輸入CPR指令參數,且參數值不固定,然后通過系統調用進入特權模式,參數取值不同,可以訪問不同的CPR,然后返回用戶態。但是,因訪問任意一個協處理器中的CPR都需要有一條與之對應的訪問CPR指令,編譯器在靜態構造訪問CPR指令時,需要預先通過if-else或者switch-case結構來區分4*32*8=1024個分支,根據輸入的指令參數就可以實現訪問協處理器中任意一個CPR的目的,但是,該方案需要預先構造覆蓋所有CPR的指令,導致該方案過于復雜和繁瑣。
針對上述方案中存在的問題,現有技術中尚未提出有效的解決方案。
發明內容
有鑒于此,本發明的主要目的在于提供一種訪問CPR的方法及裝置,簡化方案,有利于系統維護,實現訪問CPR的通用性。
為達到上述目的,本發明的技術方案是這樣實現的:
本發明提供了一種訪問協處理器寄存器CPR的方法,該方法包括:
在用戶態下CPU構造訪問CPR指令,執行輸入的異常指令,進入特權模式,CPU運行異常處理程序,異常處理程序根據異常指令調用內核處理函數,內核處理函數執行訪問CPR指令,返回用戶態。
上述方案中,所述執行輸入的異常指令,進入特權模式,CPU運行異常處理程序包括:輸入異常指令,CPU執行異常指令,進入特權模式,運行異常處理程序,同時,CPU將產生異常的指令地址保存到異常程序計數寄存器EPC中。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中興通訊股份有限公司,未經中興通訊股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010568963.3/2.html,轉載請聲明來源鉆瓜專利網。





