RTCとは

RTCは、コンピュータシステムにおいて、現在時刻を正確に計測し、電源が切断された状態でも計時を継続するための時計回路または機能のことであり、オペレーティングシステム(OS)やアプリケーションが利用する永続的な基準時刻を提供し、時刻同期やログ記録の正確性を保証するためのハードウェアコンポーネントのことです。

RTCの概要とシステムの計時機能

RTC(Real-Time Clock、リアルタイムクロック)は、コンピュータのマザーボード上に搭載された専用の集積回路(IC)であり、システムの主電源が切られている間も、内部に組み込まれた水晶振動子とCMOSバッテリー(またはコンデンサ)からの電力供給によって動作し続けます。

RTCの主要な役割は、以下に示す通り、OSの動作とは独立して正確なカレンダーと時刻情報(秒、分、時、日、月、年)を維持することにあります。

  • 永続性: RTCの最も重要な機能は、システムの主電源が切断されても計時を継続する能力です。これは、システムが再起動された際に、インターネット接続やOSからの時刻同期を待たずに、正確な現地時間から動作を開始できるようにするために不可欠です。
  • CMOSとの連携: RTC ICは、多くの場合、CMOSメモリチップと一体化されているか、密接に連携しています。このCMOSメモリに、RTCによって維持されている時刻情報が格納されます。

主な目的は、システムがいつでも信頼できる基準時刻にアクセスできるようにし、時刻の正確性が求められる各種処理(ログ記録、ファイルタイムスタンプ、セキュリティ認証など)をサポートすることです。

RTCの技術的な仕組み

1. 水晶振動子と周波数

RTCの正確性は、その内部で使用されている**水晶振動子(Crystal Oscillator)**に依存します。

  • 標準周波数: ほとんどのRTCでは、非常に安定した周波数である $32.768$ kHz(キロヘルツ)の水晶振動子が使用されます。
  • 計算の単純性: $32768 = 2^{15}$ であり、この周波数は、デジタル回路で15回分周(周波数を半分にすること)することで、ちょうど正確な1秒(1 Hz)を生成できるため、デジタル回路での実装が極めて容易になります。

2. バックアップ電源

RTCが電源オフ状態でも動作を継続するために、CMOSバッテリー(通常はコイン型リチウム電池)または、電力供給が途絶えても短時間データを保持できる大容量コンデンサが使用されます。このバックアップ電源は、RTC ICの低消費電力特性(CMOS技術)のおかげで、数年間にわたって時刻データを保持することを可能にしています。

RTCとOS時刻の違い

コンピュータシステムには、「RTC時刻」と「システム時刻(OS時刻)」という二つの異なる時刻が存在します。

  • RTC時刻(ハードウェアクロック): マザーボード上のRTCチップが保持している時刻です。電源を切っても進み続けます。
  • システム時刻(ソフトウェアクロック): OSが起動した後、RTC時刻を読み取り、カーネル内で維持・管理する時刻です。アプリケーションが参照するのは通常この時刻です。

起動時の処理: OSが起動すると、最初にRTC時刻を読み込み、それをシステム時刻の初期値として設定します。その後は、OSが独自のタイマー割り込みなどを利用してシステム時刻を維持し、必要に応じてNTP(Network Time Protocol)などを使用して外部の正確な時刻サーバーと同期し、システム時刻のずれを修正します。

OSは通常、定期的にシステム時刻をRTCに書き戻すことで、RTC時刻も最新の状態に保ちます。

応用とセキュリティ

RTCは、単に時刻を提供するだけでなく、セキュリティ機能にも関わります。

  • ログとタイムスタンプ: 障害発生時やセキュリティインシデント発生時のログ記録において、正確なRTC時刻に基づくタイムスタンプは、事象の追跡と原因究明に不可欠です。
  • デジタル証明書の検証: SSL/TLS通信などで使用されるデジタル証明書は、有効期限を持っており、RTCによって提供される時刻情報に基づいて、その証明書が現在有効であるかどうかが検証されます。RTCが不正確であると、セキュリティ認証が正しく機能しなくなる可能性があります。

関連用語

CMOS | 今更聞けないIT用語集
タイムスタンプ | 今更聞けないIT用語集
ソフトウェアエンジニアリング

お問い合わせ

システム開発・アプリ開発に関するご相談がございましたら、APPSWINGBYまでお気軽にご連絡ください。

APPSWINGBYの

ソリューション

APPSWINGBYのセキュリティサービスについて、詳しくは以下のメニューからお進みください。

システム開発

既存事業のDXによる新規開発、既存業務システムの引継ぎ・機能追加、表計算ソフトによる管理からの卒業等々、様々なWebシステムの開発を行っています。

iOS/Androidアプリ開発

既存事業のDXによるアプリの新規開発から既存アプリの改修・機能追加まで様々なアプリ開発における様々な課題・問題を解決しています。


リファクタリング

他のベンダーが開発したウェブサービスやアプリの不具合改修やソースコードの最適化、また、クラウド移行によってランニングコストが大幅にあがってしまったシステムのリアーキテクチャなどの行っています。