Download presentation
Presentation is loading. Please wait.
Published byPatience Pope Modified over 9 years ago
1
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
2
Ontogenetic hardware Embryonics = embryonic electronics: Drawing inspiration from growth processes of living organisms to design complex computing systems Phylogeny (P) [Evolvability] Epigenesis (E) [Adaptability] Ontogeny (O) [Scalability] PO hw POE hw OE hw PE hw
3
Bio-Inspired Approaches Growth Self-organization Massive parallelism (multicellular systems) Issues that growth can potentially address: Complexity Scalability Fault tolerance
4
Caenorhabditis Elegans 11 December 1998
5
Caenorhabditis Elegans From S.F. Gilbert, Developmental Biology, Sinauer, 1991
6
Multicellular Organization 959 somatic cells
7
Cellular Differentiation Pharynx Intestine
8
Embryonics: How? Iterative electronic circuit based on 3 features: multicellular organization cellular division cellular differentiation
9
Embryonics Landscape Population level (population = organisms) Organismic level (organism = cells) Cellular level (cell = molecules) Molecular level (basic FPGA's element)
10
StopWatch
12
Multicellular Organization
13
StopWatch
14
First step: design of a totipotent cell (stem cell) (of course, in practice it can be optimized)
15
StopWatch
16
Cellular Differentiation
17
Cloning
19
Self-Repair
20
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!
21
MUXTREE Molecule The “molecular” layer of Embryonics is an FPGA
22
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)
23
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)
24
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)
25
Cellular Self-Replication Self-replication will allow the same FPGA partial configuration to be duplicated as many times as needed
26
Cellular Self-Repair But self-replication, and custom FPGAs, can ALSO be used to improve the reliability of the system
27
Cellular Self-Repair But self-replication, and custom FPGAs, can ALSO be used to improve the reliability of the system … within limits
28
Operation of the Cell
29
Kill a Molecule
30
Recovered Molecule
31
Kill Again (Kill a Cell)
32
Recovered Cell
33
Implementation - The BioWall
35
Genotype Layer Phenotype Layer Example – Automatic Synthesis Application-specific (parallel) functions Developmental algorithm Genetic code Mapping Layer
36
Example – Automatic Synthesis Phenotype Layer Mapping Layer Genotype Layer Totipotent Cell
37
Example – Automatic Synthesis Totipotent Cell Programmable Logic
38
Example – Automatic Synthesis Programmable Logic Cellular Array
39
What kind of applications can take advantage of this kind of system? Complex "real-world" streaming applications computation is carried out sequentially can be represented by a DAG of computation nodes each node processes data locally then forwards them to the next node in the graph Applications ×+÷≠ FFT + × DCT INOUT
40
READDCTQNTZCMPRWRT Example: JPEG Specialized MOVE functional units can be designed for each of these steps INOUT
41
Programmable substrate ×+÷≠ FFT + × DCT Context INOUT Problem: task or resource allocation – i.e. how do we map the graph nodes to the array? Specifically: dynamic allocation
42
Self-Scaling Stream Processing Source Funct A Funct B Funct CJoinFunct A Funct C Funct A Funct C Funct A Funct C
44
SSSP The MJPEG application consists of a four-stage computation pipeline. The data to be compressed are composed of 192 bytes corresponding to an 8x8 array of pixels using 24- bit colour. The maximum rate achievable (determined by the input rate) is of 700 packets per second - roughly 1 MBit/second. With a single pipeline, the performance tops at about 60 packets per second.
46
SSSP When performance peaks, the average output rate is of 675 packets per second (out of a maximum of 700): this technique allows to multiply the throughput by a factor of 11 using 28 processors.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.