Compressed Kernel Image Boot Loading via Multi-Core Block Decompression

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing method of loading a kernel image file is excessively time-consuming, leading to prolonged startup times for electronic devices and affecting user experience.

Innovation Solution

A method utilizing a multi-core processor with a first core group for data block retrieval and checking, and a second core group for parallel decompression, where data blocks are obtained, checked, and decompressed in parallel to speed up the processing and reduce loading time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If a single core reads and checks the entire compressed kernel image file sequentially, then the loading process is simple to implement, but the loading time becomes excessively long

Engineering Contradiction:
Improvekernel image file loading timeVSAvoidprocessing architecture complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent divides the compressed kernel image file into multiple data blocks and assigns different cores to process different blocks simultaneously. The kernel image is segmented into chunks that can be read, checked, and decompressed in parallel by multiple cores, dramatically reducing the overall loading time while maintaining manageable complexity through structured division of labor

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary checking of data blocks as they are being read from storage, before complete file loading. The first core group checks data blocks immediately upon reading them, and valid blocks are queued for decompression. This preliminary validation prevents wasted decompression operations on corrupted data and enables parallel processing to begin earlier

Inventive Principle:
Principle #10Preliminary action

2Reliability

If the entire kernel image file is read and checked before decompression, then data integrity is ensured, but the startup time is prolonged

Engineering Contradiction:
Improvedata integrityVSAvoidstartup time
Core Design Contradiction:
ReliabilityVSDuration of action of moving object

Solution Approach 1:

The patent performs preliminary checking of data blocks immediately as they are read from non-volatile storage, before the entire file is loaded. The first core group checks each data block upon reading it, and valid blocks are immediately queued for decompression by the second core group. This preliminary validation ensures data integrity while enabling parallel decompression to begin without waiting for complete file verification

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent maintains continuous useful action by overlapping the checking operation with the decompression operation. While the first core group continues checking incoming data blocks, the second core group simultaneously decompresses previously validated blocks. This continuous parallel processing eliminates idle time and keeps all cores productively engaged throughout the loading process

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS11074083B2Fast loading kernel image file for booting
Publication Date: 2021.07.27 HUAWEI TECH CO LTD
  • US11074083B2 patent drawing
  • US11074083B2 patent drawing
  • US11074083B2 patent drawing

AI summary

Example methods and apparatus for fast loading a kernel image file are provided. A multi-core processor includes a first core group and a second core group. The second core group includes a plurality of cores. In one example method, the first core group obtains a plurality of data blocks in a compressed kernel image file from a nonvolatile storage, and checks the currently obtained current data block. The current data block is put into a decompression queue in response to determining that the data block is correct. At least two of the plurality of cores in the second core group obtain the data block from the decompression queue, and after obtaining a plurality of data blocks, decompress the plurality of obtained data blocks into a memory in parallel to obtain the kernel image file.