
2:72
Volume 2, Part 1: Addressing and Protection
In the sign-extension model, software ensures that the upper 32-bits of a virtual
address are always equal to bit 31. Address computations use the
add
,
shladd
, and
sxt
instructions. This model splits the 32 bit address space into two halves that are spread
into 2
31
bytes of virtual regions 0 and 7 within the 64-bit virtual address space. In this
model, regions 2 to 6 are accessible only by 64-bit addressing.
The pointer “swizzling” model performs address computations with the
addp4
, and
shladdp4
instructions. These instructions generate a 32-bit address within the 64-bit
virtual address space as shown in
. The 32-bit virtual address space is
divided into 4 sections that are spread into 2
30
bytes of virtual regions 0 to 3 within the
64-bit virtual address space. In this model, regions 4 to 7 are accessible only by 64-bit
addressing.
In the pointer “swizzling” model, mappings within each region do not necessarily start
at offset zero, since the upper 2-bits of a 32-bit address serve both as the virtual region
number and an offset within each region. Virtual address bits{62:61} do not participate
in the address addition, therefore some regions may be effectively larger than 2
30
bytes
due to the addition of a 32-bit offset and lack of a carry into bits{62:61}. Note that the
conversion is non-destructive: a converted 64-bit pointer can be used as a 32-bit
pointer. Flat 31 or 32 bit address spaces can be constructed by assigning the same
region identifier to contiguous region registers. Branches into another 2
30
-byte region
are performed by first calculating the target address in the 32-bit virtual space and
then converting to a 64-bit pointer by
addp4
. Otherwise, branch targets will extend
above the 2
30
byte boundary within the originating region.
4.1.10
Virtual Aliasing
Virtual aliasing (two or more virtual pages mapped to the same physical page) is
functionally supported for memory references (including IA-32), however performance
may be degraded on some processor models where the distance between virtual aliases
is less than 1 MB. To avoid any possible performance degradation, software is advised
to use aliases whose virtual addresses differ by an integer multiple of 1 MB. The
processor ensures cache coherency and data dependencies in the presence of an alias.
Stores using a virtual alias followed by a load with another alias to the same physical
location see the effects of prior stores to the same physical memory location.
To support advanced loads in the presence of a virtual alias, the processor ensures that
the Advanced Load Address Table (ALAT) is resolved using physical addresses and is
coherent with physical memory. For details, please refer to
the ALAT and Related Instructions” on page 1:65
Figure 4-17. 32-bit Address Generation using addp4
0
63 62 61 60
32 31
0
63
32 31
0
000000
63
32 31 30 29
0
+
Base
Offset
Содержание 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 ...