Global Variable Structure for Graphical Program Memory Management
Find Innovative SolutionsGenerate 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
Engineering 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
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).
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
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.
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.
3Reliability
If the lock and key mechanism is implemented for global variable modification, then deterministic behavior is ensured, but the system complexity increases
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.
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
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.
Data Source
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.


