Selective Coherence Directory Controller for Multiprocessor Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Hardware coherence mechanisms in shared memory multiprocessing systems are complex and costly to implement, and deterministic coherence mechanisms can lead to performance issues, especially for heavily shared coherence units.

Innovation Solution

A coherence directory and controller system that selectively initiates coherence activity for subsequent requests based on the type of the request and the completion status of previous requests, allowing parallel coherence activity for simpler cases while blocking more complex cases until previous requests are completed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If deterministic coherence mechanisms block subsequent requests until previous requests complete, then coherence correctness is ensured, but performance suffers especially for heavily shared coherence units

Engineering Contradiction:
Improvecoherence correctnessVSAvoidperformance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies dynamics by making the coherence mechanism adaptive rather than static. The directory entry includes a field indicating whether parallel requests are permitted, allowing the system to dynamically switch between blocking and non-blocking behavior based on the specific coherence unit and access patterns. This resolves the contradiction by enabling high-performance parallel handling when safe, while maintaining correctness through selective blocking when necessary.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent applies local quality by treating different coherence units differently. Instead of a uniform blocking approach for all coherence units, each directory entry can independently specify whether parallel requests are permitted. This allows heavily shared coherence units to use blocking for correctness while less-contended units use parallel handling for performance, optimizing the system as a whole.

Inventive Principle:
Principle #3Local quality

2Reliability

If hardware coherence mechanisms are implemented to ensure consistent memory updates, then coherence is maintained, but the mechanism becomes complex and expensive to implement and repair

Engineering Contradiction:
ImprovecoherenceVSAvoidcoherence mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a software-based coherence protocol as an intermediary layer between processors and memory. Instead of complex hardware coherence logic, the patent uses software agents that communicate with a directory structure to manage coherence. This software intermediary simplifies the hardware design while maintaining coherence correctness through protocol-based coordination.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent uses a directory structure that maintains copies of coherence state information for each coherence unit. The directory entries track which processors have copies of coherence units and their validity states, allowing the system to manage coherence through information copying and validation rather than complex hardware interlocks.

Inventive Principle:
Principle #26Copying

3Reliability

If directory entries block all subsequent requests until completion, then deterministic coherence is maintained, but latency increases for valid parallel requests

Engineering Contradiction:
Improvedeterministic coherenceVSAvoidlatency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent makes the blocking behavior dynamic by including a permission field in each directory entry that indicates whether parallel requests are permitted. This allows the system to adaptively allow or block parallel requests based on the specific coherence unit's characteristics and current state, reducing unnecessary latency while maintaining deterministic coherence when required.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of request handling from a fixed blocking mode to a variable mode controlled by the parallel request permission field in directory entries. This parameter change allows the system to optimize between deterministic blocking and performance-oriented parallel handling based on workload characteristics and coherence unit properties.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7480770B2Semi-blocking deterministic directory coherence
Publication Date: 2009.01.20 ORACLE AMERICAN INC
  • US7480770B2 patent drawing
  • US7480770B2 patent drawing
  • US7480770B2 patent drawing

AI summary

In one embodiment, a node for a multi-node computer system comprises a coherence directory and a coherence controller. The coherence directory comprises a plurality of entries, wherein each entry corresponds to a respective coherence unit and stores a state identifying which nodes in the computer system are storing a copy of the coherence unit and further identifying a coherence state of the coherence unit according to a coherence protocol implemented in the computer system. Coupled to the directory and coupled to receive a first request for a requested coherence unit having a first entry in the coherence directory, the coherence controller is coupled to receive a second request for the requested coherence unit. The coherence controller is configured to selectively initiate coherence activity for the second request, if coherence activity for the first request is not yet complete, dependent on a type of the second request.