Directory Update Policy for Multiprocessor Cache Coherency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Directory-based cache coherency protocols in multiprocessor systems face inefficiencies due to high memory bandwidth and power consumption, particularly in systems using DRAM memory for directory updates, where write bandwidth often exceeds read bandwidth, leading to poor memory utilization.

Innovation Solution

Implementing a specialized directory update policy that prohibits E-to-I directory state transitions in local memory regions, utilizing content-addressable memory to identify local memory regions and reducing unnecessary directory updates by avoiding changes to the directory state when cache lines are primarily owned by a single processor thread.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If directory-based cache coherency protocols are used in multiprocessor systems, then cache coherency is maintained, but memory bandwidth consumption and power consumption increase significantly

Engineering Contradiction:
Improvecache coherencyVSAvoidmemory bandwidth consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent applies local quality by differentiating between local memory regions and non-local memory regions. For local memory regions, E-to-I directory transitions are prohibited, allowing caches to retain exclusive state longer. This localized policy reduction reduces unnecessary directory updates and memory transactions, thereby decreasing memory bandwidth consumption and power usage while maintaining coherency for locally-owned cache lines.

Inventive Principle:
Principle #3Local quality

2Reliability

If directory updates are performed for every cache access, then cache coherency is maintained, but write bandwidth exceeds read bandwidth leading to poor memory utilization

Engineering Contradiction:
Improvecache coherencyVSAvoidmemory utilization efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements local quality by introducing a policy that specifically targets local memory regions. In these regions, E-to-I directory transitions are prohibited, which reduces the frequency of directory updates and memory writes. This selective approach maintains coherency where needed while reducing unnecessary write operations in local regions, thereby improving overall memory utilization efficiency and balancing write bandwidth consumption.

Inventive Principle:
Principle #3Local quality

3Use of energy by moving object

If on-chip directory cache is implemented, then external memory bandwidth is reduced, but ASIC costs and on-chip power requirements increase

Engineering Contradiction:
Improveexternal memory bandwidthVSAvoidASIC cost and design complexity
Core Design Contradiction:
Use of energy by moving objectVSDevice complexity

Solution Approach 1:

The patent applies partial action by implementing a selective directory update policy that prohibits only E-to-I transitions in local memory regions, rather than implementing a complete on-chip directory cache. This partial measure reduces external memory bandwidth consumption and power requirements for directory updates without incurring the full ASIC cost and design complexity of an on-chip directory cache, achieving a cost-effective compromise.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS7941610B2Coherency directory updating in a multiprocessor computing system
Publication Date: 2011.05.10 HEWLETT PACKARD ENTERPRISE DEV LP
  • US7941610B2 patent drawing
  • US7941610B2 patent drawing
  • US7941610B2 patent drawing

AI summary

Coherency directory updating is provided in a multiprocessor computing system. A plurality of memory resources have a directory, and are operably connected to an interconnect fabric. A cell is operably connected to the interconnect fabric. The cell has a cache including an entry for each of a plurality of coherency units, each coherency unit included in a memory block representing a contiguous portion of the plurality of memory resources. A controller is operably connected to the interconnect fabric. The controller is configured to control a portion of the plurality of memory resources, and has a comparator configured to identify whether a memory block is local. If the memory block is local, the controller is configured to set a state of the directory to exclusive for a write transaction. If the memory block is not local, the controller is configured to set the state to invalid for a write transaction.