0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

事件選擇器寄存器是什么

麥辣雞腿堡 ? 來源:嵌入式Linux充電站 ? 作者:Vincent ? 2023-09-27 16:24 ? 次閱讀

事件選擇器寄存器為了控制要計數(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 位。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5294

    瀏覽量

    119816
  • 內(nèi)核
    +關注

    關注

    3

    文章

    1360

    瀏覽量

    40185
  • Linux
    +關注

    關注

    87

    文章

    11207

    瀏覽量

    208721
  • 選擇器
    +關注

    關注

    0

    文章

    106

    瀏覽量

    14506
收藏 人收藏

    評論

    相關推薦

    寄存器是什么?怎么操作寄存器點亮LED燈?

    寄存器,是集成電路中非常重要的一種存儲單元,通常由觸發(fā)組成。在集成電路設計中,寄存器可分為電路內(nèi)部使用的寄存器和充當內(nèi)外部接口的寄存器這兩
    的頭像 發(fā)表于 07-21 16:59 ?3818次閱讀
    <b class='flag-5'>寄存器</b>是什么?怎么操作<b class='flag-5'>寄存器</b>點亮LED燈?

    寄存器

    寄存器。相對其他寄存器,在進行運算方面比較常用。在保護模式中,也可以作為內(nèi)存偏移指針(此時,DS作為段 寄存器選擇器)   EBX:通用寄存器
    發(fā)表于 08-27 11:17

    關于quartus上的RTL圖的讀法,將光標放在線上時,能看到fan-out= 3 ,請問這是什么意思,還有一個問題。

    問題,請問有沒有什么書上介紹quartus 的RTL 圖形 連線 以及標注的,數(shù)電書上沒見過這樣,只知道數(shù)據(jù)選擇器,寄存器 和 觸發(fā)的畫法,這個圖中好多其他東西不清楚,請問各位能給我這個新手推薦一些書籍嗎?
    發(fā)表于 03-22 10:59

    寄存器與移位寄存器

    寄存器與移位寄存器 寄存器是用來寄存數(shù)碼的邏輯部件,所以必須具備接收和寄存數(shù)碼的功能。任何一種觸發(fā)
    發(fā)表于 03-12 15:19 ?59次下載

    寄存器,寄存器是什么意思

    寄存器,寄存器是什么意思 寄存器定義  寄存器是中央處理內(nèi)的組成部分。寄存器是有限存貯容量
    發(fā)表于 03-08 14:26 ?2.2w次閱讀

    數(shù)據(jù)寄存器,數(shù)據(jù)寄存器是什么意思

    數(shù)據(jù)寄存器,數(shù)據(jù)寄存器是什么意思 數(shù)據(jù)寄存器數(shù)據(jù)寄存器包括累加AX、基址寄存器BX、計數(shù)
    發(fā)表于 03-08 14:38 ?1.2w次閱讀

    移位寄存器,移位寄存器是什么意思

    移位寄存器,移位寄存器是什么意思 移位寄存器_
    發(fā)表于 03-08 14:50 ?1.7w次閱讀

    寄存器與移位寄存器

    寄存器與移位寄存器:介紹寄存器原理和移位寄存器的原理及實現(xiàn)。
    發(fā)表于 05-20 11:47 ?0次下載

    移位寄存器怎么用_如何使用移位寄存器_移位寄存器的用途

    移位寄存器是一個具有移位功能的寄存器,是指寄存器中所存的代碼能夠在移位脈沖的作用下依次左移或右移。本文主要介紹了移位寄存器的用途以及移位寄存器
    發(fā)表于 12-22 15:49 ?2w次閱讀

    移位寄存器的原理

    移位寄存器按照不同的分類方法可以分為不同的類型。 如果按照移位寄存器的移位方向來進行分類, 可以分為左移移位寄存器、移位寄存器和雙向移位寄存器
    發(fā)表于 07-15 09:38 ?7.4w次閱讀
    移位<b class='flag-5'>寄存器</b>的原理

    AD轉(zhuǎn)換寄存器設置

    AD轉(zhuǎn)換寄存器設置AD轉(zhuǎn)換寄存器設置AD轉(zhuǎn)換寄存器設置
    發(fā)表于 11-10 17:36 ?16次下載
    AD轉(zhuǎn)換<b class='flag-5'>寄存器</b>設置

    什么是選擇器 CSS選擇器有哪些

    什么是選擇器呢?每一條css樣式定義由兩部分組成,形式如下: [code] 選擇器{樣式} [/code] 在{}之前的部分就是“選擇器”。 “選擇器”指明了{}中的“樣式”的作用對象
    的頭像 發(fā)表于 07-31 15:31 ?7406次閱讀

    ARM通用寄存器及狀態(tài)寄存器詳解

    筆者來聊聊ARM通用寄存器以及狀態(tài)寄存器的認識與理解。
    的頭像 發(fā)表于 01-06 14:58 ?6849次閱讀

    單片機工作寄存器作用 單片機常用專用寄存器

    除了通用寄存器(如累加、通用寄存器等),單片機中還會有特定功能的寄存器,如定時寄存器、中斷控
    的頭像 發(fā)表于 04-08 14:46 ?7231次閱讀

    寄存器分為基本寄存器和什么兩種

    寄存器是計算機中用于存儲數(shù)據(jù)的高速存儲單元,它們是CPU內(nèi)部的重要組成部分。寄存器可以分為基本寄存器和擴展寄存器兩種類型。 一、基本寄存器
    的頭像 發(fā)表于 07-12 10:31 ?1014次閱讀