Instruction Cache Eviction Path Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computing systems, the eviction of cache lines from a first cache level to a second cache level often requires a full eviction path, leading to increased implementation costs and reduced performance due to the need for additional write ports and instruction fetches from slower memory levels.

Innovation Solution

A method that invalidates a cache line from a first cache level and fetches associated data from a third cache level or memory, writing it to a second cache level, thereby repopulating the cache without building a full eviction path, and using a prefetch request to signal the second cache level to prefetch data before a cache miss occurs, utilizing a usage predictor like a reference count to optimize data fetch.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a full eviction path is built from first cache level to second cache level, then cache line eviction can be completed, but implementation cost increases and performance decreases due to additional write ports and instruction fetches

Engineering Contradiction:
Improvecache eviction efficiencyVSAvoideviction path complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent extracts the essential function of cache line eviction from the traditional full eviction path approach. Instead of implementing a complete eviction path with write ports, the invention extracts only the necessary data movement function by directly fetching data from third cache level or memory to second cache level, eliminating unnecessary intermediate steps and components.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies preliminary action by prefetching data from the third cache level or memory to the second cache level before it is actually needed by the first cache level. This is achieved through a prefetch request mechanism that anticipates future data needs and prepares data in advance, reducing latency and avoiding cache misses.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If additional write ports are added to support full eviction path, then cache line eviction capability is improved, but implementation cost increases

Engineering Contradiction:
Improvecache line eviction capabilityVSAvoidimplementation cost
Core Design Contradiction:
ProductivityVSEase of manufacture

Solution Approach 1:

The patent removes the requirement for additional write ports by extracting the essential eviction function and implementing it through a simplified path that fetches data directly from the third cache level or memory to the second cache level, eliminating the need for complex write port infrastructure.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of physically moving data through multiple cache levels with write ports, the patent uses a prefetch mechanism that copies data from the third cache level or memory to the second cache level in advance, achieving the same functional result without the physical infrastructure of a full eviction path.

Inventive Principle:
Principle #26Copying

3Productivity

If data is fetched from slower memory levels, then cache repopulation is achieved, but latency increases

Engineering Contradiction:
Improvecache repopulation capabilityVSAvoiddata fetch latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by implementing a prefetch request mechanism that fetches data from the third cache level or memory to the second cache level before it is actually needed. This anticipatory approach reduces latency by preparing data in advance, so when the first cache level needs the data, it is already available in the second cache level.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces dynamic control over the data fetch process through a prefetch request mechanism that can be triggered based on usage predictors like reference counts. This dynamic approach allows the system to adaptively prefetch data based on actual usage patterns, optimizing the balance between cache repopulation and latency.

Inventive Principle:
Principle #15Dynamics

4Productivity

If usage predictor with reference count is used to optimize data fetch, then fetch efficiency is improved, but device complexity increases

Engineering Contradiction:
Improvedata fetch efficiencyVSAvoidusage predictor complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies self-service by implementing a usage predictor mechanism that automatically tracks reference counts and makes prefetch decisions based on observed usage patterns. The system serves itself by monitoring its own data access behavior and autonomously deciding when to prefetch data, eliminating the need for complex external control mechanisms.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9552293B1Emulating eviction data paths for invalidated instruction cache
Publication Date: 2017.01.24 GOOGLE LLC
  • US9552293B1 patent drawing
  • US9552293B1 patent drawing
  • US9552293B1 patent drawing

AI summary

A method of managing processor caches. The method includes invalidating a cache line from a first instruction cache level and in response to invalidating the cache line from the first cache level, fetching data associated with the invalidated cache line from a third cache level or memory and writing the fetched data to a second cache level. The third cache level is larger or differently associative than the second cache level and the second cache level is larger or differently associative than the first cache level.