アカウント名:
パスワード:
オーバークロックなんざ興味は無い、しかしOSのRTCが信用できないって大問題な気がするんだが…あと独立したハードウェアのRTCがなんでCPUのクロックで狂うのかも理解できない。技術的な詳細が欲しい。
> あと独立したハードウェアのRTCがなんでCPUのクロックで狂うのかも理解できない
自分もどんな仕組みでそうなってるのか気になりますね。一応リンク先を見ると、
CPUについては、Intel 環境では Haswell / Ivy Bridge / Sandy Bridge / Gulftown / Wolfdale で発生を確認済み。なお AMD 環境では問題なしという検証結果が出ています。
ということで、Windows 8とintelの組み合わせで発生するようです。Windows8でのRTCの仕様変更により、Intel固有のなにかの機能が影響してるようなので、Win8のRTCにどんな仕様変更があったのか、影響しているIntel固有の機能は何か、の2点を明らかにすれば十分なんですが。。
更にリンク先 [hwbot.org]を見ると、OS起動時に取得したであろう仕様から起動後にOS上からベースクロックと倍率を変更しているようです。# つまり、通常の省電力等と違いOSが関知しない所でシステム構成が変動してるのですね。
Boot in OS at 130MHz BCLK and 32x CPU RatioReduce BCLK frequency to 122MHz at runtime (in OS). Set CPU ratio at 34x to maintain the same frequency of 4160 MHzCheck benchmark before and after the downclock
また、記事中では"RTC"とか言ってますが、実際はOSの時計=システムクロックであって、ハードウェアクロックである物理的なRTCでは無い模様。よって、割り込みタイミングがOS起動後に変わってしまってシステムクロックが狂うってのが真相なのでは?# LinuxもBIOS含めたHWの不具合やらVM [vmware.com]だったりでシステムクロックが狂う対策に苦しんでたりしますがOS起動中にベースクロック変動をやられた場合どうなるんだろう?
一応原因として有りそうなのはHPETとか諸々の割り込み辺りがベースクロックと同期しちゃってるとか。OSの影響はシステムクロックのソースが仕様変更されたので顕在化とかかなぁ?尚IntelのみなのはIntel固有の機能(含むチップセットドライバ等)もですが、M/Bやチップセットが何か公開されてない以上、BIOS/UEFI(含むマイクロコード)やオーバークロックツールの共通不具合の可能性も考慮すべきかと。
# つまり、通常の省電力等と違いOSが関知しない所でシステム構成が変動してるのですね。
コメントへの反応ですみませんが,「OS上からベースクロックと倍率を変更」してるのですから,OSは当然関知してますよね. OSに問題なし,とは言えないです. ハードウェアのRTCは無関係というのは同意です.
コメントへの反応ですみませんが,「OS上からベースクロックと倍率を変更」してるのですから,OSは当然関知してますよね.OSに問題なし,とは言えないです.
OS上から変更できても、OSが関知してるかは別です。クロックの変更やBIOS等のファームウェア更新だってOS上から可能ですが、それはハード側がそのような機能を実装していて、ドライバ経由等で叩いてるだけですから。結果、ベースクロックや倍率が変わった事を誰からも知らされなければ対処しようがありません。
狂った時間がsystohcされてしまうってことはないのかな?
AMDのTSCは800Mhz固定、Intelはクロックにより変動。多分RTCにアクセスするとシステム時間にフォールバックするとかでは。なのでRTCの性質を前提にしているベンチマークは結果が変わるとか。
OSの時計なんてtimeBeginPeriodするだけでずれるとか、高負荷になっただけでずれるとか、むしろあんなものアテにするほうがどうかしてる。
だから結局逐次テキトーにRTCを読み直しているってだけだよね。でも、それだとベンチマークみたいに計算のネタとして使うと値に有意な差異が出来ちゃうと。
8で変わったクロック関係というと dynamic tick かなぁって思ってる
RTCそのものじゃなくて、OSがカウントアップしている部分がおかしいんじゃないですかね。RTCはアクセスに時間がかかるし精度も低いですから、今どきのOSは起動時にRTCを読み取った後、別の手段で時間を進めているはず。この部分がバグっているということなのかな?
普通RTCと言えばハードだよね。でもOSは往々にして立ち上げ時にRTCから値を読み、その後は内部カウントしてって事をやっているものだから(でないと時間問い合わせの度にI/O処理が発生しちゃう。が最近のリッチなOSでは常時に時間表示とかするものだし)そのカウントの処理の中で、カウントを間違えさせられるO/Cのパターンが見つかったってのかな?
もう数年前になるけど、会社のPCが起動時はほぼ正しい時刻を指してて退社する頃には数時間狂ってるっておかしな現象おきてたけど、そういう事だったのか…
って、それじゃ問題はWindwos8系に限らないって事じゃないのか?
ADやドメイン配下だとドメインコントローラーの時刻に自動的に合わせるので正しかっただけでは?# BIOSの不具合で時計が正確に狂う物があります。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy
RTCが狂うって (スコア:1)
オーバークロックなんざ興味は無い、しかしOSのRTCが信用できないって大問題な気がするんだが…
あと独立したハードウェアのRTCがなんでCPUのクロックで狂うのかも理解できない。
技術的な詳細が欲しい。
Re:RTCが狂うって (スコア:3)
> あと独立したハードウェアのRTCがなんでCPUのクロックで狂うのかも理解できない
自分もどんな仕組みでそうなってるのか気になりますね。
一応リンク先を見ると、
CPUについては、Intel 環境では Haswell / Ivy Bridge / Sandy Bridge / Gulftown / Wolfdale で発生を確認済み。なお AMD 環境では問題なしという検証結果が出ています。
ということで、Windows 8とintelの組み合わせで発生するようです。
Windows8でのRTCの仕様変更により、Intel固有のなにかの機能が影響してるようなので、
Win8のRTCにどんな仕様変更があったのか、影響しているIntel固有の機能は何か、
の2点を明らかにすれば十分なんですが。。
Re:RTCが狂うって (スコア:5, 参考になる)
更にリンク先 [hwbot.org]を見ると、OS起動時に取得したであろう仕様から起動後にOS上からベースクロックと倍率を変更しているようです。
# つまり、通常の省電力等と違いOSが関知しない所でシステム構成が変動してるのですね。
また、記事中では"RTC"とか言ってますが、実際はOSの時計=システムクロックであって、ハードウェアクロックである物理的なRTCでは無い模様。
よって、割り込みタイミングがOS起動後に変わってしまってシステムクロックが狂うってのが真相なのでは?
# LinuxもBIOS含めたHWの不具合やらVM [vmware.com]だったりでシステムクロックが狂う対策に苦しんでたりしますがOS起動中にベースクロック変動をやられた場合どうなるんだろう?
一応原因として有りそうなのはHPETとか諸々の割り込み辺りがベースクロックと同期しちゃってるとか。
OSの影響はシステムクロックのソースが仕様変更されたので顕在化とかかなぁ?
尚IntelのみなのはIntel固有の機能(含むチップセットドライバ等)もですが、M/Bやチップセットが何か公開されてない以上、BIOS/UEFI(含むマイクロコード)やオーバークロックツールの共通不具合の可能性も考慮すべきかと。
Re: (スコア:0)
# つまり、通常の省電力等と違いOSが関知しない所でシステム構成が変動してるのですね。
コメントへの反応ですみませんが,「OS上からベースクロックと倍率を変更」してるのですから,OSは当然関知してますよね.
OSに問題なし,とは言えないです.
ハードウェアのRTCは無関係というのは同意です.
Re:RTCが狂うって (スコア:1)
OS上から変更できても、OSが関知してるかは別です。
クロックの変更やBIOS等のファームウェア更新だってOS上から可能ですが、それはハード側がそのような機能を実装していて、ドライバ経由等で叩いてるだけですから。
結果、ベースクロックや倍率が変わった事を誰からも知らされなければ対処しようがありません。
Re: (スコア:0)
狂った時間がsystohcされてしまうってことはないのかな?
Re:RTCが狂うって (スコア:3, 参考になる)
AMDのTSCは800Mhz固定、Intelはクロックにより変動。多分RTCにアクセスするとシステム時間にフォールバックするとかでは。
なのでRTCの性質を前提にしているベンチマークは結果が変わるとか。
Re: (スコア:0)
ベンチマークツールがTSCを見て時間計測しているせいで正しい結果が出ない,というところまでなら,
まあしょうがないか,と笑って許せる範囲なんだが,OSの時計まで一緒にずれてしまう,というのは
シャレにならない.
Re: (スコア:0)
OSの時計なんてtimeBeginPeriodするだけでずれるとか、高負荷になっただけでずれるとか、むしろあんなものアテにするほうがどうかしてる。
Re: (スコア:0)
だから結局逐次テキトーにRTCを読み直しているってだけだよね。
でも、それだとベンチマークみたいに計算のネタとして使うと値に有意な差異が出来ちゃうと。
Re: (スコア:0)
8で変わったクロック関係というと dynamic tick かなぁって思ってる
Re:RTCが狂うって (スコア:1)
RTCそのものじゃなくて、OSがカウントアップしている部分がおかしいんじゃないですかね。
RTCはアクセスに時間がかかるし精度も低いですから、今どきのOSは起動時にRTCを読み取った後、別の手段で時間を進めているはず。この部分がバグっているということなのかな?
Re:RTCが狂うって (スコア:2)
Re: (スコア:0)
普通RTCと言えばハードだよね。
でもOSは往々にして立ち上げ時にRTCから値を読み、その後は内部カウントしてって事をやっているものだから
(でないと時間問い合わせの度にI/O処理が発生しちゃう。が最近のリッチなOSでは常時に時間表示とかするものだし)
そのカウントの処理の中で、カウントを間違えさせられるO/Cのパターンが見つかったってのかな?
Re: (スコア:0)
もう数年前になるけど、会社のPCが起動時はほぼ正しい時刻を指してて
退社する頃には数時間狂ってるっておかしな現象おきてたけど、そういう事だったのか…
って、それじゃ問題はWindwos8系に限らないって事じゃないのか?
Re: (スコア:0)
ADやドメイン配下だとドメインコントローラーの時刻に自動的に合わせるので正しかっただけでは?
# BIOSの不具合で時計が正確に狂う物があります。
Re: (スコア:0)
Really-ish Time Clock だったんだよ