Transactional Memory Conflict Detection Using Distributed Access Tables
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In parallel processing systems without global cache or memory space coherence, detecting memory conflicts in shared memory systems is challenging due to the lack of centralized memory management, leading to inefficiencies and potential errors.
Innovation Solution
A transactional shared memory system with nodes connected through an interconnect network uses transaction tables and access tables to identify and manage memory conflicts by initiating memory operations, transmitting store requests, detecting conflicts, and handling abort and commit signals to ensure data integrity across nodes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If transactional memory support is implemented in parallel processing systems without global memory coherence, then concurrency control is facilitated, but memory conflict detection becomes challenging and complex
Solution Approach 1:
The system divides the memory conflict detection task into distributed segments at each node. Each node maintains its own access table to track memory operations, and conflict detection is performed locally by checking whether incoming store requests conflict with existing entries in the access table, rather than requiring centralized coordination across the entire system.
Solution Approach 2:
The access table acts as an intermediary mechanism between memory operations and conflict detection. It stores information about memory addresses and associated nodes, enabling efficient conflict detection by mediating between the store request signal and the actual memory operations, without requiring direct global coherence protocols.
2Device complexity
If centralized memory management is used, then memory conflict detection is simplified, but system scalability and parallel processing capability are reduced
Solution Approach 1:
The system eliminates centralized memory management by distributing the access table at each node. Each node independently manages its own memory operations and conflict detection, allowing the system to scale horizontally by adding more nodes without increasing the complexity of centralized coordination.
Solution Approach 2:
Each node performs self-service by maintaining its own access table and independently detecting memory conflicts. When a store request is received, the node checks its local access table for conflicts and autonomously determines whether to proceed with the memory operation or abort the transaction, without requiring centralized decision-making.
3Productivity
If eager conflict detection is implemented, then processing overhead is reduced by minimizing unnecessary operations, but system performance may be impacted by increased detection latency
Solution Approach 1:
The system performs preliminary conflict detection by checking the access table before executing memory operations. When a store request is received, the node first checks whether the memory address conflicts with any existing entries in the access table. This preliminary action identifies conflicts before they can cause incorrect memory operations, allowing for early termination of conflicting transactions.
Solution Approach 2:
The system implements feedback through the abort signal mechanism. When a memory conflict is detected by checking the access table, the node sends an abort signal back to the source node to terminate the conflicting transaction. This feedback loop ensures that incorrect operations are prevented while maintaining system progress by allowing non-conflicting operations to proceed.
Data Source
AI summary
A method, including: initiating a memory operation at a first node including a first memory controller (MC) and a transaction table configured to store a list of nodes affected by the memory operation, transmitting a store request signal to a second node including a second MC and an access table (AT) where the store request signal includes data from the first MC, storing data to the AT in entries corresponding to memory address(es) (MAs) affected by the memory operation, identifying a memory conflict with one or more nodes in the list of nodes when the MAs affected by the memory operation are also affected by one or more conflicting transactions listed in the AT, transmitting an abort signal from the second node to each of the nodes corresponding to the memory conflict, and transmitting an intent to commit signal from the first node to the second node.


