An FPGA (Field Programmable Gate Array) is an array of logic gates that can be
hardware-programmed to fulfill user-specified tasks. In this way one can devise
special purpose functional units that may be very efficient for this limited
task. Moreover, it is possible to configure a multiple of these units on an FPGA
that work in parallel. So, potentially, FPGAs may be good candidates for the
acceleration of certain applications. Because of their versatility it is
difficult to specify where they will be most useful. In general, though, they
are not used for heavy 64-bit precision floating-point arithmetic. Excellent
results have been reported in searching, pattern matching, signal- and
image-processing, encryption, etc. The clock cycle of FPGAs is low as compared
to that of present CPUs: 100--550 MHz which means that they are very power
effective. All vendors provide runtime environments and drivers that work with
Linux as well as Windows.
The two big players on the FPGA market are Altera and Xilinx. However, in the accelerator business one seldom will find these names mentioned, because the FPGAs they produce are packaged in a form that makes them usable for accelerator purposes.
It is not possible to fully discuss all vendors that offer FPGA-based products. One reason is that there is a very large variety of products ranging form complete systems to small appliances housing one FPGA and the appropriate I/O logic to communicate with the outside world. To complicate matters further, the FPGAs themselves come in many variants, e.g., with I/O channels, memory blocks, multipliers, or DSPs already configured (or even fixed) and one can choose for FPGAs that have for instance a PowerPC405 embedded. Therefore we present the FPGA accelerators here only in the most global way and necessarily incomplete.
We discuss three example systems in the Convey-, Kuberre-, and SRC-systems, respectively. For these systems the vendors that have gone to great length not to expose their users to the use of HDLs, although for the highest benefits this not always can be avoided.Necessarily, we are here again somewhat arbitrary because this area is changing extremely rapidly.