Volume 2, Part 1: Addressing and Protection
2:79
become flushed and made visible prior to itself becoming visible. Even though IA-32
stores and loads are ordered, the write-coalesced data is not flushed unless the IA-32
stores or loads are to uncached memory types.
The Flush Cache (
fc
,
fc.i
) instruction flushes all write-coalesced data whose address
is within at least 32 bytes of the 32-byte aligned address specified by the Flush Cache
(
fc
,
fc.i
) instruction, forcing the data to become visible. The Flush Cache (
fc
,
fc.i
)
instruction may also flush additional write-coalesced data. The Flush Write buffers (
fwb
)
instruction is a “hint” to the processor to expedite flushing (visibility) of any pending
stores held in the coalescing buffer(s), without regard to address.
No indication is given when the flushing of the stores is completed. An
fwb
instruction
does not ensure ordering of coalesced stores, since later stores may be flushed before
prior stores. To ensure prior coalesced stores are made visible before later stores,
software must issue a release operation between stores.
The processor may at any time flush coalesced stores in any order before explicitly
requested to do so by software.
Coalesced pages are not ensured to be coherent with other processors’ coalescing
buffers or caches, or with the local processor’s caches. Loads to coalesced memory
pages by a processor see the results of all prior stores by the same processor to the
same coalesced memory page. Memory references made by the coalescing buffer (e.g.,
buffer flushes) have an unordered non-sequential memory ordering attribute.
“Sequentiality Attribute and Ordering” on page 2:82.
Data that has been read or prefetched into a coalescing buffer prior to execution of an
Itanium acquire or fence type instruction is invalidated by the acquire or fence
instruction. (See
for a list of acquire and fence instructions.)
4.4.6
Speculation Attributes
For present pages (TLB.p=1) which are marked with a
speculative
or a NaTPage
memory attribute, the processor may prefetch instructions (including IA-32), perform
address generation and perform load accesses (including IA-32) without resolving prior
control dependencies, including predicates, branches and interruptions. A page should
only be marked speculative if accesses to that page have no side-effects. For example,
many memory-mapped I/O devices have side-effects associated with reads and should
be marked non-speculative. If a page is marked speculative, a processor can read any
location in the page at any time independent of a programmer’s intentions or control
flow changes. As a result, software is required, at all times, to maintain valid page table
attributes for the ppn, ps and ma fields of all present translations whose memory
attribute is speculative or NaTPage. (For example, software should not insert into the
TLB, nor create in the VHPT, mappings whose memory attribute is WB, WC or NaTPage
unless the entire corresponding physical address range is populated. Placing such
mappings in the VHPT or inserting such mappings in the TLB could result in machine
check aborts.) High-performance operation is only attainable on speculative pages. The
speculative attribute is a hint; a processor may behave non-speculatively.
Содержание 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 ...