L2 Cache Write-Allocate Merging for Non-Blocking Transactions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing multi-level cache systems face inefficiencies in cache allocation and transaction processing, particularly in handling cache coherence states and prioritization of transactions in the pipeline, leading to potential stalls and reduced performance.

Innovation Solution

Implementing random selection of cache ways in set associative caches and dynamic transaction arbitration in the pipeline stages to handle cache coherence states and prioritize transactions based on priority, allowing non-blocking transactions to bypass blocking ones, and enabling caching or non-caching modes based on configuration.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If cache allocation follows strict coherence state checking, then cache coherence is maintained, but transaction processing speed decreases due to additional validation steps

Engineering Contradiction:
Improvecache coherenceVSAvoidtransaction processing speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent pre-determines cache line allocation by selecting a way in advance based on coherence states before the actual write transaction arrives. This preliminary way selection eliminates the need for complex runtime coherence checking during transaction processing, thereby maintaining cache coherence while improving transaction processing speed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent dynamically adjusts the cache allocation strategy by checking coherence states and adapting way selection based on pending requests. The system transitions from static allocation to dynamic allocation that responds to real-time cache states, resolving the contradiction between maintaining coherence and processing speed.

Inventive Principle:
Principle #15Dynamics

2Speed

If random way selection is used for cache allocation, then allocation speed increases, but cache performance degrades due to suboptimal cache line placement

Engineering Contradiction:
Improveallocation speedVSAvoidcache performance
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The patent applies different selection strategies to different ways within the same cache set. Instead of uniform random selection, it evaluates coherence states locally for each way and selects based on specific criteria (invalid states, non-pending requests). This localized quality assessment improves cache performance while maintaining fast allocation.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent changes the selection parameter from purely random to coherence-state-aware selection. By incorporating coherence state information into the way selection process, it transforms the allocation strategy to balance speed and performance, selecting ways that are both available and likely to improve cache hit rates.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If cache ways are reserved for pending requests, then coherence is maintained, but cache allocation flexibility decreases leading to stalls

Engineering Contradiction:
Improvecache coherenceVSAvoidcache allocation flexibility
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies partial reservation by checking coherence states and selecting ways that are either invalid or have non-pending requests. It doesn't require full reservation of all ways with pending requests, but rather selects from the subset of ways that are safe to allocate. This partial action maintains coherence while preserving allocation flexibility.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS12619457B2Merging data for write allocate
Publication Date: 2026.05.05 TEXAS INSTRUMENTS INC
  • US12619457B2 patent drawing
  • US12619457B2 patent drawing
  • US12619457B2 patent drawing

AI summary

A method includes receiving, by a level two (L2) controller, a write request for an address that is not allocated as a cache line in a L2 cache. The write request specifies write data. The method also includes generating, by the L2 controller, a read request for the address; reserving, by the L2 controller, an entry in a register file for read data returned in response to the read request; updating, by the L2 controller, a data field of the entry with the write data; updating, by the L2 controller, an enable field of the entry associated with the write data; and receiving, by the L2 controller, the read data and merging the read data into the data field of the entry.