Toasty said:
Are there special instructions that the CPU executes that then get sent to the coprocessor? Does the CPU send a big chunck of code written for the coprocessor over all at once?
I suppose you are talking about N64 coprocessors.
N64 has two main processors: the CPU and the RCP. Sometime the RCP is misnomined
coprocessor but instead is a real processor on it's own.
The main CPU has two coprocessors:
- COP0 that handles system status
- COP1 that is the FPU coprocessor
The RCP is split into RSP and RDP. RSP acts as the leader processor.
- RSP's COP0 handles processors communication
- RSP has no COP1 for FPU
- RSP COP2 is the RDP
The CPU controls the RCP (start, stop, send tasks) via DMA (to transfer code to be executed) and the SP_STATUS memory mapped register (to start/stop it).
The RCP talks to the CPU via RCP's COP0 instructions.
Inside a single processor, the format of the opcode tells to the processor if it should execute the opcode itself or send it to one of its coprocessors.
Search around (dextrose.com) for anarko opcodes tables and r4300i manual by MIPS, they have all the info you need.