CPU32+
MOTOROLA
MC68360 USER’S MANUAL
5-51
5.5.3.1 TYPES OF FAULTS.
An efficient implementation of instruction restart dictates that
faults on some bus cycles be treated differently than faults on other bus cycles. The CPU32+
defines four fault types: released write faults, faults during exception processing, faults dur-
ing MOVEM operand transfer, and faults on any other bus cycle.
5.5.3.1.1 Type I—Released Write Faults.
CPU32+ instruction pipelining can cause a final
instruction write to overlap the execution of a following instruction. A write that is overlapped
is called a released write. A released write fault occurs when a bus error or some other fault
occurs on the released write.
Released write faults are taken at the next instruction boundary. The stacked PC is that of
the next unexecuted instruction. If a subsequent instruction attempts an operand access
while a released write fault is pending, the instruction is aborted and the write fault is
acknowledged. This action prevents the instruction from using stale data.
The SSW for a released write fault contains the following bit pattern:
TR , B1, and B0 are set if the corresponding exception is pending when the bus error excep-
tion is taken. Status regarding the faulted bus cycle is reflected in the SZCx, SIZ, and FUNC
fields.
The remainder of the stack contains the PC of the next unexecuted instruction, the current
SR, the address of the faulted memory location, and the contents of the data buffer that was
to be written to memory. This data is written on the stack in the format depicted in Figure 5-
15. When a released write fault exception handler executes, the machine will complete the
faulted write and then continue executing instructions wherever the PC indicates.
5.5.3.1.2 Type II—Prefetch, Operand, RMW, and MOVEP Faults.
The majority of bus
error exceptions are included in this category—all instruction prefetches, all operand reads,
all RMW cycles, and all operand accesses resulting from execution of MOVEP (except the
last write of a MOVEP Rn,
ea
or the last write of MOVEM, which are type I faults). The TAS,
MOVEP, and MOVEM instructions account for all operand writes not considered released
write faults.
All type II faults cause an immediate exception that aborts the current instruction. Any reg-
isters that were altered as the result of an EA calculation (i.e., postincrement or predecre-
ment) are restored prior to processing the bus cycle fault.
The SSW for faults in this category contains the following bit pattern:
The trace pending bit is always cleared since the instruction will be restarted upon return
from the handler. Saving a pending exception on the stack causes a trace exception to be
15
0
14
0
13
12
TR
11
B1
10
B0
9
1
8
0
7
0
6
0
5
4
3
2
0
SZC1
SZC0
SIZ
FUNC
15
14
13
12
11
10
9
8
7
6
5
4
3
2
0
0
0
SZC1
0
B1
B0
0
RM
IN
RW
SZC0
SIZ
FUNC