Interrupts and Exceptions
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor
5-35
5.10 Interrupt Ordering and Masking
Multiple exceptions that can each generate an interrupt can exist simultaneously. However, the
PowerPC architecture does not provide for reporting multiple simultaneous interrupts of the same
class (critical or noncritical). Therefore, the PowerPC architecture defines that interrupts must be
ordered with one another and provides a way to mask certain persistent interrupt types.
When an interrupt type is masked (disabled) and an event causes an exception that would normally
generate an interrupt of that type, the exception persists as a status bit in a register (which register
depends upon the exception type) but no interrupt is generated. Later, if the interrupt type is
enabled (unmasked) and the exception status has not been cleared by software, the interrupt due
to the original exception event is finally generated. (The e500 only has such a mechanism for
certain debug events. A signal that triggers an asynchronous interrupt, such as external input, must
be asserted until they are taken. There is no mechanism for saving the external interrupt if the
signal is negated before the interrupt is taken. All interrupts are level-sensitive except for machine
check, which is edge-triggered.)
All asynchronous interrupt types and some synchronous interrupt types can be masked. The
PowerPC architecture allows implementations to avoid situations in which an interrupt would
cause state information (saved in save/restore registers) from a previous interrupt to be overwritten
and lost. As a first step, upon any noncritical class interrupt, hardware automatically disables
further asynchronous, noncritical class interrupts (external input) by clearing MSR[EE]. Likewise,
upon any critical class interrupt, hardware automatically disables further asynchronous interrupts,
both critical and noncritical, by clearing MSR[CE] and MSR[EE]. Critical input, watchdog timer,
and debug interrupts are disabled by clearing MSR[CE,DE]. Note that machine check interrupts,
while considered neither asynchronous nor synchronous, are not maskable by MSR[CE,DE,EE]
and could be presented in a situation that could cause loss of state information.
This first step of clearing MSR[EE] (and MSR[CE,DE] for critical class interrupts) prevents
subsequent asynchronous interrupts from overwriting save/restore registers before software can
save their contents. On any interrupt, hardware also clears MSR[WE,PR,FP,FE0,FE1,IS,DS]
automatically, which helps avoid subsequent interrupts of certain other types. However,
guaranteeing that these interrupt types do not occur also requires system software to avoid
executing instructions that could cause (or enable) a subsequent interrupt, if SRR1 contents have
not been saved.
Содержание PowerPC e500 Core
Страница 1: ...PowerPC e500 Core Family Reference Manual Supports e500v1 e500v2 E500CORERM Rev 1 4 2005...
Страница 36: ...PowerPC e500 Core Family Reference Manual Rev 1 xxxvi Freescale Semiconductor...
Страница 38: ...PowerPC e500 Core Family Reference Manual Rev 1 Part I 2 Freescale Semiconductor...
Страница 316: ...PowerPC e500 Core Family Reference Manual Rev 1 7 18 Freescale Semiconductor Performance Monitor...
Страница 332: ...PowerPC e500 Core Family Reference Manual Rev 1 Part II 2 Freescale Semiconductor...
Страница 362: ...PowerPC e500 Core Family Reference Manual Rev 1 10 26 Freescale Semiconductor Auxiliary Processing Units APUs...
Страница 440: ...PowerPC e500 Core Family Reference Manual Rev 1 A 8 Freescale Semiconductor Programming Examples...
Страница 444: ...PowerPC e500 Core Family Reference Manual Rev 1 B 4 Freescale Semiconductor Guidelines for 32 Bit Book E...
Страница 530: ...Opcode Listings PowerPC e500 Core Family Reference Manual Rev 1 D 50 Freescale Semiconductor...
Страница 534: ...PowerPC e500 Core Family Reference Manual Rev 1 E 4 Freescale Semiconductor Revision History...