Processor Transactional Memory Store Queue Overflow Handling
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
3Reliability
If transactions are re-executed to commit stores, then store operations can commit to memory hierarchy, but execution time increases
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.
Data Source
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.


