A power-efficient, distributed reconfigurable computing system and method
are provided. A reconfigurable computing system may include an embedded
controller for performing real-time control and initialization and
circuitry that supports data-flow driven execution of processing phases.
The circuitry may include processing elements such as RAM-based field
programmable gate array devices and direct memory access engines. The
processing elements can be configured for one or more functions or
operations of a program and then reconfigured for other functions or
operations of the program. The processing elements can be configured or
reconfigured to construct a desired sequence of operations in real-time.
A processing element may be divided into slots, each of which includes a
substantially similar amount of resources. A processing element includes
one or more wrappers, and a wrapper may occupy a slot or a group of
slots. Layered software architecture separates control software from
implementation software. The control software that contains the knowledge
of the overall algorithm is implemented in higher-order language such as
C++. This software typically runs on a general-purpose computer. The
implementation software that has knowledge of individual processing
operations is executed on processing element controllers and performs
parameter conversion and setup of processing operations in specifically
configured processing elements.