Introduction to Reconfigurable Computing

Slides:



Advertisements
Similar presentations
EEL4720/5721 Reconfigurable Computing The state-of-the-art Reconfigurable Computing equipment available for this course is made possible by a generous.
Advertisements

EEL4930/5934 Reconfigurable Computing The state-of-the-art Reconfigurable Computing equipment available for this course is made possible by a generous.
Device Tradeoffs Greg Stitt ECE Department University of Florida.
A reconfigurable system featuring dynamically extensible embedded microprocessor, FPGA, and customizable I/O Borgatti, M. Lertora, F. Foret, B. Cali, L.
Reconfigurable Computing: What, Why, and Implications for Design Automation André DeHon and John Wawrzynek June 23, 1999 BRASS Project University of California.
Extensible Processors. 2 ASIP Gain performance by:  Specialized hardware for the whole application (ASIC). −  Almost no flexibility. −High cost.  Use.
Some Thoughts on Technology and Strategies for Petaflops.
Spring 08, Jan 15 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2007 Introduction Vishwani D. Agrawal James J. Danaher.
Spring 07, Jan 16 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2007 Introduction Vishwani D. Agrawal James J. Danaher.
Chapter 1. Introduction This course is all about how computers work But what do we mean by a computer? –Different types: desktop, servers, embedded devices.
EE314 Basic EE II Silicon Technology [Adapted from Rabaey’s Digital Integrated Circuits, ©2002, J. Rabaey et al.]
EET 4250: Chapter 1 Performance Measurement, Instruction Count & CPI Acknowledgements: Some slides and lecture notes for this course adapted from Prof.
Chapter 1 Sections 1.1 – 1.3 Dr. Iyad F. Jafar Introduction.
Introduction to Reconfigurable Computing Greg Stitt ECE Department University of Florida.
Chapter 1 CSF 2009 Computer Abstractions and Technology.
Real time DSP Professors: Eng. Julian Bruno Eng. Mariano Llamedo Soria.
WHAT IS A COMPUTER? Computer is an electronic device designed to manipulate data so that useful information can be generated. Computer is multifunctional.
Multi-core Programming Introduction Topics. Topics General Ideas Moore’s Law Amdahl's Law Processes and Threads Concurrency vs. Parallelism.
J. Christiansen, CERN - EP/MIC
Reminder Lab 0 Xilinx ISE tutorial Research Send me an if interested Looking for those interested in RC with skills in compilers/languages/synthesis,
Introduction to Reconfigurable Computing Greg Stitt ECE Department University of Florida.
Design Space Exploration for Application Specific FPGAs in System-on-a-Chip Designs Mark Hammerquist, Roman Lysecky Department of Electrical and Computer.
EE3A1 Computer Hardware and Digital Design
25 April 2000 SEESCOASEESCOA STWW - Programma Evaluation of on-chip debugging techniques Deliverable D5.1 Michiel Ronsse.
Chapter 1 Computer Abstractions and Technology. Chapter 1 — Computer Abstractions and Technology — 2 The Computer Revolution Progress in computer technology.
EEL4720/5721 Reconfigurable Computing Greg Stitt Associate Professor.
What is a Microprocessor ? A microprocessor consists of an ALU to perform arithmetic and logic manipulations, registers, and a control unit Its has some.
Exploiting Parallelism
Introduction to VLSI Design Amit Kumar Mishra ECE Department IIT Guwahati.
WARP PROCESSORS ROMAN LYSECKY GREG STITT FRANK VAHID Presented by: Xin Guan Mar. 17, 2010.
CSE 102 Introduction to Computer Engineering Central Processing Unit.
Reconfigurable Architectures Greg Stitt ECE Department University of Florida.
CISC. What is it?  CISC - Complex Instruction Set Computer  CISC is a design philosophy that:  1) uses microcode instruction sets  2) uses larger.
Computer Organization IS F242. Course Objective It aims at understanding and appreciating the computing system’s functional components, their characteristics,
Reconfigurable Computing - Performance Issues John Morris Chung-Ang University The University of Auckland ‘Iolanthe’ at 13 knots on Cockburn Sound, Western.
SPRING 2012 Assembly Language. Definition 2 A microprocessor is a silicon chip which forms the core of a microcomputer the concept of what goes into a.
Dynamic and On-Line Design Space Exploration for Reconfigurable Architecture Fakhreddine Ghaffari, Michael Auguin, Mohamed Abid Nice Sophia Antipolis University.
Programmable Logic Devices
Conclusions on CS3014 David Gregg Department of Computer Science
ECE2030 Introduction to Computer Engineering Lecture 1: Overview
Introduction to Parallel Computing: MPI, OpenMP and Hybrid Programming
EEL4720/5721 Reconfigurable Computing
ECE354 Embedded Systems Introduction C Andras Moritz.
ELEC 7770 Advanced VLSI Design Spring 2016 Introduction
Architecture & Organization 1
From Silicon to Microelectronics Yahya Lakys EE & CE 200 Fall 2014
EEL4720/5721 Reconfigurable Computing
Chapter 1: Introduction
Solving the SoC Design Dilemma for IoT Applications with Embedded FPGA
ELEC 7770 Advanced VLSI Design Spring 2014 Introduction
EEL4930/5934 Reconfigurable Computing
Architecture & Organization 1
Dynamically Reconfigurable Architectures: An Overview
ELEC 7770 Advanced VLSI Design Spring 2012 Introduction
EE 445S Real-Time Digital Signal Processing Lab Spring 2014
Introduction to Digital Electronics
ELEC 7770 Advanced VLSI Design Spring 2010 Introduction
The performance requirements for DSP applications continue to grow and the traditional solutions do not adequately address this new challenge Paradigm.
Chapter 1 Introduction.
HIGH LEVEL SYNTHESIS.
2.C Memory GCSE Computing Langley Park School for Boys.
Greg Stitt ECE Department University of Florida
Computer Evolution and Performance
What is Computer Architecture?
Introduction to Microprocessor Programming
EEL4720/5721 Reconfigurable Computing
ECE 352 Digital System Fundamentals
Unit -4 Introduction to Embedded Systems Tuesday.
CSE378 Introduction to Machine Organization
EEL4930/5934 Reconfigurable Computing
Presentation transcript:

Introduction to Reconfigurable Computing Greg Stitt ECE Department University of Florida

What is Reconfigurable Computing? Reconfigurable computing (RC) is the study of architectures that can adapt (after fabrication) to a specific application or application domain Involves architecture, design strategies, tool flows, CAD, languages, algorithms

What is Reconfigurable Computing? Alternatively, RC is a way of implementing circuits without fabricating a device Essentially allows circuits to be implemented as “software” “circuits” are no longer the same thing as “hardware” RC devices are programmable by downloading bits - just like software b a c x y Microprocessor Binaries FPGA Binaries (Bitfile) 001010010 001010010 Bits loaded into program memory Bits loaded into CLBs, SMs, etc. Processor Processor FPGA 0010 … 0010 …

Why is RC important? Tremendous performance advantages In some cases, > 100x faster than microprocessor Alternatively, similar performances as large cluster But smaller, lower power, cheaper, etc. Example: Software executes sequentially RC executes all multiplications in parallel Additions become tree of adders Even with slower clock, RC is likely much faster Performance difference even greater for larger input sizes SW time increases linearly - O(n) RC time is basically O(log2(n)) - If enough area is available for (i=0; i < 16; i++) y += c[i] * x[i]

When to use RC? Why not use an ASIC for everything? Implementation Possibilities Microprocessor RC (FPGA,CPLD, etc.) ASIC Performance Why not use an ASIC for everything?

Moore’s Law Moore's Law is the empirical observation made in 1965 that the number of transistors on an integrated circuit doubles every 18 months [Wikipedia] 1993: 1 Million transistors Becoming extremely difficult to design this - ASICs are expensive! 2007: >1 BILLION transistors!!!!

Moore’s Law Solution: Make this reconfigurable Solution: Make billions of transistors into a reconfigurable fabric - fabricate 1 big chip and use it for many things Area overhead: circuit in FPGA can require 20x more transistors But, that’s still equivalent to a > 50 million transistor ASIC Pentium IV ~ 42 million transistors Modern FPGAs reportedly support millions of logic gates! 2007: >1 BILLION transistors!!!! Solution: Make this reconfigurable

When should RC be used? 1) When it provides the cheapest solution Depends on: NRE Cost - Non-recurring engineering cost Cost involved with designing system Unit cost - cost of a manufacturing single device Volume - # of units Total cost = NRE + unit cost * volume RC is typically more cost effective for low volume devices RC: low NRE, high unit cost ASIC: very high NRE, low unit cost

What about microprocessors? Similar cost issues uPs low NRE cost (coding is cheap) Unit cost varies from several dollars to several thousand Wouldn’t cheapest microprocessor always be the cheapest solution? Yes, but …

What about microprocessors? Often, microprocessors cannot meet performance constraints e.g. video decoder must achieve minimum frame rate Common reason for using custom circuit implementation

When should RC be used? 2) When time to market is critical Huge effect on total revenue RC has faster time to market than ASIC Growth Decline Revenue Total revenue = area of triangle Time Time to market Delayed time to market = less revenue

When should RC be used? 3) When circuit may have to be modified Uses Can’t change ASIC - hardware Can change circuit implemented in FPGA Uses When standards change Codec changes after devices fabricated Allows addition of new features to existing devices Fault tolerance/recovery “Partial reconfiguration” allows virtual fabric size - analogous to virtual memory Without RC Anything that may have to be reconfigured is implemented in software Performance loss

Design Space Exploration Determine architectures that meet performance requirements Not trivial, requires performance analysis/estimation - important problem Will study later in semester And, other constraints - power, size, etc. Estimate volume of device Determine cheapest solution The best architecture for an application is typically the cheapest one that meets all design constraints.

RC Markets Embedded Systems FPGAs appearing in set-top boxes, routers, audio equipment, etc. Advantages RC achieves performance close to ASIC, sometimes at much lower cost Many other embedded systems still use ASIC due to high volume Cell phones, iPod, game consoles, etc. Reconfigurable! If standards changes, architecture is not fixed Can add new features after production

RC Markets High-performance embedded computing (HPEC) High-performance/super computing with special needs (low power, low size/weight, etc.) Satellite image processing Target recognition RC Advantages Much smaller/lower power than a supercomputer Fault tolerance

RC Markets High-performance computing - HPC RC advantages Cray XD-1 12 AMD Opterons, FPGAs SGI Altix 64 Itaniums, FPGAs IBM Chameleon Cell processor, FPGAs Many others RC advantages HPC used for many scientific apps Low volume, ASIC rarely feasible

RC Markets General-purpose computing??? Ideal situation: desktop machine/OS uses RC to speedup up all applications Problems RC can be very fast, but not for all applications Generally requires parallel algorithms Coding constructs used in many applications not appropriate for hardware Subject of tremendous amount of past and likely future research How to use extra transistors on general purpose CPUs? More cache More microprocessors FPGA Something else?

Limitations of RC 1) Not all applications can be improved 2) Tools need serious improvement! 3) Design strategies are often ad-hoc 4) Floating point? Requires a lot of area, but becoming practical Embedded Applications – Large Speedups Desktop Applications – No Speedup