Simulation Checkpointing with Multi-Threading and Debugger Support

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current checkpoint and restore solutions for compiled languages like SystemC lack support for multi-threading, operating-system dependent resources, and connectivity to debuggers or external applications, limiting their effectiveness in restarting simulations.

Innovation Solution

The proposed solution involves a simulation architecture that includes a simulation controller, user code modules, and peer processes, which manage the creation, restoration, and restart of checkpoints by shutting down and restoring operating system dependent resources, re-establishing inter-process communication channels, and enabling debugger connectivity, allowing for the saving and restoring of simulation states, including breakpoints and watchpoints.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If checkpoint/restore solutions are implemented for compiled languages, then simulation state can be saved and restored, but support for multi-threading and operating-system dependent resources is lacking

Engineering Contradiction:
Improvesimulation state restorationVSAvoidmulti-threading and OS resource support
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The checkpointing process is segmented into distinct phases: notification phase, resource shutdown phase, state saving phase, and resource restoration phase. This segmentation allows each phase to handle specific tasks independently, enabling proper management of multi-threading and OS resources while maintaining simulation state integrity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by notifying peer processes and user code modules before actually saving the checkpoint. This allows threads to finish critical sections, OS resources to be properly closed, and inter-process communication channels to be flushed, ensuring consistent state capture without losing resource integrity.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If inter-process communication channels are closed during checkpointing, then state consistency is achieved, but connectivity to debuggers and external applications is lost

Engineering Contradiction:
Improvestate consistencyVSAvoiddebugger connectivity
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system performs preliminary flushing and closing of inter-process communication channels before saving the checkpoint state. This preliminary action ensures that all pending communications are completed and channels are in a consistent state, while the actual debugger connectivity is restored after the checkpoint is created, maintaining both consistency and operational ease.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The simulation control process acts as an intermediary that manages the lifecycle of inter-process communication channels. It coordinates the closing of channels during checkpointing and their subsequent restoration, mediating between the need for state consistency and the requirement for debugger connectivity.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If operating system dependent resources are shut down during checkpointing, then resource state is captured, but multi-threading support is compromised

Engineering Contradiction:
Improveresource state captureVSAvoidmulti-threading support
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system performs preliminary notification to user code modules before shutting down OS resources. This allows threads to properly finish critical sections and release locks before resources are closed, capturing resource state accurately while maintaining multi-threading integrity. The notification mechanism ensures threads are aware of the upcoming shutdown and can prepare accordingly.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The notification framework provides feedback to user code modules and peer processes about the checkpointing state. This feedback mechanism allows threads to coordinate their actions, ensure proper resource release, and maintain synchronization during the resource shutdown phase, thereby supporting multi-threading while capturing resource state.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8856756B2Simulation control techniques
Publication Date: 2014.10.07 MIPS HLDG INC
  • US8856756B2 patent drawing
  • US8856756B2 patent drawing
  • US8856756B2 patent drawing

AI summary

Simulation control techniques include shutting down peer processes and user code modules, storing an image of a simulation as a checkpoint after the peer processes and user code modules are shutdown, and re-starting user code modules and peer processes after storing an image of the simulation. The resulting checkpoint and processes can be used for restoring from a checkpoint or restarting a new simulation environments having peer processes such as debuggers coupled to the simulation.