Final answer:
To accommodate the bne instruction in the single-cycle datapath, modify the logic to set BRANCH = 0 and ZERO = 0 when encountering bne.
Step-by-step explanation:
a) To accommodate the bne instruction in the datapath, the logic of the datapath can be modified as follows:
- BRANCH = 1 and ZERO = 1 still selects the branch address to be loaded into the PC when the beq instruction is encountered.
- For the bne instruction, BRANCH = 0 and ZERO = 0 should select the branch address to be loaded into the PC.
b) The RegDst multiplexor is set to 0 for the instructions that don't require the destination register to be the same as the rt field of the instruction. Examples of such instructions are add, sub, and, or, slt, etc.
c) Eliminating the MemtoReg control line signal and using MemRead to control the multiplexer will not work. The MemtoReg control line is responsible for selecting whether the value to be written back to the register file comes from the data memory (MemtoReg = 1) or from the ALU (MemtoReg = 0). Using only MemRead to control the multiplexer would not provide the necessary information for the desired selection.