280 likes | 292 Views
Evolvable Hardware and the Embryonics Approach. Matthew Ziegler CS 851 – Bio-Inspired Computing. Overview. POE Model The three axes of evolvable hardware Embryonics Overview and hierarchy Implementation approaches Example applications Evaluation and Conclusion. POE Model.
E N D
Evolvable Hardware and the Embryonics Approach Matthew Ziegler CS 851 – Bio-Inspired Computing
Overview • POE Model • The three axes of evolvable hardware • Embryonics • Overview and hierarchy • Implementation approaches • Example applications • Evaluation and Conclusion
POE Model • Bio-inspired hardware can be partitioned along three axes • Phylogeny: temporal evolution (GAs) • Ontogeny: cellular division • Epigenesis: learning (ANNs)
Phylogenetic Axis (Evolving) Phylogeny • All genetic operations carried out in hardware • Open-ended evolution (survivability) • All genetic operations carried out in hardware • Not open-ended evolution • Real Circuit • Some operations carried out in software • Evolutionary circuit design • All operations carried out in software online offline
Ontogenetic Axis (Growing) • Ontogeny involves growth, replication, regeneration • Replication – exact duplicate, no genetic operators (ontogenetic) • Reproduction – genetic operators involved (phylogenetic)
Epigenetic Axis (Learning) • Rote learning vs. Intelligent learning • Intelligent learning involves generalization • Predesigned systems can be viewed as a leaned systems with instinct • Learned systems are faster and less resource demanding • Artificial Neural Networks are primary example Learning Systems • Human brain consists of both learned and learning systems
POE Space • PO plane – evolving hardware that exhibits replication characteristics • PE plane – evolving hardware that can learn • Instincts arise during the course of evolution (Baldwin effect) • Language – humans have innate ability to learn language, but do not know language at birth • OE plane – growing, learning hardware • Growing, adaptive neural networks based on information learned • POE space – ANN (E), implemented via self-replicating multicellular automaton (O), whose genome is subject to evolution (P)
Embryonics Project Goals Multicellular organisms share the following features: • Multicellular Organization • Organism divided into a finite number of cells • Different types of cells realize different functions • Cellular Division • Cells generate one or two daughter cells • Entire genome copied in each daughter cell • Cellular Differentiation • Each cell has a particular function, genome expression • Cell function is determine by physical position in organism
Embryonics Hierarchy • Population • group of organisms • Organism • group of cells • Cell • small processor and memory • Molecule • FPGA element
Artificial Genome • Operative Genome (OG) • program containing all genes, position in array determines which gene is expressed • each cell contains entire OG, i.e., instruction for all cells • Ribosome Genome (RG) • configuration string to assign logic functions to each molecule • Polymerase Genome (PG) • height and width of the cell (number of molecules), number of spare columns
Molecule • MUX based FPGA element • MOLCODE defines individual molecule configuration, portion of Ribosome Genome • Molecule-level redundancy and error detection • Only checks MUX failure, what about registers? • Could add third MUX and voter for triple-modular redundancy (TMR) MOLCODE + (stored in registers)
Cell • Cells composed of a group of molecules • Spare columns included to account for faulty molecules • Ribosome Genome • configuration string to assign logic functions to each molecule • Polymerase Genome • height and width of the cell (number of molecules), number of spare columns
Cellular Fault Tolerance • Faulty molecules replaced be spares • Polymerase Genome determines the number of spare columns • Example • Can tolerant one faulty molecule per column • Two faulty molecules results in a KILL No faults 1 fault / col 2 faults / column
Cellular Replication Cell contains entire Operative Genome, but only one gene is expressed X-Y coordinates determine gene expression
Organism • Group of cells forms an Organism X-Y coordinates determine gene expression
Organism Fault Tolerance • A Faulty cell causes all cells in the column to be marked with a KILL • Faulty column replaced by spare column
Population from Organism Replication • Organism replicates in X-Y directions • Organisms are required to be identical (apparently)
Implementation • “Eventual Implementation” • Want flexible architecture that will eventually be implemented in a “new kind of fine-grained FPGA” • Each element consists of a MUX and programmable connection network ~ molecule • First Demonstration system • essentially removes the concept of a molecule • Artificial cell implementation called MICTREE (microinstruction tree), based on a binary decision machine
MICTREE Implementation • MICTREE cell sequentially executes programs using the following instruction set: • Essentially a 4-bit wide processor • Limited to 16 x 16 array (256 cells, register sizes) • Microprogram limited to 1024 instructions (RAM size) • microprogram space for Operative Genome
Simple Example - StopWatch • Simple organism with 4 cells • Countmod10 – counts tens minutes or seconds • Countmod6 – counts 6 tens minutes or seconds
Other Simple Examples • Random number generator based of Wolfram’s CA • Specialized Turing machine for parenthesis checking
Second Generation: MUXTREE Molecule • MICTREE applications limited to 1024 instructions and 16 x16 arrays • New molecule called MUXTREE (multiplexer tree) • Based on order binary decision diagrams • 20-bit configuration string
Fault Tolerance in MUXTREE • Muxes and register duplicated, output compared for fault • Third copy of register is a present for self-repair (TMR) • Configuration register tested every time (shift register) • Faults in the switch block can be detected, but not repaired
MUXTREE Shift Binary Decision Machine • 30 x 30 array (900) MUXTREE molecules, 2 Cells • Program memory is a shift memory using the D-flip-flops in the MUXTREEs • Most of resources in MUXTREE wasted • Difficult to embed typical RAM in MUXTREE arrays • Example application modulo-60 counter • Operative Genome has 36 instructions Shift Memory
Mapping the MUXTREE to an FPGA • Storing the entire Operative Genome is in each cell is an inefficient use of hardware • Area for a living organism is less “expensive” than in hardware • 16 MUXTREEs could be mapped to FPGA is OP is fully specified for each cell • New version of MUXTREE, each cell stores only its own portion of the OG as well as all cells in a neighboring column • reduces storage requirements from n2 + 1 to n + 1 • 25 MUXTREEs mapped to FPGA in more recent work • example application is a frequency divider on one FPGA • Is this reasonable?
Looking at the Numbers… • 900 MUXTREEs for a shift binary decision machine • programmed to act as a modulo 60 counter • 25 MUXTREE per FPGA • 900 / 25 = 36 FPGAs?! - way too big! • Optimal implementation of modulo 60 counter has • 6 Registers, 6 muxes, 6 nand gates • should only occupy a small portion of one FPGA • Frequency divider example • essentially a counter as well • Optimal implementation would occupy small percentage of FPGA
Neat Idea, but Too Expensive • Embryonics approach looks to have around 10-100x area overhead • too costly for current technologies • living organisms grow/evolve into “free” area, where as all hardware area must be allocated initially • Speed and Power Consumption should lag behind conventional approaches as well • + Plus Side • evolvable, reconfigurable design paradigm • multiple levels of fault-tolerance (important for future technologies) • may be more appealing for future technologies, if “area grows on trees”
Summary • POE model is a reference for many evolvable hardware researchers • Phylogeny axis: evolving • Ontogeny axis: growing • Epigenesis axis: learning • The Embryonics Approach is inspired by nature’s architecture • molecule, cell, organism, population • Functioning prototype systems based on Embryonics have been demonstrated • However, the hardware overhead is quite expensive for today’s technologies