Hardware Performance Monitor
M-mode包括一个基本的硬件性能监控设施。mcycle CSR计算hart运行的处理器内核所执行的时钟周期数。minstret CSR 计数器 统计已经执行的指令数量(The minstret CSR counts the number of instructions the hart has retired "参考:Instructions Retired Event")。在所有的RV32和RV64系统上,mcycle和minstret都是64-bit的。
counter registers在被重置后是随机值,需要被写入一个值才行。任何CSR写操作生效是在其他写操作完成之后。mcycle CSR可以在同一个核心的多个harts上共享,对于此情况mcycle的写对于这些harts是可见的。平台应该提供一种机制来指示哪些harts共享mcycle CSR。
硬件性能监视器包含29个额外的64-bits 事件计数器,mhpmcounter3-mhpcounter31。事件选择器CSRs, mhpmevent3-mhpmevent31,是MAXLEN-bit WARL寄存器,控制哪个事件对哪个寄存器进行计数。这些事件有平台定义,事件0是被定义为没有事件的。所有的couters应该被实现,但是合法的实现是将counter和对应的event selector都设置为只读0.