1:40
Volume 1, Part 1: Execution Environment
4. Update architectural state, if necessary (
update
).
An
instruction group
is a sequence of instructions starting at a given bundle address
and slot number and including all instructions at sequentially increasing slot numbers
and bundle addresses up to the first stop, taken branch, Break Instruction fault due to
a
break.b
, or Illegal Operation fault due to a Reserved or Reserved if PR[qp] is one
encoding in the B-type opcode space. For the instructions in an instruction group to
have well-defined behavior, they must meet the ordering and dependency requirements
described below.
For the purpose of clarification, the following do not end instruction groups:
• Break instructions other than
break.b
(
break.f
,
break.i
,
break.m
,
break.x
)
• Check instructions (
chk.s
,
chk.a
,
fchkf
)
•
rfi
instructions not followed by a stop
•
brl
instructions not followed by a stop
• Interruptions other than a Break Instruction fault due to a
break.b
or an Illegal
Operation fault due to a Reserved or Reserved if PR[qp] is 1 encoding in the B-type
opcode space
Thus, even if one of the above causes a change in control flow, the instructions at
sequentially increasing addresses beyond the location of the change in control flow up
to the next true end of the instruction group had the change of control flow not
occurred, can still cause undefined values to be seen at the target of the change of
control flow, if they cause a dependency violation. There are never, however, any
dependencies between the instructions at the target of the change in control flow and
those preceding the change in control flow, even for the above cases.
If the instructions in instruction groups meet the resource-dependency requirements,
then the behavior of a program will be as though each individual instruction is
sequenced through these phases in the order listed above. The order of a phase of a
given instruction relative to any phase of a previous instruction is prescribed by the
instruction sequencing rules below.
• There is no a priori relationship between the
fetch
of an instruction and the
read
,
execute
, or
update
of any dynamically previous instruction. The
sync.i
and
srlz.i
instructions can be used to enforce a sequential relationship between the
fetch
of
all dynamically succeeding instructions and the
update
of all dynamically previous
instructions.
• Between instruction groups, every instruction in a given instruction group will
behave as though its read occurred after the update of all the instructions from the
previous instruction group. All instructions are assumed to have unit latency.
Instructions on opposing sides of a stop are architecturally considered to be
separated by at least one unit of latency.
Some system state updates require more stringent requirements than those
described here. See
Section 3.2, “Serialization” on page 2:17
for details.
• Within an instruction group, every instruction will behave as though its read of the
memory and ALAT state occurred after the update of the memory and ALAT state of
all prior instructions in that instruction group.
• Within an instruction group, every instruction will behave as though its read of the
register state occurred before the update of the register state by any instruction
(prior or later) in that instruction group, except as noted in the Register
dependencies and Memory dependencies described below.
Содержание 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 ...