Ontogenetic hardware Ok, so the Tom Thumb algorithm can self-replicate an arbitrary structure within an FPGA But what kind of structures is it interesting to self-replicate And why would you want to do it anyway?
Embryonics – Overview Brief outline: In this lecture, we will present an overview of the motivations behind the development of the Embryonics project. The overall structure of Embryonic systems will be analysed through a simple example.
Ontogenetic hardware Embryonics = embryonic electronics: Drawing inspiration from growth processes of living organisms to design complex computing systems Phylogeny (P) [Evolvability] PO hw PE hw POE hw Ontogeny (O) [Scalability] OE hw Epigenesis (E) [Adaptability]
Bio-Inspired Approaches Growth Self-organization Massive parallelism (multicellular systems) Issues that growth can potentially address: Complexity Scalability Fault tolerance
Caenorhabditis Elegans 11 December 1998
Caenorhabditis Elegans From S.F. Gilbert, Developmental Biology, Sinauer, 1991
Multicellular Organization 959 somatic cells
Cellular Differentiation Pharynx Intestine
Embryonics: How? Iterative electronic circuit based on 3 features: • multicellular organization • cellular division • cellular differentiation
Embryonics Landscape Population level (population = S organisms) Organismic level (organism = S cells) Cellular level (cell = S molecules) Molecular level (basic FPGA's element)
StopWatch
StopWatch
Multicellular Organization
StopWatch
StopWatch First step: design of a totipotent cell (stem cell) (of course, in practice it can be optimized)
StopWatch
Cellular Differentiation
Cloning
Cloning
Self-Repair
BioWatch The application can of course be anything… But then, the size and structure of the cell will vary from application to application: we need programmable logic!
MUXTREE Molecule The “molecular” layer of Embryonics is an FPGA
Cellular Self-Replication But if we use FPGAs, then we need to CREATE the array of cells in the first place, before differentiation can take place (self-replication)
Cellular Self-Replication But if we use FPGAs, then we need to CREATE the array of cells in the first place, before differentiation can take place (self-replication)
Cellular Self-Replication But if we use FPGAs, then we need to CREATE the array of cells in the first place, before differentiation can take place (self-replication)
Cellular Self-Replication Self-replication will allow the same FPGA partial configuration to be duplicated as many times as needed
Cellular Self-Repair But self-replication, and custom FPGAs, can ALSO be used to improve the reliability of the system
Cellular Self-Repair But self-replication, and custom FPGAs, can ALSO be used to improve the reliability of the system … within limits
Operation of the Cell
Kill a Molecule
Recovered Molecule
Kill Again (Kill a Cell)
Recovered Cell
Implementation - The BioWall
Summary We have seen a basic system implemented using the Embryonics approach. The system exploits self-replication and growth to simplify the layout and to improve reliability But how do you design this kind of systems? And can these ideas be applied to real-world circuits and applications?