In this tutorial, we will explore the main technical differences between DDR, DDR2 and DDR3 memories. Enjoy!
Before we start going into the specifics, you need to know that DDR, DDR2, and DDR3 are based on SDRAM (Synchronous Dynamic Random Access Memory) design, meaning that they use a clock signal to synchronize things. DDR stands for Double Data Rate. Memories from this category transfer two data chunks per clock cycle. Translation: They achieve double the performance of memories without this feature running at the same clock rate (namely SDRAM memories, which are not available for PCs anymore).
Because of this feature, these memories are labeled with double the real maximum clock rate they can operate. For example, DDR2-800 memories work at 400 MHz, DDR2-1066 and DDR3-1066 memories work at 533 MHz, DDR3-1333 memories work at 666.6 MHz, and so on.
It is very important to understand that these clock rates are the maximum the memory can officially use. This does not, by any means, guarantee that the memory will work at those “speeds” automatically. For example, if you install DDR2-1066 memories on a computer that can only (or it is wrongly configured to) access the memory subsystem at 400 MHz (800 MHz DDR), the memories will be accessed at 400 MHz (800 MHz DDR) and not at 533 MHz (1,066 MHz DDR). This happens because the clock signal is provided by the memory controller, a circuit that is located outside the memory (in the north bridge chip from the motherboard or embedded inside the CPU, depending on the system).
This naming system DDRx-yyyy (where x is the technology generation and yyyy is the DDR clock rate), in theory, is used only for the memory chips. The memory modules – the little printed circuit boards to where the memory chips are soldered – use a different naming system: PCx-zzzz, where x is the technology generation and zzzz is the maximum theoretical transfer rate (a.k.a. maximum bandwidth). This number tells us how many bytes can be transferred per second between the memory controller and the memory module, assuming that data will be transferred on every single clock pulse. This math is easily done by multiplying the DDR clock in MHz by eight. (Actually, the real math is done by multiplying by 64 and then dividing by eight; since 64 / 8 = 8, we can simply multiply by eight to achieve the same result.) This will give us the maximum theoretical transfer rate in MB/s (megabytes per second). For example, DDR2-800 memories have a maximum theoretical transfer rate of 6,400 MB/s (800 x 8), and memory modules using this kind of memory are called PC2-6400. In some cases, the number is rounded off. For example, DDR3-1333 memories have a maximum theoretical transfer rate of 10,666 MB/s. Memory modules using this kind of memory are called PC3-10666 or PC3-10600, depending on the manufacturer.
It is really important to understand that these numbers are maximum theoretical numbers, and they are never reached. This occurs because for the math, we are assuming that the memory will be sending data to the memory controller every single clock cycle, which simply doesn’t happen. The memory controller and the memory need to exchange commands (for example, a command instructing the memory to deliver data stored at a given position), and during such time the memory won’t be transferring data.
Now that you know the basics about DDR memories, let’s talk about the specifics.