●Intelの2つのCPU開発拠点
IntelのIA-32 CPUは、2つの設計センターで開発されている。1つが、イスラエルにある開発施設「Haifa Design Centre(ハイファデザインセンター)」で、IntelのMobility Groupに属する。ハイファデザインセンターのプロセッサ開発を指揮するRon Friedman(ロン・フリードマン)氏(Vice President, General Manager, Mobile Microprocessors Group)によると、同センターでは連綿とIntelのモバイル系CPUを開発してきたという。 現在、ハイファデザインセンターが設計したCore Microarchitecture(Core MA)は、モバイルだけでなく、デスクトップからサーバーまで広く使われている。「Pentium Mマイクロアーキテクチャが非常に電力効率がよかったため、我々は、サーバーとデスクトップにも向けたマイクロプロセッサの開発ができないかと打診された」とFriedman氏は語る。Friedman氏の説明からは、同センターの基本思想はモバイルに最適化したマイクロアーキテクチャであり、それが結果として現在のデスクトップやサーバーにもフィットして行ったことがわかる。 これは、Intelのもう1つのx86 CPU開発拠点である、米オレゴン州ヒルズボロの開発センターの思想と異なるように見える。ヒルズボロのセンターは、IntelのDigital Enterprise Groupの元で、サーバー&デスクトップ用CPUを開発してきた。次期CPU「Nehalem(ネハーレン)」は、モバイルもカバーする。しかし、同センター側のアーキテクチャ説明では、常にパフォーマンスへのフォーカスが伺える。 ●平均消費電力を下げつつパフォーマンスをターボ ハイファデザインセンターのモバイル重視の姿勢がよくわかるのは、CPUの平均消費電力の低減のアプローチからだ。45nm版Core Microarchitecture CPU「Penryn(ペンリン)」では、従来のCore 2 Duo(Merom:メロン)と比べると、モバイル利用でのアイドル時の電力が一気に下がり、その結果、平均消費電力が大幅に低減されているという。モバイルCPUとして重要となる機能が、ますます強化されている。 C6の実装については、ハイファデザインセンターは今年(2007年)8月のHOT CHIPS 2007でも説明している。Penrynでは、従来のMeromと比べて27~44%の平均消費電力の低減が実現できるという。通常、平均消費電力をこれだけ落とすことは極めて難しい。その秘密は、新しい省電力ステイトである「Deep Power Down(C6)」にある。
C6は、電力制御の機構を変更しただけでなく、CPUステイト保持用の特殊なSRAMをCPUに実装した。そのため、C6ステイトでは、極限にまでCPUの電圧を落とすことができる。アイドル時の消費電力を0Wに限りなく近づけることが可能になった。 その一方で、今後は、TDP枠の中でさまざまな機会を捉えてパフォーマンスをブーストする「ターボモード」を実装して行く。Penrynの説明にあった、シングルスレッド時だけでなく、ターボモードのトリガーをより広く設定する。ターボモードは、今後のマルチコアCPUのパフォーマンス向上には大きく貢献するという。 今回、イスラエルでの説明では、ターボモードもIntelの今後のCPUの重要なフィーチャであることが強調された。ターボモードは、Nehalemの性能を引き上げるファクタでもある。平均消費電力の低減と、ターボモードが両輪となって、高パフォーマンス化と省電力化を両立させるイメージだ。
●SilverthorneのキーテクノロジであるC6ステイト Intelは、新しいC6ステイトの手法を、イスラエル開発以外のCPUに広く実装して行くと見られる。現在判明している限り、Penryn以外に、テキサス州オースティンで開発された携帯機器向けCPU「Silverthorne(シルバーソーン)」も採用している。待機状態が長いユーセージのデバイスほど、C6ステイトの効果が出る。そのため、Intelの携帯機器向けCPUには、C6ステイトの手法が使われて行くと見られる。 Penrynでの各省電力ステイトへの遷移は、次のようになる。 (1)CPUコアがアイドルに入ると、コアクロックの供給が停止されアクティブ状態の「C0」ステイトから、「C1(Halt)」以下のステイトに入る。この動作は、Core Duo(Yonah:ヨナ)の時からCPUコア単位に行なえるようになっている。コア単位でのステイトは“C”がつけられ「CC1(Halt)」「CC2(Stop Clock)」「CC3(Deep Sleep)」と「CC6」まで遷移する。片方のCPUコアが先によりCC1以下のステイトに入って、もう片方のCPUコアはアクティブC0ステイトのままでいる場合もありうる。その場合は、高い方のCPUコアに合わせて、CPUパッケージ全体のステイトが遷移する。 (2)CPUコアが「CC3」に入るとCPUコアのL1データキャッシュがフラッシュされL2キャッシュにダンプされる。CC3状態のCPUコアのL1はフラッシュされ空になるので、L1へのスヌープの必要がなくなる。 ちなみに、IntelはPenrynではサーバー版でもCC3をイネーブル(有効)にする。従来のサーバーはCC1で止まるためスヌープトラフィックが生じてしまう。それに対してPenrynサーバーでは、CPUコアがアイドル状態になった場合、L1へのスヌープの必要をなくすことで、無駄なスヌープトラフィックを減らす。それによって、サーバーでも平均消費電力を下げるという。モバイル向けに開発された技術が、サーバーなどにも広げられて行く好例だ。
●Yonah/MeromのDC4よりさらに電圧を下げる (3)全てのCPUコアが「CC4」ステイトに入ると、CPUパッケージが「C4(Deeper Sleep)」に入り、CPU全体の供給電圧がキャッシュのデータ内容を維持できる限界レベル(Cache retention)に下がる。現状では、CPUコア単位で異なる電圧を供給することはできないため、CPUパッケージ全体で電圧を一律に制御する。 C4ステイトで、Yonah以降のCPUは「Dynamic Smart Cache Sizing」で、L2キャッシュをライン毎にOFFして行く。L2キャッシュエリアは、メインメモリに書き戻され次々にフラッシュされる。最後にはL2が完全に空になり、全L2キャッシュがパワーOFFされる。 (4)Meromまでの場合は、ここでCPU全体が「DC4(Enhanced Deeper Sleep)」ステイトに入る。DC4では、電圧がキャッシュ内容を保持できるレベル以下に下げられる。また、チップセット側にはL2キャッシュがフラッシュされスヌープの必要がなくなったことが伝達される。Yonah/Meromでは、DC4時のコア電圧が最低電圧となる。 しかし、DC4では、CPUコアのアーキテクチャルステイトは保持している。そのため、DC4時の電圧は、CPUコアのステイトを保持できる限界のレベルとなる。しかし、Penrynでは、CPUコアのステイトをCPUコア外のメモリにセーブすることで、さらにもう1段階電圧を下げることが可能になった。 (5)これがPenrynの「C6(Deep Power Down)」ステイトだ。両CPUコアのステイトがセーブされCC6に入り、L2キャッシュが完全にフラッシュされた段階で、PenrynではCPU全体がC6ステイトに入ることが可能になる。C6ステイトでは電圧はDC4より大幅に引き下げられ、キャッシュもOFFにされ、CPU全体のリークによる消費電力が大幅にカットされる。ちなみに、PenrynでもDC4自体は実装されている。 ●CPUコアをステイト保持レベル以下の電圧に下げる Penrynの省電力制御のポイントはここにある。CPUコアをリテンションレベル以下に引き下げる場合、もしCPUステイトをCPU外部のメモリに保持すると、ウエイクアップ時にステイトをCPUを戻すのに膨大な時間がかかってしまう。これは、省電力モードとしては実用的ではない。「CPUスリープ状態の電力を削減するためにしなければならないことは、リーク電流を削減しながら速いレスポンスタイムを得られるようにすることだ」とFriedman氏は説明する。 そのため、IntelはPenrynからは、CPU上に、CPUコア1個につき8KBずつの専用SRAM「State Storage」を実装した。このSRAMは、CPUの他の領域とは異なるパワープレーンとなっている。CPU電源電圧(Vcc)からは独立したI/O電圧「VccP」(1.5V)が供給され、CPUがどの省電力ステイトにあろうと、例えVccが0Vであろうと、内容が保持される。言ってみれば、非常用待避エリアだ。ステイトストレージSRAMへの電圧は、VccPを利用するため、特別な電圧供給は必要としないこともポイントだ。 Penrynでは、C6ステイトに入る前にCPUステイトがこのSRAMにセーブされる。CPUステイトには、全てのIAアーキテクチャ上のステイトと、CPUのマイクロアーキテクチャ上のステイト、つまりマイクロコードのステイトのほとんどが含まれる。そのため、CPUステイトの保持を考慮することなく、コアステイト保持レベル以下の電圧に下げることができる。具体的な電圧はCPUの実装によって異なると見られるが、C6を実装するSilverthorneの場合はC4がミニマムで0.75Vに対して、C6はミニマムで0.3Vとなっている。半分以下の電圧に下げられることになる。 また、C6時のリーク電流をより減らすために、I/Oピンの電圧プレーンを分離する「Split Vtt」も導入されると見られる。Silverthorneの場合は、C6時には90%のI/Oピンの電圧を落とす。
●平均消費電力の低減にフォーカスした設計アプローチ C6では、オンダイのSRAMからCPUステイトを戻すため、外部メモリから読み込む場合と比べると比較にならないほど短レイテンシとなる。しかし、CPUステイトを保持するDC4と比べると、SRAMからアクティブステイトへの復帰レイテンシは長くなる。150~200μsのレイテンシが必要となるという。 そのため、C6ステイトに頻繁に入る場合には、CPUステイトのセーブ&ロードで平均消費電力が逆に上昇してしまう可能性がある。Intelの試算では、C6ステイトに3~4ms以下の頻度で遷移すると、平均電力が上がるという。そのため、Penrynでは「Auto-Demote」機能を実装する。頻繁にC6ステイトに入る場合にはC4ステイトに止めてC6に入らないように制御する。実シリコンでの試験では、この機能によって、良好な結果が得られたという。
こうして見ると、PenrynのC6は、CPUステイトを短レイテンシの専用ストレージに保存してしまえば、CPU全体をパワーダウンできるという、コロンブスの卵的なトリックで実現されていることがわかる。アイドル電力削減のために、Cステイトを下へ下へと掘り進んできた、ハイファデザインセンターの試みの最終到達点だ。 Yonahの「Dynamic Smart Cache Sizing」と「Enhanced Deeper Sleep DC4」、そしてPenrynのC6と、一連の流れを見ると、ハイファデザインセンターがCPUの平均消費電力を抑えることに非常にフォーカスしていることがよくわかる。平均消費電力の低減こそ、同センターのCPUの最大の特徴と言える。 □関連記事 (2007年12月14日) [Reported by 後藤 弘茂(Hiroshige Goto)]
【PC Watchホームページ】
|