Dynamic External Memory Allocation for Scalable Primary Capacity
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current computing systems face limitations in primary memory capacity due to high costs and inefficiencies, where secondary memory is larger but slower, and there is a need for scalable primary memory solutions that can dynamically allocate resources on demand.
Innovation Solution
The implementation of a dynamically allocatable external memory system that allows clients to access and provision primary memory from a pooled resource, using a memory appliance and management server to manage memory allocations across multiple devices, enabling on-demand scaling and efficient use of memory resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If primary memory capacity is increased to meet growing working set demands, then the system can handle more tasks and larger working sets, but the cost increases prohibitively
Solution Approach 1:
The patent merges primary memory and secondary memory into a unified memory system where secondary memory (such as flash memory or hard disks) is integrated with the memory controller. This allows the system to treat secondary memory as an extension of primary memory, enabling larger effective memory capacity without proportionally increasing costs, since secondary memory media is less expensive than primary memory media.
Solution Approach 2:
The memory system is designed to serve multiple functions: it can operate as primary memory for active working sets, as secondary memory for swapped-out pages, and dynamically adapt between these roles. The unified memory interface allows the same physical memory resources to be allocated differently based on system demands, maximizing resource utilization and cost-effectiveness.
2Quantity of substance
If secondary memory is used to expand memory capacity, then larger storage capacity is achieved, but access speed decreases
Solution Approach 1:
The memory controller acts as an intermediary between the CPU and the unified memory system. It intelligently manages data transfer between primary and secondary memory, prefetching data that is likely to be needed and managing page swaps transparently. This mediation minimizes the performance impact of using slower secondary memory by optimizing access patterns and reducing latency.
Solution Approach 2:
The system performs preliminary actions by prefetching data from secondary memory to primary memory before it is actually needed by the working set. The memory controller monitors access patterns and proactively loads frequently accessed pages, thereby reducing the likelihood of slow secondary memory access during active computation and maintaining high performance.
3Adaptability or versatility
If larger primary memory is provisioned to handle peak demand, then the system can accommodate more tasks during high-load periods, but memory resources remain unused during low-demand periods
Solution Approach 1:
The patent implements a dynamic memory system where the boundary between primary and secondary memory is not fixed but can change based on system demands. The memory controller continuously monitors working set sizes and dynamically adjusts which pages reside in primary versus secondary memory. This dynamic allocation allows the system to scale memory capacity up during peak demand and scale down during low-demand periods, optimizing both adaptability and resource utilization efficiency.
Data Source
AI summary
Methods, devices, and executable instructions are provided for allocating external memory. A request to allocate a portion of memory may be received at a first device. A memory appliance and the first client device are connected by a network. A region of memory of the memory appliance may be allocated as external memory prior to receipt of the request to allocate the portion of memory at the first client device. A subset of the region of memory for the portion of memory allocated may be selected at the first client device and in coordination with a second client device on the network, wherein the portion of memory allocated is external to the first client device and yet is primary memory to the first client device. At least the subset of the region of memory may be mapped at the first client device to a virtual address space.


