タイマーリソース情報を表示するメッセージ

OSSメッセージペディア 2008年01月28日 15時00分

  • このエントリーをはてなブックマークに追加

time.c: Using time_type based timekeeping.

対処

通知情報のため、対処の必要はなし。

説明

タイマーリソース情報を表示する。

タイマーリソースはユーザ空間からgettimeofdayシステムコールだけでなくカーネルのタイマ処理等、時間管理全てのリソースに使用される。

Linuxは起動時にRTC(Real Time Clock)から現在時刻を読み取り、起動後の時間は外部のタイマーリソースからの割り込みによって時間を測る。

Linux 2.6では、以下のタイマーリソースに対応する:

(1) PIT(Programmable Interval Timer)
プロセッサに内蔵されない外部タイマー回路である。クロック信号はチップ内部で発生するため、外部信号に依存しない。タイマー割り込み周期はプログラムで柔軟に変更可能。通常は8254チップが使用される。発生した割り込みは特定なプロセッサに配分されることはない。

(2) Local APIC Timer
各プロセッサ内部APICに内蔵されるタイマーで、該当プロセッサに対して割り込みを発生する。32ビットのカウンタを持つため、PITより長い割り込み周期を発生できるが、プログラムからカウンタの値をバスクロック信号の1, 2, 4, 8, 16, 32, 64, 128毎に対して1を減らすことしか設定できない。

(3) HPET(High Precision Event Timer)
HPETはIA-PCのために考案された新しいタイマーの仕組である。仕様上は従来のPIT, RTCを使用しつつ、これらの代わりにもなりえる構成となり、プロセッサに内蔵されない外部タイマー回路で、仕様上最大256個のタイマーブロックを構成可能。設定は各タイマーブロックの(Memory-Mapped I/O)レジスタに対して行なう。各タイマーブロックはIDを持ち、メモリアドレス空間を1Kバイト消費する。

(4) PM-Timer(ACPI Power Management Timer)
ACPI対応のマザーボードであれば、このタイマーが提供される。固定周波数約3.58MHzのクロック信号を発生し、クロック周期毎にカウンタ値が1減らされる。I/Oポートに対してカウンタ値をアクセスできる。

(5) TSC(Time Stamp Counter)
プロセッサに内蔵された64ビットカウンタである。プロセッサの入力クロック単位でカウントアップする。RDTSCコマンドで現在のカウント値を取得する。

カーネル起動直後、RTCの時間が読み込まれ、上記のタイマーリソースが1つ選択される。RTCは現在の時間を計測する独立なタイマー回路である。タイマーチップの電源はバッテリによって提供されるため、システムの電源が落ちていても時刻の計測は続けられる。

  • このエントリーをはてなブックマークに追加
関連キーワード
OS

SpecialPR