本サイトでは、アフィリエイト広告およびGoogleアドセンスを利用しています。

タイマーカウンタ その2

前回、「続く」とした件の続きです。
TSCはCPUクロックに依存して、1クロック1インクリメントで増えていくタイマカウンタです。
しかし、近年CPUは可変クロックで動作するし、使っていないコアはディープスリープ状態に陥るし、とTSCのインクリメントは信用できるのか?という話が割と上がってきます。

これについて調べてみると、対処がそれなりにあるようです。

1つは、Constant-TSC というもの、もう1つは Invariant-TSC というものです。これらはTSCの性質を表しています。前者は可変クロックに対応するもので、後者はディープスリープ状態に対応するためのものです。

Constant TSCはPentium4 以降で搭載されているようです。
Invariant TSCはIntel Core i7 (Nehalem)世代で搭載されているようです。

Constant TSCは可変クロックの状態によらず、一定にカウンタ増加だそうです。
Invariant TSCはコアのクロックが停止しても、普遍にカウンタ増加だそうです。

これらの性質を有して、Windows XP SP2以降であれば、TSCを使用してもずれて動作に支障をきたす、ということはないのかもしれません。

プログラミング
すらりんをフォローする
すらりん日記

コメント

タイトルとURLをコピーしました