Linux可用的事件选择器编码

事件选择器编码表 20 描述了可用的事件选择器编码。根据 mhpmeventx[7:0]中编码的事件类字段,将事件分类为类。可以通过为给定事件类别设置相应的事件掩码位来对一个或多个事件进行编程。事件选择器编码为 0表示“无意义”。任何选定事件发生时,多个事件都会导致计数器递增。
对任何事件类可写的事件掩码位对所有类都是可写的。设置与表 20中定义的事件不对应的事件掩码位对当前实现没有影响。但是,未来的实现可能会在该编码空间中定义新事件,因此不建议将不受支持的值编程到 mhpmevent寄存器中。
combining events
直接计算每个事件是常见的用法。此外,可以使用这些事件的组合来计算新的、独特的事件。例如,要确定来自数据存储器子系统的每次加载的平均周期数,可以对一个计数器进行编程以计算“数据高速缓存/dtim繁忙”,并对另一个计数器进行编程以计算“已退出的整数加载指令”。然后,简单地将“数据高速缓存/dtim繁忙”周期计数除以“整数加载指令退休”指令计数,结果就是每条指令加载周期的平均周期时间。
了解组合的事件类型很重要;具体来说,事件类型计算发生次数,事件类型计算周期。
计数使能寄存器32位计数器使能寄存器 mcounteren 和 scounteren 控制硬件性能监控计数器在下一个最低特权模式下的可用性。
这些寄存器中的设置仅控制可访问性。读取或写入这些启用寄存器的行为不会影响底层计数器,这些计数器在不可访问时会继续递增。
当 mcounteren 寄存器中的任何位清零时,在 s 模式下执行时尝试读取周期、时间、指令退出或 hpmcounterx寄存器将导致非法指令异常。当这些位中的一个被设置时,在下一个实现的特权模式 s 模式下允许访问相应的寄存器。
在 u 模式下执行时,scounteren 寄存器中的相同位位置类似地控制对这些寄存器的访问。如果允许 s-mode 访问计数器寄存器并且在scounteren 中设置了相应的位,则也允许 u-mode 访问该寄存器。
mcounteren 和 scounteren 是 warl寄存器。任何位都可能包含硬连线值零,表示在低特权模式下执行时,读取相应计数器将导致非法指令异常。

Choosing the Right RS-232 Tran
Versal系列芯片三个产品的基础知识
普通车床的组成和传动系统
可穿戴技术在医疗健康领域中的应用趋势
黑鲨游戏手机2更新了性能全开烧鸡模式性能跑分轻松破40万
Linux可用的事件选择器编码
单差分最简OCL功放,simple OCL amplifier
锂电产业链正在上演新一轮资本扩张行动
realme进军欧洲高端市场,5G旗舰+AloT双驱动震撼来袭
一文详解电子电路的安装布局
科达猎鹰人像大数据平台 以熟稔身法游刃在技战前沿
迎接“无尾”时代 无线供电高层研讨会即将召开
光控开关与光电开关的区别
浅谈高压SiC MOSFET发展历程与研究现状
未来自动驾驶汽车会不会造成道路拥堵?
太阳能热水器产生水垢的原因、危害及常见问题
G-MRCO-021磁传感器线性和稳定性
科锐宣布出售照明产品业务 这笔交易税前约3.1亿美元
OPPO F19系列手机发布时间曝光!
思博伦正在全面提供5G的测试支持全生命周期为5G保驾护航