Object-Addressed Memory Access for Virtual Machine Address Spaces
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
Data Source
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.


