
Volume 2, Part 1: Itanium
®
Architecture-based Operating System Interaction Model with IA-32 Applications
2:271
10.7.2.1
I/O Port Addressing Restrictions
For the 64MB physical I/O port block the following operations are undefined and may
result in unpredictable processor operation; references larger than 4-bytes, instruction
fetch references, references to any memory attribute other than UC, or semaphore
references which require an atomic lock. To ensure I/O ports accesses are not granted
for which the TLB has not been consulted, the processor ensures:
• All byte addresses within the same 4KB page alias to the 4 ports defined by the
mapped physical I/O port page.
• All IA-32 and Itanium unaligned loads and stores that cross a 4-byte boundary to
the processor’s physical I/O port block are truncated. That is the bus transaction to
the area before the 4-byte boundary is performed (the number of bytes emitted is
model specific). No bus transaction is performed for the bytes that are beyond the
4-byte boundary. 4-byte crosser loads while return some undefined data. 4-byte
crosser stores will not write all intended bytes.
• For IA-32 IN/OUT accesses that cross a 4-port boundary the processor will break
the operation into smaller 1, 2, or 3 byte I/O port transactions within each 4KB
virtual page.
10.7.3
IA-32 IN/OUT instructions
IA-32 I/O instructions (IN, OUT, INS, OUTS) defined in the
Intel
®
64 and IA-32
Architectures Software Developer’s Manual
are augmented as follows:
• I/O instructions first check for IOPL permission. If PSR.cpl<=EFLAG.iopl, access
permission is granted. Otherwise the TSS I/O permission bitmap may be consulted
as defined below. If the Bitmap denies permission or is not consulted an
IA_32_Exception(GPFault) is generated.
• If IOPL permission is denied and CFLG.io is 1, the TSS I/O permission bitmap is
consulted for access permission. If the corresponding bit(s) for the I/O port(s) is 1,
indicating permission is denied, a GPFault is generated. Otherwise access
permission is granted. The TSS I/O permission bitmap provides 1 port permission
control at the expense of additional processor data memory references. This
mechanism can be used in the Itanium System Environment, but is not
recommended since TLB access controls defined by the Itanium architecture are
faster and provide a consistent control mechanism for both IA-32 and Itanium
architecture-based code. Whereas, the TLB mechanism provides a control
mechanism for both IA-32 and Itanium memory references.
• If CFLG.io is 0, the TSS I/O permission bitmap is not consulted and if the IOPL
check failed an IA_32_Exception(GPFault) is generated. By setting CFLG.io to 0,
operating system code can disable all processor references to the TSS. By setting
IOPL<PSR.cpl and setting CFLG.io to 0, operating system code can block all user
level execution of IA-32 I/O instructions, no TSS needs to be allocated or defined by
the operating system.
• I/O port references generate a virtual port address relative to the IOBase register
Section 10.7.1, “Virtual I/O Port Addressing” on page 2:268
.
• If data translations are enabled, the TLB is consulted for the required virtual to
physical mapping. If the required mapping is not present a VHPT Translation, Data
TLB Miss or Alternative Data TLB Miss fault is generated.
• If data translations are enabled, Access Rights, Permission Keys, Access, Dirty and
Present bits are checked and faults generated.
Содержание 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 ...