フランス、オートゥイユの SNCF でのブル ガンマ 60、1960 年 | |
| 開発者 | カンパニー・デ・マシーンズ・ブル |
|---|---|
| タイプ | 大規模メインフレームコンピュータ |
| 世代 | 2 |
| 発売日 | 1960 |
| 導入価格 | 1000万フラン(1960年、2023年に約1800万米ドル) |
| 販売数 | 17 |
| オペレーティング·システム | GGZ、GGU |
| CPU | トランジスタ化、分散化、マルチスレッド。最大 25 個の処理ユニット。1 ~ 4 ワードのデータ型を持つ 24 ビット ワード。@ 100 kHz |
| メモリ | 中央メモリ: 32 kwords (コア メモリ)。最大 4 つのドラム メモリ拡張 (各 25 kwords)。 |
| ストレージ | 最大48台の磁気テープリーダー |
| 入力 | 磁気テープ、パンチカード、紙テープ、テレタイプ |
| 力 | 200~400kVA |
| 寸法 | 通常3000~4000平方フィート |
| 前任者 | ブルガンマ3 |
| 後継 | GE-600シリーズ |
Bull Gamma 60 は、Compagnie des Machines Bullが設計した大型トランジスタメインフレームコンピュータです。1957 年に最初に発表され、最初のユニットは 1960 年に出荷されました。これは、世界初のマルチスレッドコンピュータであり、並列処理用に特別に設計されたアーキテクチャを備えた最初のコンピュータであるという特徴を持っています。[1] [2]
ガンマ60は1960年代初頭、当時まだ初期段階にあったツールを活用し、特にマルチプログラミングにおいて数々の画期的な技術の先駆けとなった。発売されると、そのアーキテクチャは機械設計者の間で大きな注目を集め、当時のスーパーコンピュータと並んで研究対象となり、コンピュータ設計の進歩の例として挙げられた。[3] [4]
ガンマ 60 は革新的な製品であったが、設置面積が大きく (4000 平方フィート近く)、コストが高く、エネルギー消費量が多く、複雑であったため、最終的には商業的な成功には至らず、世界中で 20 台ほどしか売れなかった。主な競合製品には、IBM 7070、7090、7030 "Stretch" などがあった。[5]最後のガンマ 60 は 1974 年まで使用されていた。[6]
デザイン
ガンマ60は、ブルがコアメモリ、ソリッドステートロジック、磁気テープ機能に参入したことを示すものであった。[7]そのアーキテクチャコアは、大規模で高速な中央メモリに基づいており、アービトレータ(プログラムディストリビュータとして知られる)がコンピュータ内のさまざまなユニットにデータと命令を分配する役割を担っていた。プロセッサは、中央ユニットと一連の個別の専用処理ユニットに分割されていた。この設計により、それぞれ5つの処理ユニットを含む最大5つのクラスターの同時操作が可能になった。[8]
コンピュータ内の各ユニットは、処理装置であれ周辺機器であれ、自律的に動作し、データや命令が利用可能になると中央装置に要求する。処理装置間のデータ転送は、送信用と取得用の2つの独立したバスを介して行われる。[4]
プロセッサ
プロセッサは24ビット並列構成で動作し、主なデータ型は1、2、または4ワード(「カテナ」とも呼ばれる)で、幅は24ビットから96ビットの範囲です。より単純で低速な外部デバイスは、内部で8ビット並列ロジックを採用することが多かったです。これらのデバイスは、命令とデータ転送要求のためにビットシリアルメッセージを介して中央ユニットと通信しました。すべてのメッセージは非同期であり、マシンは優先度クラスを通じて、必要に応じてALU(算術論理ユニット)からでも非常に高いデバイスレイテンシに対応できるように設計されていました。[4]
プロセッサは4種類の処理要素に分かれている。[2]
- 論理計算機 (バイナリ ALU): バイナリ算術演算と論理演算を実行できます。
- 算術計算機 (BCD ALU): 加算、減算、乗算、除算など、小数を含む演算用に設計されています。
- 比較ユニット: 文字列の比較、文字列と定数の比較、メモリ領域間のデータ転送、メモリ領域の消去に使用されます。
- トランスレータ: I/O デバイス コードと内部文字コード間の変換、および出力用のレコードの編集を担当します。
最大 25 個の特殊処理ユニットを同時に実行できるにもかかわらず、マシン内に存在する中央ユニット (ディスパッチャとして機能) は 1 つだけであり、これは SMP (対称型マルチプロセッシング) アーキテクチャとして分類されません。
処理ユニットが別々のキャビネットに分散していることを考慮して、当初想定されていた値の半分である 100 kHz という低速のクロック速度を選択したのは、伝播遅延の影響を軽減するためでした。これにより個々の処理ユニットのパフォーマンスに制限が課せられましたが、Bull の戦略は並列処理と簡単に処理ユニットを追加できることでそれを相殺することでした。[5]興味深いことに、Gamma 60 ロジックはトランジスタ化されていましたが、ゲルマニウム トランジスタの動作電圧は、一部のキャビネットと周辺機器の間に時々発生する可能性のある大きな距離のインピーダンスに対抗するには低すぎました。その結果、クロックと一部の I/O 信号を駆動するために、場合によっては真空管を使用する必要がありました。[9]
現代的な言葉で言えば、Gamma 60 CPUは、命令レベルで明示的なフォークジョイン並列処理を使用して、非同期並列プロセス用のハードウェアタイムシェアリング中央プロセッサとして説明されます。 [4]
Gamma 60は、スーパースカラープロセッサのアーキテクチャを予見するもので、現在では中央メモリの役割の一部はキャッシュによって担われている。さらに、各命令が独自のスレッドであり、実行の同時実行とメモリアクセスの一貫性の管理がプログラマの責任に委ねられているという点で、 Intel ItaniumなどのEPICアーキテクチャとの類似点を共有している。[8] [4]
メモリ
.jpg/500px-Musée_des_Arts_et_Métiers_-_Mémoire_à_tores_de_ferrite_du_Gamma_60_(23714000818).jpg)
中央メモリは、基本メモリ サイクルが 10 μs のコア メモリ スタックで実装されており、Gamma 60 の最速コンポーネントとなっています (比較すると、固定小数点加算には 100 マイクロ秒かかりました)。メイン メモリ アドレスは 15 ビットでコード化されており、中央メモリには 32,768 ワード、つまり 96 kB を保存できます。
メモリマップは連続しており、ユニット固有のローカルレジスタのセットを含む最初の128バイトを除いて、すべてのユニットで共有されていました。中央メモリは、すべてのコンポーネントの中ではるかに低いレイテンシを持っていたため、Gamma 60の心臓部を構成していました。それ以降、処理ユニットにはレジスタの他に作業メモリはなく、代わりにプログラムディストリビュータが中央メモリへのポインタをレジスタにロードすることで、データと命令をユニットに送信しました。[4]
各処理ユニットの128バイトのメモリは、平面コアメモリを使用して実装され、次のマップに従っていました。[2]
- 15ビットのプログラムアドレスレジスタ(PAR)
- 1 ビットの可用性ステータス (ビジー/利用可能)
- 15ビットのキューヘッドポインタ(Bレジスタ)
- 15ビットのキュー末尾ポインタ(Cレジスタ)
- ユニットに応じて1~4個の15ビットデータアドレスレジスタ(DAR)
- 分析レジスタ(AR)は、プログラムディストリビュータに処理ユニットの状態に関する情報を提供します。
- 実際のプログラム アドレス レジスタ (APAR)。プログラム ディストリビュータによって特定の処理ユニットが選択されると、そのユニットの PAR が APAR にロードされます。APAR は、そのユニットの命令ワードをフェッチするために使用され、フェッチのたびに増加します。ユニットがプログラム ディストリビュータによってリリースされると、APAR の現在の内容がそのユニットの PAR に保存されます。
唯一の例外は、独自のレジスタ セットを持つプログラム ディストリビュータです。
周辺機器
ガンマ60の周辺機器は、レイテンシとパフォーマンス特性に基づいて4つの異なるクラスに分類されました。[10]
クラス0

クラス 0 には、最も高速で、最もタイム クリティカルな周辺機器が含まれています。プログラム ディストリビュータは、命令とデータを転送するために、他のどのクラスよりもこのクラスを優先しました。このクラスは、論理ユニット (バイナリ ALU) とオペレータ デスクの 2 つのデバイスで構成されていました。
クラス1
クラス 1 には、算術ユニット (BCD ALU)、汎用コンパレータ、およびトランスコーダ (変換ユニット) が含まれていました。
クラス2
クラス 2 には、次のようなストレージ デバイスが含まれます。
- 磁気ドラム:
磁気ドラムは、中央メモリよりもアクセス時間が遅い (10 ミリ秒対 10 マイクロ秒) 大容量メモリとして機能しました。Gamma 60 には最大 4 つのドラムを追加でき、各ドラムの容量は 200 ワード (150 KB) の 128 トラックでした。これらのメモリはメイン メモリの名前空間にマップされませんでしたが、磁気テープと同じようにアクセスされました。
- 磁気テープ:
最大 10 個の Uniselector と呼ばれる特殊な I/O プロセッサは、それぞれ最大 12 個のテープ ユニットを制御できます。ただし、同時に接続できるテープ ユニットは 48 個のみです。
磁気テープの記録密度は 200 ビット/インチ、長さは 730 メートルまたは 1100 メートルでした。磁気テープ ユニットでは、 NRZ (非ゼロ復帰)ではなく位相変調が使用されていました。この技術は、以前にGamma 3のドラム メモリ用に開発されていました。
クラス3
クラス 3 には、次のような低速録音機器が含まれます。
- カードパンチとカードリーダー(1 分あたり 300 枚)、各種類最大 4 台。
- 紙テープリーダー(毎秒200文字)
- 高性能プリンター (1 秒あたり 5 行)、最大 8 台。Gamma 60 プリンターには、バッファーとして使用される独自のコア メモリが搭載されていました。
クラス4
最後に、クラス 4 には、テレタイプやタイプライターなどの最も遅い周辺機器が含まれていました。
実行サイクル

ガンマ60で採用されたシーケンス機構は、命令のフェッチと分配、実行制御、メモリアクセス、プロセス間通信のオーケストレーションを網羅していた。以下のシーケンスは、完全な命令実行サイクルの詳細である。[2]
- プログラム ディストリビュータは、命令 (ITR 信号) を要求する最も優先度の高い処理ユニットをスキャンしました。
- プログラム ディストリビュータは、最も優先度の高い処理ユニットに信号を送信し、処理ユニットはステータス ワードを返し、その後、アドレス レジスタ (AR) に格納します。
- a ) ユニットがビジー状態だが現在ディレクティブを実行していない場合、プログラム ディストリビュータはそのユニットのプログラム アドレス レジスタ (PAR) でアドレス指定された命令をフェッチして実行しました。新しいディレクティブが検出されると、それが処理ユニットに送信され、プログラム ディストリビュータは他の作業をスキャンしました。b ) 最も優先度の高い処理ユニットが使用可能な場合、プログラム ディストリビュータはそのユニットのキューをチェックして待機中のプロセスを探しました。見つかった場合、処理ユニットのキュー ヘッド ポインタのアドレスに 1 を加えたアドレスが PAR にロードされ、キュー ヘッド ポインタが更新され、ディレクティブ (またはカット) ワードが検出されるまでそのユニットの命令フェッチと実行が開始されました。前と同様に、ディレクティブを送信すると、プログラム ディストリビュータは命令要求信号をリセットし、他の作業をスキャンしました。
- 処理ユニットがメモリとの間でデータを受信または送信する準備ができると、メモリ アービターに信号を送ります。
- メモリ アービターは、適切な DAR (データ アドレス レジスタ) からのアドレスを使用して、メモリ要求を尊重しました。
- 処理装置は命令が完了するまでデータ転送を継続し、その後、新しい命令要求信号をプログラムディストリビュータに送信しました。
プログラミング
当時は並列プログラミングに適した開発ツールが存在しなかったため、Gamma 60 のプログラミングは面倒な作業でした。高級言語が登場したのは、Gamma 60 の導入から 2 年後でした。
2 種類の機械語が存在しました。
- コードAは実際のマシンコードであり、操作タイプと引数を使用してGamma 3と非常によく似た方法で記述されています。コードAは、カードパンチと簡単な目視検査に役立つ固定構造を使用していました。[11]実行のために中央メモリに直接送られることを目的としていました。
- コードBは、ニーモニック、10進アドレス(BCDモードで便利)、およびシンボル名をサポートする、より現代的なアセンブラ(当時はオートコードと呼ばれていた)であった。コードBは、結果として得られる機械語を磁気テープに書き込むアセンブラプログラムに入力されることになっていた。ブルはガンマ60用に約300個のコードBサブルーチンのライブラリを開発したが、そのほとんどは算術計算とI/Oを扱っていた。[7] [12]
高級言語の必要性を認識したブルは、ガンマ60用の新しい言語AP3の開発を開始した。しかし、この構想は最終的に放棄され、ブルは1950年代後半からALGOLに多大な投資を行った。[13] ALGOL 60コンパイラは最終的に1962年12月にリリースされた。 [13]
Algol は Gamma 60 のプログラミングにおける多くの複雑さの問題を解決しましたが、ビジネス アプリケーションには適していませんでした。さらに、Gamma 60 が設計された当時はCOBOL は存在せず、コンピュータの寿命の中ではまだ初期段階にありました。さらに、Gamma 60 はフォーク ジョイン モデル[7]を使用していましたが、COBOL はこれに対応するように設計されていませんでした。その結果、開発者はビジネス アプリケーションで Gamma 60 をプログラミングするためにコード B を使用するしか選択肢がありませんでした。[7]
タスクを小さな同時スレッドに分割するための高度な高レベルツールが存在しないということは、ほとんどのプログラムがハードウェアの能力のほんの一部しか利用できないことを意味していました。[14]
説明書
完全な Gamma 60 命令は、次の 4 種類の 24 ビット ワードの連続で構成されます。
- A - アドレス: オペランドを識別するために 15 ビットのアドレスを使用しました。アドレス ワードは、データ アドレス レジスタ (DAR) をロードしたり、インデックスまたは間接参照によって値を変更したり、メモリに格納したりできます。
- B - 分岐: 分岐アドレスは15ビットのアドレスフィールドで示される
- C - カット: マルチプロセスを有効にする (下図参照)
- D - 指令: 処理命令を出した
- E (または0 ) - 空白。処理効果はなく、キューイング用のアドレスフィールドを提供するために使用されました。
完全な指示は必ず指令とともに続く必要があります。
命令フォーマットは処理装置によって異なり、直接、相対、間接のメモリ アドレス指定をサポートしていました。Gamma 60 は、主にメイン メモリのロード/ストア操作を通じてメモリ操作を実行したり、処理命令を使用して処理装置のレジスタを操作したりしていました。マルチプロセッシングは 2 つの命令で実現されていました。cut (「coupure」)はプログラム アドレスを指定して処理装置をアクティブにし、simu (「simultané」) は別の装置への非同期分岐を有効にしました。
例として、次の式を考えてみましょう。
これは、次のガンマ60疑似コードを使用して実装できます。[4]
[C] 乗算単位にカット:
[A] アドレス(ロード)b
[A] アドレス(ロード)c
[A] アドレス(ストア)a
[D] ディレクティブ(マルチ)
[C] 演算ユニットにカット:
[A] アドレス(ロード)a
[A] アドレス(ロード)d
[A] 住所(店舗)d
[D] ディレクティブ(追加)
処理ユニット間の命令の分配と同期の処理は、プログラム ディストリビュータによって自動的に行われました。
初期のオペレーティングシステムGGZ(Gestion Générale Zéro、またはGeneral Management version Zero)は、Gamma 60用に開発されました。これは、ブートローダ、リソーステーブル、エラーハンドラ、およびオペレータコマンドインタープリタを含む、磁気テープに格納されたコンパクトな常駐スーパーバイザとして提供されました。ブートローダは、ブート中にいくつかの変数を初期化したり、オペレータから変数を受け入れたりすることができました。[7]
より高度なオペレーティングシステムであるGGU(Gestion Générale des Unités)が後に出荷されましたが、コンピュータの寿命が終わりに近づいたため未完成のままでした。GGUはメモリ管理、強化されたエラー回復、自動化されたジョブ管理とスケジュールなどの機能を導入しました。[11]ベルギーのRTTで特に使用されました。[6]
残念ながら、1950年代後半から1960年代前半に利用可能だったコンパイラ、オペレーティングシステム、デバッガなどのソフトウェアツールは、Gamma 60の機能を十分に活用するにはまだ原始的すぎました。EPICアーキテクチャの同時実行を自動的に利用できるコンパイラは、Gamma 60の全寿命を超える開発期間を経て、1990年代後半になってようやく登場しました。[5]
当時の粗雑なツールによるプログラム開発の大きな課題のため、Bull社はIBM社に顧客をいくつか奪われた。IBM社のマシンはシングルプロセッサではあったが、よりシンプルでコスト効率に優れていた。[15]
クライアント

1950年代後半から1960年代前半にかけて、約20社の大企業や組織がガンマ60に興味を示したが、そのすべてが購入したわけではない。AG Vieに出荷されたユニットは最初に製造されたものだったが、ハードウェアの問題がまだ発見され解決されていなかったため、信頼性の問題に直面した。同社の忍耐が尽きたため、このコンピュータは早期に廃止された。Gaz de France(現在のEngie)も興味を示したが、実装と運用の複雑さから後に撤退した。契約は最終的にIBM 7070に与えられた。他の顧客は以下の表に挙げている。[15]

Régie des Télégraphes et Téléphones(後に Belgacom 、現在はProximus)は、平均 20 台の処理装置を備えた最大規模の Gamma 60 設備を誇っていました。[17]この設備は 2 階建てで、下の階にはコンピューターに安定した電流を供給する 400 kVA のオルタネーターと、熱に弱いゲルマニウム電子機器を 18 °C に一定に保つための堅牢な空調システムがありました。上の階は 3 つの部屋に仕切られており、1 つはメインフレーム用、もう 1 つはオペレーター コンソールとテープ リーダー用、最後の 1 つはカード パンチとリーダー用でした。[6]
最も長く運用されたガンマ60もRTTにあり、13年間連続して稼働した。1970年代半ばに2台のガンマ60システムを数台のシーメンス4004コンピュータに置き換える決定は政治的な動機によるもので、ベルギー政府が情報システムをシーメンスとフィリップスと結び付ける5年間の契約を結んでいたためである。[6]
遺産
BullはGamma 60の開発に多大なリソースを投入したが、そのアーキテクチャ上の革新の実用化は1980年代、あるいは1990年代まで実現できず、商業的成功に大きく影響した。[8]市場で直面した課題により財政難に陥り、小規模企業に適した、よりアクセスしやすい小型版の開発が妨げられた。代わりに、ミッドレンジのGamma 30は、よりシンプルで伝統的なRCA 301コンピュータのライセンス版に移行した。RCA 301はIBM 1401との競争には成功したものの、Gamma 60の革新を生かすことはできなかった。[18]
1963 年、Bull 社は最終的にGeneral Electric社に買収され、1965 年から Gamma 60 の主な後継機種はGE 600ファミリーになりました。
ガンマ60は現在、一部の博物館に展示されている部品を除いて現存していない。ベルギーのナミュールにあるNAMコンピュータ博物館には、RTTに登場したガンマ60の詳細なスケールモデルが展示されている。ガンマ60はジャン=リュック・ゴダールの映画『アルファヴィル』(1965年)にも登場し、敵役のアルファ60コンピュータとして描かれている。[19]
2024 年現在、Gamma 60 エミュレーターは存在しないことが知られています[アップデート]。
参照
- コンピュータハードウェアの歴史
- Groupe Bull製品一覧
- コンピュータのマルチスレッド
- マルチプロセッシング
- ILLIAC IV、最初の超並列コンピュータ
- GE-600シリーズ、Gamma 60の主な後継機
- IBM7090
参考文献
- ^ Bataille, M. (1972-04-01). 「Something old: the Gamma 60 the computer that was ahead of its time」ACM SIGARCH Computer Architecture News . 1 (2): 10–15. doi :10.1145/641276.641278. ISSN 0163-5964.
- ^ abcd 「Bull Gamma 60の建築スケッチ -- Mark Smotherman」。www.feb-patrimoine.com 。 2023年8月13日閲覧。
- ^ Thornton, James E. (1980 年 10 月). 「CDC 6600 プロジェクト」. Annals of the History of Computing . 2 (4): 338–348. doi :10.1109/MAHC.1980.10044. ISSN 0164-1239.
1604 の設計業務は、増え続けるエンジニアの監督も含むように拡大していきました。私はその混乱から逃れて、UCLA で巨大コンピュータに関するセミナーと短期コースに参加しました。セミナーでは、STRETCH、LARC、ATLAS、ILLIAC II、GAMMA 60 などのマシンについて説明しました。
- ^ abcdefg タムリン、スマザーマン。 「ガンマ 60 の設計の評価」。db.aconit.org。クレムソン大学。2023 年 8 月 13 日に取得。
- ^ abc "Une Opinion sur la Conception du Gamma 60". www.feb-patrimoine.com 。2023 年 8 月 13 日に取得。
- ^ abcd 「Gamma 60 Bull à RTT、chr4rtt」。www.histoireinform.com 。 2023年8月13日閲覧。
- ^ abcde ベレック、ジャン (2002). 「ガンマ 60、入門」。www.feb-patrimoine.com 。2023 年 8 月 13 日に取得。
- ^ abc ベレック、ジーン (2003)。 「ガンマ 60 の概念に関する意見」。www.feb-patrimoine.com 。2023 年 8 月 13 日に取得。
- ^ 「科学的および技術的遺産:BullのGamma 60コンピューターは60歳です」。Echosciences Grenoble(フランス語と英語)。2023年8月19日閲覧。
- ^ ダヴス、バタイユ、ハランド (2023-08-13)。 「Le Gamma 60, par M. Davous、Bataille、Harrand、Ingéniers à la Compagnie des Machines Bull」。www.feb-patrimoine.com 。2023 年 8 月 13 日に取得。
{{cite web}}: CS1 maint: 複数の名前: 著者リスト (リンク) - ^ ab メートル、アンドレ。 「Histoire du Gamma 60 : 側面テクニック - leLogiciel」。www.feb-patrimoine.com 。2023 年 8 月 13 日に取得。
- ^ Dreyfus, Pierre (1958)。「GAMMA 60 コンピュータのプログラミング設計機能」。1958年 12 月 3 ~ 5 日に開催された東部合同コンピュータ会議「現代のコンピュータ: XX の目的、設計、アプリケーション - AIEE-ACM-IRE '58 (東部)」で発表された論文と議論。pp . 174 ~ 181。doi :10.1145/1458043.1458080。
- ^ ab Mounier-Kuhn, Pierre (2014). 「フランスにおけるAlgol: ユニバーサルプロジェクトから組み込み文化へ」IEEE Annals of the History of Computing . 36 (4): 6. ISSN 1058-6180.
- ^ Flamm, Kenneth (2010-12-01). 「コンピュータの創造:政府、産業、ハイテクノロジー」 Brookings Institution Press. ISBN 978-0-8157-0721-9。
- ^ ab ブルブロン、ジョゼ (2005)。ラヴァンチュール ガンマ 60。連盟の雄牛。ISBN 978-2-7462-1177-3。
- ^ 「最も先進的な機械の使用はCNEPのダイナミズムを証明する - BNPパリバ」、1960年代初頭より。BNPパリバ - Well of History 。2023年8月20日閲覧。
- ^ “Histoire de la Compagnie des Machines Bull”. www.feb-patrimoine.com 。2023 年 8 月 13 日に取得。
- ^ ルクレール、ブルーノ。 「Le Gamma 60 - 人類の冒険と技術」。www.feb-patrimoine.com 。2023 年 8 月 13 日に取得。
- ^ 「Starring the Computer - Bull Gamma 60 in Alphaville (1965)」。www.starringthecomputer.com 。 2023年8月21日閲覧。
外部リンク
- ベルギーのナミュールにあるコンピュータ博物館のガンマ 60 (フランス語)。さまざまなオリジナルの写真付き。
- ブル・ガンマ60、クレムソン大学のマーク・スモーターマン氏より
- Gamma 60 の設計評価、Gamma 60 アーキテクチャと並列RISCの比較
- ガンマ60コンポーネントの図解
