Install Time Forward Error Correction Data Generation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems for distributing software require significant bandwidth and storage due to the large size of forward error correction (FEC) data, which increases the size of firmware updates and limits the amount of data corruption that can be corrected.

Innovation Solution

Generating FEC data at install time instead of build time, using a Merkle tree system to compress and encrypt the root hash, and utilizing the Linux 'veritysetup' tool to optimize the firmware image package size by regenerating hash tree and FEC data at install time, allowing for more efficient error correction and reduced data transmission.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If FEC data is generated at build time and included in the firmware update package, then data integrity verification is ensured, but the firmware update package size increases significantly

Engineering Contradiction:
Improvedata integrity verificationVSAvoidfirmware update package size
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent extracts the FEC data generation step from the build time process and moves it to install time. Only the firmware image and a small hash file are packaged at build time, while the full FEC data is generated on-demand at install time using the hash file as input, thus separating the packaging phase from the error correction data preparation phase

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent performs preliminary actions at build time by generating and storing only the essential hash file (containing minimal data) rather than the complete FEC data. This preliminary hash file serves as a compact seed that enables later generation of the full FEC data when needed, reducing immediate package size while preserving future error correction capability

Inventive Principle:
Principle #10Preliminary action

2Reliability

If FEC data size is increased to correct larger data corruption, then error correction capability improves, but bandwidth and storage requirements increase

Engineering Contradiction:
Improveerror correction capabilityVSAvoidbandwidth and storage requirements
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent implements self-service by enabling the target system to generate its own FEC data locally at install time using the pre-stored hash file and the veritysetup tool, rather than receiving pre-generated FEC data through bandwidth-consuming transmission. The system serves its own error correction needs using local computational resources

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent changes the temporal parameter of FEC data availability from static (pre-generated at build time) to dynamic (generated on-demand at install time). This parameter change allows the system to adjust FEC data size based on actual needs, generating larger FEC datasets when storage space is available without increasing initial package size or transmission bandwidth requirements

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11431476B2Install time creation of forward error correction data and integrity checksums
Publication Date: 2022.08.30 DELL PROD LP
  • US11431476B2 patent drawing

AI summary

A system for transmitting data is disclosed that includes a file distribution system operating on a processor that is configured to identify one or more files for distribution to a device, forward error correction data for the one or more files, and a cryptographic key associated with the device. A Merkle tree system operating on the processor is configured to receive the forward error correction data and to generate an encrypted root hash. A data transmission system operating on the processor is configured to transmit the one or more files and the encrypted root hash to a predetermined device.