歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux下的三種時鐘:RTC/PIT/TSC

Linux下的三種時鐘:RTC/PIT/TSC

日期:2017/2/28 16:24:39   编辑:Linux教程

Linux中有3種timer:

1、Real Time Clock(RTC)

2、Programmalbe Interval Timer(PIT)

3、Time Stamp Counter.(TSC)

其中RTC是位於CMOS中的,其頻率范圍是2HZ--8192HZ.

PIT主要由8254時鐘芯片實現的

TSC的主體是位於CPU裡面的一個64位的TSC寄存器。每個CPU時鐘周期其值加一。

RTC是PC主板上的晶振及相關電路組成的時鐘電路的生成脈沖,RTC經過8254電路的頻產生一個頻率較低一點的OS(系統)時鐘TSC,系統時鐘每一個cpu周期加一,每次系統時鐘在系統初起時通過RTC初始化。8254本身工作也需要有自己的驅動時鐘(PIT),可以參考一些單片機方面的書籍。

按上面的意思,那就是RTC的精確度比TSC更高了。但是www.linuxidc.com查資料發現8254的震蕩頻率最高是4.194304MHz,也就是說TSC的頻率比這個頻率更少,而現在的CPU的頻率已經超過了GHz,如果每個cpu周期TSC時鐘加一,那麼TSC的頻率豈不可以達到GHz級,這樣豈不矛盾了嗎?

另外一些資料說利用TSC可以實現比PIT更精確的定時,也就是不可能由PIT產生了。

8254本身只是一個定時/計數器,他本身要正常工作需要一個晶振的支持,就好像一個將1mA的電流放大到1A的放大器本身工作也需要一個驅動電流一樣,4.194304MHz應該就是你的8254的工作晶振,4.194304MHz不是RTC,RTC是輸入給8254的脈沖,經過分頻產生os時鐘,linux每個系統時鐘周期10ms,cpu本身工作(處理指令,數據)也有自己的指令周期,它們是不同的,資料上有些地方說法可能會有點誤差。

Copyright © Linux教程網 All Rights Reserved