Cache Line Allocation Control to Bypass Lower Level Cache

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional data processing systems lack user control over cache line allocation, leading to increased latency and performance issues due to automatic storage in lowest level caches, which can displace frequently-used data and cause stalling during cache misses.

Innovation Solution

Implementing line engines with line buffers that allow users to control cache line allocation via a user interface, enabling data to be stored in upper level caches without involving the lowest level cache, thus avoiding evictions and reducing latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If cache lines are automatically allocated to the lowest level cache, then cache hit rate is improved, but latency increases and frequently-used data may be displaced

Engineering Contradiction:
Improvecache hit rateVSAvoidlatency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system dynamically adjusts cache allocation behavior based on user preferences and access patterns. The line engine receives user input indicating whether to allocate cache lines to the lowest level cache, and adapts the allocation strategy in real-time to balance between cache hit rate and latency requirements.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The invention changes the allocation parameter (whether to allocate to lowest level cache) based on user input and access characteristics. By allowing users to control the allocation parameter, the system can optimize for different scenarios - either maximizing cache hit rate or minimizing latency by bypassing the lowest level cache.

Inventive Principle:
Principle #35Parameter changes

2Speed

If data is stored in the lowest level cache, then access speed is improved, but cache performance deteriorates due to evictions of frequently-used data

Engineering Contradiction:
Improveaccess speedVSAvoidcache performance
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The system applies different allocation strategies to different cache lines based on their characteristics and user requirements. Instead of a uniform allocation policy, the line engine evaluates each access request and determines whether to allocate to the lowest level cache on a per-cache-line basis, allowing locally optimized decisions that prevent displacement of frequently-used data.

Inventive Principle:
Principle #3Local quality

3Device complexity

If automatic cache allocation is used, then system complexity is reduced, but user control is lost leading to performance issues

Engineering Contradiction:
Improvesystem complexityVSAvoiduser control
Core Design Contradiction:
Device complexityVSEase of operation

Solution Approach 1:

The system provides self-service capabilities by allowing users to directly control cache line allocation through simple input signals. The line engine processes user input and automatically adjusts allocation behavior without requiring complex user interfaces or configuration management, enabling users to control cache behavior while maintaining system simplicity.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS12596651B2User controlled allocation of a specific cache line at time of access
Publication Date: 2026.04.07 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US12596651B2 patent drawing
  • US12596651B2 patent drawing
  • US12596651B2 patent drawing

AI summary

Systems and techniques for controlling allocation of a cache line when performing a memory access request are described. An example technique includes receiving a memory access request from a user interface. The memory access request includes an indication of whether a cache line associated with the memory access request is to be allocated into a lower level cache within a computing system. The cache line is written into a line buffer within a line engine in the computing system in response to receiving the memory access request. The cache line is moved from the line buffer to an upper level cache in the computing system, without involving the lower level cache, when the memory access request indicates the cache line is not to be allocated into the lower level cache.