0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

事件选择器寄存器是什么

麦辣鸡腿堡 来源:嵌入式Linux充电站 作者:Vincent 2023-09-27 16:24 次阅读

事件选择器寄存器为了控制要计数的事件类型,事件选择器 CSR mhpmevent3 和 mhpmevent4
用于对相应的事件计数器进行编程。这些事件选择器 CSR 是 64 位 WARL 寄存器。

事件选择器分为三个字段;低 8 位选择一个事件类别,中间的一组位形成该类别中事件的掩码,高 8 位用于计数器溢出和事件过滤。

图片

如果对应于任何设置掩码位的事件发生,则计数器递增。例如,如果 mhpmevent3 设置为 0x4200,则 mhpmcounter3将在任一加载指令时递增或者条件分支指令退出。事件选择器 0 意味着“什么都不考虑”。

Counter Overflow and Event Filters

mhmpevent 寄存器的高 8 位用于控制计数器溢出中断,以及基于模式的事件过滤。位布局如下图所示:

图片

Performance Counter Overflow Operation

当内核处于特权模式 x 时,五个 xINH 位中的每一个都禁止事件计数。这些字段中的所有零导致所有模式下的事件计数。

当相应的 hpmcounterX 溢出时,OF 位由硬件设置,并保持设置状态,直到被软件写入。由于 hpmcounter值是无符号的,溢出被定义为从全一递增到全零。请注意,溢出后不会丢失信息,因为计数器环绕并继续计数,同时粘性 OF 位保持设置。

如果 hpmcounter 溢出而关联的 OF 位为零,则会生成计数溢出中断请求。如果 hpmcounter 溢出而关联的 OF 位为1,则不会生成中断。因此,OF 位还用作相关 hpmcounter 的计数溢出中断禁用。

写入 mhpmcounterX 或 mhpmeventX 寄存器不会导致计数溢出。仅当事件导致计数器递增时才会发生溢出。

计数器溢出中断是一个标准的本地中断,对应于 mip 和 mie 寄存器中的第 13 位。mip LCOFIP 位是这个中断和 mie的中断挂起位LCOFIE 位是该中断的中断使能位。LCOFI 表示本地计数溢出中断。如果存在 S 模式,则 sip和 sie包括用于管理程序中断控制和状态的相应位。

hpmcounter 生成计数溢出中断请求会设置 mip 寄存器中的 LCOFIP 位并设置相关的 OF 位。如果存在 S 模式,则 mideleg寄存器控制将此中断委托给 S 模式,这会设置 sip 寄存器中的 LCOFIP 位。在处理计数溢出中断后,LCOFIP 位由软件清零。

发往相同特权模式的多个同时中断按以下优先级递减顺序处理:MEI、MSI、MTI、SEI、SSI、STI、LCOFI。

请注意,没有单独的溢出状态和溢出中断使能位。实际上,通过清除 OF 位来启用溢出中断生成是与将计数器初始化为起始值一起完成的。一旦计数器溢出,它和OF 位必须在产生另一个溢出中断之前重新初始化。

软件可以区分尚未被溢出中断处理程序服务的新溢出计数器和已经被服务的溢出计数器(或者通过维护反映哪些计数器处于活动状态和到期的位掩码配置为不在溢出时生成中断的计数器)
最终溢出。

Scountovf 寄存器

scountovf CSR 是一个 32 位只读寄存器,包含 29 个 mhpmevent CSR 中 OF 位的影子副本。scountovf 中的位X 对应于 mhpmeventX 中的 OF 位。该寄存器使主管级溢出中断处理程序软件能够快速确定哪些计数器已经溢出,而无需对 M 模式进行环境调用。 CSR地址为 0xDA0。

对 scountovf 位 X 的读取访问受制于调解 S 模式软件对 hpmcounterX 访问的相同 mcounteren CSR。在 S模式下,当设置 mcounteren 位 X 时,scountovf 位 X 是可读的,否则读为零。

Disabling Counters in Debug Mode

设置后,dcsr.stopcount 位会在调试模式下停止计数器。这对于 mcycle 和 minstret计数器尤其重要,因为在调试模式下,核心在紧密循环中执行 ROM 指令。Freedom Studio Performance Monitor View自动设置dcsr.stopcount 位。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5342

    浏览量

    120297
  • 内核
    +关注

    关注

    3

    文章

    1372

    浏览量

    40287
  • Linux
    +关注

    关注

    87

    文章

    11302

    浏览量

    209418
  • 选择器
    +关注

    关注

    0

    文章

    108

    浏览量

    14539
收藏 人收藏

    评论

    相关推荐

    寄存器是什么?怎么操作寄存器点亮LED灯?

    寄存器,是集成电路中非常重要的一种存储单元,通常由触发组成。在集成电路设计中,寄存器可分为电路内部使用的寄存器和充当内外部接口的寄存器这两
    的头像 发表于 07-21 16:59 4030次阅读
    <b class='flag-5'>寄存器</b>是什么?怎么操作<b class='flag-5'>寄存器</b>点亮LED灯?

    寄存器

    寄存器。相对其他寄存器,在进行运算方面比较常用。在保护模式中,也可以作为内存偏移指针(此时,DS作为段 寄存器选择器)   EBX:通用寄存器
    发表于 08-27 11:17

    关于quartus上的RTL图的读法,将光标放在线上时,能看到fan-out= 3 ,请问这是什么意思,还有一个问题。

    问题,请问有没有什么书上介绍quartus 的RTL 图形 连线 以及标注的,数电书上没见过这样,只知道数据选择器寄存器 和 触发的画法,这个图中好多其他东西不清楚,请问各位能给我这个新手推荐一些书籍吗?
    发表于 03-22 10:59

    寄存器与移位寄存器

    寄存器与移位寄存器 寄存器是用来寄存数码的逻辑部件,所以必须具备接收和寄存数码的功能。任何一种触发
    发表于 03-12 15:19 59次下载

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

    寄存器,寄存器是什么意思 寄存器定义  寄存器是中央处理内的组成部分。寄存器是有限存贮容量
    发表于 03-08 14:26 2.2w次阅读

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

    数据寄存器,数据寄存器是什么意思 数据寄存器数据寄存器包括累加AX、基址寄存器BX、计数
    发表于 03-08 14:38 1.3w次阅读

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

    移位寄存器,移位寄存器是什么意思 移位寄存器_
    发表于 03-08 14:50 1.8w次阅读

    寄存器与移位寄存器

    寄存器与移位寄存器:介绍寄存器原理和移位寄存器的原理及实现。
    发表于 05-20 11:47 0次下载

    寄存器变量

    C语言中使用关键字register来声明局部变量为寄存器变量。寄存器变量的值会被存放在CPU的寄存器中,每当需要使用它们时,CPU就可以直接使用,而无须再通过控制从内存中获取。由于操
    发表于 06-03 10:13 2373次阅读

    移位寄存器的原理

    移位寄存器按照不同的分类方法可以分为不同的类型。 如果按照移位寄存器的移位方向来进行分类, 可以分为左移移位寄存器、移位寄存器和双向移位寄存器
    发表于 07-15 09:38 7.5w次阅读
    移位<b class='flag-5'>寄存器</b>的原理

    AD转换寄存器设置

    AD转换寄存器设置AD转换寄存器设置AD转换寄存器设置
    发表于 11-10 17:36 16次下载
    AD转换<b class='flag-5'>寄存器</b>设置

    什么是选择器 CSS选择器有哪些

    什么是选择器呢?每一条css样式定义由两部分组成,形式如下: [code] 选择器{样式} [/code] 在{}之前的部分就是“选择器”。 “选择器”指明了{}中的“样式”的作用对象
    的头像 发表于 07-31 15:31 7463次阅读

    ARM通用寄存器及状态寄存器详解

    笔者来聊聊ARM通用寄存器以及状态寄存器的认识与理解。
    的头像 发表于 01-06 14:58 7169次阅读

    单片机工作寄存器作用 单片机常用专用寄存器

    除了通用寄存器(如累加、通用寄存器等),单片机中还会有特定功能的寄存器,如定时寄存器、中断控
    的头像 发表于 04-08 14:46 7548次阅读

    寄存器分为基本寄存器和什么两种

    寄存器是计算机中用于存储数据的高速存储单元,它们是CPU内部的重要组成部分。寄存器可以分为基本寄存器和扩展寄存器两种类型。 一、基本寄存器
    的头像 发表于 07-12 10:31 1344次阅读