このページの本文へ

前へ 1 2 次へ

ロードマップでわかる!当世プロセッサー事情 ― 第277回

スーパーコンピューターの系譜 高性能だが売れなかったCRAY-3

2014年11月03日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/

  • この記事をはてなブックマークに追加
  • 本文印刷

 今回はシーモア・クレイ(Seymour Cray)が最後に手がけたCRAY-3に注目しよう。正確にCRAY-3の開発が始まったのがいつかは明確ではないが、CRAY-2の開発方針の骨子が決まったあたりから、すでにクレイの関心はCRAY-2を離れてCRAY-3に向かっていたようだ。

CCC(Cray Computer Corporation)のCRAY-3のカタログより。これは4Pの構成のCRAY-3

CRAY-3の設計目標は
CRAY-2の12倍の性能

 CRAY-3の当初の設計目標は、またしてもCRAY-2の12倍という野心的なものだった。そもそもCRAY-2自体がピークで2GFLOPS近い性能を持つマシンだったわけで、これの12倍だと24GFLOPSに達する。

 実際はここまでの性能は出ず、16プロセッサーのハイエンドの構成でも15GFLOPS強といったところで、しかもそのハイエンド構成は結局製造されずに終わっている。この話は後述するとして、もう一度話を1985年前後に戻す。

 CRAY-2ではECL(※)での設計となったが、クレイ自身はガリウム砒素(GaAs)に未来を見出しており、これをRockwell Semiconductor(厳密には、この当時はまだRockwell InternationalのSemidonductor Division)と共同で開発し続けていた。

※:連載276回で、CRAY-1/2の内部回路はMOSFETベースと書きましたが、これはECLの誤りでした。お詫びして訂正します。

 この後Rockwell Internationalのうち、ガリウム砒素を手がけていた部隊は同社から独立し、GigaBit Logic Inc.というベンチャー企業を立ち上げた。このGigaBit Logicにはクレイも出資していたようだ。最終的にはGigaBit LogicがCRAY-3や、それに続くCRAY-4向けの半導体を提供することになった。

 ちなみに当初はRockwell/Gigabit Logicに加えて富士通からの供給も検討していたようだ。結果として、CRAY-3ではサイクル時間を2.11ナノ秒(474MHz)まで引き上げた。

 アーキテクチャーそのものは、CRAY-2の延長にあるものである。つまり1つのフォアグラウンド・プロセッサーと、複数のバックグラウンド・プロセッサーの組み合わせで動作するというもので、CRAY-3では最大16個のバックグラウンド・プロセッサーが利用可能とされた。

 フォアグラウンド・プロセッサーの構造は下の画像のように、64KBのインストラクション・メモリー(要するに命令キャッシュ)を持ち、これをコミュニケーション・チャンネル・ループ経由でバックグラウンド・プロセッサーに渡す仕組みだ。

フォアグラウンド・プロセッサーの構造。1つのコミュニケーション・チャンネル・ループに最大4つのバックグラウンド・プロセッサーがぶら下り、このコミュニケーション・チャンネル・ループを4つ接続できるので最大16Pとなる

 バックグラウンド・プロセッサーの構造が下の画像である。ベクタ演算ユニットそのものは大きく変わらない(でもVector Shiftがまた復活した)もので、1つのバックグラウンド・プロセッサーあたりのピーク性能は1cycleあたり2Flopsなので948MFlops、これが16個同時に動くと最大で15.17GFlopsという計算になる。

バックグラウンド・プロセッサーの構造。CRAY-2と比較すると90度ひっくり返っているが、基本は大きく変わらない

 ただ、CRAY-3はCRAY-2より後から登場したこともあり、CRAY-2の問題点に対する手当てがいくつもなされている。そもそもCRAY-2が実効性能でCRAY X-MPと大差なかったのは、メモリー性能が追いつかなかったからだ。

 CRAY-2では、アドレスセーブ(B)とスカラーセーブ(T)の2種類のレジスターを省き、その代わりにローカルメモリーを追加している。現在のデータキャッシュにあたるもので、16Kwords(128KB)がそれぞれのバックグラウンド・プロセッサーに内蔵されていたが、要するにこれでは全然足りなかったということだ。

 前回のCRAY-2内部構造図(下図参照)と比較すると、Vector Functrional UnitとAddress Functional Unitの手前にローカルメモリーが配されているのがわかる。

CRAY-2のバックグラウンド・プロセッサーの構造

 ただ本来データキャッシュとして使うなら、このキャッシュユニットが直接Common Memory Storage Moduleにつながって直接データを取り込むなり、書き出すなりできないといけないのだが、実際にはそれぞれのレジスターにしかつながっていない。したがって、オペレーションは以下のようになってしまい、ほとんど意味がなかった。

  • コモンメモリーからレジスターにデータをフェッチ
  • レジスターからローカルメモリーにデータをコピー

 もちろんレジスターの使いまわしの際の退避領域として使うには十分だったのだろうが、逆に言えばそうした使い方しかできなかった。

 CRAY-3ではこの点に関する反省があったのだろう。ローカルメモリーは単にレジスターだけでなくスカラーユニットからも直接アクセスできるように変更されている。

 これにより、ベクトルユニットが演算するのと並行して、スカラーユニットがローカルメモリーにデータを格納したり、あるいは退避させたりが可能になり、より効果的にローカルメモリーが利用できるようになった。

 加えてコモンメモリーがちょっとしたお化けに進化した。コモンメモリーは8つのOctantという塊を保持できる。各々のOctantの内部は64バンクに分割されており、これが同時にアクセスできるために、最大だと512wayのインターリーブ構成になる。

コモンメモリーの構成。Octantをいくつ搭載するかは可変で、1/2/4/8 Octantのどれかを選べた

 メモリーチップそのものはCMOSのSRAMを利用しており、ピーク構成では128GB/秒もの帯域になるとされており、ここから考えると1つのOctantあたり16GB/秒、1つのバンクあたり256MB/秒(2Gbps)という計算である。

 バンクそのものは64bit Word構成なので、SRAMそのものの速度は32MHzということになる。当時のCMOS技術を考えれば妥当な速度と言って良いだろう。

 ちなみに1つのメモリーバンクは4Mwords(32MBytes)なので、Octant1つあたりのメモリー容量は2GB。8Octantの最大構成では16GBものメモリー搭載量となった。なんとなくこの、インターリーブで帯域を稼ぐやり方は、STAR-100のそれを連想するが、CRAY-3の方がさらに壮大な規模である。

→次のページヘ続く (CRAY-3が完成するも、売れずに倒産

前へ 1 2 次へ

この連載の記事

注目ニュース

ASCII倶楽部

最新記事

QDレーザー販促企画バナー

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン