Aggregating Cache Directory Victimizations to Reduce Bandwidth

Solution Overview

Problem

Current computing systems face inefficiencies in updating directory information during cache line eviction, particularly in multi-core designs, leading to increased area and power consumption due to explicit write-back operations for maintaining cache coherence.

Innovation Solution

A method and apparatus that aggregate directory updates for cache line eviction requests, utilizing a memory with parallel-accessible partitions and First-In First-Out (FIFO) memories to process update requests concurrently, reducing the impact on area and power consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If explicit write-back operations are performed for each cache line eviction to maintain cache coherence, then cache coherence is maintained, but area and power consumption increase

Engineering Contradiction:
Core Design Contradiction:
ReliabilityVSUse of energy by stationary object

Solution Approach 1:

The patent combines multiple directory update operations into a single aggregated update operation. When multiple cache lines are evicted, instead of performing separate write-back operations for each, the system aggregates these updates and performs them together, reducing the total number of operations and thereby lowering power consumption while maintaining cache coherence.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The system performs preliminary aggregation of directory update requests before executing the actual write-back operations. By collecting and consolidating update requests in advance, the system prepares a batch of operations that can be executed efficiently, reducing the overhead and power consumption associated with individual update operations.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If explicit write-back operations are performed for each cache line eviction to maintain cache coherence, then cache coherence is maintained, but area consumption increases

Engineering Contradiction:
Core Design Contradiction:
ReliabilityVSArea of stationary object

Solution Approach 1:

The patent merges multiple directory update operations into a single aggregated operation. By combining multiple update requests into one consolidated update, the system reduces the total number of write-back operations required, thereby reducing the area consumption associated with implementing multiple separate update mechanisms.

Inventive Principle:
Principle #5Merging (Combining)

3Reliability

If directory updates are processed sequentially for each cache line eviction, then correctness is ensured, but processing efficiency decreases

Engineering Contradiction:
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary aggregation of directory update requests before executing them. By collecting update requests in advance and consolidating them into a batch operation, the system maintains correctness through proper sequencing while significantly improving processing efficiency by reducing the total number of individual update operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements continuous aggregation of update requests, maintaining a running collection of pending updates rather than processing them immediately one-by-one. This continuous accumulation allows the system to process updates in larger batches, improving overall processing efficiency while ensuring correctness through proper batch execution.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10387314B2Reducing cache coherence directory bandwidth by aggregating victimization requests
Publication Date: 2019.08.20
  • US10387314B2 patent drawing
  • US10387314B2 patent drawing
  • US10387314B2 patent drawing

AI summary

A directory structure that may allow concurrent processing of write-back and clean victimization requests is disclosed. The directory structure may include a memory configured to store a plurality of entries, where each entry may include information indicative of a status of a respective entry in a cache memory. Update requests for the entries in the memory may be received and stored. A subset of previously stored update requests may be selected. Each update request of the subset of the previously stored update requests may then be processed concurrently.