Runtime Alias Table for Low RAM Footprint

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Limited resource computing devices, such as those used in IoT devices, face significant memory constraints due to reduced RAM, leading to reduced language function, incompatibilities, and limited space for script code and data, making it challenging to effectively implement dynamic scripting languages.

Innovation Solution

The solution involves moving significant parts of the virtual machine's data structures to non-volatile ROM and using a dynamic alias mechanism to store modified properties in RAM, while keeping unchanged properties in ROM, allowing objects in ROM to be modified as if they were in RAM, and utilizing a runtime image that includes a memory image from an initialization phase to reduce memory usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If dynamic scripting languages are implemented on limited resource computing devices, then robust and secure products with easy updates are achieved, but RAM usage becomes excessively high consuming hundreds of KB on devices with only 32-512 KB available

Engineering Contradiction:
Improveproduct robustness and securityVSAvoidRAM usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The virtual machine memory space is segmented into read-only code segments stored in flash memory and mutable data segments stored in RAM. This segmentation allows the majority of the virtual machine image to reside in non-volatile memory, dramatically reducing the RAM footprint from hundreds of KB to a manageable amount while preserving full functionality.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A compressed copy of the virtual machine image is stored in flash memory and decompressed/loaded into RAM only when needed. This copying approach allows the system to maintain a complete virtual machine environment in non-volatile storage while using minimal RAM, enabling robust scripting capabilities on resource-constrained devices.

Inventive Principle:
Principle #26Copying

2Adaptability or versatility

If more RAM is allocated to the runtime environment, then more script code and data can be stored, but the device's overall memory capacity is exceeded on devices with 32-512 KB RAM

Engineering Contradiction:
Improvescript code and data capacityVSAvoidavailable RAM
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The system transitions from a single-dimension RAM-based memory model to a two-dimensional memory model utilizing both flash memory (for code and immutable data) and RAM (for mutable data and execution). This dimensional change allows the system to leverage the large capacity of flash memory while using minimal RAM, effectively increasing script code and data capacity without exceeding device memory constraints.

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

Solution Approach 2:

The virtual machine environment is nested within the operating system, which itself is nested within the hardware constraints. The VM image is nested as a compressed archive in flash memory, with only the necessary portions loaded into RAM during execution. This nested structure allows maximum utilization of limited RAM resources while maintaining full VM functionality.

Inventive Principle:
Principle #7Nested doll (Nesting)

3Speed

If the virtual machine image is loaded entirely into RAM, then execution speed is improved, but the device cannot boot or run other applications due to insufficient RAM

Engineering Contradiction:
Improvevirtual machine startup speedVSAvoidRAM availability for other operations
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The virtual machine image is pre-compressed and stored in flash memory in an optimized format. During runtime, only the necessary portions of the image are decompressed and loaded into RAM, rather than loading the entire image. This preliminary preparation allows fast loading of essential VM components while keeping RAM usage minimal, enabling both quick startup and coexistence with other system operations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11397542B1Reducing RAM usage in a runtime environment
Publication Date: 2022.07.26 MODDABLE TECH INC
  • US11397542B1 patent drawing
  • US11397542B1 patent drawing
  • US11397542B1 patent drawing

AI summary

A computing device and method for reducing memory usage in a runtime. The method is performed in a computer system having a non-volatile memory (ROM) containing initial states of objects for the runtime and volatile memory (RAM). An alias table in RAM is accessed corresponding with an object in ROM. If the there is an alias referenced in RAM, then computation is performed upon the alias rather than the object in ROM. Otherwise, if there is no alias then computation is performed upon the one in ROM. If the object is required to be updated, then it is stored as an alias referenced by the alias table stored in RAM.