Selective Directory Update for Cache Coherency in Multiprocessors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multiprocessor systems with directory-based caches, existing coherence schemes lead to excessive directory updates and invalidation requests, causing unnecessary bus traffic and performance degradation, especially in regions of memory that are read-only or not frequently written.

Innovation Solution

Implementing a read/write bit for each cache line to control when processors update the memory directory, limiting updates to only when the block has been accessed by multiple processors and written to, thereby reducing unnecessary directory updates and invalidation requests.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If directory-based coherence schemes are used to maintain cache coherency between processors, then cache coherency is maintained, but excessive directory updates and invalidation requests occur causing unnecessary bus traffic and performance degradation

Engineering Contradiction:
Improvecache coherencyVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies local quality by differentiating the treatment of cache blocks based on their specific characteristics - modified versus unmodified blocks. The read/write bit in the directory selectively marks blocks that have been written to, enabling the system to apply different update policies: full updates for modified blocks and selective updates for unmodified blocks. This localized differentiation reduces unnecessary directory updates while maintaining coherency where needed.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent changes the state parameter of cache blocks by introducing a read/write bit that tracks whether a block has been modified. This parameter change enables the coherence protocol to distinguish between blocks requiring coherency enforcement (modified) and those that don't (unmodified), thereby reducing invalidation traffic for read-only or shared blocks while maintaining reliability for writable blocks.

Inventive Principle:
Principle #35Parameter changes

2Measurement precision

If presence bits are updated on every block replacement, then directory accuracy is maintained, but unnecessary bus traffic and directory updates occur

Engineering Contradiction:
Improvedirectory accuracyVSAvoidbus traffic
Core Design Contradiction:
Measurement precisionVSLoss of energy

Solution Approach 1:

The patent applies local quality by updating presence bits selectively based on the specific characteristics of the replaced block. Instead of uniformly updating presence bits for all replacements, the system checks the read/write bit and only updates when necessary (for modified blocks). This localized approach maintains directory accuracy for blocks requiring coherency while avoiding unnecessary updates for blocks that don't require it.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent applies partial action by performing presence bit updates only when necessary rather than on every block replacement. The read/write bit serves as a filter that enables partial updates - updating presence bits for modified blocks that require coherency enforcement while omitting updates for unmodified blocks where such updates would be excessive and unnecessary.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS8037252B2Method for reducing coherence enforcement by selective directory update on replacement of unmodified cache blocks in a directory-based coherent multiprocessor
Publication Date: 2011.10.11 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8037252B2 patent drawing
  • US8037252B2 patent drawing
  • US8037252B2 patent drawing

AI summary

Embodiments of the present invention generally provide techniques and apparatus to reduce the number of memory directory updates during block replacement in a system having a directory-based cache. The system may be implemented to utilize a read/write bit to determine the accessibility of a cache line and limit memory directory updates during block replacement to regions that are determined to be readable and writable by multiple processors.