OHW2013 workshop. An open source PCIe device virtualization framework

Similar documents
EECS 579: Logic and Fault Simulation. Simulation

Introduction to the Xilinx Spartan-3E

FPGA Implementation of a HOG-based Pedestrian Recognition System

SP-CNN: A Scalable and Programmable CNN-based Accelerator. Dilan Manatunga Dr. Hyesoon Kim Dr. Saibal Mukhopadhyay

Administrivia. Course Objectives. Overview. Lecture Notes Week markem/cs333/ 2. Staff. 3. Prerequisites. 4. Grading. 1. Theory and application

Analog Computation in Flash Memory for Datacenter-scale AI Inference in a Small Chip

ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University

New Delhi & Affiliated to VTU, Belgavi ) Oorgaum, Kolar Dist ,Karnataka

Implementing the Elliptic Curve Method of Factoring in Reconfigurable Hardware

On the Use of a Many core Processor for Computational Fluid Dynamics Simulations

Implementation of Nonlinear Template Runner Emulated Digital CNN-UM on FPGA

Virtualization. Introduction. G. Lettieri A/A 2014/15. Dipartimento di Ingegneria dell Informazione Università di Pisa. G. Lettieri Virtualization

A Scientific Trigger Unit for Space-Based Real-Time Gamma Ray Burst Detection II - Data Processing Model and Benchmarks

Knott, M. May Future t r e n d s

An Automotive Case Study ERTSS 2016

Implementing Absolute Addressing in a Motorola Processor (DRAFT)

Effective Entropy for Memory Randomization Defenses

Fast FPGA Placement Based on Quantum Model

ECE 407 Computer Aided Design for Electronic Systems. Simulation. Instructor: Maria K. Michael. Overview

CHAPTER 22 GEOGRAPHIC INFORMATION SYSTEMS

NEC PerforCache. Influence on M-Series Disk Array Behavior and Performance. Version 1.0

Development of a GIS Interface for WEPP Model Application to Great Lakes Forested Watersheds

One Optimized I/O Configuration per HPC Application

DEVELOPMENT OF A SMART CAMERA SYSTEM ON AN FPGA. Monica Jane Whitaker. A thesis submitted in partial fulfillment of the requirements for the degree

Accelerating Transfer Entropy Computation

FPGA IMPLEMENTATION OF BASIC ADDER CIRCUITS USING REVERSIBLE LOGIC GATES

Rethink energy accounting with cooperative game theory. Mian Dong, Tian Lan and Lin Zhong!

MAGMA MIC 1.0: Linear Algebra Library for Intel Xeon Phi Coprocessors

MPI at MPI. Jens Saak. Max Planck Institute for Dynamics of Complex Technical Systems Computational Methods in Systems and Control Theory

A FPGA Implementation of Large Restricted Boltzmann Machines. Charles Lo. Supervisor: Paul Chow April 2010

Cyrus: Unintrusive Application-Level Record-Replay for Replay Parallelism

A Reconfigurable Quantum Computer

Some thoughts about energy efficient application execution on NEC LX Series compute clusters

ArcGIS Deployment Pattern. Azlina Mahad

Digital Control of Electric Drives

Accelerating Transfer Entropy Computation

ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University

Digitization of Vector Control Algorithm Using FPGA

STATUS OF THE ACS-BASED CONTROL SYSTEM OF THE MID-SIZED TELESCOPE PROTOTYPE FOR THE CHERENKOV TELESCOPE ARRAY (CTA)

Level-3 Calorimetric Resolution available for the Level-1 and Level-2 CDF Triggers

Weather Research and Forecasting (WRF) Performance Benchmark and Profiling. July 2012

Julian Merten. GPU Computing and Alternative Architecture

An Algorithmic Framework of Large-Scale Circuit Simulation Using Exponential Integrators

Innovation. The Push and Pull at ESRI. September Kevin Daugherty Cadastral/Land Records Industry Solutions Manager

ArcGIS Earth for Enterprises DARRON PUSTAM ARCGIS EARTH CHRIS ANDREWS 3D

A NEW SYSTEM FOR THE GENERATION OF UTC(CH)

Methods and tools to optimize the trade-off performance versus complexity of error control codes architectures.

Arithmetic Operators for Pairing-Based Cryptography

Spin glass simulations on Janus

Branch Prediction based attacks using Hardware performance Counters IIT Kharagpur

Chemical Analysis. PIONA+ Analyzer. Characterization of Engine Fuels by Hydrocarbon Group Type. Gas Chromatography. think forward

Table of Content. Chapter 11 Dedicated Microprocessors Page 1 of 25

LEADING THE EVOLUTION OF COMPUTE MARK KACHMAREK HPC STRATEGIC PLANNING MANAGER APRIL 17, 2018

Analyses of Energy Consumption Changes by Loop Transformations in Log Blocks-based FTL

Vidyalankar S.E. Sem. III [CMPN] Digital Logic Design and Analysis Prelim Question Paper Solution

CMU Introduction to Computer Architecture, Spring 2015 HW 2: ISA Tradeoffs, Microprogramming and Pipelining

Design of Integrated Error Compensating System for the Portable Flexible CMMs

Jonghwa Lee assistant engineer Samsung Electronics

Implementation of CCSDS Recommended Standard for Image DC Compression

YEAR III SEMESTER - V

Formal Fault Analysis of Branch Predictors: Attacking countermeasures of Asymmetric key ciphers

2. Accelerated Computations

FPGA Implementation of a Predictive Controller

AN AUTOMATED GONIOPHOTOMETER FOR LUMINAIRE CHARACTERIZATION

Tracking board design for the SHAGARE stratospheric balloon project. Supervisor : René Beuchat Student : Joël Vallone

Runtime Model Predictive Verification on Embedded Platforms 1

Welcome to the 8 th International GEOS-Chem Meeting (IGC8)

Low-complexity generation of scalable complete complementary sets of sequences

Digital Systems. Validation, verification. R. Pacalet January 4, 2018

Arithmetic Operators for Pairing-Based Cryptography

VHDL DESIGN AND IMPLEMENTATION OF C.P.U BY REVERSIBLE LOGIC GATES

7600 Series Routers Adjacency Allocation Method

Annotation Integration and Trade-off Analysis for Multimedia Applications

Lattice Boltzmann simulations on heterogeneous CPU-GPU clusters

Janus: FPGA Based System for Scientific Computing Filippo Mantovani

Searching for Nonlinear Feedback Shift Registers with Parallel Computing

Sun SPOTs: A Great Solution for Small Device Development

11 Parallel programming models

WHITE PAPER ON QUANTUM COMPUTING AND QUANTUM COMMUNICATION

Tips Geared Towards R. Adam J. Suarez. Arpil 10, 2015

DISARMAMENT HACKING 2.0 TOWARD A TRUSTED, OPEN-HARDWARE COMPUTING PLATFORM FOR NUCLEAR WARHEAD VERIFICATION

Molecular Dynamics Simulations

Design and Synthesis of Sequential Circuit Using Reversible Logic

Cider Seminar, University of Toronto DESIGN AND PERFORMANCE ANALYSIS OF A HIGH SPEED AWGN COMMUNICATION CHANNEL EMULATOR

Chapter 8. Low-Power VLSI Design Methodology

Portal for ArcGIS: An Introduction

FPGA-Based Circuit Model Emulation of Quantum Algorithms

Hardware testing and design for testability. EE 3610 Digital Systems

ECE 448 Lecture 6. Finite State Machines. State Diagrams, State Tables, Algorithmic State Machine (ASM) Charts, and VHDL Code. George Mason University

Nobeltec TimeZero V2.0.2

Aluminum Trace Printed Circuit Board: Case Study

FRAM V5.2. Plutonium and Uranium Isotopic Analysis Software

NCEES Fundamentals of Engineering (FE) Examination ELECTRICAL EXAM SPECIFICATIONS

Semester s projects at UTT in Autumn 2011

Scalable Tools for Debugging Non-Deterministic MPI Applications

Constraining and Analyzing Source-Synchronous Interfaces

High Performance Computing

Multicore Semantics and Programming

A small but EFFICIENT collaboration for the Spiral2 control system development

Transcription:

OHW2013 workshop An open source PCIe device virtualization framework

Plan Context and objectives Design and implementation Future directions Questions

Context - ESRF and the ISDD electronic laboratory The ESRF is an XRAY light source for Europe located in Grenoble, France. The ISDD electronic laboratory mission is to develop and investigate XRAY instrumentation electronics.

Context - RASHPA high bandwidth data acquisition framework for 2D XRAY detectors Intel X86 64 workstation KC705 prototype board, PCIe over cable see ICALEPCS poster session

Context - DCORE generic data acquisition and control boards Intel ATOM CPU Xilinx Spartan6 FPGA

Context - DUB project specific readout electronics Intel ATOM CPU Xilinx Virtex6 FPGA

VPCIe - rationale The above boards rely on PCIe as the default CPU to FPGA communication link. VPCIe is a framework made to virtualize these platforms on a standard desktop PC.

VPCIe - objectives CPU software must run unmodified (including drivers) few modifications allowed for functional VHDL simulation run multiple PCIe devices concurrently performances not critical

VPCIe - benefits hardware software codesign reduce development cycle time platform scaling (multiple PCIe devices) test with different CPU architectures (INTEL, ARM...) investigate unavailable technologies (NVM EXPRESS...) testing (fault injection...)

VPCIe - concepts Applications on a host machine access hardware via interfaces. By instrumenting these interfaces, one can redirect the accesses to a software implementing the device. The device is said to be virtualized.

VPCIe - building blocks VPCIe relies on opensource projects QEMU http://wiki.qemu.org/main Page architecture emulator (X86 64, ARM...) used to trap PCIe hardware accesses GHDL http://ghdl.free.fr VHDL frontend for GCC used to implement device in VHDL

VPCIe - CPU virtualization Full featured LINUX system runs in a QEMU virtual machine PCIe accesses are trapped and sent over TCP to the devices PCIe forwarder is available as a QEMU patch maintainers contacted for a merge

VPCIe - device virtualization Virtual devices can be implemented in C or VHDL GHDL is used to compile VHDL into a native executable a glue interfaces the executable to the VPCIe runtime run as a LINUX processes, can be duplicated at will PCIe made simple, focus on device logic but close to the XILINX PCIe transaction layer

VPCIe - implementation

VPCIe - EBONE based example EBONE is a PCIe centric FPGA core interconnect developped at the ESRF and recently released on OHR (http://www.ohwr.org/projects/e-bone). Excluding the PCIe layer, most of the VHDL remains unchanged in a typical EBONE based design.

VPCIe - virtualized device VHDL interface e n t i t y e n d p o i n t i s p o r t ( r s t : i n s t d u l o g i c ; c l k : i n s t d u l o g i c ; r e q e n : out s t d u l o g i c ; r e q w r : out s t d u l o g i c ; r e q b a r : out s t d u l o g i c v e c t o r ( p c i e. BAR WIDTH 1 downto 0 ) ; r e q a d d r : out s t d u l o g i c v e c t o r ( p c i e. ADDR WIDTH 1 downto 0 ) ; r e q d a t a : out s t d u l o g i c v e c t o r ( p c i e. DATA WIDTH 1 downto 0 ) ; r e p e n : i n s t d u l o g i c ; r e p d a t a : i n s t d u l o g i c v e c t o r ( p c i e. DATA WIDTH 1 downto 0 ) ; mwr en : i n s t d u l o g i c ; mwr addr : i n s t d u l o g i c v e c t o r ( p c i e. ADDR WIDTH 1 downto 0 ) ; mwr data : i n s t d u l o g i c v e c t o r ( p c i e. PAYLOAD WIDTH 1 downto 0 ) ; m w r s i z e : i n s t d u l o g i c v e c t o r ( p c i e. SIZE WIDTH 1 downto 0 ) ; m s i e n : i n s t d u l o g i c ) ; end e n t i t y ;

VPCIe - virtualized device C interface / r u n t i m e i n i t i a l i z a t i o n / i n t p c i e i n i t n e t ( p c i e d e v t,... ) ; i n t p c i e f i n i ( p c i e d e v t ) ; i n t p c i e l o o p ( p c i e d e v t ) ; / misc c o n f i g b y t e a c c e s s o r s / i n t p c i e s e t d e v i c e i d ( p c i e d e v t,... ) ; i n t p c i e s e t v e n d o r i d ( p c i e d e v t,... ) ; / PCIe BAR a c c e s s h a n d l e r s / t y p e d e f v o i d ( p c i e r e a d f n t ) ( u i n t 6 4 t, v o i d, s i z e t, v o i d ) ; t y p e d e f v o i d ( p c i e w r i t e f n t ) ( u i n t 6 4 t, c o n s t v o i d, s i z e t, v o i d ) ; i n t p c i e s e t b a r ( p c i e d e v t,..., p c i e r e a d f n t, p c i e w r i t e f n t,... ) ; / h o s t memory r e a d w r i t e o p e r a t i o n s / i n t p c i e w r i t e h o s t m e m ( p c i e d e v t, u i n t 6 4 t, s i z e t ) ; i n t p c i e r e a d h o s t m e m ( p c i e d e v t, u i n t 6 4 t, s i z e t ) ; / send an MSI / i n t p c i e s e n d m s i ( p c i e d e v t ) ;

VPCIe - future directions GHDL no longer maintained merge PCIe forwarder in QEMU XILINX AXI stream compatible PCIe layer reimplement PCIe forwarding and protocol NVM Express integration testing licensing

VPCIe - availability VPCIe source is available online https://github.com/texane/vpcie documentation still poor, but clear examples feedbacks or contributions are welcome

VPCIe - questions Thanks for your attention. Any question?