RightMark CPU Clock Utility, version 1.4. README
Copyright (C) 2004-2005 RightMark Gathering, iXBT.com
Genral Information
RightMark CPU Clock Utility (RMClock) is a small GUI application designed for real-time CPU frequency, throttling and load level monitoring and on-the-fly adjustment of the CPU performance level of the supported CPUs via processor's power management model-specific registers (MSRs). In automatic management mode it continuously monitors the CPU usage level and dynamically adjusts the CPU frequency, throttle and/or voltage level as needed.
Disclaimer
PLEASE READ THIS CAREFULLY!
Your system may lock up as a result of a frequency, voltage or a duty cycle change, overclocking/over-voltage of the CPU, as well as tweaking with the CPU-specific registers settings! The developers team, the RightMark Gathering and/or iXBT.com are not responsible for any damage that may result from the use of this utility.
Features
- Real-time CPU clock and CPU/OS load level determination and monitoring (with optional logging).
- Detection of virtually any form of CPU clock throttling.
- Dynamic on-demand CPU performance state (P-state) transitions via real-time adjustment of the CPU multiplier (FID) and requested voltage level (VID).
- Dynamic on-demand CPU clock modulation via real-time transitions between CPU clock throttling levels.
- Advanced CPU-specific power management settings for AMD K7, AMD K8 and Intel Pentium M/Pentium 4/Xeon CPU families.
- Support for multi-processor (SMP/HT) systems.
Supported Environment
Processors
Current release of RMClock utility implements the CPU frequency, CPU load and throttling level determination on the following processor models:
- AMD K7 (Athlon/XP/MP, Duron, Sempron) and K8 (Athlon 64/FX, Opteron 64, Sempron) family CPUs.
- Intel Pentium II/Celeron, Pentium III/Celeron, Pentium M/Celeron M, Pentium 4/Celeron (Northwood and Prescott cores), Pentium 4 Extreme Edition (Gallatin and Prescott cores), Xeon (Prestonia, Nocona and Irwindale cores).
Dynamic P-state transitions are supported on:
- AMD Athlon 64/FX, mobile Athlon 64 featuring AMD Cool`n'Quiet technology.
- Mobile or Low-Power Desktop AMD Athlon XP featuring AMD PowerNow! technology.
- Intel Pentium M featuring Enhanced Intel SpeedStep (EIST) technology.
- Intel Pentium 4 600 series (Prescott N0 core) and Intel Xeon (Nocona and Irwindale cores) featuring Enhanced Intel SpeedStep (DBS) technology.
Dynamic on-demand clock modulation adjustment is supported on:
- Intel Pentium M/Celeron M, Intel Pentium 4/Celeron (all cores), Intel Xeon (all cores) featuring On-Demand Clock Modulation (ODCM).
RMClock utility will run on unsupported CPU models, however, in this case, most of its functionality will be unavailable.
Motherboards
- For AMD Athlon 64 family CPUs, a motherboard certified for AMD Cool`n'Quiet technology is highly recommended. RMClock is not guaranteed to run stable on a non-certified motherboard (however, due to a greater flexibility of RMClock utility, workarounds are possible in some cases). For a list of motherboards supporting AMD Cool`n'Quiet technology, visit AMD web site.
Operating systems
- RMClock is designed for a 32-bit Windows NT-class OS, i.e., it should run on Windows 2000/XP/2003 Server with no problems. No support for Win9x family systems is planned. 64-bit Windows versions are not supported at the moment.
- NOTE: You must have Administrative rights to install and run this utility.
User Interface Options
General tab
- CPU Model, Core and Revision - indicates the detected CPU model name, core name and core revision of a currently selected CPU.
- PM Features - lists the power management features supported and enabled on a given CPU.
- Actual Clock - indicates actual (reference) CPU frequency, in MHz. This value reflects how fast the internal CPU time stamp counter (TSC) increments.
- Throttled Clock - shows effective CPU core frequency, in MHz. This value being less than the reference (actual) CPU clock indicates that the CPU clock duty cycle modulation (commonly referred to as "throttling") is in effect.
- CPU Load - shows actual CPU load (i.e., the ratio of "active" processor cycles to total processor cycles per a given amount of time). This value is measured via CPU-specific performance monitoring counters and represents actual CPU load, i.e., the amount of time the CPU spent in "non-asleep" state.
- OS Load - shows CPU load level as reported by the OS, in a manner similar to Windows Task Manager. NOTE: Due to the differences in the nature and the source of the measurements and the detection accuracy, the displayed CPU Load and OS Load values may not match. A several percents mismatch between these values should be considered normal.
- Current FID, VID - indicates current CPU FSB clock multiplier (FID) and requested voltage level (VID).
- Startup FID, VID - indicates FID and VID values the CPU starts with at a system power-on.
- Minimal FID, VID - indicates the minimal FID and VID values the CPU can possibly handle. NOTE: some CPUs may not actually support the lowest reported FID and/or VID values.
- Maximal FID, VID - indicates the maximal FID and VID values the CPU can possibly handle. NOTE: some CPUs (e.g., "frequency unlocked" ones) may not actually support the highest reported FID and/or VID values.
- CPU Select - selects the index of the physical CPU to monitor. On a multi-processor (SMP) systems, RMClock is able to monitor CPU load and perform CPU performance states transitions independently for each CPU. On the other hand, CPUs with multiple logical processors in a single physical package (Intel Pentium 4 featuring Hyper-Threading technology) are treated as a single unit. The CPU and OS load levels are summated for all logical processor representing a single physical processor.
Management tab
Use P-State Transitions (PST)
Enables/disables the management of the CPU performance states transitions. If the CPU does not support P-state transitions feature, this field is grayed out.
- Minimal FID, VID - defines the lowest performance state to use.
- Maximal FID, VID - defines the highest performance state to use.
- Profile - selects the PST management profile to use:
- No Management - the utility does not attempt to perform any P-state management. This is identical to turning off the PST management feature completely.
- Minimal - the utility sets the lowest user-defined P-state and "locks" this value (prevents it from being changed).
- Maximal - the utility sets and "locks" the highest user-defined P-state.
- Automatic Management - the utility adjusts the CPU FID and VID values as needed, providing a "performance on demand" concept. In this mode, the CPU performance states are changed automatically (ranging from Minimal to Maximal user-defined values) depending on current CPU load reported by the CPU counters. The utility may change the CPU performance states as fast as 10 times per second by default. To prevent unnecessary performance state transitions, the CPU load level "noise filtering" technique is used, which is able to efficiently remove accident CPU usage level "spikes" (e.g., when launching a new application).
Use On-Demand Clock Modulation (ODCM)
Enables/disables the management of the CPU on-demand clock modulation. If the CPU does not support ODCM feature, this field is grayed out. NOTE: enabling both PST and ODCM management is possible, provided the CPU supports both features, but is not recommended.
- Min Throttle - defines the lowest CPU throttle level to use.
- Max Throttle - defines the highest CPU throttle level to use.
- Profile - selects ODCM management profile to use. ODCM profiles are identical to the PST profiles described above:
- No Management - the utility does not attempt to perform any ODCM level management. This is identical to turning off the ODCM management feature completely.
- Minimal - the utility sets and "locks" the lowest user-defined CPU throttle level.
- Maximal - the utility sets and "locks" the highest user-defined CPU throttle level.
- Automatic Management - the utility adjusts the CPU throttle level as needed (in accordance with the CPU load level), providing a "performance on demand" concept.
Performance/Power Preference
This slider sets the desired balance between CPU performance and power consumption. The default Balanced setting is recommended for most cases. On a notebook systems, extra power saving can be achieved by moving this slider to the rightmost position. NOTE: this setting affects both PST and ODCM management logic at the same time.
Hardware/Software Workarounds
Provides additional configuration options to solve specific problems described below in detail. You must restart RMClock application for these settings to have an effect.
- Use alternate CPU load determination method - enabling this feature will cause the CPU load determination procedure to discard the amount of time the CPU spent executing the kernel-mode code. NOTE: this feature should be enabled only if the reported CPU load level always stays at 100% regardless of the actual CPU load (this behavior has been noticed on several Intel Pentium III models).
- Run HLT command when the system is idle - this feature forces the utility to spawn external idle-priority RMClockHLT processes (as many as there're logical CPUs present in the system), which do nothing except running an HLT command. This will efficiently "steal" all idle time from the "System Idle Process" while retaining the CPU in a low power state (C1) when the system is idle. It has been found on an Intel Centrino platform (featuring i855 chipset series) that the OS power management (specifically, the USB Root Hub power saving feature) causes the actual CPU load to continuously stay at 80-90%. This workaround is targeted for this particular platform (but it's not harmful to try everywhere else), allowing for greater power saving and correct P-state transitions management. NOTE: since the OS will no longer receive an idle time, the OS CPU load reported by Windows Task Manager and other similar utilities will always stay at 100%. The OS load reported by RMClock, however, will still be correct, as the utility subtracts the amount of time the CPU spent executing RMClockHLT process(es) from a total CPU busy time.
Advanced tab (AMD K7 processors)
Low Power CPU Modes Settings
- Halt Disconnect Clock Divisor - specifies the divisor to use when ramping down the CPU clock when entering the C1/HALT state.
- Stop Grant Disconnect Clock Divisor - specifies the divisor to use when ramping down the CPU clock when entering the C2/Stop Grant state.
- Apply these settings at program startup - makes the utility apply the low power modes settings every time the utility starts (or when the system is restored from Standby/Hibernate states).
P-State Transitions Settings
The utility must be restarted for these settings to have an effect.
- Stop Grant Timeout Count - defines the amount of the system bus cycles the CPU will enter into a Stop Grant state for, after completing a FID/VID transition.
- FID Transition Stabilization Time - sets the amount of the artificial CPU delay after every single FID transition, in microseconds.
- VID Transition Stabilization Time - sets the amount of the artificial CPU delay after every single VID transition, in microseconds.
- Use Mobile/Desktop CPU VIDs table - lets the user choose whether the utility will use an internal K7 VIDs table for a mobile or a desktop CPU.
Advanced tab (AMD K8 processors)
Power Management Settings (Per ACPI State)
- ACPI State to Display/Modify - sets the ACPI power management state to manipulate with. These states correspond to PMM0-PMM7 System Management Action Field (SMAF) codes and are as follows: PMM0 = C2 (Stop Grant); PMM1 = C3 (Sleep); PMM2 = C0, FID/VID Change; PMM3 = S1 (POS); PMM4 = S3 (STR); PMM5 = C0, Throttling; PMM6 = S4/S5 (STD/SOFF); PMM7 = C1 (Halt).
- Clock Divisor Select - specifies the divisor to use when ramping down the CPU clock or the Northbridge clock.
- CPU Low Power Enable - causes the CPU clock to ramp down according to the clock divisor specified in Clock Divisor Select.
- Northbridge Low Power Enable - causes the Northbridge clock to ramp down according to the clock divisor specified in Clock Divisor Select and puts the DRAM in self-refresh mode. The CPU clock must also be ramped down (see CPU Low Power Enable).
- FID/VID Change Enable - enables a change in Frequency ID (FID) and/or Voltage ID (VID). The CPU and the Northbridge clocks must also be ramped down (see the settings above). NOTE: this setting should be enabled only for the "C0, FID/VID Change" ACPI state.
- Defaults - loads the predefined values (as recommended by the vendor) for Mobile, Desktop or a Server processor. NOTE: it is possible (and recommended) to apply "Desktop" or even "Mobile" profile on Opteron-based server systems (including the multiprocessor ones). This will significantly reduce CPU power consumption during Halt (but may reduce system performance).
Clock Power/Timings
- Good Phase Error - defines the BCLK PLL time until good phase error, in microseconds. Counting occurs when at full frequency.
- Clock Ramp Hysteresis - a non-zero value enables a hysteresis time (in nanoseconds) which prevents the CPU clock grid from being ramped down after processing a probe. It avoids unnecessary changes of the CPU clock grid when the probe arrival rate is relatively low.
- HTT Clock PLL Lock Counter - indicates how long it takes for the slowest HyperTransport technology clock PLL to ramp to its new frequency and lock (in microseconds).
- Defaults - loads the predefined values for the systems with Unbuffered or Registered DIMMs. NOTE: if you experience problems with the Cool`n'Quiet technology operation and have multiple memory modules installed, try applying "Registered DIMMs" profile, which will force the CPU to use longer stabilization times.
- Apply these settings at program startup - makes the utility apply the user-defined ACPI power management and clock power/timing settings every time the utility starts (or when the system is restored from Standby/Hibernate states).
P-State Transitions Settings
You must restart the utility for these settings to have an effect.
- FID Transition Stabilization Time - sets the amount of the artificial CPU delay after every single FID transition, in microseconds.
- VID Transition Stabilization Time - sets the amount of the artificial CPU delay after every single VID transition, in microseconds.
- Max Ramp Voltage Offset - defines the maximal amount of extra voltage, in milliVolts, that is applied when performing a series of VID transitions. This extra voltage is removed after completing a FID/VID transition sequence.
- Follow AMD P-State Transitions rules - instructs the utility to use the official AMD P-state transitions rules (with the VCO frequency change steps of 200 MHz or less and the 25-mV VID change steps). NOTE: the availability of lower FIDs (4x to 7x) depends on the CPU model installed.
- Use Direct P-State Transitions - relaxes the official AMD P-state transitions restrictions and allow direct jumps between any FID values (including all lower FIDs). NOTE: VID transitions are still performed in 25-mV steps.
- Allow Half FIDs - allows the utility to use half FIDs (not officially documented by AMD). This setting is available only for the Direct P-State Transitions scheme.
Advanced tab (Intel Pentium M, Pentium 4 and Xeon processors)
Automatic Thermal Protection
Sets the preferred way of automatic thermal protection (Thermal Monitor 1 or Thermal Monitor 2, if available). NOTE: the CPU is operating out of spec when both TM1 and TM2 are disabled.
Thermal Monitor 2 Target
Defines the FID and VID values the CPU will transition to on activation of the Thermal Monitor 2 feature, provided the CPU supports TM2 and TM2 target programming.
Enhanced Intel SpeedStep Settings
Allow to enable/disable the Enhanced Intel SpeedStep (EIST/DBS) technology. NOTE: EIST/DBS must be enabled for the P-state transitions management feature to work.
Misc Settings
- Enable Enhanced Halt State (C1E) - enables/disables the Enhanced Halt state (C1E) feature available in Prescott and Nocona/Irwindale cores, revisions E0 and later.
- Apply these settings at program startup - causes the utility to apply the user-defined Automatic Thermal Protection, Enhanced SpeedStep and Misc settings every time the utility starts (or when the system is restored from Standby/Hibernate states).
Tray icon menu settings
- Show Performance Level on Icon - animates the system tray application icon with the current CPU performance level. When both PST and ODCM management is present and active, the PST performance level takes precedence over ODCM performance level.
- Alert on CPU Thermal Throttling - makes the utility alert the user with a warning balloon tooltip each time the CPU enters a thermal throttling state (i.e., on activation of TM1 or TM2).
- PST Performance Profile - provides a quick way to change current P-state transitions management profile.
- ODCM Performance Profile - provides a quick way to change current on-demand clock modulation management profile.
- Force Minimal Profile on Batteries - selecting this option will force the utility to select a Minimal performance profile (either PST or ODCM, or both) when the system is running on batteries.
- Make Window Topmost - makes the application window stay on top of all other windows.
- Run Automatically at Startup - adds a shortcut to the application executable to the HKCU\Software\Microsoft\Windows\Current Version\Run registry key so that the application will start automatically whenever the system starts.
- Start Minimized to Tray - makes the utility start minimized to tray (not showing the main application window).
- Restore CPU Defaults on Exit - selecting this option will restore the CPU-default FID/VID and ODCM values when you exit RMClock utility (either manually or when exiting a Windows session).
Miscellaneous options
- There're additional configuration options (tweaks) available beyond the application's user interface. For a list of these options and their possible values, see RMClock_Tweaks.reg file. To apply these settings, just double-click this file to update the program registry settings.
- To wipe out all program settings stored in the registry, apply the RMClock_WipeOut.reg registry file. NOTE: Please use this feature only in extreme cases (e.g., if you set too unrealistic values so that RMClock can no longer start).
Compatibility
CPU Power Management drivers/software
RMClock is compatible with AMD Cool`n'Quiet / PowerNow! and Enhanced Intel SpeedStep software. There's no need to uninstall existing processor driver, however, for best effect, the power-saving features of the driver should be disabled when using RMClock in auto-management mode. That is, current power scheme (in Windows control panel) should be set to "Home/Office Desk" or "Always On".
Performance analyzing software
Since RMClock relies upon CPU-specific performance monitoring counters (PMC) to determine the CPU usage level, compatibility issues are possible with application performance analyzing software like Intel VTune or AMD CodeAnalyst, which uses the same counters to monitor processor-specific performance events. Therefore, you should quit RMClock utility before using this kind of software.
Benchmarking software
As with any power management software, the auto-management feature of RMClock should be disabled before running any benchmarking software, otherwise you may get incorrect benchmark results.
Revision History
RMClock Version 1.4
- Changed P-state transitions scheme for AMD K8 in accordance with official AMD recommendations.
- Added more advanced configuration options for AMD K7 and K8 CPUs.
- Added support for dynamic on-demand CPU clock modulation (ODCM) management.
- Added CPU thermal throttling alert.
- Added optional forcing of the Minimal power management profile when running on batteries.
- Added support for running an HLT command when the system is idle (a workaround for Intel 855 chipset series).
- Added CPU core and revision ID display.
- Added preliminary support for Transmeta CPUs.
- Added automatic startup feature.
- Grouped management-related settings into a new tab.
RMClock Version 1.3
- New (tabbed sheet) user interface design.
- Added CPU clock, load level and FID/VID monitoring graphs with text file logging feature.
- Added CPU load level determination on Intel Pentium II/III/M/4 family CPUs.
- Added throttled CPU clock determination for any forms of CPU clock throttling.
- Added support for multi-processor (SMP/HT) systems (for both monitoring and FID/VID management features).
- Added support for "mobile" and "server" (DBS) Enhanced Intel SpeedStep technology on Intel Pentium M and Xeon (Nocona) CPUs.
- Added CPU-specific power management related settings for AMD K7, AMD K8 and Intel Pentium M/Pentium 4/Xeon family CPUs (for advanced users only!).
- Added Minimal FID/VID determination and display (where available).
- Added CPU power management features presence and status display.
- Improved CPU/OS load measurement with load-averaging feature.
- Improved FID/VID control logic with CPU load level "noise filtering" (spike removal) feature.
- Changed default process priority to Realtime priority class.
- Bugfixed CPU usage determination after resume from Hibernate mode.
- Bugfixed program settings saving upon termination of Windows session (shutdown/logoff).
RMClock Version 1.2
- New UI and popup menu design, including animated icon feature.
- Support for mobile/low-power desktop AMD Athlon XP CPUs featuring AMD PowerNow! technology.
- Improved FID/VID control logic.
- Additional stabilization-related tweaks.
- Additional CPU-specific tweaks for AMD Athlon 64 and Athlon XP family CPUs.
- Bugfixed 'Restore Defaults on Exit'.
AMD64CLK Version 1.1
- Realtime CPU usage determination using the CPU performance counters.
- FID/VID values locking (preventing from being changed).
- FID/VID automatic management (based on the CPU usage).
- Additional configuration options.
AMD64CLK Version 1.0
Feedback
Please, post your comments and questions regarding RightMark CPU Clock Utility at the dedicated CPU RightMark forum. In urgent cases, please contact Dmitri Besedin, the main program developer.