Special Tracking Pool for Core L1 Cache Invalidate Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computing environments with multiple processors sharing caches, cross-core invalidation mechanisms introduce latency in cache accesses due to the need for explicit responses, which can hinder performance, especially when the local cache is processing numerous invalidate requests.

Innovation Solution

Implementing a special tracking pool enhancement for core local cache (L1) address invalidates, where a separate allocation in the queue is reserved for read-only invalidate requests, allowing performance-sensitive hardware controllers to proceed without waiting for a response from the local cache, thereby reducing latency and improving throughput.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If cross-core invalidation mechanisms are used to ensure cache coherency, then data consistency is improved, but cache access latency increases

Engineering Contradiction:
Improvecache data consistencyVSAvoidcache access latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The invalidate queue is segmented into two separate allocations: a first allocation for general invalidate requests that require responses, and a second allocation (special pool) for read-only invalidate requests that do not require responses. This segmentation allows performance-sensitive controllers to use the second allocation and proceed without waiting for responses, thereby reducing latency while maintaining data consistency through the first allocation.

Inventive Principle:
Principle #1Segmentation

2Reliability

If the local cache processes numerous invalidate requests, then cache coherency is maintained, but processing throughput decreases

Engineering Contradiction:
Improvecache coherencyVSAvoidprocessing throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The invalidate queue is divided into two separate allocations: a first allocation for general invalidate requests and a second allocation (special pool) exclusively for read-only invalidate requests. This segmentation allows the cache to process read-only invalidates asynchronously without blocking other operations, thereby maintaining cache coherency while improving overall processing throughput.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

By allowing performance-sensitive hardware controllers to submit read-only invalidate requests to the second allocation and immediately proceed with subsequent operations, the system maintains continuous useful action without interruption. The invalidate requests are processed in the background, ensuring cache coherency is maintained while preventing stalls in the processing pipeline.

Inventive Principle:
Principle #20Continuity of useful action

3Reliability

If hardware controllers wait for invalidate request responses, then data accuracy is ensured, but controller availability decreases

Engineering Contradiction:
Improvedata accuracyVSAvoidcontroller availability
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The invalidate queue is segmented into two allocations: the first allocation handles invalidate requests that require responses to ensure data accuracy, while the second allocation (special pool) handles read-only invalidate requests that do not require responses. This segmentation allows controllers using the second allocation to immediately become available for subsequent operations while data accuracy is maintained through the response-required first allocation.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20230281132A1Special tracking pool enhancement for core local cache address invalidates
Publication Date: 2023.09.07 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US20230281132A1 patent drawing
  • US20230281132A1 patent drawing
  • US20230281132A1 patent drawing

AI summary

Embodiments are for special tracking pool enhancement for core L1 address invalidates. An invalidate request is designated to fill an entry in a queue in a local cache of a processor core, the queue including a first allocation associated with processing any type of invalidate request and a second allocation associated with processing an invalidate request not requiring a response in order for a controller to be made available, the entry being in the second allocation. Responsive to designating the invalidate request to fill the entry in the queue in the local cache, a state of the controller that made the invalidate request is changed to available based at least in part on the entry being in the second allocation.