Compaq ECQD2KCTE Laptop User Manual


 
System Architecture and Programming Implications 5–3
For a byte access region, accesses to physical memory must be implemented such that indepen-
dent accesses to adjacent bytes or adjacent aligned words produce the same results, regardless
of the order of execution. Further, an access to a byte, an aligned word, an aligned longword,
or an aligned quadword must be done in a single atomic operation.
In this context, "atomic" means that the following is true if different processors do simulta-
neous reads and writes of the same data:
The result of any set of writes must be the same as if the writes had occurred sequen-
tially in some order, and
Any read that observes the effect of a write on some part of memory must observe the
effect of that write (or of a later write or writes) on the entire part of memory that is
accessed by both the read and the write.
When a write accesses only part of a given word, longword, or quadword, a read of the entire
structure may observe the effect of that partial write without observing the effect of an earlier
write of another byte or bytes to the same structure. See Sections 5.6.1.5 and 5.6.1.6.
5.2.3 Width of Memory Access
Subject to the granularity, ordering, and coherency constraints given in Sections 5.2.1, 5.2.2,
and 5.6, accesses to physical memory may be freely cached, buffered, and prefetched.
A processor may read more physical memory data (such as a full cache block) than is actually
accessed, writes may trigger reads, and writes may write back more data than is actually
updated. A processor may elide multiple reads and/or writes to the same data.
5.2.4 Memory-Like and Non-Memory-Like Behavior
Memory-like regions obey the following rules:
Each page frame in the region either exists in its entirety or does not exist in its entirety;
there are no holes within a page frame.
All locations that exist are read/write.
A write to a location followed by a read from that location returns precisely the bits
written; all bits act as memory.
A write to one location does not change any other location.
Reads have no side effects.
Longword access granularity is provided, and if the byte/word extension is imple-
mented, byte access granularity is provided.
Instruction-fetch is supported.
Load-locked and store-conditional are supported.
Non-memory-like regions may have much more arbitrary behavior:
Unimplemented locations or bits may exist anywhere.
Some locations or bits may be read-only and others write-only.