Multi-thread Safe System Level Modeling Simulation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

SYSTEMC simulations face challenges in achieving reproducibility and multi-thread safety, especially when simulating target systems with multiple processor cores, due to data races and the need for synchronization that impacts performance.

Innovation Solution

Implementing deferred execution, direct memory interface access in exclusive execution mode, and guarded memory access to ensure reproducibility and multi-thread safety by managing shared resource access and memory interactions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multi-threaded execution is used to speed up SYSTEMC simulation, then simulation speed is improved, but multi-thread safety and reproducibility are compromised due to data races and synchronization issues

Engineering Contradiction:
Improvesimulation speedVSAvoidreproducibility
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary action by detecting shared resource accesses during the parallel execution phase and deferring them to a sequential execution phase. This allows the system to prepare and identify potential data race conditions before they can cause reproducibility issues, enabling multi-threaded execution to proceed safely while maintaining simulation speed improvements.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent segments the execution process into distinct phases: a parallel execution phase for speed-critical operations and a sequential execution phase for shared resource access operations. This segmentation allows the system to maximize productivity during parallel execution while ensuring reproducibility during sequential execution of deferred operations, effectively resolving the contradiction between speed and reliability.

Inventive Principle:
Principle #1Segmentation

2Reliability

If synchronization elements like OS mutexes are used to ensure multi-thread safety, then data races are prevented, but simulation performance deteriorates due to overhead

Engineering Contradiction:
Improvemulti-thread safetyVSAvoidsimulation performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the synchronization mechanism from the traditional approach of using OS mutexes during parallel execution. Instead, it identifies shared resource accesses and defers them to a sequential phase, eliminating the need for heavy-weight synchronization primitives during the performance-critical parallel execution phase while still ensuring multi-thread safety.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a deferred execution mechanism as an intermediary between parallel execution and shared resource access. This intermediary captures shared resource access operations during parallel execution and processes them sequentially, acting as a mediator that ensures multi-thread safety without the performance overhead of traditional synchronization elements.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If conventional synchronization approaches are used, then multi-thread safety is achieved, but IEEE Std. 1666-2011 compliance regarding reproducible process execution order is not satisfied

Engineering Contradiction:
Improvemulti-thread safetyVSAvoidstandard compliance
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent applies dynamics by making the execution mode adaptive based on the operation type. Parallel execution is used for operations that do not access shared resources, while sequential execution is dynamically applied to deferred shared resource access operations. This dynamic approach ensures both multi-thread safety and compliance with IEEE Std. 1666-2011 requirements for reproducible process execution order.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the execution parameter from always-parallel to conditionally-sequential for deferred operations. By modifying the execution mode parameter based on whether an operation accesses shared resources, the system achieves both multi-thread safety and IEEE standard compliance, as the sequential execution of deferred operations ensures reproducible process execution order.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9075666B2Deferred execution in a multi-thread safe system level modeling simulation
Publication Date: 2015.07.07 SYNOPSYS INC
  • US9075666B2 patent drawing
  • US9075666B2 patent drawing
  • US9075666B2 patent drawing

AI summary

Methods, systems, and machine readable medium for multi-thread safe system level modeling simulation (SLMS) of a target system on a host system. An example of a SLMS is a SYSTEMC simulation. During the SLMS, SLMS processes are executed in parallel via a plurality of threads. SLMS processes represent functional behaviors of components within the target system, such as functional behaviors of processor cores. Deferred execution may be used to defer execution of operations of SLMS processes that access a shared resource. Multi-thread safe direct memory interface (DMI) access may be used by a SLMS process to access a region of the memory in a multi-thread safe manner. Access to regions of the memory may also be guarded if they are at risk of being in a transient state when being accessed by more than one SLMS process.