Download presentation
Presentation is loading. Please wait.
Published byOscar Norton Modified over 9 years ago
1
Simics: A Full System Simulation Platform Synopsis by Jen Miller 19 March 2004
2
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”
3
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
4
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
5
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!
6
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
7
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
8
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
9
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 – The caches store pointers to simulated memory and are indexed by virtual addresses Simics supports a device set that enables firmware and the OS to run – Keyboard/mouse controller, DMA, Interrupt controller, floppy controller, Graphics cards, etc. Users can write new device models
10
Economic Benefits Single platform across the development cycle
11
Simics Architecture
12
Implementation The target system is described using a simple object-oriented language
13
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
14
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.