Conditional Transaction End Instruction for Multiprocessing Conflict Resolution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multiprocessing computing environments, it is difficult for a program executing on one CPU to influence the execution of another CPU when both are in transactional-execution mode, as store operations to shared memory locations often result in transactional conflicts leading to aborts.

Innovation Solution

A Conditional Transaction End (CTEND) instruction is introduced, allowing a program to inspect data modified by another CPU or the I/O subsystem and decide whether to end or delay transactional execution based on the inspected data, enabling more control over transactional execution without causing conflicts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a program executes store operations to shared memory locations in transactional-execution mode, then the program can modify shared data, but transactional conflicts occur leading to aborts when another CPU accesses the same locations

Engineering Contradiction:
Improvetransactional execution completionVSAvoidtransactional execution success
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The CTEND instruction reads data from shared memory location and uses it as a condition to determine whether to end the transaction. This feedback mechanism allows the transaction to check the current state of shared data before committing, enabling conditional termination based on whether another CPU has modified the data, thus avoiding conflicts while maintaining productivity

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The transaction end operation is made dynamic and conditional rather than static and fixed. The CTEND instruction introduces a condition-based decision point that allows the transaction to adapt its termination behavior based on real-time data state, transforming a rigid transaction model into a flexible one that can respond to concurrent accesses

Inventive Principle:
Principle #15Dynamics

2Ease of operation

If a program uses standard transaction end instructions, then the transaction completes immediately, but the program cannot inspect data modified by another CPU before ending the transaction

Engineering Contradiction:
Improvetransaction control flexibilityVSAvoiddata state information
Core Design Contradiction:
Ease of operationVSLoss of information

Solution Approach 1:

The CTEND instruction performs a preliminary read of the shared data location before ending the transaction. This preliminary action allows the program to inspect the current state of data modified by another CPU and make an informed decision about whether to end the transaction, preventing loss of critical data state information

Inventive Principle:
Principle #10Preliminary action

3Productivity

If both CPUs execute in transactional-execution mode and access the same memory location, then concurrent processing is achieved, but conflict detection causes one or both transactions to abort

Engineering Contradiction:
Improveconcurrent processing throughputVSAvoidtransaction abort recovery time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The CTEND instruction acts as an intermediary between the transactional execution and the shared memory system. Instead of direct conflict detection that causes aborts, the CTEND provides a mediation mechanism that reads the data state and conditions the transaction end on the observed state, allowing concurrent access without forced aborts and reducing time loss

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10901736B2Conditional instruction end operation
Publication Date: 2021.01.26 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10901736B2 patent drawing
  • US10901736B2 patent drawing
  • US10901736B2 patent drawing

AI summary

A conditional instruction end facility is provided that allows completion of an instruction to be delayed. In executing the machine instruction, an operand is obtained, and a determination is made as to whether the operand has a predetermined relationship with respect to a value. Based on determining that the operand does not have the predetermined relationship with respect to the value, the obtaining and the determining are repeated. Based on determining that the operand has the predetermined relationship with respect to the value, execution of the instruction is completed. The obtaining the operand, the determining whether the operand has the predetermined relationship, the based on determining that the operand does not have the predetermined relationship with respect to the value, repeating the obtaining and the determining, and the based on determining that the operand has the predetermined relationship with respect to the value, completing execution of the instruction are performed as part of a single instruction having one operation code.