Hybrid Cache Coherence via Fine-Grained Message Passing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing message passing systems in distributed shared memory architectures face scalability issues due to high complexity and inefficiency in maintaining cache coherence, particularly in large systems, where snoopy protocols do not scale and software-based solutions incur significant overhead and false sharing.

Innovation Solution

A hybrid hardware/software scheme that implements cache coherence using fine-grained direct messages, converting memory transactions into messages and vice versa, maintaining coherence at the granularity of cache blocks with moderate overhead, reducing false sharing and bandwidth demands.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If snoopy protocols are used for cache coherence, then cache coherence is maintained, but the system does not scale to large systems

Engineering Contradiction:
Improvesystem scalabilityVSAvoidprotocol complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the cache coherence management by dividing the system into home nodes and foreign nodes, with each node maintaining a directory of cache blocks. This segmentation replaces the monolithic snoopy protocol with distributed, localized coherence management, enabling the system to scale to large numbers of processors while maintaining coherence through fine-grained control.

Inventive Principle:
Principle #1Segmentation

2Ease of manufacture

If software-based cache coherence solutions are used, then implementation flexibility is achieved, but processing overhead and false sharing increase

Engineering Contradiction:
Improveimplementation flexibilityVSAvoidprocessing overhead
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent replaces software-based coherence management with a hardware-supported directory-based mechanism. The system interface hardware automatically generates and processes coherence messages, eliminating the need for software intervention in coherence operations. This substitution reduces processing overhead and false sharing while maintaining implementation flexibility through the directory structure.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Productivity

If fine-grained hardware message passing is used, then processing overhead is reduced, but system complexity increases

Engineering Contradiction:
Improveprocessing overheadVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a system interface as an intermediary between the processor and the coherence protocol. This interface automatically generates coherence messages, manages directory updates, and handles message passing between nodes. By offloading coherence management to this intermediary hardware component, the processor is freed from coherence overhead while the system maintains manageable complexity through standardized interface operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7895400B2Hybrid cache coherence using fine-grained hardware message passing
Publication Date: 2011.02.22 ORACLE AMERICAN INC
  • US7895400B2 patent drawing
  • US7895400B2 patent drawing
  • US7895400B2 patent drawing

AI summary

Multiprocessor systems conducting operations utilizing global shared memory must ensure that the memory is coherent. A hybrid system that combines hardware memory transactions with that of direct messaging provides memory coherence with minimal overhead requirement or bandwidth demands. Memory access transactions are intercepted and converted to direct messages which are then communicated to a target and/or remote node. Thereafter the message invokes a software handler which implements the cache coherence protocol. The handler uses additional messages to invalidate or fetch data in other caches, as well as to return data to the requesting processor. These additional messages are converted to appropriate hardware transactions by the destination system interface hardware.