Volume 2, Part 1: Itanium
®
Architecture-based Operating System Interaction Model with IA-32 Applications
2:265
• For all processors in the coherence domain, local and remote instruction cache
coherency on all processors is enforced for any store generated by any processor
running the IA-32 instruction set.
• For all processors in the coherence domain, instruction cache coherency on all
processors is enforced for all coherent I/O traffic. (For non-coherent I/O, a
processor may or may not see the results of an I/O operation.)
• For all processors in the coherence domain, instruction cache coherency is not
enforced for stores generated by any processor running the Itanium instruction set.
To ensure instruction cache coherency, Itanium architecture-based code must use
the code sequence defined in
Section 4.4.6.2, “Memory Consistency” on page 1:72
.
10.6.10 IA-32 Memory Ordering
IA-32 memory ordering follows the Pentium
III
defined
processor ordered
model for
cacheable and uncacheable memory. IA-32
processor ordered
memory references are
mapped onto the Itanium memory ordering model as follows:
• All IA-32 stores have
release
semantics. Except for IA-32 stores to
write-coalescing memory that are unordered. Subsequent loads are allowed to
bypass buffered local store data before it is globally visible. The amount of store
buffering is model specific and can vary across processor generations.
• All IA-32 loads have
acquire
semantics. Some high performance processor
implementations may speculatively issue
acquire
loads into the memory system for
speculative memory types, if and only if the loads do not
appear
to pass other loads
as observed by the program. If there is a coherency action that would result in the
appearance to the program of a load bypassing other load, the processor will
reissue the load operation(s) in program order.
• All IA-32 read-modify-write or locked instructions have memory
fence
semantics.
All buffered stores are flushed.
• IA-32 IN, OUT and serializing operations (as defined in the
Intel
®
64 and IA-32
Architectures Software Developer’s Manual
) have memory
fence
semantics.
In addition, the processor will wait for completion (acceptance by the platform) of
the IN or OUT before executing the next instruction. All buffered stores are flushed
before the IN or OUT operation.
• IA-32 SFENCE has
release
semantics and will flush all buffered stores.
Table 10-6.
Instruction Cache Coherency Rules
Originating
Instruction Set
Local Processor
External Processor
Coherent, I/O
Non-Coherent I/O
IA-32
Coherent
Coherent
Coherent
Maybe
Non-Coherent
Intel Itanium
May be
Non-coherent
May be
Non-coherent
Table 10-7.
IA-32 Load/Store Sequentiality and Ordering
IA-32 Memory
Reference
Uncacheable
Write
Coalescing
Cacheable
store
sequential
release
a
non-sequential
unordered
non-sequential
release
b
load
sequential
acquire
non-sequential
unordered
non-sequential
acquire
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 ...