1 of 56

Reconfigurable Computing�(adapted from Bobda‘s Book [1])

Prof. Dr. Vanderlei Bonato

The University of Sao Paulo (USP)

Institute of Mathematical and Computing Sciences (ICMC)

2 of 56

Agenda

  1. Early Work

  • Programmable devices (PLD)
    • PAL /PLAs
    • CPLDs
    • FPGAs

  • Design Flow

3 of 56

Early Work

4 of 56

Gerald Estrin Fix-Plus Machine

  • Vision of a restructurable computer system

Pragmatic problem studies predicts gains in computation

speeds in a variety of computational tasks when executed

on appropriate problem-oriented configurations of the

variable structure computer. The economic feasibility of the

system is based on utilization of essentially the same

hardware in a variety of special purpose structures. This

capability is achieved by programmed or physical

restructuring of a part of the hardware.

G. Estrin, B. Bussel, R. Turn, J Bibb (UCLA 1963)

5 of 56

Gerald Estrin Fix-Plus Machine

  • Fixed plus Variable structure computer
    • Proposed by G. Estrin in 1959
    • Consist of three parts

    • A high speed general purpose computer (the fix part F).

    • A variable part (V) consisting of various size high speed digital substructures which can be reorganized in a problem oriented special purpose configurations.

    • The supervisory control (SC) coordinates operations between the fix module and the variable module.

Speed gain over IBM7090 (2.5 to 1000)

6 of 56

Gerald Estrin Fix-Plus Machine

  • The Fixed Part (F)

Was initially an IBM 7090, but could be any general purpose computer

  • The Variable Part (V)

Made upon a set of problem specific optimized functional units in the

basic configuration( trigonometric functions, logarithm, exponentials,

n-th power, roots, complex arithmetic, hyperbolic, matrix operation)

      • Two types of basic building block
        • The first basic element contains four amplifiers and associated input logic for signal inversion, amplification, or high-speed storage
        • The second basic block consists of ten diodes and four output drivers and is for combinatoric application

The basic blocks

7 of 56

Gerald Estrin Fix-Plus Machine

The mother board

The wiring harness

      • The basic modules can be inserted into any of 36 positions on a mother board.
      • The connection between the modules is done by wiring harness
      • Function Reconfiguration means changing some modules
      • Routing Reconfiguration means changing some wiring harness

8 of 56

Gerald Estrin Fix-Plus Machine

Estrin at work.

Substantial efforts

on Reconfiguration

9 of 56

The Rammig Machine

  • Goal

Investigation of a system, which, with no manual or

mechanical interference, permits the building changing, processing and destruction of real (not simulated) digital hardware

Franz J. Rammig (University of Dortmund 1977)

The concept resulted in the construction of a

hardware editor. Useful to observe a circuit under

test (Hardware Emulation)

10 of 56

The Rammig Machine

  • Implementation
    • Outputs of modules connected to Selectors and selectors output connected to module inputs.
    • Software controlled modules interconnection
    • Two main problems to solve
      • Because the circuit is not hard-wired, a distortion of the time behaviour is possible
      • The timing is controlled by the circuit instead of being dictated by an observation mechanism.
      • A time-controlling must therefore be provided

11 of 56

Programmable Logic

12 of 56

PALs and PLAs

  • Pre-fabricated building block of many AND/OR gates (or NOR, NAND)
  • "Personalized" by making or breaking connections among the gates

Programmable Array Block Diagram for Sum of Products Form

Inputs

Dense array of

AND gates

Product

terms

Dense array of

OR gates

Outputs

13 of 56

PALs and PLAs

Example:

Equations

Personality Matrix

1 = asserted in term

0 = negated in term

- = does not participate

1 = term connected to output

0 = no connection to output

Input Side:

Output Side:

Reuse

of

t

erms

F

1

1

0

1

0

0

Outputs

Inputs

Product

t

erm

A

1

-

1

-

1

B

1

0

-

0

-

C

-

1

0

0

-

F

0

0

0

0

1

1

F

2

1

0

0

1

0

F

3

0

1

0

0

1

A B

B C

A C

B C

A

F0 = A + B C

F1 = A C + A B

F2 = B C + A B

F3 = B C + A

14 of 56

PALs and PLAs

Example Continued - Unprogrammed device

All possible connections are available

before programming

A

B

C

F0

F1

F2

F3

15 of 56

PALs and PLAs

Example Continued -

Programmed part

Unwanted connections are "blown"

Note: some array structures

work by making connections

rather than breaking them

A

B

C

F0

F1

F2

F3

AB

BC

AC

BC

A

16 of 56

PALs and PLAs

Alternative representation for

high fan-in structures

Short-hand notation

so we don't have to

draw all the wires!

X at junction indicates

a connection

Notation for implementing

F0 = A B + A B

F1 = C D + C D

A B C D

AB+AB

CD+CD

AB

CD

CD

AB

Unprogrammed device

Programmed device

17 of 56

PALs and PLAs

Design Example

F1 = A B C

F2 = A + B + C

F3 = A B C

F4 = A + B + C

F5 = A B C

F6 = A B C

Multiple functions of A, B, C

ABC

A

B

C

A

B

C

ABC

ABC

ABC

ABC

ABC

ABC

ABC

F1

F2

F3

F4

F5

F6

A

B

C

18 of 56

PALs and PLAs

What is difference between Programmable Array Logic (PAL) and�Programmable Logic Array (PLA)?

PAL : AND array is programmable, OR array is fixed at fabrication

A given column of the OR array

has access to only a subset of

the possible product terms

PLA: Both AND and OR arrays are programmable

19 of 56

PALs and PLAs

Design Example: BCD to Gray Code Converter

Truth Table

K-maps

Minimized Functions:

A

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

1

B

0

0

0

0

1

1

1

1

0

0

0

0

1

1

1

1

C

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

D

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

W

0

0

0

0

0

1

1

1

1

1

X

X

X

X

X

X

X

0

0

0

0

1

1

0

0

0

0

X

X

X

X

X

X

Y

0

0

1

1

1

1

1

1

0

0

X

X

X

X

X

X

Z

0

1

1

0

0

0

0

1

1

0

X

X

X

X

X

X

AB

CD

00

01

11

10

00

01

11

10

D

B

C

A

0

0

X

1

0

1

X

1

0

1

X

X

0

1

X

X

K-map for

W

AB

CD

00

01

11

10

00

01

11

10

D

B

C

A

0

1

X

0

0

1

X

0

0

0

X

X

0

0

X

X

K-map for X

X

AB

CD

00

01

11

10

00

01

11

10

D

B

C

A

0

1

X

0

0

1

X

0

1

1

X

X

1

1

X

X

K-map for

Y

AB

CD

00

01

11

10

00

01

11

10

D

B

C

A

0

0

X

1

1

0

X

0

0

1

X

X

1

0

X

X

K-map for

Z

W = A + B D + B C

X = B C

Y = B + C

Z = A B C D + B C D + A D + B C D

20 of 56

PALs and PLAs

Programmed PAL:

4 product terms per each OR gate

Minimized Functions:

W = A + B D + B C

X = B C

Y = B + C

Z = A B C D + B C D + A D + B C D

A B C D

A B C D

A

BD

BC

0

0

0

0

B

C

0

0

BC

BCD

AD

BCD

W X Y Z

21 of 56

Complex Programmable Logic Devices

  • Complex PLDs (CPLD) typically combine PAL combinational logic with Flip Flops
    • Organized into logic blocks connected in an interconnect matrix
    • Combinational or registered output
  • Usually enough logic for simple counters, state machines, decoders, etc.
  • CPLDs logic is not enough for complex operation
  • FPGAs have much more logic than CPLDs

  • e.g. Xilinx Coolrunner II, etc.

22 of 56

Complex Programmable Logic Devices

23 of 56

Field-Programmable Gate Arrays (FPGAs)

  • Introduced in 1985 by Xilinx
  • Roughly seen, an FPGA consist of:
    • A set of programmable macro cells
    • A programmable interconnection network
    • Programmable input/outputs

    • Subparts of a (complex) function are implemented in macro cells which are then connected to build the complete function
    • The IO can be programmed to drive the macro cell's inputs or to be driven by the macro cell's outputs
    • Unlike traditional application-specific integrated circuit (ASIC), function is specified by the user after the device is manufactured
    • Physical structure and programming method is vendor dependant

24 of 56

FPGA Structure

  • Typical organization
    1. Symmetrical Array
      • 2 D array of processing elements (PE) embedded in an interconnection network
      • Interconnection points at the horizontal-vertical intersection
    2. Row based
      • Rows of Processing elements
      • Horizontal routing via horizontal channels
      • Channels divided in segments
      • Vertical connections via dedicated vertical tracks (not on the graphic)

25 of 56

FPGA Structure

  • Typical organization (cont)
    1. Sea of gates
      • 2 D array of processing elements
      • No space left aside the PEs for routing
      • Connection is done on a separate layer on top of the cells
    2. Hierarchical
      • Hierarchically placed Macro cells
      • Low-level macro cells are grouped to build the higher-level's PEs

26 of 56

FPGA Programming Technologies

  • SRAM (LUT-based)
    • An SRAM is used to store all possible values of a function
    • Value of a function for a given input is retrieved using the inputs as SRAM-Address
    • SRAM implementing a function is called a look-up table (LUT)
    • A new function is implemented by writing new values into the LUT
      • SRAM-based FPGA can therefore be reprogrammed (configured) on the fly
      • Since a LUT is volatile, a LUT configuration is lost when switching off the system

27 of 56

FPGA Programming Technologies

  • Anti-fuse
    • An anti-fused normally presents a high-impedance state
    • can be “fused” into a low-impedance state when programmed by a high voltage.
    • The anti-fuse used in each of FPGAs from different company differs in construction

Advantages:

    • small area,
    • low resistance and parasitic capacitance than transistors
    • reduce delays in the routing.

Drawback: No reprogrammation possible

28 of 56

FPGA Programming Technologies

  • Poly-diffusion Anti-fuse: ACTEL PLICE
    • programmable low-impedance circuit element
    • Poly-silicon terminal
    • Oxide-Nitride-Oxide dielectric
    • Melting the dielectric establish connection

  • Metal Anti-fuse: Q-Logic Vialink
    • 2 Metal terminal layers (Titanium-Tungsten)
    • Programming points isolated by amorphous Silicon film

29 of 56

FPGA Programming Technologies

  • EEPROM (Flash)
    • The same technology as that used in
    • EPROM and EEPROM memories.
    • Advantages:
      • EPROMs require re-programmable but do not require external storage.
      • EEPROM can be re-programmed in-circuit.
    • Drawbacks:
      • EPROM's resistors consume static power.
      • EEPROM requires more chip area and multiple voltage sources

30 of 56

FPGA Function generators

  • LUT
    • LUT are used as function generators in SRAM-based FPGA

    • A k-inputs LUT can implement up to 2 k different functions

    • A k-input LUT has 2 k SRAM locations

    • A function is implemented by writing all possible values that the function can take in the LUT

    • The inputs values are used to address the LUT and retrieve the value of the function corresponding the the input values

a XOR b

a

b

0 0 0

0 1 1

1 0 1

1 1 0

0

1

1

0

a

b

a Xor b

LUT

31 of 56

FPGA Function generators

a XOR b

a

b

0 0 0

0 1 1

1 0 1

1 1 0

0

1

1

0

a

b

a Xor b

LUT

32 of 56

FPGA Function generators

  • LUT Example: Implement the function
  • using:

2-input LUTs

3-input LUTs

4-input LUTs

A

F = ABD + BC

B

C

D

+

A

B

D

B

C

D

A

B

C

F

A

B

D

B

C

D

A

B

C

C

D

A

B

F

F

33 of 56

FPGA Function generators

  • Multiplexers (MUX)
    • A 2 kx1 MUX can implement up to 2 k different functions

    • A function is implemented by writing all possible values that the function can take as constant at the MUX-Inputs

    • The selector-values are used to pass the corresponding input to the MUX output

    • Complex function can be decomposed and implement using many MUXes using the Shannon expansion theorem

Y

4 x 1

MUX

s0

s1

C0

C1

C2

C3

0

0

0

1

Y

s1

s0

0 0 C0

0 1 C1

1 0 C2

1 1 C3

0

0

0

1

=AND

34 of 56

Static and dynamic Reconfiguration

  • The ways of using a reconfigurable systems can be classified in two big categories:

    • Static reconfigurable systems.

The computation and reconfiguration is defined once at compile

time.

This category encounters the rapid prototyping systems, the non-

frequently reconfigurable systems as well as some frequently

reconfigurable systems.

    • Dynamic or run-time reconfigurable systems.�The computation and reconfiguration sequences are not known at compile-time. The system reacts dynamically at run-time to computation and therefore, to reconfiguration requests. Some non-frequently reconfigurable systems as well as most frequently reconfigurable systems belong to this category.

35 of 56

Intel FPGAs

36 of 56

Xilinx FPGAs

37 of 56

Design Flow

38 of 56

Hardware/software partitioning

  • The implementation of a reconfigurable system is a Hardware/software co- design process which determines:

    • The software part, that is the code-segment to be executed on the processor. The development is done in a software language with common tools.
      • We will not pay much attention to this part.
    • The hardware part, that is the part to be executed on the RD.
      • This is the target of this section.
    • The interface between software and hardware. This part is not in the scope of this course.

Software

C, C++, Java

etc ...

Hardware

VHDL, Verilog

HandelC, etc..

Interface

39 of 56

Coarse-grained RC

  • The implementation of a coarse-grained RD is done with vendor specific language and tools.
    • Usually a C-like language with the corresponding behavioral or structural compilers.

  • For the coarse-grained architectures presented in the previous chapter, the languages and tools are summarised in the table below.

40 of 56

FPGA Design Flow

  • The implementation flow of an FPGA designs is shown on the figure aside. It is a modifiedASIC design implementation divided in 5 steps.

  • The steps (design entry, functional simulation, place and route) are the same for almost all digital circuits.
    • Therefore, they will be presented only briefly.

  • FPGA-synthesis differs from other synthesis process in the technology mapping step
    • We will therefore consider some details of FPGA-synthesis, in particular the LUT-technology mapping which is proper to the FPGAs.

41 of 56

FPGA Design Flow - Design entry

  • The design entry can be done with
    • A schematic editor: �Selection components from a (target device) and graphically connecting them together to build complex modules.
      • Finite State machine (FSM) can also be entered by drawing the states and transitions either as graph or as table.

    • A Hardware Description Language (HDL)
      • structural as well as behavioral description of complex circuits.
      • Behavioral description: useful for designs containing loops, Bit-vectors, ADT, FSMs.
      • Structural description: emphasizes the hierarchy in a given design.

42 of 56

FPGA Design Flow – Functional Simulation

  • After the design entry, the functional simulation is
  • used to logically test the functionality of the design.
    • A testbench provides the design under test with inputs for which the reaction of the design is known.

    • The outputs of the circuit are observed on a waveform and compared to the expected values.

    • For simulation purpose, many operations can be used (mod, div, etc...) in the design description.

    • However only part of the code which is used for simulation can be synthesized later.

    • The most used HDLs are:
      • VHDL (behavioral, structural)
      • Verilog (behavioral, structural)
      • Some C/C++-like languages (SystemC, HandelC, etc...)

43 of 56

FPGA Design Flow – Synthesis

  • The design is compiled and optimized. All non-synthesizable data types and operations must be replace by equivalent synthesizable code.
    • The design is first translate into a set of Boolean equations which are then minimized.
    • Technology mapping is used to assigned the functional modules to library elements. The technology mapping on FPGAs is called LUT-technology mapping.
    • The result of the technology mapping is a netlist which provides a list of components used in the circuit as well as their interconnections.
    • There exist many formats to describe a netlist. The most popular is the EDIF (Electronic Design Interchange Format).
    • Vendor specific netlist also exists. Example: XNF (Xilinx Netlist Format)

44 of 56

FPGA Design Flow – Place and route

  • The Netlist provides only informations about the components and their interconnections in a given design. The place and route must be used to:

    • Assign locations to the components.
    • Provide communication paths to the interconnections.

  • The place and route steps are optimization problems for which some cost must be minimized.
  • The most important factors are:
    • The clock frequency.
    • The signal latency.
    • The routing congestion.
    • Etc...

45 of 56

FPGA Design Flow – Configuration bitstream

  • The Last step in the design process is the generation of the configuration stream also known as bitstream. A Bitstream describes:

    • The value of each LUT, that is the set of bits used to configure the function of a LUT.

    • The interconnections configuration describes:
      • The inputs and outputs of the LUTs
      • The value of the multiplexers
      • how the switches should be set in the interconnection matrix

  • All informations regarding the functionality of LUTs, multiplexers and switches are available after the place and route step

46 of 56

FPGA Design Flow – Example

  • Implements a Modulo 10-counter on a symetrical array FPGA with a 2x2 Logic Block (LB) .

  • The structure of the LBs is given in the picture aside. It consists of:
    • 2 2-inputs LUT.
    • 2 edge triggered T-Flipflop.

  • Your result should minimize
    • The area
    • The latency

47 of 56

FPGA Design Flow – Example

  • Truth table of the modulo 10 counter The z describe the states while the T describe the inputs of the T-FFs

Karnaugh-minimization of the

functions T1, T2, T3, and T4

48 of 56

FPGA Design Flow – Example

49 of 56

FPGA Design Flow – Example

50 of 56

Exemplo de produtos com

hardware reconfigurável

*

50

51 of 56

Microsoft Research: Project Catapult

  • Project Catapult is a Microsoft venture that investigates the use of field-programmable gate arrays (FPGAs) to improve performance, reduce power consumption, and provide new capabilities in the datacenter (large-scale datacenters);

  • Video

52 of 56

Microsoft Research: Project Catapult

  • Paper
    • A Reconfigurable Fabric for Accelerating Large-Scale Datacenter Services (ISCA2014)
      • Under high load, the large- scale reconfigurable fabric improves the ranking throughput of each server by a factor of 95% for a fixed latency distribution

    • Accelerating Deep Convolutional Neural Networks Using Specialized Hardware (Microsoft Research)
      • We show that the throughput/watt is significantly higher than for a GPU, and project the performance when ported to an Arria 10 FPGA.

53 of 56

Amazon EC2 F1 Instances

  • Amazon Web Services (AWS)
  • Amazon EC2 F1 is a compute instance with field programmable gate arrays (FPGAs) that you can program to create custom hardware accelerations for your application
  • Amazon EC2 F1 instances offered in two different instance sizes that include up to eight FPGAs per instance.
  • F1 instances include 16 nm Xilinx UltraScale Plus FPGA.

54 of 56

Maxeler Technologies

  • High-performance dataflow platforms for a wide range of application domains”
  • MaxCompiler allows an application to be split into three parts:
    • Kernel(s), which implement the computational components of the application in hardware.
    • Manager configuration, which connects Kernels to the CPU, engine RAM, other Kernels and other dataflow engines via MaxRing.
    • CPU application, which interacts with the dataflow engines to read and write data to the Kernels and engine RAM.

55 of 56

Other examples

    • Stretch Technology - Stretch Inc
      • Stretch is a fabless semiconductor company providing software configurable processors for compute-intensive applications.
    • Flex Logix
      • utilizes a new breakthrough interconnect architecture: less than half the silicon area of traditional mesh interconnect, fewer metal layers, higher utilization and higher performance.
    • Algo-Logic Company
      • designs, verifies, and deploys the lowest latency algorithms for processing network data using FPGA logic.
    • Celoxica
      • Provides accelerated Market Data Feed Handlers for the main Equity, Options, Futures, Fixed Income and FX Markets in both the US and Europe.

56 of 56

References