Register File Cache for Multi-Threaded Processor Power Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processor architectures face significant power loss and inefficiency due to large register files, which consume a substantial portion of the overall power budget, especially as processor capacity increases, necessitating a solution to reduce power consumption while maintaining performance.

Innovation Solution

Implementing a register file cache that stores frequently used data instead of directly accessing the large register file, allowing for efficient data storage and retrieval by utilizing a multi-threaded processor system with a register file cache in communication with the register file, and employing heuristics to predict future data usage and optimize cache hit rates.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a large register file is used to increase processor capacity, then the processor can handle more threads and operations, but power consumption increases significantly

Engineering Contradiction:
Improveprocessor capacityVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The register file is segmented into two parts: a small, fast register file and a larger, slower register file cache. This segmentation allows the system to maintain high productivity by keeping frequently accessed data in the small register file while storing less frequently accessed data in the larger cache, thereby reducing overall power consumption without significantly impacting processing capacity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A register file cache is introduced as an intermediary between the small register file and main memory. This cache acts as a buffer that reduces the frequency of accesses to the large register file, thereby lowering power consumption while maintaining the ability to handle multiple threads efficiently.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If register file capacity is increased to handle more threads, then thread processing capability improves, but the register file consumes a larger fraction of the overall power budget

Engineering Contradiction:
Improvethread processing capabilityVSAvoidregister file power consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

Different parts of the register storage system are given different qualities: the small register file is optimized for speed and frequent access, while the register file cache is optimized for capacity and lower power consumption. This local differentiation allows the system to maintain high thread processing capability while reducing the power consumption fraction of the register file.

Inventive Principle:
Principle #3Local quality

3Loss of energy

If a small register file is used to reduce power consumption, then power efficiency improves, but the processor's ability to handle multiple threads is limited

Engineering Contradiction:
Improvepower efficiencyVSAvoidmulti-threaded processing ability
Core Design Contradiction:
Loss of energyVSProductivity

Solution Approach 1:

The system adds another dimension to the register storage hierarchy by introducing the register file cache. This creates a two-level storage system where the small register file handles immediate needs and the larger cache handles additional storage requirements, thereby maintaining multi-threaded processing ability while improving power efficiency.

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

Data Source

PatentUS8200949B1Policy based allocation of register file cache to threads in multi-threaded processor
Publication Date: 2012.06.12 NVIDIA CORP
  • US8200949B1 patent drawing
  • US8200949B1 patent drawing
  • US8200949B1 patent drawing

AI summary

A multi-threaded processor system, method, and computer program product capable of utilizing a register file cache are provided for simultaneously processing a plurality of threads. A processor capable of simultaneously processing a plurality of threads is provided. The processor includes a register file and a register file cache in communication with the register file.