Dynamic Program Update Determination Using Difference Codes
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for dynamic program updates in embedded devices, such as those used in in-vehicle and industrial control systems, face challenges due to high execution overhead and inability to apply to hard real-time systems, as they require tracing program context information, which is not feasible in such environments.
Innovation Solution
A determination apparatus that converts the dynamic updatability problem into a satisfiability problem, using difference codes and logical expressions to determine if a program can be updated without restarting the system, allowing for dynamic program updates in embedded devices without tracing program context information.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If program context information is traced during program execution to enable dynamic program updates, then program update capability is improved, but execution overhead increases significantly
Solution Approach 1:
The patent applies preliminary action by pre-generating difference codes that represent program updates before execution. The difference codes are prepared in advance and stored, allowing the system to apply updates without tracing program context during runtime. This pre-computation approach eliminates the need for real-time context analysis, thereby reducing execution overhead while maintaining update capability.
Solution Approach 2:
The patent extracts only the essential update information into difference codes, separating the update mechanism from the program context tracing. By extracting the core update payload (difference codes) and eliminating the need to trace and analyze full program context during execution, the system achieves efficient updates with minimal overhead.
2Adaptability or versatility
If program context information is traced during program execution to enable dynamic program updates, then program update capability is improved, but applicability to hard real-time systems deteriorates
Solution Approach 1:
The patent applies preliminary action by pre-generating difference codes that represent program updates before execution. The difference codes are prepared in advance and stored, allowing the system to apply updates without tracing program context during runtime. This pre-computation approach eliminates the need for real-time context analysis, thereby reducing execution overhead while maintaining update capability.
Solution Approach 2:
The patent extracts only the essential update information into difference codes, separating the update mechanism from the program context tracing. By extracting the core update payload (difference codes) and eliminating the need to trace and analyze full program context during execution, the system achieves efficient updates with minimal overhead.
3Quantity of substance
If difference codes are used for program updates, then memory usage is reduced, but complexity of determining update applicability increases
Solution Approach 1:
The patent replaces the mechanical approach of tracing and analyzing program context information with a logical expression-based system. Difference codes are represented as logical expressions that can be evaluated against the current program state without complex tracing mechanisms. This substitution simplifies the determination process by using formal logic instead of complex runtime analysis.
Solution Approach 2:
The patent changes the representation parameters of difference codes from raw binary or assembly instructions to logical expressions. This parameter change enables more efficient storage and facilitates automated determination of update applicability through logical evaluation, reducing both memory usage and the complexity of update determination.
Data Source
AI summary
A determination apparatus includes a difference code generation section that generates a first difference code and a second difference code, the first difference code representing a set of code pieces in a first program that are different from code pieces in a second program, the second difference code representing a set of code pieces in the second program that are different from code pieces in the first program, a logical expression derivation section that performs predetermined conversion to derive a first logical expression from the first difference code and derive a second logical expression from the second difference code, and a determination section that, depending on whether the second logical expression includes the first logical expression, determines whether the first program in a predetermined embedded device is dynamically updatable to the second program.


