1 machine-check exception enabled (msr[me] = 1), Table 4-9, Machine-check exception—register settings – IBM POWERPC 750GL User Manual

Page 168

Advertising
background image


User’s Manual
IBM PowerPC 750GX and GL RISC Microprocessor

Exceptions

Page 168 of 377

gx_04.fm.(1.2)

March 27, 2006

A TEA indication on the bus can result from any load or store operation initiated by the processor. In general,
TEA is expected to be used by a memory controller to indicate that a memory parity error or an uncorrectable
memory ECC error has occurred. Note that the resulting machine-check exception is imprecise and unor-
dered with respect to the instruction that originated the bus operation.

If MSR[ME] and the appropriate HID0 bits are set, the exception is recognized and handled; otherwise, the
processor generates an internal checkstop condition. When the exception is recognized, all incomplete stores
are discarded. The bus protocol operates normally.

A machine-check exception might result from referencing a nonexistent physical address, either directly (with
MSR[DR] = 0) or through an invalid translation. If a dcbz instruction introduces a block into the cache associ-
ated with a nonexistent physical address, a machine-check exception can be delayed until an attempt is
made to store that block to main memory. Not all PowerPC processors provide the same level of error
checking. Checkstop sources are implementation-dependent.

Machine-check exceptions are enabled when MSR[ME] = 1; this is described in the next section. If MSR[ME]
= 0 and a machine check occurs, the processor enters the checkstop state. The checkstop state is described
in Section 4.5.2.2, Checkstop State (MSR[ME] = 0), on page 169.

4.5.2.1 Machine-Check Exception Enabled (MSR[ME] = 1)

Machine-check exceptions are enabled when MSR[ME] = 1. When a machine-check exception is taken,
registers are updated as shown in Table 4-9.

The machine-check exception is usually unrecoverable in the sense that execution cannot resume in the
context that existed before the exception (see Section 4.3.6, Setting MSR[RI],). If the condition that caused
the machine check does not otherwise prevent continued execution, MSR[ME] is set to allow the processor to
continue execution at the machine-check exception vector address and prevent the processor from entering
checkstop state if another machine check occurs. Typically, earlier processes cannot resume. However,
operating systems can use the machine-check exception handler to try to identify and log the cause of the
machine-check condition.

Table 4-9. Machine-Check Exception—Register Settings

Register

Setting Description

SRR0

On a best-effort basis, the 750GX can set this to an EA of some instruction that was executing or about to be exe-
cuting when the machine-check condition occurred.

SRR1

0:10

Cleared.

11

Set when an L2 data-cache ECC double-bit error is detected; otherwise, zero.

12

Set when an MCP signal is asserted; otherwise, zero.

13

Set when a TEA signal is asserted; otherwise, zero.

14

Set when a data-bus parity error is detected; otherwise, zero.

15

Set when an address-bus parity error is detected; otherwise, zero.

16:31

MSR[16–31].

MSR

POW

0

ILE

EE

0

PR

0

FP

0

ME

0

FE0

0

SE

0

BE

0

FE1

0

IP

IR

0

DR

0

PM

0

RI

0

LE

Set to value of ILE

Note: To handle another machine-check exception, the exception handler should set MSR[ME] as soon as it is practical after a
machine-check exception is taken. Otherwise, subsequent machine-check exceptions cause the processor to enter the checkstop state.

Advertising
This manual is related to the following products: