Bagaimana waktu diukur dalam sistem komputer?


13

Sesuatu yang membuat saya bingung adalah ini: bagaimana tepatnya komputer mengatur dan memberi tahu waktu? Sebagai contoh: jika saya menulis sebuah program yang melakukan ini:

Lakukan 2 + 2 lalu tunggu 5 detik

Bagaimana prosesor mengetahui apa itu "5 detik"? Bagaimana waktu diukur dalam sistem komputer? Apakah ada chip khusus untuk tujuan itu? Bagaimana cara kerjanya?

Terima kasih atas balasan apa pun; Saya benar-benar tertarik pada ilmu komputer, dan akan sangat senang dengan bantuan yang Anda bisa berikan kepada saya = D.


2
Berikut ini adalah penjelasan yang mudah dibaca dan dipahami tentang bagaimana komputer melakukannya: eecis.udel.edu/~ntp/ntpfaq/NTP-s-sw-clocks.htm Berikut penjelasan opsional ketepatan jam komputer: ntp.org/ ntpfaq / NTP-s-sw-clocks-quality.htm
Synetech

Jawaban:


13

Meskipun jawaban Joel benar, pada kenyataannya, itu sedikit lebih rumit.

Hal pertama yang perlu dipertimbangkan (dan saya akan fokus hanya pada PC di sini) adalah bahwa ada beberapa jam di komputer dan masing-masing memiliki penggunaannya sendiri.

Paling populer dan termudah untuk dipahami adalah jam waktu nyata . Ini pada dasarnya adalah sebuah chip yang memiliki jam sederhana di dalamnya. Mereka biasanya memiliki jenis kristal kuarsa yang sama dengan jam standar dan biasanya memiliki baterai untuk menjaga waktu ketika komputer dimatikan. Masalahnya adalah mereka tidak terlalu akurat, seperti yang bisa dilihat dari tautan Syntech. Kristal 32,768 kHz terlalu lambat untuk ketepatan waktu pada sistem modern yang prosesornya berada dalam jangkauan megahertz dan gigahertz.

Di sini kita sampai pada poin berikutnya: Ada jam internal yang digunakan untuk pengukuran waktu yang tepat dan hitungan mundur.

Jam sederhana adalah penghitung waktu interval yang dapat diprogram . Apa yang dilakukannya adalah menunggu sejumlah waktu tertentu dan kemudian mengirim interupsi ke CPU. Ketika CPU menerima interupsi, itu akan menghentikan apa pun yang dilakukannya dan cenderung tugas yang menghasilkan interupsi. Dengan cara ini CPU tidak harus terus-menerus memeriksa apakah ada sesuatu yang dilakukan. Alih-alih itu bisa fokus pada pekerjaan lain dan minta PIT mengatakannya saat pekerjaan selesai. PIT menggunakan sumber clock 1,193182 MHz dan karenanya jauh lebih tepat daripada RTC sederhana.

Sistem pengukuran menarik berikutnya adalah penghitung cap waktu . Gagasan di baliknya adalah bahwa kita bisa mendapatkan pengukuran waktu yang jauh lebih tepat menggunakan sumber jam prosesor yang menggunakan berbagai pengatur waktu sistem. PIT memiliki clock 1,193182 MHz, tetapi bahkan prosesor x86 paling awal memiliki clock yang jauh lebih tinggi. Jadi kita akan memiliki timer yang diperbarui setelah setiap jumlah siklus prosesor. Pada saat itu prosesor memiliki jam yang sangat stabil dan penggunaan TSC adalah cara yang bagus untuk membuat pengukuran waktu yang tepat. Namun penggunaan TSC membawa sejumlah masalah. Prosesor yang berbeda memiliki laju centang yang berbeda dan mengukur waktu pada kecepatan yang berbeda. Kemudian, seiring dengan kemajuan teknologi, kami mendapatkan prosesor modern yang dapat mengubah frekuensi mereka. Itu adalah masalah utama, karena jam CPU tidak konstan lagi dan kami tidak dapat menggunakannya untuk mengukur waktu.

Dan itu sebabnya kami memiliki pengatur waktu acara presisi tinggi sekarang. HPET menggunakan clock 10 MHz dan karenanya lebih tepat daripada PIT. Di sisi lain, sumber jamnya tidak tergantung pada jam CPU dan dapat digunakan untuk mengukur waktu bahkan jika jam CPU berubah. Tidak seperti PIT, yang berfungsi sebagai hitungan mundur, HPET mengukur waktu sejak komputer dihidupkan dan membandingkan waktu saat ini dengan waktu saat diperlukan tindakan.

Ada sumber waktu lain yang tersedia untuk komputer yang saya percaya perlu disebutkan. Beberapa komputer terhubung ke jam atom dan dapat menggunakannya untuk mengukur waktu secara tepat.

Opsi yang lebih murah dan jauh lebih umum adalah menggunakan sumber waktu eksternal untuk mengkalibrasi sumber waktu internal komputer. Misalnya penerima GPS dapat digunakan untuk memberikan pengukuran waktu presisi tinggi, karena satelit GPS memiliki jam atom internal.

Pilihan lain yang kurang umum daripada penerima GPS adalah menggunakan penerima radio khusus yang menerjemahkan informasi waktu dari stasiun radio yang menjaga waktu seperti DCF77 misalnya. Stasiun waktu tersebut memiliki sumber waktu presisi tinggi dan mengirimkan outputnya melalui radio. Karena gelombang radio bergerak dengan kecepatan cahaya, penundaannya sering tidak signifikan.


1
Jawaban yang bagus Saya tidak tahu satelit GPS memiliki jam atom mereka sendiri. Ternyata, masing-masing dari 24 memiliki 4 jam atom masing-masing sesuai dengan artikel ini: science.nasa.gov/science-news/science-at-nasa/2004/…
deltaray

2
Jawaban yang sangat rinci! Terima kasih telah meluangkan waktu untuk menulis itu semua!
DRK3

1
Yang sangat menarik adalah sedikit tentang bagaimana jam bergantung pada kecepatan jam CPU, tetapi melihat bagaimana kecepatan jam CPU adalah variabel hari ini, itu menjadi masalah. Terima kasih lagi.
DRK3

@ DRK3 Inilah video hebat tentang jam atom: wimp.com/atomicclock
Griffin

1
Jawaban ini agak membingungkan pengertian "akurasi", "presisi", dan "resolusi". Dalam bahasa instrumentasi, "presisi" mengacu pada pengulangan pengukuran. Suatu instrumen bisa sangat tepat tanpa akurat, jika belum dikalibrasi dengan benar. (Namun, tidak bisa akurat jika tidak tepat.) Dan hanya karena HPET berdetak 10 juta kali per detik - karenanya memiliki resolusi lebih tinggi - tidak menjamin bahwa itu lebih tepat daripada sesuatu yang berdetak setiap milidetik atau lebih.
Jamie Hanrahan

11

IIRC, ada kristal kecil yang bergetar pada frekuensi tertentu ketika arus listrik dilewatinya. Setiap gerakan dihitung dan jumlah tertentu dari mereka memicu siklus jam.


3
Saya percaya bahwa itu masih kuarsa. (Anda bahkan dapat melihat sedikit, logam, persegi panjang bulat dicap "14MHz" atau "14,3MHz" —atau beberapa frekuensi lain — mengandung kristal kuarsa pada motherboard.)
Synetech

Terima kasih atas jawabannya! Saya tidak tahu bahwa kristal (kuarsa) digunakan.
DRK3

1
Mereka tidak selalu menggunakan kristal kuarsa. Beberapa mikrokontroler yang sangat murah menggunakan "resonator keramik" sebagai gantinya. Bahkan pengaturan waktu yang digerakkan oleh kristal kuarsa pada motherboard komoditas tidak terlalu akurat (yaitu, pengaturan waktunya dapat bervariasi). Mereka umumnya tidak lebih baik dari jam tangan digital biasa.
Jamie Hanrahan

Jawaban yang sangat sederhana! Apakah ini yang terjadi pada jam tangan kuarsa?
Nicolas Barbulesco

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.