Hardware Cache Flush Unit for Low-Power State Transition

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for conserving power in computer processors by putting unused circuits into low-power states often require inefficient software-based cache flushing, which can increase power consumption and reduce performance.

Innovation Solution

A hardware-based flush unit in a processor is configured to copy modified data from a lower-level cache to a higher-level cache or memory, allowing the lower-level cache to enter a low-power state while maintaining data integrity and reducing power consumption by only copying valid data, and subsequently copying data from higher-level caches to memory after a programmable interval.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Use of energy by stationary object

If software-based cache flushing is used to enable low-power states, then power consumption during flushing increases, but the ability to enter low-power states is achieved

Engineering Contradiction:
Improvepower consumption during cache flushingVSAvoidcache flushing efficiency
Core Design Contradiction:
Use of energy by stationary objectVSProductivity

Solution Approach 1:

The patent replaces software-based cache flushing with a hardware-based flush unit. This substitution eliminates the need for software intervention during cache flushing, allowing the processor to enter low-power states without requiring software to manage cache coherence. The hardware flush unit automatically handles cache invalidation and data transfer, significantly reducing power consumption during flushing operations while improving overall flushing efficiency.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The hardware flush unit operates autonomously to manage cache flushing without requiring software intervention. When the processor enters a low-power state, the flush unit automatically identifies modified cache lines, transfers them to higher-level caches or memory, and invalidates the lower-level caches. This self-service mechanism eliminates the power-consuming software flushing process while maintaining data integrity.

Inventive Principle:
Principle #25Self-service

2Reliability

If all data in the first cache is read during flush, then data integrity is maintained, but power consumption increases

Engineering Contradiction:
Improvedata integrity during flushVSAvoidpower consumption during flush
Core Design Contradiction:
ReliabilityVSUse of energy by stationary object

Solution Approach 1:

The hardware flush unit extracts only the modified cache lines from the lower-level cache for transfer to higher-level caches or memory, rather than reading and transferring all cache data. By identifying and isolating only the changed data through status bits, the system maintains data integrity while significantly reducing the amount of data that needs to be processed during the flush operation, thereby lowering power consumption.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of performing a complete cache flush that reads all data, the hardware flush unit performs a partial flush by selectively transferring only the modified cache lines. This partial action approach maintains the necessary data integrity for correctness while reducing the overall work required during flushing, leading to lower power consumption and faster flush operations.

Inventive Principle:
Principle #16Partial or excessive action

3Use of energy by stationary object

If the lower-level cache enters low-power state immediately, then power savings are maximized, but data may be lost if not flushed

Engineering Contradiction:
Improvepower savings from low-power stateVSAvoiddata loss prevention
Core Design Contradiction:
Use of energy by stationary objectVSReliability

Solution Approach 1:

The hardware flush unit performs preliminary flushing of modified cache data to higher-level caches or memory before the lower-level cache transitions to the low-power state. By completing the data transfer in advance, the system ensures that no data is lost when the cache is powered down, while still achieving maximum power savings by allowing the cache to enter the low-power state as quickly as possible after flushing completes.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The hardware flush unit acts as an intermediary between the lower-level cache and higher-level caches/memory, managing the data transfer process automatically. It monitors the cache state, initiates flushing of modified lines, and coordinates the transition to low-power state, ensuring data safety while enabling power savings without requiring software intervention.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9128857B2Flush engine
Publication Date: 2015.09.08 APPLE INC
  • US9128857B2 patent drawing
  • US9128857B2 patent drawing
  • US9128857B2 patent drawing

AI summary

Techniques are disclosed related to flushing one or more data caches. In one embodiment an apparatus includes a processing element, a first cache associated with the processing element, and a circuit configured to copy modified data from the first cache to a second cache in response to determining an activity level of the processing element. In this embodiment, the apparatus is configured to alter a power state of the first cache after the circuit copies the modified data. The first cache may be at a lower level in a memory hierarchy relative to the second cache. In one embodiment, the circuit is also configured to copy data from the second cache to a third cache or a memory after a particular time interval. In some embodiments, the circuit is configured to copy data while one or more pipeline elements of the apparatus are in a low-power state.