Salvaging Hardware Lock Elision Transactions via Speculative State Commitment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-core processors, hardware lock elision transactions often fail due to conflicting memory accesses, leading to transactional aborts and inefficiencies, which can result in wasted cycles and reduced performance.

Innovation Solution

A method is introduced where a processor detects a pending point-of-failure in a hardware lock elision transaction, stops the transactional execution before the failure, commits the speculative state stored in a gathering store cache, and transitions to non-transactional execution, thereby salvaging the transaction and preserving speculative state that would otherwise be discarded.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If hardware lock elision transactions are used to improve parallelism and performance, then throughput and efficiency are improved, but transactional aborts occur due to conflicting memory accesses leading to performance degradation

Engineering Contradiction:
ImprovethroughputVSAvoidtransactional abort rate
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary detection of pending failure points during transactional execution. Before a conflict actually causes an abort, the system identifies the impending failure and preemptively switches to non-transactional execution, preventing the abort from occurring in the first place

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system continuously monitors transactional execution for signs of impending conflicts or failures. This feedback mechanism allows the system to detect when a transaction is likely to abort and adjust execution mode accordingly, creating a closed-loop control system that optimizes transaction success rates

Inventive Principle:
Principle #23Feedback

2Reliability

If speculative state is committed to maintain transactional integrity, then atomicity is preserved, but performance is reduced due to abort and retry cycles

Engineering Contradiction:
Improvetransactional integrityVSAvoidexecution efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system dynamically adjusts the execution mode between transactional and non-transactional based on real-time conditions. Rather than rigidly committing to one mode, the system flexibly transitions between modes to maintain integrity when necessary while avoiding the performance penalties of repeated aborts and retries

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the execution parameter from transactional to non-transactional mode when failure is detected. This parameter change allows the system to preserve the benefits of speculative execution when successful while avoiding the costly abort-retry cycle that would otherwise occur

Inventive Principle:
Principle #35Parameter changes

3Productivity

If transactional execution is stopped before failure to salvage speculative state, then resource utilization is improved, but transactional atomicity may be compromised

Engineering Contradiction:
Improveresource utilizationVSAvoidtransactional atomicity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system introduces an intermediary detection mechanism that monitors transactional execution and identifies pending failures before they occur. This intermediary allows the system to make informed decisions about whether to continue or abort, preserving both resources and atomicity by avoiding premature or unnecessary aborts

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10083076B2Salvaging lock elision transactions with instructions to change execution type
Publication Date: 2018.09.25 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10083076B2 patent drawing
  • US10083076B2 patent drawing
  • US10083076B2 patent drawing

AI summary

A transactional memory system salvages a hardware lock elision (HLE) transaction. A processor of the transactional memory system, based on a detection of a pending point-of-failure in a code region during HLE transactional execution, stops HLE transactional execution prior to the pending point-of-failure in the code region. The processor, based on information about a lock elided, commits a speculative state of the stopped HLE transactional execution that is stored, at least in part, in a gathering store cache. The processor starts non-transactional execution at the point of failure in the code region.