Transactional Store Observability in Multiprocessor Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multiprocessor environments, managing concurrent updates to shared storage locations by multiple CPUs is challenging due to the need for serialization, which often results in coarse-grained locking and potential deadlocks, and existing solutions like software-based transactional memory introduce performance degradation.

Innovation Solution

A method for controlling observability of transactional and non-transactional stores by using a transactional execution facility that delays committing stores to memory until transaction completion, allowing for atomic updates and preserving changes during aborted transactions, and propagating non-transactional stores even after transaction aborts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If lock words are used for interlocked update of storage locations, then atomicity is ensured, but serialization granularity becomes coarse leading to reduced productivity

Engineering Contradiction:
ImproveatomicityVSAvoidserialization overhead
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent divides the storage location into multiple segments or granules, allowing fine-grained locking on individual segments rather than coarse-grained locking on the entire storage location. This enables concurrent access to different segments by multiple CPUs, reducing serialization overhead while maintaining atomicity within each segment.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements different locking granularities for different portions of the storage location based on access patterns and conflict probabilities. Frequently accessed or conflict-prone segments receive finer-grained locking, while less critical segments use coarser-grained approaches, optimizing the balance between atomicity and productivity.

Inventive Principle:
Principle #3Local quality

2Productivity

If finer-grained serialization is implemented using hierarchy of lock points, then productivity is improved, but device complexity and potential for deadlocks increase

Engineering Contradiction:
ImproveconcurrencyVSAvoidlock hierarchy complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary layer (such as a lock manager or arbitration mechanism) that automatically handles the complexity of lock hierarchy management, deadlock detection, and resolution. This intermediary abstracts the complex lock interactions from the application logic, enabling fine-grained concurrency without proportionally increasing visible system complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements dynamic lock granularity adjustment based on runtime conditions, such as access patterns, conflict frequency, and system load. The locking strategy adapts automatically, coarsening or finening granularity as needed, which reduces the static complexity of the lock hierarchy while maintaining high concurrency when possible.

Inventive Principle:
Principle #15Dynamics

3Reliability

If transactional execution facility is used to delay committing stores, then atomicity and fine-grained concurrency control are achieved, but memory access performance deteriorates

Engineering Contradiction:
ImproveatomicityVSAvoidmemory access speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent performs preliminary actions by buffering store operations in local storage buffers before committing them to main memory. This allows multiple store operations to be prepared and staged locally without immediate memory access, then committed in batches or atomically when appropriate, reducing the frequency and impact of slow memory accesses while maintaining atomicity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent maintains continuity of useful action by allowing transactional stores to be buffered and processed asynchronously. The transactional execution facility continues to accept and buffer store operations without blocking, and memory commitment occurs in the background when resources are available, keeping the system productive while ensuring atomic commitment when needed.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS9378143B2Managing transactional and non-transactional store observability
Publication Date: 2016.06.28 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9378143B2 patent drawing
  • US9378143B2 patent drawing
  • US9378143B2 patent drawing

AI summary

Embodiments relate to controlling observability of transactional and non-transactional stores. An aspect includes receiving one or more store instructions. The one or more store instructions are initiated within an active transaction and include store data. The active transaction effectively delays committing stores to memory until successful completion of the active transaction. The store data is stored in a local storage buffer causing alterations to the local storage buffer from a first state to a second state. A signal is received that the active transaction has terminated. If the active transaction has terminated abnormally then: the local storage buffer is reverted back to the first state if the store data was stored by a transactional store instruction, and is propagated to a shared cache if the store instruction is non-transactional.