[PCAT]: RTC+CMOS RAM 関連
<Home> → <My Glossary Index> → <Development Room> → <PCAT> → <[PCAT]: RTC+CMOS RAM 関連>
この page は、PC/AT 互換機で長年に渡って使用されてきた MC146818A(Motorola)
とそのセカンドソースについて取り扱っています。
MC146818A(Motorola) の特徴は以下の通り。
- CMOS RAM としての機能
MC146818A は内部に CMOS 回路をベースとした揮発性の RAM (64 byte) を内蔵しています。この
RAM は、BIOS で設定した設定値を PC の電源が切れても覚えておくための領域として使用されています。
MC146818A のことを CMOS と呼ばれることがありますが「CMOS RAM」の省略形であろうと考えられています。「CMOS
設定」とか言われると確かに違和感がありますが、、、
[CMOS RAM(アスキー デジタル用語辞典)]
- RTC (Real Time Clock) としての機能
このチップのユニークな所は、CMOS RAM の読み書きと同じ方法で RTC を読み込み、変更することが出来ます(先頭の14byte部分がRTC用)。
一般的に RTC の精度は良くない(時間が狂いやすい)とされていますが、これは水晶発振子が温度変化に影響を受けやすいというハードウェアの制限から来ています。同じ水晶発振子でも時計の場合は人の腕に巻かれていることが殆どですので温度は一定で安定しているのですが、PC
上の RTC の場合は、起動時→動作中→動作後まで大きな温度変化が生じ、不安定な状況にあります。市場には温度補償を行ってくれる
RTC も存在するのですが MC146818A(とその互換品) と比べるとコスト面で折り合わないという状況もあるようです。
[http://arena.nikkeibp.co.jp/qa/os/20030820/105630/]
- チップセットへの統合化
最近のチップセットの殆どは RTC + CMOS 機能を内部に取り込んでいます。目安としてはマザーボード上にボタン電池が搭載されている場合、RTC
+ CMOS 機能が内蔵されていると思って間違いないでしょう。長年、MC146818A
が使用されてきましたが、現在ではそれを基板上で見つけることは出来なくなっています。
RTC + CMOS 機能の仕様はチップセットの仕様書からも取得できます。
PC/AT での実装
以下のリソースが予約されています。PnP には対応出来ないでしょう。
以下は Windows 2000 on VMware 4 から見たリソース状況です。
制御方法は、70h に index 番号を書き込んだ後、71h で指定の CMOS RAM の読み書きを行います。
CMOS RAM のマッピングについては先頭の 14 byte は RTC として使用し、先頭から
64byte (0-3Fh) までは IBM PC の予約領域とし、残りの 40h-FFh までは BIOS
ベンダーのユニークな領域として使用することが可能です。最近では CMOS RAM
も拡張されていますのでもう少しベンダーユニーク領域が増えている可能性が高いです。
詳細な CMOS RAM のマッピングリストについては Ralf Brown さんの Interrupt
List (INTER61) 内の「CMOS.LST」を参照してください。アレ以上纏まっている資料は多分ありません。
ハードウェア仕様
用語、特集
関連情報
- [http://arena.nikkeibp.co.jp/qa/os/20030820/105630/]
日経パソコンの記事「パソコンの時計はなぜズレる?」。時間を刻むのに水晶発振子を使用しています。特性上、水晶発振子は温度に影響されやすく、腕時計のような比較的温度の安定した場所にあるものは狂いにくいのですが、PC
のような温度差の激しい場所では安定しません。チップメーカによっては温度補償を行っている
RTC もあるのですが、組込み用途以外では使用されていないようです。単にコストの問題だとは思うのですが。
#記事内の写真は RTC の推奨ではないような気もするのですがそれはよしとして。
<Home> → <My Glossary Index> → <Development Room> → <PCAT> → <[PCAT]: RTC+CMOS RAM 関連>
Copyright (c) 2004 Makoto NARA (Mc.N), All rights reserved.
<Terms of Use>