人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Windowsのマルチメディアタイマー(timeGetTime APIで取得できる値)は、何のクロック/タイマーを元に生成されているのでしょうか?
# サウンドカード上のクロックかなとも思ったのですが、サウンドカードが搭載されてないPCでも取得できるので違いますね。

PC/AT互換機のDOS上で同様のタイマー値を取得したいので、なにかヒントがあったらご教示お願いします。
(生成しているLSI、または別のクロックをもとにソフトウェアで生成されているといった情報)

●質問者: fslasht
●カテゴリ:コンピュータ
✍キーワード:API DoS LSI pc PC/AT互換機
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● nitscape
●40ポイント

http://www.kcg.ac.jp/acm/a5098.html

EYE MACHINE

http://www5f.biglobe.ne.jp/~apaslothy/bbslog.html

80mkII???F?? ?f????

http://www.yoshibaworks.com/ayacy/inasoft/talk/t200404.html

管理人のひとこと2004年4月

8253互換のICだと思います。8253はプログラマブルタイマーICのルーツになるものです。今ではおそらく8253を載せているPCはないと思いますが、命令的に互換のICを載せていると思います。


URLは8253について記述のあったものです

◎質問者からの返答

回答ありがとうございます。

三つ目のURLの「2004/ 4/30 10:20」に、『高分解能パフォーマンスカウンタは、一般にはCPU以外のデバイスが持っているタイマカウンタにより実現されています。AT互換機なんかでは、「プログラマブルタイマーIC」(8253と呼ばれる)により実現されています。』という言及がありますね。

すっきりしましたありがとうございます。


2 ● frankyang
●40ポイント

http://www.cs.bu.edu/groups/realtime/SRMS-NT/event_scheduling.ht...

New Page 1

windowsのタイマー仕組みは二つがあると思います。?DOSと共通仕組み?新規の内部正確バージョン仕組み

?のほうはマルチメディアのtimeGetTimeとパフォーマンスのQueryPerformanceCounterなどに使われています。

また、ハードによりますが、インテルベースのシステムであれば8253/8254に交換性を持っていますから、14.318MHzが基本で0.838 microsecondsの単位になります。インテルのCK410ガイドに参照すれば、ハードタイマーの仕組みがわかると思いますが。

マイクロソフトのカーネル実装はベンダーからの資料が少ないが、実装方法は何らの割込み処理で内部カウントを持っているやり方と思います。

一部ハードBIOSは32Mベースのチップを使っている情報がありますが、交換性の情報は確実ではないので、やはり14.318MHzに統一されていると思います。

ご参考になればと思います。

◎質問者からの返答

詳しい説明ありがとうございます。

大変参考になりました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ