Documente Academic
Documente Profesional
Documente Cultură
Mitch Sukalski and Craig Ulmer Dean R&D Seminar 11 December 2003
Reconfigurable Computing
is computation on a platform with reconfigurable (i.e., modifiable at run-time) hardware capable of implementing application-specific algorithms and functionality on demand.
Computing Spectrum
Software
Fetch Decode Registers Execute / + Memory Writeback + x xor z-1 x + x xor
Soft-Hardware
A
Hardware
B C D
result
Field Programmable Gate Arrays (FPGAs) Reconfigurable hardware Medium cost Speedup potential
Application-Specific Integrated Circuit (ASIC) Not modifiable High cost Extremely fast
History
1945: 1945: 1960: 1970s: 1985: 1990s: 1999: 2002:
ENIAC Fixed+Variable CPU: ConnectingVirtex CCM: The Teramac II new Users can attachPro Xilinx computational (image Xilinx Virtex FPGA Blocks for an rapidio.org) Multi-Chipcourtesy ofalgorithm Module of FPGAs computational circuits to a fixed ALU
Accelerator cards
Timelogics DeCypher Nallatechs BenNUEY Annapolis Micro Systems WILDSTAR II
From: Towards an RCC-based Accelerator for Computational Fluid Dynamics, ERSA 2003
Design approach:
User designs in hardware description language Synthesis tools translate to logic gates Mapping tools target specific FPGA
Register
1-bit registers
Hold data between cycles
LUT
A B C 0
LUT
Register
Cout
A B C 0
LUT
Sum
Reconfiguration
Modern FPGAs SRAM based
Can be loaded with new circuitry
Full Configuration Image
Full reconfiguration
Few megabytes of configuration Milliseconds
Partial reconfiguration
Reprogram only a portion of chip Reduces configuration time Non-trivial, poorly supported
FPGA
Design Techniques
Digital logic design techniques for exploiting FPGAs
Techniques
Concurrency, memory, partial evaluation
1. Concurrency
Load FPGA with multiple computational circuits
Hardware state machines are like threads, but.. All tasks are always running
Raw parallelism
Units run in parallel Example: Key breaking
Pipelining
Chain units together in series Example: Streaming computations, data-flow
X X X FPGA
SRAM Bank 4
3. Partial Evaluation
Know data constants at design time
Apply to circuits and reduce hardware Synthesis tools perform automatically
Example: 4-bit Ripple-Carry Adder
Note: FPGAs unique because we can easily generate new, optimized hardware configurations for each set of constants.
RC Performance Examples
CFD: 23 GFLOPS sustained
Towards an RCC-based Accelerator for Computational Fluid Dynamics, Smith & Schnore, 2003
In Summary
Reconfigurable computing uses FPGAs to emulate application-specific hardware
Achieve performance gains with dedicated hardware
It is possible to implement just about any kind of digital hardware in the FPGA.
Limited by capacity and effort Resurrect application-specific hardware architectures SIMD, MIMD, Systolic Processor Arrays, Data-Flow