600 likes | 679 Views
Presentation Outline. Background Self-Replication Genome memory Self-Repair Conclusion. Introduction. Background Self-Replication Genome memory Self-Repair Conclusion. Embryonics: biological inspiration Bio-inspired hardware Field-Programmable Gate Arrays BioWall. The BioWall.
E N D
Presentation Outline • Background • Self-Replication • Genome memory • Self-Repair • Conclusion Cours Systèmes et Programmation Génétiques
Introduction • Background • Self-Replication • Genome memory • Self-Repair • Conclusion • Embryonics: biological inspiration • Bio-inspired hardware • Field-Programmable Gate Arrays • BioWall Cours Systèmes et Programmation Génétiques
The BioWall • How does it work? Cours Systèmes et Programmation Génétiques
Von Neumann’s Constructor Von Neumann’s Universal Constructor (Uconst) can build a copy of itself (Uconst’) and of any finite machine (Ucomp’), given the description of both D(Uconst+Ucomp). DAUGHTER CELL MOTHER CELL GENOME Cours Systèmes et Programmation Génétiques
Von Neumann to Embryonics UComp UConst Universal Computation Universal Construction UTM on MicTree MicTree on MuxTree Cours Systèmes et Programmation Génétiques
Universal 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 Cours Systèmes et Programmation Génétiques
The Artificial Organism What is an artificial organism? An application-specific computing system. Cours Systèmes et Programmation Génétiques
The 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. Cours Systèmes et Programmation Génétiques
The 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. Cours Systèmes et Programmation Génétiques
Bio-Inspired Hardware What is the size of a cell? It depends on the application!! Solution: A novel FPGA architecture! Cours Systèmes et Programmation Génétiques
The Artificial Cell What is an artificial cell? A small (but universal) configurable processor , made up of a two-dimensional array of artificial molecules. Cours Systèmes et Programmation Génétiques
The Artificial Molecule What is an artificial molecule? An FPGA element of the MuxTree family containing: • a programmable function; • a set of fixed and programmableconnections; • a configuration register. Cours Systèmes et Programmation Génétiques
The 4 Levels of Embryonics Population level (∑ organisms) Organism level (∑ cells) Cell level (∑ molecules) Molecule level (∑ transistors = FPGA) Cours Systèmes et Programmation Génétiques
Defining 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. Cours Systèmes et Programmation Génétiques
Self-Replication • Background • Self-Replication • Genome memory • Self-Repair • Conclusion • Langton’s loop • Our novel self-replicating loop • The membrane builder Cours Systèmes et Programmation Génétiques
Langton’s Loop Cours Systèmes et Programmation Génétiques
Propagation of Langton’s Loop Cours Systèmes et Programmation Génétiques
Our Novel Loop Cours Systèmes et Programmation Génétiques
The Loop’s Propagation Cours Systèmes et Programmation Génétiques
The LSL Loop Cours Systèmes et Programmation Génétiques
The Membrane Builder Cours Systèmes et Programmation Génétiques
Cellular 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. Cours Systèmes et Programmation Génétiques
The Membrane in MuxTree Cours Systèmes et Programmation Génétiques
The Membrane in MuxTree CONFIGURATION BITSTREAM Cours Systèmes et Programmation Génétiques
The Membrane in MuxTree Cours Systèmes et Programmation Génétiques
The BioWall Cours Systèmes et Programmation Génétiques
Self-Replication • Background • Self-Replication • Genome memory • Self-Repair • Conclusion • Memory in MuxTree • Cyclic vs. addressable memories • Cyclic memory implementation Cours Systèmes et Programmation Génétiques
The 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. Cours Systèmes et Programmation Génétiques
The 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. Cours Systèmes et Programmation Génétiques
FF CREG[19:0] A: X 0 INPUT SELECT[7:0] SWITCH BLOCK[7:0] FU[2:0] 0 1 DATA[7:0] SWITCH BLOCK[7:0] MEM[2:0] B: 1 1 DATA[15:0] MEM[2:0] C: Genome 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. Cours Systèmes et Programmation Génétiques
Self-Repair • Background • Self-Replication • Genome memory • Self-Repair • Conclusion • MuxTree • Self-test • Self-repair • MuxTree and MicTree Cours Systèmes et Programmation Génétiques
Cellular 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 Cours Systèmes et Programmation Génétiques
MuxTree Cours Systèmes et Programmation Génétiques
MuxTree: Function Cours Systèmes et Programmation Génétiques
MuxTree: Connections Cours Systèmes et Programmation Génétiques
MuxTree: Register Cours Systèmes et Programmation Génétiques
Why 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 Cours Systèmes et Programmation Génétiques
Fault Modeling • Actual faults: • Shorts • Opens • Bridging • Memory flips • Fault models: • Stuck-at-1 • Stuck-at-0 Cours Systèmes et Programmation Génétiques
INPUT PATTERNS INPUT PATTERNS Test hardware Test logic PROBES Fault OUTPUTS KNOWN VALUES KNOWN OUTPUTS Fault Detection • Test at fabrication • Test patterns • Built-In Self-Test Cours Systèmes et Programmation Génétiques
ACTIVE ACTIVE SPARE SPARE RESET RECONFIGURE RECONFIGURE MAJORITY FUNCTION FAULT FAULT ACTIVE OUTPUT ACTIVE Fault Tolerance • Triplication • Reconfiguration • Online self-repair Cours Systèmes et Programmation Génétiques
Function Self-Test Cours Systèmes et Programmation Génétiques
Connections Self-Test Cours Systèmes et Programmation Génétiques
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Register Self-Test Cours Systèmes et Programmation Génétiques
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 Register Faults: Stuck-at-0 Cours Systèmes et Programmation Génétiques
1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 Register Faults: Stuck-at-1 Cours Systèmes et Programmation Génétiques
X X SPARE 0 1 0 1 1 0 0 1 0 0 1 1 0 0 1 0 0 1 CFG 7 CFG 4 CFG 5 CFG 1 CFG 3 CFG 6 CFG 8 CFG 0 CFG 2 0 1 X X CFG 4 SPARE X X SPARE Self-Repair Cours Systèmes et Programmation Génétiques
0 0 0 0 1 1 1 1 0 0 0 0 X X X X CFG 2 CFG 2 CFG 5 CFG 5 CFG 8 CFG 8 SPARE SPARE 1 1 1 1 X 0 X 1 1 0 0 1 X 1 1 X CFG 1 CFG 1 DEAD CFG 4 CFG 4 CFG 7 SPARE CFG 7 0 0 0 0 1 1 1 1 0 0 0 0 X X X X CFG 0 CFG 0 CFG 3 CFG 3 CFG 6 CFG 6 SPARE SPARE 1 0 0 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 0 1 0 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 0 1 0 1 0 1001001000 0110110110 1011001001 0100100000 0110110010 1001000000 1101100100 1101101100 1011011001 0100000000 0010000000 0010010000 1101101101 1000000000 0000000000 0010010010 1001001001 1100100100 0110010010 0100100100 1011011011 0110110110 1001001001 0000000000 0000000000 0000001101 0000110110 0001101101 0000000001 0000011011 0110110110 0000000000 0000000110 0000000011 0000000000 0011011011 Reconfiguration Cours Systèmes et Programmation Génétiques
X X X X SPARE SPARE 0 0 1 1 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 1 0 1 1 0 CFG 1 CFG 5 CFG 6 CFG 0 CFG 6 CFG 1 CFG 0 CFG 8 CFG 8 CFG 3 CFG 3 CFG 4 CFG 2 CFG 5 CFG 4 CFG 2 X X X X 1 1 1 1 DEAD DEAD CFG 7 CFG 7 X X X X SPARE SPARE Rerouting Cours Systèmes et Programmation Génétiques
The Spare Columns Cours Systèmes et Programmation Génétiques
The New Membrane Builder The spare columns should be contained within a block (cell). Cours Systèmes et Programmation Génétiques