Dynamic Set Associative Cache Reducing Power Consumption

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The high power consumption of cache apparatus in processor systems, which accounts for 40%-50% of total processor power consumption, poses a significant challenge as existing methods to reduce it either require software support, result in performance loss, or introduce excessive hardware overheads.

Innovation Solution

A dynamic set associative cache apparatus is introduced, where a table unit records valid/invalid bits for cache blocks, allowing for dynamic enable/disable of cache ways based on block validity, reducing unnecessary access and power consumption during read/write operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the cache size is increased to improve processor performance, then the cache can store more data and reduce processor waiting time, but the power consumption of the cache increases significantly

Engineering Contradiction:
Improveprocessor performanceVSAvoidcache power consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent implements dynamic associativity by allowing the cache to change its associativity level (1-way, 2-way, 4-way, or 8-way) based on runtime conditions. The cache controller monitors cache hit rates and dynamically adjusts the number of active cache ways, enabling the cache to adapt its structure to balance performance and power consumption. When performance requirements are high, more cache ways are activated; when power saving is prioritized, fewer ways remain active.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the operational parameters of the cache by dynamically adjusting the associativity level. The cache controller modifies the number of active cache ways (k value) based on monitored performance metrics, transforming the cache from a static structure to one with variable parameters. This allows the cache to optimize between full associativity for maximum performance and reduced associativity for lower power consumption.

Inventive Principle:
Principle #35Parameter changes

2Use of energy by moving object

If existing methods are used to reduce cache power consumption, then energy usage decreases, but software support is required or performance is lost or hardware complexity increases

Engineering Contradiction:
Improvecache power consumptionVSAvoidhardware overhead
Core Design Contradiction:
Use of energy by moving objectVSDevice complexity

Solution Approach 1:

The cache system performs self-optimization through an integrated cache controller that autonomously monitors cache performance metrics (hit rates, access patterns) and dynamically adjusts the number of active cache ways without external intervention. The controller evaluates runtime conditions and automatically reconfigures the cache associativity, eliminating the need for software management while achieving both power savings and performance maintenance.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent introduces dynamic reconfigurability to the cache structure, allowing the associativity level to change at runtime based on actual workload characteristics. This dynamic approach replaces static cache designs with fixed parameters, enabling the system to adapt to varying performance and power requirements without requiring complex external control mechanisms.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9880937B2Dynamic set associative cache apparatus for processor and access method thereof
Publication Date: 2018.01.30 HUAWEI TECH CO LTD
  • US9880937B2 patent drawing
  • US9880937B2 patent drawing
  • US9880937B2 patent drawing

AI summary

The present invention provides a dynamic set associative cache apparatus for a processor. When read access occurs, the apparatus first determines a valid/invalid bit of each cache block in a cache set to be accessed, and sets, according to the valid/invalid bit of each cache block, an enable/disable bit of a cache way in which the cache block is located; then, reads valid cache blocks, compares a tag section in a memory address with a tag block in each cache block that is read, and if there is a hit, reads data from a data block in a hit cache block according to an offset section of the memory address.