You are here

CrystalCPUID: User Configurable Cool 'n' Quiet

April 11, 2005 by Jan Kivar

New contributor Jan Kivar is no stranger to SPCR forums visitors. Aside from his interest in quiet computing, Jan has 10 years experience with computers and is studying for a MSc. (Tech.) in his native Finland.

* * *

One of the greatest features of AMD's Athlon 64 processor is Cool 'n' Quiet. This feature supports automatic on-the-fly switching of the processor's multiplier and core voltage based on actual CPU usage. Each model has its own, predefined states, and the switching between these states is controlled by a special driver for Athlon 64 processors released by AMD. Depending on the model, there are 2-5 different states.

In this article, Cool 'n' Quiet refers to the combination of:

  • enabling CnQ in the BIOS,
  • installing the AMD Processor Driver, and
  • enabling the minimal power management feature in Windows 2000/XP.

For more information about Athlon 64 processors, I suggest you read the SPCR article, Athlon 64 for Quiet Power. CnQ is fairly well documented at SPCR and by hardware web sites at large. But in case it is new to you, here is a quick summary:

CnQ allows the processor and the PC as a whole to remain in a cool, low power state except when needed. When the computing load is higher, CnQ brings the processor back to normal voltage and clock speed seamlessly, allowing the PC's full power to be harnessed. When the load drops back down, then the CPU clock speed and voltage are dropped down again. The end result is that in idle, the system runs cooler and draws less power. It can also run with less cooling airflow, which means fans can be slowed down, allowing for reduced noise. Because a large proportion of computers actually remain at idle or low load states more than 90% of the time, the average power, heat and noise reductions can be quite dramatic.

Cool 'n' Quiet is not without flaws. Since the core voltage is changed between predefined values based on CPU load, undervolting is not possible when using CnQ. The processor driver automatically switches to the default voltage whenever CPU load is high, thus nullifying the effect of undervolting. Similar issue exists to some extent with underclocking, and overclocking with CnQ fully enabled is very problematic.

Editor's Note: Undervolting can be used to reduce the heat generated by a processor without any speed penalty. These articles cover the topic fully —

ALTERNATIVES TO COOL 'N' QUIET

In the fall of 2004 I assembled an AMD A64 3000+ system with an MSI nForce3 250 motherboard and began using a utility called
ClockGen
that could change the multiplier and core voltage directly within Windows. ClockGen
supported all nForce3-based motherboards (also nForce2), but only a few VIA-based
motherboards (and also some motherboards for Intel-based systems).

The problem with ClockGen was that it didn't support automatic state switching. So I ended up with two shortcuts in the Quick Launch - one for the default maximum settings, and one for the custom underclocked and undervolted settings. Despite the lack of automatic state switching, it was actually better than CnQ, since I was in charge. If I wanted to keep the processor in the low, custom setting while doing something processor-intensive, I was able to do so, maintaining low power usage and lower fan speeds.

Soon, I got bored with playing with the state switching. Basically I ended up using the custom setting all the time, except when I played games. This was fine since I have little time to play in general. Then one day while browsing the Web I stumbled upon a thread in the AMD forums where somebody had posted a guide how to use PowerNow on Desktop PCs. PowerNow is power-saving technology developed by AMD for mobile computing. Being curious, I checked the CrystalCPUID homepage. After playing with it a bit I started a thread in the forums, which resulted eventually in Mike Chin, the Editor of SPCR, asking me to write this article.

INTRODUCTION TO CRYSTALCPUID

CrystalCPUID is a Windows XP/2000 compatible utility created by a Japanese programmer whose handle is hiyohiyo. It looks and works much like WCPUID or CPU-Z, which are utilities to get information about processor speed, cache, etc. They can also identify different CPU core revisions/steppings. CrystalCPUID is also capable of doing exactly what I previously used ClockGen for: Changing the multiplier and core voltage on-the-fly within Windows. But what is most interesting, CrystalCPUID has a feature called "Multiplier Management", which allows automatic clock speed and voltage management like Cool 'n' Quiet, except that it is user customizable. The rest of this article explains how to use use CrystalCPUID in place of CnQ.

WARNING: This guide is recommended only for experienced
users. Following these instructions may render your system unusable. Since
each CPU has different undervolting capabilities, using settings identical
to the ones described in this guide may cause instability, or make the
system unbootable.
If you don't know how to reset your motherboard CMOS back to its defaults, you shouldn't be messing with this stuff. Neither the author nor SilentPCReview.com can be held responsible for possible
data loss or other damage.

Please note that the entire article refers specifically to CrystalCPUID
version 4.3.14.248
. The creator of the CrystalCPUID
makes frequent updates.
We suggest that you study carefully the differences between the
latest version and the one referred to here before using it.

Although CrystalCPUID was originally created for use with Athlon 64s, from version 4.3 onward, the software was modified for Enhanced Intel Speedstep Technology (EIST) and on-demand clock modulation (ODCM), Intel's dynamic CPU clock / voltage management features built into the Intel 600 series, the 570J and the Pentium M processors. It also works with the AMD K6 and K7. This article covers operation with the Athlon 64 only.

This guide is for AMD Athlon 64s, both desktop and mobile.
Basically that also means Athlon 64 FX and Socket 754 Semprons. Socket 462 (Socket-A)
mobile processors are also supported; with care, this guide can also be used
with them. It is to be noted that, as with 8rdavcore, only a few S462 motherboards
support changing the multiplier and voltage. Neither socket 940 A64 FX nor Opteron
processors are supported.

All motherboards based on the nVidia nForce3/4 chipset are supported. Support for VIA chipset
motherboards is uncertain at time of writing. Some might work, some might not.

INSTALLATION

In addition to CrystalCPUID, you need Prime95 for stability testing. CPU-Z is also needed, as it currently offers more information about the CPU than CrystalCPUID, such as core voltage and core revision in clear text.

Here are the installation procedures:

1. Check if "Cool 'n' Quiet" option is found in BIOS, and turn
it on.
In some cases, there is no such option. This does not automatically
mean that the board doesn't support Cool 'n' Quiet, just that the user cannot
change the setting. In this case, it might be turned off permanently by
the motherboard maker. A BIOS upgrade could enable it, though, so check the
manufacturer's site for BIOS updates, or search the
forums. Some Socket 754 motherboards were problematic and had Cool 'n' Quiet
disabled, but all Socket 939 motherboards should support Cool 'n' Quiet out-of-the-box or after enabling a switch in the BIOS.

2. Configure Windows NOT to use Cool 'n' Quiet. Go to Control Panel -> Power Options, and ensure that "Minimal
Power Management
" is not selected. Note that this doesn't have any effect
if the AMD processor driver (CnQ software) is not installed. Whether the AMD
processor driver is installed or not is irrelevant for CrystalCPUID.

3. Install and setup Prime95. Start Prime95, and press "Just stress testing". Then click Advanced and select Password. It's given in the readme, but to save time, try "9876" without the quotation marks. After the password is set, click Advanced and select Priority. Set it to 9.

4. CPU-Z doesn't have an installer, so just make a directory, unzip the archive there and run.

5. CrystalCPUID has no installer either. I strongly recommend making a directory "CrystalCPUID" in "C:\Program Files\". Since a shortcut is not automatically created, I suggest that you make one to the desktop. It will be only temporary, and in the end of the guide it will be moved to the Startup-directory. Windows drag and drop behaves irrationally when dragging within a drive; be sure to drag the executable's icon using the right mouse button and then selecting "Create Shortcuts Here".

6. Disable any screen savers. This makes it easier to check on Prime95's status.

TESTING FOR FUNCTIONALITY

Upon launching CrystalCPUID, the following window will appear:



CrystalCPUID's main window.

Pressing F4 will open up a real-time CPU Clock:



Dot-matrix real-time CPU Clock...

Check the current multiplier of the CPU from CrystalCPUID and the core revision (Clawhammer / NewCastle / Winchester) and the current core voltage using CPU-Z.

Now, it is time to test whether CrystalCPUID can change the multiplier and voltage.

Open CrystalCPUID's main window and the Real-Time Clock by pressing F4. Pressing Ctrl-K will open the "K6/K7/K8 Multiplier" menu shown below, where the user can select new multipliers and core voltages.
WARNING! Be careful with the scroll wheel!



K6/K7/K8 Multiplier menu.

BE VERY CAREFUL IN THIS MENU, since the settings apply immediately unless you check "Show Confirmed Dialog" — I strongly suggest you do this. Selecting a multiplier that is not supported by your processor (higher than the maximum or a half multiplier on some boards) will lock the computer, as will setting a core voltage that is too low for the current multiplier.

Press "Enable Change Voltage" to enable the core voltage switching. Based on the core revision of the processor, set either "4.0x/1.300 V" for "Clawhammer" revision, or "5.0x/1.100 V" for "NewCastle/Winchester" revisions. These are the default states used by Cool 'n' Quiet.

CHANGE THE MULTIPLIER FIRST. The key is to raise voltage first and lower multiplier first, to avoid the situation where the computer locks up, possibly even requiring unplugging the computer from the AC mains. The Real-Time Clock should respond almost immediately to the changes; CPU-Z shows changes after few seconds. CrystalCPUID's main window should also refresh automatically after few seconds.

If the speed doesn't change, you are out of luck; CrystalCPUID doesn't support your motherboard. Search the SPCR forums and the web for possible fixes.

TEST FOR STABILITY

If the switch is successful, it's time to test the stability. Testing with "official" state (which we have just switched to) will determine whether the system is stable in the first place. Some motherboards are unstable with some RAM and/or memory configurations.

First, shut down all unnecessary applications. Start Prime95, click Options and select "Torture Test...". From the opened window, select "In-place large FFTs" and click OK. Let it run at least few hours, optimally 24 hours. During this time, the computer is basically unusable, unless you would like to try out what computing was all about in early 90s.

If, for some reason the test results in error, you should loosen memory timings and/or set the command rate for memories to 2T. Both of these options are found somewhere in the BIOS. The Command Rate option is core specific; it's for Newcastle and Winchester care revisions only. If Prime95 still crashes, you might have incompatible memory and/or your motherboard supports only one stick of memory with CnQ. This is a problem with some S754 motherboards. (See the SPCR list of Cool 'n' Quiet compatible motherboards.)

MULTIPLIER MANAGEMENT aka CRYSTAL 'N' QUIET

Before we continue the configuration process, a few words about CrystalCPUID's version of Cool 'n' Quiet. Understanding how the Multiplier Management works is the basis for a functional and useful setup.

The setup window for the Multiplier Management looks like this. Note that visual appearance and functionality might differ based on the version installed.

There are three user configurable settings (states) for multiplier and voltage:

  • Minimum
  • Middle
  • Maximum

Each state has its own Interval Time and Up/Down thresholds.

  • Interval Time sets the minimum time for which the state stays "on" once entered.
  • Up/Down thresholds determine the limits for state changes for each state (CPU usage higher than the threshold -> go to next state and vice versa).

In the Option-field one can set the exit mode (if one stops Multiplier Management, which state is used), setting for Colorful Icon in the Tray (shows which state currently on) and Wait Time between the FID/VID changes. Up/Down-fields set up the way in which the states are changed. The choice here is limited to use the middle state or not. Based on the Interval Time lengths, it might be a good idea to go directly to max state from min state.

There are no "correct" settings for Multiplier Management. Basically one can use just two states (like I did with ClockGen). Or, one can set all the states below the default, which effectively makes a desktop CPU into a mobile one. Or, one can just mime the original AMD states (available here: http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/30430.pdf), but with lowered voltages (and keeping in mind that there are only three states in CrystalCPUID).

As there are many workable ways to configure CrystalCPUID, the rest of the guide is based on miming AMD default states for my 3000+ NewCastle but with lowered voltages for each state. The process of testing the settings can be used for any setup.

Here are the AMD's default states; Thermal Design Power stands for maximum heat output in a state.


ADA3000AEP4AX Model Number 3000+
P-State


Max: 2000 MHz



Intermediate: 1800 MHz



Min: 1000 MHz

Multiplier

10x

9x

5x
VID_VDD

1.50 V

1.40 V

1.10 V
Thermal Design Power*

89 W

67 W

22 W

(*These are the maximum values for the hottest processors of the series, so the real power of the 3000+is lower.)

TESTING FOR THE CORRECT SETTINGS

Now that we have run Prime95 to verify that the system is stable at the default AMD state, which in this case is 1000 MHz (5x) / 1,100 V. Start CrystalCPUID and open the "K6/K7/K8 Multiplier" menu (Ctrl-K). Begin lowering the voltage, Prime95 should still be running Torture Test in the background. Drop one step (0.025 V) every five minutes until Prime95 detects an error. It is possible that you will bottom out with the voltage settings, 0.800 V being the lowest one A64s support. Run the Torture Test for at least 12 hours (I highly recommend 24 hours) to determine stability at this state.

If Prime95 detects an error, bump the voltage one step up, and restart the Torture Test. Continue until you manage to run at least 12 hours without errors. If no errors are detected after 12 hours, you have found the lowest stable settings for the Minimum state. Record them somewhere.

Next, set voltage to 1.400 V and multiplier to 9.0x. Again, while Prime95 Torture Test still running in the background, begin dropping the voltage. Drop one step (0.025 V) every five minutes until Prime95 detects an error. Then, bump the voltage one step up, and restart the Torture Test. If Prime95 still detects an error, bump the voltage another step up. Continue this until you manage to run 12 hours without errors. Then you have found the lowest stable settings for the Middle state. Record them.

As you already might have figured it out, the same process still needs to be done to determine the Maximum state. Set voltage to 1.500 V and multiplier to 10x, and redo the steps mentioned above. This will get you the settings for the Maximum state.

CONFIGURING CRYSTAL 'N' QUIET

Now all that needs to be done is to enter the state information to the multiplier management menu, and make a shortcut so that CrystalCPUID starts automatically on startup.



The author of the utility refers to Multiplier Management as "Crystal 'n' Quiet" in the readme txt file.

Entering the multiplier/voltage values should be quite straightforward. Determining the Up/Down thresholds is a bit more problematic depending on the selected multipliers. As a rule of thumb, multiplier/performance function can be assumed linear, e.g. running at 100% load at 1 GHz corresponds to running at 50% load at 2 GHz.

In other words, setting the Down Threshold for 2 GHz to 1 GHz transition to over 50% will cause a situation where the CPU load after the transition is 100%; thus the state changes back to 2 GHz, which then again drops the load under the Down Threshold, and the cycle repeats. In the long run this might damage the motherboard. Adding the Middle state and the possibility to jump over the Middle state in the transitions makes the threshold setting more complex.

The Interval Times affect the respond rate to state transitions. CPU load is polled once per Interval Time, so e.g. if the Interval Time of the Minimum state is set to 5000 ms, a random CPU load peak (for instance, starting a program) might be undetected. Depending on the situation this might not be a bad thing, though.



With Multiplier Management enabled, hardly anything changes in the main window. Note the CPU load percentage in the title.

After this configuration, Crystal'n'Quiet is ready to use. In the main window, press F3 to enable multiplier management. Current CPU load will be shown in the title bar, and the tray icon shows the current state (if you checked "Colorful Icon" in the settings). Pressing F4 in the main window opens real time CPU Clock. Leave it open to see how the speed changes during normal operation. Left-clicking the CrystalCPUID's tray icon hides the main window. BE SURE NOT TO CLOSE THE WINDOW FROM THE CLOSE BUTTON, since this will shut down CrystalCPUID.

I strongly advise that you test the stability of the system thoroughly before making CrystalCPUID start automatically on startup. So, use the computer as you would normally, might it be browsing the web, playing games, [email protected], watching movies, playing music, etc.

If you start CrystalCPUID normally from the shortcut, it just opens the main window without enabling Crystal 'n' Quiet. What needs
to be done is to add two command-line parameters to the shortcut. Open the properties
of the shortcut (right-click). Add following to the end of the Target-field
(without the quotation marks): "/hide /cq". Click Apply, OK and you're
done. Shut down CrystalCPUID and test the shortcut. If it works properly - main
window doesn't come up, and tray icon changes to indicate current state ("Colorful
Icon") - move it to the Startup-directory in Start Menu.

You can easily disable Multiplier Management temporarily
by just right-clicking the Task Bar icon, and de-selecting "Multiplier
Management". By doing so you'll automatically enter the selected "Exit
Mode" state. The "Exit Mode" state can be configured from the
setup window.

CONCLUSION

After reading this article it should be clear what CrystalCPUID can and can't do. It doesn't show any temperatures, nor does it control any fans. CrystalCPUID just changes the multiplier & core voltage of the CPU according to the CPU load. Temperature measurement support and fan speed control have to come from optional programs and/or devices, such as SpeedFan or fan controllers. There is at least one alternative to CrystalCPUID that I know of - RMClock. I can't tell any personal experiences about RMClock since I haven't tried it out... yet. (Editor's Note: SPCR reviewers Ralf Hutter and Russ Kinder had a go with RMClock a couple of months ago and found it to be highly unstable at the time, on AMD and Intel platforms.) At this time, there does not appear to be an equivalent utility for Linux users, who have to resort to modifying the kernel code/driver to attain similar functionality.

CrystalCPUID's configuration process is very time-consuming, but the rewards are beneficial. On my computer, while running at 2 GHz, I was able to drop the voltage from 1.5 V to 1.3 V. This in turn dropped CPU full load temperatures from 57°C to 47°C. This result cannot be achieved with Cool 'n' Quiet.

My motherboard (MSI K8N Neo) is able to control the voltage of the CPU fan. With the help of SpeedFan I managed to run the CPU fanlessly during normal use (with a Zalman CNPS7000-AlCu as the CPU cooler), and the temperature never exceeded 45°C. SpeedFan was set up to start the fan whenever temperature exceeded 50°C, which occurred rarely (games or compressing archives). I used the Zalman Fan Mate to limit the fan's voltage to 5V at all times while it was on.

With my current setup there is no audible benefit in running the CPU (nearly) fanless, so I let the CPU fan spin at 5V all the time. Whenever I'm not doing anything processor-intensive — about 96% of the time! — the system idles at 1 GHz and 0.85 V, while the CPU is comfortable at 30°C. Yet, all the number-crunching power of the A64-3000+ automatically kicks in when it's needed.

* * *

As mentioned earlier, CrystalCPUID v4.3 supports the Enhanced Intel Speedstep Technology (EIST) and on-demand clock modulation (ODCM), Intel's dynamic CPU clock / multiplier / voltage management features built into the new Intel 600 series, the 570J, and the Pentium M. We will cover CrystalCPUID operation with systems using these Intel processors in the future.

* * *

Comment on this article in the SPCR Forum.

Google

www SPCR