STAR-100:ベクトル処理を導入した初期のスーパーコンピュータ
STAR-100は、コントロール・データ・コーポレーション(CDC)が開発した
スーパーコンピュータで、数値演算性能の向上を目指し、ベクトルプロセッサを搭載した初期のマシンの一つです。その名称は「STrings and ARrays」に由来し、100は設計時の性能目標である100M
FLOPSを示しています。
1970年代初頭に発表された当時、STAR-100は、当時最速だったCDC 7600(36M
FLOPS)の数倍の性能を持つとされていました。1971年8月17日には、
ゼネラルモーターズが最初の顧客となったことが発表されました。しかし、1974年に初めて商用利用が開始されたものの、基本設計上の問題から期待された性能を実際のアプリケーションで発揮できず、後に登場した
Cray-1に市場を奪われることになりました。
STAR-100のアーキテクチャ
STAR-100の全体的な構成は、CDCの以前の
スーパーコンピュータと類似しており、シンプルな
RISC的な
CPUに複数の周辺プロセッサを接続し、雑多なタスクを肩代わりさせることで、
CPUを数値演算に専念させるという設計でした。しかし、STAR-100では、
CPUと周辺プロセッサがよりシンプルになり、実装コストと複雑さを低減させていました。また、従来の60ビットアーキテクチャから64ビットアーキテクチャに変更され、8ビット
ASCIIの処理が容易になりました。さらに、マイクロコードを多用し、
仮想記憶機能をサポートしている点も特徴的です。
ベクトル処理の導入
STAR-100の最大の改良点は、ベクター処理のための命令を導入した点です。これらの命令群は
APL言語の機能に近く、連続したメモリ領域に格納された多数のオペランドのベクターを処理します。
CPUはこれらの命令を用いて、追加のハードウェアを設定し、主記憶からデータを高速に取り出します。例えば、一つの命令にパラメータを追加することで、最大65,535個の数値の配列を一度に加算することが可能です。
CPUは命令をデコードし、メモリハードウェアを設定し、演算ユニットにデータを送り込みます。パイプライン処理を導入することで、個々の命令の実行速度は低下したものの、複数の命令やデータを並行して処理できるため、大量のデータに同じ処理を適用するタスクでは全体の性能が飛躍的に向上しました。
メモリシステム
主記憶は、512ビットの
ワード(スーパー
ワード)単位で構成され、最大容量は65,536スーパー
ワードです。32ウェイのインターリーブにより、メモリアクセスをパイプライン化しています。物理的には
磁気コアメモリを使用しており、アクセス時間は1.28マイクロ秒です。主記憶は512ビットのバス経由でアクセスされ、ストリームユニットからの要求を処理するストレージ・アクセス・コントローラ(SAC)が制御します。ストリームユニットは、3つの128ビットバス経由でSACを通して主記憶にアクセスし、そのうち2つはリード用、1つはライト用です。さらに、命令フェッチ、入出力、ベクターアクセス制御用の128ビットバスが別に設けられています。ストリームユニットは、命令フェッチとデコード、パイプライン化された機能ユニットからの要求に応じたメモリアクセスの起動、命令実行の制御など、様々なタスクをこなします。また、実行ユニット群にデータを送るためのリードバッファ2つと、実行結果を連続的に受け取るためのライトバッファ1つを備えています。
演算パイプライン
STAR-100は2つの演算パイプラインを備えています。1つ目のパイプラインは
浮動小数点数の加算器と乗算器を持ち、2つ目のパイプラインは、様々なスカラー命令を実行する多機能ユニットです。後者には、
浮動小数点数の加算器、乗算器、除算器も含まれています。どちらのパイプラインも64ビット幅で浮動小数点演算を行い、マイクロコードで制御されます。また、この2つのパイプラインを32ビット幅の4つのパイプラインとして使用することもでき、単精度演算ではピーク性能が100M
FLOPSになります。
入出力プロセッサ
I/Oプロセッサは、入出力処理を分担する16ビットの
ミニコンピュータで、65,536
ワードのローカルメモリが付属しています(
磁気コアメモリ)。I/Oプロセッサは、128ビットのデータバスでSACと接続されています。
実際の性能とその影響
STAR-100のアーキテクチャは、実際の性能がピーク性能を下回るという問題を抱えていました。主な理由としては、ベクター命令がメモリからメモリへの命令であるため、メモリから演算ユニットまでのパイプラインが長く、処理を開始するまでに時間がかかってしまう点が挙げられます。また、STAR-100のパイプラインは、CDC 7600のパイプラインよりも深く、サイクルタイムも遅かった(7600は27.5ns、STAR-100は40ns)ため、7600よりも高性能を発揮するためには、50要素以上の長いベクターを使用する必要がありました。
しかし、実際には、効果的にベクター化できるプログラムは少なく、多くのプログラムでは命令が直前の命令の結果に依存するため、前の命令の結果が出るまでパイプラインを停止しなければならなかったのです。また、ベクター性能を向上させるためにスカラー性能が犠牲になったことも問題でした。基本命令を実行しようとすると、全体の性能が大幅に低下したのです(
アムダールの法則を参照)。
STAR-100システムは、
ローレンス・リバモア国立研究所(LLNL)やNASAの
ラングレー研究所に納入されました。LLNLでは、STAR-100の納入に先立って、7600上でSTARのベクター処理をエミュレートし、STACKLIBと名付けた
サブルーチンライブラリを開発しました。しかし、STACKLIBを使用したアプリケーションを実行した結果、ベクター
ライブラリを統合するよりも、通常の7600で実行した方が高速であることが判明し、STAR-100の性能問題がさらに浮き彫りになりました。
市場競争での敗北
STAR-100は関係者を失望させ、チーフデザイナーのJim ThorntonはCDCを退社し、Network Systems Corporationを設立しました。CDCは、改良版としてCDC Cyber 203をリリースし、さらに1980年には性能を向上させたCyber 205を発表しましたが、市場ではクレイ・リサーチのシステムの高性能に太刀打ちできませんでした。STAR-100の失敗により、CDCは
スーパーコンピュータ市場での独占状態を失い、1982年には
ETAシステムズで再挑戦することになったのです。
まとめ
STAR-100は、ベクトル処理を導入した画期的な
スーパーコンピュータでしたが、実際の性能は期待されたほどではなく、市場で競争力を失いました。そのアーキテクチャ、設計、そして実際の性能が、後の
スーパーコンピュータ開発に大きな影響を与えたことは間違いありません。