SPARCはオープンアーキテクチャRISC

1987年発表
UltraSPARC
UltraSPARC
SPARC は、Sun MicrosystemsBerkeley RISC の設計思想を継承し、1987年(昭和62年)に発表した32ビットRISCマイクロプロセッサである。命令セットの仕様を公開し複数メーカーの製造・改良を許す「オープンアーキテクチャ」路線を掲げた点が大きな特徴で、自社のSunワークステーション やOS「Solaris」を支え、後には富士通 のスーパーコンピュータ「」にも採用された。

目次

開発の背景

初代SPARCボード
初代SPARCボード
Sun Microsystems は、カリフォルニア大学バークレー校 が1980年代前半に研究した「Berkeley RISC」の設計思想を継承し、1985年(昭和60年)から独自プロセッサの開発に着手した。1987年(昭和62年)、32ビットRISCアーキテクチャ「SPARC」(Scalable Processor ARChitecture)の仕様を発表し、同年出荷のワークステーション「Sun-4/260」に初搭載した。

初代SPARC の仕様は「SPARC V7」と呼ばれ、富士通 が製造した2チップ構成の「MB86900」(整数演算部)と「MB86910」(浮動小数点演算部)が、1.2μmCMOSゲートアレイで実装された。動作クロックは16.6MHzで、平均約10MIPSの性能を発揮した。

純粋なRISCアーキテクチャとレジスタウィンドウ機構

SPARC は、命令長を32ビット固定とし、演算はレジスタ間のみで行い、メモリアクセスをロード・ストア命令に限定する「純粋な RISC」設計を徹底した。分岐遅延スロットや単純なパイプライン構成など、デコード負荷を最小化する工夫を随所に採用し、1命令1サイクルに近い実行効率を狙った。
SPARCのレジスタウィンドウ機構
SPARCのレジスタウィンドウ機構
SPARC 最大の特徴は「レジスタウィンドウ」機構である。8本のグローバルレジスタ のほかに、24本ずつの窓を最大8組ほど重ねて持ち、関数を呼び出すたびに窓を1つずらして新しい作業領域を割り当てる。呼び出し元の出力用レジスタと呼び出し先の入力用レジスタが同じ物理レジスタを共有する設計により、引数の受け渡しをレジスタ間だけで完結できる。

呼び出しのたびにメモリへレジスタを退避・復元する必要がなくなるため、浅い呼び出し階層では処理が高速になる利点がある。一方、物理的な窓の数は有限(実装によっては7~8組程度)であるため、再帰呼び出しなどで階層が深くなると窓が枯渇し、結局スタックへの退避が発生する。大量のレジスタを搭載すること自体がハードウェア規模を増大させ、割り込みやコンテキストスイッチ の際には未使用の窓もまとめてメモリへ書き戻す処理が必要になるなど、実装コストの高さも課題として指摘された。

オープンアーキテクチャ

Sun MicrosystemsSPARC の命令セット仕様を公開し、特定企業が独占しない「オープンアーキテクチャ」として展開した。1989年(昭和64年)設立の非営利団体「SPARC International」が仕様策定・適合性試験・商標管理を担い、ロイヤリティフリーでライセンスを供与したため、富士通Cypress SemiconductorTexas Instruments松下電器産業 など複数メーカーが独自にSPARC互換チップを製造した。

Sunワークステーションへの採用

SPARCstation 1
SPARCstation 1
1987年(昭和62年)7月出荷の「Sun-4/260」を皮切りに、Sun Microsystems はモトローラ68000系からSPARCへと自社ワークステーションの心臓部を切り替えた。1989年(昭和64年)には小型・低価格化した「SPARCstation 1」を発売し、「ピザボックス」型の筐体と手頃な価格でSPARC搭載機を大きく普及させた。

以後もSPARCstation 2・10・20やエンタープライズ向けサーバー「Sun Enterprise」シリーズが展開され、UNIXワークステーション・サーバー市場でヒューレット・パッカードPA-RISCIBMPOWER と激しく競合した。

Solaris

Sun Microsystems は当初、BSD 系のOS「SunOS」をSPARC機に搭載していたが、1992年(平成4年)にAT&T のUNIX System V Release 4を基盤とする新OSへ刷新し、マーケティング名として「Solaris」を採用した。

Solaris はSPARC上で高いスケーラビリティを発揮し、ファイルシステム「ZFS」や動的トレース機構「DTrace」など先進機能を数多く生み出した。2010年(平成22年)のオラクル によるSun買収後は「Oracle Solaris」として引き継がれている。

ミッションクリティカル対応

SPARC M12
SPARC M12
富士通 は自社開発のSPARC互換チップ「SPARC64」シリーズを軸に、金融・基幹業務向けの高信頼サーバー「SPARC Enterprise」「SPARC M10」「SPARC M12」を展開した。プロセッサ内の全回路にエラー検出・自己修復機構を備え、メモリやデータパスをECC/CRCで保護するなど、メインフレーム 譲りの信頼性設計を採用した。

電源・ファン・ディスクなど主要部品を冗長構成とし、稼働中の部品交換(活性保守)にも対応することで、無停止運用が求められる金融基幹システムなどのミッションクリティカル分野で採用が続いた。

スレッド並列性能

UltraSPARC T2 Plus
UltraSPARC T2 Plus
Sun Microsystems は2005年(平成17年)、開発コード名「Niagara」の「UltraSPARC T1」を発表した。8コア・32スレッドを1チップに集積し、クロック周波数を追わずに多数のスレッドを同時実行する「CMT」(Chip Multi-Threading)方式で、Webサーバーなど多数の同時接続をさばく用途のスループットを重視した設計である。
後継の「UltraSPARC T2」は8コア・64スレッドに拡張され、同程度の消費電力でT1の約2倍のスループットを実現した。コア1つあたりの演算性能を追うよりも、多数の軽量スレッドを並列処理する方向性は、当時のマルチコアCPU競争の中でも異色の設計であった。

OEM・派生製品

SPARC64プロセッサ
SPARC64プロセッサ
SPARC はSunの純正チップ以外にも、富士通 の「SPARC64」シリーズ、Ross Technology の「hyperSPARC」など、多くの企業が独自に製品化した。用途もワークステーションからサーバー、組み込み機器まで幅広く広がった。

Sun Microsystems 自身の後継系列としては、64ビット化した「UltraSPARC」シリーズ(1995年~)が長く主力を務め、UltraSPARC III・IVを経て、前述のT1・T2などマルチスレッド世代へと発展していった。

日本のスーパーコンピュータ「京」

スーパーコンピュータ「京」
スーパーコンピュータ「京」
富士通 は独自開発のSPARC64系プロセッサ「SPARC64 VIIIfx」を、理化学研究所 と共同開発したスーパーコンピュータ「京」に採用した。8コア・2GHz動作で128GFLOPSの演算性能を58Wという低消費電力で実現し、8万個以上のチップを結合して2011年(平成23年)に世界最速の演算性能(10ペタフロップス超)を記録した。

「京」向けのSPARC64 VIIIfxは、富士通が自社工場で製造した最後のCMOS LSIとなり、以後の半導体製造は外部の受託製造会社に委ねられた。ワークステーション用に生まれたSPARCの設計思想が、国産スーパーコンピュータの頭脳にまで発展した象徴的な事例である。

現状

オラクル は2010年(平成22年)のSun Microsystems 買収後もSPARCサーバー事業を継続したが、2017年(平成29年)に自社設計チームを解散し、「SPARC M8」を最後に新規プロセッサの開発を終了した。

富士通 は独自にSPARC64系サーバーの提供を続けたものの、2029年(令和11年)をめどに新規販売を終了し、2034年(令和16年)でサポートを打ち切る計画を示している。1987年(昭和62年)の登場から半世紀近くにわたり広く使われてきたSPARCアーキテクチャは、事実上その役目を終えつつある。

主要スペック

項目 仕様
開発元 Sun Microsystems(初代製造:富士通)
発表 1987年
命令セット SPARC V7
製造プロセス 1.2μm CMOSゲートアレイ
チップ構成 MB86900(整数演算)+MB86910(FPU)の2チップ構成
データ幅 32ビット
レジスタ構成 グローバル8本+レジスタウィンドウ(24本×最大8組)
CPUクロック 16.6MHz(初代実装)
性能 約10MIPS(初代実装)
ライセンス形態 オープン・ロイヤリティフリー(SPARC International管理)

CPUの歴史

発表年 メーカー CPU名 ビット数 最大クロック
1970年Garrett
AiResearch
MP944 (軍用)20bit375KHz
1971年インテル40044bit750KHz
1974年インテル80808bit3.125MHz
1975年モステクノロジーMOS 65028bit3MHz
1976年ザイログZ808bit20MHz
1978年インテル808616bit10MHz
1979年モトローラMC68098bit2MHz
1979年ザイログZ800016bit10MHz
1980年モトローラMC6800016bit20MHz
1983年NECV3016bit16MHz
1984年インテル8028616bit12MHz
1985年インテル8038632bit40MHz
1985年インテルi96032bit100MHz
1985年サン・マイクロシステムズSPARC32bit150MHz
1986年MIPSR200032bit15MHz
1987年ザイログZ28016bit12MHz
1987年モトローラMC6803032bit50MHz
1988年MIPSR300032bit40MHz
1989年インテル8048632bit100MHz
1989年インテルi86032bit50MHz
1991年MIPSR400064bit200MHz
1990年モトローラMC6804032bit40MHz
1993年インテルPentium32bit300MHz
1994年IBM, モトローラPowerPC 60332bit300MHz
1995年サイリックスCyrix Cx5x8632bit133MHz
1995年AMDAm5x8632bit160MHz
1995年サン・マイクロシステムズUltraSPARC64bit200MHz
1999年IBM, モトローラPowerPC G432bit1.67GHz
1999年AMDAthlon32bit2.33GHz
2000年インテルPentium 432bit3.8GHz
2001年インテルItanium64bit800MHz
2003年AMDOpteron64bit3.5GHz
2003年インテルPentium M32bit2.26GHz
2006年SCE,ソニー,IBM,東芝Cell64bit3.2GHz
2006年インテルCore Duo32bit2.33GHz
2006年インテルCore 2 Duo64bit3.33GHz
2008年インテルCore i9/i7/i5/i364bit5.8GHz
2017年AMDRyzen64bit5.7GHz
2020年AppleM1/M2/M3/M4/M564bit3.49GHz
2023年インテルCore Ultra 9 / 7 / 564bit5.1GHz

参考サイト

(この項おわり)
header