前回: 【レポート】IDF Fall 2010 - 大原雄介の「Sandy Bridge」徹底解説・その3

Power ControlとThermal Control

次はこちらである。塩田氏のレポートにもあるように、Sandy BridgeではTDPの枠を超えてのTurbo boostが可能になった。ここでの変更は、温度モデルの作り方を変えたことだ(Photo01)。これにより、一時的にTDPの枠を超えて動作周波数や電圧を引上げても、その後すぐにTDP枠に収まるように下げて行けば熱的にTDPで許容される枠をはみ出さずに済む、というものだ(Photo02)。

Photo01: 旧来のモデルは、消費電力が増えると即座に温度も上がるモデルを採用していたが、実際には熱容量というものもあり、また熱的な不均衡さもあるから、急に温度が上がるわけではない。こうした事を考慮に入れたのが右下のグラフである。

Photo02: こちらは塩田氏のレポートにもあったプレゼンテーション。ちなみに実際にはfew secondsも掛けられない気がするのだが。

このモデルの問題は、「そうは言っても実際にはすぐ温度が上がる」という事である。ベースとなるのはシリコンだから比較的比熱は大きいが、絶対的な熱容量は非常に小さく(なんせダイの厚みはごくわずかだ)、一方消費電力はTurboが掛かるくらいだから10Wとかそういうレベルではなく、トップエンドモデルなら100Wくらいが掛かっていてもおかしくないだろう。そのため、非常にきめ細かな電力管理(Turboの有効時間がどの程度かは明確な数字がないが、秒単位なんていうラフなタイマーではまず無理で、最低でもmsec、場合によってはもっと細かい単位で電圧/周波数を変動させる必要があるだろう。特に電圧供給はCPU外部から行われるから、単にCPUだけでなく電源供給回路もより高速な反応が求められることになる。

もう一つは、温度管理の問題である。Turboをかけていて許容温度を超えそうになったら、即座に周波数や電圧を下げるという安全機構が必要であり、このため高精度・高速な温度測定メカニズムが必要になる。これを実現するため、IntelはCore 2の世代からDTS(Digital Thermal Sensor)をベースとした温度測定方法を提供しており、Sandy Bridgeでは温度管理もいよいよDTSベースに切り替わったようだ(Photo03,04)。Sandy BridgeではDTSベースのThermal Profileが利用できるようになり、これが新しいTurbo Boostにも利用されていると見られる。ちなみにこのDTSベースのThermal Profileはこんな風に説明されている(Photo05)。このThermal ProfileはBIOSあるいはファン制御ソフトなどで、CPU温度にあわせてファン制御などを行うために提供されるもので、なのでCPU内部の温度管理にはこれは使っていないだろう(というか、直接DTSの数値をフィードバックして管理していると思われる)が、機能的にはこうしたものが入る、という事は特記しておくべきだろう。ついでに挙げておけば、次の世代のIvy Bridgeで提供されるThermal Profile 2.0では、更に使いやすくなるようだ(Photo06)。

Photo03: 勿論従来の温度センサーも搭載されるが、こちらはアナログセンサーなので一度CPUの外に引っ張り出して、温度を確認してCPU内部に戻す、という形になるからリアルタイム制御には向かない。

Photo04: Sandy Bridgeのものに加え、Ivy Bridgeにおける機能が触れられているのはちょっと目新しい。

Photo05: Tcaseベースの場合は、Tcase MAX(最大ケース温度)と現在のTcaseから現在の温度マージンを取得する。問題はDTSで、これまではTjmax(最大ジャンクション温度)が開示されなかったため、温度差しか判らなかった。これが今度からはTDTSmaxあるいはTDTSaveが利用できるようになる、という話である。

Photo06: ProfileそのものがCPUにStoreされているので、ここから取り出せるようになるほか、TCONTROLという新しいパラメータが利用できるようになる様だ。

電源管理絡みでもう一つ。従来のNehalemの場合、CoreとUncoreという形で異なる電源プレーンを利用していたが、Sandy Bridgeではこれがもう少し細かく管理されるようになった(Photo07)。Nehalemの場合はL3キャッシュがUncoreに分類されていたが、今回はLLCが各コア毎になり、しかもコアと同じスピードで動くこともあり、Coreと同一のドメインに属することになっている。ただしRingそのものは独立しており、またCore部も実際にはコア毎に周波数/電圧が異なるため、厳密に書くとかなり多くの電源ドメインが存在することになる。またメモリコントローラやPCI Expressも独自の電源ドメインとなるとしている。これらの多数の電源ドメインを制御するのは、System Agentの仕事となる。Nahelemでもかなり細かな電源管理を内部で行っていたが、Sandy Bridgeではこれを上回る規模となっているのは間違いない。ただ流石に統合するのはコントローラのみで、実際の電圧レギュレータは相変わらずオフチップのままということになるようだ。

Photo07: これは基調講演レポートでも出てきた。