Volume 2, Part 1: Addressing and Protection
2:83
defines a set of “Orderable Instructions” that follow one of four ordering
semantics:
unordered
,
release
,
acquire
or
fence
. The table defines the ordering
semantics and the instructions of each category. Only these Itanium instructions can be
used to establish multiprocessor ordering relations.
In the following discussion, the terms
previous
and
subsequent
are used to refer to
the program specified order. The term
visible
is used to refer to all architecturally
visible effects of performing an instruction. For memory accesses and semaphores this
involves at least reading or writing memory. For
mf.a
, visibility is defined by platform
acceptance of previous memory accesses. Visibility of
sync.i
is defined by visibility of
previous flush cache (
fc
,
fc.i
) operations. For ALAT lookups (
ld.c
,
chk.a
), visibility is
determination of ALAT hit or miss. For global TLB purge operations, visibility is defined
by removal of an address translation from the TLBs on all processors in the TLB
coherence domain. Global TLB purge instructions (
ptc.g
and
ptc.ga
) follow release
semantics on the local processor. They are also broadcast to all other processors in the
TLB coherence domain. On each such remote processor, a point is chosen in its
program-order execution and a local TLB purge operation is inserted at that point; this
local TLB purge operation follows release semantics, except with respect to global purge
instructions being executed by that remote processor. For local TLB purge operations,
visibility is defined by removal of an address translation on the local processor. Local
TLB purge instructions (
ptc.l
,
ptc.e
) ensure that all prior stores are made locally
visible before the actual purge operation is performed.
Itanium memory accesses to
sequential
pages occur in program order with respect to
all other sequential pages in the same peripheral domain, but are not necessarily
ordered with respect to non-sequential page accesses. A peripheral domain is a
platform-specific collection of uncacheable addresses. An I/O device is normally
contained in a peripheral domain and all sequential accesses from one processor to that
device will be ordered with respect to each other. Sequentiality ensures that
uncacheable, non-coalescing memory references from one processor to a peripheral
domain reach that domain in program order. Sequentiality does not imply visibility.
Table 4-15.
Ordering Semantics and Instructions
Ordering
Semantics
Description
Orderable Intel
®
Itanium
®
Instructions
Unordered
Unordered instructions may become visible in
any order.
ld, ld.s, ld.a, ld.sa, ld.fill,
ldf, ldf.s, ldf.sa, ldf.fill,
ldfp, ldfp.s, ldfp.sa,
st, st.spill,
stf, stf.spill,
mf.a, sync.i,
ld.c, chk.a
Release
Release instructions guarantee that all
previous orderable instructions are made
visible prior to being made visible themselves.
cmp8xchg16.rel, cmpxchg.rel,
fetchadd.rel, st.rel, ptc.g,
ptc.ga
Acquire
Acquire instructions guarantee that they are
made visible prior to all subsequent orderable
instructions.
cmp8xchg16.acq, cmpxchg.acq,
fetchadd.acq, xchg, ld.acq,
ld.c.clr.acq
Fence
Fence instructions combine the release and
acquire semantics into a bi-directional fence;
i.e., they guarantee that all previous orderable
instructions are made visible prior to any
subsequent orderable instruction being made
visible.
mf
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 ...