31
1 電子情報工学基礎 第1回 コンピュータの歴史と アーキテクチャの基礎

電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

1

電子情報工学基礎

第1回

コンピュータの歴史とアーキテクチャの基礎

Page 2: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

コンピュータとは

2

Compute: 計算する

Computer:電子計算機 (元々は計算をする人を指す)

紀元前3000年頃古代バビロニアで数字が誕生,十進法が定められる.

Page 3: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

3

計算する機械• 算盤,Abacus

• 1617 年にネピアによる対数の理論,計算尺の原型の発明

• 歯車式のパスカリーヌ計算機

• ライプニッツの横型ドラム方式の回転計算機

Page 4: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

4

パスカリーヌ計算機

国立博物館ホームページより

パスカル(B.Pascal)が製作した現存するものとしては世界最古の計算機械。数字の書かれたダイヤルを回すことによって、中のピン歯車が回転し加算する。歯止め機構をうまく使い桁繰り上げを行う。引き算は補数を使うことにより加算と同じ手順で行えるように工夫されている。

Page 5: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

5

ライプニッツの計算機械ライプニッツの計算機では足し算はピン歯車を利用し,かけ算は桁くり上げを助ける動く台を使う.装置下部の円筒には1から9までの数字に該当する長さのちがう歯形がきざまれている.円筒をクランクで回すと円筒の上の小さな歯車が回り,足し算が行われる.

国立博物館ホームページより

Page 6: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

ライプニッツ

6

1646~1716年 ドイツ哲学・数学・科学者

微積分の研究者としてよく知られているが,元々は法理学の専門家

Page 7: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

7

コンピュータを生み出した概念・理論

• バベッジ:「コンピュータの父」– コンピュータの原形となった階差機関,解析機関を発明.その処理装置や記憶装置といった概念を提言した.

– 現在のコンピュータの基本構造を予言.

・ブール:「ブール代数学」– 論理学と代数学の結合

• チューリング:「仮想論理機械(チューリングマシン) 」– 現在の計算機の理論的な原型

• ノイマン:「ノイマン型コンピュータ」– プログラム内蔵方式(ストアド・プログラム方式)

Page 8: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

階差機関とは

8

当時の計算に数表は不可欠

正確な数表を作りたい

Xの自乗数列(X2の解)1 4 9 16 25 36 49

の差を考えると、3 5 7 9 11 13 ← 1次階差

さらにこの差(2次階差)を考えて見ると、2 2 2 2 2

階差機関

対数や三角関数の数表の作製に使用された.

Page 9: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

解析機関とは

9

解析機関バベッジ自身が組み立てた解析機関の一部の試作品。サイエンスミュージアム(ロンドン)

未完成に終わったが,現在のコンピュータの基本構成となった.

解析機関の記憶装置

Page 10: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

10

ブール代数

• 0を偽(false), 1を真(true)と定義する

• 論理和(OR, 又は)

0+0=0, 1+0=1

• 論理積 (AND, 且つ)

1・1=1, 1・0=0

• 否定(NOT)

• 真理値表

A B A+B A・B

0 0 ? ?

0 1 ? ?

1 0 ? ?

1 1 ? ?

A B A+B A・B

0 0 0 0

0 1 1 0

1 0 1 0

1 1 1 1

Page 11: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

11

チューリングマシン

• 1937年チューリングによる仮想論理機械(チューリングマシン)

• 構成:マス目で分割された一本のテープと,テープにデータを書き込み・読み出しする一個のヘッドから成る.

(あくまで仮想機械)

• あらかじめ設定された幾つかの「状態」を持っており,その「状態」とヘッドから読み出したデータの組み合わせによって,「ヘッドをテープ上で一マス移動させる」「テープのヘッドのあるマスにデータを書き込む」「状態」を変更する」のいずれかの動作を行なう.

• 決まった一定の手順によって常に同一の結果をもたらすこと,普遍的な問題に使えること,データとプログラムには本質的な差がないことを証明.

Page 12: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

チューリングマシン動作原理

12

Page 13: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

13

ストアドプログラム方式

プログラム内蔵方式・ノイマン型コンピュータ

1. プログラムをデータとして記憶して

2. これを逐次読み出して実行する

特徴

• プログラムとデータに原理的に区別がない

• 柔軟なソフトウェアという概念の誕生

Page 14: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

14

汎用電子計算機の誕生へ• シャノン

– 電気リレーを用いたブール代数操作についての考案

• 電子汎用計算機ENIAC(Electronic Numerical Integrator and Calculator)

– 十進法・歯車計算機の電子化・最初の電子計算機

• EDVACプロジェクト(Electronic Discrete Variable Arithmetic

Computer)

– 2 進数・逐次実行・メモリ内蔵方式

– 現在のコンピュータの原型

• EDSAC(Electronic Delay

Storage Automatic Calculator)

• Baby Mark-I

Page 15: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

15

ENIAC

(Electronic Numerical Integrator and Calculator)

• 真空管による電子計算機

• 1946 年にペンシルバニア大学,

エッカートとモークリ

• 弾道計算用

• 真空管数約18000 本、重量30 トン、

• 消費電力100-170kW

• ワイヤー式プログラム

(ノイマン型ではない)

http://lawton.com/galleries/computers/eniac/eniac01.html

Page 16: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

16

コンピュータのアーキテクチャ

アーキテクチャ:

コンピュータの設計思想や設計概念

ハードウェアとソフトウェア比率

ハードウェア(Hardware)

物質的な機構を有する。

実機として動作するために必要

ソフトウェア(Software)

ストアドプログラム方式による比率の増大

ハードウェアの変更なしに動作を変えることができる

Page 17: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

17

トレードオフ点

• ハードウェア・ソフトウェア両者の境界をどこに置くか?– 電卓に例えると…..

• +-キーしかない電卓

• 関数キーがある電卓

電子回路

計算式

SOFTWARE HARDWARE

計算手順

四則演算

加減算

加算

計算問題

二進数

関数演算

SOFTWARE HARDWARE

トレードオフ点

トレードオフ点

Page 18: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

18

アーキテクチャのトレードオフ問題

• トレードオフ点をどこに置くか?

• ソフトウェアを大きく- 効率的な計算プログラム(無駄な計算をしない)

• ハードウェアを大きく– 一般に高速になる(初期のコンピュータ高速化)

– ソフトウェア開発の簡略化

Page 19: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

あらゆる機器開発において

ソフトウェア

設計・動作シミュレーション

ハードウェア

試作・製品作製

19

⇒ コンピュータの発展やソフトウェアの発展(回路シミュレータなど)でトレードオフ点はソフトウェア側に

Page 20: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

20

セマンティックギャップ

1. 問題のアルゴリズム化

2. アルゴリズムのプログラムによる実現

3. プログラムの機械コード化

4. ハードウェアによる機械コードの実行

•広義のセマンティックギャップ

•狭義のセマンティックギャップ

広義のセマン

ティックギャップ

高度で複雑

単純化された数多くの行程

プログラマが解決

ソフトウェアが解決

コンピュータアーキテクチャが解決

コンピュータで問題を解決する場合の手続き

狭義のセマンティックギャップ

Page 21: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

21

ビット・バイト

• 電圧の高低、電荷の有無などで0、1を示す。

• ビット (bit)

– 一つの0, 1の組み合わせで表されるデータ量

• バイト(byte), ワード(word)

– 1byte=8bit (28=256通り), 1word=2byte

– 1024byte=1kB, 10242byte=1MB

• 1bitを一桁で表す2進数(binary)

– 1byte = 00000000b~11111111b

• 4bitを一桁で示す16進数(hexadecimal)

– 0h~Fh

– 1byteは 00hからFFh

• 3bitを一桁で示す8進数表記(octal)

Page 22: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

22

2 進数とビットパターン

B7 B6 B5 B4 B3 B2 B1 B0

LSB

MSB

7

0

2i

i

iBA1バイトで0~255の正数Aを記憶しているとすると、

(10進数に変換)

B0 :最小桁ビット(LSB least significant bit )

B7 :最上位ビット(MSB most significant bit)

Page 23: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

23

10進数・2進数変換

• 2進数から10進数に

i

i

ibd 2

181

141632128

21202120

2121202110110101

0123

4567

b

• 10進数から2進数に

181= 2で割ると90 余り・・・・ 1

90 2で割ると45 余り・・・・ 0

45 2で割ると22 余り・・・・ 1

22 2で割ると11 余り・・・・ 0

11 2で割ると5 余り・・・・ 1

5 2で割ると2 余り・・・・ 1

2 2で割ると1 余り・・・・ 0

1 2で割ると0 余り・・・・ 1

10110101b

Page 24: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

24

16進数

0000b 0001b 0010b 0011b 0100b 0101b 0110b 0111b

0h 1h 2h 3h 4h 5h 6h 7h

0 1 2 3 4 5 6 7

1000b 1001b 1010b 1011b 1100b 1101b 1110b 1111b

8h 9h Ah Bh Ch Dh Eh Fh

8 9 10 11 12 13 14 15

4ビット

2進数

16進数

bをつける

hをつける(0x)の場合もある。

10進数

Page 25: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

25

8進数

000b 001b 010b 011b 100b 101b 110b 111b

0h 1h 2h 3h 4h 5h 6h 7h

&O0 &O1 &O2 &O3 &O4 &O5 &O6 &O7

&Oをつける場合が多い

8進数

3ビット

Page 26: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

26

2 進数表記とデジタル演算

• 10 進数の数値計算を手動で行なう場合に用いる手順(アルゴリズム)はn 進数においても使える。

• 数値の二進化→論理演算処理で計算が可能となる。

• 組み合わせ論理回路

• 順序回路

Page 27: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

27

半加算器 HA(Half Adder)

半加算器:・1ビットと1ビットの加算を行う回路・入力は2つ、出力はそのビット出力(Sum)と桁上り(Carry)の2つ

・下の桁の桁上がりは考慮していない・ 1桁目は1個の半加算器だけでもよい

回路図

真理値表

XOR:排他的論理和 (2つの入力が異なる時出力が1になる)

xi yi si ci+1

0 0 ? ?

0 1 ? ?

1 0 ? ?

1 1 ? ?

yi

xi

si

ci+1

xi

yi+

sici+1xi yi si ci+1

0 0 0 0

0 1 1 0

1 0 1 0

1 1 0 1

yi

xi

si

ci+1HA=

AND

Page 28: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

28

全加算器 FA(Full Adder)

全加算器=2つの半加算器+1つのOR回路

xi

yi

ci

si

ci+1

si

ci+1

xi

yi

ci

HAHA

xi

yi

ci

si

ci+1FA

OR

Page 29: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

全加算器 FA

29

ci xi yi si ci+1

0 0 0 ? ?

0 0 1 ? ?

0 1 0 ? ?

0 1 1 ? ?

1 0 0 ? ?

1 0 1 ? ?

1 1 0 ? ?

1 1 1 ? ?

下の桁からの桁上がりがない場合

下の桁からの桁上がりがある場合

ci xi yi si ci+1

0 0 0 0 0

0 0 1 1 0

0 1 0 1 0

0 1 1 0 1

1 0 0 1 0

1 0 1 0 1

1 1 0 0 1

1 1 1 1 1

si

ci+1

xi

yi

ci

HAHA

Page 30: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

30

まとめ

• コンピュータの歴史

• コンピュータのアーキテクチャ

(設計思想や設計概念)

• ビットとバイト

• 2進数、10進数、16進数、8進数

• デジタル演算(半加算器、全加算器)

Page 31: 電子情報工学基礎 第1回 コンピュータの歴史と …spin.ed.kyushu-u.ac.jp/denshi/Slide1_DST.pdf階差機関とは 8 当時の計算に数表は不可欠 正確な数表を作りたい

31

演習

① 10進数19を2進数で表せ.

② 2進数1101bを10進数で表せ.

③ 10進数1000を16進数で表せ.