Memory Resource Pooling for Latency Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

High-performance computing systems face challenges in achieving uniform memory access latencies due to the presence of both volatile and non-volatile DIMMs, leading to resource exhaustion and reduced system performance when accessing slower memory modules.

Innovation Solution

The system manages accesses by allocating resources into pools based on memory access criteria, such as memory address ranges, request types, and node relationships, ensuring that each type of access is directed to appropriate resource pools, preventing resource starvation and allowing other memory accesses to continue unabated.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If non-volatile DIMMs are installed to prevent data loss, then data reliability is improved, but memory access latency increases significantly

Engineering Contradiction:
Improvedata retentionVSAvoidmemory access latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments memory into different types (volatile and non-volatile DIMMs) with distinct characteristics, allowing the system to utilize both fast volatile memory for performance-critical operations and reliable non-volatile memory for data persistence, thereby resolving the contradiction between speed and reliability

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by assigning different memory types to different data requirements - volatile memory for frequently accessed data requiring speed, and non-volatile memory for data requiring persistence, optimizing both latency and reliability for their respective use cases

Inventive Principle:
Principle #3Local quality

2Productivity

If resources are shared among all memory accesses, then resource utilization is improved, but resource exhaustion occurs when slow memory accesses occupy resources

Engineering Contradiction:
Improveresource utilizationVSAvoidresource availability
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments shared resources into dedicated pools for different memory types, preventing slow non-volatile memory accesses from exhausting resources needed for fast volatile memory operations, thus maintaining both high resource utilization and availability

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces resource pools as intermediary structures that mediate between different memory access types and the underlying hardware resources, allowing the system to manage resource allocation dynamically and prevent exhaustion while maintaining high utilization

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of time

If uniform memory access latency is achieved through identical DIMMs, then access time uniformity is improved, but system adaptability decreases when mixing memory types

Engineering Contradiction:
Improveaccess time uniformityVSAvoidmemory configuration flexibility
Core Design Contradiction:
Loss of timeVSAdaptability or versatility

Solution Approach 1:

The patent creates a universal memory management system that can handle both volatile and non-volatile DIMMs through a unified interface and resource pool architecture, allowing the system to adapt to different memory configurations while maintaining consistent access patterns and performance characteristics

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

Data Source

PatentUS10331581B2Virtual channel and resource assignment
Publication Date: 2019.06.25 HEWLETT PACKARD ENTERPRISE DEV LP
  • US10331581B2 patent drawing
  • US10331581B2 patent drawing
  • US10331581B2 patent drawing

AI summary

A high-performance computing system, method, and storage medium manage accesses to multiple memory modules of a computing node, the modules having different access latencies. The node allocates its resources into pools according to pre-determined memory access criteria. When another computing node requests a memory access, the node determines whether the request satisfies any of the criteria. If so, the associated pool of resources is selected for servicing the request; if not, a default pool is selected. The node then services the request if the pool of resources is sufficient. Otherwise, various error handling processes are performed. Each memory access criterion may relate to a memory address range assigned to a memory module, a type of request, a relationship between the nodes, a configuration of the requesting node, or a combination of these.