Post-Simulation Memory Debug via Transaction Capture

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging and analysis tools face challenges in obtaining accurate and complete knowledge of system memory values during and after simulation or emulation sessions, especially when no API is available for post-processing, as existing methods are inefficient and storage-intensive, and may introduce system side effects.

Innovation Solution

A system and method that captures and stores memory execution transactions, bus transactions, and register transactions during simulation, allowing for the construction of an accurate view of system memory over time, using a database to parse and store these transactions, enabling post-processing debug and analysis without relying on specific APIs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If a brute force solution stops the simulation at each tick of time to dump the entire state of memory, then complete memory value inspection is achieved, but efficiency deteriorates and storage requirements increase

Engineering Contradiction:
Improvememory value inspection completenessVSAvoiddebugging efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent extracts only the necessary memory transaction data from the simulation process and stores it in a database. Instead of dumping the entire memory state at each time tick, the system selectively captures and stores only the transactions that occurred, significantly reducing storage requirements and improving debugging efficiency while maintaining complete inspectability of memory values.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system performs preliminary capture and storage of memory transactions during the simulation process itself. By proactively recording transactions as they occur and storing them in a database during simulation, the data is prepared in advance for efficient post-processing debugging without requiring costly full memory dumps later.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If run-time APIs are used to access memory values, then memory inspection is enabled, but the solution is unavailable after simulation termination

Engineering Contradiction:
Improvememory access capabilityVSAvoiddebugging session availability
Core Design Contradiction:
Ease of operationVSDuration of action of stationary object

Solution Approach 1:

The patent creates a persistent copy of memory transaction data by capturing transactions during simulation and storing them in a database. This copy of the transaction data remains available after simulation termination, enabling post-processing debugging operations without requiring the original simulation environment or run-time APIs to be active.

Inventive Principle:
Principle #26Copying

3Loss of information

If the entire memory state is dumped at each time tick, then complete memory knowledge is achieved, but storage requirements increase dramatically

Engineering Contradiction:
Improvememory state information completenessVSAvoidstorage requirements
Core Design Contradiction:
Loss of informationVSQuantity of substance

Solution Approach 1:

The system extracts and stores only the essential transaction information (memory addresses, values, and timestamps) in a database rather than dumping the entire memory state. This selective extraction maintains complete information about all memory modifications while dramatically reducing the storage requirements compared to full memory dumps at each time tick.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS11487561B1Post simulation debug and analysis using a system memory model
Publication Date: 2022.11.01 CADENCE DESIGN SYST INC
  • US11487561B1 patent drawing
  • US11487561B1 patent drawing
  • US11487561B1 patent drawing

AI summary

According to an embodiment, a system and method are provided for constructing an accurate view of memory and events on a simulation platform. The system memory view can be used with a debug and analysis tool to provide post-processing debug, including searching forward and backward in capture time of the stored memory view to analyze the events of the simulation. The memory is constructed by capturing and storing each memory execution transaction, bus transaction, and register transaction during simulation. Changes in simulation platform hardware state may also be captured and stored in a hardware state database, including switches between process threads detected during the simulation that may update a simulator register. The captured events provide observability into the OS processes, the hardware, and the embedded software of the simulation platform.