2012-11-03 21 views
3

我們使用定時器在我們的代碼,我只是好奇真正落實它,有沒有在是否有CPU定時器

的CPU邏輯電路或CPU管芯外的計時器,例如,外部時鐘或類似的東西。

如果沒有,那麼地獄是計時器?請幫助我,不需要任何詳細的解釋

如何製作一個硬件定時器,只需專注於在我們的硬件板上定位定時器。

在此先感謝。

+0

CPU中有一個時鐘。當您閱讀有關機器的GHz規格時,它表示運行指令的「時鐘速度」。 – duffymo

+0

[x86處理器中的時間源]的可能重複(http://stackoverflow.com/questions/12229644/time-sources-in-x86-processors) –

回答

4

計算機硬件中有許多不同類型的時鐘和計時器。所有的基本計算機都會有一個像數字手錶一樣的晶體,用於同步CPU並形成以Hz爲單位的「時鐘速度」。

大多數CPU都有一些內置的定時器,它們使用時鐘速度來計算兩點之間的相對時間。這允許系統程序員設置一個計時器,該計時器將在晶體的特定時鐘週期內「關閉」。定時器通過提高中斷線(程序員將一段代碼附加到該中斷線)來提醒CPU定義的時間已過。

操作系統和編程語言通常會抽象中斷計時器,因此您不必直接使用它們。

像PC這樣的大多數高級計算機都有一個實時時鐘,它可以存儲實際的日曆時間和日期,但不常用於計時操作。

在回答你的問題:

在硬件板定位的計時器,我們有

這是非常依賴於你的硬件和定時器您感興趣的你不會能夠在物理上看到大多數定時器或時鐘,但晶體通常很容易找到並且看起來像一個小金屬膠囊 - 請參見http://www.electronicrepairguide.com/how-to-test-crystal.html

3

在x86機器上有很多定時器。最着名的是TSC(時間戳計數器)。那個在CPU裏面。然後在主板上有PIT(可編程間隔定時器)作爲芯片,就像Intel 8253和8254一樣。我不確定它們是否仍在使用。另一個定時器是HPET(高精度事件定時器)。它不在CPU內部,是三者中最新的。

當然還有電池供電的實時時鐘。不知道這是否算作計時器。可能不會。

使用哪個定時器由操作系統決定。在某些系統上使用TSC,而在其他HPET上使用。 TSC通常是首選,因爲它位於CPU內部,因此訪問速度非常快。您無法直接從C代碼訪問特定的計時器,無需直接與硬件通信的彙編指令。

+0

非常感謝 – Tracy