Evolvable Hardware Questions What is it? Why do we want it? Who is it for? How do we get it?
Evolution Responding to changes in environment Changes through generations The hardware's environment and changes
Hardware that changes Hardware is readjustable/reconfigurable in some way Enabling/disabling parts, reconfiguring logic Hardware is in an environment Uses idea of adaptation to change
Hardware examples Configurability necessary for adaptation Honeywell ASIC component used for evolution ”Evolvatron MK 1”
Honeywell ASIC (NASA)
Evolvatron MK1
The Environment Hardware - Typically in electronic device with physical constraints and factors Software - program(s) or algorithm(s) to be executed
Adaptability Dangerous places Adapt to different problems leading to simpler hardware Cost to change
Why do we want it? Research - why not? Solve new problems/solve old problems better New uses for hardware? Some uses
Evolvable vs. Not Suiting hardware to environment before or after being brought into environment Wider scope More commoditization
New Solutions Might come up with new hardware solutions Might find that one hardware solution works for many problems New hardware that does not evolve and doesn't need to incur cost of adapting
Self-Reconfigurability Less supervision Less maintainance Less tweaking
Examples Autonomous FPGA fault handling through competitive runtime reconfiguration Cell Matrix MOD 88 - self configuring platform [...]for On-chip Real-time Optimisation of Word Length and Power Consumption in a Pipelined FFT Processor targeting a MC- CDMA Receiver.
Who wants it? Extreme environments I.T./consumer Researchers
Extreme Environments Space Military Industrial Exploration
IT/consumer Servers - throughput, different problems different time of day Desktops - games, encoding Handheld - communication modes, power/heat/perormance
Research Hardware/Software designers and researchers Artificial intelligence
How do we get it? Real-time or not Software Hardware General algorithm
Real-time Circuit changes right away/on the fly Usually less supervision Difficult to control Difficult to create
Not Real-Time Circuit must break to take changes Usually more control User-defined parameter adjusting easier Easier to create
Software Genetic algorithms Genetic programming Other Metaheuristics
Hardware Anything that can be configured Dynamically configured FPGAs preferrable for many cases Sensors (heat, power, etc...) Redundant parts
General Algorithm
Genetic Algorithm
Sources An Evolvable Hardware Tutorial - Jim Torresen 2005 NASA / DoD Conference on Evolvable Hardware (EH 2005)