Larry Lapides, VP of sales at Imperas, joins us to talk about software bring up on MIPS using virtual platforms.
Software verification is center-stage today, driving virtual platforms adoption as a mainstream methodology for embedded software development, debug and test. If you haven’t used virtual platforms (software simulation) yet, you may be wondering:
How much software can a virtual platform run?
Here is a familiar example of a typical software stack:
With Imperas™ virtual prototyping solutions, you can easily and rapidly run essentially your complete software stack – boot Linux or other operating systems, exercise drivers and firmware, and run application code – for as long a period of time as needed. With the Imperas Instruction Set Simulator (ISS) alone, speeds of up to 1,000 MIPS can be expected on typical desktop PCs, and Linux SMP can be booted in less than 10 seconds.
However, as SoCs move to both multicore and multiprocessor, even this outstanding simulation performance may not be sufficient to run the 10s of billions or even 10s of trillions instructions needed in a single simulation. To address this, Imperas has developed a virtual platform accelerator that takes advantage of the multiple x86 cores on the host PC: QuantumLeap.
QuantumLeap: Unique Parallel Simulation Accelerator
QuantumLeap is a parallel simulation performance accelerator, with a new synchronization algorithm (Multi-Processor target on Multi-Processor host, or MPonMP™), for the fastest virtual platform software execution speed available. The QuantumLeap parallel simulation accelerator takes advantage of multiple cores in the host machine running the simulation, utilizing as many cores in your host machine as needed for your particular virtual platform. It has been tested with virtual platforms of up to 512 target cores, on host machines up to 16 cores, and supports Asymmetric Multi-Processing (AMP), Symmetric Multi-Processing (SMP), and hardware accelerator blocks. Importantly, QuantumLeap operates transparently to the user, with no model, tool, or software changes.
Real-world performance metrics are shown below:
Many current SoC hardware platforms incorporate multicore embedded processors, or even multiple processor with one or more cores, coupled with hardware accelerators, all executing in parallel. However, single-threaded virtual platform just-in-time (JIT) code morphing simulators are not able to scale for these multi-core SoCs, creating a barrier to efficient embedded software development.
QuantumLeap eliminates this barrier by allocating the simulated cores across all the available processors in a host machine. With advanced technology to ensure the efficient synchronization of these cores, near linear scaling of the simulation across the multiple host processors is achievable, with minimum impact for inter-core communication.
Imagine Your Virtual Platform, with QuantumLeap
The requirement for simulation performance in virtual platforms is driven by two factors. The first is the length of individual software tests.
- In a network server use case, individual tests included the execution of over 10 trillion instructions, meaning that for a single thread simulation running at 100 million instructions per second, the execution time of a single test would be more than 24 hours.
The second factor is testing requirements for safety critical systems, such as those in the automotive industry.
- In automotive, test suites typically consist of thousands of tests, executed daily as part of a regression test methodology.
- Also, other tools such as code coverage and fault injection are needed in the simulation environment to meet test and compliance requirements.
As most designs have multicore processors, multiple processors, or both, the need for the highest simulation performance is evident. With Imperas virtual platform simulators, the total simulation throughput stays relatively constant as the number of simulated cores increases. QuantumLeap delivers improved simulation technology for virtual platforms, for your embedded software development, debug and test.
Again, QuantumLeap provides a transparent use model, with no change required to the software under test, the models in the virtual platforms, the software tools in the development environment, or the software being executed on the virtual platform, while ensuring fully deterministic simulation execution.
The QuantumLeap simulation option supports the Imperas Multiprocessor/Multicore Software Development Kit (M*SDK) capabilities, including 3Debug™ and the Verification, Analysis and Profiling (VAP) tools.
The QuantumLeap advanced parallel simulation algorithm delivers increased simulation performance for virtual platforms containing multiple processors. QuantumLeap parallel simulation technology has been shown to scale such that host PCs with larger numbers of processors can be used to effectively simulate virtual platforms with increasing numbers of instanced processor models. Benchmark results have shown:
- Performance measured on average as 15 times faster than the nearest commercial solution, using standard benchmarks.
- Performance of over 5 billion instructions per second observed for a virtual platform using an OVP model of a multi-core MIPS P5600 running on a standard 3.4 GHz quad core host PC.
For more information, please visit:
- Our Imperas Software websites: imperas.com and www.imperas.com/quantumleap-virtual-platform-simulation-acceleration
- Parallel Simulation Accelerates Embedded Software Development, Debug and Test for Embedded World 2015 by James Kenney, Simon Davidmann and Larry Lapides, Imperas Software Ltd.
- Our Open Virtual Platforms website
- This video on MIPS and Quantumleap
- These additional MIPS demo videos here, here and here