Each class has two related PSW s, called "old" and "new," in permanently assigned real main
storage locations. In all classes, an interruption in
volves storing information identifying the cause of
the interruption, storing the currentPSW in its "old" position, and making the PSW at the "new" position
the current PSW.
The oldPSW holds all necessary status informa
tion of theCPU existing at the time of the interrup
tion. If, at the conclusion of the program invoked by
the interruption, there is an instruction to make the
oldPSW the current PSW, the CPU is restored to
the state prior to the interruption, and the interrupt
ed program continues.
Sequence of Storage References
Conceptually, theCPU processes instructions one at
a time, with the execution of one instruction preced
ing the execution of the following instruction, and
the execution of the instruction specified by a suc
cessful branch follows the execution of the branch.
Similarly, an interruption takes place between execu
tions of instructions.
The sequence of events implied by the processing
just described is sometimes called the conceptual
sequence or conceptual order.
Even though physical storage width and overlap
of instruction execution with storage accessing may
cause actual processing to be different, as observed
by aCPU itself, each operation is performed se
quentially, with one instruction being fetched after
the preceding operation is completed and before the
execution of the current operation is begun. With
certain exceptions discussed in the section
"Interlocks Between Logical and Real Storage Refer
ences" in the chapter "Dynamic Address Transla
tion," the results generated are those that would
have been obtained had the operation been per
formed in the conceptual sequence. Thus, it is possi
ble to modify an instruction in storage by the imme
diately preceding instruction.
In very simple machines in which operations are
not overlapped, the conceptual and actual order are
essentially the same. However, in more complex
machines, overlapped operation, buffering of oper -
ands and results, and execution times which are
comparable to the propagation delays between units
can cause the actual order to differ considerably
from the conceptual order. In these machines, spe
cial circuitry is employed to detect dependencies
between operations and ensure that the results ob
tained are those that would have been obtained if
the operations had been performed in the conceptual
order. However, as observed by channels and other
CPUs, the sequence may appear to differ from the
conceptual order.
When only a singleCPU is involved, it can nor
mally be assumed that the execution of each instruc
tion occurs as an indivisible event. However, in actu
al operation, the execution of an instruction may
consist of a series of discrete steps. Depending on
the instruction, operands may be fetched and stored
in a piecemeal fashion, and some delay may occur
between fetching and storing a result. As a conse
quence, anotherCPU or a channel may be able to
observe intermediate, or partially completed, results.
When the program on oneCPU interacts with a
program on a channel or another CPU, the programs
may have to take into consideration that a single
operation may consist of a series of storage refer
ences, that a storage reference may in turn consist of
a series of accesses, and that the conceptual and
actual sequences of these accesses may differ. Stor
age references associated with instruction execution
are of the following types: instruction fetches, DAT
table fetches, storage operand references, and key
in-storage accesses.
Instruction Fetch
Instruction fetching consists in fetching the one, two,
or three half words specified by the instruction ad
dress in the current PSW. The immediate field of an
instruction is accessed as part of an instruction fetch.
If, however, an instruction specifies a storage ope
rand at the location occupied by the instruction it
self, the location is accessed both as an instruction
and as a storage operand. The fetch of the subject
instruction of EXECUTE is considered to be an
instruction fetch.
The bytes of an instruction may be fetched piece
meal and are not necessarily accessed in a left-to
right direction. The instruction may be fetched mul
tiple times for a single execution; for example, it may
be fetched for testing the availability of dynamic
address-translation tables or for inspection for
program-event exceptions, and it may be ref etched
for actual execution.
Instructions are not necessarily fetched in the
order in which they are conceptually executed and
are not necessarily fetched for each time they are
executed. In particular, the fetching of an instruction
may precede the storage-operand references for an
instruction that is conceptually earlier. The instruc
tion fetch occurs prior to all storage-operand refer
ences for all instructions that are conceptually later.
There is no limit established as to the number of
instructions which may be prefetched, and multiple
copies may be fetched of the contents of a single
storage location. As a result, the instruction executedProgram Execution 23
storage locations. In all classes, an interruption in
volves storing information identifying the cause of
the interruption, storing the current
the current PSW.
The old
tion of the
tion. If, at the conclusion of the program invoked by
the interruption, there is an instruction to make the
old
the state prior to the interruption, and the interrupt
ed program continues.
Sequence of Storage References
Conceptually, the
a time, with the execution of one instruction preced
ing the execution of the following instruction, and
the execution of the instruction specified by a suc
cessful branch follows the execution of the branch.
Similarly, an interruption takes place between execu
tions of instructions.
The sequence of events implied by the processing
just described is sometimes called the conceptual
sequence or conceptual order.
Even though physical storage width and overlap
of instruction execution with storage accessing may
cause actual processing to be different, as observed
by a
quentially, with one instruction being fetched after
the preceding operation is completed and before the
execution of the current operation is begun. With
certain exceptions discussed in the section
"Interlocks Between Logical and Real Storage Refer
ences" in the chapter "Dynamic Address Transla
tion,
have been obtained had the operation been per
formed in the conceptual sequence. Thus, it is possi
ble to modify an instruction in storage by the imme
diately preceding instruction.
In very simple machines in which operations are
not overlapped, the conceptual and actual order are
essentially the same. However, in more complex
machines, overlapped operation, buffering of oper -
ands and results, and execution times which are
comparable to the propagation delays between units
can cause the actual order to differ considerably
from the conceptual order. In these machines, spe
cial circuitry is employed to detect dependencies
between operations and ensure that the results ob
tained are those that would have been obtained if
the operations had been performed in the conceptual
order. However, as observed by channels and other
CPUs, the sequence may appear to differ from the
conceptual order.
When only a single
mally be assumed that the execution of each instruc
tion occurs as an indivisible event. However, in actu
al operation, the execution of an instruction may
consist of a series of discrete steps. Depending on
the instruction, operands may be fetched and stored
in a piecemeal fashion, and some delay may occur
between fetching and storing a result. As a conse
quence, another
observe intermediate, or partially completed, results.
When the program on one
program on a channel or another CPU, the programs
may have to take into consideration that a single
operation may consist of a series of storage refer
ences, that a storage reference may in turn consist of
a series of accesses, and that the conceptual and
actual sequences of these accesses may differ. Stor
age references associated with instruction execution
are of the following types: instruction fetches, DAT
table fetches, storage operand references, and key
in-storage accesses.
Instruction Fetch
Instruction fetching consists in fetching the one, two,
or three half words specified by the instruction ad
dress in the current PSW. The immediate field of an
instruction is accessed as part of an instruction fetch.
If, however, an instruction specifies a storage ope
rand at the location occupied by the instruction it
self, the location is accessed both as an instruction
and as a storage operand. The fetch of the subject
instruction of EXECUTE is considered to be an
instruction fetch.
The bytes of an instruction may be fetched piece
meal and are not necessarily accessed in a left-to
right direction. The instruction may be fetched mul
tiple times for a single execution; for example, it may
be fetched for testing the availability of dynamic
address-translation tables or for inspection for
program-event exceptions, and it may be ref etched
for actual execution.
Instructions are not necessarily fetched in the
order in which they are conceptually executed and
are not necessarily fetched for each time they are
executed. In particular, the fetching of an instruction
may precede the storage-operand references for an
instruction that is conceptually earlier. The instruc
tion fetch occurs prior to all storage-operand refer
ences for all instructions that are conceptually later.
There is no limit established as to the number of
instructions which may be prefetched, and multiple
copies may be fetched of the contents of a single
storage location. As a result, the instruction executed