Sunday, November 22, 2009

Undervolting the T60p

Hey guys. The first thing I’m going to talk about is undervolting. Undervolting is essentially supplying your Central Processing Unit (CPU) with less voltage than it was originally designed to operate with at a given speed. Why would you ever want to do this? Well, there are two reasons: one, to save power, which is especially important if you use a notebook. The other reason is to limit the amount of heat your processor (CPU) generates.


The main theory behind undervolting is a common tale. Large chip manufactures like Intel and AMD produce as many CPUs as there are personal computers in the world (more or less), and as much as we would like to believe that they test each and every chip made to determine its ideal operating conditions, this isn’t true. They do, however, select samples among every “batch” of chips produced and perform rigorous testing on them. These tests determine a number different things, from how fast the processors clock speed will be set, to how much it will cost when it is sold, what model number it is given, and yes, its default voltages.

So what this means, so the legend has it, is that not all processors are built the same. You remember your friend from high school that was driving the first car his grandfather ever bought, and the thing was still running fine? The same is true with processors, sometimes you get a lemon, but sometimes you strike silicon gold!

When I first heard the term “undervolting” several years back I read over it and didn’t pay it any attention. I said, “those crazy college kids, overclocking, underclocking, overvolting, undervolting, they’re going to fry their machines.” I’m not always one to play it on the safe side, but I draw the line at something that would endanger my laptop. The expense of repairing it myself would still come close the cost of a new purchase, and let’s just say I’m not on the market for a new machine this month, and I wasn’t a few years ago either. But over the last few years, as my back has become hunched, my gut has protruded, my vision has darkened, and my skills have improved I’ve begun to develop a sort of extra-sensory “gut” feeling about what a machine can and can’t handle, and I’ve been surprised to find how reliable that gut feeling is. So, when I came across the term lately I did some research on the subject and found out that undervolting was not dangerous to a computer, and often it did the machine some good, as excess heat is one of a computers natural enemies.

After doing more research and preparation than I’d care to admit, I downloaded and installed several programs. Some of them I’d used before, but as I’ve recently installed Windows 7 (x86), some I’d heard of but never used, and some were entirely new to me. The first was a program called CoreTemp, which gives extremely accurate temperature readings from your CPU. My laptop has a Core2Duo T7400. For those of you who know more than you should about CPUs, the T7400 is a Merom mobile Core2Duo, with a 65 nanometer die size, 64KB of L1 cache, 4MB of L2 cache, 667 MHz front side bus, EM64T instruction set, Intel Virtualization Technology, with a maximum clock speed of 2.16 GHz. Needless to say, when my processor kicks into full gear, it generates some heat, and causes some problems in the lap area, if you know what I mean.

When I opened CoreTemp and took a look at my ultra-accurate temperatures under a full load, I thought that 80 degrees Celsius was a bit excessive, and an idle temperature 55 C could surely be improved somehow. It was burning my legs, not to mention what it was doing to my future children (sorry little Johnny).

So, I took note of those temperatures, and went on to the next program I had installed, called RightMark CPU Utility. This wonderful utility was written by a French individual who must share the same passion for computers as I do, though they are obviously much more skilled. It’s important to know a bit about how the Core2Duo (and similar processors) operate in order to understand undervolting. Intel introduced a feature known as “Speedstep” several years back that allows a processor to reduce its speed (and hence, the voltage used) to match the needs of the computer at any given time. So, if you’re chatting on AOL Instant messenger your processor might be operating at 999 MHz and using 0.95 volts, but if you were playing Elder Scrolls IV: Oblivion full screen with high quality settings it or editing photos in Photoshop the processor would likely be running at 2.16 GHz and using 1.25volts. This might not sound like much, but when you consider that your laptop battery only supplies around 10 volts to your entire laptop, you can see that such a small change is not so small at all. So, the processor takes a series of steps up or down depending on what your computer needs to run the task you are performing. And where undervolting comes into play is in seeing just how much power your processor really needs in order to accomplish those tasks. So, back to RightMark’s CPU Utility.

In the utility you can take control of the voltages supplied to your processor at each given step it takes. My processor, the C2D T7400, is locked at a range of 0.95v – 1.25v, meaning it will not accept any voltages outside of that range, and will operate as normal if you try to tell it to do otherwise. In order to get a more accurate idea of the improvement (or lack thereof) I used another program I downloaded alongside RightMark CPU Utility called “Orthos” written by a Johnny Lee. Orthos is a little program that makes your processor work like it’s never worked before, which results in heat and high voltage. So, I ran Orthos and watched my CPU temperatures shoot up like weeds in a rose garden. Then, after noting my temperatures in CoreTemp, I lowered the voltage supplied to my processor at its highest step (2.16 GHz) from 1.25v to 1.15v and ran Orthos for 45 minutes in order to get a good idea of whether the underclocking was working, and to test the computer for stability at a lower voltage. If the voltage is set to low, you will likely experience the blue screen of death or Orthos itself will inform you none-to-politely that there has been an error in processing while it was running its backbreaking code on your processor. Since during my 45 minute trial I experience neither of these, I continued to lower the voltage down to 1.0875v, which is when Orthos told me it had encountered problems. Trusting its advice, I raised the voltage for my top step to 1.10v and ran Orthos for about five hours while reading up on some topics I’ll hopefully post in a later blog. After five hours of nonstop testing I figured the voltage was stable, and set the voltages for my other steps according to the amount I had decreased the voltage for the highest step.

The results were amazing. My processor was now running at about 15 degrees cooler than it had been running under a full load, and my battery life had improved by about twenty minutes! I spoke to my friend Scott, a fellow enthusiast, and he was wary of performance in real life applications. He suggested I do some real world testing to see if the performance of my computer was negatively affected by my undervolting escapades. After a brief debate about CPU theory I reluctantly agreed and began my testing.

I started out by encoding a DVD I had lying around to H.264, a task that will make any CPU cry for their mother. I noted the results, and the task actually ran slightly faster when my voltage was lower, but overall the results were the same, the exception being my laptop was much cooler when running on a lower voltage. I then played Elder Scrolls IV: Oblivion for a while to see if it had any negative impact on game play, and to my astonishment the game ran much smoother, loaded faster, and had a much higher frame rate. After some serious thought about this, I am theorizing that the reason for this is because with a cooler CPU my laptops GPU (an ATI FireGL v5250 256MB) was able to run cooler as well (it normally gets hot enough to fry an egg on) and as a result Oblivion ran much better. My final test was using Sun’s VirtualBox to run a virtual machine with Windows Vista Ultimate, which also performed as well or better than under my higher voltage. Through all of these tests I didn’t experience a single blue screen or anomalies within the programs themselves.

So, that was my experience with undervolting, and I am very happy with the results,
Rob

2 comments:

  1. In 2007 I learned that you can also undervolt entire devices. I was going to spend the summer with family in Bolivia and I needed to bring a router. Bolivian wall sockets run at 220V, twice the 110V used in the States. my router's wall wart couldn't handle 220V, but a lot of wall warts can. I found a wall wart in my closet that matched my router and could accept 220V, but it put out less voltage than the router stated that it required. After some searching, I found a guy online who'd tested that particular router to see what range of voltages it could accept (he was overvolting for a bicycle WiFi experiment). He found that it could be undervolted, so I tried it, and it worked. I never tested to see if the lower voltage affected the WiFi distance, because it was fine for my purposes.

    ReplyDelete
  2. Very cool dan. I've done some testing and tinkering in a similiar way and have found it's much more common for the device to simply stop responding completely than to stop responding in a specific way, like broadcasting a wifi signal.

    I've also noticed that the output of most power adapters tends to be within a volt or two of the desired range anyway, sometimes less and sometimes more. The equiptment usually is able to compensate for this via compacitors, which (I'm sure you already know) store current and then release it as needed when power fluctuations occur.

    This is all extremely simplified by me due to my lack of understanding of electrical theory. I've been working on broadening my understanding of electricity as I can, but I'm nowhere near where I want to be yet.

    As far as altering the current to match the requirements for your device while overseas, I'm sure you could put together a simple device yourself. I'd probably want to use a voltimeter and be careful of the amps your dealing with, as tinkering around with this sort of thing can stop your heart if you're not careful.
    Thanks for the comment :)

    - Rob

    REF:
    http://en.wikipedia.org/wiki/Capacitor

    http://en.wikipedia.org/wiki/Transformer

    ReplyDelete