■後藤弘茂のWeekly海外ニュース■
Intelは、米サンフランシスコで開催されているISSCC(IEEE International Solid-State Circuits Conference)で、Nehalem(ネヘイレム)アーキテクチャの6コアCPU「Westmere(ウエストミア) 6-core」の概要を明らかにした。Westmereは、32nmプロセスで製造されるNehalem-C(Nehalem Compaction)の総称コードネーム。6コア版のWestmere 6Cは、製品としてのコードネームは「Gulftown(ガルフタウン)」で、ハイエンドデスクトップ&ワークステーション、デュアルソケットまでのサーバー向けとなる。
Nehalem系ダイの比較 PDF版はこちら |
Westmereは、45nmのNehalemの単なる32nmシュリンク版ではなく、拡張が施されている。暗号化アクセラレーションを支援する新命令「AES-NI」はその一例だが、ISSCCではその他にも多様な機能拡張が実装されることが明らかにされた。その多くは、省電力に関連する機能で、「パワーゲーティング(Power Gating)」などが拡張された。また、低電圧版のDDR3メモリもサポートされた。
Westmere世代では、すでにデュアルコア版の「Westmere 2-core」が、1月からCore iブランドなどで製品出荷されている。Westmere 2Cは、GMCH(Graphics Memory Controller Hub)ダイである「Iron Lake」とワンパッケージに封止されている。デスクトップがコードネーム「Clarkdale(クラークデール)」、ノートPCが「Arrandale(アランデール)」だ。ISSCCでは、Westmere 6Cと共通するWestmere 2Cの省電力機能や、オンチップバスの概要なども明らかにされた。
Westmere 6Cのダイサイズ(半導体本体の面積)とトランジスタ数なども明らかになった。32nmプロセスのWestmere 6Cのダイサイズは240平方mmで、45nmの4コアNehalemよりもやや小さい。トランジスタ数は1.17B(11億7,000万)で、IntelのデスクトップCPUとしては初めて1Bを突破した。デュアルコアのWestmere 2Cは、ダイサイズが78平方mm(Intelが製品発表を行なった際は81平方mmだった)で384M(3億8,400万)トランジスタだ。Westmere 2Cが小さいのは、メモリコントローラなどを含まないためだ。
Intel CPUのダイサイズ/マイクロアーキテクチャ移行図 PDF版はこちら |
Westmere 6Cの内部構成 PDF版はこちら |
ClarkdaleとArrandaleのダイ PDF版はこちら |
●Nehalemで導入されたクロックゲーティング
Intelは6コアのGulftown(Westmere 6C)をCore i7ブランドで第1四半期中にリリースする予定でいる。動作周波数はベースが3.33GHzで、Turbo Boostでの最大周波数が3.6GHz。4コアの45nm CPU「Bloomfield(ブルームフィールド)」と同じ130W TDP(Thermal Design Power:熱設計消費電力)で、同じ動作周波数を維持する。そのため、Westmere 6Cでは、Nehalem世代より、さらに省電力機能が強化されている。
Nehalemでは、新しい省電力機能としてパワーゲーティングを導入したが、Westmereではこの部分がさらに強化されている。CPUの中の特定の機能ブロックに対する電力供給をON/OFFするパワーゲーティングは、NehalemではCPUコア部分にだけ適用されていた。しかし、Westmere世代からは、CPUコア以外の部分にも、パワーゲーティングが適用されるようになった。
従来のIntel CPUは、クロックゲーティングによって、アイドル状態のCPUコアなど特定のブロックへのクロック供給を止めていた。クロックをストップすると、アクティブ電力を止めることができるため、以前は消費電力をほとんどカットすることができた。
しかし、プロセス技術の進歩とともに、トランジスタのリーク電流(Leakage)が増大。クロックゲーティングで電力消費のうちアクティブ成分だけをカットしても、残りのスタティック成分を抑えられないため、省電力効果が薄れてしまった。そこで、Nehalemでは、各CPUコア毎にパワースイッチをOFFするパワーゲーティングで、電力供給自体をカットした。スイッチング電流だけでなく、リーク電流もカットされるため、CPUコアの消費電力はほぼゼロにできる。
●アンコア部にクロックゲーティングを拡張Intelは、CPUの内部ブロックを2系統に呼び分けている。CPUコア(NehalemではL2までを含んで呼ぶ場合が多い)を「コア(core)」、それ以外の部分を「アンコア(uncore)」と呼んでいる。今回、Westmereではアンコア部分のL3キャッシュとグローバルキューに、パワーゲーティングが拡張された。
Westmereでは、CPU全体がアイドル状態になると、L3キャッシュが段階的にフラッシュされる。フラッシュが始まると、L3キャッシュの電圧はアクティブの最小電圧(Vccmin)からキャッシュ内容を保持できるリテンション(retention)レベルにまで下げられる。そして、最終的にキャッシュがフラッシュされ終わると、L3への電力供給はパワーゲーティングによってストップされる。
ただし、L3キャッシュに付属している小容量の「C6SRAM」だけは、L3がパワーゲートオフされた段階でも電力が保持される。これは、C6SRAMがCPUコアのアーキテクチャルステイトを保持するためだ。
CPUコアの電圧をリテンションレベル以下に引き下げる場合、CPUステイトをCPU外部のメモリに保持すると、ウエイクアップ時にステイトをCPUを戻すのに膨大な時間がかかってしまう。そのため、Intelは、Penryn世代から、CPU上にCPUコアのステイトを保持する専用SRAMを搭載した。復帰時には、このSRAMからステイトがロードされるため、レイテンシを最小にすることができる。C6SRAMの「C6」は、パワーゲーティングが行なわれる省電力ステイト「C6」から来ている。
Westmereでは、C6SRAMはL3キャッシュの端に配置されている。L3キャッシュはCPUコアに付帯したスライスになっている。つまり、CPUコアを増やすとL3キャッシュも同様に増えるような設計になっている。C6SRAMはL3キャッシュに付帯しており、C6SRAMもCPUコアを増やすと、自動的に増える構造となっていることがわかる。
下の図はISSCCの「DIGEST OF TECHNICAL PAPERS」から抜粋したものだ。6つのCPUコア毎に分かれたV-Core部分は、それぞれ独立してパワーゲートされる。CPUコア以外のアンコア部分は、パワーゲートされる「V-uncoreG」と、パワーゲートされない「V-uncore」に分かれている。V-uncoreGが、Westmereで新たにパワーゲートされリーク電流がカットされるようになった部分だ。
Westmere 6Coreのダイ PDF版はこちら |
下はWestmereでのパワーゲーティングの仕組みだ。アンコア部の電力は、パワーゲートされるL3キャッシュへの供給と、保持されるC6SRAMやI/Oへの供給の2ルートに分かれることがわかる。
Westmereのパワーゲーティング PDF版はこちら |
●最低動作電圧の異なる3種類のSRAMを使い分ける
また、WestmereではL1やレジスタ以外のSRAMで、3種類の異なる6T SRAMセル(6トランジスタ)を使い分けている。高密度で大容量向けだが動作電圧の下限が高い6T SRAMセルと、低密度だが動作電圧の下限が低い省電力の6T SRAMセル、そして、その中間の6T SRAMセルだ。高密度な6T SRAMセルのサイズは、低密度なセルの66%程度のサイズとなる。動作電圧の最低値(Vmin)が低い6T SRAMを使えば、それだけそのSRAMを含むブロックのアイドル時の電圧を下げることができる。そのため、コア部のL2キャッシュには、密度が低いが電圧の下限値が低い6T SRAMが使われている。
Westmere 2CoreのSRAM PDF版はこちら |
容量の大きなL3キャッシュには、セルが最も小さい6T SRAMを使っている。セルサイズは0.171平方μmで、パワーゲートされるのはこの6T SRAMセルの領域となる。ISSCCで示された図では、この6T SRAMは「LV(Low Voltage)」とカテゴライズされていた。
L3 Tag RAMとC6SRAMには、中間の6T SRAMが使われている。セルサイズは0.199平方μmで、LV SRAMよりひとまわり大きい。ISSCCのチャートでは、パフォーマンスが重点で、「ULV(Ultra Low Voltage)」とカテゴライズされていた。以上の2種類の6T SRAMは、アンコア部、つまりV-uncoreが供給されるリージョンに使われている。
しかし、コア部、つまり、V-coreが供給される部分にあるL2キャッシュ回りでは、ずっとサイズが大きな6T SRAMが使われる。セルサイズは0.256平方μmと、LV SRAMの約1.5倍。ISSCCでのチャートでは、XLVとカテゴライズされ、パフォーマンスと最小電圧が目的とされていた。
この3つのSRAMで、安定した動作ができる電圧の下限は大きく異なるという。ISSCCでは、どこまで電圧を下げられるか正確なところは予測できないと説明しながら、下のチャートが示された。SRAMセル面積が大きくなると、劇的に電圧の下限が下がることがわかる。
WestmereのSRAMセルの電圧下限 PDF版はこちら |
ちなみに、CPUコア内部のL1命令キャッシュやL1データキャッシュといったコアメモリについては、45nm世代の発表の際に、Intelは、従来の6T SRAMセルから、8トランジスタSRAM(8T SRAM)セルへと切り替えたと説明していた。8T SRAMの方が、6T SRAMより低電圧時のソフトエラーレート(SER)が低いためだという。
●リーク電流を減らす仕組みを随所にアイドル時のパワーゲーティングの他に、アクティブ時のリーク電流の削減のために、「SRAM Bitcell Sleep」も取り入れられている。これは、65nm世代からIntel CPUが採用していた手法で、SRAMをサブブロック単位でスリープさせて、電圧を制御することでリーク電流を減らす。
Westmere 2Cの場合は、4MBのL3のうち各アクセス毎に1/64しかアクティブにならない。Westmere 6Cの場合は12MBのうち1/192だ。それ以外のSRAMサブブロックはスリープ状態にあるため、リーク電流を減らすことができる。
Intelは、CPUの回路設計においてチャネル長の異なるトランジスタを使い分けている。クリティカルパスには、高速化のためにチャネル長が短く高速だがリーク電流がやや多いトランジスタを使う。一方、クリティカルではない部分には、チャネル長が長く低速だがリーク電流が小さな「Long-Le」トランジスタを使う。遅くてもリーク電流が少ないトランジスタを使うことで、CPU全体の電力消費を下げる。
Intelは、一般的なしきい電圧(Vt)が異なるトランジスタの使い分けではなく、チャネル長の異なるトランジスタを使い分けている。Intelは以前、その理由を、低電圧化してくるとHigh-Vtトランジスタをを使うことが難しくなるためだと説明していた。Westmereでは、CPUコアのトランジスタの60%が、Long-Leで構成されているという。ちなみに、45nm世代のNehalem-EXの場合は、CPUコアの58%がLong-Leだった。
こうしたリーク電流削減の結果、Westmereでは、リーク電流が全体の消費電力の約23%に抑えられているという。