Hardware Decompressor for Transparent Memory Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software and hardware memory compression and deduplication techniques suffer from high energy consumption, increased execution costs, and inefficiencies due to software involvement and metadata overhead, particularly when handling cache misses and decompressing memory blocks.

Innovation Solution

A hardware decompressor is introduced between the processing unit and physical memory, capable of determining if data is in a compressed block and either bypassing or decompressing it without software intervention, using unused page table bits for metadata storage and selectively switching between full and partial decompression modes based on performance parameters.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If software-based memory compression and decompression is used, then memory space can be reduced, but energy consumption increases and execution performance deteriorates due to software overhead

Engineering Contradiction:
Improvememory spaceVSAvoidenergy consumption
Core Design Contradiction:
Quantity of substanceVSUse of energy by moving object

Solution Approach 1:

A hardware decompressor intermediary device is introduced between the processing unit and physical memory. This hardware component automatically handles decompression of compressed memory blocks without software intervention, eliminating the energy-intensive software decompression process while maintaining memory space efficiency. The hardware decompressor intercepts memory access requests, detects compressed blocks, and transparently decompresses them before returning data to the processing unit.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The hardware decompressor operates autonomously to decompress memory blocks without requiring software assistance. It self-manages the entire decompression workflow including detecting compressed blocks via page table bits, reading compressed data from memory, performing decompression, and returning results. This self-service capability eliminates software overhead and reduces energy consumption significantly.

Inventive Principle:
Principle #25Self-service

2Quantity of substance

If software-based memory decompression is used, then compressed memory can be accessed, but execution time increases due to software overhead and kernel page fault handlers

Engineering Contradiction:
Improvememory spaceVSAvoidexecution time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The hardware decompressor acts as an intermediary that intercepts memory access requests before they reach the software layer. When a compressed block is detected, the hardware decompressor immediately begins decompression without triggering software page fault handlers or kernel routines. This parallel hardware processing significantly reduces execution time compared to sequential software-based decompression.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces the software-based decompression mechanism with a hardware-based decompression engine. This substitution transforms the decompression process from a software-executed sequence of instructions into a dedicated hardware circuit that performs decompression operations in parallel with memory access, dramatically reducing execution time and eliminating software overhead.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Quantity of substance

If entire compressed memory blocks are decompressed and written back to RAM, then data can be accessed, but memory bus contention increases and energy consumption rises

Engineering Contradiction:
Improvememory spaceVSAvoidenergy consumption
Core Design Contradiction:
Quantity of substanceVSLoss of energy

Solution Approach 1:

The hardware decompressor implements partial decompression by reading only the necessary portion of compressed memory blocks from physical memory and decompressing only that portion. Instead of decompressing entire blocks unnecessarily, the hardware decompressor determines the exact data range needed, reads minimal compressed data, and decompresses only that amount. This partial action approach reduces memory bus traffic and energy consumption while still satisfying the processing unit's data access requirements.

Inventive Principle:
Principle #16Partial or excessive action

4Use of energy by moving object

If hardware decompressor is introduced, then software involvement is reduced and energy consumption decreases, but device complexity increases

Engineering Contradiction:
Improveenergy consumptionVSAvoiddevice complexity
Core Design Contradiction:
Use of energy by moving objectVSDevice complexity

Solution Approach 1:

The hardware decompressor is designed with multi-functionality to justify its addition to the memory subsystem. It performs multiple tasks including intercepting memory access requests, detecting compressed blocks through page table bit examination, reading compressed data from physical memory, performing decompression operations, and returning decompressed data to the processing unit. This consolidation of multiple functions into a single hardware component achieves energy efficiency without proportionally increasing overall system complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The hardware decompressor is positioned as an intermediary component in the memory access path between the processing unit and physical memory. This strategic placement allows it to transparently handle decompression operations without requiring major system architectural changes. The intermediary design integrates smoothly with existing memory management structures including page tables and memory controllers, minimizing the complexity increase while achieving significant energy savings.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10203901B2Transparent hardware-assisted memory decompression
Publication Date: 2019.02.12 GOOGLE LLC
  • US10203901B2 patent drawing
  • US10203901B2 patent drawing
  • US10203901B2 patent drawing

AI summary

Provided are methods and systems for memory decompression using a hardware decompressor that minimizes or eliminates the involvement of software. Custom decompression hardware is added to the memory subsystem, where the decompression hardware handles read accesses caused by, for example, cache misses or requests from devices to compressed memory blocks, by reading a compressed block, decompressing it into an internal buffer, and returning the requested portion of the block. The custom hardware is designed to determine if the block is compressed, and determine the parameters of compression, by checking unused high bits of the physical address of the access. This allows compression to be implemented without additional metadata, because the necessary metadata can be stored in unused bits in the existing page table structures.