The single-cycle implementation of the MIPS processor uses the following control signals, which are grouped according to the execution activity that they affect.
Activity | Signal | Purpose |
---|---|---|
PC Update | Branch | Combined with a condition test boolean to enable loading the branch target address into the PC. |
Jump | Enables loading the jump target address into the PC (only appears in Figure 4.24 in Patterson and Hennessey). | |
Source Operand Fetch | No control signals | Source operand fetch is automatic. |
ALU Operation | ALUSrc | Selects the second source operand for the ALU (rt or sign-extended immediate field in Patterson and Hennessey). |
ALUOp | Either specifies the ALU operation to be performed or specifies that the operation should be determined from the function bits. | |
Memory Read | MemRead | Enables a memory read for load instructions. |
Memory Write | MemWrite | Enables a memory write for store instructions. |
Register Write | RegWrite | Enables a write to one of the registers. |
RegDst | Determines how the destination register is specified (rt or rd in Patterson and Hennessey). | |
MemtoReg | Determines where the value to be written comes from (ALU result or memory in Patterson and Hennessey). |
Note: The Jump control signal first appears in Figure 4.24 of Patterson and Hennessey. In the MIPS Single-Cycle Datapath from this web site, the Branch and Jump control signal are combined into a 2-bit BrJmp control signal.