Cache Block Grouping by Data Stream for Multi-Stream Invalidation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional cache replacement policies are inadequate for managing decompression caches handling multiple data streams, often leading to inefficient use of space and 'round robin' scenarios where no data streams can be maintained.

Innovation Solution

A history-based cache replacement policy that groups cache blocks by data streams, invalidates inactive or excessive data stream blocks, and prioritizes maintaining recent data, using techniques like invalidating inactive streams, trimming blocks beyond a sliding window, and buffering incoming data when the cache is full.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conventional cache replacement policies (LRU, LFU, Random) are used, then the cache management is simple and based on system addresses, but the policies are insufficient for handling decompression caches with multiple data streams and lead to inefficient space utilization

Engineering Contradiction:
Improvecache replacement policy adaptabilityVSAvoidcache management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The cache is segmented into multiple independent caches, with each cache dedicated to storing blocks from a specific data stream. This segmentation allows each cache to be managed independently according to its own data stream characteristics, improving adaptability for decompression operations while maintaining manageable complexity through modular organization.

Inventive Principle:
Principle #1Segmentation

2Reliability

If the cache stores multiple data stream histories in their entirety, then the complete history is preserved for accurate decompression, but the finite cache size cannot accommodate all active data streams

Engineering Contradiction:
Improvedecompression accuracyVSAvoidcache capacity
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

Instead of storing the entire history for each data stream, the system stores only a portion of the most recent data blocks needed for decompression. This partial action approach provides sufficient decompression accuracy for active streams while accommodating multiple streams within the finite cache capacity.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system dynamically adjusts the number of blocks stored per data stream based on activity levels. For inactive data streams, fewer blocks are retained, while active streams maintain their required history length. This parameter adjustment allows the cache to adapt to changing workload conditions and maximize the number of supported streams.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If the cache maintains a fixed number of blocks per data stream, then the cache structure is simple, but inactive data streams waste cache space that could be used for active streams

Engineering Contradiction:
Improvecache utilization efficiencyVSAvoidcache replacement mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The cache system dynamically adjusts the number of blocks allocated to each data stream based on real-time activity detection. When a data stream becomes inactive, its cache blocks are reduced or released for reuse by active streams. This dynamic adaptation maximizes cache utilization efficiency while implementing a replacement mechanism that monitors stream activity and adjusts allocation accordingly.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8918588B2Maintaining a cache of blocks from a plurality of data streams
Publication Date: 2014.12.23 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8918588B2 patent drawing
  • US8918588B2 patent drawing
  • US8918588B2 patent drawing

AI summary

Techniques for replacing one or more blocks in a cache, the one or more blocks being associated with a plurality of data streams, are provided. The one or more blocks in the cache are grouped into one or more groups, each corresponding to one of the plurality of data streams. One or more incoming blocks are received. To free space, the one or more blocks of the one or more groups in the cache are invalidated in accordance with at least one of an inactivity of a given data stream corresponding to the one or more groups and a length of the one or more groups. The one or more incoming blocks are stored in the cache. A number of data streams maintained within the cache is maximized.