後藤弘茂のWeekly海外ニュース

Windows XPにCPUドライバがある理由
--クロック&電圧スイッチをネイティブでサポート


●モバイルCPUはこの夏でDBSサポートで揃う

 CPUの利用率を短サイクルでモニターして、ダイナミックにクロック&電圧を最適化する、デマンドベースのCPUパフォーマンスコントロール技術(Demand-Based Processor Performance State Control:DBS)が当たり前になる。

 DBSでクロックと電圧の両方を制御する手法は、TransmetaのCrusoeが採用したことで脚光を浴びた。そして、これまでDBSには否定的な発言をしていたIntelも、DBSを採用した第2世代のSpeedStep技術「Geyserville-2(ガイザービル2)」を0.13μm版Pentium III(Tualatin:テュアラティン)と0.13μm版Pentium 4(Northwood:ノースウッド)に採用する。また、AMDもK6-2/IIIで採用したDBS技術PowerNOW!の次世代版「PowerNOW! 2」をモバイルAthlon(Palomino:パロミノ)と次世代モバイルDuron(Morgan:モルガン)に実装する。VIA TechnologiesもC3(Samuel2:サミュエル2)に、DBSベースの第2世代「LongHaul」技術を実装したと説明しており、DBSでCPUメーカーが揃ったことになる。

 だが、これは当然の動きかもしれない。というのは、前回のコラムで紹介したように、DBSはDVDソフト再生などのマルチメディア系アプリケーションで効果を発揮するからだ。そして、増大するCPUパワーの使い道は、もはやそうしたアプリケーションにしか残されていない。つまり、CPUメーカーとしては、モバイルでのマルチメディア系アプリの利用を促進しなければ、ハイパフォーマンスのCPUのデマンドを作ることができず、そのためにはDBSが重要になりつつあるというわけだ。

 DBSが重要になりつつあるのは、CPUのパフォーマンスが上がるとともに、CPUのピークの消費電力が高まってしまったためだ。そのため、一定のCPUパワーを連続的に使うマルチメディア系アプリでは、CPUがピークパフォーマンスで動き続けて膨大に電力を消費してしまう。しかし、DBSでCPUのパフォーマンス=消費電力を、CPUの利用状況に応じて最適化すれば、消費電力をミニマムにすることができるわけだ。


●プロセッサドライバアーキテクチャを採用

 こうした動きを受けて、Microsoftも、OSにCPUの省電力機能のコントロールを取り込むことを明確にした。3月末に開催された「WinHEC 2001」では、Windows XPに、CPUのパフォーマンスをコントロールする「Processor Performance Control」機能をネイティブで取り込むことを明らかにしている。これによって、OSがCPUの性能と消費電力をコントロールできるようになる。つまり、従来、CPUメーカーのアプレットやBIOSで行なってきたクロック&電圧切り替えの制御もOSが担当するようになる。

 もっとも、各CPUベンダーによってアーキテクチャは異なり、コントロールを単純に一本化することはできない。そのため、Windows XPでは新たに「プロセッサドライバアーキテクチャ」を採用する。つまり、個々のCPUファミリ毎に異なるCPUドライバをOSに組み込むようにする。グラフィックスなどほかのデバイスと同じように、Windows XPではCPUにもドライバが存在するようになり、各CPUに合わせたコントロールを担当するわけだ。また、現在、ハードウェアに密着したレイヤHAL (Hardware Abstraction Layer)が担当しているCPU制御、例えば、Cステイト(待機モード)やスロットリングなどのコントロールも、ドライバが制御するようになるという。

 OSによるコントロールの利点は、より安定性が増すことや、従来のアプレットやBIOSでは得られなかったOSの内部パラメータを利用することで、より効率的な省電力制御ができるようになることだという。これは、DBSの場合には特に重要となる。将来のCPUがもっとアグレッシブな制御を行なおうとした時にも、ドライバで対応できるようになる。

 また、Windows XPではCPUのCステイトやパフォーマンスをモニタしたり制御するAPIも導入された。これまでは、Cステイトの制御は固定されていたが、Windows XPではCステイトのコントロールバリューもプログラマブルになった。


●ACPI 2.0にもプロセッサパフォーマンスの定義が登場

 一方、電力管理インターフェイスであるACPI Version 2.0でも、プロセッサパフォーマンスステイトが定義された。これは「P0」「P1」……「Px」と表記されるステイトで、「P0」が最高パフォーマンスで数が多いほど低いパフォーマンス状態になり、最大16段階の設定ができる。Windows XPは、ダイレクトにこのPステイトのコントロールができる。

 今後は、CPUのクロック&電圧コントロールは、ACPI 2.0を経由する形に移行することになるようだ。実際、AMDのPowerNOW!はK6-2+ではSMIインターフェイスを使うが、モバイルAthlon/DuronからはACPI 2.0オブジェクト経由になるという。ただし、Windows XPではそのどちらもサポートする。ちなみに、MicrosoftはWindows XPでは、Intel CPUの制御は440BXと440MXチップセットではレガシーインターフェイスを、Intelの800番台チップセットとAMD、TransmetaプラットフォームではACPI 2.0をベースにすることを推奨している。

 Windows XPでのDBS制御は、次のように行なわれる。まず、基本的には全てのプロセッサパフォーマンスステイトを、クロック周波数のパーセンテージ(最高クロックが100%)としてマップする。そして、モニタしたCPU利用率のパーセンテージに、もっとも近い%クロックのステイトにチェンジする。例えば、CPU利用率が50%だった場合、50%にもっとも近いパフォーマンスのクロックに変更するという。

 DBSで問題となるトランジションコストの低減のためのアルゴリズムについては、前回紹介したIntelの説明と同じような内容をWinHECではプレゼンテーションした。つまり、「Fast up-Slow down(ファーストアップ-スローダウン)」アルゴリズムで、不要なステイトの変化を避け、一定のデマンドの変化があるまではステイトを変化させないといったアプローチだ。


●Windows XPのプロセッサポリシ制御

 Windows XPでは、CPUの制御のために、カーネルに新たにポリシマネージャがインプリメントされた。ポリシマネージャは、4つのCPUのパフォーマンス制御ポリシに基づいて制御する。

 DBSは、このうちAdaptiveのポリシで適用される。Windows XPではこれらのパフォーマンスポリシを、PCの利用環境ごとのパワースキム(Power Scheme)に当てはめている。パワースキムは、Windows XPのコントロールパネルの電源の項目で設定できるようになっている。下がWinHECで説明されたパワースキムとパフォーマンスポリシのチャートだ。

パワースキムAC電源バッテリ
Home/Office DeskNoneAdaptive
Portable/LaptopAdaptiveAdaptive
PresentationConstantDegrade
Always OnNoneNone
Minimal Power ManagementAdaptiveAdaptive
Max BatteryAdaptive Degrade


●将来はデスクトップやサーバーにもDBS制御が?

 こうして見ると、MicrosoftはWindows XPではDBSをかなり意識して開発していることがわかる。それについて、Microsoftは「CPUとノートPCの変化に対応しなければならなかったから」と説明している。

 だが、おそらく近い将来にDBS制御はノートPCだけでなく、デスクトップやサーバーでも当たり前になるだろう。というのは、DBS制御によってCPUの放熱を最小化できるからだ。実際、AMDはまだノートPC向け製品の計画がないHammerシリーズにPowerNOW!を実装することをWinHECで明かしている。また、OSへのDBSコントロールの組み込みや、ACPI 2.0でのPステイト定義など、インフラが整うこともDBSの汎用的な利用を容易にするだろう。

 サーバーではこの方向はすでに明確だ。というのは、米国では最近、ウルトラデンス(超高密度)サーバーと呼ばれるタイプのラックマウントサーバーで、省電力&省放熱の必要性がうるさく言われているからだ。ウルトラデンスサーバーでは、サーバーユニット(server blade)を1Uまたは2Uラックに数個納め、それを数10ユニット、ラックマウントにまとめる。極めて高密度であるため、ラック全体では膨大な消費電力と熱量になってしまう。そこで、Crusoeを搭載したウルトラデンスサーバーが登場したり、Intelもこの市場に超低電圧(ULV)版Pentium IIIを投入する計画でいる。こうした市場では、DBSによる省電力制御は浸透する可能性がある。

 デスクトップでも、長い目で見ると、増大する一方のCPUの放熱がDBSの浸透を促す可能性がある。DBSでCPUのピークの放熱量である低熱設計電力(TDP:Thermal Design Power)は減らないが、マルチメディア系アプリケーションを使っている時の、連続的な放熱量は減らせるからだ。例えば、Intelが提唱している温度によるファン速度コントロールをDBSと組み合わせれば、より静音化できる。もっとも、低コスト化が優先するデスクトップPCでは、こうした余計ともいえる仕様の導入はややハードルが高い。

 また、デスクトップやサーバーにDBSを採用する場合は、パフォーマンスの犠牲も懸念材料だ。これに関しては、DBSのアルゴリズムの最適化や、CPUやチップセットのクロック&電圧スイッチのレイテンシやコストの低減などが必要となる。これが、どの程度達成されたかは、MicrosoftのWindows XPと、IntelのGeyserville-2版Pentium III、AMDのPowerNOW!版モバイルAthlon/Duronが出そろうまではわからない。

□関連記事
【4月27日】【海外】IntelがTualatinとNorthwoodで採用するGeyserville-2
http://pc.watch.impress.co.jp/docs/article/20010427/kaigai02.htm


バックナンバー

(2001年5月1日)

[Reported by 後藤 弘茂]


【PC Watchホームページ】


ウォッチ編集部内PC Watch担当 pc-watch-info@impress.co.jp

Copyright (c) 2001 impress corporation All rights reserved.