●IntelのハイエンドCPUの今後を占うNehalem-EX Intel CPUはいよいよ8コア(オクタコア:Octa-core)の世界に突入する。ISSCC(IEEE International Solid-State Circuits Conference)でIntelは、同社初のオクタコアCPU「Nehalem-EX」の概要を明らかにした。Nehalem-EXは、元々「Beckton(ベックトン)」というコードネームで知られていた。Nehalemアーキテクチャの8個のCPUコアに、24MBのL3キャッシュを搭載する。 Nehalem-EX自体は、MP(Multi-Processor)サーバーをメインターゲットにしたハイエンドのサーバー向けCPUだ。しかし、8コアは、おそらくコンシューマ向けPCにとってもすぐ目前にある。Intelが、今のところパフォーマンスCPUについては、CPUコア数を増やし続ける戦略を取っているからだ。今日のMPサーバーCPUは、明日のハイエンドデスクトップCPUとなっている。 例えば、Intelは昨年(2008年)、6コア(ヘクサコア)のMPサーバーCPU「Xeon 7xxx(Dunnington:ダニングトン)」を投入した。そして、来年(2010年)の第2四半期には6コアのハイエンドデスクトップ向けCPU「Gulftown(ガルフタウン)」を投入する。MPサーバーCPU→デスクトップCPUへと、アーキテクチャは異なるがCPUコア数は継承されている。そのため、MPサーバーCPUのアーキテクチャは、将来のハイエンドデスクトップCPUを占う手がかりとなる。 ちなみに、Intelがデュアルコアに移行した当初はロードマップが混乱しており、PC向けCPUがクアッドコアなのに、MPサーバーCPUはデュアルコアといった逆転現象が起きていた。また、上位の多CPUコアの製品はMCM(Multi-Chip Module)技術により2個のCPUダイをワンパッケージに載せた疑似マルチコア製品だった。しかし、昨年後半からは、MPサーバーの方がCPUコア数が多くなり、上位の製品もネイティブマルチコアになった。 Intelの製品構成は、Nehalemが登場した2008年になってようやく正常に戻ったと言える。今後は、MP向けに最もCPUコア数の多い製品が投入され、1プロセス世代後に、そのCPUコア数がパフォーマンスデスクトップに降りてくるパターンになると予想される。
また、Nehalem-EXは、Nehalemアーキテクチャのスケーラビリティを検証するいい例でもある。Nehalemアーキテクチャで、Intelは、4コアから8コアと2コア、そして6コアへと派生させる。Nehalemは、当初からスケーラブルな展開を前提として開発されており、それがデュアルコアに最適化されていたCore 2(Merom)系マイクロアーキテクチャとの大きな違いとなっている。
●23億トランジスタを載せたモンスターチップ Nehalemアーキテクチャを開発したのは、Intelのオレゴン州ヒルズボロの開発センター。しかし、今回のNehalem-EXはカリフォルニア州サンタクララのチームによる発表だった。サンタクララは、IA-64系のサーバーCPUを担当しており、サーバー向け派生チップであるNehalem-EXも担当したと見られる。 下がNehalem-EXのダイレイアウトだ。ISSCCの資料をベースに一部に推測と補完を加えている。そのため、厳密には正確ではないが、概要はわかる。
基本の構成は、CPUダイの中央を横断するように、システムロジック(ハブやルーター、メモリコントローラなど)を集積。ダイ中央の上下に、8スライスに分割された、24MBの共有L3キャッシュを集積する。L3キャッシュとペアになるように、8個のCPUコアを配置。ダイの上にチップ間インターコネクトである「QuickPath Interconnect(QPI)」を4リンク。ダイの下にメモリインターフェイスを、こちらは発表では明示されなかったが4チャネル搭載した。 Nehalem-EXの製造プロセス技術は、クアッドコアNehalemと同じ45nmプロセス。トランジスタ数は23億トランジスタ。かつてない膨大なトランジスタ数で、クアッドコアNehalemの7億3,100万と比較すると約3倍となる。ただし、ダイサイズはクアッドコアと比較して2.4倍程度(600平方mm前後)と見られる。また、TDPは、クアッドコアと同じ130Wに抑える。 チップパッケージは49.1×56.4mmと大型で、CPUダイの他にプロセッサ情報を入れたROMチップが搭載されている。LGAソケットのランド数は1,567。元々、Beckton世代のIA-32/Intel 64系サーバーCPUは、IA-64系CPUとソケット互換にするプランだったが、途中から変更となり現在のプランはソケット互換ではない。 ●CPUコア自体はクアッドコアNehalem系とよく似る Nehalem-EXのダイレイアウトを見てすぐに気がつくのは、Nehalem-EXのCPUコア自体は、クアッドコアのNehalemのCPUコアと極めて似ていることだ。CPUコアの縦横比率がほぼ同じだけでなく、よく見ると、CPUコア内部のレイアウトもほぼそっくりだ。このことは、Nehalem-EXでは、IntelがNehalem CPUコア自体にはあまり手を加えず、そのまま流用したことを示唆している。Nehalem-EXと、クアッドコアのNehalemを比較したのが下の図だ。CPUコアサイズを比較して、ほぼ同スケールだと思われる比率にしてある。
Nehalem系CPUでは、256KBのL2キャッシュを含めたCPUコアが矩形のCPUコアブロックにまとめられている。矩形であるため、CPUコア数を増減させた場合のレイアウトが容易で、派生品を開発しやすい。Nehalem-EXのレイアウトでそれが実証されている。 CPUコア自体がほぼ変わらないことは、Nehalem-EXでもL1とL2のキャッシュ量とレイテンシがクアッドコアNehalemと変わらないことを示している。Nehalem系では命令とデータ32KBずつのL1キャッシュが4サイクル、各CPUコア専用の256KBのL2キャッシュが10サイクルとなっている。Core 2系まではL2の量とレイテンシは各CPUで異なったが、NehalemでL2までは一定となった。
QuickPath Interconnect(QPI)を4リンク備えたNehalem-EXでは、QPIを2リンクまでしか備えないNehalem-EP(Gainestown:ゲインズタウン)より多様なマルチプロセッサ構成を取ることができる。また、例えば4ソケットで、2個のCPUしか搭載しない場合は、使われていないCPUソケットに対するQPIリンクを無効にすることで省電力化を図ることもできる。各QPIポート毎に2Wの電力削減が可能だという。また、最大8ソケットの構成も可能となる。
●大型化したシステムロジック部分 クアッドコアNehalemと、オクタコアNehalem-EXを比較すると、CPUコア以外のシステムロジック部分がNehalem-EXでは肥大化していることがわかる。Nehalem-EXのダイ中央の帯状のシステムロジックは、クアッドコアNehalemダイのほぼ同じ場所にあるシステムロジックと比べて3倍以上の面積を取っているように見える。CPUコアやインターフェイスリンク数が増えると、調停のためのシステムロジックが増える。 システムロジックブロックの中央には「ルーター」があり、その左右にそれぞれ「ハブ」が配置されている。今回は、各ブロックの接続がわかるダイヤグラムは公開されなかったため詳細はわからないが、Nehalem-EXが8コアの接続に大きなリソースを割いていることがわかる。 8コアで共有する24MBのL3キャッシュは8つの「スライス(Slice)」に分割されている。各スライスが2048セットで24ウエイの構成で、キャッシュラインは64 bytes。Intelは、キャッシュをサブアレイに分割して、アクセス時にアクティブにする領域を小さくすることで電力消費を下げているが、Nehalem-EXでも同じテクニックが使われている。各スライスは48のサブアレイに分かれており、1アクセスでパワーアップされるのは全体の3.125%だけとなるという。
CPUコアとL3キャッシュスライスは、配置上ペアになっているように見えるが、Nehalem-EXでは分離して有効/無効の制御ができる。CPUコアやL3キャッシュスライス上に、欠陥があった場合は、そのコアやL3キャッシュスライスを無効にすることで、CPUコア数やL3キャッシュ量を減らしてリカバリさせることができる。 また、Nehalem-EXのL3キャッシュには、データアレイはColumnとRowに冗長回路が、タグアレイはColumnに冗長回路がある。それらの領域に欠陥があった場合は、冗長回路に振り替えることでカバーできる。しかし、タグのRowなどに欠陥があった場合は、L3キャッシュスライス自体が使えなくなる。CPUコアも同様で、欠陥があった場合は動作できない。 Nehalem-EXの場合は、どのCPUコアとどのL3キャッシュスライスも、個別に無効することができる。下の図は、CPUコアの2と5、L3キャッシュスライス1と6にそれぞれ欠陥があり無効化した場合の例だ。
●さまざまな省電力機能を搭載 Nehalem-EXも、クアッドコアNehalemと同様にパワーゲーティングなどの省電力機能を備えている。各CPUコアがスリープ状態になったり、上記のように無効にされると、クロックだけでなく電力供給自体をカットする。そのため、各CPUコア毎にパワースイッチを備え、スイッチをターンオフすることで、電力供給をオフにする。スイッチング電流だけでなく、リーク電流(Leakage)もカットされる。CPUコアのリーク電流は、アクティブ状態の最低電圧0.85V時に比べて40%削減されるという。 L3キャッシュエリアにはスリープトランジスタ技術を使うことで、リーク電流を大幅に抑えている。L3キャッシュには、アクティブ、スリープ、シャットオフの3つのオペレーションモードがある。リーク電流を、スリープ時には35%に削減、シャットオフ時には電圧を0.36Vにまで落とすことで83%の削減がされる。 ISSCCでは、Nehalem-EXの赤外線イメージが示され、無効にされたコアとキャッシュの領域がほぼ発熱がない状態にあることが示された。 パワーゲイティングによって、CPUコアへの電力をオフにする場合、CPUコアの内部のアーキテクチャルステイトを、CPUのダイ上に設けたステイト保持用のオンダイSRAM「State Storage」へと待避させる。このSRAM領域はCPUコアとは別電圧が供給され、常に内容が保持される。Nehalemでは、複雑な省電力制御のために専用のマイクロコントローラ「PCU(Power Control Unit)」が搭載されている。Nehalem-EXでも、PCUがダイレイアウト上に見える。 ●リーク電流を消費電力全体の16%に削減 Intelは、現在、CPUの回路設計においてチャネル長の異なるトランジスタを使い分けている。クリティカルパスには、高速化のためにチャネル長が短く高速だがリーク電流がやや多いトランジスタを使う。一方、クリティカルではない部分には、チャネル長が長く低速だがリーク電流が小さな「Long-Le」トランジスタを使う。他のメーカーのように、しきい電圧(Vt)が異なるトランジスタを使わない。 Intelは、65nmプロセスでは、Long-Leでサブスレッショルドリーケッジ(Subthreshold Leakage)を抑制できるため、スイッチングは約10%遅くなるが、リーケッジは1/3になると説明していた。Nehalem-EXの場合は、CPUコア群のトランジスタの58%と、キャッシュアレイ以外のアンコア部分のトランジスタの85%がチャネル長の長いタイプとなっている。 こうした省電力設計の結果、Nehalem-EXでは、トータルの消費電力のうちリーク電流が占める割合は16%にまで抑えられたという。先端CPUでは、最近は30%程度がリーク電流であることが多かった。全体の比率では、電力消費のうち54.6%がCPUコア部分、アンコア部分が33.4%で、I/O部分が11.2%となっている。
Nehalem-EXのクロックドメインは大きく分けて3つ。CPUコアとL2キャッシュなどのコアドメインと、L3キャッシュとシステムロジックなどのアンコアドメイン、そしてメモリインターフェイスやQPIのI/Oドメインだ。全部で16個のPLLが配置されている。CPUコアで8個、QPIで4個、メモリインターフェイスで2個、アンコア領域用(L3を含む)が1個、フィルタ用が1個。各領域で独立したクロック設定が可能となっている。 電圧ドメインは、4つ。8個のCPUコアに対して供給するコアドメインが0.85Vから1.1Vの可変。L3キャッシュとシステムロジックに対するアンコアドメインが0.9Vから1.1Vで固定。I/Oに対するI/Oドメインが1.1Vで固定。この他に、PLLとオンダイサーマルセンサ用のドメインがある。
Intelは、最後のNetBurst系CPUとなったデュアルコアMPサーバーCPU「Tulsa(タルサ)」で、Long-LeデバイスやL3キャッシュのシャットオフなどを取り入れた。Nehalem-EXは、その延長線上にあることがわかる。また、Nehalemのベースアーキテクチャのスケーラビリティも証明された。 しかし、8コアになって肥大化したシステムロジック部分が示すように、マルチコア化のオーバーヘッドも明瞭となっている。今後、CPUコア数をさらに増やす場合には、ハブで接続する現在の方式とは異なる、オンチップインターコネクト技術が必要となるだろう。Cell Broadband Engine(Cell B.E.)やLarrabeeが採用したリングバスが最もありうる解だと推定される。 □関連記事 (2009年2月12日) [Reported by 後藤 弘茂(Hiroshige Goto)]
【PC Watchホームページ】
|