Simics

Simics is a full-system simulator or virtual platform used to run unchanged production binaries of the target hardware. Simics was originally developed by the Swedish Institute of Computer Science (SICS), and then spun off to Virtutech for commercial development in 1998. Virtutech was acquired by Intel in 2010. Currently, Simics is provided by Intel in a public release[1] and sold commercially by Wind River Systems, which was in the past a subsidiary of Intel.

Simics
Original author(s)SICS, Virtutech
Developer(s)Intel
Stable release
6 / 2019
Written inC, DML, Python, Simgen, Simics CLI scripts, C++, Rust, Javascript, Java
TypeFull-system simulator
LicenseProprietary
Websitedeveloper.intel.com/simics-simulator

Simics contains both instruction set simulators and hardware models, and is or has been used to simulate systems such as Alpha, ARM (32- and 64-bit), IA-64, MIPS (32- and 64-bit), MSP430, PowerPC (32- and 64-bit), RISC-V (32- and 64-bit), SPARC-V8 and V9, and x86 and x86-64 CPUs.

Many different operating systems have been run on various simulated virtual platforms, including Linux, MS-DOS, Windows, VxWorks, OSE, Solaris, FreeBSD, QNX, RTEMS, UEFI, and Zephyr.

The NetBSD AMD64 port was initially developed using Simics before the public release of the chip.[2] The purpose of simulation in Simics is often to develop software for a particular type of hardware without requiring access to that precise hardware, using Simics as a virtual platform. This can applied both to pre-release and pre-silicon software development for future hardware, as well as for existing hardware. Intel uses Simics to provide its ecosystem with access to future platform months or years ahead of the hardware launch.[3]

The current version of Simics is 6 which was released publicly in 2019.[4][5] Simics runs on 64-bit x86-64 machines running Microsoft Windows and Linux (32-bit support was dropped with the release of Simics 5, since 64-bit provides significant performance advantages and is universally available on current hardware). The previous version, Simics 5, was released in 2015.[6]

Simics has the ability to execute a system in forward and reverse direction.[7] Reverse debugging can illuminate how an exceptional condition or bug occurred. When executing an OS such as Linux in reverse using Simics, previously deleted files reappear when the deletion point is passed in reverse and scrolling and other graphical display and console updates occur backwards as well.

Simics is built for high performance execution of full-system models, and uses both binary translation and hardware-assisted virtualization to increase simulation speed. It is natively multithreaded and can simulate multiple target (or guest) processors and boards using multiple host threads. It has been used to run simulations containing hundreds of target processors.

See also

  • ARM Fastsim, an instruction-set simulator and set of system models for ARM IP.
  • Gem5, an open source full-system and ISA simulator and framework.
  • OVPsim, a full-system simulation framework which is free for non-commercial use, and which comes with over 100 open source models and platforms that run Linux, Android, and many other operating systems.
  • Qemu, open-source program that can do full-system simulation in the same way as Simics, including using hardware virtualization to accelerate the execution of X86 or X86.
  • SPIM, MIPS processor simulator designed to run R2000, R3000 etc.
  • Instruction set simulator

References

  1. "Simics® Simulator". Intel. 2021-05-14. Retrieved 2022-02-02.
  2. "Simics used to port an OS". NetBSD Wiki. NetBSD.
  3. Engblom, Jakob (March 17, 2020). "Simics 6 at the Mountain Top". Intel Developer Zone.
  4. Engblom, Jakob (September 10, 2019). "Seeing the Early Snow on the Ridge". Intel Developer Zone Blog.
  5. Evoy, Sean (November 5, 2019). "Simics: Just when you thought it couldn't get any better". Wind River Blog.
  6. Engblom, Jakob (June 30, 2015). "Simics 5 is here - More Parallel than Ever". Wind River Blog.
  7. Engblom, Jakob (2017-10-01). "Back to Reverse Execution - Tools, Testing, & Virtual Systems". Archived from the original on 2017-10-01. Retrieved 2022-02-02.


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.