When an instruction has two storage the first of which causes an update reference and the
second a fetch reference, it is unpredictable which
operand is fetched first, or how much of one oper
and is fetched before the other operand is fetched.
Similarly, it is unpredictable how much of the result
is processed before it is returned to storage. In the
case of destructively overlapping operands, the por
tion of the second operand which is common to the
first is not necessarily fetched from storage.
Programming Notes
The independent fetching of a single location for
each of two operands may affect the program execu
tion in the following situation.
When the same main-storage location is designat
ed by two operand addresses of an instruction, and a
channel or anotherCPU causes the contents of the
location to change during execution of the instruc
tion, the old and new values of the location may be
used simultaneously. For example, comparison of a
field to itself may yield a result other than equal, orEXCLUSIVE-ORing of a field to itself may yield a
result other than zero.
Serialization
All interruptions, and the execution of certain in
structions, cause serialization ofCPU operation.
Execution of a serialization function consists in com
pletingaU conceptually prior storage accesses by this CPU, as observed by channels and other CPUs, before the conceptually following storage accesses I occur. Sedalization affect.s the order of all accesses
by thisCPU to storage and to the key in storage,
exceptfor those associated with DAT -table-entry
fetch.
Serialization is performed by all interruptions and
by the execution of the following instructions:
1. These general instructions: BRANCHON CONDITION (BCR) with the Rl and R2 fields
containing all ones and all zeros, respectively,
andCOMPARE AND SWAP, COMPARE DOUBLE AND SWAP, STORE CLOCK, SUPERVISOR CALL, and TEST AND SET.
2.LOADPSW. 3. PURGE TLB and SET PREFIX, which also
cause the translation-look aside buffer to be
purged.
4. AllI/O instructions.
5. The signaling instructions: READ DIRECT,
WR1[TE DIRECT, and SIGNALPROC ESSOR. The sequence of events associated with a serializ-
28 System/370 Principles ofOperation ing operation is as follows: • All conceptually previous CPU storage accesses
by thisCPU are completed, as observed by
channels and otherCPUs. This includes all
conceptually previous stores and changes to
keys in storage.• The normal function associated with the serial
izing operation is performed. In the case of
instruction execution, operands are fetched,
and the storing of results is completed. The
exceptions areLPSW and SPX, in which the
operands may be fetched before previous
stores have been completed, and interruptions,
in which the interruption code and associated
fields may be stored prior to the serialization.
The fetching of the serializing instruction oc
curs before the execution of the instruction and
may precede the execution of previous instruc
tions, but may not precede the completion of
the previous serializing operation. In the case
of an interruption, the oldPSW, the interrup
tion code, and other information, if any, are
stored, and the newPSW is fetched. • Finally, instruction fetch and operand accesses
for conceptually subsequent operations may
continue.
A serializing function affects the order of storage
accesses that are under the control of theCPU in
which the serializing function takes place. It does
not affect the order of storage accesses caused by a
program in a channel or anotherCPU. Programming Notes
The following are some effects of a serializing opera
tion:
1. When an instruction changes the contents of a
storage lo-cation that is used as a source of a
following instruction and when different ad
dresses are used to designate the location for
storing the result and fetching the instruction, a
serializing operation following the change en
sures that the modified instruction is executed.
2. When a serializing operation takes place, chan
nels and any otherCPU observe instruction
and operand fetching and result storing to take
place in the order established by the serializing
operation.
Storing into a location from which a serializing
instruction is fetched-does not necessarily affect the
execution of the serializing instruction unless a seri
alizing function has been performed after the storing
and before the execution of the serializing instruc
tion.
second a fetch reference, it is unpredictable which
operand is fetched first, or how much of one oper
and is fetched before the other operand is fetched.
Similarly, it is unpredictable how much of the result
is processed before it is returned to storage. In the
case of destructively overlapping operands, the por
tion of the second operand which is common to the
first is not necessarily fetched from storage.
Programming Notes
The independent fetching of a single location for
each of two operands may affect the program execu
tion in the following situation.
When the same main-storage location is designat
ed by two operand addresses of an instruction, and a
channel or another
location to change during execution of the instruc
tion, the old and new values of the location may be
used simultaneously. For example, comparison of a
field to itself may yield a result other than equal, or
result other than zero.
Serialization
All interruptions, and the execution of certain in
structions, cause serialization of
Execution of a serialization function consists in com
pleting
by this
except
fetch.
Serialization is performed by all interruptions and
by the execution of the following instructions:
1. These general instructions: BRANCH
containing all ones and all zeros, respectively,
and
2.
cause the translation-look aside buffer to be
purged.
4. All
5. The signaling instructions: READ DIRECT,
WR1[TE DIRECT, and SIGNAL
28 System/370 Principles of
by this
channels and other
conceptually previous stores and changes to
keys in storage.
izing operation is performed. In the case of
instruction execution, operands are fetched,
and the storing of results is completed. The
exceptions are
operands may be fetched before previous
stores have been completed, and interruptions,
in which the interruption code and associated
fields may be stored prior to the serialization.
The fetching of the serializing instruction oc
curs before the execution of the instruction and
may precede the execution of previous instruc
tions, but may not precede the completion of
the previous serializing operation. In the case
of an interruption, the old
tion code, and other information, if any, are
stored, and the new
for conceptually subsequent operations may
continue.
A serializing function affects the order of storage
accesses that are under the control of the
which the serializing function takes place. It does
not affect the order of storage accesses caused by a
program in a channel or another
The following are some effects of a serializing opera
tion:
1. When an instruction changes the contents of a
storage lo-cation that is used as a source of a
following instruction and when different ad
dresses are used to designate the location for
storing the result and fetching the instruction, a
serializing operation following the change en
sures that the modified instruction is executed.
2. When a serializing operation takes place, chan
nels and any other
and operand fetching and result storing to take
place in the order established by the serializing
operation.
Storing into a location from which a serializing
instruction is fetched-does not necessarily affect the
execution of the serializing instruction unless a seri
alizing function has been performed after the storing
and before the execution of the serializing instruc
tion.