Compressed Page Decompression Blocks for Faster Demand Paging

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvepower consumptionVSAvoiddecompression time
Core Design Contradiction:
Use of energy by moving objectVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvedecompression timeVSAvoidcompression ratio
Core Design Contradiction:
Loss of timeVSLoss of substance

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.

Inventive Principle:
Principle #5Merging (Combining)

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.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS9600420B2Reducing decompression time without impacting compression ratio
Publication Date: 2017.03.21 QUALCOMM INC
  • US9600420B2 patent drawing
  • US9600420B2 patent drawing
  • US9600420B2 patent drawing

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.