ENIAC
[Wikipedia|▼Menu]
プログラミングされるENIAC2人のプログラマがENIACの制御パネルを操作しているところ

ENIAC(エニアック、Electronic Numerical Integrator and Computer[1][2][3]は、アメリカで開発された黎明期の電子計算機
特徴

電子式でデジタル式だがプログラム内蔵方式とするにはプログラムのためのメモリはごくわずかで、パッチパネルによるプログラミングは煩雑ではあったものの、必ずしも専用計算機ではなく広範囲の計算問題を解くことができた[4]。しかし、任意の計算可能な問題について計算できるという能力が当初の時点で基本的にはあったわけではなく(後述)、アナログ機械式計算機の一種類である微分解析機と同様に、微分方程式で表すことができるような多くの種類の問題について積分法によって数値的な解を得る(ただしこちらは数値的(ディジタル)に)、という機械である。後の改良により、ごく小規模だがプログラミング的な使い方も可能になり、円周率の桁数向上記録の歴史で有名な1949年の2037桁という記録は、そのような改良後の機能を活用したものである。
経緯

当初は、アメリカ陸軍弾道研究所での砲撃射表の計算を第一の目的として設計されたが、その初期に行われた計算で射表の計算とは全く違うもののひとつに、マンハッタン計画についてのものがある[5][6]。1946年に発表されたとき、報道には「巨大頭脳」(Giant Brain) といった呼称が見られる。なお、新技術に "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!) といった記事があり、また、各種の計算機械を扱ったエドモンド・バークレーの啓蒙書 "Giant Brains, or Machines That Think"(邦題『人工頭脳』)などといった例もあるように、これは何ら特記事項ではない。

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

ENIACを考案・設計したのはペンシルベニア大学のジョン・モークリージョン・プレスパー・エッカートである[9]。設計開発に加わった技術者としては、ロバート・F・ショー(Robert F. Shaw/ファンクションテーブル)、ジェフリー・チュアン・チュー(除算器/平方根計算器)、アーサー・バークス(乗算器)、ハリー・ハスキー(入出力)、ジャック・デイヴィス(Jack Davis/アキュムレータ)らがいる。

1987年、ENIACはIEEEマイルストーンに選ばれた[10]
概要
構造

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

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

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

現在のコンピュータは二進法で計算を行うものがほとんどだが、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製カードパンチ機の制御)、定数転送ユニット、ファンクションテーブルといったユニットで構成されている。

Rojas and Hashagen またはウィルクス[9]は、より詳細に内部の動きを説明しており、それは上述のものとは若干異なる。基本マシンサイクルは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回となる(ウィルクス[9]は、10桁の商を求めるのに6ミリ秒かかるとしている)。こちらも演算結果の桁数が少なければもっと短時間で完了する。
特性
信頼性真空管が並ぶENIACの裏面の一部

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

メモリがごくわずかなため、プログラム内蔵能力は事実上はほぼ無く、パンチカードなどの外部デバイスからプログラムを取り込む方式である。

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

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

1997年、ENIACのプログラミングを担当していた6人の女性がWomen in Technology International(WITI)の殿堂入りを果たした[18][19]。1946年当時の呼び名で言えば、キー・マクナルティベティ・ジェニングスベティ・スナイダーマーリン・ウェスコフフラン・バイラスルース・リターマンの6人である[20][21]。ジェニファー・S・ライト(英語版)のエッセイ When Computers Were Women では、計算機科学史で女性の果たした役割が軽視されてきたことの概略とENIACでの女性の果たした役割について書かれている[22]。また、LeAnn Erickson による2010年のドキュメンタリー映画でもENIACのプログラマ達が果たした役割を描いている[23]

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

1948年以降、ENIACにもいくつかの改良が施され、例えば簡単なリードオンリーのプログラム格納機構が加えられた[24]。これは本来数表を設定するファンクションテーブルをプログラムを格納する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年代の計算機械から話を始めることとする。

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

ドイツではコンラート・ツーゼZ3を設計(1941年5月には稼働)。これが世界初のプログラム可能な計算機で二進数を使っていたが、リレーによる電気機械式である。さん孔テープでプログラムを供給するものでプログラム内蔵方式ではなく、条件分岐命令が無いため現代的なプログラミングが普通にできるわけではない。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:58 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef