Cache Coherency Directory for Multiprocessor Contention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multiprocessor environments with shared cache lines, existing cache coherency mechanisms face challenges in managing cache line ownership and preventing contention between processors, leading to potential inconsistencies and inefficiencies in cache management.

Innovation Solution

A cache memory coherency system is introduced that utilizes a shared address space across multiple processors, employing a store address list, fetch address list, priority and pipeline module, request tracker module, and read/write address list to manage cache line requests and ensure coherency through status bit tracking and deferred state management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If cache lines are shared across multiple processors to improve memory utilization, then productivity is improved, but cache coherency and consistency deteriorate due to contention and ownership conflicts

Engineering Contradiction:
Improvememory utilizationVSAvoidcache coherency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces a coherency directory as an intermediary structure that tracks ownership and validity states of cache lines across multiple processors. This directory acts as a mediator that coordinates access between processors, resolving contention without sacrificing memory utilization. The directory maintains state information (valid, modified, shared) that enables coherent cache management while allowing multiple processors to efficiently access shared memory.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If cache ownership is strictly managed to prevent inconsistencies, then cache coherency is improved, but device complexity increases due to ownership tracking mechanisms

Engineering Contradiction:
Improvecache coherencyVSAvoidownership tracking
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the cache coherency management into distinct functional components: a coherency directory for tracking ownership, validity bits for state monitoring, and snoop logic for inter-processor coordination. This segmentation allows each component to handle specific aspects of coherency management independently, reducing overall system complexity while maintaining reliable cache coherency across multiple processors.

Inventive Principle:
Principle #1Segmentation

3Productivity

If cache lines are evicted to accommodate new lines, then productivity is improved through better cache utilization, but loss of time occurs due to eviction overhead and potential re-fetching

Engineering Contradiction:
Improvecache utilizationVSAvoideviction overhead
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements preliminary actions by pre-tracking cache line ownership and validity states in the coherency directory before eviction is needed. When a cache line needs to be evicted, the system checks the directory to determine if the line is shared or modified, and performs appropriate actions (invalidation, write-back, or simple eviction) in advance. This preliminary tracking eliminates costly runtime checks and reduces eviction overhead, maintaining high cache utilization with minimal time loss.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8375171B2System and method for providing L2 cache conflict avoidance
Publication Date: 2013.02.12 UNISYS CORP
  • US8375171B2 patent drawing
  • US8375171B2 patent drawing
  • US8375171B2 patent drawing

AI summary

A system provides a cache memory coherency mechanism within a multi-processor computing system utilizing a shared memory space across the multiple processors. The system possesses a store address list for storing cache line addresses corresponding to a cache line write request issued by one of the multiple processors, a fetch address list for storing cache line addresses corresponding to a cache line fetch request issued by one of the multiple processors, a priority and pipeline module, a request tracker module and a read/write address list. The store address list and the fetch address list are queues containing result in cache lookup requests being done by the priority and pipeline module; and each entry in the store address list and the fetch address list possess status bits which indicate the state of the request.