パイロットACE(Pilot ACE)は、イギリスで初めて作られたコンピュータの一つである[1]。1950年代初頭にイギリス国立物理学研究所(NPL)で作られたもので、同時代にイギリスで作られたManchester Mark IEDSACなどと同様に、最初期のプログラム内蔵方式のコンピュータの一つである。アラン・チューリングが設計した完全版ACE(Automatic Computing Engine)のプロトタイプ版として作られたものだったが、完成前にチューリングはNPLを去った。

Pilot ACE
開発元 イギリス国立物理学研究所(NPL)
発売日 1950年 (74年前) (1950)
CPU 真空管 約800本 @ 1メガヘルツ
メモリ 128ワード(1ワード32ビット)。後に352ワードに拡張 (水銀遅延線)
パイロットACEの操作盤

歴史 編集

パイロットACEは、チューリングが設計した完全版ACEの一部の機能を省略して構築されたものである。チューリングがNPLを去った(その理由には、ACEの構築が進まないことに幻滅したということもある)後、ジェームズ・H・ウィルキンソンがプロジェクトを引き継いだ。設計には、ドナルド・ワッツ・デービスハリー・ハスキーマイク・ウッジャー英語版も関わった[2][3]。パイロットACEは1950年5月10日に最初のプログラムを実行し[4][5]、同年11月に報道陣に公開された[6][7]

パイロットACEは当初はプロトタイプとして構築されたが、当時は他に計算機がなかったことから、これが主力の計算機として使われるようになるのは明らかだった。そのため、実用的なものにするための改良が加えられ、1951年後半から運用が開始され、その後数年間にわたり使用された。

パイロットACEがよく使われるようになった理由の一つとして、科学計算には必須の浮動小数点演算ができたということがある。パイロットACEは、当時の他のコンピュータとは異なり、乗算除算のためのハードウェアを持っておらず(乗算については後にハードウェアが追加された)、固定小数点の乗除をソフトウェアで行っていた。しかし、固定小数点ではすぐに計算可能範囲を超えてしまうため、浮動小数点演算ができるようにソフトウェアを修正した[8]。後に、ウィルキンソンは浮動小数点演算の丸め誤差英語版に関する本を書いた[9]

パイロットACEには約800本の真空管が使われていた。主記憶装置水銀遅延線で構成され、当初は1ワードあたり32ビットで128ワードの容量を持っていたが、後に352ワードに拡張された。1954年に4096ワードのドラムメモリが追加された。基本クロックレートは1メガヘルツで、初期のイギリスのコンピュータの中では最速だった。水銀遅延線を使用しているため、命令の実行時間はメモリのどこに格納されているかにより大きく変化し、例えば加算にかかる時間は64から1024マイクロ秒だった。

イングリッシュ・エレクトリックが、パイロットACEの設計を元にしたDEUCE英語版を製造・販売した。

パイロットACEは1955年に稼働を停止し、ロンドンのサイエンス・ミュージアムに寄贈された[10]

ソフトウェア 編集

 
パイロットACEのパンチカード

1954年にドラムメモリが追加されたことにより、行列を扱うプログラムを実行するための制御プログラムを開発することができるようになった。ブリティッシュ・エアクラフト・コーポレーション[11]J・M・ハーンの要請により[12][13]、ブライアン・W・マンデーは、簡単な符号語だけで「ブリック」(brick)と呼ばれるプログラムの集合を実行できるようにしたGeneral Interpretive Programme(GIP)を開発した。各ブリックは、連立方程式を解く、行列を反転させる、行列の乗算を計算するなどの単一の機能を実行することができた。このコンセプト自体は目新しいものではなかったが、行列の境界を指定しない符号語のシンプルさがGIPが特徴だった。ドラムメモリ上の行列において、2つ目と3つ目の要素を境界にしていた。パンチカードに行列を打ち込むと、境界は最初の2つの要素により与えられる。そのため、一度書いたプログラムを変更することなく、異なる大きさの行列を実行することができた。GIPは1954年から使用を開始し[14]、後にDEUCEのために改良された。

GIPで使用されるブリックはマイク・ウッジャーによって書かれた。ウッジャーは、浮動小数点を配列に格納できるようにするために、 「ブロック浮動小数点英語版」という方式を考案した。通常、浮動小数点を表現するには、仮数部と指数部のためにそれぞれ1ワードを必要とする。ブロック浮動小数点では、配列内の全ての要素に対して同一の指数を適用することで、1ワードの仮数部のみを配列に格納すれば良いようにした。

脚注 編集

  1. ^ Yates, David M. (1997). Turing's Legacy: A history of computing at the National Physical Laboratory 1945–1995. UK: Science Museum, London. pp. 126–146. ISBN 0-901805-94-7. https://books.google.com/books?id=ToMfAQAAIAAJ 
  2. ^ Yates, David M. (1997). Turing's Legacy: A history of computing at the National Physical Laboratory 1945–1995. UK: Science Museum, London. pp. 296, 300, 316. ISBN 0-901805-94-7. https://books.google.com/books?id=ToMfAQAAIAAJ 
  3. ^ Woodger, M. (1951). “Automatic Computing Engine of the National Physical Laboratory”. Nature 167 (4242): 270. Bibcode1951Natur.167..270W. doi:10.1038/167270a0. 
  4. ^ Campbell-Kelly, Martin (1981). “Programming the Pilot ACE: Early Programming Activity at the National Physical Laboratory”. IEEE Annals of the History of Computing (IEEE) 3 (1): 133–162. doi:10.1109/MAHC.1981.10015. 
  5. ^ Atkinson, Paul (2010) (英語). Computer. Reaktion Books. p. 39. ISBN 9781861897374. https://archive.org/details/computer0000atki. "Pilot ACE 1950." 
  6. ^ “Automatic Computing Machinery: News – National Physical Laboratory” (英語). Mathematics of Computation 5 (35): 174–175. (1951). doi:10.1090/S0025-5718-51-99425-2. ISSN 0025-5718. 
  7. ^ “9. The ACE Pilot Model, Teddington, England” (英語). Digital Computer Newsletter 2 (4): 4. (December 1950). http://www.dtic.mil/docs/citations/AD0694599. [リンク切れ]
  8. ^ Rota, Gian-Carlo, ed (1980). History of Computing in the Twentieth Century. Academic Press 
  9. ^ Wilkinson, J. H. (1994). Rounding Errors in Algebraic Processes. reprinted by Dover 
  10. ^ The Pilot ACE computer”. UK: Science Museum (London). 2016年8月19日時点のオリジナルよりアーカイブ。2016年8月19日閲覧。
  11. ^ M. Campbell-Kelly, op. cit., p. 156.
  12. ^ J. M. Hahn, Letter to M. Woodger, 20 September 1954
  13. ^ J. M. Hahn, "Some Suggestions for Matrix Routines for Electronic Digital Computers", September 1954
  14. ^ M. Woodger, "The History and Present Use of Digital Computers at the National Physical Laboratory." Process Control and Automation, November 1958

参考文献 編集

関連項目 編集

外部リンク 編集