Cache Eviction Buffer Segmentation for Power-Speed Trade-offs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing cache eviction methods are inefficient, either wasting power by reading data unnecessarily or taking too long when performing multiple evictions in rapid succession, as they either read data and information simultaneously or sequentially without optimizing for both speed and energy efficiency.

Innovation Solution

The method involves initially reading only the associated information from the cache into an eviction buffer, determining if eviction is needed, and then reading the data only if eviction is required, allowing for simultaneous handling of multiple eviction requests while minimizing power usage by avoiding unnecessary data reads.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If data and information are read simultaneously from the cache, then eviction speed is improved, but power consumption increases due to unnecessary data reads

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

Solution Approach 1:

The eviction buffer is divided into two separate portions: an information portion for storing cache entry metadata (valid/dirty bits, tag) and a data portion for storing actual data. This segmentation allows the system to read and process information independently from data, enabling selective data reads only when eviction is confirmed needed, thus reducing unnecessary power consumption while maintaining fast eviction capability through parallel processing

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary action by first reading and examining the information portion (valid/dirty bits and tag) from the cache entry before reading the actual data. This preliminary examination determines whether the cache entry needs to be evicted, and only if confirmed does the system then read the data portion. This sequential preliminary action eliminates unnecessary data reads and associated power consumption while maintaining the ability to process multiple evictions rapidly

Inventive Principle:
Principle #10Preliminary action

2Use of energy by moving object

If data is read only when necessary, then power consumption is reduced, but eviction time increases

Engineering Contradiction:
Improvepower consumptionVSAvoideviction time
Core Design Contradiction:
Use of energy by moving objectVSLoss of time

Solution Approach 1:

By segmenting the cache entry into separate information and data portions, the system can process information independently and in parallel with data reads. The information portion can be examined immediately upon allocation, and only when eviction is confirmed does the system read the data portion. This segmentation enables overlapping operations and reduces total eviction time while maintaining low power consumption through selective data reads

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system maintains continuity of useful action by immediately processing the information portion upon allocation and simultaneously preparing for data reading when eviction is confirmed. The eviction buffer continuously accepts new allocation requests while processing previous evictions, ensuring that the system is always productive whether data is being read or not, thus minimizing total eviction time while maintaining selective reading for power efficiency

Inventive Principle:
Principle #20Continuity of useful action

3Adaptability or versatility

If the eviction buffer stores both data and information, then complete data entry handling is enabled, but buffer size requirements increase

Engineering Contradiction:
Improvedata entry handling capabilityVSAvoidbuffer size
Core Design Contradiction:
Adaptability or versatilityVSVolume of stationary object

Solution Approach 1:

The eviction buffer is segmented into separate information and data portions, allowing the system to handle complete data entries while using less buffer space. The information portion stores only the necessary metadata (valid/dirty bits, tag) which is smaller than the actual data. This segmentation enables the buffer to be optimized for the most common case of information-only processing while still supporting complete data entry handling when needed, reducing overall buffer size requirements

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system applies partial action by storing only the information portion in the eviction buffer initially, and only reading the data portion when eviction is confirmed needed. This partial buffering approach reduces the immediate buffer size requirement while maintaining the capability to handle complete data entries when necessary, avoiding the excessive action of always buffering complete data entries

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS7941608B2Cache eviction
Publication Date: 2011.05.10 ARM LTD
  • US7941608B2 patent drawing
  • US7941608B2 patent drawing
  • US7941608B2 patent drawing

AI summary

A method and data processing apparatus comprise a cache having a plurality of data entries; an eviction buffer comprising an information portion and a data portion; and eviction logic to transfer information associated with a first of the plurality of data entries from the cache to the information portion and to determine, with reference to the information, whether the first of the plurality of data entries should be written to a memory by examining the information. If it is determined that the data entry should be written to the memory, the eviction logic (1) transfers the information from the eviction buffer to a bus coupled with the memory, (2) transfers data of the first of the plurality of data entries from the cache to a data portion of the eviction buffer, (3) transfers information associated with a second of the plurality of data entries from the cache to the associated portion of the eviction buffer such that the data stored by the data portion of the eviction buffer corresponds to the first of the plurality of data entries and the information stored by the data portion of the eviction buffer corresponds to the second of the plurality of data entries, and (4) transfers the data stored by the data portion of the eviction buffer to the bus. This approach provides a low-power, high performance technique for handling eviction requests.