• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

RAM Bandwidth and why two sticks are better than one.

Merovingian

Senior member
Okay so when I play HL2 with one stick vs two the frames start dropping all over the place. Someone explained to me that ram works kinda like raid 0 and that by taking out a stick you effectively half the bandwidth which is why the frames were dropping all over the place. Can anyone confirm this?
 
Don't think this really belongs here, but anyway, no that's not why.
Don't know how much RAM you have, but if you mean just yanking one stick out(ie, halving the amount of RAM) then the reason is simply that you don't have enough RAM.
On S939 A64's you can interleave two 64bit memory channels, in essence doubling the theoretical bandwidth(yes, like RAID-0), but the A64 isn't very bandwidth starved in most situations, including HL2, and the performance drop would probably be in the range of 5%, +/- a few percent.
Any A64 no matter what socket is more than powerful enough to run HL2 perfectly fine, so your problem lies elsewhere.
 
Hmm... Someone posted this

"If you have a memory controller that allows dual channel memory, then you need to have atleast 2 memory sticks to take advantage of it. Dual channel means that you have two independent memory channels that can fetch data, but because of the way your typical memory is physically accessed, you can't have two concurrent memory accesses into one memory stick.

I wouldn't quite describe dual channel memory as similar to raid0. At a very basic level both techniques try to increase throughput by accessing independent memory units in parallel, but dual channel memory controllers are restricted to those two channels, while raid0 can scale upto available device channels in the used controller until the central bus is saturated.

In the end I'm not sure if that has anything to do with your system dropping frames when run with just one stick of memory, but obviously with just one stick you are only using half of the potential memory bandwidth of recent performance oriented platforms (which should all support dual channel memory by now)."

What do you think?
 
Yeah pretty much agree, except maybe this part:
At a very basic level both techniques try to increase throughput by accessing independent memory units in parallel, but dual channel memory controllers are restricted to those two channels, while raid0 can scale upto available device channels in the used controller until the central bus is saturated.
There's nothing preventing you from interleaving 32 channels of memory if you want to(other than physical limits, the amount of traces would be insane with DDR SDRAM), pincounts, and such.

But in higher end systems, 4-way interleaving isn't too uncommon, end the EV7 Alphas use 8 RDRAM channels IIRC, though it needs mention that RDRAM at 16 bits width, which is what I believe the EV7 uses, has a far lower pincount than your 64bit DDR DIMM's, so it's not really comparable to 8 way interleaving of DDR SDRAM.

Anyway, that's nitpicking, and yeah, the problem is most certainly elsewhere.
When you say removing one module, do you mean you have two 512 MB modules(for example) and remove one, or do you mean you either use one 1GB module or two 512 MB modules?
Going from 2x512 to 1x512 could certainly make it far mory choppy, while going from 2x512 to 1x1024 MB would make a very very small difference.
 
Interesting, yeah it's 2x512 down to 1x512 and when I say choppy I mean not playable at all. But I don't think that HL2 requires more than 512MB.
 
I agree, lesser performance perhaps, but not unplayable.
Unless you have craploads of stuff in the background eating RAM that is, might be an idea to check your memory usage upon a fresh boot.
 
Did you notice much HDD activity while playing HL2 with one module?
If so, the drops are being caused by paging, and not just by having half the bandwidth available (assuming you're not compensating for having the amount of memory with a larger capacity module).
Dual-channel memory can give you up to around a 10% boost in some games, although usually less.
If the code you're running has lots of temporal and spatial locality (cache friendly), then memory bandwidth is going to be less important, as most of the time the data/instructions the processor requires will be found in its cache, which is preferable.
In this case, increasing memory performance will have a limited impact, although most games do benefit from additional bandwidth.
 
i noticed the same thing in cs:s switching from dual channel to single channel (though the ram stayed the same =1gig)
 
Back
Top