コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
Wikippe
検索
検索
表示
ログイン
個人用ツール
ログイン
リアルタイムクロックのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
リアルタイムクロック
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
要求した操作を行うことは許可されていません。
このページのソースの閲覧やコピーができます。
[[画像:Fig3-c.jpg|thumb|right|{{仮リンク|Dallas Semiconductor|en|Dallas Semiconductor}} リアルタイムクロック(旧世代 PC より)。バックアップ用[[一次電池]]を内蔵しているため高さがある。内蔵電池が消耗した際は搭載している[[マザーボード]]の寿命時期を意味した。]] '''リアルタイムクロック'''(''real-time clock''、'''RTC'''と略記)は、[[コンピュータ]]の[[時計]]であり、コンピュータの電源が切られていても現在時刻を刻み続ける機能のことを指す。また、その機能を持つ[[集積回路]]のことを指す場合もある。 == 概要 == 多くのコンピュータシステムで使われており、現在の[[パーソナルコンピュータ]]や[[情報家電]]にはほぼ必ず組み込まれている。 [[組み込みシステム]]の分野では、リアルタイムクロックのことを'''カレンダークロック'''と呼ぶこともある。また、希であるが同分野でRTCといった場合、[[リアルタイムオペレーティングシステム|リアルタイム・コンピューティング]]を指すこともある。 リアルタイムクロックは、システム本体の電源装置とは直接はつながっていない特別なバッテリー([[ボタン型電池]]や、[[電気二重層コンデンサ]]など)で駆動されることが多い([[バッテリーバックアップ]])。 つまり、リアルタイムクロック以外の機能はコンピュータの電源がオフの時は動作していないが、リアルタイムクロックの時計機能だけはバッテリーで動作している。 ただし、システム本体に供給される電源が[[無停電電源装置]]などによって停電保障されている場合は、システム本体と同じ電源でリアルタイムクロックを駆動するような設計が行われることもある。また、[[一次電池|一次バッテリー]]をバックアップに用いる場合バッテリーの消耗を押さえるために、[[商用電源]]が断たれた場合のみバッテリー駆動するようリアルタイムクロックへの電源回路を設計することも行われる。 リアルタイムクロックは、コンピュータの、CPUや他の周辺機器(CPUクロックやシステムクロック)とは別のクロックジェネレータ(通常32768Hzなど、[[カウンタ (電子回路)|分周器]]によって[[ヘルツ|1Hz]]を作り易い周波数のもので、主に時計用などとして生産・流通しているもの)で動作させることが多い。 リアルタイムクロックは「年」、「月」、「日」、「時」、「分」、「秒」をそれぞれデータとして提供する(これらに加え、曜日までカウントする機種もある)。つまり、一般にコンピュータ内で秒単位の時刻(C言語で用意されている標準変数[[time_t]]型など)を保持しているのとは全く別の方式である。これは同じチップをデジタル時計などにも利用しているためである。たとえば、あるリアルタイムクロックはそれぞれの値を2桁の[[二進化十進表現|BCD]]で保持している。このため使う側(例えば[[オペレーティングシステム|OS]])が20世紀なのか21世紀なのか判断しなければならない(これも[[2000年問題]]の一種である)。たとえば1980年を基準とすると、80以上99以下なら1900年代、00以上79以下ならば2000年代といった処理を行うが、将来的に変更される可能性がある。年が2桁の情報で管理されている品種は、必然的に100年以上使われることを考慮していない。 == コンピュータでの実際の利用 == 一般にリアルタイムクロックへの書き込み(つまり時刻あわせ)はコンピュータから見て非常に時間がかかる。 そのためネットワーク上で時刻同期するような場合でも、頻繁にRTCへ書き込まないような考慮を[[オペレーティングシステム]]が行っている。 現在のOSは起動時にRTCを読み取って、CPUの[[High Precision Event Timer|高精度(イベント)タイマー]]の精度を校正し、以後RTCから時刻を読み出すのではなく、高精度タイマーのカウンタ値によって時刻を保持している(カウンタ値を人間が理解できる形式にした[[システム時刻]]もあり)。これはRTCの時刻精度がおよそミリ秒が限度なのに対して、高精度タイマーはナノ秒からピコ秒の精度をもっており、より正確な時刻管理が出来るためである。特にこのような精密な時刻管理は[[Network Time Protocol|NTP]]の様に「時計を正確な時刻に徐々に進める・遅らせる」といった操作には必要不可欠である(いきなり時計を戻すと、動作がおかしくなってしまうプログラムは多い。特に[[データベース]]でジャーナルの[[タイムスタンプ]]が乱れる事は、致命的な障害をもたらす)。 RTCがどの「[[標準時]]の時刻」であるかを知る術はない。なぜなら標準時(タイムゾーン)の情報が回路内に保持されていないからである<ref> {{cite web | url = http://jibun.atmarkit.co.jp/lskill01/rensai/lpicdrill08/lpicdrill01.html | title = 暗記に頼らずちゃんと理解 実践でも役立つLPICドリル - 第8回 Linux時刻管理の仕組みと設定 | pages = 1 | author = 大竹龍史 | date = 2008-12-26 | work = アットマーク・アイティ | publisher = jibun.atmarkit.co.jp | accessdate = 2011-08-12 | quote = ハードウェアクロック自体にはUTCかローカルタイムかの情報を保持する領域はありません。 }}</ref>。システム時刻は[[ブート]]時にRTCから時刻を同期する。しかし両者が参照するタイムゾーンに差異がある場合は注意深く同期しないと両者が何のタイムゾーン下の時刻であるかが分からなくなってしまう。まずOSのインストーラはシステム時刻の初回設定のため、RTC(インストーラによっては「ハードウェアクロック」と表示されている)がどの標準時を参照しているか(例えばJSTなのかUTCなのか)をユーザーに質問する。このためユーザーは何らかの方法でインストール前にRTCの「タイムゾーン」を調べなければならない。概ね[[Basic Input/Output System|BIOS]]の[[I/O コントローラー・ハブ]](ICH)の設定にRTCの時刻が表示される。このBIOSの時刻表示にそれが何の標準時かは大抵表示されていない。このためユーザーは自分で{{仮リンク|壁時計時刻|label=壁時計|en|Wall clock time}}や[[時報]]とBIOSの表示時刻を比較し、RTCが何のタイムゾーンを参照しているか判断しなければならない。RTCの標準時が判明した、もしくは特定のタイムゾーン下の時刻となるようRTCを再設定した後、インストーラにRTCの標準時を指示しインストールを続行する。このRTCのタイムゾーン情報はOS・システム時刻のタイムゾーン情報([[Unix系]]OSではいわゆる[[tz database]])とは別個に保持される。具体的にUnix系OSでは前者は'''/etc/adjtime'''、後者は'''/etc/localtime'''という別々の設定ファイルに分けて記録されている。この後、OSブートの度にRTCを読み出しシステム時刻がこれと同期される。Unix系OSではその際/etc/adjtimeファイルを見てRTCが何のタイムゾーンであるかを判断した上で同期する(ユーザーが/etc/adjtimeを操作したり、RTCのタイムゾーンが別のものであると強制的に認識させてシステム時刻を同期させることも可能。[[Linux]]の場合は、詳しくは{{仮リンク|util-linux|label=hwclock|en|util-linux}}コマンドを参照)。逆にシャットダウン時はシステム時刻をRTCに(RTCのタイムゾーンを認識した上で)書き込む<ref> {{cite web | url = http://jibun.atmarkit.co.jp/lskill01/rensai/lpicdrill08/lpicdrill02.html | title = 暗記に頼らずちゃんと理解 実践でも役立つLPICドリル - 第8回 Linux時刻管理の仕組みと設定 | pages = 2 | author = 大竹龍史 | date = 2008-12-26 | work = アットマーク・アイティ | publisher = jibun.atmarkit.co.jp | accessdate = 2011-08-12 }}</ref>。以上よりUnix系OSではRTCに書き込む時刻をUTCまたはローカルタイムのどちらか一方をユーザーが選ぶことができる。一方、[[Windows NT系]]OSではRTCに(UTC に変更可能であるが、既定の設定では)ローカルタイムを書き込む。このため両OSを[[マルチブート]]できるシステムにおいて、仮にUnix系OS側がUTCで書き込んでいた場合、両者の間をマルチブートで往復するとRTCがタイムゾーンに応じて「狂ってしまう」(時差が発生する)。この問題に対して、Windows NT系ではUTCを使うという対策がある。しかし、時刻が直感的に判り難く、またローカルタイムの概念を持たないアプリケーションでは[[タイムスタンプ]]がUTCをローカルタイムとみなして保存するので都合が悪くなる。<!--Unix系OSの一部では、RCのシャットダウンシーケンスの一部でUTCをローカルタイムに直してリアルタイムクロックに書き込み、Windowsを起動しても時計が狂わない様にした物もある(あまり良いアプローチではないので評判は芳しくない)。-->もしくはUnix系OS側をローカルタイムでRTCに書き込むようにすれば良い。 いずれの場合も、時刻源にRTCを使わず、NTPなど外部の時刻源に同期する様に設定するとほぼ問題無く時刻を参照できる(ただし[[OS X|Mac OS X]] 10.4.xは時計が戻されるとFinderの動作がおかしくなるバグがある。AppleはMac OS X 10.5 Leopardへのアップグレードを推奨している)。 == 脚注 == {{脚注ヘルプ}} === 注釈 === {{Reflist|group="注釈"}} === 出典 === {{Reflist}} == 関連項目 == * [[2000年問題]] * [[2038年問題]] == 外部リンク == *[http://www.intersil.com/products/pt/parametric_table_10777.asp Intersil Real Time Clock Selection] *[http://www.maxim-ic.com/appnotes.cfm/appnote_number/3644/CMP/WP-22 Power Considerations for Accurate Real-Time Clocks] {{Computer-stub}} {{DEFAULTSORT:りあるたいむくろつく}} [[Category:電子部品]] [[Category:時計]] [[Category:ハードウェア]]
このページで使用されているテンプレート:
テンプレート:Cite web
(
ソースを閲覧
)
テンプレート:Computer-stub
(
ソースを閲覧
)
テンプレート:Reflist
(
ソースを閲覧
)
テンプレート:仮リンク
(
ソースを閲覧
)
テンプレート:脚注ヘルプ
(
ソースを閲覧
)
リアルタイムクロック
に戻る。
検索
検索
リアルタイムクロックのソースを表示
話題を追加