2:80
Volume 2, Part 1: Addressing and Protection
Prefetches are enabled if a speculative translation exists. Prefetches are asynchronous
data and instruction memory accesses that appear logically to initiate and finish
between some pair of instructions. This access may not be visible to subsequent flush
cache (
fc
,
fc.i
) and/or TLB purge instructions. This behavior is
implementation-dependent.
The processor will not initiate memory references (16-byte instruction bundle fetches,
IA-32 instruction fetches, RSE fills and spills, VHPT references, and data memory
accesses) to non-speculative pages until all previous control dependencies (predicates,
branches, and exceptions) are resolved; i.e., the memory reference is required by an
in-order execution of the program. Additionally, for references to non-speculative
pages, the processor:
• May not generate any memory access for a control or data speculative data
reference.
• Will generate exactly one memory access for each aligned, non-speculative data
reference. (Misaligned data references may cause multiple memory accesses,
although these accesses are guaranteed to be non-overlapping – each byte will be
accessed exactly once.)
• May generate multiple 16-byte memory accesses (to the same address) for each
16-byte instruction bundle fetch reference.
To ensure virtual and physical accesses to non-speculative pages are performed in
program order and only once per program order occurrence, the rules in
and
are defined. Software should also ensure that RSE spill/fill transactions are
not performed to non-speculative memory that may contain I/O devices; otherwise,
system behavior is undefined.
Table 4-13.
Permitted Speculation
Memory
Attribute
Load
(ld)
a
a. Includes the faulting form of line prefetch (
lfetch.fault
).
Speculative
Load
(ld.s)
b
b. Includes the non-faulting form of line prefetch (
lfetch
), which does not cause a cache fill if the memory
attribute is non-speculative or limited speculation.
Advanced
Load
(ld.a)
Speculative
Advanced
Load (ld.sa)
Hardware-generated
Speculative
References
c
c. Hardware-generated speculative references include non-demand instruction prefetches (including IA-32),
hardware-generated data prefetch references, and eager RSE memory references.
Speculative
Yes
Yes
Yes
Yes
Yes
Non-speculative
Yes
Always Fail
Always Fail
Always Fail
Prohibited
Limited Speculation
Yes
Always Fail
Yes
Always Fail
Limited
d
d. The processor may only issue hardware-generated speculative references to a 4K-byte physical page if it is a
verified page.
Table 4-14.
Register Return Values on Non-faulting Advanced/Speculative
Loads
Memory
Attribute
Speculative Load
(ld.s)
Advanced Load
(ld.a)
Speculative Advanced Load
(ld.sa)
Success
Failure
Success
Failure
Success
Failure
Speculative
Value
Nat
a
Value
N/a
Value
NaT
Non-speculative
N/A
Nat
b
N/A
Zero
c
N/A
NaT
Limited Speculation
N/A
Value
N/a
N/a
NaT
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 ...