2008-06-14

VistaでHPETが使われていることの確認

HPET(High Precision Event Timer)について
Guidelines For Providing Multimedia Timer Support

今走っているPCで、タイマーには何が使われているかというのは気になるが、残念ながら確かめる方法はない。最近のチップセットは、大抵HPETを実装しているのだが、実際に使われているのかどうか気になる。

と思ったら、今使っているマザーボードのBIOS設定に、HPETの有効無効を切り替える設定があったので、試してみた。

まず、HPETが有効な状態でQueryPerformanceFrequencyを呼ぶと、14318180を返してきた。次にBIOSの設定で、HPETを無効にしてみると、3579545であった。再度HPETを有効にすると、値は元に戻った。なるほど、HPETが使われているらしい。

HPETでは少なくとも、10MHz以上の解像度が保障されている。チップセットやBIOSのバグさえなければ、マルチプロセッサ環境で、異なるプロセッサ間でも問題ないらしい(もちろん、そういうコードを書くとXP環境切捨てになるが)

ちなみに当然だが、Windows Vista以降が必要(XP出荷時には、まだHPETは規格すら決まっていなかった)

No comments:

Post a Comment

You can use some HTML elements, such as <b>, <i>, <a>, also, some characters need to be entity referenced such as <, > and & Your comment may need to be confirmed by blog author. Your comment will be published under GFDL 1.3 or later license with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.