Cache Miss Resolution via Secondary Cache Dependency Check

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In data processing systems, cache operations face inefficiencies when fetching data into a primary cache requires data from a secondary cache, leading to potential cache misses and livelocks, particularly in graphics processing systems where texture operations depend on mip-map levels.

Innovation Solution

A method where the data processing system stalls operations upon a cache miss in the primary cache, records pending operations, and fetches required data from the secondary cache to resolve the miss, ensuring that data is retrieved and used to complete the stalled operations efficiently, utilizing cache line states and allocation mechanisms to manage dependencies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data fetching into the first cache requires data from the second cache, then the system can resolve cache misses, but it may cause livelocks and stall operations

Engineering Contradiction:
Improvecache miss resolutionVSAvoiddata processing speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system checks whether data required for fetching into the first cache is already present in the second cache before initiating the fetch operation. This preliminary check prevents livelocks by ensuring that dependent data is available beforehand, allowing cache misses to be resolved without stalling operations.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If the system stalls operations on cache miss to fetch data, then data accuracy is maintained, but processing time increases

Engineering Contradiction:
Improvedata accuracyVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

By checking the second cache for required data before fetching into the first cache, the system prepares necessary data in advance. This eliminates the need to stall operations waiting for data, maintaining data accuracy while reducing processing time delays.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system continues data processing operations without interruption by ensuring that all required data is available in the second cache before initiating fetches to the first cache. This continuous operation maintains data accuracy while minimizing idle time and processing delays.

Inventive Principle:
Principle #20Continuity of useful action

3Adaptability or versatility

If multiple cache lines need to allocate data from the second cache, then cache hit-under-miss capability improves, but system complexity increases

Engineering Contradiction:
Improvecache hit-under-miss capabilityVSAvoidcache allocation mechanism
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system combines multiple cache line allocation operations into a unified process that checks the second cache for all required data before fetching to the first cache. This merged approach improves cache hit-under-miss capability by handling multiple allocations together, while reducing overall system complexity through standardized procedures.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11036644B2Data processing systems
Publication Date: 2021.06.15 ARM LTD
  • US11036644B2 patent drawing
  • US11036644B2 patent drawing
  • US11036644B2 patent drawing

AI summary

When a data processing operation requires data that is stored in a first cache and the fetching of the data into the first cache is dependent upon data stored in another cache, and an attempt to read the data from the first cache “misses”, the data processing operation is added to a record of data processing operations that have missed in the first cache and the data that is required for the data processing operation is fetched into the first cache by reading the data that is required to fetch the data into the first cache from the another cache and then using that data from the another cache to fetch the required data into the first cache. When the data that is required for the data processing operation has been fetched into the first cache, the data processing operation is performed using the fetched data.