Reconfigurable Computing
Reconfigurable Computing
Reconfigurable Computing
OUTLINE
INTRODUCTION RECONFIGURABLE COMPUTING ARCHITECTURES RECONFIGURATION MANAGEMENT PROGRAMMING RECONFIGURABLE SYSTEMS COMPILING C FOR SPATIAL COMPUTING HW/SW Partitioning BEE2:A High-End Reconfigurable Computing System REFERENCES
Reconfigurable Computing
Reconfigurable Computing
Reconfigurable Computing
Reconfigurable Computing
Reconfigurable Computing
Reconfigurable Computing
3-input LUT
Reconfigurable Computing
Reconfigurable Computing
10
Reconfigurable Computing
11
OUTLINE
INTRODUCTION RECONFIGURABLE COMPUTING ARCHITECTURES RECONFIGURATION MANAGEMENT PROGRAMMING RECONFIGURABLE SYSTEMS COMPILING C FOR SPATIAL COMPUTING HW/SW Partitioning BEE2:A High-End Reconfigurable Computing System REFERENCES
Reconfigurable Computing
12
S. Goldstein, H. Schmit, M. Moe, M. Budiu, S. Cadambi, R. R. Taylor, R. Laufer. PipeRench: A coprocessor for streaming multimedia acceleration.
Reconfigurable Computing
13
Reconfigurable Computing
14
Reconfigurable Computing
16
OUTLINE
INTRODUCTION RECONFIGURABLE COMPUTING ARCHITECTURES RECONFIGURATION MANAGEMENT PROGRAMMING RECONFIGURABLE SYSTEMS COMPILING C FOR SPATIAL COMPUTING HW/SW Partitioning BEE2:A High-End Reconfigurable Computing System REFERENCES
Reconfigurable Computing
18
RECONFIGURATION MANAGEMENT
Problem Definition
Reconfigurability allows hardware to perform different tasks at different times. Applications configurations can be swapped Reconfiguring the hardware at runtime is called Runtime Reconfiguration (RTR).
Reconfigurable Computing
19
RECONFIGURATION MANAGEMENT
Problem Definition
RTR
Run-time reconfiguration is based upon the concept of virtual hardware, which is similar to virtual memory.
physical hardware is much smaller than the sum of the resources required. swap configurations in and out of the actual hardware.
Reconfigurable Computing
20
RECONFIGURATION MANAGEMENT
Problem Definition
RTR
Increases hardware utilization Introduces significant reconfiguration overhead Time consuming
Can require of hundreds of milliseconds
Reconfigurable Computing
21
RECONFIGURATION MANAGEMENT
Problem Definition
Computation and reconfiguration are mutually exclusive
time spent reconfiguring is time lost in terms of application acceleration.
Reconfigurable Computing
22
RECONFIGURATION MANAGEMENT
Configuration Architectures
What is Configuration architectures? Architectures
Single-context Multi-context Partially Reconfigurable Others
Reconfigurable Computing
23
RECONFIGURATION MANAGEMENT
Configuration Architectures
Single-context configurations are grouped into contexts, and each full context is swapped in and out of the FPGA as needed.
Reconfigurable Computing
24
RECONFIGURATION MANAGEMENT
Configuration Architectures
Single-context
Configuration information is loaded into the programmable array through a serial shift chain
Reconfigurable Computing
25
RECONFIGURATION MANAGEMENT
Configuration Architectures
Single-context
require few pins for configuration, potentially simplifying board-level design Entire chip must be reprogrammed for any change to the configuration data because the data cannot be selectively reused on the chip.
Reconfigurable Computing
26
RECONFIGURATION MANAGEMENT
Configuration Architectures
Single-context Configuration cycles can be reduced by widening the configuration path
Virtex-5 allow a configuration data bus up to 32 bits wide
Reconfigurable Computing
27
RECONFIGURATION MANAGEMENT
Configuration Architectures
Multi-context Providing storage for multiple configurations
facilitating configuration prefetching and fast reconfiguration Contains multiple planes (contexts) of configuration data
Reconfigurable Computing
28
RECONFIGURATION MANAGEMENT
Configuration Architectures
Multi-context Multiplexer chooses between the context planes
Reconfigurable Computing
29
RECONFIGURATION MANAGEMENT
Configuration Architectures
Multi-context advantage Background loading of configuration data Fast switching between stored configurations
some in a single clock cycle
Reconfigurable Computing
30
RECONFIGURATION MANAGEMENT
Configuration Architectures
Multi-context drawbacks Area overhead
Additional configuration data Multiplexing
Reconfigurable Computing
31
RECONFIGURATION MANAGEMENT
Configuration Architectures
Partially Reconfigurable Not all configurations require the entire chip area Reconfigure utilized resources only Use addressable configuration memory
Reconfigurable Computing
32
RECONFIGURATION MANAGEMENT
Configuration Architectures
Partially Reconfigurable
Decrease reconfiguration time Decrease configuration data Configuration occupying large area (time issue) Independent configurations with overlapping hardware?
Reconfigurable Computing
33
OUTLINE
INTRODUCTION RECONFIGURABLE COMPUTING ARCHITECTURES RECONFIGURATION MANAGEMENT PROGRAMMING RECONFIGURABLE SYSTEMS COMPILING C FOR SPATIAL COMPUTING HW/SW Partitioning BEE2:A High-End Reconfigurable Computing System REFERENCES
Reconfigurable Computing
34
Reconfigurable Computing
35
Reconfigurable Computing
36
Reconfigurable Computing
37
Reconfigurable Computing
38
OUTLINE
INTRODUCTION RECONFIGURABLE COMPUTING ARCHITECTURES RECONFIGURATION MANAGEMENT PROGRAMMING RECONFIGURABLE SYSTEMS COMPILING C FOR SPATIAL COMPUTING HW/SW Partitioning BEE2:A High-End Reconfigurable Computing System REFERENCES
Reconfigurable Computing
39
Reconfigurable Computing
40
Reconfigurable Computing
41
Reconfigurable Computing
42
Reconfigurable Computing
43
Reconfigurable Computing
44
Reconfigurable Computing
45
Reconfigurable Computing
46
Reconfigurable Computing
47
Reconfigurable Computing
48
Edges
Data transfer edges, ordering edge, exit edge
Reconfigurable Computing 51
Reconfigurable Computing
52
Reconfigurable Computing
53
Reconfigurable Computing
54
DFG optimizations
Type-based operator size reduction
ISO C semantics dictate that arithmetic and logical operations involving type char and/or short operands must be performed at the precision of type int. Thus, a 16-bit adder will give the same result as a 32-bit adder
Reconfigurable Computing
55
DFG optimizations
Type-based operator size reduction
Analyze number of bits actually required by variables and operators.
Example
Integer i within the loop for (i = 0; i < 100; i++)
Reconfigurable Computing
56
Reconfigurable Computing
57
OUTLINE
INTRODUCTION RECONFIGURABLE COMPUTING ARCHITECTURES RECONFIGURATION MANAGEMENT PROGRAMMING RECONFIGURABLE SYSTEMS COMPILING C FOR SPATIAL COMPUTING HW/SW Partitioning BEE2:A High-End Reconfigurable Computing System REFERENCES
Reconfigurable Computing
58
HW/SW Partitioning
For systems that include both reconfigurable hardware and a traditional microprocessor. program must first be partitioned into
Sections to be executed on the reconfigurable hardware
ex. fixed datapath operations
HW/SW Partitioning
Partitioning
Manually
Program developed ends up tuned to a specific machine Alternative solution is to use compiler directives
The NAPA C language [Gokhale and Stone 1998] provides pragma statements to allow a programmer to specify whether a section of code is to be executed in software on the Fixed Instruction Processor (FIP), or in hardware on the Adaptive Logic Processor (ALP).
Reconfigurable Computing
60
HW/SW Partitioning
Partitioning
Automatically
compiler and runtime system take full responsibility for determining the right code and granularity to move to the reconfigurable fabric. reconfigurable hardware transparent to the designer Cost functions based upon acceleration gained
to determine whether the cost of configuration is overcome by the benefits of hardware execution or not.
Reconfigurable Computing
61
OUTLINE
INTRODUCTION RECONFIGURABLE COMPUTING ARCHITECTURES RECONFIGURATION MANAGEMENT PROGRAMMING RECONFIGURABLE SYSTEMS COMPILING C FOR SPATIAL COMPUTING HW/SW Partitioning BEE2:A High-End Reconfigurable Computing System REFERENCES
Reconfigurable Computing
62
Reconfigurable Computing
63
Reconfigurable Computing
64
Reconfigurable Computing
65
Reconfigurable Computing
66
Reconfigurable Computing
67
REFERNCES
Scott Hauck and Andre Dehon, Reconfigurable Computing The Theory and Practice of FPGA Based Computing Katherine Compton, Reconfigurable Computing: A Survey of Systems and Software, Northwestern University. Chen Chang, John Wawrzynek, and Robert W. Brodersen, Berkeley BEE2: A High-End Reconfigurable Computing System, University of California.
Reconfigurable Computing
69
Thank You
Reconfigurable Computing
70