Acquire-Release Cache Coherency for Multi-Core Processors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Heterogeneous computing systems face challenges in maintaining cache coherency across multiple processors, particularly in ensuring that shared variable data is propagated in a timely and ordered fashion among different processor cores.

Innovation Solution

The implementation of on-demand cache coherency techniques using store-with-release and load-with-acquire operations, which involve cache invalidations and flushes to ensure that all processors have the most up-to-date values of shared data, allowing for an acquire/release memory ordering model.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If cache is used to speed up processor execution, then processor speed is improved, but cache coherency maintenance complexity increases

Engineering Contradiction:
Improveprocessor execution speedVSAvoidcache coherency maintenance complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The cache coherency system performs self-service through automatic invalidation and flushing mechanisms. When a processor writes to shared data, the cache coherency system automatically invalidates cached copies in other processors' caches and flushes data to system memory without requiring manual intervention, thus maintaining coherency while preserving processor speed.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system implements feedback through cache invalidation protocols and memory ordering operations. When data is modified in one processor's cache, the system provides feedback to other processors by invalidating their cached copies, ensuring they retrieve updated data from system memory, thereby maintaining coherency automatically.

Inventive Principle:
Principle #23Feedback

2Reliability

If cache invalidation and flush operations are performed to maintain coherency, then data consistency is improved, but system performance overhead increases

Engineering Contradiction:
Improvedata consistencyVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system applies partial action by performing cache invalidation and flush operations only when necessary - specifically when processors access shared variables with acquire/release semantics. Not all cache accesses trigger coherency operations, only those that require guaranteed ordering and visibility, thus reducing unnecessary overhead while maintaining data consistency.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system changes the parameter of memory ordering from strict total ordering to acquire/release ordering. This allows the system to relax ordering constraints for operations that don't require them, reducing the frequency and overhead of cache invalidation and flush operations while still guaranteeing correctness for operations that need strong ordering semantics.

Inventive Principle:
Principle #35Parameter changes

3Stability of the object's composition

If acquire/release memory ordering model is implemented, then memory access ordering is improved, but implementation complexity increases

Engineering Contradiction:
Improvememory access orderingVSAvoidimplementation complexity
Core Design Contradiction:
Stability of the object's compositionVSDevice complexity

Solution Approach 1:

The memory ordering model is segmented into two distinct operations: acquire operations for reading shared data and release operations for writing shared data. Each operation type has specific semantics and requirements, allowing the system to implement ordering guarantees in a modular way rather than requiring complex total ordering for all operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The cache coherency system acts as an intermediary that mediates between acquire/release operations and actual cache memory accesses. It translates high-level acquire/release semantics into low-level cache invalidation, flushing, and validation operations, shielding programmers from implementation complexity while ensuring correct ordering behavior.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9218289B2Multi-core compute cache coherency with a release consistency memory ordering model
Publication Date: 2015.12.22 QUALCOMM INC
  • US9218289B2 patent drawing
  • US9218289B2 patent drawing
  • US9218289B2 patent drawing

AI summary

A method includes storing, with a first programmable processor, shared variable data to cache lines of a first cache of the first processor. The method further includes executing, with the first programmable processor, a store-with-release operation, executing, with a second programmable processor, a load-with-acquire operation, and loading, with the second programmable processor, the value of the shared variable data from a cache of the second programmable processor.