\section{Conclusions}

We have presented our view that the design of
shared-memory multiprocessors should be guided by a
sound program execution model.
In particular, we have outlined a program execution model derived from
dataflow and functional programming principles that applies
to determinate computations. We have also described an implementation
of the model as a multiprocessor architecture containing a distributed
memory system supporting synchronizing read and write operations.
We specified the memory using a state-transition system and showed
how it may be implemented to incorporate caching of remote words
without depending on any memory consistency property.

Our program execution model and its implementation lie in contrast
to shared-memory multiprocessor design based on
memory consistency models, in which the memory interface is
designed to present desirable characteristics to programmers.
We believe that memory systems supporting synchronizing
memory operations will be cheaper to implement than memory consistency
protocols, and will support a preferred class of program execution models.

