Ontogenetic hardware

Post on 24-Jan-2016

20 views 0 download

Tags:

description

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. Ontogenetic hardware. Embryonics = embryonic electronics: - PowerPoint PPT Presentation

transcript

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

Ontogenetic hardwareEmbryonics = 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

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 LandscapePopulation level

(population = organisms)

Organismic level (organism = cells)

Cellular level (cell = molecules)

Molecular level (basic FPGA's element)

MUX

COMP

MUX

d

ORG ORG

ORG ORG

c

b

a d

e

f

A C E

B D FORG

CELL

MO

LECULE

StopWatch

MIN SECRESET

STARTSTOP

StopWatch

MIN SECMIN SEC

Multicellular Organization

O R G

CELLgene

A C E

B D F2

1

1 2 3

Y

X

StopWatch

StopWatch

ORG

CELLgene

1

1 2 3

Y

X

Countmod 6

Countmod10

Countmod 6

Countmod10

4

6 10 6 101 2 3 4

OG: operative genomegene

StopWatch

First step: design of a totipotent cell (stem cell)

(of course, in practice it can be optimized)

StopWatch

X = (WX+1) mod 4 case of X: X = 1: Countmod 6 (10 minutes) X = 2: Countmod 10 (minutes) X = 3: Countmod 6 (10 seconds) X = 4: Countmod 10 (seconds)

OG: operative genome

Cellular Differentiation

6 10 6 101 2 3 4

X = 1

6 10 6 101 2 3 4

6 10 6 101 2 3 4

6 10 6 101 2 3 4

2

10t1

3

6t2

10

4

t3

Cloning

1

Y

X

6 10 6 10 6 10 6 10 6 10 6 10 6 10 6 10

1

6 10 6 10 6 10 6 10 6 10 6 106 10 6 10

1

Y

X

6 10 6 10 6 10 6 10 6 10 6 10 6 10 6 10t1

1 2

6 10 6 10 6 10 6 10 6 10 6 106 10 6 10

t1

1

1

Y

X

6 10 6 10 6 10 6 10 6 10 6 10 6 10 6 10t1 t2

1 2 3

6 10 6 10 6 10 6 10 6 10 6 106 10 6 10t2

t1

1

1

Y

X

6 10 6 10 6 10 6 10 6 10 6 10 6 10 6 10t1 t2 t3

MOTHER ORG

1 2 3 4

6 10 6 10 6 10 6 10 6 10 6 106 10 6 10t2 t3

t1

1

Cloning

1

Y

X

t1 t2 t3

MOTHER ORG

t4

1 2 3 4 1

t2 t3 t4

t1DAUGHTER ORG # 1

1

6 10 6 10 6 10 6 10 6 10 6 106 10 6 10

6 10 6 10 6 10 6 10 6 10 6 106 10 6 10 6 10 6 10 6 10 6 10 6 10 6 106 10 6 10

6 10 6 10 6 10 6 10 6 10 6 106 10 6 101

Y

X

t1 t2 t3

MOTHER ORG

t5t4

1 2 3 4 1 2

t2 t3 t4 t5

t1DAUGHTER ORG # 1

1

6 10 6 10 6 10 6 10 6 10 6 106 10 6 10

6 10 6 10 6 10 6 10 6 10 6 106 10 6 10 6 10 6 10 6 10 6 10 6 10 6 106 10 6 10

6 10 6 10 6 10 6 10 6 10 6 106 10 6 101

Y

X

t1 t2 t3

MOTHER ORG

t5 t6t4

1 2 3 4 1 2 3

t2 t3 t4 t6t5

t1DAUGHTER ORG # 1

1

6 10 6 10 6 10 6 10 6 10 6 106 10 6 10

6 10 6 10 6 10 6 10 6 10 6 106 10 6 10 6 10 6 10 6 10 6 10 6 10 6 106 10 6 10

6 10 6 10 6 10 6 10 6 10 6 106 10 6 101

Y

X

t1 t2 t3

MOTHER ORG

t5 t6 t7t4

DAUGHTER ORG # 2

1 2 3 4 1 2 3 4

t2 t3 t4 t6 t7t5

t1DAUGHTER ORG # 1

1

6 10 6 10 6 10 6 10 6 10 6 106 10 6 10

6 10 6 10 6 10 6 10 6 10 6 106 10 6 10 6 10 6 10 6 10 6 10 6 10 6 106 10 6 10

6 10 6 10 6 10 6 10 6 10 6 106 10 6 101

Y

X

t1 t2 t3

MOTHER ORG

t5 t6 t7t4

DAUGHTER ORG # 2

1 2 3 4 1 2 3 4

t2 t3 t4 t6 t7 t8t5

t1DAUGHTER ORG # 1 DAUGHTER ORG # 3

1

Directions of self-replication

6 10 6 10 6 10 6 10 6 10 6 106 10 6 10

6 10 6 10 6 10 6 10 6 10 6 106 10 6 10 6 10 6 10 6 10 6 10 6 10 6 106 10 6 10

6 10 6 10 6 10 6 10 6 10 6 106 10 6 10

Self-Repair

1

Y

X

6 10 6 10 6 10 6 10 6 10 6 10 6 10 6 10

ORIGINAL ORG

6 10 6 10 6 10 6 10

1 2 3 4 1 2

SPARE CELLS

Direction of self-repair

1

Y

X

6 10 6 10 6 10 6 10 6 10 6 10 6 10 6 10

1 2 4 1 2

KILL=1

SCAR

106 10 6 101

Y

X

6 10 6 10 6 10 6 10 6 10 6 10 6 10 6 10

1 2 3

KILL=1

SCAR

106 10 6 101

Y

X

6 10 6 10 6 10 6 10 6 10 6 10 6 10 6 10

1 2 3 4

KILL=1

NEW ORG NEW ORGSCAR

106 10 6 101

Y

X

6 10 6 10 6 10 6 10 6 10 6 10 6 10 6 10

1 2 3 4 1

KILL=1

NEW ORG NEW ORGSCAR SPARE CELL

106 10 6 10

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!

1

1 2 3

Y

X

mod3

mod10/4

mod6

mod10

4

mod6

mod10

5 6

Modulo-24 counter StopWatch

MUXTREE Molecule The “molecular” layer of Embryonics is an FPGA

0 10 1 2 3 4

0 10 1 2 3 4

1 0

NOUT

SIN

CK

EOBUS

EOUT

EIN

WIBUS

WIN

WOUT

L2:0 R2:0

1 0 R

SB

1 0EIBUS

B

WOBUS

NOBUS NIBUS

SOBUSSIBUS

5 56 7 6 7

INITP

DQ FF

MUXTREE

MUX

0 L2:0 0 R2:0 N1:0 S1:0 E1:0W1:0 0 P R Bswitch block (SB)connection block (CB)

memory and test

1 0456789101112141618 219

CREGMOLCODE = MC19:0

2 30 1

3 12 0

NOBUS

SOBUS

0

1

3

2

EOBUS1

3

2

0

WOBUSNOUT

NIBUS

NOUT

NOUT

NOUT

EIBUS

S1:0

WIBUS

N1:0E1:0

W1:0

SIBUS

SB

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

PGX=1

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

PGPG2X=1 3 4 SPARE CELL

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

RG+OG

2 3 4X=1 SPARE CELL

Self-replication will allow the same FPGA partial configuration to be duplicated as many times as needed

Cellular Self-Repair

RG+OG

2 3 4X=1 SPARE CELL

faulty molecule

But self-replication, and custom FPGAs, can ALSO be used to improve the reliability of the system

Cellular Self-Repair

RG+OG

2 3 4X=1 SPARE CELL

3 4

KILL=1

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

Genotype Layer

Phenotype Layer

Example – Automatic Synthesis

Application-specific (parallel) functions

Developmental algorithm

Genetic code

Mapping Layer

Example – Automatic Synthesis

Phenotype Layer

Mapping Layer

Genotype Layer

Totipotent Cell

Example – Automatic SynthesisTotipotent CellProgrammable Logic

Example – Automatic SynthesisProgrammable Logic

Cellular Array

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 +

×

DCTIN OUT

READ DCT QNTZ CMPR WRT

Example: JPEG

Specialized MOVE functional units can be designed for each of these steps

IN OUT

Programmable substrate

×+ ÷≠ FFT +

×

DCT

Context

IN OUT

Problem: task or resource allocation – i.e. how do we map the graph nodes to the array?

Specifically: dynamic allocation

Self-Scaling Stream Processing

Source

Funct A

Funct B

Funct C JoinFunct A

Funct A

Funct A

Funct C

Funct A

Funct A

Funct C

Funct A

Funct C

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.

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.