Transactional Execution Facility for Multiprocessor Atomicity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multiprocessor environments, updating multiple storage locations simultaneously is challenging due to the need for serialization, which can lead to coarse-grained locking issues and potential deadlocks, and handling exception conditions is costly and complex.

Innovation Solution

A transactional execution facility that allows for block-concurrent storage accesses, enabling atomic updates of multiple storage locations and providing nested transactional processing modes, including constrained and nonconstrained execution, to manage updates and exceptions efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If lock words are used to serialize multiple storage location updates, then atomicity is improved, but serialization granularity becomes too coarse leading to reduced productivity

Engineering Contradiction:
ImproveatomicityVSAvoidserialization granularity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent divides the serialization mechanism into multiple independent lock words, each protecting specific storage locations. Instead of using a single lock word for all updates, the system creates segmented locks that can be acquired independently, allowing finer-grained parallelism while maintaining atomicity for each protected location.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each storage location or group of locations is protected by its own dedicated lock word, providing localized serialization. This allows different parts of the data structure to be updated concurrently by different CPUs, improving overall productivity while ensuring atomicity at each local level.

Inventive Principle:
Principle #3Local quality

2Productivity

If fine-grained serialization is implemented using lock hierarchies, then productivity is improved, but device complexity increases due to additional lock management

Engineering Contradiction:
Improveserialization granularityVSAvoidlock management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent combines multiple lock acquisition operations into a single transactional block. The system merges the complexity of acquiring multiple fine-grained locks into one atomic transaction, simplifying the management interface while maintaining fine-grained serialization benefits internally.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent introduces a transaction management intermediary that handles lock acquisition and release automatically. This mediator layer manages the complex interactions between multiple lock words, providing a simplified interface to programmers while handling the detailed lock management internally.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If lock words are used for serialization, then atomicity is improved, but deadlock risk increases

Engineering Contradiction:
ImproveatomicityVSAvoiddeadlock risk
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent implements dynamic lock acquisition within transactions, where locks are acquired and released based on actual execution paths and dependencies. This dynamic approach allows the system to adapt lock usage to the specific transaction needs, reducing unnecessary lock holding and minimizing deadlock opportunities.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system incorporates feedback mechanisms that monitor lock acquisition status and transaction progress. When conflicts are detected or transactions fail, the feedback system adjusts lock usage patterns and retry strategies, preventing deadlock conditions from developing by responding to system state changes in real-time.

Inventive Principle:
Principle #23Feedback

4Reliability

If recovery environments are established for exception handling, then reliability is improved, but program complexity increases

Engineering Contradiction:
Improveexception handlingVSAvoidprogram structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent establishes recovery environments and exception handling mechanisms in advance, before exceptions occur. Transaction boundaries and rollback capabilities are pre-configured, allowing the system to handle exceptions automatically without requiring complex runtime decision-making or intricate program restructuring.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The transactional execution facility provides self-service exception handling through automatic transaction rollback and recovery. When exceptions occur, the system automatically manages the recovery process without requiring complex external intervention or elaborate program-specific error handling code, reducing overall program complexity.

Inventive Principle:
Principle #25Self-service

Data Source

PatentEP2862070B1Transactional processing
Publication Date: 2019.04.17 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • EP2862070B1 patent drawingFigure 1
  • EP2862070B1 patent drawingFigure 2A~3B
  • EP2862070B1 patent drawingFigure 4~5

AI summary

A transaction is initiated via a transaction begin instruction. During execution of the transaction, the transaction may abort. If the transaction aborts, a determination is made as to the type of transaction. Based on the transaction being a first type of transaction, resuming execution at the transaction begin instruction, and based on the transaction being a second type, resuming execution at an instruction following the transaction begin instruction. Regardless of transaction type, resuming execution includes restoring one or more registers specified in the transaction begin instruction and discarding transactional stores. For one type of transaction, the nonconstrained transaction, the resuming includes storing information in a transaction diagnostic block.