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.
Содержание ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS VOLUME 3 REV 2.3
Страница 1: ......
Страница 11: ...x Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 12: ...1 1 Intel Itanium Architecture Software Developer s Manual Rev 2 3 Part I Application Architecture Guide ...
Страница 13: ...1 2 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 33: ...1 22 Volume 1 Part 1 Introduction to the Intel Itanium Architecture ...
Страница 57: ...1 46 Volume 1 Part 1 Execution Environment ...
Страница 147: ...1 136 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 149: ...1 138 Volume 1 Part 2 About the Optimization Guide ...
Страница 191: ...1 180 Volume 1 Part 2 Predication Control Flow and Instruction Stream ...
Страница 230: ......
Страница 248: ...236 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 249: ...2 1 Intel Itanium Architecture Software Developer s Manual Rev 2 3 Part I System Architecture Guide ...
Страница 250: ...2 2 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 264: ...2 16 Volume 2 Part 1 Intel Itanium System Environment ...
Страница 380: ...2 132 Volume 2 Part 1 Interruptions ...
Страница 398: ...2 150 Volume 2 Part 1 Register Stack Engine ...
Страница 486: ...2 238 Volume 2 Part 1 IA 32 Interruption Vector Descriptions ...
Страница 749: ...2 501 Intel Itanium Architecture Software Developer s Manual Rev 2 3 Part II System Programmer s Guide ...
Страница 750: ...2 502 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 754: ...2 506 Volume 2 Part 2 About the System Programmer s Guide ...
Страница 796: ...2 548 Volume 2 Part 2 Interruptions and Serialization ...
Страница 808: ...2 560 Volume 2 Part 2 Context Management ...
Страница 842: ...2 594 Volume 2 Part 2 Floating point System Software ...
Страница 850: ...2 602 Volume 2 Part 2 IA 32 Application Support ...
Страница 862: ...2 614 Volume 2 Part 2 External Interrupt Architecture ...
Страница 870: ...2 622 Volume 2 Part 2 Performance Monitoring Support ...
Страница 891: ......
Страница 941: ...3 42 Volume 3 Instruction Reference cmp illegal_operation_fault PR p1 0 PR p2 0 Interruptions Illegal Operation fault ...
Страница 1099: ...3 200 Volume 3 Instruction Reference padd Interruptions Illegal Operation fault ...
Страница 1191: ...3 292 Volume 3 Pseudo Code Functions Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 1295: ...3 396 Volume 3 Resource and Dependency Semantics ...
Страница 1296: ......
Страница 1302: ...402 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 1494: ...4 192 Volume 4 Base IA 32 Instruction Reference FWAIT Wait See entry for WAIT ...
Страница 1564: ...4 262 Volume 4 Base IA 32 Instruction Reference LES Load Full Pointer See entry for LDS LES LFS LGS LSS ...
Страница 1565: ...Volume 4 Base IA 32 Instruction Reference 4 263 LFS Load Full Pointer See entry for LDS LES LFS LGS LSS ...
Страница 1568: ...4 266 Volume 4 Base IA 32 Instruction Reference LGS Load Full Pointer See entry for LDS LES LFS LGS LSS ...
Страница 1583: ...Volume 4 Base IA 32 Instruction Reference 4 281 LSS Load Full Pointer See entry for LDS LES LFS LGS LSS ...
Страница 1647: ...Volume 4 Base IA 32 Instruction Reference 4 345 ROL ROR Rotate See entry for RCL RCR ROL ROR ...
Страница 1663: ...Volume 4 Base IA 32 Instruction Reference 4 361 SHL SHR Shift Instructions See entry for SAL SAR SHL SHR ...
Страница 1668: ...4 366 Volume 4 Base IA 32 Instruction Reference SIDT Store Interrupt Descriptor Table Register See entry for SGDT SIDT ...
Страница 1884: ...4 582 Volume 4 IA 32 SSE Instruction Reference ...
Страница 1885: ...Index Intel Itanium Architecture Software Developer s Manual Rev 2 3 Index ...
Страница 1886: ...Index Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 1898: ...INDEX Index 12 Index for Volumes 1 2 3 and 4 ...