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 events 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 MSRs 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.

Log in or register to write something here or to contact authors.