Parallel Executable Decompression Across Dependency-Linked Blocks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing decompression methods for compressed executable files, such as those using Gzip, are serial and inefficient, leading to noticeable delays in launching applications on mobile devices, as they cannot effectively handle data dependencies across multiple blocks.

Innovation Solution

A parallel processing system utilizing multiple processor cores to partially decompress blocks independently and then aggregate the data, leveraging metadata to identify block boundaries and sequence dependent data, thereby accelerating the decompression process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If serial decompression is used to ensure data integrity and handle dependencies, then decompression accuracy is maintained, but decompression speed deteriorates

Engineering Contradiction:
Improvedecompression accuracyVSAvoiddecompression speed
Core Design Contradiction:
Measurement precisionVSSpeed

Solution Approach 1:

The patent divides the compressed file into multiple independent blocks, each with self-contained data dependencies. By segmenting the decompression task into parallelizable blocks while maintaining internal dependency integrity, the system achieves both accurate reconstruction and improved decompression speed through concurrent processing of multiple blocks.

Inventive Principle:
Principle #1Segmentation

2Productivity

If parallel processing is implemented to increase decompression speed, then productivity improves, but handling data dependencies becomes more difficult

Engineering Contradiction:
Improvedecompression throughputVSAvoiddependency management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the compressed data into multiple blocks where each block's dependencies are contained within that block. This segmentation enables parallel processing of multiple blocks simultaneously while simplifying dependency management, as each block can be decompressed independently without requiring complex inter-block coordination.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary organization of data during the compression phase, structuring blocks with self-contained dependencies. This preliminary action during compression enables straightforward parallel decompression later, as the block structure and dependency boundaries are already established, eliminating the need for complex runtime dependency resolution.

Inventive Principle:
Principle #10Preliminary action

3Quantity of substance

If compressed files are stored to save memory space, then storage efficiency improves, but launch time deteriorates due to decompression requirements

Engineering Contradiction:
Improvestorage capacity utilizationVSAvoidapplication launch time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent segments the compressed file into multiple blocks that can be decompressed in parallel. This segmentation allows the system to achieve both high storage efficiency (by maintaining compression) and reduced launch time (through parallel decompression of segments), directly addressing the trade-off between storage savings and launch performance.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11151139B2Parallel processing of data having data dependencies for accelerating the launch and performance of operating systems and other computing applications
Publication Date: 2021.10.19 CORNAMI INC
  • US11151139B2 patent drawing
  • US11151139B2 patent drawing
  • US11151139B2 patent drawing

AI summary

Representative embodiments are disclosed for a rapid and highly parallel decompression of compressed executable and other files, such as executable files for operating systems and applications, having compressed blocks including run length encoded (“RLE”) data having data-dependent references. An exemplary embodiment includes a plurality of processors or processor cores to identify a start or end of each compressed block; to partially decompress, in parallel, a selected compressed block into independent data, dependent (RLE) data, and linked dependent (RLE) data; to sequence the independent data, dependent (RLE) data, and linked dependent (RLE) data from a plurality of partial decompressions of a plurality of compressed blocks, to obtain data specified by the dependent (RLE) data and linked dependent (RLE) data, and to insert the obtained data into a corresponding location in an uncompressed file. The representative embodiments are also applicable to other types of data processing for applications having data dependencies.