Posting a copy of this guide to the new forum in case any questions come up in the future.
--
I see quite a few posts on here regarding how to set memory frequency and how to achieve stability with higher memory frequencies. I wanted to put together a guide on how to handle memory frequency with the i7.
The Core i7 architecture has what is called Uncore. The Uncore is the part of the processor that consists of the integrated memory controller and the L3 shared cache. A rule of thumb that must be remembered is that your Uncore frequency has to be at a minimum twice your memory frequency. The default Uncore frequency of a 920/940 processor is 2133 MHz, which is twice the default memory frequency of 1066 MHz. The 965 processor has a default Uncore frequency of 2666 MHz, which is twice the default memory frequency of 1333 MHz.
As you move up to a higher memory frequency, you are pushing up your Uncore frequency past factory specs. The voltage controlling Uncore is VTT. Just like when you add more voltage to the processor cores when overclocking, you also have to increase VTT to the Uncore when overclocking it. The amount of VTT required varies from processor-to-processor so there is not any one magical value that will work for all processors and configurations. This guide will go into the VTT and memory configuration of the i7 in further detail.
XMP Profile There is an option available in BIOS for the regular x58 board using at least BIOS SZ21 and the Classified board that will preset your BIOS configuration so that the memory runs at rated spec. This solution is intended for users that are not overclocking and running the default CPU Host Frequency of 133. This is how to access that feature:
BIOS Main Menu
Frequency / Voltage Control
Memory Feature
Memory SPD ( XMP Profile 1 )
Not all memory kits come equipped with an XMP profile. If your memory kit has one, then you will be able to set "Memory SPD" to "XMP Profile 1" from "Standard". This is the simplest way to get your memory to run at spec. The only thing that might have to change is your VTT, especially for the higher frequency memory. I will go into the VTT in more detail later in this post.
--
From here on out, I will show how to set memory frequency on the i7 and go into further detail on the i7 memory configuration. In order to set memory frequency there are several options in BIOS that have to be looked at and possibly altered. Here is a list of those options:
BIOS Main Menu
Frequency / Voltage Control CPU Host Frequency ( 133 )
CPU Uncore Frequency ( 16x - 2133 MHz )
Memory Feature Memory Frequency ( 2:8 1066 MHz )
Voltage Control CPU VTT ( Auto ) - Base voltage is 1.1v for regular x58, and 1.2v for Classified
DIMM Voltage ( Auto )
Looking at these fields, the first point to make is that when you increase your CPU Host Frequency, also referred to as bclk or QPI by some people, you increase both your memory and uncore frequency. Secondly, the ratio shown for "Memory Frequency" is used to determine what the memory multiplier is. To keep things simple, look at the second value in the ratio and take that value and multiple it by the CPU Host Frequency.
For example:
133 * 8 (2:8) = 1064 MHz
Now look at the uncore multiplier, which defaults to 16x.
133 * 16 = 2128 MHz (2x the memory frequency)
Now lets say we want to achieve 1600 MHz for our memory frequency, which is where most people want to end up at. In this case, we would use a 2:12 memory ratio.
133 * 12 (2:12) = 1596 MHz
As soon as you set this memory ratio, BIOS will automatically set the uncore to where it needs to be at a minimum, which in this case is 24x.
133 * 24 = 3192 MHz (Once again, twice the memory frequency)
In the above example, we have now pushed the Uncore more than 1000 MHz past factory settings for a 920/940 processor so in this case we may very well have to increase the VTT. A good starting point is +100mv, which is 1.2v (100mv above the base 1.1v value). What you want to do is see if your system will boot with that VTT and if you successfully get into Windows, test stability. A common set of stability testing programs are found below:
Memtest86+ 2.1 or greater Prime95 Blend LinX or other Linpack enabled application In general, I always test with Memtest after making changes to the memory and then I verify stability with Linpack. I have seen cases where Memtest was error free, yet in LinX, the system would crash or the test would error out.
When you get to the point where you can load Windows and a stability testing program, you can then adjust the VTT as necessary. With too little VTT, you will likely see a BSOD error. In XP, this could be "Machine Check Exception", whereas in Vista, you could get a 0x124 error. You can increase your VTT +25mv at a time until the BSOD code has been eliminated. A failure to POST could be an indication of needing more VTT as well. Common codes seen on the board when a memory problem occurs is when the LED hangs on code 68 or C1. Too much voltage can be as much of a problem as too little voltage. If you find yourself seeing errors in Prime95 or LinX and your VTT is already set very high, then it might be worth try to lower a notch or two.
When it comes to higher end memory kits that run at 1866 or 2000 MHz, do not be surprised if it takes 1.4 - 1.6v (+300 - +500) VTT in order to achieve stability. In the case of 2000 MHz, your uncore is running at 4000 MHz, which is quite the jump past stock settings. Much of this is dependant on the processor's integrated memory controller (IMC). Some processors simply need more voltage to reach the higher frequencies. Other processors that have a strong IMC can possibly reach an uncore of 4000 MHz with relatively little voltage.
Generally most kits default to 1.65v for memory voltage so I recommend starting there so that you are running at rated specs. If you find stability, you can attempt to lower your memory voltage if desired and retest stability.
Overclocking: As you increase your CPU Host Frequency to achieve an overclock, your memory frequency changes also. In this case, you may need to lower your memory ratio as you overclock. The same formula applies. Say you have your CPU Host Frequency set to 200, then you may want to set your memory ratio to 2:8 in order to keep your memory frequency at 1600 MHz.
200 * 8 (2:8) = 1600 MHz
If you plan on overclocking your processor, I would advise that you start at a CPU Host Frequency of 133 and get your memory running stable first. Once you know what VTT / DRAM voltage is necessary to achieve the desired memory frequency, you can use those values again when you overclock the processor. This way you limit the number of simultaneous obstacles.
Timings: You want to set your timings based on memory spec to start with. Say your kit is rated for 9-9-9-24. Here is how to set that up:
Memory Feature Channel Interleave Setting ( 6 Way )
Rank Interleave Setting ( 4 Way )
tCL Setting ( 9 )
tRCD Setting ( 9 )
tRP Setting ( 9 )
tRAS Setting ( 24 )
tRFC Setting ( 74 )
Command Rate ( 1T )
74 is a good standard value for the tRFC memory refresh cycle time for most kits.
Examples: The base VTT for later BIOS versions is 1.2v. These examples are based on this base VTT. Required VTT will vary and these examples show what VTT might be necessary for stability. Some processors may run stable with less VTT than shown in these examples. Start with a low VTT and work your way up to stability. Take caution with setting VTT too high as this can cause memory controller failure.
1333 MHz memory frequency - stock core frequency Frequency / Voltage Control CPU Host Frequency ( 133 )
CPU Clock Ratio ( 20x )
CPU Uncore Frequency ( 20x )
Memory Feature Memory Frequency ( 2:10 )
Voltage Control CPU VTT ( +0mv )
DIMM Voltage ( 1.65v )
Memory Frequency: 133 * 10 (2:10) = 1330 MHz
Uncore Frequency: 133 * 20 = 2660 MHz
Core Frequency: 133 * 20 = 2660 MHz
1600 MHz memory frequency - stock core frequency Frequency / Voltage Control CPU Host Frequency ( 133 )
CPU Clock Ratio ( 20x )
CPU Uncore Frequency ( 24x )
Memory Feature Memory Frequency ( 2:12 )
Voltage Control CPU VTT ( +50mv )
DIMM Voltage ( 1.65v )
Memory Frequency: 133 * 12 (2:12) = 1596 MHz
Uncore Frequency: 133 * 28 = 3192 MHz
Core Frequency: 133 * 20 = 2660 MHz
1600 MHz memory frequency - overlocked core frequency Frequency / Voltage Control CPU Host Frequency ( 160 )
CPU Clock Ratio ( 20x )
CPU Uncore Frequency ( 20x )
Memory Feature Memory Frequency ( 2:10 )
Voltage Control CPU VTT ( +50mv )
DIMM Voltage ( 1.65v )
Memory Frequency: 160 * 10 (2:10) = 1600 MHz
Uncore Frequency: 160 * 20 = 3200 MHz
Core Frequency: 160 * 20 = 3200 MHz
1600 MHz memory frequency - overlocked core frequency Frequency / Voltage Control CPU Host Frequency ( 200 )
CPU Clock Ratio ( 20x )
CPU Uncore Frequency ( 16x )
Memory Feature Memory Frequency ( 2:8 )
Voltage Control CPU VTT ( +50mv )
DIMM Voltage ( 1.65v )
Memory Frequency: 200 * 8 (2:8) = 1600 MHz
Uncore Frequency: 200 * 16 = 3200 MHz
Core Frequency: 200 * 20 = 4000 MHz
1866 MHz memory frequency - stock core frequency Frequency / Voltage Control CPU Host Frequency ( 133 )
CPU Clock Ratio ( 20x )
CPU Uncore Frequency ( 28x )
Memory Feature Memory Frequency ( 2:14 )
Voltage Control CPU VTT ( +200mv )
DIMM Voltage ( 1.65v )
Memory Frequency: 133 * 14 (2:14) = 1862 MHz
Uncore Frequency: 133 * 28 = 3724 MHz
Core Frequency: 133 * 20 = 2660 MHz
1866 MHz memory frequency - overclocked core frequency Frequency / Voltage Control CPU Host Frequency ( 186 )
CPU Clock Ratio ( 20x )
CPU Uncore Frequency ( 20x )
Memory Feature Memory Frequency ( 2:10 )
Voltage Control CPU VTT ( +200mv )
DIMM Voltage ( 1.65v )
Memory Frequency: 186 * 10 (2:10) = 1860 MHz
Uncore Frequency: 186 * 20 = 3720 MHz
Core Frequency: 186 * 20 = 3720 MHz
2000 MHz memory frequency - overclocked core frequency Frequency / Voltage Control CPU Host Frequency ( 200 )
CPU Clock Ratio ( 20x )
CPU Uncore Frequency ( 20x )
Memory Feature Memory Frequency ( 2:10 )
Voltage Control CPU VTT ( +250mv )
DIMM Voltage ( 1.65v )
Memory Frequency: 200 * 10 (2:10) = 2000 MHz
Uncore Frequency: 200 * 20 = 4000 MHz
Core Frequency: 200 * 20 = 4000 MHz
Common questions / issues My system is functional with only one or two sticks of RAM, but not three There are reports of the system failing to boot with more than one or two sticks of memory. One of the causes of this is poor or no contact at the CPU socket for one or more pins. If the socket has a bent pin, then the pin necessary for communication to a given memory stick will cause that stick to become inaccessible. It is recommended to remove the CPU from the socket and check for any bent pins. Also check for any dirt or grease that might be causing poor contact.
There are some memory kits that simply do not like to run at spec. If you find yourself unable to boot with three sticks while BIOS is configured to run memory at spec, try and load the defaults in BIOS so that the memory is running at 1066 MHz. With that change, you can see if the system will boot with three sticks of memory and narrow down the problem. You can then work your way up to the memory rated specs and see where the memory runs correctly at.
My memory in BIOS only shows 1333 when I thought I had it set to 1600 MHz The frequency that shows up in BIOS for memory frequency always shows a frequency based on the default CPU Host Frequency of 133 regardless of what CPU Host Frequency is set. For example, say that you have your CPU Host Frequency at 160 and your memory ratio at 2:10. In this case your memory frequency is 1600 MHz (160x10), but BIOS will tell you something different. BIOS derives its memory frequency off a CPU Host Frequency of 133, regardless of what you have manually set it to. In this example, BIOS will tell you that your memory is 1333 MHz (133x10) even though it is actually set to 1600 MHz.
The best way to know where your memory frequency is at is to do the math based on examples above and to check the Memory tab in E-Leet to confirm. Also, remember that the Memory tab in E-Leet will show the actual memory clockspeed, which is half the effective clockspeed. For example, if your memory is running at 1600 MHz, then E-Leet will report it as running at 800 MHz.
Newer BIOS versions show a target memory frequency which should be the real memory frequency.
The memory voltage shown in E-Leet is greater than 1.65v. Will this damage my processor? The memory voltage shown in E-Leet will be somewhat greater than what is set in BIOS. For example, when I see that my memory voltage is at 1.67v in E-Leet, the real voltage ends up being around 1.635v give or take. If you set your memory voltage to 1.65v in BIOS then you do not have to worry that the voltage is greater than 1.65 and in fact it will be a bit less. This has been tested via the testpoint on the board using a voltage meter.
Memtest86+ v2.11/4.0 vs Memtest86 v3.5 Many people run into errors during the first 5 to 10% of running Memtest86 v3.5 with the i7. The version of Memtest that you want to run is Memtest86+ v2.11, which is available at
http://www.memtest.org/. This version has i7 support and will correctly test your triple-channel memory configuration.
Memtest86+ shows the QPI Link Speed as 7.2 GT/s rather than the 4.8 GT/s I have set in BIOS The reason for this is the same as the reason why your memory frequency is not shown correctly in BIOS when you set your CPU Host Frequency to something greater than 133. The GigaTransfer per second (GT/s) options shown in BIOS are based on a 133 CPU Host Frequency. However, as soon as you increase your QPI past 133, you are also increasing your QPI Link frequency and the resulting GT/s rating. Memtest86+ reflects an accurate transfer value for your QPI Link.
Disable automatic reboot to capture BSOD code Windows XP
Right-click My Computer and go to Properties
Click the "Advanced" tab
Click "Settings" under "Startup and Recovery"
Uncheck "Automatically restart" under "System failure"
Windows Vista && 7
Right-click Computer and go to Properties
Click "Advanced system settings"
Click "Settings" under "Startup and Recovery"
Uncheck "Automatically restart" under "System failure"
post edited by linuxrouter - 2010/05/14 21:59:53