Internet Windows Android

High precision bios timer. HPET: what it is and how to optimize Windows with it

The HPET Mode function is designed to set the operating mode of the HPET hardware timer. The function has only two options for values ​​- 32 bit and 64 bit.

Before the advent of HPET, personal computers used hardware timers RTC (Real Time Clock) and Intel 8254. However, these timers do not meet modern requirements in many ways. In particular, their clock frequency does not exceed several tens of kilohertz, and due to their low operating speed, they often generate many unused interrupts. In addition, they have a low accuracy in determining the time intervals.

This situation did not suit both software manufacturers and hardware manufacturers. As a result, two leading companies in both fields, Microsoft and Intel, joined forces and in 2005 co-developed the High Precision Event Timer (HPET).

This timer was developed primarily to improve the performance of multimedia applications and therefore was originally called the Multimedia Timer. However, later it turned out that multimedia timers were software timers used in graphical operating systems of the Windows 3.x family, so the name of the timer was changed to HPET.

The use of a high-precision event timer has improved the performance of many applications, as well as games that use multimedia content, and increased the smoothness of its playback.

The HPET timer requires operating system support to function. Most modern operating systems, starting with Windows Vista, support it. Although Windows XP, starting with SP2, also has an HPET driver, in fact, this operating system does not use this timer. In addition, the timer is supported by modern versions of Mac OS X, Linux, Solaris, and FreeBSD.

At the hardware level, in most chipsets, the HPET timer is located in the south bridge of the motherboard. It operates at 10 MHz and has a 64-bit master counter. In addition, timer has a large set (from 3 to 256) of special auxiliary counters-comparators that are capable of generating interrupts and can be controlled by both the operating system and application programs. Comparators support both 32-bit and 64-bit modes of operation.

The High Precision Event Timer was originally designed for 64-bit operating systems. However, it can work on 32-bit systems as well. The HPET Mode option is used to switch the operating mode of the comparators from 32-bit to 64-bit mode.

The function can be available only after enabling the general mode of support of the High Precision Event Timer technology in the BIOS using.

Which option value should I choose?

If your computer has a 32-bit OS that supports HPET, then you must select the 32 bit option. If you are using a 64-bit operating system that supports HPET, it is best to select 64 bit.

Setting this option to 32-bit mode on a 64-bit system will not seriously affect system performance, except that applications will not be able to access the advanced timer capabilities. However, choosing 64-bit mode will allow Windows to take full advantage of the High Precision Event Timer technology.

In the event that you have both 32-bit and 64-bit operating systems that support HPET installed on your computer, it is recommended that you select the 32-bit mode option. If you have an operating system that does not support HPET and a 64-bit OS that supports HPET, then you can safely set the 64 bit mode.

Hello everyone. So, today we will talk about the BIOS, or rather about the function in it called ACPI HPET Table. I see that the name contains the word ACPI, I want to say right away that this is an interface through which the interaction between operating systems, hardware and bios takes place. So what is HPET (High Precision Event Timer)? This is a kind of high-precision timer that has been used in chipsets since 2005. HPET was created by Intel and Microsoft, which hints at the level of seriousness ...

In general, the HPET Support option includes the HPET timer itself. ACPI HPET Table is an extended interrupt table and I think it should be included if you have enabled HPET. There may also be an option HPET Mode, 32 bits or 64 bits are set there, see what kind of Windows bit you have, set that one.


Why is HPET needed? It is capable of creating high precision interrupts, in short it is not clear. But the effect of all this can be seen in multimedia, for example, when playing a video, which effect I myself cannot understand. Maybe it's a response, maybe somehow the video will play faster .. Although it is written that HPET can provide smooth playback, but what this means I cannot understand = (

HPET fully supports operating systems starting with Windows Vista.

Honestly, I myself really cannot understand what HPET is. However, it seems it can speed up some multimedia tasks on the PC. HPET is, in a sense, some kind of processor optimization, well, something like that =)

I also found information, what could be this, Windows does not want to be installed, knocks out a blue screen. Chel writes that he rummaged through a bunch of information, nothing helped, and then the bios went, here:

BIOS / Advanced / ACPI Configuration /

There I found the ACPI HPET Table option, turned it on and installed Windows normally, here's a joke =)

So, here a little misunderstanding came out. In short, Windows can use HPET without taking into account the settings in the BIOS, do you understand? It turns out that the Windows itself can use its own timers, but not those that are built into the processor (as I understand it, they are included in the BIOS by the HPET option). From this we conclude that if you turned on HPET in the BIOS, then in the Windows itself, the timers must be turned off so that only the timers in the process are used. It seems so. Timers in Windows are disabled like this, you need to open the command line with administrator rights, in Windows 7 it is done like this, in the start-up write cmd and then right-click on it and select this item:

Well, if you have Windows 10, then hold Win + X there and then select the following item:

Now the teams. To disable Windows timers, use this command first, it disables the timer itself (if I understand everything correctly):

bcdedit / set useplatformclock false

Then this one, it removes the useplatformclock value:

bcdedit / deletevalue useplatformclock

These two commands, I found them on the War Thunder gaming forum, where these commands are offered to reduce lags in the game, I think this clearly says something .... And by the way, this did not help everyone to remove lags, one person writes that the hardware part still matters ....

By the way, here is the command to enable the timer:

bcdedit / set useplatformclock true

Again. As I understand it, if HPET is enabled in the BIOS, then in the Windows itself it should be disabled so that the timers are used only in the processor. I hope that I understood everything correctly =)

And I also read that if your programs open slowly or there are some jerks in the work of your computer, then you should check if HPET is turned on.

In short, the guys with these teams are still incomprehensible to me. But I know one thing, I have never touched these timers, never at all during the entire time of using the computer. Second, I realized for sure that this can somehow affect performance, that is, improve it if these timers are mentioned on the gaming forum. You may have a question, so to enable HPET or not? Experiments are needed here. If you have strange freezes or second-time braking, the programs may start somehow slowly, then try turning HPET on or off. And if you turn on HPET, then turn off the timers in Windows itself, I wrote above how. I did not go into the topic, but there are some other commands on this matter .. you need to search on the Internet ..

I don't know, but it seems that the ACPI HPET Table option is enabled by default.

Found more info. HPET is a high precision interrupt timer that operates at a high frequency, which allows the system to respond faster, as the hardware can respond faster to requests. In short, it's a little confusing, but it seems clear. HPET, as it were, increases the response of the system or hardware to requests. By the way, I already mentioned the response above and was right, hehe ...

Guys, I found a message from one chela on a foreign forum, the message has already been translated into Russian, see what is written:

Well, here is the ACPI HPET Table option itself in the BIOS:

Here is another picture, this is a BIOS already in a new format, so to speak, there is also an ACPI HPET Table option, and by the way it is also enabled:

Guys, such things. Somehow we figured out what an ACPI HPET Table is. The only thing that is not clear about the inclusion. Do I need to disable it in Windows if HPET is enabled in BIOS? I just read that if it is enabled in both Windows and BIOS, then the Windows timer will be used first of all, and only if it is disabled, it will use the timer in the processor. In short, it is not clear. But what is HPET I think you understand for sure now. Good luck to you and so that everything in your life is perfect!

HPET was introduced by Intel and Microsoft in 2005. It is a hardware timer that sits within the south bridge, the component that links the processor to the hard drive, video card, optical drive, and other devices to maximize bandwidth.

Hardware timer functions

The task of the timer is to count the number of system events associated, for example, with access to the hard disk. The moment the preset value is reached, an interrupt is generated. The processor suspends the current program and implements the code associated with the new instruction.

Specifically, HPET's mission is to synchronize media streams, ensure smooth audio and video playback in the operating system, and offload processor timers.

A symptom of HPET malfunctioning (or complete inactivity) is, for example, regular seconds freezes of Windows. The computer starts to work slowly over time. In such a situation, you should think about changing the parameters of the specified function.

How to change timer value and speed up Windows

First, we need to determine if our platform as a whole supports it. Everything is simple here - Windows Vista and newer versions support HPET, XP does it partially, old "windows" do not use this additional timer at all. If in doubt, check the BIOS.

In the additional parameters (Advanced) there should be an option Configuration PCH or HPET Mode (the name may differ slightly depending on the BIOS version and the manufacturer of the motherboard). We need to find High Precision Timer, ACPI HPET Table or something similar. Here you can enable or disable it.

However, Windows tends to overwrite the settings and use HPET, despite the settings in BIOS. Therefore, after booting the system, you need to open a command prompt with administrator rights. To call it in Windows 10, right-click on the Start menu and select the appropriate item.

HPET can be enabled using the command:

bcdedit / set useplatformclock true

This is the only timer that can be activated through Windows. To disable it, use the command:

bcdedit / deletevalue useplatformclock

Then the operating system will be forced to use the timers built directly into the processor.

Important: This overview does not mean that HPET should be completely on or off. If you encounter system freezing problems - programs open slowly or computer jerks - then you should check if HPET is working and try different settings. The result obtained will depend on the exact definition of the cause of the indicated problem.