CSR Bit Fields

RISC-V mhpmcounter31 CSR Register

Address 0xB1FPrivilege MachineAccess RW / 64Machine counters and performance-monitoring CSRs

mhpmcounter31 at 0xB1F is machine hardware performance-monitor counter 31, a 64-bit counter for the event selected by mhpmevent31.

Field Map

Understand mhpmcounter31 By Bit Fields

1 key fields
63:0

COUNT

RW

64-bit machine HPM count for the event selected by mhpmevent31; an unimplemented counter may read as zero.

COUNT (bits 63:0) — 64-bit machine HPM count for the event selected by mhpmevent31; an unimplemented counter may read as zero.

What This Field Controls

  • - 64-bit machine HPM count for the event selected by mhpmevent31; an unimplemented counter may read as zero.

Common Values

This field is better understood together with surrounding context than as a fixed memorized enumeration.

Official Basis & Search Notes

mhpmcounter31 is machine HPM counter 31. It does not define event meaning by itself; it counts the platform-defined event currently selected by mhpmevent31.

The official Machine HPM mechanism provides mhpmcounter31 as a writable machine counter.
mhpmevent31 selects the event; event numbers are platform-defined.
On RV32, mhpmcounter31h provides access to the upper 32 bits.

What To Check First When Reading This CSR

  • - The event source for mhpmcounter31 is determined by mhpmevent31; check the event-selector configuration first.
  • - Accessibility of the lower-privilege shadow hpmcounter31 is controlled by mcounteren/scounteren or relevant delegation mechanisms.
  • - On RV32, mhpmcounter31h accesses bits 63:32 of mhpmcounter31.

Risk Checks Before Writing

  • - Writing mhpmcounter31 changes the current counter value and should usually be done only during initialization, sample reset, or overflow handling.
  • - Use mcountinhibit.HPM31 or event/mode-filtering controls to stop counting rather than writing unknown event encodings.
  • - Multi-hart or platform sharing details must come from target implementation documentation.

Put It Back Into A Real Flow

1

Configure mhpmevent31 to select the platform-defined event to count.

2

Use mcountinhibit.HPM31 or xINH bits when needed to control the counting window.

3

Read mhpmcounter31 and, on RV32, mhpmcounter31h to obtain the 64-bit event count.

FAQ

Can mhpmcounter31 be accessed from any privilege level?

No. The official CSR table lists mhpmcounter31 as a Machine mode CSR. Lower-privilege software may access the corresponding state only when a relevant standard extension provides an explicit delegation or permission mechanism. Direct CSR access with insufficient privilege, or to an unimplemented CSR, raises an illegal-instruction exception.

How is mhpmcounter31 related to hpmcounter31?

mhpmcounter31 is the machine readable/writable view; hpmcounter31 is the corresponding lower-privilege counter view, and its readability is controlled by counteren or delegation mechanisms.