2012.5.19-20 放送大学・青森 資料1

コンピュータとその仕組み

小山智史(弘前大学教育学部)

1. 計算機の今昔: 算盤・計算尺・機械式計算機・電卓

 かつて(1970年代前半まで)、私達が普段行う「計算」には、算盤計算尺が使われました。算盤は金銭の正確な計算に、また、計算尺(精度は3桁程度)は科学計算に、広く活用されました。

 算盤の代わりに機械式計算機も使われました。オドネルの計算機(1874年)を原形とする「タイガー計算機」(1923年)は、国内における機械式計算機の代名詞にもなり、低価格の電卓が現れる1970年頃まで使われました[6]。各桁の置数レバーでセットした数だけドラムからピンが出て、これが歯車となり(出入り歯車)、ハンドルを回転させることにより右ダイヤルの対応桁を回転させます。つまり右ダイヤルの値に置数の値が足し込まれます。繰り上げ時には繰り上げピンが出て、上位桁に足し込まれます。

 
(a) 計算尺 (b) 計算尺の仕組み(「2 × 4」の例)

(c) 機械式計算機(日本計算器 HL21) (d) 電卓の操作・演算・表示
図1 計算尺と機械式計算機と電卓

 1964年にトランジスタ式の電卓(50万円)が登場し、その後の電卓の価格競争の中で、1971年にマイクロコンピュータ 4004 が誕生しました。それまでのように電卓専用のICを新たに設計しなくても、プログラムを入れ替えるだけで新しい電卓を開発できるようになったのです。機械式計算機を製造販売していた日本計算器(株)が電卓に参入し、社名をビジコン(株)に改め、電卓に使うために米INTEL社と共同開発したのが4004です。

 電卓の中のデータは2進数で表現されています。2進1桁は「低い電圧」の時「0」、「高い電圧」の時「1」というように、「0」か「1」のいずれかを表します。この「2進1桁」をビットという単位で表します。

 2ビットつまり2進2桁では、00, 01, 10, 11の4通りのうちのいずれかを表わすことができます。8ビットでは00000000〜11111111(10進で0〜255)の数を表すことができます。

(練習)
 計算尺を用いて次の計算をしなさい。

(練習)
 機械式計算機を用いて次の計算をしなさい。


2. 電子計算機(コンピュータ)の誕生

 世界初の電子計算機(コンピュータ) ENIACは、1946年に、アメリカ陸軍の依頼で、弾丸の落下位置を、爆薬の量、砲の特性、信管の特性、大気の影響などを考慮しながら「大量に計算」するために開発されました。プログラムは、主記憶装置に置くタイプではなく、結線によるものでした。また、18800本の真空管を使っていて、しばしば故障したと言われています。

 1947年、ノイマンが次章で説明する「プログラム内蔵方式」を提案し、その後のコンピュータはこのタイプとなりました。同じ1947年にトランジスタが発明され、1958年にはIC(集積回路)が発明され、1964年にIBMはこれらの技術を結集したコンピュータ System/360 を発売しました。その後の System/370 を含め、国内でも富士通・日立により互換機が製造されるなど、コンピュータの一時代を築きました。

 これらのコンピュータは、以下の写真にあるように、1フロアあるいは1部屋を占有する大規模のものでした。


ENIAC
出典: http://www.computersciencelab.com/
IBM System/360
出典: http://www-03.ibm.com/ibm/history/
図2 初期のコンピュータ

 IBM System/360 System/370に代表されるコンピュータは、大型コンピュータまたは汎用コンピュータと呼ばれました。当初は、コンピュータを直接利用者が操作することはできず、利用者は計算機室や情報処理センターにプログラムを持参し、半日後あるいは1日後に処理結果をプリンタの印刷物として受け取りました。コンピュータへの指示やプログラムやデータの「1行分」が、パンチカード(マークシート専用用紙と同じサイズのカードに専用の機械で穴を開ける)1枚で表わされました。何かの計算をさせようとすると、プログラムやデータは相当枚数のカードになり、専用のジュラルミンケースに入れて持ち歩きました。

 利用者がコンピュータを「直接」操作できるようになったのは、1970年代になってTSS(タイムシェアリングシステム)と呼ばれる技術が普及してからのことで、これは複数の利用者が時分割でコンピュータを占有する方法です。また、同じく1970年代にIBMがフロッピーディスク(8インチ 256KB)を開発し、プログラムやデータの持ち運びが格段に便利になりました。



3. コンピュータの構成

 図3は、1947年にノイマンが考案した「プログラム内蔵方式」コンピュータの構成で、通常用いられるコンピュータはこの構成になっています。

 主記憶装置には、コンピュータが行うべき仕事の手順がプログラム(コンピュータに対する命令の並び)として格納されています。

 CPU(中央制御装置)は、いわば司令塔で、主記憶装置の中のプログラムを「ひとつずつ順に取り出し」ては、その「内容を解読」し、その指示どおりに実行、すなわち演算を行ったり、入力装置からデータを入力したり、出力装置にデータを出力したりします。これがコンピュータの仕組みです。

 繰り返しますが、CPUは、主記憶装置に格納された命令をひとつずつ順に取り出しては、その内容を解読し、その指示どおりに実行(つまり演算を行ったり、入力装置からデータを入力したり、出力装置にデータを出力したり)します。


図3 コンピュータの構成

 バスは、そこに接続された装置間でデータを送受信する際に共用する信号線で、いわば道路の役割をします。ある時は主記憶装置からCPUに信号を伝えるための「専用道路」となり、ある時はCPUから出力装置に信号を伝えるための「専用道路」となるというように、時分割で道路(信号線)を占有します。次節で例示する8ビットマイコンのデータバスは、8本の信号線が装置間を結んでいて、パラレルバスとなっています。

 一方、シリアルバスは、8個のデータを1本の信号線を使って1ビットずつ順に送受信する方法で、パソコンの USB などがその例です。

 コンピュータの中のデータ、あるいはバスの信号線は2進数で表現されています。ある1本の信号線は、「低い電圧」の時「0」、「高い電圧」の時「1」というように、「0」か「1」のいずれかを表します。この「2進1桁」をビットという単位で表します。

 2ビットつまり2進2桁では、00, 01, 10, 11の4通りのうちのいずれかを表わすことができます。4ビットでは0000〜1111の16通り、8ビットでは00000000〜11111111の256通りのうちのいずれかを表すことができます。8ビットのメモリ(記憶装置)はこの256個のいずれかの値を記憶できます。

 8ビット(2進8桁)をバイトという単位で表し、処理や記憶や通信は多くの場合、バイト単位で行われます。



4. ミニコンタイプのコンピュータ

 1970年頃、主に科学計算や制御の用途でミニコンピュータ(ミニコン)が活躍しました。代表例がDEC社のPDP-11(1970)、国内ではHITAC 10(日立)、OKITAC(沖)などです。それまでのコンピュータが、一部屋を占有する規模のものであったのに対し、1本のラックに収まる程度の「ミニサイズ」でした。また、実時間のデータ処理や入出力の拡張に特徴を有するミニコンは、大型計算機が苦手とする科学計算や制御の分野で活用されました。
 電卓用として開発されたマイクロコンピュータ4004が誕生して3年後の1974年には、8ビットマイクロコンピュータ8080が開発され、広く使われました($350)。
 下図右の写真は、米MITS社のALTAIR 8800(1974年)というミニコンタイプの8ビットマイコンです。個人で購入できる規模の初めてのコンピュータでもありました。装置内部は、底面の基板にコネクタが並んでいて、それらがバスで接続されていて、コネクタにはメモリボード、CPUボード、入出力ボードなどを挿すようになっています。モニタプログラムにより、パネルのスイッチ操作で、番地を指定して機械語を入力したり、指定した番地からプログラムをスタートさせたりできます。
 図中のROM(Read Only Memory)は読み出し専用メモリで予め機械語が書き込まれていて、その内容を変更することはできません。これに対し、RAM(Random Access Memory)は読み書き可能ですが、その内容は電源を切ると消えてしまいます。


ALTAIR 8800
出典: http://www.oac.cdlib.org/ark:/13030/kt638nc7xf/
図4 ミニコンタイプのコンピュータ

5. ワンボードマイコン(トレーニングキット)

 1976年にNECからワンボードマイコン TK-80(88500円)が発売されました。上の ALTAIR 8800 とほぼ同程度の性能です。モニタプログラムにより、ボード上のテンキーの操作で、番地を指定して機械語を入力したり、指定した番地からプログラムをスタートさせたりできます。


  NEC TK-80
出典: http://www4.airnet.ne.jp/mit/Musium/NEC/TK-80.html
図5 ワンボードマイコン


6. パソコン

 1979年にNECが発売したパソコン PC-8001(168000円)は、本体がキーボードと一体になっていて、ディスプレイ(またはテレビ)を接続して使います。主記憶装置(ROM)にBASICインタープリタが入っていて、ユーザがキーボードからBASIC言語のプログラムを入力すると、それを「解釈」しながら実行してくれます。そのままでは「BASIC専用機」でしたが、メモリとフロッピーディスク装置(310000円)を増設すれば、CP/MというOS(基本ソフト)を利用することもでき、利用の幅が大きく拡がりました。


  NEC PC-8001
出典: NEC PC8001 カタログ
図6 パソコン

(練習)
 PC-8001に次のプログラムを入力し、実行してみなさい(1から10までの和の計算)。また、プログラムを変更し、1から100または1から1000までの和の計算をしてみなさい。
    10 S = 0 20 FOR I = 1 TO 10 30 S = S + I 40 NEXT I 50 PRINT S


7. OS搭載パソコン

 CP/M, MS-DOS, Windows, MacOS, UNIX, Linux などのOSを搭載したパソコンは、OS上で、ワープロソフト、表計算ソフト、その他さまざまなアプリケーションソフトが利用でき、パソコンをさまざまな目的で利用することができます。また、アプリケーションソフトに共通して必要となる入出力やファイル管理の機能がOSに用意され、アプリケーションソフトの開発が容易になっています。

 初期のパソコンではレジスタや演算の処理単位は8ビットでしたが、現在のパソコンでは32ビットや64ビットになっています。また、クロックも高速になり(例えば4MHz→2GHz)、処理能力は大きく向上しています。


図7 Windowsパソコン


8. ワンチップマイコン

 現在は、初期のワンボードマイコンと同程度のことがワンチップマイコン(IC 1個)でできるようになりました。下図右はATMEL社のATtiny2313(100円)です。

 このようなワンチップマイコンは、家電製品などに組み込まれ、私達は通常「コンピュータ」を意識することはありません。


 ATtiny2313
図8 ワンチップマイコン

 ATtiny2313では、レジスタの加算命令は1クロックサイクルで実行されます。CPUが1MHzのクロックで動作していた場合、1クロックサイクルは1μsですから、1μsでこの命令が実行されることになります。コンピュータの性能を表す指標のひとつにMIPS(Mega Instruction Per Second)があります。1秒間に何百万回命令を実行できるかという単位です。このワンチップマイコンの性能は「1MIPS」ということになります。

 参考まで、下に、次章の表3(8080のプログラム)に相当するATtiny2313のプログラムを示します。レジスタの構成が異なっていること、機械語が2バイトで表されること、アセンブリ言語の仕様が異なっていることなどをがわかります。

(参考) 表3に相当するATtiny2313のプログラム
アドレス機械語アセンブリ言語説明
0000E20BLDI R16,43R16レジスタに43を格納せよ
0001E111LDI R17,17R17レジスタに17を格納せよ
00020F01ADD R16,R17R16レジスタの値とR17レジスタの値を加算し、結果をR16レジスタに格納せよ


9. コンピュータの動作

9.1 フェッチ実行サイクル

 図9で、コンピュータの動作の仕組みを具体的に見てみましょう。この図は、1974年にインテルが開発した 8080 という8ビット マイクロコンピュータ(マイコン)を例にしています。


図9 コンピュータの動作

 今、主記憶装置の4番地に「10000000」という機械語命令が格納されていたとします。また、プログラムカウンタが「00000100」(4番地)になっていて、Aレジスタには「00101011」(10進で43)が、Bレジスタには「00010001」(10進で17)が入っていたとします。この時、コンピュータは次のように動作します。

このように、コンピュータがプログラムを実行する仕組みは、

フェッチ(fetch)
デコード(decode)
実行(execute)

の繰返しで、フェッチ実行サイクル(fetch-execute cycle)と呼ばれます。プログラムカウンタの値が1ずつ加算されるので、メモリに格納されたプログラムは順に実行されます。

 なお、8080では、レジスタの加算命令は4クロックサイクルで実行されます。CPUが2MHzのクロックで動作していた場合、1クロックサイクルは0.5μsですから、2μsでこの命令が実行されることになります。命令によってクロックサイクルは異なります。

 このコンピュータはレジスタや演算の処理単位は8ビットで、「8ビットコンピュータ」と呼ばれます。この処理単位を「ワード」といいます。今日のパソコンは「32ビットコンピュータ」や「64ビットコンピュータ」です。

9.2 機械語プログラミング

 上記の例で、4番地に加算命令の機械語「10000000」が格納されています。この命令を実行し終えると、次は5番地の命令が実行されます。コンピュータの動作に必要なものはこのような機械語の並びです。どのような機械語の並びにするかは、人(プログラマ)がコンピュータにさせたい仕事の手順を考えて決めるわけで、これがプログラミングに他なりません。

 ここで、「AとBの加算は10000000」というように機械語を人が覚えるのは大変ですから、アセンブリ言語が登場します。上の例では、「10000000」を「ADD B」と表すのです。こうすることにより、命令の意味をおさえながらプログラムを考えることができるようになります。

 今、

という仕事を順にさせるプログラムを作りたいとします。これをアセンブリ言語の命令語で書くと表1のようになります。「MVI」は ``MoVe Imediate''、「ADD」は``ADD''というように、私達が覚えやすいようになっていて、これをニーモニックコードといいます。プログラム(=仕事の流れ)を組み立てる時は、このようにアセンブリ言語で考えます。

表1 アセンブリ言語のプログラム
アセンブリ言語説明
MVI A,43Aレジスタに「00101011」(43)を格納せよ
MVI B,17Bレジスタに「00010001」(17)を格納せよ
ADD BAレジスタの値とBレジスタの値を加算し、結果をAレジスタに格納せよ

 一方、コンピュータの主記憶装置に格納するのは機械語(2進数)で、表2は表1のそれぞれの命令がどのような機械語に置き換えられるかを示したものです。このマイコンは、「MVI」命令は2バイト、「ADD」命令は1バイトで表されます。なお、この例は、主記憶装置の「00000100」番地に「10000000」という機械語が格納されている図2と対応しています。また、一般に、コンピュータは電源投入時にプログラムカウンタの値が0になり、0番地からプログラムが実行されます。

表2 アセンブリ言語のプログラムと対応する機械語
アドレス機械語アセンブリ言語説明
00000000 0000000000111110 00101011MVI A,43Aレジスタに「00101011」(43)を格納せよ
00000000 0000001000000110 00010001MVI B,17Bレジスタに「00010001」(17)を格納せよ
00000000 0000010010000000ADD BAレジスタの値とBレジスタの値を加算し、結果をAレジスタに格納せよ

 ところで、上のようにアドレスや機械語を2進表記すると桁数が多くなり、私達が扱いやすくありません。2進4桁を16進1桁で表すと表3のようになり、見通しが良くなります。

表3 16進表記
アドレス機械語アセンブリ言語説明
00003E2BMVI A,43Aレジスタに「00101011」(43)を格納せよ
00020611MVI B,17Bレジスタに「00010001」(17)を格納せよ
000480ADD BAレジスタの値とBレジスタの値を加算し、結果をAレジスタに格納せよ

 TK-80(または互換機 ND80ZIII)で表3のプログラムを入力するには、次のように操作します。ただし、ユーザプログラムは8000番地からとなっているので、そうします。

このプログラムを8000番地から実行させるには次のように操作します。 ただし、あっという間に次々と命令が実行され、また、8005番地以降は何が入っているかわからないので、何がどうなったのかわかりません。ボード左下のスイッチを「AUTO → STEP」にしてから上記の操作をすれば、1命令ずつ実行される様子を伺い知ることができます。

 なお、上の「8000」や「3E」などは、16進表記であることに注意してください。もしも上記の入力操作を16進ではなく2進で行うようになっていたとしたら、

というようにとても面倒だということがわかります。また、もしも10進で入力操作を行うようになっていたとしたら、 というように、もともとの2進との対応がわからなくなってしまいます。

 コンピュータの中でデータが16進で表されているわけではなく、単に私達が桁数の多い2進データを扱うのが不便なので、2進データを4桁ずつに区切って16進で表記しているというわけです。2進データを3桁ずつに区切って8進で表記していた時代もあります。

表4 2進数と16進数
2 進 数16 進 数
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F

(練習)
 表4を参考に、表2が16進表記で表3のように表されることを確認しなさい。

(練習)
 TK-80(または互換機 ND80ZIII)に次のプログラムを入力し、実行してみなさい。 また、8013番地からの内容を変更し、「Error...」や自分の名前が表示されるようにしてみなさい。なお、8013番地すなわちDATAの箇所が「76」となっているのは下表との対応による(各ビットは1で点灯、0で消灯)。

ビット 7 6 5 4 3 2 1 016進
セグメントp g f e d c b a
H
E
...
0 1 1 1 0 1 1 0
0 1 1 1 1 0 0 1
...
76
79
...
    ORG $8000 8000 0E08 LOOP: MVI C,08 ;C(文字数)を8に 8002 111380 LXI D,DATA;DE: 表示文字の転送元をDATAに 8005 21F883 LXI H,$83F8;HL: 表示文字の転送先を決められた番地に 8008 1A LOOP1: LDAX D ;DE番地の内容をAに 8009 77 MOV M,A ;Aの内容をHL番地に 800A 13 INX D ;DEに1加算 800B 23 INX H ;HLに1加算 800C 0D DCR C ;Cから1を減じ 800D C20880 JNZ LOOP1 ;結果が0でなければLOOP1へ 8010 C30080 JMP LOOP ;LOOPへ 8013 76 DATA: DB 76 ;H 01110110 8014 79 DB 79 ;E 01111001 8015 38 DB 38 ;L 00111000 8016 38 DB 38 ;L 00111000 8017 3F DB 3F ;O 00111111 8018 80 DB 80 ;. 10000000 8019 80 DB 80 ;. 10000000 801A 80 DB 80 ;. 10000000

(練習)
 TK-80(または互換機 ND80ZIII)に次のプログラムを入力し、実行してみなさい。
    ORG $8000 8000 0669 LOOP: MVI B,105 8002 0EBF MVI C,101 8004 CD3480 CALL TONE ;ド 8007 0675 MVI B,117 8009 0EAA MVI C,170 800B CD3480 CALL TONE ;レ 800E 0684 MVI B,132 8010 0E98 MVI C,152 8012 CD3480 CALL TONE ;ミ 8015 068C MVI B,140 8017 0E8F MVI C,143 8019 CD3480 CALL TONE ;ファ 801C 0684 MVI B,132 801E 0E98 MVI C,152 8020 CD3480 CALL TONE ;ミ 8023 0675 MVI B,117 8025 0EAA MVI C,170 8027 CD3480 CALL TONE ;レ 802A 0669 MVI B,105 802C 0EBF MVI C,191 802E CD3480 CALL TONE ;ド 8031 C30080 JMP LOOP 8034 3EEF TONE: MVI A,EF ;SPOUT=H B回繰返す 8036 D398 OUT $98 8038 59 MOV E,C 8039 CD4980 CALL T5US ;B×5μs待つ 803C 3ECF MVI A,$CF ;SPOUT=L 803E D398 OUT $98 8040 59 MOV E,C 8041 CD4980 CALL T5US ;B×5μs待つ 8044 05 DCR B ;Bから1を減じ 8045 C23480 JNZ TONE ;結果が0でなければTONEへ 8048 C9 RET 8049 E5 T5US: PUSH H ;11 804A E1 POP H ;10 804B 1D DCR E ;4 Eから1を減じ 804C C24980 JNZ T5US ;10 結果が0でなければT5USへ 804F C9 RET ;10

9.3 アセンブラ・コンパイラ・インタープリタ

 以上のように、まずはアセンブリ言語でプログラムを考え(表1)、作ったプログラムを機械語一覧表を片手に機械語に置き換え(表2または表3)、機械語プログラムをコンピュータに入力すると、作ったプログラムを実行させることができます。前出のミニコンタイプのコンピュータやワンボードマイコンでは、上の機械語プログラムをスイッチ操作で入力して実行させることができます。

 その後、アセンブリ言語のプログラム(表1)から対応する機械語プログラム(表2または表3)を作り出すアセンブラと呼ばれるソフトが開発され、利用されるようになりました。この時、表1のプログラムはソースプログラムと呼ばれます。

 また、アセンブリ言語はCPUによって言語仕様が異なりますが、CPUに依存しないFORTRAN(1957年)、C(1972年)、などの高級言語が開発され、利用されるようになりました。これらの言語で作成したソースプログラムは、コンパイラで機械語プログラムに変換され、その機械語プログラムが主記憶装置に格納され動作します。

 コンパイラと少し異なる動作をするのが、BASIC言語(1975年)です。主記憶装置にはBASIC言語の翻訳プログラム(インタープリタ)が格納され、この翻訳プログラムが、ユーザが入力したソースプログラム(表1のような文字の並び)を随時解釈しながら必要な処理をするという仕組みになっています。インタープリタの別の例を挙げると、InternetExplorerなどのWebブラウザにはJavascript言語のプログラムを解釈できるような同様の仕組みが組み込まれています。


□ 情報通信技術の発展

1837電信機(米S.Morse)
1876電話機(米A.Bell)
1895無線電信(伊G.M.Marconi)
1897ブラウン管(独K.F.Braun)
19013000km大西洋横断通信(伊G.M.Marconi)
1906三極真空管(Forest)
1920ラジオ放送開始(米)
1923虎印計算機(大本製作所)...オリジナルはオドネルの計算機(1874)
1925ラジオ放送開始(NHK)
1925八木・宇田アンテナ(八木秀次・宇田新太郎)
1926ブラウン管受像式TVの成功(高柳健次郎)
1929TV実験放送(英BBC)
1936TV実験放送(米)
1938交流バイアス磁気記録方式(永井健三)
1946電子計算機ENIAC(米ペンシルバニア大:J.Mauchly;J.P.Eckert)
1947プログラム内蔵方式の構想(米J.V.Neumann)
1947トランジスタ(米BTL:W.H.Brattain, J.Bardeen)
1948情報の量と通信の理論(米BTL:C.E.Shannon)
1949プログラム内蔵型計算機 EDSAC(英ケンブリッジ大:M.V.Wilkes)...命令とデータで512個のメモリ
1951商用コンピュータ UNIVAC1
1953TV放送開始(NHK,NTV)
1953カラーTV放送開始(米)
1955トランジスタラジオ(SONY)
1957FORTRAN言語(米バッカス)
1958IC(米TI:J.S.Kilby)
1960カラーTV放送開始(NHK)
1964IC使用コンピュータ System/360, OS/360(IBM)
1964トランジスタ電卓(シャープ;25kg;50万円)
1969LSI電卓(シャープ 米rockwell)
1969インターネットの原点 ARPANET(米国防省)
1969UNIX(米BTL:K.Thompson, D.Ritchie)
1970DRAM(Intel ICメモリ)
1970ミニコン(米DEC PDP-11)
19714bit CPU i4004(米インテル:ファジン, ビジコン:嶋正利)
1972低価格電卓(カシオ;12800円)
1972C言語(米Bell研 B.Kernighan, D.Ritchie)
19728inch フロッピーディスク(米IBM)
19748bit CPU i8080(米インテル:ファジン,嶋正利)
19748bitマイコン ALTAIR 8800(米MITS)
1975BASIC言語(米ゲイツ)
1976ワンボードマイコン TK-80 88500円(NEC)
19768bit OS CP/M(米Digitalresearch)
1976VHS-VTR(日本ビクター)
19778bitパソコン APPLE II(米Apple), PET(米Comodor), TRS-80(米Tandy)
197816bit CPU i8086(米インテル)
1978かな漢字変換日本語ワープロ JW-10(東芝;220kg;630万円)
19798bitパソコン PC8001 168000円(NEC)
1979ワープロソフト WordStar(米MicroPro), 表計算ソフト VisiCalc(米SoftwareArts)
198116bitパソコン(米IBM PC), 16bit OS MS-DOS/PC-DOS(米Microsoft)
1981GUIパソコン ALTO(米XEROX)
198216bitパソコン PC9801(NEC)
1985Macintosh(米APPLE)
1986パソコン通信 PC-VAN(NEC)
1987携帯電話 TZ-802(NTT)
1989BS-TV本放送(NHK)
1991WWW(米CERN Tim Berners-Lee)
1992インターネット商用サービス
1992Windows3.1(米Microsoft)
1993Webブラウザ Mosaic(米イリノイ大)
1994個人向けインターネット商用サービス
1999携帯電話インターネット接続
2011地上波デジタルTV

(参考文献)

[1] 富田倫生: パソコン創世記, 青空文庫(http://www.aozora.gr.jp/), 1999.
[2] 紀田順一郎: 技術と日本語ものがたり, http://www.honco.net/japanese/
[3] 相田洋: 電子立国日本の自叙伝(上・中・下・完), 日本放送出版協会, 1991.
[4] 田中良太: ワープロが社会を変える, 中公新書, 1991.
[5] 嶋正利: マイクロプロセッサの25年, 電子情報通信学会誌, Vol.82, No.10, pp.997-1017, 1999.
[6] 和田英一: タイガー計算機 No.59, 情報処理, Vol.50, No.11, pp.1147-1151, 2009.
[7] コンピュータ博物館, http://museum.ipsj.or.jp/
[8] Computer History Museum, http://www.computerhistory.org/
[9] Computer Science Lab, http://www.computersciencelab.com/

koyama@cc.hirosaki-u.ac.jp