Multiple-Access References
In some cases, multiple accesses may be
made to all or some of the bytes ofa storage operand. The following cases
may involve multiple-access references:
1. The storage operands of the following instructions: CONVERT TO BINA RY, CONVERT TO DECIMAL, MOVE INVERSE, MOVE WITH OFFSET, PACK, TRANSLATE, TEST BLOCK, and UNPACK. 2. The stores into that portion of the
first operand ofMOVE LONG which is filled with padding bytes.
3. The storage operands of the decimal
instructions.
4. The stores into a DAS-trace entry.
5. The storage operands of vector
facility instructions.
6. The stores associated
stop-and-store-statusPROCESSOR order.
with theSIGNAL When a storage-operand store reference
toa location is not a single-access
reference,the value placed at a byte
location is not necessarily the same foreach store access; thus, intermediate
results ina single-byte location may be observed by other CPUs and by channels. Programming Notes 1. When multiple fetch or store
accesses are made toa single byte
that is being changed by anotherCPU or by a channel, the result is
not necessarilylimited to that
which could beobtained by fetching
or storing the bits individually.
Forexample, the execution of MULTIPLY DECIMAL may consist in
repetitive additions and subtrac
tions, each of which causes the
second operand tobe fetched from
storage andthe first operand to be updated in storage.
2. WhenCPU instructions which make multiple-access references are used
to modify storage locations being
simultaneously accessed by anotherCPU or by a channel, multiple store
accesses toa single byte by the CPU may result in intermediate values being observed by the other CPU or by the channel. To avoid these intermediate values (for
example, when modifyinga CCW chain), only instructions making
single-access references should be
used.Block-Concurrent References
For some references, the accesses to all
bytes within a halfword, word, or
doubleword are specified to appear tobe block-concurrent as observed by other CPUs. These accesses do not necessarily
appear to channels to include more than
a byte at a time. The halfword, word,
or doubleword is referred to in this
section as a block. When a fetch-type
reference is specified to appear tobe concurrent within a block, no store
access to the block by anotherCPU is
permitted during the time that bytes
contained in the block are being
fetched. Accesses to the bytes within
the block by channels may occur between
the fetches. Whena store-type refer ence is specified to appear to be
concurrent within a block, no access to
the block, either fetch or store,is permitted by another CPU during the time
that the bytes within the block are
being stored. Accesses to the bytesin the block by channels may occur between
the stores.Consistency Specification
For all instructions in the S format and
RX format, with the exception ofEXECUTE, CONVERT TO DECIMAL, and CONVERT TO BINARY, when the operand is addressed
on a boundary which is integral to the
size of the operand, the storage-operand
references appear tobe block-concurrent
as observed by otherCPUs. For the instructions COMPARE AND SWAP and COMPARE DOUBLE AND SWAP, all
accesses to the storage operand appear
to be block-concurrent as observed by
otherCPUs. The instructions LOAD MULTIPLE and STORE MULTIPLE, when the operand starts on a
word boundary, and the instructionsCOMPARE LOGICAL CCLC), COMPARE LOGICAL CHARACTERS UNDER MASK, INSERT CHARACTERS UNDER MASK, and STORE CHARACTERS UNDER
MASK access their storage operands in a
left-to-right direction, and all bytes
accessed withineach doubleword appear
to be accessed concurrentlyas observed
by otherCPUs. The instructions LOAD CONTROL and STORE CONTROL access the storage operand in a
left-to-rightdirection, and all bytes
accessed withineach word appear to be
accessed concurrently as observed by
otherCPUs. When destructive overlap does not exist, the operands of MOVE (MVC), MOVE WITH Chapter 5. Program Execution 5-31
In some cases, multiple accesses may be
made to all or some of the bytes of
may involve multiple-access references:
1. The storage operands of the follow
first operand of
3. The storage operands of the decimal
instructions.
4. The stores into a DAS-trace entry.
5. The storage operands of vector
facility instructions.
6. The stores associated
stop-and-store-status
with the
to
reference,
location is not necessarily the same for
results in
accesses are made to
that is being changed by another
not necessarily
which could be
or storing the bits individually.
For
repetitive additions and subtrac
tions, each of which causes the
second operand to
storage and
2. When
to modify storage locations being
simultaneously accessed by another
accesses to
example, when modifying
single-access references should be
used.
For some references, the accesses to all
bytes within a halfword, word, or
doubleword are specified to appear to
appear to channels to include more than
a byte at a time. The halfword, word,
or doubleword is referred to in this
section as a block. When a fetch-type
reference is specified to appear to
access to the block by another
permitted during the time that bytes
contained in the block are being
fetched. Accesses to the bytes within
the block by channels may occur between
the fetches. When
concurrent within a block, no access to
the block, either fetch or store,
that the bytes within the block are
being stored. Accesses to the bytes
the stores.
For all instructions in the S format and
RX format, with the exception of
on a boundary which is integral to the
size of the operand, the storage-operand
references appear to
as observed by other
accesses to the storage operand appear
to be block-concurrent as observed by
other
word boundary, and the instructions
MASK access their storage operands in a
left-to-right direction, and all bytes
accessed within
to be accessed concurrently
by other
left-to-right
accessed within
accessed concurrently as observed by
other