However, this "solution" bugged me: it was not ideal and didn't explain the millions of other systems out there with Speedstep enabled that wasn't crashing. In other words, it was not elegant or clean. Of course, there are enough Internet posts that talk about the crashing, but certainly it is not as widespread as it should be if the problem was Speedstep. Another problem was that my system was using power like it was still the 1990s! This certainly goes against my green tendencies. And then two days ago, I got yet another reboot in the middle of Skyrim.
So, I kept on searching when I stumbled across a series of posts and articles related to "Core Parking." Having either never heard of this or assuming it's the same as Speedstep, I was surprised to learn that this was something that was found only the latest Intel processors (like mine) and is only found in the latest Windows OS (like mine). I read through many many articles and it seemed this was indeed a likely culprit.
My theory goes like this: Skyrim's engine, the "Creation Engine" is not really new. In fact, many others on the Internet postulate that it's simply built on the old engine, Gamebryo. Gamebryo had some issues with Skyrim's predecessor, Oblivion. Some research shows that the Creation Engine and Gamebryo share similar configuration files and in fact, the same behaviors. Anyway, there's a lot to be said about Gamebryo vs. Creation that could fill pages and pages, but in short, I believe that "Creation" is a "new" engine that was built on the old one. Gamebryo had problems with multi-core processors and it seems the Creation Engine also has at least some version of these problems. Namely, not effectively using multi-cores and being single threaded. In fact, some websites have shown that Skyrim does not run that much better with a quad-core vs a dual-core. Something like 50% more performance from single-core to dual-core but only 3% from dual-core to quad-core.
Core Parking is essentially Windows deciding that if a core is not busy, it will power down that core to save energy. If that core is needed for something, it wakes up in milliseconds. My disabling Speedstep effectively prevented cores from being parked because they were running at full speed all the time anyway (although no load - it's quite possible that Core Parking relies on Speedstep to lower the core ratio/frequency and/or core voltage before deciding that the core is ready for 'parking'). At this point it's probably best to describe each:
Speedstep - this is a power-saving technology that reduces the frequency ratio of a core (mine goes from 34x to 16x @ 100MHz base, so 3.4GHz to 1.6GHz. Additionally, it can reduce the voltage draw of a core as well. The latest iteration also has a "Turbo" mode where the core can boost up to something like 42x (4.2GHz) if needed. This is enabled/disabled in the BIOS.
Core Parking - also reduces power use, this basically disables a core. This is a Windows thing.
Since I have a quad-core 2600K with multi-threading, Windows sees 8 processors. During my test, when idle, with Speedstep on, Windows parked CPU1, CPU3, CPU5 and CPU6 and sometimes CPU7. When I kicked up the load, the CPUs would get unparked and would kick in.
When Skyrim runs, it's not very processor intensive, at least not on my system. The loads go up and down depending on what's happening. Perhaps while in game, some cores are parked. Perhaps combined with my 16GB of RAM and virtually nothing else running on my system, save for Steam, I'm not really needing a lot of cores while playing Skyrim. My current theory is that neither the Gamebryo or the Creation Engine handles this very well with 4 cores and 8 "virtual processors."
I tested this by re-enabling all the defaults (i.e. Speedstep) and then disabling the Core Parking feature of Windows 7. Note that there are many ways to do this. I went with enabling the menu options and then setting minimum to 100% and maximum to 0% (see below).
|Be sure to set "min cores" to 100% and "max cores" to 0%.|
It's still early in the testing, but at least I'm being somewhat green again, although not as green as when Core Parking is enabled. But the power savings is minimal for me. This is mostly intended for the huge server farms where some systems may stay idle for long stretches of time.
I'll give this at least a week of testing before I call it a win, but so far so good. (I'll be out for a few weeks though, so no updates for a while.) It's a nice discovery in any case and I learned way more about power savings than I intended to. But now that I found it, I can't stop looking at it - kinda like the orb in Skyrim,
|I found it, now I need to understand it before I can control it.|
|These are what parked cores look like in resource manager|
|After disabling core parking|
Final note: After enabling the menu item, I made the changes and it immediately took effect, no reboot was necessary. But, you probably should reboot anyway, just to make sure. This is still Windows after all. :-)