Simulation Accelerator Prefetching and Parallel Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern digital design simulations face performance issues due to high memory access latency, especially when dealing with large datasets that do not fit in cache and lack good locality, leading to inefficient use of resources and prolonged processing times.

Innovation Solution

A simulation acceleration system with dedicated hardware that compiles RTL and testbench codes into levelized and un-levelized blocks, using a simulation accelerator to schedule instructions, manage memory transactions, and implement prefetching mechanisms to reduce memory latency and enhance parallel processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If digital design simulation uses large datasets that do not fit in cache, then the simulation can handle more complex designs, but memory access latency increases significantly

Engineering Contradiction:
Improvedataset sizeVSAvoidmemory access latency
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The system performs preliminary actions by prefetching data and instructions into cache memory before they are actually needed for execution. The simulation accelerator identifies upcoming memory access patterns and proactively loads required data into the instruction cache and data cache, thereby eliminating cache miss penalties during critical execution phases.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The simulation accelerator is divided into multiple independent processor cores that can execute simulation instructions in parallel. Each core has its own instruction cache and data cache, allowing simultaneous access to different portions of the large dataset without contention. This segmentation enables the system to handle larger datasets by distributing memory access across multiple cache hierarchies.

Inventive Principle:
Principle #1Segmentation

2Productivity

If the system uses multiple processors for parallel execution, then simulation speed increases, but coordination overhead and memory conflict detection increase

Engineering Contradiction:
Improvesimulation speedVSAvoidcoordination overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The simulation accelerator introduces an intermediary transaction management mechanism that mediates between multiple processor cores and the shared memory system. Transactions are packaged with metadata indicating their memory access patterns, and the system uses an intermediary buffer to stage memory operations before execution, reducing direct conflicts between parallel cores.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system replaces traditional mechanical memory access coordination with a software-based transactional memory model. Instead of using hardware locks and mutual exclusion mechanisms, the simulation accelerator uses software transactions that can be committed or aborted based on conflict detection, reducing the overhead of inter-core coordination.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Reliability

If the system implements transactional execution with abort conditions, then parallel execution safety is improved, but execution time increases due to potential aborts and restarts

Engineering Contradiction:
Improveparallel execution safetyVSAvoidexecution time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system converts the potential harm of transaction aborts into a benefit by using abort information to optimize future execution. When a transaction aborts due to a conflict, the system learns from this conflict and adjusts its transaction boundaries or scheduling decisions to prevent similar aborts in the future, thereby converting execution failures into optimization opportunities.

Inventive Principle:
Principle #22Blessing in disguise (Convert harm into benefit)

Solution Approach 2:

The simulation accelerator implements partial transactional execution where only critical sections of code are executed as transactions, while non-critical sections run without transaction overhead. This selective approach ensures that transactions are used only where necessary for correctness, minimizing the impact of aborts and restarts on overall execution time.

Inventive Principle:
Principle #16Partial or excessive action

4Productivity

If the system uses dedicated simulation accelerator hardware, then simulation performance improves significantly, but device complexity and cost increase

Engineering Contradiction:
Improvesimulation performanceVSAvoidhardware complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The simulation accelerator is designed as a universal platform that can execute multiple different simulation kernels and support various digital design simulation workloads. By implementing a standardized instruction set architecture and common transactional memory interface, the hardware can be reused across different simulation scenarios, justifying the complexity through multi-functionality.

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

Solution Approach 2:

The system allows dynamic configuration of simulation parameters such as the number of processor cores, cache sizes, and transaction buffer depths. This parameter adjustability enables the hardware to be optimized for specific simulation workloads, achieving high performance without requiring a completely different hardware design for each application.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS20230186003A1Digital design simulation accelerator
Publication Date: 2023.06.15 SIEMENS INDUSTRY SOFTWARE INC
  • US20230186003A1 patent drawing
  • US20230186003A1 patent drawing
  • US20230186003A1 patent drawing

AI summary

A simulation acceleration system is provided. The system includes a simulation accelerator that receives compiled code of a design that includes register transfer level (RTL) components and testbench components. The compiled code includes instructions for simulating behaviors of the design. The simulation accelerator schedules the instructions to be executed by multiple processors based on simulation events occurring at different simulation timesteps. The simulation events are determined according to the executed instructions. The simulation accelerator captures trace data generated by the execution of the scheduled instructions and provides the captured trace data.