Software for Nanosystems: Requirements and Possibilities
IBM Thomas J. Watson Research Center,
Yorktown Heights, NY, 10598
This is an abstract
for a presentation given at the
Foresight Conference on Molecular Nanotechnology.
There will be a link from here to the full article when it is
available on the web.
Most research in nanotechnology today is focused (and rightly so) on the physical world, on how to create molecular mechanisms and how to control their interaction. In short, research today is focused on hardware. Eventually, however, the problem of developing software for nanomachines will have to be considered. Advanced nanomachines and nanosystems will need some kind of software, either embedded in read-only logic or in some kind of read-write memory to control their operation. Nanomachines will have to be “intelligent” about their surroundings, they will have to be able to perceive their environment in some form and act upon those inputs. They will have to be able to communicate between themselves and with nano- and human-sized computers to report progress and request instructions, and they will require fault-tolerant operation. Fault-tolerant systems of the kind described are difficult and expensive, but possible, to build. It has been done for many systems and environments, such as the Mars Pathfinder or the Space Shuttle system software.
Nanosystems, on the other hand, have requirements that are literally impossible to fulfill using current software architectures and design methodologies. They will have to support fault-tolerant operation on extremely large networks of devices (i.e., nanomachines) with at least millions and eventually billions of connection points, in many cases requiring synchronized operation between them. No current or planned network architecture can support such loads, much less in a fault-tolerant fashion.
The key to fault-tolerant nanosystems is then the network, since it is what will allow nanomachines to perform tasks in coordinated fashion, and therefore operate efficiently on human scale. One possible solution is the use of a self-organizing, decentralized network architecture, used both to synchronize the nanomachines and serve as their communications channel.
In this paper we analyze the characteristics and requirements of a nanosystem from the point of view of the software, and show why current network architectures will not fulfill them. We also present a possible model for a distributed, self-organizing network architecture that could fulfill those requirements and describe some of the challenges faced in its construction and testing.
IBM Thomas J. Watson Research Center
Route 134, Office 39-024, Yorktown Heights, NY, 10598 USA
Phone: 914-945-2339; Fax: 914-945-4297