CDC 7600は、 CDC 6600の後継機としてシーモア・クレイによって設計され、コントロール・データ社のスーパーコンピュータ分野における優位性を1970年代まで拡大させた。[ 6 ] 7600は36.4 MHz(27.5 nsクロックサイクル)で動作し、磁気コアを使用した65 Kワードの主記憶装置(60ビットワードサイズ)と可変サイズ(最大512 Kワード)の二次記憶装置(設置場所によって異なる)を備えていた。一般的にCDC 6600の約10倍の速度で、手コンパイルコードで約10 MFLOPS、ピーク時には36 MFLOPSの性能を発揮できた。[ 7 ]さらに、1970 年初頭のベンチマーク テストでは、 IBM のライバルであるIBM System/360モデル 195よりもわずかに高速であることが示されました。 [ 8 ] 1967 年にシステムがリリースされたとき、基本構成で約 500 万ドルで販売され、[ 9 ]オプションや機能が追加されるとかなり高額になりました。
7600の注目すべき最先端の貢献の中には、広範なパイプライン処理に加えて、物理的なC字型があり、これにより床面積が削減され、信号が伝わる距離が短縮されることでパフォーマンスが劇的に向上しました。[ 10 ] [ 11 ]

6600 が量産品質に近づくと、クレイはそれへの関心を失い、後継機の設計に取り掛かった。1960 年代後半には、マシンを「多少」速くすることはそれほど難しくなかった。集積回路の導入により、部品の集積密度が高まり、結果としてクロック速度が上がった。トランジスタ全般も、製造プロセスと品質の向上に伴い、多少速くなっていた[ 12 ]。こうした改良により、マシンの速度が 2 倍、場合によっては 5 倍になることが期待された。しかし、6600 の設計と同様に、クレイは 10 倍の性能を持つマシンを製造することを目標とした。
6600 が同時代のマシンよりはるかに高速だった理由の 1 つは、並列に動作できる複数の機能ユニットを備えていたことです。[ 13 ]例えば、このマシンは 2 つの数値の加算を実行しながら、同時に他の 2 つの数値の乗算を実行することができました。しかし、次の命令がユニットに入力される前に、任意の命令がユニットを通過するのを完了する必要があり、スケジューラ システムが命令を使い果たすとボトルネックが発生しました。スケジューラも大幅に改善されない限り、機能ユニットを追加してもパフォーマンスは向上しません。特に、並列ユニットに入力できる命令をより多く検索できるように、メモリを増やす必要があります。これが大きな問題であるように思われました。
この問題を解決するために、クレイは命令パイプラインの概念を採用しました。各機能ユニットは、順番に動作する複数のセクションで構成されていました。たとえば、加算ユニットには、メモリからオペランドを取得する専用回路、実際の演算ユニット、そして最後に結果をメモリに戻す別の回路がありました。どの時点でも、ユニットの1つの部分だけがアクティブで、残りは順番を待っていました。パイプラインは、最初の命令が完了する前に次の命令を投入することで、このアイドル時間を活用し、これを改善します。たとえば、1つの命令が加算されている間に、次の加算命令のオペランドを取得できます。このようにして、現在の命令が完了して出力回路に移動するとすぐに、次の加算のオペランドが加算されるのを待っています。このようにして、各機能ユニットは「並列」に動作し、[ 14 ]マシン全体としても同様に動作します。パフォーマンスの向上は、一般的にユニットが完了するまでに要するステップ数に依存します。例えば、6600の乗算ユニットは命令を完了するのに10サイクルかかっていたため、ユニットをパイプライン化することで約10倍の速度向上が見込めた。
しかし、物事は決してそれほど単純ではありません。パイプライン処理では、ユニットの内部を効果的に分離し、各ステップの操作が完全に独立した回路で実行されるようにする必要があります。これは現実世界ではめったに実現できません。それでも、7600 でパイプライン処理を使用することで、6600 に比べてパフォーマンスが約 3 倍向上しました。残りの目標を達成するには、マシンをより高速で動作させる必要がありましたが、これは新しいトランジスタ設計を使用することで可能になりました。しかし、マシンの各部分間で信号が移動するのにかかる時間によってパフォーマンスには物理的な限界があり、これはマシンの物理的なサイズによって決まります。いつものように、Cray の設計作業はこの問題に多大な労力を費やし、より高い動作周波数を可能にしました。7600 の場合、各回路モジュールは実際には最大 6 枚のプリント基板で構成され、各基板には超小型の抵抗器、ダイオード、トランジスタが詰め込まれていました。6 枚の基板が積み重ねられ、端に沿って相互接続され、非常にコンパクトですが基本的に修理不可能なモジュールになりました。
しかし、同じように密集した充填は、機械の最大の問題点である熱にもつながりました。7600では、クレイは再び、以前アマナ社に勤務していた冷凍技師のディーン・ラウシュに協力を求めました。ラウシュは、薪の山の両側の背面にアルミ板を追加し、それらは機械のコアを通る液状フロンシステム[ 15 ]によって冷却されました。このシステムは機械式で故障しやすいため、7600 は大きな「C」字型に再設計され、「C」字型の内側に入り込んでキャビネットを開けることで、冷却パイプの両側のモジュールにアクセスできるようになりました。[ 11 ]
7600は設計上の画期的な存在であり、その機能の多くは現在でもコンピュータ設計の標準となっています。これはロードストア方式のコンピュータで、15ビットの命令語に6ビットの操作コードが含まれています。操作なしコードを含めてマシンコードはわずか64種類しかなく、中央処理装置には固定小数点乗算や除算演算はありません。
7600 には 2 つのメイン コア メモリがあります。スモール コア メモリには、現在実行中の命令と現在処理中のデータが格納されます。アクセス時間は 27.5 ns マイナー サイクルの 10 サイクルで、ワード長は 60 ビットです。ラージ コア メモリには、スモール コア メモリに転送する準備ができているデータが格納されます。アクセス時間は 27.5 ns マイナー サイクルの 60 サイクルで、ワード長は 480 ビット (パリティ付きで 512 ビット) です。[ 4 ]アクセスは完全にパイプライン化されバッファリングされているため、両方のシーケンシャル転送速度は 27.5 ns ごとに 60 ビットで同じです。2 つのメモリは並列に動作するため、一方から他方へのシーケンシャル転送速度は 27.5 ns マイナー サイクルごとに 60 ビットです。オペレーティングシステム コールでは、スモール コア メモリの内容がオペレーティングシステムによってスワップアウトされ、ラージ コア メモリから置き換えられ、その後復元されます。
CDCドキュメントでは命令ワードスタックと呼ばれる12ワードの命令パイプラインがあります。[ 4 ]スタック内のすべてのアドレスは、命令フィールドの処理を待たずにフェッチされます。したがって、条件分岐のターゲット命令のフェッチは、分岐条件の評価に先行します。10ワード(最大40命令)のループの実行中、必要なすべての命令はスタックに残るため、命令はフェッチされず、データ転送用に小さなコアメモリが空きます。
60ビットレジスタが8つあり、それぞれにアドレスレジスタがあります。[ 4 ] アドレスをアドレスレジスタに移動すると、コアメモリの小さな読み書きが開始されます。算術命令と論理命令は、これらのレジスタをソースおよびデスティネーションとして使用します。プログラマまたはコンパイラは、使用するのに十分な時間内にデータを取得し、同じレジスタにさらにデータが必要になる前にデータを格納しようとしますが、準備ができていない場合は、準備が整うまでプロセッサは待機状態になります。また、4つの浮動小数点演算ユニットのいずれかが要求時に準備ができていない場合も待機しますが、パイプライン処理のため、通常はこのようなことは起こりません。[ 16 ]
CDC 7600は「6600とのマシンコードの上位互換性を持ちながら、パフォーマンスを大幅に向上させるように設計された」[ 17 ] [ 18 ] 。あるユーザーは「ほとんどのユーザーはどちらのシステムでも変更なしで実行できた」と述べている[ 8 ]。
7600 はハードウェア、命令、60 ビットのワード サイズなど、6600 と多くの機能を共有していましたが、オブジェクト コード ではCDC 6600 と互換性がありませんでした。 [ 19 ] [ 8 ]さらに、ソース コード ( COMPASS ) の互換性も完全ではありませんでした。7600 の一部の命令は 6600 には存在せず、その逆も同様でした。当初は CDC 6800 という名前でしたが、[ 20 ] Cray が完全な互換性は不可能だと判断したため、7600 に変更されました。しかし、7600 のオペレーティングシステムの設計により、低レベルの違いにもかかわらず、6600 と 7600 は「統一されたソフトウェア環境」を共有していました。[ 8 ]
実際、大まかな観点から見ると、7600 は 6600 と非常によく似ていました。当時、コンピュータのメモリは独立したアクセス パスを持つブロックに配置でき、Cray の設計はこの利点を活用しました。ほとんどのマシンは単一の CPU を使用してシステムのすべての機能を実行していましたが、Cray は、これは CPU が命令を処理して他のブロックにアクセスしている間、各メモリ ブロックがかなりの時間をアイドル状態で過ごすことを意味すると認識していました。これを利用するため、6600 と 7600 は、出力の印刷やパンチ カードの読み取りなどの日常的な管理タスクを、 「周辺プロセッサ ユニット」または PPU と呼ばれるCDC 160-Aベースの 12 ビットの小型マシン 10 個に任せました。 [ 21 ]マシンの任意のサイクルでは、1 つの PPU が制御し、メイン プロセッサが数値を処理している間にメモリにデータを供給します。サイクルが完了すると、次の PPU が制御を引き継ぎます。このようにして、メモリは常にメインプロセッサが処理するための最新の情報を保持し(外部デバイス自体の遅延を除く)、データ遅延を排除するとともに、CPUを数学的性能のみに特化して設計することが可能になった。PPUは、非常に巧妙な「通信チャネル」と呼べるだろう。
6600と同様に、7600は60ビットワードを使用し、命令は通常15ビット長でしたが、30ビット命令もありました。命令は60ビットワードにパックされていましたが、30ビット命令は2つのワードをまたぐことはできず、制御はワードの最初の命令にのみ転送できました。しかし、命令セット自体は新しい内部メモリレイアウトを反映するように変更されていたため、以前の6600とは互換性がありませんでした。これらのマシンは十分に似ていたため、コンパイラとオペレーティングシステムの移植はそれほど苦労せずに可能でした。マシンには当初ソフトウェアが付属していなかったため、サイトはLTSS、NCAROSなどの独自のオペレーティングシステムとLRLTRAN(動的メモリ管理やその他の非標準機能を備えたリバモア版Fortran)などのコンパイラを作成する必要がありました。
CDC は、7600 をベースにしたマルチプロセッサ コンピュータを 2 台製造し、モデル番号は 7700 とした。[ 22 ]これらは、中央マシンと補助マシンという非対称構成の 2 台の 7600 マシンで構成されていた。これらは、ミサイル発射とソ連ICBMの接近追跡に使用された。レーダー シミュレータは、入出力フロントエンドとして CDC 6400 を使用したリアルタイム シミュレータであった。これらのシステムは、太平洋ミサイル射場で使用される予定だった。1 台のコンピュータはカリフォルニア州レドンド ビーチのTRWに設置され(後に南太平洋のクワジェリン環礁に移設)、もう 1 台はカリフォルニア州ハンティントン ビーチのマクドネル ダグラスに設置された。これらは、シャーシ 25 で接続された実際の 7600 で、7600 MP となった。
1969年から1975年頃まで、CDC 7600は特殊なユニットを除いて、世界最速のコンピュータとして広く認識されていました。 [ 7 ]しかし、高度な機械構造と冷却システムを備えていたにもかかわらず、7600は故障しやすいという問題がありました。LLNLとNCARは、このマシンが少なくとも1日に1回、時には4、5回故障すると報告しています。バグの修正に時間がかかり、設置現場での受け入れには数年を要しました。このマシンは「ハイエンド」というニッチな市場向けだったため、概ねよく売れましたが、CDCにとって実質的な利益を生んだとは考えにくいです。後継機のCDC 8600は完成せず、シーモア・クレイはその後、自身の会社であるクレイ・リサーチを設立しました。[ 7 ]
現存する7600のうち1台は、コンピュータ歴史博物館に部分的に展示されている。[ 9 ]その巨大さゆえに、展示できるのはコーナーユニット2台のみである。残りは保管されている。もう1台の7600は、コンソールとテープコントローラとともに、チペワフォールズ産業技術博物館 に展示されている。