ในขณะที่คำตอบของโจเอลนั้นถูกต้อง แต่ในความเป็นจริงมันซับซ้อนกว่าเล็กน้อย
สิ่งแรกที่ต้องคำนึงถึง (และฉันจะมุ่งเน้นเฉพาะพีซีที่นี่) คือมีหลายนาฬิกาในคอมพิวเตอร์และแต่ละอันมีการใช้งานของตัวเอง
ที่นิยมมากที่สุดและง่ายที่สุดที่จะเข้าใจเป็นนาฬิกาแบบ real-time มันเป็นพื้นชิปที่มีนาฬิกาง่ายๆภายใน พวกเขามักจะมีผลึกควอทซ์ชนิดเดียวกับนาฬิกามาตรฐานและมักจะมีแบตเตอรี่สำหรับการรักษาเวลาเมื่อคอมพิวเตอร์ถูกปิด ปัญหากับพวกเขาคือพวกเขาไม่ถูกต้องมากเท่าที่จะเห็นได้จากลิงก์ของซินเทค คริสตัล 32.768 kHz ช้าเกินไปสำหรับการจับเวลาในระบบที่ทันสมัยซึ่งโปรเซสเซอร์อยู่ในช่วงเมกะเฮิรตซ์และกิกะเฮิร์ตซ์
ที่นี่เรามาถึงจุดถัดไป: มีนาฬิกาภายในที่ใช้สำหรับการวัดเวลาและการนับถอยหลังที่แม่นยำ
นาฬิกาอย่างง่ายคือตัวจับเวลาช่วงเวลาที่ตั้งโปรแกรมได้ สิ่งที่ต้องทำคือรอระยะเวลาหนึ่งจากนั้นส่งการขัดจังหวะไปยัง CPU เมื่อซีพียูได้รับอินเทอร์รัปต์มันจะหยุดสิ่งที่มันกำลังทำอยู่ วิธีนี้ซีพียูไม่จำเป็นต้องตรวจสอบอย่างสม่ำเสมอว่ามีบางอย่างเกิดขึ้นหรือไม่ แต่มันสามารถมุ่งเน้นไปที่งานอื่น ๆ และให้ PIT บอกได้เมื่องานเสร็จ PIT ใช้แหล่งสัญญาณนาฬิกา 1.193182 MHz และแม่นยำกว่า RTC ธรรมดามาก
ระบบการวัดที่น่าสนใจถัดไปคือตัวนับเวลา แนวคิดเบื้องหลังคือเราสามารถวัดเวลาได้แม่นยำยิ่งขึ้นโดยใช้แหล่งสัญญาณนาฬิกาของโปรเซสเซอร์ซึ่งใช้ตัวจับเวลาระบบต่างๆ PIT มีนาฬิกา 1.193182 MHz แต่แม้แต่โปรเซสเซอร์ x86 รุ่นแรกก็มีนาฬิกาที่สูงกว่ามาก ดังนั้นเราจะมีตัวจับเวลาซึ่งอัพเดตหลังจากรอบการประมวลผลทุกชุด ในเวลานั้นโปรเซสเซอร์มีนาฬิกาที่เสถียรมากและการใช้ TSC เป็นวิธีที่ดีในการวัดเวลาอย่างแม่นยำ การใช้ TSC ทำให้เกิดปัญหามากมาย โปรเซสเซอร์ที่แตกต่างกันมีอัตราการทำเครื่องหมายที่แตกต่างกันและวัดเวลาด้วยความเร็วที่แตกต่างกัน ต่อมาเมื่อเทคโนโลยีขั้นสูงได้รับโปรเซสเซอร์ที่ทันสมัยซึ่งสามารถเปลี่ยนความถี่ได้ นั่นเป็นปัญหาสำคัญที่ทำให้นาฬิกาซีพียูไม่คงที่อีกต่อไปและเราไม่สามารถใช้เพื่อวัดเวลาได้
และนั่นคือสาเหตุที่เรามีตัวนับเหตุการณ์ที่มีความแม่นยำสูงในขณะนี้ HPET ใช้นาฬิกา 10 MHz และแม่นยำกว่า PIT แหล่งสัญญาณนาฬิกานั้นไม่ได้ขึ้นอยู่กับนาฬิกาของ CPU และสามารถใช้ในการวัดเวลาแม้ว่านาฬิกาของ CPU จะเปลี่ยนไปก็ตาม ซึ่งแตกต่างจาก PIT ซึ่งทำหน้าที่นับถอยหลัง HPET วัดเวลาตั้งแต่เปิดคอมพิวเตอร์และเปรียบเทียบเวลาปัจจุบันเมื่อจำเป็นต้องมีการดำเนินการ
มีแหล่งเวลาอื่น ๆ สำหรับคอมพิวเตอร์ที่ฉันเชื่อว่าต้องพูดถึง คอมพิวเตอร์บางเครื่องเชื่อมต่อกับนาฬิกาอะตอมและสามารถใช้เพื่อวัดเวลาได้อย่างแม่นยำ
ตัวเลือกที่มีราคาไม่แพงและที่พบได้บ่อยคือการใช้แหล่งเวลาภายนอกเพื่อปรับเทียบแหล่งเวลาภายในของคอมพิวเตอร์ ตัวอย่างเช่นเครื่องรับสัญญาณ GPS สามารถใช้ในการวัดเวลาที่มีความแม่นยำสูงเนื่องจากดาวเทียม GPS มีนาฬิกาอะตอมภายใน
ตัวเลือกอื่นที่พบได้น้อยกว่าเครื่องรับ GPS ก็คือการใช้เครื่องรับวิทยุแบบพิเศษซึ่งจะถอดรหัสข้อมูลเวลาจากการเก็บรักษาสถานีวิทยุเช่น DCF77 สถานีเวลาดังกล่าวมีแหล่งเวลาที่มีความแม่นยำสูงและส่งสัญญาณออกทางวิทยุ เนื่องจากคลื่นวิทยุเคลื่อนที่ด้วยความเร็วแสงความล่าช้าจึงไม่มีนัยสำคัญ