Transactional Memory Hardware for Virtualization Concurrency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current virtualization and emulation technologies face performance limitations due to concurrency synchronization and self-modifying code handling, which slow down serial performance and incur substantial performance burdens.

Innovation Solution

The implementation of transactional memory hardware in central processing units to facilitate state isolation, detect self-modifying code, and optimize simulations, including chunk-accurate and instruction-accurate emulation, dispatch table updates, code backpatching, and call return caching, using atomic commit and private state management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional synchronization mechanisms are used for concurrency control during emulation, then correctness is maintained, but performance deteriorates due to serial execution overhead

Engineering Contradiction:
Improveconcurrency correctnessVSAvoidemulation speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent replaces traditional software-based synchronization mechanisms (locks, barriers) with hardware-supported transactional memory. The TM hardware automatically manages concurrency through atomic transactions, eliminating the need for manual synchronization code and reducing serial overhead while maintaining correctness guarantees.

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

Solution Approach 2:

The transactional memory hardware acts as an intermediary layer between emulated code and the underlying physical system. It provides atomic commit/abort semantics that automatically handle concurrency conflicts, allowing multiple threads to execute emulated code concurrently without explicit synchronization while preserving memory consistency.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If detailed tracking of self-modifying code is performed under emulation, then accuracy is improved, but performance burden increases substantially

Engineering Contradiction:
Improveself-modifying code detection accuracyVSAvoidemulation performance
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The system performs preliminary actions by setting up transactional memory boundaries around code regions before execution. When self-modifying code is detected, the transactional memory hardware automatically handles the modification atomically, eliminating the need for detailed step-by-step tracking and reducing the performance burden while maintaining detection accuracy.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent extracts the complex task of self-modifying code tracking from the emulation logic and delegates it to the transactional memory hardware. The hardware's atomic transaction mechanisms automatically detect and handle code modifications, separating the detection function from the performance-critical emulation path.

Inventive Principle:
Principle #2Taking out (Extraction)

3Measurement precision

If instruction-accurate simulation is used for precise emulation, then emulation accuracy is improved, but execution speed deteriorates compared to chunk-accurate simulation

Engineering Contradiction:
Improveemulation accuracyVSAvoidexecution speed
Core Design Contradiction:
Measurement precisionVSSpeed

Solution Approach 1:

The patent implements dynamic switching between instruction-accurate and chunk-accurate simulation modes using transactional memory. The system executes chunks of instructions in parallel with chunk-accurate simulation for performance, and automatically switches to instruction-accurate simulation within transactions when precision is required, optimizing the trade-off between speed and accuracy based on runtime conditions.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9043553B2Leveraging transactional memory hardware to accelerate virtualization and emulation
Publication Date: 2015.05.26 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9043553B2 patent drawing
  • US9043553B2 patent drawing
  • US9043553B2 patent drawing

AI summary

Various technologies and techniques are disclosed for using transactional memory hardware to accelerate virtualization or emulation. State isolation can be facilitated by providing isolated private state on transactional memory hardware and storing the stack of a host that is performing an emulation in the isolated private state. Memory accesses performed by a central processing unit can be monitored by software to detect that a guest being emulated has made a self modification to its own code sequence. Transactional memory hardware can be used to facilitate dispatch table updates in multithreaded environments by taking advantage of the atomic commit feature. An emulator is provided that uses a dispatch table stored in main memory to convert a guest program counter into a host program counter. The dispatch table is accessed to see if the dispatch table contains a particular host program counter for a particular guest program counter.