IBM 704

1957年、NACAのIBM 704コンピュータ
IBM 704 コンピュータ、IBM 727テープドライブ、IBM 780 CRT ディスプレイ
IBM 704(ミラノのレオナルド・ダ・ヴィンチ国立科学・技術博物館)

IBM 704は、 1954年にIBMが発表した大型デジタルメインフレームコンピュータのモデル名である。ジョン・バッカスジーン・アムダールによって設計されたこのコンピュータは、浮動小数点演算用のハードウェアを搭載した最初の量産コンピュータであった。[ 1 ] [ 2 ] IBM 704の操作マニュアルには次のように記されている。[ 3 ]

IBM 704 電子データ処理マシンは、単一アドレス タイプの内部保存プログラムによって制御される大規模で高速な電子計算機です。

そのため、当時の704は「複雑な数学を処理できるほぼ唯一のコンピュータ」と見なされていました。[ 4 ] 704は、アーキテクチャと実装の面で以前のIBM 701に比べて大幅に改良されていました。701と同様に、704は真空管論理回路を使用していましたが、命令サイズが18ビットからメモリのワードサイズと同じ36ビットに増加しました。701からの変更点には、ウィリアムズ管の代わりに磁気コアメモリを使用すること、浮動小数点演算命令、15ビットアドレス指定、および3つのインデックスレジスタの追加が含まれます。これらの新機能をサポートするために、命令は36ビットワード全体を使用できるように拡張されました。701と互換性のないこの新しい命令セットはIBM 700/7000シリーズコンピュータの「科学的アーキテクチャ」サブクラスのベースとなりました。

704は1秒間に最大12,000回の浮動小数点加算を実行できた。[ 2 ] IBMは1955年から1960年の間に123台の704型システムを製造した。[ 5 ]

ランドマーク

プログラミング言語FORTRAN [ 6 ]LISP [ 7 ]は、704用に最初に開発されました。SAPアセンブラ(Symbolic Assembly Program)も同様で、後にSHAREによってSHARE Assembly Programとして配布されました。

最初のコンピュータ音楽プログラムであるMUSIC は、 Max Mathewsによって IBM 704 上で開発されました。

1962年、物理学者ジョン・ラリー・ケリー・ジュニアはIBM 704コンピュータを使用して音声を合成し、ベル研究所の歴史の中で最も有名な瞬間の1つを作り出しました。ケリーのボイスレコーダーシンセサイザーボコーダーは、マックス・マシューズの音楽伴奏とともに、歌「デイジー・ベル」を再現しました。アーサー・C・クラークは、この音声合成のデモンストレーションのとき偶然、ベル研究所のマレーヒル施設で友人であり同僚でもあるジョン・ピアースを訪ねており、クラークは非常に感銘を受け、6年後、小説と映画「2001年宇宙の旅」の脚本のクライマックスシーンでこの音声合成を使用しました。 [ 8 ]そのシーンでは、HAL 9000コンピュータが同じ歌を歌います。[ 9 ](ベル研究所は後に、この方法で作成された音声と音楽を10インチ78回転レコードに録音したものをリリースした。これはIBM 704の後継機 であるソリッドステートのIBM 7090で作成されたものと思われる。)

MITの数学講師であるエドワード・O・ソープは、ブラックジャックのゲーム理論を開発しながら、勝率を調べるための研究ツールとしてIBM 704を使用しました。[ 10 ] [ 11 ]彼はFORTRANを使用して研究モデルの方程式を定式化しました。

MIT計算センターのIBM 704は、1957年秋にスミソニアン天体物理観測所のムーンウォッチ作戦の公式追跡装置として使用されました。IBMは、スミソニアン天体物理観測所の科学者と数学者による衛星軌道計算を支援するため、ジャンピエロ・ロッソーニ博士、ジョン・グリーンシュタット博士、トーマス・アップル、リチャード・ハッチの4名の科学者スタッフを派遣しました。このマシンはフランク・ローゼンブラットにとっても重要なツールでした。彼は1957年に最初の人工ニューラルネットワークであるパー​​セプトロンを発明し、コーネル航空研究所のIBM 704コンピュータに実装しました。

IBM 704はNRLヴァンガードロケットの飛行力学解析に使用された。[ 12 ]

ロスアラモス科学研究所(LASL)は、バッチ処理を可能にするためにSLAMと呼ばれる初期のモニターを開発した。[ 13 ]

レジスター

IBM 704レジスタ
3 73 63 5... 3 1... 2 3... 1 51 4... 0 7... 0 0(ビット位置)
データレジスタ
交流 アキュムレータ
  MQ 乗数/商
  SI センスインジケーター
インデックスレジスタ
  XR1 索引1
  XR2 索引2
  XR3 インデックス3
プログラムカウンタ
  パソコン プログラムカウンタ
IBM 704真空管回路モジュール

IBM 704 には、38 ビットのアキュムレータ、36 ビットの乗算器/商レジスタ、および 3 つの 15 ビットのインデックス レジスタがありました。インデックス レジスタの内容はベース アドレスから減算されるため、インデックス レジスタは「デクリメント レジスタ」とも呼ばれます。3 つのインデックス レジスタすべてを命令に使用できます。命令内の 3 ビットのタグフィールドは、どのレジスタが操作に関与するかを指定するビット マップです。ただし、複数のインデックス レジスタが選択されると、デクリメントが行われる前に、その内容がビット単位で論理和(OR ) されます (加算されるのではなく)。この動作は、IBM 7094まで、後の科学的アーキテクチャのマシン ( IBM 709IBM 7090など)に引き継がれました。1962 年に発表された IBM 7094 では、インデックス レジスタの数が 7 に増え、一度に選択できるのは 1 つだけになりました。 「または」の動作はIBM 7094の互換モードでは利用可能のままでした。[ 14 ]

命令とデータの形式

命令フォーマットには「タイプA」と「タイプB」の2種類がある。[ 15 ]ほとんどの命令はタイプBであった。

タイプA命令は、3ビットのプレフィックス(命令コード)、15ビットのデクリメントフィールド、3ビットのタグフィールド、および15ビットのアドレスフィールドを順に持ちます。タグフィールドで指定されたインデックスレジスタの値に基づいて、条件付きジャンプ操作が実行されます。一部の命令は、インデックスレジスタの内容からデクリメントフィールドの値を減算します実装上、命令コードの2番目の2ビットは0以外である必要があります。そのため、タイプA命令は合計6種類存在します。そのうちの1つ(STR、命令コード2進数101)は、IBM 709まで実装されていませんでした。

タイプ B 命令には、12 ビットの命令コード (タイプ A 命令と区別するためにビット 2 と 3 は 0 に設定されます)、2 ビットのフラグフィールド、4 つの未使用ビット、3 ビットのタグフィールド、および 15 ビットのアドレスフィールドが順に含まれます。

  • 固定小数点数は、バイナリ符号/絶対値形式で保存されます。
  • 単精度浮動小数点数には、絶対値符号、8 ビットの 128 を超える指数、および 27 ビットの小数部 (隠しビットなし) があります。
  • 英数字は通常 6 ビットのBCDで、1 ワードに 6 文字が詰め込まれています。

命令セットは、データ形式をタイプA命令と同じフィールド(プレフィックス、デクリメント、タグ、アドレス)に暗黙的に分割します。データワード内のこれらのフィールドを、ワードの残りの部分を変更せずに変更する命令も存在しますが、Store Tag命令はIBM 704には実装されていません。

Lispの元々の実装では、リンクリストの先頭と末尾をそれぞれアドレスフィールドデクリメントフィールドに格納していました。プリミティブ関数car(「レジスタのアドレス部の内容」)とcdr(「レジスタのデクリメント部の内容」)は、これらのフィールドにちなんで名付けられました。[ 16 ]

メモリと周辺機器

IBM 711リーダーにパンチカードをロードする

704には、711パンチカードリーダー1台、716アルファベットプリンター1台、721パンチカードレコーダー1台、727磁気テープ装置5台、753テープ制御装置1台、733磁気ドラムリーダー/レコーダー1台、737磁気コア記憶装置1台用の制御装置が搭載されていた。総重量は約19,466ポンド(9.7米トン、8.8トン)であった。[ 17 ] [ 18 ]

704本体には、レジスタの各ビットに対応する36個の各種制御スイッチ(ボタン)と36個のデータ入力スイッチを備えた制御コンソールが付属していました。制御コンソールは、基本的にスイッチを使ってレジスタのバイナリ値を設定することと、レジスタのバイナリ状態を多数の小さなネオンランプ(現代のLEDによく似た外観)のパターンで表示することのみを可能にしました。人間がコンピュータを操作する際には、プログラムはコンソールではなくパンチカードに入力され、人間が判読できる形式でプリンタに出力されました。

IBM 740ブラウン管出力レコーダーも利用可能でした。これは、人間の視覚にとって20秒という非常に長い蛍光体の残光時間を持つ21インチのベクトルディスプレイで、7インチディスプレイはより大きなディスプレイと同じ信号を受信しますが、付属のカメラで撮影できるように設計された減衰の速い蛍光体を備えています。[ 19 ]

737磁気コア記憶装置はRAMとして機能し、18,432バイトに相当する4,096個の36ビットワードを提供します。[ 20 ] 727磁気テープ装置はリールあたり500万個以上の6ビット文字を格納します。

信頼性

IBM 704は、平均故障間隔が約30分だった前身のIBM 701よりもはるかに信頼性が高かった。しかし、真空管式マシンであったため、IBM 704は今日の基準からすると信頼性が非常に低かった。平均して約8時間ごとに故障し、これは1949年のマンチェスター・マーク1に匹敵する数値であった。 [ 21 ] [ 22 ] [ 23 ]この結果、初期のFortranコンパイラが正常に翻訳できるプログラムサイズは限られており、大規模なプログラムを正常にコンパイルする前にマシンが故障してしまうことがあった。[ 22 ]

参照

参考文献

  1. ^ 「IBM 704」 . columbia.edu .コロンビア大学. 2001年2月. 2024年9月20日閲覧
  2. ^ a b「704データ処理システム」。IBMアーカイブ – 展示 – IBMメインフレーム – メインフレーム参考資料室 – メインフレーム製品プロファイル。IBM。2003年1月23日。2005年1月14日時点のオリジナルよりアーカイブ。 2016年8月18日閲覧
  3. ^ 「IBM Electronic Data-Processing Machines TYPE 704」(PDF) IBM 704操作マニュアルInternational Business Machines Corporation、1955年。 2017年12月28日閲覧
  4. ^ Pesce, Mark (2015年2月26日). 「アセンブラはかつて人間だった:私の叔母はNASAでそれをやっていた」 .ソフトウェア開発者. The Register . 2016年8月18日閲覧
  5. ^ 「IBMの歴史タイムライン」 IBM、2003年1月23日。 2019年7月4日閲覧
  6. ^ 「FORTRANとFORTRAN IIの歴史」ソフトウェア保存グループ
  7. ^ 「LISP 前史 – 1956 年夏から 1958 年夏まで」。www -formal.stanford.edu
  8. ^ 「アーサー・C・クラーク オンライン伝記」 。1997年12月11日時点のオリジナルよりアーカイブ
  9. ^ 「Bell Labs: Where "HAL" First Spoke (Bell Labs Speech Synthesis website)」 。2014年4月1日時点のオリジナルよりアーカイブ
  10. ^エドとヴィヴィアン・ソープのインタビューを含むディスカバリーチャンネルのドキュメンタリー
  11. ^ Levinger, Jeff (1961年2月10日). 「Math Instructor Programs Computor: Thorpe, 704 Beat Blackjack」(PDF) . The Tech . 81 (1). Cambridge, MA: Massachusetts Institute of Technology: 1. 2015年7月16日時点のオリジナル(PDF)からアーカイブ。 2009年5月8日閲覧
  12. ^ 「ヴァンガード衛星打ち上げ機 -- エンジニアリング概要」
  13. ^カイスラー、スティーブン・H.(2018年11月)『第一世代メインフレーム:IBM 700シリーズ』ケンブリッジ・スカラーズ・パブリッシング、p.69、ISBN 978-1-5275-0650-3. 2019年4月25日閲覧
  14. ^ IBM 7094 動作原理(PDF)、IBM システム・リファレンス・ライブラリ (第 5 版)、IBM、1962 年、p. 8、A22-6703-4
  15. ^ John Savard. 「IBM 704からIBM 7094へ」 . 2009年11月15日閲覧
  16. ^マッカーシー、ジョン (1960). 「記号式の再帰関数と機械による計算、第1部」 . 2013年10月4日時点のオリジナルよりアーカイブ。 2009年2月14日閲覧28ページ。
  17. ^ Weik, Martin H. (1961年3月). 「IBM 704」 . ed-thelen.org . 国内電子デジタル計算システムの第3回調査.
  18. ^ Weik, Martin H. (1955年12月). 「IBM-704」 . ed-thelen.org . 国内電子デジタル計算システムの調査.
  19. ^ 「IBMアーカイブ:704 Cathode Ray Tube Output Recorder」 。2003年1月23日。2005年1月19日時点のオリジナルよりアーカイブ。 2012年12月10日閲覧
  20. ^ 「IBMアーカイブ:IBM 737磁気コア記憶装置」 。2003年1月23日。2005年1月19日時点のオリジナルよりアーカイブ。 2012年12月10日閲覧
  21. ^ Patrick, Robert L. 「General Motors/North American Monitor for the IBM 704 Computer」(PDF) 。2021年8月31日時点のオリジナル(PDF)からアーカイブ
  22. ^ a bロレンゾ、マーク・ジョーンズ (2019). 『機械の抽象化:FORTRANプログラミング言語の歴史』(FORmula TRANslation) . 独立出版. ISBN 978-1082395949
  23. ^ 「The Manchester Mark 1」、マンチェスター大学、2008年11月21日時点のオリジナルよりアーカイブ、 2009年1月24日閲覧。

さらに読む