コンピュータの歴史


 今日のコンピュータは何時頃、誰が考えたのでしょうか。皆さん興味深いと思いませんか。今日のコンピュータをより深く知るという意味でも、意味のあることだと思いますので、少し歴史を振り返ってみましょう。

 コンピュータ(computer)というからには計算をする(compute)機械でなくてはなりません。この計算する機械は、歯車を利用した機械式(歯車式)計算機、リレーなどを利用した機械式(電気式)計算機、電子(式)計算機と発展してきました。


1 機械式計算機

 多分最初に計算に利用した器具は自分の指だと思います。そのうち計算の桁数が大きくなると指では足りなくなりますので、「一人分の手の指」+何本というようになると思います。これによって10を単位とする10進法が始まります。つまり、一人分の手の指+7本で「17」、3人分の手の指+4本で、「34」という具合です。

 やがて古代バビロニアでは小石を地面に置いて数える人が現れます。やがて、石に穴をあけて棒に通すという人も出てきます。1を表す5つの珠と、5を表す1つの珠を1つの軸に通し、それを並べると「そろばん」になります。

※ただし、現在の日本のそろばんは1を表す珠は4で、5を表す珠が1つです。日本でこの形になったのは明治以降だそうです。

 しかし、数の表記にはどこでも苦労したようです。日本では215は二百十五と表記します。これでは四則演算は厄介です。そのうちに今の中東と中国の境目当たりの商人から、そろばんの珠の数をそのまま1桁ずつ書き写す表記法が生まれます。つまり、「位取り」の概念が発明されました。位取りという概念は数学上の大発明というべきものだと思います。位取りが発明されると、数の計算が驚くほど簡単に行えるようになりました。これによって、数学が発達するとともに、計算機らしい計算機が生まれてくる素地ができたことになります。

1.1 ネイピアの計算棒

 ネイピアの計算棒は、16世紀の前半にスコットランドのジョン・ネイピアという数学者が発明したものです。計算機と呼ぶにはあまりにも素朴なものですが、後の計算機で計算原理が応用されていますので、どんなものだったか見てみましょう。

 皆さんは「九九」を当然ご存知です。日本には大和時代に中国から伝わってきたようです。ところが西洋には掛け算の九九のような暗記法がありません。驚くことに現在でも英語圏の成人は掛け算の九九が完全に言えない人が多く、アメリカの大学生・大学院生でさえ40パーセントの人が九九を完全に覚えていないという調査さえあるようです。西洋人は昔から、掛け算には苦労していました。そこで考え出されたのがネイピアの計算棒です。ネイピアの計算棒は掛け算を簡単にするための道具です。

 計算棒の例を次に示します。示したのは「5」と「6」と「7」の列です。一番上の数に1~9の数を掛けた結果が、下の欄に並べてあります。計算結果の1の位の数と10の位の数の間に斜線が入っています。


 ではこれを利用して「567」×4の計算をしてみましょう。各列の上から4行目の数を斜めに並べて揃え足し算をするだけです。

※斜線の上の数と、斜線の下の数を、下の数が1桁小さいように桁をずらせて、足し算をします。あるいは斜線で囲まれたひし形の中の数を同じ桁の数として足し算すると考えることもできます。

 この掛け算を桁ごとに分解すると、簡単な表と足し算で代用できるという考え方は非常に画期的で、後の計算機にも生かされていくことになります。

1.2 シッカルトの計算機

 シッカルトは友人である天文学者のケプラーのために計算機を製作しています(16世紀の前半)。実物は17世紀前半に起こった戦争で消失して残っていませんが、1950年に偶然発見された設計図を基に復元してみたらちゃんと計算ができたということです。シッカルトの計算機は乗算部分にネイピアの計算棒の原理が利用されています。シッカルトの計算機は乗算を行う棒と、棒による乗算結果を加減するダイヤルから構成されています。

 シッカルトの計算機は大変優れたものでしたが、現物が残っておらず、設計図も消失したものと思われていました。後世に与えた影響という面では約100年後に登場することになるパスカルの計算機(パスカリーノ)がより勝っています。

1.3 パスカルの計算機

 計算機の歴史の話になるとよく話題になるのが数学者のパスカルが考案したといわれている歯車式の計算機(「パスカリーノ」)です。パスカルがまだ子供(16歳)のころ、税務官吏をしていたお父さんを助けるために発明したといわれています。0~9の数字の書かれた歯車を回して、加減乗除の四則計算を行うことができました。ただし、99+1のように桁上りが連続するような計算はできなかったようです。

 パスカルの計算機はシッカルトの計算機から100年ほど遅れて開発されています。パスカルの計算機では乗徐は足し算引き算の組み合わせで行っています。このパスカルの計算機の原理は現在のコンピュータと基本的には全く同じです。ただし、機械式の場合には、10進数が利用されています。機械式の場合には歯車の歯の数の問題ですので、10進数でも2進数でも同様に扱えるのですが、2進数を使うと桁が大幅に増えてしまうため、必要な歯車の数が多くなってしまい、機械自体が大きくなってしまいます。そのため、機械式では10進数が使われるのが一般的です。

※電子式の計算機になると、電圧の高い低い、電流が流れているか流れていないか、あるいは電荷がたまっているか溜まっていないかなどで計算をするため、2進数が扱いやすいということになります。

 パスカルの計算機については、後にライプニッツが桁上りの問題を解決し、連続桁上りの可能な計算機を作り、実用化しています。

1.4 バベッジの計算機

 パスカルの計算機は計算の原理は、現代の計算機と同じといいましたが、それは計算の仕方だけです。現代のコンピュータは、プログラムを書いて、それをメインメモリに置き、CPUはメインメモリ上にあるプログラムとデータを読み込みつつ処理を行っています(プログラム内蔵型コンピュータ)。パスカルの計算機にはこのような機能はありません。

 ところが1820年代に、現代のコンピュータとほとんど同じ原理で計算する機械を作ろうと考えた人がいました。それがチャールズ・パベッジ(Charles Babbage)です。機械方式でメモリとCPUを持ちプログラミング可能な計算機を作ろうとしたのです。メモリもCPUも歯車です。歯車式ですので10進数を使います。プログラムはパンチカードで入力します。バベッジの計算機はプリンタまで想定していたというから驚きです。ただし、余りにも壮大な計画で、結局その一部しか完成できませんでした。

 バベッジはファラデーと同い年です。従って、電気式の計算機も作ろうとすればできたのではないかと思えなくもないのですが(多分電磁石の原理を利用したリレー方式の計算機?)、バベッジは当時確立していた技術を使って歯車方式の計算機を考案しました。

※電磁石はイギリスの電気技師であるウィリアム・スタージャによって1825年に発明されました。
※バベッジがリレー式の計算機を考案したとしても、現在のコンピュータの分類からは、多分機械式に分類されると思います。リレーはコイルで発生させた磁石の力で、機械的なスイッチのON、OFFを実現しているからです。




2 チューリングマシン

 バベッジの約100年後に登場するのがアラン・チューリング(Alan Mathison Turing)です。アランチューリングはコンピュータの作り方は問題ではない、機械式であろうと、電子式であろうと、あるいは未来のマシンが今までと違う何かで構築されようが、これが計算機であるというべきエッセンスがあるはずだといいました。そして、彼は仮想的な計算機を示して、このように動けばそれが計算機だといったのです。

 そしてバベッジの計算機はチューリングの考える計算機の本質的な要素を全部満たしていました。従って、今日のコンピュータができることは全部バベッジのマシンで実現できるということになります。ただし、恐ろしく時間がかかることでしょう。

 チューリングの考案したのは仮想的な計算機で、チューリングマシンと呼ばれています。チューリングマシンは、「計算する」とはどういうことかを定義し、それを証明するための仮想機械です。チューリングマシンにデータを入力し、データの「出力が可能」ならば、そのデータは「計算が可能」であり、「出力が不可能」ならば「計算が不可能」だとしました。

 ある関数に関して計算をするアルゴリズムが存在すれば必ずチューリングマシンで計算できます。チューリングマシンで計算できないものはアルゴリズムが存在しないということになります。従って、チューリングマシンはある問題に解があるかどうかの判定機として使うことができます。

2.1 チューリングマシンの原理

 チューリングマシンは図のようにデータを記憶するメモリセルが連続したテープと、その上を移動するヘッドからなります。ヘッドは左右の2方向に移動します。1度に移動できるのは1メモリセルだけです。入出力ヘッドは真下の(実際はヘッダはメモリセルの上を移動しますが、図では説明の都合上矢印を利用しています)メモリセルの値を読んだり(read)、値を更新したり(write)することができます。メモリセルに許された値は「0」か「1」です(1ビット)。これに加えてチューリングマシンの内部状態(state)を保持する内部レジスタを1つもっています。


 チューリングマシンは5つのパラメータを持っています。それは、①現在の内部状態(S0、S1、S2、・・・)、②現在のメモリセルの値、③新しいメモリセルの値、④新しい内部状態、⑤ヘッドの移動(L、R)の5つです。①と②は命令が実行されるための条件で、③、④、⑤は条件を満たしたときに実行される内容となります。

 例えば、[0 1 0 1 R]は、①現在の内部状態(レジスタの内容)が「0」で、②メモリセルの状態が「1」なら、次の内容を実行します。③メモリセルに「0」を書き込んで、④内部状態(レジスタの内容)をS1に書き換えて、⑤右のセルに移動します。


 チューリングマシンの処理の手順を次に示します。

STEP  処理の内容
1 ヘッダの真下のメモリセルの値を読む
2 「①現在のstate」と「②メモリセルの値」に一致する命令かどうかを判断し、一致すれば、動作を続け、一致しなければ停止する
3 命令で指定された③を実施する(新しいメモリセルの値をヘッドの真下のメモリセルに書き込む)
4 命令で指定された④を実施する(stateを更新する)
5 命令で指定された⑤を実施する(ヘッドを移動する)
6 STEP 1に戻る。

2.2 チューリングマシンでプログラミング


 この状態で命令[0 0 1 0 R]と、[0 1 0 1 R]を適用してみましょう。

 内部状態(レジスタ値)が「0」で、メモリセルの内容が「0」なので、命令[0 0 1 0 R]が適用できます。命令を適用すると、メモリセルの内容を「1」に書き換え、内部状態(レジスタ値)を0にして、メモリセルを1つ右に移動します。命令を実行した結果は次の通りです。


 内部状態(レジスタ値)が「0」で、メモリセルの内容が「0」なので、上と同じ実行内容になります。


 今度も、内部状態(レジスタ値)が「0」で、メモリセルの内容が「0」なので、上と同様です。


 内部状態(レジスタの値)が「0」で、メモリセルの内容が「1」なので、条件が一致する命令は[0 1 0 1 R]です。これは、内部状態(レジスタ値)が「0」で、メモリセルの内容が「1」の時、メモリセルの内容を「0」にして、内部状態(レジスタの値)を「1」にして、メモリセルを右に1つ移動するというものですから、次のようになります。


 内部状態(レジスタ値)が「1」で、メモリセルの内容が「1」の場合は、この条件に一致する命令がありませんので、ここでチューリングマシンは停止します。

 このプログラムは、「00011100」に対して、左側のビットから処理を始めると、ビットが「0」の場合は、ビットを反転し、右のメモリセルに移動し、最初に出会った「1」のビットを反転し、更に右のセルに移動して停止するというものです。

 次に簡単な足し算をやってみたいと思います。

 チューリングマシンを使って、1+2=3の計算をします。整数NをN個の"1"の連続で表し、終わりに"0"を1個付けて表すことにします。ヘッドは加算対象(オペランド)の最初の"1"の位置にあります。現在の内部状態(レジスタ値)は「1」です。


 内部状態(レジスタ値)が「1」で、メモリセルの内容が「1」です。ここではメモリセルの内容を「1」にして、内部状態(レジスタ値)を「1」にして、ヘッドをメモリセル1個分右に移動します。従って、命令は[1 1 1 1 R]となります。命令を実行した結果は次の通りです。


 内部状態(レジスタ値)が「1」で、メモリセルの内容が「0」です。ここではメモリセルの内容を「1」にして、内部状態(レジスタ値)を「2」にして、ヘッドをメモリセル1個分右に移動します。従って、命令は[1 0 1 2 R]となります。命令を実行した結果は次の通りです。


 内部状態(レジスタ値)が「2」で、メモリセルの内容が「1」です。ここではメモリセルの内容を「1」にして、内部状態(レジスタ値)を「2」にして、ヘッドをメモリセル1個分右に移動します。従って、命令は[1 1 1 2 R]となります。命令を実行した結果は次の通りです。


 内部状態(レジスタ値)が「2」で、メモリセルの内容が「1」です。ここではメモリセルの内容を「1」にして、内部状態(レジスタ値)を「2」にして、ヘッドをメモリセル1個分右に移動します。従って、命令は[1 1 1 2 R]となります。命令を実行した結果は次の通りです。


 内部状態(レジスタ値)が「2」で、メモリセルの内容が「0」です。ここではメモリセルの内容を「0」にして、内部状態(レジスタ値)を「3」にして、ヘッドをメモリセル1個分左に移動します。従って、命令は[2 0 0 3 L]となります。命令を実行した結果は次の通りです。


 内部状態(レジスタ値)が「3」で、メモリセルの内容が「1」です。ここではメモリセルの内容を「0」にして、内部状態(レジスタ値)を「4」にして、ヘッドをメモリセル1個分左に移動します。従って、命令は[3 1 0 4 L]となります。命令を実行した結果は次の通りです。


 "1+2"の結果が出ましたので、ここで計算を停止します。

 チューリングマシンがどのように機能するかは、マシン本体が持っている機能表(状態関数)によって決まります。上の動作をするチューリングマシンの本体は次に示すような機能表(状態遷移テーブル)を持っているはずです。

状態/メモリセルの内容 1 0
S1 (1,1,R) (1,2,R)
S2 (1,2,R) (0,3,L)
S3 (0,4,L) 起こらない
S4 停止 起こらない

 状態遷移表の状態の列が命令の第1パラメータ、メモリセルの内容が第2パラメータ、状態の行と、メモリセルの列が交わったところの欄にある3文字のセットが、第3、第4、第5パラメータになります。

※加算の場合にはNをN+1個の"1"の連続で表すのが一般的です。こうすると、簡単に2進表現にも直すことができます。しかし、説明が煩雑になりますので、ここでは説明を簡単にするためにNをN個の"1"の連続で表すことにしました。

 チューリングマシンは効率は良くありませんが、計算が可能な問題は、状態遷移テーブルとテープの長さに制約がなければ、必ず(チューリングマシンで)解くことができると証明されています。これはチューリングマシンで解くことができない問題は、どんなコンピュータを作ったとしても解けないということです。

 チューリングマシンでできることと同等のことができることをチューリング完全といいます。現代の汎用コンピュータはチューリング完全ですが、黎明期のコンピュータや専用コンピュータにはそうでないものもあります。

2.3 万能チューリングマシン

 遷移規則をうまく構成すると、どのようなチューリングマシンでもそれを模倣することができます。つまり、1つのチューリングマシンで様々なチューリングマシンをシミュレートすることができます。このようなチューリングマシンを万能チューリングマシンといいます。これはプログラム(処理の手順)を入れ替えることで、様々な処理を行えるコンピュータの実現を示唆しています。


3 電子計算機の誕生

 「世界最初のコンピュータ」と呼ばれるものが「いくつか」あります。それは、コンピュータの定義の仕方次第で、世界最初のコンピュータが違ってきてしまうためです。

 世界最初のコンピュータと呼ばれるものとしては、ABCマシン(1942年)、Colossus(1943年)、ENIAC(1946年)、The Baby(1948年)、EDSAC(1949年)などがあります。これらの計算機の特徴をまとめると次のようになります。

名称 ABC Colossus ENIAC The Baby EDSAC
完成年 1942 1943 1946 1948 1949
演算素子 真空管 真空管 真空管 真空管 真空管
メモリ  - - - 蓄積記憶管 水銀遅延線
レジスタ コンデンサドラム 真空管 真空管 真空管 真空管
演算方式 2進数 2進数 10進数 2進数 2進数
プログラム - - ハードウェア メモリに内蔵 メモリに内蔵


3.1 ABC

 ABC(Atanasoff-Berry Computer)はアイオワ州立大学のアタナソフ(John Vincent Atanasoff)とベリー(Clifford Edward Berry)によって開発されました。演算素子には真空管を使っています。真空管によって電流の流れを制御して、電圧の高低によって1と0を表現して、演算を行います。真空管を組み合わせてAND回路やOR回路を作成し、これらの論理回路を組み合わせて、演算装置を構成しました。真空管という電子素子を使っていますので、世界最初の「電子式の」計算機です。ただし、ガウスの消去法を使って連立1次方程式の解を求めるためだけの専用の計算機です。現在のようなプログラムを書き換えることで何でも解けるという汎用コンピュータではありません。
 
 特徴は回転ドラム式の記憶装置です。円筒状のドラムにコンデンサを配置してあります。図ではコンデンサが1つしか描かれていませんが、実際は規則的に配置してあります。ドラムの表面から突起が出ていますが、これがコンデンサの端子です。

 ドラムの端子にブラシを接触させ、個々のコンデンサーをプラスあるいはマイナスに充電させることで書き込みを、電荷を読み取ることで読み込みを行います。また、コンデンサに充電された電荷は、短時間のうちに漏れてしまうため、コンデンサでは読み込みをする度に再充電を行います。


 回転ドラムの回転速度は、1秒間に1回転ですので、データの書き込み・読み込みまでに最大で1秒、平均で0.5秒かかります。演算回路は電子式で高速ですが、メモリアクセスが回転ドラムの速度によって制限されてしまうため、マシンの全体としてのデータ処理速度が遅くなってしまいます。メモリアクセスが機械式ですので、完全な電子計算機とは言いにくいというべきです。

3.2 Colossus 

 エーゲ海東南部に浮かぶロードス島にあったとされる巨像の名(Colossus of Rhodos、ロードス島の巨像)が与えられた計算機です。とてつもなく大きな計算機だったようです。第二次世界大戦中はドイツ軍の暗号メッセージを解読するために使われました。ドイツ軍はローレンツ(Lorenz)SZ40/42という機械を使って暗号を生成していましたが、コロッサスは、このローレンツ暗号機の鍵の組み合わせを探すのに使われました。

 プロトタイプのMark Ⅰには真空管1500本が使用され、改良版のMark Ⅱでは2400本の真空管が使われています。

 Colossusはプラグ盤とスイッチ群を操作して配線を変えることでプログラミングが可能でした。従って、ABCのように特定の決まったことしかできないという計算機ではありません。ただし、計数とブール演算という暗号解読に特化した設計でしたので、専用計算機といっていいでしょう。ただし、ABCのような半機械・半電子の装置ではなく、完全な電子式計算機としては世界で最初のものと言えます。

3.3 ENIAC

 ENIAC(Electronic Numerical Integrator And Calculator)は世界で最初の、「非特定用途向け」で、「プログラム可能」な、デジタル方式のコンピュータです。専門的には、チューリングマシンと同等の計算能力を持つと評価されています(チューリング完全)

 演算素子は真空管で17,468本使っていました。全長は30Mで、総重量30トン、消費電力140キロワットの巨大装置です。演算は2進数ではなく、10進数を使って行います。

 アメリカ陸軍の弾道研究室での砲撃射表の計算用に設計されました。プログラムを書き換えることで、様々な目的に使うことが可能でした。そういう意味で、最初の汎用コンピュータということができます。 ただし、プログラム可能といっても、ハードウェア(パッチパネル)を使って、配線の組み換えでプログラミングをする方式です。プログラムをメインメモリにおいて使用する所謂「プログラム内蔵型」がコンピュータだと考える立場からすると、まだ現在のタイプのコンピュータとは違うということになります。

 考案・設計者はペンシルバニア大学のジョン・モークリー(John William Mauchly)とジョン・エッカート(John Presper Eckert)です。

3.4 EDVAC

 EDVAC(Electronic Discrete Variable Automatic Computer)は世界で最初のプログラム内蔵型のコンピュータとなるべく開発がすすめられました。ENIACの開発者であるジョン・モークリーとジョン・エッカートはENIACの設計上の問題点に気づき、ENIACが完成する前から、EDVACの設計に取り掛かりました。

 EDVACは二進数を使用し(32ビット)、加算、減算、乗算、除算等が可能です。メモリには水銀遅延管(線)64本が使用されました。

 プログラム内蔵方式はジョン・モークリーとジョン・エッカートのアイデアです。しかし、これは軍の機密情報なので公表を控えていました。ところが、途中から開発チームに世界的数学者であるフォン・ノイマンが加わりました。一流の数学者の名前を利用してEDVACの名声を高めようというペンシルバニア大の思惑があったようですが、フォン・ノイマンはプログラム内蔵方式を数学的な表現に直して、プロジェクトメンバーの了解なしに、自分の名前で論文に書いて公表してしまいました。これに激怒したモークリーとエッカートは他の開発メンバーと共に開発チームを離れてしまい、結果としてEDVACは世界で最初の「プログラム内蔵方式のコンピュータ」という栄誉を逃してしまうことになります。

※プログラム内蔵型のコンピュータはCPUとメインメモリを備えています。データとプログラムはメインメモリ上に保持され、CPUはメモリ上のプログラムを読みつつ、メモリ上のデータを処理します。プログラムやデータが大きくなると、ハードディスク等の記憶装置を必要とします。プログラムやデータはハードディスクに格納され、処理に必要な部分だけがメインメモリ上に移されます。CPUはメインメモリ上のプログラムを読みつつ、メモリ上のデータを処理することになります。

3.5 The Baby

 The Baby(Babyは、正式名はSmall-Scale Experimental Machine、小規模実験機)は英国マンチェスタ大学のウィリアムス(F.C.Williams)とキルバーン(T.Kilburn)によって開発されました。プログラム内蔵型のコンピュータとしては世界で最初のものとなります。大学の実験室で作られた試作機といったところでしょうか。The Babyはコンピュータアーキテクチャの試作というよりメモリのアイデアの動作を確認するためのものです。メモリにはウィリアムスが考案した「ウィリアムス管」(蓄積記憶管)が使われていましたが、容量が小さすぎて実用には向かなかったようです。

 ウィリアム管(蓄積記憶装置)はCRT(Cathode Ray Tube、昔のテレビやパソコンのブラウン管を思い出してください)をメモリとして利用しようとするものです。データはCRTの蛍光面上に残留する電荷として記憶されます。電荷はしばらく蛍光面上に残るので、それを読み出します。しかし、電荷は直ぐに消えてしまいますので、読みだしたら再度書き込みをしなくてはなりません。これを繰り返すことで記憶装置としての役割を果たすことができます。

3.6 EDSAC

 EDSAC(Electronic Delay Storage Automatic Calculator)は、世界で最初の実用的なレベルのプログラム内蔵型のコンピュータです。ノイマンのEDVACに関するレポートに刺激を受けて、モーリス・ウィルクスとケンブリッジ大学数学研究所のチームが開発したものです。

 メモリは"Electronic Delay Storage Automatic Calculator"の"Delay Storage"です。"Delay Storage"は遅延管、とか水銀遅延管などと呼ばれます(遅延線、水銀遅延線などと呼ばれることもあります)。パイプの中に水銀を満たし、片側からデータを超音波のパルスに変換して発信すると、超音波は水銀中を伝わって反対側に到達します。これを電気信号に変えて、元に戻すと水銀の中を循環する超音波パルスとしてデータを記憶することができます。これを水銀遅延線メモリといいます。

 水銀遅延線の概略図は次の通りです。


 EDSACのメモリは1本の水銀管に1語(ワード(ショートワード))17ビットのデータが32ワード記憶できました。この水銀管が16本装着されていましたので、記憶容量は17×32×16=8,704ビット、約8.5kビットになります。バイトに直すと、大体1kバイトとなります。

 もしこれを真空管で作るとすると、1ビット当たり2本の真空管が必要となりますので、1kバイト(1,024×8=8,192ビット)だと、8,192×2=16,384本の真空管が必要となります。

 EDSACはプログラムをデータと共に書き換えることができ、柔軟なプログラミングが可能でした。18個の命令語を持ち、プログラムはその18個の命令を英字1文字で示し(例えば"Add"は"A")、命令には演算対象番地とそのアドレスサイズを指定しました。

※コードの例) (1文字の命令コード) (10ビットのメモリアドレス) (1ビットのオペランド)・・・最後の1ビットのオペランドでショートワードかロングワードかを指定します。

 CPUとレジスタに該当するものは真空管で作られていました。EDSACに使われた真空管の数は全部で3,000本です。

 EDSACには水銀遅延線を使ったメインメモリ(RAM)の他に、ROMに該当する31ワードの「イニシャルオーダー」と呼ばれたメモリを備えていました。EDSACのプログラムは文字コードで書かれ、それを2進数に変換してイニシャルオーダーに記録します。今日のアセンブラのようなものです。イニシャルオーダーからメインメモリに読み込まれて、CPUが処理するという形になります。

3.7 UNIVAC-Ⅰ

 世界最初の商用コンピュータです。1950年に完成し、1951年からレミントンランド社(Unisys社)から発売されています。1号機は国政調査局に納入されています。当時はコンピュータといえばUNIVACといわれるほどに普及しました。

 開発者はENIACやEDVACの開発で主導的な役割を果たしたモークリーとエッカートです。彼らは自分たちの会社を作り、コンピュータの製造に乗り出しましたが、途中で資金難に陥り、1950年に会社はレミントンランド社に買収されています。

※モークリーとエッカートは資金難に陥った際に最初に、IBMに資金援助を頼んでいるのですが、IBMは断ってしまったようです。しかし、IBMはコンピュータの将来性を理解し、2年後にはコンピュータの開発に乗り出しています。

3.8 第2世代以降

 真空管を演算素子として使ったコンピュータを第1世代とするとABC、Colossus、ENIAC、EDVAC、The Baby、EDSAC、UNIVAC-Ⅰなどが第1世代のコンピュータに該当します。日本では富士写真フィルムがレンズの設計計算用に開発した日本で最初の電子計算機なども第1世代に属します。その後、半導体が登場して、コンピュータ開発は次のステージに移っていきます。

3.8.1 第2世代コンピュータ

 1949年にAT&Tの研究員だったウィリアム・ショックレー(とジョン・バーディーン、ウォルター・ブラッテン)が接合型トランジスタ(バイポーラー・トランジスタ)を発明しました。

※一般にトランジスタと言えば接合型のトランジスタを指します。接合型は半導体をpn接合したトランジスタで、pn接合の仕方で、pnp型、npn型があります。p型半導体は、電荷を運ぶキャリアとして正孔(ホール)が使われます。正孔とは電子が抜けた状態ですので、正孔の動きはあたかも「+」を持った電子のように振舞います。これに対して、n型半導体は、電子を導体として利用するものです。このn型とp型を接合させることにより、電界の向きによって、電気が流れたり流れなかったりする「整流作用」が現れます。

 最初にトランジスタを発明したのはジョン・バーディーンとウォルタ・ブラッテンです。彼らが発明したのは点接触型のトランジスタと呼ばれるもので、高純度のGe(ゲルマニウム)単結晶の表面に2本の針金状の金線を近づけて、片方に電流を流すと、もう一方に大きな電流が流れ、信号が100倍にもなるという現象が出現します。

 しかし、点接触型のトランジスタは真空管に比較すると非常に信頼性が低く、利点といえば消費電力が低いという点だけでした。従って、点接触型の半導体でコンピュータを作ろうという動きは出てきませんでした。

 点接触型の欠点を見抜いていたのがAT&Tの同僚のショックレーです。彼は点接触のトランジスタが発明されてからわずか5週間後(1948年1月)に、接合型のトランジスタを発明します。接合型は点接触型に比べて動作が安定して信頼性も高く、構造的にも量産可能なものでした。その後、1949年の4月にサンドイッチ型のトランジスタを発明します。これが、いわゆるバイポーラ型のトランジスタです。

※3人は1956年にノーベル物理学賞を受賞しました。

 シリコンの接合型トランジスタが登場すると、これを利用したコンピュータが次々に開発されます。接合型トランジスタは信頼性が高く、消費電力が少なく、結果として発熱量も少なく、長寿命です。トランジスタ式のコンピュータでは、より小さな空間に数多くの論理回路を詰め込むことができるようになりました。そして、コンピュータは小型化、低価格化が進んでいきます。

 第2世代コンピュータとしてはIBMの1400シリーズなどが有名です。IBM 1401は全世界のコンピュータ市場の3分の1を占めたほど高い人気を誇りました。

3.8.2 第3世代コンピュータとその後

 第3世代コンピュータは集積回路を使ったコンピュータとして分類されます。1960年代になるとジャック・キルギーとロバート・ノイスがそれぞれ独自に集積回路を発明します。

※ロバート・ノイス(Robert Norton Noyce)はIntelの共同創業者の一人で、the Mayer of Silicon Valley(シリコンバレーの主)とあだ名された人物です。

 集積回路(Integrated circuit、IC)とは特定の複雑な機能を果たすために、多数の素子を1つにまとめた電子部品です。主に、半導体で構成された電子回路が小型の小さなパッケージに封入されています。

※この当時も半導体の中に抵抗を作ることや、コンデンサを作るということは行われていました。ジャック・キルバーの発想は、抵抗やコンデンサをゲルマニウム半導体の中に作ることができるなら、トランジスタやコンデンサ、ダイオード、抵抗などを含む回路全体をゲルマニウム半導体の中に一緒に作り込んでしまおうというものです。これを集積回路といいます。

※演算装置、命令や情報を格納するレジスタ、周辺回路などが1つのパッケージに封入されます。集積回路に、このような電子回路を封入したものをマイクロプロセッサなどと呼びます。メーカによってはMPU(Micro-Processing Unit)などと呼ぶこともあります。プロセッサーは処理装置の総称で、システムの中心的な処理を担うプロセッサーは特にCPUなどと呼ばれます。その他のCPUを補助するプロセッサーとしては、浮動小数点演算装置、グラフィックスプロセッシングユニット(画像処理)、などがあります。

※この時代のコンピュータは、現代では「メインフレーム」とか「大型汎用機」などと呼ばれるタイプの大型コンピュータで、大企業や政府機関、大学、研究所などが全社規模で導入していました。大きさはビルの1つのフロアを占拠するほどの大掛かりなものでした。集積回路の密度が高くなると、コンピュータは次第に小型化され、ミニコン(ミニコンピュータ、mini computer)と呼ばれるタイプが市場に導入されるようになってきます。

※ミニコンは科学技術部門が使う計算用のコンピュータが主でしたが、中小企業などで事務処理用に用いられるコンピュータも市場に出てくるようになります。これらは、ミニコンと区別するという意味でオフコン(オフィスコンピュータ、Office Computer)などの名称で呼ばれています。

 この後は集積回路がさらに高密度になり(LSI=Large Scale Integration)、さらに超高密度になっていきます(超LSI=Very Large Scale Integration)。

 VLSIが一般化すると更にコンピュータは小型化されパーソナルコンピュータ(いわゆるパソコン)やワークステーション(パソコンよりも少し高機能)などと呼ばれるタイプが市場に投入されるようになってきます。企業などの現場では、各社員の机の上にパソコンが並ぶようになってきます。

 更に2000年代になると、1つのプロセッサーパッケージの中に、複数のプロセッサ・コアを搭載する技術も登場します(マルチコア)。マルチコアは外見的には1つのプロセッサでありながら、論理的には複数のプロセッサーとして認識されます。


4 パーソナルコンピュータの歴史

 集積回路が発明されると、コンピュータは小型化され、やがて個人の机の上に置いて使えるほどの小型コンピュータが登場します。これがいわゆるパソコン(パーソナルコンピュータ、personal computer)です。パソコンはアメリカで生まれます。日本へはそれがそのまま輸入品として入ってきます。日本で開発されたものも当然、その互換機です。しかし、発展途上のパソコンの言語処理能力は弱く、日本語処理ができません。そこで、日本語処理の独自のメカニズムを開発し、次第に独自のアーキテクチャを生み出すメーカが現れてきます。

4.1 1970年代後半:パソコンキットからCP/Mパソコンまで

 何をもって最初のパソコンというかについては諸説があって、一概には言えませんが、米MITS社のAltair 8800(1975年)を上げる人が多いようです。これは「Popular Electronic」という雑誌の表紙を飾り、「最初のパソコン」と紹介されたことが大きいようです。1974年にマイクロプロセッサの8080が発売されますが、Altairはこのマイクロプロセッサを採用しています。基本的にはパソコンというよりも、ミニコンを小型にしたようなものです。これが、出来上がりの状態ではなくキットとして販売されます(組み立て済みのものも販売されています)。組み立てると箱型の筐体にCPUやメモリが収納された形となります。ただし、組み立てても、このキットだけでは、パネルのスイッチにより直接メモリを操作できるだけです。キットにはディスプレイも、キーボードも、ハードディスク等の2次記憶装置もついていません。当時入手可能な入出力装置としてはテレタイプが一般的でした。テレタイプは、利用者が入力した文字を別の機器に送信したり、別の機器から受信した(文字)情報を利用者の提示する機能を持った端末です。最初は、タイプライタで打鍵した文字を通信回線を介して別の機械に送信したり、受信側で印字する装置として利用されました。コンピュータが発明されると、コンピュータ本体への文字データの入力や、出力データの受け取りを行う端末として利用されました。今日のキーボードとプリンタを一緒にしたような機器です。後にブラウン管を利用したディスプレイが出力装置として利用されるようになります。このテレタイプとAltairの接続もユーザが自分でやらなくてはなりません。このように面倒なものですが、マニアの間で大評判になり、爆発的なヒット商品となりました。

■Altairの仕様
CPU:i8080 ; 4ビット、2MHz
メモリ:256バイト
拡張バス:S-100と呼ばれるバス(100ピン構成)
周辺機器:なし(利用者がテレタイプなどを、自ら工夫して接続)
ソフトウェア:機械語(後にビルゲイツがBasicを移植)

 Altair8800の成功で、国内でも多くのパソコンキットが発売されました。1976年にNECが発売したTK-80は、NECが開発したi8080互換のCPU μPD8080のトレーニングを目的としたマイコンキットです。入力キーパッドと8桁のLEDを基板上に備えていて、端末装置なしでシステムを使うことができました。シャープ(Z80)や富士通(MC6800互換)などからも、パソコンキットが発売されています。

 1977年になると、入出力装置や記憶装置が付いたオールインワンのパソコンが出てきました。代表的なものがコモドールのPET 2001、アップルのAppleⅡ、精工舎(現セイコー株式会社)のSEIKO-5700、ソード(後に東芝が買収)M 200などです。

 中でも世界的に大ヒットしたのがアップル社のAppleⅡです。AppleⅡはマニアではなく、一般人を対象とした「ホームコンピュータ」という宣伝文句で発売されました。1979年には世界初の表計算ソフトのVisiCalcが搭載され、更に人気に拍車がかかりました。

■AppleⅡの仕様
CPU:MOS6502(8bits)、1MHz
メモリ:8KB
フロッピーディスクドライブ
本体はキーボードと一体化
家庭用テレビ接続が標準装備
BASIC(整数型のみ)
ゲームソフト多数(ブロック崩し)

 1978年から1979年にかけて国内各社(日立、キャノン、シャープ、松下、NEC)が相次いで8ビットパソコンを発表しました。CPUは各社がi8080、MC8600、Z80互換のCPUを独自に開発して搭載していました。外部記憶装置はカセットテープとフロッピーディスクが一般的でした。OSはCP/Mを参考にして自社独自に開発したOSです。漢字の利用に関しては、各社が独自の方式を考案していました。

4.2 1980年代前半:MS-DOSパソコンの登場

 1980年代の前半は8ビットパソコンが高機能化し、併せて新しく16ビットパソコンが登場します。8ビットパソコンとしてはNECのPC-8800シリーズの最初のPC-8801が代表的です。16ビットパソコンとしてはIBMのIBM-PCが代表的です。

■PC-DOS(MS-DOS)
 IBMは全ての分野で自社独自の技術を使う傾向にありましたが、パソコン分野はやや出遅れており、他社の協力を得ることが重要だと考えたようです。当時パソコンのOSとしてはCP/Mが大きなシェアを持っており、IBMとしてもCP/Mを採用しようとしたようですが、ある偶然によりマイクロソフトの新しいOSであるPC-DOS(MS-DOS)を採用することとなりました。
 8ビットパソコンは大部分がCP/MをベースとしたOSを採用しており、16ビット対応もCP/M-86で済んでいましたので、資産の連続性から言えばCP/Mを採用した方が都合がいいはずです。富士通と三菱は16ビットでもCP/Mを採用したのですが、全体としてMS-DOSが優勢になり、後に両社ともMS-DOSを採用することになります。

4.3 1980年代後半:AT互換機の普及

 1984年にIBMはIBM-PCの拡張版であるIBM-PC/ATを発表しました。IBMは周辺機器の普及のため、ハードウェアの仕様を公開しました。これにより多くのメーカが合法的にIBM-PC/ATと同じ動作をするパソコンを開発することができるようになりました。このようなパソコンをAT互換機といいます。

 我が国においては漢字の処理が大切で各社独自の方式を持っていたため、いきなりAT互換機を作ったという例はないようです。バージョンアップの度に徐々にAT互換機の機能を取り入れていったようです。

 1986年には32ビットCPUを採用したコンパックの32ビットパソコンDeskpro 386が登場します。国内でもNECや富士通がCPUにi80386を採用した32ビットパソコンを発売しています。32ビットパソコンは高い性能を持ち、グラフィック機能も強化されています。業務用としては、CADなどの技術分野で、家庭用としてはマルチメディアパソコンとして使われるようになります。

4.4 1990年代前半:32ビットWindowsパソコンの登場

 MS-DOSは基本的に文字をパソコンに入力するCUI(Character-based User Interface)でしたが、アップルは既に1983年に発表したLisa OSで初歩的なGUI(Graphical User Interface)を実現していました。これに対抗して、1985年にマイクロソフトでもGUIを実現します。しかし、これは非常に使い勝手が悪くユーザの信頼を得ることができませんでした。マイクロソフトがアップルに対抗できるようなGUIを提供できたのは、1992年のWindows3.1になってからです。

 1990年代前半の大きな話題はDOS/V機の登場です。日本のメーカは従来独自に漢字処理を行い、この優劣が差別化の要素となっていました。多くの場合RAMにソフトウェアを組み込んで(ファームウェア)で独自処理していたため、ある機種で作成した日本語ファイルが他のメーカーの機種では表示することができなかったりということがありました。しかし、日本IBMはDOS/Vを開発し、日本語の処理をOSでできるようにしてしまいました。このDOS/Vを搭載したPC/ATあるいはAT互換機は、日本ではDOS/V機(ただし、日本でのみの呼び方)と呼ばれています。

 IBMがハードウェアの仕様をオープンにして以来、海外ではAT互換機同士の熾烈は競争が繰り広げられました。しかし、日本にはその競争は及びませんでした。日本語処理が壁になり、海外メーカは日本の市場に割って入ることができなかったのです。しかし、DOS/Vを互換機に導入するというアイデアは、日本のパソコン市場を海外メーカーに開放することになり、日本のメーカは低価格競争にさらされることになりました。

※1992年、コンパック(compaq;後にHPが買収)が思い切った低価格競争を仕掛けてきて、いやおうなしに日本のメーカもその安値競争に追従せざるを得なくなります。当時、日本のパソコンは25~50万円程度の価格帯のものが多かったのですが、コンパックは13~20万円の価格帯のパソコンを市場に投入してきて、日本のメーカをパニックに陥れます。

 1990年代になるとノート型のパソコンが次々の登場します。ノートパソコンを世界に先駆けて開発したのは日本の東芝で、1984年のことです(Dynabook J-3100SS)。その後、直ぐにNECが追随しますが、1990年代に入ると、IBMとアップルが市場に参入してきて、1995年頃には現在の標準的なノートパソコンの原型が完成します。

4.5 1990年代後半:Windows 95対応

 1990年代の後半に入るとインターネットが爆発的に普及し、インターネット利用を前提としたパソコンがユーザに選択されることになります。

 1995年にマイクロソフトはWindows95を発売します。Windows 95はi80386の機能をフル活用した完全な32ビットOSで、ネットワーク機能(TCP/IP)も標準で搭載されるようになります。GUIが大改良され、WebブラウザのIE(Internet Explorer)が標準搭載されました。ファイル名は従来の8バイトから、255バイトのファイル名まで可能となっています。このため、Windows95を搭載するパソコンは従来のものに比較して、高機能であることが要求されることになります。

 Windows 95対応の推奨仕様は次の通りです。
・CPU:i486S以上(Pentium)
・メモリ:12MB以上
・ハードディスク:75MB以上の空き容量
・ディスプレイ:640×480以上
・光学ドライブ:CD-ROMあるいはFDDドライブ

 当時のパソコンの標準的な仕様からすると、かなりの高機能です。従来の標準的なパソコンでは、イライラなしにWindows 95を動かすことはできません。そこで、マイクロソフトはWindows 95を円滑に動作させるパソコンをメーカ各社に作成させました。ユーザは手持ちのパソコンではWindows 95が使えないと知ると、こぞってパソコン買い替えに走りました。メーカ各社はマイクロソフトの指示で予めWindows 95対応機を準備していましたので、空前のパソコン買い替え需要が発生することになります。そして、Windows 95も空前の売り上げを記録します。普段、ソフトウエアを扱わない書店などでもWindows 95が販売されていたほどです。

4.6 2000年代以降:ノートパソコンが主流に

 2000年代になるとノートパソコンが主流になります。また、CPUは64ビットのものが増えてきて、OSも32ビット対応のものと、64ビット対応のものが用意され、ユーザがどちらかを選択できるようになります。







更新記録

2016/10/28          作成






















































 ページの先頭