Intel ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3 Manual page 1272

Hide thumbs Also See for ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3:
Table of Contents

Advertisement

may expand to contain other classes, and that when fully expanded, a set of
classes (e.g., the readers of some resource) may contain the same instruction
multiple times.
• The syntax 'x\y' where x and y are both instruction classes, indicates an unnamed
instruction class that includes all instructions in instruction class x but that are not
in instruction class y. Similarly, the notation 'x\y\z' means all instructions in
instruction class x, but that are not in either instruction class y or instruction class
z.
• Resources on separate rows of a table are independent resources. This means that
there are no serialization requirements for an event which references one of them
followed by an event which uses a different resource. In cases where resources are
broken into subrows, dependencies only apply between instructions within a
subrow. Instructions that do not appear in a subrow together have no
dependencies (reader/writer or writer/writer dependencies) for the resource in
question, although they may still have dependencies on some other resource.
• The dependencies listed for pairs of instructions on each resource are not unique
the same pair of instructions might also have a dependency on some other resource
with a different semantics of dependency. In cases where there are multiple
resource dependencies for the same pair of instructions, the most stringent
semantics are assumed: instr overrides data which overrides impliedF which
overrides implied which overrides none.
• Arrays of numbered resources are represented in a single row of a table using the
% notation as a substitute for the number of the resource. In such cases, the
semantics of the table are as if each numbered resource had its own row in that
table and is thus an independent resource. The range of values that the % can take
are given in the "Resource Name" column.
• An asterisk '*' in the "Resource Name" column indicates that this resource may not
have a physical resource associated with it, but is added to enforce special
dependencies.
• A pound sign '#' in the "Resource Name" column indicates that this resource is an
array of resources that are indexed by a value in a GR. The number of individual
elements in the array is described in the detailed description of each resource.
• The "Semantics of Dependency" column describes the outcome given various
serialization and instruction group boundary conditions. The exact definition for
each keyword is given in
Table 5-1.
Semantics of Dependency Codes
Semantics of
Dependency Code
instr
Instruction Serialization (See
Serialization" on page
data
Data Serialization (See
page
2:18)
implied
Instruction Group Break. Writer and reader must be in
separate instruction groups. (See
Sequencing Considerations" on page
Volume 3: Resource and Dependency Semantics
Table
5-1.
Serialization Type Required
"Instruction
2:18).
"Data Serialization" on
"Instruction
1:39).
Effects of Serialization Violation
Atomic: Any attempt to read a resource after one or
more insufficiently serialized writes is either the
value previously in the register (before any of the
unserialized writes) or the value of one of any
unserialized writes. Which value is returned is
unpredictable and multiple insufficiently serialized
reads may see different results. No fault will be
caused by the insufficient serialization.
3:373

Advertisement

Table of Contents
loading

This manual is also suitable for:

Itanium architecture 2.3

Table of Contents