User-Level MSR Instructions for Register Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current solutions for allowing application software to access control and status registers in x86 processors are inefficient due to high latency system calls and the need for custom ISA extensions, which are inflexible, costly, and require extensive enabling processes.

Innovation Solution

Introduction of user-level MSR instructions (URDMSR and UWRMSR) that enable read and write access to control and status registers without changing privilege levels, using a user-level access control bitmap to manage access permissions, allowing OS-controlled high-performance access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If system calls are used for application software to access control and status registers, then access control is maintained, but latency increases significantly

Engineering Contradiction:
Improveaccess controlVSAvoidlatency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent introduces user-level MSR instructions as an intermediary mechanism between application software and control/status registers. These instructions act as a mediator that allows user-mode code to directly access registers without triggering expensive system calls, while the OS retains control through the access control bitmap mechanism. This resolves the contradiction by providing a fast direct access path while maintaining security through software-enforced access control.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces the mechanical system of system calls (which involve context switches and privilege level changes) with a more efficient instruction-based mechanism. The user-level MSR instructions substitute the complex system call pathway with direct register access, eliminating the need for costly context switches while maintaining access control through the bitmap mechanism. This substitution dramatically reduces latency while preserving security.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Adaptability or versatility

If custom ISA extensions are added for user access to control and status registers, then access capability is improved, but hardware complexity and development cost increase

Engineering Contradiction:
Improveaccess capabilityVSAvoidhardware complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent makes the existing RDMSR and WRMSR instructions universal by enabling them to work in user mode through the introduction of user-level access control bitmaps. Instead of creating new custom ISA extensions for each access scenario, the same instructions serve both kernel and user modes, with access controlled by the bitmap. This universality eliminates the need for multiple custom extensions and reduces hardware complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent changes the parameter of privilege level accessibility by modifying the execution environment in which RDMSR and WRMSR instructions can run. Through the user-level access control bitmap mechanism, these instructions are enabled for execution in user mode (CPL 3) as well as kernel mode, without changing the instructions themselves. This parameter change allows existing instructions to serve multiple purposes, avoiding custom hardware extensions.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If custom ISA extensions are implemented for user register access, then access functionality is added, but extensive enabling processes are required

Engineering Contradiction:
Improveaccess functionalityVSAvoidenabling process
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The patent performs preliminary action by pre-configuring the user-level access control bitmap with OS-defined permissions before user code executes. The OS sets up the bitmap in advance, establishing which registers are accessible to users. This preliminary configuration eliminates the need for complex runtime enabling processes, as the access control is predetermined and simply checked during instruction execution. The system is manufactured with built-in access control logic that requires no additional enabling steps.

Inventive Principle:
Principle #10Preliminary action

4Speed

If privileged instructions RDMSR and WRMSR are used, then direct register access is achieved, but application software cannot use them

Engineering Contradiction:
Improveaccess speedVSAvoidsoftware accessibility
Core Design Contradiction:
SpeedVSEase of operation

Solution Approach 1:

The patent introduces user-level access control bitmaps as an intermediary layer that mediates between application software and the privileged RDMSR/WRMSR instructions. This intermediary allows user-mode code to execute these instructions by checking permissions against the bitmap, effectively making the privileged instructions accessible to application software while maintaining the speed advantage of direct register access. The mediator enables software accessibility without sacrificing performance.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a virtual copy of the privileged instruction behavior for user mode. Instead of blocking user code, the system provides a user-level version of register access that mirrors the functionality of the privileged instructions but with OS-controlled permissions via the access control bitmap. This copying approach allows application software to use the same fast direct access mechanism while maintaining security through the bitmap-based permission system.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS20240329993A1Instructions for write and/or read of control and/or status registers
Publication Date: 2024.10.03 INTEL CORP
  • US20240329993A1 patent drawing
  • US20240329993A1 patent drawing
  • US20240329993A1 patent drawing

AI summary

Techniques for allowing a control and/or status register to be read or written to in a user privilege level are described. An example of an instruction for user privilege read is to include one or more fields for an opcode, one or more fields for a source operand that is to store a control and/or status register address, and one or more fields for a destination register operand, wherein the opcode is to indicate that execution circuitry is to read data from the control and/or status register whose identity is stored in the source operand and write the data in the destination register operand responsive to access to the control and/or status register being allowed, wherein access to the control and/or status register is at least in part determined by data of an operating system controlled data structure indexed by the control and/or status register address.