Transactional Memory Management Using Sequence Numbers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional computing systems cannot allocate and deallocate memory within transactional code blocks, including nested transactions, which hinders efficient memory management and synchronization in multi-core architectures.
Innovation Solution
Implementing a transactional memory management system that uses unique identifiers, such as sequence numbers, to handle memory allocations and deallocations, along with maintaining lists of deferred actions for commit and abort times, allowing for efficient memory management within transactional code blocks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If conventional memory allocation and deallocation routines (malloc/free) are used within transactional code blocks, then memory management flexibility is improved, but transactional semantics are violated
Solution Approach 1:
The patent introduces an intermediary transactional memory management system that sits between the application code and the physical memory. This intermediary translates conventional malloc/free calls into transactional operations, allowing memory management flexibility while preserving transactional semantics through the use of sequence numbers and deferred action lists.
Solution Approach 2:
The system performs preliminary actions by recording memory allocation and deallocation requests in deferred action lists during transactions, rather than executing them immediately. This allows the transaction to commit or abort atomically, preserving transactional semantics while still providing memory management functionality.
2Productivity
If memory is allocated and deallocated dynamically within transactions, then memory utilization efficiency is improved, but memory latency increases due to transaction overhead
Solution Approach 1:
The patent implements periodic action by batching memory allocation and deallocation operations into transactional units. Instead of immediately executing each memory operation, the system accumulates them in deferred action lists and executes them periodically when transactions commit, reducing the overhead impact on memory latency.
Solution Approach 2:
The system maintains continuity of useful action by ensuring that memory management operations continue to function within transactions through the intermediary layer. The deferred action lists ensure that memory utilization efficiency is maintained while the transactional overhead is amortized across multiple operations.
3Ease of operation
If standard malloc and free routines are used outside transactions, then memory management simplicity is maintained, but programming efficiency on multi-core architectures deteriorates
Solution Approach 1:
The patent makes the memory management system universal by creating an intermediary layer that handles both conventional and transactional memory operations through the same interface. This allows standard malloc/free routines to be used outside transactions while enabling transactional memory management within transactions, improving programming efficiency on multi-core architectures without sacrificing simplicity.
Data Source
AI summary
Methods and systems are provided for managing memory allocations and deallocations while in transactional code, including nested transactional code. The methods and systems manage transactional memory operations by using identifiers, such as sequence numbers, to handle memory management in transactions. The methods and systems also maintain lists of deferred actions to be performed at transaction abort and commit times. A number of memory management routines associated with one or more transactions examine the transaction sequence number of the current transaction, manipulate commit and/or undo logs, and set/use the transaction sequence number of an associated object, but are not so limited. The methods and systems provide for memory allocation and deallocations within transactional code while preserving transactional semantics. Other embodiments are described and claimed.


