2:524
Volume 2, Part 2: MP Coherence and Synchronization
2.2.2
Memory Attributes
In addition to the ordering semantics and data dependencies, the memory attributes of
the page that is being referenced also influence access ordering and visibility. Using
memory attributes allows the Itanium architecture to match the performance and the
usage model to the type of device (e.g. main memory, memory-mapped I/O device,
frame buffer, locations with side-effects, etc.) that backs a page of memory. Typically,
memory with side-effects is mapped uncacheable while memory without side-effects is
mapped as write-back cacheable.
Section 4.4, “Memory Attributes”
describes memory attributes in the Itanium
architecture in greater depth.
Memory with the uncacheable UC or UCE attributes is sequential by definition. A
processor based on the Itanium architecture ensures that accesses to sequential
memory locations reach a peripheral domain (a platform-specific collection of
uncacheable locations, colloquially known as “a device”) in program order with respect
to all other accesses to sequential locations in the same peripheral domain. The
sequential behavior of UC or UCE memory is independent of the ordering semantics
(i.e. acquire, release, fence, or unordered) attached to the accesses.
Other observers (e.g. processors or other peripheral domains) need not see references
to UC or UCE memory in sequential order if at all. When multiple agents are writing to
the same device, it is up to software to synchronize the accesses to the device to
ensure the proper interleaving.
The ordering semantics of an access to sequential memory determines how the access
becomes visible to the peripheral domain with respect to other operations. For
example, consider the code sequence shown in
In this code, assume that
data_0
and
data_1
are cacheable locations and
start
and
ready
are an uncacheable UC or UCE locations.
Sequentiality ensures that M3 and M4 reach the peripheral domain in program order
(i.e. M3 before M4). Further, the release semantics on M3 ensures that it is not made
visible to the peripheral domain until after M1 and M2 are made visible to the coherence
domain. The M1 and M2 accesses may become visible to the coherence domains in any
order as they both have unordered semantics. Even though the memory ordering
semantics allow M4 to become visible before M3, the processor must make M3 visible
before M4 because both
ready
and
start
are sequential locations.
Figure 2-2.
Interaction of Ordering and Accesses to Sequential Locations
sequential_example:
st
[data_0] = 0
// M1: put data in cacheable mem
st
[data_1] = 0
// M2: put data in cacheable mem
st.rel [ready] = 1
// M3: tell device to get ready
st
[start] = 1
// M4: tell device to start
Summary of Contents for ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS VOLUME 3 REV 2.3
Page 1: ......
Page 11: ...x Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 13: ...1 2 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 33: ...1 22 Volume 1 Part 1 Introduction to the Intel Itanium Architecture ...
Page 57: ...1 46 Volume 1 Part 1 Execution Environment ...
Page 147: ...1 136 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 149: ...1 138 Volume 1 Part 2 About the Optimization Guide ...
Page 191: ...1 180 Volume 1 Part 2 Predication Control Flow and Instruction Stream ...
Page 230: ......
Page 248: ...236 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 250: ...2 2 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 264: ...2 16 Volume 2 Part 1 Intel Itanium System Environment ...
Page 380: ...2 132 Volume 2 Part 1 Interruptions ...
Page 398: ...2 150 Volume 2 Part 1 Register Stack Engine ...
Page 486: ...2 238 Volume 2 Part 1 IA 32 Interruption Vector Descriptions ...
Page 750: ...2 502 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 754: ...2 506 Volume 2 Part 2 About the System Programmer s Guide ...
Page 796: ...2 548 Volume 2 Part 2 Interruptions and Serialization ...
Page 808: ...2 560 Volume 2 Part 2 Context Management ...
Page 842: ...2 594 Volume 2 Part 2 Floating point System Software ...
Page 850: ...2 602 Volume 2 Part 2 IA 32 Application Support ...
Page 862: ...2 614 Volume 2 Part 2 External Interrupt Architecture ...
Page 870: ...2 622 Volume 2 Part 2 Performance Monitoring Support ...
Page 891: ......
Page 1099: ...3 200 Volume 3 Instruction Reference padd Interruptions Illegal Operation fault ...
Page 1295: ...3 396 Volume 3 Resource and Dependency Semantics ...
Page 1296: ......
Page 1302: ...402 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 1494: ...4 192 Volume 4 Base IA 32 Instruction Reference FWAIT Wait See entry for WAIT ...
Page 1647: ...Volume 4 Base IA 32 Instruction Reference 4 345 ROL ROR Rotate See entry for RCL RCR ROL ROR ...
Page 1884: ...4 582 Volume 4 IA 32 SSE Instruction Reference ...
Page 1885: ...Index Intel Itanium Architecture Software Developer s Manual Rev 2 3 Index ...
Page 1886: ...Index Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 1898: ...INDEX Index 12 Index for Volumes 1 2 3 and 4 ...