Compressed Page Decompression Blocks for Faster Demand Paging
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Demand paging in computer systems faces a performance bottleneck due to decompression time delays, as pages are received faster than they can be decompressed, and efficient compression algorithms degrade as block size decreases, leading to fewer lookback opportunities and reduced compression ratios.
Innovation Solution
The method involves determining decompression block boundaries, generating metadata for decompression block boundaries, and executing code instructions while decompressing compressed pages, allowing for parallel execution and decompression, and utilizing lookbacks across multiple decompression blocks to improve efficiency and compression ratios.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Use of energy by moving object
If pages are compressed prior to copying to main memory, then resource usage (data bus bandwidth and power) is reduced, but decompression time increases and creates a performance bottleneck
Solution Approach 1:
The patent divides a compressed page into multiple decompression blocks that can be independently decompressed. When a page fault occurs, only the specific decompression block containing the requested instruction or data needs to be decompressed, rather than decompressing the entire page. This segmentation reduces the effective decompression time for accessed content while maintaining compression benefits for storage and transfer.
Solution Approach 2:
The patent performs preliminary decomposition of compressed pages into separate decompression blocks during the compression phase, storing metadata that identifies block boundaries. This preliminary action enables rapid selective decompression of only needed blocks later, avoiding full page decompression and reducing the time bottleneck while preserving energy benefits of compression.
2Loss of time
If compression block size is reduced to improve decompression selectivity, then decompression time for specific blocks is reduced, but compression ratio degrades due to fewer lookback opportunities
Solution Approach 1:
The patent merges multiple compression blocks into a single compressed page structure, where compression algorithms can perform lookbacks across block boundaries within the same page. The page-level compression maintains high compression ratios by utilizing patterns across what would otherwise be separate blocks, while the page is later divided into smaller decompression blocks for selective decompression, thus resolving the contradiction between block size and compression ratio.
Solution Approach 2:
The patent introduces a hierarchical dimension to the compression structure, operating at two levels: compression occurs at the page level (larger scope enabling better compression ratios through cross-block lookbacks), while decompression occurs at the block level (finer granularity enabling selective decompression). This dimensional separation allows both high compression ratios and fast selective decompression to coexist.
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 of 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 being situated between an end of the compressed page and 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, starting at the end of the compressed page and terminating the decompression of the compressed page upon filling all blocks with decompressed blocks, faults, or exception code. The remaining decompression blocks of the compressed page may be decompressed after or concurrently with the execution of the requested code instruction.


