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.
Jawaban:
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.
sumber
IIRC, ada kristal kecil yang bergetar pada frekuensi tertentu ketika arus listrik dilewatinya. Setiap gerakan dihitung dan jumlah tertentu dari mereka memicu siklus jam.
sumber
HPET menggunakan setidaknya 10 jam Mhz. Itu bisa lebih tepat dari 10 Mhz tetapi tidak pernah kurang.
http://en.wikipedia.org/wiki/High_Precision_Event_Timer#Comparison_to_predecessors
sumber