# Model-specific register

> x86 instruction set control registers for CPU features

**Wikidata**: [Q6888152](https://www.wikidata.org/wiki/Q6888152)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/Model-specific_register)  
**Source**: https://4ort.xyz/entity/model-specific-register

## Summary
Model-specific registers (MSRs) are a set of control registers within the x86 instruction set architecture. They are used by software to access and manage various features of a central processing unit (CPU). As their name implies, the specific registers and their functions can vary between different CPU models.

## Key Facts
- **Primary Function:** Controls specific features of a CPU.
- **Architecture:** Part of the x8e6 instruction set.
- **Classification:** A subclass of `control register` and `Control/Status Register`.
- **Common Acronym:** Widely known as MSR.
- **Related Register Example:** The SMM TSeg Mask on AMD CPUs is a related type of register.
- **Documentation:** The concept is documented across at least four languages on Wikipedia: English, Portuguese, Russian, and Ukrainian.

## FAQs
### Q: What does MSR stand for?
A: MSR stands for Model-specific register. It refers to a class of registers in x86 CPUs used for controlling hardware features.

### Q: What are Model-specific registers used for?
A: MSRs are used to control, monitor, and change the behavior of a CPU. This can include tasks like performance monitoring, debugging, and enabling or disabling specific processor features.

### Q: Is an MSR a type of control register?
A: Yes, a Model-specific register is a specialized type of control register. The source material classifies it as a subclass of both `control register` and `Control/Status Register`.

## Why It Matters
Model-specific registers are significant because they provide a standardized way for low-level software, like operating systems and hypervisors, to interact with and control advanced, model-dependent hardware features of a CPU. Without MSRs, accessing capabilities like thermal management, performance counters, or hardware debugging features would be far more complex and less portable. They allow CPU manufacturers to innovate and add new features to their processors without altering the core x86 instruction set that ensures backward compatibility. This mechanism enables a flexible and extensible architecture where the operating system can query the CPU model and then use the appropriate MSRs to enable or configure features unique to that specific hardware, optimizing performance, security, and power management.

## Notable For
- **Model-Specificity:** The primary defining trait of MSRs is that their implementation, number, and function can differ from one CPU model to another, even within the same manufacturer's product line.
- **Feature Control:** They provide a direct software interface for controlling specific hardware-level CPU features, rather than general computation.
- **x86 Architecture Integration:** MSRs are a long-standing and integral part of the x86 instruction set architecture, providing a mechanism for CPU evolution.
- **Common Acronym:** The term is almost universally referred to by its acronym, MSR, in technical documentation, source code, and system programming literature.

## Body
### Classification and Hierarchy
Model-specific registers are a specialized category of processor registers.
- **Parent Class:** `control register` - A processor register that changes or controls the general behavior of a CPU.
- **Parent Class:** `Control/Status Register` - A register in a central processing unit used for control or status information.
- **Relationship:** MSR is a subclass of both of these register types.

### Function and Architecture
- **Instruction Set:** MSRs are a feature of the x86 instruction set architecture.
- **Purpose:** Their primary role is to provide an interface for software to read from or write to registers that control specific CPU features. These features are often not accessible through the main general-purpose registers.

### Naming and Identification
- **Full Name:** Model-specific register
- **Short Name / Acronym:** MSR
- **Aliases:** Registo Modelo-Específico (Portuguese)
- **Freebase ID:** `/m/02phrzk`