L1 Victim Buffer Snoop Handling for DMA Cache Coherence

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-level cache systems, cache coherence is broken when a higher level cache line is evicted, leading to incorrect DMA data commitment and missed writes due to conflicts between level one and level two caches during DMA operations.

Innovation Solution

Implementing a victim buffer system where evicted cache line data is stored and compared with DMA access addresses, with shadow tags used to determine cache presence before sending snoop writes, ensuring coherent data transfer between cache levels.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a higher level cache line is evicted during DMA operations, then cache space is freed for new data, but cache coherence is broken and DMA data commitment becomes incorrect

Engineering Contradiction:
Improvecache eviction efficiencyVSAvoidcache coherence
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements a victim buffer that captures evicted cache line data before it leaves the cache. This preliminary action allows the system to intercept and handle DMA operations that target evicted lines, ensuring coherence is maintained by comparing DMA addresses against the victim buffer contents and performing appropriate snoop writes or blocking operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The victim buffer acts as an intermediary between the evicted cache line and the DMA operation. By introducing this intermediate storage, the system can detect when a DMA operation targets an evicted line and handle it appropriately, preventing coherence violations without blocking all DMA operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If snoop writes are sent to level one cache during victim eviction, then DMA data is committed to cache, but writes are missed when victim data is evicted first

Engineering Contradiction:
ImproveDMA data commitmentVSAvoidwrite completion time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs a preliminary check by comparing the DMA address against the victim buffer contents before allowing the snoop write to proceed. This preliminary action prevents missed writes by ensuring the DMA operation is properly handled even when the target line has been evicted from the main cache.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If cache coherence protocols are strictly enforced during victim eviction, then data correctness is maintained, but performance degradation increases due to stalls

Engineering Contradiction:
Improvedata correctnessVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies coherence checks selectively rather than universally. By comparing DMA addresses against the victim buffer and only performing snoop writes or blocking operations when there is a match, the system maintains data correctness for critical operations while allowing non-conflicting DMA operations to proceed without stalls.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system performs partial coherence checking by only intercepting DMA operations that target lines currently in the victim buffer. This partial action approach maintains necessary data correctness while minimizing the performance impact of coherence protocols.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9268708B2Level one data cache line lock and enhanced snoop protocol during cache victims and writebacks to maintain level one data cache and level two cache coherence
Publication Date: 2016.02.23 TEXAS INSTRUMENTS INC
  • US9268708B2 patent drawing
  • US9268708B2 patent drawing
  • US9268708B2 patent drawing

AI summary

This invention assures cache coherence in a multi-level cache system upon eviction of a higher level cache line. A victim buffer stored data on evicted lines. On a DMA access that may be cached in the higher level cache the lower level cache sends a snoop write. The address of this snoop write is compared with the victim buffer. On a hit in the victim buffer the write completes in the victim buffer. When the victim data passes to the next cache level it is written into a second victim buffer to be retired when the data is committed to cache. DMA write addresses are compared to addresses in this second victim buffer. On a match the write takes place in the second victim buffer. On a failure to match the controller sends a snoop write.