Virtual Prototype Partitioning for Parallel Hardware Simulation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Virtual prototypes used in SoC design simulations often lack sufficient speed for software development while requiring accurate analysis of hardware behavior, with loosely-timed models executing quickly but lacking timing detail and cycle-accurate models executing too slowly for practical use.

Innovation Solution

The method involves partitioning a virtual prototype simulation into autonomous execution segments, creating checkpoints, and executing these segments in parallel to achieve faster execution times, with each segment sharing similar lengths to enhance simulation speed without compromising accuracy.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If a cycle-accurate virtual prototype model is used to maintain timing accuracy, then the timing precision is improved, but the execution speed deteriorates significantly

Engineering Contradiction:
Improvetiming accuracyVSAvoidexecution speed
Core Design Contradiction:
Measurement precisionVSSpeed

Solution Approach 1:

The virtual prototype simulation is divided into multiple autonomous execution segments that can be executed in parallel. Each segment represents a discrete portion of the overall simulation with defined start and end points, allowing independent execution while maintaining the timing accuracy of cycle-accurate models within each segment.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from single-threaded sequential execution to multi-threaded parallel execution by introducing temporal and spatial dimensions. Multiple execution segments run simultaneously across different processor cores, transforming the execution model from one-dimensional sequential processing to multi-dimensional parallel processing.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Speed

If a loosely-timed virtual prototype model is used to achieve faster execution, then the execution speed is improved, but the timing detail is lost

Engineering Contradiction:
Improveexecution speedVSAvoidtiming detail
Core Design Contradiction:
SpeedVSMeasurement precision

Solution Approach 1:

Different portions of the virtual prototype simulation are executed at different levels of timing accuracy. Within each autonomous execution segment, cycle-accurate timing detail is maintained locally, while the overall system achieves faster execution through parallelization. Each segment can be configured with appropriate timing accuracy based on local requirements.

Inventive Principle:
Principle #3Local quality

3Device complexity

If the virtual prototype simulation is executed linearly in a single thread, then the implementation is simple, but the execution time is excessively long

Engineering Contradiction:
Improveimplementation complexityVSAvoidexecution time
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

Before executing the parallel simulation, the patent performs preliminary actions including: (1) identifying suitable breakpoints in the simulation code where autonomous segments can be created, (2) creating checkpoint data structures to store segment boundaries and synchronization points, and (3) configuring execution parameters for each segment. This preparation enables efficient parallel execution without requiring complex modifications to the core simulation logic.

Inventive Principle:
Principle #10Preliminary action

4Speed

If the virtual prototype is partitioned into multiple autonomous execution segments for parallel processing, then the execution speed is improved significantly, but the system complexity increases

Engineering Contradiction:
Improveexecution speedVSAvoidsystem complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent implements feedback mechanisms where checkpoint data from previously executed segments is used to initialize and configure subsequent segments. Execution results and timing information from each segment feed back into the coordination system, which adjusts segment boundaries and synchronization points to optimize parallel execution efficiency while managing system complexity.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9098652B2Partitioning and parallel processing of a virtual prototype simulation of a hardware design
Publication Date: 2015.08.04 ARM LTD
  • US9098652B2 patent drawing
  • US9098652B2 patent drawing
  • US9098652B2 patent drawing

AI summary

A method including accessing a first virtual prototype configured to perform a first simulation of a hardware design, identifying checkpoints within the first virtual prototype, each checkpoint including a storage state and/or behavioral state, and determining breakpoints for dividing execution of a second virtual prototype into a series of execution segments, where the second virtual prototype is configured to perform a second simulation of the hardware design, the second virtual prototype includes virtual models representing a separate portion of the hardware design, each virtual model representing a same portion of the hardware design as a corresponding virtual model of the first virtual prototype. The method may include mapping the storage state and/or behavioral state of each checkpoint to a respective execution segment, executing the second simulation while collecting respective data regarding execution of each execution segment, where two or more execution segments are executed concurrently, and aggregating the respective data.