Cache Delta Allocation for Multi-Processor Atomic Operations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-processor systems with shared memory, performing multiple atomic operations on the same memory location leads to performance degradation due to the need for serializing these operations, which causes stalls and increased power consumption as data is ping-ponged between cores, especially in systems with a large number of cores.

Innovation Solution

A hierarchical memory system with cache coherency control circuitry allows processors to allocate storage locations for delta values instead of the actual data item, performing operations on these delta values locally and updating the data item only when necessary, reducing the need for frequent memory access and enabling efficient handling of marked requests that do not require returning a value.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If atomic operations are serialized to maintain observable semantics, then atomicity is preserved, but performance degrades significantly with multiple cores

Engineering Contradiction:
Improveatomicity semanticsVSAvoidoperation throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The atomic operation is segmented into two independent phases: (1) computing the delta value locally in each core's cache without blocking others, and (2) applying the delta to the base value in memory. This segmentation allows parallel execution of delta computations while preserving atomicity in the final result, resolving the contradiction between maintaining atomicity semantics and achieving high throughput with multiple cores.

Inventive Principle:
Principle #1Segmentation

2Reliability

If data is ping-ponged between cores for atomic operations, then atomicity is maintained, but power consumption increases

Engineering Contradiction:
Improveatomic operation correctnessVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent extracts the computationally intensive delta calculation from the shared memory system and performs it locally in each core's private cache. Only the compact delta value (not the entire data structure) needs to be transferred to memory for the final apply operation. This extraction reduces the volume of data ping-ponged between cores and memory, thereby maintaining atomicity while significantly reducing power consumption.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If all memory accesses are blocked during atomic operations, then atomicity is ensured, but system throughput decreases

Engineering Contradiction:
Improveatomic operation integrityVSAvoidmemory access throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent introduces dynamic behavior to atomic operations by allowing non-atomic delta computations to proceed in parallel in each core's cache, then dynamically coordinating only at the final apply stage. The memory access pattern transitions from blocked (traditional atomic operations) to non-blocking during delta computation, with coordination happening only when deltas need to be applied. This dynamic approach ensures atomicity integrity while maintaining high memory access throughput throughout the system.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9146870B2Performance of accesses from multiple processors to a same memory location
Publication Date: 2015.09.29 ARM LTD
  • US9146870B2 patent drawing
  • US9146870B2 patent drawing
  • US9146870B2 patent drawing

AI summary

A processing apparatus comprising: several processors for processing data; a hierarchical memory system comprising a memory accessible to all the processors, and several caches corresponding to each of the processors, each of the caches being accessible to the corresponding processor and comprising storage locations and corresponding indicators. There is also cache coherency control circuitry for maintaining coherency of data stored in the hierarchical memory system. The processors are configured to respond to receipt of a predefined request to perform an operation on a data item to determine if the cache corresponding to the processor receiving the request has a storage location allocated to the data item. If not, the processing apparatus is configured to: allocate a storage location within the cache to the data item, set the indicator corresponding to the storage location to indicate that the storage location is storing a delta value, set data in the allocated storage location to an initial value. The processor is configured in response to the predefined request to perform the operation on data within the storage location allocated to the data item.