Title: Presentation Outline
1Presentation Outline
- Background
- Self-Replication
- Genome memory
- Self-Repair
- Conclusion
2Introduction
- Embryonics biological inspiration
- Bio-inspired hardware
- Field-Programmable Gate Arrays
- BioWall
- Background
- Self-Replication
- Genome memory
- Self-Repair
- Conclusion
3The BioWall
How does it work?
4Von Neumanns Constructor
Von Neumanns Universal Constructor (Uconst) can
build a copy of itself (Uconst) and of any
finite machine (Ucomp), given the description of
both D(UconstUcomp).
DAUGHTER CELL
MOTHER CELL
GENOME
5Von Neumann to Embryonics
UComp
UConst
Universal Computation
Universal Construction
UTM on MicTree
MicTree on MuxTree
6Universal Construction
How do we go from an FPGA
to a cellular array?
Knowing that the structure of the cells varies
with each application!
CELLULAR SELF-REPLICATION
7The Artificial Organism
What is an artificial organism?
An application-specific computing system.
8The Artificial Organism
What is an artificial organism?
An application-specific parallel computing
system, made up of a two-dimensional array of
artificial cells.
Where each cell contains the entire genetic
material of the organism.
9The Artificial Cell
What is an artificial cell?
A small (but universal) processor
containing
a memory for the genome program
an interpreter and a coordinate system
a functional unit and a routing unit.
10Bio-Inspired Hardware
What is the size of a cell?
It depends on the application!!
Solution A novel FPGA architecture!
11The Artificial Cell
What is an artificial cell?
A small (but universal) configurable processor ,
made up of a two-dimensional array of artificial
molecules.
12The Artificial Molecule
What is an artificial molecule?
An FPGA element of the MuxTree family
containing
a programmable function
a set of fixed and programmable connections
a configuration register.
13The 4 Levels of Embryonics
Population level (? organisms) Organism level (?
cells) Cell level (? molecules) Molecule
level (? transistors FPGA)
14Defining the Needs
What do we need?
To develop a bio-inspired FPGA architecture
capable of
Supporting cellular-level self-replication.
Storing the (large) genome in each cell.
Supporting cellular-level self-repair while
tolerating minor faults at the molecular level.
15Self-Replication
- Background
- Self-Replication
- Genome memory
- Self-Repair
- Conclusion
- Langtons loop
- Our novel self-replicating loop
- The membrane builder
16Langtons Loop
17Propagation of Langtons Loop
18Our Novel Loop
19The Loops Propagation
20The LSL Loop
21The Membrane Builder
22Cellular Division
To implement cellular division, we need to split
up the FPGA into a two-dimensional grid of
identical sub-arrays of molecules, of variable
size depending on the application.
23The Membrane in MuxTree
24The Membrane in MuxTree
CONFIGURATION BITSTREAM
25The Membrane in MuxTree
26The BioWall
27Self-Replication
- Background
- Self-Replication
- Genome memory
- Self-Repair
- Conclusion
- Memory in MuxTree
- Cyclic vs. addressable memories
- Cyclic memory implementation
28The MUXTREE Molecule
Every cell must store the (large) genome program.
However, the only memory elements in the MUXTREE
molecule are a single D-type flip-flop and the
configuration register CREG.
29The Genome Memory
A "conventional" addressable memory is not suited
to our architecture (decoding logic too large,
incompatible storage).
However, the access pattern of the genome program
allows us to use a different kind of memory,
which we will call cyclic memory.
Performance-wise, it is not efficient (jumps) but
the storage structure is perfectly suited to a
shift-register implementation.
30Genome Memory Implementation
Our configuration register CREG is a shift
register.
And all the connections required for a cyclic
memory are already in place for configuration
and/or repair.
31Self-Repair
- Background
- Self-Replication
- Genome memory
- Self-Repair
- Conclusion
- MuxTree
- Self-test
- Self-repair
- MuxTree and MicTree
32Cellular Self-Repair
How do we implement cellular self-repair?
We need a hardware mechanism to detect the faults
and to generate a KILL signal.
HARDWARE MOLECULAR LAYER
33MuxTree
34MuxTree Function
35MuxTree Connections
36MuxTree Register
37Why does my system crash?
- Software bugs
- Programming errors, communication errors
- Design errors
- Bad design (e.g., Pentium bug), layout errors
- Fabrication defects
- Process deficiencies, mask defects
- Lifetime faults
- Radiation-induced faults, electron migration, age
38Fault Modeling
- Actual faults
- Shorts
- Opens
- Bridging
- Memory flips
- Fault models
- Stuck-at-1
- Stuck-at-0
39Fault Detection
- Test at fabrication
- Test patterns
- Built-In Self-Test
40Fault Tolerance
- Triplication
- Reconfiguration
- Online self-repair
41Function Self-Test
42Connections Self-Test
43Register Self-Test
44Register Faults Stuck-at-0
45Register Faults Stuck-at-1
46Self-Repair
47Reconfiguration
48Rerouting
49The Spare Columns
50The New Membrane Builder
The spare columns should be contained within a
block (cell).
51The Membrane in MuxTree
CONFIGURATION BITSTREAM
52The KILL Signal
53MuxTree and MicTree
54The BioWall
55Conclusion
- Background
- Self-Replication
- Genome memory
- Self-Repair
- Conclusion
- Hierarchical Structure
- The BioWall and Beyond
56The 3 Layers
57The BioWall
58The Future of Embryonics (1)
Self-directed replication
59The Future of Embryonics (2)
Convergence of the POE axes
60The End
- Background
- Self-Replication
- Self-Repair
- Conclusion
Time for some questions...