I have a quick question, the book I have shows the control values for a store word instruction as such :
Regdst - X
Alusrc 1
Memto-reg X
RegWrite 0
-> MemRead 0
MemWrite 1
Branch 0
ALUOp1 0
ALUOp2 0
The explanation for memto-reg to be "don't care" is because RegWrite is 0 anyway, makes sense. But my question is, why MemRead is 0 ?
As MemRead only puts a value on the ReadData output, and I shouldn't care what value it is for the same reason I shouldn't care what value is after the MemtoReg mux choice, as RegWrite is 0 anyway.
My question is: shouldn't MemRead be don't care instead of 0? And the book made a mistake ? Or am I missing something, because I see in more sources that MemRead is 0 and not don't care in store word(sw) instruction.
FYI: the figure is missing some control datapaths like RegDst Mux but irrelevant to the question I think. Also, same question applies to beq instruction.