When MIPS instructions are classified according to coding format, they fall into four categories: R-type, I-type, J-type, and coprocessor. The coprocessor instructions are not considered here.

The classification below refines the classification according to coding format, taking into account the way that the various instruction fields are used in the instruction. The details of the execution activities and the required control signal values depend almost entirely on the instruction type in this classification.

In the remainder of this web page, the instruction fetch and instruction decode activities are omitted since they are the same for all instructions. The PC update activity only shows updates beyond the standard PC increment (PC ← PC + 4).

The summary at the end of this presentation is available as a PDF document here.

Non-jump R-type instructions include all R-type instructions except jr and jalr. This includes all of the integer arithmetic and bitwise operations, along with the non-branching compare instructions such as slt, sgt, and seq. They use the R coding format. The opcode bits are all 0.

Most immediate operand instructions perform arithmetic or logical operations using one operand that is coded into the instruction. The immediate operand group also includes the comparison instructions slti and sltiu and the lui instruction. Immediate operand instructions use the I coding format.

Branch instructions conditionally branch to an address whose distance is coded into the instruction. Branch instructions use the I coding format.

Load instructions move data from memory into a register. The address for the load is the sum of a register specified in the instruction and a constant value that is coded into the instruction. Load instructions use the I coding format.

Store instructions move data from a register into memory. The address for the store is the sum of a register specified in the instruction and a constant value that is coded into the instruction. Store instructions use the I coding format.

The only non-register jump instructions are j and jal. Non-register jump instructions use the J coding format.

The only register jump instructions are jr and jalr. Register jump instructions use the R coding format. The opcode bits are all 0.