Demand Paging Decompression Blocks for Faster Instruction Access
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Decompression time of compressed pages in demand paging systems creates a performance bottleneck, as pages are received faster than they can be decompressed, leading to delays in executing instructions or data, especially when compression algorithms independently compress small blocks, reducing lookback opportunities and degrading compression ratios.
Innovation Solution
The method involves determining decompression blocks within a compressed page, generating metadata for block boundaries, and terminating decompression when a requested code instruction is accessed, allowing for partial decompression and execution of instructions before completing the full decompression, and utilizing lookbacks across multiple blocks for improved efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If pages are compressed prior to copying to main memory, then the size of the page is reduced and resources required to load the page are reduced, but the decompression time creates a performance bottleneck
Solution Approach 1:
The patent divides a compressed page into multiple decompression blocks that can be decompressed independently and in parallel. The compression engine processes the entire page as one unit, but the decompression engine splits it into blocks that can be decompressed concurrently across multiple processor cores, reducing total decompression time while maintaining compression efficiency.
Solution Approach 2:
The patent performs preliminary decomposition of the compressed page into multiple decompression blocks during the compression phase, storing metadata about block boundaries. This preliminary action enables parallel decompression to occur efficiently during execution, as the structure is already prepared for concurrent processing.
2Device complexity
If compression algorithms independently compress blocks of data, then the compression process is simplified, but lookback opportunities are reduced and compression ratio degrades
Solution Approach 1:
The patent segments the compressed page into multiple blocks that are independently compressed, which simplifies the compression process. However, it compensates for the reduced lookback opportunities by using metadata to track block boundaries and enabling parallel processing, maintaining acceptable compression ratios while improving decompression performance.
3Reliability
If the entire compressed page is decompressed, then all instructions and data are available for use, but decompression work is done for pages that won't be used and delays the use of other instructions and data
Solution Approach 1:
The patent extracts and decompresses only the specific decompression block containing the requested instruction or data, rather than decompressing the entire page. The metadata system enables the decompression engine to locate and process only the necessary block, eliminating wasted decompression work and enabling faster access to required information.
Solution Approach 2:
The patent applies partial action by decompressing only the necessary portion (specific block) of the compressed page rather than the entire page. This selective approach reduces unnecessary decompression work while ensuring that the required instructions and data are made available for immediate use.
Data Source
AI summary
Aspects include computing devices, systems, and methods for implementing executing decompression of a compressed page. A computing device may determine a decompression block belonging to a compressed page that contains a code instruction requested in a memory access request. Decompression blocks, other than the decompression block containing the requested code instruction, may be selected for decompression based on their locality with respect to the decompression block containing the requested code instruction. Decompression blocks not identified for decompression may be substituted for a fault or exception code. The computing device may decompress decompression blocks identified for decompression, terminating the decompression of the compressed page upon filling all blocks with decompressed blocks, faults, or exception code. The remaining decompression blocks belonging to the compressed page may be decompressed after or concurrently with the execution of the requested code instruction.


