看板Programming
標 題[問題] CPU 如何處理計時器?
發信站批踢踢實業 (Mon Jun 22 15:20:11 2009)
轉信站ptt2!news.ntu!ptt
無論是哪種語言,常常會用到計時器。
例如:30 秒之後做某個動作。
我不懂的是,CPU 是如何做計時器的?
該不會是每最小單位時間 CPU 都偵測是不是過 30 秒了?
這樣不是很笨也很沒效率嗎?
但除了 CPU 每最小單位時間都偵測一次,
我想不到什麼機制來完成計時器的功能。
可否有前輩指導一下?非常感謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.126.46.88
1F:推 zlw:好像是有硬體支援吧 124.8.129.79 06/22 15:32
3F:→ zlw:不知道是不是這個 124.8.129.79 06/22 15:39
4F:→ zlw:另外,你說的隨時偵測問題,那可以用中斷解決 124.8.129.79 06/22 15:40
5F:→ typeotoco:8254 晶片吧140.118.123.178 06/22 15:40
6F:→ typeotoco:可以開一個 thread 來檢查, 或windows140.118.123.178 06/22 15:41
7F:→ typeotoco:用 OnTimer140.118.123.178 06/22 15:41
8F:推 StubbornLin:我記得每過一定時間會有一個中斷 118.170.82.2 06/22 15:47
9F:→ StubbornLin:可以用那中斷來檢查 118.170.82.2 06/22 15:47
10F:→ StubbornLin:不過那應該是os的工作 118.170.82.2 06/22 15:47
11F:→ StubbornLin:所以用os提供的機制來做timer 118.170.82.2 06/22 15:47
13F:推 zlw:Raymond Chen 的 Blog 常常可以看到一些比較 124.8.129.79 06/22 19:20
14F:→ zlw:不為人知的知識啊 124.8.129.79 06/22 19:20
15F:推 leicheong:嗯. 因此自05年起就常駐在我的RSS feed 219.79.235.178 06/22 20:16
16F:推 ggg12345:PC停電時使用充電電池推動的電子表與cmos 140.115.4.12 06/24 10:54
17F:→ ggg12345:RAM供BIOS設定與啟動,8353 Timer 最早是 140.115.4.12 06/24 10:56
18F:→ ggg12345:用主板cga的15750.0HZ六位有效震蕩器提供 140.115.4.12 06/24 10:58
19F:→ ggg12345:1/16秒時脈中斷,這個時間太長.winOS 改了 140.115.4.12 06/24 11:01
20F:推 Tankan:你要問的就是 watchdog 阿 61.64.195.232 06/25 07:43
21F:推 ggg12345:8253timer/counter對時基振盪器做計數,數 140.115.4.12 06/25 14:12
22F:→ ggg12345:到設定的時脈數產生中斷通知CPU處理.os是 140.115.4.12 06/25 14:14