DDR vs DDR2 Latency, How Cycles Work, and Dual Channel Marketing

I’ve noticed one thing on the Internet, that stands out above almost all others: most people on the Internet have no clue what they are talking about. Case in point, a lot of ricers and gamerz like to say that DDR is lower latency than DDR2 because DDR2 takes more cycles to do things; except they forget one important thing: cycles are not a measurement of time, they are a measurement of iterations.

That said, there is only one case where DDR actually manages to be lower latency than DDR2 (and this doesn’t mean it has higher performance, or effects benchmarks in any measurable way in favor of DDR), and that is with DDR400 memory vs. DDR2-400 memory: latency is theoretically lower, but you pay a penalty for giving up DDR2’s larger prefetch buffer and better power efficiency. Also, no one actually uses DDR2-400 memory, only 667 and 800. DD2-800 compared to DDR400, latency ends up being similar in impact, and the actual performance is at least twice as much as DDR400, probably even more.

Another thing people say is that DDR2 is slower because it takes more cycles to do things. Yet another thought that hasn’t been fully thought out, and in a similar manner to the whole latency problem (infact, they are directly related; faster timings usually decrease latency across the same memory archetecture). As I said earlier, cycles do not measure time; however, cycles combined with cycles per unit of time measure time. DDR2 in most, if not all, situtations simply performs better.

So, to anyone out there that says that DDR2 is a step backwards: You’re an idiot.

Written by
Open Source software architect and technologist. He's just this guy, you know? Follow him him on Google+.
Published in
Transmissions from the Little Blue Marble

Published September 18th, 2006

Comments

75 Responses

You seem quite knowledgeable about latency. Would these same measures apply to audio interfaces?

Not in the same sense. The equivalent for audio would be closer to a 1024 byte buffer would represent a smaller amount of time if the sampling rate was higher (such as 44.1khz vs 192khz).

This is why a lot of programs display buffer length in units of time, since those are constant across different sound formats.

Interesting discussion going on here – and quite long-lived at that 😉

Just a few things I’d like to add; Patrick here seems to mostly know his stuff, but there’s a few extra points of interest I’d like to comment on:

1. By the numbers and my understanding of DDR and DDR2 operation, latencies are only equivalent between the two if the timings are double between the DDR1 and DDR2 sticks. For example, a DDR-400 stick running at 2-2-2-5 would be, in theory, equivalent to a DDR2-800 stick running at 4-4-4-10 timings. The same DDR stick running instead at 3-3-3-8 would be equivalent in latency to a DDR2-800 stick at 6-6-6-16 timings. The bandwidth, obviously, would also double when going to DDR2. In truth, this is never quite true, and in general DDR1 systems appear to have a larger latency lead due to the fact that the majority of DDR1 systems in circulation are AMD S939 with an integrated dual-channel memory controller, instead of an intel based system on LGA775 which will have an FSB-based memory system (which is inherently higher latency).

About the question relating to memory usage percentages and when it’s time to upgrade – yes, it is in theory true that you’re fine until you hit 100% memory usage, but there’s a bit of a caveat. A number of programs examine how much memory the system has and will, for performance reasons, try and tailor their usage to stay within the physical system ram. In this way, they’re not dependent on the operating system’s pagefile system and have more control over what is swapped in and out of ram from the hard drive (the program is what knows best about what it’s likely to need next in terms of swapping). As such, you will often notice that if you were close to your maximum memory running a game/application and then double your memory, the same program will consume more memory. It’s not that it’s suddenly being wasteful – it’s just that before it was cutting back its own usage to stay within the system’s limits, and can now reserve a larger chunk of memory to operate as intended. The end result of this is that you can often see performance increases from boosting your ram even if you aren’t normally quite hitting 100% as it is right now.

Kyle also asked a question about if it’s possible to determine if a chip has been overclocked after the fact for warranty reasons (to my knowledge, not easily) and if boosting his voltage and dropping his RAS delay from 16 to 12 will net him a performance improvement – which it will, but RAS actually has only a very minor impact on overall memory performance, so it’s probably not worth the trouble.

The only other thing I’d like to add is that Patrick mentioned that a system is only CAS3 if it’s 3-3-3-8 (any slower on the 2nd, 3rd and 4th timings and it isn’t CAS3). This is not strictly true – each of those 4 timings has a different name, in normal order of appearance: CAS-tRCD-tRP-tRAS

These names mean:
Column Access Strobe
RAS-to-CAS Delay
Row Precharge Time
minimum Row Access Strobe

So, if the first number is set to 3, then the CAS is actually 3 regardless of what the other numbers are. This is a question of convention however, because when a ram stick is called “CAS3” it generally refers to the JEDEC-specified arrangement of timings where the first value is 3, so in this case JEDEC’s CAS3 standard is 3-3-3-8 and CAS4 is 4-4-4-12 (CAS5 is 5-5-5-15). In short, the JEDEC standards specify a full 4-set of timings for each possible CAS value, but other combinations are possible and still technically speaking called CAS3 or CAS4 etc… as their CAS value is set to that – but in most cases these other combinations include slower values for the 2nd, 3rd and 4th timings than the JEDEC spec, and will thus not perform as fast as JEDEC-standard CAS3.

PS: I know I said that was my last point, but there’s one more quick thing I forgot to mention – all the confusion about memories and timings and why this isn’t automatic when it should be centers around one simple fact – the standard voltage for a particular memory type used to always be the same regardless of speed or grade, so the SPD chips responsible for autosetting the timings don’t have a field in them for the required voltage for the listed timings. As such, if your stick is spec’ed to run at 4-3-4-12 timings at 2.0v (higher than the DDR2-standard 1.8v) then your motherboard doesn’t know what to do because all it has in its SPD chip is timings for the standard 1.8V voltage. This problem will, eventually, be rectified in later SPD chips, and in some special cases (nvidia’s EPP for example) is already implemented.

Sure, it says it can run at that speed, but only at the stated voltage. You risk making your machine unstable otherwise, with no actual performance benefit to boot.

ok well what bout tightening up that last number to a 16 instead of a 20? would that do anything to help cause my ram says it can run at that speed.

I don’t buy RAM that isn’t rated for the proper voltage anyhow: ddr2 other than 1066 is 1.8 volts, 1066 is up to 2.1 volts, and ddr3 is 1.5 volts. Overvolting to run faster RAM has side effect of killing motherboards faster in some cases.

My ddr2 800 ram is running at 5 5 5 16 speeds when it is rated 5 5 5 12 at 20 volts. Will tightening the timings get me better performance? and if so, how much? Also, is it safe to just bump it straight up to the 2.0V rating they put on it?

The BIOS is correct.. it sounds like Core Temp and SpeedFan are using a slightly incorrect formula for your CPU. File a bug report with them, this should be fixed.

Hi I own a q6600 and am getting conflicting temperature readings. RealTemp and bios say about 40 degrees across all four cores….Core Temp and Speed fan say around 50. I do not know which one to trust.

Probably yes, though I doubt they’d care, it costs too much to actually check.

Im just asking how Intel could tell if my cpu was over clocked if it somehow broke for some other unrelated reason.

CPUs either function or they don’t. If you don’t break it, why do you care if the warranty is voided?

If I overclock my Q6600 cpu and ram will it void the warranty? If so, how can Intel even tell that I ever overclocked? (assuming I dont break it by overclocking)

Actually, the benchmark would have to be between DDR400 and DDR2-400. DDR400 vs DD2-667 should perform similarly, due to the greater bandwidth making up for the higher latency… in theory, anyways.

Hey Patrick… I got one of those motherboards with DDR and DDR2… I have 1gb X 2 DDR400 G.skill and I’m Getting 1gb X 2 DDR2667 OCZ still need a benchmark I know this is old article… but google pulls it first on DDR vs DDR2 for search terms

Nope. If it reaches 100%, time to install more memory.

how about like 90 %

Most likely you will not have any problems.

hi, lately my ram has been hitting 80 to 85 percent in games. I was wondering if that would bottleneck or slow down anything or if my ram is fine until it reaches 100%.

Most computers will shut down if they overheat. As I said, use temperature sensor software to see what the temp is.

Im not worried about my temps once the fan starts up (about 15 seconds after it revs on and off) but I am worried about that 15 second window when the fan is hardly pushing anything onto the cpu heatsink.

Would 15 seconds be long enough for my cpu to damage itself? I have a heatsink on it too.

Unless the fan is caught on something, it may be fine. Use temperature sensor software to see if the processor is exceeding room temperature, if it is by more than ten degrees the fan is faulty and should be replaced.

u seem to know all so I might as well ask.
My cpu heat sink fan seems to rev (starting then stopping) on startup before actually starts spinning. It sometimes revs up to the windows loading screen… DO i need to be worried about over heating and what is the problem here???
Thanks

Nope. ATX power supplies are always on, as are parts of the motherboard. Case in point, being able to turn the machine on via pressing a key, clicking the mouse, doing it on a timer, doing it on power outage restoration, and Wake-On-LAN or Modem.

Hell, even the power button on your case has no power flowing through it, its a simple event trigger, the motherboard is already on: it just switches everything else on when you press the button.

But what would make my computer even turn on the slightest bit without me trying to power it up? If it was my mobo…wudnt it wait until i at least tried to power up the system?

Leave a Reply to john