|I think here are a number of confusions.|
1) First of all, memory is today named with the transfer speed. This means E.g DDR200 has a transfer speed of 200. DDR400 has a speed of 400. DDR800 has a speed of 800.
Just forget about the memory clockrate or internal clockrate.
These 3 different clockrates that 1 and the same memory model has will just confuse most people. If you want to know the transfer rate - look at the naming. The naming does name the transfer rate!
2) DDR3 has a longer burst length than DDR2 but its not faster at the same level. DDR2 has a longer burst length than DDR1 but its also not faster. The reason is that each element in the burst takes a cycle. Therefore a twice as long burst takes also twice as long.
3) This means DDR1 400 == has the same transfer rate as == DDR2 400.
Also DDR3 800 has the same transfer rate as DDR2 800.
4) The clockrates of the DDR generations are just higher.
With DDR1 you did not reach a 533 Level, and with DD2 you do not reach 1000 levels.
5) But with increasing the clockrate often features of the protocol were dropped. This means with DD1 you could do single memory access by stopping the burst. This means you could do "short" memory access. DDR2 does NOT support this anymore. DDR2 will always finish the burst - even if you only wanted to store a single byte.
This is a minor loss that such a big thing.
The feature loss from DDR2 to DDR3 is much bigger.
With DDR2 you can mask each byte. This means if you only want to store a single byte then you burst a line but you mask all the other bytes "away". DDR3 does not support this anymore.
This means with DDR3 to store a single byte your memory controller first needs to read the whole memory line, than internally combine (AND/OR) this with the single byte and then the memory controller is able to store the line back in memory.
What does this mean?
There are some situations where DDR3 really sucks and good DDR2 controller will be twice as fast a DDR3!
Because of I'm VERY VERY happy that we use DDR2 for the NATAMI.
What is the transfer rate of the NATAMI?
We have DDR400 x 32bit.
32bit == 4 byte.
400 x 4 == 1600 MB/sec
Now you need to mind that DDR ALWAYS is named with the maximum interface limit. DDR includes protocol and other overhead.
This means you do never the full 100% maximum of this number.
How close you come depends on your application / usage and the memory controlled.
- Is the controller optimized for long sequential access?
- Is the Controller optimized for random access?
- Is the controller optimized for a mix?
- Do you use the controller for what it was optimized or not?
Because of increased latencies with each DDR generation is more difficult to reach the theoretical maximum.
This means reaching 85% on a DDR1 was not uncommon.
This means 80% is a very good number for a DDR2 controlled.
This means you are in luck to reach 70% on a DDR3 controlled.
If you think these high marketing number of DDR3 are there to fool people, then you are could be right! ;-)
What does this mean for the NATAMI?
It means we have a theoretical bandwidth of 1600 MB/sec
But no application can reach this!
What you can get will vary on the application behavior.
To make your live simple and to be on the safe side.
If you want to code a game, then assume a bandwidth of 1000 MB/sec!