2

Referring to the wikipedia article:

http://en.wikipedia.org/wiki/Classic_RISC_pipeline

I am a little unsure what the "memory access" stage actually does. If "execute" actually does the execution, what purpose is there of retrieving memory addresses after the execution has taken place (which is what the wikipedia article suggests)?

user997112
  • 29,025
  • 43
  • 182
  • 361
  • This is a place for specific programming questions. Thus, your question does not belong here IMO. If you're looking for a good and thorough answer, I'd recommend finding a more relevant StackExchange QA site. – Priidu Neemre Feb 16 '14 at 22:00
  • Take a look at the "Related" list of questions.... – user997112 Feb 16 '14 at 22:29

2 Answers2

1

Memory address is decoded at ID stage, and the EXE works with register address, so the DMEM stage is to put data in register to right place.

JQian
  • 226
  • 2
  • 9
1

For memory accesses, the execute stage calculates the Virtual Address, which will be used in the Memory Access Stage.

From the Wikipedia page you linked:

"Execute: ... Memory Reference (Two-cycle latency). All loads from memory. During the execute stage, the ALU added the two arguments (a register and a constant offset) to produce a virtual address by the end of the cycle."

Danny
  • 405
  • 2
  • 9