AMD and RAM speeds... this'll make your brain hurt...

Jeff7181

Lifer
Aug 21, 2002
18,368
11
81
A thread in the CPU/Overclocking forum sparked this thought in my head...

For my example, I'll use the XP3200 because it uses a 200 Mhz FSB, and the math is more simple =)

Ok, so... an XP3200 has a front side bus speed of 200 Mhz, and it's double data rate, so that's 400 Mhz effective.

PC3200 RAM also runs at 200 Mhz, and it's also double data rate, so it's 400 Mhz effective.

BUT... the nForce2 chipset utilizes dual memory channels... so... that would be 800 Mhz effective if you're using two memory modules.

By this reasoning, PC2100 RAM would be MORE than adequate for an XP3200... OR... you could underclock PC3200 to 100 Mhz and lower the timing to say, 3-2-2-2, and it would still supply all the memory bandwidth the XP3200 needs in dual channel mode.

However, benchmarks show that running the RAM slower than the FSB hurts performance, even in dual channel mode...

... why is this?
 

zsouthboy

Platinum Member
Aug 14, 2001
2,264
0
0
Try setting your mem speed to 50% in the bios..... the performance isn't hurt THAT much, but I'd venture a guess around 10-15%..

you can do some insanely low timings, however, lol
 
Aug 27, 2002
10,043
2
0
I think he's talking about the theory of fsb vs. mem bandwidth. and he's a little confused.

800mhz mem
400mhz fsb

the fsb has to wait less clocks to access a memory address and read the data(in this case a theoretical savings of waiting is at 1/2 the wait states of 400mhz mem, actual savings is no where near the theoretical maximum though but is near 25% greater speed at accesses, but concidering other factors you'll see about 5-12% difference between the dual channel and single channel depending on the type of programs you use), the throughput is not the only determining factor in fsb to mem bus performance. you also have to look at a few other factors such as low latency, pre-charge time, etc. As amd likes to say clock speed isn't everything.

this is just a short snippet of what goes on with the mem bus and fsb for general understanding. I didn't go into full detail as it would make for a VERY long reply. Hope this helps clear the muddy water.
 

Jeff7

Lifer
Jan 4, 2001
41,596
20
81
I did benchmarks with Sisoft Sandra and AIDA32 with and without Dual Channel enabled. It was maybe a 5% increase. Dual Channel does not effectively make 200MHz DDR RAM equal to 800MHz SDR single channel RAM.
 

Amorphus

Diamond Member
Mar 31, 2003
5,561
1
0
DDR doesn't mean double the mhz - its more bandwidth, which means not that the data is being sent to the CPU faster, its just that theres more being sent. your logic is wrong.

also, the DDR does not just go to the CPU - remember, RAM is also used for controlling other things that the north and south bridges does. for example, onboard LAN, onboard ATA, FDDs, and the like. everythingon your motherboard, essentially.

you would still need PC3200, or PC2700 overclocked to PC3200 (like I'm using).

I'd post more, but I'm in a rush as I need to get to class.

peace.

(you're still wrong)
 

PrinceXizor

Platinum Member
Oct 4, 2002
2,188
99
91
I am by no means an expert, but I can contribute a little tid-bit of info on the subject.

1. Lost Circuits has an excellent series of articles on memory technology (if you really want your brain to hurt...check it out).
2. DDR memory stands for Dual Data Rate. The only thing doubled, is data transfer. i.e data is transferred on a rising edge and a trailling edge (my apologies to any EE majors if I misname something, plz correct me) of the clock signal. BUT!!! the address bit for finding said data is only transferred once per clock cycle. To me, this is the single, biggest reason why "theoretical bandwidth" is never achieved AND why running synchrounously with the memory controller is important. You have an FSB that is either dual (AMD) or quad (Intel) pumped. As far as I know, this is an actual doubling or quadrupling respectively of signals within the clock cycles. I could be mistaken. Anyhow, you have an effective FSB of say 400Mhz. So you have signals hitting the memory controller at 400 Mhz. Now you have DDR400 memory (which is actually running at 200Mhz singal cycling for the address requests). So if you are running synchrounously the latency penalty from waiting for these "single rate" address requests is lower than asynchorounously.
3. Now we get to the wonders of dual channel memory. Remember that address rate is "single rate"...well dual channel memory tries to help that problem by handling the requests more intelligently so that the "single rate" address requests don't get in the way of the "dual rate" data transfers.

I'm sure I've screwed up the actual details of this procedure in some way, but, I think the general concept is correct.

P-X
 

Jeff7181

Lifer
Aug 21, 2002
18,368
11
81
Originally posted by: Amorphus
DDR doesn't mean double the mhz - its more bandwidth, which means not that the data is being sent to the CPU faster, its just that theres more being sent. your logic is wrong.

also, the DDR does not just go to the CPU - remember, RAM is also used for controlling other things that the north and south bridges does. for example, onboard LAN, onboard ATA, FDDs, and the like. everythingon your motherboard, essentially.

you would still need PC3200, or PC2700 overclocked to PC3200 (like I'm using).

I'd post more, but I'm in a rush as I need to get to class.

peace.

(you're still wrong)

I'm not saying I'm right, I'm looking for an explanation of why it is the way it is.

And you're right, DDR doesn't mean double the Mhz... but it does mean double the bandwidth... so... if you can send twice as much info at 200 Mhz, wouldn't that be about as fast as SDR at 400 Mhz?
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
No it wouldn't. This is because on DDR, only the actual data transfers go twice as fast. Everything else (addressing, refresh) goes at the same speed as on SDR.
 

Jeff7181

Lifer
Aug 21, 2002
18,368
11
81
Originally posted by: Peter
No it wouldn't. This is because on DDR, only the actual data transfers go twice as fast. Everything else (addressing, refresh) goes at the same speed as on SDR.

I see... so if you were transferring one large file it would be fast... but if you were transferring several small files it wouldn't be as fast.
 

Amorphus

Diamond Member
Mar 31, 2003
5,561
1
0
not necessarily so.

an analogy would help, probably, because its early (7:10 am for me) and I don't want to think.

okay, single data rate SDRAM is like a, lets say two lane highway for the data with a speed limit of 50mph.

DDR (double data rate) SDRAM is that same highway with a speed limit of 100mph.

Dual-channel (128-bit) DDR SDRAM is a four-lane highway with a speed limit of 100mph.




while dual-channel has the ability to move greater amounts of data at the same time, its not faster, per se. eh... someone else continue this analogy. I have to get to class again (ugh. school. :p )
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
Originally posted by: Jeff7181
Originally posted by: Peter
No it wouldn't. This is because on DDR, only the actual data transfers go twice as fast. Everything else (addressing, refresh) goes at the same speed as on SDR.

I see... so if you were transferring one large file it would be fast... but if you were transferring several small files it wouldn't be as fast.

RAM isn't about files at all.

When you access RAM, a certain latency passes during which the addressing is being done, and then the data return at a certain rate.
Now an access to RAM (in PCs typically) is either a request for a single dataword, or a burst transfer of typically eight such datawords.

For the former, DDR is not faster at all (OK, by half a clock), and for the latter, it still isn't anywhere near twice as fast. Typical access latency is around twelve clocks - so where an SDR burst would take 12+8=20 cycles, DDR gets it done in 12+(8/2)=16. Theoretical clock doubled SDR would get it done in 10.
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
Back to the topic. Having RAM that provides more bandwidth than the CPU is useful for a variety of reasons.

(1) Latency on the CPU bus is lower than on the RAM. This delta has to be made up somehow.
(2) The CPU isn't the only agent in the system adressing the RAM. All other bus master agents do that too - from 3D graphics cards and storage controllers down to low bandwidth stuff like USB controllers.
(3) In Shared-Memory-VGA systems, the graphics unit bites a massive chunk out of your RAM bandwidth - so you want it to be high enough to still atisfy (1) and (2).
 

PrinceXizor

Platinum Member
Oct 4, 2002
2,188
99
91
Excellent comments by Peter (of course). As I mentioned before, Lost Circuits has an excellent 3-part series on memory, starting with basic concepts behind transistor based memory and progressing up to the whole DDR, RDRAM, DDR-II, et al. issues. A very good read (but highly technical). I knew just enough basic EE from my college classes to follow. If you don't know the difference b/n a bit and a byte, then I might pass.....

.....well, I was going to linkify the articles, but I'll be darned if I can find them. There are still many, many good articles on Lost Circuits that should help you understand. Here is a linky for one that talks about DDR-II memory. In the early part of the article is a nice graph that shows the differences b/n SDRAM, DDR and DDR-II as respects to core frequency, the clock frequency and the data frequency. Good stuff, but don't read until after your second cup of coffee.

P-X