How Simics can Benefit Research

For researchers in computer systems, embedded systems, security, computer architecture and other fields, Simics has several unique and powerful features that can help make your research more realistic and relevant.

Simics runs complete software stacks. Simics runs unmodified operating systems, drivers, firmware, and application software on the simulated machines. As far as the software is concerned, there is no difference from a real machine. This means that you can execute real operating systems and account for their effect in simulation studies, which is not possible using user-level simulation or operating-system emulation.

Simics is very fast. In its functional simulation mode, Simics runs software on the simulated machine at hundreds of MIPS. This is fast enough to execute real-world workloads, and makes it possible to simulate many target machines using a single Simics process. This enables research based on executing large workloads in simulation, and the use of Simics as an alternative to real hardware for software research. For computer architects, fast simulation can be used to bring up simulated machines and position workloads before detailed simulation begins.

Network simulation is easy. Simics simulates networks, allowing you to examine the behavior of complete redundant clusters, client-server, three-tier, and other distributed systems containing multiple networked machines. You can connect the simulated Ethernet network in Simics to a real network in order to interact with the Internet or machines on your LAN. Simics works on the level of Ethernet frames, allowing any protocol to be run on top of the Simics simulated network.

Multiprocessor simulation is natural. Simics has always supported the simulation of shared-memory multiprocessors, running SMP-aware operating systems like Solaris, Linux, and Windows. Simics can simulate multiprocessor and multithreaded architectures like chip multiprocessors (CMP), SMT, and SMPs. Heterogeneous multiprocessors can be used, with different instruction sets and speeds specified for each processor in a system, and arbitrary division of local and shared memory between processors.

Simics scales. Simics is capable of simulating targets which are far larger and have bigger memories than the host machine. There are no artificial limitations on how many processors, the type of processors, or the size of memory of the target machine. Simics is lazy when allocating memory, and as long as the memory working sets of the simulated machines fit in the host machine memory, simulation will be fast.

Simics offers unparalleled visibility. For software and embedded systems research, Simics offers unparalleled visibility into and control over system behavior. With Simics, you can log any activity in any machine on a network, and profile the execution of programs and their results in terms of memory accesses and network traffic. It is possible to program fault injection, and write scripts to observe and change the target state.

Simics is a powerful software development tool. Simics is designed as a tool for software development. It offers source-level debugging of firmware, device drivers, operating systems, and applications. Simics Hindsight allows for reverse debugging on complete simulated systems. Thanks to determinism, Simics is an excellent tool for debugging multithreaded and multiprocessor programs.

Simics is a perfect sandbox. Since a Simics target machine is completely simulated, there are no back doors allowing the software on the target to access the host machine. Along with the powerful observation and debug features, this makes Simics a very useful tool for research in computer security. Nasty code can be investigated without risk to other machines, and code which tries to detect that it is being debugged has no chance in Simics. 

Simics simulates relevant instruction sets. Simics has models of, all processor families commonly used in embedded systems, desktop, and servers like Sparc (v8 and v9), x86, x86-64, PowerPC (32-bit and 64-bit), MIPS, ARM, and MSP430.

News & Events | Contact us | About Us | Partners | Academia
All Content © 2004-2010 Wind River unless otherwise noted | Terms of Use