Cache Line Allocation Using Opportunistic Indicators

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional cache allocation systems fail to effectively utilize higher-level cache memory by not allocating evicted cache lines that are not deemed useful, leading to performance degradation due to frequent cache misses and inefficient data management.

Innovation Solution

A processor-based system that determines the opportunistic nature of evicted cache lines and strategically allocates them to higher-level cache memory based on the relative importance of cache lines, using heuristics to decide whether to replace less important higher-level cache lines with opportunistic lower-level cache lines or bypass writing to higher-level cache memory if the evicted line has lower importance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If evicted cache lines are written to higher-level cache memory, then cache hit rate may be improved, but cache memory area and power consumption increase

Engineering Contradiction:
Improvecache hit rateVSAvoidcache memory area
Core Design Contradiction:
ReliabilityVSArea of stationary object

Solution Approach 1:

The patent changes the parameter of cache line selection by introducing importance metrics and opportunistic indicators. Instead of uniformly writing all evicted cache lines to higher-level cache, the system evaluates each cache line's importance and selectively writes only those with higher importance or opportunistic characteristics, thereby improving cache hit rate without proportionally increasing cache memory area

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent applies partial action by selectively writing only certain evicted cache lines to higher-level cache memory based on their importance and opportunistic nature. This partial selection approach improves cache hit rate for frequently accessed important data while avoiding the overhead of storing all evicted lines, thus preventing excessive cache memory area consumption

Inventive Principle:
Principle #16Partial or excessive action

2Reliability

If higher-level cache memory size is increased to store more cache lines, then cache hit rate improves, but power consumption increases

Engineering Contradiction:
Improvecache hit rateVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by stationary object

Solution Approach 1:

The patent changes the operational parameter of cache memory usage by introducing dynamic selection based on cache line importance and opportunistic indicators. The system writes only selected evicted cache lines to higher-level cache based on their characteristics, rather than uniformly storing all lines. This selective approach improves cache hit rate while avoiding the power consumption increase associated with maintaining larger cache memory structures

Inventive Principle:
Principle #35Parameter changes

3Productivity

If opportunistic cache lines are allocated to higher-level cache memory, then utilization of higher-level cache improves, but system complexity increases due to heuristics and filters

Engineering Contradiction:
Improvehigher-level cache utilizationVSAvoidcache allocation system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by evaluating and marking cache lines with opportunistic indicators during the eviction process before writing to higher-level cache. The importance metrics and opportunistic flags are determined in advance, allowing the cache allocation system to make quick decisions about which lines to write. This preliminary classification improves higher-level cache utilization while managing complexity through pre-computed metrics rather than complex real-time decision logic

Inventive Principle:
Principle #10Preliminary action

4Reliability

If conventional cache allocation systems write all evicted cache lines to higher-level cache, then data availability improves, but cache memory efficiency decreases due to pollution with less important data

Engineering Contradiction:
Improvedata availabilityVSAvoidcache memory efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies local quality by differentiating cache line treatment based on their individual importance and opportunistic characteristics. Instead of uniformly writing all evicted cache lines to higher-level cache, the system selectively writes only those lines that are important or have opportunistic value. This selective approach maintains data availability for important cache lines while preventing pollution of higher-level cache with less important data, thereby improving overall cache memory efficiency

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS12259820B2Processor-based system for allocating cache lines to a higher-level cache memory
Publication Date: 2025.03.25 QUALCOMM INC
  • US12259820B2 patent drawing
  • US12259820B2 patent drawing
  • US12259820B2 patent drawing

AI summary

A processor-based system for allocating a higher-level cache line in a higher-level cache memory in response to an eviction request of a lower-level cache line is disclosed. The processor-based system determines whether the cache line is opportunistic, sets an opportunistic indicator to indicate that the lower-level cache line is opportunistic, and communicates the lower-level cache line and the opportunistic indicator. The processor-based system determines, based on the opportunistic indicator of the lower-level cache line, whether a higher-level cache line of a plurality of higher-level cache lines in the higher-level cache memory has less or equal importance than the lower-level cache line. In response, the processor-based system replaces the higher-level cache line in the higher-level cache memory with the lower-level cache line and associates the opportunistic indicator with the lower-level cache line in the higher-level cache memory.