Heterogeneous Memory Virtualization for Speed-Capacity Balancing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems face challenges in fully utilizing the advantages of heterogeneous memory components due to difficulties in programming their usage, leading to suboptimal performance.

Innovation Solution

Implementing a memory virtualization technique that dynamically adjusts the mapping between virtualized memory addresses and different types of memory components based on usage patterns, using a predictive model to swap data between faster and slower memory types, thereby optimizing performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If heterogeneous memory components are used to improve performance, then memory access speed is improved, but programming complexity increases

Engineering Contradiction:
Improvememory access speedVSAvoidprogramming complexity
Core Design Contradiction:
SpeedVSEase of operation

Solution Approach 1:

The patent introduces a memory virtualization layer that acts as an intermediary between the CPU and heterogeneous memory components. This layer includes a translation lookaside buffer (TLB) that automatically translates virtual addresses to physical addresses across different memory types (DRAM, SRAM, non-volatile memory, storage devices), shielding applications from the complexity of programming heterogeneous memory systems while enabling fast access to appropriate memory components.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system dynamically changes memory mapping parameters based on usage patterns. The memory virtualization layer monitors access patterns and automatically adjusts the mapping between virtual addresses and physical memory locations, transitioning data between different memory types optimally without requiring application-level programming changes.

Inventive Principle:
Principle #35Parameter changes

2Speed

If data is kept in faster memory to improve access speed, then memory access performance is improved, but memory capacity is reduced

Engineering Contradiction:
Improvememory access performanceVSAvoidmemory capacity
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent implements a nested memory hierarchy where faster memory types (SRAM, DRAM) are nested within the virtual address space alongside slower but larger capacity memory types (non-volatile memory, storage devices). The memory virtualization layer manages this nested structure, allowing the system to provide both high-speed access for frequently used data and large capacity for less frequently accessed data, effectively combining the advantages of different memory types.

Inventive Principle:
Principle #7Nested doll (Nesting)

Solution Approach 2:

The system dynamically manages memory allocation across the heterogeneous memory components. The memory virtualization layer continuously monitors usage patterns and dynamically relocates data between memory types based on current access patterns, ensuring that hot data resides in faster memory while cold data is stored in larger capacity memory, optimizing both speed and capacity utilization.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12386742B2Memory virtualization for accessing heterogeneous memory components
Publication Date: 2025.08.12 MICRON TECHNOLOGY INC
  • US12386742B2 patent drawing
  • US12386742B2 patent drawing
  • US12386742B2 patent drawing

AI summary

A computing system having at least one bus, a plurality of different memory components, and a processing device operatively coupled with the plurality of memory components through the at least one bus. The different memory components include first memory and second memory having different memory access speeds. The computing system further includes a memory virtualizer operatively to: store an address map between first addresses used by the processing device to access memory and second addresses used to access the first memory and the second memory; monitor usages of the first memory and the second memory; adjust the address map based on the usages to improve speed of the processing device in memory access involving the first memory and the second memory; and swap data content in the first memory and the second memory according to adjustments to the address map.