Cache Conflict Miss Reduction via Hash-Based Address Translation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for reducing conflict misses in cache memories, such as increasing cache set associativity and staggered memory allocation, are limited in effectiveness and performance due to increased logic complexity and inefficiencies in addressing skewed access patterns, particularly in modern processor systems with common data structure layouts.

Innovation Solution

A translation table is used to generate and store hash values from the real page-ID portion of virtual addresses, which are then combined with other address bits to index into a cache set, maximizing address spreading and minimizing conflict misses without degrading cache performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If cache set associativity is increased to reduce conflict misses, then conflict misses are reduced, but logic complexity increases and cache access speed may decrease

Engineering Contradiction:
Improveconflict miss reductionVSAvoidlogic complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the address space by using a translation table to map virtual addresses to real addresses, dividing the addressing process into two stages: virtual address translation and cache set indexing. This segmentation allows the cache to maintain lower associativity while reducing conflict misses through better address distribution.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The translation table acts as an intermediary between the virtual address space and the physical cache structure. It mediates the address translation process, allowing the cache to achieve better conflict miss performance without increasing set associativity, thus avoiding the complexity penalty.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If cache size is increased to reduce capacity misses, then capacity misses are reduced, but the upper limit on associativity increase is reached due to complexity

Engineering Contradiction:
Improvecapacity miss reductionVSAvoidcache structure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a dynamic translation table that adapts to different address translation requirements. This dynamic structure allows the cache to efficiently handle capacity misses without requiring a static increase in cache size or associativity, maintaining flexibility while avoiding complexity.

Inventive Principle:
Principle #15Dynamics

3Ease of operation

If traditional cache indexing is used with common data structure layouts, then simple addressing is maintained, but conflict misses increase due to skewed access patterns

Engineering Contradiction:
Improveaddressing simplicityVSAvoidconflict miss rate
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent changes the addressing parameters by introducing a translation table that transforms virtual addresses into real addresses with modified indexing characteristics. This parameter change allows the cache to handle skewed access patterns from common data structure layouts more effectively, reducing conflict misses while maintaining simple addressing operations.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8751751B2Method and apparatus for minimizing cache conflict misses
Publication Date: 2014.06.10 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8751751B2 patent drawing
  • US8751751B2 patent drawing
  • US8751751B2 patent drawing

AI summary

A method for minimizing cache conflict misses is disclosed. A translation table capable of facilitating the translation of a virtual address to a real address during a cache access is provided. The translation table includes multiple entries, and each entry of the translation table includes a page number field and a hash value field. A hash value is generated from a first group of bits within a virtual address, and the hash value is stored in the hash value field of an entry within the translation table. In response to a match on the entry within the translation table during a cache access, the hash value of the matched entry is retrieved from the translation table, and the hash value is concatenated with a second group of bits within the virtual address to form a set of indexing bits to index into a cache set.