Pipelined Operand Cache Allocation and Ownership

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graphics processing units (GPUs) face high power consumption issues, particularly in mobile applications, due to frequent access to large amounts of data, which can be mitigated by efficient management of operand caches to reduce power consumption and improve performance.

Innovation Solution

Implementing a pipelined operand cache with separate allocation and ownership stages, allowing for efficient storage and retrieval of operands, reducing the need for frequent access to the register file and minimizing power consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a larger operand cache is used to store more operands, then cache hit rate improves, but device complexity and power consumption increase

Engineering Contradiction:
Improvecache hit rateVSAvoidoperand cache size
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The operand cache is divided into multiple banks, with each bank independently managing a subset of operands. This segmentation allows the cache to handle more operands without proportionally increasing complexity, as each bank can be managed independently with its own tag array and data storage.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a bank index dimension to organize operands, transforming the cache structure from a single flat array to a multi-dimensional structure with banks and entries within each bank. This allows efficient indexing and access while managing larger operand sets.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Loss of energy

If frequent access to register file is avoided by using operand cache, then power consumption reduces, but cache management complexity increases

Engineering Contradiction:
Improvepower consumptionVSAvoidcache management
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The operand cache pre-loads and stores operands that will be needed for upcoming operations, based on prediction logic that analyzes instruction patterns. This preliminary action reduces the need for frequent register file accesses by having operands ready in the cache before they are needed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The cache management system uses feedback from instruction decode and execution stages to dynamically adjust which operands are loaded into the cache and which cache entries are retained. This feedback mechanism optimizes cache content based on actual usage patterns, reducing power consumption while managing complexity through adaptive control.

Inventive Principle:
Principle #23Feedback

3Productivity

If operand cache entries are efficiently managed with separate allocation and ownership stages, then productivity improves, but device complexity increases

Engineering Contradiction:
Improveexecution throughputVSAvoidpipeline structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The cache management pipeline is segmented into distinct stages: allocation stage that reserves cache entries, ownership stage that manages active cache contents, and eviction stage that removes unused entries. This segmentation allows each stage to operate independently and efficiently, improving throughput while managing complexity through modular design.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The allocation stage performs preliminary actions by reserving cache entries before they are fully populated with operand data. This allows the ownership stage to focus on managing active operands without worrying about allocation conflicts, improving overall pipeline efficiency and throughput.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10678548B2Pipelined allocation for operand cache
Publication Date: 2020.06.09 APPLE INC
  • US10678548B2 patent drawing
  • US10678548B2 patent drawing
  • US10678548B2 patent drawing

AI summary

Techniques are disclosed relating to controlling an operand cache in a pipelined fashion. An operand cache may cache operands fetched from the register file or generated by previous instructions to improve performance and/or reduce power consumption. In some embodiments, instructions are pipelined and separate tag information is maintained to indicate allocation of an operand cache entry and ownership of the operand cache entry. In some embodiments, this may allow an operand to remain in the operand cache (and potentially be retrieved or modified) during an interval between allocation of the entry for another operand and ownership of the entry by the other operand. This may improve operand cache efficiency by allowing the entry to be used while to retrieving the other operand from the register file, for example.