Configurable Transactional Memory for Multiprocessor Synchronization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Designing protocols for data exchange between processors in multiprocessing systems is time-consuming and expensive, limiting system performance due to the overhead of locks and mutexes.
Innovation Solution
A configurable transactional memory that synchronizes transactions from clients using a memory buffer and transactional arbiter, eliminating the need for locks or mutexes by allocating storage between a transactional buffer and a data buffer, and generating completion status based on access states to prevent collisions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If locks or mutexes are used to synchronize data exchange between processors, then data consistency is ensured, but system performance is limited due to overhead and protocol complexity
Solution Approach 1:
The patent introduces a transactional memory buffer as an intermediary mechanism between processors. Instead of direct locked access to shared memory, processors submit transactions to the buffer which then manages synchronization atomically. This mediator absorbs the complexity of synchronization protocols while providing simple transaction interfaces to processors, thereby maintaining data consistency without the performance overhead of traditional locks.
Solution Approach 2:
The patent implements a buffer that copies and tracks transaction states for multiple processors. Rather than having processors directly compete for lock access to shared memory, the system creates copies of transaction information in the buffer, tracks their states (committed, aborted, in-progress), and manages conflicts through these copies. This copying mechanism eliminates lock overhead while ensuring consistency through atomic transaction management.
2Reliability
If complex protocols are designed for data exchange between processors, then data consistency is achieved, but design time and cost increase
Solution Approach 1:
The transactional memory buffer operates autonomously to manage transaction synchronization. It automatically tracks transaction states, detects conflicts between concurrent transactions, and determines commit or abort decisions without requiring external protocol management. This self-service capability embeds the complex consistency logic within the buffer itself, freeing processor design from complex synchronization protocols and reducing overall system design complexity.
Solution Approach 2:
The patent merges the synchronization protocol logic directly into the transactional memory buffer structure. Rather than implementing separate lock management and transaction processing mechanisms, the system combines state tracking, conflict detection, and atomic commitment logic into a single integrated buffer. This merging consolidates design efforts into one component, reducing both design time and implementation cost while maintaining data consistency.
3Reliability
If traditional locking mechanisms are used, then data access control is provided, but overhead reduces transaction throughput
Solution Approach 1:
The system performs preliminary actions by pre-allocating buffer entries and pre-tracking transaction states before actual data access conflicts occur. Each processor transaction is registered in advance with the buffer, which maintains a state indicating whether each data word is referenced by any in-progress transaction. This preliminary tracking enables rapid conflict detection and atomic commit/abort decisions, eliminating the need for time-consuming lock acquisition and release sequences, thereby increasing transaction throughput while maintaining access control.
Data Source
AI summary
A configurable transactional memory synchronizes transactions from clients. The configurable transactional memory includes a memory buffer and a transactional buffer. The memory buffer includes allocation control and storage, and the allocation control is configurable to selectively allocate the storage between a transactional buffer and a data buffer for the data words. The transactional buffer stores state indicating each combination of a data word and a client for which the data word is referenced by a write access in the transaction in progress from the client. The transactional arbiter generates the completion status for the transaction in progress from each client. The completion status is either committed for no collision or aborted for a collision. A collision is an access that references a data word of the transaction from the client following a write access that references the data word of another transaction in progress from another client.


