ما مدى دقة الساعة الداخلية لجهاز كمبيوتر حديث؟

StackOverflow https://stackoverflow.com/questions/2607263

  •  25-09-2019
  •  | 
  •  

سؤال

أعلم أنه قبل 10 سنوات ، تعادل دقة الساعة النموذجية بعيدة عن النظام ، والتي كانت في حدود 10-30 مللي ثانية. على مدار السنوات الماضية ، زادت الدقة في خطوات متعددة. في الوقت الحاضر ، هناك طرق لقياس الفواصل الزمنية في النانو ثانية الفعلية. ومع ذلك ، لا تزال الأطر المعتادة تعود الوقت بدقة حوالي 15 مللي ثانية فقط.

سؤالي هو ، أي خطوات زادت من الدقة ، كيف يمكن قياسها في النانو ثانية ، و لماذا لا نزال نحصل في كثير من الأحيان على دقة أقل من الميكرو ثانية (على سبيل المثال في .NET).

(إخلاء المسؤولية: من الغريب أن هذا لم يتم طرح هذا من قبل ، لذلك أعتقد أنني فاتني هذا السؤال عندما بحثت. من فضلك أغلق وتوجهني إلى السؤال في هذه الحالة موقع SOFU آخر. أفهم الفرق بين الدقة والدقة.)

هل كانت مفيدة؟

المحلول

إنها حقًا ميزة في تاريخ الكمبيوتر. استخدم IBM-PC الأصلي رقاقة تسمى الساعة في الوقت الفعلي والتي تم دعمها للبطارية (هل تتذكر أنك بحاجة إلى تغيير البطاريات على هذه؟) هذه تعمل عندما تم تشغيل الجهاز واحتفظ الوقت. كان تواتر هذه 32.768 كيلو هرتز (2^15 دورة/ثانية) مما جعل من السهل حساب الوقت على نظام 16 بت. ثم تمت كتابة ساعة في الوقت الفعلي هذه إلى CMOS التي كانت متوفرة عبر نظام المقاطعة في أنظمة التشغيل الأقدم.

هناك معيار أحدث من Microsoft و Intel يسمى Timer High Precision Event Timer والذي يحدد سرعة الساعة 10 ميجا هرتزhttp://www.intel.com/hardwaredesign/hpetspec_1.pdfحتى البنى الجديدة للكمبيوتر الشخصي تأخذ هذا ووضعها على وحدة تحكم Northbridge ويمكن لـ HPPE أن تلب بسرعة 100 ميجا هرتز أو أكبر. عند 10 ميجا هرتز ، يجب أن نكون قادرين على الحصول على قرار قدره 100 نانو ثانية ، وعلى 100 ميجا هرتز يجب أن نكون قادرين على الحصول على 10 دقة نانو ثانية.

من المعروف أن أنظمة التشغيل التالية لا تكون قادرة على استخدام HPPT: Windows XP و Windows Server 2003 وإصدارات Windows السابقة ، وإصدارات Linux القديمة

من المعروف أن أنظمة التشغيل التالية قادرة على استخدام HEPT: Windows Vista و Windows 2008 و Windows 7 و X86 من Mac OS X وأنظمة تشغيل Linux باستخدام 2.6 kernel و freeBsD.

باستخدام kernel Linux ، تحتاج إلى برنامج تشغيل جهاز أجهزة "RTC-CMOS" الأحدث بدلاً من برنامج تشغيل "RTC" الأصلي

كل ما قال كيف يمكننا الوصول إلى هذا القرار الإضافي؟ يمكنني قطع ولصق من مقالات Stackoverflow السابقة ، ولكن ليس - فقط ابحث عن HPPE وستجد الإجابات حول كيفية عمل أجهزة ضبط الوقت الدقيقة

نصائح أخرى

قرأت حرفيا منشور مدونة على MSDN حول هذا اليوم ، اقرأها هنا, ، يغطي الموضوع بشكل جيد. إنه يركز على وقت C#ولكنه قابل للتطبيق عالميًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top