Model (or machine) Specific Register. A register
found in, and uniquely serviced
by, a given microprocessor
. MSRs are generally used for recording or observing internal processor event
s which, though sometimes useful for debugging
purposes or performance tuning
, are generally not thought of as being addressable by the CPU
's core programming interface or instruction set architecture
. In general, they are not guaranteed
to be present in future CPU
redesigns, and therefore code which uses them should be labeled as such. Also, code which uses MSR
s will suffer from portability
issues when cross-platform recompilation is desired.
For example, the Pentium Pro provides access to its performance data through Model Specific Registers. These registers include counts of memory reads, memory writes, L1 cache misses, branches, pipeline flushes, instructions executed, pipeline stalls, misaligned memory accesses, bus locked cycles, and interrupts. The Pentium IV uses MSRs to provide data on ACPI and thermal monitoring.
The Sun UltraSPARC 3, IBM Power2, DEC/Compaq Alpha, and MIPS R10000 provide a similar set of counters. Many DSPs provide similar data in a variety of ways, including MSRs.