ENIAC

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
プログラミングされるENIAC
2人のプログラマがENIACの制御パネルを操作しているところ

ENIAC(エニアック、Electronic Numerical Integrator and Computer[1][2][3]は、アメリカで開発された黎明期の電子計算機コンピュータ)。チューリング完全でデジタル式であり、プログラムを組み換えることで広範囲の計算問題を解くことができた[4]

ENIACはアメリカ陸軍の弾道研究室での砲撃射表の計算向けに設計された[5][6]。1946年に発表されたとき、報道では「巨大頭脳」(Giant Brain) と称された[7]。当時の電気機械式計算機に比べて千倍の計算速度だった。その演算能力と汎用プログラム能力に科学者や実業家は興奮した。

第二次世界大戦中、ENIACの設計と製作の資金はアメリカ陸軍が支出した。その契約は1943年6月5日に結ばれ、ペンシルベニア大学電気工学科にて "Project PX" の名で秘密裏に設計が開始された。1946年2月14日の夕方に完成したマシンが公開され[8]、翌日にはペンシルベニア大学で正式に使用が開始された[9]。開発にかかった総額は50万ドル弱だった。アメリカ陸軍に正式に引き渡されたのは1946年7月のことである。1946年11月9日、改造と記憶装置のアップグレードのためにシャットダウンされ、1947年にはメリーランド州アバディーン性能試験場に移送された。そこで1947年7月29日に電源を入れ、1955年10月2日の午後11時45分まで運用された[3]

ENIACを考案・設計したのはペンシルベニア大学のジョン・モークリージョン・エッカートである[10]。設計開発に加わった技術者としては、Robert F. Shaw(ファンクションテーブル)、Jeffrey Chuan Chu(除算器/平方根計算器)、アーサー・バークス(乗算器)、ハリー・ハスキー英語版(入出力)、Jack Davis(アキュムレータ)らがいる。1987年、ENIACはIEEEマイルストーンに選ばれた[11]

概要[編集]

ホルダーに装着されたENIACの真空管

ENIACはモジュラー構造で、個々のパネルがそれぞれ異なる機能を担っている。そのうち20のモジュールはアキュムレータと呼ばれ、十進法で10桁の数値を記憶し、加減算しかできない。数値はそれらモジュール間を結ぶいくつかの汎用バスを通して渡される。高速性を実現するため、数値の転送も計算も結果の格納も次の操作へのトリガも全て可動部品を使わずに行われる。その汎用性の鍵となったのは分岐する能力で、計算結果の符号によって次の操作を選択できるようになっていた。

ENIACは17,468本の真空管、7,200個のダイオード、1,500個のリレー、70,000個の抵抗器、10,000個のコンデンサ等で構成されていた。人手ではんだ付けされた箇所は約500万に及ぶ。幅30m、高さ2.4m、奥行き0.9m、総重量27トンと大掛かりな装置で、設置には倉庫1個分のスペース(167m2)を要した。消費電力は150kW[12][13]。そのため、ENIACの電源を入れるとフィラデルフィア中の明かりが一瞬暗くなったという噂が生まれた[14]。入出力にはIBMパンチカード(読み取り装置とパンチ)を使用可能だった。出力されたパンチカードをIBMのタビュレーティングマシン(IBM 405 など)に読み込ませて印字することができる。

現在のコンピュータは二進法で計算を行うものがほとんどだが、ENIACは内部構造に十進法を採用した。1桁の十進数を格納するのに、10ビットのリングカウンタ英語版を使用しており、1桁の記憶に36本の真空管を必要とする。そのうち10本は双三極管で、フリップフロップでリングカウンタを構成している。演算は、リングカウンタが入力パルスをカウントする形で行われ(リングカウンタのビット列は二進数を表しているのではなく、"1"の個数がその桁の値である)、あふれるとキャリーパルスを発生する。これは機械式計算機で数を表す歯車を電子的にエミュレートしたものである。全部で20の10桁のアキュムレータがあり、10の補数表現で負の値を表し、毎秒5,000回の加減算を行える。複数のアキュムレータを接続して同時並行的に動作させることができるので、最高性能はさらに高い。

1つのアキュムレータのキャリーをもう1つのアキュムレータへの入力とし、全体で20桁の演算となるよう構成することもできるが、回路のタイミングの関係で3つ以上のアキュムレータをキャリーで接続することはできない(30桁などは不可能)。アキュムレータのうち4台は「乗算器」の制御下にあり、毎秒385回の乗算が可能である。また5台のアキュムレータは「除算器/平方根計算器」の制御下にあり、毎秒40回の除算または毎秒3回の平方根計算が可能である。

ENIACのファンクションテーブルを操作している様子。この写真は詳細を分からなくするため、意図的に暗くしたものである。[15]

他に、始動ユニット(処理の始動・停止を行う)、サイクリングユニット(クロックパルスを他のユニットに供給)、マスタープログラマ(ループ回数を制御するユニット)、リーダー(IBM製パンチカード読取装置の制御)、プリンター(IBM製カードパンチ機の制御)、定数転送ユニット、ファンクションテーブルといったユニットで構成されている。

Rojas and Hashagen またはウィルクス[10]は、より詳細に内部の動きを説明しており、それは上述のものとは若干異なる。基本マシンサイクルは200マイクロ秒(サイクリングユニットの100kHzのクロックパルスの20サイクルに相当)で、10桁の数値を毎秒5,000回操作できる。その1サイクルで数値をレジスタに書き込んだり、レジスタから数値を読み出したり、2つの数値の加減算を行ったりできる。10桁の数値と d 桁の数値(d の最大値は10)の乗算には d+4 サイクルを必要とするので、10桁の数値同士の乗算は14サイクル(2800マイクロ秒)かかり、毎秒357回ということになる。どちらか一方の数値の桁数が少なければ乗算はもっと短時間で終了する。除算と平方根計算には 13(d+1) サイクルかかり、この場合の d は結果(商または平方根)の桁数である。したがって最大143サイクル(28,600マイクロ秒)かかるので毎秒35回となる(ウィルクス[10]は、10桁の商を求めるのに6ミリ秒かかるとしている)。こちらも演算結果の桁数が少なければもっと短時間で完了する。

信頼性[編集]

ENIACでは当時一般的だった8ピンソケットの真空管を使っている。アキュムレータのフリップフロップには双三極管 6SN7 が使われ、他の論理回路には 6L7、6SJ7、6AC7 が使われている。モジュール間を結ぶケーブル上でのパルスを駆動するのに 6L66V6 が使われている。

真空管が並ぶENIACの裏面の一部

当初、真空管は毎日数本が壊れ、修理には毎回30分ほどかかった。特殊な高信頼真空管が使えるようになったのは1948年のことである。故障の大部分は電源の投入・切断時に起きていた。これは真空管のヒーターとカソードの加熱と冷却の際にもっともストレスがかかるためである。そこで、真空管のフィラメントを定格の10%未満という低い電圧で動作させ、加熱と冷却でフィラメントが膨張と収縮を繰り返さないよう電源は落とさない等、多くの工夫を行った。それにより真空管の故障率を2日に1本という割合にまで低減させた。エッカートは1989年のインタビューで「真空管の故障はだいたい2日に1本の割合で、修理は15分で完了した」と述べている[16]。1954年、116時間(ほぼ5日間)という連続運転記録を達成している。

プログラミング[編集]

ENIACのスポンサーは弾道研究室だったが、プロジェクト開始から1年後、ロスアラモス国立研究所マンハッタン計画に従事していた著名な数学者ジョン・フォン・ノイマンがこの計算機のプロジェクトに気付いた[17]。ロスアラモス研究所はENIACに深く関与するようになり、最初にENIACで計算した問題も砲撃射表ではなく水素爆弾に関するものだった[18]。その計算の入出力には約100万枚のパンチカードを必要とした[19]

ENIACは複雑なプログラムも組むことができ、ループ、分岐、サブルーチンが可能である。プログラミングは複雑な作業で、通常1週間ほどかかった。紙上でプログラムが完成したら、次にパッチパネルでスイッチ群やケーブルの配線を変更することでプログラムをENIACに設定する必要があり、それに数日かかる。そして設定ミスがないかを検証・デバッグするのに、ENIACの「シングルステップ」動作機能を活用する。

1997年、ENIACのプログラミングを担当していた6人の女性が Women in Technology International の殿堂入りを果たした[20][21]。1946年当時の呼び名で言えば、Kay McNultyBetty JenningsBetty SnyderMarlyn WescofFran BilasRuth Lichterman の6人である[22][23]Jennifer S. Light のエッセイ "When Computers Were Women" では、計算機科学史で女性の果たした役割が軽視されてきたことの概略とENIACでの女性の果たした役割について書かれている[24]。また、LeAnn Erickson による2010年のドキュメンタリー映画でもENIACのプログラマ達が果たした役割を描いている[25]

ENIACの設計は一種独特であり、決して他では採用されなかった。1943年に設計が完了しているため、その後間もなく発展した技術革新を採り入れておらず、特にプログラム内蔵能力を欠いていた。エッカートとモークリーはより単純で強力な新設計を開始し、それが後にEDVACと呼ばれるようになる。1944年、エッカートはデータとプログラムの両方を格納する記憶装置(水銀遅延線)を説明する文書を書いた。ペンシルベニア大学ムーアスクール(工学部)のコンサルタントだったジョン・フォン・ノイマンは、プログラム内蔵方式が議論され構築されたミーティングに参加している。フォン・ノイマンは、そのミーティングでの議論をまとめ、形式的な論理言語で表現した不完全な内部文書 (First Draft of a Report on the EDVAC) を書き上げた。ENIACの管理責任者だったハーマン・ゴールドスタイン英語版はこの First Draft のコピーをいくつかの政府機関や教育機関に配布した。それにより各地で新世代の電子計算機を構築することへの関心が高まり、イギリスのケンブリッジ大学のEDSACアメリカ国立標準局SEACなどが生まれることになる。

1948年以降、ENIACにもいくつかの改良が施され、例えば簡単なリードオンリーのプログラム格納機構が加えられた[26]。これは本来数表を設定するファンクションテーブルをプログラムを格納するROMに流用したもので、ENIACの特許にも含まれているアイデアである。また、弾道研究室の Richard Clippinger も独自に提案していた。フォン・ノイマンの助力を得て Clippinger は実装すべき命令セットを考えた。Clippinger は3アドレス方式を考えていたが、フォン・ノイマンはより実装が簡単な1アドレス方式を提案。6番のアキュムレータの3桁をプログラムカウンタとして使い、15番のアキュムレータを主アキュムレータとし、8番のアキュムレータをファンクションテーブルからデータを読み込む際のアドレスポインタとして使用する。他のアキュムレータの大部分(1-5、7、9-14、17-19)はデータメモリとして使用する。ENIACでのプログラム内蔵方式のプログラミングは Betty Jennings、Clippinger、Adele Goldstine(ハーマン・ゴールドスタインの妻)が行った。1948年9月16日、プログラム内蔵方式でのENIACが初公開されている。このときのプログラムはフォン・ノイマンが基本設計し Adele Goldstine がプログラミングした。この改造によってENIACの性能は6分の1となり並行計算能力も失われたが、何日もかかっていたプログラミング作業が数時間に短縮され、性能低下を考慮しても価値のある改造だった。また、計算は電子式だが入出力はパンチカードによる電気機械式であり、この性能差の影響も分析した。それによると、実際の問題は例外なくI/Oバウンド英語版(入出力が性能のボトルネックとなる状態)であり、本来の並行計算能力を使わない場合でもそれは変わらなかった。プログラム内蔵方式に改造して性能が低下してもI/Oバウンド状態は変わっていない。1952年、高速シフタが追加され、シフト性能が5倍になった。1953年7月、100ワードの磁気コアメモリが追加され、数値表現を3増し符号二進化十進表現とした。この拡張メモリをサポートするため、新たなファンクションテーブル・セレクター、メモリアドレス・セレクター、パルス成形回路が加えられ、プログラミング機構にも3つの新命令が加えられた。

他の初期のコンピュータとの比較[編集]

機械式および電気式の計算機械は19世紀から登場しているが、現代的計算機の時代が始まったのは1930年代から1940年代にかけてのことである。

1939年から1940年にかけて、ベル研究所ではジョージ・スティビッツリレー計算機 Complex Number Calculator を開発し、1940年にはダートマス大学とベル研究所を電話回線で結び、遠隔からその計算機を操作してみせた[27]

ドイツではコンラート・ツーゼZ3を設計(1941年5月には稼働)。これが世界初のプログラム可能な計算機で二進数を使っていたが、リレーによる電気機械式である。さん孔テープでプログラムを供給するが、条件分岐命令がなかった。チューリング完全を意図して設計されていないが、1998年にチューリング完全であることが判明した(ただし、Z3でチューリング完全を達成するには複雑で賢いハックが必要となる)[28][29]。1943年12月、ベルリン空襲により現物は失われた。

アメリカでは初の完全な電子計算機械としてアタナソフ&ベリー・コンピュータ (ABC) が開発された(1941年夏に稼働)。真空管による二進演算回路を実装しているが汎用性はなく、連立一次方程式を解くことに特化している。また、記憶装置が機械的に回転するため、性能がその回転速度に制限されていた。また入力がパンチカードだったため、それによっても性能が制限されていた。制御は手動であり、プログラム能力はない。

イギリスではトミー・フラワーズColossusを設計し、1943年から暗号解読に使われた。Colossusはデジタル式・電子式でENIACのようにスイッチと配線でプログラムを設定するが、暗号解読専用であり汎用性はない[30]

ハワード・エイケンHarvard Mark I(1944年)はリレーを使った電気機械式の計算機で、さん孔テープでプログラムを供給する。様々な計算が可能だが、分岐命令がない。

ENIACは任意の演算を実行可能という点では Z3 や Mark I と同等だが、さん孔テープからプログラムを読み込むという点は欠けている。Colossus とはプログラムの設定方法が共通である。ENIACの利点は、チューリング完全性と電子的処理速度にある。ABCとENIACとColossusはいずれも真空管で演算回路を構成している。また、Z3やABCは二進法を採用していたが、ENIACは十進法だった。

1948年まで、ENIACでのプログラミングはColossusのように配線変更で行われていた。プログラムとデータを共通の記憶装置に格納するというプログラム内蔵方式はENIAC開発中に考案されたが、戦時中だったため完成が優先され、当初のENIACにそれが実装されることはなかった。また、ENIACには電子的な記憶装置が20カ所しかなく、データやプログラムの格納には小さすぎた。

一般の認知[編集]

Z3とColossusはそれぞれ独自に開発され、ABCやENIACとも無関係である。Z3は1943年のベルリン空襲で破壊された。Colossusはイギリスの戦時中の諜報活動に使われたため、1970年代までその存在は秘密にされていた。ABCはジョン・アタナソフがアメリカ海軍での研究開発に召集されたため、アイオワ州立大学で廃棄状態になっていた。すなわち、それらは大々的に宣伝されることもなく、一般には知られていなかったのである。一方ENIACは1946年に報道によって一般に知られるようになった[20]。そのため、一般にはENIACが「世界最初のコンピュータ」と見なされることが多い。

特許[編集]

ENIACに関する特許(米国特許番号3,120,606号)は1964年に発効した。後に、この特許を盾にしたスペリーランドによる寡占が問題となり、1973年10月19日にミネアポリス連邦地方裁判所の判決[31]で、審判中にいくつかの手続き上の問題点が発見されたことから、特許の一部が無効とされた。このためENIACは現在「世界最初の電子式コンピュータ」ではなく、(ABCが「汎用」とするには機能が限定されていた、という点から鑑みて)「世界最初の汎用電子式コンピュータ(the first general-purpose electronic computer)」と呼ばれる[32]ことが多い。なお、この件を『ENIAC神話の崩れた日』などとして、あたかも歴史が書き換えられたかのごとく扱う者もいる。いずれにせよENIACが、コンピュータの黎明期において歴史的に重要な役割を果たしたものの1つであることに変わりはない。

部分の展示[編集]

ENIACの4つのパネルとファンクションテーブル(左)。ペンシルベニア大学の展示物

ペンシルベニア大学工学部では、40台のパネルのうち4台と3台のファンクションテーブルのうち1台を所有している。スミソニアン博物館国立アメリカ歴史博物館は5台のパネルを所有。ロンドンのサイエンス・ミュージアムも一部を展示している。マウンテンビューのコンピュータ歴史博物館では、3台のパネルと1つのファンクションテーブルを展示している(スミソニアンから貸与)。ミシガン大学アーサー・バークスが保管していた4台のパネルを所有している。ENIACが使われていたアバディーン性能試験場アメリカ陸軍兵器博物館はファンクションテーブルを1台所有している。またテキサス州プラーノの Perot Group には7台のパネルがあり、ENIACの歴史や仕組みについての詳細な展示がある。

ニューヨーク州ウェストポイントの陸軍士官学校にはENIACで使われていたデータ入力端末がある。

1チップ ENIAC[編集]

ペンシルベニア大学の学生は1995年にENIACを7.44mm x 5.29mmのシリコン基板上にトランジスタを0.5umのCMOS技術で174,569個形成する事により再現した[33][34]

脚注[編集]

  1. ^ 「電子式数値積分・計算機」の意
  2. ^ Goldstine 1972
  3. ^ a b The ENIAC Story”. Ftp.arl.mil. 2008年9月22日閲覧。
  4. ^ Shurkin, Joel, Engines of the Mind: The Evolution of the Computer from Mainframes to Microprocessors, 1996, ISBN 0-393-31471-5
  5. ^ ENIACが使われた最初の計算は、マンハッタン計画についてのものだった。 Moye, William T (1996年1月). “ENIAC: The Army-Sponsored Revolution”. US Army Research Laboratory. 2009年7月9日閲覧。
  6. ^ Goldstine 1972, p. 214
  7. ^ なお、新技術に "Brain" という比喩を使うのは、戦時中から見られる。例えば、ライフ誌1937年8月16日の p.45 に Overseas Air Lines Rely on Magic Brain (RCA Radiocompass)、1942年3月9日の p.55 に the Magic Brain - is a development of RCA engineers (RCA Victrola)、1942年12月14日の p.8 に Blanket with a Brain does the rest! (GE Automatic Blanket)、1943年11月8日の p.8 に Mechanical brain sights gun (How to boss a BOFORS!) といった記事がある。
  8. ^ Kennedy, Jr., T. R. (1946年2月15日). “Electronic Computer Flashes Answers”. New York Times. 2011年1月31日閲覧。
  9. ^ Honeywell, Inc. v. Sperry Rand Corp., 180 U.S.P.Q. (BNA) 673, p. 20, finding 1.1.3 (U.S. District Court for the District of Minnesota, Fourth Division 1973) (“The ENIAC machine which embodied 'the invention' claimed by the ENIAC patent was in public use and non-experimental use for the following purposes, and at times prior to the critical date: ... Formal dedication use February 15, 1946 ...”).
  10. ^ a b c Wilkes, M. V. (1956). Automatic Digital Computers. New York: John Wiley & Sons. pp. 305 pages. QA76.W5 1956. 
  11. ^ Milestones:Electronic Numerical Integrator and Computer, 1946”. IEEE Global History Network. IEEE. 2011年8月3日閲覧。
  12. ^ http://encyclopedia2.thefreedictionary.com/ENIAC
  13. ^ Weik, Martin H. (1955年12月). “Ballistic Research Laboratories Report № 971 — A Survey of Domestic Electronic Digital Computing Systems — page 41”. US Department of Commerce. 2009年4月16日閲覧。
  14. ^ Farrington, Gregory. ENIAC: Birth of the Information Age. Popular Science. http://books.google.com/books?id=-TKv7UHgoTQC&pg=PA74&dq=ENIAC&hl=en&sa=X&ei=tUTqTuDgJeSZiQKZy4GwBA&ved=0CDgQ6AEwAA#v=onepage&q=ENIAC&f=false 2011年12月15日閲覧。. 
  15. ^ もとの写真は次の雑誌記事にある。Rose, Allen (April 1946). “Lightning Strikes Mathematics”. Popular Science: 83–86. http://books.google.com/books?id=niEDAAAAMBAJ&pg=PA83&dq=eniac+intitle:popular+intitle:science&hl=en&sa=X&ei=MnWLT_OVEuKciALYz5HzCw&ved=0CDsQ6AEwAA#v=onepage&q=eniac%20intitle%3Apopular%20intitle%3Ascience&f=false 2012年4月15日閲覧。. 
  16. ^ Alexander Randall 5th (2006年2月14日). “A lost interview with ENIAC co-inventor J. Presper Eckert”. Computer World. 2011年4月25日閲覧。
  17. ^ Goldstine 1972, p. 182
  18. ^ Goldstine 1972, p. 214
  19. ^ Goldstine 1972, p. 226
  20. ^ a b Kleiman, Kathryn A. (1997年). “WITI Hall of Fame: The ENIAC Programmers”. 2007年6月12日閲覧。
  21. ^ “Wired: Women Proto-Programmers Get Their Just Reward”. (1997年5月8日). http://www.wired.com/culture/lifestyle/news/1997/05/3711 
  22. ^ ENIAC Programmers Project”. Eniacprogrammers.org. 2010年1月27日閲覧。
  23. ^ ABC News: First Computer Programmers Inspire Documentary”. 2013年2月22日閲覧。
  24. ^ Light, Jennifer S. "When Computers Were Women." Technology and Culture 40.3 (1999) 455-483
  25. ^ Gumbrecht, Jamie (2011年2月). “Rediscovering WWII's female 'computers'”. CNN. http://edition.cnn.com/2011/TECH/innovation/02/08/women.rosies.math/# 2011年2月15日閲覧。 
  26. ^ A Logical Coding System Applied to the ENIAC”. Ftp.arl.mil (1948年9月29日). 2010年1月27日閲覧。
  27. ^ http://history-computer.com/ModernComputer/Relays/Stibitz.html Relay computers of George Stibitz, retrieved 2012 Dec 19
  28. ^ Rojas, R. (1998). “How to make Zuse's Z3 a universal computer”. IEEE Annals of the History of Computing 20 (3): 51–54. doi:10.1109/85.707574. 
  29. ^ Rojas, Raúl. “How to Make Zuse's Z3 a Universal Computer”. 2013年2月22日閲覧。
  30. ^ B. Jack Copeland (editor), Colossus: The Secrets of Bletchley Park's Codebreaking Computers, 2006, Oxford University Press, ISBN 0-19-284055-X.
  31. ^ Rebuilding the ABC” (英語). The Trial. Ames Laboratory (2003年1月22日). 2012年2月15日閲覧。
  32. ^ 英語版ENIACを参照。
  33. ^ Jan Van der Spiegel (2007年8月6日). “ENIAC-on-a-Chip” (英語). University of Pennsylvania. 2012年8月20日閲覧。
  34. ^ Jan Van Der Spiegel (1995年5月9日). “ENIAC-on-a-Chip”. University of Pennsylvania. 2009年9月4日閲覧。

参考文献[編集]

  • Burks, Arthur W. and Alice R. Burks, The ENIAC: The First General-Purpose Electronic Computer (in Annals of the History of Computing, Vol. 3 (No. 4), 1981, pp. 310–389; commentary pp. 389–399)
  • Eckert, J. Presper, The ENIAC (in Nicholas Metropolis, J. Howlett, Gian-Carlo Rota, (editors), A History of Computing in the Twentieth Century, Academic Press, New York, 1980, pp. 525–540)
  • Eckert, J. Presper and John Mauchly, 1946, Outline of plans for development of electronic computers, 6 pages. (The founding document in the electronic computer industry.)
  • Fritz, Barkley, The Women of ENIAC (in IEEE Annals of the History of Computing, Vol. 18, 1996, pp. 13–28)
  • Goldstine, Herman H. (1972). The Computer: from Pascal to von Neumann. Princeton, New Jersey: Princeton University Press. ISBN 0-691-02367-0. 
  • Goldstine, Herman and Adele Goldstine, The Electronic Numerical Integrator and Computer (ENIAC), 1946 (reprinted in The Origins of Digital Computers: Selected Papers, Springer-Verlag, New York, 1982, pp. 359–373)
  • Mauchly, John, The ENIAC (in Metropolis, Nicholas, J. Howlett, Gian-Carlo Rota, 1980, A History of Computing in the Twentieth Century, Academic Press, New York, ISBN 0-12-491650-3, pp. 541–550, "Original versions of these papers were presented at the International Research Conference on the History of Computing, held at the Los Alamos Scientific Laboratory, 10–15 June 1976.")
  • Rojas, Raúl and Ulf Hashagen, editors, The First Computers: History and Architectures, 2000, MIT Press, ISBN 0-262-18197-5.

関連文献[編集]

関連項目[編集]

外部リンク[編集]

座標: 北緯39度57分08秒 西経75度11分26秒 / 北緯39.9522度 西経75.1905度 / 39.9522; -75.1905