Timer and Timers
一般的なプロセッサにタイマは精々1つか2つしか乗っていない。アプリケーションではソフトウェアタイマを使ってね、という話。ハードウェアタイマをベースとして、その整数倍間隔でソフトウェアタイマの割込みが可能である。用意する場所は(もしあれば)カーネルなどの、タスク間で共有される権限領域で、だ。論理回路を組んだ経験があれば常識的な事ではあるが、そうでなければ謎の知恵だと感じる人も居るかもしれない。
HPET Specification
ちなみに最近のPCはx86アーキテクチャで動いている。こいつ(がintelのそれであれば)にはTSC(Time Stamp Counter)というレジスタがあり、電源投入後からCPUに提供されたクロック数をカウントしている。だから時間は(クロック間隔程度には)正確に測ることが出来る。そしてこの値に、タイマ間隔をクロック周波数で割ったクロック数を足し、HPET(High Precision Event Timer)のトリガにセットする。HPETは64-bitトリガレジスタとコンパレータから成り、クロックジェネレータの信号を受けてアップカウントされるレジスタを一定時間(10MHz以上)ごとにトリガと比較して、設定されたクロック数を過ぎると割込み信号を発生する。もっともこの機構が利用出来るOSは、MacOSXが10.4以降、FreeBSDが6.3以降、それにLinuxで2.6以降、WindowsはVista以降なのだが。あとHaiku OSは対応中だ。
それでも実時間応答はまったく別次元の問題だ。最近の自動車は大抵がコンピュータ制御になっていると思われるが、当然ながらここでは実時間応用が要求される。聞いた話だと、ドイツの某自動車メーカはthreaded-codeのようにタスクを分け、各タスクごとの消費時間を考慮してスケジューリングするのだとか。NASAの遠隔制御系も似たアプローチで設計されるという話だ。なるほどそれは確実な手段だと言えるが、あんまりインテリジェンスな方法ではない。
back numbers
tags
- alcohol (2)
- art (3)
- c++ (1)
- computer (32)
- economy (7)
- essay (9)
- finance (4)
- governance (9)
- ideology (5)
- mathematics (2)
- news (25)
- technical (29)
- technical computer (1)
Profile
- koshimoto, hiroo
- Taito, Tokyo, Japan
- 明けども明けども次の埒
hiro.kosh@gmail.com
0 件のコメント:
コメントを投稿