Way Enable Table for Multi-Threaded Cache Power Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-threaded processors, n-way set associative caches are power and data inefficient due to the need to power up all ways when reading data, even though only relevant data for the current thread is needed, leading to unnecessary power consumption and retrieval of irrelevant data from other threads.

Innovation Solution

A way enable table is introduced, which stores thread IDs for each cache entry, allowing only relevant ways in the cache to be powered up during data access by comparing the current thread ID with stored IDs, thereby enabling or disabling cache ways based on matching thread IDs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If all ways in the cache are powered up to read data, then data access speed is improved, but power consumption increases and irrelevant data from other threads is retrieved

Engineering Contradiction:
Improvedata access speedVSAvoidpower consumption
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

The patent applies preliminary action by comparing the current thread ID with stored thread IDs in the way enable table before actually reading data from the cache. This pre-comparison step identifies which cache ways contain relevant data for the current thread, allowing the system to power up only those specific ways before the read operation, thus avoiding unnecessary power consumption from activating all ways while still maintaining fast access speed for relevant data.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If all ways in the cache are read to ensure data is found, then data retrieval completeness is improved, but data efficiency deteriorates due to retrieval of irrelevant data

Engineering Contradiction:
Improvedata retrieval completenessVSAvoiddata efficiency
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The patent uses preliminary action by performing a thread ID comparison in the way enable table before reading cache data. This pre-filtering step identifies which cache ways contain data relevant to the current thread, allowing the system to read only from those specific ways. This ensures that all relevant data is retrieved while avoiding the retrieval of irrelevant data from other threads, thus maintaining data retrieval completeness while improving data efficiency.

Inventive Principle:
Principle #10Preliminary action

3Loss of information

If thread ID storage is added to each cache entry, then data efficiency is improved, but device complexity increases

Engineering Contradiction:
Improvedata efficiencyVSAvoidcache structure complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent applies segmentation by separating the thread ID storage function from the main cache data structure. Instead of adding thread ID fields to every cache entry, the invention creates a separate way enable table that stores thread IDs indexed by cache way and set. This segmentation allows the cache to maintain its original simple structure while adding thread identification capability through an external lookup table, thus improving data efficiency without significantly increasing cache structure complexity.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10318172B2Cache operation in a multi-threaded processor
Publication Date: 2019.06.11 MIPS TECH INC
  • US10318172B2 patent drawing
  • US10318172B2 patent drawing
  • US10318172B2 patent drawing

AI summary

Cache operation in a multi-threaded processor uses a small memory structure referred to as a way enable table that stores an index to an n-way set associative cache. The way enable table includes one entry for each entry in the n-way set associative cache and each entry in the way enable table is arranged to store a thread ID. The thread ID in an entry in the way enable table is the ID of the thread associated with a data item stored in the corresponding entry in the n-way set associative cache. Prior to reading entries from the n-way set associative cache identified by an index parameter, the ways in the cache are selective enabled based on a comparison of the current thread ID and the thread IDs stored in entries in the way enable table which are identified by the same index parameter.