Parallel String Copy Engines for Dependency-Aware Decompression
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The inefficiency of using software for decompressing compressed data in electronic devices due to the large number of decompression operations and memory accesses required, which leads to increased power consumption and reduced performance.
Innovation Solution
A hardware-based decompression subsystem with a command processor and string copy engines that process literal write and string copy commands in parallel, utilizing a scratch array and history buffer to efficiently recreate original data from compressed data, while managing dependencies between commands.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If software is used for decompressing compressed data, then the decompression operations can be performed using a general-purpose processor, but the large number of decompression operations and memory accesses leads to inefficient performance and increased power consumption
Solution Approach 1:
The patent replaces the software-based decompression mechanism (which uses a general-purpose processor executing instructions) with a hardware-based decompression engine that directly performs decompression operations through dedicated circuitry. This substitution eliminates the overhead of software interpretation and memory accesses, providing significant performance improvement while maintaining the same decompression functionality.
2Adaptability or versatility
If software is used for decompressing compressed data, then the system can handle various compression formats, but the large number of memory accesses required reduces performance
Solution Approach 1:
The decompression engine is divided into multiple parallel string copy engines (first string copy engine, second string copy engine, etc.) that can simultaneously process different portions of the decompression task. This segmentation allows the system to handle multiple memory operations in parallel, reducing the total time required for decompression while maintaining versatility through configurable engine parameters.
3Productivity
If multiple string copy engines are used in parallel, then decompression performance is improved, but dependencies between commands must be managed
Solution Approach 1:
The command processor includes a dependency checking mechanism that monitors the execution state of multiple string copy engines and detects dependencies between commands. When a dependency is detected (e.g., when one engine needs data that another engine has not yet produced), the system provides feedback to stall the dependent engine until the data becomes available. This feedback loop enables parallel execution while correctly handling command dependencies.
Data Source
AI summary
An electronic device for decompressing compressed data to recreate original data includes a first string copy engine and a second string copy engine. The first string copy engine processes a first string copy command by acquiring a first string from recreated original data and appending the first string to the recreated original data. The second string copy engine processes a second string copy command by checking the second string copy command for a dependency on the first string and, when the dependency is found, stalling further processing of the second string copy command until the first string copy engine has appended a corresponding portion of the first string to the recreated original data. The second string copy engine processes the second string copy command by acquiring a second string from the recreated original data and appending the second string to the recreated original data.


