スーパーコンピュータ「京」のCPU SPARC64 VIIIfx

SPARC64 VIIIfx: CPU for the K computer● 吉田利雄● 本藤幹雄

●菅竜二

● 杉崎

剛

あらまし
スーパーコンピュータ「京」のプロセッサとして開発されたSPARC64 VIIIfxは，富士通セミコンダクターの45 nm CMOSプロセスを採用し，八つのコアと6 Mバイトの共有2次キャッシュ，メモリコントローラから構成される。動作周波数2 GHzでピーク性能128 GFLOPSを58 Wという低消費電力で実現した。電力あたりの性能は当社前機種のSPARCプロセッサに対し，6倍以上にまで達する。
著者らは，この電力あたりの性能を実現するためSPARC-V9アーキテクチャを拡張し，科学技術計算に最適な命令セットHPC-ACE（High Performance Computing-Arithmetic
Computational Extensions）を開発した。また水冷によるリーク電力削減，クロックゲーティングによるダイナミック電力削減により低消費電力化を行った。さらに8万個以上のプロセッサを接続するシステムの安定稼働のため，メインフレームやUNIXサーバの高信頼性技術を備える。
本稿では，SPARC64 VIIIfxの高性能，低消費電力，高信頼性を実現する技術について概説する。

Abstract
SPARC64 VIIIfx, which was developed as a processor for the K computer, uses Fujitsu
Semiconductor Ltd.ʼs 45-nm CMOS process for semiconductors and is composed ofeight cores, a 6 MB shared level 2 cache, and memory controllers. Peak performance of128 GFLOPS at an operating frequency of 2 GHz is achieved with power consumption
as low as 58 W. The performance per unit of power is more than six times that of theSPARC processor, our previous model. To achieve this performance per unit of power,
we extended the SPARC-V9 architecture to develop high performance computingarithmetic computational extensions (HPC-ACE), the optimum instruction set forscientiﬁc computations. In addition, we successfully reduced the leakage power bywater cooling and dynamic power by clock gating to achieve a lower power consumption.
Furthermore, high-reliability technology for mainframes and UNIX servers is used toensure stable operation of a system connecting more than 80 000 processors. This
paper outlines the technologies used to achieve the high performance, low power
consumption and high reliability of SPARC64 VIIIfx.

254

FUJITSU. 63, 3, p. 254-259（05, 2012）スーパーコンピュータ「京」のCPU SPARC64 VIIIfx

まえがまたチップ上の八つのコアによる並列処理を高き速化するため，全てのコアで2次キャッシュを共SPARC64 VIIIfx （図-1）はスーパーコンピュー
（1）

（注）

有し，さらにコア間の同期処理をハードウェアでタ「京」 のプロセッサとして開発された。「京」行う機能を備える。これに富士通の自動並列コンは10 PFLOPSを超える性能を実現するために8万パイラを組み合わせることで，ユーザはプログラ個以上のプロセッサがシステムに搭載される。そミングの際に複数コアであることを特に意識せず，のプロセッサには，高性能，低消費電力，高信頼複数コアをあたかも高速な一つのCPUとして扱う性がいずれも高いレベルで求められる。

ことが可能となる。これを富士通はVISIMPACT

本稿ではこれらを実現するための技術について（Virtual Single Processor by Integrated Multicore Parallel Architecture）と呼んでいる。

概説する。

（2）低消費電力システム全体の電力制限からプロセッサの消費
SPARC64 VIIIfx開発のねらいについて述べる。
（1）高性能電力を58 W以下にする必要があった。そのため低リークのトランジスタの使用や，水冷による冷却SPARC64 VIIIfxは八つのコアと共有2次キャッ方式によりジャンクション温度を30℃まで低下さシュ，メモリコントローラ（MAC），そして高速せてリーク電力を抑えている。さらに，クロックシリアル伝送のシステムインタフェースを内蔵すゲーティングなどを徹底的に行い，ダイナミックるマルチコアプロセッサである。

電力を低減する。

各コアが実アプリケーションで高い実行性能を 発 揮 す る た め に， 著 者 ら はSPARC-V9ア ー
（2）−
（4）

キテクチャの 拡 張 を 行 い， 科 学 技 術 計 算を 効 率 良 く 実 行 可 能 な 命 令 セ ッ トHPC-ACE（3）高信頼性
システムの安定稼働を実現するために，メインフレーム，UNIXサーバ（6），（7）で用いる高信頼性技術を備える。

（High Performance Computing-Arithmetic（5）を開発した。
Computational Extensions）（注）

理 化 学 研 究 所 が2010年7月 に 決 定 し た ス ー パ ー コ ン
ピュータの愛称。

SPARC64 VIIIfxのパイプラインを図-2に，諸元を表-1に示す。
コアは，命令制御部，演算処理部，1次キャッシュ部からなる。命令制御部は命令フェッチ，命令デコード，命令のアウトオブオーダ処理制御，そしシステムインタフェース

2次キャッシュ
データ部

コア4

MAC
MAC

コア6

2次キャッシュコントロール部

コア 1

コア0

MAC
MAC
コア3

2次キャッシュ
データ部

演算部は，二つの固定小数点演算器（EXA/B）
，

コア7

コア2

DDR3 インタフェース

DDR3 インタフェース

コア5て命令完了の制御を行う。
二つのロード，ストアのアドレス計算を行う演算器（EAGA/B），および浮動小数点積和演算器（FMA：
Floating-point Multiply-and-Add）を四つ（FLA/B/C/D） 備 え る。FMA演 算 器 はSIMD（SingleInstruction Multiple Data）構成を採り，一つの命令で二つの演算を並列に行う。一つのFMA演算器は毎サイクル浮動小数点の乗算と加算を実行することが可能であり，各コアで毎サイクル8個，チップでは64個の倍精度浮動小数点演算が実行可能である。動作周波数は2 GHzであり，ピーク性能は128 GFLOPSとなる。レジスタは固定小数点系で

図-1

SPARC64 VIIIfx チップ

FUJITSU. 63, 3（05, 2012）192本，浮動小数点系では256本である。
255

スーパーコンピュータ「京」のCPU SPARC64 VIIIfx

アウトオブオーダ実行
フェッチ

命令1次キャッシュ

デコード

命令
デコード

分岐予測
履歴

レジスタ
リード発行

アドレス
リザベーション
ステーション

固定小数点
レジスタ

固定小数点
リザベーション
ステーション

固定小数点
リネーミングレジスタ

浮動小数点
リザベーション
ステーション

浮動小数点レジスタ

分岐リザベーション
ステーション

浮動小数点
リネーミング
レジスタ

演算
実行

メモリアクセス

EAGB

データ1次キャッシュ

ストア
ポート

表-1

EXB
FLA
FLB
FLC
FLD

2次キャッシュ

8コア

SPARC64 VIIIfx パイプライン

SPARC64 VIIIfx諸元

項目

プログラム
カウンタ
制御
レジスタ

EXA

メモリ
コントローラ

図-2

コミット
制御部

フェッチ
ポート

EAGA

完了

諸元

ドウェアバリア機構を有する。これについては後述する。

コア数

8

2次キャッシュ

6 Mバイト

動作周波数

2 GHz

プロセステクノロジー

FSL

ダイサイズ

22.7 mm×22.6 mm

トランジスタ数

約7億6000万個

速シリアルI/Oで結合し，チップ間通信のスルーピーク性能

128 GFLOPSプットを確保している。

メモリ帯域

64 Gバイト/秒（理論ピーク値）

消費電力

58 W（プロセス条件TYP）

45 nm CMOSFSL：富士通セミコンダクター

メモリアクセスの低レイテンシ化，高スループット化のためメモリコントローラを内蔵した。メモ
リ帯域は理論ピーク値64 Gバイト/秒である。
また「京」専用のインターコネクトチップと高命令拡張

HPC-ACE

HPC-ACEはSPARC-V9アーキテクチャに対する科学技術計算向けの拡張命令セットである。この1次キャッシュ部は，ロード，ストア命令を処理開発に当たっては富士通ソフトウェア開発部門とする。コアごとに32 Kバイト2ウェイの命令キャッともに多数のHPCアプリケーションの解析に基づシュとデータキャッシュをそれぞれ有する。デーいて行った。

タキャッシュは，二つ同時にロードアクセスが可（1）レジスタ数の拡張

能なデュアルポート構成であり，16バイトのSIMDSPARC-V9における浮動小数点レジスタの数はロードを二つ，または16バイトのSIMDストアを32本であり，HPCアプリケーションには十分な本一つ実行する。

数ではない。しかしレジスタ数を増やすにも32ビッ2次キャッシュ部は八つのコアで共有され，各ト長のSPARCアーキテクチャでは命令長が不足しコアを含めたキャッシュコヒーレンスを保証する。

不可能であった。この課題解決のためHPC-ACEでまたコア間の高速同期処理のため，コア間のハーはSXAR（Set eXtended Arithmetic Register） と256FUJITSU. 63, 3（05, 2012）スーパーコンピュータ「京」のCPU SPARC64 VIIIfx

いう前置命令を新設した。SXAR命令は直後の最があった。これに対しセクタキャッシュ機構は，大2命令に対して，レジスタのアドレッシングの拡キャッシュを二つの領域（セクタ）に分け，再利張などを行う。レジスタアドレスを3ビット拡張

用頻度の高いデータをほかとは別のセクタに登録して浮動小数点レジスタ本数をSPARC-V9の8倍，することがソフトウェアから可能になる。ユーザ256本まで指定可能にした（図-3）。

が再利用頻度の高いデータをキャッシュに保持しコンパイラはこの大容量レジスタを用いてソフトウェアパイプライニングなどの最適化を行い，続けるよう制御することで性能向上に寄与する。
（4）三角関数sin，cosの高速化命令

アプリケーションが持つ命令レベルの並列性を最三角関数のsin，cosの高速化命令を追加した。従大限に引き出す。HPCの代表的なベンチマークの来は多数の命令を組み合わせて処理を行っている一つである姫野ベンチマークでは1.65倍の性能向が，専用命令化により命令数を削減したことで5倍上となっている。

以上高速化する。

（2）SIMD演算，ロード，ストア（5）条件付き実行

SIMDは一つの命令で複数のデータ処理を並列実if文を含むループを効率良く処理するためには条行する技術である。HPC-ACEはSIMD技術を採用

件分岐命令をなくすことが必要である。そのためし，一つの命令で二つのFMA演算を実行する。さHPC-ACEでは条件付き実行命令を追加した。具体らに複素数の乗算を高速化するためのSIMD演算も的には新規の比較命令で比較結果を浮動小数点レサポートしている。またロード命令とストア命令

ジスタに書き込み，その比較結果に基づいて条件もSIMD実行が可能となっている。ロード命令は倍付き実行命令を処理する。条件付き実行命令には，精度のとき8バイトアライン，単精度のとき4バイ浮動小数点レジスタ間のデータ転送と浮動小数点トアラインでペナルティなくSIMD処理を行う。

レジスタからメモリへのストアを用意した。これ（3）セクタキャッシュ機構

らの命令を組み合わせて条件分岐命令を取り除く

HPC-ACEではソフトウェア制御可能なキャッことで，コンパイラはif文を含むループに対してソシュ機構（セクタキャッシュ）を開発した。従来フトウェアパイプライニングなどによる最適化がのキャッシュはソフトウェアから制御を行うこと可能になる。

ができない。たとえユーザには再利用頻度の高い（6）除算，平方根近似データと分かっていても，ハードウェアがほかの逆数近似値を求める命令を追加した。これによデータをキャッシュに登録する際にキャッシュかり除算，平方根のパイプライン処理を可能にしてら掃き出してしまい性能向上の妨げになる場合おり，レジスタ数の拡張と合わせた効果でおよそ4倍のスループット向上となっている。
これら（1）から（6）の機能はいずれも周波数浮動小数点レジスタ

SPARC-V9を上げることなく性能向上を可能とし，SPARC64
32本

VIIIfxの電力あたりの性能の向上に大きく寄与している。

VISIMPACTSXAR

VISIMPACTのためのハードウェア機構につい拡張アドレス（3ビット）
アドレス レジスタアドレス（5ビット）
合計8ビット

拡張レジスタ224本

後続命令て説明する。
（1）共有2次キャッシュ
SPARC64 VIIIfxは6 Mバイトの2次キャッシュを備え，全8コアで共有する。コア間でのデータ共有を容易にすることで一つのプロセスを複数のコアで効率良く並列処理することが可能となる。

図-3

SXAR命令によるレジスタアドレス拡張

FUJITSU. 63, 3（05, 2012）257

スーパーコンピュータ「京」のCPU SPARC64 VIIIfx（2）ハードウェアバリア機構確保している。

SPARC64 VIIIfxはコア間の高速同期処理のためハードウェアバリア機構を備える。一つのプロこれらの技術によりプロセッサを8万個以上接続したシステムの安定稼働を実現する。

セスを複数のコアで並列実行させたとき，コア間むで待合せ（同期処理）を行う場合がある。通常の

すびプロセッサでは同期処理をソフトウェアで行うが，SPARC64 VIIIfxの開発は，著者らにとってまさ

SPARC64 VIIIfxは専用のハードウェアにより10倍に挑戦のプロジェクトであった。この開発に当たっ以上高速化している。同期処理のオーバヘッドがてはプロセッサ開発部門に加えて，ソフトウェア大きく削減されたことで，小さいループも複数コ開発部門，研究所などのメンバが結集し，富士通

アによる並列処理での高速化が可能となる。の総力を挙げての開発であった。長年にわたって培ってきたプロセッサ技術を継承しつつ，新たな低消費電力技術開発を行うことでスーパーコンピュータとし

SPARC64 VIIIfxはゲート長の長いトランジスタて発展させることができたと考えている。

を使用し，また冷却方式に水冷を採用してジャン

このプロセッサを搭載したスーパーコンピュー

クション温度を30℃まで下げることでリーク電力タ「京」が，今後様々な分野の課題解決に貢献すをチップ全体の電力の10%まで抑えている。

ることを期待する。

また各ラッチに徹底したクロックゲーティングを行い，電力削減に効果的な回路の組み方や制御参考文献方式に変更して動作時に消費するダイナミック電（1） T. Maruyama et al.：SPARC64 VIIIfx: A NewGeneration Octocore Processor For PETASCALE

力を削減した。
そ の 結 果，128 GFLOPSと い う 高 性 能 な が ら，
チップばらつきの平均で58 Wという低消費電力を実現した。これは電力あたりの性能で当社前機種のSPARCプロセッサに対し6倍以上にまで達する。

高信

頼性

SPARC64 VIIIfxは， メ イ ン フ レ ー ム やUNIXサーバの開発で培った高信頼性技術を備える。
プロセッサは非常に微細なトランジスタで構成

Computing．IEEE Micro ，Vol.30 Issue2，p.30-40（2010）．
（2） SPARC International：The SPARC Architecture
Manual（Version 9）．
http://www.sparc.org/standards/SPARCV9.pdf（3） 富士通：SPARC Joint Programming Speciﬁcation（JPS1）Commonality．
http://jp.fujitsu.com/solutions/hpc/brochures/（4） 富士通：SPARC JPS1 Implementation Speciﬁcation

されており，宇宙線の衝突などで信号が変化する

SPARC64 V．

可能性がある。このような間欠エラーの場合も誤http://jp.fujitsu.com/solutions/hpc/brochures/

動作することなく処理を続けるために，エラーが発生した命令をハードウェアで自動的に再実行す（5） 富士通：SPARC64 VIIIfx Extensions．
http://jp.fujitsu.com/solutions/hpc/brochures/

る命令リトライ機構を備えている。またプロセッ（6） 井上愛一郎：UNIXサーバ用プロセッサ：SPARC64

サ内の全てのRAMおよび固定小数点，浮動小数点

V．FUJITSU ，Vol.53，No.6，p.450-455（2002）．

レジスタの1ビットエラーはハードウェアで訂正処（7） 丸山拓巳ほか：SPARC64プロセッサの過去・現在・理を行う。プログラム実行に関連する部分につい未来．FUJITSU ，Vol.61，No.6，p.526-530（2010）．てはエラー検出コードで保護し，データ保全性を258

FUJITSU. 63, 3（05, 2012）スーパーコンピュータ「京」のCPU SPARC64 VIIIfx

著者紹介

吉田利雄（よしだとしお）

菅竜二（かんりゅうじ）次世代テクニカルコンピューティング
開発本部LSI開発統括部 所属
現在，プロセッサコアの開発に従事。

エンタプライズサーバ事業本部プロセッサ開発統括部 所属
現在，プロセッサコアの開発に従事。

本藤幹雄（ほんどう杉崎みきお）

次世代テクニカルコンピューティング
開発本部PAプロジェクト 所属
現在，プロセッサおよびシステムの性能評価に従事。

FUJITSU. 63, 3（05, 2012）

剛（すぎざきごう）

エンタプライズサーバ事業本部プロセッサ開発統括部 所属
現在，プロセッサの開発に従事。

259