Original author(s) | SICS,Virtutech |
---|---|
Developer(s) | Intel |
Stable release | 6 / 2019 |
Written in | C, DML, Python, Simgen, Simics CLI scripts, C++, Rust, Javascript, Java |
Type | Full-system simulator |
License | Proprietary |
Website | developer |
Simics is afull-system simulator or virtual platform used to run unchanged production binaries of the target hardware. Simics was originally developed by theSwedish Institute of Computer Science (SICS), and then spun off toVirtutech for commercial development in 1998. Virtutech was acquired byIntel in 2010. Currently, Simics is provided byIntel in a public release[1] and sold commercially byWind River Systems, which was in the past a subsidiary of Intel.
Simics contains bothinstruction set simulators and hardware models, and is or has been used to simulate systems such asAlpha,ARM (32- and 64-bit),IA-64,MIPS (32- and 64-bit),MSP430,PowerPC (32- and64-bit),RISC-V (32- and64-bit),SPARC-V8 and V9, andx86 andx86-64 CPUs.
Many different operating systems have been run on various simulated virtual platforms, includingLinux,MS-DOS,Windows,VxWorks,OSE,Solaris,FreeBSD,QNX,RTEMS,UEFI, andZephyr.
TheNetBSD 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 avirtual 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 runningMicrosoft Windows andLinux (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 orbug occurred. When executing an OS such asLinux 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 bothbinary translation andhardware-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.