Transactional Memory Suspend Resumption Mechanism

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Transactional memory systems face challenges in maintaining data consistency during unbroken suspended execution, as existing mechanisms often lead to premature abort handling and inconsistent memory states due to interrupts and cache evictions, and they restrict operations within transactions to ensure rollback capabilities.

Innovation Solution

The implementation of hardware interfaces and software mechanisms that allow for unbroken suspended execution by saving precise and pre-transactional register states, enabling suspended blocks of code to complete without immediate abort handling, and using shared memory flags to manage thread sequencing and commit ordering.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If transactions are executed atomically with immediate abort handling, then data consistency is maintained, but execution time increases due to premature abort handling and interrupted suspended blocks

Engineering Contradiction:
Improvedata consistencyVSAvoidexecution time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by saving register states (both precise and pre-transactional) before suspending a transaction. This allows the transaction to be resumed later without repeating state-saving operations, reducing execution time while maintaining the ability to roll back if needed. The register state saving occurs in advance before the suspended block executes, enabling fast resumption.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces dynamic resumption capability where suspended transactions can be resumed at any point after state saving, rather than requiring immediate abort handling. The system dynamically adjusts the transaction state based on whether resumption is needed, allowing flexible execution flow that reduces time loss while maintaining data consistency through controlled resumption points.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If interrupted suspended blocks are supported, then arbitrary operations within transactions can complete, but memory state consistency may be compromised due to cache evictions and interrupts

Engineering Contradiction:
Improveoperation flexibilityVSAvoidmemory state consistency
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system performs preliminary state saving of both precise register state (current execution state) and pre-transactional register state (state before transaction began) before allowing suspension. This preliminary action ensures that when the transaction resumes, the correct state can be restored, maintaining memory consistency even though the block was interrupted and may have executed arbitrary operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses register state saving as an intermediary mechanism between the suspended block execution and the final memory state. The saved register states act as a mediator that bridges the gap between interrupted execution and consistent state restoration, allowing arbitrary operations to execute while ensuring memory consistency through proper state management and potential rollbacks if needed.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If thread sequencing and commit ordering are managed with shared memory flags, then speculative parallelization is enabled, but communication overhead increases due to shared memory accesses

Engineering Contradiction:
Improveparallel execution efficiencyVSAvoidcommunication overhead
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary state saving before suspension, which includes capturing the necessary thread sequencing and commit ordering information. By saving the register states that contain this information, the system eliminates the need for repeated shared memory accesses during resumption, reducing communication overhead while maintaining speculative parallelization benefits.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses copying of register states (both precise and pre-transactional) as an alternative to continuous shared memory communication. Instead of threads constantly accessing shared memory flags to check sequencing and commit ordering, the system copies the necessary state information into saved register states, reducing communication overhead while enabling efficient speculative parallel execution.

Inventive Principle:
Principle #26Copying

4Reliability

If register states are saved for unbroken suspended execution, then execution continuity is maintained, but device complexity increases due to additional hardware interfaces and software mechanisms

Engineering Contradiction:
Improveexecution continuityVSAvoidhardware and software complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system uses copying of existing register states (both precise and pre-transactional) to achieve execution continuity without requiring entirely new hardware structures. By copying and managing existing register contents, the patent reduces the complexity increment compared to implementing completely new state management hardware, while still achieving unbroken suspended execution capability.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9626187B2Transactional memory system supporting unbroken suspended execution
Publication Date: 2017.04.18 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9626187B2 patent drawing
  • US9626187B2 patent drawing
  • US9626187B2 patent drawing

AI summary

Mechanisms are provided, in a data processing system having a processor and a transactional memory, for executing a transaction in the data processing system. These mechanisms execute a transaction comprising one or more instructions that modify at least a portion of the transactional memory. The transaction is suspended in response to a transaction suspend instruction being executed by the processor. A suspended block of code is executed in a non-transactional manner while the transaction is suspended. A determination is made as to whether an interrupt occurs while the transaction is suspended. In response to an interrupt occurring while the transaction is suspended, a transaction abort operation is delayed until after the transaction suspension is discontinued.