next up previous
Next: Initial demonstrations Up: Getting started: Hardware Previous: Communication

What we can build now

While these technical problems are sorting themselves out, we can get experience now with amorphous computing by building an explicitly powered processor particle (EPPP) that communicates with nearby neighbors via capacitive coupling. Each particle would be a few millimeters square of silicon with an antenna wire about a centimeter long.

Figure 3: Two possible ideas for the design of an Explicitly Powered Processor Particle (EPPP) intended to be planted in a multilayer elastomer. The particles can communicate using capacitive coupling to nearby neighbors through a short ``antenna'' bonded to a pad. Alternatively, we could try a five-layer elastomer with particles communicating by sensing voltages and injecting currents into a conductive layer. In either case the end of the EPPP with sensors protrudes from the elastomer. Although these diagrams are not to scale, we would expect that the EPPP assembly is on the order of 1cm long.

Figure 4: Using a three-layer elastomer with two conductive layers one can make a ``lawn'' of computing elements. Power is supplied by to the pads of the EPPPs by contact with the conductive layers of the elastomer. If the sizes are chosen appropriately, the insertion of the EPPPs can be done with little precision: perhaps they can just be shot into the elastomer with a repeating air gun.

We could fabricate a board with processor particles laid out in a predefined pattern. A more ``amorphous'' approach would be to distribute power with a three-layer elastomer with conductive outer layers separated by an insulator. Each processor would have pins of appropriate lengths to make contact when the device is ``planted'' into the elastomer. It is even possible to just place pads in appropriate locations on a long and thin chip (see figure 3) so that the pads will contact the conductive layers of the elastomer if the chip is itself planted in the elastomer. (It is not even necessary to get the alignment of the power pads in the correct polarity of the elastomer, because our preliminary design shows that it is easy to make a bridge rectifier assembly that will get the correct power to the circuits independent of the polarity of the pads.) We could arrange that there are sensors on the part of the particles that protrudes from the elastomer. The easiest idea seems to be to try photodiodes or temperature sensors. The particles could then be planted close together to make a ``lawn'' of computing elements (see figure 4.)

For memory, it seems best to use static RAM, since in CMOS this has lower power requirements than DRAM, even though the cells are larger. We can expect to get about 20K bits per square millimeter, which would result in something like 32K bytes per particle.

This small amount of memory per particle suggests using an instruction set with high code density, or interpreting a high-density instruction set. We have implemented a stack-machine architecture designed to meet these requirements. We have implemented an instruction-level simulator for this architecture and we are using it to develop basic system building blocks such as communincation protocols and floating-point arithmetic.

Since our prototype design is not power-limited, we can run it at a speed in excess of 100 MHz. Because of space limitations, we do not plan to include floating-point hardware, so we envision a floating-point performance of 8--10 MFLOPS per particle. Importantly, each processor includes a random-number generator (not pseudorandom), since the ability to choose different numbers for the different processors is critical to the algorithms we envision.

Low-latency, low software-overhead interparticle communication will be critical to the performance of the system. We intend to incorporate special hardware and software support to make this communication efficient and easy to program. This support will include interrupt-driven mechanisms, direct-memory access to the communication channel, support for efficient scheduling of traffic, and hardware support for automatic error detection and correction. For low-power applications the efficient support of the communications is even more critical, because we must turn off the power-hungry analog circuits of the receivers when they are not in use. Efficient communication may require accurate synchronization of the communications. This may require good time bases or phase-locking techniques. [10]

To enable communication with a host, we plan to fabricate an additional pad on each particle, which will be connected on only a few particles in the collection.

next up previous
Next: Initial demonstrations Up: Getting started: Hardware Previous: Communication

Gerald Jay Sussman
Thu Jun 27 16:56:19 EDT 1996