事件選擇器寄存器為了控制要計數(shù)的事件類型,事件選擇器 CSR mhpmevent3 和 mhpmevent4
用于對相應的事件計數(shù)器進行編程。這些事件選擇器 CSR 是 64 位 WARL 寄存器。
事件選擇器分為三個字段;低 8 位選擇一個事件類別,中間的一組位形成該類別中事件的掩碼,高 8 位用于計數(shù)器溢出和事件過濾。
如果對應于任何設置掩碼位的事件發(fā)生,則計數(shù)器遞增。例如,如果 mhpmevent3 設置為 0x4200,則 mhpmcounter3將在任一加載指令時遞增或者條件分支指令退出。事件選擇器 0 意味著“什么都不考慮”。
Counter Overflow and Event Filters
mhmpevent 寄存器的高 8 位用于控制計數(shù)器溢出中斷,以及基于模式的事件過濾。位布局如下圖所示:
Performance Counter Overflow Operation
當內(nèi)核處于特權模式 x 時,五個 xINH 位中的每一個都禁止事件計數(shù)。這些字段中的所有零導致所有模式下的事件計數(shù)。
當相應的 hpmcounterX 溢出時,OF 位由硬件設置,并保持設置狀態(tài),直到被軟件寫入。由于 hpmcounter值是無符號的,溢出被定義為從全一遞增到全零。請注意,溢出后不會丟失信息,因為計數(shù)器環(huán)繞并繼續(xù)計數(shù),同時粘性 OF 位保持設置。
如果 hpmcounter 溢出而關聯(lián)的 OF 位為零,則會生成計數(shù)溢出中斷請求。如果 hpmcounter 溢出而關聯(lián)的 OF 位為1,則不會生成中斷。因此,OF 位還用作相關 hpmcounter 的計數(shù)溢出中斷禁用。
寫入 mhpmcounterX 或 mhpmeventX 寄存器不會導致計數(shù)溢出。僅當事件導致計數(shù)器遞增時才會發(fā)生溢出。
計數(shù)器溢出中斷是一個標準的本地中斷,對應于 mip 和 mie 寄存器中的第 13 位。mip LCOFIP 位是這個中斷和 mie的中斷掛起位LCOFIE 位是該中斷的中斷使能位。LCOFI 表示本地計數(shù)溢出中斷。如果存在 S 模式,則 sip和 sie包括用于管理程序中斷控制和狀態(tài)的相應位。
hpmcounter 生成計數(shù)溢出中斷請求會設置 mip 寄存器中的 LCOFIP 位并設置相關的 OF 位。如果存在 S 模式,則 mideleg寄存器控制將此中斷委托給 S 模式,這會設置 sip 寄存器中的 LCOFIP 位。在處理計數(shù)溢出中斷后,LCOFIP 位由軟件清零。
發(fā)往相同特權模式的多個同時中斷按以下優(yōu)先級遞減順序處理:MEI、MSI、MTI、SEI、SSI、STI、LCOFI。
請注意,沒有單獨的溢出狀態(tài)和溢出中斷使能位。實際上,通過清除 OF 位來啟用溢出中斷生成是與將計數(shù)器初始化為起始值一起完成的。一旦計數(shù)器溢出,它和OF 位必須在產(chǎn)生另一個溢出中斷之前重新初始化。
軟件可以區(qū)分尚未被溢出中斷處理程序服務的新溢出計數(shù)器和已經(jīng)被服務的溢出計數(shù)器(或者通過維護反映哪些計數(shù)器處于活動狀態(tài)和到期的位掩碼配置為不在溢出時生成中斷的計數(shù)器)
最終溢出。
Scountovf 寄存器
scountovf CSR 是一個 32 位只讀寄存器,包含 29 個 mhpmevent CSR 中 OF 位的影子副本。scountovf 中的位X 對應于 mhpmeventX 中的 OF 位。該寄存器使主管級溢出中斷處理程序軟件能夠快速確定哪些計數(shù)器已經(jīng)溢出,而無需對 M 模式進行環(huán)境調(diào)用。 CSR地址為 0xDA0。
對 scountovf 位 X 的讀取訪問受制于調(diào)解 S 模式軟件對 hpmcounterX 訪問的相同 mcounteren CSR。在 S模式下,當設置 mcounteren 位 X 時,scountovf 位 X 是可讀的,否則讀為零。
Disabling Counters in Debug Mode
設置后,dcsr.stopcount 位會在調(diào)試模式下停止計數(shù)器。這對于 mcycle 和 minstret計數(shù)器尤其重要,因為在調(diào)試模式下,核心在緊密循環(huán)中執(zhí)行 ROM 指令。Freedom Studio Performance Monitor View自動設置dcsr.stopcount 位。
-
寄存器
+關注
關注
31文章
5294瀏覽量
119816 -
內(nèi)核
+關注
關注
3文章
1360瀏覽量
40185 -
Linux
+關注
關注
87文章
11207瀏覽量
208721 -
選擇器
+關注
關注
0文章
106瀏覽量
14506
發(fā)布評論請先 登錄
相關推薦
評論