Revision 1.0
Microcode Overlays
135
Microcode Overlays
One of the challenges of RSP programming is working within the limited
instruction memory. IMEM is an explicitly managed resource; you are free
to load new code as you see fit.
RSP microcode loading can be divided into two situations: a
swap
, initiated
by the host CPU, which loads the entire IMEM while the RSP is halted, and
an
overlay
, which loads part of IMEM and is triggered by the currently
executing RSP program. The latter case is the most interesting and is the
subject of this section, covering related architectural issues and explaining
one scheme for microcode overlays in detail.
Memory System Implications
The Rambus memory system is most efficient at large block transfers, so
microcode loading can approach peak memory transfer speeds.
Like all DMA transfers, the source and destination must be 64-bit aligned;
some care must be taken planning microcode overlays to meet this
restriction. The assembler provides several directives to guarantee code
alignment.
Since IMEM is single-ported memory, only one control unit can access it at
a time; if microcode is loaded while a program is currently executing, IMEM
accesses are shared between the DMA engine and the RSP control unit
(which is fetching instructions). This means that dynamic microcode
overlays can only approach 50% of peak DMA transfer rate.
Entirely Up to You
The decision to overlay microcode and the labor to perform the overlay must
be embedded in the RSP program. Overlay techniques involve the RSP
development tools, the RSP software, and possibly even the display list or
other data that the RSP program is designed to interpret.
Choosing when to overlay microcode should be done carefully; although
such DMA transfers are relatively efficient, they are not free.
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 ...