次に示すのは富士通の発表に添えられている8筐体のFX10の写真と、8筐体の「京」システムが動き出した際に理研のWebページに公開された8筐体システムの写真である。

(左)富士通のPRIMEHPC FX10スパコン(出典:富士通のWebサイト)、(右)京コンピュータの8筐体クラスタ(4筐体は裏側にあり、見えない)(出典:理研 次世代スーパーコンピュータ開発本部Webサイト)

ここで、注目されるのは、「京」システムでは、4本の計算ノード筐体の間に別の筐体が入っているのに対して、FX10では同じ筐体が4本並んでいるだけで、この種類の違う筐体が無い点である。実は、「京」の方の中央にある種類の違う筐体は、6次元メッシュ・トーラスで接続された計算ノード群の近くに置かれるローカルファイルシステムのRAIDディスクが入っている。

FX10の写真では、このRAIDディスクが無くなっているので、どうなったのかとSC11のブースで展示員に質問したところ、「京」ではI/OノードとローカルファイルシステムのRAIDディスクを電気ケーブルで接続していたので筐体を近接した位置に置いていたが、FX10ではこの接続を光ファイバに替え、RAIDディスクの配置の自由度を高めたとのことであった。ということで、配置は変わったが、FX10でも、ローカルファイルシステムとグローバルファイルシステムを使うというシステム構成は「京」と同じである。

「京」からFX10への主要な変更点は、プロセサチップがSPARC64 VIIIfxからIXfxに代わった点である。一方、Tofuインタコネクトを構成するICCチップに関しては、ホワイトペーパーに記載された仕様やチップ写真は「京」の時から変更がなく、「京」と同じLSIが使われているものと考えられる。

SPARC64 VIIIfxプロセサとIXfxプロセサの主要な諸元を比べてみると次の表のようになっている。

このようにSPARC64 VIIIfxとIXfxでは、コア数が倍増し、ピーク演算性能は1.85倍に向上している。しかし、消費電力は58Wから110Wと約2倍に増加しており、ピーク演算性能/電力ではVIIIfxの2.21GFlops/Wから2.15GFlops/Wとエネルギー効率はわずかに低下している。また、信号端子数が171ピン増加しており、機能的な拡張があると思われるが、これらの端子が何に使われているのかは不明である。

ここで不思議なのはコア数が倍増し、L2キャッシュ容量は2.4倍に増加しているのに対して、チップ面積は5.7%減少している点である。もちろん、半導体プロセスが45nmから40nmに微細化されているので、同じ物量ならば20%程度チップ面積が減るが、それでも物量が2倍なら、結果としてチップ面積は60%増えるはずである。

11月15日のLSIの発表で、このからくりの一端が明らかになった。この発表によると、SPARC64 IXfxの開発にはLSI(日本法人はLSIロジック)が協力し、同社の広範なIPポートフォリオと自動化された設計フローを使用したと述べられている。具体的にどのような協力をしたかは明らかにされていないが、普通に考えると、富士通が論理設計を行い、物理設計はLSIが担当したものと思われる。

富士通の半導体部門は、45nm以降の半導体プロセスの自主開発は行わず、それ以降の微細化は台湾のTSMCのプロセスを顧客に提供すると発表している。従って、SPARC64 IXfxもTSMCの40nmプロセスで製造されていると考えられる。新しいプロセスになると、新たに論理ゲート、SRAM、DDR3 DRAMインタフェースなどのマクロを作り、テストチップを作って動作を確認するなどの作業が必要になる。また、配置や配線を行うCADシステムもそれに合わせて手直しが必要となる。先端プロセスとしては旬を過ぎた40nmプロセスのために、今さらこのような手間を掛けるのはもったいない。また、ファンドリであるTSMCもエンジニアを割いて、この作業に付き合う必要がでる。

ここで、既にTSMCの製造プロセスに合わせたマクロやCADを持ち、実績のあるLSIのマクロや配置配線CADを使えば、これらの手間が省ける。もちろん、チップ上のハイレベルの配置設計やタイミングクロージャなど、富士通のエンジニアも物理設計に参加しているのであろうが、LSIが主体となって物理設計が行われたのではないかと思われる。

SPARC64 IXfxのチップ写真(出典:富士通のFX10ホワイトペーパー)

SPARC64 VIIIfxのチップ写真(出典:Hot Chips21での発表資料)

SPARC64 VIIIfxとIXfxのチップ写真をもとに、おおざっぱであるが、各部の面積を比べてみると、次の表のようになる。

この表の同一寸法換算の面積比は、どちらも同じ半導体プロセスで作ったと仮定し、SPARC64 VIIIfxの面積を(40/45)の2乗倍してSPARC64 IXfxの面積との比率を計算したものである。

これを見ると、ICCインタフェース以外の部分ではLSIの設計の方が高密度で、コアでは25%、L2キャッシュでは40%少ない面積で実装されている。一方、L2コントローラやメモリインタフェース、ICCインタフェースでは、その差は10%以下である。

なぜ、コアやL2キャッシュが高密度となっているかという理由ははっきりしないが、コア部分でみるとSPARC64 VIIIfxでは空き領域と思われる隙間が目立つのに対して、IXfxの方は空き領域が少ないように見える。また、富士通の関係者から、従来(VIIIfx)は人手によるカスタムレイアウトを多用していたが、SPARC64 IXfxでは自動配置配線を使用した。CADも進歩しており、こちらの方が密度が高くなるという話を聞いており、空き領域以外のロジック部分でも面積が減っているのかも知れない。

キャッシュに関しては、LSIは組み込みDRAMマクロを持っているのでこれをL2キャッシュに使ったという可能性も無いではないが、トランジスタ数からは通常のSRAMを使っていると考えられる。チップ写真からは、SPARC64 IXfxのL2キャッシュの方が個々のSRAMマクロの容量が大きく分割損が小さいように思われるが、それだけが原因かどうかは分からない。いずれにしても、LSIのL2キャッシュは富士通のVIIIfxのL2キャッシュに比べて容量あたりの面積が40%小さい。

この設計の密度差から、45nmから40nmというわずかなシュリンクで2倍のコア数と2.4倍のL2キャッシュをほぼ同じ面積に詰め込むことができたのは、大成功と言ったところであろう。

また、TSMCの40nmプロセスはGPUを始めとして各社のチップに使用されているが、高速のものでもクロック周波数は1~1.2GHz程度というのが一般的である。これに対してSPARC64 IXfxでは1.848GHzという高いクロックを実現しており、高度のタイミングチューニングが行われたと思われる。