Static Memory Allocation in Graphical Programming

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional graphical programming systems face challenges in meeting timing requirements due to variability in memory management overhead, particularly in real-time systems, and often result in large memory footprints due to static memory allocation, which is inefficient in resource-constrained environments.

Innovation Solution

A system and method for static memory allocation in graphical programming that analyzes memory requirements and identifies subsets of data elements that can share memory blocks, allowing for the allocation of fixed-size or bounded memory, thereby reducing dynamic memory allocations and optimizing memory usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If static memory allocation is used in graphical programming systems, then timing requirements are met with consistent execution, but memory footprint increases due to allocation of fixed-size memory blocks

Engineering Contradiction:
Improvetiming consistencyVSAvoidmemory footprint
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent segments memory allocation into static and dynamic portions. Static memory blocks are allocated for data elements with predictable, fixed-size requirements, while dynamic memory allocation is used for data elements with variable-size requirements. This segmentation allows the system to achieve timing consistency for predictable operations while avoiding unnecessary memory consumption for elements that don't require static allocation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces dynamic memory allocation capabilities within an otherwise static memory allocation framework. The system automatically determines which data elements require static allocation and which require dynamic allocation based on their size characteristics. This dynamic approach allows the system to adapt memory allocation strategies to specific data element requirements, optimizing both timing consistency and memory efficiency.

Inventive Principle:
Principle #15Dynamics

2Device complexity

If static memory allocation is used for all data elements, then memory management overhead is reduced, but memory efficiency decreases due to inability to reuse allocated memory

Engineering Contradiction:
Improvememory management complexityVSAvoidmemory efficiency
Core Design Contradiction:
Device complexityVSQuantity of substance

Solution Approach 1:

The patent implements a hybrid memory allocation system that dynamically determines which data elements should use static allocation and which should use dynamic allocation. This dynamic classification allows the system to maintain simple static allocation for predictable elements while enabling memory reuse through dynamic allocation for variable elements, thus improving overall memory efficiency without significantly increasing management complexity.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the allocation parameter from a binary choice (all static or all dynamic) to a selective approach where each data element can be individually classified. By analyzing data element characteristics such as size predictability and usage patterns, the system assigns appropriate allocation strategies, optimizing both management simplicity and memory efficiency through parameter-based differentiation.

Inventive Principle:
Principle #35Parameter changes

3Quantity of substance

If dynamic memory allocation is used, then memory efficiency is improved through reuse, but timing requirements are not met due to variability in memory management overhead

Engineering Contradiction:
Improvememory efficiencyVSAvoidtiming consistency
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent segments data elements into categories based on their memory allocation requirements. Data elements with fixed-size requirements are allocated static memory blocks, ensuring consistent execution timing without dynamic allocation overhead. Data elements with variable-size requirements use dynamic allocation, maintaining memory efficiency. This segmentation resolves the timing-efficiency tradeoff by applying appropriate allocation strategies to different element types.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a classification parameter that determines allocation strategy based on data element characteristics. By analyzing parameters such as size predictability and usage patterns, the system assigns static or dynamic allocation appropriately, eliminating timing variability for predictable elements while preserving memory efficiency through selective dynamic allocation for variable elements.

Inventive Principle:
Principle #35Parameter changes

4Productivity

If static memory allocation is used, then performance in real-time systems is improved, but adaptability decreases due to fixed memory block sizes

Engineering Contradiction:
Improvereal-time performanceVSAvoidmemory flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent implements a dynamic classification system that determines allocation strategy based on data element characteristics. This allows the system to maintain static allocation for elements requiring performance consistency while adapting to use dynamic allocation for elements requiring flexibility. The system adapts its memory management approach based on the specific requirements of each data element, preserving both real-time performance and adaptability.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent introduces adaptive parameters that allow the system to select allocation strategies based on data element properties such as size predictability and usage patterns. This parameter-based adaptation enables the system to optimize for real-time performance when appropriate while maintaining flexibility for variable requirements, resolving the performance-adaptability tradeoff through intelligent parameter analysis.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7331037B2Static memory allocation in a graphical programming system
Publication Date: 2008.02.12 NATIONAL INSTRUMENTS CORP
  • US7331037B2 patent drawing
  • US7331037B2 patent drawing
  • US7331037B2 patent drawing

AI summary

System and method for static memory allocation (SMA) in a graphical programming system. A graphical program (GP) may be created in response to user input, comprising nodes interconnected by wires for inter-node communication, which visually indicates functionality of the program, and includes a plurality of data elements. The GP is programmatically analyzed to determine: memory requirements for each of the data elements, and one or more subsets of the data elements that can share a memory block, e.g., by traversing the GP to determine one or more static paths, each comprising a path of wire along which a single statically allocated memory block can be used. One or more SMAs are programmatically included in the GP in response, executable to statically allocate a shared memory block for each subset. The GP may be executed, including executing the SMAs to statically allocate the shared memory blocks for each of the subsets.