IBM 704

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
NASAの IBM 704 (1957)
IBM 704。IBM 727 磁気テープ装置と IBM 780 CRTディスプレイが見える。(Image courtesy of LLNL.)

IBM 704[1]IBM1954年4月に発表したコンピュータ浮動小数点数演算ハードウェアを量産機として世界で初めて採用した。704 は IBM 701 のアーキテクチャと実装を大幅に強化したもので、互換性はない。

解説[編集]

701からの変更点として、ウィリアムス管の代わりに磁気コアメモリを採用した点とインデックスレジスタを3本搭載した点が上げられる。これらをサポートするため、命令は36ビットワードに拡張された。新しい命令セットはその後のIBM 700/7000 シリーズの科学技術計算系コンピュータの基本となった。

IBM 704 Manual of operation (下記外部リンク参照)から引用すると:

タイプ704電子データ処理機は大規模で高速な電子計算機であり、1アドレス型の内蔵プログラムによって制御される。

IBMは、毎秒40,000個の命令を実行できるとした。1955年から1960年までに123台が販売された。

プログラミング言語FORTRANLISPは 704 上で初めて開発された。また、マックス・マシューズの開発した世界初のコンピュータ音楽プログラムMUSICも 704 で開発された。

1961–1962年、物理学者 John Larry Kelly, Jr と Carol C. Lochbaum はベル研究所で IBM 704 を使用して音声合成を行った。[2] これはKelly–Lochbaumモデルと呼ばれる、ソフトウェア上でデジタル化された「声道アナログ・モデル」(声道を断面積の変わる複数の音響管(acoustic tube)で表現し進行波を計算する導波管モデル=初期のWaveguideシンセシス物理モデル音源))で、[3] 1961年に歌(デイジー・ベル)も歌わせている(伴奏にマックス・マシューズのプログラムを使用)。[4][5]このデモンストレーションをアーサー・C・クラークが実際に聴き[6]、『2001年宇宙の旅』でHAL 9000が同じ歌を歌うクライマックスのシーンが生まれた[7]

エド・ソープは彼のブラックジャックゲーム理論で勝つ確率を調べる研究の道具として IBM 704 を使った[8][9]。彼は研究モデルの方程式を作るためにFORTRANを使用した。

1957年秋、スミソニアン天体物理観測所Operation Moonwatch で704が月の追跡制御に使われた。IBMは4人の科学者をスミソニアン天体物理観測所に派遣し、月の軌道計算を行った。

レジスタ[編集]

IBM 704 の持つレジスタは次の通り。

  • アキュムレータ×1、38ビット
  • 積・商レジスタ×1、36ビット
  • デクリメントレジスタ×3、15ビット

デクリメントレジスタとはインデックスレジスタであり、ベースアドレスからその値を引いて実効アドレスとするため、このように呼ばれた。1命令で3つのデクリメントレジスタ全てを関与させることもできる。命令にある3ビットのタグフィールドは各ビットがそれぞれデクリメントレジスタに対応しているので、複数をONにすれば複数のデクリメントレジスタをアドレス計算に使用できる。

命令形式とデータ形式[編集]

命令形式にはタイプAとタイプBの2種類がある[10]。ほとんどの命令はタイプB形式である。

タイプAの命令形式は、「プレフィックス」3ビット、「デクリメント」15ビット、「タグ」3ビット、「アドレス」15ビットから構成される。プレフィックス部は命令の種類を指定する。デクリメント部は命令結果を修飾する即値を格納するか、命令の種類指定に使われる。タグ部はデクリメントレジスタを指定し、指定されたインデックスレジスタの内容がアドレスから引かれて実効アドレスとなる。アドレス部はアドレスか即値オペランドを格納している。タグフィールドで指定したデクリメントレジスタの内容に基づいて条件分岐する命令もある。プレフィックスの2ビット目と3ビット目が共にゼロの場合、タイプBと判断されるため、タイプAの命令は6種類しかない。しかもSTRという命令(バイナリで101)は IBM 709 で初めて実装されており、704 では5種類のタイプA命令しかなかった。

タイプBの命令形式は、12ビットの命令コード(うち2ビット目と3ビット目は常にゼロ)、2ビットのフラグフィールド、4ビットの未使用フィールド、3ビットのタグフィールド、15ビットのアドレスフィールドから構成される。

  • 固定小数点数が二進の符号+絶対値形式で格納された。
  • 単精度浮動小数点数は、符号ビット、8ビット指数(エクセス128)、27ビット仮数で構成される。
  • 文字は6ビットで表され(BCDの一種)、1ワードに6文字が格納される。

タイプAの命令形式は、3ビットのタグが付属したアドレスが2つ並んだデータ形式としても使用された。最初のLISPは、この形式をCONSセルの実装に使用している。LISPの基本関数である CAR と CDR はそれぞれ "Contents of Address part of Register number" と "Contents of Decrement part of Register number" に由来する[11]。"contents of address register" と "contents of decrement register" の略とされることもあるが、IBM 704 にはユーザーがアクセスできるアドレスレジスタが存在しない。

参考文献[編集]

  • Charles J. Bashe, Lyle R. Johnson, John H. Palmer, Emerson W. Pugh, IBM's Early Computers (MIT Press, Cambridge, 1986年)
  • Steven Levy, Hackers: Heroes of the Computer Revolution
  • IBM Type 704 Manual of operation, Form 24-66661-1, IBM, 1956

脚注[編集]

  1. ^ 704 photos from IBM
  2. ^ Kelly, John L.; Lochbaum, Carol (1962), “Speech synthesis”, Proceedings of the Speech Communications Seminar, paper F7 (Stockholm, Speech Transmission Laboratory, Royal Institute of Technology) 
  3. ^ Smith III, Julius O. (2010), “Singing Kelly-Lochbaum Vocal Tract”, Physical Audio Signal Processing, ISBN 978-0-9745607-2-4, https://ccrma.stanford.edu/~jos/pasp/Singing_Kelly_Lochbaum_Vocal_Tract.html 
  4. ^ 14. "Daisy Bell (Bicycle Built for Two)," Max Mathews (1961), “National Recording Registry Adds 25”, The Library Today (Library of Congress), (June 23, 2010), http://www.loc.gov/today/pr/2010/10-116.html, "This recording, made at Bell Laboratories on an IBM 704 mainframe computer, is the earliest known recording of a computer-synthesized voice singing a song. The recording was created by John L. Kelly, Jr., and featured musical accompaniment written by Max Mathews." 
  5. ^ 1961年デイジー・ベルを歌った最初のコンピュータをIBM 7094とする文献もあるが、IBM 7094 の初設置は1962年9月とされており時期的に合わない。
  6. ^ Arthur C. Clarke online Biography[リンク切れ]
  7. ^ Bell Labs: Where "HAL" First Spoke (Bell Labs Speech Synthesis website)
  8. ^ ディスカバリーチャンネルのドキュメンタリーでのEd ThorpとVivian Thorpのインタビュー
  9. ^ The Tech (MIT) "Thorpe, 704 Beat Blackjack" Vol. 81 No. I Cambridge, Mass., Friday, February 10, 1961
  10. ^ John Savard. From the IBM 704 to the IBM 7094. http://www.quadibloc.com/comp/cp0309.htm 2009年11月15日閲覧。. 
  11. ^ John McCarthy. Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I. http://www-formal.stanford.edu/jmc/recursive.html 2009年2月14日閲覧。. 

外部リンク[編集]