Page of GA22-7000-4 Revised September 1, 1975
By TNL: GN22-0498 Instruction Is an access exception indicatep for that part of the
designated operand which is not used for the completion of the operation ? Instructions that can be completed without
the use of the entire designated or implied operand:
TM (zero mask) GLC,CL GLM (nonzero mask) GLCL TRT (first operand)
TR, TRT (second operand) ED, EDMK (second operand) Instructions in which the second operand may
specify more data than can be processed with
the desi'gnated first operand: PACK, UNPK, MVO MVCL Special cases : IGM, CLM (zero mask) STCM (zero mask) Explancltion: Yes Unpredictable Unpredictable Unpredictable *
No
No
No Unpredictable No
Yes for one byte
No Unprediictable It is unpredictable whether the exception is indicated.
No The exception is not indicated.
Yes The exception is indicated.
For CLCL, no exceptions are indicated other than those for the
current page and the following page of each operand.
Access Hxceptions include the following: protection
addressing
segment translation page translation translatiion specification
Recognition of Access Exceptions
7. 'When the mask in INSERT CHARACTERS UNDER MASK (ICM) and COMPARE LOGICAL CHARACTERS UNDER MASK (CLM) is zero, access exceptions are indicated
for the one byte designated by the second­
operand address.
8. 'When the mask in STORE CHARACTERS UNDER MASK (STCM) is zero, access excep­
tions are not indicated.
The execution of the interruptible instructions COMPARE LOGICAL LONG and MOVE LONG is initiated only when no access exceptions associat­
ed with references to dynamic-address-translation
tables for the initial page of each operand exist, and
the initiation may additionally be contingent on the absence of exceptions associated with table refer­
ences for the following page of each operand. After
the execution of the instruction has been initiated,
an access exception associated with a reference to a
translation table may be indicated as early as when
82 System/370 Principles of Operation
execution has progressed to the point where the last
accessible page of the operand causing the exception
is being processed.
The extent of the operands that is actually used in
the operation may be established in a pretest for
operand accessibility that is performed before the
execution of the instruction is started.
In the case of TRANSLATE (TR), EDIT (ED),
and EDIT AND MARK (EDMK), the initiation of
the execution is contingent only on the .absence of
exceptions associated with dynamic-address­
translation table entries for that part of the second
operand that is actually used for the completion of
the operation.
If the first operand of TR or either operand of ED
or EDMK is changed by an I/O operation, or by
another CPU, after the initial pretest but before
completion of execution, such that an additional
second-operand page is needed and translation of
the address of the additional page causes an access
exception to be recognized, results are unpredicta­
ble. Furthermore, it is unpredictable whether an
interruption for the access exception occurs. In the
case of ED and EDMK, this situation can occur also
because of overlapping operands.
This case is an exception to the general rule that
the operation is nullified on segment-translation and
page-translation exceptions and is suppressed on a
translation-specification exception and on an ad­
dressing exception caused by an invalid address of a
table entry. When, in this case, an interruption for a
segment-translation or page-translation occurs, the
instruction address in the old PSW points to the in­
struction causing the exception even though partial
results have been stored. PTogranrumdng An access exception is indicated as part of the execu­
tion of the instruction with which the exception is
associated. In particular, the exception is not recog­
nized when the CPU has made an attempt to fetch
from the inaccessible location or otherwise has de­
tected the access exception, but a branch instruction
or an interruption changes the instruction sequence
such that the instruction is not executed.
The following are some specific storage refer­
ences where access exceptions, including store pro­
tection when applicable, are recognized even if the
operation could be completed without the use of the
inaccessible part of the operand: Fetching the operand of TEST UNDER MASK
with a zero mask. Fetching parts of operands of algebraic compare
instructions (C and CH). Fetching parts of operands of floating-point
instructions. References to the first-operand location of deci­
mal instructions when the second operand in
addition and subtraction is zero or in multipli­
cation and division is one. Storing the pattern character in an edit opera­
tion when the pattern character remains un­
changed. Storing during SHIFT AND ROUND DECI­
MAL when no shifting or rounding takes place. Storing during move operations when the first­
and second-operand locations coincide. Storing the first operand of OR (01 and OC) when the corresponding second-operand byte
is zero, as well as the analogous cases for AND
and EXCLUSIVE OR. Storing the first operand of TRANSLATE
when the argument and function bytes are the
same.
Page ofGA22-7000-4 Revised September 1,1975
By TNL: GN22-0498
With a nonzero mask in INSERT CHARAC­
TERS UNDER MASK, COMPARE LOGICAL CHARACTERS UNDER MASK, and STORE CHARACTERS UNDER MASK, access exceptions
are indicated only for the extent of the storage oper­
and designated by the mask. In MOVE LONG or COMPARE LOGICAL LONG, no exceptions are
recognized for any operand having a length of zero.
Handling of Multiple
Program-Interruption Conditions
Except for program events, only one program­
interruption condition is indicated with a program in -
terruption. The existence of one condition, however,
does not preclude the existence of other condi-
tions. When more than one program-interruption
condition exists, only the condition having the high­
est priority is identified in the interruption code.
When two conditions exist of the same priority, it
is unpredictable which is indicated. In particular, the
priority of access exceptions associated with the two
parts of an operand that crosses a page or a protec­
tion boundary is unpredictable and is not necessarily
related to the sequence specified for the access of
bytes within the operand.
The type of ending which occurs (nullification,
suppression, or termination) is that which is defined
for the type of exception that is indicated in the in­
terruption code. However, if a condition is indicated
which permits termination, and another condition
also exists which would cause either nullification or
suppression, then the unit of operation is suppressed.
The table "Priorities of Access Exceptions" lists
the priorities of access exceptions for a single access.
The table "Priorities of Program Interruption Condi­ tions" lists the priorities of all program-interruption
conditions other than program events. All exceptions
associated with references to storage for a particular
instruction halfword or a particular operand byte are
grouped as a single entry called "access." Thus, the
first table specifies which of several exceptions that
are encountered in the access of a particular portion
of an instruction, or in any particular access associat­
ed with an operand, has highest priority, and the
latter table specifies the priority of this condition in
relation to other conditions detected in the opera­
tion.
The relative priorities of any two conditions can
be found by comparing the priority numbers within a
table from left to right until a mismatch is found. If
the first inequality is between numeric characters,
the two conditions are either mutually exclusive, or,
if both can occur, the condition with the smaller
number is indicated. If the first inequality is between
alphabetic characters, the two conditions are not
Interruptions 83
Previous Page Next Page