Dynamic Program Update Determination Using Difference Codes

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveprogram update capabilityVSAvoidexecution overhead
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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

Engineering Contradiction:
Improveprogram update capabilityVSAvoidapplicability to hard real-time systems
Core Design Contradiction:
Adaptability or versatilityVSReliability

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #2Taking out (Extraction)

3Quantity of substance

If difference codes are used for program updates, then memory usage is reduced, but complexity of determining update applicability increases

Engineering Contradiction:
Improvememory usageVSAvoidcomplexity of determining update applicability
Core Design Contradiction:
Quantity of substanceVSDevice complexity

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.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

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.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10642607B2Determination apparatus and determination method
Publication Date: 2020.05.05 RENESAS ELECTRONICS CORP
  • US10642607B2 patent drawing
  • US10642607B2 patent drawing
  • US10642607B2 patent drawing

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.