SPARC

Article on other languages:

del.icio.us del.icio.us
Digg Digg
Furl Furl
Reddit Reddit
Rojo Rojo
Add to OnlyWire
UltraSPARC II マイクロプロセッサ
SuperSPARC TMX390Z50GF H359403658C

SPARC(スパーク、Scalable Processor Architecture)は、サン・マイクロシステムズ1985年に最初に開発したマイクロプロセッサ命令セットアーキテクチャの名称。RISCベースで、特に浮動小数点演算とバイナリレベルの互換性に注意が払われている。同社は当初、自社のワークステーションに、モトローラ社の68000シリーズのMPUを利用していたが、後にカリフォルニア大学バークレー校のRISC Iをモデルに自社開発に着手。Sun4のSPARC搭載モデルを発表した。

SPARCは、完全ビッグエンディアンRISCマイクロプロセッサ命令セットアーキテクチャで、SPARCインターナショナル(SPARC International, Inc.)の登録商標である。SPARCインターナショナルはSPARCを広めることと規格検定テストを行うために1989年に設立された組織であり、SPARCアーキテクチャをオープンにすることで寿命を延ばすことを目的としている。テキサス・インスツルメンツサイプレス・セミコンダクタ富士通サン・マイクロシステムズなどの製造業者がSPARCのライセンス供与を受けている。結果として、SPARCアーキテクチャは完全にオープンとなっていて、完全オープンソース実装のLEONが存在している。これはVHDLで書かれていて、そのソースコードはLGPLの元で利用可能となっている。

SPARCアーキテクチャの最初の実装はサン・マイクロシステムズワークステーションで使われ、その後富士通などでも使われ、さらに大きなSMPシステムやスーパーコンピュータや制御用としても使われている。SPARCマシンは一般にSolarisオペレーティングシステム(サンがSPARC用に設計したOS)と同義と考えられている。ただし、NEXTSTEPLinuxFreeBSDOpenBSDNetBSDのようなオペレーティング・システムも SPARCプロセッサ上で動作する。

アーキテクチャは何回か改訂されていて、最近のものがバージョン8と9である。1999年10月、富士通サン・マイクロシステムズはバージョン9をベースにハイエンドSPARCプロセサの共通仕様(コモン プログラマ リファレンスモデル)を共同開発することを発表した。この共通仕様は、SPARC Joint Programming Specification(JPS1) - Commonalityとして公開されている。2005年12月、サンはUltraSPARC T1をオープンソース化することを発表した。

目次

特徴

SPARCアーキテクチャはカリフォルニア大学バークレー校の RISC I & II の設計に大きな影響を受けている。本来の 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 i960AMD 29000がある。

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

タグ付き加減算命令はLSBの2ビットを無視して加減算を行う。これは、MLLISPなどのタグ付きの整数フォーマットを使うような言語の実装に有効と思われる。

歴史

アーキテクチャは何回か改訂されている。ハードウェアによる乗算と除算がバージョン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 CPU95CPU2000ベンチマークの基準システムとして使われている。


SPARCマイクロプロセッサ仕様
モデル 周波数
[MHz]
アーキテクチャ
コア数×スレッド数=スレッド数合計 プロセス
[μm]
トランジスタ数
[百万]
ダイサイズ
[mm2]
ピン数 電力
[W]
電圧
[V]
L1 Dキャッシュ
[k]
L1 Iキャッシュ
[k]
L2 キャッシュ
[k]
L3 キャッシュ
[k]
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 --
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 30.2 217 -- -- 1.8 128 128 8192 --
SPARC64 V 1100–1350 V9/JPS1 2003 1/1 0.13 190 289 269 40 1.2 128 128 2048内蔵 --
SPARC64 V 1650–2160 V9/JPS1 2004 1/1 0.09 400 297 279 65 1 128 128 4096内蔵 --
SPARC64 VI 2150–2400 V9/JPS1 2007 2/2=4 0.09 540 421 -- 120 -- 128 128 6144内蔵 --
SPARC64 VII 2400–2520 V9/JPS1? 2008 4/2=8 0.065 - 445 -- 135 -- 64 64 6144内蔵 --

SPARC64

SPARC64™ はHAL Computer Systemsならびに富士通が開発したプロセッサファミリであり、SPARC64 Vは同社のPRIMEPOWERサーバシリーズで、SPARC64 VIおよびSPARC64 VIIは同社とサン・マイクロシステムズSPARC Enterprise M4000からM9000に使用されている。

同社のメインフレームプロセッサと同じ開発者が設計・開発しているため、 メインフレームプロセッサのRAS(信頼性、可用性、保守性)技術をすべて 継承している。キャッシュメモリ、演算器、レジスタ等、 どの回路でエラーが発生しても必ず検出できるよう、ECCパリティで保護している。 エラーが発生すると、ECC、ハードウェア命令リトライにより訂正を行う。

万一、訂正不可能なエラーが発生しても、正常なコア、キャッシュメモリだけで動作し続けることができる。プロセッサの動作を記録する機能も持ち、エラー発生時の原因特定に役立つ。

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

外部リンク

ウィキメディア・コモンズ

This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.


Giant Panda

Mercedes Car
James Bond Guide
This site monitored by SitePinger.net