Transactional Memory Cache Versioning for Nested Transaction Rollback

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional transactional memory systems face challenges in scalability due to increasing CPU core counts, leading to sub-linear scaling and complex fine-grained locking, which can result in unnecessary large rollbacks when interference is detected in nested transactions.

Innovation Solution

A computer system implements nested transactions by generating speculative IDs, assigning cache versions, detecting conflicts, determining conflicted nesting levels, and invalidating corresponding cache versions to enable precise rollback of only affected transactions, rather than entire super-transactions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If flattened nesting technique is used to combine multiple levels of nested transactions into a single level, then implementation complexity is reduced, but rollback scope becomes unnecessarily large when interference is detected

Engineering Contradiction:
Improveimplementation complexityVSAvoidrollback scope
Core Design Contradiction:
Device complexityVSLoss of substance

Solution Approach 1:

The patent segments the monolithic flattened transaction into hierarchical levels, where each nested transaction operates at a specific level. When interference is detected, only the conflicted nested transaction and its descendants are rolled back, rather than the entire super-transaction. This segmentation enables precise rollback scope control while maintaining implementation feasibility through structured level management.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by assigning different rollback characteristics to different nesting levels. Each nested transaction can be independently rolled back based on local conflict detection, rather than applying a uniform rollback to the entire transaction hierarchy. This allows the system to maintain simple implementation at each local level while achieving optimal rollback scope globally.

Inventive Principle:
Principle #3Local quality

2Productivity

If fine-grained locking is implemented to improve software scalability, then concurrency control is enhanced, but system complexity and error-proneness increase significantly

Engineering Contradiction:
Improvesoftware scalabilityVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent replaces the mechanical fine-grained locking system with a hardware-based transactional memory mechanism. The processor core includes a transactional execution facility that provides atomic operations without requiring complex software locking protocols. This substitution maintains scalability while reducing software complexity and error-proneness by moving the concurrency control mechanism to hardware.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The transactional execution facility provides self-service by automatically managing transaction boundaries, conflict detection, and rollback operations. The system does not require manual implementation of fine-grained locks by software developers, eliminating the complexity and errors associated with manual locking while maintaining high scalability through hardware-managed transaction coordination.

Inventive Principle:
Principle #25Self-service

3Speed

If hardware interconnects are used to support increasing CPU frequencies, then processing speed is improved, but latency is limited by physical chip dimensions and speed of light

Engineering Contradiction:
Improveprocessing speedVSAvoidinterconnect latency
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent merges the transaction execution facility directly into the processor core, eliminating the need for external hardware interconnects for transaction coordination. By integrating transaction management within the core, the system achieves high processing speed while minimizing latency, as operations occur within the same physical package without relying on inter-chip or inter-socket communication.

Inventive Principle:
Principle #5Merging (Combining)

4Reliability

If traditional semaphores are used to protect shared data structures, then concurrency is controlled, but scaling performance becomes sub-linear due to hot spots

Engineering Contradiction:
Improveconcurrency controlVSAvoidscaling performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent replaces the semaphore-based concurrency control mechanism with hardware transactional memory. Instead of using software semaphores that create hot spots and limit scaling, the system uses atomic read-write transactions managed by the transactional execution facility. This substitution maintains reliable concurrency control while enabling linear scaling performance by distributing transaction management across multiple cores without centralized bottlenecks.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS10331565B2Transactional memory system including cache versioning architecture to implement nested transactions
Publication Date: 2019.06.25 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10331565B2 patent drawing
  • US10331565B2 patent drawing
  • US10331565B2 patent drawing

AI summary

A computer system includes transactional memory to implement a nested transaction. The computer system generates a plurality of speculative identification numbers (IDs), identifies at least one of a software thread executed by a hardware processor and a memory operation performed in accordance with an application code. The computer system assigns at least one speculative cache version to a requested transaction based on a corresponding software thread. The speculative ID of the corresponding software thread identifies the speculative cache version. The computer system also identifies a nested transaction in the memory unit, assigns a cache version to the nested transaction, detects a conflict with the nested transaction, determines a conflicted nesting level of the nested transaction, and determines a cache version corresponding to the conflicted nesting level. The computer system also invalidates the cache version corresponding to the conflicted nesting level.