Simics Brief Introduction Presented By: Chunrong Lai Software Engineer Simics Technology Center (STC), Software and Services Group
Total Page:16
File Type:pdf, Size:1020Kb
Simics Brief Introduction Presented By: Chunrong Lai Software Engineer Simics Technology Center (STC), Software and Services Group 26 Oct, 2012 What is Simics? Simics is a high-performance, full system simulator used by software developers to simulate large and complex electronic systems. Wind River Simics • Simulate any size of target system • Run unmodified binaries • Other use cases as add-ons Simics allows you to break the rules of embedded systems development Software and Services Group ‹#› Simics History Research project at SICS started in 1991 Virtutech was founded in Sweden in 1998 and incorporated in USA in 2003. Acquired by Intel in 2010 Marketed and sold through Wind River (subsidiary) Software and Services Group ‹#› Simics Customers Marketing, Field & Sales Simics users Simics Technology Center Widley used acroos different Intel Simics External Customers, include groups/projects as an uniform network, communication, space, software platform simulator semiconductor and HPC field Software and Services Group ‹#› What Wind River Simics Customers Say Computing Server Networking Industrial Space . Shortens bring-up . Finds and solves . Prevents the loss . Saves $6M in time from 22 weeks problems in 30 of $10M by getting target hardware to 29 days minutes instead the ASIC right labs of three weeks before and three people manufacturing . Configures complex labs in minutes instead of weeks Software and Services Group ‹#› 5 Some Simics Features and Capabilities • High performance • Modeling language for fast development • Synchronized System Stop • Models in any language • Save/restore of simulated state − DML, C/C++, SystemC, Python • Repeatability • Large collection of model interfaces • Dynamic reconfiguration • User developed simulator features • Large systems, hundreds of processors • Integrates with external tools • Runs all software unmodified • Scripting for automated sessions − Windows, Linux, VxWorks, Hypervisor, etc • Operating System awareness • Heterogenous systems • Process tracking • Run simulation in reverse • Instruction and data profiling • C/C++ debugging • Supported, stable, well-documented API • Code coverage • Cache modeling • Trace generation • Advanced memory breakpoints • Non-intrusive inspection • Distributed simulation • Real-world connections • DHCP, DNS, FTP, TFTP services • Hardware-in-the-loop • Connections to remote debuggers • Record/replay of user input − E.g. GDB • Connections to hardware emulators • IP-XACT import/export • Gear shift to cycle accurate models • Import of SystemC models • Host virtualisation for native IA performance • Build kit for system panels • Binary translation for cross target simulation • Huge model library • Synchronize virtual time with external tools Software and Services Group ‹#› Important Features for Full System Simulation checkpointing dynamic configuration repeatability and reversibility scripting visibility Features work extensibility together to form “super features” software abstraction Software and Services Group ‹#› SIMICS USE CASES Software and Services Group ‹#› The Challenges of Systems Development Do More with Less • Target hardware Issues • Reduced staffing • Shorter Time-To-Market Growing Complexity • Multi-core SoCs, accelerators • Heterogeneous systems • Networked, large systems Global Teams • Engineering teams are no longer co-located • Multi-company collaboration • Collaboration and communication challenges Software and Services Group ‹#› Shift Left – Or Shorter TTM Product Life Cycle withTraditional virtual platforms Product Life Cycle Resources Software Reduced Time-to-Market Engineering Resources Engineering Increased Revenue Hardware Integration and Testing Time Software and Services Group ‹#› Repeated/Reverse Execution: On hardware, only some runs Do More with Less reproduce an error • Repeat any run trivially −No need to rerun and hope for bug to reoccur • Stop and go back in time −Instead of rerunning program from start −Breakpoints and watchpoints backwards in time With repeatability all runs reproduce −Investigate exactly what an error happened this time • This control and reliable repeatability is very powerful for parallel code! With reverse execution there is no need to iterate Software and Services Group ‹#› The Challenges of Systems Development Do More with Less • Target hardware Issues • Reduced staffing • Shorter Time-To-Market Growing Complexity • Multi-core SoCs, accelerators • Heterogeneous systems • Networked, large systems Global Teams • Engineering teams are no longer co-located • Multi-company collaboration • Collaboration and communication challenges Software and Services Group ‹#› The System is a Network! Identical Chassis and platforms Racks Interfaces: Backplanes RapidIO PCI Express* Shared memory Network Connection hubs & to the switches World Mixed Dedicated Architectur Subsystem Multicore es s Boards Software and Services Group ‹#› Control: A Lot Happens in a System Identical Chassis and platforms Racks Interfaces: Backplanes RapidIO PCI Express* Shared memory Network Connection hubs & to the switches World Mixed Dedicated Architectur Subsystem Multicore es s Boards Software and Services Group ‹#› Control: A Single Component may stop … Identical Chassis and platforms Racks Interfaces: Backplanes RapidIO PCI Express* Shared memory Network Connection hubs & to the switches World Mixed Dedicated Architectur Subsystem Multicore Boards es … but the rest of sthe system continues to run Software and Services Group ‹#› … or a Single Component Stops … Identical Chassis and platforms Racks Interfaces: Backplanes RapidIO PCI Express* Shared memory Network Connection hubs & to the switches World Mixed Dedicated Architectur Subsystem Multicore Boards …es and the whole systems crashes. But where is the bug? Software and Services Group ‹#› Control: Simics Synchronized System Stop Identical Chassis and platforms Racks Interfaces: Backplanes RapidIO PCI Express* Shared memory Network Connection hubs & to the switches World Mixed Dedicated Architectur Subsystem Multicore Boards es … the whole systems freezes in an operational state Software and Services Group ‹#› The Challenges of Systems Development Do More with Less • Target hardware Issues • Reduced staffing • Shorter Time-To-Market Growing Complexity • Multi-core SoCs, accelerators • Heterogeneous systems • Networked, large systems Global Teams • Engineering teams are no longer co-located • Multi-company collaboration • Collaboration and communication challenges Software and Services Group ‹#› Today’s Teams are Geographically Dispersed Support team Testing team Development Team How to communicate and share artifacts, such as system configurations, reproduction steps etc? Software and Services Group ‹#› Control: Taking a Check Point Identical Chassis and platforms Racks Interfaces: Backplanes RapidIO PCI Express* Shared memory Network Connection hubs & to the switches World Mixed Dedicated Architectur Subsystem Multicore es s Boards Software and Services Group ‹#› Control: Resume Identical Chassis and platforms Racks Interfaces: Backplanes RapidIO PCI Express* Shared memory Network Connection hubs & to the switches World Mixed Dedicated Architectur Subsystem Multicore es s Boards Software and Services Group ‹#› Checkpoint Collaboration Simics Virtual Platform: Simics Script: Exact configuration of Automate the actions the target system that that led to a bug. a bug was found on. Simics Checkpoint: A snapshot of the full system that can be restarted on any machine anywhere. Testing Team Development finds a bug Team Loads checkpoint and resumes execution to find the source of the bug. Software and Services Group ‹#› Impact on Productivity •Consider: −The time it takes to physically set up a system −The time it takes to boot a system −The time it takes to get a system to the exact state you want •With Simics Full System Simulation: −Take a snapshot of it −Re-load it seconds later −Re-load it from any other place in the world! •Start Simics: −http://www.windriver.com/products/simics/ −Supported through http://www.simics.net −Contact: [email protected] Software and Services Group ‹#› SIMICS IN ACADEMIA Software and Services Group ‹#› Computer Architecture •Computer architecture research −Cache and memory hierarchies in MP systems − ACM Athena lecture “Shared Caches in MultiCores” in ISCA2010 •Add-ons −UW-Madison Multifacet GEMS >OOO processor models, memory hierarchies −CMU SimFlex >Timing-accurate processor, memory and interconnect −UIUC FeS2 >Timing-first multiprocessor x86 simulator •Teaching case: −UC Berkeley: Graduate Computer Architecture Spring 2012 −UC Berkeley: Computer Architecture and Engineering Spring 2012 (undergraduate) Software and Services Group ‹#› Operating Systems •Teaching −Carnegie-Mellon University: Operating System Design and Implementation • Research > useful simulate additional hardware support or novel hardware features, or novel hardware configurations and computer organizations. Software and Services Group ‹#› Fault Injection, Reliable software •Some publications using Simics for fault injection include −Myhrman and Svärd: Studying Fault Injection in WCDMA Base Station Processors Using Simics Simulator, MSc Thesis, Chalmers University of Technology, May 2005 −Bastien, A Technique for Performing Fault Injection in System Level Simulations for Dependability Assessment, Master's Thesis, University of Virginia, January 2004. Software and Services Group ‹#› Workload characterization •Software profile −profiling the amount