Peter S. Magnusson, Magnus Crhistensson, Jesper Eskilson, Daniel Forsgren, Gustav Hallberg, Johan Högberg, Frederik larsson, Anreas Moestedt. Presented.

Slides:



Advertisements
Similar presentations
1 (Review of Prerequisite Material). Processes are an abstraction of the operation of computers. So, to understand operating systems, one must have a.
Advertisements

Khaled A. Al-Utaibi  Computers are Every Where  What is Computer Engineering?  Design Levels  Computer Engineering Fields  What.
Helper Threads via Virtual Multithreading on an experimental Itanium 2 processor platform. Perry H Wang et. Al.
Enabling Efficient On-the-fly Microarchitecture Simulation Thierry Lafage September 2000.
Disco: Running Commodity Operating Systems on Scalable Multiprocessors Bugnion et al. Presented by: Ahmed Wafa.
Intro to computers Hardware Operating System, Communication Computers PowerHardware Software OS Application COMMUNICATION.
Chapter XI Reduced Instruction Set Computing (RISC) CS 147 Li-Chuan Fang.
G Robert Grimm New York University Disco.
INTRODUCTION OS/2 was initially designed to extend the capabilities of DOS by IBM and Microsoft Corporations. To create a single industry-standard operating.
I/O Hardware n Incredible variety of I/O devices n Common concepts: – Port – connection point to the computer – Bus (daisy chain or shared direct access)
Disco Running Commodity Operating Systems on Scalable Multiprocessors.
CPEN Digital System Design Chapter 10 – Instruction SET Architecture (ISA) © Logic and Computer Design Fundamentals, 4 rd Ed., Mano Prentice Hall.
Figure 1.1 Interaction between applications and the operating system.
Introduction Operating Systems’ Concepts and Structure Lecture 1 ~ Spring, 2008 ~ Spring, 2008TUCN. Operating Systems. Lecture 1.
SECTION 1: INTRODUCTION TO SIMICS Scott Beamer CS152 - Spring 2009.
Prardiva Mangilipally
A Survey on Virtualization Technologies
Computer Organization
Chapter 8 Windows Outline Programming Windows 2000 System structure Processes and threads in Windows 2000 Memory management The Windows 2000 file.
Basic Input Output System
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
A Survey on Virtualization Technologies. Virtualization is “HOT” Microsoft acquires Connectix Corp. EMC acquires VMware Veritas acquires Ejascent IBM,
Disco : Running commodity operating system on scalable multiprocessor Edouard et al. Presented by Jonathan Walpole (based on a slide set from Vidhya Sivasankaran)
CS533 Concepts of Operating Systems Jonathan Walpole.
LiNK: An Operating System Architecture for Network Processors Steve Muir, Jonathan Smith Princeton University, University of Pennsylvania
1 4.2 MARIE This is the MARIE architecture shown graphically.
Uncovering the Multicore Processor Bottlenecks Server Design Summit Shay Gal-On Director of Technology, EEMBC.
Computers organization & Assembly Language Chapter 0 INTRODUCTION TO COMPUTING Basic Concepts.
Recall: Three I/O Methods Synchronous: Wait for I/O operation to complete. Asynchronous: Post I/O request and switch to other work. DMA (Direct Memory.
Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University.
OPERATING SYSTEMS Goals of the course Definitions of operating systems Operating system goals What is not an operating system Computer architecture O/S.
1 Wenguang WangRichard B. Bunt Department of Computer Science University of Saskatchewan November 14, 2000 Simulating DB2 Buffer Pool Management.
Fall 2012 Chapter 2: x86 Processor Architecture. Irvine, Kip R. Assembly Language for x86 Processors 6/e, Chapter Overview General Concepts IA-32.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 7 OS System Structure.
Architectural Characterization of an IBM RS6000 S80 Server Running TPC-W Workloads Lei Yang & Shiliang Hu Computer Sciences Department, University of.
Architectural Characterization of an IBM RS6000 S80 Server Running TPC-W Workloads Lei Yang & Shiliang Hu Computer Sciences Department, University of.
TEMPLATE DESIGN © Hardware Design, Synthesis, and Verification of a Multicore Communication API Ben Meakin, Ganesh Gopalakrishnan.
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
Disco: Running Commodity Operating Systems on Scalable Multiprocessors Edouard Bugnion, Scott Devine, and Mendel Rosenblum Summary By A. Vincent Rayappa.
Disco: Running Commodity Operating Systems on Scalable Multiprocessors Edouard et al. Madhura S Rama.
Processes Introduction to Operating Systems: Module 3.
Disco : Running commodity operating system on scalable multiprocessor Edouard et al. Presented by Vidhya Sivasankaran.
Computer Organization & Assembly Language © by DR. M. Amer.
Operating System Issues in Multi-Processor Systems John Sung Hardware Engineer Compaq Computer Corporation.
Simics: A Full System Simulation Platform Synopsis by Jen Miller 19 March 2004.
A scalable workbench for implementing and evaluating distributed applications in mobile ad-hoc networks Johannes K. Lehnert, Daniel Görgen, Hannes Frey,
Full and Para Virtualization
Lecture on Central Process Unit (CPU)
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
Disco: Running Commodity Operating Systems on Scalable Multiprocessors Presented by: Pierre LaBorde, Jordan Deveroux, Imran Ali, Yazen Ghannam, Tzu-Wei.
Constructive Computer Architecture Virtual Memory: From Address Translation to Demand Paging Arvind Computer Science & Artificial Intelligence Lab. Massachusetts.
(1) SIMICS Overview. (2) SIMICS – A Full System Simulator Models disks, runs unaltered OSs etc. Accuracy is high (e.g., pollution effects factored in)
System Programming Basics Cha#2 H.M.Bilal. Operating Systems An operating system is the software on a computer that manages the way different programs.
Running Commodity Operating Systems on Scalable Multiprocessors Edouard Bugnion, Scott Devine and Mendel Rosenblum Presentation by Mark Smith.
OPERATING SYSTEMS DO YOU REQUIRE AN OPERATING SYSTEM IN YOUR SYSTEM?
Virtualization Neependra Khare
Introduction to Operating Systems Concepts
Chapter Overview General Concepts IA-32 Processor Architecture
Virtual Machine Monitors
Andreas Hoffmann Andreas Ropers Tim Kogel Stefan Pees Prof
Current Generation Hypervisor Type 1 Type 2.
Unit OS2: Operating System Principles
Introduction to SimpleScalar (Based on SimpleScalar Tutorial)
Xen: The Art of Virtualization
Introduction to SimpleScalar (Based on SimpleScalar Tutorial)
Section 1: Introduction to Simics
Agenda Why simulation Simulation and model Instruction Set model
How much does OS operation impact your code’s performance?
A Survey on Virtualization Technologies
Lecture Topics: 11/1 General Operating System Concepts Processes
Presentation transcript:

Peter S. Magnusson, Magnus Crhistensson, Jesper Eskilson, Daniel Forsgren, Gustav Hallberg, Johan Högberg, Frederik larsson, Anreas Moestedt. Presented by Eduardo Cuervo

 Simulation is an important step ◦ Research ◦ Evaluation ◦ Computer Design  Not enough to simulate only user level code ◦ Not accurate enough ◦ Need for Full System Simulation (slower)  Simulation must be able to interface with detailed HW models timely.

 Scope (What is modeled?) ◦ Full system ◦ User level  Level of abstraction ◦ Functional behavior (what) ◦ Timing behavior (when)  Realistic workloads ◦ Functional:Boot, run unmodified OS, benchmarks ◦ Timing: Support hardware engineering ◦ Fast enough to run real workloads

 Full system simulator  Instruction-set level  Support for multiple architectures ◦ SPARC ◦ Alpha ◦ X86 ◦ Itanium ◦ MIPS ◦ ARM  Unmodified OS support

 Processor Models  Device Models ◦ Accurate enough for real drivers and firmware  Simics Central ◦ Creation of full-scale distributed system ◦ Router ◦ Communicates multiple Simics instances  Multiple nodes of the same architecture per instance ◦ Synchronizes instances

 Microprocessor design ◦ Interaction with memory manager an scheduler ◦ Approximate cache and I/O timing models ◦ Scalable to full server workloads (TPC-C) ◦ OoO Support, custom ROB but no pipeline  Memory studies ◦ Memory Spaces  Address Spaces ◦ Extendable with timing models  OS Development ◦ Implementation of very specific breakpoints  Debugging

 Simics Central ◦ Synchronizes virtual time ◦ Simulation speed = speed of the slowest Simics process  Configuration ◦ Object Oriented  Command Line Interface (CLI) and Scripting ◦ Built-in Python runtime environment ◦ Scripts tied to events (TLB misses, I/O operations)  Devices ◦ Timer, floppy, keyboard,mouse, DMA,interrupt,etc.

OBJECT cpu0 TYPE x86-hammer { freq_mhz: 3500 physical_memory: phys_mem0 } OBJECT phys_mem0 TYPE memory-space { map: ((0xa0000, vga0, 1, 0, 0x20000), (0x100000, mem0, 0, 0x100000, 0xff00000),... } OBJECT con0 TYPE gfx-console { queue: cpu0 x-size: 720 y-size: 400 keyboard: kbd0 Mouse: kbd0 }

from sim_core import * import conf def break_handler(id): if conf.cpu0.eax > conf.cpu0.ecx: raise SimExc_Break id = SIM_breakpoint(conf.phys_mem0, Break_Physical, Break_Execute, 0x000f2501, 1, 0) SIM_hap_register_callback( “Core_Breakpoint”,break_handler, id)

 HDL interface ◦ Link Simics to Verilog through C interface  Simics API ◦ Makes Simics extensible ◦ Write new device models, commands, routines  Memory ◦ Biggest performance challenge ◦ Simulator transaction cache

 Speeds up loads, stores and fetches  Pointers to simulated memory ◦ Indexed by virtual address  No side effects on hit ◦ Alignment exception, TLB miss, cache miss, breakpoint  Interpreter cache  Hit inlined in the kernel  Most complex construct

 Two event queues ◦ Step queue  Triggered by program counter steps ◦ Time queue  Resolution of a processor clock cycle  Mix of time-driven and event-driven components

 Specification language: Sim Gen  Generates all permitted combinations  Better interpreter than practical to do manually  Outputs an interpreter in C // IA32/x86-64 add to left instruction instruction ADD_L({REG}, {REG_OR_MEM}) pattern op_h2 == 0 && opl == 0 && d == 1 && opm == 0 syntax “add {REG},{REG_OR_MEM}” semantics #{ ireg_t op1 = {REG}; ireg_t op2 = {REG_OR_MEM}; ireg_t dst = op1 + op2; EFLAGS_ADD(dst,op1,op2,w,os); SET({REG_W}, dst); #} attributes type = IT_ALU

 Os boot workloads ◦ Modeled with 7 processor architectures  Scalability shown on Ultra II Enterprise Servers ◦ Increasing number of CPUs  Lower performance on OoO versions

 IBM first emulator (7070)  PDP-11  G88  Gsim ◦ Based on g88 ◦ Rewritten as the first version of simics  SimOS ◦ MIPS-based processor ◦ Similar goals and solutions ◦ More general solution ◦ Three CPU simulators

 Full system simulation is required for realistic workloads  Simics offers a valuable simulation tool for designing and evaluating HW  Support for scripting, networking, and multiple architectures are a great advantage