In: Computer Science
What would be a good, detailed explanation of what this picture is and what is happening in it?
it gives addresses to the Data Memory.
A memory operation requires 3 things:
Some memory operations are "loads" — these transfer a value from memory to the CPU, so the load specifies a target register for the value; some memory operations are "stores" — these transfer a value to memory from the CPU, so stores specify a source register for the value.
Regardless of whether load or store, an address must be specified to perform a Data Memory operation. On MIPS we have just one addressing mode, which is register + sign extended immediate. In simple MIPS processors, the ALU performs this addition, since it is free/available in that clock cycle for that use.
The control signals turn MemRead on for loads and MemWrite on for stores. Otherwise both of those are off, so the Data Memory is inactive for R-Type instructions, branch instructions, any instruction that doesn't load or store.
For R-Type instructions, the ALU result is back to the registers as the Write Data. For load instructions, the Data Memory value becomes the Write Data