看板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