30
PowerPC 604e RISC Microprocessor Technical Summary
External
interrupt
00500
An external interrupt occurs when the external interrupt signal, INT, is asserted.
This signal is expected to remain asserted until the exception handler begins
execution. Once the signal is detected, the 604e stops dispatching instructions
and waits for all dispatched instructions to complete. Any exceptions associated
with dispatched instructions are taken before the interrupt is taken.
Alignment
00600
An alignment exception is caused when the processor cannot perform a
memory access for the following reasons:
A floating-point load, store,
lmw
,
stmw
,
lwarx
, or
stwcx.
instruction is not
word-aligned.
A
dcbz
instruction refers to a page that is marked either caching-inhibited or
write-through.
A
dcbz
instruction has executed when the 604e data cache is locked or
disabled.
An
ecowx
or
eciwx
is not word-aligned.
Program
00700
A program exception is caused by one of the following exception conditions,
which correspond to bit settings in SRR1 and arise during execution of an
instruction:
Floating-point exceptions—A floating-point enabled exception condition
causes an exception when FPSCR[FEX] is set and depends on the values in
MSR[FE0] and MSR[FE1].
FPSCR[FEX] is set by the execution of a floating-point instruction that
causes an enabled exception or by the execution of a “move to FPSCR”
instruction that results in both an exception condition bit and its
corresponding enable bit being set in the FPSCR.
Illegal instruction—An illegal instruction program exception is generated
when execution of an instruction is attempted with an illegal opcode or illegal
combination of opcode and extended opcode fields or when execution of an
optional instruction not provided in the specific implementation is attempted
(these do not include those optional instructions that are treated as no-ops).
Privileged instruction—A privileged instruction type program exception is
generated when the execution of a privileged instruction is attempted and
the MSR register user privilege bit, MSR[PR], is set. This exception is also
generated for
mtspr
or
mfspr
with an invalid SPR field if SPR[0] = 1 and
MSR[PR] = 1.
Trap—A trap type program exception is generated when any of the
conditions specified in a trap instruction is met.
Floating-point
unavailable
00800
A floating-point unavailable exception is caused by an attempt to execute a
floating-point instruction (including floating-point load, store, and move
instructions) when the floating-point available bit is disabled (MSR[FP] = 0).
Decrementer
00900
The decrementer exception occurs when the most significant bit of the
decrementer (DEC) register transitions from 0 to 1.
Reserved
00A00–00BFF
Not implemented on the 604e.
System call
00C00
A system call exception occurs when a System Call (
sc
) instruction is executed.
Trace
00D00
Either the MSR[SE] = 1 and any instruction (except
rfi
) successfully completed
or MSR[BE] = 1 and a branch instruction is completed.
Floating-point
assist
00E00
Defined by the PowerPC architecture, but not implemented on the 604e.
Table 2. Exceptions and Conditions (Continued)
Exception
Type
Vector Offset
(hex)
Causing Conditions