What is the amount of bytes read/written from a DDR1-333Mhz ram per second?

Here's what I calculated. DIMM memories have 64 bit data paths. Which means it can handle 64 bits of data per clock cycle. But since DDR1 rams are able to handle twice the data, it should be able to handle 128 bits of data per second. This is where I'm confused. If I calculate the bandwidth of a DDR1-333Mhz ram considering it transfers 64bit data per second, the bandwidth amount noted in the ram stick makes sense, but calculation doesn't make sense when I apply the same formula with 128bit per second.

The formula I applied:

(333 * 10^6 * 64) / (8 * 1000 * 1000) = 2664 MB/s (makes sense)
(333 * 10^6 * 128) / (8 * 1000 * 1000) = 5328 MB/s (doesn't make sense)

What is wrong with my calculation? Ideally, It should be correct for the 128bit version, and incorrect for the 64bit version


Solution 1:

Wikipedia gives the formula

transfer rate (in bytes/s) = (memory bus clock rate) × 2 (for dual rate) × 64 (number of bits transferred) / 8 (number of bits/byte).

It also has a table showing that the clock rate of DDR-333 is actually 166⅔ MHz. The "333" refers to the transfer rate (already on both clock edges).

So this is where your error of a factor of 2 comes from.

Also note that the real average achievable speed is lower, as the addressing part of the bus cycle also takes time.