Conditional Transaction End Instruction for Multiprocessing Abort Mitigation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current multiprocessing computing environments face difficulties in influencing transactional execution across different CPUs and I/O subsystems, leading to frequent transaction aborts due to conflicts over shared cache lines, which hinders productive concurrent operations.

Innovation Solution

The introduction of a Conditional Transaction End (CTEND) instruction allows a program to inspect data modified by other CPUs or the I/O subsystem, enabling conditional termination or delay of transactional execution based on specific conditions, such as predefined values or events, thereby mitigating conflict-induced aborts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a program executes transactional instructions on one CPU, then the transactional execution provides atomicity and consistency, but any store to a memory location accessed by another CPU is likely to be treated as a conflict situation, resulting in the aborting of transactional execution

Engineering Contradiction:
Improvetransactional execution consistencyVSAvoidconcurrent operation efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent introduces a dynamic mechanism where the transaction end instruction can adapt its behavior based on runtime conditions. The instruction fetches an operand from memory and dynamically decides whether to end the transaction or delay completion based on the operand's value, allowing the system to adjust transaction behavior in response to concurrent access patterns rather than following a static conflict detection rule

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of transaction end condition from a fixed state to a variable state dependent on memory operand values. By introducing conditional logic that evaluates memory contents, the system transforms the transaction end decision from a deterministic process to one that adapts based on the actual state of shared resources, thereby reducing unnecessary aborts

Inventive Principle:
Principle #35Parameter changes

2Reliability

If conflict detection is implemented to ensure transactional integrity, then transactional execution consistency is maintained, but it becomes exceedingly difficult for a program on one CPU to influence the execution of a program on another CPU

Engineering Contradiction:
Improvetransactional execution integrityVSAvoidcross-CPU program influence capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent introduces memory operands as intermediaries that mediate between CPUs. Instead of direct CPU-to-CPU influence which is blocked by conflict detection, programs can write conditional values to memory locations that other CPUs can read. The transaction end instruction uses these memory intermediaries to indirectly influence transaction behavior across CPUs without triggering conflict aborts

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements a feedback mechanism where the transaction end instruction reads operand values from memory (which may have been modified by other CPUs or I/O subsystems) and uses this feedback to decide whether to end or delay the transaction. This creates a communication channel between CPUs through shared memory states without requiring direct coordination that would trigger conflict detection

Inventive Principle:
Principle #23Feedback

3Reliability

If stores to shared memory locations are treated as conflict situations, then transactional access consistency is maintained, but frequent transaction aborts occur, reducing system productivity

Engineering Contradiction:
Improvetransactional access consistencyVSAvoidsystem throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies partial action by allowing transactions to proceed with stores to shared memory locations without immediate abort. Instead of fully enforcing conflict detection that would abort any store to a shared location, the system partially enforces consistency by allowing the store to complete and then conditionally ending or delaying the transaction based on the actual memory value, thereby avoiding unnecessary aborts while maintaining consistency

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10956156B2Conditional transaction end instruction
Publication Date: 2021.03.23 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10956156B2 patent drawing
  • US10956156B2 patent drawing
  • US10956156B2 patent drawing

AI summary

A Conditional Transaction End (CTEND) instruction is provided that allows a program executing in a nonconstrained transactional execution mode to inspect a storage location that is modified by either another central processing unit or the Input/Output subsystem. Based on the inspected data, transactional execution may be ended or aborted, or the decision to end/abort may be delayed, e.g., until a predefined event occurs. For instance, when the instruction executes, the processor is in a nonconstrained transaction execution mode, and the transaction nesting depth is one at the beginning of the instruction, a second operand of the instruction is inspected, and based on the inspected data, transaction execution may be ended or aborted, or the decision to end/abort may be delayed, e.g., until a predefined event occurs, such as the value of the second operand becomes a prespecified value or a time interval is exceeded.