SPARC
テンプレート:Infobox CPU architecture
SPARC(スパーク、Scalable Processor Architecture)は、サン・マイクロシステムズが開発・製造したRISCベースのマイクロプロセッサであり、その命令セットアーキテクチャの名称である。
現在はSPARCインターナショナルの登録商標であり、複数のメーカーがこのアーキテクチャに基づいたプロセッサを製造している。
概要
SPARCはサン・マイクロシステムズにより、1985年に最初に開発された。
SPARCはRISCベースで、特に浮動小数点演算とバイナリレベルの互換性に注意が払われている。同社は当初、自社のワークステーションに、モトローラ社の68000シリーズのMPUを利用していたが、後にカリフォルニア大学バークレー校のRISC Iをモデルに自社開発に着手。Sun4のSPARC搭載モデルを発表した。
SPARCは、完全ビッグエンディアンのRISCマイクロプロセッサ命令セットアーキテクチャで、SPARCインターナショナル(SPARC International, Inc.)の登録商標である。SPARCインターナショナルはSPARCアーキテクチャの普及と規格検定テストの実施を目的として1989年に設立された組織であり、SPARCアーキテクチャをオープンにすることで寿命を延ばすことを目的としている。テキサス・インスツルメンツ、サイプレス・セミコンダクタ、富士通、サン・マイクロシステムズなどの製造業者がSPARCのライセンス供与を受けている。結果として、SPARCアーキテクチャは完全にオープンとなっており、GPLの下にオープンソースとして実装されたLEONも存在する。
SPARCアーキテクチャの最初の実装はサン・マイクロシステムズのワークステーションで使われ、その後富士通などでも使われ、さらに大きなSMPシステムやスーパーコンピュータや制御用としても使われている。SPARCマシンは一般にSolarisオペレーティングシステム(サンがSPARC用に設計したOS)と結びつけて考えられている。ただし、SPARCプロセッサにはNEXTSTEP、Linux、FreeBSD、OpenBSD、NetBSDのようなオペレーティング・システムも使用できる。
アーキテクチャは何回か改訂されていて、最近のものがバージョン8と9である。1999年10月、富士通とサン・マイクロシステムズはバージョン9をベースにハイエンドSPARCプロセッサの共通仕様(コモン プログラマ リファレンスモデル)を共同開発することを発表した。この共通仕様は、SPARC Joint Programming Specification(JPS1) - Commonalityとして公開されている。2005年12月、サンはUltraSPARC T1をオープンソース化することを発表した。
特徴
SPARCアーキテクチャはカリフォルニア大学バークレー校の RISC I & II(バークレーRISC、en:Berkeley RISC)の設計に大きな影響を受けている。本来の RISC 設計は必要最小限のものであり、機能や命令の種類を可能な限り切り詰め、クロックサイクル毎に命令を実行することを目指した。このため、乗除算命令が無いなどMIPSアーキテクチャと様々な面で類似している。その他、初期のRISCからSPARCが影響を受けた点として分岐遅延スロットがある。
SPARCプロセッサは通常128本もの汎用レジスタを持つ。任意の時点でソフトウェアから見えるのは128本のうちの32本だけである。そのうち8本は汎用レジスタだが、g0レジスタは常に内容がゼロなので、実質的な汎用レジスタは7本で、常に同じ内容が見える。他の24本はコールスタックの一部をレジスタ化したものである。 これら24本のレジスタは、いわゆるレジスタ・ウィンドウを形成する。そして、関数呼出しとリターンの際に、このウィンドウがレジスタスタック上を上下に移動する。各ウィンドウは8本のローカルレジスタを持ち、8本のレジスタを上下の隣接ウィンドウのレジスタと共有する。共有されたレジスタは関数のパラメータ渡しと結果の値を戻すために使われ、ローカルレジスタは、各関数でのローカルな値を保持するために使われる。SPARCの名称の由来にある「Scalable」とは、SPARC仕様では組み込み用途からサーバ用途まで同じ仕様を実装し、非特権命令に関しては完全に互換を維持することを意味している。アーキテクチャ上用途に合わせて規模を変更できる点は、実装するレジスタ・ウィンドウの個数である。仕様では3個から32個までのウィンドウ実装を許していて、実装者は32個を実装して関数コール性能を向上させるか、3個だけ実装してコンテキスト切り替え性能を向上させるか、あるいはその中間を選択できる。このため、SPARCのアーキテクチャは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仕様が完成している。
さらにSPARC Joint Programming Specification(JPS1)では、 MMU等のバージョン9では未定義とされた部分の仕様が規定されている。
サン固有のアーキテクチャ仕様である UltraSPARC Architecture 2005 では、命令とレジスタが追加され、超特権(hyperprivileged)モードも追加された。この仕様はUltraSPARC T1から始まる新たな UltraSPARC シリーズで実装される。T1 はCPUコアを8個備え、全体で32スレッドを実行できる。UltraSPARC Architecture 2005 にはサンの標準拡張が含まれるが、それ以外は SPARC V9 Level 1 仕様に完全準拠している。このアーキテクチャは 1987年の SPARC V7 からのアプリケーションのバイナリ互換性を維持している。
2005年12月にサンは UltraSPARC T1 の実装をオープンソース化した(OpenSPARC参照)。
SPARCの様々な実装の中で、サンの SuperSPARC と UltraSPARC-1 は非常に人気があったことから、SPEC CPU95とCPU2000ベンチマークの基準システムとして使われている。
モデル | 周波数 [MHz] |
アーキテクチャ 版 |
年 | コア数×スレッド数=スレッド数合計 | プロセス [μm] |
トランジスタ数 [百万] |
ダイサイズ [mm2] |
ピン数 | 電力 [W] |
電圧 [V] |
L1 Dキャッシュ [k] |
L1 Iキャッシュ [k] |
L2 キャッシュ [k] |
L3 キャッシュ [k] |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SF9010/MB86900(or L64801) | 14.28–25 | V7 | 1988? | 1/1 | ||||||||||
CYC7C601 | 25–40 | V7 | 1989? | 1/1 | ||||||||||
microSPARC I | 40–50 | V8 | 1992 | 1/1 | 0.8 | 0.8 | 225 | 288 | 2.5 | 5 | 2 | 4 | -- | -- |
SuperSPARC I | 33–60 | V8 | 1991-1992 | 1/1 | 0.8 | 3.1 | -- | -- | 14.3 | 5 | 16 | 20 | 0-2048 | -- |
HyperSPARC A | 40–90 | V8 | 1993 | 1/1 | 0.5 | -- | -- | -- | -- | 5? | 0 | 8 | 128-256 | -- |
microSPARC II | 60–125 | V8 | 1994 | 1/1 | 0.5 | 2.3 | 233 | 321 | 5 | 3.3 | 8 | 16 | -- | -- |
HyperSPARC B | 90–125 | V8 | 1994 | 1/1 | 0.4 | -- | -- | -- | -- | 3.3 | 0 | 8 | 128-256 | -- |
SuperSPARC II | 75–90 | V8 | 1994 | 1/1 | 0.8 | 3.1 | 299 | -- | 16 | -- | 16 | 20 | 1024-2048 | -- |
HyperSPARC C | 125–166 | V8 | 1995 | 1/1 | 0.35 | -- | -- | -- | -- | 3.3 | 0 | 8 | 512-1024 | -- |
TurboSPARC | 160–180 | V8 | 1995 | 1/1 | 0.35 | -- | -- | 416 | 7 | 3.5 | 16 | 16 | 512 | -- |
UltraSPARC I | 143–200 | V9 | 1995 | 1/1 | 0.5 | 5.2 | 315 | 521 | 30 @167 MHz | 3.3 | 16 | 16 | 512-1024 | -- |
HyperSPARC D | 180–200 | V8 | 1996 | 1/1 | 0.35 | -- | -- | -- | -- | 3.3 | 16 | 16 | 512 | -- |
UltraSPARC IIs (Blackbird) | 250–360 | V9 | 1997 | 1/1 | 0.35 | 5.4 | -- | 521 | 25 @250 MHz | 2.5 | 16 | 16 | 1024 or 4096 | -- |
UltraSPARC IIs (Sapphire-Black) | 360–480 | V9 | 1999 | 1/1 | 0.25 | 5.4 | 156 | 521 | 21 @400 MHz | 1.9 | 16 | 16 | 1024–8192 | -- |
UltraSPARC IIi (Sabre) | 270–360 | V9 | 1997 | 1/1 | 0.35 | 5.4 | 148 | 587 | 21 | 1.9 | 16 | 16 | 256–2048 | -- |
UltraSPARC IIi (Sapphire-Red) | 333–480 | V9 | 1998 | 1/1 | 0.25 | 5.4 | -- | 587 | 21 @440 MHz | 1.9 | 16 | 16 | 2048 | -- |
UltraSPARC IIe (Hummingbird) | 400–600 | V9 | 2000 | 1/1 | 0.18 Al | -- | -- | 370 | 13 max @500 MHz | 1.5-1.7 | 16 | 16 | 256 | -- |
UltraSPARC IIi (IIe+) | 550–650 | V9 | 2002 | 1/1 | 0.18 Cu | -- | -- | 370 | 17.6 | 1.7 | 16 | 16 | 512 | -- |
UltraSPARC III | 600–900 | V9/JPS1 | 2001 | 1/1 | 0.13 Al | 29 | 330 | 1368 | 53 | 1.6 | 64 | 32 | 8192 | -- |
UltraSPARC IIIcu | 1002–1200 | V9/JPS1 | 2001 | 1/1 | 0.13 Cu | 29 | -- | 1368 | -- | 1.6 | 64 | 32 | 8192 | -- |
UltraSPARC IIIi | 1064–1593 | V9 | 2003 | 1/1 | 0.13 | 87.5 | 206 | 959 | 52 | 1.3 | 64 | 32 | 1024 | -- |
UltraSPARC IV | 1050–1350 | V9 | 2004 | 2/1=2 | 0.13 | 66 | 356 | 1368 | 108 | 1.35 | 64 | 32 | 16384 | -- |
UltraSPARC IV+ | 1500 | V9 | 2005 | 2/1=2 | 0.09 | 295 | 336 | 1368 | 90 | 1.1 | 64 | 64 | 2048 | 32768 |
UltraSPARC T1 | 1000–1400 | V9/UA 2005 | 2005 | 8/4=32 | 0.09 | 300 | 340 | 1933 | 72 | 1.3 | 8 | 16 | 3072 | -- |
UltraSPARC T2 | 1200–1400 | V9/UA 2007 | 2007 | 8/8=64 | 0.065 | 503 | 342 | 1831 | 95 | 1.1-1.5 | 8 | 16 | 4096 | -- |
SPARC T3 | –1670 | V9 | 2010 | 16/8=128 | 0.040 | ??? | 371 | ???? | 135 | ???? | 8 | 16 | 6144 | -- |
SPARC T4 | 2850 - 3000 | V9 | 2011 | 8/8=64 | 0.040 | 855 | 403 | ???? | 240 | ???? | 16 | 16 | 128 | 4096 |
SPARC64 | 101–118 | V9 | 1995 | 1/1 | 0.4 | -- | -- | -- | -- | -- | 128 | 128 | -- | -- |
SPARC64 II | 141–161 | V9 | 1996 | 1/1 | 0.34 | -- | -- | -- | -- | -- | 128 | 128 | -- | -- |
SPARC64 GP | 250–330 | V9 | 1998 | 1/1 | 0.24 | 17.6 | 240 | -- | -- | 2.5 | 64 | 64 | 8192 | -- |
SPARC64 GP | 400–810 | V9 | 2000 | 1/1 | 0.18 Cu 0.15 Cu |
30.2 | 217 | -- | -- | 1.8 | 128 | 128 | 8192 | -- |
SPARC64 V | 1100–1350 | V9/JPS1 | 2003 | 1/1 | 0.13 Cu | 190 | 289 | 269 | 40 | 1.2 | 128 | 128 | 2048内蔵 | -- |
SPARC64 V | 1650–2160 | V9/JPS1 | 2004 | 1/1 | 0.09 Cu | 400 | 297 | 279 | 65 | 1 | 128 | 128 | 4096内蔵 | -- |
SPARC64 VI | 2150–2400 | V9/JPS1 | 2007 | 2/2=4 VMT | 0.09 Cu | 540 | 421 | -- | 120 | -- | 128 | 128 | 6144内蔵 | -- |
SPARC64 VII | 2400–2520 | V9/JPS1? | 2008 | 4/2=8 SMT | 0.065 Cu | - | 445 | -- | 135 | -- | 64 | 64 | 6144内蔵 | -- |
SPARC64 VIIIfx[1] | 2000 | V9/JPS1/HPC-ACE | 2009 | 8/1=8 | 0.045 Cu | 760 | 513 | 1271 | 58 | -- | 32 | 32 | 5210内蔵 | -- |
SPARC64 IXfx[2] | 1848 | V9/JPS1/HPC-ACE | 2011 | 16/1=16 | 0.040 | 1870 | 484 | 1442 | 110 | -- | 32 | 32 | 12288内蔵 | -- |
SPARC64 X[3] | 3000+ | V9/JPS1/HPC-ACE | 2012 | 16x2=32 | 0.028 CMOS Cu |
2950 | 587.5 | 1500 | ? | ? | 64x16 | 64x16 | 24576 | -- |
SPARC64 X+[4] | 3500+ | V9/JPS1/HPC-ACE | 2013 | 16x2=32 | 0.028 CMOS Cu |
2990 | 600 | 1500 | ? | ? | 64x16 | 64x16 | 24576 | -- |
SPARC T5 | 3600 | V9 / OSA2011? | 2013 | 8×16=128 | 0.028 | ? | ? | ? | ? | ? | 16x8 | 16x8 | 128x16 | 8192 |
SPARC M5 | 3600 | V9 / OSA2011? | 2013 | 8×6=48 | 0.028 | ? | ? | ? | ? | ? | 16x6 | 16x6 | 128x6 | 49152 |
モデル | 周波数 [MHz] |
アーキテクチャ 版 |
年 | コア数×スレッド数=スレッド数合計 | プロセス [μm] |
トランジスタ数 [百万] |
ダイサイズ [mm2] |
ピン数 | 電力 [W] |
電圧 [V] |
L1 Dキャッシュ [k] |
L1 Iキャッシュ [k] |
L2 キャッシュ [k] |
L3 キャッシュ [k] |
SPARC64
SPARC64™ はHAL Computer Systemsならびに富士通が開発したプロセッサファミリであり、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月と2期連続でTOP500リスト首位を獲得したスーパーコンピュータの「京」に採用されている。
2011年に発表された SPARC64 IXfx は SPARC64 VIIIfx と同じくHPC向け製品である。クロック周波数が2GHzから1.848GHzに減ったもののコア数は8コアから16コアに増え、メモリ帯域も 64GB/s から 85GB/s と向上している。
SPARC64 IXfx は、富士通のスーパーコンピュータ PRIMEHPC FX10 (2011年11月7日に販売開始、2012年1月より出荷[5][6])に採用されている。
SPARX64 X は、富士通のUNIXサーバ SPARC M10(2013年4月10日提供開始[7])に採用されている。SPARX64 Xは、UNIXサーバ向けプロセッサとして初めて HPC-ACE を実装した。
SPARX64 X+ は、富士通のUNIXサーバ SPARC M10(2014年4月8日提供開始[8])に採用されている。SPARX64 X+のクロック周波数 3.0GHz に対し 3.7GHz に向上させ、暗号処理・十進浮動小数点数(IEEE 754形式とOracle NUMBER形式)・データベース処理をサポートする命令が追加された。また、従来不可能であったcall/returnを跨いだアウトオブオーダー処理を可能としている。
Rock
Rockはサン・マイクロシステムズがかつて自社開発していた、ハイエンド用のマルチコアSPARCモデルの開発コード名である。次期UltraSPARCとも呼ばれた。2007年1月の発表では、最大で16コアを搭載するとされ、2008年後半に提供予定とされた[9] 。2008年2月のISSCC 2008では、16コアで最大32スレッドを並行実行し、アウト・オブ・オーダーを採用し、動作周波数 2.3GHzを実現するとされたが、提供時期は最適化のために2009年以降へ延期が発表された[10] [11]。更に2009年6月には、2008年の提供が延期されたのは社内で欠陥が発見されたためであり、開発中止が決定されたと報道された[12] [13]。
2010年1月27日、サン・マイクロシステムズはオラクルに吸収合併され、独立企業・法人としては消滅した。
参照
- ↑ [http://img.jp.fujitsu.com/downloads/jp/jhpc/090825HotChips21.pdf SPARC64™ VIIIfx Fujitsu's New Generation Octo Core Processor for PETA Scale computing(ペタスケールコンピューティングに向けた富士通の新世代オクトコアプロセッサ)] - HOT CHIP 21 発表資料
- ↑ White paperスーパーコンピュータ PRIMEHPC FX10 の先進技術
- ↑ テンプレート:Cite web
- ↑ テンプレート:Cite web
- ↑ PRIMEHPC FX10 : 富士通
- ↑ 【PC Watch】 富士通、最大23.2PFLOPSを実現するスパコンを発売 ~京で用いた技術をさらに発展
- ↑ テンプレート:Cite web
- ↑ テンプレート:Cite web
- ↑ Sun、「Rock」を2008年にリリース
- ↑ Sunがサーバー向けハイエンドプロセッサ「Rock」の概要を公表
- ↑ Sun、Rockのリリースを2009年に延期
- ↑ 「SunがサーバプロセッサRockの開発打ち切り」の報道
- ↑ Sun Is Said to Cancel Big Chip Project - The New York Times
外部リンク
- SPARC International, inc.: http://www.sparc.org/ (日本語ページあり)
- 米国Sun Microsystems: http://sun.com/ (英文であるが一部日本のページもある)
- サン・マイクロシステムズ: http://jp.sun.com/
- 富士通: http://jp.fujitsu.com/ 、http://primeserver.fujitsu.com/primepower/catalog/ap/ (SPARC64™V 仕様書) 、 http://primeserver.fujitsu.com/primepower/catalog/data/ (ホワイトペーパー)