Towards Software-defined Silicon: Applying LLVM to Simplifying Software
|
|
|
- Austin Jordan
- 9 years ago
- Views:
Transcription
1 Towards Software-defined Silicon: Applying LLVM to Simplifying Software Teemu Rinta-aho Pekka Nikander, Adnan Ghani, Sameer D. Sahasrabuddhe NomadicLab, Ericsson Research Finland Wish-3, Chamonix, France April 2, 2011
2 Presentation outline Introduction Background Click Modular Router Stanford NetFPGA prototyping board High Level Synthesis (HLS) AHIR Overall Approach Use Case Conclusions
3 Introduction The starting point: study the applicability of HLS to packet networking The practical exercise: implement a Click-to-NetFPGA toolchain The motivation: study the applicability of modular compiler optimisations for atypical/generated hardware CPUs and ASIC/FPGA seen as two ends of a design space What could be done in the middle ground? This work started only a year ago; this presentation is to publish intermediate results on a work-in-progress project and hopefully get others interested We are happy to share the source code
4 Click Modular Router Software platform (C++) for building different kinds of packet-processing nodes / functions, or routers Defines a software router from packet processing elements Open source, by Eddie Kohler (MIT) Runs in Linux/BSD/Darwin userspace & Linux kernel (BTW, we are also working on a FreeBSD kernel version) 100+ existing elements, e.g. ARPResponder, Classifier Easy to add new elements Easy to build a custom routers
5 Stanford NetFPGA A PCI network interface card with an FPGA 4 x 1G Ethernet interface Line-rate, flexible, and open platform For research and classrooms More than 1,000 NetFPGA systems deployed A few open-source, Verilog-based reference designs A newer, NetFPGA 10G card is also available 4 x 10G Ethernet interface, bigger FPGA, faster PCI interface
6 High Level Synthesis (HLS) A high level program hardware (RTL) Typically: C/C++/System C Verilog/VHDL Currently available tools limitations and features Designed for hardware professionals; for writing hardware in C Support only a subset of C/C++, excluding e.g.: dynamic memory function pointers and virtual methods recursion Cannot handle existing software-oriented code e.g. Click elements written using full C++ Closed-source commercial products
7 AHIR A Hardware Intermediate Representation LLVM backend for generating VHDL To-be open source, by IIT Bombay (India) Factorises the system into control, data, and storage Supports scalable optimisations and analyses Current limitations: no recursion or function pointers, otherwise full C Generates a VHDL module out of each LLVM IR function Design = Set of modules with I/O channels I/O through a simple VHDL library, resembling Unix pipes
8 AN AHIR example Converting an LLVM instruction to VHDL Simple Addition Example C code: int d = m + n; Equivalent SSA: %d = add i32 %m, %n CDFG Start Control path Data path m add i32 n Init Fin req ack m add i32 n Stop %add Control Edge Data Edge
9 Presentation outline Introduction Background Click Modular Router Stanford NetFPGA prototyping board High Level Synthesis (HLS) AHIR Overall Approach Use Case Conclusions
10 Overall Approach Click C++ hardware friendly LLVM IR VHDL New Click target, similar to BSD/Linux specific differences E.g. use table-based memory allocation instead of skb/heap-based Click2LLVM: Click configuration LLVM IR Use Click library functions to set up a Click router in memory Dump the memory as a set of constants, expressed in LLVM IR LLVM IR hardware friendly LLVM IR Fixing this arguments to constants Aggressive constant propagation, aggressive inlining Together resulting in e.g. removing virtual function calls AHIR: hardware friendly LLVM IR VHDL
11 Hardware Hardware Click Click runtime Click runtime element source Click NetFPGA target library llvm-g++ Click Click element Click element Click element element IR IR IR IR llvm-g++ Click Click element Click element Click object element object element object object llvmlink Linked IR Click host target library Click2- LLVM Click config IR Click config source
12 optimising optimising optimising pass optimising pass optimising pass pass pass NetFPGA/ Click wrapper NetFPGA reference NIC Linked IR opt Optimised IR AHIR VHDL Xilinx ISE
13 Click/NetFPGA Wrapper Free Queue Reference NIC design Input Module src_in0 src min dst dst_out0 Output Module Reference NIC design Memory Subsystem
14 NetFPGA wrapper for the Click/AHIR system NetFPGA processes packets on the fly, word by word Click only transfers pointers to Packets Packets stay in the same memory location The wrapper receives and sends NetFPGA words Stores them locally as a Packet in a memory subsystem Memory is managed as a queue of free locations InputModule reads a free location from the "free queue", then receives data from the NetFPGA interface & stores it OutputModule writes the data on the NetFPGA interface, then returns the pointer to the free queue HLS includes elements from Click configuration Click elements may create or destroy packets using direct access to the free queue
15 Presentation outline Introduction Background Click Modular Router Stanford NetFPGA prototyping board High Level Synthesis (HLS) AHIR Overall Approach Use Case Conclusions
16 Use Case: Click.conf require(package "minimal-package"); src :: FromFPGA; min :: Minimal; dst :: ToFPGA; src -> min -> dst;
17 Use Case: Click.conf require(package "minimal-package"); Dynamically link external Click elements src :: FromFPGA; min :: Minimal; dst :: ToFPGA; src -> min -> dst;
18 Use Case: Click.conf require(package "minimal-package"); src :: FromFPGA; min :: Minimal; dst :: ToFPGA; Dynamically link external Click elements Declare and name the used elements src -> min -> dst;
19 Use Case: Click.conf require(package "minimal-package"); src :: FromFPGA; min :: Minimal; dst :: ToFPGA; src -> min -> dst; Dynamically link external Click elements Declare and name the used elements Define packet processing order
20 Use Case: simple_action() Packet * Minimal::simple_action(Packet *p) { unsigned char *data = p->uniqueify()->data(); data[0] ^= 0x0F; return p; } The packet processing part of a valid, yet an extremely simple, Click element named Minimal. Written in C++ without any special target-specific requirements or restrictions.
21 Use Case: = constant [8 x i8] = constant [1 x %"struct.element::port"] [%"struct.element::port" { [16 x i8] c"dst_in0\00\00\00\00\00\00\00\00\00", %struct.element* undef, i32 undef = constant %struct.minimal } ; Struct contents not fully shown define { %0 = call getelementptr inbounds ([8 x i32 0, i32 0)) %1 = inttoptr i32 %0 to %struct.packet* call getelementptr inbounds i32 0, i32 0), i32 0, %struct.packet* %1) ret void } The new, generated, wrapper function together with generated global constants, in LLVM IR form.
22 Use Case: ahir_glue_min() = internal constant [8 x i8] = constant [1 x %"struct.element::port"] [%"struct.element::port" { [16 x i8] c"dst_in0\00\00\00\00\00\00\00\00\00", %struct.element* undef, i32 undef }] define ssp { %tmp = tail call getelementptr inbounds ([8 x i32 0, i32 0)) %tmp3 = inttoptr i32 %tmp to %struct.packet* %tmp4 = getelementptr inbounds %struct.packet* %tmp3, i32 0, i32 3 %tmp5 = load i8** %tmp4, align 4 %tmp6 = load i8* %tmp5, align 1 %tmp7 = xor i8 %tmp6, 15 store i8 %tmp7, i8* %tmp5, align 1 %tmp8 = icmp eq i32 %tmp, 0 br i1 %tmp8, label %_ZN7Element4pushEiP6Packet.exit, label %bb.i bb.i: tail call getelementptr inbounds ( [1 x i32 0, i32 0, i32 0, i32 0), i32 %tmp) ret void _ZN7Element4pushEiP6Packet.exit: ret void } The optimised wrapper function. Constant input and output port names, inlined packet processing code, only AHIR I/O function calls.
23 Use Case: Excerpts of Generated VHDL entity click_ahir_ll_ahir_glue_min_dp is port( io_dst_in0_ack : in std_logic; io_dst_in0_data : out std_logic_vector(31 downto 0); io_dst_in0_req : out std_logic; io_min_in0_ack : in std_logic; io_min_in0_data : in std_logic_vector(15 downto 0); io_min_in0_req : out std_logic; ); end click_ahir_ll_ahir_glue_min_dp; dpe_16 : APInt_S_2 -- tmp7 -- configuration: APIntXor generic map( colouring => (0 => 0)) port map( ackc => SigmaOut(20 downto 20), ackr => SigmaOut(19 downto 19), clk => clk, reqc => SigmaIn(19 downto 19), reqr => SigmaIn(18 downto 18), reset => reset, x => wire_11, y => wire_13, z => wire_12);
24 Use Case: Excerpts of Generated VHDL entity click_ahir_ll_ahir_glue_min_dp is port( io_dst_in0_ack : in std_logic; io_dst_in0_data : out std_logic_vector(31 downto 0); io_dst_in0_req : out std_logic; io_min_in0_ack : in std_logic; io_min_in0_data : in std_logic_vector(15 downto 0); io_min_in0_req : out std_logic; ); end click_ahir_ll_ahir_glue_min_dp; dpe_16 : APInt_S_2 -- tmp7 -- configuration: APIntXor generic map( colouring => (0 => 0)) port map( ackc => SigmaOut(20 downto 20), ackr => SigmaOut(19 downto 19), clk => clk, reqc => SigmaIn(19 downto 19), reqr => SigmaIn(18 downto 18), reset => reset, x => wire_11, y => wire_13, z => wire_12); Wires representing the read_uintptr() and write_uintptr() functions; leading to previous and next Click elements
25 Use Case: Excerpts of Generated VHDL entity click_ahir_ll_ahir_glue_min_dp is port( io_dst_in0_ack : in std_logic; io_dst_in0_data : out std_logic_vector(31 downto 0); io_dst_in0_req : out std_logic; io_min_in0_ack : in std_logic; io_min_in0_data : in std_logic_vector(15 downto 0); io_min_in0_req : out std_logic; ); end click_ahir_ll_ahir_glue_min_dp; dpe_16 : APInt_S_2 -- tmp7 -- configuration: APIntXor generic map( colouring => (0 => 0)) port map( ackc => SigmaOut(20 downto 20), ackr => SigmaOut(19 downto 19), clk => clk, reqc => SigmaIn(19 downto 19), reqr => SigmaIn(18 downto 18), reset => reset, x => wire_11, y => wire_13, z => wire_12); Wires representing the read_uintptr() and write_uintptr() functions; leading to previous and next Click elements Block describing the actual XOR operation on data (the actual operation is defined in a library and uses standard VHDL xor on two integers)
26 Conclusions High-level goal: Study the applicability of modular compiler optimisations for atypical/generated hardware Practical goal: Implement a Click-to-NetFPGA tool chain Main contributions: Click2LLVM: Dump a Click process memory as LLVM IR constants AHIR: Convert LLVM IR to VHDL The Click/NetFPGA wrapper for the NetFPGA reference NIC design Future work: evaluate the performance of the hardware accelerated Click router evaluate different software- and hardware-level optimisations gain more understanding on the possibilities of current compilation and high-level synthesis techniques
The Click2NetFPGA Toolchain. Teemu Rinta-aho, Mika Karlstedt, Madhav P. Desai USENIX ATC 12, Boston, MA, 13 th of June, 2012
The Click2NetFPGA Toolchain Teemu Rinta-aho, Mika Karlstedt, Madhav P. Desai USENIX ATC 12, Boston, MA, 13 th of June, 2012 Click2NetFPGA We have explored the possibilities of High Level Synthesis (HLS)
Open Flow Controller and Switch Datasheet
Open Flow Controller and Switch Datasheet California State University Chico Alan Braithwaite Spring 2013 Block Diagram Figure 1. High Level Block Diagram The project will consist of a network development
DE4 NetFPGA Packet Generator Design User Guide
DE4 NetFPGA Packet Generator Design User Guide Revision History Date Comment Author 01/30/2012 Initial draft Harikrishnan Contents 1. Introduction... 4 2. System Requirements... 4 3. Installing DE4 NetFPGA
A low-cost, connection aware, load-balancing solution for distributing Gigabit Ethernet traffic between two intrusion detection systems
Iowa State University Digital Repository @ Iowa State University Graduate Theses and Dissertations Graduate College 2010 A low-cost, connection aware, load-balancing solution for distributing Gigabit Ethernet
ECE 3401 Lecture 7. Concurrent Statements & Sequential Statements (Process)
ECE 3401 Lecture 7 Concurrent Statements & Sequential Statements (Process) Concurrent Statements VHDL provides four different types of concurrent statements namely: Signal Assignment Statement Simple Assignment
Coding Rules. Encoding the type of a function into the name (so-called Hungarian notation) is forbidden - it only confuses the programmer.
Coding Rules Section A: Linux kernel style based coding for C programs Coding style for C is based on Linux Kernel coding style. The following excerpts in this section are mostly taken as is from articles
Using Xilinx ISE for VHDL Based Design
ECE 561 Project 4-1 - Using Xilinx ISE for VHDL Based Design In this project you will learn to create a design module from VHDL code. With Xilinx ISE, you can easily create modules from VHDL code using
if-then else : 2-1 mux mux: process (A, B, Select) begin if (select= 1 ) then Z <= A; else Z <= B; end if; end process;
if-then else : 2-1 mux mux: process (A, B, Select) begin if (select= 1 ) then Z
VHDL GUIDELINES FOR SYNTHESIS
VHDL GUIDELINES FOR SYNTHESIS Claudio Talarico For internal use only 1/19 BASICS VHDL VHDL (Very high speed integrated circuit Hardware Description Language) is a hardware description language that allows
Digital Design with VHDL
Digital Design with VHDL CSE 560M Lecture 5 Shakir James Shakir James 1 Plan for Today Announcement Commentary due Wednesday HW1 assigned today. Begin immediately! Questions VHDL help session Assignment
Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
Example-driven Interconnect Synthesis for Heterogeneous Coarse-Grain Reconfigurable Logic
Example-driven Interconnect Synthesis for Heterogeneous Coarse-Grain Reconfigurable Logic Clifford Wolf, Johann Glaser, Florian Schupfer, Jan Haase, Christoph Grimm Computer Technology /99 Overview Ultra-Low-Power
Open Source Network: Software-Defined Networking (SDN) and OpenFlow
Open Source Network: Software-Defined Networking (SDN) and OpenFlow Insop Song, Ericsson LinuxCon North America, Aug. 2012, San Diego CA Objectives Overview of OpenFlow Overview of Software Defined Networking
Lecture 22: C Programming 4 Embedded Systems
Lecture 22: C Programming 4 Embedded Systems Today s Goals Basic C programming process Variables and constants in C Pointers to access addresses Using a High Level Language High-level languages More human
Router Architectures
Router Architectures An overview of router architectures. Introduction What is a Packet Switch? Basic Architectural Components Some Example Packet Switches The Evolution of IP Routers 2 1 Router Components
Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C
Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C 1 An essential part of any embedded system design Programming 2 Programming in Assembly or HLL Processor and memory-sensitive
Von der Hardware zur Software in FPGAs mit Embedded Prozessoren. Alexander Hahn Senior Field Application Engineer Lattice Semiconductor
Von der Hardware zur Software in FPGAs mit Embedded Prozessoren Alexander Hahn Senior Field Application Engineer Lattice Semiconductor AGENDA Overview Mico32 Embedded Processor Development Tool Chain HW/SW
How To Port A Program To Dynamic C (C) (C-Based) (Program) (For A Non Portable Program) (Un Portable) (Permanent) (Non Portable) C-Based (Programs) (Powerpoint)
TN203 Porting a Program to Dynamic C Introduction Dynamic C has a number of improvements and differences compared to many other C compiler systems. This application note gives instructions and suggestions
Implementation of Web-Server Using Altera DE2-70 FPGA Development Kit
1 Implementation of Web-Server Using Altera DE2-70 FPGA Development Kit A THESIS SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENT OF FOR THE DEGREE IN Bachelor of Technology In Electronics and Communication
AES (Rijndael) IP-Cores
AES (Rijndael) IP-Cores Encryption/Decryption and Key Expansion Page 1 Revision History Date Version Description 24 February 2006 1.0 Initial draft. 15 March 2006 1.1 Block diagrams added. 26 March 2006
RCL: Design and Open Specification
ICT FP7-609828 RCL: Design and Open Specification D3.1.1 March 2014 _D3.1.1_RCLDesignAndOpenSpecification_v1.0 Document Information Scheduled delivery Actual delivery Version Responsible Partner 31.03.2014
Virtual Private Systems for FreeBSD
Virtual Private Systems for FreeBSD Klaus P. Ohrhallinger 06. June 2010 Abstract Virtual Private Systems for FreeBSD (VPS) is a novel virtualization implementation which is based on the operating system
Dynamically Translating x86 to LLVM using QEMU
Dynamically Translating x86 to LLVM using QEMU Vitaly Chipounov and George Candea School of Computer and Communication Sciences École Polytechnique Fédérale de Lausanne (EPFL), Switzerland 1 Introduction
Best Practises for LabVIEW FPGA Design Flow. uk.ni.com ireland.ni.com
Best Practises for LabVIEW FPGA Design Flow 1 Agenda Overall Application Design Flow Host, Real-Time and FPGA LabVIEW FPGA Architecture Development FPGA Design Flow Common FPGA Architectures Testing and
Modeling a GPS Receiver Using SystemC
Modeling a GPS Receiver using SystemC Modeling a GPS Receiver Using SystemC Bernhard Niemann Reiner Büttner Martin Speitel http://www.iis.fhg.de http://www.iis.fhg.de/kursbuch/kurse/systemc.html The e
An Example VHDL Application for the TM-4
An Example VHDL Application for the TM-4 Dave Galloway Edward S. Rogers Sr. Department of Electrical and Computer Engineering University of Toronto March 2005 Introduction This document describes a simple
Performance of Software Switching
Performance of Software Switching Based on papers in IEEE HPSR 2011 and IFIP/ACM Performance 2011 Nuutti Varis, Jukka Manner Department of Communications and Networking (COMNET) Agenda Motivation Performance
NetFlow probe on NetFPGA
Verze #1.00, 2008-12-12 NetFlow probe on NetFPGA Introduction With ever-growing volume of data being transferred over the Internet, the need for reliable monitoring becomes more urgent. Monitoring devices
LAB #3 VHDL RECOGNITION AND GAL IC PROGRAMMING USING ALL-11 UNIVERSAL PROGRAMMER
LAB #3 VHDL RECOGNITION AND GAL IC PROGRAMMING USING ALL-11 UNIVERSAL PROGRAMMER OBJECTIVES 1. Learn the basic elements of VHDL that are implemented in Warp. 2. Build a simple application using VHDL and
Enabling Open-Source High Speed Network Monitoring on NetFPGA
Network Operations and Management Symposium (NOMS) 2012 Enabling Open-Source High Speed Network Monitoring on NetFPGA Gianni Antichi, Stefano Giordano Email: @iet.unipi.it Department of Information
Xenomai: integration and qualification of a real time operating system ARMadeus Systems
: integration and qualification of a real time operating system ARMadeus Systems Gwenhaël 8 july 2009 1 / 22 Plan 1 2 3 of in a Buildroot environment 4 5 6 2 / 22 : basics Real time extension for Linux.
9/14/2011 14.9.2011 8:38
Algorithms and Implementation Platforms for Wireless Communications TLT-9706/ TKT-9636 (Seminar Course) BASICS OF FIELD PROGRAMMABLE GATE ARRAYS Waqar Hussain [email protected] Department of Computer
IO Visor Project Overview
IO Visor Project Overview IO Visor: Introduction 2 Data Center Trends Infrastructure Transformation Cloud-based Applications Accelerating and driving the IT industry to seek faster service delivery and
Quartus II Introduction for VHDL Users
Quartus II Introduction for VHDL Users This tutorial presents an introduction to the Quartus II software. It gives a general overview of a typical CAD flow for designing circuits that are implemented by
The irnetbox Manager User Guide
The irnetbox Manager User Guide Chris Dodge RedRat Ltd April 2014 For irnetbox Manager 3.05 1 Contents 1. Introduction...3 2. Initial Network Configuration...3 3. Finding irnetboxes...3 3.1 Device Information
Challenges in high speed packet processing
Challenges in high speed packet processing Denis Salopek University of Zagreb, Faculty of Electrical Engineering and Computing, Croatia [email protected] Abstract With billions of packets traveling
Introduction to OpenFlow:
Introduction to OpenFlow: Bringing Experimental Protocols to a Network Near You! Chris Tracy, Network Engineer ESnet Engineering Group Overview Fundamentals and Terminology Hardware Options for Deploying
Mouse Programming. 25.1 Mouse Interrupts. 25.2 Useful Mouse functions. 25.2.1 Mouselib.h. 25.2.2 Mouselib.c
25 Show respect for all people. Mouse Programming As everyone knows, mouse is one of the inputting devices. In this chapter, I explain interrupts for mouse programming and a few concepts regarding mouse
Python, C++ and SWIG
Robin Dunn Software Craftsman O Reilly Open Source Convention July 21 25, 2008 Slides available at http://wxpython.org/oscon2008/ Python & C++ Comparisons Each is a general purpose programming language,
Applying Clang Static Analyzer to Linux Kernel
Applying Clang Static Analyzer to Linux Kernel 2012/6/7 FUJITSU COMPUTER TECHNOLOGIES LIMITED Hiroo MATSUMOTO 管 理 番 号 1154ka1 Copyright 2012 FUJITSU COMPUTER TECHNOLOGIES LIMITED Abstract Now there are
Introduction to the Altera Qsys System Integration Tool. 1 Introduction. For Quartus II 12.0
Introduction to the Altera Qsys System Integration Tool For Quartus II 12.0 1 Introduction This tutorial presents an introduction to Altera s Qsys system inegration tool, which is used to design digital
Network packet capture in Linux kernelspace
Network packet capture in Linux kernelspace An overview of the network stack in the Linux kernel Beraldo Leal [email protected] http://www.ime.usp.br/~beraldo/ Institute of Mathematics and Statistics
BSc (Hons) Business Information Systems, BSc (Hons) Computer Science with Network Security. & BSc. (Hons.) Software Engineering
BSc (Hons) Business Information Systems, BSc (Hons) Computer Science with Network Security & BSc. (Hons.) Software Engineering Cohort: BIS/05/FT BCNS/05/FT BSE/05/FT Examinations for 2005-2006 / Semester
The POSIX Socket API
The POSIX Giovanni Agosta Piattaforme Software per la Rete Modulo 2 G. Agosta The POSIX Outline Sockets & TCP Connections 1 Sockets & TCP Connections 2 3 4 G. Agosta The POSIX TCP Connections Preliminaries
Tue Apr 19 11:03:19 PDT 2005 by Andrew Gristina thanks to Luca Deri and the ntop team
Tue Apr 19 11:03:19 PDT 2005 by Andrew Gristina thanks to Luca Deri and the ntop team This document specifically addresses a subset of interesting netflow export situations to an ntop netflow collector
Extending the Power of FPGAs. Salil Raje, Xilinx
Extending the Power of FPGAs Salil Raje, Xilinx Extending the Power of FPGAs The Journey has Begun Salil Raje Xilinx Corporate Vice President Software and IP Products Development Agenda The Evolution of
7a. System-on-chip design and prototyping platforms
7a. System-on-chip design and prototyping platforms Labros Bisdounis, Ph.D. Department of Computer and Communication Engineering 1 What is System-on-Chip (SoC)? System-on-chip is an integrated circuit
OpenFlow with Intel 82599. Voravit Tanyingyong, Markus Hidell, Peter Sjödin
OpenFlow with Intel 82599 Voravit Tanyingyong, Markus Hidell, Peter Sjödin Outline Background Goal Design Experiment and Evaluation Conclusion OpenFlow SW HW Open up commercial network hardware for experiment
Linux. Reverse Debugging. Target Communication Framework. Nexus. Intel Trace Hub GDB. PIL Simulation CONTENTS
Android NEWS 2016 AUTOSAR Linux Windows 10 Reverse ging Target Communication Framework ARM CoreSight Requirements Analysis Nexus Timing Tools Intel Trace Hub GDB Unit Testing PIL Simulation Infineon MCDS
Network Functions Virtualization on top of Xen
Network Functions Virtualization on top of Xen Joao Martins*, Mohamed Ahmed*, Felipe Huici*, Costin Raiciu, Vladimir Olteanu, Michio Honda*, Roberto Bifulco*, Simon Kuenzer* * NEC Europe Ltd., Heidelberg,
LLVMLinux: Embracing the Dragon
LLVMLinux: Embracing the Dragon Presented by: Behan Webster ( lead) Presentation Date: 2014.08.22 Clang/LLVM LLVM is a Toolchain Toolkit (libraries from which compilers and related technologies can be
A Wire-speed Packet Classification and Capture Module for NetFPGA
A Wire-speed Packet Classification and Capture Module for NetFPGA Malcolm Scott University of Cambridge Computer Laboratory 15 JJ Thomson Avenue Cambridge CB3 0FD, UK [email protected] ABSTRACT
A Programming Language for Processor Based Embedded Systems
A Programming Language for Processor Based Embedded Systems Akihiko Inoue Hiroyuki Tomiyama Eko Fajar Nurprasetyo Hiroto Yasuura Department of Computer Science and Communication Engineering, Kyushu University
Hybrid Platform Application in Software Debug
Hybrid Platform Application in Software Debug Jiao Feng July 15 2015.7.15 Software costs in SoC development 2 Early software adoption Previous Development Process IC Development RTL Design Physical Design
HANIC 100G: Hardware accelerator for 100 Gbps network traffic monitoring
CESNET Technical Report 2/2014 HANIC 100G: Hardware accelerator for 100 Gbps network traffic monitoring VIKTOR PUš, LUKÁš KEKELY, MARTIN ŠPINLER, VÁCLAV HUMMEL, JAN PALIČKA Received 3. 10. 2014 Abstract
Xilinx ISE. <Release Version: 10.1i> Tutorial. Department of Electrical and Computer Engineering State University of New York New Paltz
Xilinx ISE Tutorial Department of Electrical and Computer Engineering State University of New York New Paltz Fall 2010 Baback Izadi Starting the ISE Software Start ISE from the
1 Abstract Data Types Information Hiding
1 1 Abstract Data Types Information Hiding 1.1 Data Types Data types are an integral part of every programming language. ANSI-C has int, double and char to name just a few. Programmers are rarely content
Learn CUDA in an Afternoon: Hands-on Practical Exercises
Learn CUDA in an Afternoon: Hands-on Practical Exercises Alan Gray and James Perry, EPCC, The University of Edinburgh Introduction This document forms the hands-on practical component of the Learn CUDA
A way towards Lower Latency and Jitter
A way towards Lower Latency and Jitter Jesse Brandeburg [email protected] Intel Ethernet BIO Jesse Brandeburg A senior Linux developer in the Intel LAN Access Division,
HDL Simulation Framework
PPC-System.mhs CoreGen Dateien.xco HDL-Design.vhd /.v SimGen HDL Wrapper Sim-Modelle.vhd /.v Platgen Coregen XST HDL Simulation Framework RAM Map Netzliste Netzliste Netzliste UNISIM NetGen vcom / vlog.bmm.ngc.ngc.ngc
Creating a Java application using Perfect Developer and the Java Develo...
1 of 10 15/02/2010 17:41 Creating a Java application using Perfect Developer and the Java Development Kit Introduction Perfect Developer has the facility to execute pre- and post-build steps whenever the
System Structures. Services Interface Structure
System Structures Services Interface Structure Operating system services (1) Operating system services (2) Functions that are helpful to the user User interface Command line interpreter Batch interface
Networking Virtualization Using FPGAs
Networking Virtualization Using FPGAs Russell Tessier, Deepak Unnikrishnan, Dong Yin, and Lixin Gao Reconfigurable Computing Group Department of Electrical and Computer Engineering University of Massachusetts,
Low Level Virtual Machine for Glasgow Haskell Compiler
Low Level Virtual Machine for Glasgow Haskell Compiler By David Anthony Terei Supervisor Manuel M. T. Chakravarty THESIS Submitted in partial fulfilment of the requirements for the degree of Bachelor of
CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study
CS 377: Operating Systems Lecture 25 - Linux Case Study Guest Lecturer: Tim Wood Outline Linux History Design Principles System Overview Process Scheduling Memory Management File Systems A review of what
Watch your Flows with NfSen and NFDUMP 50th RIPE Meeting May 3, 2005 Stockholm Peter Haag
Watch your Flows with NfSen and NFDUMP 50th RIPE Meeting May 3, 2005 Stockholm Peter Haag 2005 SWITCH What I am going to present: The Motivation. What are NfSen and nfdump? The Tools in Action. Outlook
How To Write Portable Programs In C
Writing Portable Programs COS 217 1 Goals of Today s Class Writing portable programs in C Sources of heterogeneity Data types, evaluation order, byte order, char set, Reading period and final exam Important
Oracle SDN Performance Acceleration with Software-Defined Networking
Oracle SDN Performance Acceleration with Software-Defined Networking Oracle SDN, which delivers software-defined networking, boosts application performance and management flexibility by dynamically connecting
Cisco Configuring Commonly Used IP ACLs
Table of Contents Configuring Commonly Used IP ACLs...1 Introduction...1 Prerequisites...2 Hardware and Software Versions...3 Configuration Examples...3 Allow a Select Host to Access the Network...3 Allow
Overview. Lecture 1: an introduction to CUDA. Hardware view. Hardware view. hardware view software view CUDA programming
Overview Lecture 1: an introduction to CUDA Mike Giles [email protected] hardware view software view Oxford University Mathematical Institute Oxford e-research Centre Lecture 1 p. 1 Lecture 1 p.
Software Defined Networking and the design of OpenFlow switches
Software Defined Networking and the design of OpenFlow switches Paolo Giaccone Notes for the class on Packet Switch Architectures Politecnico di Torino December 2015 Outline 1 Introduction to SDN 2 OpenFlow
Table of Contents. Cisco How Does Load Balancing Work?
Table of Contents How Does Load Balancing Work?...1 Document ID: 5212...1 Introduction...1 Prerequisites...1 Requirements...1 Components Used...1 Conventions...1 Load Balancing...1 Per Destination and
Control and forwarding plane separation on an open source router. Linux Kongress 2010-10-23 in Nürnberg
Control and forwarding plane separation on an open source router Linux Kongress 2010-10-23 in Nürnberg Robert Olsson, Uppsala University Olof Hagsand, KTH Jens Låås, UU Bengt Görden, KTH SUMMARY VERSION
SystemC Tutorial. John Moondanos. Strategic CAD Labs, INTEL Corp. & GSRC Visiting Fellow, UC Berkeley
SystemC Tutorial John Moondanos Strategic CAD Labs, INTEL Corp. & GSRC Visiting Fellow, UC Berkeley SystemC Introduction Why not leverage experience of C/C++ developers for H/W & System Level Design? But
Example of Standard API
16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface
DDS. 16-bit Direct Digital Synthesizer / Periodic waveform generator Rev. 1.4. Key Design Features. Block Diagram. Generic Parameters.
Key Design Features Block Diagram Synthesizable, technology independent VHDL IP Core 16-bit signed output samples 32-bit phase accumulator (tuning word) 32-bit phase shift feature Phase resolution of 2π/2
Device Management Functions
REAL TIME OPERATING SYSTEMS Lesson-6: Device Management Functions 1 1. Device manager functions 2 Device Driver ISRs Number of device driver ISRs in a system, Each device or device function having s a
Interconnection Networks. Interconnection Networks. Interconnection networks are used everywhere!
Interconnection Networks Interconnection Networks Interconnection networks are used everywhere! Supercomputers connecting the processors Routers connecting the ports can consider a router as a parallel
EMSCRIPTEN - COMPILING LLVM BITCODE TO JAVASCRIPT (?!)
EMSCRIPTEN - COMPILING LLVM BITCODE TO JAVASCRIPT (?!) ALON ZAKAI (MOZILLA) @kripken JavaScript..? At the LLVM developer's conference..? Everything compiles into LLVM bitcode The web is everywhere, and
COMPSCI 314: SDN: Software Defined Networking
COMPSCI 314: SDN: Software Defined Networking Nevil Brownlee [email protected] Lecture 23 Current approach to building a network Buy 802.3 (Ethernet) switches, connect hosts to them using UTP cabling
VHDL Test Bench Tutorial
University of Pennsylvania Department of Electrical and Systems Engineering ESE171 - Digital Design Laboratory VHDL Test Bench Tutorial Purpose The goal of this tutorial is to demonstrate how to automate
Product Development Flow Including Model- Based Design and System-Level Functional Verification
Product Development Flow Including Model- Based Design and System-Level Functional Verification 2006 The MathWorks, Inc. Ascension Vizinho-Coutry, [email protected] Agenda Introduction to Model-Based-Design
3.5. cmsg Developer s Guide. Data Acquisition Group JEFFERSON LAB. Version
Version 3.5 JEFFERSON LAB Data Acquisition Group cmsg Developer s Guide J E F F E R S O N L A B D A T A A C Q U I S I T I O N G R O U P cmsg Developer s Guide Elliott Wolin [email protected] Carl Timmer [email protected]
OpenAMP Framework for Zynq Devices
OpenAMP Framework for Zynq Devices Getting Started Guide Revision History The following table shows the revision history for this document. Date Version Revision 06/23/2016 2015.4 Changed version to match
PARALLEL JAVASCRIPT. Norm Rubin (NVIDIA) Jin Wang (Georgia School of Technology)
PARALLEL JAVASCRIPT Norm Rubin (NVIDIA) Jin Wang (Georgia School of Technology) JAVASCRIPT Not connected with Java Scheme and self (dressed in c clothing) Lots of design errors (like automatic semicolon
H0/H2/H4 -ECOM100 DHCP & HTML Configuration. H0/H2/H4--ECOM100 DHCP Disabling DHCP and Assigning a Static IP Address Using HTML Configuration
H0/H2/H4 -ECOM100 DHCP & HTML 6 H0/H2/H4--ECOM100 DHCP Disabling DHCP and Assigning a Static IP Address Using HTML 6-2 H0/H2/H4 -ECOM100 DHCP DHCP Issues The H0/H2/H4--ECOM100 is configured at the factory
Echtzeittesten mit MathWorks leicht gemacht Simulink Real-Time Tobias Kuschmider Applikationsingenieur
Echtzeittesten mit MathWorks leicht gemacht Simulink Real-Time Tobias Kuschmider Applikationsingenieur 2015 The MathWorks, Inc. 1 Model-Based Design Continuous Verification and Validation Requirements
Wireshark in a Multi-Core Environment Using Hardware Acceleration Presenter: Pete Sanders, Napatech Inc. Sharkfest 2009 Stanford University
Wireshark in a Multi-Core Environment Using Hardware Acceleration Presenter: Pete Sanders, Napatech Inc. Sharkfest 2009 Stanford University Napatech - Sharkfest 2009 1 Presentation Overview About Napatech
The Lagopus SDN Software Switch. 3.1 SDN and OpenFlow. 3. Cloud Computing Technology
3. The Lagopus SDN Software Switch Here we explain the capabilities of the new Lagopus software switch in detail, starting with the basics of SDN and OpenFlow. 3.1 SDN and OpenFlow Those engaged in network-related
Virtuozzo Virtualization SDK
Virtuozzo Virtualization SDK Programmer's Guide February 18, 2016 Copyright 1999-2016 Parallels IP Holdings GmbH and its affiliates. All rights reserved. Parallels IP Holdings GmbH Vordergasse 59 8200
The BSN Hardware and Software Platform: Enabling Easy Development of Body Sensor Network Applications
The BSN Hardware and Software Platform: Enabling Easy Development of Body Sensor Network Applications Joshua Ellul [email protected] Overview Brief introduction to Body Sensor Networks BSN Hardware
MeshBee Open Source ZigBee RF Module CookBook
MeshBee Open Source ZigBee RF Module CookBook 2014 Seeed Technology Inc. www.seeedstudio.com 1 Doc Version Date Author Remark v0.1 2014/05/07 Created 2 Table of contents Table of contents Chapter 1: Getting
A REST API for Arduino & the CC3000 WiFi Chip
A REST API for Arduino & the CC3000 WiFi Chip Created by Marc-Olivier Schwartz Last updated on 2014-04-22 03:01:12 PM EDT Guide Contents Guide Contents Overview Hardware configuration Installing the library
Firewall Implementation
CS425: Computer Networks Firewall Implementation Ankit Kumar Y8088 Akshay Mittal Y8056 Ashish Gupta Y8410 Sayandeep Ghosh Y8465 October 31, 2010 under the guidance of Prof. Dheeraj Sanghi Department of
