Instruction Cache Power Reduction via MRU Way Selection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing instruction cache implementations face a trade-off between processing speed and power consumption, with parallel approaches increasing power usage for faster performance and serial approaches reducing power but sacrificing speed.

Innovation Solution

The method involves determining the most-recently-used (MRU) way in the instruction cache to efficiently access data, activating only the MRU way instead of all ways in a cacheline set, which reduces power consumption while maintaining performance by looking up the MRU way in parallel with tag array access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If all data locations in the data array that correspond to the set of cachelines are activated in parallel to fetch data, then processing speed is improved, but power consumption is increased

Engineering Contradiction:
Improveinstruction fetch speedVSAvoidpower consumption
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

The patent extracts and activates only the specific data location corresponding to the matched cacheline set from the data array, rather than activating all data locations in parallel. This selective activation reduces power consumption while maintaining the speed benefit of parallel tag array access, as only the necessary data location is powered up after the tag match is identified.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent dynamically adjusts the activation of data array locations based on the results of tag array matching. Instead of static parallel activation of all locations, the system dynamically activates only the specific location needed after identifying a cache hit, optimizing the balance between speed and power consumption based on actual access patterns.

Inventive Principle:
Principle #15Dynamics

2Use of energy by moving object

If only one location in the data array is activated to reduce power consumption, then power consumption is reduced, but processing speed is sacrificed due to serial access requirements

Engineering Contradiction:
Improvepower consumptionVSAvoidinstruction fetch speed
Core Design Contradiction:
Use of energy by moving objectVSSpeed

Solution Approach 1:

The patent segments the data array access into two phases: first, parallel tag array access to identify the matched cacheline set; second, selective data array access only at the specific location corresponding to the match. This segmentation allows the system to maintain parallel processing benefits while minimizing power consumption by activating only the necessary data location after identification.

Inventive Principle:
Principle #1Segmentation

3Use of energy by moving object

If serial approach is used to activate only one data array location, then power consumption is reduced, but multiple clock cycles are required to identify and access the matching data location

Engineering Contradiction:
Improvepower consumptionVSAvoidaccess time
Core Design Contradiction:
Use of energy by moving objectVSLoss of time

Solution Approach 1:

The patent performs preliminary parallel tag array access to identify the matched cacheline set before activating the specific data array location. This preliminary identification step enables subsequent selective data access to proceed efficiently, reducing both power consumption and access time compared to purely serial approaches.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9396117B2Instruction cache power reduction
Publication Date: 2016.07.19 NVIDIA CORP
  • US9396117B2 patent drawing
  • US9396117B2 patent drawing
  • US9396117B2 patent drawing

AI summary

In one embodiment, a method for controlling an instruction cache including a least-recently-used bits array, a tag array, and a data array, includes looking up, in the least-recently-used bits array, least-recently-used bits for each of a plurality of cacheline sets in the instruction cache, determining a most-recently-used way in a designated cacheline set of the plurality of cacheline sets based on the least-recently-used bits for the designated cacheline, looking up, in the tag array, tags for one or more ways in the designated cacheline set, looking up, in the data array, data stored in the most-recently-used way in the designated cacheline set, and if there is a cache hit in the most-recently-used way, retrieving the data stored in the most-recently-used way from the data array.