
IDT EJTAG System
EJTAG Processor Core Extensions
79RC32438 User Reference Manual
20 - 13
November 4, 2002
Notes
Dependencies from the SYNC instruction as producer takes effect since specific updates of dseg
memory and resolving of pending imprecise exception indications are triggered by the SYNC instruction.
This is described in the SYNC Instruction Behavior section. Note that, for superscalar MIPS implementa-
tions, the number of instructions issued per cycle may be greater than one, and thus that the duration of the
hazard in instructions may be greater than the duration in cycles. For this reason, the SSNOP instruction is
defined to convert instruction issues to cycles in a superscalar design.
SSNOP Instruction Behavior
The SSNOP instruction ensures that instructions are executed and not eliminated by processors during
optimization. The SSNOP instruction can be used, for example, with execution of the SYNC and MTC0/
DMTC0 instruction to remove CP0 and dseg hazards.
Debug Exceptions
Debug exceptions bring the processor from Non-Debug Mode into Debug Mode. Implementations need
only support those debug exceptions that are applicable to that implementation. Exceptions can occur in
Debug Mode, and these are denoted as debug mode exceptions. These exceptions are handled differently
from exceptions that occur in Non-Debug Mode, as described in section “Debug Mode Exceptions” on page
20-19.
Debug Exception Priorities
Table 20.12 lists the exceptions that can occur in Non-Debug Mode in order of priority, from highest to
lowest. The table also categorizes each exception with respect to type (debug or non-debug). Each debug
exception has an associated status bit in the Debug register (indicated in the table in parentheses). For
additional information, refer to section “Debug Register (CP0 Register 23, Select 0)” on page 20-25.
Producer
→
Consumer
Hazard On
“Required”
spacing
(cycles)
SYNC
→
DERET
dseg memory locations
2
SYNC
→
Load/Store
BS bits in the IBS and
DBS registers in drseg
2
SYNC
→
MFCO Debug
Debug
DDBSImpr
Debug
DDBLImpr
Debug
IBusEP
Debug
DBusEP
Debug
CacheEP
Debug
MCheckP
2
MTCO DEPC
→
DEPC
2
MTCO Debug
→
DERET
Debug
2
MTCO Debug[LSNM]
→
lOAD/sTORE IN
DSEG
Debug[LSNM]
3
MTCO Debug[IEXI]
→
Instructions that can
cause an imprecise
exception
Debug[IEXI]
3
Table 20.11 “Required” CP0 and dseg Hazard Spacing