Cache Controller Threshold-Based Flush Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Information handling systems with write-back caches face challenges in ensuring data integrity during power loss events due to insufficient time and energy to flush all cache contents to persistent memory, leading to software overhead and performance impacts.

Innovation Solution

A method and system for controlling cache flush size by setting a threshold value for modified cache lines, incrementing a count upon writes that transition cache lines to a modified state, and flushing cache lines to persistent memory when the threshold is exceeded, thereby reducing the amount of data to be flushed and minimizing performance impact.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If software periodically issues cache-line-level flushes to minimize data loss, then data integrity is improved, but software overhead increases and performance deteriorates

Engineering Contradiction:
Improvedata integrityVSAvoidperformance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The cache controller automatically monitors modified cache lines and triggers flushes when thresholds are exceeded, eliminating the need for software to periodically issue flush commands. This self-managing mechanism reduces software overhead while maintaining data integrity through automatic threshold-based flushing.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system implements feedback by monitoring the number of modified cache lines and comparing against predefined thresholds. When the count exceeds the threshold, the cache controller automatically initiates a flush operation, creating a closed-loop control system that balances data integrity with performance optimization.

Inventive Principle:
Principle #23Feedback

2Reliability

If all modified cache lines are flushed to persistent memory, then data integrity is improved, but energy consumption and flushing time increase

Engineering Contradiction:
Improvedata integrityVSAvoidenergy for cache flushing
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

Instead of flushing all modified cache lines, the system selectively flushes only those that exceed predefined thresholds. This partial action approach reduces the volume of data transferred to persistent memory, thereby lowering energy consumption and flushing time while still maintaining adequate data integrity protection.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system changes the parameter of cache flush operation by introducing threshold-based selective flushing. By adjusting threshold values, the system can optimize the balance between data integrity and energy consumption, flushing only when necessary rather than continuously or always.

Inventive Principle:
Principle #35Parameter changes

3Loss of time

If cache size is reduced to minimize flush operations, then flushing time is reduced, but cache performance and data storage capacity deteriorate

Engineering Contradiction:
Improveflushing timeVSAvoidcache performance
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The system performs preliminary monitoring of modified cache line counts and proactively triggers flush operations before the cache becomes fully populated with modified lines. This preliminary action prevents cache overflow and reduces the need for large-scale flush operations, maintaining both cache performance and acceptable flushing times.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The cache flushing mechanism is made dynamic through threshold-based triggering rather than static size-based flushing. The system adapts flush operations based on the actual number of modified lines, allowing the cache to maintain larger sizes for performance while dynamically adjusting flush behavior to control flushing time.

Inventive Principle:
Principle #15Dynamics

4Productivity

If write-back cache is used instead of write-through cache, then performance is improved, but data loss risk during power faults increases

Engineering Contradiction:
ImproveperformanceVSAvoiddata loss risk
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system provides beforehand cushioning by maintaining threshold-based monitoring and automatic flush capabilities in the cache controller. This preparatory mechanism ensures that even with write-back caching, data can be protected during power faults by automatically flushing modified lines when thresholds are exceeded, reducing data loss risk while preserving performance benefits.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

Solution Approach 2:

The cache controller acts as an intermediary between the write-back cache and persistent memory, implementing threshold-based selective flushing. This intermediary mechanism allows the system to enjoy write-back performance while mitigating data loss risk through automated, intelligent flush operations triggered by threshold exceedance.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10474583B2System and method for controlling cache flush size
Publication Date: 2019.11.12 DELL PROD LP
  • US10474583B2 patent drawing
  • US10474583B2 patent drawing
  • US10474583B2 patent drawing

AI summary

An information handling system may implement a method for controlling cache flush size by limiting the amount of modified cached data in a data cache at any given time. The method may include keeping a count of the number of modified cache lines (or modified cache lines targeted to persistent memory) in the cache, determining that a threshold value for modified cache lines is exceeded and, in response, flushing some or all modified cache lines to persistent memory. The threshold value may represent a maximum number or percentage of modified cache lines. The cache controller may include a field for each cache line indicating whether it targets persistent memory. Limiting the amount of modified cached data at any given time may reduce the number of cache lines to be flushed in response to a power loss event to a number that can be flushed using the available hold-up energy.