Compressor-Decompressor Unit at Memory Interface for Distributed Cache

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computing systems face challenges in optimizing memory bandwidth and power usage while minimizing processing time, particularly when handling compressed data in a distributed cache hierarchy, where variable length compression and decompression lead to disjointed data pieces and increased power and area consumption.

Innovation Solution

Implementing a compressor-decompressor unit at the memory interface to manage and track uncompressed data, allowing for efficient data allocation and compression during LOAD and STORE operations, with features like back-filling and snooping to consolidate complementary data pieces, thereby reducing power usage and maintaining data integrity across a distributed cache fabric.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If compression elements are included in processing blocks, then data compression capability is improved, but power consumption and area increase

Engineering Contradiction:
Improvedata compression capabilityVSAvoidpower consumption
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

The patent extracts the compression/decompression functionality from the processing blocks and relocates it to the memory interface. This allows compression capability to be maintained while reducing power consumption and area in the processing blocks, as the compression engine is now shared across multiple processing elements through the memory interface location.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

By placing the compression engine at the memory interface, the same compression resource serves multiple processing elements and handles both compression and decompression operations. This universal approach eliminates the need for dedicated compression elements in each processing block, thereby reducing overall power consumption and area while maintaining compression capability.

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

2Adaptability or versatility

If compression elements are included in processing blocks, then data compression capability is improved, but device area increases

Engineering Contradiction:
Improvedata compression capabilityVSAvoidprocessing block area
Core Design Contradiction:
Adaptability or versatilityVSArea of moving object

Solution Approach 1:

The compression functionality is extracted from individual processing blocks and consolidated at the memory interface. This extraction reduces the area required in each processing block while maintaining the system's overall compression capability through the shared memory interface compression engine.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent merges the compression functionality across multiple processing elements by placing a single compression engine at the memory interface. This consolidation eliminates redundant compression hardware in each processing block, thereby reducing total device area while preserving compression capability through shared resources.

Inventive Principle:
Principle #5Merging (Combining)

3Productivity

If compressed data is stored in memory, then memory bandwidth utilization is improved, but data management complexity increases

Engineering Contradiction:
Improvememory bandwidth utilizationVSAvoiddata management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The memory interface acts as an intermediary that automatically handles the complexity of compressed data management. It performs compression/decompression operations and manages data format conversions between compressed storage in memory and uncompressed data in the cache fabric, thereby simplifying the data management burden on processing elements while maintaining improved memory bandwidth utilization.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements self-service by having the memory interface automatically perform compression and decompression operations without requiring complex data management logic in the processing elements. The compression engine at the memory interface autonomously handles data format conversions, reducing the complexity of data management across the system while preserving memory bandwidth efficiency.

Inventive Principle:
Principle #25Self-service

4Productivity

If variable length compression is used, then data compression efficiency is improved, but cache fabric data tracking complexity increases

Engineering Contradiction:
Improvedata compression efficiencyVSAvoidcache fabric data tracking complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The memory interface serves as an intermediary that manages the complexity of tracking variable length compressed data. It handles the conversion between variable length compressed data in memory and fixed length cache lines in the cache fabric, automatically managing the tracking requirements without burdening the cache fabric with complex variable length data handling logic.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9612833B2Handling compressed data over distributed cache fabric
Publication Date: 2017.04.04 INTEL CORP
  • US9612833B2 patent drawing
  • US9612833B2 patent drawing
  • US9612833B2 patent drawing

AI summary

Technologies are presented that optimize data processing cost and efficiency. A computing system may comprise at least one processing element; a memory communicatively coupled to the at least one processing element; at least one compressor-decompressor communicatively coupled to the at least one processing element, and communicatively coupled to the memory through a memory interface; and a cache fabric comprising a plurality of distributed cache banks communicatively coupled to each other, to the at least one processing element, and to the at least one compressor-decompressor via a plurality of nodes. In this system, the at least one compressor-decompressor and the cache fabric are configured to manage and track uncompressed data of variable length for data requests by the processing element(s), allowing usage of compressed data in the memory.