Compressed NVM OTA Swapping for Smaller Backup Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional over-the-air (OTA) update solutions for microcontrollers require a doubling of non-volatile memory (NVM) size, leading to design constraints and performance drawbacks such as lengthy downtimes, high data bandwidth requirements, and limited backup capabilities, which hinder efficient update and maintenance operations.

Innovation Solution

A system and method that uses a smaller backup NVM to store compressed OTA code, leveraging lossless compression and decompression engines to swap blocks between the main and backup NVMs, reducing the backup NVM size to 50% of the main NVM without increasing downtime, by hiding compression/decompression time within the write time of the NVM memory.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional OTA solutions are used to store uncompressed backup code, then backup capability is provided, but NVM size must be doubled

Engineering Contradiction:
Improvebackup capabilityVSAvoidNVM size
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent applies compression parameter changes to the backup code stored in NVM. By compressing the backup code before storage, the patent reduces the amount of memory required while maintaining the ability to restore the original code. This directly addresses the contradiction by changing the physical state (compressed vs uncompressed) of the stored data.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent creates a compressed copy of the backup code rather than storing the full uncompressed version. This compressed copy contains all necessary information to restore the original code but occupies less space, thereby providing backup capability with reduced NVM size requirements.

Inventive Principle:
Principle #26Copying

2Quantity of substance

If compression/decompression operations are performed during OTA updates, then NVM size is reduced, but processing time increases

Engineering Contradiction:
ImproveNVM sizeVSAvoidupdate downtime
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent performs compression of the backup code in advance during the update process, before the actual code switch is needed. This preliminary compression action allows the compressed data to be ready for storage, and when an update is needed, the system can quickly decompress and switch codes without prolonged downtime.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent maintains continuous operation by performing compression during periods when the system can tolerate processing (such as during initial update setup) rather than during critical code switching moments. The useful action of compression is continuously available but strategically timed to minimize impact on system availability.

Inventive Principle:
Principle #20Continuity of useful action

3Adaptability or versatility

If larger NVM is allocated for OTA updates, then update capability is provided, but computing resources are wasted

Engineering Contradiction:
Improveupdate capabilityVSAvoidcomputing resource efficiency
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent changes the compression parameter of the stored code from uncompressed to compressed format. This allows the same NVM capacity to store more code variants, providing better update capability without requiring additional memory resources or increasing device complexity.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10642602B2NVM architecture with OTA support
Publication Date: 2020.05.05 NXP USA INC
  • US10642602B2 patent drawing
  • US10642602B2 patent drawing
  • US10642602B2 patent drawing

AI summary

A software update architecture, system, apparatus, and methodology are provided for performing block-based swapping of OTA software stored as a plurality of compressed blocks in a first, smaller NVM with the system software stored as a plurality of decompressed blocks in a second, larger NVM by using a first decompressor circuit and first scratch memory to sequentially decompress each compressed code block of OTA software for storage in decompressed form as updated system software in the second, larger NVM while using a first compressor circuit and second scratch memory to sequentially compress each decompressed code block of system software for storage in compressed form as backup system software in the first, smaller NVM.