Volume 2, Part 2: External Interrupt Architecture
2:605
the way out of an uninterruptable code section software is not required to serialize the
setting of PSR.i either, unless it is of interest to software to be able to take interrupts in
the very next instruction group. A code example for this case is given below:
rsm i ;;
// rsm of PSR.i takes effect on the next instruction
// uninterruptable code sequence here
ssm i ;;
// ssm of PSR.i does require data serialization, if we need to ensure
// that external interrupts are enabled at the very next instruction. If
// data serialization is omitted, PSR.i is set to 1 at the latest when
// the next exception is taken.
By avoiding the serialization operations on PSR.i the performance of such
uninterruptable code sections is improved.
10.3.2
IVR Reads and EOI Writes
As described in
, IVR reads return the highest priority, pending, unmasked
vector, and places this vector “in-service.” Additionally, IVR reads have the side-effect
of masking all vectors that have equal or lower priority than one that is returned by the
IVR read. Correspondingly, writes to the EOI register unmask all vectors with equal or
lower priority than the highest priority “in-service” vector. Due to nesting of higher
priority interrupts, it is possible to have multiple vectors in the “in-service” state.
10.3.3
Task Priority Register (TPR)
The Task Priority Register (TPR) provides an additional interrupt masking capability. It
allows software to mask interrupt “priority classes” of 16 vectors each by specifying the
mask priority class in the TPR.mic field. The TPR.mmi field allows masking of all
maskable external interrupts (essentially all but NMI).
An example of TPR use is shown in
Section 10.5.2, “TPR and XPTR Usage Example” on
.
10.3.4
External Task Priority Register (XTPR)
The External Task Priority Register (XTPR) is a per-processor resource that can be
provided by external bus logic in some Itanium architecture-based platforms. If
supported by the platform, XTPR can be used by the operating system to redirect
external interrupts to other processors in a multiprocessor system.
The XTPR is updated by performing a 1-byte store to the XTP byte which is located at
an offset of 0x1e0008 in the Processor Interrupt Block (see
for details). Since the timing of the modification of the XTP register is
not time critical there is no serialization required. Effects of the one byte store
operation are platform specific. Typically, it will generate a transaction on the system
bus identifying it as an XTP register update transaction, and will indicate which
processor generated the transaction as well as the stored data.
An example of XTPR use is included in
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 ...