Life After Silicon: An Oxymoron?

Download Report

Transcript Life After Silicon: An Oxymoron?

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
2
POE Model
• Bio-inspired hardware can be partitioned along three axes
– Phylogeny: temporal evolution (GAs)
– Ontogeny: cellular division
– Epigenesis: learning (ANNs)
3
Phylogenetic Axis (Evolving)
Phylogeny
• All genetic operations carried out in hardware
– Open-ended evolution (survivability)
online
• 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
offline
4
Ontogenetic Axis (Growing)
• Ontogeny involves growth, replication, regeneration
• Replication – exact duplicate, no genetic operators (ontogenetic)
• Reproduction – genetic operators involved (phylogenetic)
5
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
6
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)
7
Embryonics Project Goals
Multicellular organisms share the following features:
1. Multicellular Organization
•
•
Organism divided into a finite number of cells
Different types of cells realize different functions
2. Cellular Division
•
•
Cells generate one or two daughter cells
Entire genome copied in each daughter cell
3. Cellular Differentiation
•
•
Each cell has a particular function, genome expression
Cell function is determine by physical position in organism
8
Embryonics Hierarchy
• Population
– group of organisms
• Organism
– group of cells
• Cell
– small processor and memory
• Molecule
– FPGA element
9
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
10
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)
11
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
12
Cellular Fault Tolerance
• Faulty molecules replaced
be spares
• Polymerase Genome
determines the number of
spare columns
No faults
1 fault / col
• Example
– Can tolerant one faulty
molecule per column
– Two faulty molecules
results in a KILL
2 faults / column
13
Cellular Replication
Cell contains entire Operative Genome,
but only one gene is expressed
X-Y coordinates determine
gene expression
14
Organism
• Group of cells forms an Organism
X-Y coordinates determine
gene expression
15
Organism Fault Tolerance
• A Faulty cell causes all
cells in the column to be
marked with a KILL
• Faulty column replaced by
spare column
16
Population from Organism Replication
• Organism replicates in
X-Y directions
• Organisms are
required to be identical
(apparently)
17
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
18
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
19
Simple Example - StopWatch
• Simple organism with 4 cells
– Countmod10 – counts tens minutes or seconds
– Countmod6 – counts 6 tens minutes or seconds
20
Other Simple Examples
• Random number generator based of Wolfram’s CA
• Specialized Turing machine for parenthesis checking
21
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
22
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
23
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
24
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?
25
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
26
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”
27
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
28