Non-Volatile Memory Allocation for Large Data Structures

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern computer systems face challenges in providing sufficient memory for executing large applications without the need for extensive and costly RAM storage, as existing solutions like virtual memory are inadequate for very large data structures.

Innovation Solution

Configuring computer systems to allocate memory on non-volatile storage mediums such as solid state drives, allowing for the use of these devices as memory for executing program code, thereby reducing the reliance on large amounts of RAM storage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If large amounts of RAM storage are provided to meet memory demands, then memory capacity is improved, but cost increases significantly

Engineering Contradiction:
Improvememory capacityVSAvoidcost
Core Design Contradiction:
Quantity of substanceVSEase of manufacture

Solution Approach 1:

The patent makes non-volatile storage serve multiple functions: both long-term data storage and temporary memory execution. By enabling the same storage medium to perform both roles, the system eliminates the need for separate expensive RAM hardware, resolving the contradiction between memory capacity and cost.

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

Solution Approach 2:

The patent changes the fundamental parameter of storage volatility from volatile (RAM) to non-volatile (SSD/HDD). This parameter change enables cost-effective large-scale memory allocation while maintaining persistence, directly addressing the cost-capacity contradiction.

Inventive Principle:
Principle #35Parameter changes

2Ease of manufacture

If non-volatile storage is used for memory allocation, then cost is reduced, but read/write speed decreases

Engineering Contradiction:
ImprovecostVSAvoidread/write speed
Core Design Contradiction:
Ease of manufactureVSSpeed

Solution Approach 1:

The patent applies partial action by allocating only the necessary memory portion to non-volatile storage rather than all memory operations. Critical, speed-sensitive operations remain in RAM while less demanding data structures are placed in non-volatile storage, achieving cost reduction without excessive performance penalty.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent treats non-volatile storage as a cheaper alternative for memory allocation, accepting its slower speed characteristics in exchange for significantly lower cost. This principle is particularly valuable for applications where cost sensitivity outweighs performance requirements.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

3Quantity of substance

If virtual memory solutions are used to free up RAM, then available RAM is improved, but the solution remains inadequate for very large data structures

Engineering Contradiction:
Improveavailable RAMVSAvoidsuitability for large data structures
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

Solution Approach 1:

The patent moves the memory allocation discussion from a single dimension (RAM only) to multiple dimensions by introducing non-volatile storage as an additional memory tier. This dimensional expansion enables accommodation of very large data structures that exceed physical RAM capacity, overcoming the limitations of traditional virtual memory approaches.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS10482007B2Memory allocation on non-volatile storage
Publication Date: 2019.11.19 NOBLIS INC
  • US10482007B2 patent drawing
  • US10482007B2 patent drawing
  • US10482007B2 patent drawing

AI summary

Techniques for allocating memory on non-volatile storage mediums, rather than on RAM storage mediums, are provided. In some embodiments, first functions in program code for allocating memory on RAM storage are replaced with corresponding second functions for allocating memory on non-volatile storage. Library files corresponding to the second functions may be stored in programming language libraries, such that the second function may be defined in order to allocate memory on non-volatile storage. In some embodiments, a library file for allocating memory on RAM storage may be modified such that it instead causes allocation of memory on non-volatile storage. Allocating memory, storing data in memory, or retrieving data in memory may, in some embodiments, include providing instructions for a processor to communicate via a bus associated with non-volatile storage rather than a bus associated with RAM storage.