Non-Volatile Memory Update Sequence for Firmware Reliability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Firmware update processes in information processing apparatuses with both code and setting data areas on a non-volatile memory face challenges due to potential power disconnections, leading to incomplete updates and data corruption, which can result in the apparatus failing to activate normally, especially when digital signature verification is not available for the setting data area.

Innovation Solution

The solution involves acquiring update data for the non-volatile memory, deleting a portion of the program in the code area before updating the data area, and completing the update process for the code area after updating the data area, thereby enhancing failure tolerance against forced interruptions during the update process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the firmware update process updates both code area and setting data area simultaneously, then the update efficiency is improved, but the reliability deteriorates due to potential power disconnection causing incomplete updates and data corruption

Engineering Contradiction:
Improveupdate efficiencyVSAvoidupdate completeness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The update process is divided into two sequential phases: first updating the setting data area, then updating the code area. This segmentation ensures that each area is updated completely before moving to the next, preventing partial updates that could cause system failure. The setting data area is updated first because it contains configuration information needed for the update process, and only after this is complete does the system proceed to update the code area.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The setting data area is updated before the code area in the update sequence. This preliminary action ensures that all configuration data and parameters required for the code update are already in place and consistent before the code itself is modified. This ordering prevents scenarios where code updates occur without corresponding data area updates, which would cause activation failures.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If the code area is updated before the setting data area, then the update process follows traditional sequence, but the reliability worsens because power disconnection during code update leaves the system in an inconsistent state

Engineering Contradiction:
Improveupdate process simplicityVSAvoidsystem consistency
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The traditional update sequence is inverted: instead of updating the code area first and then the setting data area, the patent updates the setting data area first and then the code area. This inversion ensures that the foundation data is established before building upon it with code updates, preventing inconsistent states where code references data that hasn't been updated yet. This reversal of the traditional sequence is the core innovation that solves the reliability problem.

Inventive Principle:
Principle #13The other way round (Inversion)

3Measurement precision

If digital signature verification is used for the code area, then data corruption detection is improved, but the setting data area remains vulnerable without similar verification mechanisms

Engineering Contradiction:
Improvedata corruption detection accuracyVSAvoidoverall system security
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

The update process design makes the setting data area update a prerequisite for code area update, creating a universal dependency relationship. This multi-functional approach serves dual purposes: it ensures data consistency by establishing the data area first, and it indirectly protects the setting data area by making its update mandatory before code updates can proceed. This creates a systematic safeguard that complements the digital signature verification already in place for the code area.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS11907049B2Information processing apparatus, method of controlling the same, and storage medium with features for updating code and data areas of non-volatile memory
Publication Date: 2024.02.20 CANON KK
  • US11907049B2 patent drawing
  • US11907049B2 patent drawing
  • US11907049B2 patent drawing

AI summary

The present information processing apparatus comprises a non-volatile memory that has a first portion including a code area configured to hold a program and a data area configured to hold data. In addition, the information processing apparatus acquires update data of a first portion, and updates the first portion with the acquired update data. In the updating process, at least a portion of the program held in the code area is deleted before updating the contents of the data area, and after updating the contents of the data area, updating to the code area is completed.