Cache Flush via Overflow Indicator and Dirty Bit Check

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Non-coherent cache systems face performance overhead due to cache invalidation and flushing operations, which introduce cache misses and require significant time, especially in shared memory multiprocessor systems where stale data needs to be managed.

Innovation Solution

Implementing specialized circuitry in caches for gang invalidation and automatic or 'smart' flush operations, where only relevant cache entries are invalidated or flushed, reducing unnecessary operations and optimizing performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If cache invalidation and flushing operations are performed on all cache entries, then cache coherency is maintained, but performance overhead increases due to cache misses and time consumption

Engineering Contradiction:
Improvecache coherencyVSAvoidperformance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the cache invalidation and flushing process by dividing cache entries into groups based on their dirty bit status. Only entries with dirty bits set are selected for invalidation or flushing operations, rather than processing all cache entries uniformly. This segmentation reduces the scope of operations and minimizes performance overhead while maintaining cache coherency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial action by performing invalidation or flushing operations on only a subset of cache entries that require it (those with dirty bits set), rather than executing full operations on all cache entries. This partial approach eliminates unnecessary operations on clean entries, reducing cache misses and time consumption while still achieving the required cache coherency.

Inventive Principle:
Principle #16Partial or excessive action

2Reliability

If cache invalidation operations are performed frequently to maintain coherency, then stale data is prevented, but cache performance deteriorates due to increased cache misses

Engineering Contradiction:
Improvedata freshnessVSAvoidcache miss time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent uses preliminary action by checking and setting dirty bits at the time of cache write operations. This preliminary marking of dirty entries allows the system to identify which cache entries need invalidation or flushing before coherency operations are triggered. By having this information prepared in advance, the system can perform targeted operations only on necessary entries, avoiding unnecessary cache misses and time loss.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies partial action by invalidating or flushing only the specific cache entries that have dirty bits set, rather than performing operations on all cache entries. This selective approach ensures that data freshness is maintained for modified entries while avoiding unnecessary operations on clean entries, thereby reducing cache misses and the time associated with them.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If gang invalidation and smart flush operations are implemented, then performance overhead is reduced, but device complexity increases due to specialized circuitry

Engineering Contradiction:
ImproveperformanceVSAvoidcache circuitry
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies self-service by implementing automatic detection and handling of dirty bits within the cache system itself. The specialized circuitry automatically identifies which cache entries have dirty bits set and performs invalidation or flushing operations on those entries without requiring external intervention or complex control logic. This self-service approach simplifies the overall system architecture while maintaining performance benefits.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent uses an intermediary approach by introducing a relatively simple dirty bit mechanism as a mediator between cache write operations and invalidation/flushing operations. The dirty bit serves as a lightweight indicator that enables the cache system to identify modified entries without requiring complex tracking or management circuitry. This intermediary mechanism reduces the complexity of gang invalidation and smart flush operations while maintaining their performance advantages.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11210224B2Flushing entries in a cache by first checking an overflow indicator to determine whether to check a dirty bit of each cache entry
Publication Date: 2021.12.28 ORACLE INT CORP
  • US11210224B2 patent drawing
  • US11210224B2 patent drawing
  • US11210224B2 patent drawing

AI summary

Techniques are provided for performing a flush operation in a non-coherent cache. In response to determining to perform a flush operation, a cache unit flushes certain data items. The flush operation may be performed in response to a lapse of a particular amount of time, such as a number of cycles, or an explicit flush instruction that does not indicate any cache entry or data item. The cache unit may store change data that indicates which entry stores a data item that has been modified but not yet been flushed. The change data may be used to identify the entries that need to be flushed. In one technique, a dirty cache entry that is associated with one or more relatively recent changes is not flushed during a flush operation.