
MOTOROLA
Chapter 4. Exceptions
4-23
Note that not all PowerPC processors provide the same level of error checking. The reasons
a processor can enter checkstop state are implementation-dependent.
4.5.3 DSI Exception (0x00300)
A DSI exception occurs when no higher priority exception exists and a data memory access
cannot be performed. The condition that caused the DSI exception can be determined by
reading the DSISR register, a supervisor-level SPR (SPR18) that can be read by using the
mfspr
instruction. Bit settings are provided in Table 4-11. Table 4-11 also indicates which
memory element is saved to the DAR. DSI exceptions can occur for any of the following
reasons:
The instruction is not supported for the type of memory addressed.
Any access to a direct-store segment (SR[T] = 1).
The access violates memory protection. Access is not permitted by the key (Ks and
Kp) and PP bits, which are set in the segment register and PTE for page protection
and in the BATs for block protection.
Note that the OEA specifies an additional case that may cause a DSI exception—when an
effective address for a load, store, or cache operation cannot be translated by the TLBs. On
the 603e, this condition causes a TLB miss exception instead.
These scenarios are common among all PowerPC processors. The following additional
scenarios can cause a DSI exception in the 603e:
A bus error indicates crossing from a direct-store segment to a memory segment.
The execution of any load/store instruction to a direct-store segment, SR[T] = 1.
A data access crosses from a memory segment (SR[T] = 0) into a direct-store
segment (SR[T] = 1).
DSI exceptions can be generated by load/store instructions, and the cache control
instructions (
dcbi
,
dcbz
,
dcbst
, and
dcbf
).
The 603e supports the crossing of page boundaries. However, if the second page has a
translation error or protection violation associated with it, the 603e will take the DSI
exception in the middle of the instruction. In this case, the data address register (DAR)
always points to a byte address in the first word of the offending page.
If an
stwcx.
instruction has an effective address for which a normal store operation would
cause a DSI exception, the 603e will take the DSI exception without checking for the
reservation.
If the XER indicates that the byte count for an
lswi
or
stswi
instruction is zero, a DSI
exception does not occur, regardless of the effective address.
The condition that caused the exception is defined in the DSISR. These conditions also use
the data address register (DAR) as shown in Table 4-11.