Software Upgrade Recovery via Address Line Modification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional software upgrade processes in consumer electronics are prone to failures due to unreliable quality assurance and transient technologies, leading to potential device malfunction and the need for costly replacements, especially in mass deployments.

Innovation Solution

A robust software upgrade method that involves storing a backup software component in a separate memory segment and modifying address lines to access this segment if the primary upgrade fails, using a watchdog timer and address modifier logic to ensure recovery and successful boot-up.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a new software image is written into flash memory during upgrade, then the software is updated to newer version, but unexpected system failure may corrupt the boot code segment and render the device non-operational

Engineering Contradiction:
Improvesoftware upgrade reliabilityVSAvoidmemory segment organization
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The flash memory is divided into distinct segments: a first segment for storing the new software image and a second segment for storing the backup boot code. This segmentation allows the system to isolate the upgrade process from the critical boot code, preventing corruption of essential system functions during software updates.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The backup boot code is prepared and stored in the second memory segment before the upgrade process begins. This preliminary action ensures that a valid boot code is already in place and can be immediately accessed if the upgrade fails, eliminating the need for complex post-failure recovery procedures.

Inventive Principle:
Principle #10Preliminary action

2Ease of repair

If the instruction at reset vector is corrupted, then the computing device cannot complete reboot sequence and remains in undefined state, but replacing all failed units is costly and burdensome

Engineering Contradiction:
Improvedevice recoverabilityVSAvoidboot code integrity
Core Design Contradiction:
Ease of repairVSReliability

Solution Approach 1:

The address modifier logic acts as an intermediary between the reset vector and the memory segments. When a failure is detected, this logic automatically modifies the address lines to redirect the system to the backup boot code in the second segment, providing a seamless recovery mechanism without requiring manual intervention or unit replacement.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system dynamically changes the address line parameters based on the upgrade outcome. If the upgrade succeeds, the address lines point to the new software image; if it fails, the address modifier logic alters these parameters to point to the backup boot code, enabling automatic recovery based on the upgrade status.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If mass deployment of computing devices is performed, then market penetration increases, but the burden of replacing failed units significantly increases for sellers

Engineering Contradiction:
Improvedeployment speedVSAvoidfield device reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system incorporates a backup boot code and address modifier logic as a protective cushion before deployment failures can occur. This preemptive measure ensures that even in mass deployment scenarios where failures may happen, each device has built-in protection that prevents complete failure, thereby reducing the burden of replacements while maintaining high deployment speed.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

Data Source

PatentUS8572598B1Method and system for upgrading software in a computing device
Publication Date: 2013.10.29 NVIDIA CORP
  • US8572598B1 patent drawing
  • US8572598B1 patent drawing
  • US8572598B1 patent drawing

AI summary

A method and system for upgrading a software component in a computing device are disclosed. Specifically, one embodiment of the present invention sets forth a method, which includes the steps of storing a first software component in a first memory segment, maintaining a second software component in a second memory segment, wherein the second software component enables the computing device to boot up, and modifying at least one of a plurality of address lines to access the second memory segment after exiting a reset condition, if the execution of the first software component fails to satisfy a predetermined test condition.