I'm not some pc guru, but I am a certified pc tech. I have found a tweak that significantly allowed my "laptop" i7 to run games without shutting down from overheating due to the fact that I have a dedicated 1gb video ram built in for my laptop. Not only did it reduce my heat, but it improved my capability to process higher definition textures smoothly and quicker. I tested this in Skyrim and Mass Effect 1-3.
Windows 7 has a built in power saving feature that dynamically selects a set of processors to run threads based on the current power configurations you have set. These settings will try to honor your settings and choose which processors to run, allowing or forcing the remaining cores to idle in low consumption states. If you are maximizing your game performance and quality, in other words pushing it to the max, Windows 7 is likely still parking some of your cores or at least is not balancing the load sharing between them. Especially for the i7 machines. I've executed perfomance tests and visibly seen my core parking go from an average of 3-4 cores (parking on) directly up to a full load balance and reduction of all 8 cores (parking off).http://blogs.technet.com/askperf/archive/2009/10/03/windows-7-windows-server-2008-r2-core-parking-intelligent-timer-tick-timer-coalescing.aspx
How to Tweak
First, back up your registry (Ccleaner works well) AND create a restore point. It's easy to make a mistake, either way if the risk is too much for you and you don't know much about computers then DO NOT take the risk. This registry tweak only modifies the "Valuemax" and "Valuemin" in the registry which are used by Core Parking.
Step 1
a. click on "Start" ---> type in [Search programs and files] Regedit
b. In Regedit, Select Edit > Find (Ctrl + F > Find what: > and type "0cc5b647-c1df-4637-891a-dec35c318583" - no quotation marks
c. In the right pane, under Name column, you will see the Description "Specify the minimum number of unparked cores/packages allowed (in percentage)." This shows you what you are modifying.
d. Highlight by clicking on "ValueMax", right click and "Modify", change the Value data: to "0" to equal "ValueMin" and apply/OK.
Step 2
a. You must repeat Step 1 (the whole process) for each time it is found, which equals to how many profiles you have on your computer.
b. Go back up to Edit > Find Next (F3)
Step 3
a. Shut your computer down, power-off and cold restart. Do not do a warm restart.
Test out your computer, open your performance monitor or test it in game. You will find your cores more evenly balanced, FPS issues improved and no spiking.
cited, http://ultimatecomputers.net/forum/viewtopic.php?f=7&t=3644