Paul
Sun May 04 19:17:37 PDT 2008
Robert Pendell wrote:
> Before we start... Technical Data Sheet for i945-based chipsets -->
>
http://www.intel.com/design/mobile/datashts/309219.htm. Specifically
> reference section 1.1.2 System Memory support for i945GM chipsets (the
> i945PM supports all i945GM features but without the integrated graphics).
>
> I just wanted to let you guys know that this chipset does indeed support
> dual channel even with unmatched pairs. I know most boards will only do
> dual channel mode if the voltage, speed, and capacities match however
> this one will do it even if the capacities don't match. I will assume
> that the other factors should still match. I used the following memory
> sticks...
>
> Slot 1:
> G.Skill
> F2-5300CL5D-4GBSA
> DDRII2GB PC2-5300
> CL5-5-5-15
>
> Slot 2:
> G.Skill
> F2-5300PHU2-2GBSA
> DDRII1GB PC2-5300
> CL5-5-5-15
>
> Slot one is a stick of 2GB from a 2x2GB matched set
> Slot two is a stick of 1GB from a 2x1GB matched set
>
> Therefore they are not meant to go together. They are spec for spec
> compatible however. They both run at 1.8v.
>
> Memtest86+ 2.01 passed and reported Dual Channel (Asynchronous). CpuZ
> is reporting Dual Channel mode.
>
> Information below is from a CpuZ register dump file.
>
> Chipset
> ------------------------------------------------------------------------------
>
>
> Northbridge Intel i945PM rev. 03
> Southbridge Intel 82801GHM (ICH7-M/U) rev. A1
> Graphic Interface PCI-Express
> PCI-E Link Width x16
> PCI-E Max Link Width x16
> Memory Type DDR2
> Memory Size 3072 MBytes
> Channels Dual
> Memory Frequency 332.9 MHz (1:2)
> CAS# 5.0
> RAS# to CAS# 5
> RAS# Precharge 5
> Cycle Time (tRAS) 15
> Bank Cycle Time (tRC) 21
>
> Memory SPD
> ------------------------------------------------------------------------------
>
>
> DIMM #1
>
> General
> Memory type DDR2
> Module format SO-DIMM
> Manufacturer (ID) G.Skill (7F7F7F7FCD000000)
> Size 2048 MBytes
> Max bandwidth PC2-5300 (333 MHz)
> Part number F2-5300CL5-2GBSA
>
> Attributes
> Number of banks 2
> Data width 64 bits
> Correction None
> Nominal Voltage 1.80 Volts
> EPP no
> XMP no
>
> Timings table
> Frequency (MHz) 200 266 333
> CAS# 3.0 4.0 5.0
> RAS# to CAS# delay 3 4 5
> RAS# Precharge 3 4 5
> TRAS 9 12 15
> TRC 12 16 20
>
> DIMM #2
>
> General
> Memory type DDR2
> Module format SO-DIMM
> Manufacturer (ID) G.Skill (7F7F7F7FCD000000)
> Size 1024 MBytes
> Max bandwidth PC2-5300 (333 MHz)
> Part number F2-5300PHU1-1GBSA
>
> Attributes
> Number of banks 2
> Data width 64 bits
> Correction None
> Nominal Voltage 1.80 Volts
> EPP no
> XMP no
>
> Timings table
> Frequency (MHz) 266 333
> CAS# 4.0 5.0
> RAS# to CAS# delay 4 5
> RAS# Precharge 4 5
> TRAS 12 15
> TRC 16 20
>
>
> So umm... yea. Sometimes the boards do not need matched pairs to do
> dual-channel mode. I know some people around here have stated that you
> require matched pairs for Dual Channel mode to work.
>
My comments -
1) Don't believe everything the BIOS prints on the screen. There
have been a number of motherboard BIOS that got the declaration
of memory mode wrong.
2) Check the datasheet for the chipset, to see what modes are supported.
http://www.intel.com/design/mobile/datashts/309219.htm
http://download.intel.com/design/mobile/datashts/30921905.pdf
Check Fig.15 on PDF page 339 of the 30921905 document. There are three
operating modes. Leftmost, involves only one of the channels having
a DIMM installed. Middle mode is one DIMM per channel, identical size
for each (note that there is no mention in the document, of a Flex memory
mode). The third rightmost diagram is misnamed. In other architectures, it
would be termed virtual single channel, as the two channels are placed
head to toe, and access is single channel with respect to sequential
access attempts.
One other poster mentioned P965, so we can compare to that.
http://download.intel.com/design/chipsets/datashts/31305302.pdf (see page 336)
Check Figure 10-1 on PDF page 336. The leftmost mode uses a single
channel. The middle mode is dual channel, with equal sized DIMMs.
(Memory is interleaved from end to end.) The rightmost column is
the interesting one. Unlike your 945PM chipset, the controller supports
Flex mode. That interleaves as much memory as matches in quantity,
and then the excess of memory is accessed in single channel mode.
Flex memory mode means memory bandwidth changes with memory address.
For example, if one channel had 1GB of memory, and the other channel
had 512MB of memory, then there would be enough memory to interleave
the bottom 2x512MB quantity. The remaining upper 512MB section of the
1GB DIMM would be accessed in single channel mode.
Conclusion ? On 945PM, mismatched memory runs in virtual single channel mode.
On P965, mismatched memory runs in dual channel at the bottom part,
and single channel at the top. Matched memory, on either chipset, runs
in true dual channel mode.
3) Measurements. You can learn a lot from measurements. Here is a test plan -
1) Install just one stick. Boot a copy of Memtest86+. Observe the memory
bandwidth indicator on the upper left of the screen (at least, that is
where the bandwidth number used to be placed). If you don't like
Memtest86+ for this, then try Sisoftware Sandra instead.
2) Install a matched set of DIMMs on your computer. This will be a dual
channel test case. Again, read off the bandwidth indicator for the memory.
The number will not be double, as the channel efficiency is not the same
for the two modes.
3) Install a mismatched set of DIMMs, 1GB in one slot, 2GB in the other slot.
What does the bandwidth indicator say now ? Does it match (1) ? Does
it match (2) ? What is your conclusion ?
Finally, if you really think you have Flex mode in your chipset, I even have
a test case for that.
I got the source for memtest86+ version 1.65, and made a small modification to
it. I did a build in Linux, and the "make" operation preps a floppy with the
new code. The objective of the code, is to make memory bandwidth measurements,
at equally spaced locations throughout the memory map. For example, I could
split a 2GB total memory, into (8) 256MB chunks, and do a transfer speed test
on a 16MB sized chunk at the beginning of each 256MB chunk.
http://groups.google.ca/group/alt.comp.periphs.mainboard.asus/msg/612b44b94d1b64f4?dmode=source
(When I first presented my results. This is just after I got it working.)
http://groups.google.ca/group/alt.comp.periphs.mainboard.asus/browse_frm/thread/27e23db56f02cbf2/2a1b309b3f3680d0
When I ran the modified memtest86+ 1.65 code, on an Nforce2 motherboard with
3x512MB DIMMs, this is what was printed on the screen. (I used 12 zones, because
I had a weird amount of memory to test.) Location zero is not tested, and it is
dangerous to assume it is available to you (may be in reserved memory section).
(I didn't consult all the code in this program to make this change, and
did not vet my memory against the E820 BIOS reserved map etc.)
08000000 1435 ; (This is address 128MB)
10000000 1435
18000000 1435
20000000 1435
28000000 1435
30000000 1435
38000000 1435
40000000 916 ; (This is address 1GB)
48000000 916
50000000 916
58000000 916
The Nforce2 works similarly to the Intel Flex concept (only Nvidia did it first).
Notice how, when the amount of memory on each channel does not match, the
upper memory is the slowest. The upper part runs in single channel mode
(in this case, at 916MB/sec). The lower part interleaves 2x512MB and the
memory bandwidth is 1435MB/sec instead. The P965 should do something
similar.
By using a modified copy of memtest86+, you can test for Flex mode and see
if it is present, when non-matched memory is used. With 3GB of memory,
I might divide the memory into 12 chunks (and not measure at location zero).
If you got a pattern like the one shown above, then Flex mode is present.
If the measured value is equal for all tested chunks, then Flex mode is
not present (matching the claims in the Intel datasheet).
Good luck,
Paul