パワーマネジメント機能の根本にある考え方は、「Keep idle and stay idle」(CPUを可能な限りアイドル状態にし、できるだけ長い時間アイドルにし続ける)だ。
CPUが複数のコアを持つ場合、これまでのWindowsでは「あるものを最大限に使ってパフォーマンスを上げる」という考え方がベースにあった。それに対してWindows 7では「なるべく1つのコアで仕事をさせる」というように、方針が一転しているわけだ。
この考え方を実践しているのが新機能の「コアパーキング」である。これはタスクのスケジューリングを必要最小限のコアのみで行い、残りのコアを休ませる(パーキング)ことで電力消費を抑える機能だ。コアパーキングでは50ms間隔でコアの状態をモニタし、平均CPU使用率がパーキングポリシー閾値を下回ったコアをパークし、超えたコアをアンパークする。パーキングポリシーはパワーマネージャによって管理され、スケジューラはパーキング中のコアの使用を避けるようになっている。
コアパーキングについてはWindows ServerとSMT(ハイパースレッド)のみで有効となっている。これはコアパーキングが一定のCPU使用率の場合に大きな効果を得るが、クライアントでは0%か100%かといった極端なCPU使用率になるケースが多いからだという。
Unified Background Process Manager(UBPM)もパワーマネージメント向上のために導入された新機能のひとつ。従来のWindowsでは、何も処理を行わないのにただ動いているだけのプロセスが多数存在した。UBPMはプロセスの開始や停止をイベントをトリガにして行えるようにするためのものである。これによって、プロセスを必要なときのみ開始し、処理が終わったら停止するように適切に管理できるようになる。
トリガとなるイベントはサービス毎に指定可能なため、これまでのように「起動したらシャットダウンするまで動きっぱなし」という状況を回避することができる。
タイマAPIも省電力化のために改善されている。CPUのアイドル状態の維持のためにはタイマ割り込みは少ない方がいい。そこで新しいタイマAPIでは近いタイミングに設定されたタイマ割り込みをひとつに統合する「タイマ結合」機能を備えており、これによってCPUがタイマによって起こされる回数をできる限り少なくするようになっている。
そのほか、非アイドル状態のプロセッサにのみタイマ割り込みを通知する「Intelligent Timer Tick Distribution」などの機能も提供されている。
本稿ではパフォーマンスおよびパワーマネージメントに関する項目のみ紹介したが、Windows 7のカーネルには上記以外にもコンポーネント化やセキュリティ対策、マルチコア対応など、様々な面において大幅な改良が施されているという。
CNET Japanの記事を毎朝メールでまとめ読み(無料)
ものづくりの革新と社会課題の解決
ニコンが描く「人と機械が共創する社会」
ZDNET×マイクロソフトが贈る特別企画
今、必要な戦略的セキュリティとガバナンス
企業や自治体、教育機関で再び注目を集める
身近なメタバース活用を実現する
パナソニックのV2H蓄電システムで創る
エコなのに快適な未来の住宅環境