How are memory locations divided among sticks of RAM?
I recently upgraded from four 1GB DIMM sticks to four 2GB DIMM sticks (the server specifically says it supports the 2GB DDR2 DIMM sticks). However, after putting in the four brand-new 2GB sticks, the machine wouldn't boot and PC speaker gave a loud beep, presumably indicating a faulty DIMM stick. Removing one stick at a time and trying to boot, I found that if the RAM in DIMM2 wasn't present the machine would boot. I then ran memtest86+ for about 10% of a pass and the 6GB seemed to be ok.
I then decided to move DIMM3 (working) to the socket for DIMM2 (trying to test if the DIMM2 socket was faulty) and this booted fine. Then I tried putting the questionable DIMM into the DIMM3 socket. To my surprise this time the computer booted, however running memtest86+, it found ~15 errors in about 5% of a pass. However, I naively expected the errors to be in a location between 6144-8192 MB or at least all confined to a continuous 2048 MB block of RAM. Instead I found that the memory errors were spread throughout the locations. (E.g., some were grouped ~500MB, some grouped around ~4500 MB -- I didn't record the exact locations).
However, then I removed the questionable DIMM in DIMM3 and reran memtest86+. A full pass completed with no errors on the 6GB of RAM. At this point I'm convinced, the questionable DIMM is faulty -- but I'm a bit perplexed by the earlier memtest86+ errors.
Are memory locations not just consecutively grouped? (E.g., DIMM0 is 0-2048MB, DIMM1 2048-4096MB, ... ) or is it split up more (e.g., DIMM0 has byte 0,4,8,12; DIMM1 has byte 1,5,9,13 )? Or could a bad DIMM produce memory errors in locations that belong to other DIMM sticks?