Programming Crystalline Hardware
Phillip Stanley-Marbell and Diana Marculescu.
In
Proceedings of the International Workshop on Non-Silicon Computation, NSC-2 '03,
May 2003.
ABSTRACT
Advances in VLSI technologies, and the emergence of new substrates
for constructing computing devices, necessitate a rethinking of the
manner in which software interacts with hardware. Traditional
computing systems are typified by general purpose processors, which
abstract their hardware capabilities through instruction sets.
Instruction sets and the abstractions they encourage at the programming
language level, were however cre- ated, and well suited for,
situations in which available hardware was limited and had to be
multiplexed in time. In particular, the organization of programs
around tightly coupled modules, be they functions, procedures or
similar abstractions, make it difficult to perform partitioning of
applications both statically and at runtime.
This paper presents preliminary work on a programming language for
crystalline architectures, based on the idea of structuring programs
around communication. The communication between components in a
program is made explicit by employing an abstraction of names on
which communication occurs, rather than functions or procedures.
Employing such an abstraction as the core of the language makes it
possible to explicitly address issues such as information-theoretic
analysis of the communication between components of a program, the
safety of such communications, and fault-tolerance of applications
which execute over a failure prone communication and computational
substrate.
[PDF], [BibTex], [Locate in chronological publications], [Locate in classified publications]