Dynamic Register Subset Saving in Transactional Memory
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In multiprocessor systems, the use of locks for coordinating access to shared resources can be inefficient and prone to deadlocks, while saving all architectural registers for transactions can be wasteful, especially when not all registers are modified.
Innovation Solution
A data processing apparatus that selectively saves a subset of data storage elements based on a mask updated during a transactional start, with a monitor detecting writes to unsaved elements and taking appropriate actions to prevent rollback failures.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If all architectural registers are saved for transactions, then rollback reliability is improved, but storage space and time consumption increase
Solution Approach 1:
The patent extracts only the necessary registers that are actually modified during transaction execution, rather than saving all architectural registers. The system identifies and saves only those registers whose values change, eliminating the waste of storing and restoring unchanged register values.
Solution Approach 2:
The patent applies partial action by saving a subset of registers rather than all registers. The system dynamically determines which registers need to be saved based on actual modification patterns, performing only the necessary save operations required for reliable rollback.
2Reliability
If all architectural registers are saved for transactions, then rollback reliability is improved, but storage space consumption increases
Solution Approach 1:
The patent extracts and saves only the modified registers that are necessary for rollback, rather than allocating storage for all architectural registers. This selective approach reduces the quantity of stored data while maintaining rollback reliability.
Solution Approach 2:
The patent changes the parameter of register saving from a fixed set of all registers to a dynamic subset based on actual modifications. The system adapts the saved register set according to the specific transaction's needs, optimizing storage space utilization.
3Reliability
If locks are used for coordinating access to shared resources, then coordination reliability is improved, but system performance deteriorates
Solution Approach 1:
The patent replaces the traditional lock-based mechanical coordination mechanism with a transactional memory system. Instead of using locks to serialize access, the system uses transactional operations that can be executed in parallel and are automatically coordinated through commit/abort mechanisms, improving system performance while maintaining coordination reliability.
4Reliability
If locks are used for coordinating access to shared resources, then coordination reliability is improved, but deadlock risk increases
Solution Approach 1:
The patent replaces the lock-based coordination mechanism with transactional memory operations. This substitution eliminates the possibility of deadlocks because transactions do not use blocking locks - instead, conflicting transactions are detected and one is aborted, preventing the circular waiting condition that causes deadlocks.
Data Source
AI summary
A data processing apparatus comprises a plurality of data storage elements, each configured to store data. Mask storage circuitry stores a mask and processing circuitry executes one or more instructions. A data saver is configured, in response to a transactional start instruction, to select a subset of the data storage elements and to save a backup of the subset of the data storage elements. Mask control circuitry then updates the mask to indicate the subset of the data storage elements selected by the data saver. Finally, a monitor detects write or write attempts made to one of the data storage elements not indicated by the mask. Accordingly, a user need not save all data storage elements (e.g. registers) in a system or specify precisely which data storage elements must be saved in order to perform a transaction. Instead, the set of data storage elements that must be saved can be determined and specified dynamically, and the system can respond if an attempt is made to write to a data storage element that has not been saved or backed up.


