Cache Controller Harvesting Engine for Memory Writeback Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The delay in writeback operations in cache hierarchies can degrade the performance of microprocessors by causing inefficient memory operations and stalling processor cores, especially when cache lines are evicted based on a writeback policy that does not account for data locality.

Innovation Solution

A cache controller with a harvesting engine that uses Bloom filters to proactively identify and write back modified cache lines that share a common memory row with evicted lines, thereby combining write requests and improving memory scheduling efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If the cache controller waits for cache lines to be ready for eviction before writing back modified data, then the cache follows a simple writeback on eviction policy, but the memory controller performs writebacks inefficiently and the processor core may stall

Engineering Contradiction:
Improvecache control logicVSAvoidmemory writeback efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The cache controller proactively identifies modified cache lines that share a common memory row with evicted lines and initiates writeback operations before the cache lines are actually evicted. This preliminary action allows the memory controller to schedule writebacks more efficiently by grouping them with other writebacks to the same memory row, reducing memory access latency and preventing processor stalling.

Inventive Principle:
Principle #10Preliminary action

2Ease of manufacture

If the cache controller performs writebacks only when cache lines are evicted, then the cache implementation is simple, but the overall processor performance degrades due to inefficient memory operations

Engineering Contradiction:
Improvecache controller implementationVSAvoidmemory access latency
Core Design Contradiction:
Ease of manufactureVSLoss of time

Solution Approach 1:

The cache controller performs preliminary identification of modified cache lines that share a common memory row with evicted lines and initiates writeback operations in advance. This reduces memory access latency by ensuring writebacks are performed as soon as the memory row is available, rather than waiting for cache eviction, thereby improving overall processor performance without significantly complicating the cache controller implementation.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If the cache controller groups write requests by memory row, then memory bus utilization improves, but the cache controller complexity increases due to tracking data locality

Engineering Contradiction:
Improvememory bus utilizationVSAvoidcache controller logic
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The cache controller merges write requests for modified cache lines that share a common memory row with evicted cache lines. By combining these write requests, the controller optimizes memory bus utilization by reducing the total number of memory transactions. The controller tracks data locality by monitoring which modified cache lines share memory rows with evicted lines, enabling efficient grouping of writebacks without excessive complexity.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9552301B2Method and apparatus related to cache memory
Publication Date: 2017.01.24 ADVANCED MICRO DEVICES INC
  • US9552301B2 patent drawing
  • US9552301B2 patent drawing
  • US9552301B2 patent drawing

AI summary

A cache includes a cache array and a cache controller. The cache array has a plurality of entries. The cache controller is coupled to the cache array. The cache controller evicts entries from the cache array according to a cache replacement policy. The cache controller evicts a first cache line from the cache array by generating a writeback request for modified data from the first cache line, and subsequently generates a writeback request for modified data from a second cache line if the second cache line is about to satisfy the cache replacement policy and stores data from a common locality as the first cache line.