Skip to content

Instantly share code, notes, and snippets.

View 0x2000580D's full-sized avatar

0x2000580D

  • Joined Feb 7, 2026
View GitHub Profile
@0x2000580D
0x2000580D / vstates.md
Last active February 17, 2026 00:45
voltage-states and voltage-states-sram on Apple Silicon

voltage-states and voltage-states-sram on Apple Silicon

If you're calculating average frequency or voltage for a compute unit on Apple Silicon, probably dealing with state residency data from the IOReport, you'll need to have a frequency/voltage table that corresponds with the unit you're analyzing. Y'know, pstates, vstates, that good shit.

State tables are stored for various thingies in the IORegistry, you'll find them in the PMGR. There are two types of properties that store this information:

  • voltage-statesN, most likely corresponds with Core Rails (for the actual processing parts of a compute unit). The frequency values are given as raw values from the system registers.
  • voltage-statesN-sram, most likely corresponds with SRAM Rails (for the literal static ram, L1, L2 caches of a compute unit). Frequency is precalculated, readable, and SRAM volatges are higher (stability stuff).

Here N is the number/identifier making it unique to whatever the vstates correspond to. For example: