Reconfigurable Computing for Embedded Systems, FPGA Devices and Software Components

Similar documents
Using the Advancement Degree of Difficulty (AD 2 ) as an input to Risk Management

Overview Presented by: Boyd L. Summers

THE MIMOSA OPEN SOLUTION COLLABORATIVE ENGINEERING AND IT ENVIRONMENTS WORKSHOP

Asset Management- Acquisitions

Report Documentation Page

Headquarters U.S. Air Force

A GPS Digital Phased Array Antenna and Receiver

John Mathieson US Air Force (WR ALC) Systems & Software Technology Conference Salt Lake City, Utah 19 May 2011

Advanced Micro Ring Resonator Filter Technology

DEFENSE CONTRACT AUDIT AGENCY

EAD Expected Annual Flood Damage Computation

73rd MORSS CD Cover Page UNCLASSIFIED DISCLOSURE FORM CD Presentation

CAPTURE-THE-FLAG: LEARNING COMPUTER SECURITY UNDER FIRE

FIRST IMPRESSION EXPERIMENT REPORT (FIER)

Mobile Robot Knowledge Base

Guide to Using DoD PKI Certificates in Outlook 2000

AFRL-RX-WP-TP

THE FLATWORLD SIMULATION CONTROL ARCHITECTURE (FSCA): A FRAMEWORK FOR SCALABLE IMMERSIVE VISUALIZATION SYSTEMS

Monitoring of Arctic Conditions from a Virtual Constellation of Synthetic Aperture Radar Satellites

Award Number: MIPR 3GD3DJ3078. TITLE: Outcome Analysis Tool for Army Refractive Surgery Program. PRINCIPAL INVESTIGATOR: Kraig S. Bower, M.D.

DCAA and the Small Business Innovative Research (SBIR) Program

ELECTRONIC HEALTH RECORDS. Fiscal Year 2013 Expenditure Plan Lacks Key Information Needed to Inform Future Funding Decisions

Component Based Software Design using CORBA. Victor Giddings, Objective Interface Systems Mark Hermeling, Zeligsoft

Lesson 7: SYSTEM-ON. SoC) AND USE OF VLSI CIRCUIT DESIGN TECHNOLOGY. Chapter-1L07: "Embedded Systems - ", Raj Kamal, Publs.: McGraw-Hill Education

9/14/ :38

RT 24 - Architecture, Modeling & Simulation, and Software Design

Best Practises for LabVIEW FPGA Design Flow. uk.ni.com ireland.ni.com

Mr. Steve Mayer, PMP, P.E. McClellan Remediation Program Manger Air Force Real Property Agency. May 11, 2011

Architectures and Platforms

BUILD VERSUS BUY. Understanding the Total Cost of Embedded Design.

Cancellation of Nongroup Health Insurance Policies

FPGAs in Next Generation Wireless Networks

REPORT DOCUMENTATION PAGE

Design Cycle for Microprocessors

Issue Paper. Wargaming Homeland Security and Army Reserve Component Issues. By Professor Michael Pasquarett

Addressing the Real-World Challenges in the Development of Propulsion IVHM Technology Experiment (PITEX)

High Power Density Capacitor Charging Power Supply Development for Repetitive Pulsed Power

MCA Standards For Closely Distributed Multicore

Xeon+FPGA Platform for the Data Center

Pima Community College Planning Grant For Autonomous Intelligent Network of Systems (AINS) Science, Mathematics & Engineering Education Center

Seeking Opportunities for Hardware Acceleration in Big Data Analytics

UNCLASSIFIED LOW-COST MINIATURE INTERFACE AND CONTROL SYSTEMS FOR SMART SENSORS, TACTICAL RADIOS, AND COMPUTER NETWORKS

Simulation of Air Flow Through a Test Chamber

Integrated Force Method Solution to Indeterminate Structural Mechanics Problems

Military Health System Conference

Intelligence Community Public Key Infrastructure (IC PKI)

What Makes a Message Stick? - The Role of Content and Context in Social Media Epidemics

DEFENSE BUSINESS PRACTICE IMPLEMENTATION BOARD

Multiple Network Marketing coordination Model

Dynamic IR Scene Projector Based Upon the Digital Micromirror Device

An Oil-Free Thrust Foil Bearing Facility Design, Calibration, and Operation

AUSTRALIAN INNOVATIONS

2.1 What are distributed systems? What are systems? Different kind of systems How to distribute systems? 2.2 Communication concepts

Achieving QoS for Aeronautical Telecommunication Networks Over Differentiated Services

Chapter 2 Logic Gates and Introduction to Computer Architecture

GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS

7a. System-on-chip design and prototyping platforms

NORTHEASTERN UNIVERSITY Graduate School of Engineering

Distributed Reconfigurable Hardware for Image Processing Acceleration

Middleware and Distributed Systems. Introduction. Dr. Martin v. Löwis

All Programmable Logic. Hans-Joachim Gelke Institute of Embedded Systems. Zürcher Fachhochschule

CERT Virtual Flow Collection and Analysis

Open Flow Controller and Switch Datasheet

PCB Project (*.PrjPcb)

Extending the Power of FPGAs. Salil Raje, Xilinx

Development and Support for the USGODAE Server

mini w Requirements Analysis Defense Commissary Agency Credit Card Program Logistics Management Institute Credit Card Terminals and Printers v / i

Programmable Logic IP Cores in SoC Design: Opportunities and Challenges

SDR Architecture. Introduction. Figure 1.1 SDR Forum High Level Functional Model. Contributed by Lee Pucker, Spectrum Signal Processing

An Overview of Romanian Command and Control Systems

Evaluation of a 10 kv, 400 ka Si SGTO at High di/dt

Ultra-low Sulfur Diesel Classification with Near-Infrared Spectroscopy and Partial Least Squares

Non-Autoclave (Prepreg) Manufacturing Technology

E X A D A T A NEW EXPLOSIVES ACCIDENT DATABASE

IISUP-. NAVAL SUPPLY SVSTE:MS COMMAND. Ready. Resourceful. Responsive!

Pre-tested System-on-Chip Design. Accelerates PLD Development

JOINT TACTICAL RADIO SYSTEM - APPLICATION PROGRAMMING INTERFACES

In June 1998 the Joint Military Intelligence. Intelligence Education for Joint Warfighting A. DENIS CLIFT

Real-Time Task Scheduling for Energy-Aware Embedded Systems 1

BDTI Solution Certification TM : Benchmarking H.264 Video Decoder Hardware/Software Solutions

An Application of an Iterative Approach to DoD Software Migration Planning

Graduate Level Credit for Resident EWS Students. Natasha McEachin CG 1

MINDS: A NEW APPROACH TO THE INFORMATION SECURITY PROCESS

Architekturen und Einsatz von FPGAs mit integrierten Prozessor Kernen. Hans-Joachim Gelke Institute of Embedded Systems Professur für Mikroelektronik

Agenda. Michele Taliercio, Il circuito Integrato, Novembre 2001

PROBLEM STATEMENT: Will reducing the ASD for Kadena AB F-15 C/Ds increase the CPFH for this Mission Design Series (MDS)?

Embedded System Deployment and Management

SuperIOr Controller. Digital Dynamics, Inc., 2014 All Rights Reserved. Patent Pending. Rev:

SDLC Controller. Documentation. Design File Formats. Verification

UMass at TREC 2008 Blog Distillation Task

Networking Virtualization Using FPGAs

FPGA Accelerator Virtualization in an OpenPOWER cloud. Fei Chen, Yonghua Lin IBM China Research Lab

Getting Started with RemoteFX in Windows Embedded Compact 7

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

CONTRACTING ORGANIZATION: Walter Reed Army Medical Center Washington, DC

NAVSUP FLC NORFOLK PHILADELPHIA OFFICE

Dataflow Programming with MaxCompiler

DATA ITEM DESCRIPTION

Introduction to CORBA. 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture

Transcription:

Reconfigurable Computing for Embedded Systems, FPGA Devices and Software Components Graham Bardouleau and James Kulp Mercury Computer Systems, Inc. Phone: 978-967-1653 Email Addresses: {gpb, jek}@mc.com In recent years the size and capabilities of field-programmable gate array (FPGA) devices have increased to a point where they can be deployed as adjunct processing elements within a multicomputer environment. This enables these devices to become an element within a reconfigurable system performing processing of high data rate streams of data. Conventionally, these devices have performed basically fixed-function processing at the input to a system. However, through the use of component-based programming models, it is possible to view these devices as general-purpose processing accelerators where the need arises within a system. A common approach to using FPGA devices in systems at present is based on the use of a dedicated driver or software proxy mechanism. The driver or proxy is responsible for controlling the flow of data between the FPGA and other elements within the system. This approach works, but often the driver or proxy requires intimate knowledge of the algorithm running within the FPGA device. As the drive toward reconfigurable computing platforms continues, the need for a standardized middleware that can be implemented and supported on all forms of processing elements increases. Through the use of such a middleware it would be possible to interface any form of processing element, including microprocessors, digital signal processors (DSPs), FPGAs and even application specific signal processors (ASSPs) and application specific integrated circuits (ASICs). The middleware would define the mechanism by which data would be transferred between processing elements and the associated signaling necessary to ensure data integrity within the system. Through the implementation of a middleware such as that mentioned above can provide a framework that supports a component-based application model by relieving the application implementation engineers of data movement and signaling issues. Various additional benefits are visible through the use of such a framework, including processor independence, fabric independence, and platform independence. The development of such a middleware and associated framework is ongoing at Mercury Computer Systems. This paper describes the approach taken at Mercury to develop such a middleware and framework that supports the execution of components on PowerPC microprocessors as well as Xilinx FPGA devices, treating them as peers in a system of heterogeneous processing resources. We will discuss also how this approach maximizes the portability of FPGA functional code in software radio environments.

Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden for the collection of information is estimated to average 1 hour per response, including the time for reviewing instructions, searching existing data sources, gathering and maintaining the data needed, and completing and reviewing the collection of information. Send comments regarding this burden estimate or any other aspect of this collection of information, including suggestions for reducing this burden, to Washington Headquarters Services, Directorate for Information Operations and Reports, 1215 Jefferson Davis Highway, Suite 1204, Arlington VA 22202-4302. Respondents should be aware that notwithstanding any other provision of law, no person shall be subject to a penalty for failing to comply with a collection of information if it does not display a currently valid OMB control number. 1. REPORT DATE 01 FEB 2005 2. REPORT TYPE N/A 3. DATES COVERED - 4. TITLE AND SUBTITLE Reconfigurable Computing for Embedded Systems, FPGA Devices and Software Components 5a. CONTRACT NUMBER 5b. GRANT NUMBER 5c. PROGRAM ELEMENT NUMBER 6. AUTHOR(S) 5d. PROJECT NUMBER 5e. TASK NUMBER 5f. WORK UNIT NUMBER 7. PERFORMING ORGANIZATION NAME(S) AND ADDRESS(ES) Mercury Computer Systems, Inc. 8. PERFORMING ORGANIZATION REPORT NUMBER 9. SPONSORING/MONITORING AGENCY NAME(S) AND ADDRESS(ES) 10. SPONSOR/MONITOR S ACRONYM(S) 12. DISTRIBUTION/AVAILABILITY STATEMENT Approved for public release, distribution unlimited 11. SPONSOR/MONITOR S REPORT NUMBER(S) 13. SUPPLEMENTARY NOTES See also ADM00001742, HPEC-7 Volume 1, Proceedings of the Eighth Annual High Performance Embedded Computing (HPEC) Workshops, 28-30 September 2004 Volume 1., The original document contains color images. 14. ABSTRACT 15. SUBJECT TERMS 16. SECURITY CLASSIFICATION OF: 17. LIMITATION OF ABSTRACT UU a. REPORT unclassified b. ABSTRACT unclassified c. THIS PAGE unclassified 18. NUMBER OF PAGES 19 19a. NAME OF RESPONSIBLE PERSON Standard Form 298 (Rev. 8-98) Prescribed by ANSI Std Z39-18

FPGAs & Software Components Graham Bardouleau & Jim Kulp Mercury Computer Systems, Inc. High Performance Embedded Computing (HPEC) Conference September 29, 2004

FPGAs & Software Components Introduction FPGAs can now be used as scalable processing resources in heterogeneous multicomputers, not just I/O enhancers. Many applications need multiple processor types for best fit (power, weight, etc.). We must enable FPGAs to be full peers without undue tax on the FPGAs resources. Our approach has two thrusts: Component programming models at application level and component level, building on standards. Infrastructure elements that enable a common control and communication model between peer processors, including the middleware for FPGAs 2

FPGAs & Software Components Programming Models Application programming must enable all processing resource types to be easily integrated (and changed/inserted). Component (software) model does this Standards are established for this (OMG and JTRS) Build on this heterogeneous model to embrace FPGAs Effective use of FPGA technology still requires writing VHDL, and sometimes special features/macros of specific FPGAs. Define and enable standard VHDL interfaces for external interactions, enabling peering with other component types Provide more portability and less dependency on choices of FPGA, fabric technology and peer processor types 3

FPGAs & Software Components Infrastructure Developments How to bring FPGAs into the first world? A common control model and mechanisms that can work across processor classes: Load, initialize, configure, start, stop, connect, etc. A data movement and synchronization model that can be supported locally everywhere Streaming, data reorg, and request/response messaging The FPGA driver and proxy code to treat FPGAs as computers that can load and run code that talks to others On-chip lean infrastructure (IP) to enable it all to work 4

FPGAs & Software Components Graham Bardouleau & Jim Kulp Mercury Computer Systems, Inc. High Performance Embedded Computing (HPEC) Conference September 29, 2004

Goals FPGAs can now be used as scalable processing resources in heterogeneous multicomputers, not just I/O enhancers or glue logic. Many applications need multiple processor types for best fit (power, weight, etc.). We must enable FPGAs to be full peers in the multicomputer, without undue tax on FPGA resources. Box 1 Pentium Pentium (e.g. Intel 1U Dual Pentium Server) Box 2 Pentium Pentium (e.g. Intel 1U Dual Pentium Server) A Component System Interchassis Connections (network, fabric, links) Box 3 Pentium G4 G4 FPGA (e.g. Adapdev+Atlanta+MCOE) Box 4 PPC FPGA FPGA DSP DSP (e.g. 2 Channel JTRS Radio) 2

FPGAs & Software Components Approach Our approach has two thrusts: Component programming models at application level and component level, building on standards. How to write applications, as a set of components How to write components, as building blocks for apps Infrastructure elements that enable a common control model, and common communication model between peer processors of all types, including the middleware for FPGAs How components are managed How components communicate with each other 3

FPGAs & Software Components Application Programming Model Enable all processing resource types to be easily integrated (and changed/inserted). Support real world, flexible mixing of GPPs, DSPs, FPGAs. The Component Software model does it. A hardware-ish way of building software, usable for FPGAs Application building blocks that can have different implementations (even different source code), for different processor types Standards are established for this (OMG and JTRS). We build on this heterogeneous model to embrace FPGAs. 4

What s a Component? A (software/fpga) package which offers services through interfaces. A reusable part that provides the physical packaging of implementation elements. An independently deliverable package of software that can be used to build applications or larger components, or be an application itself. A unit of software that is pre-built, packaged, self-describing, which can be individually deployed or updated or replaced in the field. It can be sent as an email attachment. A well behaved DLL on steroids? 5

What s a Component? Defined for its users by: Ports that provide a service via an interface/protocol (component acting as server) Ports that require (use) a service via an interface/protocol (component acting as client) Configuration (instantiation) parameters. An overall functional behavior Packaging (e.g. zip archive) of compiled code files (e.g. DLLs) and descriptive metadata (e.g. XML). Metadata allows tools and runtime environments to know how to use, configure, run them, after it is compiled and packaged. Component Definition Ports that provide service Config params: - Color: red (default) Ports that require a service Component Package (e.g. ZIP file) Definition Metadata Implementation Metadata Compiled Code Compiled Code 6

What s an Application? An application s functionality is created by using components as parts in an assembly, and wiring together their required and provided ports. Assemblies can be used as components in higher level assemblies, enabling an application to be used as a component in a new application. Assemblies are described in metadata (usually XML), not code. 7

FPGAs & Software Components FPGA Component Model Effective use of FPGA technology still requires writing VHDL, and sometimes special features/macros of specific FPGAs. Define and enable standard VHDL interfaces for external interactions, enabling peering with other component types. Provide more portability and less dependency on choices of FPGA, fabric technology and peer processor types. 8

FPGAs & Software Components FPGA Component Model Exposed interfaces for the VHDL designer Local memory (scratch, LUT, or comm buffers) Data ports for communicating with other components (FIFO style or randomly addressable comm buffers) Runtime configuration parameters (scalars) Execution control (start/stop/reset etc.) Local FPGA resources or I/O (generally not portable) Standardized Interfaces Configuration Port Control Port Data Input Port(s) Application Component Logic Data Output Port(s) Local Memory Port(s) Local HW/IO Access 9

Infrastructure Elements How to bring FPGAs into the first world? A common control model and mechanisms that can work across processor classes: Load, initialize, configure, start, stop, connect, etc. Top level server manages a collection of processors, assuming they can all run and connect components. 10

Infrastructure Elements How to bring FPGAs into the first world? A control & deployment mechanism that works across processor classes: Load, initialize, configure, start, stop, connect, etc. Top level service manages a collection of processors, that can all run and connect components. Each processor is self-managed or managed by proxy (FPGA). Deployment System/ Service Packaged Components Distributed System or Multicomputer Computer A Computer B Processor X Component 1 Processor Y Component 2 Component 3 11 Processor Z Component 4

Infrastructure Elements How to bring FPGAs into the first world? A data movement and synchronization model that can be supported locally on all processor classes, including FPGAs, with no central control at runtime. Streaming data flow Data reorg (striping/partitioning) Request/response messaging Interoperable between processor classes on a fabric Based on current standards, extended to cover a broader set of processor classes Input1 SIMD Component Set B (x2) Output1 SIMD Component Set A (x3) Output1 Stream#1 Input1 Input2 Component C (x1) Output1 12

FPGA Infrastructure Elements Outside-the-FPGA support software The FPGA driver and proxy code to treat FPGAs as computers than can load and run code that talks to others. Implement the common component control and deployment model for FPGAs by proxy. Loading FPGA programs Partial loading still a challenge with today s FPGA technologies Configuration, control, and communication setup, via touching onchip infrastructure elements Does not participate in data flow or synchronization Some GPP FPGA Proxy Control/Deployment FPGA Processor FPGA Component Infrastructure FPGA Component Data Stream Other Processor Other Component Infrastructure Other Component 13

FPGA Infrastructure Elements On-chip infrastructure Hardware abstraction (like an OS) Memory technology Fabric/Bus attachment technology, with DMA I/O technology Component abstraction (like middleware) Configuration (runtime parameters) Execution control Communication with other components, local or remote How FPGA components are written (in VHDL) Application Component Component Abstraction Hardware Abstraction On-Chip and Adjacent Hardware I/O Timing/Control /Routing Application Component Interoperable/ Scalable Dataflow Control & Configuration Memory Buffer Management 14