Each RVM may have the following unique characteristics:
Every PROCESS has 32 32-bit general purpose registers, denoted $0-$31, and three special purpose registers, PC, HI, and LO. PC is the program counter and contains the 32-bit address of the instruction currently being executed, while HI and LO are 32-bit registers used for the results of mult and div instructions. HI and LO cannot be manipulated directly, but their values can be copied to standard registers via mfhi and mflo. The register $0 always contains the value 0, regardless of what data has been written to it. The registers $1 and $2 are not reserved, but they do have a special meaning to the system call instruction (see Appendix A). Unlike the standard MIPS assembly language, no other registers are reserved or have special names or meanings.
Finally, every process is associated with a special data structure, the SOCKET, not present in the standard MIPS architecture, that is used to track connections to remote RVMs. SOCKET can be modified only through the special extended instructions open and close and it is used only by the rsw and rfrk instructions. The implementation of SOCKET is not specified by this document -- it is the design team's choice how to provide this service. The important criterion is that every PROCESS can have its own SOCKET, but each PROCESS can have only a single SOCKET open to a remote RVM at a time.
Terran Lane 2004-03-29