The ALU has three control signals, as shown in Table 4. Note that there are two types of state elements e. This is not true, because of the typical requirement of upward compatibility. This technique is preferred, since it substitutes a simple counter for more complex address control logic, which is especially efficient if the microinstructions have little branching.
Similar to branch, the jump instruction requires only one state 9 to complete execution. MIPS has the special feature of a delayed branch, that is, instruction Ib which follows the branch is always fetched, decoded, and prepared for execution.
Since reading of a register-stored value does not change the state of the register, no "safety mechanism" is needed to prevent inadvertent overwriting of stored data, and we need only supply the register number to obtain the data stored in that register.
The read ports can be implemented using two multiplexers, each having log2N control lines, where N is the number of bits in each register of the RF.
For example, the overflow detection circuitry does not cause the ALU operation to be rolled back or restarted.
In contrast, the IR holds an instruction until it is executed multiple clock cycles and therefor requires a write control signal to protect the instruction from being overwritten before its execution has been completed. Implementationally, we assume that all outputs not explicitly asserted are deasserted.
At the very worst, a new compiler or assembler revision might be required, but that is common practice nowadays, and far less expensive than hardware revision.