Parallel Decompression of Executable Files With Cross-Block Dependencies

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 and sequence run length encoded data across multiple blocks, allowing for simultaneous decomposition and reassembly of compressed files, thereby accelerating the decompression process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If serial decompression is used for compressed executable files, then data integrity is maintained, but decompression time is excessively long causing noticeable delays in application launch

Engineering Contradiction:
Improvedecompression timeVSAvoidapplication launch speed
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The compressed file is divided into multiple independent blocks that can be decompressed in parallel. Each block contains self-contained data with local references, allowing simultaneous processing of multiple blocks without data conflicts, thereby reducing overall decompression time while maintaining data integrity

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Reference data from earlier blocks is pre-fetched and stored in a reference buffer before decompression of later blocks begins. This preliminary preparation eliminates waiting time during parallel decompression operations, as all required reference data is already available when needed

Inventive Principle:
Principle #10Preliminary action

2Quantity of substance

If compression algorithms with run length encoding and cross-block references are used, then compression ratio is improved, but parallel decompression becomes impossible due to data dependencies

Engineering Contradiction:
Improvecompression ratioVSAvoidparallel processing capability
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

Solution Approach 1:

The compressed file structure is segmented into blocks with explicit boundary markers. Each block is designed to be as independent as possible, with reference data embedded within or pre-loaded for each block, enabling parallel decompression while preserving the beneficial cross-block reference compression technique

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A reference buffer acts as an intermediary between blocks during parallel decompression. It stores reference data from earlier blocks and makes it available to later blocks that need it, decoupling the data dependencies and enabling simultaneous processing of multiple blocks

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If multiple processor cores are used for parallel decompression, then decompression speed is increased, but system complexity increases due to coordination requirements

Engineering Contradiction:
Improvedecompression speedVSAvoidparallel processing coordination
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The decompression task is segmented into independent block-processing units that can be assigned to different processor cores. Each core processes assigned blocks independently using the same decompression logic, simplifying coordination compared to complex inter-core data sharing while achieving parallel speedup

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The decompression algorithm and reference buffer are copied to each processor core's local memory space. This eliminates the need for complex inter-core communication and synchronization, as each core operates with its own complete decompression environment, reducing system complexity while maintaining parallel processing capability

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11669526B2Parallel processing of data having data dependencies for accelerating the launch and performance of operating systems and other computing applications
Publication Date: 2023.06.06 CORNAMI INC
  • US11669526B2 patent drawing
  • US11669526B2 patent drawing
  • US11669526B2 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.