I am trying to understand the DRAM working paradigm. I just read this article about interleaved memory. It says:
Interleaved memory results in contiguous reads (which are common both in multimedia and execution of programs) and contiguous writes (which are used frequently when filling storage or communication buffers) actually using each memory bank in turn, instead of using the same one repeatedly. This results in significantly higher memory throughput as each bank has a minimum waiting time between reads and writes.
That way, contiguous memory reads and writes use each memory bank in turn, resulting in higher memory throughput due to reduced waiting for memory banks to become ready for the operations.
My questions are:
- What prevents a DRAM bank from being ready? Refresh?
- Why is the throughput significantly higher with interleaving?
My current understanding is:
DRAM needs periodic refresh to keep the stored data, which is the the
D stands for. For continuous read/write against a single bank, I can think of that such r/w operations will sooner or later collide with the bank's refresh operation. When that happens, the r/w will have to wait until the refresh is done. If we interleave multiple banks, it is less likely that the collision will happen. So there will be less wait and higher throughout.
But it seems my understanding is not quite relevant to the "waiting time between reads and writes" in the first quote.
Any other reasons?