320 likes | 549 Views
Phylogeny (P) [Evolvability]. PO hw. PE hw. POE hw. Ontogeny (O) [Scalability]. OE hw. Epigenesis (E) [Adaptability]. Ontogenetic systems. Drawing inspiration from growth and healing processes of living organisms… …and applying them to electronic computing systems. Introduction.
E N D
Phylogeny (P) [Evolvability] PO hw PE hw POE hw Ontogeny (O) [Scalability] OE hw Epigenesis (E) [Adaptability] Ontogenetic systems Drawing inspiration from growth and healing processes of living organisms… …and applying them to electronic computing systems
Introduction At the heart of the growth of a multi-cellular organism is the process of cellular division… … aka (in computing) self-replication
Langton’s Loop • Environment: 8 (?) states, 5 neighbours (von Neumann), rules designed by hand • Initial configuration: 94 active cells (vs. 200k+ in von Neumann’s Universal Constructor) • Replication occurs after 151 iterations
Self-replicating CA • After von Neumann, nothing much happened for almost 30 years! • Why? Probably because the hardware wasn’t ready. • In the 90’s, FPGAs changed the scenario
Development in hardware – Why? • Let us assume that we want to implement a streaming application (i.e. an application that consists of a chain of discrete operations). For example an audio or video decoder. × IN ×+ ÷≠ FFT + DCT OUT
Development in hardware – Why? Option 1: software only OK, but (relatively) slow Option 2: hardware – full custom circuit Very fast, but expensive and inflexible (if the algorithm changes, the circuit must be redesigned) Option 3: hardware – dedicated processor Fast, but again if the algorithm changes, it needs to be redesigned together with the compiler, the programming tools, etc. Option 4: hardware – array of processing nodes …
Development in hardware – Why? Option 4.1: hardware – array of general-purpose processing nodes Fast, very much in fashion (multi-core, GPU), but very difficult to program and again not very flexible. Option 4.1: hardware – array of custom processing nodes Very fast, but difficult to implement and design × IN ×+ ×+ ÷≠ FFT + DCT OUT
Development in hardware – Why? • FPGAs (of various flavours) are the obvious solution to implement arrays of custom processors • But the design process is NOT simple
× ×+ ÷≠ FFT + DCT Development in hardware – Why? • Step 1: analyze the application and extract the component tasks × IN ×+ ÷≠ FFT + DCT OUT
× ×+ ÷≠ FFT + DCT Development in hardware – Why? • Step 2: as a function of the tasks, design one (or more) custom processors. × IN ×+ ÷≠ FFT + DCT OUT
× ×+ ÷≠ FFT + DCT Development in hardware – Why? • Step 3: program the FPGA to implement an array of processors. × IN ×+ ÷≠ FFT + DCT OUT
+ ×+ FFT DCT × ÷≠ × ×+ ÷≠ FFT + DCT IN OUT Development in hardware – Why? • Step 4: Assign the tasks to the processing nodes and set up the connection network. × IN ×+ ÷≠ FFT + DCT OUT
Option: array of custom processing nodes Step 1: analyze the application and extract the component tasks Step 2: design the custom processors Step 3: program the FPGA Step 4: assign the tasks to the processors and set up the connection network ← Multi-cellular organization ← Growth (cellular division) Development in hardware – Why?
Self-replicating CA • Question: are the “standard” self-replicating loops well adapted to self-replication in FPGAs? Not really! • New algorithms are needed
The Tom Thumb algorithm • In an FPGA, self-replication = copy of the configuration • Need algorithms that can evolve in an FPGA environment
The Tom Thumb algorithm Simple(st) example: Assume a configuration (shift) register of 4x4 bits
The Tom Thumb algorithm - States Data information
The Tom Thumb algorithm - States Data information
The Tom Thumb algorithm - States Flag data
The Tom Thumb algorithm - States Flag data
The Tom Thumb algorithm - Rules • Instead of a look-up table, the rules are defined by the motion of data and signals
The Tom Thumb algorithm - Rules • Instead of a look-up table, the rules are defined by the motion of data and signals
The Tom Thumb algorithm Note: the genome must be injected twice
The Tom Thumb algorithm Loop of 2x4 molecules
The Tom Thumb algorithm Loop of 4x4 molecules
Basic cell made of 12 x 6 = 72 molecules The Tom Thumb algorithm - Example Original specifications
The Tom Thumb algorithm - Example Genome made of 144 characters
Ontogenetic hardware • Ok, so the Tom Thumb algorithm can self-replicate an arbitrary structure within an FPGA • But what kindof structures is it interesting to self-replicate