SimBench. A Portable Benchmarking Methodology for Full-System Simulators. Harry Wagstaff Bruno Bodin Tom Spink Björn Franke
|
|
- David Horn
- 6 years ago
- Views:
Transcription
1 SimBench A Portable Benchmarking Methodology for Full-System Simulators Harry Wagstaff Bruno Bodin Tom Spink Björn Franke Institute for Computing Systems Architecture University of Edinburgh ISPASS
2 Motivation Instruction Set Simulation Evaluating Simulation Tools The SimBench Methodology Overview Implementation Porting SimBench Evaluation 2
3 Instruction Set Simulation Instruction Set Simulation is used in a wide variety of contexts: Motivation Instruction Set Simulation 3
4 Instruction Set Simulation Instruction Set Simulation is used in a wide variety of contexts: Design Space Exploration Gem5 Multi2Sim Motivation Instruction Set Simulation 3
5 Instruction Set Simulation Instruction Set Simulation is used in a wide variety of contexts: Design Space Exploration Software Development QEMU Android Emulator Motivation Instruction Set Simulation 3
6 Instruction Set Simulation Instruction Set Simulation is used in a wide variety of contexts: Design Space Exploration Software Development Backwards Compatibility Apple Rosetta Nintendo NES Classic Motivation Instruction Set Simulation 3
7 Instruction Set Simulation Instruction Set Simulation is used in a wide variety of contexts: Design Space Exploration Software Development Backwards Compatibility Simulators can be broken up into several categories: Functional Only Profiling/Performance Modelling User-Mode Full System Motivation Instruction Set Simulation 3
8 User-Mode Simulation Simulated CPU Flat Memory Execute a single binary Emulate System Calls Simplified Memory System Syscall Emulation Layer Host Console Host Timers Host File System Motivation Instruction Set Simulation 4
9 Full-System Simulation Simulated CPU Boot out of reset System-mode Instructions Simulated MMU Physical Memory Memory Translation Asynchronous Interrupts External Devices Simulated Serial Port Simulated Timers Simulated Storage Device Host Console Host Timers Host File System Motivation Instruction Set Simulation 5
10 Fast Simulation We want to make our simulators go fast! To be clear, we want the simulator itself to be efficient. Motivation Instruction Set Simulation 6
11 Fast Simulation We want to make our simulators go fast! To be clear, we want the simulator itself to be efficient. How? Dynamic Binary Translation Memory-Related Techniques Efficient Interrupt Modelling Control Flow Handling Motivation Instruction Set Simulation 6
12 Fast Simulation We want to make our simulators go fast! To be clear, we want the simulator itself to be efficient. How? Dynamic Binary Translation Memory-Related Techniques Efficient Interrupt Modelling Control Flow Handling How do we evaluate the effectiveness of these techniques in spite of complex interactions? Motivation Instruction Set Simulation 6
13 Typical Benchmarking Approaches Most common approaches fall into two categories: Large, complex macrobenchmark suites Small, targeted but ad-hoc microbenchmarks Both approaches are problematic for several reasons. Motivation Evaluating Simulation Tools 7
14 Macrobenchmarking The most common approach is to use large macrobenchmarks However, this presents several problems: Benchmark runtimes are long Difficult to perform detailed analysis Aggregated runtimes may hide interesting results Speedup sjeng SPEC (overall) mcf rc rc rc2 QEMU Version Motivation Evaluating Simulation Tools 8
15 Ad-Hoc Microbenchmarking Many papers also attempt to use ad-hoc microbenchmarks to assess performance. However, these also have problems: Source code may be unavailable, damaging reproducibility Secondary effects may not be taken into account Motivation Evaluating Simulation Tools 9
16 Sum Two Arrays - Source Code float out[array_size]; float a[array_size]; float b[array_size];... void foo() { for(int i = 0; i < ARRAY_SIZE; ++i) { out[i] = a[i] + b[i]; } } Motivation Evaluating Simulation Tools 10
17 Sum Two Arrays - Assembly Code foo: 0: add r3, r0, #512 ; 0x200 4: vldmia r0!, {s15} 8: vldmia r1!, {s14} c: cmp r0, r3 10: vadd.f32 s15, s15, s14 14: vstmia r2!, {s15} 18: bne 4 <foo+0x4> 1c: bx lr Motivation Evaluating Simulation Tools 11
18 Sum Two Arrays - Assembly Code foo: 0: add r3, r0, #512 ; 0x200 4: vldmia r0!, {s15} 8: vldmia r1!, {s14} c: cmp r0, r3 10: vadd.f32 s15, s15, s14 14: vstmia r2!, {s15} 18: bne 4 <foo+0x4> 1c: bx lr Instruction Page Fault Code Generation Instruction Page fault, Code generation Motivation Evaluating Simulation Tools 11
19 Sum Two Arrays - Assembly Code foo: 0: add r3, r0, #512 ; 0x200 4: vldmia r0!, {s15} 8: vldmia r1!, {s14} c: cmp r0, r3 10: vadd.f32 s15, s15, s14 14: vstmia r2!, {s15} 18: bne 4 <foo+0x4> 1c: bx lr Instruction Page Fault Code Generation Cold Memory Access Data Page Fault Cold memory access, Data Page fault Motivation Evaluating Simulation Tools 11
20 Sum Two Arrays - Assembly Code foo: 0: add r3, r0, #512 ; 0x200 4: vldmia r0!, {s15} 8: vldmia r1!, {s14} c: cmp r0, r3 10: vadd.f32 s15, s15, s14 14: vstmia r2!, {s15} 18: bne 4 <foo+0x4> 1c: bx lr Instruction Page Fault Code Generation Cold Memory Access Data Page Fault Hot Memory Access Hot memory access Motivation Evaluating Simulation Tools 11
21 Sum Two Arrays - Assembly Code foo: 0: add r3, r0, #512 ; 0x200 4: vldmia r0!, {s15} 8: vldmia r1!, {s14} c: cmp r0, r3 10: vadd.f32 s15, s15, s14 14: vstmia r2!, {s15} 18: bne 4 <foo+0x4> 1c: bx lr Instruction Page Fault Code Generation Cold Memory Access Data Page Fault Hot Memory Access FP Operation FP Operation Motivation Evaluating Simulation Tools 11
22 Sum Two Arrays - Assembly Code foo: 0: add r3, r0, #512 ; 0x200 4: vldmia r0!, {s15} 8: vldmia r1!, {s14} c: cmp r0, r3 10: vadd.f32 s15, s15, s14 14: vstmia r2!, {s15} 18: bne 4 <foo+0x4> 1c: bx lr Instruction Page Fault Code Generation Cold Memory Access Data Page Fault Hot Memory Access FP Operation Hot memory access Motivation Evaluating Simulation Tools 11
23 Sum Two Arrays - Assembly Code foo: 0: add r3, r0, #512 ; 0x200 4: vldmia r0!, {s15} 8: vldmia r1!, {s14} c: cmp r0, r3 10: vadd.f32 s15, s15, s14 14: vstmia r2!, {s15} 18: bne 4 <foo+0x4> 1c: bx lr Instruction Page Fault Code Generation Cold Memory Access Data Page Fault Hot Memory Access FP Operation Direct Control Flow Interrupt Direct control flow, Interrupt Motivation Evaluating Simulation Tools 11
24 Sum Two Arrays - Assembly Code foo: 0: add r3, r0, #512 ; 0x200 4: vldmia r0!, {s15} 8: vldmia r1!, {s14} c: cmp r0, r3 10: vadd.f32 s15, s15, s14 14: vstmia r2!, {s15} 18: bne 4 <foo+0x4> 1c: bx lr Instruction Page Fault Code Generation Cold Memory Access Data Page Fault Hot Memory Access FP Operation Direct Control Flow Interrupt Code generation Motivation Evaluating Simulation Tools 11
25 Sum Two Arrays - Assembly Code foo: 0: add r3, r0, #512 ; 0x200 4: vldmia r0!, {s15} 8: vldmia r1!, {s14} c: cmp r0, r3 10: vadd.f32 s15, s15, s14 14: vstmia r2!, {s15} 18: bne 4 <foo+0x4> 1c: bx lr Instruction Page Fault Code Generation Cold Memory Access Data Page Fault Hot Memory Access FP Operation Direct Control Flow Interrupt Code generation Motivation Evaluating Simulation Tools 11
26 Sum Two Arrays - Assembly Code foo: 0: add r3, r0, #512 ; 0x200 4: vldmia r0!, {s15} 8: vldmia r1!, {s14} c: cmp r0, r3 10: vadd.f32 s15, s15, s14 14: vstmia r2!, {s15} 18: bne 4 <foo+0x4> 1c: bx lr Instruction Page Fault Code Generation Cold Memory Access Data Page Fault Hot Memory Access FP Operation Direct Control Flow Interrupt Indirect Control Flow Indirect control flow, Interrupt Motivation Evaluating Simulation Tools 11
27 SimBench We present SimBench, which is designed to address some of these problems. The SimBench Methodology Overview 12
28 SimBench We present SimBench, which is designed to address some of these problems. SimBench... Contains a range of targeted microbenchmarks The SimBench Methodology Overview 12
29 SimBench We present SimBench, which is designed to address some of these problems. SimBench... Contains a range of targeted microbenchmarks Is aimed at full-system simulation techniques The SimBench Methodology Overview 12
30 SimBench We present SimBench, which is designed to address some of these problems. SimBench... Contains a range of targeted microbenchmarks Is aimed at full-system simulation techniques Is easily portable to new platforms and architectures The SimBench Methodology Overview 12
31 SimBench We present SimBench, which is designed to address some of these problems. SimBench... Contains a range of targeted microbenchmarks Is aimed at full-system simulation techniques Is easily portable to new platforms and architectures Runs bare-metal on the guest (i.e., without an OS) The SimBench Methodology Overview 12
32 Guest System Benchmarks Platform Library Arch. Library Timing Application Host System The SimBench Methodology Overview 13
33 Guest System Benchmarks Platform Library Arch. Library Timing Application Host System The SimBench Methodology Overview 14
34 Categories SimBench currently features five categories of benchmark: Code Generation Control Flow Exception Handling I/O Memory System A total of 18 benchmarks are in the suite. The SimBench Methodology Overview 15
35 Implementation The benchmarks are implemented entirely in C: No inline assembly in the benchmarks No weird intrinsics or builtins Some extensions used for code alignment The SimBench Methodology Implementation 16
36 Implementation - Defeating Optimisations We want to preserve interesting operations while still using our compiler optimisations: Use of empty volatile assembly statements Volatile memory accesses where necessary Indirect jumps via opaque pointers where necessary Benchmarks split into many objects to defeat inlining for(int i = 0; i < ITERATIONS; ++i) { volatile asm ("" ::: memory); } The SimBench Methodology Implementation 17
37 Implementation - Defeating Optimisations We want to preserve interesting operations while still using our compiler optimisations: Use of empty volatile assembly statements Volatile memory accesses where necessary Indirect jumps via opaque pointers where necessary Benchmarks split into many objects to defeat inlining static volatile uint32_t value = 0;... value = value; value = value; value = value; The SimBench Methodology Implementation 17
38 Implementation - Defeating Optimisations We want to preserve interesting operations while still using our compiler optimisations: Use of empty volatile assembly statements Volatile memory accesses where necessary Indirect jumps via opaque pointers where necessary Benchmarks split into many objects to defeat inlining static benchmark_kernel_t fn_table[];... while(iterations-- > 0) { fn_table[i % FN_TABLE_SIZE](); } The SimBench Methodology Implementation 17
39 Implementation - Defeating Optimisations We want to preserve interesting operations while still using our compiler optimisations: Use of empty volatile assembly statements Volatile memory accesses where necessary Indirect jumps via opaque pointers where necessary Benchmarks split into many objects to defeat inlining inter-page-direct.c: void ipd-fn-10();... ipd-fn-10(); inter-page-direct-10.c: void ipd-fn-9(); void ipd-fn-10() { ipd-fn-9(); } The SimBench Methodology Implementation 17
40 Guest System Benchmarks Platform Library Arch. Library Timing Application Host System The SimBench Methodology Porting SimBench 18
41 Porting To A New Platform To port SimBench to a new platform (where the architecture is already supported), 4 main components are required: A simple UART driver An IRQ Controller driver A description of the memory layout A linker script Lines of Code C ASM 0 ARM x86 The SimBench Methodology Porting SimBench 19
42 Porting To A New Architecture Porting to a new architecture is somewhat more complex. Bring system out of reset Manage page tables Manage interrupt/exception vectors Lines of Code C ASM 0 ARM X86 The SimBench Methodology Porting SimBench 20
43 Guest System Benchmarks Platform Library Arch. Library Timing Application Host System The SimBench Methodology Porting SimBench 21
44 Timing SimBench uses the Host system to collect benchmark timings: We don t trust the timing accuracy of the Guest Guest might report simulated cycles instead of real time Only needs platform-specific UART rather than Timer+IRQ+handler+... Guest Startup Prepare Benchmark Benchmark Kernel Cleanup Benchmark Guest Sends '[' Guest Sends ']' Host Time Benchmark Time The SimBench Methodology Porting SimBench 22
45 Evaluation We ran SimBench on a variety of platforms A range of full system simulators including QEMU A virtualized system, using KVM Natively on real hardware Evaluation 23
46 Categories - ARM Guest Simulators on x86 Host, QEMU-KVM and Hardware on ARM Host Speedup over QEMU-DBT Code Generation Control Flow Exception Handling I/O Memory System 0.01 QEMU-DBT SimIt-ARM Gem5 QEMU-KVM Hardware Evaluation 24
47 Categories Speedup v2.1.3 v2.1.2 v2.1.1 v2.1.0 v2.0.2 v2.0.1 v2.0.0 v1.7.2 v1.7.1 v1.7.0 Control Flow, QEMU-ARM on x86 Same-Page-Indirect Inter-Page-Indirect Same-Page-Direct Inter-Page-Direct v2.5.0-rc2 v2.5.0-rc1 v2.5.0-rc0 v2.4.1 v2.4.0 v v2.3.1 v2.3.0 v2.2.1 v2.2.0 Evaluation QEMU Version 25
48 Categories This represents 13% of executed instructions! Speedup v2.1.3 v2.1.2 v2.1.1 v2.1.0 v2.0.2 v2.0.1 v2.0.0 v1.7.2 v1.7.1 v1.7.0 Control Flow, QEMU-ARM on x86 Same-Page-Indirect Inter-Page-Indirect Same-Page-Direct Inter-Page-Direct v2.5.0-rc2 v2.5.0-rc1 v2.5.0-rc0 v2.4.1 v2.4.0 v v2.3.1 v2.3.0 v2.2.1 v2.2.0 Evaluation QEMU Version 26
49 Summary In summary: Existing benchmarking methods have several shortcomings SimBench is capable of addressing these shortcomings But SimBench does not replace application benchmarks Future Work: Additional categories of benchmark Ports to new architectures & platforms Improve robustness of existing benchmarks Summary 27
50 Thanks for Listening! Any Questions? SimBench is available now at 28
51 Benchmarks Code Generation Small Blocks Large Blocks Control Flow I/O Inter-Page Direct Inter-Page Indirect Intra-Page Direct Intra-Page Indirect Memory Mapped Device Coprocessor Access Exception Handling Data Access Fault Instruction Access Fault Undefined Instruction System Call External Software Interrupt Memory Cold Memory Access Hot Memory Access Nonprivileged Access TLB Eviction TLB Flush Extra Slides Benchmarks 29
52 Evaluation Platforms Machine ODROID-XU3 HP z440 CPU Exynos 5422 Xeon E v3 CPU GHz 2.0 (A15) 1.4 (A7) 3.5 (3.6 Boost) Memory 2GB 16GB Compiler gcc gcc OS Name Ubuntu Fedora 21 OS Kernel Extra Slides Benchmarks 30
Cross-architecture Virtualisation
Cross-architecture Virtualisation Tom Spink Harry Wagstaff, Björn Franke School of Informatics University of Edinburgh Virtualisation Many of you will be familiar with same-architecture virtualisation
More informationKVM/ARM. Linux Symposium Christoffer Dall and Jason Nieh
KVM/ARM Linux Symposium 2010 Christoffer Dall and Jason Nieh {cdall,nieh}@cs.columbia.edu Slides: http://www.cs.columbia.edu/~cdall/ols2010-presentation.pdf We like KVM It s Fast, Free, Open, and Simple!
More informationMicrokernels and Portability. What is Portability wrt Operating Systems? Reuse of code for different platforms and processor architectures.
Microkernels and Portability What is Portability wrt Operating Systems? Reuse of code for different platforms and processor architectures. Contents Overview History Towards Portability L4 Microkernels
More informationA Fast Instruction Set Simulator for RISC-V
A Fast Instruction Set Simulator for RISC-V Maxim.Maslov@esperantotech.com Vadim.Gimpelson@esperantotech.com Nikita.Voronov@esperantotech.com Dave.Ditzel@esperantotech.com Esperanto Technologies, Inc.
More informationLec 22: Interrupts. Kavita Bala CS 3410, Fall 2008 Computer Science Cornell University. Announcements
Lec 22: Interrupts Kavita Bala CS 3410, Fall 2008 Computer Science Cornell University HW 3 HW4: due this Friday Announcements PA 3 out Nov 14 th Due Nov 25 th (feel free to turn it in early) Demos and
More informationVirtualization. Operating Systems, 2016, Meni Adler, Danny Hendler & Amnon Meisels
Virtualization Operating Systems, 2016, Meni Adler, Danny Hendler & Amnon Meisels 1 What is virtualization? Creating a virtual version of something o Hardware, operating system, application, network, memory,
More informationHypervisors on ARM Overview and Design choices
Hypervisors on ARM Overview and Design choices Julien Grall Root Linux Conference 2017 ARM 2017 About me Working on ARM virtualization for the past 4 years With ARM since 2016 Co-maintaining
More informationECE 598 Advanced Operating Systems Lecture 4
ECE 598 Advanced Operating Systems Lecture 4 Vince Weaver http://www.eece.maine.edu/~vweaver vincent.weaver@maine.edu 28 January 2016 Announcements HW#1 was due HW#2 was posted, will be tricky Let me know
More informationA Framework for Safe Automatic Data Reorganization
Compiler Technology A Framework for Safe Automatic Data Reorganization Shimin Cui (Speaker), Yaoqing Gao, Roch Archambault, Raul Silvera IBM Toronto Software Lab Peng Peers Zhao, Jose Nelson Amaral University
More informationAdvanced Operating Systems Embedded from Scratch: System boot and hardware access. Federico Terraneo
Embedded from Scratch: System boot and hardware access federico.terraneo@polimi.it Outline 2/28 Bare metal programming HW architecture overview Linker script Boot process High level programming languages
More informationCortex-A9 MPCore Software Development
Cortex-A9 MPCore Software Development Course Description Cortex-A9 MPCore software development is a 4 days ARM official course. The course goes into great depth and provides all necessary know-how to develop
More informationUnder the Compiler's Hood: Supercharge Your PLAYSTATION 3 (PS3 ) Code. Understanding your compiler is the key to success in the gaming world.
Under the Compiler's Hood: Supercharge Your PLAYSTATION 3 (PS3 ) Code. Understanding your compiler is the key to success in the gaming world. Supercharge your PS3 game code Part 1: Compiler internals.
More informationCS5460: Operating Systems
CS5460: Operating Systems Lecture 2: OS Hardware Interface (Chapter 2) Course web page: http://www.eng.utah.edu/~cs5460/ CADE lab: WEB L224 and L226 http://www.cade.utah.edu/ Projects will be on Linux
More informationCS533 Concepts of Operating Systems. Jonathan Walpole
CS533 Concepts of Operating Systems Jonathan Walpole Improving IPC by Kernel Design & The Performance of Micro- Kernel Based Systems The IPC Dilemma IPC is very import in µ-kernel design - Increases modularity,
More informationCSE 237B Fall 2009 Virtualization, Security and RTOS. Rajesh Gupta Computer Science and Engineering University of California, San Diego.
CSE 237B Fall 2009 Virtualization, Security and RTOS Rajesh Gupta Computer Science and Engineering University of California, San Diego. Overview What is virtualization? Types of virtualization and VMs
More informationLast Time. Compiler requirements C preprocessor Volatile
Last Time Compiler requirements C preprocessor Volatile Today Coding and translation of interrupt handlers Coding inline assembly Compiler intrinsics Interrupts 30-second interrupt review: Interrupts are
More informationMaking Dynamic Instrumentation Great Again
Making Dynamic Instrumentation Great Again Malware Research Team @ @xabiugarte [advertising space ] Deep Packer Inspector https://packerinspector.github.io https://packerinspector.com Many instrumentation
More informationPorting bhyve on ARM. Mihai Carabas, Peter Grehan BSDCan 2016 University of Ottawa Ottawa, Canada June 10 11, 2016
Porting bhyve on ARM Mihai Carabas, Peter Grehan {mihai,grehan}@freebsd.org BSDCan 2016 University of Ottawa Ottawa, Canada June 10 11, 2016 About me University POLITEHNICA of Bucharest PhD Student: virtualization
More informationAnne Bracy CS 3410 Computer Science Cornell University
Anne Bracy CS 3410 Computer Science Cornell University The slides were originally created by Deniz ALTINBUKEN. P&H Chapter 4.9, pages 445 452, appendix A.7 Manages all of the software and hardware on the
More informationAn Overview of the BLITZ System
An Overview of the BLITZ System Harry H. Porter III Department of Computer Science Portland State University Introduction The BLITZ System is a collection of software designed to support a university-level
More information24-vm.txt Mon Nov 21 22:13: Notes on Virtual Machines , Fall 2011 Carnegie Mellon University Randal E. Bryant.
24-vm.txt Mon Nov 21 22:13:36 2011 1 Notes on Virtual Machines 15-440, Fall 2011 Carnegie Mellon University Randal E. Bryant References: Tannenbaum, 3.2 Barham, et al., "Xen and the art of virtualization,"
More information64-bit ARM Unikernels on ukvm
64-bit ARM Unikernels on ukvm Wei Chen Senior Software Engineer Tokyo / Open Source Summit Japan 2017 2017-05-31 Thanks to Dan Williams, Martin Lucina, Anil Madhavapeddy and other Solo5
More informationAdvanced Systems Security: Virtual Machine Systems
Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA Advanced Systems Security:
More informationReal Safe Times in the Jailhouse Hypervisor Unrestricted Siemens AG All rights reserved
Siemens Corporate Technology Real Safe Times in the Jailhouse Hypervisor Real Safe Times in the Jailhouse Hypervisor Agenda Jailhouse introduction Safe isolation Architecture support Jailhouse application
More informationImplementing Secure Software Systems on ARMv8-M Microcontrollers
Implementing Secure Software Systems on ARMv8-M Microcontrollers Chris Shore, ARM TrustZone: A comprehensive security foundation Non-trusted Trusted Security separation with TrustZone Isolate trusted resources
More informationDan Noé University of New Hampshire / VeloBit
Dan Noé University of New Hampshire / VeloBit A review of how the CPU works The operating system kernel and when it runs User and kernel mode Device drivers Virtualization of memory Virtual memory Paging
More informationLIA. Large Installation Administration. Virtualization
LIA Large Installation Administration Virtualization 2 Virtualization What is Virtualization "a technique for hiding the physical characteristics of computing resources from the way in which other systems,
More informationMalware
reloaded Malware Research Team @ @xabiugarte Motivation Design principles / architecture Features Use cases Future work Dynamic Binary Instrumentation Techniques to trace the execution of a binary (or
More informationAArch64 Virtualization
Connect AArch64 User Virtualization Guide Version Version 0.11.0 Page 1 of 13 Revision Information The following revisions have been made to this User Guide. Date Issue Confidentiality Change 03 March
More informationXen on ARM ARMv7 with virtualization extensions
Xen on ARM ARMv7 with virtualization extensions Stefano Stabellini Why? Why? smartphones: getting smarter Quad-core 1.4 GHz Cortex-A9 ARM Servers coming to market 4GB RAM, 4 cores per node 3 x 6 x 4 x
More informationComputer Organization & Assembly Language Programming (CSE 2312)
Computer Organization & Assembly Language Programming (CSE 2312) Lecture 15: Running ARM Programs in QEMU and Debugging with gdb Taylor Johnson Announcements and Outline Homework 5 due Thursday Midterm
More informationBack To The Future: A Radical Insecure Design of KVM on ARM
Back To The Future: A Radical Insecure Design of KVM on ARM Abstract In ARM, there are certain instructions that generate exceptions. Such instructions are typically executed to request a service from
More informationSyscalls, exceptions, and interrupts, oh my!
Syscalls, exceptions, and interrupts, oh my! Hakim Weatherspoon CS 3410 Computer Science Cornell University [Altinbuken, Weatherspoon, Bala, Bracy, McKee, and Sirer] Announcements P4-Buffer Overflow is
More informationLecture 5. KVM for ARM. Christoffer Dall and Jason Nieh. 5 November, Operating Systems Practical. OSP Lecture 5, KVM for ARM 1/42
Lecture 5 KVM for ARM Christoffer Dall and Jason Nieh Operating Systems Practical 5 November, 2014 OSP Lecture 5, KVM for ARM 1/42 Contents Virtualization KVM Virtualization on ARM KVM/ARM: System architecture
More information9/19/18. COS 318: Operating Systems. Overview. Important Times. Hardware of A Typical Computer. Today CPU. I/O bus. Network
Important Times COS 318: Operating Systems Overview Jaswinder Pal Singh and a Fabulous Course Staff Computer Science Department Princeton University (http://www.cs.princeton.edu/courses/cos318/) u Precepts:
More informationComprehensive Kernel Instrumentation via Dynamic Binary Translation
Comprehensive Kernel Instrumentation via Dynamic Binary Translation Peter Feiner Angela Demke Brown Ashvin Goel University of Toronto 011 Complexity of Operating Systems 012 Complexity of Operating Systems
More informationQEMU: Architecture and Internals Lecture for the Embedded Systems Course CSD, University of Crete (April 18, 2016)
QEMU: Architecture and Internals Lecture for the Embedded Systems Course CSD, University of Crete (April 18, 2016) ManolisMarazakis (maraz@ics.forth.gr) Institute of Computer Science (ICS) Foundation for
More informationAdvanced Systems Security: Virtual Machine Systems
Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA Advanced Systems Security:
More informationTrusted Firmware Deep Dive. Dan Handley Charles Garcia-Tobin
Trusted Firmware Deep Dive Dan Handley Charles Garcia-Tobin 1 Agenda Architecture overview Memory usage Code organisation Cold boot deep dive PSCI deep dive 2 Example System Architecture Normal World Secure
More informationCOS 318: Operating Systems. Overview. Prof. Margaret Martonosi Computer Science Department Princeton University
COS 318: Operating Systems Overview Prof. Margaret Martonosi Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall11/cos318/ Announcements Precepts: Tue (Tonight)!
More informationAdvanced Computer Architecture
ECE 563 Advanced Computer Architecture Fall 2007 Lecture 14: Virtual Machines 563 L14.1 Fall 2009 Outline Types of Virtual Machine User-level (or Process VMs) System-level Techniques for implementing all
More informationWhat is KVM? KVM patch. Modern hypervisors must do many things that are already done by OSs Scheduler, Memory management, I/O stacks
LINUX-KVM The need for KVM x86 originally virtualization unfriendly No hardware provisions Instructions behave differently depending on privilege context(popf) Performance suffered on trap-and-emulate
More informationMulti-core processors are here, but how do you resolve data bottlenecks in native code?
Multi-core processors are here, but how do you resolve data bottlenecks in native code? hint: it s all about locality Michael Wall October, 2008 part I of II: System memory 2 PDC 2008 October 2008 Session
More informationOperating Systems 4/27/2015
Virtualization inside the OS Operating Systems 24. Virtualization Memory virtualization Process feels like it has its own address space Created by MMU, configured by OS Storage virtualization Logical view
More informationEfficient Software Based Fault Isolation. Software Extensibility
Efficient Software Based Fault Isolation Robert Wahbe, Steven Lucco Thomas E. Anderson, Susan L. Graham Software Extensibility Operating Systems Kernel modules Device drivers Unix vnodes Application Software
More informationXen. past, present and future. Stefano Stabellini
Xen past, present and future Stefano Stabellini Xen architecture: PV domains Xen arch: driver domains Xen: advantages - small surface of attack - isolation - resilience - specialized algorithms (scheduler)
More informationSecure software guidelines for ARMv8-M. for ARMv8-M. Version 0.1. Version 2.0. Copyright 2017 ARM Limited or its affiliates. All rights reserved.
Connect Secure software User Guide guidelines for ARMv8-M Version 0.1 Version 2.0 Page 1 of 19 Revision Information The following revisions have been made to this User Guide. Date Issue Confidentiality
More informationAN316 Determining the stack usage of applications
Determining the stack usage of applications AN 316, Summer 2018, V 1.0 feedback@keil.com Abstract Determining the required stack sizes for a software project is a crucial part of the development process.
More informationCARE: the Comprehensive Archiver for Reproducible Execution
Introducing CARE CARE: the Comprehensive Archiver for Reproducible Execution STMicroelectronics, Grenoble, France TRUST 14 June 12th, 2014 Outline Introducing CARE 1 Introducing CARE 2 Typical use cases
More informationOperating Systems CMPSCI 377 Spring Mark Corner University of Massachusetts Amherst
Operating Systems CMPSCI 377 Spring 2017 Mark Corner University of Massachusetts Amherst Last Class: Intro to OS An operating system is the interface between the user and the architecture. User-level Applications
More informationPerformance analysis basics
Performance analysis basics Christian Iwainsky Iwainsky@rz.rwth-aachen.de 25.3.2010 1 Overview 1. Motivation 2. Performance analysis basics 3. Measurement Techniques 2 Why bother with performance analysis
More informationKVM/ARM. Marc Zyngier LPC 12
KVM/ARM Marc Zyngier LPC 12 For example: if a processor is in Supervisor mode and Secure state, it is in Secure Supervisor mode ARM Architecture if a processor is Virtualization
More information64 bit Bare Metal Programming on RPI-3. Tristan Gingold
64 bit Bare Metal Programming on RPI-3 Tristan Gingold gingold@adacore.com What is Bare Metal? Images: Wikipedia No box What is Bare Metal? No Operating System Your application is the OS Why Bare Board?
More informationINSTRUCTION LEVEL PARALLELISM
INSTRUCTION LEVEL PARALLELISM Slides by: Pedro Tomás Additional reading: Computer Architecture: A Quantitative Approach, 5th edition, Chapter 2 and Appendix H, John L. Hennessy and David A. Patterson,
More informationARM Trusted Firmware: Changes for Axxia
ARM Trusted Firmware: Changes for Axxia atf_84091c4_axxia_1.39 Clean up klocwork issues, Critical and Error only, and only in code added to support Axxia. atf_84091c4_axxia_1.38 Allow non-secure access
More informationARM Processors for Embedded Applications
ARM Processors for Embedded Applications Roadmap for ARM Processors ARM Architecture Basics ARM Families AMBA Architecture 1 Current ARM Core Families ARM7: Hard cores and Soft cores Cache with MPU or
More informationTo EL2, and Beyond! connect.linaro.org. Optimizing the Design and Implementation of KVM/ARM
To EL2, and Beyond! Optimizing the Design and Implementation of KVM/ARM LEADING COLLABORATION IN THE ARM ECOSYSTEM Christoffer Dall Shih-Wei Li connect.linaro.org
More informationCSCI 8530 Advanced Operating Systems. Part 19 Virtualization
CSCI 8530 Advanced Operating Systems Part 19 Virtualization Virtualization This is a very old idea It appears in many different forms A variety of commercial products exist The idea has become hot again
More informationSFO17-403: Optimizing the Design and Implementation of KVM/ARM
SFO17-403: Optimizing the Design and Implementation of KVM/ARM Christoffer Dall connect.linaro.org Efficient, isolated duplicate of the real machine Popek and Golberg [Formal requirements for virtualizable
More informationPerformance Aspects of x86 Virtualization
TA68 Performance Aspects of x86 Virtualization Ole Agesen Principal Engineer VMware Talk Outline Part 1. Problem statement Part 2. Instruction set virtualization techniques Part 3. Memory virtualization
More informationCortex-A15 MPCore Software Development
Cortex-A15 MPCore Software Development Course Description Cortex-A15 MPCore software development is a 4 days ARM official course. The course goes into great depth and provides all necessary know-how to
More informationPathFinder-XD for MIPS Powered Devices. Simulator
v.1.0.6, 15 th January 2013 PathFinder-XD for MIPS Powered Devices Simulator Contents 1. Introduction 2 2. Installation 2 2.1 Windows Installation 2 2.2 Linux Installation 2 3. Using PathFinder-XD with
More informationHow to cross compile with LLVM based tools. Peter Smith, Linaro
How to cross compile with LLVM based tools Peter Smith, Linaro Introduction and assumptions What we are covering Today About me What is cross compilation? How does cross compilation work with Clang and
More informationSystem Simulator for x86
MARSS Micro Architecture & System Simulator for x86 CAPS Group @ SUNY Binghamton Presenter Avadh Patel http://marss86.org Present State of Academic Simulators Majority of Academic Simulators: Are for non
More informationVirtualization. Adam Belay
Virtualization Adam Belay What is a virtual machine Simulation of a computer Running as an application on a host computer Accurate Isolated Fast Why use a virtual machine? To run multiple
More informationProgram SoC using C Language
Program SoC using C Language 1 Module Overview General understanding of C, program compilation, program image, data storage, data type, and how to access peripherals using C language; Program SoC using
More informationCS 410/510. Mark P Jones Portland State University
CS 41/51 Languages & Low-Level Programming Mark P Jones Portland State University Fall 21 Week 2: Bare Metal and the Boot Process 1 Copyright Notice These slides are distributed under the Creative Commons
More informationWritten Exam / Tentamen
Written Exam / Tentamen Computer Organization and Components / Datorteknik och komponenter (IS1500), 9 hp Computer Hardware Engineering / Datorteknik, grundkurs (IS1200), 7.5 hp KTH Royal Institute of
More informationIntroduction to gem5. Nizamudheen Ahmed Texas Instruments
Introduction to gem5 Nizamudheen Ahmed Texas Instruments 1 Introduction A full-system computer architecture simulator Open source tool focused on architectural modeling BSD license Encompasses system-level
More informationQEMU for Xilinx ZynqMP. V Aug-20
QEMU for Xilinx ZynqMP Edgar E. Iglesias V2 2015-Aug-20 ZynqMP SoC New Chip (Zynq NG) Aggressive target for QEMU as early SW platform emulating WiP chip BootROMs, Boot-loaders,
More informationI/O and virtualization
I/O and virtualization CSE-C3200 Operating systems Autumn 2015 (I), Lecture 8 Vesa Hirvisalo Today I/O management Control of I/O Data transfers, DMA (Direct Memory Access) Buffering Single buffering Double
More informationVirtualization. Dr. Yingwu Zhu
Virtualization Dr. Yingwu Zhu Virtualization Definition Framework or methodology of dividing the resources of a computer into multiple execution environments. Types Platform Virtualization: Simulate a
More informationAdvanced Operating Systems (CS 202) Virtualization
Advanced Operating Systems (CS 202) Virtualization Virtualization One of the natural consequences of the extensibility research we discussed What is virtualization and what are the benefits? 2 Virtualization
More informationChangpeng Liu. Senior Storage Software Engineer. Intel Data Center Group
Changpeng Liu Senior Storage Software Engineer Intel Data Center Group Legal Notices and Disclaimers Intel technologies features and benefits depend on system configuration and may require enabled hardware,
More informationAn Overview of the BLITZ Computer Hardware
An Overview of the BLITZ Computer Hardware Introduction Harry H. Porter III Department of Computer Science Portland State University The BLITZ computer was designed solely to support the development of
More informationAccelerating Pointer Chasing in 3D-Stacked Memory: Challenges, Mechanisms, Evaluation Kevin Hsieh
Accelerating Pointer Chasing in 3D-Stacked : Challenges, Mechanisms, Evaluation Kevin Hsieh Samira Khan, Nandita Vijaykumar, Kevin K. Chang, Amirali Boroumand, Saugata Ghose, Onur Mutlu Executive Summary
More informationECE254 Lab3 Tutorial. Introduction to MCB1700 Hardware Programming. Irene Huang
ECE254 Lab3 Tutorial Introduction to MCB1700 Hardware Programming Irene Huang Lab3 Requirements : API Dynamic Memory Management: void * os_mem_alloc (int size, unsigned char flag) Flag takes two values:
More informationCSCE 410/611: Virtualization!
CSCE 410/611: Virtualization! Definitions, Terminology! Why Virtual Machines?! Mechanics of Virtualization! Virtualization of Resources (Memory)! Some slides made available Courtesy of Gernot Heiser, UNSW.!
More informationPROTECTING VM REGISTER STATE WITH AMD SEV-ES DAVID KAPLAN LSS 2017
PROTECTING VM REGISTER STATE WITH AMD SEV-ES DAVID KAPLAN LSS 2017 BACKGROUND-- HARDWARE MEMORY ENCRYPTION AMD Secure Memory Encryption (SME) / AMD Secure Encrypted Virtualization (SEV) Hardware AES engine
More informationQuartzV: Bringing Quality of Time to Virtual Machines
QuartzV: Bringing Quality of Time to Virtual Machines Sandeep D souza and Raj Rajkumar Carnegie Mellon University IEEE RTAS @ CPS Week 2018 1 A Shared Notion of Time Coordinated Actions Ordering of Events
More informationCOMPUTER ORGANIZATION AND DESI
COMPUTER ORGANIZATION AND DESIGN 5 Edition th The Hardware/Software Interface Chapter 4 The Processor 4.1 Introduction Introduction CPU performance factors Instruction count Determined by ISA and compiler
More informationInitial Explorations of ARM Processors for Scientific Computing
Initial Explorations of ARM Processors for Scientific Computing Peter Elmer - Princeton University David Abdurachmanov - Vilnius University Giulio Eulisse, Shahzad Muzaffar - FNAL Power limitations for
More informationLab11 - Bare Metal Programming. Department of Computer Science and Information Engineering National Taiwan University
Lab11 - Bare Metal Programming 1 / 16 Understand the process of OS development Write a minimal kernel for RPi 2 2 / 16 Host System Windows Build System Ubuntu 15.10 (or above) 64-bit Target System Raspberry
More informationCloud Computing Virtualization
Cloud Computing Virtualization Anil Madhavapeddy anil@recoil.org Contents Virtualization. Layering and virtualization. Virtual machine monitor. Virtual machine. x86 support for virtualization. Full and
More informationA Survey on Virtualization Technologies
A Survey on Virtualization Technologies Virtualization is HOT Microsoft acquires Connectix Corp. EMC acquires VMware Veritas acquires Ejascent IBM, already a pioneer Sun working hard on it HP picking up
More informationTable of Contents. 2.7 Self-modifying code and translated code invalidation test-i linux-test... 9
QEMU Internals i Table of Contents 1 Introduction..................................... 1 1.1 Features........................................................ 1 1.2 x86 and x86-64 emulation.......................................
More informationDarek Mihocka, Emulators.com Stanislav Shwartsman, Intel Corp. June
Darek Mihocka, Emulators.com Stanislav Shwartsman, Intel Corp. June 21 2008 Agenda Introduction Gemulator Bochs Proposed ISA Extensions Conclusions and Future Work Q & A Jun-21-2008 AMAS-BT 2008 2 Introduction
More informationAlex Bennée stsquad on #qemu Virtualization Linaro Projects: QEMU, KVM, ARM 2. 1
VECTORS MEET VIRTUALIZATION ALEX BENNÉE FOSDEM 2018 1 INTRODUCTION Alex Bennée alex.bennee@linaro.org stsquad on #qemu Virtualization Developer @ Linaro Projects: QEMU, KVM, ARM 2. 1 WHAT IS QEMU? From:
More informationPre-virtualization internals
Pre-virtualization internals Joshua LeVasseur 3 March 2006 L4Ka.org Universität Karlsruhe (TH) Compile time overview Compiler C code Assembler code OS source code Hand-written assembler Afterburner Assembler
More informationbutton.c The little button that wouldn t
Goals for today The little button that wouldn't :( the volatile keyword Pointer operations => ARM addressing modes Implementation of C function calls Management of runtime stack, register use button.c
More informationCortex-A5 MPCore Software Development
Cortex-A5 MPCore Software Development תיאורהקורס קורסDevelopment Cortex-A5 MPCore Software הינו הקורס הרשמי שלחברת ARM בן 4 ימים, מעמיקמאודומכסהאתכלהנושאיםהקשוריםבפיתוחתוכנה לפלטפורמותמבוססותליבת.Cortex-A5
More informationAdministrivia. Lab 1 due Friday 12pm. We give will give short extensions to groups that run into trouble. But us:
Administrivia Lab 1 due Friday 12pm. We give will give short extensions to groups that run into trouble. But email us: - How much is done & left? - How much longer do you need? Attend section Friday at
More informationThe Challenges of X86 Hardware Virtualization. GCC- Virtualization: Rajeev Wankar 36
The Challenges of X86 Hardware Virtualization GCC- Virtualization: Rajeev Wankar 36 The Challenges of X86 Hardware Virtualization X86 operating systems are designed to run directly on the bare-metal hardware,
More informationUsing kgdb and the kgdb Internals
Using kgdb and the kgdb Internals Jason Wessel jason.wessel@windriver.com Tom Rini trini@kernel.crashing.org Amit S. Kale amitkale@linsyssoft.com Using kgdb and the kgdb Internals by Jason Wessel by Tom
More informationF28HS Hardware-Software Interface: Systems Programming
F28HS Hardware-Software Interface: Systems Programming Hans-Wolfgang Loidl School of Mathematical and Computer Sciences, Heriot-Watt University, Edinburgh Semester 2 2017/18 0 No proprietary software has
More informationCPUs. Caching: The Basic Idea. Cache : MainMemory :: Window : Caches. Memory management. CPU performance. 1. Door 2. Bigger Door 3. The Great Outdoors
CPUs Caches. Memory management. CPU performance. Cache : MainMemory :: Window : 1. Door 2. Bigger Door 3. The Great Outdoors 4. Horizontal Blinds 18% 9% 64% 9% Door Bigger Door The Great Outdoors Horizontal
More informationThe benefits and costs of writing a POSIX kernel in a high-level language
1 / 38 The benefits and costs of writing a POSIX kernel in a high-level language Cody Cutler, M. Frans Kaashoek, Robert T. Morris MIT CSAIL Should we use high-level languages to build OS kernels? 2 / 38
More informationCS 471 Operating Systems. Yue Cheng. George Mason University Fall 2017
CS 471 Operating Systems Yue Cheng George Mason University Fall 2017 Outline o Process concept o Process creation o Process states and scheduling o Preemption and context switch o Inter-process communication
More informationLast Time. Low-level parts of the toolchain for embedded systems. Any weak link in the toolchain will hinder development
Last Time Low-level parts of the toolchain for embedded systems Ø Linkers Ø Programmers Ø Booting an embedded CPU Ø Debuggers Ø JTAG Any weak link in the toolchain will hinder development Today: Intro
More informationEECS 213 Introduction to Computer Systems Dinda, Spring Homework 3. Memory and Cache
Homework 3 Memory and Cache 1. Reorder the fields in this structure so that the structure will (a) consume the most space and (b) consume the least space on an IA32 machine on Linux. struct foo { double
More information