Global Variable Structure for Graphical Program Memory Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphical data flow programming environments struggle with inefficient memory utilization due to the inability to specify which data containers should share memory, leading to performance issues and potential memory exhaustion in applications like real-time controllers.

Innovation Solution

The introduction of a global variable structure in graphical programs, which allows for deterministic modification of global variables through a 'lock and key' mechanism, enabling optimized memory usage by allowing data containers not directly connected in a wired data flow to be modified concurrently and independently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If global variables are allowed to be modified concurrently by multiple nodes, then the system becomes more flexible and powerful, but non-deterministic behavior occurs making the system unreliable

Engineering Contradiction:
ImproveflexibilityVSAvoiddeterministic behavior
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

A lock node is introduced as an intermediary between modification nodes and global variables. This lock node mediates access to global variables by acquiring locks before modifications and releasing them after, ensuring that only one node can modify a global variable at a time. This resolves the contradiction by maintaining system flexibility (multiple nodes can still attempt modifications) while ensuring deterministic behavior (modifications are serialized through the lock mechanism).

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If memory allocation is automatic without specification, then the system is easier to use, but memory utilization becomes inefficient leading to performance degradation

Engineering Contradiction:
Improveease of useVSAvoidmemory utilization efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The memory management system is segmented into two parts: automatic memory allocation for general cases (maintaining ease of use) and explicit memory sharing specification through the in-place structure for optimization cases (improving memory utilization). This allows the system to automatically allocate memory when no special instructions are given, while enabling optimized memory sharing when the in-place structure is used to connect data containers.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The in-place structure acts as an intermediary that connects data containers to indicate they should share the same memory. This structure mediates between the automatic memory allocation system and the user's intent to optimize memory usage, allowing efficient memory utilization without compromising the overall ease of use of the system.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If the lock and key mechanism is implemented for global variable modification, then deterministic behavior is ensured, but the system complexity increases

Engineering Contradiction:
Improvedeterministic behaviorVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The lock node is configured to automatically acquire locks before modifying global variables and automatically release them after modifications. This self-service mechanism eliminates the need for users to manually manage lock acquisition and release, reducing system complexity while maintaining deterministic behavior. The lock node handles the complexity internally, presenting a simple interface to users.

Inventive Principle:
Principle #25Self-service

4Productivity

If data containers are directly connected in wired data flow, then memory sharing is automatic, but the system becomes too large and runs out of memory

Engineering Contradiction:
Improvememory sharing efficiencyVSAvoidsystem size
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The memory sharing indication is extracted from the physical connection structure. Instead of requiring direct wired connections between data containers to share memory, the in-place structure extracts and represents the memory sharing relationship separately. This allows data containers to share memory without being physically connected in the graphical program, reducing system size and complexity while maintaining memory sharing efficiency.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8381174B2Global variable structure in a graphical program
Publication Date: 2013.02.19 NATIONAL INSTRUMENTS CORP
  • US8381174B2 patent drawing
  • US8381174B2 patent drawing
  • US8381174B2 patent drawing

AI summary

System and method for deterministic modification of global variables in a graphical program. Input including the structure in the graphical program may be received, where the structure is displayed in the graphical program. At least one graphical program node is associated with the structure. The at least one graphical program node may be executable to modify the value of a global variable. During execution of the graphical program the structure ensures deterministic modification of values of the global variable.