
そして、命令のフェッチ部分では従来のBranch Target Bufferだけによる予測にPattern History Tableを追加して分岐予測精度を改善し、演算部分ではHPC-ACEのサポートのためにFLC、FLD演算ユニットを追加している。
SPARC64 Xでは、4ソケットまでは直結できるプロセサ間インタフェースが新設され、また、メモリコントローラを内蔵し、DIMMもCPUチップに直結できる構造になった。
プロセサチップ間のリンクのバンド幅14.5GB/sで、このポートを5ポート(4チップの接続なら3ポートで足り、残る2ポートは64ソケット化を行うチップに接続すると考えられる)持っている。
また、メモリDIMM接続ポートはピークバンド幅が102GB/sで、Stream Triadの実行時に65.6GB/を実現できているという。
これは前世代のSPARC64 VII+nの4.35GB/sと比較すると15倍の性能向上である。
このプロセサ間リンクの高速トランシーバは14.5Gb/s×8レーンで作られており、これを8Gb/sにスローダウンして動作させ、同じトランシーバをPCI Express 3.0のポートにも使用している。
SPARC64 Xは基幹サーバ向けのプロセサで、当然、富士通の十八番のエラー検出、訂正、そして、命令のリトライによるエラーからの回復などの高いRAS機能を備えている。
次の図でグリーンとグレイの部分は1ビットエラーが起こってもハードウェアで自動的に回復するか、あるいは、エラーが問題にならない部分で、黄色の部分はエラー検出だけが可能な部分である。
なお、プロセサチップだけでは、黄色の部分のエラーから回復できないが、エラー発生を通知された他のプロセサがリカバリを行うなどの方法をとることによりシステムの停止を防止することができ、この部分のエラーは致命的とは限らない。
SPARC64 Xでは、IEEE 754-2008で規定された10進浮動小数点演算命令とOracleのDBで使われるNUMBER型と呼ぶ可変長で小数点以下の数値を持つ10進数演算命令、DESやAES暗号化などのセキュリティ関係の命令とDB向けの命令で合計28種の新命令を追加した。
これらの命令は汎用では無く、特定のソフトウェアで使われ、効果を発揮する命令であるので、富士通は、これをSoftware on Chip(SWoC)と呼んでいる。
このような改善が行われた3.0GHzクロックのSPARC64 Xは、2.86GHzクロックのSPARC64 VII+と比較すると、シングルスレッドの整数や浮動小数点処理では1.5倍程度の性能向上となっており、命令を追加したNUMBER処理では4倍近い性能向上、AES暗号処理では14倍以上の性能向上が達成されている。
また、 チップ単位で、4コアのSPARC64 VII+と16コアのSPARC Xの性能を比較すると、整数、浮動小数点演算、JVMでは約7倍、AESでは98倍、Streamでは15倍の性能を達成したという。
この測定はSPARC64 VIIむけの従来のコンパイラで行ったもので、SPARC64 X向けにコンパイラをチューニングすればより大きな性能向上が得られるという。
(後編に続く)【拡大画像を含む完全版はこちら】
続きを読む