Introduction
Reconfigurable computing, also known as configurable computing,
adaptive computing, and FPGA-based computing, is an emerging technology
capable of providing high computational performance on a diversity of applications.
The recent years have shown a continuous interest in using
reconfigurable computing platform for the design of application-specific
computer systems.
The significant advantage of reconfigurable computing has been achieved mainly because of two reasons.
1. Implementing algorithms directly in
hardware, on the level of circuits, significantly reduces
the control overhead.
2. Parallelism is the nature of hardware. Implementing
algorithms in hardware means the massive use of parallelism.
As a result, the high degree of parallelism is easily achievable and the computational density---the actual work completed per single clock cycle---is an order of magnitude higher than in conventional processors.
In the past decade, the evolution of reconfigurable computing systems has been mainly considered as a hardware-oriented design. The research has been focusing on the configuring of hardware to implement a particular algorithm and on the developing of hardware devices that can be efficiently reconfigured for particular applications. During the last years, more and more researchers have been involved into developing hardware-independent tools and methods to provide configurable design solutions capable for running on different reconfigurable hardware platforms.
In theory and practice, we can distinguish two main branches or paradigms in computing.
I General-purpose Computing.
The general-purpose computing aims at building a Universal
Machine---Von Neumann Computer, which forms an abstract environment capable
for simulating any algorithm, any Turing Machine. Simulating of algorithms
is inefficient in terms of utilizing resources as silicon area and power
dissipation.
II Application-specific Computing.
The application-specific computing aims at building for
each algorithm, each Turing Machine a specific hardware device---ASIC---capable
for implementing only this particular algorithm, but doing this very efficiently
in terms of resources.
While the general-purpose computing deals with sequential
algorithms, or with concurrent sequential processes, running in a virtual
space, the application-specific computing deals with parallel algorithms
running in a physical space-time. While the virtual abstract environment
slows down the performance, the direct hardware implementation provides
a static algorithm as a physical device. The future mobile and wireless
consumer appliances must be multifunctional devices with low cost,
low power consumption and high-performance. Neither general-purpose
nor application-specific devices can't meet these requirements. The challenge
is to build dynamic hardware that is capable to run dynamic algorithms.
This forms a third paradigm of computing.
III Adaptive Computing.
Advances in reconfigurable computing architecture, in
algorithm implementation methods, and in automatic mapping methods of algorithms
into hardware form together a new, third paradigm in
computing. This paradigm combines the general-purpose computing models
and methods with the hardware oriented dedicated processor design methods
into a new model of computing. It adds to the dedicated processor
designs the flexibility inherent to the programming of Von Neumann computers,
remaining, at the same time, the efficiency inherent to the dedicated hardware
designs. This new paradigm of computing and programming has often been
characterized by terms as `Computing in Space and Time' or
`Computing
without Computer' and has recently been named
`Adaptive Computing'.
Dealing with Adaptive Computing systems design issues,
the gap between hardware and software is rather small. Similar theoretical
models are used for describing software and hardware parts of the system.
Adaptive computing introduces traditional software related topics as
languages, compilers and operating systems, libraries, containing modules
capable for running in hardware and software etc., and integrates these
with hardware related topics of digital design. While in general, there
is a similarity in theoretical models and methods on the functional
level, the actual methods involved are rather different and need much specific
attention from
researchers.
The reconfigurable computing systems built
during the last years have often achieved the performance several orders
of magnitude higher than the traditional processor based solutions. Now
the time arises for the breakthrough of reconfigurable computing into mass
markets of application-specific systems and information appliances, which
include emerging areas like mobile communication, multimedia-based networks,
encryption, image processing etc.