SPARC
[Wikipedia|▼Menu]
.mw-parser-output .hatnote{margin:0.5em 0;padding:3px 2em;background-color:transparent;border-bottom:1px solid #a2a9b1;font-size:90%}

この項目では、マイクロプロセッサについて説明しています。研究図書館の国際連合については「Scholarly Publishing and Academic Resources Coalition」をご覧ください。

SPARC開発者サン・マイクロシステムズ
ビット数64ビット (32 → 64)
発表1985年
バージョンV9(1993年)
デザインRISC
タイプRegister-Register
エンコードFixed
ブランチCondition code
エンディアンBi (Big → Bi)
ページサイズ8 KiB
拡張VIS 1.0, 2.0, 3.0
オープンYes
レジスタ
汎用31 (G0 = 0; non-global registers use レジスタ・ウィンドウ)
浮動小数点32
UltraSPARC IIマイクロプロセッサSuperSPARC TMX390Z50GF H359403658C

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用に設計したオペレーティングシステム)と結びつけて考えられているが、NEXTSTEPLinuxFreeBSDOpenBSDNetBSDなどのオペレーティングシステムも使用できる。

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

SPARCは正統なUNIXが動く信頼性の高いCPUとして長らく幅広いシステムで用いられてきたが、2010年代クラウドコンピューティングの普及と運用実績の蓄積に伴い、大多数のシステムが汎用的なハードウェアでx86仮想化を用いてソフトウェア的に定義して構築されるようになった結果、SPARCは特に性能要求の厳しい極一部のシステムにのみ用いられるようになった[1]
特徴

SPARCアーキテクチャはカリフォルニア大学バークレー校のRISC I & II(バークレーRISC(英語版))の設計に大きな影響を受けている。本来のRISC設計は必要最小限のものであり、機能や命令の種類を可能な限り切り詰め、クロックサイクル毎に命令を実行することを目指した。このため、乗除算命令が無い、分岐遅延スロットが存在するなど、MIPSアーキテクチャと様々な面で類似している。

SPARCプロセッサは通常128本の汎用レジスタを持つ。ただし、任意の時点でソフトウェアから見えるのは128本のうちの32本だけである。そのうち8本は汎用レジスタだが、g0レジスタは常に内容がゼロであり、実質的な汎用レジスタは7本で、常に同じ内容が見える。他の24本はコールスタックの一部をレジスタ化したものである。

これら24本のレジスタは、いわゆるレジスタ・ウィンドウを形成し、関数呼出とリターンの際に、このウィンドウがレジスタスタック上を上下に移動する。各ウィンドウは8本のローカルレジスタを持ち、8本のレジスタを上下の隣接ウィンドウのレジスタと共有する。共有されたレジスタは関数のパラメータ渡しと結果の値を戻すために使われ、ローカルレジスタは、各関数でのローカルな値を保持するために使われる。

SPARCの名称の由来にある「Scalable」とは、組み込み用途からサーバ用途まで同じ仕様を実装し、非特権命令に関しては完全に互換を維持することを意味している。アーキテクチャ上、用途に合わせて規模を変更できる点は、実装するレジスタ・ウィンドウの個数である。仕様では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]アーキテクチャ
版年コア数×スレッド数=スレッド数合計プロセス
[nm]トランジスタ数
[百万]ダイサイズ
[mm2]ピン数電力
[W]電圧
[V]L1 Dキャッシュ
[k]L1 Iキャッシュ
[k]L2キャッシュ
[k]L3キャッシュ
[k]
SF9010/MB86900 (or L64801)14.28?25V71988?1/1
CYC7C60125?40V71989?1/1
microSPARC I40?50V819921/18000.82252882.5524----
SuperSPARC I33?60V81991-19921/18003.1----14.3516200-2048--
HyperSPARC A40?90V819931/1500--------5?08128-256--
microSPARC II60?125V819941/15002.323332153.3816----
HyperSPARC B90?125V819941/1400--------3.308128-256--
SuperSPARC II75?90V819941/18003.1299--16--16201024-2048--
HyperSPARC C125?166V819951/1350--------3.308512-1024--
TurboSPARC160?180V819951/1350----41673.51616512--
UltraSPARC I143?200V919951/15005.231552130 @167 MHz3.31616512-1024--
HyperSPARC D180?200V819961/1350--------3.31616512--
UltraSPARC IIs (Blackbird)250?360V919971/13505.4--52125 @250 MHz2.516161024 or 4096--
UltraSPARC IIs (Sapphire-Black)360?480V919991/12505.415652121 @400 MHz1.916161024?8192--
UltraSPARC IIi (Sabre)270?360V919971/13505.4148587211.91616256?2048--
UltraSPARC IIi (Sapphire-Red)333?480V919981/12505.4--58721 @440 MHz1.916162048--
UltraSPARC IIe (Hummingbird)400?600V920001/1180 Al----37013 max @500 MHz1.5-1.71616256--
UltraSPARC IIi (IIe+)550?650V920021/1180 Cu----37017.61.71616512--
UltraSPARC III600?900V9/JPS120011/1130 Al293301368531.664328192--
UltraSPARC IIIcu1002?1200V9/JPS120011/1130 Cu29--1368--1.664328192--
Ultra SPARC IIIi1064?1593V920031/113087.5206959521.364321024--
UltraSPARC IV1050?1350V920042/1=21306635613681081.35643216384--


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:38 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef