電子情報工学基礎
第1回
コンピュータの歴史と
アーキテクチャの基礎
コンピュータとは
Compute: 計算する
Computer:電子計算機 (元々は計算をする人を指す)
紀元前3000年頃 古代バビロニアで数字が誕生,
計算する機械
• 算盤,Abacus
• 1617 年にネピアによる
対数の理論,計算尺の
原型の発明
• 歯車式のパスカリーヌ計算機
• ライプニッツの横型ドラム方式の回転計算機
パスカリーヌ計算機
パスカル(B.Pascal)が製作した現存するものとしては世界最古の計算機械。 数字の書かれたダイヤルを回すことによって、中のピン歯車が回転し加算す る。歯止め機構をうまく使い桁繰り上げを行う。引き算は補数を使うことによ り加算と同じ手順で行えるように工夫されている。
ライプニッツの計算機械
ライプニッツの計算機では足し算はピン歯車を利用し,かけ算は桁くり上 げを助ける動く台を使う.装置下部の円筒には1から9までの数字に該当 する長さのちがう歯形がきざまれている.円筒をクランクで回すと円筒の 上の小さな歯車が回り,足し算が行われる.
ライプニッツ
1646~1716年 ドイツ 哲学・数学・科学者
微積分の研究者としてよく知られているが, 元々は法理学の専門家
コンピュータを生み出した概念・理論
• バベッジ:「コンピュータの父」
– コンピュータの原形となった階差機関,解析機関を発明. その処理装置や記憶装置といった概念を提言した. – 現在のコンピュータの基本構造を予言. ・ブール:「ブール代数学」
– 論理学と代数学の結合• チューリング:「仮想論理機械(チューリングマシン) 」
– 現在の計算機の理論的な原型• ノイマン:「ノイマン型コンピュータ」
– プログラム内蔵方式(ストアド・プログラム方式)階差機関とは
当時の計算に数表は不可欠 正確な数表を作りたい Xの自乗数列(X2の解) 1 4 9 16 25 36 49 の差を考えると、 3 5 7 9 11 13 ← 1次階差 さらにこの差(2次階差)を考えて見ると、 2 2 2 2 2 階差機関 対数や三角関数の数表の作製に使用された.解析機関とは
解析機関 バベッジ自身が組み立てた解析機関の一部の 試作品。サイエンスミュージアム(ロンドン) 未完成に終わったが,現在のコンピュータの基本構成となった. 解析機関の記憶装置ブール代数
• 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
チューリングマシン
• 1937年チューリングによる仮想論理機械(チューリングマシン) • 構成:マス目で分割された一本のテープと,テープにデータを 書き込み・読み出しする一個のヘッドから成る. (あくまで仮想機械) • あらかじめ設定された幾つかの「状態」を持っており,その「状 態」とヘッドから読み出したデータの組み合わせによって, 「ヘッドをテープ上で一マス移動させる」「テープのヘッドのある マスにデータを書き込む」「状態」を変更する」のいずれかの動 作を行なう. • 決まった一定の手順によって常に同一の結果をもたらすこと, 普遍的な問題に使えること,データとプログラムには本質的な 差がないことを証明.ストアドプログラム方式
プログラム内蔵方式・ノイマン型コンピュータ
1. プログラムをデータとして記憶して
2. これを逐次読み出して実行する
特徴
•
プログラムとデータに原理的に区別がない
•
柔軟なソフトウェアという概念の誕生
汎用電子計算機の誕生へ
• シャノン
– 電気リレーを用いたブール代数操作についての考案
• 電子汎用計算機ENIAC
(Electronic Numerical Integrator and Calculator)– 十進法・歯車計算機の電子化・最初の電子計算機
• EDVACプロジェクト
(Electronic Discrete Variable Arithmetic Computer)– 2 進数・逐次実行・メモリ内蔵方式 – 現在のコンピュータの原型
• EDSAC
(Electronic Delay Storage Automatic Calculator)ENIAC
(Electronic Numerical Integrator and Calculator)
• 真空管による電子計算機 • 1946 年にペンシルバニア大学, エッカートとモークリ • 弾道計算用 • 真空管数約18000 本、重量30 トン、 • 消費電力100-170kW • ワイヤー式プログラム (ノイマン型ではない) http://lawton.com/galleries/computers/eniac/eniac01.html
コンピュータのアーキテクチャ
アーキテクチャ:
コンピュータの設計思想や設計概念 ハードウェアとソフトウェア比率 ハードウェア(Hardware)
物質的な機構を有する。 実機として動作するために必要 ソフトウェア(Software)
ストアドプログラム方式による比率の増大 ハードウェアの変更なしに動作を変えることができるトレードオフ点
• ハードウェア・ソフトウェア両者の境界をどこに置
くか?
– 電卓に例えると….. • + -キーしかない電卓 • 関数キーがある電卓 電 子 回 路 計 算 式 SOFTWARE HARDWARE 計 算 手 順 四 則 演 算 加 減 算 加 算 計 算 問 題 二 進 数 関 数 演 算 SOFTWARE HARDWARE トレードオフ点 トレードオフ点アーキテクチャの
トレードオフ問題
• トレードオフ点をどこに置くか?
• ソフトウェアを大きく
- 効率的な計算プログラム(無駄な計算をしない)• ハードウェアを大きく
– 一般に高速になる(初期のコンピュータ高速化) – ソフトウェア開発の簡略化あらゆる機器開発において
ソフトウェア
設計・動作シミュレーション
ハードウェア
試作・製品作製
⇒ コンピュータの発展やソフトウェアの
発展(回路シミュレータなど)で
トレードオフ点はソフトウェア側に
セマンティックギャップ
1. 問題のアルゴリズム化
2. アルゴリズムのプログラム
による実現
3. プログラムの機械コード化
4. ハードウェアによる機械コー
ドの実行
•広義のセマンティックギャップ
•狭義のセマンティックギャップ
広 義 の セ マ ン テ ィ ッ ク ギ ャ ッ プ 高度で複雑 単純化された プログラマが解決 ソフトウェアが解決 コンピュータアーキ テクチャが解決 コンピュータで問題を解決する場合の手続き 狭義のセマンティック ギャップビット・バイト
• 電圧の高低、電荷の有無などで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)
2 進数とビットパターン
B
7B
6B
5B
4B
3B
2B
1B
0 LSB MSB
7 02
i i iB
A
1バイトで0~255の 正数Aを記憶してい るとすると、 (10進数に変換)B0 :最小桁ビット(LSB least significant bit ) B7 :最上位ビット(MSB most significant bit)
10進数・2進数変換
• 2進数から10進数に
i i ib
d
2
181 1 4 16 32 128 2 1 2 0 2 1 2 0 2 1 2 1 2 0 2 1 10110101 0 1 2 3 4 5 6 7 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 10110101b16進数
0000b 0001b 0010b 0011b 0100b 0101b 0110b 0111b0h
1h
2h
3h
4h
5h
6h
7h
0
1
2
3
4
5
6
7
1000b 1001b 1010b 1011b 1100b 1101b 1110b 1111b8h
9h
Ah
Bh
Ch
Dh
Eh
Fh
8
9
10
11
12
13
14
15
4ビット 2進数 16進数 bをつける hをつける(0x)の場合もある。 10進数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進数