福田昭のセミコン業界最前線
日本オラクル、買収以降のSPARCプロセッサと最新世代の「M7」を解説
2017年1月11日 06:00
かつては「SPARCプロセッサ」と言えば、エンジニアが真っ先に連想する会社はSun Microsystems (サン・マイクロシステムズ)だった。1982年2月24日に米国カリフォルニアのシリコンバレーに設立された「サンマイクロ」(あるいは単に「サン」とエンジニアは呼んでいた)は、1980年代後半に「ワークステーション」あるいは「エンジニアリング・ワークステーション」と呼ぶ、UNIXをOSとする高性能コンピュータを開発、販売することで、売上高が100億ドルを超える巨大企業へと成長した。
ワークステーションの高いコストパフォーマンスを支えたのが、サンマイクロ(以降はSun Microsystemsを「サンマイクロ」と呼称する)が開発した高性能プロセッサ「SPARC (Scalable Processor Architecture)プロセッサ」だ。
SPARCプロセッサの優位性を一言で説明することは難しいが、粗く言ってしまうと、メインフレームのCPUに比べると遥かにコストが低く、PCのCPUに比べると遥かに演算性能と可用性が高かったことにあるだろう。1990年代には、SPARCプロセッサの優位性がサンマイクロのコンピュータ事業を支えていた。
しかし、多くの方々がご存知のように、PC用プロセッサ、すなわちIntelのx86プロセッサは、1990年代~2000年代に飛躍的な性能向上を遂げた。それまでワークステーションをハードウェアプラットフォームとしていたアプリケーションの多くが、PCに乗り換えてしまった。2000年代の半ばに入ると、サンマイクロのワークステーション事業は深刻な状況に陥る。ハードウェアの一部を富士通と共同開発/製造したり、また、x86プロセッサを搭載したワークステーションやサーバーを開発し、販売するようになった。
2009年4月20日、米国のソフトウェア企業Oracleはサンマイクロを買収することで同社と合意したとアナウンスした。買収作業は2010年1月27日に完了し、サンマイクロはOracleに吸収合併された。
2010年の買収で、SPARCの開発ペースが向上
筆者は最近になってOracleの日本法人である日本オラクルから、SPARCプロセッサの最新世代である「M7プロセッサ」と「S7プロセッサ」の技術概要と、サンマイクロの買収から現在に至るまでのSPARCプロセッサの開発状況を説明していただく機会を得た。かなり興味深い内容を伺えたので、その概略をご報告したい。
まず意外だったのが、SPARCプロセッサの開発ペースである。
Oracle (「オラクル」と以降は表記)が2010年1月にサンマイクロの買収を完了して以降、2010年から2016年にかけてオラクルがリリースしたSPARCプロセッサは7つ。平均すると1年で1個のプロセッサの開発を完了させてきたことになる。特に2013年は凄い。「T5」、「M5」、「M6」と、1年で3つのSPARCプロセッサをリリースした。
サンマイクロが2004年から2009年にかけてリリースしたSPARCプロセッサは、筆者の調べによると5つ。「UltraSPARC IV」(2004年)、「UltraSPARC IV+」(2005年)、「UltraSPARC T1」(2005年)、「UltraSPARC T2」(2007年)、「UltraSPARC T2+」(2008年)である。ただし「UltraSPARC T2+」は、「UltraSPARC T2」にSMP (対称型マルチプロセッシング)機能を追加して、マルチプロセッサ構成のサーバーを実現可能にしたもので、新規設計のプロセッサとは呼びにくい。実質的には4つのプロセッサがリリースされたことになる。
従って、買収前と買収後を比較すると、SPARCプロセッサの開発ペースは買収後に高まっている、と言える。「SPARCプロセッサの開発リソースは、サンマイクロ時代よりも増やしています」(澤藤氏)。
さらに驚いたのは、2013年にリリースした「T5」、「M5」、「M6」までは、サンマイクロ時代に開発プロジェクトが進んでいたSPARCプロセッサだったことだ。オラクルの意向はこれらのSPARCプロセッサには反映されていないとも言える。
オラクルの技術者と旧サンマイクロの技術者が共同で開発した初めてのSPARCプロセッサは、2015年にオラクルがリリースした「M7」だ。5年の歳月をかけて開発された「M7」の設計思想は、過去のSPARCプロセッサとは根本的に異なっていた。
サンマイクロとオラクルの開発モデルの違い
M7プロセッサの設計思想の違いは、主にサンマイクロとオラクルの開発モデルの違
いによるところが大きい。
サンマイクロの開発モデルは、ハードウェアベンダーの開発モデルである。サーバーやストレージなどで構成されるハードウェア主体のソリューションを開発し、さまざまな用途に向けて販売する。ハードウェアがどのような用途で使われるかは、限定できない。このため、CPU(SPARCプロセッサ)の仕様は、汎用性を考慮して決めざるを得ない。もちろんこのことは、「汎用の」ハードウェアに搭載するCPUを開発する方針としては適正であり、悪いことではない。
オラクルの開発モデルは、ソフトウェアベンダーの開発モデルである。オラクルのソフトウェア(アプリケーションやミドルウェアなど)を高速に実行するために、ハードウェアが存在するという考え方だ。従って、特定の用途に使われることを前提に、CPU(SPARCプロセッサ)の仕様を決めることができる。
実際にM7プロセッサでは、データベースアプリケーション処理用のアクセラレータや、セキュリティ強化用のアクセラレータなどを組み込むことにより、これらの処理を極めて高速に実行する。
オラクル独自のアクセラレータを組み込む
データベースアプリケーション用のハードウェアアクセラレータと、セキュリティ強化用のハードウェアアクセラレータをSPARCプロセッサに組み込むことは、オラクルの要望によって実現した。
データベース用アクセラレータは2つあり、1つはデータベースのクエリを高速に実行する回路(オラクルは「SQLイン・シリコン」と呼ぶ)、もう1つは圧縮済みデータを高速に展開する回路(オラクルは「キャパシティ・イン・シリコン」と呼ぶ)である。
セキュリティ強化用アクセラレータも2つあり、1つはデータの暗号化を高速に実行する回路(オラクルは「クリプト・アクセラレーション」と呼ぶ)、もう1つはスレッドがアクセス可能なアドレスを一定の範囲に制限する回路(オラクルは「シリコン・セキュアド・メモリ(SSM)」と呼ぶ)である。
そして日本オラクルは、これらのアクセラレータ群を「ソフトウェア・イン・シリコン・アクセラレーション」と総称している。
主記憶のバンド幅を2倍~3倍、入出力のバンド幅を3倍に向上
前世代のSPARC M6プロセッサや、SPARC T5プロセッサなどと比べた時に、SPARC M7プロセッサで主に強化されたのは、外部チップとのデータ転送速度(バンド幅)の向上である。メモリ(主記憶)とのデータ転送速度(バンド幅)を2倍~3倍に高めるとともに、入出力(I/O)のデータ転送速度を3倍に高めた。
メモリでは、前世代がDDR3インターフェイスのSDRAMに対応していたのに対し、SPARC M7プロセッサは、DDRの最新世代であるDDR4インターフェイスのSDRAMに対応した。インターフェイスのチャンネル数は前世代(M6プロセッサ)と同じ16チャンネルだが、チャンネルあたりのDIMMボードの枚数を、前世代の2枚から最新世代では1枚と減らし、DIMMボードの速度を最大限に引き出す設計となっている。これは、アプリケーションの処理速度を高めることに繋がるとの考えからだ。
入出力では、PCI Express(PCIe)インターフェイスを大幅に強化した。前世代(M6プロセッサ)では8レーンのPCIe Gen3コントローラを2個、搭載していた。最新のSPARC M7プロセッサでは、PCIe Gen3コントローラを別チップとした。16レーンのPCIe Gen3コントローラを4個と、8レーンのPCIe Gen3コントローラを1個搭載したASICのシリコンダイをM7プロセッサと直結し、ASICダイを介してデータをやり取りする。
最大で8個のM7プロセッサを総当たりで直結
複数のプロセッサを接続するSMP(対称型マルチプロセッシング)への対応では、前世代(T5およびM6)と同様に、最大で8個のM7プロセッサを総当たりで直結可能になっている。この結果、SMP構成では、他社のプロセッサに比べると、遥かに高いスループットでプロセッサ間のデータ転送を実行できるとする。
また、あるプロセッサから別のプロセッサに外付けしたメモリをアクセス(リモートアクセス)する時のスループットも、他社のプロセッサで構成したシステムに比べるとオラクルのシステムは高速だとする。
SPARC M7プロセッサのベンチマーキング
そしてベンチマーキング結果を示すことで、日本オラクルはSPARC M7プロセッサおよび同プロセッサ搭載サーバーの優位性を強調した。
始めに示したベンチマーキング結果は、プロセッサの性能を示す「SPECint」と「SPECfp」である。「SPECint_rate2006(複数の整数演算タスクを並列実行した時のスループット)」では、他社のプロセッサに比べて1.7倍から1.8倍、「SPECfp_rate2006 (複数の浮動小数点演算タスクを並列実行したときのスループット)」では、他社のプロセッサに比べて1.8倍と高いピーク値を得たとする。
続いて、サーバーでJavaアプリケーションの処理速度を示す「SPECjbb2015 MultiJVM (1台のホストに複数のJava仮想マシンを実装してJavaアプリケーションを実行したときのスループット)」を示した。SPECjbb2015 MultiJVMには、最大のスループットを表すMax jOPSと、応答時間を一定以下に制限したときのスループットを表すCrit jOPSがある。
1個のSPARC M7プロセッサを搭載したサーバー(SPARC T7-1)のMax jOPSは、他社のプロセッサ1個を搭載したサーバーの2.5倍~3倍の値を得たとする。さらにCrit jOPSだと、プロセッサ1個当たりの値では、他社製プロセッサ搭載サーバーの4.2倍~4.6倍に達するとする。
最後は、エンタープライズ向けのJava (Java EE 5.0)を載せたコンピュータシステム全体を評価するベンチマーキング「SPECjEnterprise2010」の結果である。
評価したのは、JavaのWebアプリケーションを実行するサーバー(アプリケーション・サーバー)と、リレーショナルデータベース管理ソフトウェア(RDMS)を実行するサーバー(データベースサーバー)で構成したシステムであり、ネットワークのデータとデータベースのデータには暗号化処理をかけている。アプリケーションサーバーとデータベースサーバーのハードウェアは両方とも、1個のSPARC M7プロセッサを搭載した1台のSPARC T7-1である。
プロセッサ1個当たりのベンチマーキング値を他社製プロセッサによる同様なシステムと比べて見せた。他社製プロセッサのシステムは暗号化処理が全くなされていないにも関わらず、SPARC M7プロセッサのシステムは、プロセッサ1個当たりで2.3倍以上高速だとする。
ここで重要なのは、SPARC M7プロセッサのシステムは暗号化処理による性能の低下が極めて少ないことだ。「暗号化処理のペナルティは2%に過ぎません」(大曽根氏)。エンタープライズ用途でセキュリティが極めて重要であることは、あらためて指摘するまでもない。SPARC M7プロセッサのシステムであれば、暗号化処理を適用したセキュアなシステムをごく普通に使用可能と言える。
もう1つの最新世代プロセッサ「SPARC S7」と、アクセラレータ群「ソフトウェア・イン・シリコン・アクセラレーション」についての説明概要は、次回以降にお届けする予定である。