定時器匯聚
定時器匯聚是計算機系統的節能技術,通過降低軟件定時器的精度以允許進程喚醒同步來節約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).