- ベストアンサー
コンピュータの1秒間はどのように定義されているのか
コンピュータにおいて、1秒間はどのように定義されているのですか? コンピュータの時刻の算出方法について調べていたところ、 基準時刻から何秒経過したかで算出していることが分かりました。 しかし、そもそも、その1秒がどのように定義されているのかは分かりませんでした。 コンピュータにおいて、1秒間という間隔がどのように定められているのか? ご教授、お願いいたします。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
パソコンはカウンタ回路とクロック信号(壁掛け時計ではなく周波数が一定の矩形波です)を持っています。 そのクロック信号は1秒間に何回ハイレベルとローレベルを繰り返すか決まっていますので、その回数を数えれば1秒間が判別できます。 基準時刻に使われるのは32.768kHzの水晶発信器ですね。 カウンタ回路が32768回のクロック信号を数えたら1秒間と認識できる仕組みです。 パソコンはGHz単位の高速なクロック信号を使いますから、基準時刻のカウンタ回路より桁違いに大きい数を数えますが、やってることは同じです。
その他の回答 (6)
- t_ohta
- ベストアンサー率38% (5238/13705)
コンピュータには「インターバルタイマー」というモノがあって、これで時間を計算しています。 インターバルタイマーは比較的精度の高いクロックで動作しており、OSはインターバルタイマーを使って一定間隔で割り込みを発生させて時間を計算しています。 x86系のハードウェアだとインターバルタイマーの動作は 1,193,182Hz と規定されているので、1,193回カウントする毎に割り込みを発生させれば 1ミリ秒 経過した事が判るという仕組みです。(実際はもっと細かな計算をして精度を保ちますが)
コンピュータにもいろいろあります。 自作のコンピュータ(いわゆる「自作パソコン」では無く、回路も自作するコンピュータ)では、簡易的には命令の実行サイクルとクロック周波数で1秒を決めたりしています。精度はキッチンタイマーレベルです。 時計として使える精度を求める場合、RTC(リアルタイムクロックモジュール)というCPUとは別の時計モジュールを使います。 パソコンにもRTCが内蔵されていますが、電源停止時にも常時動いています。 Windowsの場合、稼働中はRTCと独立したシステム時刻という時計が動きます。起動時にRTCの時刻をコピーする取り決めになっています。 システム時刻はユーザーの時刻合わせまたはNTPサーバーの時刻で修正されますが、ローカルで1秒を刻むのは内蔵の水晶発振子が基準ではあります。
- Gletscher
- ベストアンサー率23% (1525/6504)
水晶発振子でクロックを作り、低倍しています。 クロック周波数は機種によってちがい、カタログに書いてありますよ。
- aokii
- ベストアンサー率23% (5210/22062)
正確には、説明はかなり難しいです。 簡単に言うと、決まった時刻に基準となる時計のデータを受信して、時刻を決め、内蔵のクォーツ時計で一秒を決めています。 クォーツ時計: 水晶は圧電体の一種であり、交流電圧をかけると一定の周期で規則的に振動する。クォーツ時計ではこれを応用し、通常は32,768Hz(=215Hz)で振動する水晶振動子を用いて、電気的に処理して時刻を表示する。 一般的なクォーツ時計の誤差は1ヶ月で15 - 30秒程度であり、特に精度の高いモデルでは1年で数秒程度となっている。原理的には、振動周波数が215Hzなので15分周することにより1秒の信号を得ることができるが、水晶振動子の温度特性や個々のバラツキがあるので周波数の誤差が存在する。前者の対策として、2つの水晶振動子を持つダブルクォーツ(ツインクォーツ)と呼ばれる腕時計も存在した。後者の対策として、水晶振動子の製造段階で予め付加したおもり(銀蒸着膜)をトリミングして周波数を調整したり、時計の段階で分周数を周期的に変化させる論理緩急がある。電波時計も実際にはクォーツ時計であり、電波に載せられた原子時計による正確な時刻情報を1日に数回受信して時刻を修正している。
- _kappe_
- ベストアンサー率68% (1581/2304)
コンピュータの中には時計機能を持った回路が入っていて、その示す時刻を参照します。つまり、1秒の精度はその回路の作りに依存します。 実際にはそんなに精度は高くなく放っておくと1ヶ月で10秒以上ずれたりしますが、今どきのコンピュータやスマートフォンではネットワーク経由で時刻を補正しています。
- 86tarou
- ベストアンサー率40% (5093/12700)
コンピュータが動作するには基準となるクロックが必要です。これを外部から供給するのですが、これで時間を知ることが可能です(時間専用にハードを持っている場合もあり)。プログラムでこれを数えたり、割り込み(ハードで数える)によって時間を計測することが出来ます。 http://torano-maki.net/capture/term/ku/clock_frequency.html
お礼
分かりやすい回答、ありがとうございます!