●通常電圧版と中電圧版、低電圧版があるSilverthorne Intelは携帯機器向けの新しいx86 CPU「Silverthorne(シルバーソーン)」を今春(2008年春)投入する。4月のIntel Developer Forum(IDF)頃にプロセッサ自体を発表し、6月頃までに製品の発表を行なう予定だ。 Silverthorneがターゲットとするのは、Intelが「MID(Mobile Internet Device)」とカテゴライズする携帯機器。スマートフォンより大サイズで、ノートPCより小サイズ。4.5~7型程度の液晶を備え、重量は数百g、無線通信機能を備え、WindowsやLinuxを搭載し、多様なアプリケーションを走らせることができるマシンだ。広義のMIDの中には、Windowsを搭載しWindowsのユーザーインターフェイスを使う「UMPC(Ultra Mobile PC)」も含まれる。狭義のMIDは、UMPC以外の、LinuxなどのOSを使うデバイスで、Silverthorneの中心ターゲットはそこになる。 Intelは2月3日~7日にかけて米サンフランシスコで開催された「ISSCC(IEEE International Solid-State Circuits Conference) 2008」で、MIDやUMPCで要求されるCPUのTDP(Thermal Design Power:熱設計消費電力)は0.6~2Wのレンジだと説明した。Silverthorneはそのレンジに合わせて設計されたという。 実際、IntelはSilverthorneを0.6~2WのSKUで投入するつもりだ。少なくとも昨年(2007年)末のプランでは3段階のTDPの製品ファミリを出す予定になっていた。電圧は通常レベルで高周波数の通常電圧(Standard Voltage)版、より電圧を下げた中電圧(Medium Voltage)版、さらに電圧を下げた低電圧(Low Voltage)版の3つだ。オリジナルのプランでは通常電圧版が1.02Vで2Wで1.86GHz、中電圧版が0.85Vで1Wで1.1GHz、低電圧版が0.77Vで0.6Wで0.9GHzの予定だった。もっとも、通常電圧版については1.6GHzに下がったという情報もある。 Silverthorneと同じ「Bonnell(ボンネル)」CPUコアを使う、PC向けの「Diamondville(ダイヤモンドビル)」と、組み込み向けSilverthorneも、ともに1.6GHzへと周波数が下がっている。1.86GHzで動作させた場合にTDPに収まる製品のスピードイールド(歩留まり)が悪かった可能性がある。 もっとも、もし周波数が1グレード下がったとしても、ターゲットとするTDPが0.6~2Wのレンジから変わる可能性は低い。また、電圧スペックも物理的にこれより下げることは難しい。そのため、動作周波数が下にスライドしても、TDPと電圧もほぼ同じだと推定される。
●Silverthorneの平均消費電力は数百mW Silverthorneがターゲットとする携帯情報端末では、バッテリ駆動のため平均消費電力の削減が非常に重要となる。Silverthorneでは、対応チップセット「Poulsbo(プールスボー)」と合わせた平均消費電力を1W以下に抑えるという。チップセット側で600~800mWを消費するため、Silverthorneの電力消費は平均で400mW以下に抑えなければならない計算になる。ISSCCでも、Silverthorneの平均消費電力は数百mW(a few hundred mW)になると説明された。
従来のIntelの最低消費電力PC向けCPUの数分の1の電力消費を実現するために、Silverthorneでは非常にリッチな省電力機能を備えている。その電力制御技術は、IntelがモバイルPC向けCPUに開発した省電力技術の集大成+アルファとなっている。 まず、Silverthorneにも、IntelのモバイルPC向けCPUと同様に、CPU負荷に応じて周波数と電圧を切り替えるSpeedStepが実装されている。CPU負荷が高い状態では、Silverthorneはアクティブ状態の「C0(Active)」ステイトのHFM(High Frequency Mode)で、高動作周波数で高電圧の状態にある。これが、前述の電圧と周波数のスペックのモードだ。 負荷が落ちるとSilverthorneは段階的に周波数と電圧を切り替えてC0 LFM(Low Frequency Mode)へと遷移し、コアの動作周波数と電圧がC0の最低ラインへと遷移する。通常電圧版のLFMは0.95Vで1.3GHzが予定されていたが、これは変更された可能性がある。Mediumだと0.8V、Lowだと0.75Vとなる。通常電圧版のLFMでのTDPは0.8Wを切る。Silverthorneではこの0.8Vのあたりまでが、パフォーマンスと電圧のバランスがいいレンジで、それより下になるとパフォーマンスがぐっと落ちてしまう。そのため、LFMのボトムは0.75から0.8Vにせざるを得ないだろう。
●段階的なCステイトの遷移 CPUがアイドル状態に入るとCPUコアクロックの供給が停止され、「C1(Halt)」「C2(Stop Clock)」ステイトに入る。C1は電力もあまり下がらないが、復帰も速い。Silverthorneでは、C1からは1マイクロ秒(μs)以下のレイテンシで復帰できるという。SilverthorneはHyper-Threadingなので、ステイトは各スレッド毎に遷移する。スレッドのステイトが揃うとCPU全体のステイトが遷移する仕組みだ。 さらにアイドル状態が続くと「C3(Deep Sleep)」に入り、CPUコアのL1データキャッシュがフラッシュされL2キャッシュにダンプされる。C3状態のCPUコアのL1は空になるので、CPUコアのL1キャッシュへのスヌープの必要がなくなる。この時の電力は通常電圧版で0.6W、中電圧で0.4W、低電圧版で0.3Wとなる。 次の「C4(Deeper Sleep)」ステイトに入ると、CPUの供給電圧がキャッシュのデータ内容を維持できる限界レベル(Cache retention)に下がる。通常電圧版の場合は、ミニマムで0.75V(Vccdprslp)となる、この時の電力消費はマックスで通常電圧版で0.5W、中電圧版と低電圧版で0.3W。ISSCCでのチャートを見ると、C1/2時の1/3以下なので、実際にはもっと下がるだろう。ただし、電力消費が下がる分、C4ステイトからの復帰にかかるレイテンシも伸びる。ISSCCでの説明では、SilverthorneのC4からの復帰は30μs程度かかるという。 C4に入ると、L2キャッシュ内容は次々にメインメモリに書き戻され、フラッシュされて行く。さらに「Dynamic Smart Cache Sizing」によって、フラッシュされたライン単位でキャッシュアレイがオフされて行く。最後にはL2が完全に空になり、全L2キャッシュがパワーオフされる。キャッシュSRAMの電力消費の多くを占めるのはリーク電流(Leakage)。Silverthorneでは、L2キャッシュがスリープされ0.75Vになるとリーク電流が1/2.5に下がり、シャットオフされるとリーク電流が1/10にまで下がる。完全にキャッシュが空になりオフされると、「C6(Deep Power Down)」ステイトへと遷移できるようになる。
●Silverthorneの低消費電力化の決めてC6の実装 C6ステイトでは、電圧はキャッシュリテンションレベルより低いレベルに下がる。ISSCCではこの時の電圧は0.3Vと発表された(顧客には0.35Vと説明されている)。電圧を0.3V台に下げることで、C6ステイトでは消費電力は0.1W以下に下がる。従来のCPUの場合、ここまで電圧を下げると、CPUのアーキテクチャルステイトが失われてしまう。しかし、ステイトをCPU外部のメモリに保持すると、ウエイクアップ時にステイトをCPUを戻すのに膨大な時間がかかってしまう。これは、省電力モードとしては実用的ではない。 そのため、IntelはSilverthorneでは、CPUダイ(半導体本体)上に10.5KBのオンダイ専用SRAMを「State Storage」として実装した。Silverthorneでは、C6ステイトに入る前の、C4ステイト時にCPUステイトがこのSRAMにセーブされる。CPUステイトには、全てのIAアーキテクチャ上のステイトと、CPUのマイクロアーキテクチャ上のステイト、つまりマイクロコードのステイトのほとんどが含まれる。そのため、CPUステイトの保持を考慮することなく、コアステイト保持レベル以下の、より低い電圧に下げることができる。ちなみに、PenrynではState Storage SRAMは8KB/コアで、Silverthorneの方がSRAM量が多い。アウトオブオーダ実行のPenrynの方がマイクロアーキテクチャ上のステイトは、インオーダ実行のSilverthorneより多くなるはずだがそうではない。これは、Hyper-Threadingによってステイトの一部が2重化されているためだと思われる。 このSRAMは、CPUの他の領域とは異なるパワープレーンとなっている。CPU電源電圧(Vcc)がどこまで下がっても、Vccとは独立したI/O電圧「VccP」(1.05V)が供給されている。Silverthorneの場合は、「Split-Vccp」によってC6時には90%に当たる182個のI/Oピンの電圧を落とし、わずか21ピンの電圧(Vccpc6)だけが保持される。これによってI/Oリーク電流を最低に抑えているという。 C6ではSilverthorneの消費電力は大幅に削減される。しかし、復帰レイテンシはさらに長くなる。CPUコアのマイクロコードをリセットし、両スレッドのステイトをリストアしなければならないからだ。Silverthorneでは、この復帰に100μs程度かかるという。ちなみに、昨年(2007年)8月のCPUカンファレンス「Hotchips」ではPenrynの場合、C6からの復帰に150~200μsかかると説明していた。 ISSCCでの説明では、典型的なユーセージモデルでは、Silverthorneの稼働時間のうち最大で90%までがC6ステイトで占められるという。それに対して、C0アクティブステイトはわずか数%程度。そのため、C6の実装によって、平均消費電力を劇的に下げることが可能になったという。 ●回路技術やプロセス技術も低消費電力化に合わせる Silverthorneでは、こうしたきめ細かな電力制御を行なうだけでなく、マイクロアーキテクチャや回路設計、プロセス技術など、あらゆる面で省電力化を図っている。 Silverthorneのプロセス技術は、45nm CMOSで「High-k材料」をゲート酸化膜に使うことで、大幅にリーク電流を低減した。加えて、Silverthorneでは、全てのトランジスタが、チャネル長が長く低速だがリーク電流が小さなタイプとなっている。PC向けCPUのように、高速だがリーク電流の多いトランジスタを混ぜて使うことはしていない。 回路設計では、クロックディストリビューションネットワークを大きく改良、グリッドレスにすることで電力を抑えた。L1命令キャッシュとL1データキャッシュ、そしてC6 SRAMについては、8トランジスタのSRAMセルを採用した。通常の6トランジスタSRAMセルより、低電圧で高速なアクセスが可能になるという。L2には、IntelがCore Duo(Yonah:ヨナ)から採用したファイングレインのスリープ機能Dynamic Smart Cache Sizingを実装した。 FSB(Front Side Bus)はデュアルモードで、信号プロトコルとして、従来のIntel CPUのFSBと互換性のあるGTLモードの他に、より低消費電力のCMOSモードをサポートしている。CMOSモードでは、GTLモードと較べて最大1/2.5に電力消費が下がるという。 マイクロアーキテクチャ的にはCPUコアをできるだけ小さくし、トランジスタ数を抑えている。CPUコアのトランジスタ数は明かされていないが、Core Microarchitecture(Core MA)と較べると半分程度に見える。まず、伝統的に複雑で電力消費の大きな命令デコードやスケジューリング部分に、ダイ面積当たりパワー効率のいいアルゴリズムを使っている。また、実行ユニット部分もできる限り削っている。例えば、コストの低い(=トランジスタ数を食わない)整数演算については、128-bit SIMD演算ユニットも搭載するが、コストの高い(=トランジスタ数を食う)浮動小数点演算については64-bit幅。浮動小数点演算では、1サイクル当たりに2パイプで128-bit分のSIMD演算となる。また、演算ユニットで兼用できるものは、できる限り兼用している。 もっとも、切り詰めてはいるものの、Silverthorneのサイズは、多くの組み込みRISC系プロセッサより大きく、電力もそれなりに大きい。それがパフォーマンスとのトレードオフだ。Intelは、Silverthorneの後継のLPIA(Low Power Intel Architecture)プロセッサが、将来はスマートフォンにも入るだろうと説明している。それは、スマートフォンに必要とされるプロセッサパフォーマンスが上がって来ると、LPIAのカバーするレンジと重なるという戦略だと推定される。
□関連記事 (2008年2月25日) [Reported by 後藤 弘茂(Hiroshige Goto)]
【PC Watchホームページ】
|