First and foremost: Expect overclocking results to differ. We should all know by now that not every chip is created equal. With Haswell, this is more true than ever. I'm serious. Your motherboard isn't nearly as large of a factor as it used to be. It's almost all up to your luck with your CPU now. Expect a very wide variance in end results. It's a silicon lottery, folks.
- Set Uncore (AKA Ring Bus) to core ratio to manual. Set it to stock multiplier manually. With ring bus running on stock and locked at stock for now, no need to fiddle with ring bus voltage. That goes to auto. Some motherboards MAY increase Vring to unsafe levels if you didn't manually set ring bus to stock because the motherboard will try to auto-overclock the ring bus if left on auto. Avoid future headaches by following step 1. If you have a Gigabyte motherboard, set uncore to x33. Reason stated in the next bolded section.
- Set any XMP profile OFF for ram. If your ram is above 1600, set it to 1600, no higher while we're testing overclocks. Heck, if your ram is XMP'ed for 1600, lower it to non XMP. Doesn't hurt.
- Start ramping up the core multiplier and voltage until you think you've found your sweet spot. You might need to increase input voltage from the motherboard-set setting once you hit higher voltages. More on that later. Do stress test and if you pass, go to step 4. NOTE: Yes, you up the core multiplier by 1 each time. You can probably get away with starting at 4ghz though. Because the core clock is 100, 100 x 40 = 4000mhz or 4ghz.
- Now we fiddle with ram, higher ring bus/ring bus voltage in effort to get marginally better performance. Stress test. Do not raise ring bus or ram if it means lowering core clock for stability.
- If you are hardcore or have a lot of time on your hands, you can try adding clockstrap to the mix but I'd stay away from it unless you're super duper picky. Nobody has reported very good results with this but you're welcome to experiment.
- Set Cstates to ON to C7. If you really care about lowering idle voltage, hit ctrl+f and search for "Power Saving Info".
- Have a glass of iced tea.
Override voltage mode the same thing as manual voltage mode. For stress testing neither uncore nor core should be at adaptive mode.
If you simply raise the multiplier on the core and change the voltage, you'll probably run into a bad overclock because the overclocked ring bus will hinder the core overclock. And they say it but it's true: Core is king.
You'd generally rather have stock ring bus if that means getting 100mhz faster core clock. Same for ram of course... it's a tall order to hit DDR3 3000 with higher overclocks.
I've posted benchmarks under this section somewhere, which shows graphs proving ring bus settings to be of little consequence in benchmarks and applications. Keep in mind if you are adamant in overclocking the ring bus you also need to provide extra voltage to it. Your core clock should always be equal to or higher than your ring bus.
If you are using a high Vcore for your overclock, typically for the higher multipliers, input voltage may also be important. I'm talking about 1.30v and up. Info listed later in the guide.
Gigabyte motherboards have been noted to automatically ramp up uncore to x40 when you manually set it to stock. So just set it to x33. You can also set it to x34 if you have a 4770k, or x35 if you have a 4670k, it doesn't matter. (Yes, stock core and uncore frequencies are both 3.4 for 4670k, 3.5ghz for 4770k.
If you have an Asus motherboard, there has been some chatter about bios versions. Some people say that version 804 of the bios is best for overclocking. The point is, different versions of the bios may positively or negatively affect your max OC. Please note that none of this has been personally tested by me because I do not own an Asus motherboard.
OCing Common Sense
You up the vcore slowly. You don't go from 1.1 to 1.2 to 1.3 to 1.4v just like that. Maybe you can start at 1.2, 1.25v but that really varies on the stress testing method. The problem with going straight to a higher voltage is, you may overvolt and use a setting that is less than optimal for stability (not proven) or temperature (obviously proven). Say you start OCing by going to x45 and using a whopping 1.45v straight up and it works. If you don't back down that voltage and you leave all that unnessary voltage about, you will not only cause more heat than you need to, you will decrease the longevity of the CPU for no good reason. At minimum I suggest going from 1.2 to 1.25 to 1.3 to 1.35 to 1.4. Any larger jump I think is completely useless for attaining a good, fine voltage.
When you plug in a higher voltage for the first time or use a stress test for a first time, eyeball the temperatures. You can go from 70C in x264 to 100C in Linpack quite easily and if you run off to make a sandwich, you risk hurting the CPU when you could've watched the temps for the first 10 seconds of the stress test and avoid this.
If x44 is stable, don't jump to x46, and then say it's not stable. And for the love of god, don't waste your time telling us x47 or x48 is unstable.
One Variable at a Time!
In a scientific study, you have a control group and an experimental group. Basically, you see the effect a change in a variable has on something. You do not change 50 things and then draw a conclusion that all 50 things contributed or caused the result. You change one variable at a time. If I overclock core and uncore at the same time and I crash, how will I know which caused the crash? I won't. There's nothing wrong with overclocking the uncore, but it's secondary because the performance change is less than a core overclock. That makes the core overclock the most important. So do the core overclock first until it's stable. That way, if you ever crash after overclocking uncore, you know for sure it's the uncore settings causing instability. This is yet another reason to follow this guide in this order.
"1:1 Cache Ratio"
In a perfect world we'd all be running 1:1 cache ratio, but we'd also be running 500 ghz overclocks and sipping iced tea on clouds. We don't live in that world. If you got a cherry picked unit, fine, you can hit 1:1. For the rest of us, you cannot, pure and simple. Say the highest core overclock you can get is 4.6ghz. If you try to bring your uncore also to 4.6ghz, very likely you've either 1) Crashed your system because the uncore OC makes the core OC unstable 2) Crashed because you lack sufficient Vring 3) Applied unsafe Vring. You can't get past the first issue. You'd rather have 4.6ghz core and stock uncore (3.4ghz is stock core and uncore for 4670k, 3.5ghz for 4770k) than 4.5 core and 4.5 uncore. So what the heck is this 1:1 Cache Ratio nonsense?
It's the idea that your ring bus helps your performance up until it is the same speed as your processor. But you should know by now that ring bus helps performance... by a super small margin. The amount is negligible. It's basically saying, if your ring bus is higher than your core speed, that extra ring bus isn't doing anything supposidly. But the entire point is useless as pretty much nobody can hit 1:1 in the first place, let alone get above 1:1. Let me make this crystal clear: 1:1 doesn't make your CPU magically faster. You don't get an extra boost for doing 1:1. It's the same boost from 1:0.9 to 1:0.95 as 1:0.95 to 1:1. The amount of performance gain from uncore is roughly the same no matter how close your uncore is to your core. All that jabber about "keeping uncore 200-300mhz below core" is simply misleading. There is no such bottleneck that occurs if it's lower which those people seem to imply, and I have hardcore benchmark after benchmark to back up my statement. You overclock core with uncore set to stock so it doesn't lower your max core overclock. Then you overclock uncore without ever lowering core to get a higher uncore. If it happens to be 200-300 mhz under your core, awesome. If not or you don't want to push an unsafe Vring, that's fine too. Overclocking Haswell is complicated as is, last thing we need is to mislead and confuse people with 1:1 ratios.
You will pretty much always be fine at 1.2v for core voltage provided you're not stressing on synthetics. Synthetics are things like Linpack, Prime95, Aida64. They are just that, synthetic tests, as are not actual real-world loads. Non-synthetic stress tests would be like chess or encoding a video with CPU only.
If you do want to stress I recommend Noctua D14 as a starting cooler. What happens if you have a 212 Evo from Coolermaster and you want better cooling? You now are stuck with a lower-end cooler.
At 1.35v or higher, x264 is the recommended stress testing method. Some question the validity of an overnight x264 loop for stability but so far no evidence has shown it is insufficient. Otherwise only high end closed loop or a custom loop should play at this setting. Haswell temperatures are very reliant on voltages, not frequency. Note that while I said, for example, that 1.35v requires a high end closed loop solution or better for Linpack stressing, that does not mean that's required for gaming/any other non-synthetic application. Only you can decide what sort of stability is acceptable to you. There is a chart of stress tests and the temperature it creates at a given setting later on for easy reference.
If you do a multiplier assuming it's stable and later get a Bsod or Bsod after later moving on to a higher multiplier, you might be tempted to blame the CPU or degradation when in fact it was your own insufficient testing in the first place.
Now why exactly did I list my recommendations about voltages this way? What matters in the end are two things when it comes to voltage safety: A) You do not hit above 95C under whatever you wish to stress and B) You do not exceed 1.45-1.5v no matter what. The thing is, most people run into the first problem long before they hit the second, because by 1.35v if you want to run Linpack, you're already getting dangerous temperatures on air. If you are using a custom loop with a delid though, the second problem might hit you first. Personally I am running 1.42v at 4.6ghz on D14 and the only reason why I can do so is because I'm not stressing with Prime or Linpack. However if my settings are stable then I can squeeze in that extra 100mhz because the max real-world loads will not anywhere near Linpack. But let me repeat this implied point: Simply saying "this voltage is too much" is typically insufficient. This voltage is too much doing this stress test with this cooling solution at these ambients.
Quick note on auto-overclocking: It will not be as efficient as manual. Do it manually. I wrote a guide. Use it. If you have MSI motherboard, OCGene will block manual overclocking. You need to click on the OCGenie button in the BIOS to stop that from happening. Lower end MSI boards may be voltage locked above a set amount, say 1.3v! Beware!
About Ring Bus aka Uncore aka Cache Ratio Tweaking:
The naming used differs between motherboard manufacturers. Keep in mind that Uncore is the same as Ring Bus, and is sometimes known as 'cache ratio'. Some boards have 'minimum' and 'maximum' cache ratio. Just set them to the same. Obviously, 'cache voltage' is 'ring bus voltage' or 'uncore voltage'. I would recommend that you stay under 1.3v for uncore voltage. Ring bus takes less voltage, don't just replicate it as if it were core clock. You are going to need to raise ring bus voltage if you plan on overclocking the ring bus significantly. If your ring bus is manually set to the default value, meaning it's not overclocked for sure, leave it at auto is typically fine, but you can set the uncore to 34 or 35 (doesn't matter) manually and then set uncore voltage to 1.2 so there is no way the motherboard can accidently overclock your uncore or use a super low uncore voltage by default. Try not to exceed 1.35v. I try to keep it at 1.3v or under personally. If you do not set ring bus to stock multiplier manually, some motherboards will try to overclock it on its own, which might not only crash your system, it could also damage your CPU because the dumb motherboard is setting an unsafe voltage!
Is 1.3v+ safe? Nobody knows and nobody needs to know. Uncore affects performance so little, and as you increase multipliers, the extra amount of voltage required for that extra multiplier increases over and over. If you're hardcore enough to care about the small difference you might be able to net in 1.3v+ uncore voltage, breaking a CPU or two won't matter.
Input Voltage (aka VCCIN, Vrin, Eventual Input Voltage)
The VRIN can be thought of as the entire amount of voltage drawn by the CPU and all of its components.
When your Vcore is really going up, at least 1.30 probably 1.35v or above, you may need to change other settings. For one, keep your Vccin or total CPU voltage to 0.5v above Vcore. You can try 1.9 or 2.0v. 2.2 is uncharted territory, but for my personal overclock, a Vcore of 1.42 required Vccin of 2.15v for stability. Vccin is also known as Vrin. In Asus ROG boards, try tweaking the "eventual input voltage" instead. No benefits have been recorded by tweaking the "initial input voltage" setting.
I recommend changing input voltage in 0.05v increments. Any less you need a zen-like patience to test everything. I recommend max 0.1v increment if you are lazy. Do not do the same with Vcore or other types of voltages obviously. The reason why input voltage becomes a larger factor at higher Vcore is because input voltage is typically automatically managed by the motherboard's own software. But when the Vcore goes high up, the motherboard almost never compensates the input voltage well enough to ensure stability. Depending on how good your motherboard is at making sure the CPU has enough input voltage for the Vcore, you may have to tweak the input voltage before you even hit 1.3v Vcore.
For my case, I was trying to get x46 core multiplier and could not stabilize. Odd, considering x45 was rock solid @ 1.35v. I scaled up voltage from 1.35 to 1.4, 1.42, 1.47, 1.5, 1.512v, without being any more stable as voltage went up. The key was a higher Vcore, AND a higher input voltage. I demonstrated this by testing stability at 1.42v with various input voltage. I tested by running x264 until Bsod 5 times per setting, keeping track of averages. From 1.85 to 1.95 to 2.05 to 2.15, I could see demonstrable improvement in stability, with a higher maximum, minimum, and average time until Bsod. So what is this saying? Often times we are just tempted to test the Vcore and if it doesn't work, just get a higher Vcore, and higher, until we use ridiculous voltage and still crash, where we then put our hands in the air and give up. Just chucking Vcore as high as you can will often not net stability if you do not have high enough input voltage to match that high Vcore.
Also keep in mind that the amount of Vrin you need for a specific Vcore varies from CPU to CPU.
LLC (Load Line Calibration):
For Haswell, this is a setting for Vrin, NOT Vcore.
Please note I can only test LLC for MSI G45 Gaming Board. For this mobo, the setting is under the "DigitAll Power" section. Also note that LLC is for Vrin, NOT Vcore, Load tested with Prime95 28.3 with HWinfo. The Vrin as set by BIOS is 2.15v.
This means that upping that LLC can potentially help you when your Vrin is the offender.
Also, you may need to alter the voltages for SA, IO Analog, IO digital as well. Try adding 0.1v to them.Please note: It is unclear at this point what voltages are dangerous. Be careful with these voltages. JJ from Asus said these voltages help stabilize a higher Dram divider but I got 9c errors at as low as 1600 DDR3 while managing a stable 2133 OC without touching these.
CPU VID vs Vcore
There is a difference between CPU VID and CPU Vcore when I mention both of them together. I repeat: Only when I am talking about VID and Vcore in the same sentence does my definition of Vcore change.
Normally when I say Vcore I mean what you think I mean. But when I mention VID vs Vcore, VID is the amount of core voltage you set in the BIOS yourself. You should know it, you're the one that set the voltage in there. The Vcore is the number measured by Hwinfo or HWmonitor on your CPU when it is under max load.
What does this mean? Your Vcore could be above your VID. If you set 1.3v in the BIOS that's 1.3v VID. If you are also under adaptive voltage and you're running Prime95, your Vcore could be a whopping 1.5v, way above your set 1.3v.
Finally please note, there are multiple reports of people having a higher Vcore than VID even under non-synthetic loads but the extra voltage is relatively small. Just be careful and monitor voltages closely. As your VID increases the extra voltage drawn in from a regular non-synthetic load increases.
When you Bsod, it shows a code outlining what happened. However, with Haswell I've noticed that the code itself isn't a perfect tool to diagnosing what exactly is wrong with your OC, just that something is actually wrong with your OC and it's CPU related. The codes are 101, 124, 9c. When you get those, you know your CPU OC isn't perfectly stable. If you're getting some oddball code like 116, 3B, etc, then something else is causing the computer to crash. Yes, you can make Bsod screens stay up until you manually restart. A google search should net the answer. In Windows 7 at least, after a Bsod, Windows shows what the Bsod code was. Windows 8 also has Bsod "codes", like Error Time Watchdog, etc. You can check your Bsod code sometimes even though you didn't actually see the blue screen. Sometimes on Windows 7, upon starting up the computer again, it'll say 'last time something happened' and show you the Bsod code in the description. You can also try Bluescreen Viewer.
How do you know what voltages are "safe"?
Everything is off of past experience and estimations. Nobody can tell you for sure because to do that we need to destroy multiple CPUs to tell. Degradation also needs to be checked and that would take a year at least of testing and multiple CPUs set at various different voltage settings. In other words, real testing is impossible.
Power Saving Info
The sad part about Haswell is that motherboard vendors do whatever they want. Uncore can be called ring bus or cache ratio or whatever. It's similar with power saving but worse. For MSI G45 Gaming motherboard, adaptive is ABSOLUTELY USELESS as a setting. It does absolutely nothing for voltage under load or on idle. All it does is give you the risk of borking your CPU if you run it with Prime. I've testing this through and through on this motherboard because the result was so counter-intuitive. For MSI G45 mobos, to get power saving you need to have C states set to 7 for maximum power saving on idle. If you want multiplier drop on idle, you need to enable EIST in the BIOS. Having C7 and adaptive vs C7 and override/manual voltage mode made zero difference in idle voltage. There are conflicting reports for other motherboards on what is required for voltage drop on idle. I do not have the money to buy multiple motherboards and do a battery of tests of each motherboard. So I just say, figure it out yourself. The relevant settings are adaptive vs manual voltage, C states, and EIST. No identifiable temperature drop or performance drop was noted by using Cstates or EIST from my tests. If you have a Gigabyte motherboard, adaptive isn't required for voltage drop because... well, you don't have that option to begin with. Just Cstates for you.
A little bit more on EIST: Dropping multipliers on idle has no measurable difference on idle power draw. It does not increase the lifespan of your CPU because clock speed doesn't kill CPUs, voltage does. Clock speed doesn't draw more power, voltage does. Lower clock speed on idle is irrelevant for temperatures as even 1.5v Vcore on idle is dead cool. For MSI G45, the EIST option is "multiplier mode", which must be set to variable instead of fixed. In Windows, your power settings must be set to balanced. You need to restart for the settings to take effect, and once you boot into desktop you must wait a minute or two for the settings to kick in and the multiplier to drop on idle. I literally mean a minute or two, as in 60-120 seconds.