Windowsのマルチメディアタイマー(timeGetTime APIで取得できる値)は、何のクロック/タイマーを元に生成されているのでしょうか?

# サウンドカード上のクロックかなとも思ったのですが、サウンドカードが搭載されてないPCでも取得できるので違いますね。

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

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:nitscape No.1

回答回数526ベストアンサー獲得回数0

ポイント40pt

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

80mkII���F�� �f����

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


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

id:fslasht

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

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

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

2005/10/19 09:58:13
id:frankyang No.2

回答回数6ベストアンサー獲得回数0

ポイント40pt

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

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

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

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

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

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

id:fslasht

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

大変参考になりました。

2005/10/19 10:10:28

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません