Introduction to Reconfigurable
Research in architecture of computer systems has always been a central
preoccupaTIon of the computer science and computer engineering communiTIes.
The invesTIgaTIon goals vary according to the target applications, the price
of the final equipment, the programmability of the system, the environment in
which processors will be deployed and many others.
For processors to be used in parallel machines for high-performance computing
as it is the case in weather simulation, the focus is placed on high clock
rates, parallelism and high communication bandwidth at the expense of power.
In many embedded systems, the price of the final equipment is the governing
factor during the development. A small microcontroller is usually used to control
data acquisition from sensors and provide data to actuators at a very low
frequency. In many other embedded systems, in particular in untethered systems,
power and cost optimization are the central goals. In those systems, the
growing need of more computation power that contradict with power and cost
optimization put a lot of pressure on engineers who must find a good balance
of all contradicting goals. For an autonomous cart used to explore a given environment,
the processing unit must be able to capture images, compress the
images and send the compressed images to a base station for control. Parallel
to this, the system must perform other actions such as obstacle detection and
avoidance. In such a system, power must be optimized to allow the system to
run as long as possible. On the other hand, the processor must process image
frames as fast as possible, to avoid important frames to be missed. Obstacle
detection and avoidance must also be done as faster as possible to avoid a possible
crash of the cart. The multiplicity of goals has led to the development
of several processing architectures, each optimized according to a given goal.
Those architectures can be categorized in three main groups according to their
degree of flexibility: the general purpose computing group that is based on the
Von Neumann (VN) computing paradigm; domain-specific processors, tailored
for a class of applications having in common a great range of characteristics;
application-specific processors tailored for only one application.