Concurrent Remote-Local Memory Allocation via Pre-allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern computing systems face inefficiencies in memory allocation due to the delay caused by remote memory access, leading to potential second page faults when accessing memory that has not yet been allocated, which can hinder system performance.

Innovation Solution

A fabric-interconnected processing system with memory allocation devices that dynamically allocate both local and remote memory pages, allowing for concurrent execution of operating system instances across nodes and pre-allocating remote memory to avoid page faults by using global system addresses and cache-coherent protocols.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If remote memory allocation is performed sequentially (waiting for remote node to allocate memory before returning address), then memory allocation correctness is ensured, but system performance and latency are degraded

Engineering Contradiction:
Improvememory allocation speedVSAvoidallocation latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The remote node pre-allocates memory blocks and maintains a pool of available memory addresses before they are actually needed. When a local node requests remote memory, the pre-allocated addresses can be immediately assigned without waiting for the remote allocation to occur, thus eliminating the sequential delay while ensuring memory availability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system maintains a cushion or buffer of pre-allocated memory addresses at the remote node that can be immediately assigned to local nodes. This cushion of available addresses prevents the system from stalling when memory allocation is requested, as the remote node already has reserved addresses ready to hand out without reallocation delays.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

2Speed

If remote memory is accessed before allocation is complete, then system responsiveness is improved, but second page faults occur causing errors

Engineering Contradiction:
Improvememory access speedVSAvoidmemory access correctness
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The remote node performs preliminary memory allocation and validates the memory blocks before they are assigned to local nodes. This ensures that when local nodes access the remote memory, the allocation is already complete and verified, preventing second page faults while allowing immediate access.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms where the remote node confirms memory allocation status to local nodes before access is permitted. The local node receives confirmation that the remote memory is properly allocated and ready for access, ensuring reliability while maintaining speed through efficient feedback validation.

Inventive Principle:
Principle #23Feedback

3Device complexity

If memory allocation is centralized on one node, then allocation management is simplified, but network traffic and latency increase

Engineering Contradiction:
Improveallocation management complexityVSAvoidnetwork communication delay
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The memory allocation function is segmented and distributed across multiple nodes in the system. Each node can independently manage its own memory allocation while also serving as a remote node for other nodes. This segmentation eliminates the single-point bottleneck, reducing network traffic and latency while maintaining manageable complexity through standardized allocation protocols.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11567679B2Concurrent remote-local allocation operations
Publication Date: 2023.01.31 RAMBUS INC
  • US11567679B2 patent drawing
  • US11567679B2 patent drawing
  • US11567679B2 patent drawing

AI summary

A memory allocation device on an originating node requests an allocation of memory from a remote node. In response, the memory allocation device on the remote node returns a global system address that can be used to access the remote allocation from the originating node. Concurrent with the memory allocation device assigning (associating) a local (to its node) physical address to be used to access the remote allocation, the remote node allocates local physical memory to fulfill the remote allocation request. In this manner, the remote node has already completed the overhead operations associated with the remote allocation requested by the time the remote allocation is accessed by the originating node.