新HPCの歩み(第6回)-前史(f)-
第二次世界大戦前から欧米では様々な自動計算機が研究開発されていた。そのうち有名なものを紹介する。戦争により、弾道計算や暗号解読のためのコンピュータの開発が進んだ一方、国家機密とされ、健全な技術の発展が阻害された面もある。日本で本格的な研究が始まったのは戦後である(次回)。 |
Boole代数とスイッチング回路
Boole代数は19世紀半ばに確立されたが、意外にも、当初はスイッチング回路の基礎理論であるとは考えられていなかった。
1) リレー
リレー(relay、継電器)は、アメリカの物理学者Joseph Henry(1797年~1878年)により、1835年に発明され、電信機の発明(1837年)の基礎となった。電気による論理演算は初期の電話交換機などではリレーにより行われていた。
2) Boole代数
George Boole(1815年~ 1864年)は、イギリスの数学者・哲学者で、微分方程式や解析学や確率などに関する業績もあるが、有名なのは論理の記号化とその代数(Boole代数)である。Booleは、1847年にパンフレット“Mathematical Analysis of Logic”「論理学の数学的分析」を発表したが、本人はこれには間違いがあり、1854年の論文“An Investigation of the Laws of Thought on Which are Founded the Mathematical Theories of Logic and Probabilities”「論理と確率の数学的な理論の基礎となる思考法則の研究」の方が完全な記述であると述べている。
Booleはこれにより人間の論理的思考に数学的な表現を与えたが、そのころ発展し始めていた電気によるスイッチング回路との関係は考えていなかったようである。
3) Claude Shannon
Claude Elwood Shannon(1916年~ 2001年)はアメリカ合衆国の電気工学者、数学者で、情報理論、通信理論で大きな業績を上げた。「栴檀は双葉より芳し」というか、Shannonは1937年のMITでの修士論文「継電器及び開閉回路の記号的解析」において、スイッチング回路が論理演算に対応することを示した。「スイッチの直列接続がANDに、並列接続がORに対応し、論理演算がスイッチング回路で実行できる」ことなど、現代からみれば当たり前と思えるが、Booleの記号論理から1世紀近くも掛かってやっとこの認識に至ったのである。これにより、それ以前の電話交換機などが職人の経験則によって設計されていたものを一掃し、数学的な理論に基づいて設計が行えるようになった。
4) 中嶋のスイッチング理論
Shannonの業績全体のすごさは否定すべくもないが、スイッチング理論については、実は日本の方が一歩先行していた。中嶋章(1908〜1970)は、東京帝国大学工学部電気工学を1930年に卒業し、日本電気で継電器回路と取り組んでいたが、「継電器回路の構成理論」(電機通信学会誌18, 9 pp.71-752 (1935))において、Boole代数が継電器の接点回路網の理論であることを示した。Shannonの修士論文の2年前であった。Shannonもスイッチング理論についての著名な論文C. E. Shannon, “The Synthesis of Two Terminal Switching Circuits” BSTJ, 459-466 (Jan. 1949) においてこのことを認めており、おそらく独立に発見したものと思われる。
5) 電気試験所
中嶋の発見は電気試験所(当時は逓信省傘下、次回登場)で発展した。1922年に入所し、1938年に電気試験所第2部長となった大橋幹一は、「継電器回路網の演算子的計算法」(電気試験所50周年記念論文集 pp.238-247 (1941))において、遅延をも考慮に入れたスイッチング理論を構築した。1927年に入所した後藤以紀(もちのり)(1905〜1992)は、大橋の理論に注目し、その解法を容易にするために時間遅れを論理関数に取り入れるように論理代数を拡張し、これを論理数学と称した。1945年に電気試験所に入所した駒宮安男(1922〜1993)は、後藤による論理関数方程式の解法理論を、二進加算回路、十進二進変換回路などの設計に応用し、これらを電気計算回路理論としてまとめた。
計算機自体の開発について、我が国が先導的であったとは言い難いが、このスイッチング理論の分野においては、わが国には世界に先駆けた第一級の業績があったのである。
この項では、『日本のコンピュータの歴史』情報処理学会 歴史特別委員会編(1985年 オーム社)を参照した。なお、Boole代数とコンピュータとの関連については三井斌友氏からの示唆による。
歴史的コンピュータ
1) チューリングマシン
「チューリングマシンの写真ありませんか?」などと聞かれることがある。時々誤解されているが、Turing machineという実際の計算機があるわけではない。イギリスの数学者Alan Mathieson Turing (1912-1954)は計算の科学について先駆的な貢献をした。かれは計算という処理の本質を見抜き、『計算可能な数について-決定問題への応用とともに』(1936)と題した論文において、後にチューリングマシンとよばれる抽象機械を考案した。チューリングマシンはオートマトン(有限状態機械)と無限の長さのテープを持つテープ記憶から構成される。オートマトンはテープ上の記号を読み取り、オートマトンの内部状態を変えるとともに、必要ならある記号をテープの上に書き、テープを左か右に動かす。ある内部状態に到達すると停止する。現在のコンピュータとはだいぶ違うが、コンピュータで計算可能な問題は、原理的にチューリングマシンで計算できると考えられる。
アメリカのACM学界は、チューリングを記念して、1966年から、コンピュータ科学分野で貢献した人物に年1度チューリング賞(ACM A. M. Turing Award)を贈っている。
2) Konrad Zuse
ドイツの土木技術者Konrad Zuse(1910~1995)は、航空機の設計に必要な計算を機械で行うことを思い立ち、1936年、Z1と呼ばれる機械の製作を始めた。これは電気駆動の二進浮動小数の機械式計算機で、命令はテープから与えた。1938年に一応完成したが、完全動作には至らなかった。
1939年兵役に就き、そこで電話用リレーを使ってZ2を完成させた。
1941年、Zuse Apparatusbauという企業を創業し、二進法22ビット浮動小数計算機Z3を完成させた。Z3はメモリと演算装置にリレーを用いている。
![]() |
|
この企業は1942年からZ4の開発を行った。Z3と同様電気機械式である。1945年の空襲で破壊されたが、1949年11月8日、Zuse KGを創業し、Z4の開発を再開した。Z4は1950年9月にETHに納入された。リレーを2500個、ステップワイズリレーを21個、メモリも機械式である。クロックは40 Hz(kHzでもましてMHzでもない)、語長は32ビット、加算は400 ms、乗算は3 sである。プログラミングは35mmフィルムの穴で入力する。
3) Colossus
第2次世界大戦の期間中、ドイツの暗号通信を解読するためにイギリスで開発され使われた専用計算機である。真空管とサイラトロンが使われた。プロトタイプのClolssus Mark Iは、1943年12月に完成し、1944年から政府暗号学校(暗号解読拠点)の置かれたBletchley Parkで稼働した。改良版のColossus Mark IIは1944年6月1日に完成し、終戦までに10台が製造された。写真はBletchley Parkで展示されている再現されたColossus(宇川彰氏撮影。RISTニュースNo.60 (2016)参照)。
4) Atanasoff-Berry Computer
1937年から1942年にかけて、アイオワ州立大学でJohn Vincent Atanasoffとその院生Clifford Edward Berryは電子式デジタル計算機ABC (Atanasoff-Berry Computer)を開発した。二進法の採用、DRAMのような再生式メモリ、抵抗マトリックスによる演算、メモリと演算装置との分離など多くの優れた要素技術を発明した。ABCは、280本の双三極真空管、31個のサイラトロンなどから構成されている。連立方程式の解法専用であった。プログラム制御ではないので、未知数の消去を一々手動で操作する必要があった。大昔のプログラム電卓程度のものであろう。ENIACの開発者の一人のJohn Mauchlyは1941年6月にAtanasoffを訪問し、詳しく語り合った。
1973年、AtanasoffらとENIACとの間に特許紛争があり、背後の大コンピュータ・メーカー(Honeywell とUNIVAC)の代理戦争となった。この裁判の際に、MauchlyがAtanasoffを訪問していることが明らかになり、1975年10月19日、要素技術の特許としてABCの勝利となったようである。システムとしては不完全でも、優れた要素技術は特許となることができる。2011年に成立し、2013年から施行された新しい特許制度まで、アメリカの特許制度は「先願主義」ではなく「先発明主義」に基づいており、先に発明したことが証明できれば、後からでも特許を取ることができた。
5) Harvard Mark I
ASCC (Automatic Sequence Controlled Calculator)はアメリカ初の電気機械式計算機である。1939年から、Howard Hathaway AikenがIBM社の技術者とともに設計し、IBMが製作を担当した。1944年2月、Harvard大学に出荷されたが、当初はアメリカ海軍の船舶局が計算に使用し、正式に大学に引き渡されたのは1944年8月7日である。スイッチ、リレー、歯車式の計算装置、クラッチなどで構成される。十進法を採用している。後にHarvard Mark Iと呼ばれた。
6) ENIAC
ENIAC(Electronic Numerical Integrator and Computer)は、John MauchlyとJohn Eckartが設計した真空管式の十進デジタル計算機であり、プログラムはパッチパネルで与えた。開発が始まった1942年6月には、MauchlyはPennsylvania大学に着任したばかり、Eckertは大学院の研究生であった。当初、アメリカ陸軍の弾道研究所での射撃射表の計算のために設計されたが、完成時真っ先に行われたのは弾道計算ではなかった。1946年2月14日に完成披露では、加減乗算と正弦余弦のほかに、爆縮時の衝撃波の計算が行われた。研究所では、プルトニウム原爆や水爆の爆発力の推定に不可欠な爆撃波の計が、それまではIBMのパンチカードシステムを用いて実行されていた。
あまりに有名で付け加えることもないが、Wikipediaは次のように書いている。
「第二次世界大戦中、ENIACの設計と製作の資金はアメリカ陸軍が支出した。その契約は1943年6月5日に結ばれ、ペンシルベニア大学電気工学科にて “Project PX” の名で秘密裏に設計が開始された。1946年2月14日の夕方に完成したマシンが公開され、翌日にはペンシルベニア大学で正式に使用が開始された。開発にかかった総額は50万ドル弱だった。アメリカ陸軍に正式に引き渡されたのは1946年7月のことである。1946年11月9日、改造と記憶装置のアップグレードのためにシャットダウンされ、1947年にはメリーランド州のアバディーン性能試験場に移送された。そこで1947年7月29日に電源を入れ、1955年10月2日の午後11時45分まで運用された。」
ENIACは加減算と乗算を並列に実行することができた。いわば並列計算機であった。ENIACでは元々パッチパネルでプログラミングをおこなったが、これは余りに複雑なので、1入力100出力のマトリックスイッチを命令デコーダとするような改造が1948年9月に行われ、(固定)プログラム格納機構が付加された。プログラミング作業は短縮されたが、演算性能は6分の1となり、残念ながら加減算と乗算の並列計算機能も失われた。
Thomas J. Watson(一世)が、”I think there is a world market for maybe five computers”(コンピュータなんて、世界市場に5台もあれば十分だと思う)と1943年に言ったという話はあまりにも有名であるが、根拠は確認されていない。IBM社がパンチカードマシンの市場性に自信を持つあまり、コンピュータへの参入に遅れを取ったことを皮肉る作り話かもしれない。
7) Manchester SSEM
イギリスのVictoria University of Manchester(現在のThe University of Manchesterの前身の一つ)では、当時メモリとして用いられていたWilliams管を評価するために、SSEM (Small-Scale Experimental Machine)を製作した。実用マシンではないが、プログラム内蔵式であり、1948年6月21日に動作した。愛称はBabyである。
8) Manchester Mark I
同大学では、これに引き続きManchester Mark Iという真空管式コンピュータを1948年8月から開発し、1949年4月に稼働させた。1語は40 bitsに増やした。記憶装置はWilliams管であるが、二次記憶として磁気ドラムを用いたプログラム内蔵コンピュータである。初めてインデックスレジスタを採用し、内蔵プログラムを書き換えることなく、アドレスを修飾することができた。後にFerrantiのモデルとなった。
9) EDSAC
John von NeumannのEDVACレポートに刺激され、Maurice Vincent WilkesとCambridge大学の数学研究所は、EDSAC (Electronic Delay Storage Automatic Calculator)を開発し、1949年5月6日稼働した。真空管3000本と水銀遅延管を使用した。主記憶は1024語(1語は17ビット)であった。世界初の実用的なプログラム内蔵方式のコンピュータと言われる。
初期のコンピュータ全般については、星野力著『誰がどうやってコンピュータを創ったのか?』(共立、1995年)に詳しい。
10) CSIRAC
南半球にコンピュータがなかったわけではない。オーストラリアのCSIRO (Council for Scientific and Industrial Research Organization)は、真空管式のコンピュータCSIRAC(Council for Scientific and Industrial Research Automatic Computer)を開発し、1949年11月にテストプログラムが稼働した。
11) EDVAC
ENIAC開発チームは1944年8月から、後継機としてEDVAC (Electronic Discrete Variable Automatic Computer)を開発した。二進法を使用しており、プログラム内蔵方式である。メモリは水銀遅延記憶装置で1000語(1語44ビット)である。真空管6000本とダイオード2000個を使用している。EDVACは1949年8月に弾道研究所に運び込まれ、いくつかの問題に対処した後、1951年に部分的に稼動した。
コンサルタントであったvon Neumannは、論理設計について話し合った結果を“First Draft of a Report on the EDVAC”というレポート(1945年6月30日)にまとめたので、von Neumann architectureと呼ばれるが、彼一人のアイデアではない。このレポートはなかなか面白い。複数の演算器を装備して同時に演算させること(並列処理)も考慮しているが、実際的でないと否定的である。
12) IAS Machine
Princetonのthe Institute for Advanced Study (IAS)が開発したIAS Machineはvon Neumann architectureのマシンであるが、稼働が1950年代なので、1951年のところに記す。
13) 一覧
以上の第二次世界大戦前後のコンピュータを表にまとめる。プログラム記憶とデータ記憶のセルが結合しているものはプログラム内蔵式である。
名称 |
設置場所 |
稼働 |
データ表現 |
演算 |
プログラム記憶 |
データ記憶 |
Z1 |
独、Zuse個人 |
1938 |
22bit Flo |
機械式 |
穿孔テープ |
機械式 |
Z2 |
独、Zuse兵役中 |
1939 |
16bit Fix |
リレー式 |
穿孔テープ? |
機械式 |
Z3 |
独、ZUSE社 |
1941 |
22bit Flo |
リレー式 |
穿孔テープ |
リレー式 |
ABC |
米、Iowa大 |
1942 |
50bit Fix |
真空管 |
固定目的 |
Capaciter式 |
Colossus Mark 1 |
英、Bletchley Park |
1943/12 |
5bit Char |
真空管 |
スイッチ、プラグ盤 |
なし |
Harvard Mark I |
米、Harvard大 |
1944/5 |
十進23桁 |
歯車式 |
穿孔テープ |
|
Colossus Mark 2 |
英、9台 |
1944/6 |
|
真空管 |
スイッチ、プラグ盤 |
なし |
Z4 |
独、 |
1945/3 |
|
リレー式 |
|
機械式 |
ENIAC |
米、Pensylvania大 |
1946/7 |
十進10桁 |
真空管 |
プラグ配線 |
真空管 |
Manchester SSEM |
英、Manchester大 |
1948/9 |
十進 |
真空管 |
Williams管 |
|
ENIAC改造後 |
米、 |
1948/9
|
十進10桁 |
真空管 |
定数ダイアル |
真空管 |
EDSAC |
英、Cambridge大 |
1949/9 |
17bit/35bit Fix |
真空管 |
水銀遅延線メモリ |
|
Manchester Mark I |
英、Manchester大 |
1949/10 |
40bit |
真空管 |
Williams管と磁気ドラム |
|
BINAC |
米、EMCC |
1949 |
二進、31bit |
真空管 |
水銀遅延線メモリ |
|
CSIRAC |
豪、 |
1949/11 |
20bit |
真空管 |
水銀遅延線メモリ |
|
IAS |
米 IAS |
1951夏 部分稼働 |
40bit |
真空管 |
Williams管 |
EMCC: Eckert–Mauchly Computer Corporation
次回は、日本におけるコンピュータ開発の始まりについて述べる。
![]() |
![]() |
![]() |
1件のコメントがあります
>George Boole(1815年~ 1864年)は、イギリスの数学者・哲学者で、
>本人はこれには間違いがあり、1954年の論文「論理と確率の数学的な理論の基礎となる思考法則の研究」
>の方が完全な記述であると述べている。
没後に論文を書くことはないので、おそらく1954年ではなくて1854年であろう。