Heterogeneous Memory Virtualization for Speed-Capacity Balancing
Find Innovative SolutionsGenerate 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
Engineering Contradiction Analysis
1Speed
If heterogeneous memory components are used to improve performance, then memory access speed is improved, but programming complexity increases
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.
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.
2Speed
If data is kept in faster memory to improve access speed, then memory access performance is improved, but memory capacity is reduced
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.
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.
Data Source
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.


