Transactional Memory Diagnostic Recording
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current software application flight recorders are cost-prohibitive and incur significant overhead due to the expense of tracking every read/write operation, which can reduce performance by 50% or more, and lack a log or transaction mechanism for diagnostic recording.
Innovation Solution
Implementing hardware-based transactional memory to store a transaction log of recent memory accesses, allowing for exception handling and post-mortem replay of instructions leading up to an exception event, using a debugger tool, and storing this information in a core file for diagnostic purposes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a flight recorder tracks every read/write operation, then diagnostic capability is improved, but performance is reduced by 50% or more
Solution Approach 1:
The patent extracts the transaction logging functionality from the main memory path by using a separate transaction log buffer that is periodically dumped to disk. This allows the flight recorder to operate with minimal overhead during normal execution, only capturing transactions when needed (upon exception or at scheduled intervals), thus maintaining performance while providing diagnostic capability.
Solution Approach 2:
The system performs preliminary action by maintaining a transaction log buffer in memory that captures memory transactions before they cause problems. The log is periodically dumped to disk in advance, so when an exception occurs, the diagnostic information is already available without requiring additional performance impact at the moment of failure.
2Device complexity
If a flight recorder uses an in-memory circular buffer, then overhead is minimized, but tracking every read/write becomes expensive
Solution Approach 1:
The patent separates the simple circular buffer mechanism from the expensive full transaction tracking. The circular buffer only stores recent transactions in a lightweight format, and only these selected transactions are dumped to disk. This extraction allows the system to maintain low overhead while providing sufficient diagnostic information without the cost of tracking every single read/write operation.
Solution Approach 2:
Instead of tracking every single memory transaction (excessive action), the system tracks only the most recent transactions in the circular buffer (partial action). This partial tracking approach provides enough diagnostic information for root cause analysis while significantly reducing the computational overhead and performance impact.
3Productivity
If no transaction log is maintained, then performance is preserved, but root cause analysis becomes difficult
Solution Approach 1:
The system performs preliminary action by maintaining a transaction log buffer that captures memory transactions before problems occur. The log is periodically dumped to disk, so when an exception or trap occurs, the diagnostic information is already available for analysis. This preliminary capture of transaction data enables root cause analysis without requiring real-time tracking overhead during normal operation.
Solution Approach 2:
The transaction log buffer acts as an intermediary between the memory transactions and the diagnostic analysis process. It captures essential transaction information in a lightweight format and makes it available for disk storage and subsequent analysis, bridging the gap between performance-critical operation and diagnostic requirement without requiring continuous expensive tracking.
Data Source
AI summary
A method (500) or a diagnostic recording device (400) having transactional memory and a processor coupled to the transactional memory can store (502) contents of a transaction log (40) of the transactional memory, detect (504) an exception event, and replay (506) last instructions that led up to the exception event using a debugger tool (80). The transactional memory can be hardware or software based transactional memory. The processor can also store the transaction log by storing the contents of the transaction log in a core file (302) which can include a stack (60), a register dump (70), a memory dump (75), and the transactional log. The debugger tool can be used to load up the core file, an executable file (95), and a library (90) to enable the diagnostic recording device to retrace transactions occurring at the diagnostic recording device up to the exception event.


