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 位。

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

    关注

    30

    文章

    5032

    浏览量

    117741
  • 内核
    +关注

    关注

    3

    文章

    1309

    浏览量

    39848
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206738
  • 选择器
    +关注

    关注

    0

    文章

    104

    浏览量

    14325
收藏 人收藏

    评论

    相关推荐

    8.5.2数据选择器的应用(1)#硬声创作季

    数据选择器
    学习硬声知识
    发布于 :2022年12月03日 16:30:13

    8.5.2数据选择器的应用(2)#硬声创作季

    数据选择器
    学习硬声知识
    发布于 :2022年12月03日 16:31:02

    9.7 数据选择器与数据分配器-视频(1)#硬声创作季

    数据选择器
    学习硬声知识
    发布于 :2022年12月03日 17:09:32

    9.7 数据选择器与数据分配器-视频(2)#硬声创作季

    数据选择器
    学习硬声知识
    发布于 :2022年12月03日 17:10:18

    数据选择器(MUX,Multiplexer)

    数据选择器(MUX,Multiplexer)1.  数据选择器的构成2.  数据选择器的功能3.  八选一 数据选择器4.  用数据
    发表于 10-20 09:42

    寄存器

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

    数据选择器

    浮尘的天气,风大到可以吹走人了。空中也有不少小沙子和泥土,只能减少外出了。今天咱们来看看数据选择器,本来想分享模拟开关的,一时找不全相关知识。还是来看看数据选择器吧。它是实现数据选择功能的逻辑电路
    发表于 05-30 17:38

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

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

    信号选择器的八种典型应用

    信号选择器分为高值选择器和低值选择器,尤其在组成安全保护控制系统时常用,昌晖仪表在本文分享八种信号选择器应用专业知识,工控人必须熟悉和掌握。信号选择
    发表于 01-16 00:08

    选择器的使用

    第2章 选择器(2)
    发表于 08-29 07:20

    MCU选择器上的Cube问题如何解决?

    我需要找到一个带有 2 个 USB、最小 512k 总内存和最小 1024k 闪存的 MCU。当我将 RAM 和闪存放在选择器上时,结果是没有 USB 的 mcu,但您可以在列表中看到许多带有 2
    发表于 02-02 08:54

    使用PCIe DMA无法访问DMA寄存器怎么解决?

    逻辑寄存器”的一部分。它被记录为使用 CS2=1 和 CDM/ELBI 选择器位=1——比 DMA 寄存器可以用偏移量 0x8_0000 访问。但是如何选择CS2和CDM/ELBI
    发表于 03-14 11:29

    数据输出选择器原理图

     某一时刻哪一个寄存器向数据总线输出数据,是由信号X0、X1、X2决定的,图2-14为数据输出选择器原理图。
    发表于 04-01 21:03 1575次阅读
    数据输出<b class='flag-5'>选择器</b>原理图

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

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

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

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