Object-Addressed Memory Access for Virtual Machine Address Spaces

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Managing multiple address spaces for simultaneously executing guest programs in virtual machines is complex, requiring substantial programming effort and overhead to ensure correct memory access with the right privileges, especially when emulating different instruction set architectures.

Innovation Solution

A system that uses object identifiers and paged memory objects to access memory locations in an object-addressed memory system, allowing uniform access to multiple address spaces without allocating or modifying control registers, and supports both paged and unpaged memory objects using a unified addressing mechanism.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If traditional memory management techniques are used for virtual machines, then multiple address spaces can be managed, but the system complexity and programming overhead increase substantially

Engineering Contradiction:
Improveability to manage multiple address spacesVSAvoidsystem complexity and programming overhead
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent applies universality by creating a unified memory access mechanism that handles both privileged and unprivileged address spaces through a single object identifier-based interface. The load and store instructions are enhanced to universally support multiple address spaces without requiring separate handling paths, thereby reducing system complexity while maintaining the ability to manage multiple address spaces.

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

Solution Approach 2:

The patent introduces object identifiers as an intermediary layer between the processor and the memory system. These object identifiers serve as mediators that carry address space information, allowing the memory management system to distinguish between different address spaces and apply appropriate access controls without increasing the complexity of the underlying memory management infrastructure.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If control registers are allocated and modified to access different address spaces, then privileged memory access is enabled, but the overhead and complexity of address space management increases

Engineering Contradiction:
Improveprivileged memory access capabilityVSAvoidaddress space management overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies parameter changes by encoding address space identification information directly within the object identifier parameter of load and store instructions. Instead of modifying control registers to change address space context, the system changes the parameter (object identifier) to specify the target address space, thereby enabling privileged access while reducing management overhead.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent extracts the address space identification functionality from the control register mechanism and embeds it directly into the object identifier used by load and store instructions. This extraction eliminates the need to allocate and modify control registers for address space management, reducing overhead while maintaining privileged access capability.

Inventive Principle:
Principle #2Taking out (Extraction)

3Measurement precision

If separate mechanisms are used for paged and unpaged memory objects, then precise memory access is achieved, but the addressing mechanism complexity increases

Engineering Contradiction:
Improvememory access precisionVSAvoidaddressing mechanism complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent merges the addressing mechanisms for paged and unpaged memory objects into a unified object identifier-based system. The object identifier simultaneously encodes information about the address space, the memory object type (paged or unpaged), and the specific object identity. This consolidation maintains precise memory access while reducing addressing mechanism complexity by eliminating the need for separate handling paths.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS8375195B2Accessing memory locations for paged memory objects in an object-addressed memory system
Publication Date: 2013.02.12 ORACLE AMERICAN INC
  • US8375195B2 patent drawing
  • US8375195B2 patent drawing
  • US8375195B2 patent drawing

AI summary

One embodiment of the present invention provides a system that accesses memory locations in an object-addressed memory system. During a memory access in the object-addressed memory system, the system receives an object identifier and an address. The system then uses the object identifier to identify a paged memory object associated with the memory access. Next, the system uses the address and a page table associated with the paged memory object to identify a memory page associated with the memory access. After determining the memory page, the system uses the address to access a memory location in the memory page.