定时器汇聚
外观
定时器汇聚是计算机系统的节能技术,通过降低软件定时器的精度以允许进程唤醒同步来节约CPU被迫执行的昂贵的进入与退出空闲状态的次数,从而降低CPU能耗。[1]
- Linux内核通过从版本2.6.22开始支持可延迟定时器(deferrable timer)[2][3],从版本2.6.28支持可控的定时器松弛(timer slack)。[4][5]
- Windows 7开始支持定时器汇聚。[6]
- Apple的基于XNU内核的OS X,称作OS X Mavericks,支持此功能。[7][8]
Windows的定时器汇聚
[编辑]如果处理器的空闲周期非常短暂,处理器进入与退出低功率状态的能耗甚至会大于空闲状态所节约的能耗。定时器汇聚帮助改进了周期软件行为的能耗效率,这是通过把多个不同的软件定时器在同一时间到期,从而增加了处理器平均空闲周期的长度。
Microsoft建议软件开发者首先检查能否去除周期性行为,可用事件驱动或者基于中断的设计来代替。否则,应当使用定时器汇聚,至少使用32毫秒的定时器到期容限。[9]这对应于两个缺省系统时钟间隔(15.6毫秒)。建议软件定时器间隔与容限都应是50毫秒的倍数。
设备驱动程序应该使用新的内核态API函数KeSetCoalescableTimer
替代KeSetTimerEx
。它的参数TolerableDelay
指出定时器到期容限的毫秒数。
用户态程序从Windows Vista开始支持SetThreadpoolTimer
。从Windows 7开始使用Windows API函数SetWaitableTimerEx
替代SetWaitableTimer
。从Windows 8开始,使用Windows API函数SetCoalescableTimer
。
Linux的低分辨率定时器
[编辑]参见
[编辑]- 高级配置与电源接口 (ACPI)
- 高级可编程中断控制器 (APIC)
- 高精度事件计时器 (HPET)
- HLT (x86 instruction)
- Interrupt coalescing
- Interrupt handler
- 低功耗设计
- 效能功耗比
- Programmable interval timer
- 实时时钟 (RTC)
- 系统时间
- Time Stamp Counter (TSC)
- 无嘀嗒内核
参考文献
[编辑]- ^ Anderson, Nate. How OS X “Mavericks” works its power-saving magic. Ars Technica. June 11, 2013 [2014-03-22]. (原始内容存档于2017-02-22).
- ^ Linux Kernel 2 6 22. kernelnewbies.org. [2014-03-22]. (原始内容存档于2020-11-12).
- ^ Add support for deferrable timers. 2007-05-08 [2014-03-22]. (原始内容存档于2013-05-04).
- ^ time(7) - Linux manual page. Man7.org. [2014-03-24]. (原始内容存档于2019-05-08).
- ^ prctl(2) - Linux manual page. Man7.org. [2014-03-24]. (原始内容存档于2021-02-24).
- ^ Windows Timer Coalescing. Microsoft. January 20, 2009 [2009-04-21]. (原始内容存档于2009-04-16).
- ^ OS X Mavericks - Advanced Technologies. Apple Inc. [2014-03-22]. (原始内容存档于2013-06-13).
- ^ OS X Mavericks: Core Technologies Overview (PDF). Apple, Inc. June 10, 2013 [2013-06-10]. (原始内容 (PDF)存档于2013-06-26).
- ^ Windows Timer Coalescing,January 20, 2009. [2017-11-16]. (原始内容存档于2017-10-01).