ontogenetic systems
DESCRIPTION
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. - PowerPoint PPT PresentationTRANSCRIPT
Ontogenetic systems
Drawing inspiration from growth and healing processes of living organisms…
…and applying them to electronic computing systems
Phylogeny (P)[Evolvability]
Epigenesis (E)[Adaptability]
Ontogeny (O)[Scalability]
PO hw
POE hw
OE hw
PE hw
Introduction
At the heart of the growth of a multi-cellular organism is the process of cellular division…
… aka (in computing) self-replication
Demonstration
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
PROGRAMMABLE CONNECTIONS
PROGRAMMABLE FUNCTIONS
CONFIGURATION
I/O ELEMENTSLOGIC ELEMENTS
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.
×
Development in hardware – Why?
×+ ÷≠ FFT +IN 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
×+ ÷≠ FFT +
×
DCT×+IN 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
Development in hardware – Why?
Step 1: analyze the application and extract the component tasks
×+ ÷≠ FFT +
×
DCT×+ ÷≠ FFT +
×
IN DCT OUT
Development in hardware – Why?
Step 2: as a function of the tasks, design one (or more) custom processors.
×+ ÷≠ FFT +
×
DCT×+ ÷≠ FFT +
×
IN DCT OUT
Development in hardware – Why?
Step 3: program the FPGA to implement an array of processors.
×+ ÷≠ FFT +
×
DCT×+ ÷≠ FFT +
×
IN DCT OUT
Development in hardware – Why?
Step 4: Assign the tasks to the processing nodes and set up the connection network.
×+ ÷≠ FFT +
×
DCT×+ ÷≠ FFT +
×
IN DCT OUT
×
×+
IN
÷≠
FFT
+
DCT
OUT
Development in hardware – Why?
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)
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
PROGRAMMABLE CONNECTIONS
PROGRAMMABLE FUNCTIONS
CONFIGURATION
I/O ELEMENTSLOGIC ELEMENTS
In an FPGA, self-replication = copy of the configuration
Need algorithms that can evolve in an FPGA environment
Simple(st) example: Assume a configuration (shift) register of 4x4 bits
The Tom Thumb algorithm
Data information
: empty data (0)
: molcode data (1 ... 7)
: flag data (8 ... E)
: don’t care data (1 ... E)
M
F
-
The Tom Thumb algorithm - States
Data information
: mobile molcode
: fixed molcode
: mobile flag
: fixed flag
M
F
M
F
The Tom Thumb algorithm - States
Flag data
: north connection (8)
: east connection (9)
: south connection (A)
: west connection (B)
The Tom Thumb algorithm - States
Flag data
: branch activation (C)
: north branch (D)
: east branch (E)
The Tom Thumb algorithm - States
The Tom Thumb algorithm - Rules Instead of a look-up table, the rules are defined
by the motion of data and signals
F
FM
F
M F
F’’ M F’ F’’ M F’
t t +1
shift data:
The Tom Thumb algorithm - Rules Instead of a look-up table, the rules are defined
by the motion of data and signals
t t +1
load data:
F’M’F’’M’’ F’M’F’’M’’
1 1 12 12 1
2
3 1
2
3 1
23
4 1
23
4 1
2 34
1 1
2 34
1 1
2 341
2 1
2 341
2 1
2 3
4
12
3 1
2 3
4
12
3 1
2 3
41
23
4 1
2 3
41
23
4 1
2 3
4
3
2
4
1 1
2 3
42
34
1 1
2 3
43
41
2 1
2 3
43
41
2 1
2 3
44
12
3 1
2 3
44
12
3 1
2 3
41
23
4
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
The Tom Thumb algorithm
Basic cell made of 12 x 6 = 72 molecules1
2
2 1
2
2
2 2
1
2 2
2
2
2
2
2
22
2
2
2 1
2 1
2
2
2 22
1 1
1 1
1 1
1 1
2
1 1 1
1 1
11
1
1 1
1
1
1
1
1
2
2
11
1
1
1
11
1
1
1
2
2
11 1
1
2
1
2
1
2
2
11
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
2
2
2
1
1
1
1
1
1
1
2
2
2
2
1
1
1
1
1
1
1
1
2
1
2
1
1
1 11
1
1
2
1
1
2
1
2
2
2
The Tom Thumb algorithm - Example
Original specifications
Genome made of 144 characters
1
1
2 2 2 22
1 1 1
11 1 1 1
1
2 2 21 1 2
2
2
2
1
1
2
21
1 2 22
2 1
1 11 1 1 1
1
21
2 2
11 1
1 1 1 1 12
2 1
2
2
1 1 1 1 1 1 1 1
1 1
1
1
The Tom Thumb algorithm - Example
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