
Volume 1, Part 1: Application Programming Model
1:67
than the load of the data.
If the check load was an ordered check load (
ld.c.clr.acq
), then it is performed with
the semantics of an ordered load (
ld.acq
). ALAT register tag lookups by advanced load
checks and check loads are subject to memory ordering constraints as outlined in
“Memory Access Ordering” on page 1:73
In addition to the flexibility described above, the size, organization, matching
algorithm, and replacement algorithm of the ALAT are implementation dependent.
Thus, the success or failure of specific advanced loads and checks in a program may
change: when the program is run on different processor implementations, within the
execution of a single program on the same implementation, or between different runs
on the same implementation.
4.4.5.3.2
Invalidating ALAT Entries
In addition to entries removed by advanced loads, ALAT entry invalidations can occur
implicitly by events that alter memory state or explicitly by any of the following
instructions:
ld.c.clr
,
ld.c.clr.acq
,
chk.a.clr
,
invala
,
invala.e
. Events that may
implicitly invalidate ALAT entries include those that change memory state or memory
translation state such as:
1. The execution of stores, semaphores, or
ptc.ga
on other processors in the
coherence domain.
2. The execution of store or semaphore instructions issued on the local processor.
3. Platform-visible removal of a cache line from the processor’s caches.
When one of these events occurs, hardware checks each memory region represented
by an entry in the ALAT to see if it overlaps with the locations affected by the
invalidation event. ALAT entries whose memory regions overlap with the invalidation
event locations are removed. The invalidation of ALAT entries due to the execution of
stores, semaphores or ptc.ga instructions must occur no later in visibility order than the
store of the data or the TLB purge. Note that some invalidation events may require that
multiple entries be removed from the ALAT. For example, the
ptc.ga
instruction is page
aligned, thus a
ptc.ga
from another processor would require that hardware invalidate
all ALAT entries related to that page. Stores due to RSE spills are not checked for ALAT
invalidation and do not cause ALAT entries to be removed. See
ALAT Interaction” on page 2:146
. When an external agent can observe that the
processor has removed a physical address range from its caches, then that address
range is guaranteed to be invalidated from that processor’s ALAT as well.
An implementation may invalidate entries over areas larger than explicitly required by a
specific invalidation event, and more generally, to invalidate any ALAT entry at any
time. For example, a
st1
only accesses one byte, but an implementation could choose
to invalidate all ALAT entries whose memory region is in the same cache line. An
implementation may also provide an ALAT with zero entries (i.e., all
ld.c
/
chk.a
instructions would act as if an ALAT miss had occurred).
Software is responsible for explicitly invalidating all affected ALAT entries whenever:
1. Software explicitly changes the virtual to physical register mapping on rotating
registers that have been the target of advanced loads (
clrrrb
).
2. Software changes the virtual to physical memory mapping.
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 ...