Processor Transactional Memory Store Queue Overflow Handling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing transactional memory systems face limitations due to bounded store queues, which restrict the size of transactions that can be executed, as they either buffer old values or prevent new values from being visible to other threads until commitment or failure.

Innovation Solution

A processor executes transactions in 'transaction-pending' and 'store-queue-overflow' modes, discarding store data that doesn't fit in the queue, and re-executes in 'repeating-transaction' mode to allow store operations to commit, enabling larger transactions without queue size constraints.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If store operations are buffered in a bounded store queue, then transactional memory semantics are maintained, but the size of transactions that can be executed is limited

Engineering Contradiction:
Improvetransactional memory semanticsVSAvoidtransaction size
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent segments the transaction execution into distinct phases: a first phase where store operations are buffered in a bounded store queue, and a second phase where the transaction is re-executed to commit stores to the memory hierarchy. This segmentation allows the system to handle transactions larger than the store queue capacity by dividing the operation into manageable stages, resolving the contradiction between maintaining transactional semantics and supporting large transactions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

During the first phase, the system performs preliminary buffering of store operations in the store queue and places load-marks or store-marks on cache lines. This preliminary action prepares the transaction for subsequent execution, allowing the second phase to commit the stores without requiring all stores to fit in the bounded queue simultaneously, thus enabling larger transactions while maintaining semantics.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If store data is discarded when the store queue overflows, then larger transactions can be executed, but some store operations may be lost

Engineering Contradiction:
Improvetransaction sizeVSAvoidstore operation completion
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system performs preliminary marking of cache lines (placing load-marks or store-marks) during the first phase before the second phase executes. This preliminary action ensures that when stores are committed in the second phase, the necessary memory locations are properly prepared and tracked, allowing discarded store data to be recovered through the re-execution phase while maintaining reliability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent deliberately discards store data that cannot fit in the bounded store queue during the first phase, but recovers it by re-executing the transaction in the second phase. The marks placed on cache lines during the first phase enable the system to track and properly commit the stores during the second phase, thus recovering the discarded operations and maintaining transactional integrity.

Inventive Principle:
Principle #34Discarding and recovering

3Reliability

If transactions are re-executed to commit stores, then store operations can commit to memory hierarchy, but execution time increases

Engineering Contradiction:
Improvestore commitmentVSAvoidtransaction execution time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The transaction execution is segmented into a first phase for buffering and marking, and a second phase for commitment. By separating these functions into distinct phases, the system can optimize each phase independently, reducing the overall time penalty of re-execution while ensuring reliable store commitment to the memory hierarchy.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS7739456B1Method and apparatus for supporting very large transactions
Publication Date: 2010.06.15 ORACLE AMERICAN INC
  • US7739456B1 patent drawing
  • US7739456B1 patent drawing
  • US7739456B1 patent drawing

AI summary

One embodiment of the present invention provides a system that executes a transaction on a multi-threaded processor. The system starts by executing the transaction in a “transaction-pending mode,” which involves placing load-marks or store-marks on cache lines loaded from or stored to during transaction-pending mode and also buffers store operations in a store queue. Upon encountering a store queue overflow, the system continues to execute the transaction in a “store-queue-overflow mode,” which involves placing load-marks or store-marks on cache lines loaded from or stored to during store-queue-overflow mode and discards store data which does not fit into the store queue during store operations. Upon completing the transaction in the store-queue-overflow mode, the system re-executes the transaction in a “repeating-transaction mode,” which involves executing the instructions in the transaction non-speculatively, which allows the store operations to commit to the memory hierarchy.