アカウント名:
パスワード:
TSCの速度は実測しないと分からないので、WindowsだろうとLinuxだろうと*BSDだろうと、OS起動時にキャリブレーションしています。その後で外部供給クロックを変動させると、時計が狂うのは当然ですよね。アイドル時にクロックを落とすとか、TurboBoostとかいうのは話が別で、そもそもOSが自らクロックを変えるのでちゃんと補正しますし、そもそも現在主流のCPUではこれらの (内部の) クロック変動でTSCの速度が変わることはありません。
というか、ストーリー自体が勘違いしてるんだな。
他のコメントにもあるように、RTCはWindows起動中はほとんど参照されないだろうから、RTCの問題ではないでしょうね。
HPETのQueryPerformanceFrequencyは実測して決めていたんでしたっけ?以前調べたときは14.31818MHzとなってた記憶があったんですが…
Windows8以前からEISTを有効にしていると1日に十数秒時間がずれたりするので、本当にちゃんと補正しているのか疑問に思ってたんですけど。実際にはタイマ割り込み毎に以前に実測したカウント値を足しているだけでHPETのカウント値は使っていないってことなんでしょうか。
# 4770KのWindows8マシンで以下のプログラムを実行したら3416980となって、妙に半
HPETを使っているだろうと思っていて確認していなかったけど、調べてみるとTSCっぽい雰囲気。/(^o^)\
BIOS設定でCPUの最大動作周波数を変えて起動すると、露骨に値が違うし。但し、OSはWindows 7。
bcdedit /set useplatformclock trueして再起動すれば、HPETを使うようになる。
使うタグを間違えてwindows.hとstdio.hが消えてました。
チップセット等にカウンタ・タイマーがあって、ここには高精度クロックを供給し割り込みをかけて時間を計測しているのでは?。この方法ならCPUのクロックは影響受けないはず。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ハッカーとクラッカーの違い。大してないと思います -- あるアレゲ
なんか勘違いしているコメントが多いようだが (スコア:0)
TSCの速度は実測しないと分からないので、WindowsだろうとLinuxだろうと*BSDだろうと、OS起動時にキャリブレーションしています。その後で外部供給クロックを変動させると、時計が狂うのは当然ですよね。
アイドル時にクロックを落とすとか、TurboBoostとかいうのは話が別で、そもそもOSが自らクロックを変えるのでちゃんと補正しますし、そもそも現在主流のCPUではこれらの (内部の) クロック変動でTSCの速度が変わることはありません。
Re: (スコア:0)
というか、ストーリー自体が勘違いしてるんだな。
Re: (スコア:0)
他のコメントにもあるように、RTCはWindows起動中はほとんど参照されないだろうから、RTCの問題ではないでしょうね。
HPETのQueryPerformanceFrequencyは実測して決めていたんでしたっけ?
以前調べたときは14.31818MHzとなってた記憶があったんですが…
Windows8以前からEISTを有効にしていると1日に十数秒時間がずれたりするので、本当にちゃんと補正しているのか疑問に思ってたんですけど。
実際にはタイマ割り込み毎に以前に実測したカウント値を足しているだけでHPETのカウント値は使っていないってことなんでしょうか。
# 4770KのWindows8マシンで以下のプログラムを実行したら3416980となって、妙に半
Re:なんか勘違いしているコメントが多いようだが (スコア:2)
HPETを使っているだろうと思っていて確認していなかったけど、調べてみるとTSCっぽい雰囲気。
/(^o^)\
BIOS設定でCPUの最大動作周波数を変えて起動すると、露骨に値が違うし。
但し、OSはWindows 7。
Re:なんか勘違いしているコメントが多いようだが (スコア:2)
bcdedit /set useplatformclock true
して再起動すれば、HPETを使うようになる。
Re: (スコア:0)
使うタグを間違えてwindows.hとstdio.hが消えてました。
Re: (スコア:0)
チップセット等にカウンタ・タイマーがあって、ここには高精度クロックを供給し割り込みをかけて時間を計測しているのでは?。
この方法ならCPUのクロックは影響受けないはず。