Hybrid Memory Simulator Virtual Address Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing simulators for enterprise-scale systems lack the ability to direct memory allocation on hybrid memory systems, as they operate on physical addressing, making it challenging for applications to choose between dynamic random access memory (DRAM) and non-volatile memory (NVM) for data storage, leading to inefficiencies in energy consumption and performance.

Innovation Solution

Implementing a system call that configures virtual address ranges for memory controllers, allowing applications to dictate memory allocation between DRAM and NVM based on OS virtual addresses, thereby redirecting read and writeback traffic to the appropriate memory type, and extending cache block metadata to store virtual addresses for accurate routing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If data is stored in DRAM for fast access, then speed is improved, but energy consumption increases due to continuous leakage and refresh power

Engineering Contradiction:
Improvedata access speedVSAvoidenergy consumption
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

The memory system is segmented into multiple memory types (DRAM and NVM) with different characteristics. The system divides the address space into regions that map to different memory types, allowing data to be stored in the most appropriate memory type for its access patterns. Frequently accessed data resides in DRAM for speed, while less frequently accessed data is stored in NVM to reduce energy consumption.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different regions of the address space are assigned different memory types based on local access patterns. The system provides customized memory characteristics to different data regions - high-speed DRAM for hot data and energy-efficient NVM for cold data - rather than using a uniform memory type throughout the entire system.

Inventive Principle:
Principle #3Local quality

2Use of energy by moving object

If data is stored in NVM for energy efficiency, then energy consumption is reduced, but access latency increases

Engineering Contradiction:
Improveenergy consumptionVSAvoidaccess latency
Core Design Contradiction:
Use of energy by moving objectVSSpeed

Solution Approach 1:

The system performs preliminary actions by pre-loading data from NVM into DRAM cache before it is actually needed. The cache coherence protocol and virtual address translation mechanisms proactively manage data movement between memory types, ensuring that when data is accessed from NVM, it is first transferred to DRAM to minimize the latency impact on application performance.

Inventive Principle:
Principle #10Preliminary action

3Device complexity

If existing simulators use physical addressing, then device complexity is reduced, but adaptability decreases as applications cannot choose between DRAM and NVM

Engineering Contradiction:
Improvesimulator complexityVSAvoidmemory allocation flexibility
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The system introduces an intermediary layer (virtual address translation mechanism) between the application and the physical memory system. This intermediary translates virtual addresses to physical addresses while simultaneously determining the appropriate memory type (DRAM or NVM) for data storage. This approach maintains the simplicity of physical addressing in the simulator while adding the adaptability needed for applications to influence memory allocation decisions.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10452539B2Simulator for enterprise-scale simulations on hybrid main memory systems
Publication Date: 2019.10.22 SAP SE
  • US10452539B2 patent drawing
  • US10452539B2 patent drawing
  • US10452539B2 patent drawing

AI summary

Implementations of the present disclosure include methods, systems, and computer-readable storage mediums for performing actions during simulation of an application interacting with a hybrid memory system, actions including providing a first range of virtual addresses corresponding to a first type of memory in the hybrid memory system, and a second range of virtual addresses corresponding to a second type of memory in the hybrid memory system, receiving a data packet that is to be stored in the hybrid memory system, determining a virtual address assigned to the data packet, the virtual address being provided in cache block metadata associated with the data packet, and storing the data packet in one of the first type of memory and the second type of memory in the hybrid memory system based on the virtual address, the first range of virtual addresses, and the second range of virtual addresses.