title: MIPS Single Cycle - Why are MemRead and MemToReg separate?
body: <p>I'm currently studying the ins and outs of the MIPS single cycle processor datapath.</p>
  
  <p>I can't find a reason, why there is a difference between MemRead and MemtoReg. My current understanding is that we set MemRead to 1 if we want to load something from data memory and if we load something we want to use it in a register, and if we don't want to load something we want to use the result from the ALU in a register (provided that RegWrite is set to 1). So why are there different signals for MemRead and MemtoReg?</p>
  
  <p>Here is the datapath I'm using: </p>
  
  <p><a href="https://i.stack.imgur.com/6UTkh.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/6UTkh.png" alt="https://i.imgur.com/ntSvcd3.png"></a></p>