イベントレポート

Oracleが次世代プロセッサ「SPARC M7」の概要を発表

Oracleが開発してきたSPARCプロセッサの概要

 最先端の半導体チップが披露される国際会議「ISSCC 2015」が始まった。次世代あるいは最新のPCやサーバー、スマートフォンなどを支える最先端チップの技術概要が数多く発表される。

 本レポートでは、23日の午後に発表された開発成果から、Oracleの次世代サーバー向け64bit SPARCプロセッサ「SPARC M7」の発表概要(講演番号4.2)をお届けする。

 Oracleはこれまで、数多くの64bit SPARCプロセッサを開発してきた。半導体製造技術の世代ごとに見ていくと、40nm世代では2010年に「SPARC T3」プロセッサを、2011年に「SPARC T4」プロセッサを開発した。T3は第2世代のCPUコア「S2コア」を16個内蔵し、1.65GHzで動作した。T4は第3世代のCPUコア「S3コア」を8個内蔵し、同じ製造技術でありながら、3.0GHzと2倍近く高い周波数で動いた。

 28nm世代では、2013年に「S3コア」を内蔵する3種類のSPARCプロセッサを開発した。「SPARC T5」、「SPARC M5」、「SPARC M6」である。T5は、T4を約2倍にスケールアップしたプロセッサで、16個のS3コアを内蔵し、2次キャッシュ容量をT4の2倍である8MBに増やした。M5は、キャッシュの大幅な強化を図ったプロセッサで、2次キャッシュ容量が48MBとT5の6倍もある。内蔵するS3コアの数は6個で、T5に比べると大幅に減らした。

 M6は最新世代のプロセッサである。48MBと大きな2次キャッシュはそのままに、S3コアの数をM5の2倍に増やした。なお28nm世代のプロセッサの動作周波数はいずれも最大3.6GHzである。

3倍の性能アップを達成

 次期SPARCプロセッサの「SPARC M7」では、半導体製造技術を20nmに微細化するとともに、CPUコアを新しくした。第4世代のコア「S4コア」を搭載する。内蔵するS4コアの数は32個で、Oracleが開発してきたSPARCプロセッサのシリーズでは、最も多くのCPUコアを内蔵する。

 SPARC M7プロセッサ(以下は「M7プロセッサ」と表記)の性能目標は、商用アプリケーションの処理でM6プロセッサの約3倍のスループットを達成することである。Oracleが示したスライドでは、メモリのデータ転送速度(帯域幅)、整数演算のスループット、オンライントランザクション処理、Javaアプリの実行、ERP(統合基幹業務システム)の実行、浮動小数点演算のスループットで、M6プロセッサと比較していずれも3倍前後の性能向上を達成している。

SPARC M7プロセッサの目標性能と概要

 M7プロセッサの内部アーキテクチャは、きわめて整然としている。シリコンダイのレイアウトにほぼ対応した全体が正方形に近いブロック図によると、細長い回路ユニット(「OCN:オンチップネットワーク」と呼ぶ)が正方形の中央を縦に貫く。OCNは、チップ内の回路ブロック間で通信処理を担う。

 正方形の四隅には、演算ユニット(「SCC」と呼ぶ)を2個ずつ配置してある。合計で8個のSCCを搭載している。SCCは「SPARCキャッシュクラスタ(SPARC Cache Cluster)」の略称で、CPUコアと2次キャッシュ、3次キャッシュをひとまとめにした回路ブロックである。SCCはM7プロセッサで採用された新しい構造で、詳しくは後述する。

 ブロック図の中央の横方向には、左右に1つずつ、マルチプロセッシングのシステムを構築するための回路ユニット(SMP:シンクロナスマルチプロセッシングと、コヒーレンシなど)がある。また中央の上端と下端には、外部メモリと接続するコントローラやリンクなどを配置した。外部メモリ(主記憶)は、DDR4 SDRAMである。

SPARC M7プロセッサの内部ブロック図。OCNは4GHzと高い周波数で動作する。プロセッサコアの動作周波数は発表しなかった
SPARC M7プロセッサのシリコンダイ写真。製造技術は20nm、13層金属配線。トランジスタのしきい電圧は4種類。入出力の電源電圧は1.5V。製造は台湾のTSMCが担当する

プロセッサコアと2次キャッシュ、3次キャッシュの集中配置で高速化

 先述のように、「SCC(SPARC Cache Cluster)」は4個のプロセッサコアと2次キャッシュ、3次キャッシュをまとめた回路ブロックである。プロセッサコア「S4コア」は、最大で8本のスレッドを並行して処理可能な、マルチスレッディング処理に対応する。M7プロセッサ全体では32個のS4コアを内蔵するので、最大で256本ものスレッドを並行して処理できることになる。またS4コアは2命令同時発行、アウトオブオーダー実行、パイプライン処理などの機能を備える。

 SCCの2次キャッシュは256KBの命令キャッシュと512KBのデータキャッシュ(256KBキャッシュが2個)である。4個のS4コアが命令キャッシュを共有し、2個のS4コアが256KBのデータキャッシュを共有する。2次キャッシュは2つのバンクと8本のウェイで構成されており、プロセッサコアとのデータ転送速度は最大で1TB/secに達する。このスループットはM6プロセッサの2倍だという。

 SCCの3次キャッシュは、8MBの共有キャッシュである。デュアルバンク構成であり、8ウエイセットアソシアティブ方式で2次キャッシュに接続される。3次キャッシュをSCCごとに物理的に分離したので、アクセスの遅延時間が25%強短くなったとする。なお論理的には、3次キャッシュはすべてのプロセッサコアが共有する64MBのキャッシュである。

演算ユニットSCC(SPARC Cache Cluster)の概要

8つのクロックドメインと7つの電源ドメイン

 M7プロセッサのクロックドメインと電源ドメインについても発表では触れていた。クロックドメインは8つ、電源ドメインは7つとかなり細かく分かれている。クロックドメインには、SCC用クロック、OCN用クロック(4.0GHz)、コヒーレンシ用クロック(2つのドメイン、2.4GHzと1.2GHz)、メモリコントローラ用クロック(1.33GHz)、メモリインタフェース用クロックなどがある。電源ドメインには、2個のSCCをまとめた電源が4つ、周辺回路(OCNやメモリコントローラなど)の電源が1つ、入出力回路の電源が2つある。各電源ドメインのクロックは独立しており、ダイナミックに電源電圧とクロック周波数を制御する。

クロックドメインと電源ドメイン

 消費電力の値は発表がなかったが、内訳については説明があった。プロセッサコアが消費電力の55%を占める。2次キャッシュは9%、3次キャッシュは10%である。SCCが消費電力全体の74%と、およそ4分の3を占めることが分かる。

消費電力の内訳

(福田 昭)