2:130
Volume 2, Part 1: Interruptions
5.8.4.2
Interrupt and IPI Ordering
Interrupt messages from external device(s), or external interrupts routed to the
processor’s LINT pins, when present, may arrive at one or more processors and become
pending in any order. No ordering is enforced by the processor or the platform.
As observed by a receiving processor, IPIs emitted from the same issuing processor
may be pended in any order, even when the receiving processor and the issuing
processor are the same.
As observed by a receiving processor, IPIs are pended after all prior loads and stores
emitted by the same issuing processor are visible if and only if the IPI is issued with a
st.rel
(or proceeded by an
mf
), even when the receiving processor and the issuing
processor are the same. For all other cases, no ordering is implied between IPI
transactions and prior cacheable or uncached memory references.
As observed by a receiving processor, no ordering is implied between IPIs and
subsequent loads/stores from the same issuing processor, even when the receiving
processor and the issuing processor are the same. Subsequent loads or stores may
become visible before an IPI is seen as pending. Data or instruction serialization
operations, memory fences (
mf
or
mf.a
), or
st.rel
do not ensure an IPI is pending at
the target processor (including self) by a given point in program execution on the local
processor.
5.8.4.3
Interrupt Acknowledge (INTA) Cycle
Intel 8259A-compatible external interrupt controllers can not issue interrupt messages
and therefore do not specify an external interrupt vector number when the interrupt
request is generated. When accepting an external interrupt, software must inspect the
vector number supplied by the IVR register. If the vector matches the vector number
assigned to the external controller (can be ExtINT, or any other vector number based
on software convention), software must acquire the actual external interrupt vector
number from the external interrupt controller by issuing a 1-byte load from the INTA
Byte.
The INTA Byte is located within the upper half of the Processor Interrupt Block, at offset
0x1E0000 from the base. A single byte load from the INTA address causes the
processor to emit the INTA cycle on the processor system bus. An Intel
8259A-compatible external interrupt controller must respond with the actual interrupt
vector number as the data to be loaded. If two INTA cycles are required by the external
interrupt controller, the platform must provide this functionality. Any memory operation
to the INTA address other than a single byte load is undefined.
Software must issue an EOI to the local processor, to clear the interrupt in-service
indication for the vector associated with the external interrupt controller.
5.8.4.4
External Task Priority (XTP) Cycle
Some model-specific system configurations support an External Task Priority Register
(XTPR) per processor in external bus logic. A processor’s XTPR can be modified by
storing one byte of data to the processor’s XTP Byte address. This generates a special
bus transaction required to change the processor’s XTPR within the system. Please refer
to system-specific documentation for XTPR bit format and field definitions. The
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 ...