Philips Semiconductors
DSPCPU Architecture
PRELIMINARY SPECIFICATION
3-9
The
instruction scheduler
uses interruptible jumps exclu-
sively for inter-decision tree jumps. Hence, within a deci-
sion tree, no special-event processing can be initiated. If
a tree-to-tree jump is taken, special-event processing is
allowed. Since the only registers live at this point (i.e.,
that contain useful data) are the
global registers
allocat-
ed by the ANSI C compiler, only a subset of the registers
needs to be preserved by the event handlers. Refer to
the TriMedia SDE Reference Manual for details on which
registers can be in use. The DSPCPU register state can
be described by the contents of this subset of general
purpose registers and the contents of the PCSW and the
DPC value (the target of the inter-tree jump).
The priority resolution mechanism built into the DSPCPU
hardware dispatches the highest-priority, non-masked
special-event request at the time of a successful inter-
ruptible jump operation. In view of the simple, real-time-
oriented nature of the mechanisms provided, only limited
nesting of events should be allowed.
3.5.1
RESET
RESET is the highest priority special event. It is asserted
by external hardware or by the host CPU. PNX1300 will
respond to it at any time.
External hardware reset through the TRI_RESET# pin
initiates boot protocol execution as described in
Chapter
13,
“
System Boot.
”
This causes the current PC value to
be lost and instruction execution to start from address
DRAM_BASE.
A PCI host CPU can perform a PNX1300 DSPCPU-only
reset by an MMIO write to the BIU_CTL.SR and CR bits.
Such a reset does not cause a full boot, instead the
DSPCPU resumes execution from DRAM_BASE.
3.5.2
EXC (Exceptions)
The DSPCPU enters EXC special-event processing un-
der the following conditions:
1. RESET is de-asserted.
2. The intersection PCSW[15,6:0] & PCSW[31,22:16] is
non-empty or PCSW.TFE is set.
3. A successful interruptible jump is in the final jump ex-
ecution stage.
DSPCPU hardware takes the following actions on the ini-
tiation of EXC processing:
1. DPC is assigned the intended destination address of
the successful jump.
2. Instruction processing starts at EXCVEC.
All other actions are the responsibility of the EXC handler
software. Note that no other special event processing will
take place until the handler decides to execute an inter-
ruptible jump that succeeds.
3.5.3
INT and NMI (Maskable and Non-
Maskable Interrupts)
The on-chip Vectored Interrupt Controller (VIC) provides
32 INT request input hardware lines. The interrupt con-
troller prioritizes and maps attention requests from sev-
eral different peripherals onto successive INT requests
to the DSPCPU.
INT special event processing will occur under the follow-
ing conditions:
1. RESET is de-asserted.
2. The intersection PCSW[15,6:0] & PCSW[31,22:16] is
empty and PCSW.TFE is not set.
3. The intersection of IPENDING and IMASK is non-
empty.
4. The interrupt is at level NMI or PCSW.IEN = 1.
5. A successful interruptible jump is in the final jump ex-
ecution stage.
DSPCPU hardware takes the following actions on the ini-
tiation of NMI or INT processing:
1. DPC gets assigned the intended destination address
of the successful jump.
2. Instruction processing starts at the appropriate inter-
rupt vector.
All other actions are the responsibility of the INT handler
software. Note that no other special event processing will
take place until the handler decides to execute an inter-
ruptible jump that succeeds.
3.5.3.1
Interrupt vectors
Each of the 32 interrupt sources can be assigned an ar-
bitrary interrupt vector (the address of the first instruction
of the interrupt handler). A vector is setup by writing the
address to one of the MMIO locations shown in
Figure 3-6
. The state of the MMIO vector locations is un-
defined after RESET. (Addresses of the MMIO vector
registers are offset with respect to MMIO_BASE.)
Source 0 vector
INTVEC0 (r/w)
Source 1 vector
INTVEC1 (r/w)
Source 2 vector
INTVEC2 (r/w)
Source 30 vector
INTVEC30 (r/w)
Source 31 vector
INTVEC31 (r/w)
0x10 0880
0x10 0884
0x10 0888
0x10 08F8
0x10 08FC
31
0
MMIO_BASE
offset:
Figure 3-6. Interrupt vector locations in MMIO address space.