In-Place BSDIFF Decompression That Resumes After Power Loss

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

During firmware updates, embedded devices can experience power failures during inplace patching, leading to incomplete output firmware images and the need for retransmission, which increases storage size and costs, with no existing method to resume the patching process without additional storage or retransmission.

Innovation Solution

A method where a compressed image is inputted into a computing system, with local variables stored periodically, allowing the processor to resume the inplace patching process at the same state after power restoration, enabling the decompression process to continue without retransmitting the image.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If inplace patching is performed without interruption handling, then the process is simple and requires no additional storage, but power failure causes incomplete output and requires retransmission

Engineering Contradiction:
Improvefirmware update completenessVSAvoidpatching process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by saving loop states and local variables at predetermined intervals during the patching process, before any interruption can occur. This allows the system to resume from the last saved state rather than starting over, improving reliability without requiring complex interruption handling mechanisms.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses copying by creating periodic snapshots of the patching loop state and local variables. These copied state representations are stored in non-volatile memory, allowing the system to restore the exact patching state after power failure without retransmitting the entire firmware image.

Inventive Principle:
Principle #26Copying

2Loss of time

If periodic state saving is implemented, then resumption after interruption is enabled, but storage space is consumed and process time increases

Engineering Contradiction:
Improveretransmission timeVSAvoidstorage space
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

The patent applies partial action by saving only the essential loop state and local variables rather than the entire firmware image. This periodic saving of minimal necessary data reduces storage consumption while still enabling complete process resumption, avoiding the need to retransmit the full firmware.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent uses discarding and recovering by temporarily using volatile memory for active patching variables, then periodically discarding them in favor of saved snapshots in non-volatile memory. After interruption, the system recovers only the necessary state information from these saved snapshots, minimizing both storage usage and recovery time.

Inventive Principle:
Principle #34Discarding and recovering

3Reliability

If additional storage is added for interruption handling, then process resumption is possible, but storage costs increase

Engineering Contradiction:
Improveinterruption recovery capabilityVSAvoidstorage capacity
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent applies segmentation by dividing the firmware update process into discrete loop iterations with identifiable states. Each segment's state and local variables are saved periodically, allowing the system to resume from any segment boundary without requiring additional storage beyond what's needed for these state snapshots.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS12079622B2Interruptable BSDIFF delta decompression
Publication Date: 2024.09.03 HONEYWELL INTERNATIONAL INC
  • US12079622B2 patent drawing
  • US12079622B2 patent drawing
  • US12079622B2 patent drawing

AI summary

A method includes inputting at least one compressed image in a computing system. The method also includes an inplace patching process. Another image is decompressed over the compressed image by a processor. Local variables are stored periodically, receiving restored power after an interruption to the inplace patching, wherein an execution of the inplace patching is resumed at a later time interval by the processor by restoring the local variables. The method also includes completing the inplace patching process of decompressing the image over the inputted compressed image after restoring the local variables.