I recently came into possession of an i7 4790 basically for free, so I swapped out the 4590 in my HTPC to get a little extra oomph and longevity out of the system.

It is installed in an Asus B85M-G motherboard. The board is currently running the "Version 2001 2014/06/17" BIOS.

I have read about certain features being removed from various Haswell BIOS versions due to a microcode update. Namely, the ability to force a CPU to run all cores under load at its max turbo frequency. This CPU will run at 4Ghz when one core is loaded. So far, no matter what settings I choose in the UEFI, the most I can get it to do is to peg all four cores at 4Ghz when idle, but when there is a load they drop to 3.8.

This UEFI has an absurd number of options for a non-Z-series board, and I've tried increasing all of the turbo power target and other related settings, but nothing seems to change. Its strange that it does run the cores all at 4Ghz when there isn't much of a load (if I set the minimum CPU frequency in Windows to 100% this behavior is more obvious). Running a single threaded benchmark allows all cores to stay at 4, with one periodically dropping to 3.9.

I don't have a "multicore enhancement" setting anywhere in my UEFI right now. I do have XMP turned on, as my memory does have an XMP profile and I've read that Asus sometimes will enable the max turbo setting secretly when enabling XMP.

Does anyone know if I'm just missing something or if this is impossible for some reason? I want to update the BIOS (there are several newer versions) but I don't want to risk some irreversible microcode update if there's a chance that I've just overlooked a setting. Its possible that this board has already HAD such an update and its already too late, but I'm just not sure. Every picture or thread I've read online has completely different information because there are hundreds of similar boards with slight variations in settings and they change with every BIOS update.

The BIOS you have is the one ASUS released to allow multiplier overclocking for "K" processors on non-Z87/Z97 chipset boards. Other manufacturers had unlocked that feature the year before but Intel had "fixed" it again with microcodes in week 30 of 2013. It didn't offer anything special for non-K chips, and of course ASUS only allowed BCLK overclocking in Z87/Z97. Unlike Sandy/Ivy, locked Haswell chips didn't get even the paltry 4x multiplier overclock to play with.

I don't know about that particular BIOS but in the manual it says "CPU Core Ratio" has a setting for:[Sync All Cores] Allows you to set CPU Core Ratio settings for all cores.or [Per Core] Allows you to set CPU Core Ratio individually.in which case you can then choose the "Core Ratio Limit" for 1, 2, 3 and 4 cores.And you may wish to disable EIST for testing.Downgrading to an older BIOS is usually possible (because it's only Intel trying to disable undocumented features for product segmentation reasons) and the manual was likely written for the oldest v0309

The BIOS you have is the one ASUS released to allow multiplier overclocking for "K" processors on non-Z87/Z97 chipset boards. Other manufacturers had unlocked that feature the year before but Intel had "fixed" it again with microcodes in week 30 of 2013. It didn't offer anything special for non-K chips, and of course ASUS only allowed BCLK overclocking in Z87/Z97. Unlike Sandy/Ivy, locked Haswell chips didn't get even the paltry 4x multiplier overclock to play with.

I don't know about that particular BIOS but in the manual it says "CPU Core Ratio" has a setting for:[Sync All Cores] Allows you to set CPU Core Ratio settings for all cores.or [Per Core] Allows you to set CPU Core Ratio individually.in which case you can then choose the "Core Ratio Limit" for 1, 2, 3 and 4 cores.And you may wish to disable EIST for testing.Downgrading to an older BIOS is usually possible (because it's only Intel trying to disable undocumented features for product segmentation reasons) and the manual was likely written for the oldest v0309

In the BIOS I had, and the newest version (I just updated to try it out), I have the ability to set the core ratio, sync and per core settings. When I have them set to "sync" with the multi set at 40, I only very rarely see the clocks hit 4Ghz. Under any load at all, the cores all drop to 3.8. When I have it set to "per core" with each set to 40, the clocks seem to mostly stick to 4Ghz except when a core is under load, then the loaded cores will drop to 3.9 or 3.8. When all cores are loaded, they drop to 3.8.

It actually improved single threaded benchmark scores substantially when I set it to "per core" as it allowed one or two cores to hit 4Ghz at a time. It wouldn't allow one core to hit 4Ghz under load when set to "sync" because, for whatever reason, it isn't allowing all four cores to hit 4Ghz under load (so they couldn't sync at 4Ghz).

Still, I was under the impression that Haswell chips could still be forced to have all cores run at the chips maximum clock (in this case, 4Ghz). I knew that the +4 turbo bins was gone, I just thought that I could make this chip run all four cores at 4Ghz... which it does... but not under load. Its strange. It seems like a power limitation of some kind, as the chip DOES run at 4Ghz on all cores until there is a load.

Is it worth the hassle? 200Mhz is only 5% of 4Ghz. In perfect world, that would be 5% more performance.

If you really have issues, set the power mode to performance to keep the clocks at max. Disable any extra power saving/sleep features you can. Assuming your cooler is up to task.

That's sort of the opposite of my goal with this system. Keeping the idle clocks and power consumption as low as possible while maximizing available performance when needed is what makes the most sense. Having the system run at the highest clocks with no power saving features would increase heat output and power consumption considerably and generally doesn't offer much if any performance increase.

This system is usually off (with the power strip turned off as well!) most of the day, but when I need it I use it for playing music on my big stereo, watching movies\shows, playing games, as a periodic backup NAS device and less commonly as a game server (often with a client running on it as well).

Anyway, 200Mhz is only 5% of 3.8Ghz, but why not try to do it if its possible? People spend scads of money for 5% increases in other areas. In this case, if its possible, its free performance.

That's very reasonable, it just seemed iffy when you started talking about running older BIOS.

I probably wouldn't downgrade my BIOS for 200Mhz at this point, but since the system was working I didn't want to update it and risk losing options if I was just missing something.

Also, I have a Cryorig H7 cooling the CPU. Its crammed into a fairly compact M-ATX tower which is crammed inside an enclosed entertainment cabinet. The system never gets that hot thankfully. Its really a great system. I got the board with a G3220 and 8GB of RAM like two years ago on ebay for $80, which was a steal. I upgraded the CPU a couple times when buying and reselling used machines (i5 4460 then i5 4590). I just recently got a smoking deal on a Lenovo M93P, which I bought for someone who really had no use for the i7. The system cost me $320 shipped (fully functional refurb system, Windows 7\8\10 Pro license, KB+Mouse, 8GB DDR3 1600, 1TB hard drive, GT620 and i7 4790), I swapped my i5 into it and cut the new owner a deal on an upgrade to a GTX 1050 Ti. They got a really nice mid range gaming\business system for a fraction of the cost of a similar performing new one, and I finally have my first CPU with more than four threads.

If I had to actually count how much money I have into my HTPC, it's somewhere under $350. The case was $28, the motherboard and RAM may have cost me $40, the i7 CPU was basically free but we'll call it $40, 550W Seasonic PSU for $15, Cryorig C7 $29, evga B-Stock GTX 1050 Ti $109, the 64GB SSD was free, 3TB Toshiba drive was $80, Windows 10 license was an upgrade from an upgrade from years ago... and that's it I think. This has been a fun system to put together.

If I ever replace my 2500K system and pass it down to my daughter (she's only 4 right now), I plan to move its 16GB of DDR3-2133 to the i7 system to give it another small boost.

A 4790 non-K runs at 3.6, max boost with all cores active is 3.8, and max turbo for a single core is 4Ghz. So it's operating as best it can, short of using an unauthorized BIOS or manually overclocking the base clock.

I don't suggest using an older BIOS, had a Z97 motherboard that wouldn't POST with my 4790K until after I updated the BIOS on it using a different chip.

A 4790 non-K runs at 3.6, max boost with all cores active is 3.8, and max turbo for a single core is 4Ghz. So it's operating as best it can, short of using an unauthorized BIOS or manually overclocking the base clock.

I don't suggest using an older BIOS, had a Z97 motherboard that wouldn't POST with my 4790K until after I updated the BIOS on it using a different chip.

Do you know why it runs all cores at 4Ghz when they aren't under load?

Do you know why it runs all cores at 4Ghz when they aren't under load?

You should use a tool that differentiates between cores when measuring clockspeeds. Most programs will just report the highest frequency even if it only applies to a single core. Argus Monitor can do that for you but I'm sure there are others I'm not recalling. Find the 4790K screenshot to see what I mean http://www.argusmonitor.com/en/screenshots.php

Do you know why it runs all cores at 4Ghz when they aren't under load?

You should use a tool that differentiates between cores when measuring clockspeeds. Most programs will just report the highest frequency even if it only applies to a single core. Argus Monitor can do that for you but I'm sure there are others I'm not recalling. Find the 4790K screenshot to see what I mean http://www.argusmonitor.com/en/screenshots.php

I use HW Monitor, which shows individual core clock speeds in real time.

Also, what I found strange was that all four cores would run at 4Ghz for short periods of time with the minimum CPU setting at 5% (default). With the CPU ratio set to "per core" (not sync) and each one set to 40, I get fluctuations up to 4Ghz on every core, and under light loads I see 4Ghz on 2-3 cores at a time, with all four showing 4Ghz briefly. Only when all four cores are loaded (specifically in benchmarks) do the clocks all drop to 3.8 and stay there. I'd always assumed that having a max 4 core turbo speed of 3.8Ghz meant that under no circumstances would all four cores ever go above this unless some kind of overclocking was taking place.

Since I've read elsewhere of overclocking all four cores up to the maximum turbo speed (4Ghz) being possible with non-K Haswell (though highly dependent on board, BIOS and settings), and the motherboard allows me to set all of the multis to 40, AND I see all four cores hit 4Ghz at times, it seemed like I should also be able to keep the cores at 4Ghz under load.

Dunno. My understanding is that's not how Turbo on that chip was intended to work. My 4790K boosts all-cores to 4.2Ghz and so that is what I locked it at since it's a very hot chip if pushed higher. Maybe your CPU was boosting different cores to max at different times and the software was lagging monitoring it? The CPU can self-adjust clockspeeds faster than drivers at the OS level can do so, perhaps HW Montior isn't keeping up??

I have turbo and EIST disabled on my system else I could readily test this. You should try Argus and see what it says and how it compares to HW Monitor just to see if it's showing the same thing or something different.