Progressive Boot for Wireless Devices Using Code Partitioning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The long boot time of wireless devices due to the large amount of program codes being loaded from bulk non-volatile NAND Flash memory into volatile SDRAM at power up, resulting in an extended wait time before the device becomes operational.

Innovation Solution

Implementing a progressive boot method by partitioning program codes into a first code image for immediate loading and basic functionality, and a second code image loaded in the background or on-demand, with authentication of both code images using hash digests and digital signatures to ensure security and authorization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all program codes are loaded from NAND Flash into SDRAM at power up, then the device can be fully operational, but the boot time becomes relatively long

Engineering Contradiction:
Improvedevice operational capabilityVSAvoidboot time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent divides program codes into two segments: a first code image containing essential boot code and a second code image containing remaining program codes. The first code image is loaded into non-paged memory to enable basic device functionality, while the second code image is loaded into paged memory segments. This segmentation allows the device to become operational with critical functions first, reducing perceived boot time while maintaining full operational capability.

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If program codes are stored in bulk non-volatile NAND Flash memory, then storage capacity and economy are improved, but access speed deteriorates due to page-by-page retrieval limitation

Engineering Contradiction:
Improvestorage capacityVSAvoiddata access speed
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The patent extracts the first code image from the bulk NAND Flash storage and places it in non-paged memory that can be accessed immediately upon power up. This extraction separates the critical boot code from the larger storage medium, allowing fast access to essential program codes without being constrained by the page-by-page retrieval limitation of NAND Flash, while the remaining code image stays in the cost-effective bulk storage.

Inventive Principle:
Principle #2Taking out (Extraction)

3Loss of time

If a first code image is loaded to enable basic functionality, then perceived boot time is reduced, but device complexity increases due to multiple code images and authentication mechanisms

Engineering Contradiction:
Improveperceived boot timeVSAvoidcode image management complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent performs preliminary actions during device manufacturing by generating hash digests for each page of the second code image and creating a hash digest table, then programming both the first code image and the hash digest table into the NAND Flash during factory provisioning. This preliminary preparation eliminates the need for complex real-time authentication calculations during boot, reducing perceived boot time while managing complexity through advance preparation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces hash digests as an intermediary verification mechanism. Instead of implementing complex real-time authentication of the entire second code image, the system uses pre-computed hash digests stored in a hash digest table as intermediaries to verify code integrity. This intermediary approach simplifies the authentication process during operation while maintaining security, balancing reduced boot time with manageable complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP2210174B1Progressive boot for a wireless device
Publication Date: 2018.08.29 QUALCOMM INC
  • EP2210174B1 patent drawingFigure 1
  • EP2210174B1 patent drawingFigure 2
  • EP2210174B1 patent drawingFigure 3

AI summary

Techniques for performing progressive boot to reduce perceived boot time for a wireless device are described. Program codes to be stored in a bulk non-volatile memory may be partitioned into multiple code images. A first code image may include program codes used to support basic functionality of the wireless device. A second code image may include the remaining program codes. For progressive boot, the first code image may be loaded first from the bulk non-volatile memory. Once the first code image has been loaded, the wireless device may be rendered operational and may appear as functional to a user. While the wireless device is operational, the second code image may be loaded from the bulk non-volatile memory as background task and/or ondemand as needed.