100
RSP Coprocessor 0
Controlling the RDP
The RDP has an independent DMA engine which reads commands from
DMEM or DRAM into the command buffer. The RDP command buffer
registers are programmed to direct the RDP from where to read the
command data.
How to Control the RDP Command FIFO
RDP commands are transferred from memory to the command buffer by the
RDP’s DMA engine.
The RDP command buffer logic examines the
CMD_CURRENT
and
CMD_END
registers and will transfer data, 8 bytes (64 bits) at a time,
advancing
CMD_CURRENT
, until
CMD_CURRENT = CMD_END
.
CMD_START
and
CMD_END
registers are double buffered, so they can be
updated asynchronously by the RSP or CPU while the RDP is transferring
data. Writing to these registers will set the
START_VALID
and/or
END_VALID
bits in the RDP status register, signaling the RDP to use the new
pointers once the current transfer is complete.
When a new
CMD_START
pointer is used,
CMD_CURRENT
is reset to
CMD_START
.
Algorithm to program the RDP Command FIFO:
•
start with
CMD_START
and
CMD_END
set to the same initial
value.
•
write RDP commands to memory, beginning at
CMD_START
.
•
when an integral number of RDP commands have been stored to
memory, advance
CMD_END
(
CMD_END
should point to the
next
byte after the RDP command).
•
keep advancing
CMD_END
as subsequent RDP commands are
stored to memory.
Summary of Contents for Ultra64
Page 2: ...2 ...
Page 10: ...10 ...
Page 12: ...12 Figure 6 2 buildtask Operation 137 ...
Page 14: ...14 ...
Page 80: ...80 Vector Unit Instructions vmadm dres_int dres_int vconst 3 vmadn dres_frac vconst vconst 0 ...
Page 104: ...104 RSP Coprocessor 0 ...
Page 150: ...150 Advanced Information ...
Page 155: ...Revision 1 0 155 ...
Page 248: ...248 Exceptions None ...
Page 251: ...Revision 1 0 251 Exceptions None ...
Page 254: ...254 Exceptions None ...
Page 257: ...Revision 1 0 257 Exceptions None ...
Page 293: ...Revision 1 0 293 Exceptions None ...
Page 316: ...316 Exceptions None ...