0
\$\begingroup\$

Let say I want to have 1GB DDR3 in my board. I could use:

  1. 2 pieces MT41K256M16 – 32 Meg x 16 x 8 banks
  2. 1 piece MT41K512M16 – 64 Meg x 16 x 8 banks

Will configuration #1 be faster since 32 data buses can be accessed at the same time? If not why?

\$\endgroup\$
0
\$\begingroup\$

Faster in what way?

Configuration 1 will give double the memory bandwidth since you are accessing 32 bits at a time (assuming you have a 32 bit wide memory controller).

But depending on what you are doing raw bandwidth isn't always the biggest issue. Latency is often the real performance killer since that's how long the CPU has to sit around waiting when it has a cache miss.
Latency for a 16 bit memory access will be the same for both configurations. For a 32 bit memory access configuration 1 will be a little faster but not by a massive margin.

So yes, configuration 1 will be faster. How much faster will depend on the CPU, memory controller and memory access characteristics of the end application. It could be almost twice as fast or faster by such a small amount it's not noticeable.

\$\endgroup\$
  • \$\begingroup\$ Let say I want to read a million 32-bit integer out from both of them, will configuration#2 take twice the processing time to finish? \$\endgroup\$ – czteoh May 12 '17 at 10:18
  • \$\begingroup\$ Yes. Assuming you're not doing any processing on them (or the processing takes negligible time e.g. adding them up) then that becomes a pure memory bandwidth issue. Double the bandwidth and you halve the time. As soon as you processor isn't spending all of the time waiting for data from memory then then performance benefit will start to drop. \$\endgroup\$ – Andrew May 12 '17 at 10:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.