2:98
Volume 2, Part 1: Interruptions
Upon an interruption, asynchronous events such as external interrupt delivery are
disabled automatically by hardware to allow software to either handle the interruption
immediately or to safely unload the interruption resources and save them to memory.
Software will either deal with the cause of the interruption and
rfi
back to the point of
the interruption, or it will establish a new environment and spill processor state to
memory to prepare for a call to higher-level code. Once enough state has been saved
(such as the IIP, IPSR, and the interruption resources needed to resolve the fault) the
low-level code can re-enable interruptions by restoring the PSR.ic bit and then the PSR.i
bit. (
See “Re-enabling External Interrupt Delivery” on page 2:120.
one set of interruption resources, software must save any interruption resource state
the operating system may require prior to unmasking interrupts or performing an
operation that may raise a synchronous interruption (such as a memory reference that
may cause a TLB miss).
The PSR.ic (interruption state collection) bit supports an efficient nested interruption
model. Under normal circumstances the PSR.ic bit is enabled. When an interruption
event occurs, the various interruption resources are overwritten with information
pertaining to the current event. Prior to saving the current set of interruption resources,
it is often advantageous in a miss handler to perform a virtual reference to an area
which may not have a translation. To prevent the current set of resources from being
overwritten on a nested fault, the PSR.ic bit is cleared on any interruption. This will
suppress the writing of critical interruption resources if another interruption occurs
while the PSR.ic bit is cleared. If a data TLB miss occurs while the PSR.ic bit is zero,
then hardware will vector to the Data Nested TLB fault handler.
For a complete description of interruption resources (IFA, IIP, IPSR, ISR, IIM, IIPA,
ITIR, IHA, IFS, IIB0-1) see
“Control Registers” on page 2:29
5.3
Interruption Handling during Instruction
Execution
Execution of Itanium instructions involves calculating the address of the current bundle
from the region registers and the IP and then fetching, decoding, and executing
instructions in that bundle. Execution of IA-32 instructions involves calculating the
64-bit linear address of the current instruction from the EIP, code segment descriptors,
and region registers and then fetching, decoding, and executing the IA-32 instruction.
(See Section 3.4).
The execution process involves performing the events listed below. The values of the
PSR bits are the values that exist before the instruction is executed (except for the case
of instructions that are immediately preceded by a mandatory RSE load which clears
the PSR.da and PSR.dd bits). Changes to the PSR bits only affect subsequent
instructions, and are only guaranteed to be visible by the insertion of the appropriate
serializing operation.
See “Serialization” on page 2:17.
1. Resets are always enabled, and may occur anytime during instruction execution.
2. If the PSR.mc bit is 0 then machine check aborts may occur.
3. The processor checks for enabled pending INITs and PMIs, and for enabled
unmasked pending external interrupts.
Содержание 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 ...