Atomic Sequence Cache Invalidation for Multi-Core Data Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-core hardware systems, atomic sequences are challenging to implement due to interruptions by other core processors and synchronizing memory caches, leading to potential deadlocks and failures in conditional storing operations.

Innovation Solution

A method involving a core processor initiating an atomic sequence by loading content from a memory location, maintaining a copy, and performing a compare-and-swap operation in cache memory to ensure data integrity and invalidate cache blocks associated with other core processors, preventing interruptions and ensuring successful conditional storing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If atomic sequences are implemented in multi-core hardware systems, then data integrity is improved, but interruptions by other core processors and cache synchronization issues worsen, leading to deadlocks and failures

Engineering Contradiction:
Improvedata integrityVSAvoidcache synchronization complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a message-passing interface (MPI) as an intermediary layer between core processors and cache memory systems. This mediator handles the complex synchronization and invalidation operations, shielding individual cores from the complexity of multi-cache coordination while ensuring data integrity through standardized communication protocols.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements feedback mechanisms where cache invalidation status and synchronization states are continuously monitored and communicated back to the executing core processor. This feedback loop allows the system to detect and handle potential deadlocks by providing real-time information about cache state changes and synchronization progress.

Inventive Principle:
Principle #23Feedback

2Reliability

If conditional storing operations are performed with compare-and-swap, then data consistency is improved, but the operation complexity and potential for deadlocks worsen

Engineering Contradiction:
Improvedata consistencyVSAvoidconditional storing operation simplicity
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system performs preliminary actions by pre-validating cache block states and checking for potential conflicts before executing compare-and-swap operations. This preliminary validation includes verifying cache coherence, checking for pending invalidations, and ensuring no other cores are accessing the same memory location, thereby reducing the likelihood of deadlocks during the actual conditional storing operation.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If cache blocks are invalidated for other core processors, then data integrity is improved, but the time required for synchronization and potential deadlocks worsen

Engineering Contradiction:
Improvedata integrityVSAvoidsynchronization time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the cache invalidation process into targeted, fine-grained operations rather than broad system-wide invalidations. When a conditional storing operation requires cache invalidation, only the specific cache blocks and sets that are actually affected are invalidated, leaving other caches untouched. This segmentation dramatically reduces the time required for synchronization while maintaining data integrity for the specific memory location being accessed.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9390023B2Method and apparatus for conditional storing of data using a compare-and-swap based approach
Publication Date: 2016.07.12 MARVELL ASIA PTE LTD
  • US9390023B2 patent drawing
  • US9390023B2 patent drawing
  • US9390023B2 patent drawing

AI summary

According to at least one example embodiment, a method and corresponding apparatus for conditionally storing data include initiating an atomic sequence by executing, by a core processor, an instruction/operation designed to initiate an atomic sequence. Executing the instruction designed to initiate the atomic sequence includes loading content associated with a memory location into a first cache memory, and maintaining an indication of the memory location and a copy of the corresponding content loaded. A conditional storing operation is then performed, the conditional storing operation includes a compare-and-swap operation, executed by a controller associated with a second cache memory, based on the maintained copy of the content and the indication of the memory location.