システム現在のコンピュータは二進法で計算を行うものがほとんどだが、ENIACは内部構造に十進法を採用した。1桁の十進数を格納するのに、10ビットのリングカウンタ(英語版)を使用しており、1桁の記憶に36本の真空管を必要とする。そのうち10本は双三極管で、フリップフロップでリングカウンタを構成している。演算は、リングカウンタが入力パルスをカウントする形で行われ(リングカウンタのビット列は二進数を表しているのではなく、"1"の個数がその桁の値である)、あふれるとキャリーパルスを発生する。これは機械式計算機で数を表す歯車を電子的にエミュレートしたものである。全部で20の10桁のアキュムレータがあり、10の補数表現で負の値を表し、毎秒5,000回の加減算を行える。複数のアキュムレータを接続して同時並行的に動作させることができるので、最高性能はさらに高い。1つのアキュムレータのキャリーをもう1つのアキュムレータへの入力とし、全体で20桁の演算となるよう構成することもできるが、回路のタイミングの関係で3つ以上のアキュムレータをキャリーで接続することはできない(30桁などは不可能)。アキュムレータのうち4台は「乗算器」の制御下にあり、毎秒385回の乗算が可能である。5台のアキュムレータは「除算器/平方根計算器」の制御下にあり、毎秒40回の除算または毎秒3回の平方根計算が可能である。ENIACのファンクションテーブルを操作している様子。この写真は詳細を分からなくするため、意図的に暗くしたものである。[14]他に、始動ユニット(処理の始動・停止を行う)、サイクリングユニット(クロックパルスを他のユニットに供給)、マスタープログラマ(ループ回数を制御するユニット)、リーダー(IBM製パンチカード読取装置の制御)、プリンター(IBM製カードパンチ機の制御)、定数転送ユニット、ファンクションテーブルといったユニットで構成されている。ウィルクス[9]は、より詳細に内部の動きを説明しており、それは上述のものとは若干異なる。基本マシンサイクルは200マイクロ秒(サイクリングユニットの100kHzのクロックパルスの20サイクルに相当)で、10桁の数値を毎秒5,000回操作できる。その1サイクルで数値をレジスタに書き込んだり、レジスタから数値を読み出したり、2つの数値の加減算を行ったりできる。サイクルを必要とするので、10桁の数値同士の乗算は14サイクル(2800マイクロ秒)かかり、毎秒357回ということになる。どちらか一方の数値の桁数が少なければ乗算はもっと短時間で終了する。結果(商または平方根)の桁数である。したがって最大143サイクル(28,600マイクロ秒)かかるので毎秒35回となる(ウィルクス[9]は、10桁の商を求めるのに6ミリ秒かかるとしている)。当初、真空管は毎日数本が壊れ、修理には毎回30分ほどかかった。特殊な高信頼真空管が使えるようになったのは1948年のことである。故障の大部分は電源の投入・切断時に起きていた。これは真空管のヒーターとカソードの加熱と冷却の際にもっともストレスがかかるためである。そこで、真空管のフィラメントを定格の10%未満という低い電圧で動作させ、加熱と冷却でフィラメントが膨張と収縮を繰り返さないよう電源は落とさない等、多くの工夫を行った。それにより真空管の故障率を2日に1本という割合にまで低減させた。エッカートは1989年のインタビューで「真空管の故障はだいたい2日に1本の割合で、修理は15分で完了した」と述べている[15]。1954年、116時間(ほぼ5日間)という連続運転記録を達成している。プログラミング特徴メモリがごくわずかなため、プログラム内蔵能力は事実上はほぼ無く、パンチカードなどの外部デバイスからプログラムを取り込む方式である。ENIACは複雑なプログラムも組むことができ、ループ、分岐、サブルーチンが可能である。プログラミングは複雑な作業で、通常1週間ほどかかった。紙上でプログラムが完成したら、次にパッチパネルでスイッチ群やケーブルの配線を変更することでプログラムをENIACに設定する必要があり、それに数日かかる。設定ミスがないかを検証・デバッグするのに、ENIACの「シングルステップ」動作機能を活用する。経緯ENIACのスポンサーは弾道研究所だったが、プロジェクト開始から1年後、ロスアラモス国立研究所でマンハッタン計画に従事していた著名な数学者ジョン・フォン・ノイマンがこの計算機のプロジェクトに気付いた[16]。ロスアラモス研究所はENIACに深く関与するようになり、最初にENIACで計算した問題も砲撃射表ではなく水素爆弾に関するものだった[17]。その計算の入出力には約100万枚のパンチカードを必要とした[18]。International(WITI)の殿堂入りを果たした[19][20]。1946年当時の呼び名で言えば、キー・マクナルティ、ベティ・ジェニングス、ベティ・スナイダー、マーリン・ウェスコフ、フラン・バイラス、ルース・リターマンの6人である[21][22]。計算機科学史で女性の果たした役割が軽視されてきたことの概略とENIACでの女性の果たした役割について書かれている[23]。よる2010年のドキュメンタリー映画でもENIACのプログラマ達が果たした役割を描いている[24]。ENIACの設計は一種独特であり、決して他では採用されなかった。1943年に設計が完了しているため、その後間もなく発展した技術革新を採り入れておらず、特にプログラム内蔵能力を欠いていた。エッカートとモークリーはより単純で強力な新設計を開始し、それが後にEDVACと呼ばれるようになる。1944年、エッカートはデータとプログラムの両方を格納する記憶装置(水銀遅延線)を説明する文書を書いた。ペンシルベニア大学ムーアスクール(工学部)のコンサルタントだったジョン・フォン・ノイマンは、プログラム内蔵方式が議論され構築されたミーティングに参加している。EDVAC)を書いた。同文書は学会の論文や書籍のような手続きを経て出版されたものではなく、(知られている限りでは)ノイマンによる手書きの草稿と、それを元にしたタイプライタによる原稿がある。後者はENIACの管理責任者だったハーマン・ゴールドスタインがそのコピーをいくつかの政府機関や教育機関に配布し、また当時の何人かの研究者(たとえばイギリスのモーリス・ウィルクス)が何らかの機会を得て読んでいる。それにより各地で新世代の電子計算機を構築することへの関心が高まり、イギリスのケンブリッジ大学のEDSACやアメリカ国立標準局のSEACなどが生まれることになる。1948年以降、ENIACにもいくつかの改良が施され、例えば簡単なリードオンリーのプログラム格納機構が加えられた[25]。これは本来数表を設定するファンクションテーブルをプログラムを格納するROMに流用したもので、ENIACの特許にも含まれているアイデアである。弾道研究所のリチャード・クリッピンガー(ドイツ語版)も独自に提案していた。フォン・ノイマンの助力を得てクリッピンガーは実装すべき命令セットを考えた。ピンガーは3アドレス方式を考えていたが、フォン・ノイマンはより実装が簡単な1アドレス方式を提案。6番のアキュムレータの3桁をプログラムカウンタとして使い、15番のアキュムレータを主アキュムレータとし、8番のアキュムレータをファンクションテーブルからデータを読み込む際のアドレスポインタとして使用する。他のアキュムレータの大部分(1-5、7、9-14、17-19)はデータメモリとして使用する。ENIACでのプログラム内蔵方式のプログラミングはベティ・ジェニングス、クリッピンガー、アデル・ゴールドスタイン(ハーマン・ゴールドスタインの妻)が行った。1948年9月16日、プログラム内蔵方式でのENIACが初公開されている。このときのプログラムはフォン・ノイマンが基本設計しアデル・ゴールドスタインがプログラミングした。この改造によってENIACの性能は6分の1となり並行計算能力も失われたが、何日もかかっていたプログラミング作業が数時間に短縮され、性能低下を考慮しても価値のある改造だった。計算は電子式だが入出力はパンチカードによる電気機械式であり、この性能差の影響も分析した。それによると、実際の問題は例外なくI/Oバウンド(英語版)(入出力が性能のボトルネックとなる状態)であり、本来の並行計算能力を使わない場合でもそれは変わらなかった。プログラム内蔵方式に改造して性能が低下してもI/Oバウンド状態は変わっていない。1952年、高速シフタが追加され、シフト性能が5倍になった。1953年7月、100ワードの磁気コアメモリが追加され、数値表現を3増し符号の二進化十進表現とした。この拡張メモリをサポートするため、新たなファンクションテーブル・セレクター、メモリアドレス・セレクター、パルス成形回路が加えられ、プログラミング機構にも3つの新命令が加えられた。機械式および電気式の計算機械は19世紀から登場しているが、ここでは現代的な(計算理論の用語で「万能」(universal)である)電子式コンピュータが誕生する前夜と言える、1930年代から1940年代の計算機械から話を始めることとする。開発し、1940年にはダートマス大学とベル研究所を電話回線で結び、遠隔からその計算機を操作してみせた[26]。ドイツではコンラート・ツーゼがZ3を設計(1941年5月には稼働)。これが世界初のプログラム可能な計算機で二進数を使っていたが、リレーによる電気機械式である。さん孔テープでプログラムを供給するものでプログラム内蔵方式ではなく、条件分岐命令が無いため現代的なプログラミングが普通にできるわけではない。チューリング完全を意図して設計されてはいない。後になって1998年に、チューリング完全である、とする報告が書かれているが、数値演算のトリッキーな組み合わせによって「条件付きの計算」に相当するような結果が得られる、とするハック的なものであり[27][28]、近年の「x86はmov命令だけでチューリング完全である」[29]といったような主張と同様な、実用的ではないものである。1943年12月、ベルリン空襲により現物は失われた。開発された(1941年夏に稼働)。真空管による二進演算回路を実装しているが汎用性はなく、連立一次方程式を解くことに特化している。記憶装置が機械的に回転するため、性能がその回転速度に制限されていた。入力がパンチカードだったため、それによっても性能が制限されていた。制御は手動であり、プログラム能力はない。イギリスではトミー・フラワーズがColossusを設計し、1943年から暗号解読に使われた。Colossusはデジタル式・電子式でENIACのようにスイッチと配線でプログラムを設定するが、暗号解読専用であり汎用性はない[31]。I(1944年)はリレーを使った電気機械式の計算機で、さん孔テープでプログラムを供給する。様々な計算が可能だが、分岐命令がない。同等だが、さん孔テープからプログラムを読み込むという点は欠けている。プログラムの設定方法が共通である。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年に報道によって一般に知られるようになった[19]。そのため、一般にはENIACが「世界最初のコンピュータ」と見なされることが多い(なお日本では、「電子計算機」=「コンピュータ」という意訳的解釈による所も大きい(逐語的には「コンピュータ」という語に「電子」の意味は無い)。チューリング完全などといった専門的な事柄には興味を感じない一般人には、エレクトロニクスで自動的に計算を実行した初の機械ENIACが、初の「電子計算機」=「コンピュータ」ということで、一般人の感覚的には間違ってないとも言えなくもない)。特許ENIACに関する特許(米国特許番号3,120,606号)は1964年に発効した。後に、この特許を盾にしたスペリーランドによる寡占が問題となり、1973年10月19日にミネアポリス連邦地方裁判所の判決[32]で、審判中にいくつかの手続き上の問題点が発見されたことから、特許の一部が無効とされた。computer)」と呼ばれる[33]ことが多い。この件を『ENIAC神話の崩れた日』などとして、あたかも歴史が書き換えられたかのごとく扱う者もいる。いずれにせよENIACが、コンピュータの黎明期において歴史的に重要な役割を果たしたものの1つであることに変わりはない。部分の展示ENIACの4つのパネルとファンクションテーブル(左)。ペンシルベニア大学の展示物ペンシルベニア大学工学部では、40台のパネルのうち4台と3台のファンクションテーブルのうち1台を所有している。スミソニアン博物館の国立アメリカ歴史博物館は5台のパネルを所有。ロンドンのサイエンス・ミュージアムも一部を展示している。マウンテンビューのコンピュータ歴史博物館では、3台のパネルと1つのファンクションテーブルを展示している(スミソニアンから貸与)。ミシガン大学はアーサー・バークスが保管していた4台のパネルを所有している。ENIACが使われていたアバディーン性能試験場のアメリカ陸軍兵器博物館はファンクションテーブルを1台所有している。7台のパネルがあり、ENIACの歴史や仕組みについての詳細な展示がある。ニューヨーク州ウェストポイントの陸軍士官学校にはENIACで使われていたデータ入力端末がある。5.29mmのシリコン基板上にトランジスタを0.5umのCMOS技術で174,569個形成することにより再現した[34][35]。2008年9月22日閲覧。2009年7月9日閲覧。2011年1月31日閲覧。2011年8月3日閲覧。2009年4月16日閲覧。2011年12月15日閲覧。もとの写真は次の雑誌記事にある。2012年4月15日閲覧。2011年4月25日閲覧。2007年6月12日閲覧。2010年1月27日閲覧。2013年2月22日閲覧。2011年2月15日閲覧。2010年1月27日閲覧。2013年2月22日閲覧。ABCに関しては、しばしばその支持者はこのように「初の」「完全な」といったような主張をしており確かに文献にもそのようにあることが多い。「初の」はともかく、この段落でも後述するように、プログラム内蔵方式では無論なくプログラム制御であると認めることすら難しい機械であるという事実からは、いかなる意味で「完全」なのかは不明である。計算理論に「チューリング完全」という語があるが、むろんその意味も満たしていない。2012年2月15日閲覧。英語版ENIACを参照。2012年8月20日閲覧。ちくま学芸文庫〉、2011年8月9日。978-4-480-09384-4。4-7693-5088-0。パーソナルメディア、2001年8月。4-89362-183-1。計算機の歴史コンピュータ・アーキテクチャ情報処理ウィキメディア・コモンズには、ENIACに関連するカテゴリがあります。2011年2月9日閲覧。(歴代)スーパーコンピュータ1940年代のコンピュータ初期のコンピュータ真空管式コンピュータ個別のコンピュータコンピュータ史Navigation。