Parallel Decompression of RLE-Dependent Executable Files

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing decompression methods for compressed executable files, such as those using the Gzip algorithm, are serial and inefficient, leading to noticeable delays in launching applications on mobile devices due to their inability to handle data dependencies effectively, making parallel decompression seem impossible.

Innovation Solution

A system and method utilizing multiple processor cores to partially decompress and sequence run length encoded data across multiple blocks in parallel, with distributor, decompression, and aggregation and merge processors working in pipelined stages to identify block boundaries, decompress data, and reconstruct the uncompressed file efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If serial decompression is used to ensure data dependency handling, then data integrity is maintained, but decompression time increases significantly

Engineering Contradiction:
Improvedata integrityVSAvoiddecompression time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The compressed file is divided into multiple blocks, with each block containing self-contained decompression data. The system identifies block boundaries and processes each block independently using separate processor cores, eliminating data dependencies between blocks while maintaining overall data integrity through sequential block reconstruction

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary identification of block boundaries and metadata extraction before parallel processing begins. By pre-processing the compressed file to mark block boundaries and extract necessary metadata, the system enables subsequent parallel decompression operations to proceed without inter-block dependencies

Inventive Principle:
Principle #10Preliminary action

2Productivity

If parallel processing is implemented to reduce decompression time, then productivity improves, but handling data dependencies becomes difficult

Engineering Contradiction:
Improvedecompression speedVSAvoiddata dependency management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The compressed file is divided into multiple blocks, with each block containing self-contained decompression data. The system identifies block boundaries and processes each block independently using separate processor cores, eliminating data dependencies between blocks while maintaining overall data integrity through sequential block reconstruction

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system introduces metadata as an intermediary structure that contains block boundary information and decomposition instructions. This metadata layer mediates between the compressed data blocks and the parallel processing cores, enabling independent processing while ensuring correct reassembly of the final output

Inventive Principle:
Principle #24Intermediary (Mediator)

3Quantity of substance

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

Engineering Contradiction:
Improvestorage capacityVSAvoidapplication launch time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The compressed file is divided into multiple blocks, with each block containing self-contained decompression data. The system identifies block boundaries and processes each block independently using separate processor cores, eliminating data dependencies between blocks while maintaining overall data integrity through sequential block reconstruction

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary identification of block boundaries and metadata extraction before parallel processing begins. By pre-processing the compressed file to mark block boundaries and extract necessary metadata, the system enables subsequent parallel decompression operations to proceed without inter-block dependencies

Inventive Principle:
Principle #10Preliminary action

Data Source

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