Bilgisayar sistemlerinde zaman nasıl ölçülür?


13

Şaşkın olduğum bir şey şudur: Bir bilgisayar zamanı tam olarak nasıl düzenler ve söyler? Örneğin: bunu yapan bir program yazacak olsaydım:

2 + 2 yapın ve 5 saniye bekleyin

İşlemci "5 saniye" nin ne olduğunu nasıl bilebilir? Bilgisayar sistemlerinde zaman nasıl ölçülür? Bu tek amaç için özel bir çip var mı? O nasıl çalışır?

Yanıtlarınız için teşekkürler; Bilgisayar bilimi ile gerçekten ilgileniyorum ve bana = D.


2
İşte bilgisayarların nasıl yaptığını okumak ve anlamak için kolay bir açıklama: eecis.udel.edu/~ntp/ntpfaq/NTP-s-sw-clocks.htm İşte bir bilgisayar saatinin doğruluğu hakkında isteğe bağlı bir açıklama: ntp.org/ ntpfaq / NTP-s-sw-clocks-quality.htm
Synetech

Yanıtlar:


13

Joel'in yanıtı doğru olsa da, gerçekte, biraz daha karmaşık.

Dikkate alınması gereken ilk şey (ve burada sadece PC'lere odaklanacağım), bir bilgisayarda birkaç saat olması ve her birinin kendi kullanımı vardır.

En popüler ve anlaşılması en kolay gerçek zamanlı saattir . Temelde içinde basit bir saati olan bir çiptir. Genellikle standart saatler ile aynı tipte kuvars kristalleri vardır ve genellikle bilgisayar kapatıldığında zaman tutmak için bir pilleri vardır. Onlarla ilgili sorun, Syntech'in bağlantılarından da görülebileceği gibi, çok doğru olmamalarıdır. 32.768 kHz kristal, işlemcileri megahertz ve gigahertz aralığında olan modern sistemlerde herhangi bir zaman işleyişi için çok yavaş.

İşte bir sonraki noktaya geliyoruz: Kesin zaman ölçümleri ve geri sayımlar için kullanılan dahili saatler var.

Basit bir saat programlanabilir aralık zamanlayıcısıdır . Yaptığı şey belli bir süre beklemek ve daha sonra CPU'ya bir kesinti göndermek. CPU kesmeyi aldığında, yaptığı her şeyi durduracak ve kesmeyi oluşturan göreve eğilimli olacaktır. Bu şekilde CPU'nun bir şey yapılıp yapılmadığını sürekli kontrol etmesi gerekmez. Bunun yerine diğer işlere odaklanabilir ve PIT'nin iş bittiğinde bunu söyletmesini sağlayabilir. PIT, 1.193182 MHz saat kaynağı kullanır ve bu nedenle basit RTC'den çok daha hassastır.

Bir sonraki ilginç ölçüm sistemi zaman damgası sayacıdır . Bunun arkasındaki fikir, çeşitli sistem zamanlayıcılarını kullanan işlemcinin saat kaynağını kullanarak çok daha kesin zaman ölçümleri alabilmemizdir. PIT'in 1.193182 MHz saati var, ancak en eski x86 işlemcilerin bile çok daha yüksek bir saati vardı. Böylece, ayarlanan her işlemci döngüsünden sonra güncellenen bir zamanlayıcıya sahip olacağız. O zaman işlemcilerin çok istikrarlı saatleri vardı ve TSC kullanımı hassas zaman ölçümleri yapmak için güzel bir yoldu. Ancak TSC kullanımı bir takım problemler getirir. Farklı işlemciler farklı kene hızlarına sahiptir ve farklı hızlarda zamanı ölçer. Daha sonra, teknoloji geliştikçe frekanslarını değiştirebilecek modern işlemciler elde ettik. Bu büyük bir sorundur, CPU saatinin artık sabit olmadığını ve zamanı ölçmek için kullanamadığımızı söylüyor.

İşte bu yüzden yüksek hassasiyetli olay zamanlayıcılarımız var. HPET, 10 MHz saat kullanır ve bu nedenle PIT'den daha hassastır. Öte yandan, saat kaynağı CPU saatine bağlı değildir ve CPU saati değişse bile zamanı ölçmek için kullanılabilir. Geri sayım olarak çalışan PIT'den farklı olarak, HPET bilgisayarın açılmasından bu yana geçen zamanı ölçer ve bir eylem gerektiğinde zaman zaman karşılaştırır.

Bahsetmemiz gerektiğine inandığım bilgisayarlar için başka zaman kaynakları da var. Bazı bilgisayarlar atomik saatlere bağlanır ve zamanı tam olarak ölçmek için bunları kullanabilir.

Daha az pahalı ve daha yaygın bir seçenek, bilgisayarın dahili zaman kaynaklarını kalibre etmek için harici zaman kaynağını kullanmaktır. Örneğin GPS alıcıları yüksek hassasiyetli zaman ölçümleri sağlamak için kullanılabilir, çünkü GPS uyduları dahili atom saatlerine sahiptir.

GPS alıcısından daha az yaygın olan bir başka seçenek, örneğin DCF77 gibi radyo istasyonlarını tutarak zaman bilgisinin kodunu çözen özel bir radyo alıcısı kullanmaktır. Bu tür zaman istasyonları kendi yüksek hassasiyetli zaman kaynaklarına sahiptir ve çıkışlarını radyo üzerinden iletir. Radyo dalgaları ışık hızında ilerlediğinden, gecikme genellikle önemsizdir.


1
Mükemmel cevap. GPS uydularının kendi atomik saatleri olduğunu bilmiyordum.
Anlaşılan

2
Çok detaylı cevap! Hepsini yazmak için zaman ayırdığınız için teşekkürler!
DRK3

1
Özellikle ilginç olan, saatlerin CPU saat hızına nasıl bağlı olduğu hakkında biraz, ancak CPU saat hızlarının bugün nasıl değişken olduğunu görmek, bu bir sorun haline geliyor. Tekrar teşekkürler.
DRK3

@ DRK3 İşte atomik saatler hakkında harika bir video: wimp.com/atomicclock
Griffin

1
Bu cevap "doğruluk", "kesinlik" ve "çözünürlük" kavramlarını biraz karıştırmaktadır. Enstrümantasyon dilinde "hassasiyet", bir ölçümün tekrarlanabilirliğini ifade eder. Bir cihaz, doğru şekilde kalibre edilmemişse, doğru olmadan çok hassas olabilir. (Ancak, kesin değilse doğru olamaz.) Ve sadece HPET saniyede 10 milyon kez kenetlediğinden - dolayısıyla daha yüksek çözünürlüğe sahip - her milisaniyede bir kenara iten bir şeyden daha kesin olduğunu garanti etmez.
Jamie Hanrahan

11

IIRC, içinden bir elektrik akımı geçtiğinde belirli bir frekansta titreşen küçük bir kristal vardır. Her hareket sayılır ve belirli bir sayısı bir saat döngüsünü tetikler.


3
Hala kuvars olduğuna inanıyorum . (Hatta anakart üzerinde bir kuvars kristali içeren “14MHz” veya “14.3MHz” damgalı küçük, metal, yuvarlak köşeli dikdörtgeni (veya başka bir frekansı da görebilirsiniz.)
Synetech

Cevap için teşekkürler! Bir kristalin (kuvars) kullanıldığı hakkında hiçbir fikrim yoktu.
DRK3

1
Her zaman bir kuvars kristali kullanmazlar. Bazı çok ucuz mikrodenetleyiciler bunun yerine "seramik rezonatör" kullanırlar. Emtia anakartlar üzerindeki kuvars kristal tahrikli zamanlama bile o kadar kesin değildir (yani zamanlaması değişebilir). Genellikle tipik bir dijital saatten daha iyi değildirler.
Jamie Hanrahan

Çok basit bir cevap! Kuvars saatlerinde de böyle oluyor mu?
Nicolas Barbulesco

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.