A computer architecture that includes a hierarchical memory system and one
or more processors. The processors execute memory access instructions
whose semantics are defined in terms of the hierarchical structure of the
memory system. That is, rather than attempting to maintain the illusion
that the memory system is shared by all processors such that changes made
by one processor are immediately visible to other processors, the memory
access instructions explicitly address access to a processor-specific
memory, and data transfer between the processor-specific memory and the
shared memory system. Various alternative embodiments of the memory
system are compatible with these instructions. These alternative
embodiments do not change the semantic meaning of a computer program
which uses the memory access instructions, but allow different approaches
to how and when data is actually passed from one processor to another.