Cray-1
STARではベクトルは任意長でもよいがメモリアクセスが何度も発生するのに対して、クレイの設計したマシンでは長いベクトルデータに対してはその一部(64語以内の)だけをまとめて読み込む。しかし、そのひとかたまりに対して要素ごとに同じ演算処理をまとめて実行できるのである。一般的な処理においてより長いベクトルを扱う場合にはそれを64語ずつに区切ってメモリアクセスを何回かに分けても性能向上を期待できるとクレイは考えた。
一般的なベクトル処理は小さなデータのかたまりをベクターレジスタに読み込んで、それに対していくつかの演算を行うが、この新しいベクトルシステムは独立した演算パイプラインを持つよう設計され、乗算器と加算器は独立したハードウェアとして実装されたので、内部でふたつの演算処理をつないで、例えば加算の結果を次の乗算で使用することがパイプライン上でできた。これをクレイでは chaining (チェイニング)と呼び、これをプログラマが意識して用いることで複数の命令をつないで使うことでベクトルレジスタとメモリの間の読み書きを減らすことにより高い性能を引き出すことができた。
データの配置は分かっているので(メモリ上に順番に数値が並んでいる)、データ読み込み性能を上げるようにパイプラインを調整する。ベクトル命令を受け付けると、特別なハードウェアを指定された配列を読み込むように設定し、プロセッサに数値を次々と送り込むのである。
CDCがSTARで使用した手法は、今日では「メモリ・メモリ・アーキテクチャ」として知られている。これはデータを集める方法を意味していて、パイプラインは直接メモリを読み書きするように設定される。この場合、いかなる長さのベクトルでも使用可能で、非常に汎用的である。しかし、遅いメモリにアクセスしてもパイプラインが埋まるようにするために、パイプラインの段数が極めて長くないと性能が出せない。これは、ベクトル演算から通常の命令処理への切り替えに時間がかかることを意味する。さらに通常の命令処理の性能が悪いため、ベクトルからの切り替え時間との相乗効果で通常の命令処理は極めて性能が低下する。結果的に実際のアプリケーション性能は残念なものとなった。これは、設計者がアムダールの法則を考慮していれば最初からわかったことかもしれない。
Components, Hybrids, and Manufacturing Technology, vol. 4, no. 3, 1981, pp. 181–186.
↑ "Cray Cuts Price," The New York Times, 14 Sep. 1982.
↑ 「センチュリリサーチセンタ、わが国で初めてスーパーコンピューター導入。」『日経産業新聞』 1980年1月21日、4面。
↑ 「三菱総研、米のスーパーコンピューター「CRAY-1」の設置完了。」「日経産業新聞」 1980年7月10日、4面。
↑ 月刊I/O 1980年4月号 P.141「スーパーコンピューター CRAY-1 超高速・大容量のスーパーマシンが日本に上陸!!」
↑ “National Air and Space Museum”. 2010年1月21日閲覧。 “This object is on display in the Beyond The Limits exhibition at the National Mall building.”