どのように精密な内部クロックの現代的なのでしょうか?
-
25-09-2019 - |
質問
私は10年前であれば、時計の精度は等しいと推測システムチップ、oleドラッグドロップ、は10-30ms.過去年では、精度が増加し複数のステップ.現在は測定方法の時間間隔で実際のとが言えます。しかし、通常の枠組みが戻り時間と精度の約15ms.
私の質問は、段階かった精度向上のどのように測定することを可能にします(ナノ秒単位)、 なぜまだまだ多くの超精密マイクロ秒 (インスタンスです。して順調なものではなかった。
(免責事項:で打って奇はないという願前のなかだったので買ってきたこの問いに私を検索します。さあ、もうこの場合、感謝。この所属になってはならないその他の蒼風サイトです。I違いをわかりやすくする精密なものとなります。)
解決
それは本当にPCの歴史の特徴です。 元IBM-PCはバッテリーがバックアップされたリアルタイムクロックと呼ばれるチップを(あなたがこれらの電池を交換する必要が覚えていますか?)マシンがパワーオフと時刻を保持したときに、これらの操作に使用しました。これらの周波数は、16ビットシステムでの計算時間に簡単にそれを作った32.768kHzの(2 ^ 15サイクル/秒)でした。 このリアルタイムクロックは、古いオペレーティングシステムの割り込みシステムを介して利用可能であったCMOSに書かれていた。
MicrosoftとIntelは10MHzのクロック速度を指定する高精度イベントタイマーと呼ばれてから新しい標準が出ています http://www.intel.com/hardwaredesign/hpetspec_1.pdfする でも新しいPCアーキテクチャは、これを取るとノースブリッジコントローラの上に置くとHPETは、100MHzの時に、あるいはそれ以上TUNことができます。 10MHzで、我々は100ナノ秒の分解能を得ることができる必要がありますし、100MHZで、我々は10ナノ秒の分解能を得ることができる必要があります。
Windows XPでは、Windows Server 2003、およびそれ以前のバージョンのWindows、古いLinuxバージョンは、以下のオペレーティングシステムは、HPETを使用することはできないことが知られています
次のオペレーティングシステムは、HPETを使用することができることが知られています。マックOS XのWindows Vistaでは、Windows 2008、Windows 7の、x86ベースのバージョン、2.6カーネルとFreeBSDを使用してLinuxオペレーティングシステムを
Linuxカーネルを使用すると、新しい「RTC-CMOS」ハードウェア・クロック・デバイスドライバではなく、オリジナルの「RTC」ドライバを必要とする
私たちは、この余分な解像度へのアクセス方法とすべての? 私はカットして、以前のstackoverflowの記事から貼り付けたができなかった - ただ、HPETを検索し、あなたは細かいタイマーが働いて取得する方法についての答えを見つけるでしょう。
他のヒント
私は、文字通りの読みブログにMSDNこの現在 読みはこちら, れているのですね。ではC#'s DateTimeがで普遍的に適用する。