後藤弘茂のWeekly海外ニュース

AMDがISSCCでSteamrollerコアの概要を発表

細かく手が入ったSteamrollerコア

会場となったサンフランシスコマリオットホテル(Marriott Marquis San Francisco)

 AMDは、米サンフランシスコで開催されている半導体カンファレンス「ISSCC(IEEE International Solid-State Circuits Conference) 2014」(2月8日〜2/13)で、最新CPUコア「Steamroller(スチームローラ)」の概要を発表した。Steamrollerコアは、「Kaveri(カヴェリ)」のCPUコアとしてすでに市場に出ているが、アーキテクチャについては、2012年のCPUカンファレンス「Hot Chips」で概要が発表されて以来、詳細はアップデートされていなかった。

 Steamrollerは、CPUコアを2コア融合させた「Bulldozer(ブルドーザ)」系のCPU。Bulldozer登場から初めての、アーキテクチャのメジャーアップデートとなる。最大の違いは、Bulldozer系では2整数演算クラスタで共有されていた命令デコードユニットが2個になったこと。そのため、スレッド当たりの実効IPC(Instruction-per-Clock)が向上した。デコーダの強化に伴い、L1命令キャッシュは3-wayの96KBへと50%倍増された。

 ISSCCでは、そのほかの部分でもさまざまな拡張が加えられていることが明らかになった。ブランチターゲットバッファは倍の10Kエントリに、内部命令μOPのディスパッチキューは32から40へ、整数演算スケジューラは整数クラスタ当たり40から48に増えた。物理レジスタも整数が112、SIMDが176とどちらも強化された。また、ロード/ストアキューも増強された。Hot Chipsで発表されたスケジュールの強化やストアの強化といった仕様が具体的にどう実装されているかが判明した。

SteamrollerとBulldozerをスレッド実行の面から比較(PDF版はこちら)
Hot Chipsで発表されたSteamrollerの仕様

 また、これまで浮動小数点/SIMD演算パイプの“簡略化”とだけ説明されていた共有浮動小数点/SIMD演算ユニット部分の変更の内容が、実行ユニットの数を変えずに実行パイプの数を4から3へ減らしたことも明らかになった。命令発行ポートの共有が行なわれたと見られる。

Steamrollerのアーキテクチャ(PDF版はこちら)

Steamrollerでプロセス技術が変化

 Bulldozer系アーキテクチャのCPUは、Bulldozerと「Piledriver(パイルドライバ)」がGLOBALFOUNDRIESの32nm SOIプロセスで、Steamrollerから28nmバルクプロセスとなった。特に、Steamrollerは、これまでGLOBALFOUNDRIESのロードマップから消えていた「28nm SHP」プロセスを使っている。AMDは、SHPプロセスはAMDがGLOBALFOUNDRIESと協力して開発したAPU向けのプロセスで、ハイパフォーマンストランジスタと、GPU向けの密度の高い配線の両方を備えたプロセスだと説明していた。

 2コア相当のSteamrollerのモジュールサイズは2MBのL2キャッシュを含めると29.47平方mm。これは、同じ28nmプロセスのAMDの省電力コア「Jaguar(ジャギュア)」の4CPUコアモジュール(4CPUコア+2MB L2)の26.2平方mmとほぼ同じ。PlayStation 4(PS4)は、Steamroller 2モジュール(4コア相当)から、Jaguar 2モジュール(8コア)に切り替えたと見られるが、両ユニットのダイ面積がほぼ同じところを見ると、その理由がよく分かる。

 L2を除いたCPUモジュールだけの面積は約18.6平方mmで、これは32nmのBulldozerモジュールの18平方mmとほぼ変わらない。つまり、AMDは32nmから28nmへ微細化した余裕を使って、Steamrollerのアーキテクチャを拡張したことになる。

AMDプロセッサのコアサイズ(PDF版はこちら)

 ISSCCでは、32nm SOIと28nmバルクのプロセスの違いと、それに伴う物理設計の大きな変更が説明された。32nmと28nmを比べると、配線層では28nmプロセスの方が下部のピッチの狭い配線が多いことが分かる。これは、CPUより配線の複雑なGPUコアで役立ったという。トランジスタを見ると、32nm SOIに対して、HVT(High Threshold Voltage)とRVT(Regular Threshold Voltage)ではリーク電流が大幅に下がった。しかし、高速なLVT(Low Threshold Voltage)は逆にリーク電流が上がっている。そのため、Steamrollerはほとんどが通常のRVTデバイスとなっている。また、RVTの3分の2近くはチャネル長の長いデバイスとなっている。また、28nmバルクになるとソフトエラーも増えるため、対策も必要だったという。

 また、Steamrollerでは、従来のBulldozer系よりもカスタムマクロの比率を減らし、シンセサイザブルなマクロを増やしている。ファウンダリ間の移植を考慮した設計に移りつつあるように見える。

 省電力回路設計もSteamrollerでは変わった。従来のAMD CPUは、パワーゲートリングを使い大きな粒度でパワーゲートを行なってきた。Steamrollerからは細粒度のパワーゲーティングを取り入れた。その結果、例えば、L2キャッシュならWay単位(L2は16way)でパワーゲートする、Intelのようなキャッシュパワーゲーティングが可能になった。クロック供給は、前世代のPiledriverコアに続いて「Resonant Clock」と従来クロックを併用している。

64-bit ARMアーキテクチャのサーバーCPU

 CPUでは、ARMv8アーキテクチャベースのサーバーCPUもISSCCに登場した。Applied Microはサーバー向けプラットフォーム「X-Gene」のCPUモジュール「Potenza processor module (PMD)」について発表。PMDは、1個のモジュールに2個のCPUコアと256KBの共有L2キャッシュを収めたものだ。

 CPUコアはApplied Microの自社設計で4-wayスーパースカラのアウトオブオーダ実行コアとなっている。モジュールのトランジスタ数は84M(8,400万)、14.8平方mmのダイ(半導体本体)エリアで、平均消費電力は4.5W程度だという。最初のX-Geneは、4個のモジュール(8コア)と8MBのL3キャッシュ、それにDDR4メモリチャネルを4つ備える。プロセスは40nmで、0.9V時に3GHz動作が可能。

右がPMDモジュール。左がPMDを4個集めた8コアのクラスタ

IBMがPower8の省電力機能などを発表

 IBMはISSCCで、新しいサーバーCPU「Power8」の省電力技術やインターコネクトなどを発表した。Power8は、12CPUコアで、96MBのL3キャッシュを内蔵し、32チャンネルのDDRメモリインターフェイスで230GB/secのメモリ帯域を実現し、トランザクショナルメモリや統合型電圧レギュレータ(iVRM)も備える。各CPUコアが8-wayのSMT(Simultaneous Multithreading)をサポートしているため、CPU全体で96スレッドを同時に走らせることができる。IBMの22nm SOI(silicon-on-insulator)プロセスで製造され、ダイサイズ(半導体本体の面積)は650平方mmと非常に大きい。

Power8の概要

 Power8はオンチップの電圧レギュレータモジュール(VRM)を備えており、CPUコア単位での電圧制御を可能にしている。CPUコア数が増えると、個別の電圧制御を行なわないと無駄な電力消費が多くなる。CPUコア群の中でもっとも動作周波数の高いコアに、コア群の駆動電圧が引きずられて、高くなってしまうからだ。IBMは、Power8では周波数だけでなく電圧も個別に制御できるようになったことで、消費電力性が大きく改良されたと説明する。

 IBMはISSCCでは、統合型電圧レギュレータ、CPUコアの電圧と動作周波数を切り替える「DVFS(Dynamic Voltage and Frequency Scaling)」、Resonant Clockを使った新しいクロック供給システム、強力なチップ間インターコネクトなどのPower8関連の発表を行なっている。5GHzを超えるレンジまでの動作をカバーするクロックシステムについても発表された。

(後藤 弘茂 (Hiroshige Goto) E-mail