Programming Crystalline Hardware
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 created, 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
Cite as
P. Stanley-Marbell and D. Marculescu. “Programming Crystalline Hardware”. Proc. 2nd Workshop on Non-Silicon Computation, NSC-2, In conjunction with ISCA’03, 2003.
BibTeX
@inproceedings{stanley2003programming,
title={Programming Crystalline Hardware},
author={Stanley-Marbell, Phillip and Marculescu, Diana},
booktitle={In 2nd Workshop on Non-Silicon Computation, NSC-2, In conjunction with ISCA 2003},
year={2003}
}