あまり,コンピューターの発明に寄与しないが,そろばんとか機械式の計算機があった. そろばんは,かなり古くから使われていたようで,現存する最古のものは紀元前300年く らいのものらしい.このことからも人類が活動する上で,計算(情報処理のひとつ)は重要 な行為であることが分かる.
コンピューターの発明に寄与したもので最初のものは,1881年にジョゼフ・マリー・ジャ カールにより発明されたジャカード織機(Jacquard loom)と言われている.これは自動織機 で,絵柄のパターンはパンチカードに書かれている.パンチカードに書かれたとおりに機 械が縦糸と横糸を織る機械で,パンチカードのパターンを変えことにより図柄を変えるこ とができる.丁度,パンチカードがプログラムの役割を果たすのである.
ジャカード織機はパンチカードに従い自動的に図柄を織る機械であるが,これに目をつけ, チャールズ バベッジ(Charles Babbage:1791-1871)は自動的に計算する機械を作ろうと した.バベッジが作ろうとした計算機は,階差機関(difference engine)と呼ばれるもので,自動的 に多項式の値を計算し,印刷する機械を目指した.残念ながら,当時の技術水準ではそれ を作ることはできなかったが,コンピューターにつながるアイディアがあったことは確か であろう.
次に登場するものはハーマン ホレリス(Herman Hollerith:1860-1929)の発明した 統計機械(tabulating machine) で,1890年の米国の国勢調査に使われた.この機械は穿孔機により空けられたパンチカード の穴が国税調査の情報を表す.その穴を電気的に検出し,データを集計する仕組みであっ た.バベッジの階差機械とは異なり,この機械は大成功を収め,後のIBM社につながる.
プログラムにより広範囲の計算ができる電子計算機は,ENIAC(Electronic Numerical Integrator And Computer)が最初である.それまでに も,プログラムを使ったリレー式の計算機はあったが,電子計算機はENIACが最初である. リレー式の計算機に比べ圧倒的な処理速度があった.ENIACを見たノイマンは,「これで 世界で二番目に計算が速いヤツ決まったな」と言ったとか.一番目はノイマンあるいは ENIAC?
ENIACはプログラムを変えることで,様々な計算が出来たことが画期的であった.大砲の 弾道の軌道計算もおこなったし,70時間かけて円周率を2037桁まで求めた.ただ,ENIAC には致命的な欠点があった.プログラムは配線により行っていたのである.プログラムを変更する ためには,いちいち電線の接続を変えなくてはならない.
次のEDVAC(Electronic Discrete Variable Automatic Computer)というコンピューターの開発では,プログラムを配線ではなく,メモリーの中 に入れることが議論された.こうすることにより,プログラムの変更が容易でかつ高速で 計算するコンピューターが可能となる.このコンピューターを実現するためのメモリーの 開発は大変だった.
このEDVACが現在のコンピューターの原型と言ってもよいだろう.この後は,CPUのスピー ドアップとメモリーの大容量化に向かって,突き進むことになる.
余談ではあるが,ENIACの開発で真空管の寿命が問題となった.真空管の寿命は大体2000 時間で,ENIACには17,468本の真空管が使われていた.平均的に,ENIACは
(1) |
コンピューターで数値を扱う場合,2進数がもっとも適している.ノイズに強いとかブー ル代数が使えるとかがその理由である.また,2進数の場合,コンピューターを構成する 素子が単純になるという利点もある.
ENIACは10進数のコンピューターであったが,発明 者のエッカートとモークリーは2進数の方が有利であると気がついていたようである.そ のため,彼らの2号機となるEDVACでは2進数を採用した.
ブール代数の公理は次のとおりである.
これで,ブール代数が定義できた.それにしても,通常の数の演算と似て いる.しかし,良く見ると少し異なるものもある.
さらに,演算について重要なこと を付け加えておく.それは,加法と乗法,補元の演算の結果は,必ず元の 変数の集合に含まれることである.このことをこれらの演算について 閉じていると言う.
閉じていることの確認は,次のブール代数真表から分かる.もちろん,この真理表は公理
から導くことができる.
|
ちなみに,ブール代数を作ったブールとバベッジ,それにド・モルガンは仲間であったよ うである.いずれも,コンピューターの基礎に関係している.
紆余曲折の後,プログラムと計算処理の対象であるデータは,同じメモリー上に置かれるようになった.このように,同じメモリー上に命令とデータがあるようなものをノイマン型コンピューターと言う.世界中のほとんどのコンピューターがこのノイマン型のコンピューターで,
プログラムとデータを別のメモリーに置く,コンピューター(CPU)もある.このような方 式をハーバードアーキテクチャーと言う.