is not necessarily the most recently fetched copy.
Storing caused by channels or by otherCPUs does
not necessarily change the copy of prefetched in
structions. However, if a store that is conceptually
earlier occurs on the sameCPU using the same logi
cal address as that by which the instruction is
fetched, the updated information is obtained.
All copies of prefetched instructions are discarded
when theCPU enters or leaves translation mode, when the DA T parameters are changed in control
registers0 and 1 at a time when translation mode is
specified, by a serializing operation, and as theCPU enters the operating state. PTogranumrnng As observed by a CPU itself, instruction prefetching
is not normally apparent; the only exception occurs
when than one logical page address is translat
ed to a single real page address. This is described in
the section "Interlocks Between Logical and Real
StorageRe:ferences" in the chapter "Dynamic Ad
dressTranslation." The following are some effects of instruction pre- I fetching on the execution of a program as viewed by
anotherCl>U. If a program in one CPU changes the contents of
a storage location and then sets a flag to indicate
that the change has been made, a program in anoth
erCPU can test and find the flag set but subse·· quently can branch to the modified locations and
executetht,ir original contents. Additionally, when a
channel or anotherCPU modifies an instruction, it is
possible for aCPU to recognize the changes to some
but not all bit positions of the instruction.
It is possible for aCPU to prefetch an instruction
and subsequently, before the instruction is executed,
for anotherCPU to change the key in storage. As a
result, aCPU may appear to execute instructions
from a storage location that is protected.
DATTalJle Fetches
Fetching of dynamic address translation (DAT) ta
ble entries may occur asfoHows: 1. DAT entries may be prefetched into the
trans!lation-Iookaside buffer (TLB) and used
from the TLB without ref etching from storage,
until a PURGE TLB (PTLB) instruction is
executed. DAT entries may be fetched at any
time they are attached and valid, including dur
ing the execution of conceptually previous in
structions, and are not necessarily fetched in
the order conceptually called for.
2. A DAT table entry may be fetched piecemeal,
a byte at a time, from main storage. However,
no operand stores by thisCPU or any other
24System/370 Principles of Operation CPU are permitted, to the same location, be
tween the fetches of the bytes.
3. A DAT table entry may be fetched even after
some operand references for the instruction
have already occurred. The fetch may occur as
late as just prior to the actual byte access re
quiring the DAT entry.
4. A DAT table entry may be fetched for each use
of the address, including pretesting, if per
formed, and for each reference to each byte of
each operand.
5. The DAT page-table-entry fetch precedes the
reference to the page. When a page-table en
trygoeS from inactive to active status, the
fetch of the associated segment-table entry
precedes the fetch of the page-table entry.
For translation of the second operand ofLOAD REAL ADDRESS, the segment-table-entry fetch
precedes the page-table-entry fetch. The entries are
fetched using the same rule as (2) above. The rela
tionship of these two fetches to other references
follows the rules for storage-operand fetches.
Key-in-Storage Accesses
References to the key in storage are handled as fol
lows:
1. Whenever a reference to main storage is made
and protection applies to the reference, the five
access control bits associated with the storage
location are inspected concurrently with the
reference to the storage location.
2. When storing is performed, the change bit is set
in the associated key in storage concurrently
with the store operation.
3. The instruction SETSTORAGE KEY causes
the five access control bits and the change bit
to be set concurrently in the key in storage.
The access to the key in storage for SETSTORAGE KEY follows the sequence rules
for storage-operand store references, and is a
single-access reference.
4. The instruction INSERTSTORAGE KEY
provides a consistent image of the field consist
ing of the five access control bits and the
change bit. The access to the key in storage for
INSERTSTORAGE KEY follows the se
quence rules for storage-operandfetch refer
ences, and is a single-access reference.
5. The instruction RESET REFERENCE BIT
modifies only the reference bit. All other bits
of the key in storage remain unchanged. The
access to the key in storage for RESET REF
ERENcE BIT follows the sequence rules for
Storing caused by channels or by other
not necessarily change the copy of prefetched in
structions. However, if a store that is conceptually
earlier occurs on the same
cal address as that by which the instruction is
fetched, the updated information is obtained.
All copies of prefetched instructions are discarded
when the
registers
specified, by a serializing operation, and as the
is not normally apparent; the only exception occurs
when
ed to a single real page address. This is described in
the section "Interlocks Between Logical and Real
Storage
dress
another
a storage location and then sets a flag to indicate
that the change has been made, a program in anoth
er
execute
channel or another
possible for a
but not all bit positions of the instruction.
It is possible for a
and subsequently, before the instruction is executed,
for another
result, a
from a storage location that is protected.
DAT
Fetching of dynamic address translation (DAT) ta
ble entries may occur as
trans!lation-Iookaside buffer (TLB) and used
from the TLB without ref etching from storage,
until a PURGE TLB (PTLB) instruction is
executed. DAT entries may be fetched at any
time they are attached and valid, including dur
ing the execution of conceptually previous in
structions, and are not necessarily fetched in
the order conceptually called for.
2. A DAT table entry may be fetched piecemeal,
a byte at a time, from main storage. However,
no operand stores by this
24
tween the fetches of the bytes.
3. A DAT table entry may be fetched even after
some operand references for the instruction
have already occurred. The fetch may occur as
late as just prior to the actual byte access re
quiring the DAT entry.
4. A DAT table entry may be fetched for each use
of the address, including pretesting, if per
formed, and for each reference to each byte of
each operand.
5. The DAT page-table-entry fetch precedes the
reference to the page. When a page-table en
try
fetch of the associated segment-table entry
precedes the fetch of the page-table entry.
For translation of the second operand of
precedes the page-table-entry fetch. The entries are
fetched using the same rule as (2) above. The rela
tionship of these two fetches to other references
follows the rules for storage-operand fetches.
Key-in-Storage Accesses
References to the key in storage are handled as fol
lows:
1. Whenever a reference to main storage is made
and protection applies to the reference, the five
access control bits associated with the storage
location are inspected concurrently with the
reference to the storage location.
2. When storing is performed, the change bit is set
in the associated key in storage concurrently
with the store operation.
3. The instruction SET
the five access control bits and the change bit
to be set concurrently in the key in storage.
The access to the key in storage for SET
for storage-operand store references, and is a
single-access reference.
4. The instruction INSERT
provides a consistent image of the field consist
ing of the five access control bits and the
change bit. The access to the key in storage for
INSERT
quence rules for storage-operand
ences, and is a single-access reference.
5. The instruction RESET REFERENCE BIT
modifies only the reference bit. All other bits
of the key in storage remain unchanged. The
access to the key in storage for RESET REF
ERENcE BIT follows the sequence rules for