Conditional Multi-Store Synchronization for Concurrency Bottlenecks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current synchronization techniques, such as load-linked/store-conditional (LL/SC) and transactional memory, face limitations in coordinating competing computations, including restrictions on the number of stores that can be executed and the need to buffer all stores until a transaction is completed, which complicates concurrency and scalability.

Innovation Solution

The introduction of conditional multi-store synchronization mechanisms allows a program to read from a flagged memory location and store values to other locations only if the flagged location remains unchanged, enabling arbitrary numbers of conditional stores without the need for atomic buffering, thus facilitating more efficient concurrency techniques.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If transactional memory mechanisms are used to coordinate competing computations, then synchronization reliability is improved, but device complexity and scalability worsen due to the need to buffer all stores and monitor multiple locations

Engineering Contradiction:
Improvesynchronization reliabilityVSAvoidimplementation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the monitoring function from transactional memory mechanisms, keeping only the essential capability of detecting changes to a flagged memory location while discarding the complex requirements of buffering all stores and monitoring multiple locations. This allows the system to maintain synchronization reliability through change detection without the overhead of full transactional memory implementation.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent uses a simple flagged memory location that can be easily reset and reused, rather than maintaining complex transactional memory state structures. The flag acts as a disposable indicator that provides the necessary synchronization information without the burden of managing large buffers or monitoring multiple cache lines.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

2Reliability

If transactional memory buffers all stores until transaction completion, then atomicity is improved, but productivity worsens due to limits on the number of stores that can be executed

Engineering Contradiction:
ImproveatomicityVSAvoidstore execution throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies partial action by monitoring only a single flagged memory location rather than all memory locations accessed by a transaction. This partial monitoring approach allows stores to proceed without being buffered, as the system only needs to detect changes to the flag to determine whether to allow store visibility, thereby increasing store execution throughput while maintaining sufficient atomicity guarantees.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent segments the monitoring requirement down to a single critical memory location (the flag) rather than monitoring the entire transactional memory state. This segmentation allows the system to process stores incrementally without waiting for complete transaction completion, improving productivity while maintaining the essential synchronization guarantee.

Inventive Principle:
Principle #1Segmentation

3Measurement precision

If load-linked/store-conditional instructions are used, then synchronization precision is improved, but adaptability worsens because only a single store can be made conditional and must target the same location as the load

Engineering Contradiction:
Improvesynchronization precisionVSAvoidstore coordination flexibility
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

The patent makes the single flagged memory location serve multiple purposes: it acts as both the monitor for change detection and the coordinator for multiple independent stores. This universal flag mechanism allows any number of stores to be conditioned on the same flag, providing adaptability and versatility while maintaining the precision of change-based synchronization.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent introduces a flagged memory location as an intermediary that mediates between multiple stores and the underlying memory system. This intermediary flag allows precise monitoring of a single location while coordinating the visibility of multiple stores, thereby maintaining synchronization precision while dramatically improving adaptability.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Reliability

If transactional memory monitors multiple cache line locations, then reliability of change detection is improved, but productivity worsens due to deterministic failures when variables map to the same cache set

Engineering Contradiction:
Improvechange detection reliabilityVSAvoidtransaction success rate
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the change detection function from multi-location cache line monitoring and concentrates it in a single dedicated flagged memory location. This eliminates the problem of variables mapping to the same cache set, as the flag is a separate, dedicated location that does not suffer from cache set conflicts, thereby maintaining reliable change detection while improving transaction success rate.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS7680989B2Instruction set architecture employing conditional multistore synchronization
Publication Date: 2010.03.16 ORACLE AMERICAN INC
  • US7680989B2 patent drawing
  • US7680989B2 patent drawing
  • US7680989B2 patent drawing

AI summary

We propose a class of mechanisms to support a new style of synchronization that offers simple and efficient solutions to several existing problems for which existing solutions are complicated, expensive, and/or otherwise inadequate. In general, the proposed mechanisms allow a program to read from a first memory location (called the “flagged” location), and to then continue execution, storing values to zero or more other memory locations such that these stores take effect (i.e., become visible in the memory system) only while the flagged memory location does not change. In some embodiments, the mechanisms further allow the program to determine when the first memory location has changed. We call the proposed mechanisms conditional multi-store synchronization mechanisms and define aspects of an instruction set architecture consistent therewith.