Operand Cache Flush and Eviction Using Dirty Status Hints

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graphics Processing Units (GPUs) face challenges in managing operand caches due to features like parallel execution, out-of-order execution, and multi-threading, leading to high power consumption, particularly in mobile applications where battery power is used.

Innovation Solution

Implementing techniques to flush operands from the operand cache, evict entries, and perform cache clean operations in a controlled manner, including pre-emptive write backs for low-priority entries and maintaining higher-priority entries until necessary, while selecting entries for eviction based on priority and using compiler hints to optimize cache usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If operands are frequently accessed from the register file to support parallel and out-of-order execution, then execution flexibility and correctness are maintained, but power consumption increases significantly

Engineering Contradiction:
Improveexecution correctnessVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent segments the operand access path into two parts: a small operand cache for frequently accessed operands and the full register file. This segmentation allows the system to serve common operands from the low-power cache while maintaining full register file access capability when needed, thus reducing overall power consumption without compromising execution correctness.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary action by pre-loading operands into the operand cache before they are actually needed by the execution units. The cache is populated in advance based on prediction or scheduling, so that when operands are needed for parallel or out-of-order execution, they are already available in the cache, avoiding high-power register file accesses.

Inventive Principle:
Principle #10Preliminary action

2Use of energy by moving object

If the operand cache is made larger to extend operand availability, then power consumption is reduced, but device complexity and control difficulty increase

Engineering Contradiction:
Improvepower consumptionVSAvoidcache control complexity
Core Design Contradiction:
Use of energy by moving objectVSDevice complexity

Solution Approach 1:

The patent applies local quality by implementing a small, specialized operand cache with specific properties optimized for its function, rather than a large general-purpose cache. The cache is sized and configured locally to match the specific access patterns of operands in parallel execution, providing sufficient capacity to reduce power consumption while keeping control logic simple and manageable.

Inventive Principle:
Principle #3Local quality

3Device complexity

If dirty operand cache entries are pre-emptively written back to reduce cache complexity, then control is simplified, but execution time increases due to lost caching opportunities

Engineering Contradiction:
Improvecache control simplicityVSAvoidexecution time
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The patent implements dynamic control of dirty cache entry write-back based on the current execution state. The system monitors which execution units are active and what operands they need, dynamically deciding when to write back dirty entries. This dynamic approach allows the cache to retain dirty entries as long as they might be needed, minimizing execution time penalties while keeping control logic manageable through event-driven write-back triggers.

Inventive Principle:
Principle #15Dynamics

4Reliability

If the operand cache is cleaned frequently to maintain data freshness, then data consistency is improved, but power consumption increases due to additional write-back operations

Engineering Contradiction:
Improvedata consistencyVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent implements periodic or event-driven cache clean operations rather than continuous cleaning. The operand cache is cleaned at specific intervals or triggered by specific events (such as thread switches or instruction boundaries), maintaining data consistency when necessary while avoiding unnecessary write-back operations that would increase power consumption during normal execution.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS9619394B2Operand cache flush, eviction, and clean techniques using hint information and dirty information
Publication Date: 2017.04.11 APPLE INC
  • US9619394B2 patent drawing
  • US9619394B2 patent drawing
  • US9619394B2 patent drawing

AI summary

An apparatus includes an operand cache for storing operands from a register file for use by execution circuitry. In some embodiments, eviction priority for the operand cache is based on the status of entries (e.g., whether dirty or clean) and the retention priority of entries. In some embodiments, flushes are handled differently based on their retention priority (e.g., low-priority entries may be pre-emptively flushed). In some embodiments, timing for cache clean operations is specified on a per-instruction basis. Disclosed techniques may spread out write backs in time, facilitate cache clean operations, facilitate thread switching, extend the time operands are available in an operand cache, and/or improve the use of compiler hints, in some embodiments.