
RCPU
REFERENCE MANUAL
EXCEPTIONS
For More Information On This Product,
Go to: www.freescale.com
MOTOROLA
6-7
6.3 Precise Exception Model Implementation
In order to achieve maximum performance, the RCPU processes many pieces of
the instruction stream concurrently. Instructions execute in parallel and may com-
plete out of order. The processor is designed to ensure that this out of order oper-
ation never has an effect different from that specified by the program. This
requirement is most difficult to ensure when an exception occurs after instructions
that logically follow the faulting instruction have already completed. When an ex-
ception occurs, the machine state becomes visible to other processes and there-
fore must be in its correct architecturally specified condition. The processor takes
care of this in hardware by automatically backing the machine up to the instruction
that caused the interrupt. The processor is therefore said to implement a precise
exception model.
To enable the processor to recover from an exception, a history buffer is used. This
buffer is a FIFO queue which records relevant machine state at the time of each
instruction issue. Instructions are placed on the tail of the queue when they are is-
sued and percolate to the head of the queue while they are in execution. Instruc-
tions remain in the queue until they complete execution (i.e., have completed the
writeback stage) and all preceding instructions have completed as well. In this way,
when an exception occurs, the machine state necessary to recover the architectur-
al state is available. As instructions complete execution, they are retired from the
queue, and the buffer storage is reclaimed for new instructions entering the queue.
Floating-point
assist
0x00E00
A floating-point assist exception occurs in the following cases:
When the following condition is true (except in the cases mentioned above
for program exceptions):
(MSR[FE0] | MSR[FE1]) &FPSCR[FEX] = 1
When a tiny result is detected and the floating-point underflow exception is
disabled (FPSCR[UE] = 0)
In some cases when at least one of the source operands is denormalized.
Software
emulation
0x01000
An implementation-dependent software emulation exception occurs when an
attempt is made to execute an unimplemented instruction, or to execute a
mtspr
or
mfspr
instruction that specifies an unimplemented register.
Data
breakpoint
0x01C00
An implementation-dependent data breakpoint exception occurs when an
internal breakpoint match occurs on the load/store bus.
Instruction
breakpoint
0x01D00
An implementation-dependent instruction breakpoint exception occurs when an
internal breakpoint match occurs on the instruction bus.
Maskable
external
breakpoint
0x01E00
An implementation-dependent maskable external breakpoint occurs when an
external device or on-chip peripheral generates a maskable breakpoint.
Non-maskable
external
breakpoint
0x01F00
An implementation-dependent non-maskable external breakpoint occurs when
an external breakpoint is input to the serial interface of the development port.
Table 6-3 Exception Vectors and Conditions (Continued)
Exception
Type
Vector Offset
Causing Conditions
F
Freescale Semiconductor, Inc.
n
.