
Volume 2, Part 2: Runtime Support for Control and Data Speculation
2:579
Runtime Support for Control and Data
Speculation
6
An Itanium architecture-based operating system needs to handle exceptions generated
by control speculative loads (
ld.s
or
ld.sa
), data speculative loads (
ld.a
) and
architectural loads (
ld
) in different ways.
Software does not have to worry about control or data speculative loads potentially
hitting uncacheable memory with side-effects, since
ld.s
,
ld.sa
, and
ld.a
instructions
to non-speculative memory are always deferred by the processor for details refer to
Section 4.4.6, “Speculation Attributes” on page 2:79
. As a result, compilers can freely
use control and data speculation to all program variables.
Control speculative loads require special exception handling and the Itanium
architecture provides a variety of deferral mechanisms for handling of control
speculative exception handling. This is discussed in
.
The Itanium architecture supports different control speculation recovery models. These
are discussed in
.
Handling of exceptions caused by architectural and data speculative loads is the same,
except for emulation of unaligned data speculative references, which require special
unaligned emulation handling. This is discussed in
.
6.1
Exception Deferral of Control Speculative Loads
Exceptions that occur on control speculative loads (
ld.s
or
ld.sa
) can be handled by
the operating system in different ways. The operating system can configure a processor
based on the Itanium architecture in three ways:
• Hardware-Only Deferral: automatic hardware deferral of all control speculative
exceptions. In this case, the processor hardware will always defer excepting control
speculative loads without invoking the operating system.
• Combined Hardware/Software Deferral: automatic deferral of some control
speculative exceptions, but deliver others to software. In this case, some
exceptions will result in hardware deferral as described above, other exceptions will
be reported to the operating system. The operating system fault handlers can
identify that an exception has been caused by a control speculative load (ISR.sp will
be 1). Furthermore, OS handlers can software-defer an exception on a control
speculative load by setting IPSR.ed to 1 prior to
rfi
-ing back to the
ld.s
or
ld.sa
.
This allows an operating system to service “cheap” non-fatal exceptions (e.g.
simple TLB misses), while software-deferring both “expensive” non-fatal (e.g. page
faults) as well as fatal exceptions (e.g. non-recovery protection violation).
• Software-Only Deferral: processor is configured to deliver all control speculative
exceptions to software. In this case, operating system software handles all
non-fatal control speculative exceptions, and software-defers all fatal control
speculative exceptions.
Содержание 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 ...