Virtual Memory Engine Namespace for Block Mode Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional virtual memory systems fail to provide block mode access to virtual memory namespaces across interleaved physical NVDIMM addresses, limiting their ability to manage memory namespaces effectively across multiple devices and handle dynamic changes such as 'hot removal' of physical memory devices during runtime.

Innovation Solution

A virtual memory engine is implemented that maps a continuous virtual memory address range to non-continuous physical memory device address ranges across multiple physical devices, defines virtual memory namespaces as continuous subsets of this range, and provides read and write block mode access through a global unique identifier, enabling efficient management and adjustment of virtual memory across multiple physical devices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If virtual memory is mapped to interleaved physical NVDIMM address ranges across multiple devices, then memory capacity and distribution are improved, but block mode access capability is lost

Engineering Contradiction:
Improvememory capacityVSAvoidblock mode access
Core Design Contradiction:
Quantity of substanceVSEase of operation

Solution Approach 1:

The patent introduces a virtual memory namespace as an intermediary layer between the application and the interleaved physical NVDIMM address ranges. This namespace provides a continuous address space that masks the underlying non-continuous physical memory distribution, enabling block mode access while utilizing multiple physical devices. The virtual memory engine translates block access requests to the appropriate physical devices based on the namespace mapping.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If physical memory devices are dynamically added or removed during runtime, then system adaptability is improved, but memory namespace consistency is compromised

Engineering Contradiction:
Improveruntime adaptabilityVSAvoidnamespace consistency
Core Design Contradiction:
Adaptability or versatilityVSStability of the object's composition

Solution Approach 1:

The patent implements a dynamic virtual memory namespace that can be reconfigured at runtime based on the availability of physical NVDIMM devices. When devices are added or removed, the virtual memory engine dynamically adjusts the namespace mapping to maintain continuity and consistency. This allows the system to adapt to changing hardware configurations while preserving the illusion of a stable, continuous address space for applications.

Inventive Principle:
Principle #15Dynamics

3Ease of manufacture

If conventional virtual memory systems are used, then implementation simplicity is maintained, but block mode access across multiple devices is not supported

Engineering Contradiction:
Improveimplementation simplicityVSAvoidmulti-device block access
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The patent extends conventional virtual memory functionality to provide multi-device block mode access while maintaining implementation simplicity. The virtual memory namespace is designed to work with standard memory access patterns, and the virtual memory engine handles the complexity of mapping to interleaved physical addresses. This allows existing applications to benefit from multi-device configurations without requiring changes to their access patterns or increasing implementation complexity significantly.

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

Data Source

PatentUS10853264B2Virtual memory system
Publication Date: 2020.12.01 DELL PROD LP
  • US10853264B2 patent drawing
  • US10853264B2 patent drawing
  • US10853264B2 patent drawing

AI summary

A virtual memory system includes a virtual memory engine coupled to a plurality of physical memory devices and a virtual memory database. During an initialization process, virtual memory engine uses a first unique global identifier to create virtual memory in the virtual memory database by mapping a continuous virtual memory address range to non-continuous physical memory device address ranges that are provided across the plurality of physical memory devices. During the initialization process, or subsequently during runtime, the virtual memory engine uses a second global unique identifier to define a virtual memory device namespace in the virtual memory that includes a first continuous subset of the continuous virtual member address range. During runtime, the virtual memory engine then provides read and write block mode access to the plurality of physical memory devices via the virtual memory device namespace defined in the virtual memory database.