Hardware Cache Flush Circuit Inhibits Power-Down

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing cache flushing methods, particularly software-based approaches, are time-consuming and incur performance penalties, especially in multi-threaded processor architectures, as they require executing multiple instructions to flush the cache, which can hinder processor performance during context switches and power management.

Innovation Solution

A cache flush circuit is made visible to software using a single instruction, allowing for faster cache flushes by generating a dummy event upon completion, which inhibits processor power-down procedures, thereby reducing the need for iterative cache flush instructions and enhancing performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If software instructions are used to perform cache flush, then the cache can be flushed, but the process is time-consuming and incurs performance penalties

Engineering Contradiction:
Improvecache flush completionVSAvoidcache flush time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent replaces the software-based cache flush mechanism with a hardware-based cache flush circuit. The execution unit includes a dedicated flush circuit that can perform cache flush operations in hardware, eliminating the need for multiple software instructions and significantly reducing the time required for cache flush operations.

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

Solution Approach 2:

The patent implements a power-down instruction that automatically triggers a cache flush before the processor core is powered down. This preliminary action ensures that the cache is flushed in advance, eliminating the need for separate flush operations and reducing overall execution time.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If multiple cache flush instructions are executed, then the cache is flushed completely, but processor performance is hindered

Engineering Contradiction:
Improvecache flush completenessVSAvoidprocessor performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent replaces the iterative software instruction approach with a single hardware flush circuit operation. The flush circuit performs the complete cache flush in a single hardware operation, maintaining completeness while eliminating the performance penalty of executing multiple instructions.

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

Solution Approach 2:

The patent segments the cache flush function into a dedicated hardware circuit within the execution unit, separate from the main instruction execution path. This allows the flush operation to be performed independently and efficiently without blocking other processor operations.

Inventive Principle:
Principle #1Segmentation

3Reliability

If cache flush is performed before power down, then data is preserved, but the power down procedure is delayed

Engineering Contradiction:
Improvedata preservationVSAvoidpower down time
Core Design Contradiction:
ReliabilityVSDuration of action of moving object

Solution Approach 1:

The patent performs the cache flush as a preliminary action automatically triggered by the power-down instruction, before the actual power-down sequence begins. This ensures data is preserved in the cache hierarchy while the power-down procedure can proceed without additional delays.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent maintains the usefulness of cached data by preserving it through the flush operation rather than clearing it, allowing the data to remain accessible in the cache hierarchy even as the processor transitions to a lower power state, thus extending the effective lifespan of the cached data.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10552323B1Cache flush method and apparatus
Publication Date: 2020.02.04 APPLE INC
  • US10552323B1 patent drawing
  • US10552323B1 patent drawing
  • US10552323B1 patent drawing

AI summary

Various embodiments of a method and apparatus for flushing a cache are disclosed. In a system, a cache memory is accessible by an execution circuit. The execution circuit executes instructions and may utilize data and/or instructions stored in the cache. A flush circuit is also coupled to the cache. Responsive to execution of a power down instruction by the execution circuit, the flush circuit performs a cache flush. If a control state is asserted in a control register, the flush circuit generates a dummy event upon completing the cache flush. Responsive to generating the dummy event, a processor core that includes the execution circuit is inhibited from being powered down.