1 / 14

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

werner
Download Presentation

Simics: A Full System Simulation Platform

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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

More Related