読者です 読者をやめる 読者になる 読者になる

Windows7で時計がずれる

同じ症状でお悩みの方向け…ってほど仰々しいものでもなくて、単にこんな事あった!ぐらいのメモ程度に。

ここ最近Windows7 (64bit)で時計が大幅にずれると言う症状に悩まされていました。
どれくらいずれるのかというと、実時間3分の間に1分遅れる程度。1時間経つと20分遅れるぐらいの勢いです。こんなんじゃ使い物にならないと言うことで色々と試してみました。

まず最初にした事は、やはりBIOSの設定(CMOS)の情報を保持するためのバッテリーの交換。今思えば、マザーボード自体は去年の夏ごろ(たぶん)に変えたので電池が消耗してる事自体異常と言えば異常なんですが。

結果、小さくなった…と思ったのですが、こんな程度でおさまったらネタにも何にもならないですよね…。と言うことで一時期は直ったものの、またすぐ再発。


ここから色々Google先生に問い合せました。で、行き着いたのがこの情報。以下重要な所だけ引用しますと、
APIC,HPET の設定がおかしい
=> BIOSのPower Management Setupにある HPET Support, HPET Mode の設定は適切ですか?(GA-P35-DS3Rのマニュアルより)
Windows 7 64bit版を使用されているので、おそらく、HPET Support: Enable, HPET Mode: 64bit の設定が適切ではないかと思います。
もしかすると、この設定をしたあとOSのクリーンインストールを行わないとHPETの設定がOSに反映されないかもしれません。
と言うことだそうです。早速自分のマザー(Jetway HA07-Ultra)の設定を見直してみると、HPETの設定がありました。ただ、EnableとDisableを切り替えても問題は解決せず。

もちょっと調べてみるといらっしゃるじゃないですか、おんなじ症状で悩んでた方が。要するにBIOSのバージョンが悪かったらしい。確かに自分が入れてたBIOSのバージョンはA06でした。BIOSの方の時計はまったくずれてなかったのでてっきり、ソフトウェアタイマーが何かしらの負荷に邪魔されて正しく刻まれてなかったものだとばっかり。

ちなみに、OS上の時計(タイマー)は起動時にハード上の時計RTC (Real Time Clock)を読んで、後は自前で時を刻んているみたいです。このとき割り込みを使ってカウントするのかな…。この割り込みの取りこぼしとかが発生するとそのままズレに繋がるみたいです。

情報系工学出身で電気回路を生業としてるのにこの辺りがあやふやなのがまだまだですな(´・ω・)

とりあえず原因らしきものが分かったのでさっそくBIOSの更新。09年12月30日時点でA11。今のところ更新後問題は発生してません。

他に不具合が出ないか、もうしばらく様子見と言うことでこの状態で運用していこうかと思います。


いつもこの手の問題はバッテリーか重い負荷に結び付けていたのですが、あんまり安直に決めつけるのもよくないですね…。


【補足】
時計がずれる以外の症状に音が途切れるという症状(主にDirectSound使用時)もあったのですが、それもついでに解決されました。
デコードとか音声周りの処理にソフトウェアタイマーのずれが影響してたんですかね。