福田昭のセミコン業界最前線

日本オラクル、最新のSPARCプロセッサ「S7」を解説

~Intel Xeonに対してどういった点で優れるのか

 筆者は最近になってOracleの日本法人である日本オラクルから、SPARCプロセッサの最新世代である「M7プロセッサ」と「S7プロセッサ」の技術概要と、Sun Microsystems(以降は「サンマイクロ」と表記の買収から現在に至るまでのSPARCプロセッサの開発状況を説明していただく機会を得た。買収以降のプロセッサ開発状況と、「M7プロセッサ」の技術概要は、以前の本コラムでレポートした。

 今回は「S7プロセッサ」の技術概要と、「M7」と「S7」の両方に搭載されているアクセラレータ回路技術「ソフトウェア・イン・シリコン・アクセラレーション」の概略をご報告する。

SPARCプロセッサの最新状況を説明する、日本オラクルの澤藤高雅(さわふじ たかまさ)氏(左)と大曽根明(おおそね あきら)氏(右)。「日本でもっともSPARCプロセッサに詳しい2人」(日本オラクル)だという。2016年12月に東京都港区の日本オラクル(オラクル青山センター)でPCWatch編集部が撮影

スケールアップの「M7」、スケールアウトの「S7」

 Oracle(以降は「オラクル」と表記)は、2015年10月26日に最新世代のSPARCプロセッサ「M7」の商品化を、翌年の2016年6月29日に同じ最新世代のSPARCプロセッサ「S7」の商品化を発表した。

 M7プロセッサとS7プロセッサは、CPUコアに同じ第4世代のコア(S4コア)を搭載しているほか、アクセラレータ回路「ソフトウェア・イン・シリコン・アクセラレーション」を内蔵する。また製造技術は同じ、TSMCの20nm CMOSプロセス、13層金属配線である。

オラクルが過去にリリースしたSPARCプロセッサの一覧。日本オラクルの説明資料から

 M7プロセッサとS7プロセッサの開発指針における最大の違いは、搭載するシステムの方向性の違いにある。M7プロセッサが搭載するシステムは、性能が大きく異なるサーバーを用意して要求仕様に応えようとする。

 M7プロセッサを1個だけ搭載するサーバーから、2個、4個、8個、最大では16個を搭載するサーバーまでオラクルは供給する。マルチプロセッサによってサーバーの性能を上げることで顧客の要求仕様に応える、「スケールアップ」のシステム設計に沿って開発したのがM7プロセッサだと言える。

 これに対してS7プロセッサが搭載するシステムは、比較的安価なサーバーを数多く用意することで、要求仕様に応えようとする。

 サーバーは基本的には、2種類しかない。S7プロセッサを1個だけ載せるサーバーと、S7プロセッサを2個載せるサーバーである。その代わり、S7サーバー1台の価格(参考価格)はM7サーバーに比べると大幅に低い。プロセッサ数当たりで見ると、おおよそ4分の1~10分の1である。

 この安価なサーバーを、適切な数だけ用意することによって顧客の要求仕様に応える、「スケールアウト」のシステム設計に適するように開発したのがS7プロセッサだと言える。

最新世代のSPARCプロセッサを搭載したサーバー製品群。左の2列は、S7プロセッサを搭載したサーバー(S7サーバー)。右側の5列は、M7プロセッサを搭載したサーバー(T7サーバーとM7サーバー)。日本オラクルの説明資料から

S7プロセッサではワンチップに全てを統合

 スケールアップ向けのM7プロセッサ、スケールアウト向けのS7プロセッサという設計思想の違いは、「M7が上位のプロセッサであり、S7が下位のプロセッサ(あるいはカットダウン版)である」といった単純な見方が誤りであることを意味する。S7プロセッサはM7プロセッサの下位バージョンではないし、カットダウン版でもない。ほぼ共通の技術を駆使した、別のシステム向けのプロセッサだと言える。

 S7プロセッサの実装がM7プロセッサともっとも大きく違うのは、S7プロセッサはワンチップ(1枚のシリコンダイ)に全ての機能を統合したプロセッサである点だろう。

 M7プロセッサでは拡張性(スケールアップの可能性)を重視していたので、最大で8個のプロセッサを総当りで高速に相互接続するリンクを備えていた。一方でメモリインターフェイスと入出力インターフェイスは直接の接続ではなく、外付けのASICチップを介在させた接続の構成となっていた。

 もう少し具体的に説明しよう。M7プロセッサとDDR4メモリとのインターフェイスは、M7プロセッサから見るとまず、DDR4コントローラごとに2チャンネルのシリアルリンクがある。

 次に「BoB(Buffer on the Board)」と呼ぶブリッジのASICによって1チャンネルのシリアルリンクを2チャンネルのDDR4パラレルリンクに変換する。入出力インターフェイスであるPCIeとM7プロセッサのやり取りも、専用のブリッジASICチップを介している。

 このようにして主記憶の容量を最大2TB(S7プロセッサの2倍)と大きくするとともに、入出力インターフェイスの帯域幅を145GB/秒(S7プロセッサの4.5倍)と極めて高くしていた。

 一方、S7プロセッサでは、メモリコントローラとメモリインターフェイスの両方を内蔵しており、最大で8個のDDR4メモリ(DDR4 SDRAMのDIMM)を直結する。さらに入出力インターフェイスでは、2チャンネルのPCIe Gen3 8レーン・インターフェイスを搭載する。

 一方でプロセッサ同士の接続数は最大で2個に留まっており、マルチプロセッシングによるスケールアップは、あまり意識していない。

M7プロセッサ(左)とS7プロセッサ(右)の主な違い。M7プロセッサはメモリインターフェイス用ASICと入出力インターフェイス用ASICを外付けすることによってメモリの大容量化と入出力インターフェイスの広帯域化を実現している(スケールアップが可能)。S7プロセッサではこれらの機能をワンチップに統合することで、コストパフォーマンスを向上させた(スケールアウトが前提)。日本オラクルの説明資料から
S7プロセッサの概要。アクセラレータ回路群はM7プロセッサと変わらない。M7と同様に、オラクルのアプリケーションとミドルウェアを高速に実行する。日本オラクルの説明資料から
T5プロセッサとM7プロセッサ、S7プロセッサの比較。S7プロセッサはM7プロセッサに比べてCPUコア数は4分の1と少ないものの、CPUコアの動作周波数は3.4%ほど向上している。またメモリ(主記憶)へのアクセス時間は26%ほど短くなり、メモリ帯域幅は13%ほど広がった。日本オラクルの説明資料から

S7プロセッサ搭載システムのベンチマーキング

 そしてベンチマーキング結果を示すことで、日本オラクルはSPARC S7プロセッサのCPUコアがいかに優れているかを強調した。

 Javaアプリケーションの処理速度をテストする「SPECjbb2015 MultiJVM(1台のホストに複数のJava仮想マシンを実装してJavaアプリケーションを実行した時のスループット)」のベンチマーク結果では、2枚のスライドが示された。

 1枚目のスライドは、2個のS7プロセッサを内蔵するサーバー「S7-2」と、Hewlett Packard Enterprise(HPE)のサーバー「ProLiant DL360 Gen9」を比較したもの。「S7-2」のコア数は16コア、「ProLiant DL360 Gen9」は22コアの「Intel Xeon E5-2699 v4」プロセッサを2個内蔵するので合計で44コアである。

 コア当たりのMax jOPS(最大のスループット値)は、「S7-2」が「ProLiant DL360 Gen9」の1.7倍と高いとする(なお厳密には、1.7倍となるのは同じプロセッサを搭載した「ProLiant DL380 Gen9」と比較した場合だと思われる)。

SPECjbb2015 MultiJVMのベンチマーキング結果(CPUコア1個当たり)。日本オラクルの説明資料から。なおこのベンチマーキング結果は2016年6月29日にオラクルが公表したもの。このスライドには示されていないが、オラクルの公表資料によるとコア当たりのMax jOPSの値は「S7-2」が4,112、「ProLiant DL360 Gen9」が2,743、「ProLiant DL380 Gen9」が2,402である。これらのベンチマーク値を比較すると、1.7倍になるのはDL380と比較した場合で、DL360と比較した場合は1.5倍になる。従ってこのスライドは、「1.7倍」あるいは「DL360」のどちらかが誤っていると思われる

 2枚目のスライドは、SPARC S7プロセッサを搭載するサーバーとSPARC M7プロセッサを搭載するサーバー、Intel Xeon E5-2699 v4あるいは「Intel Xeon E5-2699 v3」を搭載する複数のサーバーを含めて、CPUコア当たりのMax jOPSとCrit jOPS(応答時間を一定以下に制限した時のスループット値)を比較したもの。

 CPUコア当たりで見るとS7サーバーのMax jOPSは、Intel Xeon E5-2699 v4サーバーに比べて1.5倍~1.9倍と高い。しかも興味深いことに、SPARC M7サーバーよりもS7サーバーの方が、CPUコア当たりのjOPSが高いという結果が出ている。

SPECjbb2015 MultiJVMのベンチマーキング結果。日本オラクルの説明資料から。なおこのベンチマーキング結果は2016年6月29日にオラクルが公表したもの

 最後は、エンタープライズ向けのJava(Java EE 5.0)を載せたコンピュータ・システム全体を評価するベンチマーキング「SPECjEnterprise2010」の結果である。評価したのは、JavaのWebアプリケーションを実行するサーバー(アプリケーション・サーバー)と、リレーショナル・データベース管理ソフトウェア(RDMS)を実行するサーバー(データベース・サーバー)で構成したシステム。アプリケーション・サーバーとデータベース・サーバーのハードウェアは両方とも、2個のSPARC S7プロセッサを搭載した1台のSPARC S7-2である。

 ベンチマークを比較したシステムは、2個のIntel Xeon E5-2699 v4プロセッサを搭載するオラクルのサーバー「Oracle Server X6-2」をアプリケーションとデータベースに1台ずつ利用したシステムと、2個のIntel Xeon E5-2699 v3プロセッサを搭載するオラクルのサーバー「Oracle Server X5-2」をアプリケーションとデータベースに1台ずつ利用したシステムである。

 S7-2システムのCPUコア当たりのベンチマーク値は、Intel Xeon E5-2699 v4プロセッサに比べて約1.4倍、高いとする。またSPARC M7プロセッサの「SPECjEnterprise2010」ベンチマーク結果と同様に、S7プロセッサのシステムでデータを暗号化した時のオーバーヘッド(性能低下)はわずか2%に留まっている。

SPECjEnterprise2010のベンチマーキング結果。日本オラクルの説明資料から。なおこのベンチマーキング結果は、2016年6月29日にオラクルが公表したもの

 S7プロセッサのCPUコア当たりの性能が高いことは、少ないコア数で競合するプロセッサと同等に性能を出せることを意味する。例えば1秒間当たりで280万のJavaアプリケーション処理を実行するために、サーバーをスケールアウトしたシステムを設計したと仮定して日本オラクルはコストの違いを説明した。

 HPEの「ProLiant DL360 Gen9」(Intel Intel Xeon E5-2699 v4プロセッサ)だと32台のサーバーと768個のCPUコアが必要であり、1ドル当たりで処理できるJavaアプリケーションの演算数は2,500となる。これに対してオラクルの「S7-2」(SPARC S7プロセッサ)だと、必要なサーバー数は28台、必要なCPUコア数は448個と減少しながら、1ドル当たりで処理できるJavaアプリケーションの演算数は4,500と向上するという。

 そしてこれらのシステムを調達して3年間運用した場合のトータルコストは、「ProLiant DL360 Gen9」のシステムが1,145,000ドルであるのに対し、「S7-2」のシステムは614,000ドルとなり、わずか54%で済むとする。

280万/秒のJavaアプリケーション処理(2.8M Java Ops)を実行するシステムの見積もり結果。S7-2システムのCPUコア数が少ないことは、CPUコアごとにライセンス課金するソフトウェアのコストを下げる効果もあるという。日本オラクルの説明資料から

 なお、アクセラレータ群「ソフトウェア・イン・シリコン・アクセラレーション」についての技術概要は、次回以降にお届けする予定である。