Hardware Controller for Dynamic Cache Coherence Domain Repartitioning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Large-scale computing systems face challenges in scalability and performance due to the need for multiple cache coherence domains, as caching across large memory devices is not scalable or practical, leading to systems being partitioned with varying coherence protocols.

Innovation Solution

A hardware controller dynamically adjusts cache coherence domains based on application behavior and user input, using memory-driven algorithms to optimize performance and reliability by repartitioning the system and modifying cache coherence policies in real-time, independent of software layers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the system is partitioned into multiple cache coherence domains to manage large memory devices, then scalability is improved, but system complexity increases due to varying coherence protocols

Engineering Contradiction:
ImprovescalabilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system is divided into multiple cache coherence domains, each managing a portion of the large memory device. This segmentation allows the system to scale to petabyte-level memories by creating manageable coherence regions, where each domain implements coherence independently rather than requiring system-wide coherence protocols

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A coherence management component acts as an intermediary between different cache coherence domains. This mediator handles cross-domain coherence requests and data transfers, allowing domains to maintain independent coherence protocols while still enabling system-wide data consistency when needed

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If cache coherence domains are dynamically adjusted based on application behavior, then performance is improved, but control complexity increases

Engineering Contradiction:
ImproveperformanceVSAvoidcontrol complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system continuously monitors application behavior, cache access patterns, and performance metrics to dynamically adjust cache coherence domain boundaries. This feedback mechanism allows the system to optimize performance by adapting coherence domains to actual workload requirements rather than using static partitions

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

Cache coherence domains are made dynamic rather than static, allowing their boundaries and membership to change based on runtime conditions. The system can merge, split, or relocate domains in response to changing application behaviors, enabling optimal performance for different workload types

Inventive Principle:
Principle #15Dynamics

3Reliability

If hardware cache coherence is implemented across large memory devices, then data consistency is improved, but scalability deteriorates

Engineering Contradiction:
Improvedata consistencyVSAvoidscalability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

Instead of implementing cache coherence across the entire large memory device, the system segments memory into multiple coherence domains. Each domain maintains hardware cache coherence independently for its local memory portion, ensuring data consistency within domains while allowing the overall system to scale to much larger capacities

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10540286B2Systems and methods for dynamically modifying coherence domains
Publication Date: 2020.01.21 HEWLETT PACKARD ENTERPRISE DEV LP
  • US10540286B2 patent drawing
  • US10540286B2 patent drawing
  • US10540286B2 patent drawing

AI summary

Systems and methods for dynamically modifying coherence domains are discussed herein. In various embodiments, a hardware controller may be provided that is configured to automatically recognize application behavior and dynamically reconfigure coherence domains in hardware and software to tradeoff performance for reliability and scalability. Modifying the coherence domains may comprise repartitioning the system based on cache coherence independently of one or more software layers of the system. Memory-driven algorithms may be invoked to determine one or more dynamic coherence domain operations to implement. In some embodiments, declarative policy statements may be received from a user via one or more interfaces associated with the controller. The controller may be configured to dynamically adjust cache coherence policy based on the declarative policy statements received from the user.