200 likes | 318 Views
The 4 levels of Embryonics. Population level (∑ organisms) Organism level (∑ cells) Cell level (∑ molecules) Molecule level (∑ transistors = FPGA). Multi-Cellular Organization.
E N D
The 4 levels of Embryonics Population level (∑ organisms) Organism level (∑ cells) Cell level (∑ molecules) Molecule level (∑ transistors = FPGA)
Multi-Cellular Organization An organism is an application-specific computing system, implemented as a two-dimensional array of simple processors (the cells). Each cell executes a program, the gene. All the cells operate in parallel. Together, the cells realize the desired application.
Cellular Differentiation Each cell contains all the programs of all the cells in the organism: the genome. Each cell executes one of the genes in the genome, depending on its spatial position in the array, identified by a set of [X,Y] coordinates.
Cellular Self-Repair The capability for self-repair at the cellular level is a direct consequence of the coordinate system. Since each cell contains the entire genome, the re-computation of the coordinates automatically reassigns the tasks in the array. No transfer of programs is necessary.
Multi-Molecular Organization A cell, to be truly universal, must be adapted to the application. This versatility can be obtained by breaking it down into simpler components: themolecules. Each moleculeis the element of a field-programmable gate array (FPGA). The function and the connections of the molecule are defined by its molcode.
The MUXTREE Molecule Our molecule (MUXTREE) is a very fine-grained FPGA element, including all the "standard" components. The molcode is stored in a single 20-bit long shift register (the configuration register CREG).
Molecular Configuration During configuration, all the configuration registers within a cell are chained together to form a single long shift register. The borders of the cells, required for self-replication are defined by the space divider, which also defines the spare columns required for self-repair.
The MUXTREE Molecule Every cell must store the (large) genome program. Unfortunately, the only memory elements in the MUXTREE molecule are a single D-type flip-flop and the configuration register CREG.
The Genome Memory A "conventional" addressable memory (ROM) 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.
Genome Memory: Implementation 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: 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.
MUXTREE: Test & Repair Every component of a molecule should be tested online. Unfortunately, this implies a staggering overhead. Possible solution: test online the most active parts (FU), offline the static parts (CREG). Connections are a major problem (testing a wire).
Testing at Configuration Time During configuration, the registers CREG can be fully tested with a minimal amount of overhead. The connections can be re-routed on the fly, re-distributing the functionality of the array.
Genome Memory: Test FF CREG[19:0] 0 1 DATA[7:0] ~DATA[7:0] MEM[2:0] D: COMP ERR When used as memory, the registers CREG become active parts of the circuit. They should be tested online. Duplication is a feasible, high-overhead (redundancy) solution, inspired by the DNA’s double helix.
Genome Memory: Repair FF CREG[19:0] 0 DATA[4:0] DATA[4:0] 0 1 DATA[4:0] MEM[2:0] E: COMP MAJ ERR RECOVER To repair a memory element, duplication is not sufficient. Triplication becomes necessary, associated with a majority function. The overhead rapidly increases. Another option is to consider the fault non-repairable, and seek a different (software) repair strategy.
Self-Repair: the KILL Signal For practical reasons, the self-repair mechanism at the molecular level is limited. Too many faults too close together (or a non-repairable fault) can overwhelm it. When such a failure occurs, the dying molecule sends a KILL signal that causes all the molecules in a column of cells (defined by the space divider) to die.
Hierarchical Self-Repair The KILL signal at the molecular level is the mechanism that allows the self-repair at the cellular level to work. ∫
Self-Repair: the UNKILL process The majority of hardware faults in a digital circuit are transient, that is, disappear after a while. As soon as cellular self-repair is over, the dead molecular tissue attempts to re-configure itself. This process is completely invisible to the upper layers of the system, i.e. the organism keeps working.
Hierarchical UNKILL If a sufficient number of faults has disappeared, the column of cells "comes back to life" via an UNKILL process (very similar to the KILL process). ∫
Conclusions • Ontogenetic systems are necessarily large and operate over long periods. Fault tolerance is a must both for the logic and for the memories, independently of their implementation , and transient faults cannot be ignored. • Fault tolerance implies overhead (hardware or software). How much overhead is acceptable? What is the overhead in nature? • Hardware testing (proteins within a cell) is not sufficient: higher-level software testing (immune system?) must aid the hardware.