next up previous
Next: Why Evolve in Hardware? Up: Evolving Electronic Robot Controllers Previous: Evolving Electronic Robot Controllers

Introduction - What is Evolvable Hardware?

 

Evolvable hardware [4, 10, 8, 9, 20, 24] is a reconfigurable electronic circuit, which can be changed by an adaptive process such as a genetic algorithm. This paper considers the evolution of hardware to control an autonomous mobile robot; initially by examining exactly what evolvable hardware is, and what its advantages over software systems are, and then by concentrating on one of these benefits: the exploitation of the physics of the implementation, and how this may be maximised. Finally, early results are presented for the first ever evolution of real hardware to control a real robot, which benefits from the change of perspective that I claim evolvable hardware justifies.

A type of commercially available VLSI chip called a Field Programmable Gate Array (FPGA) [25] will provide a good illustration of how hardware may be subject to adaptation, although many other evolvable hardware architectures (both analogue and digital) are possible. A typical FPGA consists of an array of hundreds of reconfigurable blocks that can perform a variety of digital logic functions, and a set of wires to which the inputs and outputs of the blocks can be connected (Figure 1). What logic functions are performed by the blocks, and how the wires are connected to the blocks and to each-other, can be thought of as being controlled by electronic switches (represented as dots in the diagram). The settings of these switches are determined by the contents of digital memory cells. For example, if a block could perform any one of the tex2html_wrap_inline414 boolean functions of two inputs, then four bits of this ``configuration memory'' would be needed to determine its behaviour. The blocks around the periphery of the array have special configuration switches to control how they are interfaced to the external connections of the chip (its pins).

   figure16
Figure 1: Part of a simplified typical FPGA architecture.

The configuration memory of an FPGA can be conceptualised as its genotype, which determines what the blocks do and how they are wired together. If an FPGA is the control system of a robot, then artificial evolution can manipulate an encoding of the configuration memory (genotype) according to the robot behaviour induced by the corresponding circuit implemented on the FPGA: the hardware is evolvable. Commercial FPGAs have more features than I have mentioned, but the principles are the same.

There is often no clear distinction between software and hardware, however. The contents of an FPGA's configuration memory can be thought of as causing it to instantiate a particular circuit by means of setting its configuration switches, but also the contents of the configuration memory might be viewed as the ``program'' of a parallel computer that happens to be called an FPGA. Which of these viewpoints is adopted is a matter of deciding on the most appropriate style of description for the particular system in question: a conventional personal computer could be envisaged as evolvable hardware, but it is usually more useful to think of it as a fixed piece of electronics that operates upon data and instructions held in a memory. An intimately linked consideration is whether the evolving system is viewed as a computational one (performing calculations or manipulating symbols), or whether it is seen from the much wider perspective of dynamical systems theory. Later, I shall advocate robot control systems that are appropriately described as non-computational dynamical systems evolving in hardware.

There are two ways in which artificial evolution may be applied to a reconfigurable hardware system. In the first (sometimes known as `` extrinsic evolvable hardware''), an evolutionary algorithm produces a configuration based on the performance of a software simulation of the reconfigurable hardware. The final configuration is then downloaded onto the real hardware in a separate implementation step: a useful approach if the hardware is only capable of being reconfigured a small number of times. In the second (``intrinsic''gif) method, each time the evolutionary algorithm generates a new variant configuration, it is used to configure the real hardware, which is then evaluated at its task. Consequently, an implemented system is evolved directly; the constraints imposed by the hardware are satisfied automatically, and all of its detailed (difficult to simulate) characteristics can be brought to bear on the control problem. This second method is much more powerful than the first and is what I mean by ``evolvable hardware'' in this paper.

I shall use the term ``evolution'' to mean any artificial evolution-like process, and the genetic algorithm in particular [11]. Much of the discussion also applies to a broader class of adaptive processes, including learning techniques, which may usefully be used in conjunction with artificial evolution, or even instead of it.

Next, Section 2 examines the motivations behind the evolution of hardware systems. One of the possible objectives -- the maximal exploitation of hardware resources -- is singled out as being particularly interesting; to facilitate this, a new approach is proposed. Section 3 consolidates some of the ideas put forward, by means of a simulation study using a highly abstract model of an FPGA. Finally, Section 4 describes a new evolvable hardware architecture, which is easy to build, but yet takes many of the important ideas on-board. The benefits of this architecture, and the underlying approach, are demonstrated by the real-world performance of this machine in controlling a robot.


next up previous
Next: Why Evolve in Hardware? Up: Evolving Electronic Robot Controllers Previous: Evolving Electronic Robot Controllers

Adrian Thompson
Tue Feb 25 13:21:33 GMT 1997