Simics: A Full System Simulation Platform

Download Report

Transcript Simics: A Full System Simulation Platform

Simics:
A Full System Simulation Platform
Synopsis by
Jen Miller
19 March 2004
Goals



Simulate a complete system with perfect
accuracy
Simulate realistic work loads
Achieve balance between accuracy and
performance
–
–
Accurate enough to run commercial workloads
Abstract enough to simulate “quickly”
What can Simics do?

Model a wide variety of systems
–
–
–
–

Embedded
Desktop
MPs
Clusters
Run many realistic workloads
–
–
–
–
Unmodified operating systems
SPEC CPU2000
TPC-C
Interactive desktop apps and games
How does Simics model systems?

Processors are simulated at the instruction-set
level
–


UltraSPARC, Alpha, MIPS, ARM, IPF, PowerPC,
X86 and X86-64
Flexibility  Mix and match architectures with
operating systems
Accurate device models can run real firmware
and device drivers
Operating Systems


User-level applications can be run on a “bare
bones” simulator by using an OS emulation
layer
We can isolate the behavior of a single
application!
Full-Scale Distributed Systems






Each target machine is a node
A single Simics instance can simulate one or more
nodes of the same basic architecture
Heterogeneous nodes can be connected into a
network using Simics Central
Simulation is fast enough to be interactive
Global time can be paused to inspect state
Some capabilities: Access memory traffic or set
breakpoints anywhere, modify any of the systems,
timestamp user input, checkpoint simulations
Simics Central



Synchronizes virtual time between Simics
simulators and distributes simulated traffic
between nodes
Imposes a minimum latency on all messages
Will halt the simulation if one process
consumes cycles slower than others
–

Network simulation speed is limited by the slowest
process
Currently supports Ethernet networks
Debugging

Simics supports traditional debugging
–
–


Loading symbolic information
Single stepping
Repeatability: Prior sequences of events can
be played back to trigger a bug
External debuggers can be attached
–
For example, TCP/IP GNU debugger
Memory and I/O Devices


Users can extend a simulated memory space by
adding a timing model (such as Ruby)
Simics uses a simulator translation cache to speed up
loads, stores, and instruction fetches
–

Simics supports a device set that enables firmware and
the OS to run
–

The caches store pointers to simulated memory and are
indexed by virtual addresses
Keyboard/mouse controller, DMA, Interrupt controller, floppy
controller, Graphics cards, etc.
Users can write new device models
Economic Benefits

Single platform across the development cycle
Simics Architecture
Implementation

The target system is described using a simple
object-oriented language
Event Handling




Simics can mix event-driven and time-driven
components
Each processor object has two event queues:
a step queue and a time queue
Events appear in the step queue after a
number of program counter steps
The time queue has a resolution of a processor
clock cycle
Conclusions

Full system simulation has benefits over testing
physical hardware
–
–
–
–
Easy to arbitrarily modify conditions and insert
errors
Discovered errors can be replicated
Automated testing
You can get a good idea of feasibility and
performance before you build something