CDC 6600

CDC 6600
フィギュアをスケールにした3Dレンダリング
デザイン
メーカーコントロールデータコーポレーション
デザイナーシーモア・クレイ
発売日1964年9月[ 1 ]
販売数100以上
価格237万ドル[ 2 ](2024年には2403万ドルに相当)
ケーシング
寸法高さ : 2,000 mm (79 in)キャビネット幅 : 810 mm (32 in) [ 3 ]キャビネット長さ : 1,710 mm (67 in) [ 3 ]全体幅 : 4,190 mm (165 in) [ 3 ]
重さ約12,000ポンド(6.0ショートトン; 5.4 t)[ 4 ]
30 kW @ 208 V 400 Hz [ 5 ] [ 2 ]
システム
オペレーティング·システムスコープクロノス[ 6 ]
CPU60ビットプロセッサ @ 10 MHz [ 7 ]
メモリ最大982キロバイト(131000×60ビット)[ 1 ]
ミップス2MIPS [ 7 ]
前任者CDC 1604
後継CDC 7600

CDC 6600の縮尺付き正投影2面図
CDC 6600。システムコンソールの後ろには、プラス記号の形をしたキャビネットの2本の「アーム」があり、カバーが開かれています。内部には個々のモジュールが見えます。モジュールを収納するラックはヒンジで開閉し、その後ろにあるラックにアクセスできます。マシンの各アームには、最大4つのラックが搭載されていました。右側には冷却システムがあります。
CDC 6600システムコンソール。この設計は画期的な革新であり、画面とキーボードが当時のシステムコンソールに一般的だった数百個のスイッチと点滅灯に取って代わりました。ディスプレイはソフトウェアによって駆動され、主に3種類のサイズから選択してテキストを表示しました。また、簡単なグラフィックを描画することも可能でした。より現代的なディスプレイとは異なり、このコンソールはラスターシステムではなくベクター描画システムでした。コンソールには単一のフォントが使用され、各グリフは一連のベクターで構成されていました。キーワード部分の自動補完により、コマンド入力が迅速化されました。

CDC 6600は、コントロール・データ・コーポレーションが製造したメインフレーム・コンピュータ・システムの6000シリーズ(現在は製造中止)のフラッグシップ機です。[ 8 ] [ 9 ]一般的に最初の成功したスーパーコンピュータと考えられているこのコンピュータは、業界の以前の記録保持者であるIBM 7030 Stretchの3倍の性能を誇りました。[ 10 ] [ 11 ]最大3 メガFLOPSの性能を誇るCDC 6600は、[ 12 ] [ 13 ] 1964年から1969年まで世界最速のコンピュータでしたが、その後、後継機であるCDC 7600にその地位を譲りました。[ 14 ]

最初のCDC 6600は1965年にリバモアロスアラモスに納入されました。[ 15 ]それらはすぐにハイエンドの科学技術計算および数学計算において必須のシステムとなり、クーラント数学研究所、欧州原子核研究機構(CERN)[ 16 ] [ 17 ]ローレンス放射線研究所、[ 18 ]その他多くの機関に納入されました。合計で少なくとも100台が納入されました。[ 19 ]

CDC 6600は、カリフォルニア州マウンテンビューコンピュータ歴史博物館に展示されています。稼働中のCDC 6000シリーズの唯一のマシンは、Living Computers: Museum + Labsによって復元されましたが、博物館は閉館しました。

歴史と影響

CDCの最初の製品は、エンジニアリング・リサーチ・アソシエイツ(ERA)で設計されたマシンをベースにしており、シーモア・クレイはCDCに移籍後、その改良を依頼されていました。リトル・キャラクター[ 20 ]として知られる実験的なマシンの後、 1960年にCDC 1604を納品しました。これは、最初の商用トランジスタ・ベース・コンピュータの一つであり、市場最速のマシンの一つでした。経営陣はこれに喜び、ビジネス用途により特化した新シリーズのマシンを計画しました。例えば、文字処理や記録保存のための命令群を組み込む予定でした。しかし、クレイはそのようなプロジェクトには興味がなく、1604の50倍の速度を持つ新マシンを開発するという目標を設定しました。1年後と5年後の計画に関する詳細な報告書の作成を依頼されたとき、彼は5年後の目標を「世界最大のコンピュータを開発すること」と書きました。当時、「最大」は「最速」と同義でした。そして、1年後の計画は「その5分の1の目標に到達すること」でした。[ 21 ]

クレイはコアチームをCDC本社近くの新しいオフィスに移し、1604で使用されていた「安価な」トランジスタの高品質版を試作し始めた。多くの実験を経て、ゲルマニウムベースのトランジスタを1604で使用されていたものよりはるかに高速に動作させることは不可能だと結論付けた。経営陣が当初求めていた「ビジネスマシン」、つまりCDC 3000シリーズは、彼らの限界を押し広げた。そこでクレイは、当時市場に登場したばかりでスイッチング性能が飛躍的に向上していた フェアチャイルドセミコンダクター社のシリコンベースのトランジスタを採用することが解決策だと判断した。

この時期、CDCは新興企業から大企業へと成長し、クレイは経営上の要求が不合理だと考え、次第に不満を募らせていった。1962年、新型CDC 3600が生産品質に近づき、経営陣が望む通りのものを、望むタイミングで提供できるようになったことで、状況はさらに緊迫したものになった。クレイは最終的にCDCのCEO、ウィリアム・ノリスに、何かを変えなければ会社を辞めると告げた。ノリスは自分が失うには惜しい存在だと考え、クレイに新しい研究所を好きな場所に設立する許可を与えた。

しばらく探した後、クレイは故郷のウィスコンシン州チペワフォールズに戻ることを決意し、土地を購入して新しい研究室を開設した。

このプロセスにより、新しいマシンの設計にはかなりの遅延が生じましたが、新しい研究室に移ると、経営陣の干渉もなく、開発は急速に進み始めました。この頃には、新しいトランジスタは非常に信頼性が高くなり、それらを使って作られたモジュールは、最初の試みで正常に動作する傾向がありました。6600は、システム設計者であり6600の「隠れた天才」で あるジム・ソーントンと共に、クレイと共に形を整え始めました。

CDC 6600は、その製造期間(1964年から1969年)を通じて100台以上が販売されました。その多くは核兵器関連の様々な研究所に送られ、かなりの数は大学の計算機研究室にも導入されました。CDC 6600は、数値直接探索の初期の例として、オイラーのべき乗和予想を反証するために使用されました。 [ 22 ]

クレイはすぐに後継機の開発に着手し、今度は6600の10倍の性能を目標に掲げ、CDC 7600として発表しました。その後のCDC Cyber ​​ 70および170は、全体的な設計がCDC 6600と非常に似ており、ほぼ完全な下位互換性を備えていました。

6600は、それまでの記録保持者であるIBM 7030 Stretchの3倍の速度を誇り、 IBMを驚かせました。当時のCEO、トーマス・ワトソン・ジュニアは1963年8月28日、従業員に宛てたメモにこう記しています。「先週、CDCは[...] 6600システムを発表しました。このシステムを開発している研究所には、『管理人を含めて』わずか34人しかいないと聞いています。そのうち14人はエンジニア、4人はプログラマーです[...] このささやかな努力と、当社の膨大な開発活動を比較すると、なぜ他社に世界最強のコンピュータを提供させることで、業界のリーダーとしての地位を失ったのか理解できません。」クレイの返答は皮肉なもので、「ワトソン氏は自ら疑問に答えたようですね。」[ 23 ] [ 24 ]

説明

1950年代と1960年代の典型的なマシンは、システム全体を駆動するために単一の中央処理装置(CPU)を使用していました。 [ 25 ]典型的なプログラムは、まずデータをメモリにロードし(多くの場合、事前にロールされたライブラリコードを使用)、それを処理し、そして書き戻します。そのため、CPUは、入出力や処理を含む、実行が求められる命令セット全体を処理するために、かなり複雑なものになる必要がありました。複雑なCPUはCPUの規模が大きくなり、それを構成する個々のモジュール間で情報が流れる際に信号遅延が発生します。これらの遅延によって性能の上限が設定され、マシンは信号が次のモジュールに到達するまでのサイクル速度でしか動作できませんでした。さらに、CPUは一般的に、接続されているメインメモリよりも低速でした。例えば、プロセッサは2つの数値を乗算するのに15サイクルかかるのに対し、メモリアクセスはそれぞれ1~2サイクルしかかかりませんでした。つまり、メインメモリがアイドル状態の時間がかなり長くなっていました。クレイは、このアイドル時間を利用して、いくつかの方法で性能を向上させました。

CDC 6600はCPU単体ではなく、10個の12ビット4KiB周辺プロセッサ(PP)でCPUをサポートしていました。各PPは12個の入出力(I/O)チャネルの共通プールにアクセスし、入出力を処理するとともに、CPによる処理のために中央メモリに送られるデータを制御していました。PPは、CPUが演算処理でビジー状態にあるアイドル時間にメモリにアクセスするように設計されていました。これにより、PPは中央処理時間の観点から実質的に無料で入出力処理を実行し、CPUのビジー状態を可能な限り維持することができました。

入出力は周辺プロセッサで処理されていたため、CDC 6600 では、数学的演算や論理演算を可能な限り高速に実行するように設計された簡素化された中央プロセッサ (CP) が使用されていました。そのため、配線の長さと関連する信号遅延を減らすために、CP を可能な限り小さく作る必要がありました。この結果、マシンの (典型的な) 十字形のメインシャーシに CPU の回路基板が中央近くに配置され、CPU が大幅に小型化されました。シリコン トランジスタのより高速なスイッチング速度と相まって、新しい CPU は 10 MHz (サイクル時間 100 ns) で動作し、市場の他のマシンの約 10 倍の速度でした。クロックが高速になったことに加えて、このシンプルなプロセッサはより少ないクロック サイクルで命令を実行しました。たとえば、CPU は 10 サイクルで乗算を完了できました。

6600のCPは60ビットワードと整数の1の補数表現を使用していましたが、これは後のCDCマシンが1980年代後半まで使用していたもので、一部のデジタル信号プロセッサを除いてこのアーキテクチャを使用した最後のシステムとなりました。[ 26 ]

その後、CDC は CP、PP、チャネルの数と種類に関するオプションを提供しました。たとえば、CDC 6700 には6400 CP と 6600 CP の 2 つの中央プロセッサがありました。

当時の他のマシンには操作用の精巧なフロントパネルがあったが、6600にはデッドスタートパネルしかない。[ 27 ]デュアルCRTシステムコンソールがあるが、オペレーティングシステムによって制御されており、ハードウェアを直接制御したり表示したりはしない。

6600マシン全体には約40万個のトランジスタが含まれていました。[ 28 ]

周辺プロセッサ

CPUは限られた数の単純な命令しか実行できませんでした。当時の典型的なCPUは複雑な命令セットを備えており、メモリアクセスや入出力といった通常の「ハウスキーピング」タスクを処理するための命令が含まれていました。クレイはこれらの命令を、それぞれのタスク専用の独立したシンプルなプロセッサに実装することで、CPUの命令セットを大幅に削減しました。これは、後に縮小命令セットコンピュータ(RISC)設計と呼ばれるようになるものの始まりでした。

CPU、周辺プロセッサ(PP)、I/Oを並列に動作させることで、この設計はマシンの性能を大幅に向上させました。通常、複数のプロセッサを搭載したマシンは価格も大幅に上昇します。6600の設計の鍵は、周辺プロセッサ(PP)と呼ばれるI/Oプロセッサを可能な限りシンプルにすることでした。PPはシンプルな12ビットのCDC 160-Aをベースにしており、CPUよりもはるかに低速で動作し、専用ハードウェアを介してデータを収集し、バーストとして高速にメインメモリに送信しました。

10個のPPは仮想的に実装されており、CPUハードウェアは1つのPPに対してのみ存在した。[ 29 ] : pp.4-3~4-4 このCPUハードウェアは共有され、10個のPPレジスタセット上で動作した。これらのレジスタセットは10個のPP状態(現代のマルチスレッドプロセッサに類似)を表していた。PPレジスタバレルは「回転」し、各PPレジスタセットは実際のPP CPUが占有する「スロット」に提示された。共有CPUはPPの命令の全部または一部を実行すると、バレルは再び「回転」し、次のPPのレジスタセット(状態)を提示する。1つの命令を完了するには、バレルの複数回の「回転」が必要であった。バレルの完全な「回転」は1000ナノ秒(PPあたり100ナノ秒)で発生し、1つの命令を完了するにはバレルが1~5回「回転」する必要があり、データ転送命令の場合はそれ以上の時間がかかる。

CPの命令セットアーキテクチャ

6600 CPUの基盤は、後にRISCシステムと呼ばれるもの、つまり比較的単純で、メモリへのアクセスが限定的かつ明確に定義された命令を実行するようにプロセッサが調整されたシステムです。他の多くのマシンの哲学は、複雑な命令、例えばメモリからオペランドをフェッチし、それをレジスタの値に加算する単一の命令の使用にありました。

CPの命令は、15ビットを5つの3ビットフィールドに分割したもの(f、m、i、j、k)と、30ビットを3ビットのf、m、i、jと18ビットのKフィールドに分割したもののいずれかです。関数(f)と修飾子(m)は通常オペコードを指定しますが、レジスタ番号が9ビットのオペコードの一部となる場合もあります。ほとんどの15ビット命令は2つのレジスタに対して演算を実行し、結果を3つ目のレジスタ(i)に格納します。ほとんどの30ビット命令は、レジスタと定数に対して演算を実行し、結果を2つ目のレジスタ(i)に格納します。

CPには明示的なロード命令とストア命令はなく、ジャンプ命令とSAi命令のみがメモリ参照を行う。SAi命令は、iが1~5のときに中央メモリから対応するXレジスタに読み込み、iが6または7のときに書き込みを行う。したがって、CPではメモリからの加算には2つの命令が必要となる。追加命令によって理論上は速度は低下するが、適切にスケジュールされたコードでは複数の命令を並列処理できるため、この負担は軽減される。この簡素化により、プログラマはメモリアクセスを非常に意識する必要があり、そのためアクセス回数を可能な限り減らすようにコードを書く必要がある。CDC 6600 CPは3アドレスマシンであるため、3つのオペランドすべてを指定できる。[ 30 ]

モデル

CDC 6000シリーズには、 CDC 6400CDC 6500、CDC 6600、CDC 6700の4つの基本モデルがありました。6000シリーズのモデルはCPUのみで、6400 CPUと6600 CPUの2種類がありました。6400 CPUは、個別の機能ユニットではなく、統合された演算ユニットを備えていました。そのため、命令の実行時間をオーバーラップさせることはできませんでした。たとえば、6400 CPUでは、加算命令の直後に乗算命令が続く場合、乗算命令が完了するまで加算命令を開始できないため、2つの命令の正味実行時間は、個々の命令の実行時間の合計になります。6600 CPUは、同時に、つまり並列に」動作できる複数の機能ユニットを備えており、CPUは命令の実行時間をオーバーラップさせることができました。たとえば、6600 CPU は、乗算命令の実行開始の次の CPU サイクルで加算命令の実行を開始できます (もちろん、乗算命令の結果が加算命令のオペランドではないと仮定)。そのため、2 つの命令の正味実行時間は、乗算命令の (長い方の) 実行時間になります。6600 CPU には命令スタック(命令キャッシュの一種) もあり、命令フェッチ要求に対するメモリの応答を待つことによって発生する CPU アイドル時間を削減することで、CPU スループットの向上に役立ちました。2 種類の CPU には命令の互換性があり、どちらかの CPU で実行されるプログラムは、もう一方の CPU でも同じように実行されますが、6600 CPU ではより高速に実行されます。実際、6000 シリーズのすべてのモデルは完全に相互互換性がありました。 CDC 6400 には CPU が 1 個 (6400 CPU)、CDC 6500 には CPU が 2 個 (両方とも 6400 CPU)、CDC 6600 には CPU が 1 個 (6600 CPU)、CDC 6700 には CPU が 2 個 (6600 CPU と 6400 CPU が 1 個ずつ) ありました。

中央処理装置(CP)

CDC 6x00レジスタ
5 9. . . 1 7. . . 0 0(ビット位置)
オペランドレジスタ(60ビット)
X0 レジスタ0
X1(読む) レジスター1
X2(読む) レジスタ2
X3(読む) レジスタ3
X4(読む) レジスター4
X5(読む) レジスター5
X6(書き込み) レジスター6
X7(書き込み) レジスター7
アドレスレジスタ(18ビット)
  A0 住所0
  A1(読み取りアドレス) 住所1
  A2(読み取りアドレス) 住所2
  A3(住所を読む) 住所3
  A4(住所を読む) 住所4
  A5(住所を読む) 住所5
  A6(住所記入) 住所6
  A7(アドレス書き込み) 住所7
インクリメントレジスタ(18ビット)
  B0 (全ビットゼロ)増分0
  B1 増分1
  B2 増分2
  B3 増分3
  B4 増分4
  B5 5を増分
  B6 6を増分
  B7 7を増分
プログラムアドレス(18ビット)
  P

6400、6500、および6600マシンの中央処理装置(CP)とメインメモリは60ビットのワード長でした。中央処理装置には、8つの汎用60ビットレジスタX0~X7、8つの18ビットアドレスレジスタA0~A7、そして8つの18ビット「インクリメント」レジスタB0~B7がありました。B0はハードウェアによって常に0に保持されていました。多くのプログラマは、B1を1に設定し、同様にB1を不可侵として扱うことが有用であると認識していました。

CP には入出力命令はなく、これらは周辺プロセッサ (後述) によって実行されます。メモリのロードやストア専用のオペコードはありません。これは特定の A レジスタへの割り当ての副作用として発生します。A1 から A5 を設定すると、そのアドレスのワードがそれぞれ X1 から X5 にロードされます。A6 または A7 を設定すると、X6 または X7 からワードが格納されます。A0 に関連する副作用はありません。スタントボックスと呼ばれる独立したハードウェア ロード/ストア ユニットが、命令ストリームの操作とは独立して実際のデータ移動を処理します。これにより、メモリへのアクセス中に他の操作を完了できます。メモリへのアクセスには、最良の場合でも 8 サイクルかかります。

6600 CPには10個の並列機能ユニットが搭載されており、複数の命令を同時に処理することができました。今日ではこれはスーパースカラ・プロセッサ設計として知られていますが、当時としては他に類を見ないものでした。現代のCPU設計の多くとは異なり、機能ユニットはパイプライン化されていませんでした。機能ユニットは命令が「発行」されるとビジー状態になり、その命令の実行に必要な時間中ずっとビジー状態のままでした。(対照的に、CDC 7600では機能ユニットにパイプライン化が導入されました。)最良の場合、機能ユニットへの命令発行は100ナノ秒のクロックサイクルごとに実行できました。システムはメモリから命令を可能な限り高速に(通常は命令の実行完了よりも高速に)読み取り、デコードし、各ユニットに送って処理させました。ユニットは以下のとおりです。

  • 浮動小数点乗算(2つのコピー)
  • 浮動小数点除算
  • 浮動小数点加算
  • "long"整数加算
  • インクリメンタ(2つのコピー、メモリのロード/ストアを実行)
  • シフト
  • ブール論理
  • 支店

このアーキテクチャでは、浮動小数点演算が最重要視されました。CDC 6600(および類似機種)は、60ビット浮動小数点乗算をプログラム分岐と同等の時間で実行できる点で、事実上唯一無二の性能を誇ります。ミッチ・アルサップによるジェームズ・ソーントンの著書『Design of a Computer』の最近の分析では、6600の浮動小数点ユニットは2段パイプライン設計であることが明らかになりました。

60ビット数の固定小数点加算と減算は長整数加算ユニットで処理され、負の数には1の補数が使用されます。固定小数点乗算は浮動小数点乗算ユニットの特別なケースとして実行されます。指数がゼロの場合、FPユニットは単精度の48ビット浮動小数点乗算を行い、上位指数部をクリアすることで、48ビットの整数値を生成します。整数除算はマクロによって実行され、浮動小数点との変換が行われます。[ 31 ]

以前に実行された命令は、「スタック」と呼ばれる8ワードのキャッシュに保存されます。スタック内ジャンプはメモリフェッチを必要としないため、スタック外ジャンプよりも高速でした。スタックは無条件ジャンプ命令によってフラッシュされるため、ループの最後における無条件ジャンプは、常に成功する条件付きジャンプとして記述するのが慣例でした。

このシステムは10MHzのクロックと4相信号を使用していました 浮動小数点乗算は10サイクル、除算は29サイクルかかり、メモリ遅延などの問題を考慮した全体的なパフォーマンスは約3MFLOPSでした マシンの後期には、当時入手可能な最高のコンパイラを使用しても、FORTRANプログラムは約0.5MFLOPSを維持できると期待されていました。

記憶の組織化

ユーザープログラムは、メインメモリの連続した領域のみを使用するように制限されています。実行プログラムがアクセスできるメモリ領域は、RA(相対アドレス)レジスタとFL (フィ​​ールド長)レジスタによって制御されます。これらのレジスタは、ユーザープログラムからはアクセスできません。ユーザープログラムが中央メモリのアドレスaにあるワードの読み取りまたは書き込みを試みると、プロセッサはまず a が0からFL-1までの範囲にあるかどうかを確認します。範囲に収まっている場合、プロセッサは中央メモリのアドレス RA+a にあるワードにアクセスします。このプロセスはベース境界再配置と呼ばれます。各ユーザープログラムは、コアメモリをアドレス0から始まる長さFLの連続したブロックワードとして認識します。実際には、プログラムは物理メモリ内のどこにでも配置できます。この手法を用いることで、RAレジスタがメモリ内の位置を反映している限り、各ユーザープログラムはオペレーティングシステムによってメインメモリ内で移動(「再配置」)できます。許可された範囲外(つまり、FL以上のアドレス)のメモリにアクセスしようとするユーザープログラムは、割り込みをトリガーし、オペレーティングシステムによって終了されます。このような状況が発生すると、オペレーティングシステムはコアダンプを生成することがあります。コアダンプはプログラムのメモリとレジスタの内容をファイルに記録し、プログラム開発者が何が起こったかを把握できるようにします。仮想メモリシステムとの違いに注意してください。この場合、プロセスのアドレス指定可能な空間全体がコアメモリ上に存在し、連続している必要があり、そのサイズは実メモリ容量を超えてはなりません。

CDC 6000シリーズの最初の7台を除くすべてのマシンは、オプションで拡張コアストレージ(ECS)システムを搭載することができました。ECSは、中央メモリで使用されていたものとは異なる種類のコアメモリから構成されていました。このメモリは低速でしたが、安価であったため、はるかに大容量化が可能でした。その主な理由は、ECSメモリがコアごとに2本の配線で接続されていたことです(中央メモリは5本でした)。非常に広い転送幅を持つため、シーケンシャル転送速度は小さなコアメモリと同じでした。6000 CPUは、ユーザープログラム(またはオペレーティングシステム)とECSユニットの間でブロックメモリ転送を直接実行できました。広いデータパスが使用されるため、これは非常に高速な操作でした。メモリ境界は中央メモリと同様に維持され、RA/FLメカニズムはオペレーティングシステムによって維持されました。ECSは、中央メモリには大きすぎるユーザーデータ配列の格納、頻繁に使用されるファイルの保持、スワップ、さらにはマルチメインフレームシステムにおける通信パスなど、さまざまな用途に使用できました。

周辺プロセッサ(PP)

他の設計ではCPUに割り当てられていた「ハウスキーピング」タスクを処理するために、クレイは初期のコンピュータCDC 160-Aをベースにした10個のプロセッサを新たに搭載した。周辺プロセッサ(PP)と呼ばれるこれらのマシンは、それ自体が完全なコンピュータであるが、I/Oタスクの実行とオペレーティングシステムの実行に特化していた(オペレーティングシステムの大部分はPP上で実行されていたため、中央処理装置(CPU)のパワーの大部分はユーザープログラムに利用可能であった)。I/OチャネルにアクセスできるのはPPのみであった。PPの1つ(PP0)は、メインCPU上で実行されるプログラムの制御を含むマシン全体の制御を担当し、他のPPは様々なI/Oタスクに専用であった。PP9はシステムコンソール専用であった。CPプログラムはオペレーティングシステムの機能を実行する必要がある場合、PP0によって監視される既知の場所(参照アドレス+1)に要求を送信する[ 32 ]。必要に応じて、PP0は別のPPに必要コードのロードとリクエストの処理を割り当てます。その後、PPはRA+1をクリアして、CPプログラムにタスクが完了したことを通知します。

マシン制御におけるPP0の独特な役割は、潜在的な単一障害点となる可能性があり、他の9つのPPとCPUが正常に動作していても、ここで故障が発生するとマシン全体がシャットダウンする可能性があります。Crayは後継機7600の設計でこの問題を修正し、どのPPでもコントローラとして機能し、CPUは任意のPPをこの役割に再割り当てできるようになりました。

各PPには、4096個の12ビットワードからなるメモリが搭載されていました。このメモリはI/Oバッファリングとプログラムストレージの両方に使用されていましたが、実行ユニットは10個のPPで共有され、バレル&スロットと呼ばれる構成になっていました。これは、実行ユニット(「スロット」)が最初のPPから1命令サイクルを実行し、次に2番目のPPから1命令サイクルを実行するというように、ラウンドロビン方式で実行されることを意味します。これはコスト削減のためと、CPメモリへのアクセスに10個のPPクロックサイクルが必要だったためです。つまり、PPがCPメモリにアクセスすると、次にPPがスロットタイムを受け取った時点でデータが利用可能になります。

中央処理装置へのアクセス

PPには従来の命令セットに加えて、中央処理装置との通信に特化した命令がいくつかある。[ 33 ]:pp.4-24~4-27

  • CRD d- PPs Aレジスタで指定されたアドレスの中央メモリから1つの60ビットワードを、アドレスdから始まる5つの連続するPPワードに転送します。
  • CRM d,m- CRD に似ていますが、以前に位置dに格納されていた長さのワード ブロックを、 PP アドレスmから始まる PP メモリに転送します。
  • CWD d- 位置dから始まる 5 つの連続する PP ワードを組み立て、レジスタAで指定された中央メモリの位置に転送します。
  • CWM d,m- PPメモリアドレスmから始まるブロックを中央メモリに転送します。中央メモリのアドレスはレジスタAに格納されており、長さは実行前に位置dに格納されています。
  • RPN- 中央プロセッサのプログラム アドレス レジスタの内容を PP のAレジスタに転送します。
  • EXN交換ジャンプはAレジスタからアドレスを送信し、プロセッサに指定されたアドレスを用いて交換ジャンプを実行するよう指示します。CP交換ジャンプはプロセッサに割り込みをかけ、指定された位置からレジスタをロードし、以前の内容を同じ位置に格納します。これによりタスクスイッチが実行されます。[ 33 ] : pp.3-9–3-10

単語長、文字数

中央プロセッサは60ビットワード、周辺プロセッサは12ビットワードです。CDCでは、周辺プロセッサが使用する12ビットのエンティティを「バイト」と呼んでいます。文字は6ビット、中央プロセッサの命令は15ビット、または符号付き18ビットアドレスフィールドを持つ30ビットです。後者は、中央メモリの128Kワード(現代の用語に換算すると8ビットバイトで、これは約1MB弱)を直接アドレス指定可能なメモリ空間を可能にします。アドレスレジスタが符号付きであるため、個々のプログラムは128Kワードに制限されます。 (後期のCDC 6000互換機は、予算が許せば256Kワード以上の中央メモリを搭載できたが、個々のユーザープログラムは依然として128Kワードの中央メモリに制限されていた。)中央プロセッサ命令は、ジャンプ文やサブルーチンリターンジャンプ命令の対象となる場合、ワード境界から始まるため、ワードの最後の15ビット、30ビット、または45ビットを埋めるためにno-op命令が必要となる場合がある。経験豊富なアセンブラプログラマは、これらのno-op領域をプログラムの後半で必要となるその他の命令で埋めることで、プログラムを微調整することができた。

CDC表示コードと呼ばれる符号化方式の6ビット文字[ 34 ] [ 35 ] [ 36 ]は 1ワードあたり最大10文字を格納できました。64文字の文字セットが可能で、これはすべての大文字、数字、および一部の句読点を格納できる十分な文字数でした。FORTRANの記述や、財務報告書や科学報告書の印刷には十分でした。CDC表示コード文字セットには、実際には64文字セットと63文字セットの2つのバリエーションがありました。64文字セットには、「:」(コロン)文字がワードの最後の文字である場合、無視される(ゼロフィルとして解釈される)という欠点がありました。補完的なバリエーションである6/12表示コードも、 KronosおよびNOSタイムシェアリングシステムで使用され、古いソフトウェアとある程度互換性を保ちながらASCII文字セットをフルに活用できるようにしました。 [ 37 ]

バイトアドレス指定命令が全く存在しなかったため、文字をワードにパックしてシフトするコードを記述する必要がありました。ワードサイズが非常に大きく、メモリ容量が比較的小さかったため、プログラマーはビットレベルでデータをワードにパックすることでメモリを節約することがよくありました。

ワードサイズが大きく、1ワードあたり10文字という大容量のため、ワード単位の文字を一度に処理する方が、アンパック/処理/再パックするよりも高速になることがよくありました。例えば、CDC COBOLコンパイラは、この手法を用いて10進数フィールドの処理に非常に優れていました。こうした手法は、 AVXなどの現在のプロセッサのベクトル命令で広く使用されています。

物理設計

CDC 6600コードウッドロジックモジュール。64個のシリコントランジスタを搭載。同軸コネクタはテストポイントとして機能し、モジュールはフロントパネルを介して伝導冷却される。6600モデルには、このようなモジュールが約6,000個搭載されていた。[ 38 ]

このマシンはプラス記号型の筐体に収められており、4本のアームそれぞれの最外郭18インチ(46cm)にポンプと熱交換器が備え付けられていた。冷却は、マシン内を循環するフロンガスを外部の冷水供給源と熱交換させることで行われていた。各アームには、厚さ約8インチ(20cm)のシャーシを4台搭載できた。シャーシは中央付近でヒンジで開閉し、本のように開く構造になっていた。「プラス」の交点には、シャーシ同士を接続するケーブルが張り巡らされていた。シャーシには1(10個のPPUとそのメモリ、そして比較的小規模な12個のI/Oチャネルを内蔵)から16までの番号が付けられていた。CPUのメインメモリは、シャーシの複数の部分に分散されていた。メインメモリが64Kワードしかないシステムでは、「プラス」のアームの1つが省略されていた。

マシンのロジックは、約64mm四方、厚さ約2.5cmのモジュールにパッケージ化されていました。各モジュールの片側にはコネクタ(30ピン、15ピン×2列)があり、反対側の端には6つのテストポイントがありました。モジュールは放熱のため、2枚のアルミニウム製冷却プレートの間に配置されていました。モジュールは2枚の平行プリント基板で構成され、部品はどちらか一方の基板上または2枚の基板間に実装されていました。これにより非常に高密度なパッケージが実現され、一般的に修理は不可能でしたが、優れた熱伝導特性を備えていました。これはコードウッド構造として知られていました。

オペレーティングシステムとプログラミング

6600のオペレーティングシステムサポートには、ある難点がありました。それは、スケジュールの遅延です。当初、このマシンはCOS(Chippewa Operating System )と呼ばれる非常にシンプルなジョブ制御システムを搭載していました。これは、出荷前にシステムをテストするための基盤として、以前のCDC 3000オペレーティングシステムをベースに急遽「まとめ上げ」られたものでした。しかし、当初は、ロサンゼルスのシステムサイエンス部門で開発されていた、SIPROS(Simultaneous Processing Operating Systemの略)と呼ばれる、はるかに強力なシステムを搭載して出荷される予定でした。顧客はSIPROSの機能に感銘を受け、多くの顧客が納品契約にSIPROSを盛り込みました。

SIPROSは大失敗に終わりました。開発スケジュールは遅延し続け、CDCは納期遅延によるペナルティという形で多額の利益を失いました。マシンの出荷準備が整うまで数ヶ月待たされた後、プロジェクトは最終的に中止されました。COSの開発に携わっていたプログラマーたちはSIPROSにほとんど信頼を置いておらず、COSの改良に取り組み続けました。

その後、オペレーティングシステムの開発は2つの陣営に分かれました。CDC(Central Development Council)の認可を受けたCOSの開発は、カリフォルニア州サニーベールのソフトウェア開発研究所で行われました。多くの顧客は最終的に、当時SCOPE (Supervisory Control Of Program Execution)と呼ばれていたこのソフトウェアを搭載したシステムを納品しました。SCOPEバージョン1は、基本的にCOSを逆アセンブルしたもので、SCOPEバージョン2には新しいデバイスとファイルシステムのサポートが含まれ、SCOPEバージョン3には永続ファイルサポート、EI/200リモートバッチサポート、INTERCOMタイムシェアリングサポートが含まれていました。しかし、SCOPEは常に信頼性と保守性に関して重大な問題を抱えていました。

CDC 6000シリーズSCOPE 3.1がデスクトップCYBERエミュレータ上で動作しながら自身をビルドする

COSの秘密開発は、ミネソタ州アーデンヒルズの組立工場で行われました。MACE([Greg] Mansfieldと[Dave] Cahlander Executive)は、マシンが利用可能な空き時間に、主に一人のプログラマーによって開発されました。その機能セットはCOSおよびSCOPE 1と基本的に同じでした。初期のCOSファイルシステムを継承しながらも、コードのモジュール化において大幅な進歩を遂げ、システムの信頼性と新しいストレージデバイスへの適応性を向上させました。MACEは正式な製品にはなりませんでしたが、多くの顧客がCDCからコピーを入手することができました。

非公式のMACEソフトウェアは、後に公式SCOPE製品ではなく、ギリシャ神話の時間の神にちなんで名付けられた次期CDCオペレーティングシステムKronosの基盤として採用されました。採用の主なマーケティング上の理由は、TELEXタイムシェアリング機能とBATCHIOリモートバッチ機能の開発でした。Kronosは、パーマネントファイル機能を追加したCOS/SCOPE 1ファイルシステムを引き続き使用しました。

SCOPEとKronosのオペレーティングシステム製品を統合する試みとして、 NOS(ネットワークオペレーティングシステム)が誕生しました。NOSはCDCのすべてのマシンで唯一のオペレーティングシステムとなることを意図しており、CDCはこの方針を強く推進しました。多くのSCOPE顧客は依然としてSCOPEアーキテクチャにソフトウェア的に依存していたため、CDCは単にNOS/BE(バッチ環境)と改名し、全員がNOSを実行していると主張することができました。実際には、Kronosのコードベースを変更してSCOPE機能を追加する方が、その逆よりもはるかに簡単でした。

組立工場の環境では、顧客による使用を想定していないオペレーティングシステムも開発されました。これには、ハードウェアテスト用のエンジニアリングツールSMMや、ソフトウェアスモークテスト用のKALEIDOSCOPEなどが含まれます。CDCのフィールドエンジニアがテスト中によく使用していたもう1つのツールは、MALET(Maintenance Application Language for Equipment Testing)です。これは、エンジニアによる修理やメンテナンス後のコンポーネントやデバイスのストレステストに使用されました。テストでは、ハードディスクパックや磁気テープに意図的にエラーマークを付け、MALETとエンジニアがエラーを検出できるかどうかを判断していました。

SCOPE および COMPASS という名前は、CDC では、 6600 を含むCDC 6000 シリーズCDC 3000 シリーズの両方に使用されていました。

CDC 7600

CDC 7600は当初、既存の6000シリーズマシンとの完全な互換性も確保することを目的としており、当初はCDC 6800という名称でした。しかし、設計段階で、既存の6000シリーズマシンとの完全な互換性を維持するとパフォーマンスの向上が制限されると判断し、パフォーマンスを優先して互換性を犠牲にしました。CDC 7600のCPUは基本的に6400および6600 CPUと命令互換であり、高級言語のソースコードレベルでのコード移植性を実現していましたが、CDC 7600のハードウェア、特に周辺処理装置(PPU)は大きく異なっていたため、CDC 7600には異なるオペレーティングシステムが必要でした。これはある意味幸運な選択だったと言えるでしょう。なぜなら、これにより設計者は6000シリーズの設計特性のいくつかを改善することができたからです。例えば、CPUを含むコンピュータシステム全体の動作制御を周辺プロセッサ(PP)、特に最初のPP0に完全に依存していた点です。6600 CPUとは異なり、CDC 7600のCPUは、すべてのレジスタの内容をコアメモリとスワップするCentral Exchange Jump(XJ)命令を介して自身の動作を制御できました。実際、6000シリーズマシンにはこの機能が後付けで搭載されていました。

参照

参考文献

  1. ^ a bアダムズ調査 1968
  2. ^ a bコンピュータディレクトリとバイヤーズガイド 1967
  3. ^ a b c 6000シリーズサイト準備、1965年9月
  4. ^ 「Control Data 6600:スーパーコンピュータの登場」ドクター・ドブス. 2017年6月5日時点のオリジナルよりアーカイブ。 2018年10月6日閲覧
  5. ^ CDC 6400 中央処理装置トレーニングマニュアル、1967年2月
  6. ^サイバー70製品発表
  7. ^ a b Whetstoneベンチマークの履歴と結果
  8. ^ケイトン、アンドリューRL、シッソン、クリス・ザッカー(2006年)『アメリカ中西部:解釈百科事典』インディアナ大学出版局、ISBN 0253003490
  9. ^ 「CDC 6600 – 歴史的幕間:メインフレームからミニコンピュータへ パート2、IBMと7人の小人 – 彼らは世界を創造する」 2014年11月8日。
  10. ^「シーモア・クレイによって設計されたCDC 6600は、当時2番目に高速だったIBM 7030 Stretchのほぼ3倍の速度を誇りました。」『世界を変革する:エンジニアリングのアイデアを現実に』全米工学アカデミー、2014年、ISBN 978-0309312653
  11. ^「1964年、クレイのCDC 6600がStretchに取って代わり、地球最速のコンピュータとなった。」ソフロニウ、アンドレアス(2013年)。『エキスパートシステム、人間の複製のための知識工学 Lulu.com。ISBN 978-1291595093
  12. ^ Anthony, Sebastian (2012年4月10日). 「スーパーコンピュータの歴史」 . ExtremeTech . 2015年2月2日閲覧
  13. ^ "CDC 6600" .ブリタニカ百科事典. 2015年2月2日閲覧。
  14. ^ 「7600の設計は、他のどのスーパーコンピュータの設計よりも長く存続した。1969年の導入から1976年のCray 1の導入まで、あらゆるコンピュータの中で最高の性能を誇った。 」 『CDC 7600』 。 2016年5月15日時点のオリジナルよりアーカイブ。 2017年10月15日閲覧
  15. ^ N. ルイス、「購買力:ロスアラモスにおけるスーパーコンピュータ選定における競争、反対意見、そしてコンピューティング戦略」『IEEE Annals of the History of Computing』第39巻第3号(2017年):25-40頁、2017年[1]
  16. ^ 「CDC 6600がCERNに到着」 CERNタイムライン
  17. ^ Compagnie Lyonnaise de Cinéma (1965年1月14日). 「Contral Data 6600コンピュータが欧州原子核研究機構(CERN)に到着」 . CDSビデオ.
  18. ^ 「豊作」研究レビュー.ローレンス・バークレー研究所. 1981年. 2018年1月18日時点のオリジナルよりアーカイブ2017年5月4日閲覧。
  19. ^ 「Control Data 6600: The Supercomputer Arrives」 。2019年7月7日時点のオリジナルよりアーカイブ
  20. ^ 「Control Data Corporation、「Little Character」プロトタイプ」コンピュータ歴史博物館。 2016年4月21日閲覧
  21. ^ Howard, Toby (1997年2月). 「シーモア・クレイ:評価」 . Personal Computer World .
  22. ^ LJ Lander; TR Parkin (1966). 「同数累乗の和に関するオイラー予想の反例」 . Bull. Amer. Math. Soc . 72 (6): 1079. doi : 10.1090/S0002-9904-1966-11654-3 .
  23. ^ Mark D. Hill、Norman P. Jouppi Gurindar S. Sohi編(1999年9月23日)。Readings in Computer Architecture、Morgan Kaufmann、p. 11。ISBN 978-1558605398
  24. ^メモの正確な画像は、「CDC 6600に関するワトソン・ジュニアのメモ」に掲載されています。1963年8月28日。
  25. ^ Smotherman, Mark; Spicer, Dag (2010年12月). 「IBMのシングルプロセッサ・スーパーコンピュータへの取り組み」 Communications of the ACM 53 ( 12). Association for Computing Machinery : 28–30 . doi : 10.1145/1859204.1859216 . S2CID 23816526 . 
  26. ^ UNIVAC 1100/2200 シリーズは、2 の補数ハードウェアを使用して、1 の補数環境を提供します。
  27. ^ 「図6-1. デッドスタートパネル」(PDF) .制御データ - 6000シリーズ - コンピュータシステム(PDF) . p. 6-3 . 2023年10月6日閲覧
  28. ^ソーントン、ジェームズ(1970年12月1日)『コンピュータの設計:コントロールデータ6600』p.20. ISBN 978-0673059536
  29. ^ Control Data 6000 シリーズ ハードウェアリファレンスマニュアル(PDF) 1978 年。
  30. ^ Hayes, John.P (1978)、「コンピュータアーキテクチャと組織」、McGraw-Hill、p. 163、ISBN 0-07-027363-4
  31. ^ 「アーカイブコピー」 2014年1月2日時点のオリジナルよりアーカイブ。 2005年6月13日閲覧{{cite web}}: CS1 maint: アーカイブされたコピーをタイトルとして (リンク)
  32. ^この説明は CDC ソフトウェアの初期バージョンについて説明しています。後のバージョンでは、Central Exchange ジャンプ (XJ) 命令を使用して、CP 内で完全に実行できる機能のオーバーヘッドを削減しました。
  33. ^ a b Control Data Corporation (1965年7月). Control Data® 6000シリーズコンピュータシステムリファレンスマニュアル(PDF) . 60100000. 2023年3月28日閲覧
  34. ^「ディスプレイコード」という用語はCDCと関連付けられており、「EBCDIC」が*元々*IBMと関連付けられていたのと同様です。業界で使用されていた他の用語にはBCDとSIXBIT(後者はDECが推奨)がありました。
  35. ^ 「DEC/PDP 文字コード」
  36. ^ 「SIXBIT 文字コードリファレンス」 。 2016年11月24日時点のオリジナルよりアーカイブ2017年10月15日閲覧。
  37. ^ 「CDC クロノス」(PDF) .
  38. ^『コンピュータを理解する:速度とパワー』 1990年、17ページ。
  39. ^ 「24ビットマシン用COMPASS」(PDF)2012年9月10日時点のオリジナル(PDF)からアーカイブ2017年10月15日閲覧。
  40. ^ 「48 ビット マシン用 COMPASS」(PDF)
  41. ^「CDCは3600向けにSCOPEオペレーティングシステムの初期バージョンを納入した」ヘンリー、アーネスト・J.、ルーウィンズ、ジェフリー(2014年)。『核科学技術の進歩』エルゼビア。ISBN 978-1483215662

さらに読む