mhpmcounter15

Machine Hardware Performance Counter 15

Programmable hardware performance counter.

The hpmcounter15 CSR is a read-only shadow of this CSR. Access to hpmcounter15 is controlled with mcounteren.HPM15 , scounteren.HPM15 , and hcounteren.HPM15 as follows:

mcounteren.HPM15

scounteren.HPM15

hcounteren.HPM15

hpmcounter15 behavior

S-mode

U-mode

VS-mode

VU-mode

0

-

-

IllegalInstruction

IllegalInstruction

IllegalInstruction

IllegalInstruction

1

0

0

read-only

IllegalInstruction

VirtualInstruction

VirtualInstruction

1

1

0

read-only

read-only

VirtualInstruction

VirtualInstruction

1

0

1

read-only

IllegalInstruction

read-only

VirtualInstruction

1

1

1

read-only

read-only

read-only

read-only

Attributes

CSR Address

0xb0f

Defining extension

Sm

Length

64-bit

Privilege Mode

M

Format

mhpmcounter15 format
Figure 1. mhpmcounter15 format

Field Summary

Name Location Type Reset Value

COUNT

63:0

RO

0

Fields

COUNT

Location

mhpmcounter15[63:0]

Description

Performance counter for event selected in mhpmevent15.EVENT.

+ Increments every time event occurs unless:

+ * mcountinhibit.HPM15 or its alias scountinhibit.HPM15 is set * mhpmevent15.MINH is set and the current privilege level is M * mhpmevent15.SINH or its alias hpmevent15.SINH is set and the current privilege level is (H)S * mhpmevent15.UINH or its alias hpmevent15.UINH is set and the current privilege level is U * mhpmevent15.VSINH or its alias hpmevent15.VSINH is set and the current privilege level is VS * mhpmevent15.VUINH or its alias hpmevent15.VUINH is set and the current privilege level is VU

+

Unimplemented performance counter. Must be read-only 0 (access does not cause trap).

Type

RO

Read-Only

Field has a hardwired value that does not change. Writes to an RO field are ignored.

Reset value

0

Software read

This CSR may return a value that is different from what is stored in hardware.

  • Pruned

  • Original

return 0;
if (HPM_COUNTER_EN[15]) {
  return read_hpm_counter(15);
} else {
  return 0;
}