Dynamic Cache Bypassing for Write Congestion

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In processing systems, write congestion conditions can lead to inefficient data transfer due to the need to evict dirty cache lines, which consumes memory bandwidth and negatively impacts processing efficiency, especially when main memory has slower write bandwidth compared to cache modules.

Innovation Solution

The system bypasses the cache storing a dirty cache line during write congestion conditions by transferring requested data directly to the processor or a lower-level cache, avoiding eviction and subsequent write-back to main memory, without modifying the cache replacement policy or increasing memory controller size or power consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the cache controller implements a replacement policy to evict cache lines when the cache is full, then the cache can store new data, but evicting dirty cache lines consumes memory bandwidth and negatively impacts processing efficiency

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidmemory bandwidth consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The cache bypass mechanism dynamically adjusts the data path based on write congestion conditions. When write congestion is detected, the system dynamically switches from the normal cache path to the bypass path, allowing dirty cache lines to remain in cache without being evicted to main memory, thereby reducing memory bandwidth consumption while maintaining processing efficiency

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the operational parameter of the cache by introducing a bypass mode. Instead of always following the traditional cache replacement policy, the system modifies the data flow parameter by routing data directly to the processor when write congestion is detected, effectively changing the cache's behavior from strict LRU replacement to conditional bypassing

Inventive Principle:
Principle #35Parameter changes

2Speed

If the cache stores more data to reduce main memory accesses, then cache hit rate improves, but eviction of dirty cache lines increases memory bandwidth consumption

Engineering Contradiction:
Improvecache hit rateVSAvoidmemory bandwidth consumption
Core Design Contradiction:
SpeedVSLoss of energy

Solution Approach 1:

The invention extracts the problematic step of writing dirty cache lines to main memory during write congestion conditions. By taking out this unnecessary write operation through the bypass mechanism, the system maintains high cache hit rates while eliminating the harmful memory bandwidth consumption associated with evicting dirty cache lines

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If the system writes dirty cache lines back to main memory immediately upon eviction, then cache coherence is maintained, but memory bandwidth is consumed during write congestion

Engineering Contradiction:
Improvecache coherenceVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The bypass mechanism provides beforehand cushioning by preventing the eviction of dirty cache lines during write congestion conditions. This cushioning effect allows the system to maintain cache coherence without immediately writing to main memory, absorbing the potential coherence issue until write congestion clears, thereby protecting processing efficiency from degradation

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

Data Source

PatentUS10599578B2Dynamic cache bypassing
Publication Date: 2020.03.24 ADVANCED MICRO DEVICES INC
  • US10599578B2 patent drawing
  • US10599578B2 patent drawing
  • US10599578B2 patent drawing

AI summary

A processing system fills a memory access request for data from a processor core by bypassing a cache when a write congestion condition is detected, and when transferring the data to the cache would cause eviction of a dirty cache line. The cache is bypassed by transferring the requested data to the processor core or to a different cache. Accordingly, the processing system can temporarily bypass the cache storing the dirty cache line when filling a memory access request, thereby avoiding the eviction and write back to main memory of a dirty cache line when a write congestion condition exists.