Virtual Processor Memory Isolation for Simulation Models

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing simulation methods for integrated circuits face challenges such as data corruption and complex instantiation processes due to the combination of simulation models and simulator code, particularly when using C or C++ programming languages, which can lead to memory conflicts and require complex library support.

Innovation Solution

The approach involves executing simulation models on virtual processors with unique memory spaces, allowing them to interface with the simulator without being combined with the simulator code, thereby avoiding memory conflicts and enabling easy multi-instantiation of models across different programming languages.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If simulation models are combined with simulator code, then the simulation can be executed, but data corruption and memory conflicts occur

Engineering Contradiction:
Improvesimulation execution reliabilityVSAvoiddata corruption and memory conflicts
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The system separates simulation models from simulator code by introducing virtual processors as intermediate execution environments. Each simulation model runs in its own virtual processor instance with isolated memory space, preventing memory conflicts and data corruption while maintaining execution capability. This segmentation resolves the contradiction by allowing both simulation execution and data integrity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Virtual processors act as intermediaries between simulation models and the simulator environment. The virtual processor provides a controlled interface that allows simulation models to execute without directly accessing or corrupting simulator memory spaces. This intermediary layer enables reliable simulation execution while protecting against harmful memory conflicts.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If simulation models are written in C or C++, then modeling flexibility is improved, but complex instantiation processes and library support requirements increase

Engineering Contradiction:
Improvemodeling language flexibilityVSAvoidinstantiation process complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The virtual processor architecture provides a universal execution environment that can run simulation models written in various programming languages including C and C++. The virtual processor abstracts away language-specific instantiation complexities, providing a standardized interface for model execution. This allows modeling flexibility while reducing instantiation complexity through language-agnostic virtualization.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system creates virtual copies of processor environments that can execute different programming language models without requiring complex instantiation procedures for each language. The virtual processor instance acts as a portable execution context that simplifies the deployment of C/C++ models and other languages uniformly.

Inventive Principle:
Principle #26Copying

3Productivity

If multiple simulation models run in shared memory space, then resource utilization is improved, but memory conflicts and data corruption increase

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoiddata integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system segments the shared memory space into isolated virtual memory spaces, each associated with a specific virtual processor instance. This segmentation allows multiple simulation models to run concurrently with improved resource utilization while preventing memory conflicts through virtual memory isolation. Each virtual processor manages its own memory space, ensuring data integrity while maintaining efficient resource sharing at the physical level.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20240378359A1System simulation using simulation models executing on virtual processors
Publication Date: 2024.11.14 MIPS HLDG INC
  • US20240378359A1 patent drawing
  • US20240378359A1 patent drawing
  • US20240378359A1 patent drawing

AI summary

Simulating a system involves running a simulation model on a virtual processor that interfaces to a simulator, the virtual processor being associated with a unique memory space in the memory space used by the simulator. The virtual processor technique gives the developer a simple technique for ensuring the model and simulator interactions are managed effectively, i.e. that no unintentional corruptions of each other's memory space are possible. It also facilitates making multiple instantiations of a C, C++ or other general purpose programming language model. The resulting environment also resolves one of the limitations on the use of third party models within the SystemC environment.