Dual-Memory Decompression Buffering to Reduce Read Port Contention
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current computing systems face challenges in efficiently decompressing data due to exponential data growth, leading to increased computational demands and latency, as they store data in compressed form and require decompression before processing, which drives up power consumption and introduces data retrieval latency.
Innovation Solution
A decompression system with a dual-port memory configuration, including a dictionary memory with one read and one write port, and an uncompressed mirror write buffer with separate read and write ports, allowing concurrent back-reference and uncompressed data readout operations, reducing the number of ports and latency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If data is stored in compressed form to reduce storage capacity requirements, then storage efficiency is improved, but decompression latency and computational overhead increase
Solution Approach 1:
The decompression system performs preliminary actions by pre-fetching and decompressing data blocks before they are actually needed for processing. The controller predicts which data blocks will be needed and initiates decompression in advance, storing results in buffer memory. This eliminates wait time during actual processing operations.
Solution Approach 2:
The patent introduces a time dimension to the storage-retrieval operation by implementing asynchronous decompression. Multiple data blocks are decompressed at different times in parallel, transforming a sequential single-dimension operation into a multi-dimensional time-sliced process that improves throughput.
2Ease of operation
If decompression is performed before data processing, then data usability is improved, but power consumption increases
Solution Approach 1:
The system performs partial decompression by only decompressing the portion of compressed data that is currently needed for processing, rather than decompressing entire data sets. The buffer memory holds only the necessary decompressed portions, reducing unnecessary computational energy expenditure.
3Device complexity
If a single-port memory is used for dictionary storage, then device complexity is reduced, but read port contention and latency increase
Solution Approach 1:
The memory system is segmented into multiple functional units: dictionary memory for storing compression dictionaries, buffer memory for holding decompressed data, and separate read/write ports for each function. This segmentation allows simultaneous dictionary access and data buffering without port contention.
Solution Approach 2:
A buffer memory acts as an intermediary between the compressed data storage and the processing units. It decouples the read operations from the dictionary memory, allowing the dictionary to be accessed at full speed while the buffer handles data movement and temporary storage.
4Quantity of substance
If decompression is performed in-place, then memory usage is optimized, but data integrity and reliability decrease
Solution Approach 1:
The decompressed data is extracted from the compressed storage and placed into a separate buffer memory region. This physical separation ensures that original compressed data remains unchanged and intact, while decompressed data can be processed independently without risking corruption of the source.
Data Source
AI summary
A decompression system includes a first memory including a first write port configured to receive decompressed data from a decompressor, and a first read port configured to receive a back-reference read request, the first memory being configured to output the decompressed data to the decompressor in response to receiving the back-reference read request at the first read port, and a second memory including a second write port electrically coupled to the first write port and configured to receive the decompressed data, the second memory being configured to buffer the decompressed data for retrieval by a receiver.


