Volume 3: Resource and Dependency Semantics
3:371
Resource and Dependency Semantics
5
5.1
Reading and Writing Resources
An Itanium instruction is said to be a
reader
of a resource if the instruction’s qualifying
predicate is 1 or it has no qualifying predicate or is one of the instructions that reads a
resource even when its qualifying predicate is 0, and the execution of the instruction
depends on that resource.
An Itanium instruction is said to be an
writer
of a resource if the instruction’s
qualifying predicate is 1 or it has no qualifying predicate or writes the resource even
when the qualifying predicate is 0, and the execution of the instruction writes that
resource.
An Itanium instruction is said to be a reader or writer of a resource even if it only
sometimes depends on that resource and it cannot be determined statically whether
the resource will be read or written. For example,
cover
only writes CR[IFS] when
PSR.ic is 0, but for purposes of dependency, it is treated as if it always writes the
resource since this condition cannot be determined statically. On the other hand,
rsm
conditionally writes several bits in the PSR depending on a mask which is encoded as an
immediate in the instruction. Since the PSR bits to be written can be determined by
examining the encoded instruction, the instruction is treated as only writing those bits
which have a corresponding mask bit set. All exceptions to these general rules are
described in this appendix.
5.2
Dependencies and Serialization
A
RAW
(Read-After-Write) dependency is a sequence of two events where the first is a
writer of a resource and the second is a reader of the same resource. Events may be
instructions, interruptions, or other ‘uses’ of the resource such as instruction stream
fetches and VHPT walks.
covers only dependencies based on instruction
readers and writers.
A
WAW
(Write-After-Write) dependency is a sequence of two events where both events
write the resource in question. Events may be instructions, interruptions, or other
‘updates’ of the resource.
covers only dependencies based on instruction
writers.
A
WAR
(Write-After-Read) dependency is a sequence of two instructions, where the
first is a reader of a resource and the second is a writer of the same resource. Such
dependencies are always allowed except as indicated in
related to instruction readers and writers are included.
A
RAR
(Read-After-Read) dependency is a sequence of two instructions where both are
readers of the same resource. Such dependencies are always allowed.
Summary of Contents for Itanium 9150M
Page 1: ......
Page 209: ...3 200 Volume 3 Instruction Reference padd Interruptions Illegal Operation fault...
Page 405: ...3 396 Volume 3 Resource and Dependency Semantics...
Page 406: ...3 397 Intel Itanium Architecture Software Developer s Manual Rev 2 3 Index...
Page 407: ...3 398 Intel Itanium Architecture Software Developer s Manual Rev 2 3...
Page 419: ...INDEX Index 12 Index for Volumes 1 2 3 and 4...
Page 420: ......