Concurrent Remote-Local Memory Allocation via Pre-allocation
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Speed
If remote memory is accessed before allocation is complete, then system responsiveness is improved, but second page faults occur causing errors
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.
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.
3Device complexity
If memory allocation is centralized on one node, then allocation management is simplified, but network traffic and latency increase
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.
Data Source
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.


