SPARC

SPARC (Scalable Processor Architecture)



SPARCは、サン・マイクロシステムズによって開発されたRISC(Reduced Instruction Set Computing)ベースのマイクロプロセッサであり、その命令セットアーキテクチャの名称です。現在、SPARCインターナショナルの登録商標であり、複数のメーカーがこのアーキテクチャに基づいてプロセッサを製造しています。オープンソース版が存在することも特徴です。

歴史



SPARCは1985年サン・マイクロシステムズによって最初に開発されました。RISCの設計思想に基づいており、特に浮動小数点演算とバイナリレベルの互換性に重点が置かれています。当初、サンはモトローラの68000シリーズMPUを使用していましたが、カリフォルニア大学バークレー校RISC Iをモデルに自社開発に着手し、Sun4にSPARCを搭載しました。

SPARCはビッグエンディアンのRISCアーキテクチャであり、SPARCインターナショナルがその商標を管理しています。1989年に設立されたSPARCインターナショナルは、SPARCアーキテクチャの普及と規格認定テストの実施を目的とし、アーキテクチャのオープン化を通じてその寿命を延ばすことを目指しています。テキサス・インスツルメンツ、サイプレス・セミコンダクタ、富士通などの製造業者がSPARCのライセンスを取得しています。結果として、SPARCアーキテクチャは完全にオープンとなり、GPLの下でオープンソースとして実装されたLEONも存在します。

初期のSPARCは主にサン・マイクロシステムズワークステーションで使用されましたが、その後富士通などでも採用され、より大規模なSMPシステム、スーパーコンピュータ、制御システムにも利用されるようになりました。SPARCマシンは一般的に、サンがSPARC用に設計したSolarisオペレーティングシステムと関連付けられますが、NEXTSTEP、Linux、FreeBSD、OpenBSD、NetBSDなどのオペレーティングシステムもサポートしています。

SPARCアーキテクチャは数回にわたり改訂されており、最新のバージョンは8と9です。1999年10月には、富士通とサンがバージョン9をベースにしたハイエンドSPARCプロセッサの共通仕様を共同開発することを発表しました。この共通仕様は「SPARC Joint Programming Specification (JPS1) - Commonality」として公開されています。また、2005年12月には、サンがUltraSPARC T1をオープンソース化しました。

長らく信頼性の高いUNIX CPUとして幅広いシステムで使用されてきましたが、2010年代に入りクラウドコンピューティングの普及に伴い、汎用ハードウェアでx86仮想化を用いるシステムが増加し、SPARCは特に性能要求の厳しい一部のシステムでのみ利用されるようになりました。

特徴



SPARCアーキテクチャは、カリフォルニア大学バークレー校RISC I & II(バークレーRISC)の設計に大きな影響を受けています。RISCの原則に従い、命令セットを最小限に抑え、クロックサイクル毎に命令を実行することを目指しています。このため、乗除算命令が存在しない、分岐遅延スロットがあるなど、MIPSアーキテクチャと類似点があります。

SPARCプロセッサは通常128本の汎用レジスタを持ちますが、ソフトウェアから見えるのは32本のみです。そのうち8本は汎用レジスタですが、g0レジスタは常にゼロを保持しており、実質的に汎用レジスタは7本です。残りの24本は、コールスタックの一部をレジスタ化したものです。

この24本のレジスタはレジスタウィンドウを形成し、関数呼び出しと戻りの際に、このウィンドウがレジスタスタック上を移動します。各ウィンドウは8本のローカルレジスタを持ち、8本のレジスタを上下の隣接ウィンドウと共有します。共有されたレジスタは、関数のパラメータの受け渡しや戻り値の返却に使用され、ローカルレジスタは各関数でのローカル値を保持します。

「Scalable」という名前の由来は、組み込み用途からサーバー用途まで同じ仕様を実装し、非特権命令に関して完全に互換性を維持することを意味します。アーキテクチャ上、用途に合わせて規模を変更できるのは、実装するレジスタウィンドウの数です。仕様では3個から32個までのウィンドウ実装が許可されており、実装者は32個を実装して関数呼び出しの性能を向上させるか、3個だけ実装してコンテキスト切り替え性能を向上させるかを選択できます。この設計は、C言語などの構造化プログラミング言語に最適化されているとされています。同様のレジスタウィンドウを持つアーキテクチャとして、Intel i960やAMD 29000があります。

SPARCバージョン8(1987年)では、浮動小数点レジスタファイルは16本の倍精度レジスタを持ち、各レジスタは2本の単精度レジスタとしても使用でき、合計32本の単精度レジスタとなります。2本の倍精度レジスタを組み合わせて四倍精度レジスタとして使用することもでき、全体で8本の四倍精度レジスタとなります。SPARCバージョン9(1995年)ではさらに16本の倍精度レジスタが追加されましたが、これらは単精度レジスタとしては使用できません(四倍精度レジスタ8本としては使用可能)。

タグ付き加減算命令は、LSBの2ビットを無視して加減算を行います。これは、MLやLISPなどのタグ付き整数フォーマットを使用する言語の実装に役立ちます。

仕様の履歴



アーキテクチャは数回にわたり改訂されています。ハードウェアによる乗算と除算がバージョン8で追加され、バージョン9では大幅な改訂により64ビット化されました。

さらに、「SPARC Joint Programming Specification (JPS1)」では、バージョン9で未定義だったMMUなどの仕様が定義されました。

サン・マイクロシステムズ固有のアーキテクチャ仕様である「UltraSPARC Architecture 2005」では、命令とレジスタが追加され、超特権(hyperprivileged)モードも追加されました。この仕様は、UltraSPARC T1から始まる新しいUltraSPARCシリーズで実装されています。T1は8つのCPUコアを持ち、合計32スレッドを実行できます。「UltraSPARC Architecture 2005」にはサンの標準拡張が含まれていますが、それ以外はSPARC V9 Level 1仕様に完全に準拠しています。このアーキテクチャは、1987年のSPARC V7からのアプリケーションのバイナリ互換性を維持しています。

2005年12月には、サン・マイクロシステムズがUltraSPARC T1の実装をオープンソース化しました(OpenSPARC参照)。

サン・マイクロシステムズのSuperSPARCとUltraSPARC-1は、SPARCの様々な実装の中で非常に人気が高く、SPEC CPU95とCPU2000ベンチマークの基準システムとして使用されました。

SPARC64



SPARC64は、HALコンピュータシステムおよび富士通が開発したプロセッサファミリであり、SPARCシリーズのハイエンドプロセッサです。SPARC64 Vは富士通のPRIMEPOWERサーバーシリーズで使用され、SPARC64 VIおよびSPARC64 VIIは同社とサン・マイクロシステムズのSPARC Enterprise M3000からM9000に使用されました。

富士通メインフレーム用プロセッサと同じ開発者が設計・開発しているため、メインフレームプロセッサのRAS(信頼性、可用性、保守性)技術を継承しています。キャッシュメモリ、演算器、レジスタなど、どの回路でエラーが発生しても検出できるように、ECCとパリティで保護されています。エラーが発生すると、ECCとハードウェア命令リトライにより修正が行われます。訂正不可能なエラーが発生した場合でも、正常なコアとキャッシュメモリだけで動作し続けることができます。プロセッサの動作を記録する機能も備え、エラー発生時の原因特定に役立ちます。

また、スーパースケーラ、アウトオブオーダー実行、ノンブロッキングキャッシュ制御、ハードウェアプリフェッチなどの高速化技術を採用しています。SPARC64 VIおよびSPARC64 VIIでは、マルチコア・マルチスレッドに対応しています。

2009年に発表されたSPARC64 VIIIfxはHPC向けの製品です。2-Way SMTからシングルスレッドになりましたが、コア数は4コアから8コアに増加しました。また、メモリコントローラがプロセッサに統合され、新たに開発されたHPC向け命令拡張「HPC-ACE (High Performance Computing - Arithmetic Computational Extensions)」が実装され、レジスタ数が増加し、SIMD命令が強化されました。

SPARC64 VIIIfxは、2011年6月と同年11月TOP500リストで首位を獲得したスーパーコンピュータ「京」に採用されています。

2011年に発表されたSPARC64 IXfxもHPC向け製品です。クロック周波数が2GHzから1.848GHzに低下しましたが、コア数は8コアから16コアに倍増し、メモリ帯域も64GB/sから85GB/sに向上しました。

SPARC64 IXfxは、富士通スーパーコンピュータPRIMEHPC FX10に採用されました。

SPARC64 Xは、UNIXサーバー向けプロセッサとして初めてHPC-ACEを実装し、富士通UNIXサーバーSPARC M10に採用されました。

SPARC64 X+は、富士通UNIXサーバーSPARC M10に採用され、SPARC64 Xのクロック周波数を3.7GHzに向上させた上で、暗号処理、十進浮動小数点数(IEEE 754形式とOracle NUMBER形式)、データベース処理をサポートする命令が追加されました。また、従来不可能だったcall/returnを跨いだアウトオブオーダー処理が可能になりました。

2019年8月、富士通は「京」の後継となるスーパーコンピュータ「富岳」に、SPARCとは異なるARMアーキテクチャを使用するA64FXを開発したことを発表しました。

2022年2月、富士通メインフレームおよびUNIXサーバーの開発・販売を2030年までに終了する方針を発表しました。SPARC64ファミリー搭載製品はSPARC64 XIIを搭載したUNIXサーバー「SPARC M12」が最後となる予定です。

Rock



Rockは、サン・マイクロシステムズが開発していたハイエンド向けのマルチコアSPARCモデルの開発コード名です。次世代のUltraSPARCとも呼ばれていました。2007年1月の発表では、最大16コアを搭載し、2008年後半に提供予定とされていましたが、2008年2月のISSCC 2008では、16コアで最大32スレッドを並行実行し、アウトオブオーダーを採用し、動作周波数を2.3GHzで実現するとされました。しかし、最適化のために提供時期は2009年以降に延期され、さらに2009年6月には、社内で欠陥が発見されたため開発が中止されたと報道されました。

2010年1月27日、サン・マイクロシステムズはオラクルに吸収合併され、独立企業・法人としては消滅しましたが、その後もSPARCの開発は継続されました。

参照



関連項目



CPU
マイクロプロセッサ
RISC
京 (スーパーコンピュータ)

外部リンク



SPARC International, inc.(日本語ページあり)
米国Sun Microsystems(英文であるが一部日本のページもある)
サン・マイクロシステムズ
富士通、(SPARC64TMV 仕様書)、(ホワイトペーパー)

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。