Let’s turn our attention to the BIOS (Basic Input/Output System). This is firmware used to start the PC system after it is powered on.
The BIOS in modern PCs initializes and tests the system hardware components (Power-on self-test), and loads a boot loader from a mass storage device which then initializes a kernel. The BIOS stores system hardware settings such as storage device configuration, overclocking settings, advanced power management, and boot device configuration that are needed for system startup in the motherboard CMOS.
To access the BIOS, you need to press the BIOS key set by the motherboard manufacturer. This can be F10, F2, F12, F1, or DEL. A message may come up when booting up the computer, which tells you what key to press. Otherwise, check your motherboard’s manual, or just keep trying one of the above keys when starting up your PC.
It’s impossible to provide an exhaustive list of things to try to reduce power consumption from changing settings in the BIOS. This is, in part, because the options available depend on the specific firmware stored on the motherboard. On some motherboards, BIOS options may be severely limited, on others there will be a multitude of tweaks that can be applied.
This article suggests a few things that are worth investigating, and a few changes that should be avoided.
The images are taken from the BIOS of an ASUS TUF GAMING B460-PLUS motherboard, a fairly modern motherboard that supports 10th Gen Intel Core processors. It’s likely your PC’s BIOS will be organized differently.
Power-saving Mode & ASUS Performance Enhancement
The PC we’re testing idles at 24.6 Wh and 82.9 Wh under heavy load1. These figures reflect the Performance mode and ASUS Performance enhancement enabled, and with the Balanced power setting in GNOME.
In the image below we now enable the maximum power-saving mode and disable ASUS Performance enhancement.
With these two changes to the BIOS, the PC idles at 19.6 Wh and runs at 81.3 Wh under heavy load. From a series of defined tests, we found a reduction of about 3 or 4 Wh in general usage. That’s a pretty significant saving with no effort.
Enabling maximum power-saving mode makes a raft of changes to the settings. The changes are quite technical so we’ve summarized them on this page.
It’s possible to decrease the power consumption by decreasing the voltage and/or the frequency of the subsystem and/or the whole processor. The two ways to decrease the power consumption of a processor are by powering down subsystems and voltage/frequency reduction is accomplished by using C-states and P-states.
C-States are power-saving features built into the processors. They basically shut down or inactive circuit components when they’re not needed, then repower them when demand is anticipated. With the maximum power-saving enabled in the BIOS, we have the C-States set to maximize power saving, but it’s worth checking your BIOS to see if they have been changed. While it’s possible to disable C-states, this is not recommended.
P-states means the CPU core is also in C0 state because it has to be powered to execute a code. P-states basically allow to change the voltage and frequency (in other words operating point) of the CPU core to decrease the power consumption.
ASUS Performance enhancement doesn’t add much to the system performance wise, so we’re happy to turn that option off even though it doesn’t have a material effect on reducing power consumption under heavy load. But having that option enabled only has potential for less stability with higher sustained temperatures (although our system has plenty of cooling).
Things not to do
There are lots of tweaks to the BIOS that we don’t recommend even if they reduce power consumption when the system is under load. For example, the screenshot below shows that we can disable one to five of the six processor cores. At idle or near idle, the difference between the electricity consumed when all cores are enabled and when one or some are disabled is negligible. And you are left with a machine that is much slower.
While the Wh is lower with moderate or high loads (with 5 of the 6 cores disabled, power consumption peaked at a ‘mere’ 37.8 Wh), the time taken to complete a task takes significantly longer. It’s much more expensive from a power consumption perspective to disable cores. And don’t forget that if you’re using the Balanced or Power Saving mode in Linux, the CPU already downclocks substantially to reduce power.
Equally, we wouldn’t recommend disabling hyperthreading. Generally speaking, hyperthreading increases peak power but reduces average power. In the vast majority of scenarios, it’s therefore a false economy to disable hyperthreading.
Another option is to change the Package Power Time Window (PL1) and the Short Duration Package Power Limit (PL2).
PL1 is the processor’s rated TDP value, which defines the long-duration power limit the processor must not exceed. On the system in question it’s set for 65 watts. PL2 allows the processor to exceed PL1 for a short duration — when it leaves the idle state.
It’s possible to undervolt the system. But it’s dubious whether these settings should be changed.
1 Heavy load reflects power consumption by stressing all cores of the processor using the
stress utility. We only stress the CPU, not other parts of the system such as the IO.
Pages in this article:
Page 1 – BIOS Changes
Page 2 – Maximum Power Saving Mode – Changes in Detail
All articles in this series
|Saving Money with Linux|
|Getting Started||We kick off the series with everything you need to start saving|
|Power Settings||We look at the 3 different power settings and some useful open source tools|
|BIOS||Explore changing settings in the BIOS to reduce power consumption|
|PowerTOP||Analyze power issues and receive optimization suggestions|
|Computer Off||Power consumption when computers are off|
|Gaming||Gaming doesn't have to be energy intensive|