Hardware for HAL
HAL is not intended primarily as an academic exercise in Artificial Life,
it is primarily targetted as a design tool for generating computational
elements with an element of tolerance to asynchronous operation and point
failure.
During use designing software a particular type of hardware, HAL
requires very similar hardware to operate efficiently.
In acting as a design tool for fine-grained parallel hardware, HAL needs
to be run on a computer with such an architecture to operate efficiently.
Simulation of HAL on a computer which processes instructions largely in
serial is not a viable option - except for simulation of toy systems -
due to appalling performance of such systems when faced with massively
parallel systems.
Programmable logic
The current hardware which matches HAL's requirements most closely is
that used in 'programmable logic' work, in particular FPGAs
(Field Programmable Gate Arrays).
'Programmable logic' is hardware that can reasonably efficiently simulate
virtually any electronic circuit.
It is possible to simulate virtually electronic circuit in an ordinary
computer, it is true, but the difference is that in an FPGA many components
can be processed at once and that components which are next to one another
in the model may be placed next to one on the silicon. These differences
means that circuitry may be simulated reasonably efficiently.
The 'Gate' in 'Field Programmable Gate Array' is a reference to the fact
that the chips are essentially grids of Boolean logic gates, connected
together in a mesh. Some FPGAs are LUT-based, and allow complete
programmability of the logic gates.
While FPGA systems offer the option to connect to external memory devices,
each logic gate has a flip-flop or two which store the local state of
that gate. It is mainly this local, distributed memory which HAL employs,
as access to external memory is too slow.
FPGAs are commonly used in prototyping designs of mass-produced silicon
chips. In effect they allow you to design your own computer architecture
reasonably cheaply.
In the absencse of good, cheap specialised hardware devoted to accelerating
cellular automata hardware, FPGAs are the most appropriate target for
implementing cellular automata on.
FPGAs are not yet terribly cheap, but they have come down in price to the
level where they are affordable to most people who are interested in
designing their own silicon.
The market for FPGAs is in a state of explosive growth. Some observers
of the industry say that they should create a revolution in system design
by reducing development costs so that virtually anyone who wants to can
join in.
By allowing software designers much closer access to the underlying
hardware, programmers have a much better chance of developing an
architecture that matches their target problem, rather than having to
make do with a supposedly general-purpose serial computer, complete with
von-Neumann bottleneck.
Some people have suggested that programmable logic will succeed in finding
its way into the corners of mainstream CPUs, where it can be dedicated to
performing calculations where high speed is important and being able to
create a dedicated circuit to perform a task pays off. This might mean
that dedicated DSP-style units to perform decryption, dithering, video
decompression can be soft-loaded into silicon when needed, rather than
having to jostle one another for silicon space.
If, when and to what extent these dreams of programmable proponents are
expected to come to fruition is not yet clear, however.
Beyond electronics
It seems unlikly that electronic systems will remain mankind's computing
substrate of choice indefinitely. It appears that computation based on
electromagnetic radiation and a variety of mechanical possibilities will
offer potentially greater speed, faster propagation of information, and
greater minaturisation than will be possible by continuing to improve
electronic components.
As miniaturization increases, thermal noise will increasingly become a
problem. In order to minimise the difficulties this will cause it makes
sense to transfer to as near a reversible computing substrate as can be
found. In the context of calculation, revesibility means that computations
can performed without the need for a power supply, and without generating
any heat.
Nanotech enthusiasts have explored the computational possibilities offered
by molecular scale machines. One possibility that appeals to cellular
automata enthusiasts is that at some point a regular, three-dimensional
crystalline substance will be able to be synthesized which will be able to
directly support reversible computation on a molecular scale.
Because evolutionary processes are extremely computationally intensive
systems like HAL benefit immensely from improvements in speed, and a large
number of researchers are involved in investigating their use. Many
interesting phenomena will require more powerful hardware before it becomes
practical to demonstrate them in virtual environments.