計算機の歴史
17世紀
17世紀くらいには、歯車式の計算機があった(加減算くらいはできた)。
- パスカルが1642年に加減算機を考案している。手動。
- ライプニッツが四則計算機を発明。
ライプニッツは数学者で、ニュートンと同時期にニュートンとは独立に微
積分を発見した。ライプニッツは、将来、ありとあらゆる問題が形式的な
計算によって解かれることを夢想している。ライプニッツは、哲学者の間
の議論も、計算で済むようになると考えた。
注: 実際には、数学の問題でさえ、そのようには解けないことが証明されている(ゲーデルの不完全性定理、チューリング機械の停止問題、一階述語論理の非決定性…などによる)
19世紀
-
パンチカード式の織機ができた(ジャカール:1801年)。
織りのパターンをパンチカードに穴を開けることで記録し、織機にパンチ
カードを入れることで、パターンを指示できる。
デジタル的にコントロー
ルできる機械の始まり。
-
バベッジが階差機関、解析機関を考案。
階差機関は、多項式の計算をするための専用機械。三角関数などの近似計
算に使える。つまり、関数を多項式で近似しておき、その多項式の値の表
を階差数列を利用して計算する。
当時、こういうものの需要があった。
遠くの海に航海するような場合、地球が丸いことを計算に入れないと、航
海できない。そのために、色々な数表が必要になったのだが、人間が数表
を作ると、計算間違いをする。当時、数表を買うと、当然正誤表がついて
いて、正誤表の正誤表とか、そのまた正誤表がついていたりした。
バベッジは国から資金援助を得て、階差機関の開発に乗り出すが、資金が
足りなくて完成しなかった。(予想よりも金がかかった。ただし、試作機
はできたらしい。)国家プロジェクトのはしりと言われる。
バベッジはさらに解析機関を設計。
解析機関は、プログラム可能であったため、汎用性があった。
詩人のバイロンの娘のエイダ・バイロンがバベッジの助手のようなことを
やっていて、色々なプログラムを書いている。史上最初のプログラマと呼
ばれている。
20世紀
- 最初の電子計算機 ENIAC (エッカート,モークリ: 1946)
弾道計算のために作られた。ただし、ある程度の汎用性があって、色々な
計算ができた。といっても、違う種類の計算をするには、基本的には配線
を変えなければならなかった。
後に少し改造されて、プログラムを定数記憶装置に入れられるようになっ
た。ただし、プログラム可変内蔵方式ではなかった(プログラム固定内蔵
方式)。
一部、並列処理ができた。しかし、プログラム内蔵で動かすときは、並列
処理ができなかった。
回路的には、真空管を使っていた。
微分方程式を解くアナログ計算機の動作をデジタル動作に置き換えたよう
な動作をするように作られた。
- ノイマン型コンピュータが提唱される
ENIAC の後継機の設計をノイマン、エッカート、モークリー、ゴールドス
タイン、バークス が議論した時の記録が、機密事項だったにも関わらず、
ノイマンの単独名で流布してしまった。この記録の中で提案された設計方
針がもとになって、ノイマン型コンピュータという名前ができた。
※当時のコンピュータ開発には軍事機密が多かった。
ノイマン型コンピュータとは
現在使われている大半のコンピュータは、ノイマン型コンピュータと呼ばれ
るものである。
特徴:
-
プログラム内蔵(プログラムをデータと同じようにメモリに入れて、そ
れを読み出しながら実行する)方式
- 逐次処理を原則とする。
-
並列処理: いくつかの演算装置を同時に動作させて、高速化をはかる。
-
逐次処理: 演算を一つずつ処理する。
並列処理は制御回路を作るのが難しい。
並列型コンピュータ用のソフトウェアを作るのが難しい。
-
2進法の採用を提案
-
ノイマンは、並列処理の重要性をよく理解していた。しかし、制御回路の
開発の困難さから、当面は並列演算を採用しないことを提案した、という
だけのこと。だから、「ノイマン型コンピュータ」という名前はあまり良
くなかったのかも知れない。
-
演算と入出力を並列に処理する(入出力装置が入出力をやっている間に
CPU は演算をすすめる)のは難しくありません。そのための仕掛け(割り込
み等)については、のちに解説します。
本当のプログラム可変内蔵型コンピュータは、ENIAC よりも後にウィルクス
らによって作られた EDSAC が最初と言われています(1949年)。
この時にすでに現在のコンピュータについての色々な課題が議論されてい
ます。(例えば、デバッグの難しさ、サブルーチンライブラリの作成など。)
「歴史上最初のコンピュータは何か?」という問題は難しい問題です。コ
ンピュータの定義の仕方にもよります。コンピュータの基本特許に関係し
て裁判にもなりました。