instruction fetch. If, however, an
instruction designatesa storage operand
at the location occupied by the instruc
tion itself, the location is accessed
both as an instruction and as a storage
operand.The fetch of the target
instruction of EXECUTE is considered tobe an instruction fetch. The bytes of an instruction may be
fetchedpiecemeal and are not necessar
ilyaccessed in a left-to-right direc
tion.The instruction may be fetched
multiple times fora single execution;
forexample, it may be fetched for test
ingthe addressability of operands or
for inspection ofPER events, and it may be refetched for actual execution.
Instructionsare not necessarily fetched
inthe sequence in which they are conceptually executed and are not neces
sarily fetched each time theyare executed. In particular, the fetching
of an instruction mayprecede the storage-operand references for an
instruction that is conceptually
earlier. The instruction fetch occurs
prior to all storage-operandreferences for all instructions that are conceptu
ally later.
An instruction maybe prefetched by
using a virtual address only whenthe associated OAT table entries are attached and valid or when entries which
qualify for substitution for thetable entries exist in the TLB. An instruc
tion thathas been prefetched may be interpreted for execution only for the
same virtual address for whichthe instruction was prefetched. No limit is established on the number of
instructions which maybe prefetched, and multiple copies of the contents of a
single storage location may be fetched.
As a result,the instruction executed is
not necessarily themost recently
fetched copy. Storingcaused by other CPUs and by channels does not necessar
ily change the copy of prefetched
instructions. However, ifa store that
is conceptually earlier is made by thesame CPU using the same effective
address as that by which the instruction
is subsequently fetched,the updated
information is obtained.
All copies of prefetched instructions
are discardedwhen: • • • • A serializing function is
performed.
TheCPU enters the operating state. The CPU changes from OAT on to OAT off or from OAT off to OAT on.
A change is made to
parameter in control
1 whenOAT is on.
a translation
register0 or • • DAS is installed and the CPU chang es from one to the other of the
primary-space mode and secondary
space mode.DAS is installed, and a change is
made toa translation parameter in
control register 7 whenOAT is on.
Programming Notes
1. As observed by aCPU i tsel f, its
own instruction prefetching is not
normally apparent; the only excep
tion occurs when multiple virtual
addresses in a single address
space, or virtual addresses in
different address spaces,map to a single real address. This is
described in the section "Inter
locks for Virtual-Storage
References" in this chapter.
2. The followingare some effects of
instruction prefetching onone CPU as observed by other CPUs and by
channels.
It is possible forone CPU to
prefetch the contents of a storage
location, after which anotherCPU or a channel can change the
contents of that storage location
and then set a flag to indicate
that the change has been made.
Subsequently, the firstCPU can test and find the flag set, branch
to the modified location, andexecute the original prefetched
contents.
It is possible, if anotherCPU or a channel concurrently modifies the
instruction, for oneCPU to recog
nize the changes to some but not
all bit positions of an
instruction.
It is possible for oneCPU to
prefetch an instruction and subse
quently, before the instructionis executed, for another CPU to change
the storage key. As a result, the
firstCPU may appear to execute
instructions from aprotected stor
age location. However, the copy ofthe instructions executed is the
copy prefetched before the location
was protected.
OAT-TABLE FETCHES
The fetching of dynamic-address
translation (OAT) tableentries may
occur as follows:
1. AOAT-table entry may be prefetched
intothe translation-Iookaside
Chapter 5.Program Execution 5-27
instruction designates
at the location occupied by the instruc
tion itself, the location is accessed
both as an instruction and as a storage
operand.
instruction of EXECUTE is considered to
fetched
ilyaccessed in a left-to-right direc
tion.
multiple times for
for
ing
for inspection of
Instructions
in
sarily fetched each time they
of an instruction may
instruction that is conceptually
earlier. The instruction fetch occurs
prior to all storage-operand
ally later.
An instruction may
using a virtual address only when
qualify for substitution for the
tion that
same virtual address for which
instructions which may
single storage location may be fetched.
As a result,
not necessarily the
fetched copy. Storing
ily change the copy of prefetched
instructions. However, if
is conceptually earlier is made by the
address as that by which the instruction
is subsequently fetched,
information is obtained.
All copies of prefetched instructions
are discarded
performed.
The
A change is made to
parameter in control
1 when
a translation
register
primary-space mode and secondary
space mode.
made to
control register 7 when
Programming Notes
1. As observed by a
own instruction prefetching is not
normally apparent; the only excep
tion occurs when multiple virtual
addresses in a single address
space, or virtual addresses in
different address spaces,
described in the section "Inter
locks for Virtual-Storage
References" in this chapter.
2. The following
instruction prefetching on
channels.
It is possible for
prefetch the contents of a storage
location, after which another
contents of that storage location
and then set a flag to indicate
that the change has been made.
Subsequently, the first
to the modified location, and
contents.
It is possible, if another
instruction, for one
nize the changes to some but not
all bit positions of an
instruction.
It is possible for one
prefetch an instruction and subse
quently, before the instruction
the storage key. As a result, the
first
instructions from a
age location. However, the copy of
copy prefetched before the location
was protected.
OAT-TABLE FETCHES
The fetching of dynamic-address
translation (OAT) table
occur as follows:
1. A
into
Chapter 5.