DDR2 800mhz running at 667mhz?

Page 2 - Seeking answers? Join the Tom's Hardware community: where nearly two million members share solutions and discuss the latest tech.
mark,
The FSB *clock* is 266MHz for Core2Duo CPUs. However, Intel CPUs transfer 4 pieces of data per clock cycle, so the data rate is 1066MHz. Most recent Pentium 4/D CPUs run at a 200MHz (=800MHz data rate) FSB. Older Pentium 4/D CPUs run at a 133MHz (=533MHz data rate) FSB.

For memory, the key is that you want the memory throughput to be at least as high as the FSB's data rate, so the FSB will not have to "wait" for the memory bus.
Thus, if you are using a non-OC'd C2D CPU, the FSB data rate is 1066MHz, so we want to match our memory throughput to that for a 1:1 ratio. DDR2-533 has a 533MHz data rate (but 266MHz clock speed), and that data rate gets doubled when the system is running in dual-channel mode; 533Mhz data rate x 2 (dual channel mode) = 1066MHz data rate, matching the non-OC'd C2D CPU FSB data rate.

WRT your post, the msi site is talking about FSB data rate, not clock rate. However, most of the FSB speed references in this article are to clock rate, not data rate.

Bottom line, for people who will never ever never overclock, get DDR2-533. But since it seems pretty silly not to overclock C2D CPUs at least a bit, others should get DDR2-667 or DDR2-800.
 
I sometimes think that terminology used for CPU, the FSB, and DRAM speeds has been deliberately designed (by Satan?) to confuse and mislead us all. More likely what happened is that each time the technology was extended the terminology was modified in a way that seemed reasonable at the time. But after a few rounds of this, the end result is that the naming conventions appear to not make any sense ... unless you know the underlying context.

I'll try to describe how I think things work. Hopefully someone else will correct me if I say something that is not actually true. I'll start with the flow diagram below of one of Intel's older chipsets. At the top of the diagram is the CPU (a Pentium 4 in this case). The line labeled "6.4GB/s" represents the FSB (Front Side Bus). The FSB connects the CPU to the Memory Controller Hub (MCH). (The MCH is also referred to as the "northbridge"). To the right of the MCH you see two lines going from the MCH to DDR2. This represents the two independent memory bus connections from the MCH to the memory available when dual channel memory access is enabled.

925x-flowlarge.jpg


Perhaps a good place to start is to point out that the FSB is not connected directly to anything other than the MCH. In particular, the FSB does not talk directly to the memory. Only the MCH can access the memory and it does so on a separate interface. This is why it is possible to run the memory and the FSB at different speeds.

Now about the different speeds ... Where to begin?? Let's start with what I call the "system clock". This is the underlying clock which all the other clocks are derived from through multipliers, ratios, dividers, or whatever. :roll: There are a few standard basic ("stock") clock speeds that CPUs have used recently. They are 133MHz, 200MHz, 266MHz, and (just now being introduced) 333MHz.

However, the speeds usually quoted for the FSB are derived by multiplying the system clock by 4. The rational behind this is that the FSB is "quad-pumped". This is marketing lingo meaning the FSB can move 4 "units" of data every time the underlying system clock cycles. So, multiplying by 4, we have effective FSB speeds of 533, 800, 1066, and 1333. These should all look familiar to you, no?

When you see a comment like 'FSB 400 is pushing it', translate it to 'FSB 1600 is pushing it' and it should then make more sense relative to the specs provided for motherboards. This dual usage is actually pretty common. I'll often refer to FSB 266 when what I suppose I should technically say is FSB 1066. The base system clock speeds just seem more real to me. So I assume/hope that the implied "factor of 4" will be "obvious" to most.

It's also easier for me to relate a system clock speed to a DDR2 effective speed since the DDR2-xxx speed is just 2*(system clock) when using a 1:1 ratio. So for example, assuming a 1:1 CPU😀RAM ratio and a stock clock speed of 266MHz we get DDR2-533 and FSB 1066. Finally, if dual channel memory support is enabled then there are actually two DDR2-533 memory DIMMs which the MCH can access simultaneously. The effective memory access speed in that case is 2*533 = 1066. The same effective speed as the FSB. Wow. :)

OK, I've droned on to the point where I'm not sure I'm helping any longer so I'll stop here. If you still have questions, post them and I or someone else will take another crack at answering them. :wink:

Hope this helped at least a bit ...

-john, the ostensibly clueless redundant legacy dinosaur
 
Nice post zj! My one quibble is that I've typically seen "B" used for bytes and "b" used for bits, so MB/s would be megabytes/sec, and Mb/s would be megabits/sec.
Yeah, you're right. After thinking about it I decided I didn't really understand the figures in the chart yet so I deleted my "P.S." from the post. I understand the memory bandwidth (I think), but I'm not quite getting how an FSB of 800 (I'm guessing) translates into 6.4 giga-bytes/sec ... :?

Arithmetic! :evil:

Edit: Well, reflecting on it, I guess Intel must use at least a 64-bit or 8-byte wide bus for the FSB so 800MT/s would move 8*800MB/s or 6.4GB/s. I obviously get "fuzzy" when talking about the FSB. 😳

Part of the problem is that I've never seen an explanation for how the so-called "quad-pumping" is implemented. Perhaps the bus is actually 16-bytes wide and run dual-data rate the same as the memory bus? I just don't know. None of the descriptions I've seen ever goes further than that "magic" multiplier of 4. :?

Edit: Hmmmmm. According to the entry in the "Host Interface Signals" table on page 38 of the spec for the 965P chipset, the FSB only has 64 data lines (HD[63:0]) so it's only 8 bytes wide. How on earth they manage to move data on a 8 byte wide FSB 4 times per clock cycle is ... a question which I don't know the answer to. :)

-john
 
Thank you both for the help (good reading too); mondoman, your first reply to me got me straightened out - really appreciate it.
 
(...)There are a few standard basic ("stock") clock speeds that CPUs have used recently. They are 133MHz, 200MHz, 266MHz, and (just now being introduced) 333MHz.

(...) So, multiplying by 4, we have effective FSB speeds of 533, 800, 1066, and 1333. These should all look familiar to you, no?

(...) So for example, assuming a 1:1 CPU😀RAM ratio and a stock clock speed of 266MHz we get DDR2-533 and FSB 1066. Finally, if dual channel memory support is enabled then there are actually two DDR2-533 memory DIMMs which the MCH can access simultaneously. The effective memory access speed in that case is 2*533 = 1066. The same effective speed as the FSB.

Great post.

Example and some more questions:
E4300 (FSB=800MHz)
System bus = 200MHz
If i install a dual channel kit DDR2-800 than this means:
2x(2x200MHz) per channel downsized by the MCH?
If i install a dual channel kit DDR2-533 does this means:
2x(4/3 x200MHz) per channel downsized by the MCH?

Without dual channel in this case a single DDR2-533 dimm probably leads to CPU periodically waiting for more data from memory?

Since the MCH has a double simultaneous access to both channels, does this means that in theory a dual channel kit DDR2-800 can reach effective memory bus speeds of 1600MHz?

This means nowadays no matter what cpu you install you can also install DDR2 memory modules with any speeds (533, 667, 800, ...) since the memory bus is absolutely independent from the FSB. Is this also correct?

Thanks a lot.
 
...
If i install a dual channel kit DDR2-800 than this means:
2x(2x200MHz) per channel downsized by the MCH?
I don't really understand what you mean by "downsized". DDR2-800 running in dual-channel mode will have a bandwidth of 800MHz x 2 = 1600MHz data rate.

...Without dual channel in this case a single DDR2-533 dimm probably leads to CPU periodically waiting for more data from memory?
Yes.

...Since the MCH has a double simultaneous access to both channels, does this means that in theory a dual channel kit DDR2-800 can reach effective memory bus speeds of 1600MHz?
Yes. Just to clarify, "dual channel mode" is determined by the motherboard hardware and has nothing to do with the specific memory module. Earlier chipsets/memory controllers were more sensitive to differences in the memory modules in the two channels; "dual channel kits" came about as a convenient marketing solution for this - they are simply two ordinary memory modules from the same production run packaged together.

...This means nowadays no matter what cpu you install you can also install DDR2 memory modules with any speeds (533, 667, 800, ...)
Yes.

... since the memory bus is absolutely independent from the FSB.
In practice, mostly yes. The degree of independence depends on the motherboard design. Underneath it all, the memory bus clock is some integer ratio of the system clock. However, mostly in order to facilitate overclocking, MB makers have added circuitry and BIOS code that allows close to 1MHz control of memory bus speed by increasing the choice of integer ratios. On my NI8 motherboard, this becomes clear in the BIOS in the memory bus speed selection entry. You can manually set the desired speed in 1MHz increments, but the BIOS will automatically "round" that speed to the nearest speed supported by the available ratios. Normally, this only results in a 4-8MHz difference.
 
Example and some more questions:
E4300 (FSB=800MHz)
System bus = 200MHz
If i install a dual channel kit DDR2-800 than this means:
2x(2x200MHz) per channel downsized by the MCH?
If i install a dual channel kit DDR2-533 does this means:
2x(4/3 x200MHz) per channel downsized by the MCH?
Not quite. The xxx speed in the DDR2-xxx convention is always 2*(memory bus speed). If you are using a 1:1 ratio, then the memory bus is running at the same speed as the system clock. In your example the system clock is 200MHz and I'm assuming the ratio is 1:1 so what is required is DDR2-400 (2*200MHz), not DDR2-800.

The rule with memory is that you can always run it slower than it is rated. So in this case, you could install either DDR2-800 or DDR2-533 DRAM and then run it at DDR2-400 speeds. If you wanted to run the memory at its rated speed you'd first need to use a motherboard that supported this. Assuming the motherboard supports it, you'd use a ratio of 200:266 or 3:4 for DDR2-533 and 200:400 or 1:2 for DDR2-800.

(Of course, almost any recent motherboard would support this. I just don't want to give the impression that all motherboards will let you run any memory at any speed you want. It depends on what the motherboard's BIOS and chipset will support).

Without dual channel in this case a single DDR2-533 dimm probably leads to CPU periodically waiting for more data from memory?
That's my understanding of it. This is why running your memory in dual channel mode is so strongly recommended. There is typically a significant performance increase (10-15%?? IIRC) using dual channel versus single channel.

To throw numbers at it ... The FSB is 8 bytes wide so running the FSB at 800 MT/s implies a theoretical bandwidth of 6.4GB/s. The max theoretical bandwidth for single channel DDR2-533 is 8 bytes * 533 MT/s or ~4.2GB/s. The CPU and FSB could potentially process data faster than the memory which would lead to the memory limiting the system's performance.

Since the MCH has a double simultaneous access to both channels, does this means that in theory a dual channel kit DDR2-800 can reach effective memory bus speeds of 1600MHz?
I think I see where you're going and the math works out OK but this is not usually the way it is described. Usually what is stated is the theoretical maximum peak bandwidth. A single DDR2-800 DIMM operating at its rated speed can ... ignoring latencies ... theoretically delivers 8 bytes 800 million times a second. So the single channel peak bandwidth is 8 Bytes*800MT/s or 6.4GB/s. Dual channel theoretically doubles the bandwidth to 12.8GB/s.

In real life you can't ignore latencies (and other limitations) so you are always well below the theoretical limits. Companies do like to use the theoretical limits in their marketing materials though. :)

This means nowadays no matter what cpu you install you can also install DDR2 memory modules with any speeds (533, 667, 800, ...) since the memory bus is absolutely independent from the FSB. Is this also correct?
Close ... and probably true enough for the subset of CPUs and memory you are likely to consider buying. However, remember that the speed you can run your memory at relative to the FSB is always determined primarily by what your motherboard's BIOS and chipset will support.

I think that saying the memory bus is absolutely independent of the FSB is wrong because it goes too far. The memory bus is a separate bus and it can be run at a different clock speed. However, that speed is derived from the clock the FSB uses. The FSB and memory bus while separate objects are still inter-dependent.

There may also be other limitations. For example, if you look on page 12 of Intel's overview for the 965 chipset , you'll find a table of Valid FSB/Memory Speed Configurations. The only thing unusual in the table is for FSB 533 (aka system clock 133MHz). When the FSB is 533 apparently the chipset won't allow running the DRAM faster than DDR2-533 speeds. A note below the table states that the 965 chipset "does not support system memory frequencies that exceed the frequency of the Front Side Bus".

It is very unlikely that anyone will run a motherboard with the 965P chipset at FSB 533 so this restriction is not an important one. I'm just dragging it out to illustrate how design dependencies are another way the FSB and memory bus can be inter-dependent. 😳

-john, the ostensibly clueless redundant legacy dinosaur
 
...
If i install a dual channel kit DDR2-800 than this means:
2x(2x200MHz) per channel downsized by the MCH?

I don't really understand what you mean by "downsized". DDR2-800 running in dual-channel mode will have a bandwidth of 800MHz x 2 = 1600MHz data rate.

I was thinking that, in the E4300 example, that MCH would limit the effective speed between FSB and RAM (assuming that if FSB=800MHz than the dual channel speed would be downsized/reduced to 2x400MHz...) in a 1:1 ratio. I guess this was a wrong idea since those bus are independent.

Thanks for the great explanation!
 
The rule with memory is that you can always run it slower than it is rated. So in this case, you could install either DDR2-800 or DDR2-533 DRAM and then run it at DDR2-400 speeds. If you wanted to run the memory at its rated speed you'd first need to use a motherboard that supported this. Assuming the motherboard supports it, you'd use a ratio of 200:266 or 3:4 for DDR2-533 and 200:400 or 1:2 for DDR2-800.

Assume now i have a motherboard that allows me to set those ratios manually if i want to (and for the record it has a E4300 installed on it).
If i do _not_ set the ratios manually - keep at stock speeds and auto config - what usually does the motherboard configures in this case if i install a dual channel kit DDR2-800? Does it configs at maximum speed ratio 1:2 (2x 800MHz) or does it keeps 1:1 ratio and configs it at 2x 400MHz? (i assume the second choice. Is it correct?)

What i'm getting aware is that a dual-channel kit DDR2-533 with low latency is more than enough to support a E6600 without OC and a dual-channel kit DDR2-667 is more than enough to allow a light/medium OC (say about more 30% on system clock and performance).

Thanks a lot for the great explanation!
 
I was thinking that, in the E4300 example, that MCH would limit the effective speed between FSB and RAM ...
It's complicated and I don't really know exactly how things work here. But speaking in vague generalities, the speed of the FSB/DRAM system will be limited by the bus with the smallest available bandwidth. If the FSB runs at an effective speed of 800MT/s and has a bandwidth of 6.4GB/s then it doesn't make sense for your memory subsystem to have a bandwidth far greater than this. It won't hurt if the memory can move data much faster than the FSB, but it won't help much either. This is why the earlier Intel motherboards nominally only supported DDR2-533. Running the memory faster wasn't expected to make any difference. When the effective FSB speed was 533MT/s (133MHz) or 800MT/s (200MHz), then a dual channel enabled theoretical memory bandwidth of ~8.5GB/s was good enough.

Currently with DDR2-800 and dual channel the theoretical peak bandwidth of the memory is ~(8*800MT/s)*2 or ~12.8GB/s. That is at least one of the reasons why Intel keeps increasing the speed of their FSB. For all the current Core 2 processors other than the E4300 the current FSB effective speed is 1066MT/s and the theoretical bandwidth is ~8.5GB/s. In a few months (or less) Intel is expected to begin selling chipsets and Core 2 processors which use a 1333MT/s FSB with a bandwidth of ~10.7GB/s. The bandwidth of the FSB and the memory will then be on a more equal footing.

But as I said, it's complicated. For one thing, the peak bandwidth is only important to the extent that the CPU is actually limited by the available FSB bandwidth. Usually it isn't. For another, the CPU (using the FSB) is not the only subsystem on the motherboard which accesses memory. If you look back at that diagram I posted earlier, you'll notice that in addition to the FSB there are also connections to the MCH for the PCI Express graphics and for the "Southbridge". These systems can also access the memory independently of the processor. So, again "theoretically", any extra memory bandwidth is not necessarily wasted because it can be used to satisfy memory read/write requests which originate from sources other than the FSB.

If i do _not_ set the ratios manually - keep at stock speeds and auto config - what usually does the motherboard configures in this case if i install a dual channel kit DDR2-800? Does it configs at maximum speed ratio 1:2 (2x 800MHz) or does it keeps 1:1 ratio and configs it at 2x 400MHz?
I honestly don't know. I think the latter case ... the 1:1 ratio ... is the most likely, but I am only speculating. Best thing to do is to go into the BIOS and see what settings it picks. You can also use a tool along the lines of CPU-Z or PC Wizard to see how fast things are running.

What i'm getting aware is that a dual-channel kit DDR2-533 with low latency is more than enough to support a E6600 without OC and a dual-channel kit DDR2-667 is more than enough to allow a light/medium OC (say about more 30% on system clock and performance).
Yes. If you are not overclocking ... an important disclaimer around here since so many people do overclock :) ... then increasing the memory speed in a Core 2 based system does not increase performance all that much. The performance gained is not going to be worth the extra money spent for the faster memory. Premium memory only makes sense if you're going to overclock ... or if you don't pay extra for it, I suppose. :)

I should probably point out that while the above is true for the Intel Core 2 CPUs it is not as true for the AMD CPUs. The difference is that the Core 2 processors have huge amounts of cache on them to eliminate/reduce the performance impacts of the extra latency introduced by Intel's FSB architecture. The AMD CPUs have less cache because they use an Integrated Memory Controller (IMC). The AMD CPUs connect directly to the memory bus and data moves directly from the DRAM onto the CPU chip. As a result the AMD CPUs use less cache and their performance tends to be more sensitive to changes in memory speeds and latencies.

(Sorry I can't be more precise than that. I don't know that much about AMD CPUs. All the reading I've done to date has pretty much been about Core 2. :))

-john, the ostensibly clueless redundant legacy dinosaur